Oscar Plaisant f91c506a9e update
2025-03-16 18:05:45 +01:00

3185 lines
3.0 MiB
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;(function () {
var desmosEnabledFeatures = {"GraphingCalculator":true,"FourFunctionCalculator":true,"ScientificCalculator":true,"GeometryCalculator":true,"Calculator3D":true};
var desmosVersion = 'v1.9.3';
var desmosCommit = '0aa24a3bfd2e1f79f4d758732e0002c9fc619389';
;(function (global) {
var elt = document.createElement('style');
elt.innerHTML = "@charset \"UTF-8\";.dcg-calculator-api-container img{height:auto}.dcg-aria-alert,.dcg-calculator-api-container .dcg-sr-only{position:absolute;left:-1000px;top:-1000px;width:1px;height:1px;text-align:left;overflow:hidden}@font-face{font-family:Symbola;src:url(data:font/woff2;base64,d09GMgABAAAAAB+0ABIAAAAAREgAAB9OAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGh4bQByCQAZWAINaCFoJhGURDArsKN8gC4EaAAE2AiQDgi4EIAWECgeDHQxAG+M7BdzxbgeIil5+IrL/ywPusPjkajTjiY1Gq6TAV2Of4Cs0/3u0vopiRzm8B6hPNwLhU3A0YvQOnEa6rIYKUYKhRRiNUVLMdvP9jPfLsxGSzP7Ab7P3KVFMwAxADFQMxKSNpKzGDtyMPp3brFqFus46ePj+3jz3/fvSqn9NwQB1kFiz1jETL41WAxZaDkjAItw1e6jTdLZTkJw8IUyAo6EM07MdLVLLuvYnIpyBDY8wbPT3OlUygmyWLvnqj2WSEicsE6i2HIKvIN3e8tychqnL+AyFEYeJaBo7qasUWGyQZKJ9e4F9L+/dPVDJ3Tf9N22wbDNbZ/oNd5m08T9lqmSzHMuWAmRihajluR2nrtt7Xz84dZmAbs8wOgENbP3/t5lWOec+gf2/ggqysQpwtesAYJ2iHv3Z2Z35M+MdzcqxNGsQOUfS7hokw67MMsnmAHCFoA0hlUnRpAKuuUyqVH3KJkWVZem6QEPoGixlC/q+/2UzX5DSU8k4KgYJPwZRZHN6ujUAACnAVfG2+5frnUzRnwYSBU0gAxNVMMJWE4NMyB6/Bj8B0Dt15YVAPihXFIDFaXplMdjvcdmgUoGboey+eaL9Vj2cRDRzeTXyXx9kAQ+yDAwMIvz7dRVwiEp1WGWzk6COzAIVg5cAIpFi+MMg0KJJAI2AiPO0kp6AlXSIViLzW0mf70ok3itpY+V1oeCYzS0ZDEyg4ctDjQQRsHnb/GxTl1mLv6yVtoP38gtN4lY7JDYQMLToievQpYcESQdZCAOwV1gygJNPtVCPJPFV05jQ4JSZyX0KNr0K/1EVQEtYMvD3XzWBw3rmFU70vwIUQ3avAVqdhgOos1YzSNG4KkwEhTF2vt4OrGBosBYgkZpkaIAf2hH0XfRBK7INykbHhmhjYkO1cbQJtlHQDtNetXXrMLDfj+r9h/0k0vNTKAsv/0xSPVbdVR1UHVAtUzn8S/ub+1fxkHSfet/kvvF94n38J8zHl/fO3Sy7GQ4IXCszcEHggBqQRhDQjzawOLUusLEzPL9GxiZ4ADrCpswcyeatpRU4bgvQy36eTnE5BDhxDVFnYD070Bfy/wyAfql+9QCJUNGcuWLba9qUPvaW88MUaCUPLF3q9RhUab5IBeKE22iJViK1hu1wCATKOJjtwhYSgQp0wbtKQH2gAYUrUbBkSUlbfs2fa+gr0IHxqAS0iH6DKyuBQeyukxbWeAmM4k0UQXWV8FDVJDCJh3XDY/4J+cee09ieJPlfv7NK4oA5uxYoDzTleP5RCcyie39XAovYu0ffrRJAd/v7LFCaBFaxN7bYszq6TWT8SJ6wabuInlN4zJ/YcxoCY6KDEZgEFahVol/oJwiVLrA8r7F6IbAuqFkOxuI+1hcqPOMU0WdedJd9AhNgze4ThO5j5eQWEXR+erjYR7prjaCD9Bp0B+vWxLQkrtiBKkWaIm9alRdppN/01NJt6XvUmmfRd727TuaODgJqiy2T36XDK2L0nbLi4qS7UaoBtEZ0SKGDm5VR75A8idRMfVRW6WsCYqQfPDEDYqQe6xirj4UQhzEI6PomX8jMUc/XuBWQTBTZd8X7DYoDqkq/q9fpT2991Bn1IHZ0twjqZp3gUwQUrrMIWtdAr6bd9SlENc7qfRrRbHxAZxC74OpJhEQoJDAAkMd0ttgODFRPZaVm+AONdm0HhA+g+/xGDANBTG+nk2CAqnRTjXoilESTE1hRlfaaD7qMAk1Yu1ajBACmExj1AdimGz8miAXySUij18jJLu7sLPY2nfPN2J+9HxZvBvFgxzUmbRe2tprNK3e965yrVkdj56ati/6ec6t5u+37nWLHj+f4edGh3gkc32LRjc6SPB+fexa/Gl/ditX70i121htXfPUt75xxjvIKGx14fQfhG9HC8R4e7+pzEVC1jFDdDRmCLHOXhnboiRdUvQL5muHL7y+vIsOzAzU4LUFOuMNw3ikiiLd3raBqfvROb3zvZu6NiLE/jKbKU5sb3lg3qeoa83eiueo0yN7PVviWHxN3Ve+yXKEA8ku2qvtyTHnZcfkAe5XmSSSElO/Ae2JkCRc0ZQiqIJFSIFmXhGRIjC5YfldFMsaQCMim+sQg22T37Uv0QIBtXPT0dl46fM+e4mGT1drZiZrduNPXpdU7wk5ESNhh5/iauzZO2QPZAQV0GfbaRrJEv302IiORM5XFQE6ojkFGVAXWDoaEwmMGGXeGhPXQqkjiA5flcPGlw4mALZF06h2GDN24kU9CqZJzboyJS7dYmAiZ6i57CDtsCKww5JSIfucYNQ+uMTCPFVLA92C/bSSDmZkejzvfNvygKpKi+bL+JvKCKSELISFnVBirAOVCYWV9CbxRIKPL967K1Ho9hgyIE/jMdJ6FHFRCOS7GVgThY9GEgsb8fFPdtGg+29XrHEsKp38b2ssfOVEj58pee1FYJCMVCPuUHRc6N3JkmsWYN6haZTMs5p5UE4XuCoKOd42/GdphTq1aC9i83ZRm1zvZvsszjIik6p0+Di1jOF/5kZ5/jCu5NVZSsVaRei825lpBTZ5EBd9da2qEk+RzhLm+gJJz9oMuoet1eWNMDLocMtdmKEYG1l1rL9HExD0c2udWGBQuco/l6p7kJpfn4urIoNQ6MLDO9TFfjf7APQC6nGLDkXN+hcHRYve4FClq7+tSlH7ti9JAfaPK2jm7rhi/MnSPMDRU+UdLVCGb/+NueBo48XzugZP+4dEIZK1VRFg0hmxmCFIMJYSL6k5vsUka7HNEqDmu04IpB3LA+3wqrHlCMJou6+ZEqv0Iur503xx5g/XGlI2iZ0ObxQYgNBsvV1ev5AzROCJhDwO13XT/R5+pQBx4youYarLUKimtVlwpziTbIi1F24jof4FcqeNerYQ4pS1GlcMd8XiN64vmnjEDZQsXYkd69OsctblM5dW1yvfsZfhCTD0rILTI1vgVN1b9IobP8Q252BlCT700mqQbu9+skrK4m0mPqtZCDzTJ9omQfBCbeEMJCmmGsn6DAAWj2rqxeKV59cpxIzoX57raWe8xVp0GCP0x6yTaVdhjOoIgmkhBuQAYglJetLHxYMDtB/P81qGzUjdVqKOq1s84smuyzlnfLM3MRlBDm67Oc0APyObeEUR6IzFvIC+7vRB6XJBm6tBZ9cFBuOBsYrlQ12QUd9WDSI2A4YzEYmAF1jaEAX+ksW8p7OoJu5HYHG7rDVtZREoKX1E3mpnXu2UbAYTzNQIylrjWIvsPhK4f797aEg7SKs48FDSQna3KXcjU5p295KqVcGYb8ERtzzVSE3kORgvddKXK2NjbIdE+NXOt58aZHl0dHSzsDdYXdVmVFUDt1PWLNF9h9SsWot6JFm+VOAtR6wVSdT3XWr4R/WpDH21qBLBz6w6+GleJXmcks7e/SYHbtZ7YDfUHLU4lw5UpzTzz2unQ2N0xw7NTkZ1SVtQwTsAumTVCuNqaY07HXK0vsUgrG3W20JjDipk9VzMbGheyiJhsalu1d/Y2ypaciqCpYJ6AN2IXvxr7dEunI7x3nZ5ghMAA3DIGlhoN2P+777eGIb2nXPTfHGfT+6VUkWe8MWNmcNtcf73i3JUmJaHzU/WXe9vZ2CVl0HxTFa+SnLNXYpVxAObLCizW/papk5PpLXssFvNllZ+LfxiRRHB6tOvAcjqdKXsNJwKJiK9xpIaFwXnU2EUKVwzE7/yM7Nxbf06wcNSdyDbzALcyN6wZG7adpBiwZixaz4lmvQwpJ2GztZs0ZyPbd1LVvCbvODHusohOsbWh0ek0mwdmR3m+FDtbSrjQCrK8ObFsTqmwInN09KsN2QB/f2DyiEXgAXIkOdsIxdBJoLv2tB06gutt0fE3z5pGf/7URnldbZOsUEYsrvr09fHGi0nLe8MWV35/Cle8MTftSv32if3225XdoMNS+w9WtT534v2uWNfI9wWGIWMJzbaBhZ7LOb+b2jTMkynWU9alDxU4Nb4/R4TlDj7/J2fkE62VC/be+nwbF57sSB+pskpO16grYjxglFROvbgTq/q3vTq8aH9t1cyiJV2lxms8vPOGfZdmzRKeRtSLe5JGPAP5OTyeQhDI1FjoHL5JnDbXv8IlwYQZF1DaUWjt/A0+cbXqQwuzs9oyD0ubUeg5eYyZlGnXNmV0gci4RNQsxqw+Mcd+odnp83f8y+IvHrVotluFxXAkWF9zbwmW81Cv2LPJ8qgjxx59+ad7tL7V1otZ6pZX1Nv1MlGFeSF3yWV44r6Je48mShROp5ycTjsRv5plzbbn9kV2usrq7aQ+7TXxFUJJKt6c3mVDVseu9P3R778VRzbUZS1Ycj8m3uQ4eUZ6LueVft0nwz2fi79LtpPOLc5dnFrMfT5aXugUIsuhJ+dgcd6yBnEI41KbxXJS7hJKREBTS4ugwTu79zwl1ZhXGi+Yx+20DVnmN+Rq5WDSndxi/dBg2KH8QHmTasGL4C9V42brPQTrPEh7H93/0+C7NHka80COO7bsjdNgSUZUQobR42P0Z2vnHf7blMQKYwYrSvuDSmcH7myuOJAXfu1x34Uax6rwqMyx3C2FX9pvtRybVZ3tU2F9l21ou3O1o2VNbQQz0ac8K5VeLSestsOlBYb1RogYNZEOh01qLosv5r8yaENpbMuWebwb2O9x2jrBf1V3t6jVIWp1zFK78MBWrKDJK3u+kTvO+b32KdRmqDAbTtXYZ+VefmWs+4cl2YDwoGU4N+6iJZ2Ol4QQ7WeNjGa1I8GHeROlwAZ1XYayJO6yaM1Ak70fYYmPB13QCWrBnQKxwBNwKz0FLuxkL0anpxH+aeu0dt8UZEhfXxwRzCRxThWwqxY0VuERqid8GnyPXXCKxAlmFoZvpNNJY3iJbJwg4qbqx4cyUsedxp0YqSHx+qlcgmhcIhvDk2q/edEPD3B/resShiymSI/A5RRHrKcbktIeIfVCFXnKjYXhQH4BtYGXB0rmr75IfRnT5dCSRAwiWrCLFq65QH0VM2G3o8nALNqlO/PV+LxkHtfF5daTXZaB+tKUWIxVnVjCjXv43OtuPHc5lv2of8gPlwj7e4MVYtifEp+GEyufgxKu6x5ZSvVKWVNc1sOb0pO8e3Ytg3az3diBkXeLmxefavMa/EdzEFAiZxA5a5J/hEVYVlxwVKjDW2p31LChr+Zp1AGdnqEAwpTCi7vuAPtkJgZBdHVpDQ0K6jwfoohO+Q4z/Z0CyhdeSRpkEf35oADniAO78fMiB7Mdv/4pmyeWHHxWONVhmY/SaY05EdaZsnrHxYClaWpUeVh2RIjANurWu4ErrXsu/ujsPtS8O32bBfVTcmv76satikPiKUj7qMKm901tbU3FwSzAab2GtFjB4oumNYOw189OJZYD2Wcb3K9ly23RGrHa2nWJr9eYjbu9Dg+5xBzYllgKemSckMZXo/FzY9mkxDQYHHOPuv4jbIIBRV7mGiTfzh3NLlphxq3NTek4c3P1js87qvSTDb7QvHI0W0zo8GEwSHugtv2RG71oKpSDP5lHzD/1cVecjvOtfZDeXkP3yg0ke5renJMfTlaK9a3B3E/VIrI9MJ+LIhqlg6NhQh7+WUgMrco8TnuznoFRTaitwQpeYeyCBZFzJUNjYUIh/ntIhnMVTeH+wfSRe4/hjG9uRBc4s6gOhgGGT6quTQcYOlD1yg3dE85eDkPJhWq9Pe4akrd1asXxvrcuMbK3f/7niUAlTdYSg/vnqOE4ERjaNbsIDGdh+JZ4vdol3g/nPTW2dSmcTP28hocU3QjWPxplMSfgUFqcJtWZSAxZsUINz+FhnBnOPEwkKvdu6h2VW2/LXqcedUUA4O8QE9FPAxOBI23xVG98TkNql091OiK2jaKmxBZtHcEfG22Q+IX/SIxyRJmn95MqfJ0xqoUYnxmfJ2m15ychhVXEyU9IdyilSpIwIbK+OIcgevzdjWJb963q8vrE/nn1gTy5WlD0FnFKGkviejPGVeGdGlXYLLXKNGnvsP+yR9DyIcPlQod78nsO94vBk+9/qHS31Jt8uZJYkWC4VCt5e4xEEoM6pEkOnEqXTenX+rHcvHWz3Zd1QM7FbrU1C7PjWpIOh9AlEWLbX1Z+XMKHTufWcAyRV1Ddu3U/4cT2nkie3Y6slI+rmdgdMelnAuIpoHEf9DjmHHETXyz2yVvsJE5KAoHu2p20LqB4nU9+wsrKhMX4DAmkpWTKBEtb1kXt3190PyfonsXax5HGPRMhkq+NZ7E/cbjGU9dqb+BlTijgr1+sx6LO6X3/n7mjMTtRIIuh+NrY+FI0/qsOFeWw5JQfg3TpjpBguboVdb21scaWObSFGSabUMYm2veKi6b97r+J8hH+JOxjUjt1zcFqAS5CkDbrpSfxW3qTHMfMx+SMuUjpfuYk5MWwfRxaHsq4Wv36g+6m3tGIX/fQdPv5W/ejdx/o2yNfG1DPr/um5MicNtdFRUZKJKGcYNxgS3KfGKvDz9f6Wkjjpwe6/Ycwe7NjdGJiQl9i56xjximGbDFIuabkzkImulXs/RbpvjouDAXQrMrhNyC+70VU5O1TY9izHeVTVzNtOAwR/+iGrmdbKjObNsUaob6+tp0/RbOshcqkxXODK0Jd9Edj+sJ39InnFe3uSxooEzA6g2fkkFGaVOFJfKDCDM9Ctww8qH8Z7ynSKiclDiOrM8oQ2vWAxz4votY9pfb0/UqSvB498H6wvD72wnJlbNkySf8RfMzjeUZmgaP33w9VzIk9v7w+tkTeW24V9YRQb2QOSZd0OiW6aWCbSLhH8e7lXhIFdGfAB/yz1ThjLJuhnlZ5aTUUhdOFsDqgUMJS6Ni/dNdgBLZH/+7gdU0+PguEAQDUIuh+AgCAtQC5RkfBdEixvQ3bdDGvvaUEKuTWY2lj+j8gvTkcP/cKgH2vMvi5Ih40WRXEBErJopnAbgicInp1FHLciS1M5uzc1H2Zo1Yi/qXFMpcysKaeEDrmZ1ABEFKAq2rPqLYU2GQxzJoQk8dOWDtEE3AYsDngLLb4asob4/riQhk1iVJit7m44A4mMhlipv7BYLL7xjCxIcrmvXnzplpO4XOUE9DMkLwidRJKl/K70NaTRTGB35hwPFpGEvI484An3PvGuD+IJUSJFBOkiJPmplwi44opswIwzYgySu2UTEqKQhTAA4xi4ImMvN7FLeTbUgSnU3cF1fukNm+c91BmqIoCoK8i5cmBfJUYwYSH6uX1L/9TzXZyJcizh7gSkTXw1WSE6+7kiFpxOMngXWXr9zUgJHAfw/oE9BBIES1BqhlAGBTFQvFlKmmuyklD2yylGfJCfbIrd9lVCICKuDTU3pVCtQffT5UXtKpBYMB6QoyyGRGtAA4xQ8aEem7Igb198xzCgD6HstBXPoAecWE+qtxQGUPD2Ow1tSZFrEvTG4BTfdIttCaFSStqwkE3S4dK60hNa8iNEzeQSy1SGPv9LqAme2J3T5ZjtFg9N+wZAS6KjXjjZPs4oRWaHuibvDCBFYR24Emt8HrgIIhBhZYEnLGRQfbwqo3eVNGtnZXGYfEj6N1CwezdpId4EqWZwaRABDlsNx/PPRkeJceGTpSvJVN3hcyj+TFk92AYvf3BflZH+wfdOL28emMnURE0rAloaxsVMuWDg+cqfzZcPNIGG8vhLrMyeOCL6nb4kxpx7oA65BPArGMx1zuLJXYz3JA67ajhxgJ00g1ssc444EFo6Piwmy0cV/q69v3Pf3+jYvTyWuYo1lPxcC1IUY7QyVmOM7kGkTzMoGMg042DoiBaC+mx2yI6vB3qcwZ7GZUzHjACGC/rHIxhAKY7ADonwPuk4iIrJg1xDmhWsAQPEYePczlHEaIos9nw9wsMnjxnFYaoCFZ2umplJkvQK2tQUlx6goFxlHI/h4h7WcrISAINaOCMlYWWkaCQYcBwkNZOXwGyO80FHLGQ9jSMJvgzB9kv3FBlopllu+J7GFY605OsaGEEJS3QSi4jcXHgtnx1XgN7zngsEkdTmfOVVuBcblDKiQX1qMS5IotqgnVc1WlWN5pxTJMCEpIWY8CqG3jNC/vzEkUwtPlXIumTIHJjhsw2mtMiHuDm0oloJyIcQLCmVHqtUfMNRU0oq8bW2k0QUcO3AEAqxiOUNf9p+dWwLw+mMbBG3U58zabZ3EzZPvi6SC2VRzby5TIyJCMH/6JWoD7ENwFJ4YYUxYuHGp+bz4KFTm8SN0fjk+v52hVCwCJmdYj3IrcsljrDyl1HJsDZCp98gbElIetNmhgHNCSF0eCpT8AFXeAkOa9WkKdOmsvdrZzoFMZ9bZ54iJT2zRsuA1eiXjJYnNXOpE4LD6Kesu3Tjgza3gEj3IfQFAC2eWhFjRAkYJsBXt1qlZQpyEmkdUQm82I2MFGG+hbm7e0RhtpnpbGTLYI3WyTdX4xpW61dfz3OQ0Ayw9r19eXf2VWjl+GdPQjCKuVyXYO5mnsiRNFaYPCD93J6HZOEVgDXB6qhEgYyBNSRSQ+lUy5ruoc1yBoWqE6DITzghhgDQDoQWnpXTjAluIle3I9hSkEdQ5h2BSQCHlSgAE0bs2hSZxzwrQijqSpNAmFgk9tocrglrdNjRDgzODkOXOSRJiqhGXwTMl/rRhnuxfghh8hgA3qzs3hUxx+Qfk+9sxUU+AENFJixDu5wP3Z2Q++UUscUyijPfGHjQHWoaDRTeuCgdvEcc6Q5zTGjxpr3kypTD3LulahkEiVQ0Uud7aAy/o0xQW5aVLDYd4H8NGHG/AQj4mIgJmUWXTQC2qDNQRjZsbGjQw2NjJgRyrHnXQeNRHVPA8ctGFrclA5ZfjvWipfpoTDV9pf/Mo7tai8BAxYdSmZGPJCMQFTWpMYPHtlOQBPR2iMkhAhz2NYDJd6ZCNc2cEIMCgcU4IorzPmtpGeVOEdLxGWJWzMW3I9oZLIoZothQvSdAbjJIByshu+TLG4wZPnYtfqHAOE9rGoBVVXfUDTy3JpshAJs9Y3GdDtCyGI45mIaloHN8gSZ7IgA5YkI/IsLi9EvorIyFbNGWU1hUDPhOA3MIKSYHtaZgkBUlwIwKELCi5YyNCEi6dTz6XMiERT4c8NML2NNxwY+ibFJTJfzVOhklbhy78vxYFRY6OGePdxFBeQGo/Ttm2idvj9N7prOu9lpHR4+w+GVMfJbyL1i7qYcJ4dXmh+hHTu6rwEVIXKy/3jC917PgtDHPf+4HLFy/DLeOsXv/3NDKcMEKDt/9ydhFVa3vb6W+SlbJz5eDfehLDb7kli2UP21H5PLLvoJbl0YU/X3uXpDdukMA9R3ZIg5YPa7jPnBKvek9oAUZs2ioqRNJgF7yG7jduXjkIFi8HtIyTBFdSCfwSxiDrAOFFXSgSmYbiW7EmMJZvKKHyvqeBWAl4rIYJ4i+nyEnDOsSYqP3Z2Cmm+ojmLOVZ3oLasKCQg0OlH7jsojowlBHhrWZMG8ZgecIl/090JhUTzPDKTZsjL8Ks75B+PcdGWcxWuqsTgxJfPAIMmQ98O4DLNML1eT5e96TK+E5n2sT+7xGEfsOCUMq4LxtPaKqR+y/DmvX8z5V16cNRvSNCt8xYZbduyqW5tcdfXHYZxk174Pl6WSXvbBgkTltO6rI2i5gMXKsXpV+jCUdpHtOQhiXr9NGHLbLbM8dV/vaF7vyH8UPNoJT33HPY7qH9U9Zgtr+f5sflGmx7Tsh5wMbabqmIr1hmL9uLm11wb8SIpzMogZaStvFCFB0fdUVmWA6CylZSjoRG7Khd75hwAga49NP7R/hwGgbtrf528Wpur4/Q2MDsDEsjHhf9HAH5wiwngoAgsmI42mvg6guvGh8gSfDcPyMolE3YVfvaTEOy9sjirvY5kuAF1PXQcKG2CmSYE2Uz7FV/vlFOqLTxVba3vldLnGeI0yrbRrSXNDVoxbYQqTaYOyPpWtaOxeKJkGHlkMzARIHfi73Qxk1VcJir4VbEnc27SBBGQiAVyaPwBpdQX5fEUZl8i3XFgAAPemXfJZaSwOHpSsq456Iv68nJHNz6UnWYVU1RnhpgOLA3W0Q/8GAIF0JgCgbb2Ch3opznsh1GwjVPAcoYPPemHoRLIXlmbMGR1HLSxAE8/soYUA9UJoW0mo4D5CB6/1wrDwrheWUZg/WhztWAJyxfJkKpFFwYpI5ItVqgDKNsoXg5sYmR2mYm3CijQwysks3cfwpdYgiszMKU8CoyqwS7YkmFzPoWww0V98buRp/lNF7S01tK/wYPu+Y1ZeUFJVXuKLo48fGECqTpEMJQqlgy9/ELGlEgo5qtYMLQdfDSEBUENDM2TzkYaavYwjVSuSmKdVWY1ks1WEmAh4FfIuVC4SDJ7KhjeaOJ9MhicTmo2aIHaeTEB2zcJdNwIFg0BzCqJBpP8GMn0GDBkxZsKUGXMWLFmxFoAjRao06XYGCnQyYsJmW4waN+YDrAwMJMik1QYNBQ4yIYugfYOv8B2xAwUGJiQhBV2ga+gFMUhBDv0wCMMwCuMw6a8qznNl8plPPvd1mEymp99LsrYJtKzQ22Orp0+4zRQq8tIvhrp5uqKgWxsTX1KsmIybUa+sKUntitW2ZxT0CrKC3kF2G1e9pFgxEbklV3Oyb0PuVhCODl7K1JzkrKW22rHL89V628/HtBNU7UB6hXWzouM2AbJlY9OyI9DG3NhVC9vYc90mRbz5xuQBtuNgY7Va26g7riIb+1A6fmPPLAAAAA==) format(\"woff2\")}.dcg-mq-aria-alert,.dcg-calculator-api-container .dcg-mq-mathspeak{position:absolute;left:-1000px;top:-1000px;width:0px;height:0px;text-align:left;overflow:hidden}.dcg-calculator-api-container .dcg-mq-editable-field{display:-moz-inline-box;display:inline-block}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-cursor{border-left:1px solid currentColor;margin-left:-1px;position:relative;z-index:1;padding:0;display:-moz-inline-box;display:inline-block}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-cursor.dcg-mq-blink{visibility:hidden}.dcg-calculator-api-container .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-editable-field{border:1px solid gray}.dcg-calculator-api-container .dcg-mq-editable-field.dcg-mq-focused,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-editable-field.dcg-mq-focused{-webkit-box-shadow:#8bd 0 0 1px 2px,inset #6ae 0 0 2px 0;-moz-box-shadow:#8bd 0 0 1px 2px,inset #6ae 0 0 2px 0;box-shadow:#8bd 0 0 1px 2px,inset #6ae 0 0 2px;border-color:#709ac0}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-editable-field{margin:1px}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-latex-command-input{color:inherit;font-family:Courier New,monospace;border:1px solid gray;padding-right:1px;margin-right:1px;margin-left:2px}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-latex-command-input.dcg-mq-empty{background:transparent}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-latex-command-input.dcg-mq-hasCursor{border-color:ActiveBorder}.dcg-calculator-api-container .dcg-mq-editable-field.dcg-mq-empty:after,.dcg-calculator-api-container .dcg-mq-editable-field.dcg-mq-text-mode:after,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-empty:after{visibility:hidden;content:\"c\"}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-cursor:only-child:after,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-textarea+.dcg-mq-cursor:last-child:after{visibility:hidden;content:\"c\"}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-text-mode .dcg-mq-cursor:only-child:after{content:\"\"}.dcg-calculator-api-container .dcg-mq-editable-field.dcg-mq-text-mode{overflow-x:auto;overflow-y:hidden}.dcg-calculator-api-container .dcg-mq-root-block,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block{display:-moz-inline-box;display:inline-block;width:100%;padding:2px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;white-space:nowrap;overflow:hidden;vertical-align:middle}.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-digit,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-digit{margin-left:.009em;margin-right:.009em}.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-group-start,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-group-start{margin-left:.11em;margin-right:-.01em}.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-group-other,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-group-other{margin-left:-.01em;margin-right:-.01em}.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-group-leading-1,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-group-leading-1,.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-group-leading-2,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-group-leading-2{margin-left:0;margin-right:-.01em}.dcg-calculator-api-container .dcg-mq-root-block .dcg-mq-group-leading-3,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block .dcg-mq-group-leading-3{margin-left:.036em;margin-right:-.01em}.dcg-calculator-api-container .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-start,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-start,.dcg-calculator-api-container .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-other,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-other,.dcg-calculator-api-container .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-1,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-1,.dcg-calculator-api-container .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-2,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-2,.dcg-calculator-api-container .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-3,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-root-block.dcg-mq-suppress-grouping .dcg-mq-group-leading-3{margin-left:.009em;margin-right:.009em}.dcg-calculator-api-container .dcg-mq-math-mode{font-variant:normal;font-weight:400;font-style:normal;font-size:115%;line-height:1;display:-moz-inline-box;display:inline-block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-non-leaf,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-scaled{display:-moz-inline-box;display:inline-block}.dcg-calculator-api-container .dcg-mq-math-mode var,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-text-mode,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-nonSymbola{font-family:Times New Roman,Symbola,serif;line-height:.9}.dcg-calculator-api-container .dcg-mq-math-mode svg{fill:currentColor;position:absolute;top:0;left:0;width:100%;height:100%}.dcg-calculator-api-container .dcg-mq-math-mode *{font-size:inherit;line-height:inherit;margin:0;padding:0;border-color:#000;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-empty{background:#0003}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-empty.dcg-mq-root-block,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-empty.dcg-mq-quiet-delimiter,.dcg-calculator-api-container .dcg-mq-math-mode.dcg-mq-empty{background:transparent}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-text-mode{display:inline-block;white-space:pre}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-text-mode.dcg-mq-hasCursor{box-shadow:inset #a9a9a9 0 .1em .2em;padding:0 .1em;margin:0 -.1em;min-width:1ex}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-font{font:1em Times New Roman,Symbola,serif}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-font *{font-family:inherit;font-style:inherit}.dcg-calculator-api-container .dcg-mq-math-mode b,.dcg-calculator-api-container .dcg-mq-math-mode b.dcg-mq-font{font-weight:bolder}.dcg-calculator-api-container .dcg-mq-math-mode var,.dcg-calculator-api-container .dcg-mq-math-mode i,.dcg-calculator-api-container .dcg-mq-math-mode i.dcg-mq-font{font-style:italic}.dcg-calculator-api-container .dcg-mq-math-mode var.dcg-mq-f{margin-right:.2em;margin-left:.1em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-roman var.dcg-mq-f{margin:0}.dcg-calculator-api-container .dcg-mq-math-mode big{font-size:200%}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-int>big{display:inline-block;-webkit-transform:scaleX(.7);-moz-transform:scaleX(.7);-ms-transform:scaleX(.7);-o-transform:scaleX(.7);transform:scaleX(.7);vertical-align:-.16em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-int>.dcg-mq-supsub{font-size:80%;vertical-align:-1.1em;padding-right:.2em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-int>.dcg-mq-supsub>.dcg-mq-sup>.dcg-mq-sup-inner{vertical-align:1.3em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-int>.dcg-mq-supsub>.dcg-mq-sub{margin-left:-.35em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-roman{font-style:normal}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-sans-serif{font-family:sans-serif,Symbola,serif}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-monospace{font-family:monospace,Symbola,serif}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overline{border-top:1px solid;margin-top:1px}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-underline{border-bottom:1px solid;margin-bottom:1px}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-binary-operator{padding:0 .2em;display:-moz-inline-box;display:inline-block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub{text-align:left;font-size:90%;vertical-align:-.5em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub.dcg-mq-sup-only{vertical-align:.5em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub.dcg-mq-sup-only>.dcg-mq-sup{display:inline-block;vertical-align:text-bottom}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub .dcg-mq-sup{display:block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub .dcg-mq-sub{display:block;float:left}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub .dcg-mq-binary-operator{padding:0 .1em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub .dcg-mq-fraction{font-size:70%}.dcg-calculator-api-container .dcg-mq-math-mode sup.dcg-mq-nthroot{font-size:80%;vertical-align:.8em;margin-right:-.6em;margin-left:.2em;min-width:.5em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-ghost svg{opacity:.2}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-middle{margin-top:.1em;margin-bottom:.1em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-l,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-r{position:absolute;top:0;bottom:2px}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-l{left:0}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-r{right:0}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-bracket-container{position:relative}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-array{vertical-align:middle;text-align:center}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-array>span{display:block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-operator-name{font-family:Symbola,Times New Roman,serif;line-height:.9;font-style:normal}.dcg-calculator-api-container .dcg-mq-math-mode var.dcg-mq-operator-name.dcg-mq-first{padding-left:.2em}.dcg-calculator-api-container .dcg-mq-math-mode var.dcg-mq-operator-name.dcg-mq-last,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-supsub.dcg-mq-after-operator-name{padding-right:.2em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-fraction{font-size:90%;text-align:center;vertical-align:-.4em;padding:0 .2em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-fraction,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator,.dcg-calculator-api-container .dcg-mq-math-mode x:-moz-any-link{display:-moz-groupbox}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-fraction,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator,.dcg-calculator-api-container .dcg-mq-math-mode x:-moz-any-link,.dcg-calculator-api-container .dcg-mq-math-mode x:default{display:inline-block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-numerator,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-denominator,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-dot-recurring{display:block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-numerator{padding:0 .1em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-denominator{border-top:1px solid;float:right;width:100%;padding:.1em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-dot-recurring{text-align:center;height:.3em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-sqrt-prefix{position:absolute;top:1px;bottom:.15em;width:.95em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-sqrt-container{position:relative}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-sqrt-stem{border-top:1px solid;margin-top:1px;margin-left:.9em;padding-left:.15em;padding-right:.2em;margin-right:.1em;padding-top:1px}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-diacritic-above{display:block;text-align:center;line-height:.4em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-diacritic-stem{display:block;text-align:center}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-hat-prefix{display:block;text-align:center;line-height:.95em;margin-bottom:-.7em;transform:scaleX(1.5);-moz-transform:scaleX(1.5);-o-transform:scaleX(1.5);-webkit-transform:scaleX(1.5)}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-hat-stem{display:block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator{vertical-align:-.2em;padding:.2em;text-align:center}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator .dcg-mq-from,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator big,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator .dcg-mq-to{display:block}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator .dcg-mq-from,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator .dcg-mq-to{font-size:80%}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-large-operator .dcg-mq-from{float:right;width:100%}.dcg-calculator-api-container .dcg-mq-math-mode,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-editable-field{cursor:text;font-family:Symbola,Times New Roman,serif}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarc{border-top:1px solid black;-webkit-border-top-right-radius:50% .3em;-moz-border-radius-topright:50% .3em;border-top-right-radius:50% .3em;-webkit-border-top-left-radius:50% .3em;-moz-border-radius-topleft:50% .3em;border-top-left-radius:50% .3em;margin-top:1px;padding-top:.15em}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarrow{min-width:.5em;border-top:1px solid black;margin-top:1px;padding-top:.2em;text-align:center;position:relative}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarrow:after{position:absolute;right:-.1em;top:-.48em;font-size:.5em;content:\"\\27a4\"}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarrow.dcg-mq-arrow-left:after{content:\"\";display:none}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarrow.dcg-mq-arrow-left:before,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-overarrow.dcg-mq-arrow-leftright:before{position:absolute;top:-.48em;left:-.1em;font-size:.5em;content:\"\\27a4\";-moz-transform:scaleX(-1);-o-transform:scaleX(-1);-webkit-transform:scaleX(-1);transform:scaleX(-1);filter:FlipH;-ms-filter:\"FlipH\"}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection .dcg-mq-non-leaf,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection .dcg-mq-non-leaf,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection .dcg-mq-scaled,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection .dcg-mq-scaled{background:#b4d5fe!important}.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection.dcg-mq-blur,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection.dcg-mq-blur,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection.dcg-mq-blur .dcg-mq-non-leaf,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection.dcg-mq-blur .dcg-mq-non-leaf,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection.dcg-mq-blur .dcg-mq-scaled,.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection.dcg-mq-blur .dcg-mq-scaled{background:#d4d4d4!important;color:#000;border-color:#000}html.dcg-calculator-api-container body .dcg-mq-math-mode .dcg-mq-selection .dcg-mq-nthroot-container *,html body .dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-selection .dcg-mq-nthroot-container *,html.dcg-calculator-api-container body .dcg-mq-editable-field .dcg-mq-selection .dcg-mq-nthroot-container *,html body .dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-selection .dcg-mq-nthroot-container *{background:transparent!important}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-textarea,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-textarea{position:relative;-webkit-user-select:text;-moz-user-select:text;user-select:text}.dcg-calculator-api-container .dcg-mq-editable-field .dcg-mq-textarea *,.dcg-calculator-api-container .dcg-mq-math-mode .dcg-mq-textarea *{-webkit-user-select:text;-moz-user-select:text;user-select:text;position:absolute;clip:rect(1em 1em 1em 1em);-webkit-transform:scale(0);-moz-transform:scale(0);-ms-transform:scale(0);-o-transform:scale(0);transform:scale(0);resize:none;width:1px;height:1px;box-sizing:content-box}.dcg-calculator-api-container .dcg-container{text-align:left;transform-origin:0 0}.dcg-calculator-api-container pre{white-space:pre-wrap}.dcg-calculator-api-container img{border:0;outline:none}.dcg-calculator-api-container input::-ms-clear{display:none}.dcg-calculator-api-container button,.dcg-calculator-api-container input,.dcg-calculator-api-container select,.dcg-calculator-api-container textarea{font-family:inherit}.dcg-calculator-api-container button,.dcg-calculator-api-container select{text-transform:none}.dcg-calculator-api-container button,.dcg-calculator-api-container input[type=button],.dcg-calculator-api-container input[type=reset],.dcg-calculator-api-container input[type=submit]{-webkit-appearance:button;appearance:button;cursor:pointer;color:inherit}.dcg-calculator-api-container button[disabled],.dcg-calculator-api-container input[disabled]{cursor:default}.dcg-calculator-api-container input[type=search]{-webkit-appearance:textfield;appearance:textfield;box-sizing:content-box}.dcg-calculator-api-container input[type=search]::-webkit-search-cancel-button,.dcg-calculator-api-container input[type=search]::-webkit-search-decoration{-webkit-appearance:none;appearance:none}.dcg-calculator-api-container button::-moz-focus-inner,.dcg-calculator-api-container input::-moz-focus-inner{border:0;padding:0}.dcg-calculator-api-container table{border-collapse:collapse;border-spacing:0}.dcg-calculator-api-container input::-webkit-outer-spin-button,.dcg-calculator-api-container input::-webkit-inner-spin-button{-webkit-appearance:none;appearance:none;margin:0}.dcg-calculator-api-container .dcg-background--light-blue{background:#d7e6ff}.dcg-calculator-api-container .dcg-text--dark-blue{color:#17396e}.dcg-calculator-api-container .dcg-text--centered{text-align:center}.dcg-calculator-api-container .dcg-text--uppercase{text-transform:uppercase}.dcg-calculator-api-container .dcg-unstyled-list{list-style-type:none;margin:0;padding:0}.dcg-calculator-api-container .dcg-unstyled-list li{margin:0;text-indent:0}.dcg-calculator-api-container .dcg-forced-color-none{forced-color-adjust:none}.dcg-calculator-api-container .dcg-unstyled-button{font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible;text-transform:none;-webkit-appearance:button;border:none;background-color:unset;padding:0}.dcg-calculator-api-container .dcg-unstyled-link{text-decoration:none!important;color:unset}.dcg-calculator-api-container .dcg-unstyled-heading{margin:0;font-size:inherit;font:inherit;font-weight:inherit}@media (prefers-reduced-motion){.dcg-calculator-api-container .dcg-container *,.dcg-calculator-api-container .dcg-container *:after,.dcg-calculator-api-container .dcg-container *:before{transition:none!important;animation-duration:0ms!important;animation-delay:0ms!important}}.dcg-calculator-api-container .dcg-container.dcg-default-border{border:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-container a,.dcg-calculator-api-container .dcg-container a:hover{text-decoration:none}.dcg-calculator-api-container .dcg-container.dcg-no-graphpaper .dcg-grapher,.dcg-calculator-api-container .dcg-container.dcg-no-graphpaper .dcg-resize-list-btn{display:none}.dcg-calculator-api-container .dcg-container .dcg-grapher.dcg-scale-horizontal{cursor:ew-resize}.dcg-calculator-api-container .dcg-container .dcg-grapher.dcg-scale-vertical{cursor:ns-resize}.dcg-calculator-api-container .dcg-container .dcg-grapher.dcg-scale-both{cursor:nesw-resize}.dcg-calculator-api-container .dcg-grapher-focused{box-shadow:inset 0 0 0 3px #2f72dc99}.dcg-calculator-api-container .dcg-graph-outer{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0;outline:none}.dcg-calculator-api-container .dcg-container.dcg-no-expression-topbar .dcg-expression-top-bar{display:none}.dcg-calculator-api-container .dcg-container.dcg-no-expression-topbar .dcg-exppanel-container{padding-top:0}.dcg-calculator-api-container .dcg-container.dcg-no-hyperlinks a[target=_blank]{display:none!important}.dcg-calculator-api-container .dcg-container.dcg-inverted-colors{filter:invert(100%)}.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-grapher-3d,.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-colored-icon,.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-color-swatch,.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-color-tile>.dcg-icon-check{filter:invert(100%)}.dcg-calculator-api-container .dcg-container{width:100%;height:100%;position:relative;background:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000);z-index:0;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;overflow:hidden;font-family:arial,sans-serif;font-size:16px}.dcg-calculator-api-container .dcg-container.dcg-is-interactive,.dcg-calculator-api-container .dcg-container.dcg-is-interactive .dcg-grapher{touch-action:none}.dcg-calculator-api-container .dcg-container *{box-sizing:border-box}.dcg-calculator-api-container .dcg-container .dcg-text-selectable{-webkit-user-select:text;user-select:text}.dcg-calculator-api-container .dcg-graphpaper-branding{position:absolute;bottom:0;right:-8px;width:110px;margin-left:-55px;display:none;z-index:21}.dcg-calculator-api-container .dcg-fullscreen .dcg-graphpaper-branding{display:block;opacity:1}.dcg-calculator-api-container .dcg-fullscreen .dcg-graphpaper-branding .dcg-powered-by,.dcg-calculator-api-container .dcg-fullscreen .dcg-graphpaper-branding i{position:relative;text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}.dcg-calculator-api-container .dcg-expressions-branding,.dcg-calculator-api-container .dcg-graphpaper-branding{text-align:center;font-size:75%;text-decoration:none;line-height:1em;height:45px;overflow:hidden}.dcg-calculator-api-container .dcg-expressions-branding.dcg-unclickable,.dcg-calculator-api-container .dcg-graphpaper-branding.dcg-unclickable{pointer-events:none;z-index:-1}.dcg-calculator-api-container .dcg-expressions-branding .dcg-powered-by,.dcg-calculator-api-container .dcg-graphpaper-branding .dcg-powered-by{color:#0003;text-decoration:none;transition:color .3s;display:block}.dcg-calculator-api-container .dcg-expressions-branding i,.dcg-calculator-api-container .dcg-graphpaper-branding i{color:#0003;font-size:650%;margin-right:2px;line-height:18px;transition:color .3s;height:18px}.dcg-calculator-api-container .dcg-expressions-branding a,.dcg-calculator-api-container .dcg-expressions-branding .dcg-edit-branding,.dcg-calculator-api-container .dcg-graphpaper-branding a,.dcg-calculator-api-container .dcg-graphpaper-branding .dcg-edit-branding{cursor:pointer;display:block;height:50px}.dcg-calculator-api-container .dcg-expressions-branding a.dcg-hovered .dcg-powered-by,.dcg-calculator-api-container .dcg-expressions-branding .dcg-edit-branding.dcg-hovered .dcg-powered-by,.dcg-calculator-api-container .dcg-graphpaper-branding a.dcg-hovered .dcg-powered-by,.dcg-calculator-api-container .dcg-graphpaper-branding .dcg-edit-branding.dcg-hovered .dcg-powered-by{color:#aaa}.dcg-calculator-api-container .dcg-expressions-branding a.dcg-hovered i,.dcg-calculator-api-container .dcg-expressions-branding .dcg-edit-branding.dcg-hovered i,.dcg-calculator-api-container .dcg-graphpaper-branding a.dcg-hovered i,.dcg-calculator-api-container .dcg-graphpaper-branding .dcg-edit-branding.dcg-hovered i{color:#127a3d}.dcg-calculator-api-container .dcg-narrow .dcg-graphpaper-branding,.dcg-calculator-api-container .dcg-no-branding .dcg-expressions-branding,.dcg-calculator-api-container .dcg-no-branding .dcg-graphpaper-branding{display:none}.dcg-calculator-api-container .dcg-button,.dcg-calculator-api-container .dcg-btn-blue,.dcg-calculator-api-container .dcg-btn-red,.dcg-calculator-api-container .dcg-btn-light-gray,.dcg-calculator-api-container .dcg-btn-gray-outline,.dcg-calculator-api-container .dcg-btn-primary,.dcg-calculator-api-container .dcg-btn-secondary,.dcg-calculator-api-container .dcg-btn-pink,.dcg-calculator-api-container .dcg-btn-white-outline{text-decoration:none;padding:0 20px;-webkit-appearance:none;appearance:none;-webkit-user-select:none;user-select:none;border-radius:3px;font:inherit;line-height:2.125rem;border:none;cursor:pointer;white-space:nowrap;text-align:center}.dcg-calculator-api-container .dcg-button.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-blue.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-red.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-light-gray.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-gray-outline.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-primary.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-secondary.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-pink.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-white-outline.dcg-focus-visible{outline:2px solid #8c29be;outline-offset:3px}.dcg-calculator-api-container .dcg-btn-red,.dcg-calculator-api-container .dcg-btn-blue,.dcg-calculator-api-container .dcg-btn-primary,.dcg-calculator-api-container .dcg-btn-gray-outline,.dcg-calculator-api-container .dcg-btn-secondary{color:#fff;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #0000000d}.dcg-calculator-api-container .dcg-btn-red,.dcg-calculator-api-container .dcg-btn-blue,.dcg-calculator-api-container .dcg-btn-primary{white-space:nowrap}.dcg-calculator-api-container .dcg-btn-red.dcg-hovered:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-red.dcg-focus-visible:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-blue.dcg-hovered:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-blue.dcg-focus-visible:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-primary.dcg-hovered:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-primary.dcg-focus-visible:not(.dcg-disabled){transition:background .2s}.dcg-calculator-api-container .dcg-btn-red.dcg-depressed:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-blue.dcg-depressed:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-primary.dcg-depressed:not(.dcg-disabled){box-shadow:none}.dcg-calculator-api-container .dcg-btn-red{background:#ce4945;border:1px solid #aa3a37}.dcg-calculator-api-container .dcg-btn-red.dcg-hovered:not(.dcg-disabled),.dcg-calculator-api-container .dcg-btn-red.dcg-focus-visible:not(.dcg-disabled){background:#bc433f}.dcg-calculator-api-container .dcg-btn-red.dcg-depressed:not(.dcg-disabled){background:#b03936}.dcg-calculator-api-container .dcg-btn-blue,.dcg-calculator-api-container .dcg-btn-primary{background:#2f72dc;border:1px solid #4380e0}.dcg-calculator-api-container .dcg-btn-blue.dcg-disabled,.dcg-calculator-api-container .dcg-btn-primary.dcg-disabled{opacity:.5;pointer-events:none}.dcg-calculator-api-container .dcg-btn-blue.dcg-hovered,.dcg-calculator-api-container .dcg-btn-blue.dcg-focus-visible,.dcg-calculator-api-container .dcg-btn-primary.dcg-hovered,.dcg-calculator-api-container .dcg-btn-primary.dcg-focus-visible{background:#2457a8}.dcg-calculator-api-container .dcg-btn-blue.dcg-depressed,.dcg-calculator-api-container .dcg-btn-primary.dcg-depressed{background:#193d75}.dcg-calculator-api-container .dcg-btn-secondary{background:#fff;border:1px solid #2f72dc;color:#2f72dc}.dcg-calculator-api-container .dcg-btn-secondary.dcg-hovered,.dcg-calculator-api-container .dcg-btn-secondary.dcg-focus-visible{border-color:#2457a8;box-shadow:0 0 0 1px #2457a8;color:#2253a1}.dcg-calculator-api-container .dcg-btn-secondary.dcg-depressed{border-color:#193d75;box-shadow:0 0 0 1px #193d75;color:#17396e;background:#2f72dc1a}.dcg-calculator-api-container .dcg-btn-pink{background:#b92a73;color:#fff}.dcg-calculator-api-container .dcg-btn-pink.dcg-disabled{opacity:.5;pointer-events:none}.dcg-calculator-api-container .dcg-btn-pink.dcg-hovered,.dcg-calculator-api-container .dcg-btn-pink.dcg-focus-visible{background:linear-gradient(0deg,#0000000d 0% 100%),#b92a73}.dcg-calculator-api-container .dcg-btn-pink.dcg-depressed{box-shadow:0 3px 3px inset #0003}.dcg-calculator-api-container .dcg-btn-gray-outline{background:#fff;border:1px solid #666;color:#666}.dcg-calculator-api-container .dcg-btn-gray-outline.dcg-hovered,.dcg-calculator-api-container .dcg-btn-gray-outline.dcg-focus-visible{border-color:#454545;box-shadow:0 0 0 1px #454545;color:#454545}.dcg-calculator-api-container .dcg-btn-gray-outline.dcg-depressed{border-color:#000;box-shadow:0 0 0 1px #000;color:#000;background:#0000001a}.dcg-calculator-api-container .dcg-btn-white-outline{border:1px solid rgba(250,250,250,.8);color:#fafafae6}.dcg-calculator-api-container .dcg-btn-white-outline.dcg-hovered,.dcg-calculator-api-container .dcg-btn-white-outline.dcg-depressed,.dcg-calculator-api-container .dcg-btn-white-outline.dcg-focus-visible{border-color:#fafafae6;box-shadow:0 0 0 1px #fafafae6;color:#fff}.dcg-calculator-api-container .dcg-btn-white-outline.dcg-depressed{background:#fafafa1a}.dcg-calculator-api-container .dcg-btn-light-gray{box-shadow:inset 0 1px #ffffff40,inset 0 -1px #00000005;background:linear-gradient(var(--dcg-custom-background-color, #f6f6f6),var(--dcg-custom-background-color, #eff2f3));border:1px solid rgba(206,206,206,.8)}.dcg-calculator-api-container .dcg-btn-light-gray.dcg-hovered,.dcg-calculator-api-container .dcg-btn-light-gray.dcg-focus-visible{background:var(--dcg-custom-background-color, #eff2f3);border:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-btn-light-gray.dcg-depressed{background:var(--dcg-custom-background-color, #ccc);border:1px solid #999;box-shadow:none}.dcg-calculator-api-container .dcg-primary-link{color:#2f72dc;cursor:pointer;text-decoration:underline}.dcg-calculator-api-container .dcg-primary-link.dcg-hovered,.dcg-calculator-api-container .dcg-primary-link.dcg-focus-visible{color:#2253a1}.dcg-calculator-api-container .dcg-primary-link.dcg-depressed{color:#17396e}.dcg-calculator-api-container .dcg-inverted-colors .dcg-btn-red,.dcg-calculator-api-container .dcg-inverted-colors .dcg-btn-blue,.dcg-calculator-api-container .dcg-inverted-colors .dcg-btn-primary{box-shadow:inset 0 -1px #ffffff26,inset 0 1px #0000001a}.dcg-calculator-api-container input.dcg-input-blue-outline,.dcg-calculator-api-container textarea.dcg-input-blue-outline{outline:none;border-radius:3px;border:1px solid #ccc;padding:7px;-webkit-appearance:none;appearance:none;font-size:inherit;box-sizing:border-box}.dcg-calculator-api-container input.dcg-input-blue-outline:focus,.dcg-calculator-api-container textarea.dcg-input-blue-outline:focus{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container input.dcg-input-blue-outline::-ms-clear,.dcg-calculator-api-container textarea.dcg-input-blue-outline::-ms-clear{display:none}.dcg-calculator-api-container .dcg-navigation-arrow{color:#999;font-size:170%;text-decoration:none;margin:0 -5px -5px;padding:10px}.dcg-calculator-api-container .dcg-navigation-arrow.dcg-hovered,.dcg-calculator-api-container .dcg-navigation-arrow.dcg-focus-visible{color:#666}.dcg-calculator-api-container .dcg-navigation-arrow.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-blue-link{color:#2f72dc;cursor:pointer;text-decoration:underline}.dcg-calculator-api-container .dcg-blue-link.dcg-hovered,.dcg-calculator-api-container .dcg-blue-link.dcg-focus-visible{color:#2253a1}.dcg-calculator-api-container .dcg-blue-link.dcg-focus-visible{outline:2px solid #8c29be;outline-offset:3px}.dcg-calculator-api-container .dcg-blue-link.dcg-depressed{color:#17396e}.dcg-calculator-api-container .dcg-red-link{color:#c0504d;cursor:pointer;text-decoration:underline}.dcg-calculator-api-container .dcg-red-link.dcg-hovered,.dcg-calculator-api-container .dcg-red-link.dcg-focus-visible{color:#ad1a1a}.dcg-calculator-api-container .dcg-red-link.dcg-depressed{color:#860606}.dcg-calculator-api-container .dcg-gray-link{color:#666;cursor:pointer;text-decoration:underline}.dcg-calculator-api-container .dcg-gray-link.dcg-hovered,.dcg-calculator-api-container .dcg-gray-link.dcg-focus-visible{color:#333}.dcg-calculator-api-container .dcg-gray-link.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-shared-tab-gray-underline{text-align:center;display:inline-block;padding:5px 0;margin:5px 0;color:#666;text-decoration:none}.dcg-calculator-api-container .dcg-shared-tab-gray-underline.dcg-shared-tab-always-underline{border-bottom:3px solid #e2e2e2}.dcg-calculator-api-container .dcg-shared-tab-gray-underline:not(.dcg-shared-tab-always-underline).dcg-hovered,.dcg-calculator-api-container .dcg-shared-tab-gray-underline:not(.dcg-shared-tab-always-underline).dcg-depressed,.dcg-calculator-api-container .dcg-shared-tab-gray-underline:not(.dcg-shared-tab-always-underline).dcg-selected{padding-bottom:2px}.dcg-calculator-api-container .dcg-shared-tab-gray-underline.dcg-hovered,.dcg-calculator-api-container .dcg-shared-tab-gray-underline.dcg-focus-visible{border-bottom:3px solid #bbb}.dcg-calculator-api-container .dcg-shared-tab-gray-underline.dcg-depressed{color:#000;border-bottom:3px solid #999}.dcg-calculator-api-container .dcg-shared-tab-gray-underline.dcg-selected{color:#2f72dc;border-bottom:3px solid #2f72dc;cursor:pointer}.dcg-calculator-api-container input.dcg-shared-input-blue-outline,.dcg-calculator-api-container textarea.dcg-shared-input-blue-outline{outline:none;border-radius:3px;border:1px solid #ccc;padding:7px;-webkit-appearance:none;appearance:none;font:inherit;box-sizing:border-box}.dcg-calculator-api-container input.dcg-shared-input-blue-outline:focus,.dcg-calculator-api-container textarea.dcg-shared-input-blue-outline:focus{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container input.dcg-shared-input-blue-outline::-ms-clear,.dcg-calculator-api-container textarea.dcg-shared-input-blue-outline::-ms-clear{display:none}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem textarea.dcg-smart-textarea,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-displayTextarea{font-size:113%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionimage .dcg-image-loaded .dcg-mq-math-mode{font-size:130%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-poi-label{font-size:150%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-poi-label .dcg-pt{border-width:8px;border-radius:8px;margin-left:-4px;margin-top:-4px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-poi-label.dcg-hole .dcg-pt{border-width:4px;padding:5px;border-radius:9px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-poi-label:not(.dcg-tracept) .dcg-pt{border-width:8px;border-radius:8px;margin-left:-4px;margin-top:-4px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-mq-math-mode,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-slider-container .dcg-mq-math-mode,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-mathquill-braille{font-size:150%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-mq-placeholder{margin-top:-.88em}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-fade-container .dcg-evaluation{font-size:135%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-fade-container .dcg-evaluation .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-fade-container .dcg-evaluation .dcg-mq-math-mode,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-fade-container .dcg-evaluation .dcg-mathquill-braille{font-size:100%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-fade-container .dcg-main:after{width:2px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-create-sliders{height:30px;line-height:30px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-create-sliders .dcg-msg{font-size:100%;padding:2px 0}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-create-sliders .dcg-btn-slider{font-size:120%;height:30px;line-height:30px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expressionitem .dcg-slider{bottom:30px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-display-domain{bottom:12px;font-size:110%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-slider_menu{bottom:6px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-slider_menu .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-slider_menu .dcg-mq-math-mode{font-size:120%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-slider_menu table{border-collapse:collapse;font-size:20px;margin:0 auto}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-slider_menu table input{font-size:81%}@font-face{font-family:dcg-icons-2024-08-02;src:url(data:font/woff2;base64,d09GMgABAAAAAFK0AAsAAAAAqVQAAFJhAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmAAg1gRCAqCwEiB/h4BNgIkA4Q0C4IcAAQgBYQiByAbTYazETXYLgBIXVv+00RRB7WqAYmiilSZ/V8OOJEh4EJ36yNtYpqYxosPaosw0A/1CXojCL+qZmxV3QjGyX0yRBIC/PPP/0Xvmd2AEeE0RFi8HKGxT3L95/k5+1/7nHsvEQrn3IRCqrmXEFqPtUOdhKTOPEiTtP6LJMx4lbTzpEIpVWNEazJeH1emTyp/JiMmqKR7XmmVV9m+5FoOvRIOY4flI4xFuv/c/J9JSPvP3AT5KrayJBdKDWhLn8HzSjYz27nbJDwTXvkqK7Gl2fD83P7PXd5F04MxxqAHA0bk1sACthFDQEFoyVAURErfUxAUsMEgxMR6ggXaoK/wlZhPn/8rYCUbZmuwgjFdc9mv8lENZ0+1DMoYcJNEMsz60Vp7mdmzPX9VQxLe8RRJhRACDLWZMa1D67GKyYk5MKty6nyYL3xHSIisgEeq0ZW6JRnUaSVrb2XA334apFVayXawjc3BQupc7PgQAgIVp9Y0wW0J3T3oXgeQDSAwwCX5/zfV/PY9LKEFN5KOlJy4ztrKqWgUHGJRxipVzu/dd2cw780MOTMAucCAXIGgtAbADUNQe5YE12cJSquFaDjJIYYqJAAKBikHkFr7QNImSo4hVXYbS5cu3brp3LQhpF+03Ydef0MLoZd8QaUnVQSpSVEVCKQgc09WztgpN1/W8utLSCuuBVzar5RF0MN1ruN//tR+j4SwcU8lCaZckIwEEuB4dkFp5W/31WM4pep/J9asE40J6RoFEuQOyP/pAFcU2gIVYO3sFQCbN5dGnyNI1tLVlkhkIqic2GnkFzsvgkrOUD01MN2QGlNOQ1SRHwDTYTo3B52bw9ap4P5kH7i/+9cCgjsHctY5pxw/F5YT56Q5RS4yp82l5LJyK3IFuaJPeZ3fjUYAoHTZ6FzvnEvONyeqLc9F5FQ5fW55LjeX/zgA7A/sfMJSeqHnX7777JOPPnjvnbfeeGXB5ivzOe5skp2Zz8I/hB02XYTdhB+SAxEo7Tk0sVaIpS2k0057UhfKp17qS8PoICqiYlpBpVRKh1M5VdARNIJG0lFURbV0DNXTFBqjy2kWnUJz6Qo6nebTAjrTKkIEs9s/BYR3JMxBwbbeHJe9AQTqNKKWAjZ2lXSLsBGRCiUyZpToYm/jcaCU47BAXToZGOVAmAqSVoRAc9LsEUQSb3lA+RQLkUA1rGuTda+ZxFomthI2mjQ0ASaYQjdQEc9shpWbjGDaJMqomGJAbhXmOEuddCdGOLBgSArYDgCdS/EQmBlgdsN5x8jfy6osq3QHqcNBl+1tbE97kzD7KW+gkAm53UhACVfK5Uo6W24VqCik5DQw0UK/CpB2FBUJKe5JNbQTnRCleI3QPSHPHcMENXTdqt8hSzTNIQIRq9puU1txQu21QLH8sF9jmuPrW/S7XFqR94tRWc5POUT3FR7L5f9dy56D6vsDfRLggDezVFF/OIpiVVCH77yX5EBITeqGOOsLs5jFBKDYFlPNsRZUQ8VGwdZ+DmL+EP0TS0skbwJNu5yb4KR1Qy0nit122yc6JEcoJOkecSMZ5/r9BSMcg0i5MMR/qgG1gL9qYbJWIBOFjg6kSrca9xE8slvXs1aHlJQlZaomeyQ7JwCypYhniNxC4a8N58+qmltgGZYFLCiKyxXP978t+DL/yeUvWrWjZ4DmN20AHEp/2BciQ6S0z9Pi3o0k3fxAHGsZNHfDZiGB0pW2qdaIYhut3iJ5xMncSQgEq9A+cYXa8FaP8FKhLJBDxAv8dwfEEyhFI6zP2n8asJtvRihjFOoQAKkPYInNv5JPVMwjiMhFRFGI8H/9LDj9yIVaR5PNhWywH13OwDBUJnmlpDcGyT0+3WZ671dtEDMXqtnHW67/9VVJZsEnPzVP8RpBhWnUHGcgTJSqbxlXGQn/WarFOZmRl8KUnLpEq/mF0uU/HVio09+E0al7MYl4pHlIaiIdUKRLkt24ryXgNFxGGbwUc2JEoEiCaOetrBBkyYikTFshJToZDsNGI8wcpsOhAZJi/6GgKRHgce1odZjlc7wvM6rXlrgTjUlZysv+4rhTnmoxUd/nvjFHRVltpLzZL+g4j8RR3j47VsqPuarEVnx9iV2iaFybrRwvoXe/iGJsVS71LxypSHeKcGnynhcUUHO83f6H3zAHwAJVgYlVAiEUhHb7kFxQ7Nwop58xmcKOu2cuMHalQxt/j76pRBS5ZMYkua9UhYnz76PHl/v07WU6DWCahDdkvBCr/61kSaYn22bL/f0P421+Slv+QI3y0v801AAosnb0gmCm7v0RPGtqKxlGuvckfaKin/GkXF3P6zTcYXS8Iv8UUJ63ZJ2kt7jOVvysSQpmp49S4WA/es0KFKu61INnxOpW0tt39HguL0fO6+3d7G7d5sPZXEoo4di3aFTZ5lfLwvHVwv9N7JJBktRGt8o/AxoWtfXF8bKywd3XxxXdbahz/MK8dqcP6xi/spoUUf5kVcyuOXWVx7a+UzxfqaxZoR/ouR3dhzHV5v42OVRUTji7k2nmZOfwgiwmKbkD28ZuyR25rzXPDyh/eoj6CLj01wh9QUYJAKyom0bkOI/s9qIBQovGI0zIN/u+VUhFb0YgqKGqgeKiKz+E6Ag7aWhOXxbuTzwrcYThGpZMSrz/YOxhMvDxA/txBYSG433oQI7BOniouX3KqrzqtjRLbs0pLEJjm6H5XZAgtdFG7jIIWo9CgTmbK+Tk7pVARrG7hxooKUF9uqENhHeBDBzc4AbvdK6kqsqR/lJdBX1HwWRqvUfhc3K/i9QpXK149bCiRFSUYrWaV9rkY+yfawwjPpzmNPv74GNZ+Z2k/J5EJXepSh4sSnj/99wkEfUNABR6FktRCUTgNQNkCO97j4dIx1Am2I3ekzsBy4VZbQh41KjJUxK11igILqMBnDzSCEl6jHGO+Zk2SmeWUD2foT3LKGTyOwHGR3CgZDHOUdhQbo5gOCXIs3OK0g49emFI0jlelxnVL06+9SdmLi/rs+NG+aWmHiA8Jx/K5D4XTXsZT768a/n6DXXq5/+Z3VeQ9mQuK1kRek98yzJGESShdrsgmCKOb38dvtYR8QqLPhrdOiz4lZl5Pm9pcsX3mVo7r4dmP1x6K8jcBvw0nH6KnK6SLOA0wA7d6QnZyB+q+4w4VWfjZNmXrDJLumQao5OKL/MNGYnd3BqGjKn0hokvpjKjGD43pRZVgVanVBJMDdHqGRd9an7z7elxSu8d2nyOmTvdH0pSl2P+itNOXbSirJzZac7Nq8ORUEhwWlDdrJ8q9bJ5Gfsagsy0Rx1tOYkNp6nlegZ6rtCpk42VMR+nPtWVokMFuD5WifE+QkhDyQJdCuREKJC4NXjlzExg/vKBPT0A9vV8oHd1/sBO1aFU7QTuFwUkq9uDkHs3Dtd69/JnpxlczVfgwWhYshP3yY8a6vaVBq4GJbjOjlZvh7q1kRbYPewhZrFsNaGTRzh5ghhbVpqzEqesjVvOXMndoJaPFgxDIo4mCDNe7iG/bkKJpv7n1CLUZy1vMAfOMQUZXHgacqsNhDiKSnNXUyMEWy1HIcBhAUKzkwpY59Rk+jHqRyeCxEAL2niuToOM1XPO6hptW1iDxcoBKZpp2W4G7OtVgnOas4xVBT9lKDGJ2Ky5wFsxDmwXWHPBz+J4vmjr05LWrHizunVQaj6QnpR4KqasoaioYn0nBj+uyfgWpKdpeZqt8oxoVeNokL/M1mlC1O3w26Vt18tmEgyOGTnvJJrHvhU7TT/IxpmGblZu3BxelO3aLl91f8gL6zJDgqT3VtapHr0gZte2reMd/lWdWpXqn+5CEjMnhzqzEv+vh/MaigxGq2I/uJE/svEZ6QNdQqU1Aj+eWmSlK7WNDbCZ4mz9d3UniQk2jG0NHN+iXAVjoMRc2Y7wCEmP4mUJmZzbBpg4giggpRLmLAH7yYk2qsxek40iQLPhOPPCKDYhLo3LjbzmIB0X2BxjxQSAPrEGESkXSUESB61AX1GrMIOdbdMiGwQR041rqLwgHI4CX8EWNvISQU7gAwbXQtgUd9DWVq19GhNJkJkmsnhdsMgUqCdP8EKKoN5YwFoAYGCKiCRjqH5gTlPWucolw80+tkMki2AForaM4Ex8EzFIgJMwzMqwGxTEwSw2PAeiqxkX13QpVlFbDb2QERjWWk+JiwslkLiXCqnHSoRGoZCaeDyzjutJkMHqXKWKgphSkKhkTaJfTUGnltyr6kG2kKRoUSpKl1hFe1WRHEiZLMIgRA5oLsIDxbPfjHY7GD3aC7ZJXF4wYg2/wkRSB7Ye1MXCyrKdiuWHapdOkyIzHht1I6dGhjmRS8/Z+4EfE6o+z3q0fBpoYUOdkxWRjTEfSPjKnZZj/oLQe0EXDnw94a/6QsFTIVQluL9ONr3sCoadZJXfFTR0kGjAkWgY8ruHwONRFD8CcU76EhhEEOI260dgu3ZqYhmeFUXRcAG87OKkEBTYAkqe8o+cTHkY5TD5q/VxCfuTOGQUMKEeLxrTxE0nmiIjArPVfqeGwINk+mFssEKqUJ2FK0PFvDYJIAW4A5Spd5PGdFVUgVa0Xih8eFaYCQoYLuEuyvWZowdzLNmkECJVttW0RxVeuiztbgxPEBNygLQGZL3QJOMNR+dQ/lf8YwGGEggnSoV4Cs5hWlUmjFFoW0NCvYhQAl/YjriHJNLZzVPKDr1gXqezILMuI3Eb65KdhRvxGJTjeRyZXbPrswoLW98+3Y3Qzcs2W65vf56BpUVWozhF71ACugQalLSZM3D1nBFv4uRk7pQg6bUiIqqjOKs27yDiJRtGUMgmEm/i65AGpKNII/ylqIMRfeU2A7WQZqjY2TEWQ8UMed70R9EgIl9tQ/zoRc3bcl43XV23mo/HbNeWsTMNtIWfbWvA+45IfyY0rKGP/NYLFOJVbxoClqPzvaUXZkAUZTU+CsIIYEY1AeKlMBNZyhpxwoepOat8iO9WpJAujvGL2BhmtLQt59ujUGzZMIerUF62uLyrSD2m1Jm7uImBgzgGiA0VSj1msGUN1IlSx6xkfX7CmUCO50VGmAj/DeBA/hT7Ws/nfeXCb8YywL9Yyfwr9XIxSX/uh+NSoDs56pssNkaVKeDbX8gMw6WKgdr0AMjOkm8xAlry2kDLVd9gVKFs8z10/es1ovFl6xWcPNO9756y23DjketKMBdJ8tsNf7TvCWlAoweqMInr6TFts8hculnI/4uOJV+tcQZvte1/SMmfzL5F3o3rfRH+Tl/yZfqmwgpBzLPr+9vN+/EtqF3CHmflepnOewSDHCUL/Qqr1NhK35N1q1U0pKAmox48jOvD9o1TuDFp0miX/8eyNU9jpKQEVb5g900gAnCx7aJpy5QDpqjtaqhoqPeet3R4AEbOr/mN1oglMs4xeFPNsWn8tRVAdwGtEMVay3ExRKeLe/dp2XScAeCSfjIvyuraGPoywQ03Ah4P/zRjNc3ZjPhHq57g51FccBP/uJ0WI6cvYUZar9TKJsIhjYKZHD6nNnde2715C7UzOSBN4E3o6/syEGGII8wGYfaBQlUVRUppJZl9Tl+UJBg/iKeEbNSN5yU87C4Y57pyMgK4yHHpfUxlQv4aJyBmw+x0FysOdFhLmd7ZKVhUAN1vRvsNYfODwwkrGZ4gaQF4eklcEZTazOlu+K8pwsOdxYzEztIK2RAVDR/AH5mOqDAYNXyZWFI7ZK1e/VhaOuaix4Zax6ZUMUHkeOcmNwpUC0t4beU0lJl102UCro70sOX9poo29TOSXm+p4r9I3liUSb9e62ZvL84Ovlm65ILpnvritTGM9A2sw8813Z22DYSitdKk+5YVD6P6hiBtFISxPjhCzg/p225/mjXSWnUkAjW9f4ouwFTuq/aD8Mnt2+kbYMDuEMvNEaYaC9fLC+6N7g/9TFKMj1lZHCTHY7Mi9jMNy8OxIpOYFiWpXjbBfHZKetnDYOQVq1MNcMrNQkddQ6Qe4pmzMNReNW9SJ1V40ddfFGVy44TI8ju9k1VBL1y9hkrt8u76/qIyspuntkzrsrQn1N2GXt7cXNffBF6V2DSUO6s17tSPlz97OAZ3KiCblW1Nz/yOvGRgIZCZvjo0/6WsNTsQLEd1pESKZLHOQrMy9/3nLf2RMXYFOpxXFOscu765zv39B9vTIwPLfAFYqi7Zsr4qpfK5qSzZ6ENFjY2Tb5xxEpyfU7Z7d/XsjEic9UQYHBQdvG1OShIX5jVZe0Kzp4Oxmj3MxbKv7VE8e25WxoVdjTPrxIVQh5Mb6advGL8jL4+qO0f9EWh/tnlKlyUj6tR+o636cN049gwZCdLnvSC9JSM6TrPk6smqWNw4lk/Xx0Vx/WBTJ074OZVxFG2zNUPomVtjR+3aMcXpGkaChTZbzSz41PVf5+FwqrxSMDRjoziED+me1LPtJRc2MtlYcAHWd1jzm8LlNiQBFAIoXZqHvNNu/9wYQSEpCcC1oM3KZBHuUd/u7cRryAqVaq6avRGVkkUvIpRYPgJXzv1P/hAj8cywh98HdIY42CKjS5MNqdbacWwMhEwxla/fL2jU75iQZELMLigUqmjckDOlrrtuu6AmsckNjOc3K97Ovisi/SwbEngMvrY1jtw3jZUn8zrMXuNSvkQWe5zBGqNdv4iLOUqAR1b4FihTjek1GxrCHRs80WUbvVp9L/Rly7Q2c2v+5wHWp6eXdAtZXjBhV+BClPFnL5yYnqCBQnrywpDk8YRZbxzvaDB33qiCZdvpHqvFb/NnJf5FTFOZ2qmaRIFFq9cxfH+SjvvpMAYr0+ozDSphTjudbJud3vxlT28PY3lzVwFF6pyzZYTdanlrXBv+2awKZfpK0WugGvGz872YwBtU1EtviB7ZIE+AUFx00QHt3xA83NFI7tnz0udkX8qm/i2Mt8kxZbrN+8Dh6oJcBMxmYbFn0v9RPy6ekVzJ3q3JB8Y7V5slXaYqa6pb8kEzLNbaGY6rzNZJ/xyXMi9G4z2OwonjoU01sv251eraqhsjrNCCzozKK3ia6VlNNuR0WTpDgvxn+J/OmWS/z9Ar3XQGqjTmX3BVyLJm5WphP/WXbfafgYm5gSId2JN/rSh6jV9SIfpZIaaj/P2Ik9I/KWwVjwhPSXls0NAeKkvvfE3GAo0bE9lT1mgqHQ+/xaOzAmWT9IZAB5Lr0f0R7Li7l0hVEihjDLVf4iF9lQ1zf1b2OVzqkzTPU4wLifQ5juu3eFKee7GZnatzKhoTTTQW61lju8Nz2f4e9k9DzaKDDdd9xicopDGMbyNWcjihfNU3kZJj5R276d9Qi9XqVdRUFh9tbquQbfzw0UU3L7Ga58c1cTg8F62yaIglyT3FSR+SKeMp1L5rEEUrSCV3EvivCdBIY19/6XQw0N98jdlmvvpmhFHKdV+i0S/EogNBOhSDsM8JAMF3YRnIt/9/0S60DZMUHgNx3QvprufOUWYPBFTVmJBsTZsyrpXAs4gXYjBr36eC1DM5XpsWmbczem3jQEmba9aqong6mWaLMXk6/Ak8W/ZGcTkT9by7xPridxo9fiLbwLJdlcVB0Fvc1XtsYNHqBIOnAzd5n4ftXgdT/2F8Dvfe+B3XeQIoJr7T6vbL6X3NrQB+CEN888ElYlv9X2227R/yJ8jmRySocHqWMgZHBgIvtYPa0krrzcJpKFXtW7GfrJWZBid3lBfq5S/APRcT8L6CjP3/ZT/ZE7yeG96zQMaceP9Gyopb9G1plShXkl6SfQ3ggpw5sj6r1GFBxb+IVGRyqrtZxUUy2qMjgUdkjGJOCswtadcsr3+b/TCutxDJO0Nh1WUWWgSj2evki9rArgKxCPWze4KEF6cWFaju84x/ve2j5uuWvXifaYUQuRJUkm4WuBrUKoNaUK30PfJDjHzjRbDDGurgSQHjKAH7d5Dq1lVzI2r1pID6JbIo9WqLOQRYOBUJ1aDPlLLiBH0Y+w9uuU78P7GBr4NWZRxVdff+Sb6i325wdVz4HAIA8VGVF8Bjie5RmdbQPxNRuxU0GpkQFqSvxnCDh3VQTxENd3Ev40UpCkS9AQQgDwKAnMqrcFM7OPSQiSCtsflS6Ao8AXlCXDX3jNhcLhCrVicClVAJ+tTjo433LOG9bys+sJ83Fe7kfWrzVupvQUk8yQttwr6t3VYhQcn61ORSqKxwmhUW8Gxr7nRdNcpHT4rS/eLCObxLHOx2O1eKz20WNj0kb+qAyZ2SfKsMKaYrjUgWr7CDze5MjJfGKy5p855e3IFgLPfa3e5sFKe7Fq3prBDGCZpr+qZV8hzTCz9TVvSCiDxBKPK0Pj6MNTZSNVOyZdo/uVLVzmvkisHCadVwPuS1czbKp1tyCO5Jua7JZmW+3rkJoNouqkL3uiBz8GOr6Nao3uEHj22e+o9OvpE6grzFl61nlBOe2jghSH7vGRiRy7lYONQN8zA/CedinazMnlOA/gjU4c9hIFAXMokYHPtG93yA7TsNcT2AJomTH9zgUcX+3QwAsNTpolHaFhhqNsRhdfSWIezjSasK6yIe4cMB0pavRXoF7vAAOQKxHUAVARkx8t5CrFYC6SFAXQXZggQwFtlENvkRjwjlGsoDAHhWp+QOp7v9I9Q9RBOIhKOKtGp4x3RGztG/4Oucyjw0OWzXQyCEUspUwOtBuDE8CJ98sCMYhhrXUWtHQ611MKBg6D4oP1IkpUKRKrHGBNoJPGhh4cc4hjva47xhrDrKiroi+dyPNDLBteIR/iT78B+eEOF4ZQtloPteBIcZtlsrCfARL9oSAER00hBVvLs0UQktiGc8jIgmQ1cgQ3+ru3WMfsHUC8OeiXoOWtpAV8i/O2i4DhZ1YT8x0Pa5P9xI/wc27lca/z6zblI+nD2U7CwqIQ49Vhd/pNTifnT9ufCp8ioQyqyqPub4lLEgca3i9d5MCRKPQqsgWksIt90lJONaWvPTNBx1cPhOC/sIDSYxpkBINmmiAROnJjVAkFpY6yzizhpUsQc2hf8WBd5W41jY/xk3O1sGeDTu+tSiPORYL7hyj2e47iPvLY4dJtnrTkm2t4lhD8cfLjmCxa/UIcYNYf3dI8edpMKmUj20Sb3pLNJjOEN5cx/O5BZv+MhzhJfcgNUo2rYpE19rzzG+yZaYL8sNWpUaaD02ItSXQxIGlScM/ajIBtrKbRXT8mYikgDzskd+WoWYRV9vbFHV0dF3HzhNSuvDsJ/r6t38Rq6+efGjVAqD7WUn9j+/57SjscKEx0RmtAfAyPBSaud1EdCTL8NszZw2W3p2gmWkTszUoC1Zdai0KqsMgBij9f+R9mhwMTQaKhMak4ZPy9ArjCcK0UiONk2kaBnRMPXR7GNo2j6ECNkAX/AKLGFDSM75p4M7PPK2l19xhHNG7gaVwAbSirLx8rPFwyGzUgTl1oY2HEgqivGcOOhFjuggyLoHd0GIolQ6DMp9Zg1cnIrkpkbi7IDGrYggE5wswuktmnD4JfgaY8wXDlNmHoWOvTRUUQ2j6FppayssvbAmbCIFtsOdlKUX6W39sLK1M7jNG54JX8eZY9lp1/H9Iy7OZ5BsK8jUdgEfzFSWDuuYAoRX/A4WwjzqE+mXFwQ9jT0Qjbwwqxx+QpDZN2H1+eKBsmpoTH3NcBcKDpuVOb1luqZwanNLF8r2PFnkf4ib5JncEpLgRsZ7Xg9vQFJ/RvSgMsdde6ta2pMsyFw/eR0HJNNmyniK9jfWZoOrI+f/oEJm5WqNKObKN6jqHZV/DnzorFzfzu7O3Xg6n0fsrW8TbRj6OGO/5ea8bnbTv3tl5bJ/N3av585v/3fp/5vgfzf+v+87J0102JzCbkeOzs2SBiYDkqsrjbbKbnd2B8pW2XoNrFu2WmK0DaeHk0AvSeSPHqj00oZD3Zg/gsGB+BwIV8hehGTSV/9q/R3swSZTsn/p//tj5pOiGoycKsi9+N64kD7cGqyn/D+xDH8gF39TAeGH6GWTp0Twn5rABzKyPyvbxMkP78zq6uJ662HioKwv5bAC6Qzoju+it0aUD47nt15qoAblSJPYhU29FsPut1C4gmHOE3PMSiVZMu4ejhq0RKA5208n9SkS5IdKaUtCeoBPk9CloOgUE2y3ADYawElwD5B0FKelmKjxWd6EdAIGBUepv1LgLCJWMibeTWtakqGiCJJvFYhuKmf9cD4Zyx/40JcSOWZ38YqIJ46pVCn7gkkDrMGwZ6s+B0jYIEPV7NaQh7m3JGIQmY4FB3CZ01GZWi8oZ+jVyMY918xuSVRRBIHbKV0giakikGAfj3Dv7fsSA81i8pCTMJZQ0phch+iJdh3Yf/DQoBhjoz+iieB6kxLENLSa8WgZK+2X9UI7c9qEEtcgqNs8d6g9Eh2UoQlBLHSQ6kH0yY/L5VcBJSOjtokzTjBlRwpcjzgKAcz2BMYmutto2/O2C4NJDNZYcF6zXt/BnISFyhtFhKkocwCoHU7zMORq3WVMxJ4VrzSJ2aheWbi9l1UOAF79uAJVfPIZGC4mjdxKxtrpMimtNC4+3NJzW3Ri61Y/TY4vf5LTiyos7HyMMaVdM4PvF8fMPwCuIu54f45S/iB4dwAexvHwiuDOrUeybYfDntBK7Ey6oG26hW5vDMpPs83BfA/iju124tl2ez0bzO3a9BYv2zMsXSMvfHh5s7QpLo89DPbdpOyPxSMxATzyonDxg9FI9IXYu6djL3zoETD1U13kSwdnGggZ9dPh2LEfn8/S1YEf94J9sEt46dDu2D4pfrts946KHn7LJWKboj9cGXX4xdgr0Rdn+9WN/q3Gpn1Rkb/4kkRkdwXr1Yd3+BzYvSke/XR315bQPDYS8An4R0Pyq5Xo9L6CbNe49pypG0EIkQD8jIwHTTtCb/o8KTHvCMIPqmHHyQuRyXNc4k7VRnkhx3vzw1b1Be9c1w8AVNGOFycin9m7Wrfote5AKs00eZgIUQGzpuvbnlxcVNxwrGr7aRSwnDcL93p2YzGnjFiOStGlhPecQt8gYWRLV9WvBEBIijQM4hb7OoOC7GmKPEJiyf+BEd/z/RH8/wHGVrA6IsLbHk50T3B/TJLv4YS1m/iMv3ry3861Oyd1a73LsV9m5drQhHHB2UWT5t9QLWfGQ+MnBOOyWXZQnRFPLu74wJSZk+WCG4omzR4ybkJgrcyKoe8er/vXxri+xxHT2/X4xn/V4dkrB9WkqkCLB89e/W1Gw+CEqyuhYfBfVz+D0FP3Ukm/Iz/q5t5fuMZ0BVK1Zf0X4IB20PK9ppbURr8tOtBSJVJCJM8XVDjV9dCzbdaLFo/8gu3+guOxnbPsn0Mf2S5ZcHSo9CFGkxtinkLlMEyPzt9n3vNFzvlVTwe4TFcJOlxmidwtPS4Y04J4sAQNXXrzlLvu4iR9EETEoDj2jocNAOYA67X9eZ3qXeZwLCsz8tT+aYtLZ887mLgMrEu7CCwtMF/QvOuurWZLYWsecPPcPZp2y3jumA+9Rak8r027XzG92iJ3h2R0HJqDaUP/UmiHE9sJGAl0q1KvOoCQwDqvBkU5fqm93T7Wy5owODjC3iU4rQy9WYzYJ7W/haI6qnNz1SUZUQixEkb83YJoUvoOqiyqRkBYpK29o5MrgnvdH840aadty+g4DAmd283AE7SsuhXSsDm4GhCRksO86NeWFbmqoh9LWxN329uf0ut8isZwhGTQji4ZZwrdphqwokPH9WoKWsYYTUIt32CFlScGBnr/1ekLiMs8y3SBGrqCbrciKNjBUccbHKRCVGgFcZle/6FlYDCuAAunxAU93vVwF9n2z4fsslK1k4uln8bvR7+vPgGyOBFvMduFQ68PeqgeGFy9ni4lpUMIgJxTUBwhEorDAtND84aHl/rN/I589BeLvPERAoVgPP+vPkIZqYpUNsCRgdKgR78EZBKX6XXvWwcH45Kx8LI4EFSTtWnTOtc6SQwrnBWRnzcnbPV6lY1g5eWx4IfH6AVP8aBlvajS0be9o8qfQPCvqiojEMqqhtYFx6ZrouR+ISF+8i2bnhEcktEfpFEYCmTTY0OaeReTjF6G3UZePn2Yzhii5+dzku8MMfTPRyB8bwidnF6wNc39jkEULR447qSYPjDT3tFNejL5m57B8ihhPHlrMCkudsiVyfjJldkeEIToWpb6e6gdK0p55Yed2Y6nr4kxe8rhevOuQ6aGt+vUxdqaO992R2bnolIQkvC0BajOJRxhQG10qBfGZqOVYKEMgaLSQ9mGn91eH99bWT0PbSsuIn348HPR6OFAYl+fIvvx2/BVHmUU8DCimTBP2OgoNpE3jxejCUl8UZ53HLiallcUheZtrBxtTpcf08+YfbTOYl5/Tz9/d04fowcHXnlrQny8In3Ff+dpOj6V+jlVOb0qi6F1rTEUH+KbaJykPa945dz4PidfWPy/9+YWfV+Zap46c0JqAnwzodcrSr2eTrN03DS8z2yZmUqayHCvKellMpORASNZmEymRj+Rf5d0JGl283rTLAp0NdMZoys7RWYY4Uo8mdY4ISESqXSsMFbl/LRxsHRlqAUKjvTC98pMqTI2jYxUJiqippcrXjOZMsajm6Iw5cdEzKnDvAY6WmoBvzA6IRLv/AwjBEOuEedLM2KFsXSmJ9qwkfStRCf8WDsKwLQy5daZURG1JasA4NrJpMiMdvnYhKi5MeOsbVZEO9ETNV7acdhu6eOcoZ2+A4MABhI1Yvu5pEg0RYsGYiLWAFIlw4T3C5qonkrrZQoyx2xkMhJh0V7GPAG/cMgCmB9kUTxi7rchLBQZi3CNx3+iJfaeeYk6wlxC4Lk6vIlDFlsf9LDWwlAHYXEXBwO3HKtVFdvzSLEcvxSH9ANzXkIiNrKNuVF0M+2Un19iWtl+P//E9OX+JQRQkOkxN6eeK4so7Xkq/WRNLCkd/Q+CG+RaXk86/n73VNpVruFq+n7Hku6y/X6OeeIwNhk09mk9Zs5ozVYBjS6qSmsSjUS0RuUqiTppU6lu5QN0qnU2R5Egcolup9PSHule+x57ELfL/b67+/x54r7+R1G8NCPCS3sRebM9gGFgNuA3CuWCYBl7zCqT6Q7OsroJzLgZLDoLPTZAGMXR8UwrtXsdzzwrkbFd1UQYRotwXRs8Ih3jjMU9heGncSvfuOW/sOUr40Nv1WL+4wfGRmdhmOzJW2fnt09kYULn1BNxEniKxZ4XNwz0XhAtWSKqCYRPXsx1SnZKamtL0oubK8DhlnBra9nTt2mDA9wl7e0CEJYLQiAhCJl9U6VeUKshCIrtiZOtlwFdmwqNjtY3tMbX12f9DJQRx79h4u8AhYKT6c2RcQBAeltcePg8CDEuHuIu56atXK4jaglLxCqqkrou/PlzjLbhmLOu8VbgGs+PKaZmQ9YiB425Ezd6OWHA3FGYuvW6oHpB0o7WhjqA+Hgik8mWjh8ExahN3fGN4UwZ00raUM4zrnlTHMVLOnAoTCIAAVHt3mj7CPqNN7I2CnngOu0LJT6q+8ikHXrxY6GTPrL43e4BQ6PCX6Hp0zlGmYJz5zjhNjzSDygAnPcpNZLV292uO+2RvOqXU6fViSr1conas9Gr8RpUu4o6UOygplKbrw1Qa2tppw8Y6hWXuNjH+lpowDjx/kG5CSlApp3cSek8/Xo6M6fX2GoYDG7M/488ovXYw0/SV/16bW3oxhE5g2TNK/b/G2v/27TmNRWY3Gc8r3ErccMdl0YgiCTTPTrTdF6kcJUpZUwvkyxoyoRhRNxGjb+mSw2vx0u2PEQy6mCluq4xrnKuOXiR7vCQHiwVMZ8RMHw1BlOVsaO6R7vjAuZ1tyY+yb7l25M4Kf6BeNyyb3Vgeap+1e4/jwP5g+n5RtpbC+w9T753C24ZeAAHcnTKeA4L+nZ+nw011XdKtyFB3tP/Yv8oRJgt9/SjPXEyF+l1kr5H3n+K8tsv2+sa2sOVlu4PPWvP8wwe9xlxcleZMsb0UgcrYkoRT03SuZfpZYJ3P+EOGM+guy6/jtf6CyMwGEW4HmFdD+iaKGMOrMdCpki68Qo18jjKaLqprFu8G3hMJhCs6gJ1FZWMdef3Vyc6btVyu3VeaISaSGDice4HLk/kqWH3U5f5IsixiUC0SpqaSFLhQk5NivkI2SuUlp3ehv3RLZHsj0i0ra5ovXo4NRVZG4p77rSi7Uq4/YHW/MTqKxFcdip6UI9v96kT1cGR5rCiZf/58o0wbmPpeftUtF6NTmO/21+dmNRy6u3+mhX+z+EtcajlXtxIrAIy7fIMD274OIKrm2fXrvFUdb7jmWIkIo5PIFgh3E+dmMhTI9xPnhCjIZv0rFLxQpQYYZNJIMKbHFUoPHCZLUIaPJyu1opxG5zY/C6OxoVU1VP8Yo0j/nn4iuqTiGZiUl7rFagEqXUKaF5yf0tyfgSlQ0Y5C+MUIZZiUVqHZh0pTgCBxJaT5RvxuI1lfD3SwEeWer2qVieuaNm/vybZ4TkcTwetteMdw6R8hz9hgw+yZNOZ13LgIKenoQaSRE6tn+f4Bwx6fz/CsdKt99I+bRz9XL4RhjeViXeLUpHCMr3j/0pDRoHf28oRWiuNXk2Lp/fSL0Ob6K30sAzThoM4dJqVISOLFV6mt9Hj6S2C1/Ll9+AWIOMui8RTxm+Z/XTTSqoIaAjHVE+dRfYig8+KNruFwrI4ud1iBC3W1jko+0cfNDWrkgn/7VUj2fZvR2CQgI9eZwVNVemaQ7fEKKxub08dyyQ7OrWH17bf3vCWW7vhtMwzD7NOV5ssTZIMCWVoGYaL4BuRCAe0Ai0XjkiTpUtX6RNxOTzxyjMDABkc1/rP0x68hE1NVKyhHjb1j6tapr3Ps6vbD94xYQzcEEZjlo3scLSLyCqQOyML1yRQARg2jjw/n5GsVDHkZgHW9JTJybnQQInJL17RrO6awDgdqAk7OBVUFxUdsnr4YE1YNFBmuLxCbrNrxdrT15pae1h7rkPMraabeut8zWwYwPfJx2NjNNqtsYPjNNr4wbFbOwOg4RjyjfjypuwCe/6CTLY4314MWQ/SNJt9yyS1Wbmqbfz9RIyoNfnsvCTomJWWZuySuiRkp2e6EOsiCnjtxL7bsmaj6QaBLzmB+u8sMe4RKMR7cv+E1RrxjE+pbFJPalmtYIW9PtvU1a4u9ytMDLeWJmZ15aqSyGaLbfa8ZRfr7W8yxpnl/8Y5ppprJt3DIIi4bYukMHtZKwwIE0Q4e45mGeQt35CCKWSVEIYIr6wkQWKhD3g3CXh3Qzs9JB3cj5y0rKbEdVkqs8V2e3Ez6YKgE/MqWfKlFBBhpY1fpVMlse3bbOlUJzhr/AI/S12jqc3qbG14qKqlEkTajmB0mEaEmeoSTcuqNMt4UV8gRFU7tIrkcG129ZC2RF3Li640OkCIv421e5tBICJIQCLjtROn5VqaJLKr8i8Pdx5xDtOymm1QYT1rsZ6xusDgPOew/c4KKnHEasHcAKGbujX87H8FvZ1nHcPVEl8dZjmgy+IiIq/QV/qWqJo4DxFANB//sx/J8KtlRbPatMzqtovOs04s9/jq5tnyy7P88R9IkoYAsLdkr3aF4RuI8fQ47q8TTZ9R2VErHXpCh6VZMrrEdB3bnQ4oPqdQdBn7QeLC6fQ8q21e+sKpi+bR85yXju0+tvWWeW6qZu2walPPmS9DzO7hmN3/5PZN4gNsxTxewxWxyPxd0aJfkCiWaGd0WCoZfAnPMsPhMFktzZcYbrYzLoWc6Z8Hg3rufZZbIlQQ+jP3xQVzXJKoLzmOob3NCBMlJopmGJsgY8aSYym0cLBPTSQl3iogPMTWITH9EggAUUu9yFC4E451ti+nCvhLSAUF5PAFe432zmMEdwW9je4Ma1vc7E+Mzwqcg1M4/vMMHA47Osix8EwG+Oz3OuUNR2bY7VfKtNeuI7g1GZLNaJSOz4she7hGEZlUHZWtQyJ17I/B9B1Xj9QCeI1QecYa3Ijr66NsABF6r7fE/LRsEGDW5Z03XzS7ZD5vfi6fZ+Tx3HKlvqazpldd3yxvnLvHIk95YPNAX7XnWmfj5sZfW0gcUmaezpP7spTOEXeyHQlFsiO7g2A5OqmnoWkAMIP4E7XyM6e49jNDap4MKug3777DYbvn1CMO9sPxDSPG7u1yn8e/blj8sL3skTOO2kMcwJ1s/GllwUT4CIU8xLz3auVnzjhpfU2huZ/W7y3Ye+EThC2rnNEzXrZCdbZayni5b7vZGg5Ps3i4V6kwz5l9tXLmsfQP21F9wTp7+ZlxBcmCwljBuM1NFOoTjTtVbj/kbcVxPJR1Tp35MQ7zrum35+9FBb3Ba/i87+t9DX4ANEkNQwCbgpFUmO1sTuaU2H3dE/i8hYHGQPRQFMi9SQSbgsnD0UO1z1EN8WvZPkvl3HdTQSA3AwdA8LH6CzE7/2qGhJk0SKJN7glmqwCAiEDAGBYLrYAC+TK0Fm/hZpuV94RFpXvFL2kC8K6/+FL8Hw/eS57fuxePvXH0TaYwHDh5ynLyszMdh5Z+AQFU2mwmL2WC6HTt4h+fu1AyecfeDml+fcOkslHVQPWo6rKGhqi9ODV4myv8izdmNXl0AqU/LfOvUEBEDDjXd/oHTy9cKKne/0gXUJ1Ptr/hCUCbee301uJKG10RKBlH5hQzkC4VvBYyNLoH2owHnl+oKFFESJKyRDHcieyJ6b6FT7YXtfRfRCgW/5OdL1PiSNSMGWQKSITaIsFdkYYcvPzHBgD+tFG1JJj5MuvI6htTXkgTfmF/4TzSSrSa2xe8D9/TcF+/aQNHzax2mC17fzpTfMPw1LBU2b+EW9D6Rmc36u7ddbb2OAHJS1khGSCAcOfQPa+ozi5LX4CAtvxVMm4QCPA/uZhnnxOu7Wi9c5es2qJVJ2+/vfVKfWSW/fqR19urI7UfVt1xR9wszVKdvOOO1t9rw7Pt11+Zvd7+obOoWn5ZBzy346LJXs+zR5d1eIrmLHs21dKR1hQ534lu+jbuxxh1n3iJjnryG2LJPitc+WzVjp2SmRbLjLE7dlQ9KwrPtmWYtkZLaevg/Cxeuc7CMjIR6ayDZ0XfXiOzbI0ssV7B0LpqAFd9YpGYYe0XCT/UtGxZaFieNiKwbFn6kcpwf9vUBBGD5ck6AJ7T1wYoeEgnC1OYiDKgNOgKjFUBBlKoip8H6Zc/wsCXQCGVdsviVpB6GsgUw9tf04aGFQowrQ66ZTFNIwHSB+4VBc+FqPGbGKL/k/FfZJf5OTnZ2YTszUfmodfSgh4s3nVuJDfnszFw5M1bST8CCH0a63RTT1/b2c5GHDZ5bfwzKhFuw8bBg5iZgSXjSuevxyxmOBvfuAYMwHbHKfggfN3pbPRAXxw8DCdAGfBA6HH4WyYSj918sXIU9izs//lXkdE32UYOPhBmZNTAH8l0CvvVUD9iPlWKpsxvAhFig5U4ziznQ6YOxMQC/eAsY/2Wn8egQks0eLqPIEckEJhEaAHi7bx95DiKkhJH3keRTw+SKqOkLUn6BWIpKnLTZBVVSgF3TwjIAl3jOZOXwnuS6R9uTjvzuOvTknvClybnYhPaZGSZtnGae/Ql59aXDK2/fk5S5nCn+XUYRKzEv/IPz8DD37s5XwFc/dbktu9+cXNYVzFbKkZA1KuDQCx21emooAXyRmWTEC7UKi2RyqmRgx4Hur2LSXOsMEpKFbjD8HmFfHU9CmMnkiP0Il9zGW0l+ckIhMT/jbavSeYn9eejFTQafIy2jQYsXFLI3hRpQaPWo9fS2V3ssyZKvNkVgqkJ5mSFFE+DEIDG9PmrGnLVKsjEnHDNBK9kjLH32dEvgkBfh7NTtuNFx2ynuJFzpuBNAPEV4SLhFdGZAB7cXWafrT9g22BfbE87Zj0ZVFsycAOAQtmFsJ+IZ+xEX0r3useP2Z0HAqe+ajOUD6kHJqJ8am6LocsbdWttEKrmG61tBLziBwRUIFf7+clkfv6P2QA1OCq3Xs1p5Sza7eDMP/5jU2gTPnoyQJOpj1GnB42KgLC2AtkEBSiDGlDcDqh4K6oJEbTP7ffxrqJOQO1tv3HCInL/1b4vX5eYkBwyYvMw2CUy2QQec5zDCUCjHekIOwTCC51mX3U0yGHLauEHt70EulQyHmQb4s7baUaRZ8QV4OEQqawTg+2U+fhjkc4oLhoBIWkQEoF3W/+6p5u3L0Y4pi2y/zfFPur+HDHe2fLMQa9u5yI/9p25d54iZnk/y64vn35Xon622rDDJjbtCQaelAmCYThIIOuH0cd0qWsh7GRMZeDl6YQaeTManWYnubPjwNOdN5oCcPi3sRnjkQF34s2Oja23Tot5A8OjMlkwBk6WyU7C6M3i0s1IdJpIfDZT8PbCU3NJreIajMbrgu6uSyW+OH9u242bkXWncZFcy+sjohaXIj/2g9l3FGLX5jAQrP/tI+DnCHzoKnxYSSzquVmceIco3izrQ5bWQpvABalhIGyMsf5ivXG3c5Xz+TfNBSy4YDQK16SAvcOH9rQGEKOvQaniwCVu9Xv306ONUP7g007dUdehtKKbgbC3/4qdxghVA+sF8dRK2g5qNo2eeAV9FyWTKtqcQWomDXywvLd7+2xEfHwkYmkhnAkjdVB+PtUUCWdtm2Kj7RvNzT08LCyElxbot28WFpqZuZampui0b+M7d966QwMhWyeIir0Z/ul+aX5XCtJ8X+zbYL/p1XUBpv7WIKZmdvhaYCw3vu9kXnxOpvlfkRCAMEDoLOxENkIBJ11Bu9RNM+1SFMiHWgJGTwY0oLgNiOIuxroMGX292STzwUsnMSn4Syl0UzKt9PI/QOh/HFLeZJ/c3HznjltwjOu37+mNhoil9q3V30ijx130D+74La2o4CRtaX7wQOR7oDzLunwyQf9/5pycF/8cH3WNffizn7vjQs+Aq0iU3r/4/eM4ldK0YXsIAR7yPpaAaunaVS4hJngg5a1ZLlSGYzMsrmmpmeuOb1tCtVOXyjH732BNyS5tvWVUSt+SGkcSOL5crYwWRPv28aPhaDjKeyC8iqpR8IorK7XMdRWlpZqluT4KQ8bVHMNCmOYcEiM2EUDZQRZoraPqtYV/DhRA0yD3tRsheVwsEM5T2djOGZO4/UuQxgZNKoOgeVsqVSKxo3FkfiKZHowYh4qXbOYs2HHkcog2/TcAUTmHRmZ3GMqzqcbDqgpLBKBCLDG++srWFoglNMhOECySSV5NUatT1ZskRjpNKqdBxjpRPMoCdkvtfeWULJZHVxfLVuex+F0iQ905nxYUH9962KEaIUNInAq+HRmfH+9emKXoXkoUr00fTR0eITx6lEvMyEQcSUhYaGr6qi1TUuRmcvPUTFoENZylZYtV+w9pqI+12AJDsZGswvKw5gVyWS8IMx2lzdJLa5Wq0JVHNx+pdetNTOo5PiDjDzzet9fCnRYuIOpJ9aRSoiyHa+28b9/T01L+wPEew1xmm1vtpfo9K1muyvpL9s3Si47kepLDhJ54aa1SGZVnhl3ZdauBS/37YGtujoyYRl5N0hO5uXJrx317J+h1x3uSkjRdnkeQsvgXSbOsrmDikbUqL0+lys3TxNz9RgIh7ND95BJZ4wPqvN3wRe472DQjEWjJ0eQ66f79lCirEpw5OoGONYgbWMKqlhTb6mwxqCF3/JoeOHv/O91EGwindI9GR+7TxyCcJc5aRLirJtZZjWqVy1EtKqQk0fD7aAUyeM6WRes6GW+fLuLGorjR7rd2VCF1bAu/Fat7MlGsLvefDkfnxpi5Z0qU4JzHI23o+pIps+lRWG6QfPQ9yXRbyVDb1LTEiyIAwPbRZ6/ND0fW3tMnr45eRTw7+dvob4j3J6+NXkPc/vvI1SPsI78d4Ry5dgTUNfSukokDAijL9p96Gd+3WRyUkDsa15IZJV25w7oeEX82BSrtUnT0iyKGyYtmRUlWbf+7ERAhFqfuvHuD3/eLxCJ8Otqe56ZNaX2PdiM5ur65eLHQ/8PHNaef2Ph5JY13fEtEaFJKwimTx8l4SUfUCr0sodFTSbLsc9BpteYHtvA6Cn2L/LYedMx1zM2x/lceDXaTaQvt/RqIFpAD+Vu8DTVDai2CoGyB2bJ35zRRD7ITrpaHK3IFSzUlpU3lWmZlZbFNlIJaFT4Q5RMNR+P6+NF+Ub4apSTOANwc/XbL0aviCa+gBFoBpIfkzN0b9TVmEWYRWjcb11Br3g+qkKFAx8uMScBhtxMQtzOnKsoHvb1kNMQ1+jW7DDHQQ1QvNpy7R5yGdlbC7azsrhK9iZwn98hssI5mRi+JsVCZKxPq7t+JtOqavPkPj/AxMXLq7yDzyNQHWZIdpcrXEb87It4V2SENri1fpNvkvtF/yWIDy5Xf07zbdh+ln1Krx68X85JcTNvMe7E+juZJMgnAeH9FwrVowmjph5yj8DGxXWnn/yRuT5CIp8f3v0ox1jEMaraKXVI6DanjDeyDW1LyjLMNVKjkV4PBa8chJ/3oqPUVcQF4hLbMwEvu/pcaKSaJSNHUM1P3EhOnZ8eqFJ5mTnJjNy/uyJ93q8Di/JxxkXr5TpaDRJTYq5Dhnx34ewy6wHcgwmKDQGpumo+VY/CPmow/fWVe2Wmx9K8A6xXALr0id7jRySmAHoZzrqpsIAbSy9aWOo3lrggMnDVMoAYTzbKr1hKD6Y2lpX4jj1/kIOzBstNn2voMYxfSzaMdOvZ4Sv1ByJY9XVzzqNixC/59QydP+fNkFsDf4fleKrk/Ryfeg4Z7e8vKent7abMWrDA5bXZu7t7C/MOpXlOm++w8aiLV+eVwZPgUZxcS/bBqdmw83jB+8J/bPlxQ+31xjxkNTPX2tOr0Pb3bKF4Nkpf3Fy8gWQ33KbP3x+bvG8/Ozy0sLtwzLiWYXLw//dcfb59MDbf26vW9vWPAz1hcPOpIe3Wvt7VVr2+tu3yH5N78/B2TiHHuoPvzhnHJTHUWWOOyb/z35O3Utp62mBYOAuHdQ+4uD39NBvruKR/7opKpaQC+flBasTd7upkGciAw7zT2ozKyqW19m1Ld2tLa+nBam96GmhkarQdFeqxS5nMZjb7sI1PDV8kESRWBTKWX4qZwk3jHlIOf/HP0whpLSkspetVJE1vMK2nl6Qi/rPgsmiLcNiM+bru0jAxIEZ8V8FOwy+NAkB7Bj+NsBq/R4HQlcBr14OBxJNV+Ox53LNDsdpnMm5Ny5zhwaGC8Ot9htmg+brZg3vH6/JlV5LXkH870ALzVsKrgzyMf2eyPR/4sWFV399oNnySfd1HiTa+1aMBsOeRaaD5fvaYCnonbRh766lMpFrvd/DpE3rb94dmba1JZEc2Vzs6VzbYRqUU3pZPYqiXYp0VVh0ldnfba9Rt4vA3rt3RnF2m4uMHww6G0///lsqy/39e3fy928tff6TFXsIDdwnh9vsPMmuXMOt6cH/zh3DsGu89Vd/1Cx4XrdeQZ9SbeIfFS7FP5MBWEBGT4yMN/F6XaRlSGKuv/7TMJA0vftMlL4UvvV1TK+bWV9PbmNpnWNgrIAqBS13WoQgDY8QKM/aJSlCESIGRSQUSt+iFb3HB2zYrrRedWF49X9HC2OSRxtncL9lUJdi8dXBm2LEPQZ9XI3W66FLe7H+Hp+pdzdbN/81VoZcBOV8jrKgUENThayZlWcVbMWCumbOPQ3t24/SDZAGw1I+a2efvyt3ZzfOn2ydp1b62pIXl4FLTbCya01RDd3UlLejhXUW7vi8ycUF7Rs4RU1/v5ZwJiThNBUIM/kjXMSnYKzYKkYduWe2/m+qZ/Cz2cGKOP+ZRq7P15WCo2fnvwyxfuuw/zcpngrm02QyzWkA1EC7kAVhcExBUU2IbFG4RhBkOYbV06UJics114gSaoTvrWBfcsjfpr9pZvPIR8C8VxHxAKzv/ATz4TfCj0l3hfvJtUb/s1HgTe3R11Tg00pVCB/e6rVy0ihrcbuiaclrgqnWKEW0uXmSuelOZ8PBRWVeys96Aj6W0FwtNJkUFwwBLZ75KwYdOoZwOWiWaMmTzvTebKXCsE0gExdqGsB6mfB+ps9ybhV+MbDu4y73VaPyC3dZkkdbY7f0NZD3K9/Rzwao8EL9mJ1+NrN90crX8fKg6s3dE/lHB8eFgoPjS0FjO+z43vLf768utdk4lfTbM16qXOS9Oc0/Kd8xOcwS78LG+RN0ucd9J9Y/t4OIdMJ82S6GQ6iENK2ElPxViu8x5vQS5siXlcDqXI98gM2QR66DB7WCSqq1F9X/MMxlP7SHbkuiA5bHs2WaOhIXYGi52JbWg47BkI2bIvwePgDvuYysrH7z8PI8emuCONG3sCVCoN8dM+g6oa2ZDhgPUY5WoiGbj2G7xmOmiDqzoeD6qyQPDgdJgaSkgQXpw6wyaEmD5gIkJeUvtlw0UuhzvB9eaGyYTJCbIwL46DQHQ3cuDFhUrC7L0dLgIh6tBML1kXWrHHPyLCv54vuokLwwagOCB2UmNqQIQqyA+JQ3mIg1eQbchoEtrn1zYAqgBsx+JRJDSRT7SMCyn9TTY4BjZpmkF8SGSFAYZpsmOS+ABf1CulhVPIVeS1w0CmyJMT7wBAbJ6P0SAeRZFRJA4jN7GIKAfhJvmArjfJSJJzmzq6GpFMboKixyPayL6UtZtQOshih1Eq8RNZySJLO0mx3E5x1ribW8vSmzT2+yvwWvlLtq4yju0P0QHqurx47n9/vvFYueqIJ7O4KjvCFos9/GcM9sgqGEzkm+3TaAJueidHMgt3159hrkhSpZYRufkFSRHsHG/LBJObHOYKd1YuiLerOILrvuvyDAWYDSCHW78EVN13ehSwwF+5AAAbjLpB7HkW9+Q8U4h2DZxamKq5VYYLmeFjbjnUhLkly1KCnT2mAe6o948vfhoejvM9OzyUpEbkJYhdRnbYyTM7GY2bxDkKYyfhcZbYEn80o7q1Tedd07p+Fu2MRuO4c+/pVfbHyCNRWC9FYPDGTXGYgcF0tbOqPmedybpzkmVrEEra8jc6Oy++c9RuQI/jCYo7gUlGvHXgnZDkOyDNkyygkGVkO4oiIIMcW+1QfALFiBLXn1JeknhmiJtXC4oC0qx1PtoLAGC3l64HAGBE6UWlKQp8ef+Mnf6dRGB7ZDygMWgMiAZaCF3izeiPWudn5p1P5JEpNktnb0+B4dX2WJFVV/lJ8E32EHB3LhB2Yv/zK0Tbo8KUyBZk2QtrilPnH95fsTPSGlg9cttDy3bDQPqVuHfwFy6rJPSombqUdXbvJ7e3GHF0bs396nL3FoF8hPmY4M016RMrLYv2h9foCaNqTxQC6TNJRL+GNJcwEyaQkoCFIRDCfVvcaKHmrjSYkr7zd117/xKqtqc9FTfqlHsmrgYOOKXAxaFX0fx1pWrKiEq1IDUQgtmgnVeIvnG7j67abvOsfCjdXnjhgggL+zG0/Nb4+8uX277JyuieKJycp4BA1eIAAau8dy83WdhwMjqlPdFgMFaaEmbGlEsGJcxWyKDErUl89cXVGvyQBxhCD3eMfan733u74+mWJ5647+EKvCpJxYg02ERpoYj6mDgq7W5xtAzLgYR9XaKYBvkJVUuisIupkwTbAoF0oL7yq8PiKQjaUX9vuMVvAZ5HM1GijJqHcNBImHbtQipvWu1yTwv8C3y1D0Xg7/m5M0cmX4Ox6+pDxb9dLHRdV3Dm+icXe78mli3MQtKb9/958aJB7tOnwKcPzv7/G70bdR5pv32e+vAibv4rG2wLgghAIHoqbhNI31lL5x/cgSTrJGoLKwACTCsieZNcKCQO+SWZc/OcZogAAqYZY3cIXY3RtgTN8w6RaOTNaPd53gnevDt6M5lGwohJdqTzjlPLcywTNGPc5ITJOAMNHo6mBad5Tqmm1J6H7y0PXu6pvtm7K7Z3Ib7veeJzVeNb6lsqTzDDIxYQq55tipsOotbAZ73vNem1RF8JYnjYkLhhu0w+siMx8eYNhfzG31vNHTvkvlobBUuek6tQaa1OzgLbJYuqaKNt5NbyzBwZyzx5DQJcuacgAuLFpQ2fCie+IlIjpVTjCzfFEJE4c6IQtxUhcHgO3ucPH/GYoYmgDFn8Sxa4vgYA2i4HXmpGBSJeQSs/6d3BF1cwHPWtaIctmLW4KRw8havYyuYewDx/gUWaQpUJLSwcyxS/DSaloJnOTKCY+CEEToWASw8UEY1qRhNREAB4kKEeaP2hEkaacuoezJNxUb7ykzCm38dLQS9pg1FOHE4aCn8QT2xsbQknkqpaeraQcbpwwcFWtgc81nmEkh5cmg/bV2QXe202ZVHrJrzilV8ENuWXkN9NDRhAwO1foaqLPJ7ueXn9HZ5VWr4S4sxTQ4yzmkWlzv55arGu1yl52wJkQBYpvEg34lyJG7Irt/5zUeJ9nPX9xkUbrZbZY82kP7w4mLrJik7LsQ2F3UpKXMDWkpKtgKukpFshthU37OmF+uKOi+sVyktqni68eaU9r6Fv3rtzGcOBbknrwrqPx8h6xHyGf9HP8J6iQ9P6tqvmNWV+KgCk/BO67OiW+HXS2RsJCGRMH7LLAC17fekn1lPOghib9y7MJ4u/fxOsPFhss4FVPnKbvho+KazRtgcn0c0pNCGQgPnyMIJGtD3aLs1CCu6OmAv8XkoEiBfIZ/EJldmGtEKg4XTCTJp60GMbpudIvzl2e2XeI1PG56UF1lStkQeQQ4CXjvA3ezFfBWftN585S0bh2UuZVw0AzOZSA7rCzqcdiWa62/M6GgFUtYXh9+t9Gya5r4woL0whA151HbWXnuodhoQ2l/3CgmjnsXhM7ZtabVsEpf43uOjzLJjJUmfJr9K8Yo2QIae4jfmqutAPggwIGZXBpmD65Ux/o58EIIha+gksukPEL0GlHtN5pJZpO8U/1v0zv2giL3uFOTuSZocCNgbe+vR61ZVadyZuHJeE2cqdHWLgGCYVIv+Nog5v7wBUoIJ//VzRqAEP2DzToGar37KhamW4YjvkKjFQjeK1OYlOSY4tLY5JTok5OY5tbGc+CyvJofzsEq2fYb+StSqt5zEUu1RIJVqqIDqBNcSyfTVl2OrWCVeG9NRy0GNT5KU5O/P7mOaSuaTGpMZcckkz9vvMWY1X9Ec46CnXU4cm7rq7F0x0cHpBh91Egbv73QlwrsBvpZne2w6RodddoimEq+wBjZq9q6pEufnPWU4Sh06sOsyTjF6aUlif1eIdqw6PyUZv7UbekkTKvdne1PmYtSxZSBtLpmSc/P2eMsplWZRpoikCCUFgp+C96fuuC9d0SG4mwaThhekL0yEfGBO/vDOV3cCFbZFZWZHZIz2KGzdTY0Z2KBQ7Rvz1dOnscLSSKTJuaqr2mUqlYDvkKlFSC0s8CUwQonGfGFXct4tBz++I05JPXLhM7y6ADogQ0Sfw/LWjf95zkOGCHWJxKrbIgmMRTPe48n+U8t+cP3dvVUBqQ5eY6SMp0XlVYWtrrjv4irQpy3jKH+uOLo/XC5aejAbuI4MjhPYiu8yjIibpr78YmsREcC/C4Kf8jLOXJ+T8BdgXBZujkWgUAUBAcAiFQSFgb68G6snEfV76+xAEAQ598VBFtsZ9gFENXp5fgAFANO/rAPwn2Pc43D4dGYEUWf//ZElC3T824NGhZOF+jz+txfj05XI3iXVldPSUyzIbqVlj4+LKvP8UtggNLzeX4p5eflqaMsyJ9KeuMyv1CxgZkcmamr8cKbLdE02CM2fQmeDanufcQ5wTB4D/HrgkBHEfAyH9eValqBRMCggiScQAEEoFuYm5sX/2foIPGOsAwUyackis82ZuNrv6mFFB9UmThi75irNS+2XiwlaBCd7F5/f8MzW0dVdGm3l77T7mYUNfKJ73oTw1qLz8P+2KxQcQEbk2p00PJ67Dz1nYhEDTlj7cwokxAn2073GfIk4OkQzyGs5N4k43uYkJkh4GAKCWGWCkJIomiUfqv7PWXzjz4u92ECMCyBRCYaJUJw4QBjzQWjHkCfjNuuQnZY48Bof7oz6YkCHjEsEJAjHyrfD5IkScscwKEgRQzf3z7pl1WJqZwIvDhUxjy39aNcVCzgW1cAOgFn3FVtc9kSPzPyxRfQvcPk0aTgUAEZG/+9R+SshNjFjEOLPojBzLeaP7GXDTp7GHEr8/DoAAxwOLH6ysYqxr4PbUbWacEcEddXpHeUcwBzn6cK6SiCiHrvroMDEjwlhcb/66DUQAgRGISEdzZwtfnsx+nZ20RLN/tW30Lo0EXb+GyBa2Ra3JbGeO0ze51zP8nPmN7LdLBNXCr04ZL1ay184fHEaCeJVODA+4ok9BNHggsce6210rpYPo+A3H5hIRLw97PgVqS9CsUGH7ynaXLK1QlG19taEFWwFevqRsLw30URXaVwWOtV6xUcljBxoGBEeUwH7ZbrM+1JWyJ1X7BM0Wtdu3mPDC8YUuGvbsaDNYodqu2OCpC5q35z0c2WTKOf/seSRQygtjgDaxJXn6w1VMIvlLfIjfRdrkaA7jUThGpX7GXfL/HtGp8QfzydDL2X/CXWNa0DqKSZTpY/EJ1uiBcKtIUOLkGu50dhdbFYdVIXZi1Rjpl/8vT3jxjxwVgZZSpdSiiK4mE3F1J04IreK5uiTt6g13svSHSgItsFWTHZfePD4NEF8DUNYbgINL/Lm27JcIdEF1XXFd9c4Z1ALTKkR2AWmpj/MbfY4lY/EU7JGX8W70uJPfRiRZTTh8U1ZWAg4fUZnVhMc1ZVVG4HEJWYD59HpTdojPk5xlc+rDp9hulfAGKwU5yeQp96wD994Q0fc99TdfRCOpxU2WafUr+YllvucFF3+v8/f9mHe8MzZ7D7ius/1E3syBZzdjRSIBO8H6FEPLQ6DYQiTpGEnEu2FW2kc61t5H6qs/Ru7v6CP/YIvsj544kXzd/UYHpeyQ9v7x2zDSU9Jr1GN4biD+KfRGNV6H1sJh1J94JjAVy4t9a5FJxHyIycv3JWxbelr/PmYGSdJ3+rxocPVOH9/5tEZWuHL1Md88Y7wU1yFHnJXfwD0+NFdtxtiYF+2NzDtFv2vllse0WslSrGya8gjPV+TZuiO2rHy6aaUpZDDkhR9MOPFn1duD4mBuP3rXKnCPgoQR6y+ePStYVRApefPWL9DBNFKpEwcG6HVKlZlpQMoVXhvPnAcspEu83/XGTmtv3nr+esRuXie/EzHEa+O3mV2o9GBIzTQpC/yOjnlLSz7f0nKuo4Pvtc2S+2sjjOnpnx2wLYQL4Q7C4yh+ni/BJkuz6IX7JmYPzd4tzonN5oiA6HP0jfAhtktKyGhozuxfcn62J09dWrNpWX/+NYQdw0phzII3UijxG96H+AC3F0Q23tGj6+ZBJS0L8N8KZdcCgKEA2P13+FKXpTs7eY4Oe1zLG4mc38yXSPktize/mKIi2wcUKfn01r/LiEgGR0aVrV3bDB8mumC/EJHY23gcehDrh66F29aslVEBX+4WreRIRVVsntct+9atpI5mboSqzXHUrqX7JpsN1hi59X2dfPALwPrHzosA/Inlqlg4b+MtC3yZXt/GxVoAJ1k0UcMeYfDcsXjmUY5Q9RuCX5172hpnDzjF5drG+VbzmCaGcWavsOdfilun7iH6kiYoEB9x9ZWfeFlj4BMLHGOUXcHcyq4c8RfJ2cLfvFUfTwHvOaZeM7VHxb41CsBJnW28T6m6wTKOPib4xjHxBS+XP7edLHrBF35QGyhcVZpJjhjF2TM+cEBtYbxmU7RvKfl2HmWrym/8yys1bVopXGSNHXb+hPW4mrZjlWNMpPWpYT+lL1PE80J0j91OZbjMLHNE+pP2xKDuz0fX6VIoIe9hAgrsjsn92k+Kt794xngMzUBeBQAWPFsEfwNex1V7nBAd5Ep359+IAuIAV5ngVomIcXGj6EMXz2wqHGqcMX/Bjz9+eo2LZuwruBJhw6eigma1q8V39ZSyU8/uzb8Kl7ozag9zHuin5hhkvrKomE+/W1OA4+/4tjuhKQ3m4Z1E8lR4tlQQ/uwSKuwYKTWE23M2dCPvjU5SrLLPgPwSDAW4JDmH50sF4b8uoaIrxkkN4WPFNoSosrGhaeBvTuEtHPhbfqQH+ioGrjXQiAY0YSCuldzNuAkLmSW6fQggxMmsCO3AH18z0T/IhxTSWFBkXivd7YYfg04zzadZPe2vjPNZDHGk0YTFuAF1WKANfu/Vkj8UyJ/QcPP/JmIMY+sEF8GNJqS/YghknZ9MoxHJeixdzAmGZbUDNVZ/l3PsAAAAAA==) format(\"woff2\");font-weight:400;font-style:normal;font-display:block}.dcg-calculator-api-container [class^=dcg-icon-],.dcg-calculator-api-container [class*=\" dcg-icon-\"]{font-family:dcg-icons-2024-08-02!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dcg-calculator-api-container .dcg-icon-insert:before{content:\"\\e92d\"}.dcg-calculator-api-container .dcg-icon-create-table:before{content:\"\\e92b\"}.dcg-calculator-api-container .dcg-icon-3d-cube:before{content:\"\\e906\"}.dcg-calculator-api-container .dcg-icon-3d-perspective:before{content:\"\\e92a\"}.dcg-calculator-api-container .dcg-icon-headphones:before{content:\"\\e928\"}.dcg-calculator-api-container .dcg-icon-confetti:before{content:\"\\e927\"}.dcg-calculator-api-container .dcg-icon-trophy:before{content:\"\\e200\"}.dcg-calculator-api-container .dcg-icon-clipboard:before{content:\"\\e205\"}.dcg-calculator-api-container .dcg-icon-arrow-infinite:before{content:\"\\e206\"}.dcg-calculator-api-container .dcg-icon-arrow-once:before{content:\"\\e207\"}.dcg-calculator-api-container .dcg-icon-arrow-two-way:before{content:\"\\e208\"}.dcg-calculator-api-container .dcg-icon-arrow-one-way:before{content:\"\\e209\"}.dcg-calculator-api-container .dcg-icon-randomize:before{content:\"\\e20a\"}.dcg-calculator-api-container .dcg-icon-zoom-fit:before{content:\"\\e20b\"}.dcg-calculator-api-container .dcg-icon-comments:before{content:\"\\e20c\"}.dcg-calculator-api-container .dcg-icon-lines-solid:before{content:\"\\e20d\"}.dcg-calculator-api-container .dcg-icon-histogram-fill:before{content:\"\\e20e\"}.dcg-calculator-api-container .dcg-icon-histogram:before{content:\"\\e20f\"}.dcg-calculator-api-container .dcg-icon-distribution-fill:before{content:\"\\e210\"}.dcg-calculator-api-container .dcg-icon-distribution:before{content:\"\\e211\"}.dcg-calculator-api-container .dcg-icon-dotplot-cross:before{content:\"\\e212\"}.dcg-calculator-api-container .dcg-icon-dotplot-open:before{content:\"\\e213\"}.dcg-calculator-api-container .dcg-icon-dotplot-default:before{content:\"\\e214\"}.dcg-calculator-api-container .dcg-icon-boxplot:before{content:\"\\e215\"}.dcg-calculator-api-container .dcg-icon-points:before{content:\"\\e216\"}.dcg-calculator-api-container .dcg-icon-fraction:before{content:\"\\e217\"}.dcg-calculator-api-container .dcg-icon-cross:before{content:\"\\e218\"}.dcg-calculator-api-container .dcg-icon-open:before{content:\"\\e219\"}.dcg-calculator-api-container .dcg-icon-point:before{content:\"\\e21a\"}.dcg-calculator-api-container .dcg-icon-shaded-inequality-shade2:before{content:\"\\e21b\"}.dcg-calculator-api-container .dcg-icon-shaded-inequality-dash:before{content:\"\\e21c\"}.dcg-calculator-api-container .dcg-icon-parametric-filled:before{content:\"\\e21f\"}.dcg-calculator-api-container .dcg-icon-parametric-solid:before{content:\"\\e220\"}.dcg-calculator-api-container .dcg-icon-parametric-dashed:before{content:\"\\e221\"}.dcg-calculator-api-container .dcg-icon-parametric-dotted:before{content:\"\\e222\"}.dcg-calculator-api-container .dcg-icon-polygon-filled:before{content:\"\\e223\"}.dcg-calculator-api-container .dcg-icon-polygon-dashed:before{content:\"\\e224\"}.dcg-calculator-api-container .dcg-icon-polygon-dotted:before{content:\"\\e225\"}.dcg-calculator-api-container .dcg-icon-polygon-solid:before{content:\"\\e226\"}.dcg-calculator-api-container .dcg-icon-title:before{content:\"\\e227\"}.dcg-calculator-api-container .dcg-icon-rocket:before{content:\"\\e229\"}.dcg-calculator-api-container .dcg-icon-reset:before{content:\"\\e22a\"}.dcg-calculator-api-container .dcg-icon-desmos:before{content:\"\\e22b\"}.dcg-calculator-api-container .dcg-icon-download:before{content:\"\\e22c\"}.dcg-calculator-api-container .dcg-icon-embed:before{content:\"\\e22d\"}.dcg-calculator-api-container .dcg-icon-export:before{content:\"\\e22e\"}.dcg-calculator-api-container .dcg-icon-book:before{content:\"\\e22f\"}.dcg-calculator-api-container .dcg-icon-print:before{content:\"\\e230\"}.dcg-calculator-api-container .dcg-icon-arrows-two:before{content:\"\\e235\"}.dcg-calculator-api-container .dcg-icon-arrows-one:before{content:\"\\e236\"}.dcg-calculator-api-container .dcg-icon-desmos-badge:before{content:\"\\e237\"}.dcg-calculator-api-container .dcg-icon-move:before{content:\"\\e238\"}.dcg-calculator-api-container .dcg-icon-move-horizontal:before{content:\"\\e239\"}.dcg-calculator-api-container .dcg-icon-move-vertical:before{content:\"\\e23a\"}.dcg-calculator-api-container .dcg-icon-arrow-left:before{content:\"\\e23b\"}.dcg-calculator-api-container .dcg-icon-arrow-right:before{content:\"\\e23c\"}.dcg-calculator-api-container .dcg-icon-arrow-enter:before{content:\"\\e23d\"}.dcg-calculator-api-container .dcg-icon-shift:before{content:\"\\e23e\"}.dcg-calculator-api-container .dcg-icon-duplicate:before{content:\"\\e240\"}.dcg-calculator-api-container .dcg-icon-error:before{content:\"\\e241\"}.dcg-calculator-api-container .dcg-icon-film:before{content:\"\\e243\"}.dcg-calculator-api-container .dcg-icon-folder:before{content:\"\\e245\"}.dcg-calculator-api-container .dcg-icon-hamburger:before{content:\"\\e246\"}.dcg-calculator-api-container .dcg-icon-hide:before{content:\"\\e248\"}.dcg-calculator-api-container .dcg-icon-home:before{content:\"\\e249\"}.dcg-calculator-api-container .dcg-icon-keyboard:before{content:\"\\e24b\"}.dcg-calculator-api-container .dcg-icon-lock:before{content:\"\\e24c\"}.dcg-calculator-api-container .dcg-icon-minus:before{content:\"\\e24d\"}.dcg-calculator-api-container .dcg-icon-new-expression:before{content:\"\\e24e\"}.dcg-calculator-api-container .dcg-icon-new-folder:before{content:\"\\e24f\"}.dcg-calculator-api-container .dcg-icon-new-image:before{content:\"\\e250\"}.dcg-calculator-api-container .dcg-icon-new-text:before{content:\"\\e252\"}.dcg-calculator-api-container .dcg-icon-pause:before{content:\"\\e253\"}.dcg-calculator-api-container .dcg-icon-pencil:before{content:\"\\e254\"}.dcg-calculator-api-container .dcg-icon-play:before{content:\"\\e255\"}.dcg-calculator-api-container .dcg-icon-plus:before{content:\"\\e256\"}.dcg-calculator-api-container .dcg-icon-question-sign:before{content:\"\\e257\"}.dcg-calculator-api-container .dcg-icon-redo:before{content:\"\\e258\"}.dcg-calculator-api-container .dcg-icon-remove:before{content:\"\\e259\"}.dcg-calculator-api-container .dcg-icon-search:before{content:\"\\e25a\"}.dcg-calculator-api-container .dcg-icon-settings:before{content:\"\\e25b\"}.dcg-calculator-api-container .dcg-icon-share:before{content:\"\\e25c\"}.dcg-calculator-api-container .dcg-icon-show:before{content:\"\\e25d\"}.dcg-calculator-api-container .dcg-icon-table:before{content:\"\\e25e\"}.dcg-calculator-api-container .dcg-icon-text:before{content:\"\\e25f\"}.dcg-calculator-api-container .dcg-icon-twitter:before{content:\"\\e261\"}.dcg-calculator-api-container .dcg-icon-undo:before{content:\"\\e262\"}.dcg-calculator-api-container .dcg-icon-world:before{content:\"\\e263\"}.dcg-calculator-api-container .dcg-icon-wrench:before{content:\"\\e264\"}.dcg-calculator-api-container .dcg-icon-zoom:before{content:\"\\e265\"}.dcg-calculator-api-container .dcg-icon-caret-down:before{content:\"\\e266\"}.dcg-calculator-api-container .dcg-icon-caret-up:before{content:\"\\e269\"}.dcg-calculator-api-container .dcg-icon-check:before{content:\"\\e26a\"}.dcg-calculator-api-container .dcg-icon-chevron-left:before{content:\"\\e26c\"}.dcg-calculator-api-container .dcg-icon-chevron-right:before{content:\"\\e26d\"}.dcg-calculator-api-container .dcg-icon-delete:before{content:\"\\e26f\"}.dcg-calculator-api-container .dcg-icon-four-function:before{content:\"\\e900\"}.dcg-calculator-api-container .dcg-icon-volume-down:before{content:\"\\e901\"}.dcg-calculator-api-container .dcg-icon-volume-up:before{content:\"\\e902\"}.dcg-calculator-api-container .dcg-icon-volume:before{content:\"\\e903\"}.dcg-calculator-api-container .dcg-icon-thin-arrow-right:before{content:\"\\e904\"}.dcg-calculator-api-container .dcg-icon-thin-arrow-left:before{content:\"\\e905\"}.dcg-calculator-api-container .dcg-icon-line-dotted:before{content:\"\\e907\"}.dcg-calculator-api-container .dcg-icon-line-dashed:before{content:\"\\e908\"}.dcg-calculator-api-container .dcg-icon-line-solid:before{content:\"\\e909\"}.dcg-calculator-api-container .dcg-icon-mail:before{content:\"\\e90a\"}.dcg-calculator-api-container .dcg-icon-map:before{content:\"\\e90b\"}.dcg-calculator-api-container .dcg-icon-metronome:before{content:\"\\e90c\"}.dcg-calculator-api-container .dcg-icon-metronome-2:before{content:\"\\e90d\"}.dcg-calculator-api-container .dcg-icon-xy-plane:before{content:\"\\e90e\"}.dcg-calculator-api-container .dcg-icon-replace:before{content:\"\\e90f\"}.dcg-calculator-api-container .dcg-icon-angle:before{content:\"\\e910\"}.dcg-calculator-api-container .dcg-icon-line-thickness:before{content:\"\\e911\"}.dcg-calculator-api-container .dcg-icon-opacity:before{content:\"\\e912\"}.dcg-calculator-api-container .dcg-icon-sound-wave:before{content:\"\\e914\"}.dcg-calculator-api-container .dcg-icon-3d-reorient:before{content:\"\\e915\"}.dcg-calculator-api-container .dcg-icon-geometry:before{content:\"\\e916\"}.dcg-calculator-api-container .dcg-icon-graphing:before{content:\"\\e917\"}.dcg-calculator-api-container .dcg-icon-trashcan:before{content:\"\\e918\"}.dcg-calculator-api-container .dcg-icon-dilation:before{content:\"\\e919\"}.dcg-calculator-api-container .dcg-icon-vector:before{content:\"\\e91a\"}.dcg-calculator-api-container .dcg-icon-rotation:before{content:\"\\e91b\"}.dcg-calculator-api-container .dcg-icon-matrix:before{content:\"\\e91c\"}.dcg-calculator-api-container .dcg-icon-scientific:before{content:\"\\e91d\"}.dcg-calculator-api-container .dcg-icon-test-mode:before{content:\"\\e91f\"}.dcg-calculator-api-container .dcg-icon-reflection:before{content:\"\\e921f\"}.dcg-calculator-api-container .dcg-icon-polygon-token:before{content:\"\\e920\"}.dcg-calculator-api-container .dcg-icon-accessibility:before{content:\"\\e921\"}.dcg-calculator-api-container .dcg-icon-curved-arrow:before{content:\"\\e922\"}.dcg-calculator-api-container .dcg-icon-cartesian:before{content:\"\\e923\"}.dcg-calculator-api-container .dcg-icon-polar:before{content:\"\\e924\"}.dcg-calculator-api-container .dcg-icon-translation:before{content:\"\\e925\"}.dcg-calculator-api-container .dcg-icon-3d:before{content:\"\\e926\"}.dcg-calculator-api-container .dcg-constrained-height-popover{position:absolute;top:40px;bottom:2px;right:4px;pointer-events:none}.dcg-calculator-api-container .dcg-constrained-height-popover .dcg-popover-interior{max-height:100%;pointer-events:auto}.dcg-calculator-api-container .dcg-popover{z-index:80}.dcg-calculator-api-container .dcg-popover .dcg-popover-interior{padding:20px;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:6px;box-shadow:0 5px 10px #0003;color:#000;margin:-1px;overflow:auto}.dcg-calculator-api-container .dcg-popover.dcg-top{margin-bottom:10px}.dcg-calculator-api-container .dcg-popover.dcg-right{margin-left:10px}.dcg-calculator-api-container .dcg-popover.dcg-bottom{margin-top:10px}.dcg-calculator-api-container .dcg-popover.dcg-left{margin-right:10px}.dcg-calculator-api-container .dcg-popover .dcg-popover-interior{overflow:auto}.dcg-calculator-api-container .dcg-popover .dcg-popover-content{font-size:.85rem;color:#444;line-height:1.5em;position:relative}.dcg-calculator-api-container .dcg-popover .dcg-language-picker .dcg-language-header{color:#2f72dc;border-bottom:2px solid #2f72dc}.dcg-calculator-api-container .dcg-popover .dcg-popover-title{margin-bottom:10px;font-size:1.15rem;border-bottom:2px solid #2f72dc;color:#2f72dc;font-weight:400;background-color:#fff}.dcg-calculator-api-container .dcg-popover .dcg-popover-title:not(:first-of-type){padding-top:20px}.dcg-calculator-api-container .dcg-popover .dcg-arrow,.dcg-calculator-api-container .dcg-popover .dcg-arrow:after{position:absolute;display:inline-block;width:0;height:0;border-color:transparent;border-style:solid}.dcg-calculator-api-container .dcg-popover .dcg-arrow:after{content:\"\";z-index:-1}.dcg-calculator-api-container .dcg-popover.dcg-top .dcg-arrow{bottom:-10px;left:50%;margin-left:-10px;border-width:10px 10px 0;border-top-color:#fff}.dcg-calculator-api-container .dcg-popover.dcg-top .dcg-arrow:after{border-width:11px 11px 0;border-top-color:#00000040;bottom:-1px;left:-11px}.dcg-calculator-api-container .dcg-popover.dcg-right .dcg-arrow{top:50%;left:-10px;margin-top:-10px;border-width:10px 10px 10px 0;border-right-color:#fff}.dcg-calculator-api-container .dcg-popover.dcg-right .dcg-arrow:after{border-width:11px 11px 11px 0;border-right-color:#00000040;bottom:-11px;left:-1px}.dcg-calculator-api-container .dcg-popover.dcg-bottom .dcg-arrow{top:-14px;margin-left:-14px;border-width:0 14px 14px;border-bottom-color:#fff}.dcg-calculator-api-container .dcg-popover.dcg-bottom .dcg-arrow:after{border-width:0 14px 14px;border-bottom-color:#00000040;top:-1px;left:-14px}.dcg-calculator-api-container .dcg-popover.dcg-left .dcg-arrow{top:50%;right:-10px;margin-top:-10px;border-width:10px 0 10px 10px;border-left-color:#fff;border-top-color:transparent}.dcg-calculator-api-container .dcg-popover.dcg-left .dcg-arrow:after{border-width:11px 0 11px 11px;border-left-color:#00000040;bottom:-11px;right:-1px}.dcg-calculator-api-container .dcg-tap-container [ontap]{cursor:pointer}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem{display:block;position:relative;margin-top:-1px;border-top:1px solid rgba(206,206,206,.8);border-bottom:1px solid transparent;font-size:100%}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem:not(.dcg-expressionimage){cursor:text}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container{width:100%}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected,.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-dragging{border-color:#6a93d2;border-width:2px 0;border-right:1px solid #6a93d2}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected .dcg-fade-container,.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-dragging .dcg-fade-container{margin-top:-1px;margin-bottom:-1px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected .dcg-tab,.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-dragging .dcg-tab{color:var(--dcg-custom-text-color, #fff);border-right:1px solid transparent;background:#6a93d2}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-expression-bottom.dcg-fadein-bottom{position:relative;animation:dcg-fadeIn .8s;cursor:default;z-index:1}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-expression-footer-checkbox{margin:2px 0 4px;font-size:.9rem;color:#666}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-indent-in-folder{margin-left:53px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-inFolder .dcg-fade-container:after{position:absolute;top:5px;bottom:5px;left:56px;content:\"\";border-left:1px solid rgba(0,0,0,.2);animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-inFolder .dcg-main{margin-left:20px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-inFolder .dcg-indent-in-folder{margin-left:73px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-shell{height:54px;background:#fff}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container{position:relative;padding-bottom:6px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-main{position:relative;padding:15px 35px 9px 53px;white-space:nowrap;font-size:110%;vertical-align:middle}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-main .dcg-mq-container,.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-main .dcg-math-field{width:100%}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-expression-warning{font-size:80%;color:#666;cursor:default}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-expression-warning i{font-size:85%}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-expression-warning a{color:#666;margin-left:5px;text-decoration:underline}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-expression-warning a.dcg-hovered{color:#000}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-fade-container .dcg-expression-warning .dcg-btn{padding:2px 5px;margin-top:4px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem .dcg-tab{display:block;position:absolute;top:0;left:0;bottom:0;padding:1px 2px;font-size:65%;text-align:left;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));background:var(--dcg-custom-background-color, #eee);border-right:1px solid rgba(0,0,0,.06);cursor:move;width:38px;touch-action:none}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-readonly .dcg-tab{cursor:default}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontext .dcg-icon-text{position:absolute;top:50%;left:50%;margin:-7px 0 0 -7px;font-size:140%;opacity:.25}.dcg-calculator-api-container .dcg-expressiontable{cursor:default}.dcg-calculator-api-container .dcg-expressiontable .dcg-fade-container.dcg-hovered{box-shadow:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly{background:var(--dcg-custom-background-color-shaded, #eee)}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-parameter-suggestion-container{pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-lock-indicator{opacity:1;color:#bbb;text-shadow:-1px -1px 0 #eee,-1px 1px 0 #eee,1px -1px 0 #eee,1px 1px 0 #eee,0 -1px 0 #eee,0 1px 0 #eee,1px 0 0 #eee,-1px 0 0 #eee;pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-mathquill-wrapper{pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-mathquill-wrapper .dcg-tooltip-hit-area-container{pointer-events:auto}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-mathquill-wrapper .dcg-tooltip-hit-area-container .dcg-braille-input{pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-tabledata .dcg-row .dcg-cell,.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-fade-container{cursor:default}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-fade-container .dcg-main .dcg-table-container:before,.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-fade-container .dcg-main .dcg-tabledata:before{background:transparent}.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-fade-container .dcg-main .dcg-table-container:after,.dcg-calculator-api-container .dcg-expressionitem.dcg-readonly .dcg-fade-container .dcg-main .dcg-tabledata:after{background:transparent}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly{cursor:default}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-edit-list-mathquill,.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-main{cursor:default}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-evaluation{z-index:1}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly:after{content:\"\";position:absolute;top:0;right:0;bottom:0;width:18px;background:linear-gradient(to right,rgba(238,238,238,0),var(--dcg-custom-background-color-shaded, #eee) 40%)}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly:before{content:\"\";position:absolute;top:0;left:38px;bottom:0;width:18px;background:linear-gradient(to left,rgba(238,238,238,0),var(--dcg-custom-background-color-shaded, #eee) 40%);z-index:1}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-main{overflow-x:auto}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-main .dcg-table-container{overflow:visible}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-expressionitem.dcg-readonly .dcg-edit-list-mathquill .dcg-static-mathquill-view{padding-right:20px}.dcg-calculator-api-container .dcg-exppanel:not(.dcg-edit-list-mode) .dcg-mathquill-braille-overflow-right .dcg-tooltip-hit-area-container:after{display:none}.dcg-calculator-api-container .dcg-expressionitem:not(.dcg-mathitem).dcg-selected .dcg-top-level-delete{padding-bottom:0;padding-left:0}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected .dcg-top-level-delete,.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected .dcg-icon-lock{right:-1px}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionitem.dcg-selected .dcg-expression-bottom{margin-right:-1px}.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-top-level-delete,.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-lock-indicator{display:none}.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-expressionitem.dcg-expressiontext .dcg-displayTextarea,.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-expressionitem.dcg-expressionfolder .dcg-displayTextarea{pointer-events:none;opacity:0}.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-expressionitem.dcg-expressiontext textarea,.dcg-calculator-api-container .dcg-EDIT-LIST-MODE .dcg-exppanel .dcg-expressionitem.dcg-expressionfolder textarea{opacity:1}.dcg-calculator-api-container .dcg-drag-container{position:absolute;top:0;left:0;right:0;z-index:1000}.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem{background:var(--dcg-custom-background-color, #fff);overflow:hidden;box-shadow:0 0 10px #888;border-color:#6a93d2;border-right:1px solid #6a93d2}.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem .dcg-indent-in-folder,.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem .dcg-fade-container:after,.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem .dcg-main{transition:.3s}.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem .dcg-tab{background:#6a93d2}.dcg-calculator-api-container .dcg-drag-container .dcg-expressionitem .dcg-num{display:none}.dcg-calculator-api-container .dcg-template-expressioneach .dcg-expressionitem.dcg-dragging{visibility:hidden}.dcg-calculator-api-container .dcg-exppanel.dcg-isDragging .dcg-expressionitem.dcg-new-expression{opacity:0}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field{border:none;box-shadow:none!important}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field textarea{resize:none}.dcg-calculator-api-container .dcg-tap-container .dcg-mq-math-mode .dcg-mq-supsub{margin-bottom:-.2em}.dcg-calculator-api-container .dcg-tap-container .dcg-mq-math-mode .dcg-mq-sub{font-size:80%}.dcg-calculator-api-container .dcg-tap-container .dcg-mq-math-mode .dcg-mq-int>.dcg-mq-supsub>.dcg-mq-sub{font-size:100%}.dcg-calculator-api-container .dcg-clear{clear:both}.dcg-calculator-api-container .dcg-has-background-color .dcg-expressionitem{border-top-color:#0003}.dcg-calculator-api-container .dcg-expression-icon-container{position:absolute;top:28px;left:50%;height:29px;width:29px;margin-top:-14.5px;margin-left:-14.5px;text-align:center;line-height:29px;border-radius:50%}.dcg-calculator-api-container .dcg-selected .dcg-expression-icon-container{top:27px}.dcg-calculator-api-container .dcg-mouse-over-closed-poi,.dcg-calculator-api-container .dcg-mouse-over-opened-poi,.dcg-calculator-api-container .dcg-mouse-over-interactive-label,.dcg-calculator-api-container .dcg-mouse-over-clickable-object{cursor:pointer}.dcg-calculator-api-container .dcg-mouse-over-movable-point{cursor:move}.dcg-calculator-api-container .dcg-mouse-over-movable-point-ew{cursor:ew-resize}.dcg-calculator-api-container .dcg-mouse-over-movable-point-ns{cursor:ns-resize}.dcg-calculator-api-container .dcg-mouse-over-closed-poi .dcg-tracept{display:none}.dcg-calculator-api-container .dcg-poi-label.dcg-show-border .dcg-label{border:1px solid #ddd;background:#fff;border-radius:5px;box-shadow:0 0 5px #0003;padding:8px 6px}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-math-field{padding:3px 10px}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-resizing-text-input-container input,.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-text-input-content{padding:5px 10px}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border{background:#ffffffbf;border-radius:4px;border-width:1px;border-style:solid;padding:1px}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border:not(.dcg-focus):not(.dcg-hovered){border-color:#bbb!important}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border.dcg-empty-label:not(.dcg-focus):not(.dcg-hovered){border-color:#999!important}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border.dcg-empty-label,.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border.dcg-focus{background:#fff}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border.dcg-hovered:not(.dcg-focus){border-style:solid;padding:0;border-width:2px}.dcg-calculator-api-container .dcg-poi-label.dcg-editable-label .dcg-editable-label-border.dcg-focus{padding:0;border-width:2px}.dcg-calculator-api-container .dcg-poi-label .dcg-static-mathquill-view *{-webkit-user-select:none!important;user-select:none!important}.dcg-calculator-api-container .dcg-poi-label{display:inline-block;position:absolute;top:0;left:0;font-size:100%;color:#222}.dcg-calculator-api-container .dcg-poi-label .dcg-pt{display:inline-block;position:absolute;top:-4px;left:-4px;border:4px solid #000;border-radius:4px;width:0;height:0;z-index:0}.dcg-calculator-api-container .dcg-poi-label .dcg-label{position:absolute;z-index:3;white-space:nowrap}.dcg-calculator-api-container .dcg-poi-label .dcg-label.dcg-enable-transition{transition-property:transform;transition-duration:.3s}.dcg-calculator-api-container .dcg-poi-label .dcg-label .dcg-mq-sqrt-prefix{text-shadow:none}.dcg-calculator-api-container .dcg-poi-label .dcg-label-raw-text{pointer-events:none}.dcg-calculator-api-container .dcg-poi-label.dcg-underlined-label .dcg-label-raw-text{text-decoration:underline}.dcg-calculator-api-container .dcg-poi-label.dcg-has-outline .dcg-label{text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}.dcg-calculator-api-container .dcg-poi-label:not(.dcg-tracept) .dcg-pt{border-width:5px;border-color:transparent!important;border-radius:5px;opacity:1;top:-5px!important;left:-5px!important;cursor:pointer}.dcg-calculator-api-container .dcg-poi-label:not(.dcg-tracept).dcg-opened .dcg-pt{border-color:#000!important}.dcg-calculator-api-container .dcg-poi-label.dcg-hole .dcg-pt{top:-5px;left:-5px;border-width:2px;padding:3px;background:#fff!important;border-radius:6px}.dcg-calculator-api-container .dcg-poi-label.dcg-hide-dot .dcg-pt{display:none}.dcg-calculator-api-container .dcg-resizing-text-input-container{position:relative;overflow:hidden}.dcg-calculator-api-container .dcg-resizing-text-input-container input{position:absolute;top:1px;left:1px;right:1px;font:inherit;border:0;outline:0;background:transparent;color:inherit}.dcg-calculator-api-container .dcg-resizing-text-input-container:not(.dcg-focus) input::selection{background:transparent}.dcg-calculator-api-container .dcg-resizing-text-input-container.dcg-focus input,.dcg-calculator-api-container .dcg-resizing-text-input-container.dcg-hovered input{position:absolute;top:0;left:0}.dcg-calculator-api-container .dcg-resizing-text-input-container .dcg-text-input-content{min-width:35px;display:inline-block;color:transparent;white-space:pre}.dcg-calculator-api-container .dcg-poi-label.dcg-focus.dcg-naked-label .dcg-label{border:2px solid #5a87cd;padding:3px 10px;border-radius:3px}.dcg-calculator-api-container .dcg-poi-copy-button{padding:5px 5px 5px 3px;margin:-5px -3px -5px 2px;opacity:.4}.dcg-calculator-api-container .dcg-poi-label.dcg-opened .dcg-poi-copy-button.dcg-hovered{opacity:.6}.dcg-calculator-api-container .dcg-poi-label.dcg-opened .dcg-poi-copy-button.dcg-depressed{opacity:1}@keyframes dcg-pulse-cursor{0%{opacity:1}to{opacity:0;transform:scale(2)}}.dcg-calculator-api-container .dcg-geo-keyboard-cursor{position:absolute;pointer-events:none}.dcg-calculator-api-container .dcg-geo-keyboard-cursor:before{content:\"\";position:absolute;width:20px;height:20px;margin-left:-12px;margin-top:-12px;border-radius:50%;border:2px solid gray;animation:dcg-pulse-cursor 2s infinite}.dcg-calculator-api-container .dcg-geo-keyboard-cursor:after{content:\"\";position:absolute;width:20px;height:20px;margin-left:-12px;margin-top:-12px;border-radius:50%;border:2px solid gray;animation:dcg-pulse-cursor 2s infinite;animation-delay:1s}.dcg-calculator-api-container .dcg-tap-container:not(body){position:relative}.dcg-calculator-api-container .dcg-focus-by-tap:focus{outline:none}.dcg-calculator-api-container .dcg-static-mathquill-view *{-webkit-user-select:text!important;user-select:text!important;-moz-user-selection:text!important}.dcg-calculator-api-container .dcg-static-mathquill-view * .dcg-mq-cursor{display:none}.dcg-calculator-api-container .dcg-geo-token-view{cursor:pointer;outline:none;border:2px solid #2f72dc;color:#000;padding:.2em .4em;display:inline-block;border-radius:4px;margin-right:.15em;margin-left:.15em;margin-bottom:2px;width:26px;height:26px;vertical-align:middle;border-color:currentColor;background:#fff;position:relative;font-size:16px;touch-action:none}.dcg-calculator-api-container .dcg-geo-token-view.dcg-static-token{cursor:text}.dcg-calculator-api-container .dcg-geo-token-view:not(.dcg-static-token).dcg-focus-visible{box-shadow:0 0 0 3px #2f72dc80!important}.dcg-calculator-api-container .dcg-geo-token-view.dcg-graph-interactions-disabled{border-style:dashed;opacity:.6}.dcg-calculator-api-container .dcg-geo-token-view>*{pointer-events:none}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-label{position:absolute;right:1px;bottom:-1px;font-family:sans-serif;font-size:75%;padding-right:1px;padding-bottom:1px}.dcg-calculator-api-container .dcg-geo-token-view i{font-style:normal}.dcg-calculator-api-container .dcg-geo-token-view.dcg-assignment-token{border:1px solid #999;padding:0;text-align:center;width:auto;min-width:26px}.dcg-calculator-api-container .dcg-geo-token-view.dcg-assignment-token .dcg-token-background{display:none}.dcg-calculator-api-container .dcg-geo-token-view.dcg-assignment-token.dcg-hovered:not(.dcg-static-token),.dcg-calculator-api-container .dcg-geo-token-view.dcg-assignment-token:focus-within:not(.dcg-static-token){border:1px solid #999;box-shadow:0 0 0 1px #999}.dcg-calculator-api-container .dcg-geo-token-view.dcg-assignment-token.dcg-selected-token:not(.dcg-static-token){background-color:#fff;border:1px solid #666;box-shadow:0 0 0 1px #666}.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-point,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-midpoint,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-intersection,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-glider{position:relative;top:-6px;left:-9px}.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-point:after,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-midpoint:after,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-intersection:after,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-glider:after{display:none}.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-point:before,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-midpoint:before,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-intersection:before,.dcg-calculator-api-container .dcg-geo-token-view.dcg-token-has-label .dcg-token-glider:before{display:none}.dcg-calculator-api-container .dcg-geo-token-view.dcg-selected-token .dcg-token-label{color:#fff}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-background{opacity:.25;display:block;width:100%;height:100%;background:currentColor;position:absolute;top:0;left:0;bottom:0;right:0}.dcg-calculator-api-container .dcg-geo-token-view.dcg-hovered:not(.dcg-static-token) .dcg-token-background,.dcg-calculator-api-container .dcg-geo-token-view:focus-within:not(.dcg-static-token) .dcg-token-background{opacity:.4}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-icon{position:absolute;top:0;left:0;bottom:0;right:0;overflow:hidden;text-align:center;line-height:24px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-polygon,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-point,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-glider,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-intersection,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-midpoint{font-size:140%}.dcg-calculator-api-container .dcg-geo-token-view .dcg-icon-angle{font-size:110%}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-vector,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-translate{font-size:130%;padding-top:1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-translate{transform:rotate(-45deg)}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-vector{transform:rotate(var(--dcg-icon-angle, -45deg))}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-line:before{transform:rotate(var(--dcg-icon-angle, 20deg))}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-segment:before{transform:rotate(var(--dcg-icon-angle, -20deg))}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-ray:before{transform:rotate(var(--dcg-icon-angle, -60deg))}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-rotate,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-dilate,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-reflect,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-transformation{font-size:130%;color:#000}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-transformation{font-size:100%}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-rotate{margin-top:1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-translate{margin-left:1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-dilate{font-size:140%;margin-left:-1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-reflect:before{position:absolute;top:2px;bottom:2px;left:50%;border-right:1px solid rgba(0,0,0,.3);margin-left:-.5px;content:\"\"}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-glider:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-line:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-segment:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-ray:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-intersection:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-midpoint:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-parallel:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-perpendicular:before{content:\"\";height:2px;background:currentColor;position:absolute;top:50%;left:50%;margin-top:-1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-intersection:after,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-midpoint:after,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-parallel:after,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-perpendicular:after{content:\"\";height:2px;background:currentColor;position:absolute;top:50%;left:50%;margin-top:-1px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-glider:before{width:16px;margin-left:-8px;opacity:.7}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-intersection:before{transform:rotate(-45deg);width:20px;margin-left:-10px;opacity:.6}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-intersection:after{transform:rotate(45deg);width:20px;margin-left:-10px;opacity:.6}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-midpoint:before{transform:rotate(0);width:20px;margin-left:-10px;opacity:.6}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-segment:before{width:16px;margin-left:-8px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-ray:before{width:20px;margin-left:-5px;transform-origin:25% 25%}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-line:before{width:40px;margin-left:-20px}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-parallel:before,.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-perpendicular:before{width:40px;margin-left:-20px;transform:rotate(-20deg)}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-parallel:after{width:40px;margin-left:-20px;transform:rotate(-20deg);opacity:.4;transform-origin:5px 0}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-perpendicular:after{width:40px;margin-left:-20px;transform:rotate(70deg);opacity:.4}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-circle{border:2px solid currentColor;width:16px;height:16px;margin-top:3px;margin-left:3px;border-radius:50%}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-arc{position:absolute;top:-6px;left:-4px;width:22px;height:20px;transform:rotate(-45deg);background:transparent;overflow:hidden}.dcg-calculator-api-container .dcg-geo-token-view .dcg-token-arc:after{content:\"\";position:absolute;top:50%;left:0%;border:2px solid currentColor;border-radius:50%;width:14px;height:14px}.dcg-calculator-api-container .dcg-geo-token-view.dcg-selected-token{background-color:currentColor}.dcg-calculator-api-container .dcg-geo-token-view.dcg-selected-token .dcg-token-icon{color:#fff}.dcg-calculator-api-container .dcg-geo-token-view.dcg-child-of-hovered-token:not(.dcg-static-token):after{content:\"\";position:absolute;bottom:100%;left:50%;margin-left:-8px;border:1px solid transparent;border-width:6px 8px;border-bottom-color:#0003}.dcg-calculator-api-container .dcg-geo-token-view.dcg-parent-of-hovered-token:not(.dcg-static-token):after{content:\"\";position:absolute;top:100%;left:50%;margin-left:-8px;border:1px solid transparent;border-width:6px 8px;border-top-color:#0003}.dcg-calculator-api-container .dcg-geo-token-view .dcg-icon-lock{font-size:.7rem;color:#666;text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;opacity:1;position:absolute;bottom:0;right:0}.dcg-calculator-api-container .dcg-mq-container{position:relative;display:inline-block}.dcg-calculator-api-container .dcg-mq-container .dcg-mq-placeholder{position:absolute;top:50%;left:0;right:0;line-height:1em;height:1em;margin-top:-.67em;font-size:95%;pointer-events:none;font-family:Symbola,Times New Roman,serif;padding-left:2px;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .47))}.dcg-calculator-api-container .dcg-mq-container .dcg-mq-placeholder .dcg-mq-math-mode{font-size:inherit}.dcg-calculator-api-container .dcg-container .dcg-suffix-degree .dcg-mq-root-block:after{content:\"\\b0\";vertical-align:top;opacity:.6;margin-left:1px}.dcg-calculator-api-container .dcg-container .dcg-suffix-radian .dcg-mq-root-block:after{content:\"rad\";font-size:90%;opacity:.6;margin-left:3px}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field:not(.dcg-no-fadeout){position:relative}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field:not(.dcg-no-fadeout):after{content:\"\";position:absolute;top:0;right:0;bottom:0;width:14px;background:linear-gradient(to right,transparent,var(--dcg-custom-background-color, #fff));pointer-events:none}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field:not(.dcg-no-fadeout) .dcg-mq-root-block{padding-right:10px}.dcg-calculator-api-container .dcg-container .dcg-mq-editable-field:not(.dcg-no-fadeout) .dcg-mq-root-block.dcg-mq-editing-overflow-left:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:14px;background:linear-gradient(to left,transparent,var(--dcg-custom-background-color, #fff));pointer-events:none}.dcg-calculator-api-container .dcg-audio-trace-line{position:absolute;opacity:50%;background:var(--dcg-trace-color, #aaa)}.dcg-calculator-api-container .dcg-audio-trace-line.dcg-audio-trace-line--horizontal{left:0;right:0;height:4px;top:var(--dcg-trace-coord, -10px)}.dcg-calculator-api-container .dcg-audio-trace-line:not(.dcg-audio-trace-line--horizontal){bottom:0;width:4px;top:0;left:var(--dcg-trace-coord, -10px)}.dcg-calculator-api-container .dcg-multi-select-header{display:flex;align-items:center;padding:3px;position:relative}.dcg-calculator-api-container .dcg-multi-select-header .dcg-circular-icon{margin-right:8px;float:left}.dcg-calculator-api-container .dcg-multi-select-header .dcg-btn-light-gray{border-color:#bbb;padding:3px 5px;font-size:90%;margin-right:4px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-btn-outline{display:inline-block;padding-left:10px;padding-right:10px;border:1px solid #666;color:#666;border-radius:5px;height:32px;line-height:30px;cursor:pointer}.dcg-calculator-api-container .dcg-multi-select-header .dcg-btn-outline.dcg-hovered:not(.dcg-disabled){color:#666;border:1px solid #666;box-shadow:0 0 0 1px #666}.dcg-calculator-api-container .dcg-multi-select-header .dcg-btn-outline.dcg-depressed:not(.dcg-disabled){border:1px solid #000;box-shadow:0 0 0 1px #000;color:#000}.dcg-calculator-api-container .dcg-multi-select-header .dcg-btn-outline[role=button].dcg-focus-visible,.dcg-calculator-api-container .dcg-multi-select-header .dcg-navigate-back[role=button].dcg-focus-visible,.dcg-calculator-api-container .dcg-multi-select-header .dcg-delete-btn[role=button].dcg-focus-visible,.dcg-calculator-api-container .dcg-multi-select-header .dcg-more-options[role=button].dcg-focus-visible{outline:none;box-shadow:0 0 0 2px #2f72dc80!important;border-radius:5px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-delete-btn{margin-right:12px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-transformations-button{margin-left:7px;margin-right:5px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-transformations-button .dcg-icon-caret-down{font-size:75%;color:#999;margin-left:4px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-transformations-button.dcg-hovered .dcg-icon-caret-down,.dcg-calculator-api-container .dcg-multi-select-header .dcg-transformations-button.dcg-transformations-open .dcg-icon-caret-down{color:#666}.dcg-calculator-api-container .dcg-multi-select-header .dcg-show-hide-btn{text-align:center;overflow:hidden}.dcg-calculator-api-container .dcg-multi-select-header .dcg-show-hide-btn div{transition:transform .2s;max-height:30px;overflow:hidden}.dcg-calculator-api-container .dcg-multi-select-header .dcg-show-hide-btn:not(.dcg-any-visible-objects) div{transform:translateY(-30px)}.dcg-calculator-api-container .dcg-multi-select-header .dcg-multi-select-icon-button{color:#999;font-size:22px;padding:5px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-multi-select-icon-button.dcg-more-options{margin:0;position:relative;top:2px}.dcg-calculator-api-container .dcg-multi-select-header .dcg-multi-select-icon-button.dcg-transformations-button{margin:0;position:relative;top:2px;background:red}.dcg-calculator-api-container .dcg-multi-select-header .dcg-multi-select-icon-button.dcg-hovered{color:#666}.dcg-calculator-api-container .dcg-multi-select-header .dcg-multi-select-icon-button.dcg-depressed{color:#222}.dcg-calculator-api-container .dcg-tooltip-hit-area-container{position:relative;cursor:default!important;line-height:initial}.dcg-calculator-api-container .dcg-tooltip-hit-area-container.dcg-display-block{width:100%}.dcg-calculator-api-container .dcg-tooltip-hit-area-container:not(.dcg-display-block){display:inline-block}.dcg-calculator-api-container .dcg-tooltip-mount-pt{position:absolute;top:0;left:0}.dcg-calculator-api-container .dcg-tooltip-positioning-container{position:absolute;pointer-events:none;z-index:10000}.dcg-calculator-api-container .dcg-tooltip-positioning-container .dcg-tooltip-message-container{position:absolute;z-index:10000;animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-tooltip-positioning-container .dcg-tooltip-message{max-width:100%;border-radius:4px;padding:5px 8px;font-size:14px;line-height:1.1em;display:inline-block;pointer-events:all;text-align:center;position:relative}.dcg-calculator-api-container .dcg-tooltip-positioning-container .dcg-tooltip-message.dcg-sticky-not-stuck{cursor:pointer}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-dark .dcg-tooltip-message{background:#000;color:#fff}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-dark .dcg-tooltip-message.dcg-sticky-not-stuck{background:#666}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light .dcg-tooltip-message{background:#fff;color:#000;border:1px solid #bbb;border-radius:5px}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light .dcg-tooltip-message .dcg-static-mathquill-view{width:100%}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light .dcg-tooltip-message .dcg-mq-root-block *{-webkit-user-select:none!important;user-select:none!important;cursor:default}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light .dcg-tooltip-arrow{transform:rotate(45deg)}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light.dcg-tooltip-gravity-n-s .dcg-tooltip-arrow{transform:translate(-50%) rotate(45deg)}.dcg-calculator-api-container .dcg-tooltip-positioning-container.dcg-tooltip-theme-light.dcg-tooltip-gravity-e-w .dcg-tooltip-arrow{transform:translateY(-50%) rotate(45deg)}.dcg-calculator-api-container .dcg-tooltip-positioning-container .dcg-tooltip-arrow{position:absolute;animation:dcg-fadeIn .3s;z-index:10000}.dcg-calculator-api-container .dcg-dot-dot-dropdown{position:relative;height:1em;width:1em;display:inline-block}.dcg-calculator-api-container .dcg-dot-dot-dropdown span{display:inline-block;width:5px;height:5px;background:currentcolor;border-radius:50%;position:absolute;left:50%;top:50%;margin-left:-3px;margin-top:-3px}.dcg-calculator-api-container .dcg-dot-dot-dropdown span:first-of-type{top:15%}.dcg-calculator-api-container .dcg-dot-dot-dropdown span:last-of-type{top:85%}.dcg-calculator-api-container .dcg-navigate-back{font-size:120%;margin-right:12px;border-right:1px solid rgba(0,0,0,.1);text-align:left;height:34px;padding-left:5px;padding-right:10px;display:flex;align-items:center}.dcg-calculator-api-container .dcg-navigate-back .dcg-navigate-back-message{font-size:75%;text-align:center;color:#666;line-height:1em}.dcg-calculator-api-container .dcg-navigate-back i{width:34px;color:#999}.dcg-calculator-api-container .dcg-navigate-back.dcg-hovered i{color:#666}.dcg-calculator-api-container .dcg-navigate-back.dcg-depressed i{color:#222}.dcg-calculator-api-container .dcg-multi-select-options-menu{width:220px;margin-left:-190px;margin-top:35px}.dcg-calculator-api-container .dcg-multi-select-options-menu:after{content:\"\";position:absolute;top:-10px;right:5px;border-width:10px;border-top-width:0;border-style:solid;border-color:transparent transparent #fff;line-height:0}.dcg-calculator-api-container .dcg-multi-select-options-menu:before{content:\"\";position:absolute;top:-11px;right:4px;border-width:11px;border-top-width:0;border-style:solid;border-color:transparent transparent #ccc;line-height:0}.dcg-calculator-api-container .dcg-multi-select-options-menu .dcg-label-container input.dcg-label-input{margin-top:6px;font-size:90%}.dcg-calculator-api-container .dcg-multi-select-options-menu .dcg-checkbox-section{margin-top:5px}.dcg-calculator-api-container .dcg-multi-select-options-menu .dcg-selected-objects-header{border-bottom:1px solid rgba(0,0,0,.2);padding-bottom:10px;margin-bottom:10px}.dcg-calculator-api-container .dcg-component-checkbox{cursor:pointer;position:relative}.dcg-calculator-api-container .dcg-component-checkbox .dcg-checkbox{border:1px solid #bbb;margin-right:.5em;width:1.1em;height:1.1em;border-radius:3px;vertical-align:middle;display:inline-block;position:relative}.dcg-calculator-api-container .dcg-component-checkbox .dcg-checkbox i{display:none;font-size:115%;position:absolute;top:-.15em;left:.1em;text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}.dcg-calculator-api-container .dcg-component-checkbox .dcg-checkbox-children{position:relative;top:.1em}.dcg-calculator-api-container .dcg-component-checkbox.dcg-hovered:not(.dcg-checked) .dcg-checkbox{border:1px solid #999}.dcg-calculator-api-container .dcg-component-checkbox.dcg-hovered:not(.dcg-checked) .dcg-checkbox i{display:block;color:#e2e2e2}.dcg-calculator-api-container .dcg-component-checkbox.dcg-checked .dcg-checkbox i{display:block;color:#2f72dc}.dcg-calculator-api-container .dcg-component-checkbox.dcg-checked.dcg-hovered .dcg-checkbox{border:1px solid #999}.dcg-calculator-api-container .dcg-component-checkbox.dcg-disabled{pointer-events:none;opacity:.5}.dcg-calculator-api-container .dcg-component-checkbox.dcg-disabled .dcg-checkbox{background:#00000026}.dcg-calculator-api-container .dcg-component-checkbox.dcg-disabled.dcg-checked i{display:block;color:#999}.dcg-calculator-api-container .dcg-component-checkbox.dcg-small{font-size:85%}.dcg-calculator-api-container .dcg-move-to-folder{border-top:1px solid rgba(0,0,0,.2);margin-top:10px;padding-top:10px}.dcg-calculator-api-container .dcg-move-to-folder .dcg-move-to-folder-title{font-size:90%;color:#666;margin-bottom:3px}.dcg-calculator-api-container .dcg-move-to-folder .dcg-move-to-folder-flex{display:flex}.dcg-calculator-api-container .dcg-move-to-folder .dcg-btn-blue{margin-left:5px;padding:0 8px;font-size:90%;height:30px;line-height:28px}.dcg-calculator-api-container .dcg-move-to-folder .dcg-btn-blue.dcg-disabled{pointer-events:none;opacity:.5}.dcg-calculator-api-container .dcg-move-to-folder input{padding:0 5px;border:1px solid rgba(0,0,0,.2);outline:none;border-radius:4px;width:100%;font-size:90%}.dcg-calculator-api-container .dcg-move-to-folder input.dcg-hovered{border:1px solid rgba(0,0,0,.2);box-shadow:0 0 0 1px #0003}.dcg-calculator-api-container .dcg-move-to-folder input:focus{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container .dcg-expressions-options-menu,.dcg-calculator-api-container .dcg-table-column-menu,.dcg-calculator-api-container .dcg-image-options-menu,.dcg-calculator-api-container .dcg-generic-options-menu{min-width:222px}.dcg-calculator-api-container .dcg-expressions-options-menu.dcg-options-menu,.dcg-calculator-api-container .dcg-table-column-menu.dcg-options-menu,.dcg-calculator-api-container .dcg-image-options-menu.dcg-options-menu,.dcg-calculator-api-container .dcg-generic-options-menu.dcg-options-menu{padding-left:0;padding-right:0}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-menu-content,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-menu-content,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-content,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-menu-content{animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-flex-container,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-flex-container,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-flex-container,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-flex-container{display:flex;margin:5px 0;max-width:200px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-left-side,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-left-side,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-left-side,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-left-side{flex:1}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-menu-section,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-menu-section,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-section,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-menu-section{padding-left:10px;padding-right:10px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-menu-section:not(:first-of-type),.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-menu-section:not(:first-of-type),.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-section:not(:first-of-type),.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-menu-section:not(:first-of-type){border-top:1px solid #e2e2e2;padding-top:10px;margin-top:10px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-menu-section:not(:first-of-type).dcg-section-without-title,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-menu-section:not(:first-of-type).dcg-section-without-title,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-section:not(:first-of-type).dcg-section-without-title,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-menu-section:not(:first-of-type).dcg-section-without-title{padding-top:3px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-options-menu-section .dcg-toggle-view,.dcg-calculator-api-container .dcg-table-column-menu .dcg-options-menu-section .dcg-toggle-view,.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-section .dcg-toggle-view,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-options-menu-section .dcg-toggle-view{margin-top:3px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-point-segmented-option,.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-line-segmented-option,.dcg-calculator-api-container .dcg-table-column-menu .dcg-point-segmented-option,.dcg-calculator-api-container .dcg-table-column-menu .dcg-line-segmented-option,.dcg-calculator-api-container .dcg-image-options-menu .dcg-point-segmented-option,.dcg-calculator-api-container .dcg-image-options-menu .dcg-line-segmented-option,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-point-segmented-option,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-line-segmented-option{width:33px;height:30px;line-height:30px;color:#999}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-point-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-line-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-table-column-menu .dcg-point-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-table-column-menu .dcg-line-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-image-options-menu .dcg-point-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-image-options-menu .dcg-line-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-generic-options-menu .dcg-point-segmented-option.dcg-hovered:not(.dcg-selected),.dcg-calculator-api-container .dcg-generic-options-menu .dcg-line-segmented-option.dcg-hovered:not(.dcg-selected){color:#666}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-point-segmented-option i,.dcg-calculator-api-container .dcg-table-column-menu .dcg-point-segmented-option i,.dcg-calculator-api-container .dcg-image-options-menu .dcg-point-segmented-option i,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-point-segmented-option i{font-size:150%}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-line-segmented-option i,.dcg-calculator-api-container .dcg-table-column-menu .dcg-line-segmented-option i,.dcg-calculator-api-container .dcg-image-options-menu .dcg-line-segmented-option i,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-line-segmented-option i{font-size:130%}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row,.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-clickable-menu-row,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row,.dcg-calculator-api-container .dcg-table-column-menu .dcg-clickable-menu-row,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row,.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-menu-row,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-clickable-menu-row{padding:7px 0 1px}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row i,.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-font-size,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row i,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-font-size,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row i,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-font-size,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row i,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-font-size{color:var(--dcg-custom-text-color, #999);margin-right:5px;cursor:pointer;width:13px;display:inline-block;position:relative;top:2px;line-height:1em}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-math-field,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-math-field,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-math-field,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:42px;max-width:60px;font-size:95%}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view),.dcg-calculator-api-container .dcg-table-column-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view),.dcg-calculator-api-container .dcg-image-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view),.dcg-calculator-api-container .dcg-generic-options-menu .dcg-iconed-mathquill-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-line-thickness-row-3d,.dcg-calculator-api-container .dcg-table-column-menu .dcg-line-thickness-row-3d,.dcg-calculator-api-container .dcg-image-options-menu .dcg-line-thickness-row-3d,.dcg-calculator-api-container .dcg-generic-options-menu .dcg-line-thickness-row-3d{margin-bottom:8px}.dcg-calculator-api-container .dcg-color-picker-container{max-height:185px;overflow-y:auto;margin-right:-10px;padding-right:10px;margin-left:-2px;padding-left:2px;margin-bottom:-2px;padding-bottom:2px}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu{display:grid;grid-template-columns:repeat(6,30px);gap:4px;grid-auto-flow:row;grid-auto-rows:30px;padding-top:4px}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu:first-of-type{margin-top:0}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile{position:relative;outline:none}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile.dcg-focus-visible{box-shadow:0 0 0 2px #2f72dc80!important}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile i.dcg-icon-check{position:absolute;top:50%;left:0;right:0;pointer-events:none;height:20px;line-height:20px;color:#fff;margin-top:-10px;text-align:center}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile i.dcg-icon-check.dcg-light-color{color:#444}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile i.dcg-icon-check.dcg-mixed-color{text-shadow:0 0 3px rgba(0,0,0,.8)}.dcg-calculator-api-container .dcg-color-picker-container .dcg-color-picker-menu .dcg-color-tile i.dcg-icon-lock{color:#999;text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;position:absolute;bottom:2px;right:2px;font-size:65%}.dcg-calculator-api-container .dcg-color-swatch{width:30px;height:30px;border-radius:3px;overflow:hidden}.dcg-calculator-api-container .dcg-color-swatch.dcg-light-color{box-shadow:0 0 0 1px #0003 inset}.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-color-swatch.dcg-light-color{box-shadow:0 0 0 1px #fff3 inset}.dcg-calculator-api-container .dcg-color-swatch.dcg-hovered:not(.dcg-color-evaluation){box-shadow:0 0 0 2px #00000026}.dcg-calculator-api-container .dcg-color-swatch.dcg-hovered:not(.dcg-color-evaluation).dcg-light-color{box-shadow:0 0 0 2px #00000026,0 0 0 1px #0003 inset}.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-color-swatch.dcg-hovered:not(.dcg-color-evaluation).dcg-light-color{box-shadow:0 0 0 1px #fff3 inset}.dcg-calculator-api-container .dcg-color-swatch.dcg-depressed:not(.dcg-color-evaluation){box-shadow:0 0 0 2px #00000040}.dcg-calculator-api-container .dcg-color-swatch.dcg-depressed:not(.dcg-color-evaluation).dcg-light-color{box-shadow:0 0 0 2px #00000040,0 0 0 1px #0003 inset}.dcg-calculator-api-container .dcg-container.dcg-inverted-swatches .dcg-color-swatch.dcg-depressed:not(.dcg-color-evaluation).dcg-light-color{box-shadow:0 0 0 1px #fff3 inset}.dcg-calculator-api-container .dcg-color-swatch.dcg-has-background-image{background:#fff;width:30px;height:30px;overflow:hidden;background-size:30px 30px!important;content:\"\"}.dcg-calculator-api-container .dcg-container .dcg-editable-mode-toggle{padding-left:5px}.dcg-calculator-api-container .dcg-container .dcg-label-container{cursor:default;display:flex}.dcg-calculator-api-container .dcg-container .dcg-label-container input{outline:none;border:1px solid #bbb;border-top:0!important;border-right:0!important;border-left:0!important;color:#000;padding:1px 2px;-webkit-appearance:none;appearance:none;border-radius:0;min-width:5px;font-size:inherit;margin-left:5px;flex:1;background:var(--dcg-custom-background-color-shaded);color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-container .dcg-label-container input.dcg-hovered{border-color:#ccc;box-shadow:0 1px #ccc}.dcg-calculator-api-container .dcg-container .dcg-label-container input:focus:not([disabled]){border-color:#2f72dc;box-shadow:0 1px #2f72dc}.dcg-calculator-api-container .dcg-container .dcg-label-container input.dcg-disabled-editable-input{opacity:0;pointer-events:none}.dcg-calculator-api-container .dcg-container .dcg-label-container input.dcg-readonly{pointer-events:none}.dcg-calculator-api-container .dcg-container .dcg-label-container:not(.dcg-label-visible) input.dcg-disabled-input:not(:focus){border-bottom-color:transparent;pointer-events:none}.dcg-calculator-api-container .dcg-container .dcg-label-container.dcg-label-visible .dcg-checkbox{color:#666}.dcg-calculator-api-container .dcg-container .dcg-editable-mode-toggle{position:relative;top:-3px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-expression-bottom .dcg-label-container{font-size:100%}.dcg-calculator-api-container .dcg-expression-bottom .dcg-label-container{font-size:80%;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));padding-right:10px}.dcg-calculator-api-container .dcg-segmented-control-container{display:flex}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn{color:var(--dcg-custom-text-color, rgba(0, 0, 0, .85));text-align:center;display:flex;justify-content:center;align-items:center;border:1px solid var(--dcg-custom-text-color, rgba(0, 0, 0, .42))}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn .dcg-segmented-control-interior{cursor:pointer}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn i{position:relative;top:1px}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn:not(:last-of-type){border-right:0}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-hovered:not(.dcg-selected){color:#000}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-depressed:not(.dcg-selected){background:#0000000d}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-selected{color:var(--dcg-custom-background-color, #fff);position:relative}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-default{flex:1}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-default .dcg-segmented-control-interior{height:34px;line-height:34px;padding:0 8px}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-default.dcg-hovered:not(.dcg-selected){border-color:#0000009e}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-default.dcg-selected{border:1px solid var(--dcg-custom-text-color, rgba(0, 0, 0, .65));background:var(--dcg-custom-text-color, rgba(0, 0, 0, .65))}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini{border-color:var(--dcg-custom-text-color, #ccc)}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini .dcg-segmented-control-interior{padding:4px 6px}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-hovered:not(.dcg-selected){background:#0000000d}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-depressed:not(.dcg-selected){background:#0003}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-selected{background:var(--dcg-custom-text-color, rgba(47, 114, 220, .15));border-color:var(--dcg-custom-text-color, #2f72dc);color:var(--dcg-custom-background-color, #2f72dc);cursor:default!important}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-selected+.dcg-segmented-control-btn{border-left:1px solid var(--dcg-custom-text-color, #2f72dc)}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-disabled{pointer-events:none}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-disabled.dcg-selected+.dcg-segmented-control-btn{border-left:1px solid #666}.dcg-calculator-api-container .dcg-segmented-control-container .dcg-segmented-control-btn.dcg-theme-mini.dcg-disabled.dcg-selected{background:#0000001a;border-color:#666;color:#000}.dcg-calculator-api-container .dcg-multi-select-transformations-menu{width:300px;margin-left:-190px;margin-top:35px}.dcg-calculator-api-container .dcg-multi-select-transformations-menu:after{content:\"\";position:absolute;top:-10px;right:5px;border-width:10px;border-top-width:0;border-style:solid;border-color:transparent transparent #fff;line-height:0}.dcg-calculator-api-container .dcg-multi-select-transformations-menu:before{content:\"\";position:absolute;top:-11px;right:4px;border-width:11px;border-top-width:0;border-style:solid;border-color:transparent transparent #ccc;line-height:0}.dcg-calculator-api-container .dcg-multi-select-transformations-menu.dcg-options-menu{padding:10px 10px 0}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container{display:flex;margin-bottom:10px}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation{border:1px solid rgba(0,0,0,.2);padding:5px;text-align:center;width:64px;font-size:70%;border-radius:5px;color:#999}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation:not(:last-of-type){margin-right:8px}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation.dcg-will-be-hidden-or-disabled{opacity:.5;border:1px dashed rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation i{display:block;text-align:center;font-size:40px;margin:5px 0;position:relative}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation i.dcg-icon-rotation:after,.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation i.dcg-icon-dilation:after{position:absolute;top:50%;left:50%;width:4px;height:4px;background:#7d69b3;margin-left:-2px;margin-top:-2px;border-radius:50%;content:\"\"}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation i.dcg-icon-vector{transform:rotate(-45deg)}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation i.dcg-icon-reflection:after{position:absolute;top:2px;bottom:2px;left:50%;border-right:2px dashed rgba(47,114,220,.5);content:\"\";margin-left:-1px}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation.dcg-hovered{border:1px solid #999;box-shadow:0 0 0 1px #999;color:#666}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation.dcg-depressed{border:1px solid #666;box-shadow:0 0 0 1px #666;color:#000}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-new-transformations-container .dcg-new-transformation.dcg-disabled{opacity:.25}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-existing-transformations-container{max-height:200px;overflow-y:auto;padding:0 1px 5px;margin:0 -1px}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-existing-transformation{padding:5px 10px 2px;border:1px solid rgba(0,0,0,.2);border-radius:5px;margin-top:5px;margin-bottom:5px;opacity:.8;color:#666;text-align:left}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-existing-transformation.dcg-hovered{opacity:1;color:#444;border:1px solid #aaa;box-shadow:0 0 0 1px #aaa}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-existing-transformation.dcg-depressed{opacity:1;color:#000;border:1px solid #888;box-shadow:0 0 0 1px #888}.dcg-calculator-api-container .dcg-multi-select-transformations-menu .dcg-existing-transformation>div{pointer-events:none}.dcg-calculator-api-container .dcg-options-menu-container{position:absolute;display:none;z-index:61;pointer-events:none}.dcg-calculator-api-container .dcg-options-menu-container .dcg-options-menu{pointer-events:auto}.dcg-calculator-api-container .dcg-options-menu{padding:10px;position:relative;border:1px solid #d3d3d3;border-radius:7px;box-shadow:0 0 6px #00000026;background:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-options-menu button{margin:unset;padding:unset;border:unset;background:unset;font-size:inherit;color:inherit}.dcg-calculator-api-container .dcg-options-menu button.dcg-focus-visible,.dcg-calculator-api-container .dcg-options-menu button.dcg-hovered:not(.dcg-disabled){outline:none;box-shadow:0 0 0 2px #2f72dc80}.dcg-calculator-api-container .dcg-options-menu button.dcg-disabled,.dcg-calculator-api-container .dcg-options-menu button[aria-disabled=true]{cursor:unset}.dcg-calculator-api-container .dcg-options-menu .dcg-dividing-line-after{padding-bottom:10px;border-bottom:1px solid #e2e2e2;margin-bottom:10px}.dcg-calculator-api-container .dcg-options-menu .dcg-triangle{width:0;height:0;border-style:solid}.dcg-calculator-api-container .dcg-options-menu .dcg-triangle:before{content:\"\";width:0;height:0;border-style:solid}.dcg-calculator-api-container .dcg-options-menu .dcg-title{margin-bottom:5px;opacity:.65;font-weight:500}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icons,.dcg-calculator-api-container .dcg-options-menu .dcg-component-checkbox{margin-top:5px}.dcg-calculator-api-container .dcg-options-menu .dcg-component-checkbox .dcg-checkbox-children{font-size:90%;color:var(--dcg-custom-text-color, #333)}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icon-container{display:inline-block;width:29px;height:29px;border-radius:50%}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icon-container:not(:last-of-type){margin-right:4px}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icon-container.dcg-disabled{cursor:default!important}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icon-container:not(.dcg-disabled).dcg-hovered:not(.dcg-disabled){box-shadow:0 0 0 2px #0000001a}.dcg-calculator-api-container .dcg-options-menu .dcg-style-icon-container:not(.dcg-disabled).dcg-depressed:not(.dcg-disabled){box-shadow:0 0 0 2px #00000040}.dcg-calculator-api-container .dcg-options-menu textarea{width:100%;height:3em;border:1px solid rgba(0,0,0,.2);border-radius:4px;font:inherit;font-size:90%;padding:5px;margin-top:5px;outline:none;position:relative;top:3px;color:var(--dcg-custom-text-color, #000);background:var(--dcg-custom-background-color-shaded, #fff)}.dcg-calculator-api-container .dcg-options-menu textarea.dcg-hovered{border:1px solid #bbb;box-shadow:0 0 0 1px #bbb}.dcg-calculator-api-container .dcg-options-menu textarea:focus{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-triangle,.dcg-calculator-api-container .dcg-slider-options-view .dcg-triangle,.dcg-calculator-api-container .dcg-table-column-menu .dcg-triangle,.dcg-calculator-api-container .dcg-image-options-menu .dcg-triangle{position:absolute;top:12px;left:-9px;border-width:9px 9px 9px 0;border-color:transparent #d3d3d3 transparent transparent}.dcg-calculator-api-container .dcg-expressions-options-menu .dcg-triangle:before,.dcg-calculator-api-container .dcg-slider-options-view .dcg-triangle:before,.dcg-calculator-api-container .dcg-table-column-menu .dcg-triangle:before,.dcg-calculator-api-container .dcg-image-options-menu .dcg-triangle:before{position:absolute;top:-8px;left:1px;border-width:8px 8px 8px 0;border-color:transparent var(--dcg-custom-background-color, #fff) transparent transparent}.dcg-calculator-api-container .dcg-expressions-options-menu,.dcg-calculator-api-container .dcg-slider-options-view,.dcg-calculator-api-container .dcg-image-options-menu{left:38px}.dcg-calculator-api-container .dcg-expressions-options-menu,.dcg-calculator-api-container .dcg-slider-options-view{top:-7px}.dcg-calculator-api-container .dcg-image-options-menu{min-width:185px;top:-10px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-triangle{position:absolute;top:15px;left:-9px}.dcg-calculator-api-container .dcg-table-column-menu .dcg-triangle{position:absolute;top:-9px;left:14px}@font-face{font-family:Abraham;src:url(data:font/woff2;base64,d09GMgABAAAAAArwAA0AAAAAeWQAAAqVAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP0ZGVE0cGhgGYACCYhEICoHWFIGlFguCSgABNgIkA4QWBCAFiB0HhnQbtF4RlaOBR1GaNk3yZQI3B7YOliFCqWPJhLGMZWhifaqyq2o95GjH/zNVXBL8//9+/5trX7XvFg1IZlYag8ygxJfQVn5CG1XtHP+dNq/yNt2C3pL4S+6clNLJDAzYNFYB91q8EtLut8xTjmIJrIusoXVe+2wOwt9AJDikbwstrP99yLFHAPzz3Kv8zsnN5Bxfj0MY4zVxDermbpqDSlLwlBquUEUKWLKC/ZTqUiAv/D/t978qcBFrJFoxien5xgafh3ry5nPPW2d49/v9Hw2JVH4uSCjEZJZIEf9/TP1e6LRjmpSm8IJIGEpw5KQa/5jvAgTw0rfxI2D948NgeQsBOVTLOj7e9uyLvhKAPWRYBnhUfoneIQzwFPdI+Oj8cmCFe8mSUZEe8FbhFFixwJtglARgCiJ+ox4wBgFwGSMCxjCxHZATY/hAwX0dypZ0AAqmdCgD3cF9d7e9OECwuUJ4vyszdYLtFfgBC2t3WO0Yq4dI/4HIyMrJKygqKauoqqlraGpp6+jq6RsYGhkTJqZm5haWVtYWrFRr9Uaz1e50e/3BcDSeTGfzxXK13mx3+8PxBM7yccuOHAr1vgzaD8LDYGoDzC8AgCAGPGX6fFspovrttY4kxKvIokJxNrafYC3wFQXzMoDa3imAyj7PuH0j8qnRPkDKA1me2uIZck2ci/P3LZ8eCYTQ2dHAgYJD4t0c57oCXMgMXiwMVcTz7cFF6mXKFdrV8uNPyAPUIcow7bqog/BwU4sWfq33xFUv5KpeyNimSmmCgXAd4Wl5+I4e6RUf1B5BNBwGA0LFdXgCmOaszGXOsalSjuHOEeMsZaiJbB7elCdblK7hDvY/4HZe2DbYTHIYJKWFBSlD1AHyIC2Zh5X35/ruazK7L8mG5+XiRrjDwhtMNJwWnmwKzwFcGsQ+EG7K5ILNewxDoRw45boM5BCncUz59T7Brb8i9nKXBjTlnqs+/dVokUHF4cPmbNhy+WjYPjwOERc4p2yKWGwUn6rYW92anaBbixCV440aah2lXq4rCg/Lpfz+V9Qaci2tntJy9bpB8m2+scd873PfY8tkeAhMRuT8adg+4KIb3A8uBH7whzv77EwyjGWkYZdAE/Ew+IfOvTMF9mHaDyIHr93Fr1m+FHnPRrSx+xV2D4qqrtGm9s5BnW1znv7RfabE/WggXINmNgYQaSakNTviPiiH9FmVEv2CbQ7TSmdzikfFnbHgLoo7VXdM9Wa0JhoWwqo7Lvk1UaajFf8ZZ++DGf9ZNg5iis9KYXk3Rl0SANz7O0BzziGlf9Vt8CYyTYHcLIXybsg/38isq/+RrsmwS6UugH7PfRHBffY49ywoZ2rWNF1A3+o/4zzZdPlSUSWteegYNPSifx9ER9VtW8Rh0wjhRgiH/BbjQAr6LyYlY5A4wfuaWP9Yvke4ZlCoPzjwu0IlFwv03HJf8DuQam40vLpI70RDhL30GD++ueym8F+8sZsYpKPjohdvLjtNPBd88i+YfnqTRtN6dSKQ0/wB+juSGt4Lzf6LUfedjnsZp/7l9PJzfGO6spDY+RE+ET5RTORcKoyxfxzSC/poN/a6B9QvS/piIs/78ZVjFF3p7pYigav1cYxuVq2KpJ5u0cZ+ztpGnKhDEfwEVxVS72rtkvoErucAZhio41AJKSQtuqp25mltuiQBqoPGBaFSwQ2n7or5M+4rHGTEYK1BdAk9Pk1YOyOhZ2gFiM0VPhEMN9aHlS0s55hu2VG6a5HAFfvnMssOnNMQktYaWN84dcIEN29kUIq47MYPLf44Xyt6WO3gDAe//czw6eEzseeVJhs90xH2nWwsebJFlTVZi66BOm5nlg1wz4pzslf27+ZgthdYiXECJUtBGAnOumlppur+eSUzuXsu3tfygYXvsJ3exlDo2YvYGVwuDAKIF8MtneDy3QWwgIWbW88dzxY0nJjcbpDRAKAAoKPx1L60XYnyfBfG7tPRpuAy2oPRxtacy3ZaTU61uOASIwl//xzPVJui4FlhFOZZqT1stCuXmDuw5ef9BbsdnN4dKWxXVmcuA98ugHcfMCm5nzhsaXc6Zyn8D/0F/4PLtJZZkbrhN5rlr7W5RXic46/uP3Lzrgb6KnuQMw4m2Gqu/kPnkfsEkH4p81fgnNNhu1fvY7/Vt1b1j3ptsC5JepoMTJ/V4nwTMgrUGXgqvGbU68kxXXI3z9zTS2eOy+pWsiaznuL/dBNNhfmJnReiussqc7f7K1x+baL9PAdOCLuql+Z5/Y4Fh3c7LZ/MaoTks3qK3mHi7Ng35bef2ML8msShaUEvJmH/jSniU6QzYsZ1nF1xcRovOtl8HMx4XLHY/CxD3J6vDnY7TW0ctzRXPRraHrfsxjL2Zrt1e9NlTc7J5SlaVYPG+TSr4MuFHBPTDMBtx4ZWTj5XvWD457P2wNr7ZIDKwajVQnvvVeb3NAUiU8WtyuMT9P5clQNdAFjCoLGSEPgb0AFSF3tTCJVY1zlEZHNyfD1Il223bP9TNcg0HKKkLl84DcpqIWo+218lQ0fOUzwyzmk2wspKaftVNJNRcTmn/40zQ2cOps/PwBP5gDxL5cVEqc7JTiUXjm55Pq1eEawZeraYT8cnHme740pH5HRLtPhwHqtZJjDo6WklfIaH15vssNPvs2352Fd9gthu77bMrxew1/l+HPlK5n//uLgPyw2+OYtzmMbGMeeyrVIc0mzjuU6U86iLXs3ZneQ75WtE3GlktntAXjirqwAAY5QvJAS+Au6CLpsNybZpXmQ6QT2D1T2FD+XDH8F/zW1q/JDC6K4tUn8OdLI5bZKOLzL/mg5BoY5Ta/Tgfj3RVwV/oXTULyk+RgQI3r8LabzGa/Ytzhhf/n7Sy3RuU7MfJkaH1PnNom/D/jiwOxBP6+6VCvfoCNCLm3/Zfp/9hf2xIeqFebEKVvXpuIAe3MYHWa4QsN1zmQNNhb9u0dG0EXHSHhMa7NN54ICZEA4ZSpkjpGHFTCphXimrythWzikVXFDJNddIobvBanKLWqT6YkQ+u+tlWCxgsVGy0x6bhdhnwbwDdvvikOWEOcLUr5hRJUwrZVEZ68rZVcEZlVxyTTE33OAx0ke0FKsG0mAK7BAjR7Qk0dJpyJApg4Z8GZLFyhQnHvxu8CP+jMynPz/j8guSlwM4KV6ifGmi5YD/6/BzAKzQpE2bPlMTlcuTl6dq2rUytbX1TU0WzivntQqurNY6u5MjVzLtpnRtWw7iRp5EKl6ahB130VJJJekKoQN/oqJc2+Lfzy/+hvriX5xvfD8oXD0yOH5Olx9l6iWYUb1Cvc8wnl7rAQgTA3i/cP+vTkxCSkZOQUlFDcOPRABOkBBhIkSJESdBkhRpMmTJkadAkRJlKlSpUadBkxZtOnTp0WfAkBFjBBOmzJizYMmKNRu27Nhz4MiJMxeu3Ljz4MmLNx++/PgLEChIsBChwoSLEClKtBHEiJgQM2JBrIgNsSMORplyFSpVqUYxnCApmmE5XhAlWVE13TAdTpfb4/X5A8FQOBKNxRPJVDqTzeULxZLKspLfcz6EI4StRVJjlAGJycbOwcnFzcPLxx9aHWwAAAAAAAAAAEREREREREREIiIiIiIiIlVCcwEAAA==) format(\"woff2\");font-display:block}.dcg-calculator-api-container .dcg-mathquill-wrapper .dcg-mathquill-braille .dcg-braille-input{background:none;width:100%;border:none;font-family:Abraham,serif;font-size:125%;padding:1px 0}.dcg-calculator-api-container .dcg-mathquill-wrapper .dcg-mathquill-braille .dcg-braille-input:focus{outline:none}.dcg-calculator-api-container .dcg-mathquill-wrapper .dcg-mathquill-braille .dcg-inline-braille{position:absolute;left:-1000px;top:-1000px;width:0;height:0;overflow:hidden}.dcg-calculator-api-container .dcg-mathquill-wrapper .dcg-mathquill-braille.dcg-mathquill-braille-overflow-left .dcg-tooltip-hit-area-container:before{content:\"\";position:absolute;top:0;left:0;bottom:0;width:14px;background:linear-gradient(to left,#fff0,#fff);pointer-events:none}.dcg-calculator-api-container .dcg-mathquill-wrapper .dcg-mathquill-braille.dcg-mathquill-braille-overflow-right .dcg-tooltip-hit-area-container:after{content:\"\";position:absolute;top:0;right:0;bottom:0;width:14px;background:linear-gradient(to right,#fff0,#fff);pointer-events:none}.dcg-calculator-api-container .dcg-disable-slider{opacity:.3}.dcg-calculator-api-container .dcg-slider-interior{flex:1;position:relative;top:-4px;margin-left:7px;margin-right:7px;touch-action:none}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb{cursor:pointer;z-index:3;border-radius:8px;position:absolute;top:-8px;margin-left:-19px;width:38px;height:38px}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb:focus{outline:none}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb:focus:after{position:absolute;top:-4px;left:4px;content:\"\";pointer-events:none;border:2px solid rgba(47,114,220,.35);border-radius:50%;width:26px;height:26px}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb .dcg-graphic{position:absolute;top:0;left:8px;border-radius:12px;width:22px;height:22px;background:#2f72dc59}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb .dcg-center{position:absolute;top:0;left:8px;border-radius:12px;width:22px;height:22px;background:#2f72dc;transform:scale(.25);transition:transform .2s}.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb.dcg-hovered .dcg-center,.dcg-calculator-api-container .dcg-slider-interior .dcg-thumb.dcg-down .dcg-center{transform:scale(1)}.dcg-calculator-api-container .dcg-slider-interior .dcg-zeroMarker{position:absolute;top:2px;z-index:2;width:2px;height:2px;background:#0000004d;border-radius:2px}.dcg-calculator-api-container .dcg-slider-interior .dcg-track{cursor:pointer;height:22px;position:absolute;left:0;right:0}.dcg-calculator-api-container .dcg-slider-interior .dcg-track .dcg-ticks{position:absolute;top:2px;bottom:0;width:100%}.dcg-calculator-api-container .dcg-slider-interior .dcg-track .dcg-ticks .dcg-tick{position:absolute;top:0;width:2px;height:2px;background-color:#fff;margin-left:0;z-index:1;border-radius:2px}.dcg-calculator-api-container .dcg-slider-interior .dcg-track .dcg-graphic{height:6px;background-color:#0000001a;border-radius:3px;margin-bottom:6px;width:100%}.dcg-calculator-api-container .dcg-slider-container .dcg-minLabel{padding:10px 4px 10px 8px}.dcg-calculator-api-container .dcg-slider-container .dcg-maxLabel{padding:10px 8px 10px 4px}.dcg-calculator-api-container .dcg-slider-container .dcg-minLabel,.dcg-calculator-api-container .dcg-slider-container .dcg-maxLabel{z-index:4;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));margin:-10px 0;min-width:26px;text-align:center}.dcg-calculator-api-container .dcg-slider-container .dcg-minLabel .dcg-mq-math-mode,.dcg-calculator-api-container .dcg-slider-container .dcg-maxLabel .dcg-mq-math-mode{font-family:arial,sans-serif;cursor:pointer;font-size:80%;position:relative;top:-1px}.dcg-calculator-api-container .dcg-slider-container .dcg-minLabel.dcg-hovered,.dcg-calculator-api-container .dcg-slider-container .dcg-maxLabel.dcg-hovered{color:#333}.dcg-calculator-api-container .dcg-slider-container .dcg-minLabel.dcg-depressed,.dcg-calculator-api-container .dcg-slider-container .dcg-maxLabel.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-local-display-preferences-title{margin-bottom:7px}.dcg-calculator-api-container .dcg-perspective-slider{display:flex;margin-top:5px;gap:7px;align-items:center}.dcg-calculator-api-container .dcg-perspective-slider i.dcg-icon-3d-cube,.dcg-calculator-api-container .dcg-perspective-slider i.dcg-icon-3d-perspective{cursor:pointer;color:#666}.dcg-calculator-api-container .dcg-perspective-slider i.dcg-icon-3d-perspective{font-size:1.5em;position:relative;top:.05em}.dcg-calculator-api-container .dcg-3d-debug-root{position:fixed;bottom:0;right:0;z-index:1000}.dcg-calculator-api-container .dcg-3d-debug-root .dcg-3d-debug-container{display:inline-block;position:relative;background-color:#fff}.dcg-calculator-api-container .dcg-3d-debug-root .dcg-3d-debug-container:before{content:attr(dcg-label);position:absolute;top:0;left:0}.dcg-calculator-api-container .dcg-3d-debug-root .dcg-3d-debug-container canvas{border:1px solid red;width:100%;height:100%}.dcg-calculator-api-container .dcg-learn-more-link{display:inline-block;color:#999;text-decoration:none;padding:5px;font-size:85%;position:relative;top:1px}.dcg-calculator-api-container .dcg-learn-more-link.dcg-hovered{color:#666}.dcg-calculator-api-container .dcg-learn-more-link.dcg-active{color:#333}.dcg-calculator-api-container .dcg-drop-image{position:absolute;top:0;right:0;left:0;bottom:0;z-index:42;text-align:center;vertical-align:middle;background:#ffffff80;border:8px dashed #bbb;font-family:sans-serif;color:#bbb;font-size:370%}.dcg-calculator-api-container .dcg-drop-image span{position:absolute;bottom:0;left:0;right:0;top:0;height:3.6em;line-height:1.2em;margin:auto;padding:0 20px}.dcg-calculator-api-container .dcg-exppanel-outer{display:inline-block;overflow-x:visible;margin-left:0}.dcg-calculator-api-container .dcg-exppanel-outer .dcg-exppanel-container{width:100%;-webkit-transform:translateZ(0);position:absolute;top:0;bottom:0;transition:transform .25s ease-out;display:flex;flex-direction:column}.dcg-calculator-api-container .dcg-exppanel-outer .dcg-exppanel-container.dcg-add-shadow{box-shadow:0 -4px 6px #0003;z-index:1}.dcg-calculator-api-container .dcg-show-expressions-tab{opacity:0;animation:dcg-fadeIn .3s forwards;animation-delay:.4s}.dcg-calculator-api-container .dcg-exppanel{flex:1;overflow-x:hidden;overflow-y:auto;overflow-anchor:none;border-right:1px solid rgba(0,0,0,.2);z-index:0;-webkit-overflow-scrolling:touch}.dcg-calculator-api-container .dcg-exppanel .dcg-expressionlist{display:flex;flex-direction:column;min-height:100%}.dcg-calculator-api-container .dcg-narrow .dcg-exppanel-container{z-index:40}.dcg-calculator-api-container .dcg-narrow .dcg-exppanel{border-right:0}.dcg-calculator-api-container .dcg-tooltipped-error{color:#e66b3c;font-size:22px;cursor:pointer;display:inline-block;width:26px;height:26px;text-align:center;animation:dcg-delayed-fadeIn 1s;position:relative;top:3px}.dcg-calculator-api-container .dcg-tooltipped-error.dcg-small{font-size:14px;width:16px;height:16px;position:relative;top:1px}.dcg-calculator-api-container .dcg-tooltipped-error.dcg-white{color:#fff}.dcg-calculator-api-container .dcg-circular-icon-container{width:29px;height:29px;border-radius:50%}.dcg-calculator-api-container .dcg-circular-icon-container .dcg-graph-interaction-disabled{position:absolute;bottom:-1px;right:-1px;font-size:.8rem;color:#999;z-index:10;text-shadow:-1px -1px 0 #fff,-1px 1px 0 #fff,1px -1px 0 #fff,1px 1px 0 #fff,0 -1px 0 #fff,0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff}.dcg-calculator-api-container .dcg-circular-icon{display:inline-block;width:29px;height:29px;line-height:29px;border-radius:50%;position:relative;overflow:hidden}.dcg-calculator-api-container .dcg-circular-icon.dcg-semi-transparent{opacity:.4}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden{box-shadow:inset 0 0 3px #00000040}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden:before{position:absolute;top:0;left:0;bottom:0;right:0;border:5px solid #999;border-radius:50%;opacity:.25;content:\"\"}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden.dcg-white-icon:before{border-color:#fff;opacity:.4}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden.dcg-hovered:before{opacity:.3125}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden.dcg-hovered.dcg-white-icon:before{opacity:.5}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden.dcg-depressed:before{opacity:.375}.dcg-calculator-api-container .dcg-circular-icon.dcg-hidden.dcg-depressed.dcg-white-icon:before{opacity:.6}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline{border:2px solid #000;opacity:.5;color:#000;text-align:center}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline.dcg-hovered{opacity:.7}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline.dcg-depressed{opacity:.9}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-folder{position:relative;top:-1px;font-size:110%}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-sound-wave{position:relative;font-size:180%;top:2.5px}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-pause{position:relative;top:-1px;left:.25px}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-volume-up{position:relative;left:.25px;font-size:125%}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-play{position:relative;top:-1px;left:1.5px}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline .dcg-icon-fraction{font-size:20px;position:relative;top:2px}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline.dcg-white-icon{color:#fff;border-color:#fff;opacity:.9}.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline.dcg-white-icon.dcg-hovered,.dcg-calculator-api-container .dcg-circular-icon.dcg-thick-outline.dcg-white-icon.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image{background:#fff}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image:after{position:absolute;top:0;left:0;bottom:0;right:0;content:\"\";border-radius:50%;overflow:hidden;box-shadow:inset 0 0 4px #000000b3}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image .dcg-background-image{width:29px;height:29px;display:inline-block;border-radius:50%;background-size:29px 29px!important}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i{text-shadow:0 0 6px rgba(0,0,0,.2),0 0 1px rgba(0,0,0,.5)}.dcg-calculator-api-container .dcg-circular-icon .dcg-spinner{position:absolute;left:50%;top:50%;margin-top:-10px;margin-left:-10px}.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon{box-shadow:inset 0 0 3px #00000040;overflow:hidden}.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon{text-shadow:0 0 3px rgba(0,0,0,.25)}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon{font-size:35px}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image.dcg-modifier-size-medium,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon.dcg-modifier-size-medium{font-size:42.25px}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image.dcg-modifier-size-large,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon.dcg-modifier-size-large{font-size:56.75px}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image.dcg-modifier-size-small,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon.dcg-modifier-size-small{font-size:32.1px}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image.dcg-modifier-rotated,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon.dcg-modifier-rotated{transform:rotate(90deg)}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon{position:absolute;top:-3px;left:-30px;right:-30px;bottom:-3px;color:#fff;line-height:35px;text-align:center}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-check,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-check{font-size:50%}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-move,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-move-vertical,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-move-horizontal,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-arrow-right,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-move,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-move-vertical,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-move-horizontal,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-arrow-right{font-size:55%}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-point,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-cross,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-open,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-point,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-cross,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-open{font-size:75%}.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-points,.dcg-calculator-api-container .dcg-circular-icon.dcg-has-background-image i.dcg-layered-icon.dcg-icon-lines-solid,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-points,.dcg-calculator-api-container .dcg-circular-icon.dcg-colored-icon i.dcg-layered-icon.dcg-icon-lines-solid{font-size:68%}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-circular-icon-container.dcg-disabled{opacity:.5;pointer-events:none}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-container{position:absolute;top:100%;left:-5px;right:-5px;margin-top:4px}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener{margin-left:1px;padding:5px;text-align:center;font-size:140%;cursor:pointer;opacity:.75}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener:before{content:\"\";width:24px;height:24px;border-radius:50%;display:inline-block;position:absolute;top:50%;left:50%;margin-left:-12px;margin-top:-13px;background:currentColor;opacity:0}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-hovered{opacity:.9}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-hovered:before{opacity:.15}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-menu-open{opacity:1}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-menu-open:before{opacity:.3}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-play-pause-icon-view .dcg-slider-menu-opener.dcg-depressed:before{opacity:.4}.dcg-calculator-api-container .dcg-action-icon-view i.dcg-icon-chevron-right{font-size:115%;display:inline-block}.dcg-calculator-api-container .dcg-action-icon-view i.dcg-icon-minus{transform:translate(3.5px,-1px);font-size:90%;display:inline-block}.dcg-calculator-api-container .dcg-action-icon-view.dcg-action-icon-view-animating i.dcg-icon-chevron-right{transition:.15s;transform:rotate(360deg)}.dcg-calculator-api-container .dcg-evaluation-container{display:flex;flex-direction:column;align-items:flex-end;margin-right:5px;padding:1px}.dcg-calculator-api-container .dcg-evaluation-container .dcg-color-swatch{margin-right:-2px}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation{margin-top:-3px}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation.dcg-hidden{opacity:0}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-static-mathquill-view{cursor:pointer}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-mathquill-wrapper .dcg-mathquill-braille{padding:5px 0}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-mathquill-wrapper .dcg-mathquill-braille .dcg-braille-input{text-align:right;color:#666}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-mathquill-wrapper .dcg-typeset-math{padding:3px 6px 3px 3px;display:table;border:1px solid rgba(206,206,206,.8);background:#0000000a;color:var(--dcg-custom-text-color, #222);border-radius:4px}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-evaluation-label-container{font-weight:400;cursor:pointer;white-space:nowrap;display:table-cell;vertical-align:middle}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-evaluation-label-container .dcg-mq-math-mode{cursor:pointer;padding-right:2px}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-evaluation-html{white-space:nowrap;border-top-right-radius:5px;border-bottom-right-radius:5px;display:table-cell}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-evaluation-html.dcg-color-evaluation{line-height:0}.dcg-calculator-api-container .dcg-evaluation-container .dcg-evaluation .dcg-evaluation-html .dcg-evaluation-list{position:relative;top:2px}.dcg-calculator-api-container .dcg-display-domain{padding:5px 0 13px;font-size:95%;white-space:nowrap;margin-bottom:-5px;margin-top:-5px}.dcg-calculator-api-container .dcg-inline-math-input-view{display:inline-block;font-size:95%}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:35px;max-width:70px;font-size:100%}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-large-font-inline-math-input{font-size:115%}.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-log-scale .dcg-math-field{max-width:100px}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:35px;max-width:35px;font-size:95%}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille.dcg-focus,.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-inline-math-input-view .dcg-mathquill-braille .dcg-tooltip-hit-area-container{width:100%}.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-full-width-inline-math-input .dcg-math-field,.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-full-width-inline-math-input .dcg-mathquill-braille{width:100%;max-width:100%}.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-no-border-inline-math-input .dcg-math-field,.dcg-calculator-api-container .dcg-inline-math-input-view.dcg-no-border-inline-math-input .dcg-mathquill-braille{border-bottom:1px solid transparent}.dcg-calculator-api-container .dcg-regression-container{font-size:80%;color:var(--dcg-custom-text-color, #222);cursor:default}.dcg-calculator-api-container .dcg-regression-container .dcg-statistics{display:inline-block;min-width:130px;float:left;margin-bottom:10px}.dcg-calculator-api-container .dcg-regression-container .dcg-residuals{float:left;width:130px;margin-bottom:10px}.dcg-calculator-api-container .dcg-regression-container .dcg-residuals>.dcg-mathquill-wrapper{display:inline-block}.dcg-calculator-api-container .dcg-regression-container .dcg-r-value{padding-left:.5em}.dcg-calculator-api-container .dcg-regression-container .dcg-residual-suggestion{padding:2px 8px;margin-left:7px;line-height:16px;display:inline-block}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle{clear:both}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle.dcg-visible{display:block}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle{cursor:pointer;padding:5px 0;color:#444;border-radius:4px;display:inline-block;margin-bottom:12px}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle .dcg-log-mode-checkbox{display:inline-block;width:15px;height:15px;border:1px solid rgba(0,0,0,.2);float:left;margin-right:6px;border-radius:3px;position:relative}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle .dcg-log-mode-checkbox i{color:transparent}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle.dcg-no-hover-styling{cursor:default}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle.dcg-hovered .dcg-log-mode-checkbox{border-color:#aaa}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-action-log-mode-toggle.dcg-depressed .dcg-log-mode-checkbox{border-color:#666}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-log-mode-toggle-help{text-decoration:none;color:#0003;padding:10px 6px}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-log-mode-toggle-help.dcg-hovered{color:#aaa}.dcg-calculator-api-container .dcg-regression-container .dcg-log-mode-toggle .dcg-log-mode-toggle-help.dcg-depressed{color:#666}.dcg-calculator-api-container .dcg-regression-container .dcg-parameters-container{clear:both;padding-bottom:4px}.dcg-calculator-api-container .dcg-regression-container .dcg-parameters-container .dcg-parameter{float:left;min-width:130px;padding-right:5px}.dcg-calculator-api-container .dcg-regression-container .dcg-parameters-container .dcg-parameter:nth-of-type(odd){clear:both}.dcg-calculator-api-container .dcg-regression-container .dcg-parameter-warning{color:#666;cursor:default;margin-top:10px}.dcg-calculator-api-container .dcg-regression-container .dcg-parameter-warning i{font-size:85%}.dcg-calculator-api-container .dcg-regression-container .dcg-parameter-warning a{color:#666;text-decoration:underline}.dcg-calculator-api-container .dcg-regression-container .dcg-parameter-warning a.dcg-hovered{color:#000}.dcg-calculator-api-container .dcg-regression-container .dcg-parameter-warning .dcg-btn{padding:2px 5px;margin-top:4px}.dcg-calculator-api-container .dcg-slider-container{min-height:22px;display:block;position:relative}.dcg-calculator-api-container .dcg-slider{display:flex;margin-left:-15px;justify-content:center;align-items:center}.dcg-calculator-api-container .dcg-create-sliders{display:flex;flex-wrap:wrap;align-items:center;margin-top:-2px}.dcg-calculator-api-container .dcg-create-sliders .dcg-msg{margin-right:5px;font-size:80%;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .6))}.dcg-calculator-api-container .dcg-create-sliders .dcg-all .dcg-btn-slider{font-style:normal}.dcg-calculator-api-container .dcg-create-sliders .dcg-btn-slider{padding:0 4px!important;min-width:35px;font-family:times;font-size:85%;font-style:italic}.dcg-calculator-api-container .dcg-create-sliders .dcg-btn-slider .dcg-mq-math-mode{pointer-events:none}.dcg-calculator-api-container .dcg-create-sliders .dcg-btn-slider.dcg-base-case-btn{font-size:80%}.dcg-calculator-api-container .dcg-create-sliders .dcg-slider-btn-container{display:inline-block;position:relative;margin-right:3px;margin-top:1.5px;margin-bottom:1.5px}.dcg-calculator-api-container .dcg-create-sliders .dcg-slider-btn-container .dcg-btn-slider{height:25px;line-height:25px}.dcg-calculator-api-container .dcg-prompt-rename{display:inline-block;font-size:90%;margin-bottom:-3px}.dcg-calculator-api-container .dcg-prompt-rename .dcg-btn-light-gray{padding:2px 5px;margin-left:6px;margin-right:6px}.dcg-calculator-api-container .dcg-prompt-rename .dcg-reference-count{color:#999}.dcg-calculator-api-container .dcg-distribution-parameters-container .dcg-component-checkbox{font-size:85%}.dcg-calculator-api-container .dcg-cdf-footer-container{margin-top:5px}.dcg-calculator-api-container .dcg-cdf-footer-container .dcg-component-checkbox{margin-bottom:4px}.dcg-calculator-api-container .dcg-cdf-footer-container .dcg-parameter-name{font-size:85%}.dcg-calculator-api-container .dcg-cdf-footer-container .dcg-cdf-evaluation-container{margin-top:5px}.dcg-calculator-api-container .dcg-cdf-footer-container .dcg-inline-math-input-view{margin-left:10px;margin-right:10px}.dcg-calculator-api-container .dcg-parameter-suggestion-container{font-size:80%;position:relative;top:-9px;margin-left:2px;white-space:nowrap;width:100%;padding-right:5px;text-overflow:ellipsis;overflow:hidden;color:#666;cursor:default}.dcg-calculator-api-container .dcg-parameter-suggestion-container.dcg-parameter-suggestion-braille{top:-6px}.dcg-calculator-api-container .dcg-parameter-suggestion-container.dcg-hovered .dcg-default-marker{color:#666}.dcg-calculator-api-container .dcg-parameter-suggestion-container.dcg-depressed .dcg-default-marker{color:#333}.dcg-calculator-api-container .dcg-parameter-suggestion-container .dcg-default-marker{color:#00000080;margin-left:.3em}.dcg-calculator-api-container .dcg-parameter-suggestion-container .dcg-parameter-name:not(:last-of-type):after{content:\",\";margin-right:5px}.dcg-calculator-api-container .dcg-visualization-parameters-container{margin-bottom:5px}.dcg-calculator-api-container .dcg-visualization-parameters-container .dcg-smaller-font{font-size:85%;margin-left:2px}.dcg-calculator-api-container .dcg-visualization-parameters-container .dcg-mathquill-wrapper{margin-left:10px;margin-right:10px}.dcg-calculator-api-container .dcg-visualization-parameters-container .dcg-parameter-name{font-size:105%}.dcg-calculator-api-container .dcg-visualization-parameters-container .dcg-component-checkbox{margin-top:4px}.dcg-calculator-api-container .dcg-visualization-parameters-container .dcg-toggle-container{display:inline-block;margin-bottom:5px;margin-right:15px}.dcg-calculator-api-container .dcg-ttest-footer-container{cursor:text;padding-right:5px}.dcg-calculator-api-container .dcg-ttest-footer-container table{margin-left:auto}.dcg-calculator-api-container .dcg-ttest-footer-container .dcg-value{-webkit-user-select:text;user-select:text;margin-top:3px;border:1px solid rgba(206,206,206,.8);border-radius:4px;background:#0000000a;opacity:.75}.dcg-calculator-api-container .dcg-ttest-footer-container .dcg-value .dcg-operator .dcg-static-mathquill-view{border-right:1px solid rgba(206,206,206,.8);margin-right:5px;min-width:35px;text-align:center;padding:3px}.dcg-calculator-api-container .dcg-ttest-footer-container .dcg-value .dcg-evaluation .dcg-static-mathquill-view{padding:3px 6px 3px 3px}.dcg-calculator-api-container .dcg-stats-footer-container{cursor:text;padding-right:5px}.dcg-calculator-api-container .dcg-stats-footer-container table{margin-left:auto}.dcg-calculator-api-container .dcg-stats-footer-container .dcg-value{-webkit-user-select:text;user-select:text;margin-top:3px;border:1px solid rgba(206,206,206,.8);border-radius:4px;background:#0000000a;opacity:.75}.dcg-calculator-api-container .dcg-stats-footer-container .dcg-value .dcg-row-header{display:inline-block;border-right:1px solid rgba(206,206,206,.8);margin-right:5px;width:68px;padding:5px}.dcg-calculator-api-container .dcg-stats-footer-container .dcg-value .dcg-evaluation .dcg-static-mathquill-view{padding:3px 6px 3px 3px}.dcg-calculator-api-container .dcg-action-info{cursor:default;color:var(--dcg-custom-text-color, #666);font-size:85%}.dcg-calculator-api-container .dcg-action-info .dcg-click-edit{margin-left:5px;opacity:.6}.dcg-calculator-api-container .dcg-action-info .dcg-click-edit.dcg-hovered{opacity:.8}.dcg-calculator-api-container .dcg-action-info .dcg-click-edit.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-expression-edit-actions{padding-left:5px;padding-right:7px;white-space:nowrap;position:absolute;top:0;right:0;bottom:0;background:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-expression-edit-actions:not(.dcg-limited-height){bottom:0}.dcg-calculator-api-container .dcg-expression-edit-actions .dcg-graphic{height:100%;background:linear-gradient(to right,rgba(255,255,255,0),var(--dcg-custom-background-color, #fff));position:absolute;top:0;right:100%;width:40px;cursor:default;pointer-events:none}.dcg-calculator-api-container .dcg-expression-edit-actions .dcg-exp-action-button{margin-left:2px;width:44px;height:44px;padding:12px 10px;text-align:center;margin-top:4px;display:inline-block;font-size:125%;line-height:20px;opacity:.6;border-radius:5px}.dcg-calculator-api-container .dcg-expression-edit-actions .dcg-exp-action-button.dcg-hovered{background:#0000001a}.dcg-calculator-api-container .dcg-expression-edit-actions .dcg-exp-action-button.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-expression-edit-actions .dcg-exp-action-button.dcg-selected{background:#000c;color:#fff}.dcg-calculator-api-container .dcg-tab .dcg-suggested-zoom-view,.dcg-calculator-api-container .dcg-tab .dcg-generate-table-view{position:absolute;bottom:7px;left:50%;font-size:20px;line-height:20px;margin-left:-10px;text-align:center;animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-tab .dcg-suggested-zoom-view i,.dcg-calculator-api-container .dcg-tab .dcg-generate-table-view i{padding:5px;margin-left:-5px;opacity:.75}.dcg-calculator-api-container .dcg-tab .dcg-suggested-zoom-view i.dcg-hovered,.dcg-calculator-api-container .dcg-tab .dcg-generate-table-view i.dcg-hovered{opacity:.9}.dcg-calculator-api-container .dcg-tab .dcg-suggested-zoom-view i.dcg-depressed,.dcg-calculator-api-container .dcg-tab .dcg-generate-table-view i.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-tab .dcg-suggested-zoom-view i.dcg-icon-create-table,.dcg-calculator-api-container .dcg-tab .dcg-generate-table-view i.dcg-icon-create-table{font-size:22px;margin-left:-3px}.dcg-calculator-api-container .dcg-slider_menu{position:relative;top:-3px}.dcg-calculator-api-container .dcg-expression-footer-title{text-transform:uppercase;font-size:80%;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));margin-bottom:4px}.dcg-calculator-api-container .dcg-expression-footer-title-help{padding:10px;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));margin:-10px -10px -10px -6px;cursor:pointer;text-decoration:none}.dcg-calculator-api-container .dcg-expression-footer-title-help.dcg-hovered{color:#888}.dcg-calculator-api-container .dcg-expression-footer-title-help.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-expression-bottom .dcg-expression-braille-error{color:#666;margin:10px 10px 10px 0;font-size:90%}.dcg-calculator-api-container .dcg-expression-bottom .dcg-expression-braille-error .dcg-icon-error{font-size:80%;margin-right:5px;color:#fa824c}.dcg-calculator-api-container .dcg-expression-bottom .dcg-slider-step-container{margin-left:10px}.dcg-calculator-api-container .dcg-expression-bottom .dcg-slider-step-container.dcg-disabled-input .dcg-math-field,.dcg-calculator-api-container .dcg-expression-bottom .dcg-slider-step-container.dcg-disabled-input .dcg-mathquill-braille{opacity:.3;pointer-events:none}.dcg-calculator-api-container .dcg-expression-bottom .dcg-slider-step-label{font-size:85%}.dcg-calculator-api-container .dcg-expression-bottom .dcg-mq-editable-field{outline:none}.dcg-calculator-api-container .dcg-top-level-icon{position:absolute;top:0;right:0;width:calc(1.15rem + 12px);height:calc(1.15rem + 16px);overflow:visible;outline-offset:-4px}.dcg-calculator-api-container .dcg-top-level-icon:not(.dcg-tappable){cursor:default!important}.dcg-calculator-api-container .dcg-top-level-icon i{position:absolute;top:0;right:0;padding:8px 7px 20px 20px;z-index:2;opacity:.2;font-size:115%}.dcg-calculator-api-container .dcg-top-level-icon .dcg-top-level-delete,.dcg-calculator-api-container .dcg-top-level-icon .dcg-icon-replace{cursor:pointer}.dcg-calculator-api-container .dcg-top-level-icon .dcg-top-level-delete.dcg-hovered,.dcg-calculator-api-container .dcg-top-level-icon .dcg-icon-replace.dcg-hovered{opacity:.6}.dcg-calculator-api-container .dcg-top-level-icon .dcg-top-level-delete.dcg-depressed,.dcg-calculator-api-container .dcg-top-level-icon .dcg-icon-replace.dcg-depressed{opacity:.8}.dcg-calculator-api-container .dcg-smart-textarea-container{position:relative;font-size:90%}.dcg-calculator-api-container .dcg-smart-textarea-container textarea.dcg-smart-textarea,.dcg-calculator-api-container .dcg-smart-textarea-container .dcg-displayTextarea{border:0;font:inherit;resize:none;background:transparent;overflow:hidden;outline:none;color:var(--dcg-custom-text-color, #000);white-space:pre-wrap;word-wrap:break-word;width:100%;padding:3px;margin:-1px}.dcg-calculator-api-container .dcg-smart-textarea-container textarea.dcg-smart-textarea{opacity:0;position:absolute;top:1px;left:0;bottom:0;right:0;height:100%}.dcg-calculator-api-container .dcg-smart-textarea-container textarea.dcg-smart-textarea.dcg-empty{opacity:1}.dcg-calculator-api-container .dcg-smart-textarea-container .dcg-displayTextarea:after{content:\"|\";opacity:0;width:0;overflow:hidden;display:inline-block;height:1px}.dcg-calculator-api-container .dcg-smart-textarea-container .dcg-displayTextarea a{z-index:1;position:relative;color:#2f72dc}.dcg-calculator-api-container .dcg-smart-textarea-container .dcg-displayTextarea a.dcg-hovered,.dcg-calculator-api-container .dcg-smart-textarea-container .dcg-displayTextarea a .dcg-depressed{color:#2253a1}.dcg-calculator-api-container .dcg-selected .dcg-smart-textarea-container .dcg-displayTextarea{pointer-events:none;opacity:0}.dcg-calculator-api-container .dcg-selected .dcg-smart-textarea-container textarea{opacity:1}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-table-icon-container{position:absolute;top:50%;left:5px;margin-top:-14.5px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-drag-icon{opacity:.4;vertical-align:middle;pointer-events:none;font-size:95%;position:absolute;top:50%;right:4px;margin-top:-10px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-cell-math-content,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-mathquill-braille{outline:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-cell:not(.dcg-non-editable) .dcg-cell-math-content,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-cell:not(.dcg-non-editable) .dcg-mathquill-braille{max-width:100px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-table-container{overflow:hidden;padding-left:15px;padding-right:15px;position:relative}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-table-container:before{position:absolute;top:0;left:0;bottom:0;z-index:1;background:linear-gradient(to left,rgba(255,255,255,0),var(--dcg-custom-background-color, #fff));width:20px;content:\"\"}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-table-container:after{position:absolute;top:0;right:0;bottom:0;background:linear-gradient(to right,rgba(255,255,255,0),var(--dcg-custom-background-color, #fff));width:20px;content:\"\"}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-table-container .dcg-table-sliding-container{transition:transform .15s}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-main{padding-top:20px;padding-bottom:5px;position:relative}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-show-more-row td{border-top:1px solid #e5e5e5;text-align:center;font-size:80%;color:#00000080;padding:8px 0;font-style:italic}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-show-more-row td .dcg-show-more{color:#2f72dc;font-style:normal;text-decoration:underline;font-size:90%}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-show-more-row td .dcg-show-more.dcg-hovered{color:#2253a1}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-show-more-row td .dcg-show-more.dcg-depressed{color:#17396e}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata{position:relative;display:table}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row{display:table-row}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell{display:table-cell}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:not(:first-of-type) .dcg-cell{border-top:1px solid rgba(0,0,0,.15);padding:7px 10px 7px 20px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:not(:first-of-type) .dcg-cell.dcg-non-editable{padding:7px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:not(:first-of-type).dcg-braille-row .dcg-cell{padding:7px 20px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:nth-of-type(2) .dcg-cell{border-top:1px solid #444}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type .dcg-cell{vertical-align:bottom;padding:7px 5px 3px 15px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type .dcg-cell.dcg-error{padding-left:33px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type .dcg-cell.dcg-leave-space-for-icon{padding-left:40px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type .dcg-cell.dcg-leave-space-for-drag-icon{padding-right:20px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type .dcg-cell .dcg-math-field{min-height:29px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row:first-of-type.dcg-braille-row .dcg-cell.dcg-leave-space-for-icon{padding:7px 15px 3px 40px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-static-mathquill-view{padding-right:8px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell{position:relative;text-align:center;vertical-align:middle;font-size:72%;min-height:34px;min-width:40px;cursor:text}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell .dcg-braille-input{text-align:center;min-width:40px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell:not(:first-of-type){border-left:1px solid rgba(0,0,0,.15)}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell:nth-of-type(2){border-left:1px solid #444}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-non-editable{cursor:default}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-non-editable .dcg-mq-math-mode{pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell:not(.dcg-non-editable):not(.dcg-selected).dcg-empty .dcg-empty-line{position:absolute;width:26px;left:50%;margin-left:-13px;border-top:1px dashed #bbb;bottom:10px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-selected:not(.dcg-non-editable) .dcg-inner-border{position:absolute;left:-1px;top:-1px;bottom:-1px;right:-1px;z-index:1;pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-selected.dcg-non-editable{background:#f5f5f5}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-selected.dcg-non-editable .dcg-mathquill-braille-overflow-left .dcg-tooltip-hit-area-container:before{background:linear-gradient(to left,#f5f5f500,#f5f5f5)}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-selected.dcg-non-editable .dcg-mathquill-braille-overflow-right .dcg-tooltip-hit-area-container:after{background:linear-gradient(to right,#f5f5f500,#f5f5f5)}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-selected:not(.dcg-non-editable) .dcg-inner-border{border:2px solid #2f72dc}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell .dcg-mq-math-mode{position:relative}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell .dcg-table-icon-error-container{position:absolute;top:50%;left:4px;margin-top:-7px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header{font-size:85%;min-height:37px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header .dcg-mathquill-braille{min-height:30px;display:flex;align-items:center}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header:not(:first-of-type):not(:last-of-type) .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header:not(:first-of-type):not(:last-of-type) .dcg-static-mathquill-view,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header:not(:first-of-type):not(:last-of-type) .dcg-mathquill-braille,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header.dcg-error .dcg-mq-editable-field,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header.dcg-error .dcg-static-mathquill-view,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable .dcg-tabledata .dcg-row .dcg-cell.dcg-table-header.dcg-error .dcg-mathquill-braille{text-align:center}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable.dcg-faded-h .dcg-tabledata:after{content:\"\";position:absolute;top:0;bottom:0;right:0;background:linear-gradient(to left,var(--dcg-custom-background-color, #fff),rgba(255,255,255,0));width:60px;pointer-events:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable.dcg-faded-v .dcg-tabledata:before{content:\"\";position:absolute;bottom:0;left:0;right:0;height:30px;pointer-events:none;background:linear-gradient(to top,var(--dcg-custom-background-color, #fff),rgba(255,255,255,0));z-index:1}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable.dcg-faded-v .dcg-tabledata .dcg-row:last-of-type .dcg-cell .dcg-empty-line{display:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable:not(.dcg-selected).dcg-faded-v .dcg-tabledata .dcg-row:last-of-type{visibility:hidden}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable:not(.dcg-selected).dcg-faded-v .dcg-tabledata .dcg-row:last-of-type .dcg-cell{border-color:transparent}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressiontable:not(.dcg-selected).dcg-faded-v .dcg-tabledata .dcg-row .dcg-cell:last-of-type{border-color:transparent;visibility:hidden}.dcg-calculator-api-container .dcg-expressionitem .dcg-caret-container{font-size:95%;position:absolute;top:-1px;left:38px;width:32px;height:48px;color:#999;padding-left:10px;padding-top:18px;text-align:left;z-index:2}.dcg-calculator-api-container .dcg-expressionitem .dcg-caret-container i{transition:.2s;width:16px;height:16px}.dcg-calculator-api-container .dcg-expressionitem .dcg-caret-container.dcg-hovered{color:#666;cursor:pointer}.dcg-calculator-api-container .dcg-expressionitem.dcg-collapsed .dcg-caret-container i{display:inline-block;transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-expressionitem.dcg-secretFolder{display:none}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionfolder .dcg-action-toggle-secret-folder{cursor:pointer;color:#00000080;font-size:75%;padding:5px;margin:0 -5px -10px 15px;position:relative;z-index:1}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionfolder .dcg-fade-container:after{transition:0}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionfolder:not(.dcg-collapsed).dcg-has-items .dcg-fade-container:after{position:absolute;top:35px;bottom:5px;left:56px;content:\"\";border-left:1px solid rgba(0,0,0,.2);animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionfolder .dcg-main textarea.dcg-smart-textarea,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionfolder .dcg-main .dcg-displayTextarea{padding-left:20px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loading,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-failed{font-size:100%;padding:1px;color:#888;font-style:italic;line-height:37px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-retry-loading-image{color:#407bb5;text-decoration:underline}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-input-grid{font-size:80%;display:grid;grid-template-columns:min-content 2fr min-content 1fr;width:calc(100% + 20px);max-width:450px;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5))}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-input-grid .dcg-mathquill-wrapper{width:100%;padding-right:5px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-input-grid .dcg-image-input-name,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-input-grid .dcg-image-input-mathquill{display:flex;align-self:center;padding-right:5px;overflow:hidden;padding-top:2px;padding-bottom:2px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-input-grid .dcg-mq-editable-field:not(.dcg-focus){cursor:pointer}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage.dcg-input-focused .dcg-image-input-grid,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage.dcg-input-focused .dcg-braille-input{color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row{display:flex;justify-content:flex-start}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row .dcg-smart-textarea-container{margin-bottom:8px;font-size:85%}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row .dcg-smart-textarea-container textarea,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row .dcg-smart-textarea-container .dcg-displayTextarea{padding-top:0;padding-bottom:0;margin:0 10px 0 -1px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row .dcg-smart-textarea-container textarea:empty,.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-image-title-row .dcg-smart-textarea-container .dcg-displayTextarea:empty{min-width:8rem}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-action-changeimage{color:var(--dcg-custom-text-color, rgba(0, 0, 0, .5));text-decoration:underline;font-size:80%}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-action-changeimage.dcg-hovered{color:#0009}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage .dcg-image-loaded .dcg-action-changeimage.dcg-depressed{color:#000000b3}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage.dcg-selected .dcg-smart-textarea-container{position:relative;top:-1px}.dcg-calculator-api-container .dcg-expressionitem.dcg-expressionimage.dcg-selected .dcg-main{margin-right:-1px}.dcg-calculator-api-container .dcg-expressionitem.dcg-new-expression{height:54px;position:relative;border-bottom:1px solid transparent;overflow:visible!important}.dcg-calculator-api-container .dcg-expressionitem.dcg-new-expression .dcg-new-math-div{position:absolute;top:0;left:0;bottom:0;right:0;cursor:pointer}.dcg-calculator-api-container .dcg-expressionitem.dcg-new-expression .dcg-new-math-div .dcg-new-expression-fade{background:linear-gradient(to top,var(--dcg-custom-background-color, #fff),rgba(255,255,255,0) 50%);width:44px;position:absolute;top:0;bottom:0;z-index:3}.dcg-calculator-api-container .dcg-container.dcg-narrow .dcg-expression-top-bar{border-right:0}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn{width:40px;height:40px;line-height:40px;font-size:1.1rem;display:inline-block;border-radius:5px;text-align:center;margin:-1px;overflow:hidden}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-constructions-count-link,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-constructions-count-link{margin-right:4px}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-rotated,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-rotated{transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn i.dcg-icon-pause,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn i.dcg-icon-pause{font-size:80%}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn i.dcg-icon-undo,.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn i.dcg-icon-redo,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn i.dcg-icon-undo,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn i.dcg-icon-redo{font-size:120%}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn i,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn i{opacity:.6}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn:not(:last-of-type),.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn:not(:last-of-type){margin-right:-2px}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-disabled,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-disabled{opacity:.3;pointer-events:none}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-hovered,.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-active,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-hovered,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-active{background:#0000001a}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-hovered i,.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-active i,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-hovered i,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-active i{opacity:.8}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-depressed,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-depressed{background:#0003}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-icon-btn.dcg-depressed i,.dcg-calculator-api-container .dcg-container .dcg-geometry-toolbar-view .dcg-icon-btn.dcg-depressed i{opacity:1}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar{border-right:1px solid rgba(0,0,0,.2);height:48px;border-bottom:1px solid rgba(0,0,0,.2);line-height:37px;width:100%;transition:box-shadow .2s ease;padding:5px;display:flex;background:var(--dcg-custom-background-color-shaded, linear-gradient(#fcfcfc, #eaeaea))}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar.dcg-expressions-scrolled{box-shadow:-2px 2px 4px #00000026;z-index:4}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-btn-red,.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-btn-primary{padding:0 15px;display:inline-block;align-self:center;height:35px;line-height:35px}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-center-buttons{text-align:center;flex:1;white-space:nowrap}.dcg-calculator-api-container .dcg-add-expression-container{position:relative;float:left;height:37px}.dcg-calculator-api-container .dcg-in-api-action-opendrawer{float:left}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover{width:auto}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover.dcg-bottom{position:absolute;top:43px;left:-3px}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover.dcg-bottom .dcg-arrow{left:23px;border-bottom-color:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover.dcg-right{position:absolute;top:-40px;left:40px}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover.dcg-right .dcg-arrow{top:60px;border-right-color:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-popover-interior{padding:4px 0;background-color:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item{cursor:pointer;font-size:80%;text-align:left;white-space:nowrap;opacity:.5;padding:8px;line-height:0}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item i{margin:0 8px 0 4px;font-size:205%;vertical-align:middle;width:30px;display:inline-block;text-align:right}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item i.dcg-icon-new-expression{font-size:210%}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item i.dcg-icon-table{font-size:200%}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item i.dcg-icon-new-folder{font-size:190%}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item.dcg-action-newexpression{padding:10px 12px 4px 8px}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item.dcg-hovered{opacity:.8}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-add-expression-dropdown.dcg-popover .dcg-new-item.dcg-disabled{opacity:.25}.dcg-calculator-api-container .dcg-constructions-count-link{position:relative}.dcg-calculator-api-container .dcg-constructions-count-link i.dcg-icon-geometry{font-size:40px;position:relative;top:-2px}.dcg-calculator-api-container .dcg-constructions-count-link .dcg-construction-count{position:absolute;bottom:1px;right:1px;background:#999;box-shadow:0 0 0 1px #eee;color:#fff;border-radius:8px;height:16px;min-width:16px;line-height:16px;padding-left:4px;padding-right:4px;text-align:center;font-size:65%;font-family:arial,sans-serif}.dcg-calculator-api-container .dcg-expression-top-bar .dcg-icon-volume{font-size:22px;position:relative;top:2px}@keyframes dcg-fadeOut-indicator{0%{opacity:.5}99%{opacity:.5}to{opacity:0}}@keyframes dcg-animate-mute-bar{0%{transform:rotate(-45deg) scaleX(0)}to{transform:rotate(-45deg) scale(1)}}@keyframes dcg-pulse-mute-button{0%{opacity:0}20%{opacity:1}80%{opacity:0;transform:scale(1.5)}to{opacity:0;transform:scale(1.5)}}.dcg-calculator-api-container .dcg-global-mute-button .dcg-first-time-animation{visibility:hidden}.dcg-calculator-api-container .dcg-global-mute-button.dcg-has-never-interacted .dcg-first-time-animation{visibility:visible;opacity:.5;animation:dcg-fadeOut-indicator 16s forwards}.dcg-calculator-api-container .dcg-global-mute-button.dcg-has-never-interacted .dcg-first-time-animation:before{content:\"\";position:absolute;top:4px;left:3.5px;bottom:3px;right:3.5px;border-radius:20%;z-index:0;background:#999;animation:dcg-pulse-mute-button 2s infinite;pointer-events:none}.dcg-calculator-api-container .dcg-circular-icon-container.dcg-show-globally-muted{opacity:.6}.dcg-calculator-api-container .dcg-container .dcg-expression-top-bar .dcg-is-muted .dcg-icon-volume:after{content:\"\";background:currentColor;width:1em;height:2px;position:absolute;top:50%;left:50%;border:1px solid #fff;margin-top:-2px;margin-left:-.55em;transform:rotate(-45deg) scaleX(0);animation:dcg-animate-mute-bar .2s forwards;animation-delay:.1s}.dcg-calculator-api-container .dcg-exp-list-resizer{position:absolute;top:0;right:-12px;bottom:0;width:15px;cursor:ew-resize;z-index:1}.dcg-calculator-api-container .dcg-exp-list-resizer.dcg-depressed{width:215px;right:-112px}.dcg-calculator-api-container .dcg-expression-search-bar{padding:5px;background:#d8d8d8;position:relative}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-row{display:flex;align-items:center}.dcg-calculator-api-container .dcg-expression-search-bar.dcg-expressions-scrolled{box-shadow:-2px 2px 4px #00000026;z-index:4}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-mathquill-container{flex:1;position:relative;overflow:hidden}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-placeholder{opacity:.3;position:absolute;top:50%;left:35px;margin-top:-.5em;pointer-events:none}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-mq-container{width:100%}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-math-field{padding:6px 30px 6px 6px;margin:1px;border-radius:8px;background:#fff;width:100%;font-size:100%;color:#888;border:1px solid #bbb}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-math-field.dcg-hovered{color:#444;border:2px solid #999;margin:0}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-math-field.dcg-mq-focused{color:#000;border:2px solid #2f72dc;margin:0}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-mathquill-container .dcg-math-field{padding-left:30px}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-caret-container{font-size:95%;width:25px;padding-left:5px;color:#999;text-align:left}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-caret-container i{transition:.2s;width:16px;height:16px}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-caret-container.dcg-hovered{color:#666;cursor:pointer}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-caret-container.dcg-collapsed i{display:inline-block;transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-remove,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-search,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-replace{opacity:.2}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-remove.dcg-hovered,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-search.dcg-hovered,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-replace.dcg-hovered{opacity:.6}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-remove.dcg-depressed,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-search.dcg-depressed,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-replace.dcg-depressed{opacity:.8}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-replace.dcg-disabled{opacity:0}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-remove,.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-replace{font-size:90%;padding:10px 7px 10px 12px}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-icon-search{pointer-events:none;left:5px;position:absolute;top:50%;right:5px;height:20px;line-height:20px;margin-top:-15px;padding:5px}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-replace-icon-container{position:absolute;top:50%;right:5px;margin-top:-9px;font-size:110%}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-replace-icon-container .dcg-tooltipped-error{position:relative;top:-1px;left:-2px}.dcg-calculator-api-container .dcg-expression-search-bar .dcg-search-replace-icon-container .dcg-icon-check{color:#2f72dc;margin-right:5px}@keyframes dcg-tick-metronome{0%{transform:scale(.5) rotate(-20deg)}50%{transform:scale(.5) rotate(20deg)}to{transform:scale(.5) rotate(-20deg)}}.dcg-calculator-api-container .dcg-ticker{padding:5px;position:relative;background:var(--dcg-custom-background-color-shaded, #eee);border-bottom:1px solid rgba(0,0,0,.2);border-right:1px solid rgba(0,0,0,.2);overflow:hidden}.dcg-calculator-api-container .dcg-ticker.dcg-expressions-scrolled{box-shadow:-2px 2px 4px #00000026;z-index:4}.dcg-calculator-api-container .dcg-ticker .dcg-circular-icon-container{position:relative}.dcg-calculator-api-container .dcg-ticker .dcg-icon-remove{position:absolute;top:0;right:0;opacity:.2;font-size:115%;padding:10px 7px 10px 12px}.dcg-calculator-api-container .dcg-ticker .dcg-icon-remove.dcg-hovered{opacity:.6}.dcg-calculator-api-container .dcg-ticker .dcg-icon-remove.dcg-depressed{opacity:.8}.dcg-calculator-api-container .dcg-ticker .dcg-mini-play-pause{transform:scale(.5);transform-origin:bottom right;position:absolute;bottom:-5px;right:-4px;background:#eee;border-radius:50%;border:1px solid #eee}.dcg-calculator-api-container .dcg-ticker .dcg-icon-metronome-2{font-size:130%;position:relative;left:1px}.dcg-calculator-api-container .dcg-ticker .dcg-metronome-bar{width:2px;height:24px;transform:scale(.5) rotate(-20deg);transform-origin:bottom center;background:#777;border-radius:2px;position:absolute;bottom:10px;left:50%;box-shadow:0 0 0 1px #eee}.dcg-calculator-api-container .dcg-ticker .dcg-metronome-bar.dcg-metronome-playing{animation:dcg-tick-metronome infinite .5s ease-in-out}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-container{display:flex;width:calc(100% - 30px)}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-container .dcg-circular-icon-container{font-size:65%;margin-right:10px!important;order:1}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-container .dcg-circular-icon-container.dcg-disabled{opacity:.4;pointer-events:none}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-container .dcg-create-sliders{margin-top:5px;width:100%}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal{display:flex;flex:1;order:2;align-items:center;color:var(--dcg-custom-text-color, #666);flex-wrap:wrap;padding:3px 0;overflow:hidden;font-size:95%}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-mq-container{color:var(--dcg-custom-text-color, #000);margin-left:4px;font-size:95%}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition{max-width:100%;display:flex;align-items:baseline}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-mq-container{margin-right:5px;overflow:hidden;flex:1}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 20px 1px 2px;margin:1px;min-width:75px;max-width:100%}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-definition .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-frequency .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:30px;max-width:90px}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-frequency .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-frequency .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-frequency .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-action-frequency .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-settings-internal .dcg-clickable-info-error-container{margin-left:-20px;width:20px;display:inline-block}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-toggle-help{text-decoration:none;color:#aaa;padding:10px 6px;font-size:85%;position:relative;top:1px;flex:1}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-toggle-help.dcg-hovered{color:#666}.dcg-calculator-api-container .dcg-ticker .dcg-ticker-toggle-help.dcg-depressed{color:#444}.dcg-calculator-api-container .dcg-geo-show-constructions-pane{position:relative;background:var(--dcg-custom-background-color-shaded, #eee)}.dcg-calculator-api-container .dcg-geo-show-constructions-pane.dcg-transient-error,.dcg-calculator-api-container .dcg-geo-show-constructions-pane.dcg-cant-drag-item{opacity:.5}.dcg-calculator-api-container .dcg-geo-show-constructions-pane:after{content:\"\";background:linear-gradient(to bottom,rgba(238,238,238,0),var(--dcg-custom-background-color-shaded, #eee));height:10px;position:absolute;bottom:0;left:0;right:0;pointer-events:none}.dcg-calculator-api-container .dcg-geo-show-constructions-pane:before{content:\"\";background:linear-gradient(to top,rgba(238,238,238,0),var(--dcg-custom-background-color-shaded, #eee));height:10px;position:absolute;top:0;left:0;right:0;z-index:1;pointer-events:none}.dcg-calculator-api-container .dcg-geo-show-constructions-pane .dcg-token-being-dragged-container{opacity:.3}.dcg-calculator-api-container .dcg-displayed-sections-container{max-height:300px;overflow:auto}.dcg-calculator-api-container .dcg-displayed-sections-container .dcg-displayed-section-level{text-align:left;margin:0 8px;padding:8px 0}.dcg-calculator-api-container .dcg-displayed-sections-container .dcg-displayed-section-level:not(:last-of-type){border-bottom:1px solid rgba(0,0,0,.2);position:relative}.dcg-calculator-api-container .dcg-empty-constructions{padding:12px;text-align:center;color:var(--dcg-custom-text-color, #666);font-style:italic;font-size:90%}.dcg-calculator-api-container .dcg-toggle-view{float:right;padding:5px;margin-top:5px;display:inline-block;width:30px;height:8px;background:#ddd;border-radius:8px;position:relative;transition:all .2s}.dcg-calculator-api-container .dcg-toggle-view .dcg-toggle-switch{position:absolute;top:-4px;left:0;width:18px;height:18px;background:#f5f5f5;border-radius:50%;transition:all .2s;box-shadow:0 2px 2px #0003,0 0 3px #0003}.dcg-calculator-api-container .dcg-toggle-view:not(.dcg-toggled).dcg-hovered .dcg-toggle-switch{background:#ebebeb}.dcg-calculator-api-container .dcg-toggle-view:not(.dcg-toggled).dcg-depressed .dcg-toggle-switch{background:#e0e0e0}.dcg-calculator-api-container .dcg-toggle-view.dcg-toggled{transition:all .2s}.dcg-calculator-api-container .dcg-toggle-view.dcg-toggled .dcg-toggle-switch{transition:all .2s;left:12px;background:#666}.dcg-calculator-api-container .dcg-toggle-view.dcg-toggled.dcg-hovered .dcg-toggle-switch{background:#555}.dcg-calculator-api-container .dcg-toggle-view.dcg-toggled.dcg-depressed .dcg-toggle-switch{background:#444}.dcg-calculator-api-container .dcg-clickable-image-info-view{display:flex;margin-top:20px;justify-content:space-evenly;align-items:center}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-tooltip-hit-area-container{margin-left:5px;margin-right:10px}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-clickable-image-state-container{position:relative;color:var(--dcg-custom-text-color, #666);text-align:center}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-clickable-image-state-container .dcg-clickable-image-state{background:#fff;background-size:cover;background-repeat:no-repeat;width:60px;height:60px;border-radius:10px;border:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-clickable-image-state-container .dcg-clickable-image-state-close{position:absolute;top:-10px;right:-2px;width:25px;height:25px;padding-top:5px;font-size:14px;background:#666;color:#fff;border-radius:50%;opacity:.6}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-clickable-image-state-container .dcg-clickable-image-state-close.dcg-hovered{opacity:.8}.dcg-calculator-api-container .dcg-clickable-image-info-view .dcg-clickable-image-state-container .dcg-clickable-image-state-close.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row{font-size:90%;display:flex;align-items:baseline;margin-right:2px}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-input-label{color:var(--dcg-custom-text-color, #666)}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-mq-container{flex:1;overflow:hidden}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:100%;max-width:100%;font-size:95%}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-menu-row .dcg-clickable-info-error-container{margin-left:-20px;width:20px;display:inline-block}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-list-index-notice{font-size:90%;color:#444;padding-top:5px;line-height:1.2em;width:200px}.dcg-calculator-api-container .dcg-clickable-section .dcg-clickable-list-index-notice .dcg-btn-light-gray{line-height:inherit}.dcg-calculator-api-container .dcg-clickable-section .dcg-index-variable-marker{padding-left:4px;padding-right:4px;font-size:90%;border:1px solid rgba(0,0,0,.2);border-radius:4px}.dcg-calculator-api-container .dcg-clickable-section .dcg-index-variable-marker:not(.dcg-mathquill-has-focus){background:transparent;pointer-events:none;opacity:.75}.dcg-calculator-api-container .dcg-label-orientation-view{width:78px;height:78px;display:inline-block;position:relative;transition:transform .1s}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-option{display:inline-block;width:26px;height:26px;line-height:26px;text-align:center;border-radius:50%;color:#bbb}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-option.dcg-hovered{color:#666}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-option.dcg-selected{color:#2f72dc}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-option.dcg-selected.dcg-hovered{color:#2253a1}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-option i{position:relative;top:2px}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-below-right,.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-above-right,.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-below-left,.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-above-left{color:#e2e2e2}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-orientation-disabled{pointer-events:none}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-below-right{position:absolute;bottom:0;right:0;transform:rotate(225deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-below-left{position:absolute;bottom:0;left:0;transform:rotate(315deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-above-right{position:absolute;top:0;right:0;transform:rotate(135deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-above-left{position:absolute;top:0;left:0;transform:rotate(45deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-left{position:absolute;top:26px;left:0}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-right{position:absolute;top:26px;right:0;transform:rotate(180deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-above{position:absolute;top:0;left:26px;transform:rotate(90deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-below{position:absolute;bottom:0;left:26px;transform:rotate(270deg)}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-center{position:absolute;top:26px;left:26px;font-size:200%}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-center:after{content:\"\";width:12px;height:12px;border-radius:50%;position:absolute;top:50%;left:50%;background:currentColor;margin-top:-6px;margin-left:-6px;box-shadow:0 0 2px #0003}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-label-orientation-center.dcg-orientation-disabled:not(.dcg-selected):after{background:#fff;width:10px;height:10px;margin-top:-5px;margin-left:-5px;box-shadow:0 0 2px #0003,inset 0 0 0 1px #00000026}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-vertical-orientation-indicator{width:0;height:0;border:4px solid transparent;border-bottom:15px solid #ddd;position:absolute;top:50%;left:50%;margin-top:-19px;margin-left:-4px}.dcg-calculator-api-container .dcg-label-orientation-view .dcg-vertical-orientation-indicator:after{content:\"\";width:0;height:0;border:4px solid transparent;border-top:15px solid #ddd;position:absolute;top:50%;left:50%;margin-top:15px;margin-left:-4px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-options-menu-section-title{color:var(--dcg-custom-text-color, #666)}.dcg-calculator-api-container .dcg-image-options-menu .dcg-opacities-menu-flex{display:flex;gap:5px;margin-top:5px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-opacities-menu-flex .dcg-opacity-option{height:29px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-image-aria-container{padding:0 10px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row:first-of-type{margin-top:10px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-input-label{color:var(--dcg-custom-text-color, #666)}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:100%;max-width:100%;font-size:95%}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row input{outline:none;border:1px solid #bbb;border-top:0!important;border-right:0!important;border-left:0!important;color:#000;-webkit-appearance:none;appearance:none;border-radius:0;padding:5px 0;font-size:95%;width:120px;margin-top:5px}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row input.dcg-hovered{border-color:#ccc;box-shadow:0 1px #ccc}.dcg-calculator-api-container .dcg-image-options-menu .dcg-clickable-image-controls .dcg-clickable-menu-row input:focus:not([disabled]){border-color:#2f72dc;box-shadow:0 1px #2f72dc}.dcg-calculator-api-container .dcg-slider-options-view{top:-11px;left:42px;width:200px;padding:15px 15px 10px}.dcg-calculator-api-container .dcg-slider-options-view .dcg-title{font-size:110%}.dcg-calculator-api-container .dcg-slider-options-view .dcg-slider-speed-menu{margin-top:10px}.dcg-calculator-api-container .dcg-slider-options-view .dcg-slider-speed-menu .dcg-title,.dcg-calculator-api-container .dcg-slider-options-view .dcg-slider-speed-menu .dcg-slider-speed-container{display:inline-block}.dcg-calculator-api-container .dcg-slider-speed-container{float:right;position:relative;top:-1px;font-size:95%}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower{color:#666}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster.dcg-hovered,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower.dcg-hovered{color:#222}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster.dcg-depressed,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster.dcg-disabled,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower.dcg-disabled{opacity:.25;pointer-events:none}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower{transform:rotate(180deg)}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower i{position:relative;top:1px}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower{cursor:pointer;font-size:70%;display:inline-block;width:26px;height:26px;text-align:center;line-height:26px;border:1px solid rgba(0,0,0,.2);border-radius:4px}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster.dcg-hovered,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower.dcg-hovered{background:#0000000d}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster.dcg-depressed,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower.dcg-depressed{background:#0003}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-faster i,.dcg-calculator-api-container .dcg-slider-speed-container .dcg-action-slower i{position:relative;left:1px}.dcg-calculator-api-container .dcg-slider-speed-container .dcg-variable-speed{width:45px;font-size:90%;display:inline-block;text-align:center}.dcg-calculator-api-container .dcg-table-column-menu{left:-9px;top:34px}.dcg-calculator-api-container .dcg-table-column-menu .dcg-triangle{border-width:0 9px 9px 9px;border-color:transparent transparent #d3d3d3 transparent}.dcg-calculator-api-container .dcg-table-column-menu .dcg-triangle:before{position:absolute;top:1px;left:-8px;border-width:0 8px 8px 8px;border-color:transparent transparent #fff transparent}.dcg-calculator-api-container .dcg-notice-wrapper{margin:10px;display:none}.dcg-calculator-api-container .dcg-close-notice-icon{position:absolute;top:5px;right:5px;width:30px;height:30px;margin-left:5px;border-radius:50%;line-height:30px;font-size:90%;text-align:center}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-light{color:#bbb}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-light.dcg-hovered,.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-light.dcg-focused{background-color:#0000001a;color:#666}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-light.dcg-depressed{background-color:#0003;color:#000}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark{opacity:.8;color:#fff}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-hovered,.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-focused,.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-depressed{opacity:1}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-hovered,.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-focused{opacity:1;background-color:#fff3}.dcg-calculator-api-container .dcg-close-notice-icon.dcg-theme-dark.dcg-depressed{background-color:#fff6;opacity:1}@keyframes dcg-fadeIn-show-keypad{0%{transform:translateY(10px);opacity:0}50%{transform:translateY(10px);opacity:0}to{transform:translate(0);opacity:1}}.dcg-calculator-api-container .dcg-keypad .dcg-keys-container{position:absolute;bottom:0;z-index:60;width:100%;margin:0 auto;padding:0;transition:opacity .3s}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover{position:absolute;right:8px}.dcg-calculator-api-container .dcg-keypad .dcg-minimize-keypad .dcg-icon-keyboard,.dcg-calculator-api-container .dcg-keypad .dcg-show-keypad .dcg-icon-keyboard{font-size:175%;float:left;margin-right:8px}.dcg-calculator-api-container .dcg-keypad .dcg-minimize-keypad .dcg-icon-caret-down,.dcg-calculator-api-container .dcg-keypad .dcg-minimize-keypad .dcg-icon-caret-up,.dcg-calculator-api-container .dcg-keypad .dcg-show-keypad .dcg-icon-caret-down,.dcg-calculator-api-container .dcg-keypad .dcg-show-keypad .dcg-icon-caret-up{font-size:75%;line-height:2rem}.dcg-calculator-api-container .dcg-keypad .dcg-minimize-keypad-container{position:absolute;top:-2.5rem;left:-1px}.dcg-calculator-api-container .dcg-keypad .dcg-show-keypad-container{z-index:60;position:absolute;bottom:5px;left:5px;animation:dcg-fadeIn-show-keypad .6s}.dcg-calculator-api-container .dcg-keypad .dcg-minimize-keypad{padding:.25rem 1.25rem;border-top-left-radius:5px;border-top-right-radius:5px}.dcg-calculator-api-container .dcg-keypad .dcg-show-keypad{padding:4px 14px}.dcg-calculator-api-container .dcg-keypad .dcg-keys{position:relative;width:100%;max-width:835px;margin:auto;text-align:center}.dcg-calculator-api-container .dcg-keypad .dcg-keys{font-size:110%}.dcg-calculator-api-container .dcg-keypad .dcg-keys-background{background:var(--dcg-custom-background-color-shaded, #f0f0f0);border-top:1px solid rgba(0,0,0,.1);box-shadow:0 -1px 3px #0000001a}.dcg-calculator-api-container .dcg-keypad .dcg-keys-background .dcg-minimize-keypad{background:var(--dcg-custom-background-color-shaded, #f0f0f0);color:var(--dcg-custom-text-color, rgba(0, 0, 0, .7));border:1px solid rgba(0,0,0,.1);border-bottom:1px solid var(--dcg-custom-background-color-shaded, #f0f0f0);box-shadow:0 -1px 3px #0000001a}.dcg-calculator-api-container .dcg-keypad .dcg-keys-background .dcg-minimize-keypad.dcg-hovered{color:var(--dcg-custom-text-color, rgba(0, 0, 0, .9))}.dcg-calculator-api-container .dcg-keypad .dcg-keys-background .dcg-minimize-keypad.dcg-depressed{color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-narrow .dcg-keypad .dcg-functions-popover:not(.dcg-left){position:absolute;margin-left:-70px}.dcg-calculator-api-container .dcg-narrow .dcg-keypad .dcg-functions-popover.dcg-left{right:18%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container{height:40px;display:inline-block;position:relative;flex-grow:1}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container.dcg-disabled{opacity:.5}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container.dcg-disabled .dcg-keypad-btn{cursor:default}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn{position:absolute;top:2px;left:2px;right:2px;bottom:2px;display:flex;flex-flow:row;align-items:center;padding:0}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn .dcg-keypad-btn-content{text-align:center;flex:1;pointer-events:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-large-operator,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-int{font-size:80%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-large-operator .dcg-mq-sup,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-large-operator .dcg-mq-sub,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-large-operator .dcg-mq-to,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-large-operator .dcg-mq-from,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-int .dcg-mq-sup,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-int .dcg-mq-sub,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-int .dcg-mq-to,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-int .dcg-mq-from{display:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-supsub{font-size:80%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-mq-sqrt-stem{width:4px;padding:0;background:transparent}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=shift]{padding-top:2px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=\"/\"],.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=\"-\"]{padding-top:1px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=\"*\"]{padding-top:2px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=left],.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=right],.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=backspace]{font-size:110%;padding-top:2px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container [dcg-command=enter]{font-size:140%;padding-top:3px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn .dcg-keypad-btn-content{font-size:90%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-on-gray{box-shadow:inset 0 1px #ffffff40,inset 0 -1px #00000005;background:linear-gradient(#fff,#fafafa);border:1px solid #d8d8d8;border-radius:2px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-dark-on-gray{box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #00000005;background:linear-gradient(#00000021,#00000029);border:1px solid #bbb;border-radius:2px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-tall-blue,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-short-blue{box-sizing:border-box;border-radius:2px;color:#fff;background:#2f72dc;border:1px solid #4380e0;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #0000000d}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-tall-blue.dcg-hovered:not(.dcg-disabled),.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-short-blue.dcg-hovered:not(.dcg-disabled){background:#2457a8;transition:background .2s}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-tall-blue.dcg-depressed:not(.dcg-disabled),.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-short-blue.dcg-depressed:not(.dcg-disabled){background:#193d75;border:1px solid #193d75;box-shadow:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-tall-blue{height:76px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container:not(.dcg-disabled) .dcg-keypad-btn.dcg-btn-light-on-gray.dcg-hovered{background:#f5f5f5;border-color:#d8d8d8}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container:not(.dcg-disabled) .dcg-keypad-btn.dcg-btn-light-on-gray.dcg-depressed{background:#ebebeb;border-color:#cfcfcf;box-shadow:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container:not(.dcg-disabled) .dcg-keypad-btn.dcg-btn-dark-on-gray.dcg-hovered{background:#00000029}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-container:not(.dcg-disabled) .dcg-keypad-btn.dcg-btn-dark-on-gray.dcg-depressed{box-shadow:none;background:#00000030}.dcg-calculator-api-container .dcg-inverted-colors .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-on-gray{box-shadow:inset 0 -1px #ffffff40,inset 0 1px #00000005;background:linear-gradient(#fafafa,#fff)}.dcg-calculator-api-container .dcg-inverted-colors .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-dark-on-gray{box-shadow:inset 0 -1px #ffffff1a,inset 0 1px #00000005;background:linear-gradient(#00000029,#00000021)}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-on-gray,.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-gray{background:#ffffff4d;border:0}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-on-gray.dcg-hovered,.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-gray.dcg-hovered{background:#ffffff40}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-on-gray.dcg-depressed,.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-light-gray.dcg-depressed{background:#ffffff26}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-dark-on-gray{background:#00000026;border:0}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-dark-on-gray.dcg-hovered{background:#0000002e}.dcg-calculator-api-container .dcg-has-background-color .dcg-basic-keypad .dcg-keypad-btn-container .dcg-keypad-btn.dcg-btn-dark-on-gray.dcg-depressed{background:#00000038}.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow [dcg-command=\"/\"] .dcg-keypad-btn-content,.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow [dcg-command=\"=\"] .dcg-keypad-btn-content,.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow [dcg-command=\"<\"] .dcg-keypad-btn-content,.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow [dcg-command=\"<=\"] .dcg-keypad-btn-content{position:relative;left:-1px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow .dcg-basic-keypad .dcg-keypad-btn[dcg-command=sqrt]{font-size:80%}.dcg-calculator-api-container .dcg-PROJECTOR-MODE:not(.dcg-narrow) .dcg-keys-container.dcg-smaller-functions-text .dcg-keypad-btn[dcg-command=functions]{font-size:80%}.dcg-calculator-api-container .dcg-keys-container.dcg-small-ABC .dcg-abc-audio-container .dcg-keypad-btn[dcg-command=ABC]{font-size:90%}.dcg-calculator-api-container .dcg-keys-container.dcg-smaller-ABC .dcg-abc-audio-container .dcg-keypad-btn[dcg-command=ABC]{font-size:80%}.dcg-calculator-api-container .dcg-keys-container.dcg-smallest-ABC .dcg-abc-audio-container .dcg-keypad-btn[dcg-command=ABC]{font-size:70%}.dcg-calculator-api-container .dcg-basic-keypad-container{background:#00000012;border:1px solid rgba(0,0,0,.2);border-top:none}.dcg-calculator-api-container .dcg-basic-keypad{margin:0;padding:4px 3px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-mq-large-operator .dcg-mq-to,.dcg-calculator-api-container .dcg-basic-keypad .dcg-mq-large-operator .dcg-mq-from{display:none!important}.dcg-calculator-api-container .dcg-basic-keypad .dcg-mq-int .dcg-mq-supsub{display:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-mq-large-operator,.dcg-calculator-api-container .dcg-basic-keypad .dcg-mq-int{font-size:70%;position:relative;top:-1px}.dcg-calculator-api-container .dcg-basic-keypad *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.dcg-calculator-api-container .dcg-basic-keypad .dcg-half-width-placeholder{flex-grow:.5}.dcg-calculator-api-container .dcg-basic-keypad .dcg-partition-placeholder{width:4%}.dcg-calculator-api-container .dcg-projector-mode .dcg-basic-keypad,.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-basic-keypad{font-size:150%}.dcg-calculator-api-container .dcg-projector-mode .dcg-basic-keypad .dcg-keypad-btn-container{height:52px}.dcg-calculator-api-container .dcg-projector-mode.dcg-classroom-large-projector-mode .dcg-basic-keypad .dcg-keypad-btn-container{height:64px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-basic-keypad .dcg-keypad-row .dcg-keypad-btn-container{height:46px}.dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-classroom-large-projector-mode .dcg-basic-keypad .dcg-keypad-row .dcg-keypad-btn-container{height:58px}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow .dcg-basic-keypad .dcg-keypad-row{font-size:90%}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow .dcg-basic-keypad .dcg-keypad-row .dcg-keypad-btn-container{height:44px}@media screen and (max-width: 470px){.dcg-calculator-api-container .dcg-projector-mode .dcg-sci-func-keypad .dcg-basic-keypad{font-size:115%}}@media screen and (max-width: 330px){.dcg-calculator-api-container .dcg-calculator-api-container .dcg-either-or-btn{font-size:85%;white-space:nowrap}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-projector-mode .dcg-basic-keypad{font-size:125%}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-projector-mode .dcg-sci-func-keypad .dcg-basic-keypad{font-size:90%}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-PROJECTOR-MODE.dcg-narrow .dcg-basic-keypad .dcg-keypad-row{font-size:70%}}.dcg-calculator-api-container .dcg-keypad-row{padding:0;display:flex;flex-flow:row nowrap;align-items:stretch;margin:0}.dcg-calculator-api-container .dcg-keypad-row .dcg-abc-audio-container{flex-grow:2;display:flex}.dcg-calculator-api-container .dcg-basic-keypad .dcg-audio-keypad-container{display:flex}.dcg-calculator-api-container .dcg-basic-keypad .dcg-audio-keypad-column{display:flex;flex:1;flex-direction:column}.dcg-calculator-api-container .dcg-basic-keypad .dcg-audio-keypad-column .dcg-keypad-btn-container{max-height:40px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-audio-keypad-column .dcg-keypad-btn-container .dcg-keypad-btn:not(.dcg-btn-short-blue){color:#333}.dcg-calculator-api-container .dcg-basic-keypad .dcg-playback-column .dcg-btn-playback{height:40px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-playback-column .dcg-btn-playback .dcg-keypad-btn-container{width:100%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-playback-column .dcg-key-nav-section-container{height:40px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-playback-column .dcg-key-nav-section-container .dcg-tooltip-hit-area-container{width:100%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-playback-column .dcg-key-nav-section-container .dcg-key-nav-section-title-container.dcg-disabled{opacity:.5}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-section-title{text-align:left;color:#666;line-height:40px;font-size:90%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-section-title .dcg-tooltip-hit-area-container{margin-left:3px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-section-title .dcg-tooltip-hit-area-container i{font-size:80%;cursor:pointer;display:inline-block;padding:5px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-section-title .dcg-tooltip-hit-area-container.dcg-hovered{color:#333}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-section-title .dcg-tooltip-hit-area-container.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-basic-keypad .dcg-audio-keypad-spacer{flex:.25}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content{display:flex;align-items:center;justify-content:center}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-play-icon-container,.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-stop-icon-container{border:2px solid #fff;border-radius:50%;width:22px;height:22px;line-height:22px;text-align:center;font-size:50%;margin-right:5px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-icon-play{position:relative;top:-1px;left:1.5px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-stop-icon{background:#fff;display:inline-block;border-radius:1px;width:8px;height:8px;position:relative;top:-1px}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-button-icon:not(.dcg-icon-only){font-size:70%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-keypad-btn-content .dcg-button-icon.dcg-icon-only{font-size:120%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section{flex:1;display:flex;align-items:center}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-keypad-btn-container{width:40px;font-size:80%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-keypad-btn-container i.dcg-icon-volume-up,.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-keypad-btn-container i.dcg-icon-volume-down{font-size:115%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-key-nav-section-title-container{display:flex;flex-direction:column;justify-content:center;width:70px;padding:0 5px;font-size:90%}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-key-nav-section-title-container .dcg-key-nav-section-title{font-size:75%;color:#666}.dcg-calculator-api-container .dcg-basic-keypad .dcg-key-nav-section .dcg-key-nav-section-title-container.dcg-poi-section-container .dcg-key-nav-section-title{display:block}@media screen and (max-width: 550px){.dcg-calculator-api-container .dcg-audio-keypad-spacer{max-width:20px}.dcg-calculator-api-container .dcg-audio-keypad-column .dcg-key-nav-section .dcg-key-nav-section-title-container{font-size:80%;width:60px}}@media screen and (max-width: 430px){.dcg-calculator-api-container .dcg-audio-keypad-container{font-size:90%}.dcg-calculator-api-container .dcg-audio-keypad-container .dcg-audio-keypad-column.dcg-playback-column .dcg-key-nav-section .dcg-key-nav-section-title-container{width:40px}.dcg-calculator-api-container .dcg-audio-keypad-container .dcg-audio-keypad-column.dcg-navigation-column .dcg-key-nav-section .dcg-key-nav-section-title-container{width:55px}}@media screen and (max-width: 340px){.dcg-calculator-api-container .dcg-audio-keypad-column.dcg-navigation-column .dcg-key-nav-section .dcg-key-nav-section-title-container{display:none}}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover{top:-306px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-popover-interior{height:306px!important}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover{padding:0;text-align:left}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-popover-interior{background-color:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000);padding:0;width:310px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-popover-interior .dcg-keypad-btn-container{width:33.3%;float:left;height:42px;float:none;margin-bottom:-5px;overflow:hidden}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-popover-interior .dcg-keypad-btn-container .dcg-keypad-btn{font-size:80%!important;white-space:nowrap;color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-popover-section-separator{display:block;clear:both;border-bottom:1px solid #e2e2e2;margin:0 2px 4px;padding-top:4px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-keypad-keys-section,.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-keypad-keys-buttons{margin-bottom:-42px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-keypad-keys-section:last-of-type .dcg-keypad-keys-buttons{margin-bottom:7px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-keypad-keys-section{border:1px solid transparent}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-keypad-keys-section+.dcg-keypad-keys-section{margin-top:100px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-section-heading{color:var(--dcg-custom-text-color, #666);text-transform:uppercase;font-size:75%;text-align:left;padding:5px;position:sticky;top:0;background:var(--dcg-custom-background-color, #fff);z-index:2}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-section-heading .dcg-beta-tag{font-size:70%;background:#8c29be;color:var(--dcg-custom-text-color, #fff);position:relative;top:-.6em;padding:1px 3px;border-radius:4px;margin-left:2px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-section-heading a{color:var(--dcg-custom-text-color, #000);margin-left:5px;opacity:.5}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-section-heading a.dcg-hovered{opacity:.6}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-section-heading a.dcg-depressed{opacity:.9}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-interior-buttons{padding:5px}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover .dcg-option{border-bottom:1px solid rgba(0,0,0,.2);cursor:pointer;margin:4px 1px 0 3px!important;width:60px;height:38px;line-height:28px;text-align:center;line-height:38px;padding:0}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover.dcg-left{top:auto;bottom:5px;right:18%;left:auto}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover.dcg-left .dcg-arrow{top:auto;border-left-color:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover.dcg-top .dcg-arrow{border-top-color:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-functions-popover .dcg-popover-interior{width:330px}.dcg-calculator-api-container .dcg-calculator-api-container .dcg-PROJECTOR-MODE .dcg-functions-popover .dcg-interior-buttons{font-size:80%}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover.dcg-two-column .dcg-popover-interior{width:calc(100% + 2px)}.dcg-calculator-api-container .dcg-keypad .dcg-functions-popover.dcg-two-column .dcg-popover-interior .dcg-keypad-btn-container{width:50%}@keyframes dcg-fadeIn-zoomRestore{0%{transform:scale(.75);opacity:0}to{transform:scale(1);opacity:1}}.dcg-calculator-api-container .dcg-left-pillboxes{position:absolute;left:5px;top:5px;z-index:21;display:flex;gap:5px}.dcg-calculator-api-container .dcg-left-pillboxes.dcg-geometry-toolbar-present{top:53px}.dcg-calculator-api-container .dcg-left-pillboxes .dcg-icon-redo,.dcg-calculator-api-container .dcg-left-pillboxes .dcg-icon-undo{font-size:1.1rem}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements{pointer-events:none;display:flex;gap:5px}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-tooltip-hit-area-container{pointer-events:auto}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-right-pillbox-elements{display:flex;flex-direction:column;gap:5px}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-icon-plus,.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-icon-minus{font-size:75%}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-icon-xy-plane{font-size:150%;line-height:35px}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-icon-3d-cube{font-size:135%;line-height:35px}.dcg-calculator-api-container .dcg-overgraph-pillbox-elements .dcg-icon-wrench{position:relative;top:-1px}.dcg-calculator-api-container .dcg-pillbox-btn-interior{height:37px;width:37px;line-height:37px;text-align:center;transition:opacity .3s}.dcg-calculator-api-container .dcg-pillbox-btn-interior.dcg-disabled{opacity:.3;pointer-events:none}.dcg-calculator-api-container .dcg-action-settings .dcg-icon-lock{position:absolute;bottom:2px;right:2px;font-size:8px;padding:3px;border-radius:50%;color:#fff;background:#000000bf;text-shadow:none}.dcg-calculator-api-container .dcg-pillbox-container{position:absolute;right:5px;top:5px;bottom:0;width:0;z-index:21}.dcg-calculator-api-container .dcg-pillbox-container.dcg-geometry-toolbar-present{top:53px}.dcg-calculator-api-container .dcg-pillbox-container .dcg-overgraph-pillbox-elements{position:absolute;top:0;right:0}.dcg-calculator-api-container .dcg-btn-flat-gray-group .dcg-pillbox-btn-interior{width:100%;height:35px}.dcg-calculator-api-container .dcg-btn-flat-gray-group.dcg-group-vertical{width:37px}.dcg-calculator-api-container .dcg-btn-flat-gray-group.dcg-group-vertical .dcg-tooltip-hit-area-container:not(:last-of-type){border-bottom:1px solid rgba(0,0,0,.1)}.dcg-calculator-api-container .dcg-btn-flat-gray-group.dcg-group-horizontal.dcg-group-horizontal .dcg-tooltip-hit-area-container:not(:last-of-type){border-right:1px solid rgba(0,0,0,.1)}.dcg-calculator-api-container .dcg-action-zoomrestore{animation:dcg-fadeIn-zoomRestore .25s}.dcg-calculator-api-container .dcg-group-horizontal{display:flex;flex-direction:row;width:77px;height:37px}.dcg-calculator-api-container .dcg-btn-flat-gray{background:var(--dcg-custom-background-color-shaded, #ededed);box-shadow:0 0 5px #00000026;border:1px solid rgba(0,0,0,.1);border-radius:5px;text-shadow:0 1px #fff}.dcg-calculator-api-container .dcg-btn-flat-gray i{opacity:.6}.dcg-calculator-api-container .dcg-btn-flat-gray:not(.dcg-btn-flat-gray-group).dcg-hovered i,.dcg-calculator-api-container .dcg-btn-flat-gray.dcg-btn-flat-gray-group .dcg-tooltip-hit-area-container:not(.dcg-tooltip-disabled).dcg-hovered i{opacity:.9}.dcg-calculator-api-container .dcg-btn-flat-gray:not(.dcg-btn-flat-gray-group).dcg-depressed,.dcg-calculator-api-container .dcg-btn-flat-gray:not(.dcg-btn-flat-gray-group).dcg-active,.dcg-calculator-api-container .dcg-btn-flat-gray.dcg-btn-flat-gray-group .dcg-tooltip-hit-area-container:not(.dcg-tooltip-disabled).dcg-depressed,.dcg-calculator-api-container .dcg-btn-flat-gray.dcg-btn-flat-gray-group .dcg-tooltip-hit-area-container:not(.dcg-tooltip-disabled).dcg-active{background:var(--dcg-custom-background-color-shaded, #e8e8e8)}.dcg-calculator-api-container .dcg-btn-flat-gray:not(.dcg-btn-flat-gray-group).dcg-depressed i,.dcg-calculator-api-container .dcg-btn-flat-gray:not(.dcg-btn-flat-gray-group).dcg-active i,.dcg-calculator-api-container .dcg-btn-flat-gray.dcg-btn-flat-gray-group .dcg-tooltip-hit-area-container:not(.dcg-tooltip-disabled).dcg-depressed i,.dcg-calculator-api-container .dcg-btn-flat-gray.dcg-btn-flat-gray-group .dcg-tooltip-hit-area-container:not(.dcg-tooltip-disabled).dcg-active i{opacity:1}.dcg-calculator-api-container .dcg-has-background-color .dcg-btn-flat-gray{text-shadow:none}.dcg-calculator-api-container .dcg-settings-view-container{line-height:0}.dcg-calculator-api-container .dcg-settings-view-container .dcg-settings-container{position:absolute;top:2px;right:38px;line-height:1em}.dcg-calculator-api-container .dcg-settings-container{bottom:auto;z-index:61;width:290px}.dcg-calculator-api-container .dcg-settings-container.dcg-left .dcg-arrow{top:18px;border-left-color:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-settings-container .dcg-popover-interior{padding:10px;background-color:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-settings-container .dcg-visual-settings{padding-bottom:10px;border-bottom:1px solid #ddd}.dcg-calculator-api-container .dcg-settings-container .dcg-step-label{font-size:85%;color:var(--dcg-custom-text-color, #444)}.dcg-calculator-api-container .dcg-settings-container .dcg-top-section-flex{display:flex;padding-top:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-top-section-flex .dcg-component-checkbox{margin-top:3px}.dcg-calculator-api-container .dcg-settings-container .dcg-top-section-flex .dcg-grid-settings{min-width:110px}.dcg-calculator-api-container .dcg-settings-container .dcg-top-section-flex .dcg-grid-settings .dcg-component-checkbox{margin-bottom:2px}.dcg-calculator-api-container .dcg-settings-container .dcg-top-section-flex .dcg-top-checkboxes-container .dcg-component-checkbox{margin-bottom:3px}.dcg-calculator-api-container .dcg-settings-container .dcg-action-zoom-square{float:left;clear:left;font-size:80%;margin:3px 0;padding:3px 10px;line-height:1.5em}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container{border-top:1px solid #ddd;margin-top:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-component-checkbox{float:left}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-lock-viewport-option{font-size:95%;height:1.5em;line-height:2em;margin-bottom:2px;margin-top:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title{display:grid;grid-template-columns:55% 45%;font-size:95%;line-height:normal;margin-bottom:2px;margin-top:5px}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-component-checkbox,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-component-checkbox{margin-top:1em}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title.dcg-y-axis-title,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title.dcg-y-axis-title{margin-top:12px}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label{position:relative;margin-bottom:-10px}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label:focus-within label,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label:focus-within label{color:#2f72dc}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label label,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label label{position:absolute;padding:0 3px;font-size:85%;left:4px;top:2px;color:var(--dcg-custom-text-color, #666);background:var(--dcg-custom-background-color, #fff);margin:0;line-height:normal}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label input,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label input{outline:none;margin-top:.7em;border-radius:5px;width:100%;color:var(--dcg-custom-text-color, #444);font-size:90%;padding:7px;-webkit-appearance:none;appearance:none;border:1px solid var(--dcg-custom-text-color, rgba(0, 0, 0, .42));background:var(--dcg-custom-background-color, #fff)}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label input.dcg-hovered,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label input.dcg-hovered{border:1px solid var(--dcg-custom-text-color, rgba(0, 0, 0, .42));box-shadow:0 0 0 1px var(--dcg-custom-text-color, rgba(0, 0, 0, .42))}.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-x-axis-title .dcg-axis-label input:focus,.dcg-calculator-api-container .dcg-settings-container .dcg-axes-settings-container .dcg-y-axis-title .dcg-axis-label input:focus{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container .dcg-settings-container .dcg-radiangroup,.dcg-calculator-api-container .dcg-settings-container .dcg-dimensiongroup{border-top:1px solid #ddd;padding-top:10px;margin-top:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-displaysizegroup{padding-bottom:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-arrows{text-align:center}.dcg-calculator-api-container .dcg-settings-container .dcg-arrows i{font-size:26px;line-height:28px}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon-group{margin-left:24px;margin-bottom:4px}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon{display:inline-block;cursor:pointer;width:28px;height:28px;border-radius:14px;box-shadow:0 0 2px #00000040 inset;background-color:#f9f9f9;background-size:contain;background-position:center center;background-repeat:no-repeat;color:#777}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon.dcg-selected{background-color:#666;color:#ffffffe6;cursor:default}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon:not(.dcg-selected).dcg-hovered{box-shadow:inset 0 0 0 2px #00000026}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon:not(.dcg-selected).dcg-depressed{box-shadow:inset 0 0 0 2px #00000040}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon.dcg-action-cartesian,.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon.dcg-action-polar{border:1px solid rgba(0,0,0,.42);overflow:hidden;font-size:26px}.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon.dcg-action-cartesian.dcg-selected,.dcg-calculator-api-container .dcg-settings-container .dcg-circle-icon.dcg-action-polar.dcg-selected{color:#fff}.dcg-calculator-api-container .dcg-settings-container .dcg-braille-container{margin-top:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-braille-container .dcg-braille-options-container{padding-left:28px}.dcg-calculator-api-container .dcg-settings-container .dcg-braille-container .dcg-braille-options-container .dcg-braille-options-buttons{margin-top:5px}.dcg-calculator-api-container .dcg-settings-container .dcg-interval-interior{margin:0 -6px}.dcg-calculator-api-container .dcg-settings-container .dcg-editable-mathquill-container{margin-top:12px;position:relative;white-space:nowrap}.dcg-calculator-api-container .dcg-settings-container .dcg-editable-mathquill-container .dcg-step-container{float:right;margin-bottom:10px}.dcg-calculator-api-container .dcg-settings-container .dcg-editable-mathquill-container .dcg-mathquill-wrapper{display:inline-block}.dcg-calculator-api-container .dcg-settings-container .dcg-editable-mathquill-container .dcg-mathquill-wrapper .dcg-braille-input{max-width:50px;font-size:100%}.dcg-calculator-api-container .dcg-displaysize-large{font-size:150%}.dcg-calculator-api-container .dcg-2dplane-opacity{max-width:50px;margin-left:5px}.dcg-calculator-api-container .dcg-narrow .dcg-settings-container{right:35px;width:260px}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-log-axes-container{display:grid;grid-template-columns:auto 1fr;grid-template-rows:1fr 1fr;align-items:center;grid-column-gap:5px;grid-row-gap:10px;font-size:90%}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle{color:var(--dcg-custom-text-color, #000);padding-top:5px;font-size:95%}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-disabled{pointer-events:none}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-disabled .dcg-caret-container{opacity:.5}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-margin-top{margin-top:10px}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle .dcg-caret-container{transition:transform .3s;display:inline-block;font-size:90%;margin-right:5px;color:#999;transform-origin:55% 35%}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle:not(.dcg-opened) .dcg-caret-container{transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-hovered .dcg-caret-container{color:#666}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-depressed,.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-toggle.dcg-depressed .dcg-caret-container{color:#222}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-contents{border-left:1px solid rgba(0,0,0,.2);padding:8px 10px 4px;margin-left:6px;animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-advanced-contents .dcg-checkbox-title.dcg-lock-viewport-option{font-size:90%;margin-top:3px}.dcg-calculator-api-container .dcg-advanced-viewport-settings-view .dcg-editable-mathquill-container{margin-top:5px;margin-bottom:5px}.dcg-calculator-api-container .dcg-six-key-checkbox .dcg-component-checkbox{margin:5px 0;display:inline-block}.dcg-calculator-api-container .dcg-refreshable-braille-note{font-size:95%;color:var(--dcg-custom-text-color, #666)}.dcg-calculator-api-container .dcg-refreshable-braille-note a{text-decoration:underline}.dcg-calculator-api-container .dcg-3d-settings-flex-container{display:flex;flex-direction:row;gap:8px}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-show-axis-labels-section{display:flex;flex-wrap:wrap;justify-content:space-between;margin-top:7px;gap:7px}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-inline-math-input-view .dcg-math-field{border-bottom:1px solid rgba(0,0,0,.2);padding:1px 2px;margin:1px;min-width:35px;max-width:60px}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-inline-math-input-view .dcg-math-field.dcg-focus,.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-inline-math-input-view .dcg-math-field.dcg-invalid{border-bottom:2px solid #2f72dc;margin-bottom:0}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-inline-math-input-view .dcg-math-field.dcg-invalid{border-bottom:2px solid #e15855}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-inline-math-input-view .dcg-math-field.dcg-hovered:not(.dcg-focus):not(.dcg-invalid):not(.dcg-static-mathquill-view){border-bottom:2px solid #ccc;margin-bottom:0}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-popover-interior{padding:10px 0}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-popover-interior .dcg-displaysizegroup{padding-bottom:3px}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-component-checkbox{font-size:95%;margin-top:5px;color:#666}.dcg-calculator-api-container .dcg-settings-view-3d-container .dcg-braille-options-buttons{margin-top:8px}.dcg-calculator-api-container .dcg-three-d-domain .dcg-options-menu-section-title{height:1.2rem}.dcg-calculator-api-container .dcg-three-d-domain .dcg-axis-label{padding-right:5px;display:inline-block}.dcg-calculator-api-container .dcg-three-d-domain .dcg-axis-label .dcg-mq-math-mode{cursor:inherit}.dcg-calculator-api-container .dcg-three-d-domain .dcg-axis-label-to{margin-right:5px;font-size:95%;color:#666}.dcg-calculator-api-container .dcg-three-d-domain .dcg-three-d-domain-toggle-container{margin-top:4px;display:flex;margin-bottom:-5px}.dcg-calculator-api-container .dcg-three-d-domain.dcg-advanced-viewport-settings-view .dcg-advanced-contents{margin-top:-10px}.dcg-calculator-api-container .dcg-three-d-domain.dcg-advanced-viewport-settings-view .dcg-advanced-contents .dcg-editable-mathquill-container{margin-top:0}.dcg-calculator-api-container .dcg-three-d-domain .dcg-btn-light-gray,.dcg-calculator-api-container .dcg-three-d-domain .dcg-btn-primary{font-size:.8rem;padding:3px 10px;line-height:1.3rem;display:inline-block;animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-three-d-domain .dcg-action-zoom-recenter{position:relative;color:#000;top:-5px}.dcg-calculator-api-container .dcg-three-d-domain .dcg-z-axis-options.dcg-editable-mathquill-container{margin-bottom:0}.dcg-calculator-api-container .dcg-three-d-domain .dcg-action-zoom-square-3d{margin-top:8px}.dcg-calculator-api-container .dcg-three-d-domain .dcg-flex-container{display:flex}.dcg-calculator-api-container .dcg-three-d-domain .dcg-flex-container :first-child{flex:1}.dcg-calculator-api-container .dcg-geometry-toolbar-view{position:absolute;top:0;right:0;z-index:39;padding:5px;box-shadow:0 0 5px #00000026;height:48px;border-bottom:1px solid rgba(0,0,0,.2);background:linear-gradient(#fcfcfc,#eaeaea);display:flex}.dcg-calculator-api-container .dcg-geometry-toolbar-view .dcg-header-left .dcg-tooltip-hit-area-container{float:left}.dcg-calculator-api-container .dcg-geometry-toolbar-view.dcg-after-initial-load .dcg-animate-in-after-initial-load{animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-geometry-toolbar-view .dcg-flex-spacer{flex:1}.dcg-calculator-api-container .dcg-geometry-toolbar-view .dcg-geo-undo-redo-container{display:inline-block}.dcg-calculator-api-container .dcg-geometry-toolbar-view .dcg-geo-undo-redo-container.dcg-overgraph-undo-redo{position:absolute;top:53px;left:5px}.dcg-calculator-api-container .dcg-geo-basic-tools{display:flex;align-items:center;justify-content:space-between;padding:3px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-3d-getting-started-pointer{position:absolute;top:70px;left:50%;transform:translate(-50%);min-height:50px;color:#999;font-size:1.1rem;padding-top:12px;pointer-events:none;animation:dcg-fadeIn .3s;white-space:nowrap}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-3d-getting-started-pointer .dcg-curved-icon-container{display:inline-block;font-size:2rem;transform:scaleY(-1) rotate(15deg)}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-3d-getting-started-pointer.dcg-3d-getting-started-has-tool .dcg-curved-icon-container{transform:rotate(15deg);position:relative;top:7px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row{display:flex;align-items:center;justify-content:center;gap:4px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row button{padding:0;background:none}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-icon,.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-dropdown{height:37px;display:flex;align-items:center;justify-content:center}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-icon{width:37px;position:relative}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-name{position:absolute;top:100%;left:0;right:0;text-align:center;font-size:1rem;color:#666;font-family:Arial,Helvetica,sans-serif;line-height:1em}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container{height:39px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button{border-radius:5px;border:1px solid #ccc;outline:none}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-depressed{border:1px solid #999;box-shadow:0 0 0 1px #999}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-hovered,.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-depressed,.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-selected{background:#fff}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-hovered:not(.dcg-disabled):not(.dcg-selected){border:1px solid #999;box-shadow:0 0 0 1px #999}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-focus-visible{box-shadow:0 0 0 2px #2f72dc80!important}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-depressed:not(.dcg-disabled){border-color:#0000005c}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-selected{border:1px solid #2f72dc;box-shadow:0 0 0 1px #2f72dc}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-disabled{opacity:.25}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-will-be-hidden-or-disabled{border-style:dashed;opacity:.9;border-color:#ddd}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row .dcg-tool-button-container>button.dcg-will-be-hidden-or-disabled.dcg-selected{border-style:solid;border:1px solid #999;box-shadow:0 0 0 1px #999}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-geo-basic-tools-row canvas{width:50px;height:50px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn{display:flex}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn .dcg-icon{border-radius:5px 0 0 5px;width:29px;padding-left:6px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn .dcg-tool-dropdown{border-left:0;border-radius:0 5px 5px 0;color:#bbb;padding:5px}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn .dcg-tool-dropdown i{font-size:.65rem}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn .dcg-tool-dropdown.dcg-hovered{color:#333}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-split-btn .dcg-tool-dropdown.dcg-depressed{color:#000}.dcg-calculator-api-container .dcg-geo-basic-tools .dcg-mobile-construct-button{padding:10px 12px;text-align:center;float:left}.dcg-calculator-api-container .dcg-select-tools-dropdown{background:#fff;padding:0!important;position:absolute!important;top:38px;left:0}.dcg-calculator-api-container .dcg-select-tools-dropdown.dcg-shift-menu-left{left:auto;right:-94px}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool{width:100%;display:flex;align-items:center;height:35px;outline:none;overflow-y:clip;padding-right:10px}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool:first-of-type{height:40px;padding-top:5px}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool:last-of-type{height:40px;padding-bottom:5px}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool canvas{transform:scale(.75)}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool span{white-space:nowrap}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool:first-of-type{border-radius:5px 5px 0 0}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool:last-of-type{border-radius:0 0 5px 5px}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool.dcg-focus-visible:not([aria-disabled=true]),.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool.dcg-hovered:not([aria-disabled=true]),.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool.dcg-selected-tool{text-decoration:underline}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool.dcg-hovered:not(.dcg-focus-visible){box-shadow:none}.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool[aria-disabled=true] span,.dcg-calculator-api-container .dcg-select-tools-dropdown button.dcg-dropdown-tool.dcg-will-be-hidden-or-disabled span{color:#bbb;font-style:italic}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-completed i,.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-upcoming span,.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-active-icon span{width:16px;height:16px;display:inline-block;border-radius:50%;margin:0 3px}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-completed i{color:#2f72dc;font-size:70%;background:#999;color:#fff;line-height:16px;text-align:center;display:none}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-upcoming span{border:1px solid rgba(0,0,0,.2);position:relative;top:2px;display:none}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-active-icon span{display:none;background:#2f72dc;line-height:16px;text-align:center;font-size:80%;position:relative;top:-1px;color:#fff}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-active-step{margin-right:5px}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-completed i,.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-step-upcoming span,.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-active-step{animation:dcg-fadeIn .3s}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-input-flex-container .dcg-btn-blue{padding:4px 6px;font-size:90%;position:relative;top:1px}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-input-flex-container .dcg-btn-blue.dcg-disabled{pointer-events:none;opacity:.6}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field{min-width:45px;max-width:45px;border:2px solid rgba(0,0,0,.2);border-radius:5px;padding:4px 0 4px 4px;margin:0 2px 0 4px;font-size:90%}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field .dcg-mq-root-block{padding-right:5px}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field:after{display:none}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field.dcg-hovered{background:#fff}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field.dcg-focus{border:2px solid #2f72dc;background:#fff}.dcg-calculator-api-container .dcg-complex-tool-instruction-view .dcg-mathquill-wrapper .dcg-mq-container .dcg-math-field.dcg-invalid{border:2px solid #e15855}.dcg-calculator-api-container .dcg-toast-view{position:absolute;top:7px;left:50px;right:50px;height:0;text-align:center;z-index:45;overflow:visible;text-shadow:none;color:#222;line-height:1em;transition:.3s opacity}.dcg-calculator-api-container .dcg-toast-view:not(.dcg-visible){opacity:0;pointer-events:none}.dcg-calculator-api-container .dcg-toast-view.dcg-below-geo-toolbar{top:55px}.dcg-calculator-api-container .dcg-toast-view .dcg-toast-wrapper{pointer-events:none}.dcg-calculator-api-container .dcg-toast-view .dcg-toast{display:inline-block;padding:6px 10px;background:#fef2ad;border:1px solid #fed973;border-radius:4px;font-size:85%;box-shadow:0 2px 6px #00000026;position:relative;pointer-events:auto}.dcg-calculator-api-container .dcg-toast-view .dcg-toast i.dcg-icon-error{display:none}.dcg-calculator-api-container .dcg-toast-view .dcg-toast a.dcg-undo{padding:8px;margin:-8px -8px -8px 0}.dcg-calculator-api-container .dcg-toast-view .dcg-toast i.dcg-icon-remove{font-size:87%;padding:8px;margin:-5px -10px -8px 2px;color:#0000004d;cursor:pointer;float:right}.dcg-calculator-api-container .dcg-toast-view .dcg-toast i.dcg-icon-remove.dcg-hovered,.dcg-calculator-api-container .dcg-toast-view .dcg-toast i.dcg-icon-remove:focus{color:#0009}.dcg-calculator-api-container .dcg-toast-view .dcg-toast i.dcg-icon-remove.dcg-depressed{color:#000c}.dcg-calculator-api-container .dcg-toast-view .dcg-toast a{margin-left:6px;text-decoration:underline;cursor:pointer;display:inline-block;color:#333;font-weight:600}.dcg-calculator-api-container .dcg-toast-view .dcg-toast a.dcg-hovered{color:#000}.dcg-calculator-api-container .dcg-toast-view .dcg-toast-cover{display:none}.dcg-calculator-api-container .dcg-toast-view[toast-style=error] .dcg-toast{padding-left:28px}.dcg-calculator-api-container .dcg-toast-view[toast-style=error] .dcg-toast i.dcg-icon-error{position:absolute;top:7px;left:10px;color:#fc944c;display:block}.dcg-calculator-api-container .dcg-toast-view[toast-style=cover]{position:absolute;top:0;left:0;right:0;padding-top:5px;height:100%;z-index:999}.dcg-calculator-api-container .dcg-toast-view[toast-style=cover] .dcg-toast-cover{position:absolute;top:0;left:0;bottom:0;right:0;opacity:.3;display:block;background-color:#000}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover{z-index:61;width:290px;top:53px;right:43px}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover.dcg-no-geometry-header{top:5px}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover .dcg-arrow{top:18px!important}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover .dcg-popover-interior{padding:10px 0;background-color:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover .dcg-component-checkbox{font-size:95%;margin-top:5px;color:var(--dcg-custom-text-color, #666);display:inline-block}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover .dcg-lock-viewport-option .dcg-learn-more-link{padding:0 5px}.dcg-calculator-api-container .dcg-geometry-settings-container.dcg-constrained-height-popover .dcg-braille-options-buttons{margin-top:8px}.dcg-calculator-api-container .dcg-author-mode-section .dcg-toolbar-customization{display:flex;align-items:center;font-size:90%;margin-top:10px;white-space:nowrap;color:#666}.dcg-calculator-api-container .dcg-author-mode-section .dcg-toolbar-customization .dcg-segmented-control-container{margin-left:10px;width:100%}.dcg-calculator-api-container .dcg-author-mode-section .dcg-toolbar-customization .dcg-segmented-control-container .dcg-segmented-control-btn{flex:1}.dcg-calculator-api-container .dcg-author-mode-section .dcg-edit-configuration-link-container{text-align:center;padding-top:3px;font-size:90%}@keyframes dcgSharedFadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1}}@keyframes dcgSharedFadeIn{0%{opacity:0}to{opacity:1}}.dcg-calculator-api-container .dcg-shared-modal-cover{position:fixed;top:0;left:0;width:100%;height:100%;z-index:100}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-modal-background{position:absolute;top:0;left:0;bottom:0;right:0;background:#000000b3}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-modal-transition-container{display:flex;justify-content:center}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-modal{position:relative}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal{animation:dcgSharedFadeInDown .3s}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-background,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal{animation:dcgSharedFadeIn .3s}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal-transition-container,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal-transition-container,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal-transition-container{margin-top:80px}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal-contents-wrapper,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal-contents-wrapper,.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal-contents-wrapper{max-height:calc(100vh - 160px);overflow-y:auto}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal{width:800px}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal{width:650px}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal{width:500px}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal{position:absolute;top:80px;bottom:80px;left:80px;right:80px}.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal .dcg-shared-modal-contents-wrapper{overflow-y:auto;overflow-x:hidden;position:absolute;top:0;left:0;bottom:0;right:0}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-close-cross-container{position:absolute;top:-28px;right:-28px}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-close-cross{font-size:110%;width:32px;height:32px;border-radius:50%;color:#fff;opacity:.9;display:flex;align-items:center;justify-content:center}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-close-cross.dcg-hovered{opacity:1;background:#ffffff26}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-close-cross.dcg-depressed{opacity:1;background:#ffffff4d}.dcg-calculator-api-container .dcg-shared-modal-cover .dcg-shared-modal-contents-wrapper{padding:30px;background:#fff;border-radius:6px;box-shadow:0 0 10px #00000080}.dcg-calculator-api-container .dcg-shared-modal-cover h1{padding:0;margin:0 0 10px;font-weight:400;font-size:24px}.dcg-calculator-api-container .dcg-shared-modal-cover h1:not(.dcg-shared-left-align-title){text-align:center}.dcg-calculator-api-container .dcg-shared-modal-cover h1.dcg-shared-left-align-title{text-align:left}@media screen and (max-width: 850px){.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal{width:auto;margin:0;position:absolute;top:80px;left:37px;right:37px}}@media screen and (max-width: 700px){.dcg-calculator-api-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal{width:auto;margin:0;position:absolute;top:80px;left:37px;right:37px}}@media screen and (max-width: 600px){.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover .dcg-shared-modal-background{background:#333}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal-transition-container,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal-transition-container,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal-transition-container{margin-top:0}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover .dcg-shared-modal-transition-container{height:100%}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal{position:absolute;top:42px;left:0;right:0;bottom:0;width:auto;margin:0}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal .dcg-shared-close-cross-container,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal .dcg-shared-close-cross-container,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal .dcg-shared-close-cross-container,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal .dcg-shared-close-cross-container{right:5px;top:-38px}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-wide .dcg-shared-modal .dcg-shared-modal-contents-wrapper,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-fullscreen .dcg-shared-modal .dcg-shared-modal-contents-wrapper,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-medium .dcg-shared-modal .dcg-shared-modal-contents-wrapper,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover.dcg-shared-modal-narrow .dcg-shared-modal .dcg-shared-modal-contents-wrapper{border-radius:0;position:absolute;top:0;left:0;bottom:0;right:0;overflow-y:auto;overflow-x:hidden;max-height:none}.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover:not(.dcg-shared-has-close-button).dcg-shared-modal-wide .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover:not(.dcg-shared-has-close-button).dcg-shared-modal-fullscreen .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover:not(.dcg-shared-has-close-button).dcg-shared-modal-medium .dcg-shared-modal,.dcg-calculator-api-container .dcg-shared-modal-container .dcg-shared-modal-cover:not(.dcg-shared-has-close-button).dcg-shared-modal-narrow .dcg-shared-modal{top:0}}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-done-btn{float:right;position:relative;top:-4px}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal h1{font-weight:400;color:#666;padding-bottom:10px}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row{display:grid;grid-template-columns:1fr 2fr;border-bottom:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-first-column,.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-second-column{border-left:1px solid rgba(0,0,0,.2);padding:5px;display:grid;align-content:center}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-second-column{border-right:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-second-column.dcg-disabled{background:#eee}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-component-checkbox{white-space:nowrap;margin-left:2px;margin-top:0}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row.dcg-configuration-heading-row{background:#0003;border-top:1px solid rgba(0,0,0,.2);align-self:center}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row.dcg-configuration-heading-row .dcg-first-column{text-transform:capitalize;font-family:Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-weight:500}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row.dcg-configuration-heading-row .dcg-first-column,.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row.dcg-configuration-heading-row .dcg-second-column{font-size:95%}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-latex-error-container{position:absolute;top:3px;right:3px;z-index:1}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-disabled-condition-wrapper{padding:6px;color:#999}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container{padding:0;overflow:hidden;position:relative}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-math-field.dcg-invalid{padding-right:30px}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-mq-container{width:100%}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-math-field{width:100%;padding:6px}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-math-field.dcg-mq-focused{box-shadow:inset 0 0 0 2px #2f72dc!important}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-mathquill-braille .dcg-tooltip-hit-area-container{width:100%}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-mathquill-braille .dcg-tooltip-hit-area-container .dcg-braille-input{width:100%;padding:7px}.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row .dcg-mathquill-condition-container .dcg-mathquill-braille .dcg-tooltip-hit-area-container .dcg-braille-input:focus{box-shadow:inset 0 0 0 2px #2f72dc!important}@media screen and (max-width: 480px){.dcg-calculator-api-container .dcg-custom-toolbar-settings-modal .dcg-configuration-grid-row{display:grid;grid-template-columns:1fr 1fr}}.dcg-calculator-api-container .dcg-overgraph-icon-container{z-index:40}.dcg-calculator-api-container .dcg-overgraph-icon-container:not(.dcg-bottom-right){position:absolute;top:5px;left:5px}.dcg-calculator-api-container .dcg-overgraph-icon-container.dcg-bottom-right{position:absolute;bottom:5px;right:5px}.dcg-calculator-api-container .dcg-overgraph-icon{width:37px;height:37px;line-height:40px;font-size:110%;text-shadow:-2px -2px 0 #fff,-2px 2px 0 #fff,2px -2px 0 #fff,2px 2px 0 #fff,0 -2px 0 #fff,0 2px 0 #fff,2px 0 0 #fff,-2px 0 0 #fff;text-align:center;border-radius:5px}.dcg-calculator-api-container .dcg-overgraph-icon.dcg-rotated{transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-overgraph-icon i{opacity:.6}.dcg-calculator-api-container .dcg-overgraph-icon.dcg-hovered{background:#00000026;text-shadow:none}.dcg-calculator-api-container .dcg-overgraph-icon.dcg-hovered i{opacity:.8}.dcg-calculator-api-container .dcg-overgraph-icon.dcg-depressed{background:#0000004d;text-shadow:none}.dcg-calculator-api-container .dcg-overgraph-icon.dcg-depressed i{opacity:1}.dcg-calculator-api-container .dcg-performance-meter{position:absolute;z-index:1;right:0;bottom:0}.dcg-aria-alert{position:absolute;left:-1000px;top:-1000px;width:1px;height:1px;text-align:left;overflow:hidden}@media (prefers-reduced-motion){.dcg-calculator-api-container *,.dcg-calculator-api-container *:after,.dcg-calculator-api-container *:before{transition:none!important;animation-duration:0ms!important;animation-delay:0ms!important}}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper{height:100%;width:100%;position:relative}.dcg-calculator-api-container .dcg-calc-basic-main{height:100%;width:100%;background:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000);display:flex;flex-direction:column;flex-wrap:nowrap;border-radius:2px;font-family:Arial,sans-serif}.dcg-calculator-api-container .dcg-calc-basic-main *{box-sizing:border-box}.dcg-calculator-api-container .dcg-calc-basic-main.dcg-no-hyperlinks a[target=_blank]{display:none!important}.dcg-calculator-api-container .dcg-keypad-control-bar{height:40px;background-color:#00000012;border-left:1px solid rgba(0,0,0,.2);border-right:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-bar-contents{display:flex;flex-flow:row nowrap;align-items:stretch;flex-shrink:0;padding-top:2px}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-spacer{flex-grow:1}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-spacer-2{flex-grow:2}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-bar{height:52px}.dcg-calculator-api-container .dcg-keypad-control-btn{flex-grow:1;min-width:40px;text-align:center;color:var(--dcg-custom-text-color, rgba(0, 0, 0, .6));font-size:87.5%}.dcg-calculator-api-container .dcg-keypad-control-btn.dcg-narrow-control-btn{max-width:80px}.dcg-calculator-api-container .dcg-keypad-control-btn.dcg-selectable-btn{padding:0 5px;height:38px;line-height:40px}.dcg-calculator-api-container .dcg-keypad-control-btn:not(.dcg-selectable-btn){height:32px;line-height:32px;margin:5px;border-radius:5px}.dcg-calculator-api-container .dcg-keypad-control-btn.dcg-disabled{color:#00000026;cursor:default}.dcg-calculator-api-container .dcg-keypad-control-btn:not(.dcg-disabled):not(.dcg-selectable-btn).dcg-hovered{color:var(--dcg-custom-text-color, rgba(0, 0, 0, .8));background:#0000001a}.dcg-calculator-api-container .dcg-keypad-control-btn:not(.dcg-disabled):not(.dcg-selectable-btn).dcg-depressed{color:var(--dcg-custom-text-color, #000);background:#0000002e}.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=settings] i{font-size:120%;position:relative;top:1px}.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=backspace] i,.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=undo] i,.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=redo] i{font-size:150%;position:relative;top:3px}.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=clear]{width:50px;white-space:nowrap}.dcg-calculator-api-container .dcg-keypad-control-btn[dcg-command=clearall]{width:50px;line-height:inherit;display:flex;align-items:center;justify-content:center}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn{position:relative}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn:after{position:absolute;bottom:0;left:0;right:0;content:\"\";height:0;background:#2f72dc80}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn.dcg-hovered:not(.dcg-selected){color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn.dcg-hovered:not(.dcg-selected):after{height:4px;transition:height .2s}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn.dcg-selected{color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn.dcg-selected:after{height:4px;background:#2f72dc}.dcg-calculator-api-container .dcg-keypad-control-bar .dcg-keypad-control-btn:not(.dcg-disabled).dcg-selectable-btn:first-of-type{margin-left:6px}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-keypad-control-btn{min-width:25px}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-keypad-control-btn[dcg-command=clearall],.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-keypad-control-btn[dcg-command=clear]{width:50px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn{font-size:150%;height:44px;line-height:44px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=clearall],.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=clear]{width:75px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=clearall]{line-height:20px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=settings] i{top:4px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=backspace] i,.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=undo] i,.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-btn[dcg-command=redo] i{top:5px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-selectable-btn{top:4px}.dcg-calculator-api-container .dcg-basic-settings-container{position:relative;flex-grow:1}.dcg-calculator-api-container .dcg-basic-settings-container .dcg-keypad-control-btn.dcg-selected{color:#333;background:#0000001a}.dcg-calculator-api-container .dcg-settings-dropdown{font-size:95%;color:#333;width:280px;position:absolute;bottom:50px;right:5px;-webkit-user-select:none;user-select:none}.dcg-calculator-api-container .dcg-settings-dropdown .dcg-settings-menu-option{cursor:pointer}.dcg-calculator-api-container .dcg-settings-dropdown .dcg-settings-menu-option.dcg-reverse-contrast,.dcg-calculator-api-container .dcg-settings-dropdown .dcg-settings-menu-option.dcg-displaysize-container{margin-bottom:.5em}.dcg-calculator-api-container .dcg-settings-dropdown .dcg-displaysize-large{font-size:150%}.dcg-calculator-api-container .dcg-settings-dropdown .dcg-braille-container{padding-left:26px}.dcg-calculator-api-container .dcg-settings-dropdown .dcg-braille-container .dcg-braille-options-buttons{margin-top:5px}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-popover .dcg-popover-interior{padding:15px;background-color:var(--dcg-custom-background-color, #fff);color:var(--dcg-custom-text-color, #000)}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-popover .dcg-popover-interior:after{content:\"\";position:absolute;bottom:-7px;right:18px;border-width:7px;border-bottom-width:0;border-style:solid;border-color:var(--dcg-custom-background-color, #fff) transparent transparent;line-height:0}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-popover .dcg-popover-interior:before{content:\"\";position:absolute;bottom:-8px;right:17px;border-width:8px;border-bottom-width:0;border-style:solid;border-color:rgba(0,0,0,.2) transparent transparent;line-height:0}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-point-left{position:absolute;top:-30px;left:-280px}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-point-left.dcg-popover .dcg-popover-interior:after{content:\"\";position:absolute;right:-7px;top:43px;border-width:7px;border-right-width:0;border-style:solid;border-color:transparent transparent transparent var(--dcg-custom-background-color, #fff);line-height:0}.dcg-calculator-api-container .dcg-settings-dropdown.dcg-point-left.dcg-popover .dcg-popover-interior:before{content:\"\";position:absolute;right:-8px;top:42px;border-width:8px;border-right-width:0;border-style:solid;border-color:transparent transparent transparent rgba(0,0,0,.2);line-height:0}.dcg-calculator-api-container .dcg-scientific-calculator.dcg-narrow .dcg-settings-dropdown.dcg-popover:not(.dcg-point-left) .dcg-popover-interior:after{right:10px}.dcg-calculator-api-container .dcg-scientific-calculator.dcg-narrow .dcg-settings-dropdown.dcg-popover:not(.dcg-point-left) .dcg-popover-interior:before{right:9px}.dcg-calculator-api-container .dcg-version-number{color:#666;font-size:90%;text-align:center;margin-top:15px}.dcg-calculator-api-container .dcg-download-button.dcg-disabled{pointer-events:none}.dcg-calculator-api-container .dcg-download-button.dcg-primary-link{display:flex;align-items:center;margin-top:5px}.dcg-calculator-api-container .dcg-download-button.dcg-primary-link span{text-decoration:underline}.dcg-calculator-api-container .dcg-download-button.dcg-primary-link .dcg-icon-download{margin-right:10px}.dcg-calculator-api-container .dcg-keypad-control-toggle{display:block;flex-grow:1;line-height:24px;height:25px;margin-top:7px;cursor:pointer;color:#0009;font-size:80%;text-transform:uppercase;background:#fff;border:1px solid rgba(0,0,0,.2);border-radius:5px;width:70px;min-width:50px;margin-left:20px;margin-right:20px;position:relative;box-shadow:inset 1px 1px 2px #00000026}.dcg-calculator-api-container .dcg-keypad-control-toggle .dcg-ctrl-toggle-option{text-align:center;display:inline-block;width:50%;font-size:80%}.dcg-calculator-api-container .dcg-keypad-control-toggle .dcg-ctrl-toggle-cover{position:absolute;top:-1px;right:-1px;bottom:-1px;left:50%;border-radius:5px;border:1px solid rgba(0,0,0,.2);transition:transform .2s}.dcg-calculator-api-container .dcg-keypad-control-toggle.dcg-hovered,.dcg-calculator-api-container .dcg-keypad-control-toggle.dcg-hovered .dcg-ctrl-toggle-cover{border-color:#0000004d}.dcg-calculator-api-container .dcg-keypad-control-toggle.dcg-depressed .dcg-ctrl-toggle-cover{border-color:#00000080}.dcg-calculator-api-container .dcg-keypad-control-toggle.dcg-toggled .dcg-ctrl-toggle-cover{transform:translate(-100%)}.dcg-calculator-api-container .dcg-has-background-color .dcg-keypad-control-toggle{background:#ffffff4d}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-keypad-control-toggle{margin-left:5px;margin-right:5px}.dcg-calculator-api-container .dcg-calc-basic-main-wrapper:not(.dcg-narrow) .dcg-projector-mode .dcg-keypad-control-toggle{font-size:150%;min-width:100px;margin:14px 15px 0;height:28px;line-height:26px}.dcg-calculator-api-container .dcg-braille-io-keypad-container{padding-top:4px}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad{color:#666;border-top:1px solid rgba(0,0,0,.2);padding:10px;display:flex}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad a{color:#2f72dc}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad a.dcg-hovered{color:#2253a1}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad a.dcg-depressed{color:#17396e}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-examples-table-container{color:#444;padding:10px 10px 0}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-examples-table-container .dcg-more-examples-link{text-align:center}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-examples-table-container table{margin-bottom:10px;border:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-examples-table-container table th{background:#00000012}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-description{flex:1;display:flex;padding:10px 0 10px 10px}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-title{font-size:130%;color:#333}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-info-text{font-size:95%;margin-bottom:10px;line-height:1.2em}.dcg-calculator-api-container .dcg-braille-io-keypad-container .dcg-braille-io-keypad .dcg-braille-description .dcg-btn-primary{padding:0 12px}.dcg-calculator-api-container .dcg-scientific-calculator .dcg-braille-io-keypad .dcg-braille-description,.dcg-calculator-api-container .dcg-four-function-calculator .dcg-braille-io-keypad .dcg-braille-description{flex-direction:column}.dcg-calculator-api-container .dcg-scientific-calculator .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-title,.dcg-calculator-api-container .dcg-four-function-calculator .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-title{margin-bottom:10px}.dcg-calculator-api-container .dcg-scientific-calculator .dcg-braille-io-keypad .dcg-braille-description .dcg-btn-primary,.dcg-calculator-api-container .dcg-four-function-calculator .dcg-braille-io-keypad .dcg-braille-description .dcg-btn-primary{margin-right:auto}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad{flex-direction:column;text-align:center;align-items:center}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description{flex-flow:row wrap;justify-content:center;align-items:center;padding:10px}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-title{margin:0 10px}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description .dcg-btn-primary{order:1;margin-right:0}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description .dcg-braille-info-text{order:2;width:100%;margin:5px 0 0}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container th,.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container td{padding:2px 5px}.dcg-calculator-api-container .dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container tr:nth-of-type(3){display:none}.dcg-calculator-api-container .dcg-short.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad{height:170px;padding:3px}.dcg-calculator-api-container .dcg-short.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container table{margin-bottom:5px}.dcg-calculator-api-container .dcg-short.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container tr:last-of-type{display:none}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad{font-size:90%}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description{padding-bottom:5px}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-description .dcg-btn-primary{padding:5px 8px}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-more-examples-link{display:none}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container{padding-top:0}.dcg-calculator-api-container .dcg-short.dcg-narrow.dcg-calc-basic-main-wrapper .dcg-braille-io-keypad .dcg-braille-examples-table-container td{height:35px}.dcg-calculator-api-container table.dcg-braille-examples-table{border-collapse:collapse}.dcg-calculator-api-container table.dcg-braille-examples-table tr:not(:last-of-type){border-bottom:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container table.dcg-braille-examples-table th{font-family:Helvetica Neue,Helvetica,Arial,Lucida Grande,sans-serif;font-weight:500}.dcg-calculator-api-container table.dcg-braille-examples-table th,.dcg-calculator-api-container table.dcg-braille-examples-table td{padding:5px 8px}.dcg-calculator-api-container table.dcg-braille-examples-table th:not(:last-of-type),.dcg-calculator-api-container table.dcg-braille-examples-table td:not(:last-of-type){border-right:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container table.dcg-braille-examples-table th:not(:first-of-type),.dcg-calculator-api-container table.dcg-braille-examples-table td:not(:first-of-type){text-align:center}.dcg-calculator-api-container table.dcg-braille-examples-table td{height:45px}.dcg-calculator-api-container table.dcg-braille-examples-table .dcg-braille-font{font-family:Abraham;font-size:110%}.dcg-calculator-api-container table.dcg-braille-examples-table .dcg-key-press{border:1px solid rgba(0,0,0,.2);background:#fff9;border-radius:3px;width:25px;height:25px;line-height:23px;text-align:center;display:inline-block;margin-right:2px;vertical-align:middle}@keyframes dcg-fadePulse{0%{opacity:0;transform:scale(.7)}50%{transform:scale(1.1)}to{opacity:1;transform:scale(1)}}.dcg-calculator-api-container .dcg-basic-list-container{flex:1;display:flex;flex-direction:column;overflow:auto;border-top:1px solid rgba(0,0,0,.2)}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list{width:100%}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list.dcg-projector-mode{font-size:150%}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list.dcg-projector-mode .dcg-braille-input input,.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list.dcg-projector-mode .dcg-braille-evaluation input{font-size:135%}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list-placeholder{flex:1;border-right:1px solid rgba(0,0,0,.2);border-left:1px solid rgba(0,0,0,.2);position:relative;overflow:hidden}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list-placeholder .dcg-answer-hint{transition:opacity 1s;padding:10px 30px 10px 10px;width:200px;opacity:.7;position:absolute;bottom:0;right:0;text-align:right;animation:dcg-fadePulse .3s}.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list-placeholder .dcg-answer-hint i{position:absolute;bottom:10px;right:-5px;font-size:2rem;color:#999}.dcg-calculator-api-container .dcg-inverted-colors .dcg-settings-dropdown .dcg-popover-interior{box-shadow:none}@media screen and (max-height: 350px){.dcg-calculator-api-container .dcg-basic-list-container .dcg-basic-list-placeholder .dcg-answer-hint{width:100%}}@keyframes dcg-delayed-fadeIn{0%{opacity:0}80%{opacity:0}to{opacity:1}}@keyframes dcg-fadeIn{0%{opacity:0}to{opacity:1}}.dcg-calculator-api-container .dcg-container .dcg-basic-expression .dcg-mq-container .dcg-mq-editable-field{width:100%}.dcg-calculator-api-container .dcg-container .dcg-basic-expression .dcg-mq-container .dcg-mq-editable-field:after{position:absolute;top:1px;right:0;bottom:1px}.dcg-calculator-api-container .dcg-basic-expression{min-height:56px;border:1px solid rgba(0,0,0,.2);margin-top:-1px;position:relative;display:flex;align-items:center;width:100%}.dcg-calculator-api-container .dcg-basic-expression:not(:first-of-type){border-top-color:transparent}.dcg-calculator-api-container .dcg-basic-expression.dcg-focused{border-color:#2f72dc;box-shadow:inset 0 0 0 1px #2f72dc;z-index:1}.dcg-calculator-api-container .dcg-basic-expression:first-of-type{margin-top:0}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io{flex-wrap:wrap;padding:2px}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io input{background:transparent}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-mq-math-mode{padding:0}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-input input,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation input,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error input{border:none;width:100%}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-input input{outline:none}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation input:focus{outline:1px dotted #000}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error input{border:1px solid transparent}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error input:focus{color:#000;outline:1px dotted #000}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-input input,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation input{font-family:Abraham,serif;font-size:163%;padding:8px 8px 0}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-basic-expression-error{font-size:140%}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error{position:absolute;top:-.8em;right:0;width:100%}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error textarea{width:100%;text-align:right;color:#666;padding-right:5px;font-size:80%;border:none;resize:none;animation:dcg-delayed-fadeIn 1s}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error textarea:focus{outline:dotted 1px #666;color:#000}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-input,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation-container,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-mathquill-container,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-output-container{flex:1 1 40%}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation-container{position:relative}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-evaluation input,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-output-container,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-braille-error{text-align:right}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-mathquill-container{padding:8px}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-mathquill-container,.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-output-container{font-size:90%;color:#666}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-output-container{padding:8px}.dcg-calculator-api-container .dcg-basic-expression.dcg-braille-io .dcg-exp-output-container .dcg-basic-expression-value{padding-right:8px}.dcg-calculator-api-container .dcg-basic-expression .dcg-exp-mathquill-container{flex:1;overflow:hidden;margin-right:1px}.dcg-calculator-api-container .dcg-basic-expression .dcg-exp-mathquill-container .dcg-mq-container{width:100%}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-math-mode{padding:12px 5px 12px 15px;outline:none!important;box-shadow:none!important;border:0}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-error{color:#e66b3c;font-size:130%;cursor:pointer;animation:dcg-delayed-fadeIn 1s;margin-right:15px;height:24px;line-height:24px}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value{animation:dcg-fadeIn .5s;padding-right:5px}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value.dcg-basic-evaluation-gray .dcg-static-mathquill-view{color:#666}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle{font-size:20px;display:inline-block;width:29px;height:29px;border:2px solid #000;opacity:.5;color:#000;text-align:center;border-radius:50%;margin:0 5px}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle i{position:relative;top:2px}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle.dcg-hovered{opacity:.7}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle.dcg-depressed{opacity:.9}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle.dcg-selected{background:#000;opacity:.5;color:#fff}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle.dcg-selected.dcg-hovered{opacity:.7}.dcg-calculator-api-container .dcg-basic-expression .dcg-basic-expression-value .dcg-basic-fraction-toggle.dcg-selected.dcg-depressed{opacity:.9}.dcg-calculator-api-container .dcg-basic-expression .dcg-slider-container{height:40px;width:250px;max-width:100%;padding-right:3px}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans{border:2px solid #2f72dc;color:#2f72dc;background-color:#2f72dc26;padding:.2em .4em;display:inline-block;border-radius:4px;margin-right:1px;margin-bottom:2px;min-width:30px;text-align:center;text-overflow:ellipsis;vertical-align:middle;position:relative}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans sup{font-size:80%}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans:after{box-sizing:border-box;content:\"ans\";position:absolute;bottom:-.5em;left:50%;font-size:60%;width:1.9em;overflow:hidden;text-align:center;margin-left:-.95em;color:#2f72dc;border:1px solid #2f72dc;background:#fff;padding:0;border-radius:3px;height:1em;line-height:.9em}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans.dcg-invalid{border-color:#e66b3c;background:#e66b3c1a;color:#e66b3c}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans.dcg-invalid i{font-style:normal;font-size:80%}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-ans.dcg-invalid:after{color:#e66b3c;border-color:#e66b3c}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-selection .dcg-mq-ans{background:#2f72dc;color:#fff}.dcg-calculator-api-container .dcg-basic-expression .dcg-mq-selection .dcg-mq-ans.dcg-invalid{background:#e66b3c}.dcg-calculator-api-container .dcg-calc-basic-main.dcg-projector-mode .dcg-mq-ans:after{position:absolute;bottom:-.3em;left:50%;height:.9em;line-height:.8em}.dcg-calculator-api-container .dcg-calc-basic-main.dcg-projector-mode .dcg-basic-expression.dcg-braille-io .dcg-braille-error{font-size:90%}.dcg-calculator-api-container .dcg-api-shared-keypad-root{background-color:#ededed}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-keypad-control-bar{background-color:transparent;border-left-color:transparent;border-right-color:transparent}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-fourfunction-keypad-container .dcg-basic-keypad{max-width:750px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-fourfunction-keypad-container.dcg-classroom-large-projector-mode .dcg-basic-keypad{max-width:875px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-scientific-keypad-container.dcg-classroom-large-projector-mode .dcg-basic-keypad{max-width:750px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-scientific-keypad-container.dcg-classroom-large-projector-mode .dcg-basic-keypad .dcg-keypad-btn,.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-fourfunction-keypad-container.dcg-classroom-large-projector-mode .dcg-basic-keypad .dcg-keypad-btn{position:absolute;top:4px;left:4px;right:4px;bottom:4px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-basic-keypad,.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-keypad-control-bar-contents{max-width:600px;margin:0 auto}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-keypad-control-btn.dcg-selectable-btn{max-width:70px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-inline-hide-keypad-button{flex-grow:1;position:relative}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-inline-hide-keypad-button-inner{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;transform:rotate(-90deg);display:flex;justify-content:center;align-items:center}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-hide-keypad-button{height:35px;width:35px;line-height:35px;margin:4px 4px 4px auto;transform:rotate(-90deg)}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-hide-keypad-button .dcg-icon-hide{position:relative;top:2px}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-hide-keypad-button,.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-inline-hide-keypad-button-inner{text-align:center;border-radius:5px;color:#666}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-hide-keypad-button.dcg-hovered,.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-inline-hide-keypad-button-inner.dcg-hovered{color:#000c;background:#0000001a}.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-hide-keypad-button.dcg-depressed,.dcg-calculator-api-container .dcg-api-shared-keypad-root .dcg-inline-hide-keypad-button-inner.dcg-depressed{color:#000;background:#0000002e}\n";
document.getElementsByTagName('head')[0].appendChild(elt);
var _Desmos;
if ( typeof module === "object" && typeof module.exports === "object" ) {
_Desmos = {};
module.exports = _Desmos;
} else {
_Desmos = (typeof Desmos !== 'undefined') ? Desmos : {};
global.Desmos = _Desmos;
}
;(function () {
var module = undefined;
var exports = undefined;
var Desmos = _Desmos;
if (!Desmos.config) Desmos.config = {};
if (typeof desmosEnabledFeatures === 'object') Desmos.enabledFeatures = desmosEnabledFeatures;
if (typeof desmosLocales === 'object') Desmos.locales = desmosLocales;
if (typeof desmosLocaleData === 'object') Desmos.localeData = desmosLocaleData;
if (typeof desmosCommit === 'string') Desmos.commit = desmosCommit;
if (typeof desmosVersion === 'string') Desmos.version = desmosVersion;
(() => {
const __dcg_shared_module_source__ = "// shared.js\n (() => {\n const __dcg_chunk_exports__ = {};var u_=Object.create;var Lh=Object.defineProperty;var c_=Object.getOwnPropertyDescriptor;var l_=Object.getOwnPropertyNames;var p_=Object.getPrototypeOf,f_=Object.prototype.hasOwnProperty;var zH=(e=>typeof require!=\"undefined\"?require:typeof Proxy!=\"undefined\"?new Proxy(e,{get:(t,n)=>(typeof require!=\"undefined\"?require:t)[n]}):e)(function(e){if(typeof require!=\"undefined\")return require.apply(this,arguments);throw Error('Dynamic require of \"'+e+'\" is not supported')});var HH=(e,t)=>()=>(e&&(t=e(e=0)),t);var UH=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),No=(e,t)=>{for(var n in t)Lh(e,n,{get:t[n],enumerable:!0})},d_=(e,t,n,r)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let i of l_(t))!f_.call(e,i)&&i!==n&&Lh(e,i,{get:()=>t[i],enumerable:!(r=c_(t,i))||r.enumerable});return e};var qH=(e,t,n)=>(n=e!=null?u_(p_(e)):{},d_(t||!e||!e.__esModule?Lh(n,\"default\",{value:e,enumerable:!0}):n,e));var $H=(()=>{for(var e=new Uint8Array(128),t=0;t<64;t++)e[t<26?t+65:t<52?t+71:t<62?t-4:t*4-205]=t;return n=>{for(var r=n.length,i=new Uint8Array((r-(n[r-1]==\"=\")-(n[r-2]==\"=\"))*3/4|0),s=0,o=0;s<r;){var a=e[n.charCodeAt(s++)],u=e[n.charCodeAt(s++)],c=e[n.charCodeAt(s++)],l=e[n.charCodeAt(s++)];i[o++]=a<<2|u>>4,i[o++]=u<<4|c>>2,i[o++]=c<<6|l}return i}})();var _M=function(){{var e=function(){},t=[\"log\",\"info\",\"warn\",\"error\",\"assert\",\"dir\",\"clear\",\"profile\",\"profileEnd\",\"time\",\"timeEnd\",\"group\",\"groupCollapsed\",\"groupEnd\",\"trace\"],n={},r=function(i){typeof window!=\"undefined\"&&window.console&&window.console[i]?n[i]=function(){Function.prototype.apply.call(window.console[i],window.console,arguments)}:n[i]=e};return t.forEach(r),n}}(),XH=_M,{log:ZH,warn:WH,error:jH,assert:JH,dir:QH,clear:KH,profile:eU,profileEnd:tU,time:nU,timeEnd:rU,group:iU,groupCollapsed:sU,groupEnd:oU,trace:aU}=_M;var jd={};No(jd,{getFrame:()=>PL});function yi(e,t,n){return{input:e,start:t,end:n}}function to(e,t){return yi(e,t,t)}function Kr(e,t){if(e.input!==t.input)throw new Error(\"Programming Error: cannot form a span on different inputs\");return yi(e.input,e.start,t.end)}function Cn(e){return e.input.slice(e.start,e.end)}var aa=()=>({type:\"empty\"}),Xn=()=>m_([-1/0,1/0]),Ao=()=>Xi([-1/0,1/0]),Xi=e=>Ad(e,!0),m_=e=>Ad(e,!1),Ad=(e,t)=>isNaN(e[0])||isNaN(e[1])||e[1]<e[0]?aa():{type:\"interval\",bounds:e,tight:t};function gi(e){return e.type===\"empty\"}function Yi(e){return gi(e)||e.tight}var Xc=(e,t)=>{if(t===0)return e>0?Ao():aa();let n=-e/t,r=t<0?[-1/0,n]:[n,1/0];return Xi(r)},Dn=(e,t)=>{if(gi(e)||gi(t))return aa();let n=[Math.max(e.bounds[0],t.bounds[0]),Math.min(e.bounds[1],t.bounds[1])],r=Yi(e)&&Yi(t);return Ad(n,r)},Dp=(e,t)=>{if(gi(e))return t;if(gi(t))return e;let n=[Math.min(e.bounds[0],t.bounds[0]),Math.max(e.bounds[1],t.bounds[1])],r;return!Yi(e)&&!Yi(t)?r=!1:Yi(e)&&!Yi(t)?r=e.bounds[0]<=t.bounds[0]&&e.bounds[1]>=t.bounds[1]:!Yi(e)&&Yi(t)?r=t.bounds[0]<=e.bounds[0]&&t.bounds[1]>=e.bounds[1]:r=e.bounds[0]<=t.bounds[1]&&t.bounds[0]<=e.bounds[1],Ad(n,r)},wM=(e,t,n)=>{if(gi(e))return n;let r=Dn(e,t);return Yi(e)?(e.bounds[0]>-1/0&&(r=Dp(r,Dn(Xi([-1/0,e.bounds[0]]),n))),e.bounds[1]<1/0&&(r=Dp(r,Dn(Xi([e.bounds[1],1/0]),n)))):r=Dp(r,Dn(n,Xn())),r};var Oe={};No(Oe,{Action:()=>rt,AngleMarker:()=>Ge,Any:()=>Ht,Arc:()=>ce,Bool:()=>ge,Circle:()=>pe,DirectedAngleMarker:()=>Ae,Distribution:()=>St,EmptyList:()=>We,ErrorType:()=>no,Line:()=>fe,ListOfAngleMarker:()=>gn,ListOfAny:()=>sn,ListOfArc:()=>Vn,ListOfBool:()=>Ln,ListOfCircle:()=>Fn,ListOfColor:()=>Zn,ListOfDirectedAngleMarker:()=>hn,ListOfDistribution:()=>wn,ListOfLine:()=>Bn,ListOfMapInterval2DPoint:()=>Or,ListOfMapInterval2DPoint3D:()=>Cr,ListOfMapIntervalPoint:()=>Dr,ListOfMapIntervalPoint3D:()=>Sr,ListOfNumber:()=>se,ListOfPoint:()=>Pt,ListOfPoint3D:()=>Kn,ListOfPolygon:()=>Rn,ListOfRay:()=>Gn,ListOfRestriction:()=>Hr,ListOfSegment:()=>Tn,ListOfSegment3D:()=>er,ListOfSphere3D:()=>yr,ListOfTone:()=>Ur,ListOfTransformation:()=>mr,ListOfTriangle3D:()=>tr,ListOfVector:()=>kn,ListOfVector3D:()=>nr,MapInterval2DPoint:()=>sr,MapInterval2DPoint3D:()=>or,MapIntervalPoint:()=>Wn,MapIntervalPoint3D:()=>jn,Number:()=>T,Point:()=>R,Point3D:()=>V,Polygon:()=>Be,RGBColor:()=>Ut,Ray:()=>Le,Restriction:()=>Vt,SeedType:()=>ot,Segment:()=>Ie,Segment3D:()=>Nt,Sphere3D:()=>Nn,Tone:()=>mn,Transformation:()=>Ue,Triangle3D:()=>In,Vector:()=>he,Vector3D:()=>Se,allListTypes:()=>Zi,allValueTypes:()=>y_,argTypeAtIndex:()=>Uu,assertTypeIsOneOf:()=>Op,broadcastable:()=>ti,broadcastableArg:()=>Hu,commonCoerceableTypeWithBroadcast:()=>ua,elementType:()=>ke,getAllowedTypesForArg:()=>Np,hasListType:()=>ei,hasMapType:()=>Gh,isGeometryType:()=>Sp,isList:()=>W,isMapOrListOfMap:()=>ca,isOneOf:()=>Wc,isSubType:()=>ro,isSubTypeOrCoercible:()=>zr,isTypeOrListOfType:()=>oe,isValidOnLogScales:()=>Zc,listType:()=>ar,mapType:()=>kh,maxArity:()=>Cp,minArity:()=>Ga,prettyPrint:()=>ne,repr:()=>on,straightTypes:()=>_d,summableElementTypes:()=>Vh,typeSatisfiesArgType:()=>zh,typeSatisfiesArgTypeUncoerced:()=>Rp,valueTypes:()=>VM,vectorTypes:()=>Bh});function S(e,t){return{key:e,vars:t}}var Ht=0,T=1,ge=2,R=3,St=4,rt=5,sn=6,se=7,Ln=8,Pt=9,wn=10,We=11,no=12,ot=13,Ut=14,Zn=15,Be=16,Rn=17,Ie=18,Tn=19,pe=20,Fn=21,ce=22,Vn=23,fe=24,Bn=25,Le=26,Gn=27,Ge=28,gn=29,Ae=30,hn=31,Ue=32,mr=33,he=34,kn=35,Vt=36,Hr=37,mn=50,Ur=51,V=100,Kn=101,Nt=102,er=103,In=104,tr=105,Nn=106,yr=107,Se=108,nr=109,Wn=200,jn=201,sr=202,or=203,Dr=204,Sr=205,Or=206,Cr=207,VM={Any:Ht,Number:T,Bool:ge,Point:R,Point3D:V,Distribution:St,Action:rt,ListOfAny:sn,ListOfNumber:se,ListOfBool:Ln,ListOfPoint:Pt,ListOfPoint3D:Kn,ListOfDistribution:wn,EmptyList:We,ErrorType:no,SeedType:ot,RGBColor:Ut,ListOfColor:Zn,Polygon:Be,ListOfPolygon:Rn,Segment:Ie,ListOfSegment:Tn,Circle:pe,ListOfCircle:Fn,Arc:ce,ListOfArc:Vn,Line:fe,ListOfLine:Bn,Ray:Le,ListOfRay:Gn,Vector:he,ListOfVector:kn,Restriction:Vt,ListOfRestriction:Hr,AngleMarker:Ge,ListOfAngleMarker:gn,DirectedAngleMarker:Ae,ListOfDirectedAngleMarker:hn,Transformation:Ue,ListOfTransformation:mr,Segment3D:Nt,ListOfSegment3D:er,Triangle3D:In,ListOfTriangle3D:tr,Sphere3D:Nn,ListOfSphere3D:yr,Vector3D:Se,ListOfVector3D:nr,Tone:mn,ListOfTone:Ur,MapIntervalPoint:Wn,MapIntervalPoint3D:jn,MapInterval2ToPoint:sr,MapInterval2DPoint3D:or,ListOfMapIntervalPoint:Dr,ListOfMapIntervalPoint3D:Sr,ListOfMapInterval2ToPoint:Or,ListOfMapInterval2DPoint3D:Cr},y_=Object.values(VM);function on(e){switch(e){case Ht:return\"Any\";case T:return\"Number\";case ge:return\"Bool\";case R:return\"Point\";case V:return\"Point3D\";case St:return\"Distribution\";case rt:return\"Action\";case sn:return\"ListOfAny\";case se:return\"ListOfNumber\";case Ln:return\"ListOfBool\";case Pt:return\"ListOfPoint\";case Kn:return\"ListOfPoint3D\";case wn:return\"ListOfDistribution\";case We:return\"EmptyList\";case no:return\"ErrorType\";case ot:return\"SeedType\";case Ut:return\"RGBColor\";case Zn:return\"ListOfColor\";case Be:return\"Polygon\";case Rn:return\"ListOfPolygon\";case Ie:return\"Segment\";case Tn:return\"ListOfSegment\";case pe:return\"Circle\";case Fn:return\"ListOfCircle\";case ce:return\"Arc\";case Vn:return\"ListOfArc\";case fe:return\"Line\";case Bn:return\"ListOfLine\";case Le:return\"Ray\";case Gn:return\"ListOfRay\";case he:return\"Vector\";case kn:return\"ListOfVector\";case Vt:return\"Restriction\";case Hr:return\"ListOfRestriction\";case Ge:return\"Angle\";case gn:return\"ListOfAngle\";case Ae:return\"DirectedAngle\";case hn:return\"ListOfDirectedAngle\";case Ue:return\"Transformation\";case mr:return\"ListOfTransformation\";case Nt:return\"Segment3D\";case er:return\"ListOfSegment3D\";case Se:return\"Vector3D\";case nr:return\"ListOfVector3D\";case In:return\"Triangle3D\";case tr:return\"ListOfTriangle3D\";case Nn:return\"Sphere3D\";case yr:return\"ListOfSphere3D\";case mn:return\"Tone\";case Ur:return\"ListOfTone\";case Wn:return\"MapIntervalPoint\";case jn:return\"MapIntervalPoint3D\";case sr:return\"MapInterval2ToPoint\";case or:return\"MapInterval2DPoint3D\";case Dr:return\"ListOfMapIntervalPoint\";case Sr:return\"ListOfMapIntervalPoint3D\";case Or:return\"ListOfMapInterval2ToPoint\";case Cr:return\"ListOfMapInterval2DPoint3D\";default:let t=e;throw new Error(`Invalid type: ${t}`)}}function ne(e){switch(e){case Ht:return S(\"shared-calculator-label-value-type-any\");case T:return S(\"shared-calculator-label-value-type-number\");case ge:return S(\"shared-calculator-label-value-type-bool\");case R:return S(\"shared-calculator-label-value-type-point\");case V:return S(\"shared-calculator-label-value-type-point3d\");case St:return S(\"shared-calculator-label-value-type-distribution\");case rt:return S(\"shared-calculator-label-value-type-action\");case sn:return S(\"shared-calculator-label-value-type-list-of-any\");case se:return S(\"shared-calculator-label-value-type-list-of-numbers\");case Ln:return S(\"shared-calculator-label-value-type-list-of-bool\");case Pt:return S(\"shared-calculator-label-value-type-list-of-points\");case Kn:return S(\"shared-calculator-label-value-type-list-of-3d-points\");case wn:return S(\"shared-calculator-label-value-type-list-of-distributions\");case We:return S(\"shared-calculator-label-value-type-empty-list\");case no:return S(\"shared-calculator-label-value-type-error\");case ot:return S(\"shared-calculator-label-value-type-seed\");case Ut:return S(\"shared-calculator-label-value-type-color\");case Zn:return S(\"shared-calculator-label-value-type-list-of-colors\");case Be:return S(\"shared-calculator-label-value-type-polygon\");case Rn:return S(\"shared-calculator-label-value-type-list-of-polygons\");case Ie:return S(\"shared-calculator-label-value-type-segment\");case Tn:return S(\"shared-calculator-label-value-type-list-of-segments\");case pe:return S(\"shared-calculator-label-value-type-circle\");case Fn:return S(\"shared-calculator-label-value-type-list-of-circles\");case ce:return S(\"shared-calculator-label-value-type-arc\");case Vn:return S(\"shared-calculator-label-value-type-list-of-arcs\");case fe:return S(\"shared-calculator-label-value-type-line\");case Bn:return S(\"shared-calculator-label-value-type-list-of-lines\");case Le:return S(\"shared-calculator-label-value-type-ray\");case Gn:return S(\"shared-calculator-label-value-type-list-of-rays\");case he:return S(\"shared-calculator-label-value-type-vector\");case kn:return S(\"shared-calculator-label-value-type-list-of-vectors\");case Vt:return S(\"shared-calculator-label-value-type-restriction\");case Hr:return S(\"shared-calculator-label-value-type-list-of-restrictions\");case Ge:return S(\"shared-calculator-label-value-type-angle\");case gn:return S(\"shared-calculator-label-value-type-list-of-angles\");case Ae:return S(\"shared-calculator-label-value-type-directed-angle\");case hn:return S(\"shared-calculator-label-value-type-list-of-directed-angles\");case Ue:return S(\"shared-calculator-label-value-type-transformation\");case mr:return S(\"shared-calculator-label-value-type-list-of-transformations\");case Nt:return S(\"shared-calculator-label-value-type-segment3d\");case er:return S(\"shared-calculator-label-value-type-list-of-segment3d\");case Se:return S(\"shared-calculator-label-value-type-vector3d\");case nr:return S(\"shared-calculator-label-value-type-list-of-vector3d\");case In:return S(\"shared-calculator-label-value-type-triangle3d\");case tr:return S(\"shared-calculator-label-value-type-list-of-triangle3d\");case Nn:return S(\"shared-calculator-label-value-type-sphere3d\");case yr:return S(\"shared-calculator-label-value-type-list-of-sphere3d\");case mn:return S(\"shared-calculator-label-value-type-tone\");case Ur:return S(\"shared-calculator-label-value-type-list-of-tone\");case Wn:case sr:return S(\"shared-calculator-label-value-type-lambda-point\");case jn:case or:return S(\"shared-calculator-label-value-type-lambda-point3d\");case Dr:case Or:return S(\"shared-calculator-label-value-type-list-of-lambda-point\");case Sr:case Cr:return S(\"shared-calculator-label-value-type-list-of-lambda-point3d\");default:let t=e;throw new Error(`Invalid type: ${t}`)}}var Zi=[sn,se,Ln,Hr,Pt,Kn,wn,We,Zn,Rn,Tn,Fn,Vn,Bn,Gn,kn,gn,hn,mr,er,nr,tr,yr,Ur,Dr,Sr,Or,Cr],cU={[sn]:Ht,[We]:T,[se]:T,[Ln]:ge,[Hr]:Vt,[Pt]:R,[Kn]:V,[wn]:St,[Zn]:Ut,[Rn]:Be,[Tn]:Ie,[Fn]:pe,[Vn]:ce,[Bn]:fe,[Gn]:Le,[kn]:he,[gn]:Ge,[hn]:Ae,[mr]:Ue,[er]:Nt,[nr]:Se,[tr]:In,[yr]:Nn,[Ur]:mn,[Dr]:Wn,[Sr]:jn,[Or]:sr,[Cr]:or};function W(e){switch(e){case void 0:return!1;case sn:case se:case Ln:case Hr:case Pt:case Kn:case wn:case Zn:case Rn:case Tn:case Fn:case Vn:case Bn:case Gn:case kn:case gn:case hn:case mr:case er:case nr:case tr:case yr:case Ur:case Dr:case Sr:case Or:case Cr:return!0;case We:return!0;case Ht:case T:case ge:case Vt:case R:case V:case St:case no:case ot:case Ut:case rt:case Be:case Ie:case pe:case ce:case fe:case Le:case he:case Ge:case Ae:case Ue:case Nt:case Se:case In:case mn:case Nn:case Wn:case jn:case sr:case or:return!1;default:throw new Error(`Invalid type: ${e}`)}}function ke(e){switch(e){case We:case se:return T;case Ln:return ge;case Hr:return Vt;case Pt:return R;case Kn:return V;case wn:return St;case Zn:return Ut;case Rn:return Be;case er:return Nt;case nr:return Se;case tr:return In;case yr:return Nn;case sn:return Ht;case Tn:return Ie;case Fn:return pe;case Vn:return ce;case Bn:return fe;case Gn:return Le;case kn:return he;case gn:return Ge;case hn:return Ae;case mr:return Ue;case Ur:return mn;case Dr:return Wn;case Sr:return jn;case Or:return sr;case Cr:return or;case Ht:case T:case ge:case R:case V:case St:case no:case ot:case Ut:case rt:case Be:case Ie:case pe:case ce:case fe:case Le:case he:case Vt:case Ge:case Ae:case Ue:case Nt:case Se:case In:case Nn:case mn:case Wn:case jn:case sr:case or:throw new Error(\"Type \"+on(e)+\" does not implement elementType.\");default:let t=e;throw new Error(`Invalid type: ${t}`)}}function ar(e){switch(e){case Ht:return sn;case T:return se;case ge:return Ln;case Vt:return Hr;case R:return Pt;case V:return Kn;case St:return wn;case Ut:return Zn;case Be:return Rn;case Ie:return Tn;case pe:return Fn;case ce:return Vn;case fe:return Bn;case Le:return Gn;case he:return kn;case Ge:return gn;case Ae:return hn;case Ue:return mr;case Nt:return er;case Se:return nr;case In:return tr;case Nn:return yr;case mn:return Ur;case Wn:return Dr;case jn:return Sr;case sr:return Or;case or:return Cr;case We:case se:case Ln:case Hr:case Pt:case Kn:case wn:case Zn:case Rn:case Tn:case Fn:case Vn:case Bn:case Gn:case kn:case gn:case hn:case mr:case er:case nr:case tr:case yr:case sn:case Ur:case no:case ot:case rt:case Dr:case Sr:case Or:case Cr:throw new Error(\"Type \"+on(e)+\" does not implement listType.\");default:let t=e;throw new Error(`Invalid type: ${t}`)}}function ei(e){switch(e){case Ht:case T:case ge:case Vt:case R:case V:case St:case Ut:case Be:case Ie:case pe:case ce:case fe:case Le:case he:case Ge:case Ae:case Ue:case Nt:case Se:case In:case Nn:case mn:case Wn:case jn:case sr:case or:return!0;case We:case se:case Ln:case Hr:case Pt:case Kn:case wn:case Zn:case Rn:case Tn:case Fn:case Vn:case Bn:case Gn:case kn:case gn:case hn:case mr:case er:case nr:case tr:case yr:case sn:case Ur:case Dr:case Sr:case Or:case Cr:case ot:case rt:case no:return!1;default:throw new Error(`Invalid type: ${e}`)}}function Sp(e){if(e===void 0)return!1;switch(e){case R:case Be:case Ie:case pe:case ce:case fe:case Le:case he:case Ge:case Ae:case Ue:return!0;default:return!1}}function Zc(e){switch(e){case T:case Ht:case ge:case Vt:case R:case St:case rt:case sn:case se:case Ln:case Hr:case Pt:case wn:case We:case no:case ot:case Ut:case Zn:case mn:case Ur:return!0;case V:case Kn:case Nt:case er:case Se:case nr:case In:case tr:case Nn:case yr:case Be:case Rn:case Ie:case Tn:case pe:case Fn:case ce:case Vn:case fe:case Bn:case Le:case Gn:case he:case kn:case Ge:case gn:case Ae:case hn:case Ue:case mr:case Wn:case jn:case sr:case or:case Dr:case Sr:case Or:case Cr:return!1;default:let t=e;throw new Error(`Invalid type: ${t}`)}}function Wc(e,t){for(let n of t)if(e===n)return!0;return!1}function ro(e,t){return e===We&&W(t)||t===sn&&W(e)||t===Ht&&!W(e)?!0:e===t}function zr(e,t){return!!(ro(e,t)||t===g_(e))}function g_(e){switch(e){case Ge:case Ae:case Vt:return T;case gn:case hn:case Hr:return se;default:return}}function FM(e){switch(e){case Vt:return T;case Hr:return se;default:return e}}function Fh(e,t){var n,r;if(zr(e,t))return t;if(zr(t,e))return e;if(e=(n=FM(e))!=null?n:e,t=(r=FM(t))!=null?r:t,zr(e,t))return t;if(zr(t,e))return e}function ua(e,t){return W(e)&&ei(t)?Fh(e,ar(t)):ei(e)&&W(t)?Fh(ar(e),t):Fh(e,t)}var Vh=[T,R,V],_d=[fe,Le,Ie,he],Bh={meta:\"union\",types:[he,Se]};function oe(e,t){return e===t?!0:W(e)?e===We?!0:ke(e)===t:!1}function ca(e){return Wc(e,[Wn,jn,sr,or,Dr,Sr,Or,Cr])}var h_={[R]:Wn,[V]:jn},b_={[R]:sr,[V]:or};function Gh(e){return Wc(e,[R,V])}function kh(e,t){if(e!==R&&e!==V)throw new Error(`Unexpected return type for map: ${on(e)}`);return t===1?h_[e]:b_[e]}function Op(e,t){if(!Wc(e,t))throw new Error(`Programming error: expected one of ${t.map(ne)} but found ${e} instead.`)}function Ga(e){return Array.isArray(e)?e.length:e.initial.length}function Cp(e){return Array.isArray(e)?e.length:1/0}function Hu(e){if(typeof e==\"number\")return ei(e)?{meta:\"union\",types:[e,ar(e)]}:e;let t=[];for(let n of e.types){let r=Hu(n);typeof r==\"number\"?t.push(r):t.push(...r.types)}return{meta:\"union\",types:t}}function ti(e){return Array.isArray(e)?e.map(Hu):{type:\"variadic\",initial:e.initial.map(Hu),rest:Hu(e.rest)}}function zh(e,t){return typeof t==\"number\"?zr(e,t):t.types.some(n=>zr(e,n))}function Rp(e,t){return typeof t==\"number\"?ro(e,t):t.types.some(n=>ro(e,n))}function Uu(e,t){return Array.isArray(e)?t>e.length-1?void 0:e[t]:t<e.initial.length?e.initial[t]:e.rest}function Np(e,t){let n=new Set;for(let r of e){let i;if(Array.isArray(r)){if(t>=r.length)continue;i=BM(r[t])}else i=BM(t<r.initial.length?r.initial[t]:r.rest);for(let s of i)n.add(s)}return[...n]}function BM(e){return typeof e==\"number\"?[e]:e.types}var Tt=class{constructor(){this.exportPenalty=0;this._dependencies=[],this._dummyDependencies=[],this._updateSymbols=[],this._substitutionSymbols=[],this._scope={definitions:[],dependencies:[],substitutionDependencies:[],scopes:[]},this._exports=[]}setInputSpan(t){this._inputSpan=t}getInputString(){return this._inputSpan===void 0?\"\":Cn(this._inputSpan)}getInputSpan(){return this._inputSpan}shouldExportAns(){return!1}getAnsVariable(){return this.shouldExportAns()&&this.userData&&this.userData.hasOwnProperty(\"index\")?[\"ans_\"+this.userData.index]:[]}addDependency(t){this._dependencies.indexOf(t)===-1&&this._dependencies.push(t),this._scope.dependencies.indexOf(t)===-1&&this._scope.dependencies.push(t)}addDependencies(t){for(var n=0;n<t.length;n++)this.addDependency(t[n])}addDummyDependency(t){this._dependencies.indexOf(t)===-1&&this._dependencies.push(t),this._dummyDependencies.indexOf(t)===-1&&this._dummyDependencies.push(t)}addDummyDependencies(t){for(var n=0;n<t.length;n++)this.addDummyDependency(t[n])}addUpdateSymbol(t){this._dependencies.indexOf(t)===-1&&this._dependencies.push(t),this._updateSymbols.indexOf(t)===-1&&this._updateSymbols.push(t)}addSubstitutionSymbol(t){this._dummyDependencies.indexOf(t)===-1&&this._dummyDependencies.push(t),this._substitutionSymbols.indexOf(t)===-1&&this._substitutionSymbols.push(t)}addSubstitutionDependencies(t){for(var n=0;n<t.length;n++){var r=t[n];if(this._dependencies.indexOf(r)===-1)throw new Error(\"Programming error: substitution dependency \"+r+\" must also be registered as a regular dependency\");this._scope.substitutionDependencies.indexOf(r)===-1&&this._scope.substitutionDependencies.push(r)}}mergeDependencies(...t){for(var n=0;n<t.length;n++){var r=t[n],i;for(i=0;i<r._dependencies.length;i++)this._dependencies.indexOf(r._dependencies[i])===-1&&this._dependencies.push(r._dependencies[i]);for(i=0;i<r._updateSymbols.length;i++)this._updateSymbols.indexOf(r._updateSymbols[i])===-1&&this._updateSymbols.push(r._updateSymbols[i]);for(i=0;i<r._substitutionSymbols.length;i++)this._substitutionSymbols.indexOf(r._substitutionSymbols[i])===-1&&this._substitutionSymbols.push(r._substitutionSymbols[i]);for(i=0;i<r._scope.dependencies.length;i++)this._scope.dependencies.indexOf(r._scope.dependencies[i])===-1&&this._scope.dependencies.push(r._scope.dependencies[i]);for(i=0;i<r._scope.substitutionDependencies.length;i++)this._scope.substitutionDependencies.indexOf(r._scope.substitutionDependencies[i])===-1&&this._scope.substitutionDependencies.push(r._scope.substitutionDependencies[i]);this.addDummyDependencies(r.getDummyDependencies()),Array.prototype.push.apply(this._scope.scopes,r._scope.scopes)}}mergeDependenciesInScope(t,n,r,i){this.addDummyDependencies(n);var s=r.getScope(),o={kind:t,definitions:n,dependencies:s.dependencies,substitutionDependencies:s.substitutionDependencies,scopes:s.scopes,functionDefinitionSymbol:i==null?void 0:i.functionDefinitionSymbol};this._scope.scopes.push(o);for(var a=0;a<r._dependencies.length;a++)this._dependencies.indexOf(r._dependencies[a])===-1&&this._dependencies.push(r._dependencies[a]);for(a=0;a<r._updateSymbols.length;a++)this._updateSymbols.indexOf(r._updateSymbols[a])===-1&&this._updateSymbols.push(r._updateSymbols[a]);for(a=0;a<r._substitutionSymbols.length;a++)this._substitutionSymbols.indexOf(r._substitutionSymbols[a])===-1&&this._substitutionSymbols.push(r._substitutionSymbols[a]);this.addDummyDependencies(r.getDummyDependencies())}getDependencies(){return this._dependencies}graphmodeDependencies(t,n){return this.getDependencies()}getDummyDependencies(){return this._dummyDependencies}getUpdateSymbols(){return this._updateSymbols}getSubstitutionSymbols(){return this._substitutionSymbols}getScope(){return this._scope}dependsOn(t){return this._dependencies.indexOf(t)>-1}getExports(t){var n=this._exports||[];if(this.userData&&\"id\"in this.userData){var r=this.userData.id;n=n.concat([\"idref_\"+r])}return t.ansEnabled()&&(n=n.concat(this.getAnsVariable())),n}getLegalExports(t){return this.getExports(t).filter(function(n){return!t.assignmentForbidden(n)})}exportsSymbol(t){return this._exports.indexOf(t)>-1}exportTo(t,n,r){for(var i=this.getLegalExports(t),s=0;s<i.length;s++){var o=i[s];if(r[o])return;r[o]=n.blocksExport?n:this}}getOperator(){return this.operator||\"=\"}isInequality(){return!1}isShadeBetween(){return!1}getAllIds(){return this.userData?[this.userData.id]:[]}getEvaluationInfo(){return!1}shouldPromoteToSlider(t){return!1}getSliderVariables(t,n,r){var i=t.sliderVariables(r!=null?r:n.getDependencies());return n.valueType===R||n.valueType===Pt||n.valueType===V||n.valueType===Kn?t.is3dPolicy()?i.includes(\"t\")&&!i.includes(\"u\")&&!i.includes(\"v\")?i.filter(s=>s!=\"t\"):!i.includes(\"t\")&&(i.includes(\"u\")||i.includes(\"v\"))?i.filter(s=>s!=\"u\"&&s!=\"v\"):i:i.filter(function(s){return!t.validParametricVariable(s)}):i}getCompiledDerivative(){var t=this.getDependencies(),r=this.takeDerivative(t[0]||\"x\");return r.getCompiledFunction()}asValue(){}boundDomain(t){return Xn()}getCursorContext(){}polynomialOrder(t){}getPolynomialCoefficients(t){}asTypedValue(){}substitute(t){}getExpressionType(t,n){}tableInfo(t,n){}analyzeFourFunction(t,n,r){}analyzeScientific(t,n,r){}analyzeSingleExpressionScientific(t,n,r){}getGraphMode(t,n){}};var j=class extends Tt{constructor(t,n){if(!Array.isArray(t))throw new TypeError(\"Argument to expression constructor must be an Array.\");super(),this.args=t,(!n||!n.skipRegisterDependencies)&&this.registerDependencies()}shouldExportAns(){return!0}registerDependencies(){for(var t=0;t<this.args.length;t++)this.mergeDependencies(this.args[t])}copyWithArgs(t){throw new Error(`Programming Error: copyWithArgs not implemented for ${this.constructor.name}`)}};function la(e,t=1e6){if(e===1/0)return{n:1/0,d:1};if(e===-1/0)return{n:-1/0,d:1};if(!isFinite(e))return{n:NaN,d:1};let n,r=0,i=1,s=1,o=0,a,u;for(;n=Math.floor(e),a=n*i+r,u=n*o+s,!(u>t||(r=i,s=o,i=a,o=u,e===n));)e=1/(e-n);return{n:i,d:o}}function GM(e,t,n){if(e=jc(e),n>0){let r=jc(t);return e<r&&(e+=2*Math.PI),(e-r)/n}else{let r=jc(t+n);return e<r&&(e+=2*Math.PI),1+(e-r)/n}}function Ld(e,t,n){e=jc(e);let r=jc(t),i=jc(t+n);if(n<0){let s=r;r=i,i=s}return r<i?r<=e&&e<=i:r<=e||e<=i}function jc(e){let t=2*Math.PI;return(e%t+t)%t}function PU(e,t){if(!(isNaN(e)||isNaN(t)))return e>=0?Math.atan(t/e):Math.atan(t/e)+Math.PI}var as=Math.hypot;function pa(e,t){return e>0==t>0?e+.5*(t-e):.5*(e+t)}function P_(e,t,n,r,i,s){return e*r+t*i+n*s}function Rs(e,t,n,r,i,s,o,a,u){let c=as(o-r,a-i,u-s);return c===0?0:P_((e-r)/c,(t-i)/c,(n-s)/c,(o-r)/c,(a-i)/c,(u-s)/c)}function T_(e,t,n,r,i,s){let o=Rs(e,t,0,n,r,0,i,s,0);return o<=0?[n,r]:o>=1?[i,s]:[n+o*(i-n),r+o*(s-r)]}function I_(e,t,n,r,i,s,o,a,u){let c=Rs(e,t,n,r,i,s,o,a,u);return c<=0?[r,i,s]:c>=1?[o,a,u]:[r+c*(o-r),i+c*(a-i),s+c*(u-s)]}function IU(e,t,n,r,i,s,o,a){let u=Rs(e,t,0,n,r,0,i,s,0);return u<=0&&!o?[n,r]:u>=1&&!a?[i,s]:[n+u*(i-n),r+u*(s-r)]}function kM(e,t,n,r,i,s){let o=T_(e,t,n,r,i,s);return as(e-o[0],t-o[1])}function zM(e,t,n,r,i,s,o,a,u){let c=I_(e,t,n,r,i,s,o,a,u);return as(e-c[0],t-c[1],n-c[2])}function EU(e,t,n,r,i,s,o){var a=Math.atan2(t-r,e-n);if(Ld(a,s,o-s))return[i*Math.cos(a)+n,i*Math.sin(a)+r]}function Li(e,t,n=1){if(e===t)return!0;if(!isFinite(e)||!isFinite(t))return!1;if(n>50)throw new Error(\"Within \"+(52-n)+\" bits isn't really approximate any more\");let r=Math.max(Math.max(Math.abs(e),Math.abs(t)),1),i=n===1?.5:Math.pow(.5,n);return r===r+i*Math.abs(t-e)}function MU(e){return Math.round(e-.5)+.5}function qu(e,t){if(isNaN(e)||isNaN(t))return NaN;if(e=Math.round(e),t=Math.round(t),e<0&&(e=-e),t<0&&(t=-t),t>e){let r=t;t=e,e=r}if(t===0)return e;let n=e%t;for(;n>0;)e=t,t=n,n=e%t;return t}function $u(e,t){if(!isFinite(e)&&t===0)return NaN;if(e>=0||t===Math.floor(t))return Math.pow(e,t);let n=la(t,100);return Li(n.n/n.d,t,2)&&n.d%2===1?(n.n%2===0?1:-1)*Math.pow(-e,t):NaN}function Jc(e,t){return{n:e,d:t}}function En(e){return typeof e==\"object\"&&typeof e.n==\"number\"&&typeof e.d==\"number\"}var Ap=Math.pow(2,53)-1;function Yu(e){let t=e.match(/^(-)?(\\d*)?(?:\\.(\\d*))?$/);if(!t)return NaN;let n=t[1],r=t[2],i=t[3];if(!r&&!i)return NaN;let s=!!n;if(i){let o=i.replace(/0+$/,\"\"),a=o.length,u=Math.pow(10,a),c=parseInt(r||\"0\",10)*u+parseInt(o||\"0\",10);return c>Ap||u>Ap?parseFloat(e):De(s?-c:c,u)}else{let o=parseInt(r,10);return o>Ap?parseFloat(e):De(s?-o:o,1)}}function q(e){return En(e)?e.n/e.d:+e}function Wi(e){return En(e)?!1:isNaN(e)}function De(e,t){if(!isFinite(e)||!isFinite(t)||t===0||Math.floor(e)!==e||Math.floor(t)!==t||Math.abs(e)>Ap||Math.abs(t)>Ap)return e/t;t<0&&(e=-e,t=-t);let n=qu(e,t);return Jc(e/n,t/n)}function hi(e){return En(e)?Jc(-e.n,e.d):-e}function HM(e){return En(e)?Jc(Math.abs(e.n),Math.abs(e.d)):Math.abs(e)}function _p(e){return En(e)?e.n===0?e.d/e.n:Jc(e.n<0?-e.d:e.d,Math.abs(e.n)):1/e}function us(e,t){if(!En(e)||!En(t))return q(e)+q(t);var n=qu(e.d,t.d);return De(e.n*(t.d/n)+t.n*(e.d/n),e.d/n*t.d)}function cs(e,t){if(!En(e)||!En(t))return q(e)*q(t);var n=qu(e.n,t.d),r=qu(t.n,e.d);return De(e.n/n*(t.n/r),e.d/r*(t.d/n))}function ji(e,t){return us(e,hi(t))}function Ji(e,t){return!En(e)||!En(t)?q(e)/q(t):cs(e,_p(t))}function M_(e,t){let n=e,r=t;if(t.n<0&&(r=hi(t),n=_p(e)),!En(n)||!En(r))return $u(q(e),q(t));if(e=n,t=r,t.d===1)return De(Math.pow(e.n,t.n),Math.pow(e.d,t.n));let i=e.n<0;if(i&&t.d%2!==1)return NaN;let o=(i?-1:1)*Math.round(Math.pow(Math.abs(e.n),1/t.d)),a=Math.round(Math.pow(Math.abs(e.d),1/t.d));return Math.pow(o,t.d)!==e.n||Math.pow(a,t.d)!==e.d?$u(q(e),q(t)):De(Math.pow(o,t.n),Math.pow(a,t.n))}function Hh(e,t){if(!En(e)||!En(t))return $u(q(e),q(t));let n=M_(e,t);return En(n)?n:$u(q(e),q(t))}function UM(e){if(!En(e))return Math.sqrt(e);let t=Math.round(Math.sqrt(e.n)),n=Math.round(Math.sqrt(e.d));return t*t!==e.n||n*n!==e.d?Math.sqrt(q(e)):De(t,n)}function wd(e,t){return Hh(e,_p(t))}function qM(e,t){if(!En(e)||!En(t)){let n=q(e),r=q(t);return n-r*Math.floor(n/r)}return ji(e,cs(t,Jc(Math.floor(q(Ji(e,t))),1)))}function $M(e){let t=Jc(0,1);for(let n of e)t=us(t,n);return t}var Zt=class extends j{constructor(n){super([]);this.isConstant=!0;typeof n==\"number\"&&(n=De(n,1)),this._constantValue=n}asValue(){let n=this._constantValue;return typeof n==\"boolean\"?n:q(n)}asCompilerValue(){return this._constantValue}scalarExprString(){return this.asValue()>0?String(this.asValue()):\"(\"+String(this.asValue())+\")\"}getEvaluationInfo(){return[{val:this.asValue()}]}isNaN(){let n=this.asValue();return typeof n==\"number\"&&isNaN(n)}};var da={};No(da,{INCREASED_PRECISION_CONFIG:()=>pL,LEGACY_PRECISION_CONFIG:()=>lL,canDisplayAsFraction:()=>xv,formatSymbol:()=>X,geoParentToLatex:()=>dL,identifierToHTML:()=>mL,identifierToLatex:()=>ur,latexToIdentifier:()=>Lo,numericLabel:()=>qd,point:()=>sL,removeSpaces:()=>yL,trimLatex:()=>wo,truncatedHTMLLabel:()=>fL,truncatedLatexLabel:()=>Qh,truncatedPlainmathLabel:()=>$d,value:()=>jh});var Fd=typeof self==\"object\"&&self.self===self&&self||typeof global==\"object\"&&global.global===global&&global||Function(\"return this\")()||{},Gd=Array.prototype,$h=Object.prototype,YM=typeof Symbol!=\"undefined\"?Symbol.prototype:null,OU=Gd.push,QM=Gd.slice,Vd=$h.toString,v_=$h.hasOwnProperty,D_=Array.isArray,XM=Object.keys,ZM=Object.create,KM=Fd.isNaN,S_=Fd.isFinite,Uh=function(){};function gr(e){if(e instanceof gr)return e;if(!(this instanceof gr))return new gr(e);this._wrapped=e}var CU=gr.VERSION=\"1.10.2\";function kd(e,t,n){if(t===void 0)return e;switch(n==null?3:n){case 1:return function(r){return e.call(t,r)};case 3:return function(r,i,s){return e.call(t,r,i,s)};case 4:return function(r,i,s,o){return e.call(t,r,i,s,o)}}return function(){return e.apply(t,arguments)}}function ev(e,t,n){return e==null?tL:fa(e)?kd(e,t,n):nl(e)&&!tl(e)?nL(e):fv(e)}gr.iteratee=tv;function tv(e,t){return ev(e,t,1/0)}function io(e,t,n){return gr.iteratee!==tv?gr.iteratee(e,t):ev(e,t,n)}function ls(e,t){return t=t==null?e.length-1:+t,function(){for(var n=Math.max(arguments.length-t,0),r=Array(n),i=0;i<n;i++)r[i]=arguments[i+t];switch(t){case 0:return e.call(this,r);case 1:return e.call(this,arguments[0],r);case 2:return e.call(this,arguments[0],arguments[1],r)}var s=Array(t+1);for(i=0;i<t;i++)s[i]=arguments[i];return s[t]=r,e.apply(this,s)}}function O_(e){if(!nl(e))return{};if(ZM)return ZM(e);Uh.prototype=e;var t=new Uh;return Uh.prototype=null,t}function nv(e){return function(t){return t==null?void 0:t[e]}}function Kc(e,t){return e!=null&&v_.call(e,t)}function rv(e,t){for(var n=t.length,r=0;r<n;r++){if(e==null)return;e=e[t[r]]}return n?e:void 0}var C_=Math.pow(2,53)-1,za=nv(\"length\");function ps(e){var t=za(e);return typeof t==\"number\"&&t>=0&&t<=C_}function el(e,t,n){t=kd(t,n);var r,i;if(ps(e))for(r=0,i=e.length;r<i;r++)t(e[r],r,e);else{var s=bi(e);for(r=0,i=s.length;r<i;r++)t(e[s[r]],s[r],e)}return e}function zd(e,t,n){t=io(t,n);for(var r=!ps(e)&&bi(e),i=(r||e).length,s=Array(i),o=0;o<i;o++){var a=r?r[o]:o;s[o]=t(e[a],a,e)}return s}function iv(e){var t=function(n,r,i,s){var o=!ps(n)&&bi(n),a=(o||n).length,u=e>0?0:a-1;for(s||(i=n[o?o[u]:u],u+=e);u>=0&&u<a;u+=e){var c=o?o[u]:u;i=r(i,n[c],c,n)}return i};return function(n,r,i,s){var o=arguments.length>=3;return t(n,kd(r,s,4),i,o)}}var RU=iv(1),NU=iv(-1);function R_(e,t,n){var r=[];return t=io(t,n),el(e,function(i,s,o){t(i,s,o)&&r.push(i)}),r}function AU(e,t,n){t=io(t,n);for(var r=!ps(e)&&bi(e),i=(r||e).length,s=0;s<i;s++){var o=r?r[s]:s;if(!t(e[o],o,e))return!1}return!0}function _U(e,t,n){t=io(t,n);for(var r=!ps(e)&&bi(e),i=(r||e).length,s=0;s<i;s++){var o=r?r[s]:s;if(t(e[o],o,e))return!0}return!1}function Qc(e,t,n,r){return ps(e)||(e=Lp(e)),(typeof n!=\"number\"||r)&&(n=0),V_(e,t,n)>=0}var LU=ls(function(e,t,n){var r,i;return fa(t)?i=t:tl(t)&&(r=t.slice(0,-1),t=t[t.length-1]),zd(e,function(s){var o=i;if(!o){if(r&&r.length&&(s=rv(s,r)),s==null)return;o=s[t]}return o==null?o:o.apply(s,n)})});function sv(e,t){return zd(e,fv(t))}function N_(e,t,n){var r=-1/0,i=-1/0,s,o;if(t==null||typeof t==\"number\"&&typeof e[0]!=\"object\"&&e!=null){e=ps(e)?e:Lp(e);for(var a=0,u=e.length;a<u;a++)s=e[a],s!=null&&s>r&&(r=s)}else t=io(t,n),el(e,function(c,l,p){o=t(c,l,p),(o>i||o===-1/0&&r===-1/0)&&(r=c,i=o)});return r}function wU(e,t,n){var r=1/0,i=1/0,s,o;if(t==null||typeof t==\"number\"&&typeof e[0]!=\"object\"&&e!=null){e=ps(e)?e:Lp(e);for(var a=0,u=e.length;a<u;a++)s=e[a],s!=null&&s<r&&(r=s)}else t=io(t,n),el(e,function(c,l,p){o=t(c,l,p),(o<i||o===1/0&&r===1/0)&&(r=c,i=o)});return r}function FU(e){return A_(e,1/0)}function A_(e,t,n){if(t==null||n)return ps(e)||(e=Lp(e)),e[jM(e.length-1)];var r=ps(e)?Y_(e):Lp(e),i=za(r);t=Math.max(Math.min(t,i),0);for(var s=i-1,o=0;o<t;o++){var a=jM(o,s),u=r[o];r[o]=r[a],r[a]=u}return r.slice(0,t)}function VU(e,t,n){var r=0;return t=io(t,n),sv(zd(e,function(i,s,o){return{value:i,index:r++,criteria:t(i,s,o)}}).sort(function(i,s){var o=i.criteria,a=s.criteria;if(o!==a){if(o>a||o===void 0)return 1;if(o<a||a===void 0)return-1}return i.index-s.index}),\"value\")}function Hd(e,t){return function(n,r,i){var s=t?[[],[]]:{};return r=io(r,i),el(n,function(o,a){var u=r(o,a,n);e(s,o,u)}),s}}var BU=Hd(function(e,t,n){Kc(e,n)?e[n].push(t):e[n]=[t]}),GU=Hd(function(e,t,n){e[n]=t}),kU=Hd(function(e,t,n){Kc(e,n)?e[n]++:e[n]=1});function zU(e){return e==null?0:ps(e)?e.length:bi(e).length}var HU=Hd(function(e,t,n){e[n?0:1].push(t)},!0);function Xu(e,t,n,r){r=r||[];for(var i=r.length,s=0,o=za(e);s<o;s++){var a=e[s];if(ps(a)&&(tl(a)||Bd(a)))if(t)for(var u=0,c=a.length;u<c;)r[i++]=a[u++];else Xu(a,t,n,r),i=r.length;else n||(r[i++]=a)}return r}function UU(e,t){return Xu(e,t,!1)}var qU=ls(function(e,t){return Yh(e,t)});function wp(e,t,n,r){eL(t)||(r=n,n=t,t=!1),n!=null&&(n=io(n,r));for(var i=[],s=[],o=0,a=za(e);o<a;o++){var u=e[o],c=n?n(u,o,e):u;t&&!n?((!o||s!==c)&&i.push(u),s=c):n?Qc(s,c)||(s.push(c),i.push(u)):Qc(i,u)||i.push(u)}return i}var $U=ls(function(e){return wp(Xu(e,!0,!0))});var Yh=ls(function(e,t){return t=Xu(t,!0,!0),R_(e,function(n){return!Qc(t,n)})});function __(e){for(var t=e&&N_(e,za).length||0,n=Array(t),r=0;r<t;r++)n[r]=sv(e,r);return n}var YU=ls(__);function ov(e){return function(t,n,r){n=io(n,r);for(var i=za(t),s=e>0?0:i-1;s>=0&&s<i;s+=e)if(n(t[s],s,t))return s;return-1}}var L_=ov(1),w_=ov(-1);function F_(e,t,n,r){n=io(n,r,1);for(var i=n(t),s=0,o=za(e);s<o;){var a=Math.floor((s+o)/2);n(e[a])<i?s=a+1:o=a}return s}function av(e,t,n){return function(r,i,s){var o=0,a=za(r);if(typeof s==\"number\")e>0?o=s>=0?s:Math.max(s+a,o):a=s>=0?Math.min(s+1,a):s+a+1;else if(n&&s&&a)return s=n(r,i),r[s]===i?s:-1;if(i!==i)return s=t(QM.call(r,o,a),K_),s>=0?s+o:-1;for(s=e>0?o:a-1;s>=0&&s<a;s+=e)if(r[s]===i)return s;return-1}}var V_=av(1,L_,F_),XU=av(-1,w_);function ZU(e,t){if(t==null||t<1)return[];for(var n=[],r=0,i=e.length;r<i;)n.push(QM.call(e,r,r+=t));return n}function uv(e,t,n,r,i){if(!(r instanceof t))return e.apply(n,i);var s=O_(e.prototype),o=e.apply(s,i);return nl(o)?o:s}var B_=ls(function(e,t,n){if(!fa(e))throw new TypeError(\"Bind must be called on a function\");var r=ls(function(i){return uv(e,r,t,this,n.concat(i))});return r}),Ud=ls(function(e,t){var n=Ud.placeholder,r=function(){for(var i=0,s=t.length,o=Array(s),a=0;a<s;a++)o[a]=t[a]===n?arguments[i++]:t[a];for(;i<arguments.length;)o.push(arguments[i++]);return uv(e,r,this,this,o)};return r});Ud.placeholder=gr;var WU=ls(function(e,t){t=Xu(t,!1,!1);var n=t.length;if(n<1)throw new Error(\"bindAll must be passed function names\");for(;n--;){var r=t[n];e[r]=B_(e[r],e)}});var cv=ls(function(e,t,n){return setTimeout(function(){return e.apply(null,n)},t)}),jU=Ud(cv,gr,1);function JU(e,t,n){var r,i,s,o,a=0;n||(n={});var u=function(){a=n.leading===!1?0:JM(),r=null,o=e.apply(i,s),r||(i=s=null)},c=function(){var l=JM();!a&&n.leading===!1&&(a=l);var p=t-(l-a);return i=this,s=arguments,p<=0||p>t?(r&&(clearTimeout(r),r=null),a=l,o=e.apply(i,s),r||(i=s=null)):!r&&n.trailing!==!1&&(r=setTimeout(u,p)),o};return c.cancel=function(){clearTimeout(r),a=0,r=i=s=null},c}function QU(e,t,n){var r,i,s=function(a,u){r=null,u&&(i=e.apply(a,u))},o=ls(function(a){if(r&&clearTimeout(r),n){var u=!r;r=setTimeout(s,t),u&&(i=e.apply(this,a))}else r=cv(s,t,this,a);return i});return o.cancel=function(){clearTimeout(r),r=null},o}function G_(e){return function(){return!e.apply(this,arguments)}}function k_(e,t){var n;return function(){return--e>0&&(n=t.apply(this,arguments)),e<=1&&(t=null),n}}var KU=Ud(k_,2),lv=!{toString:null}.propertyIsEnumerable(\"toString\"),WM=[\"valueOf\",\"isPrototypeOf\",\"toString\",\"propertyIsEnumerable\",\"hasOwnProperty\",\"toLocaleString\"];function pv(e,t){var n=WM.length,r=e.constructor,i=fa(r)&&r.prototype||$h,s=\"constructor\";for(Kc(e,s)&&!Qc(t,s)&&t.push(s);n--;)s=WM[n],s in e&&e[s]!==i[s]&&!Qc(t,s)&&t.push(s)}function bi(e){if(!nl(e))return[];if(XM)return XM(e);var t=[];for(var n in e)Kc(e,n)&&t.push(n);return lv&&pv(e,t),t}function Xh(e){if(!nl(e))return[];var t=[];for(var n in e)t.push(n);return lv&&pv(e,t),t}function Lp(e){for(var t=bi(e),n=t.length,r=Array(n),i=0;i<n;i++)r[i]=e[t[i]];return r}function z_(e){for(var t={},n=bi(e),r=0,i=n.length;r<i;r++)t[e[n[r]]]=n[r];return t}function Zh(e,t){return function(n){var r=arguments.length;if(t&&(n=Object(n)),r<2||n==null)return n;for(var i=1;i<r;i++)for(var s=arguments[i],o=e(s),a=o.length,u=0;u<a;u++){var c=o[u];(!t||n[c]===void 0)&&(n[c]=s[c])}return n}}var H_=Zh(Xh),U_=Zh(bi);function q_(e,t,n){return t in n}var $_=ls(function(e,t){var n={},r=t[0];if(e==null)return n;fa(r)?(t.length>1&&(r=kd(r,t[1])),t=Xh(e)):(r=q_,t=Xu(t,!1,!1),e=Object(e));for(var i=0,s=t.length;i<s;i++){var o=t[i],a=e[o];r(a,o,e)&&(n[o]=a)}return n}),e8=ls(function(e,t){var n=t[0],r;return fa(n)?(n=G_(n),t.length>1&&(r=t[1])):(t=zd(Xu(t,!1,!1),String),n=function(i,s){return!Qc(t,s)}),$_(e,n,r)}),t8=Zh(Xh,!0);function Y_(e){return nl(e)?tl(e)?e.slice():H_({},e):e}function X_(e,t){var n=bi(t),r=n.length;if(e==null)return!r;for(var i=Object(e),s=0;s<r;s++){var o=n[s];if(t[o]!==i[o]||!(o in i))return!1}return!0}function qh(e,t,n,r){if(e===t)return e!==0||1/e===1/t;if(e==null||t==null)return!1;if(e!==e)return t!==t;var i=typeof e;return i!==\"function\"&&i!==\"object\"&&typeof t!=\"object\"?!1:Z_(e,t,n,r)}function Z_(e,t,n,r){e instanceof gr&&(e=e._wrapped),t instanceof gr&&(t=t._wrapped);var i=Vd.call(e);if(i!==Vd.call(t))return!1;switch(i){case\"[object RegExp]\":case\"[object String]\":return\"\"+e==\"\"+t;case\"[object Number]\":return+e!=+e?+t!=+t:+e==0?1/+e===1/t:+e==+t;case\"[object Date]\":case\"[object Boolean]\":return+e==+t;case\"[object Symbol]\":return YM.valueOf.call(e)===YM.valueOf.call(t)}var s=i===\"[object Array]\";if(!s){if(typeof e!=\"object\"||typeof t!=\"object\")return!1;var o=e.constructor,a=t.constructor;if(o!==a&&!(fa(o)&&o instanceof o&&fa(a)&&a instanceof a)&&\"constructor\"in e&&\"constructor\"in t)return!1}n=n||[],r=r||[];for(var u=n.length;u--;)if(n[u]===e)return r[u]===t;if(n.push(e),r.push(t),s){if(u=e.length,u!==t.length)return!1;for(;u--;)if(!qh(e[u],t[u],n,r))return!1}else{var c=bi(e),l;if(u=c.length,bi(t).length!==u)return!1;for(;u--;)if(l=c[u],!(Kc(t,l)&&qh(e[l],t[l],n,r)))return!1}return n.pop(),r.pop(),!0}function _o(e,t){return qh(e,t)}function n8(e){return e==null?!0:ps(e)&&(tl(e)||W_(e)||Bd(e))?e.length===0:bi(e).length===0}function fs(e){return function(t){return Vd.call(t)===\"[object \"+e+\"]\"}}var tl=D_||fs(\"Array\");function nl(e){var t=typeof e;return t===\"function\"||t===\"object\"&&!!e}var Bd=fs(\"Arguments\"),fa=fs(\"Function\"),W_=fs(\"String\"),j_=fs(\"Number\"),r8=fs(\"Date\"),i8=fs(\"RegExp\"),s8=fs(\"Error\"),J_=fs(\"Symbol\"),o8=fs(\"Map\"),a8=fs(\"WeakMap\"),u8=fs(\"Set\"),c8=fs(\"WeakSet\");(function(){Bd(arguments)||(Bd=function(e){return Kc(e,\"callee\")})})();var Q_=Fd.document&&Fd.document.childNodes;typeof/./!=\"function\"&&typeof Int8Array!=\"object\"&&typeof Q_!=\"function\"&&(fa=function(e){return typeof e==\"function\"||!1});function l8(e){return!J_(e)&&S_(e)&&!KM(parseFloat(e))}function K_(e){return j_(e)&&KM(e)}function eL(e){return e===!0||e===!1||Vd.call(e)===\"[object Boolean]\"}function tL(e){return e}function fv(e){return tl(e)?function(t){return rv(t,e)}:nv(e)}function nL(e){return e=U_({},e),function(t){return X_(t,e)}}function jM(e,t){return t==null&&(t=e,e=0),e+Math.floor(Math.random()*(t-e+1))}var JM=Date.now||function(){return new Date().getTime()},dv={\"&\":\"&amp;\",\"<\":\"&lt;\",\">\":\"&gt;\",'\"':\"&quot;\",\"'\":\"&#x27;\",\"`\":\"&#x60;\"},rL=z_(dv);function mv(e){var t=function(s){return e[s]},n=\"(?:\"+bi(e).join(\"|\")+\")\",r=RegExp(n),i=RegExp(n,\"g\");return function(s){return s=s==null?\"\":\"\"+s,r.test(s)?s.replace(i,t):s}}var yv=mv(dv),p8=mv(rL);var iL=0;function f8(e){var t=++iL+\"\";return e?e+t:t}var d8=gr.templateSettings={evaluate:/<%([\\s\\S]+?)%>/g,interpolate:/<%=([\\s\\S]+?)%>/g,escape:/<%-([\\s\\S]+?)%>/g};function gv(e,t){return e._chain?gr(t).chain():t}el([\"pop\",\"push\",\"reverse\",\"shift\",\"sort\",\"splice\",\"unshift\"],function(e){var t=Gd[e];gr.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e===\"shift\"||e===\"splice\")&&n.length===0&&delete n[0],gv(this,n)}});el([\"concat\",\"join\",\"slice\"],function(e){var t=Gd[e];gr.prototype[e]=function(){return gv(this,t.apply(this._wrapped,arguments))}});gr.prototype.value=function(){return this._wrapped};gr.prototype.valueOf=gr.prototype.toJSON=gr.prototype.value;gr.prototype.toString=function(){return String(this._wrapped)};function jh(e,t,n=e,r=!1){if(isNaN(e)||!isFinite(e))return{string:\"undefined\",latex:\"undefined\",value:e};if(e===0)return{string:\"0\",latex:\"0\",value:e};Math.abs(e)>Math.abs(n)&&(n=e);let i=la(e/Math.PI,24),s,o,a,u,c,l,p=r?cL(n):uL(n);if(p&&Li(i.n/i.d*Math.PI,e,3))return i.n===0?(s=\"0\",u=\"0\"):i.n===1?(s=\"\\u03C0\",u=\"\\\\pi\"):i.n===-1?(s=\"-\\u03C0\",u=\"-\\\\pi\"):(s=i.n.toString()+\"\\u03C0\",u=i.n.toString()+\"\\\\pi\"),i.d===1?(o=\"\",c=\"\"):(o=\"/\"+i.d.toString(),c=i.d.toString()),a=s+o,c===\"\"?l=u:u[0]===\"-\"?l=`-\\\\frac{${u.slice(1)}}{${c}}`:l=`\\\\frac{${u}}{${c}}`,{string:a,latex:l,value:i.n/i.d*Math.PI};if(p)return a=aL(hv(e.toFixed(Wh(n,t)))),{string:a,latex:a,value:parseFloat(a)};{let f=Jh(e.toExponential(Wh(n/e,t))).split(\"e\"),m=f[0]===\"1\"&&r?\"10\":f[0]+\"\\xD710\",g=f[1].replace(\"+\",\"\");return a=Jh(e.toExponential(Wh(n/e,t))).replace(\"+\",\"\"),l=`${f[0]}\\\\times10^{${g}}`,{string:a,latex:l,mantissa:m,superscript:g,value:parseFloat(a)}}}function sL(e,t,n,r,i){let s=jh(e,i,t),o=jh(r(s.value),i,n);return[s,o]}var oL=/\\.?0+$/;function hv(e){return e.indexOf(\".\")===-1?e:e.replace(oL,\"\")}function Jh(e){let t=/\\.?0+e/;return e.replace(t,\"e\")}function aL(e){return e===\"-0\"?\"0\":e}function uL(e){return e=Math.abs(e),1e-4<e&&e<1e7}function cL(e){return e=Math.abs(e),.001<e&&e<1e4}var lL={MIN_DIGITS_AFTER_DECIMAL:3,FUZZY_MIN_PRECISION_DIGITS:3},pL={MIN_DIGITS_AFTER_DECIMAL:5,FUZZY_MIN_PRECISION_DIGITS:5};function Wh(e,{MIN_DIGITS_AFTER_DECIMAL:t,FUZZY_MIN_PRECISION_DIGITS:n}){return e=Math.abs(e),e=Math.max(e,1e-16),Math.max(t,Math.floor(n+1.5-Math.log10(e)))}function bv(e){return 1e6/Math.sqrt(Math.abs(e))}function xv(e){let t=bv(e);if(t<1||t>1e12)return!1;let{n,d:r}=la(e,t);return r===1?!1:e===e+Math.pow(2,-3)*Math.abs(n/r-e)}function qd(e,t){if(t=t||{},isNaN(e)||!isFinite(e))return{type:\"undefined\"};if(e===0||t.zeroCutoff&&Math.abs(e)<t.zeroCutoff)return{type:\"decimal\",value:\"0\"};let n=t.smallCutoff||.001,r=t.bigCutoff||1e6,i=t.digits||10,o=Jh(e.toExponential(i-2)).match(/([\\d\\.\\-]+)e\\+?([\\d\\-]+)/);if(!o)return{type:\"undefined\"};let a=parseInt(o[2],10)>=i;if(xv(e)&&t.displayAsFraction){let c=la(e,bv(e));return{type:\"fraction\",numerator:c.n.toString(),denominator:c.d.toString()}}else{if(Math.abs(e)>r||Math.abs(e)<n||a)return{type:\"scientific\",mantissa:o[1],exponent:o[2]};{let c=hv(e.toPrecision(i));return e!==Number(c)&&t.addEllipses&&(c+=\"...\"),{type:\"decimal\",value:c}}}}function fL(e,t){let n=qd(e,t);switch(n.type){case\"undefined\":return\"undefined\";case\"decimal\":return n.value;case\"scientific\":return n.mantissa+\"<span class='dcg-cross'>\\xD7</span>10<sup>\"+n.exponent+\"</sup>\";case\"fraction\":return n.denominator===\"1\"?n.numerator:`${n.numerator}/${n.denominator}`;default:return n}}function $d(e,t){let n=qd(e,t);switch(n.type){case\"undefined\":return\"undefined\";case\"decimal\":return n.value;case\"scientific\":return n.mantissa+\" * 10^\"+n.exponent;case\"fraction\":return n.denominator===\"1\"?n.numerator:`${n.numerator}/${n.denominator}`;default:return n}}function Qh(e,t){let n=qd(e,t);switch(n.type){case\"undefined\":return\"undefined\";case\"decimal\":return n.value;case\"scientific\":return n.mantissa+\"\\\\times10^{\"+n.exponent+\"}\";case\"fraction\":return n.denominator===\"1\"?n.numerator:n.numerator[0]===\"-\"?`-\\\\frac{${n.numerator.slice(1)}}{${n.denominator}}`:`\\\\frac{${n.numerator}}{${n.denominator}}`;default:return n}}function X(e){if(e.startsWith(\"_base_case\")){let[n,r,i]=e.split(\":\"),s=[];for(let o of i.split(\",\")){let a=parseFloat(o);isNaN(a)?s.push(X(o)):s.push($d(a))}return`${X(r)}(${s.join(\",\")})`}e=e.replace(\"\\\\\",\"\");let t={alpha:\"\\u03B1\",beta:\"\\u03B2\",gamma:\"\\u03B3\",delta:\"\\u03B4\",epsilon:\"\\u03F5\",varepsilon:\"\\u03B5\",zeta:\"\\u03B6\",eta:\"\\u03B7\",theta:\"\\u03B8\",vartheta:\"\\u03D1\",iota:\"\\u03B9\",kappa:\"\\u03BA\",varkappa:\"\\u03F0\",lambda:\"\\u03BB\",mu:\"\\u03BC\",xi:\"\\u03BE\",pi:\"\\u03C0\",varpi:\"\\u03D6\",rho:\"\\u03C1\",varrho:\"\\u03F1\",sigma:\"\\u03C3\",varsigma:\"\\u03C2\",tau:\"\\u03C4\",phi:\"\\u03D5\",varphi:\"\\u03C6\",chi:\"\\u03C7\",psi:\"\\u03C8\",omega:\"\\u03C9\",Gamma:\"\\u0393\",Delta:\"\\u0394\",Theta:\"\\u0398\",Lambda:\"\\u039B\",Xi:\"\\u039E\",Pi:\"\\u03A0\",Sigma:\"\\u03A3\",Phi:\"\\u03A6\",Psi:\"\\u03A8\",Omega:\"\\u03A9\",div:\"\\xF7\",cdot:\"\\u22C5\",times:\"\\xD7\",lt:\"<\",gt:\">\",le:\"\\u2264\",ge:\"\\u2265\",sim:\"\\u223C\",ldots:\"\\u2026\",prime:\"\\u2032\",approx:\"\\u2248\",to:\"\\u2192\",\"->\":\"\\u2192\"};return t.hasOwnProperty(e)?t[e]:e}function dL(e){if(!e)return\"\";let t=ur(e[0]);return e[1]!==void 0&&(t+=\"\\\\left[\"+e[1]+\"\\\\right]\"),t}function ur(e){let t=e.match(/^\\$(\\d+)$/);if(t)return`\\\\token{${t[1]}}`;let n=e.split(\"_\"),r=\"\";return n[0].length>1&&(r+=\"\\\\\"),r+=n[0],n[1]&&(r+=\"_{\"+n[1]+\"}\"),r}function mL(e){if(!e)return\"\";let t=e.split(\"_\");t[0]=X(t[0]);let n=t.map(yv);return n[1]&&(n[1]=\"<sub>\"+n[1]+\"</sub>\"),n.join(\"\")}function Lo(e){let t=e.match(/\\\\token\\{(\\d+)\\}/);return t?`$${t[1]}`:(e=e.replace(/\\\\operatorname\\{(.*)\\}/,\"$1\"),e.replace(/[{}\\\\]/g,\"\"))}function wo(e){return e.replace(/^(\\\\ |\\s|\\\\space(?![a-zA-Z]))+/,\"\").replace(/(\\\\ |\\s|\\\\space(?![a-zA-Z]))+$/,\"\")}function yL(e){return e.replace(/\\\\ |\\\\space(?![a-zA-Z])/g,\"\")}var ze=class extends j{constructor(t){super([]),this._symbol=Lo(t),this._errorSymbol=this._symbol,this.addDependency(this._symbol)}setInputSpan(t){super.setInputSpan(t),this._errorSymbol=Lo(this.getInputString())}getInputSpan(){return this._inputSpan===void 0?yi(this._symbol,0,this._symbol.length):this._inputSpan}};function gL(e){switch(e){case\"default\":case\"trig\":case\"inverseTrig\":case\"trig2\":case\"never-broadcast\":return[T];case\"reducer\":return[se];case\"doubleReducer\":return[se,se];case\"parameterizedReducer\":return[se,T];case\"color\":return[T,T,T]}}function hL(e){switch(e){case\"default\":case\"trig\":case\"inverseTrig\":case\"trig2\":case\"doubleReducer\":case\"color\":case\"never-broadcast\":return!1;case\"reducer\":case\"parameterizedReducer\":return!0}}function bL(e,t,n){return e===\"reducer\"?1/0:t+n}function _(e,t,n){var m,g,d,y,h;n===void 0&&(n={});let r=(m=n.tag)!=null?m:\"default\",i=(g=n.argumentTypes)!=null?g:gL(r),s=n.defaultArguments?n.defaultArguments.length:0,o=i.length-s,a=bL(r,o,s),u=(d=n.allowDotCall)!=null?d:hL(r),c=(y=n.noPeel)!=null?y:!1,{defaultArguments:l,minArityExampleArgs:p,maxArityExampleArgs:f}=n;return{module:e,symbol:t,argumentTypes:i,defaultArguments:l,returnType:(h=n.returnType)!=null?h:T,tag:r,minArity:o,maxArity:a,allowDotCall:u,noPeel:c,minArityExampleArgs:p,maxArityExampleArgs:f}}function nb(e){if(!En(e))throw new Error(\"Programming Error: numeric constants should be rational\");return{type:1,valueType:T,value:e}}var Zu=nb(De(0,1)),Wu=nb(De(1,1)),Xd=nb(De(1,2));function Ha(e){let t;return e in bn&&(t=bn[e].tag),t===\"trig\"||t===\"trig2\"||t===\"inverseTrig\"?!0:e===\"angle\"||e===\"angles\"||e===\"directedangle\"||e===\"directedangles\"||e===\"rotate\"}var bn={sin:_(\"BuiltIn\",\"sin\",{tag:\"trig\"}),cos:_(\"BuiltIn\",\"cos\",{tag:\"trig\"}),tan:_(\"BuiltIn\",\"tan\",{tag:\"trig\"}),cot:_(\"BuiltIn\",\"cot\",{tag:\"trig\"}),sec:_(\"BuiltIn\",\"sec\",{tag:\"trig\"}),csc:_(\"BuiltIn\",\"csc\",{tag:\"trig\"}),arcsin:_(\"Math\",\"asin\",{tag:\"inverseTrig\"}),arccos:_(\"Math\",\"acos\",{tag:\"inverseTrig\"}),arctan:_(\"Math\",\"atan2\",{argumentTypes:[T,T],defaultArguments:[Wu],tag:\"inverseTrig\"}),arccot:_(\"BuiltIn\",\"acot\",{tag:\"inverseTrig\"}),arcsec:_(\"BuiltIn\",\"asec\",{tag:\"inverseTrig\"}),arccsc:_(\"BuiltIn\",\"acsc\",{tag:\"inverseTrig\"}),sinh:_(\"BuiltIn\",\"sinh\"),cosh:_(\"BuiltIn\",\"cosh\"),tanh:_(\"BuiltIn\",\"tanh\"),coth:_(\"BuiltIn\",\"coth\"),sech:_(\"BuiltIn\",\"sech\"),csch:_(\"BuiltIn\",\"csch\"),arcsinh:_(\"BuiltIn\",\"asinh\"),arccosh:_(\"BuiltIn\",\"acosh\"),arctanh:_(\"BuiltIn\",\"atanh\"),arccoth:_(\"BuiltIn\",\"acoth\"),arcsech:_(\"BuiltIn\",\"asech\"),arccsch:_(\"BuiltIn\",\"acsch\"),sqrt:_(\"Math\",\"sqrt\"),rtxsqpone:_(\"BuiltIn\",\"sqrtxsqp1\"),rtxsqmone:_(\"BuiltIn\",\"sqrtxsqm1\"),nthroot:_(\"BuiltIn\",\"nthroot\",{argumentTypes:[T,T]}),hypot:_(\"BuiltIn\",\"hypot\",{argumentTypes:[T,T]}),log:_(\"BuiltIn\",\"common_log\"),logbase:_(\"BuiltIn\",\"log_base\",{argumentTypes:[T,T]}),ln:_(\"BuiltIn\",\"log\"),exp:_(\"Math\",\"exp\"),floor:_(\"Math\",\"floor\"),ceil:_(\"Math\",\"ceil\"),round:_(\"Math\",\"round\"),abs:_(\"Math\",\"abs\"),sign:_(\"BuiltIn\",\"sign\"),mod:_(\"BuiltIn\",\"mod\",{argumentTypes:[T,T]}),nCr:_(\"BuiltIn\",\"nCr\",{argumentTypes:[T,T]}),nPr:_(\"BuiltIn\",\"nPr\",{argumentTypes:[T,T]}),factorial:_(\"BuiltIn\",\"factorial\"),polyGamma:_(\"BuiltIn\",\"polyGamma\",{argumentTypes:[T,T]}),lcm:_(\"BuiltIn\",\"listLCM\",{tag:\"reducer\"}),gcd:_(\"BuiltIn\",\"listGCD\",{tag:\"reducer\"}),distance:_(\"BuiltIn\",\"distance\",{argumentTypes:[R,R]}),polygon:_(\"BuiltIn\",\"polygon\",{tag:\"reducer\",argumentTypes:[Pt],returnType:Be}),area:_(\"BuiltIn\",\"polygonArea\",{argumentTypes:[Be]}),perimeter:_(\"BuiltIn\",\"polygonPerimeter\",{argumentTypes:[Be]}),pointDet:_(\"BuiltIn\",\"pointDet\",{argumentTypes:[R,R]}),pointDot:_(\"BuiltIn\",\"pointDot\",{argumentTypes:[R,R]}),pointPerp:_(\"BuiltIn\",\"pointPerp\",{argumentTypes:[R],returnType:R}),segment:_(\"BuiltIn\",\"segment\",{argumentTypes:[R,R],returnType:Ie}),line:_(\"BuiltIn\",\"line\",{argumentTypes:[R,R],returnType:fe}),ray:_(\"BuiltIn\",\"ray\",{argumentTypes:[R,R],returnType:Le}),vector:_(\"BuiltIn\",\"vector\",{argumentTypes:[R,R],returnType:he}),vectorThreeD:_(\"BuiltIn\",\"vectorThreeD\",{argumentTypes:[V,V],returnType:Se}),mathVector:_(\"BuiltIn\",\"mathVector\",{argumentTypes:[R,R],returnType:he}),mathVectorThreeD:_(\"BuiltIn\",\"mathVectorThreeD\",{argumentTypes:[V,V],returnType:Se}),vectorDisplacementAsPoint:_(\"BuiltIn\",\"vectorDisplacementAsPoint\",{argumentTypes:[he],returnType:R}),vectorThreeDDisplacementAsPoint:_(\"BuiltIn\",\"vectorThreeDDisplacementAsPoint\",{argumentTypes:[Se],returnType:V}),basePointFromVector:_(\"BuiltIn\",\"basePointFromVector\",{argumentTypes:[he],returnType:R}),basePointFromVectorThreeD:_(\"BuiltIn\",\"basePointFromVectorThreeD\",{argumentTypes:[Se],returnType:V}),circle:_(\"BuiltIn\",\"circle\",{argumentTypes:[R,T],returnType:pe}),center:_(\"BuiltIn\",\"center\",{argumentTypes:[pe],returnType:R,allowDotCall:!0}),radius:_(\"BuiltIn\",\"radius\",{argumentTypes:[pe],returnType:T,allowDotCall:!0}),arc:_(\"BuiltIn\",\"arc\",{argumentTypes:[R,R,R],returnType:ce}),arcCenter:_(\"BuiltIn\",\"arcCenter\",{argumentTypes:[ce],returnType:R}),arcOmega:_(\"BuiltIn\",\"arcOmega\",{argumentTypes:[ce],returnType:T}),undirectedAngleMarker:_(\"BuiltIn\",\"undirectedAngleMarker\",{argumentTypes:[Ae],returnType:Ge}),directedAngleMarker:_(\"BuiltIn\",\"directedAngleMarker\",{argumentTypes:[R,T,T,T],returnType:Ae}),directedCoterminalAngle:_(\"BuiltIn\",\"directedCoterminalAngle\",{argumentTypes:[Ae],returnType:Ae}),undirectedCoterminalAngle:_(\"BuiltIn\",\"undirectedCoterminalAngle\",{argumentTypes:[Ge],returnType:Ge}),supplement:_(\"BuiltIn\",\"supplementAngle\",{argumentTypes:[Ae],returnType:Ae}),directedAngleMarkerRawDelta:_(\"BuiltIn\",\"angleMarkerRawDelta\",{argumentTypes:[Ae],returnType:T}),undirectedAngleMarkerRawDelta:_(\"BuiltIn\",\"angleMarkerRawDelta\",{argumentTypes:[Ge],returnType:T}),directedAngleMarkerMultiplier:_(\"BuiltIn\",\"angleMarkerMultiplier\",{argumentTypes:[Ae],returnType:T}),undirectedAngleMarkerMultiplier:_(\"BuiltIn\",\"angleMarkerMultiplier\",{argumentTypes:[Ge],returnType:T}),polygonInteriorUndirectedAngles:_(\"BuiltIn\",\"polygonInteriorUndirectedAngles\",{argumentTypes:[Be,T],returnType:gn,allowDotCall:!0,tag:\"never-broadcast\"}),polygonInteriorDirectedAngles:_(\"BuiltIn\",\"polygonInteriorDirectedAngles\",{argumentTypes:[Be,T],returnType:hn,allowDotCall:!0,tag:\"never-broadcast\"}),vertices:_(\"BuiltIn\",\"vertices\",{argumentTypes:[Be],returnType:Pt,allowDotCall:!0,tag:\"never-broadcast\"}),segments:_(\"BuiltIn\",\"polygonEdges\",{argumentTypes:[Be],returnType:Tn,allowDotCall:!0,tag:\"never-broadcast\"}),scaleTangentSegment:_(\"BuiltIn\",\"scaleTangentSegment\",{argumentTypes:[Ie,T],returnType:Ie}),scaleTangentLine:_(\"BuiltIn\",\"scaleTangentLine\",{argumentTypes:[fe,T],returnType:fe}),scaleTangentRay:_(\"BuiltIn\",\"scaleTangentRay\",{argumentTypes:[Le,T],returnType:Le}),scaleTangentCircle:_(\"BuiltIn\",\"scaleTangentCircle\",{argumentTypes:[pe,T],returnType:pe}),scaleTangentArc:_(\"BuiltIn\",\"scaleTangentArc\",{argumentTypes:[ce,T],returnType:pe}),scaleTangentDirectedAngleMarker:_(\"BuiltIn\",\"scaleTangentAngle\",{argumentTypes:[Ae,T],returnType:Ae}),scaleTangentUndirectedAngleMarker:_(\"BuiltIn\",\"scaleTangentAngle\",{argumentTypes:[Ge,T],returnType:Ge}),addTangentSegment:_(\"BuiltIn\",\"addTangentSegment\",{argumentTypes:[Ie,Ie],returnType:Ie}),addTangentSegmentThreeD:_(\"BuiltIn\",\"addTangentSegmentThreeD\",{argumentTypes:[Nt,Nt],returnType:Nt}),addTangentLine:_(\"BuiltIn\",\"addTangentLine\",{argumentTypes:[fe,fe],returnType:fe}),addTangentRay:_(\"BuiltIn\",\"addTangentRay\",{argumentTypes:[Le,Le],returnType:Le}),addTangentCircle:_(\"BuiltIn\",\"addTangentCircle\",{argumentTypes:[pe,pe],returnType:pe}),addTangentArc:_(\"BuiltIn\",\"addTangentArc\",{argumentTypes:[ce,ce],returnType:ce}),addTangentDirectedAngleMarker:_(\"BuiltIn\",\"addTangentAngle\",{argumentTypes:[Ae,Ae],returnType:Ae}),addTangentUndirectedAngleMarker:_(\"BuiltIn\",\"addTangentAngle\",{argumentTypes:[Ge,Ge],returnType:Ge}),segmentGlider:_(\"BuiltIn\",\"segmentGlider\",{argumentTypes:[Ie,T],returnType:R}),segmentThreeDGlider:_(\"BuiltIn\",\"segmentThreeDGlider\",{argumentTypes:[Nt,T],returnType:V}),lineGlider:_(\"BuiltIn\",\"lineGlider\",{argumentTypes:[fe,T],returnType:R}),rayGlider:_(\"BuiltIn\",\"rayGlider\",{argumentTypes:[Le,T],returnType:R}),circleGlider:_(\"BuiltIn\",\"circleGlider\",{argumentTypes:[pe,T],returnType:R}),arcGlider:_(\"BuiltIn\",\"arcGlider\",{argumentTypes:[ce,T],returnType:R}),polygonGlider:_(\"BuiltIn\",\"polygonGlider\",{argumentTypes:[Be,T],returnType:R}),chooseNonIncidentPoint:_(\"BuiltIn\",\"chooseNonIncidentPoint\",{argumentTypes:[R,R,R],returnType:R}),circleCircleIntersection:_(\"BuiltIn\",\"circleCircleIntersection\",{argumentTypes:[pe,pe,T],returnType:R}),circleArcIntersection:_(\"BuiltIn\",\"circleArcIntersection\",{argumentTypes:[pe,ce,T],returnType:R}),circleLineIntersection:_(\"BuiltIn\",\"circleLineIntersection\",{argumentTypes:[pe,fe,T],returnType:R}),arcCircleIntersection:_(\"BuiltIn\",\"arcCircleIntersection\",{argumentTypes:[ce,pe,T],returnType:R}),arcArcIntersection:_(\"BuiltIn\",\"arcArcIntersection\",{argumentTypes:[ce,ce,T],returnType:R}),arcLineIntersection:_(\"BuiltIn\",\"arcLineIntersection\",{argumentTypes:[ce,fe,T],returnType:R}),lineCircleIntersection:_(\"BuiltIn\",\"lineCircleIntersection\",{argumentTypes:[fe,pe,T],returnType:R}),lineArcIntersection:_(\"BuiltIn\",\"lineArcIntersection\",{argumentTypes:[fe,ce,T],returnType:R}),lineLineIntersection:_(\"BuiltIn\",\"lineLineIntersection\",{argumentTypes:[fe,fe,T],returnType:R}),lineFromSegment:_(\"BuiltIn\",\"identity\",{argumentTypes:[Ie],returnType:fe}),lineFromRay:_(\"BuiltIn\",\"identity\",{argumentTypes:[Le],returnType:fe}),parallel:_(\"BuiltIn\",\"parallel\",{argumentTypes:[fe,R],returnType:fe}),perpendicular:_(\"BuiltIn\",\"perpendicular\",{argumentTypes:[fe,R],returnType:fe}),translation:_(\"BuiltIn\",\"translation\",{argumentTypes:[R],returnType:Ue}),dilation:_(\"BuiltIn\",\"dilation\",{argumentTypes:[R,T],returnType:Ue}),rotation:_(\"BuiltIn\",\"rotation\",{tag:\"trig2\",argumentTypes:[R,T],returnType:Ue}),reflection:_(\"BuiltIn\",\"reflection\",{argumentTypes:[fe],returnType:Ue}),compose:_(\"BuiltIn\",\"composeTransformation\",{argumentTypes:[Ue,Ue],returnType:Ue}),inverse:_(\"BuiltIn\",\"invertTransformation\",{argumentTypes:[Ue],returnType:Ue}),transformPoint:_(\"BuiltIn\",\"transformPoint\",{argumentTypes:[Ue,R],returnType:R}),transformSegment:_(\"BuiltIn\",\"transformSegment\",{argumentTypes:[Ue,Ie],returnType:Ie}),transformLine:_(\"BuiltIn\",\"transformLine\",{argumentTypes:[Ue,fe],returnType:fe}),transformRay:_(\"BuiltIn\",\"transformRay\",{argumentTypes:[Ue,Le],returnType:Le}),transformVector:_(\"BuiltIn\",\"transformVector\",{argumentTypes:[Ue,he],returnType:he}),transformCircle:_(\"BuiltIn\",\"transformCircle\",{argumentTypes:[Ue,pe],returnType:pe}),transformArc:_(\"BuiltIn\",\"transformArc\",{argumentTypes:[Ue,ce],returnType:ce}),transformPolygon:_(\"BuiltIn\",\"transformPolygon\",{argumentTypes:[Ue,Be],returnType:Be}),transformAngleMarker:_(\"BuiltIn\",\"transformAngleMarker\",{argumentTypes:[Ue,Ge],returnType:Ge}),transformDirectedAngleMarker:_(\"BuiltIn\",\"transformAngleMarker\",{argumentTypes:[Ue,Ae],returnType:Ae}),distanceThreeD:_(\"BuiltIn\",\"distanceThreeD\",{argumentTypes:[V,V]}),segmentThreeD:_(\"BuiltIn\",\"segmentThreeD\",{argumentTypes:[V,V],returnType:Nt}),triangle:_(\"BuiltIn\",\"triangle\",{argumentTypes:[V,V,V],returnType:In}),sphere:_(\"BuiltIn\",\"sphere\",{argumentTypes:[V,T],returnType:Nn,minArityExampleArgs:\"((0,0,0), 1)\",maxArityExampleArgs:\"((0,0,0), 1)\"}),mean:_(\"BuiltIn\",\"mean\",{tag:\"reducer\"}),total:_(\"BuiltIn\",\"total\",{tag:\"reducer\"}),stdev:_(\"BuiltIn\",\"stdev\",{tag:\"reducer\"}),stdevp:_(\"BuiltIn\",\"stdevp\",{tag:\"reducer\"}),mad:_(\"BuiltIn\",\"mad\",{tag:\"reducer\"}),count:_(\"BuiltIn\",\"listLength\",{tag:\"reducer\",argumentTypes:[sn],noPeel:!0}),min:_(\"BuiltIn\",\"listMin\",{tag:\"reducer\"}),max:_(\"BuiltIn\",\"listMax\",{tag:\"reducer\"}),argmin:_(\"BuiltIn\",\"argMin\",{tag:\"reducer\",noPeel:!0}),argmax:_(\"BuiltIn\",\"argMax\",{tag:\"reducer\",noPeel:!0}),median:_(\"BuiltIn\",\"median\",{tag:\"reducer\"}),var:_(\"BuiltIn\",\"variance\",{tag:\"reducer\"}),varp:_(\"BuiltIn\",\"varp\",{tag:\"reducer\"}),cov:_(\"BuiltIn\",\"cov\",{tag:\"doubleReducer\"}),covp:_(\"BuiltIn\",\"covp\",{tag:\"doubleReducer\"}),corr:_(\"BuiltIn\",\"corr\",{tag:\"doubleReducer\"}),spearman:_(\"BuiltIn\",\"spearman\",{tag:\"doubleReducer\"}),quantile:_(\"BuiltIn\",\"quantile\",{tag:\"parameterizedReducer\"}),quartile:_(\"BuiltIn\",\"quartile\",{tag:\"parameterizedReducer\"}),upperQuantileIndex:_(\"BuiltIn\",\"upperQuantileIndex\",{tag:\"parameterizedReducer\"}),lowerQuantileIndex:_(\"BuiltIn\",\"lowerQuantileIndex\",{tag:\"parameterizedReducer\"}),quartileIndex:_(\"BuiltIn\",\"quartileIndex\",{tag:\"parameterizedReducer\"}),upperQuartileIndex:_(\"BuiltIn\",\"upperQuartileIndex\",{tag:\"parameterizedReducer\"}),lowerQuartileIndex:_(\"BuiltIn\",\"lowerQuartileIndex\",{tag:\"parameterizedReducer\"}),normalcdf:_(\"BuiltIn\",\"normalcdf\",{argumentTypes:[T,T,T,T],defaultArguments:[Zu,Wu]}),normalpdf:_(\"BuiltIn\",\"normalpdf\",{argumentTypes:[T,T,T],defaultArguments:[Zu,Wu]}),binomcdf:_(\"BuiltIn\",\"binomcdf\",{argumentTypes:[T,T,T,T],defaultArguments:[Xd]}),binompdf:_(\"BuiltIn\",\"binompdf\",{argumentTypes:[T,T,T],defaultArguments:[Xd]}),poissoncdf:_(\"BuiltIn\",\"poissoncdf\",{argumentTypes:[T,T,T]}),poissonpdf:_(\"BuiltIn\",\"poissonpdf\",{argumentTypes:[T,T,T]}),uniformcdf:_(\"BuiltIn\",\"uniformcdf\",{argumentTypes:[T,T,T,T],defaultArguments:[Zu,Wu]}),uniformpdf:_(\"BuiltIn\",\"uniformpdf\",{argumentTypes:[T,T,T],defaultArguments:[Zu,Wu]}),invT:_(\"BuiltIn\",\"invT\",{argumentTypes:[T,T]}),invPoisson:_(\"BuiltIn\",\"invPoisson\",{argumentTypes:[T,T]}),invBinom:_(\"BuiltIn\",\"invBinom\",{argumentTypes:[T,T,T]}),invUniform:_(\"BuiltIn\",\"invUniform\",{argumentTypes:[T,T,T]}),tpdf:_(\"BuiltIn\",\"tpdf\",{argumentTypes:[T,T]}),tcdf:_(\"BuiltIn\",\"tcdf\",{argumentTypes:[T,T,T]}),erf:_(\"BuiltIn\",\"erf\"),invNorm:_(\"BuiltIn\",\"invNorm\"),tscore:_(\"BuiltIn\",\"tscore\",{tag:\"parameterizedReducer\",defaultArguments:[Zu]}),normalSample:_(\"BuiltIn\",\"normalSample\",{argumentTypes:[ot,T,T]}),uniformSample:_(\"BuiltIn\",\"uniformSample\",{argumentTypes:[ot,T,T]}),tSample:_(\"BuiltIn\",\"tSample\",{argumentTypes:[ot,T]}),poissonSample:_(\"BuiltIn\",\"poissonSample\",{argumentTypes:[ot,T]}),binomSample:_(\"BuiltIn\",\"binomSample\",{argumentTypes:[ot,T,T]}),rgb:_(\"BuiltIn\",\"rgb\",{returnType:Ut,tag:\"color\"}),hsv:_(\"BuiltIn\",\"hsv\",{returnType:Ut,tag:\"color\"}),tone:_(\"BuiltIn\",\"tone\",{argumentTypes:[T,T],returnType:mn,defaultArguments:[Xd],minArityExampleArgs:\"(440)\",maxArityExampleArgs:\"(440, 0.5)\"}),validateRangeLength:_(\"BuiltIn\",\"validateRangeLength\",{returnType:T,argumentTypes:[se,se,T,T],tag:\"never-broadcast\",noPeel:!0}),validateSampleCount:_(\"BuiltIn\",\"validateSampleCount\",{returnType:T,argumentTypes:[T]}),select:_(\"BuiltIn\",\"select\",{argumentTypes:[sn,Ln],returnType:e=>e[0],tag:\"never-broadcast\",noPeel:!0}),shuffle:_(\"BuiltIn\",\"shuffle\",{argumentTypes:[ot,sn],returnType:e=>e[1],tag:\"never-broadcast\"}),sortPerm:_(\"BuiltIn\",\"sortPerm\",{argumentTypes:[se],returnType:se,tag:\"never-broadcast\",noPeel:!0}),elementsAt:_(\"BuiltIn\",\"elementsAt\",{argumentTypes:[sn,se],returnType:e=>e[0],tag:\"never-broadcast\",noPeel:!0}),uniquePerm:_(\"BuiltIn\",\"uniquePerm\",{argumentTypes:[sn],returnType:se,tag:\"never-broadcast\",noPeel:!0}),restriction:_(\"BuiltIn\",\"restriction\",{argumentTypes:[ge],returnType:Vt}),restrictionToBoolean:_(\"BuiltIn\",\"restrictionToBoolean\",{argumentTypes:[Vt],returnType:ge})};function qe(e,t){var m,g,d,y;let n=t==null?void 0:t.defaultArguments,r=1/0,i=0,s=(m=n==null?void 0:n.length)!=null?m:0;t!=null&&t.noBroadcast||(e=e.map(ti));for(let h of e){let b=Ga(h)-s;b<r&&(r=b);let x=Cp(h);x>i&&(i=x)}let o=(g=t==null?void 0:t.fallthroughUnlessDistribution)!=null?g:!1,a=(d=t==null?void 0:t.allowDotCall)!=null?d:!1,u=(y=t==null?void 0:t.isSeeded)!=null?y:!1,c=t==null?void 0:t.minArityExampleArgs,l=t==null?void 0:t.maxArityExampleArgs,p=t==null?void 0:t.dotMinArityExampleArgs,f=t==null?void 0:t.dotMaxArityExampleArgs;return{minArity:r,argumentTypes:e,maxArity:i,defaultArguments:n,fallthroughUnlessDistribution:o,minArityExampleArgs:c,maxArityExampleArgs:l,dotMinArityExampleArgs:p,dotMaxArityExampleArgs:f,allowDotCall:a,isSeeded:u}}function so(){return qe([{type:\"variadic\",initial:[],rest:Ht}],{})}var Yd={meta:\"union\",types:[Ie,pe,fe,Le,ce]},Kh={meta:\"union\",types:[Ie,fe,Le,he]},rl={meta:\"union\",types:[R,Ie,pe,fe,Le,he,ce,Be,Ge,Ae,Ue]},eb={meta:\"union\",types:[...Zi.filter(e=>e!==wn),St]},oo={midpoint:qe([[R,R],[V,V],[Ie],[Nt]],{allowDotCall:!0}),segment:qe([[R,R],[V,V]]),vector:qe([[R,R],[V,V]]),distance:qe([[R,R],[V,V]]),glider:qe([[{meta:\"union\",types:[Ie,pe,fe,Le,ce,Be]},T]]),circle:qe([[R,Ie],[R,R],[R,T]],{}),center:qe([[pe],[ce]],{allowDotCall:!0}),radius:qe([[pe],[ce]],{allowDotCall:!0}),intersection:qe([[Yd,Yd]]),strictintersection:qe([[Yd,Yd]]),parallel:qe([[Kh,R]]),perpendicular:qe([[Kh,R]]),start:qe([[he],[Se]],{allowDotCall:!0}),end:qe([[he],[Se]],{allowDotCall:!0}),length:qe([[{meta:\"union\",types:Zi}],ti([Nt]),ti([Se]),ti([Ie]),ti([ce]),{type:\"variadic\",initial:[Ht],rest:Ht}],{allowDotCall:!0,noBroadcast:!0}),translate:qe([[rl,he],[rl,R,R]]),dilate:qe([[rl,R,T]]),rotate:qe([[rl,R,T]]),reflect:qe([[rl,Kh]]),apply:qe([[Ue,rl]]),points:qe([]),lines:qe([]),circles:qe([]),arcs:qe([]),polygons:qe([]),rays:qe([]),vectors:qe([]),angle:qe([[R,R,R]]),directedangle:qe([[R,R,R]]),angles:qe([[Be]],{allowDotCall:!0}),directedangles:qe([[Be]],{allowDotCall:!0}),coterminal:qe([[Ge],[Ae]]),round:qe([[T],[T,T]]),sort:qe([[se],[{meta:\"union\",types:Zi},se]],{minArityExampleArgs:\"([3,2,1])\",maxArityExampleArgs:\"([1,2,3],[3,2,1])\",dotMaxArityExampleArgs:\"([3,4])\",allowDotCall:!0}),shuffle:qe([[ot,{meta:\"union\",types:Zi}],[ot,{meta:\"union\",types:Zi},T]],{minArityExampleArgs:\"([1,2,3])\",maxArityExampleArgs:\"([1,2,3],2)\",dotMaxArityExampleArgs:\"(2)\",allowDotCall:!0,isSeeded:!0,noBroadcast:!0}),join:qe([{type:\"variadic\",initial:[Ht,Ht],rest:Ht}],{minArityExampleArgs:\"([1,2],[3,4])\",dotMinArityExampleArgs:\"([3,4])\",allowDotCall:!0}),unique:qe([[{meta:\"union\",types:Zi.filter(e=>e!==wn&&e!==sn)}]],{minArityExampleArgs:\"([1,2,3])\",maxArityExampleArgs:\"([1,2,3])\",allowDotCall:!0}),normaldist:qe([[T,T]],{defaultArguments:[Zu,Wu]}),tdist:qe([[T]]),binomialdist:qe([[T,T]],{defaultArguments:[Xd]}),poissondist:qe([[T]]),uniformdist:qe([[T,T]],{defaultArguments:[Zu,Wu]}),pdf:qe([[St,T]],{allowDotCall:!0}),cdf:qe([[St,T],[St,T,T]],{allowDotCall:!0}),median:qe([[St]],{fallthroughUnlessDistribution:!0,allowDotCall:!0}),stdev:qe([[St]],{fallthroughUnlessDistribution:!0,allowDotCall:!0}),var:qe([[St]],{fallthroughUnlessDistribution:!0,allowDotCall:!0}),quantile:qe([[St,T]],{fallthroughUnlessDistribution:!0,allowDotCall:!0,minArityExampleArgs:\"([1,2,3], 1)\",maxArityExampleArgs:\"([1,2,3], 1)\",dotMinArityExampleArgs:\"(x)\",dotMaxArityExampleArgs:\"(x)\"}),random:qe([[ot],[ot,T],[ot,T,T],[ot,eb],[ot,eb,T],[ot,eb,T,T]],{allowDotCall:!0,isSeeded:!0,noBroadcast:!0}),polygon:qe([{type:\"variadic\",initial:[],rest:R},[Pt],[se,se],[T,se],[se,T]]),total:qe([T,R,V].map(tb),{allowDotCall:!0}),mean:qe([[St],...[T,R,V].map(tb)],{allowDotCall:!0}),histogram:so(),dotplot:so(),boxplot:so(),ttest:so(),ittest:so(),stats:so(),det:so(),inv:so(),transpose:so(),rref:so(),trace:so()};function sl(e){return!!oo[e]}function il(e){return!!bn[e]}function Vp(e){let t=sl(e)?oo[e]:void 0;if(!t&&!il(e))return;let n=[];return t&&(n=[...t.argumentTypes]),il(e)&&(!t||t.fallthroughUnlessDistribution)&&n.push(...rb(e)),n}function tb(e){return ti({type:\"variadic\",initial:[e],rest:e})}function rb(e){let t=[],n=bn[e];switch(n.tag){case\"reducer\":{if(Array.isArray(n.argumentTypes)&&typeof n.argumentTypes[0]==\"number\"&&W(n.argumentTypes[0])){let r=n.argumentTypes[0],i=ke(r);t.push(tb(i))}else throw new Error(`Programming error: declared argumentTypes for built-in function ${e} is not consistent with \"reducer\"`);break}case\"parameterizedReducer\":{t.push(n.argumentTypes),Array.isArray(n.argumentTypes)&&n.argumentTypes.length===2&&t.push([n.argumentTypes[0],Hu(n.argumentTypes[1])]);break}case\"doubleReducer\":case\"never-broadcast\":{t.push(n.argumentTypes);break}default:{t.push(ti(n.argumentTypes));break}}return t}var cn=class extends j{constructor(t,n){super(n,{skipRegisterDependencies:!0}),typeof t==\"string\"&&(t=new ze(t)),this._identifier=t,this._symbol=t._symbol,this._errorSymbol=t._errorSymbol===\"logbase\"?\"log\":t._errorSymbol,this.registerDependencies()}registerDependencies(){this.addDependency(this._symbol),super.registerDependencies(),Ha(this._symbol)&&this.addDependency(\"trigAngleMultiplier\")}};var Qi=class extends j{};var Zd={pi:new Zt(Math.PI),tau:new Zt(2*Math.PI),e:new Zt(Math.E),trigAngleMultiplier:new Zt(De(1,1)),infty:new Zt(1/0),identityTransformation:new cn(\"translation\",[new Qi([new Zt(0),new Zt(0)])])};var Wd=class extends Tt{constructor(){super(...arguments);this.isFunction=!0}},Fo,Ke={};for(Fo in Zd)Zd.hasOwnProperty(Fo)&&(Ke[Fo]=Zd[Fo]);for(Fo in bn)bn.hasOwnProperty(Fo)&&(Ke[Fo]=new Wd);for(Fo in oo)oo.hasOwnProperty(Fo)&&(Ke[Fo]=new Wd);function PL(e){var t={};return e.additionalFunctions&&e.additionalFunctions.indexOf(\"sqrt\")!==-1&&(t.sqrt=Ke.sqrt),e.width&&(t.width=e.width),e.height&&(t.height=e.height),t}var ib={};No(ib,{getFrame:()=>TL});var Pv=[\"pi\",\"e\",\"trigAngleMultiplier\"],Tv=[\"sqrt\",\"nthroot\",\"abs\",\"ln\",\"sin\",\"cos\",\"tan\",\"log\",\"arcsin\",\"arccos\",\"arctan\",\"mean\",\"round\",\"stdev\",\"stdevp\",\"nCr\",\"nPr\",\"exp\",\"factorial\"];function Iv(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(!t.hasOwnProperty(r))throw new Error(\"Programming Error: key '\"+r+`' does not exist in table. Must be one of:\n`+Object.keys(t).join(`\n`))}}Iv(Pv,Ke);Iv(Tv,Ke);function TL(e){var t={};return Pv.forEach(function(n){t[n]=Ke[n]}),Tv.forEach(function(n){e.replaceRoundWithReciprocal&&n===\"round\"||(t[n]=Ke[n])}),e.trigAngleMultiplier&&(t.trigAngleMultiplier=e.trigAngleMultiplier),e.width&&(t.width=e.width),e.height&&(t.height=e.height),t}var sb={};No(sb,{getFrame:()=>IL});var Ev=[\"pi\",\"e\",\"trigAngleMultiplier\"],Mv=[\"sqrt\",\"nthroot\",\"abs\",\"ln\",\"sin\",\"cos\",\"tan\",\"log\",\"arcsin\",\"arccos\",\"arctan\",\"exp\",\"factorial\"];function vv(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(!t.hasOwnProperty(r))throw new Error(\"Programming Error: key '\"+r+`' does not exist in table. Must be one of:\n`+Object.keys(t).join(`\n`))}}vv(Ev,Ke);vv(Mv,Ke);function IL(e){var t={};return Ev.forEach(function(n){t[n]=Ke[n]}),Mv.forEach(function(n){t[n]=Ke[n]}),e.trigAngleMultiplier&&(t.trigAngleMultiplier=e.trigAngleMultiplier),e.width&&(t.width=e.width),e.height&&(t.height=e.height),t}var Bp={};No(Bp,{getFrame:()=>DL});var Dv={segment:!0,line:!0,ray:!0,circle:!0,arc:!0,vector:!0,glider:!0,parallel:!0,perpendicular:!0,center:!0,radius:!0,area:!0,perimeter:!0,start:!0,end:!0,angles:!0,angle:!0,directedangles:!0,directedangle:!0,coterminal:!0,supplement:!0,vertices:!0,segments:!0,intersection:!0,translate:!0,dilate:!0,rotate:!0,reflect:!0,construction:!0,points:!0,lines:!0,circles:!0,arcs:!0,polygons:!0,rays:!0};var Sv={segment:!0,triangle:!0,vector:!0,start:!0,end:!0,sphere:!0};var Ov=[\"csc\",\"sec\",\"cot\",\"arccsc\",\"arcsec\",\"arccot\",\"csch\",\"sech\",\"coth\",\"arccsch\",\"arcsech\",\"arccoth\",\"mad\",\"cov\",\"covp\",\"distance\",\"midpoint\"],Cv=[\"histogram\",\"dotplot\",\"boxplot\"],EL=[...Cv,\"polygon\"],Rv=[\"erf\",\"ttest\",\"tscore\",\"ittest\",\"normaldist\",\"tdist\",\"poissondist\",\"binomialdist\",\"pdf\",\"cdf\",\"random\",...Cv],ML=[\"distance\",\"midpoint\"],vL=[\"det\",\"inv\",\"transpose\",\"rref\",\"trace\"],Nv=Object.keys(Dv).filter(function(e){return e!==\"construction\"});function ob(e,t){for(var n=0;n<e.length;n++){var r=e[n];if(!t.hasOwnProperty(r))throw new Error(\"Programming Error: key '\"+r+`' does not exist in table. Must be one of:\n`+Object.keys(t).join(`\n`))}}ob(Ov,Ke);ob(Rv,Ke);ob(Nv,Ke);function DL(e){var t={},n;for(n in Ke){if(!Ke.hasOwnProperty(n)||e.restrictedFunctions===!0&&Ov.indexOf(n)!==-1&&!(e.forceEnableGeometryFunctions===!0&&ML.indexOf(n)!==-1)||e.distributions===!1&&Rv.indexOf(n)!==-1)continue;let r=Nv.indexOf(n)!==-1,i=n in Sv;if(r&&i){if(!(e.isGeometryCalculator||e.is3DCalculator))continue}else if(r){if(!e.isGeometryCalculator)continue}else if(i){if(!e.is3DCalculator)continue}else if(EL.indexOf(n)!==-1&&e.is3DCalculator)continue;vL.indexOf(n)===-1&&(t[n]=Ke[n])}return e.trigAngleMultiplier&&(t.trigAngleMultiplier=e.trigAngleMultiplier),e.globalRandomSeed&&(t.globalRandomSeed=e.globalRandomSeed),e.initialEvaluation&&(t.initialEvaluation=e.initialEvaluation),e.globalEventCount&&(t.globalEventCount=e.globalEventCount),e.width&&(t.width=e.width),e.height&&(t.height=e.height),t}var ZA={};No(ZA,{parse:()=>Vs,setInput:()=>UC});function Av(e){let t=function(...i){return new e(...i)};t.prototype=e.prototype;var n=Object.getOwnPropertyNames(e);for(var r of n){let i=e[r];if(typeof i==\"function\")try{t[r]=i}catch(s){}}return t}var C=class extends Tt{constructor(n){super();this.isError=!0;this._msg=n,this.blocksExport=!0}evaluateOnce(n){return this._msg}getError(){return this._msg}setDependencies(n){return this.addDependencies(n),this}setActionValue(n){this.actionValue=n}allowExport(){return this.blocksExport=!1,this}setCursorContext(n){this.cursorContext=n}getCursorContext(){return this.cursorContext}};var Jd=class extends Zt{constructor(){super(...arguments);this.is_mixed_number=!0}};var Qd=class extends ze{};function SL(e){for(var t=1/0,n=0;n<e.length;n++)(e[n].isList||e[n].isBroadcast)&&(t=Math.min(t,e[n].length));return t}var Gp=class Gp extends j{constructor(n){super(n);this.isList=!0;this.length=n.length}asValue(){for(var n=[],r=0;r<this.args.length;r++)n.push(this.args[r].asValue());return n}asCompilerValue(){for(var n=[],r=0;r<this.args.length;r++)n.push(this.args[r].asCompilerValue());return n}getEvaluationInfo(){if(this.args.every(function(n){return n.isConstant}))return[{val:this.args.map(function(n){return n.asValue()})}]}};Gp.eachArgs=function(n,r){var i=SL(n);if(!isFinite(i)){r(n);return}for(var s=0;s<i;s++){for(var o=[],a=0;a<n.length;a++)o.push(n[a].isList||W(n[a].valueType)?n[a].elementAt(s):n[a]);r(o,s)}},Gp.wrap=function(n){return n.isList||W(n.valueType)?n:new Gp([n])};var Vo=Gp;var ol=class extends j{constructor(t){super(t),this.beginning=t[0],this.end=t[1]}isHalfEmpty(){return this.end&&this.end.args&&this.end.args.length===0}};var Ua=class extends j{constructor(t){super(t),this.list=t[0],this.index=t[1]}};var xi=class extends j{registerDependencies(){if(super.registerDependencies(),this.args[1].type===\"Identifier\"){var t=this.args[1]._symbol;Ha(t)&&this.addDependency(\"trigAngleMultiplier\")}}};var ju=class extends j{constructor(n){var r=n.map(function(i){return new ze(\"\\\\idref_{\"+i+\"}\")});super(r);this.constructedObjectIds=n;this._exports.push(\"construction\")}};var Kd=class extends Qi{constructor(n,r,i){super(n);this.isTypedConstant=!0;this.isMovablePoint=!0;this.moveStrategy=r,this.defaultDragMode=i,this.valueType=R}asValue(){return[+this.args[0].asValue(),+this.args[1].asValue()]}asTypedValue(){return{valueType:this.valueType,value:this.asValue()}}asCompilerValue(){return[this.args[0].asCompilerValue(),this.args[1].asCompilerValue()]}};var Ju=class extends j{constructor(t,n){super(n),this.symbol=t}};var qa=class extends j{};var al=class extends j{};var ni=class extends j{};var Rr={\"<\":{inclusive:!1,direction:-1},\"!=\":{inclusive:!1,direction:0},\">\":{inclusive:!1,direction:1},\"<=\":{inclusive:!0,direction:-1},\"=\":{inclusive:!0,direction:0},\">=\":{inclusive:!0,direction:1}};function Qu(e,t){switch(t){case-1:return e?\"<=\":\"<\";case 0:return e?\"=\":\"!=\";case 1:return e?\">=\":\">\";default:throw\"Programming error. Comparators must have a direction of -1, 0, or 1\"}}var Ns=class e extends j{constructor(n,r){super(r);this.operator=n;this._difference=Rr[this.operator].direction===-1?new ni([r[1],r[0]]):new ni([r[0],r[1]])}static create(n){class r extends e{constructor(s){super(n,s)}}return r}asComparator(){return this}isInequality(){return Rr[this.operator].direction!==0}};var qr={\"<\":Ns.create(\"<\"),\">\":Ns.create(\">\"),\"<=\":Ns.create(\"<=\"),\">=\":Ns.create(\">=\"),\"=\":Ns.create(\"=\")};var hr=class extends j{};var nn={};No(nn,{actionMergeFreeVariable:()=>tx,addArgumentsToDefinition:()=>rf,addTypeError:()=>bb,adjacentMixedNumber:()=>hm,adjacentNumbers:()=>vx,andTypeError:()=>Db,ansUndefined:()=>JP,assignmentsUnsupported:()=>lf,badEqualitySlice:()=>Bo,badForInputListDependency:()=>nT,badForIntervalDependency:()=>rT,badImplicitCall:()=>gm,badIntegralBoundDependency:()=>XP,badLogExponent:()=>$x,badProductBoundDependency:()=>BP,badSampleSize:()=>WP,badSumBoundDependency:()=>VP,badSymbolContext:()=>uf,badTrigExponent:()=>qx,badTupleDimensions:()=>Mx,baseCaseCannotDependOnRecursiveParameter:()=>pb,baseCaseTooComplicatedUsePiecewise:()=>Hp,baseCasesMustAllHaveSameReturnType:()=>zp,binaryOperatorMissingOperand:()=>tf,blankExpression:()=>nf,boxplotBreadthInvalid:()=>fx,boxplotOffsetInvalid:()=>px,cannotAssignColor:()=>yP,cannotRedefine:()=>fl,cannotRestrict:()=>mP,cannotRestrictWithEquality:()=>gP,cannotSubscript:()=>Jx,cantCombineSphericalAndCylindrical:()=>vm,cdfMaxInvalid:()=>lP,cdfMaxLessThanMin:()=>pP,cdfMinInvalid:()=>cP,cdfRequiresArguments:()=>mx,cdfTooManyArguments:()=>yx,clickableObjectAlreadyAssigned:()=>VL,clickableObjectAssignmentNotDefined:()=>FL,clickableObjectAssignmentNotIdentifier:()=>BL,clickableObjectInvalidExpression:()=>GL,colonMissingCondition:()=>Zx,colorArity:()=>xx,combineTypeError:()=>fm,comparatorTypeError:()=>vb,complicatedDoubleInequality:()=>Cm,complicatedPolarImplicit:()=>EP,constantUnsupported:()=>ic,cycle:()=>Mm,deeplyNested:()=>sx,dependsOnDeletedGeoObject:()=>lT,derivativeMissingBody:()=>$P,derivativeTypeError:()=>qb,derivativeVariableTypeError:()=>$b,differentialWithSuperscript:()=>zP,distributionAsFunction:()=>Am,divideTypeError:()=>Pb,domainMaxInvalid:()=>aP,domainMaxLessThanMin:()=>uP,domainMinInvalid:()=>oP,dotLHSTypeError:()=>Lb,duplicateFunctionParameter:()=>Wx,duplicateUpdateRules:()=>Qb,eachBaseCaseArgumentMustBeSimple:()=>im,emptyParen:()=>zx,emptyPipe:()=>Ux,emptyRadical:()=>Gx,emptyRadicalIndex:()=>kx,emptySquareBracket:()=>Hx,emptySubscript:()=>bm,emptySuperscript:()=>Lx,equationRequired:()=>Rm,equationsUnsupported:()=>ma,eventHandlerTypeError:()=>jp,expectedArgumentToBeButFound:()=>gb,exponentTypeError:()=>Tb,featureUnavailable:()=>ff,fractionEmpty:()=>_x,fractionMissingDenominator:()=>Ax,fractionMissingNumerator:()=>Nx,fractionsUnavailable:()=>Bm,functionDefinitionsUnsupported:()=>pf,functionFreeVariable:()=>NL,functionNameAsParameter:()=>jx,functionNotDefined:()=>Tm,functionRequiresNumberOfArguments:()=>yb,functionTypeError:()=>Pi,functionUnsupported:()=>ms,geometryLengthTypeError:()=>Ab,getLogInternalErrors:()=>OL,gpuLongProduct:()=>lx,gpuLongSum:()=>cx,gpuMaxListSize:()=>pl,gpuUnsupportedFunction:()=>ll,gpuUnsupportedIntegral:()=>ux,gpuVariableListLength:()=>tc,gpuVariableProduct:()=>mm,gpuVariableSum:()=>dm,heterogeneousList:()=>Jp,identifierAsFunction:()=>Sx,identifierIsNotFunction:()=>Ox,illegalBinWidth:()=>af,illegalDotCall:()=>Wp,implicitsDisabled:()=>IP,incorrectProductLowerBound:()=>FP,incorrectSumLowerBound:()=>wP,indexTypeError:()=>Zp,inequalitiesDisabled:()=>Dm,inequalitiesUnsupported:()=>sc,integralArgumentTypeError:()=>Ub,integralLowerBoundTypeError:()=>zb,integralMissingBody:()=>qP,integralMissingBound:()=>GP,integralMissingDifferential:()=>kP,integralUpperBoundTypeError:()=>Hb,internal:()=>J,invalidDependentFirstTableColumn:()=>RL,invalidDoubleEquality3d:()=>vP,invalidDoubleInequality3d:()=>MP,invalidDoubleInequalityVariables:()=>Sm,invalidFirstTableColumn:()=>OP,invalidFunctionName:()=>Vm,invalidHalfEmptyRange:()=>AP,invalidImplicitVariables:()=>rc,invalidImplicitVariables3d:()=>PP,invalidInequalityVariables:()=>xP,invalidIntervalComprehensionArity:()=>fT,invalidIntervalComprehensionParameter:()=>bl,invalidIntervalComprehensionReturnType:()=>pT,invalidLHS:()=>hP,invalidNestedIntervalComprehension:()=>dT,invalidOperatorName:()=>Fx,invalidRegressionParameter:()=>CP,invalidSubscript:()=>wx,invalidTableEntry:()=>ml,invalidTableHeader:()=>SP,listComprehensionIncorrectInput:()=>tT,listComprehensionInputListTypeError:()=>eT,listTypeError:()=>ec,logScaleBoxPlot:()=>ix,logScaleDotPlot:()=>rx,logScaleHistogram:()=>nx,logScaleTypeError:()=>cl,logbaseUnsupported:()=>QP,malformedList:()=>Ex,malformedPoint:()=>Ix,matrixAddDimensions:()=>zL,matrixAssignment:()=>kL,matrixElementTypeError:()=>YL,matrixFractionalPower:()=>qL,matrixInvalidVariable:()=>XL,matrixMultiplyDimensions:()=>UL,matrixPowerDimensions:()=>$L,matrixSubtractDimensions:()=>HL,maxListSize:()=>Qp,methodRequiresList:()=>As,mismatchedBraces:()=>YP,mismatchedDoubleInequality:()=>Om,mixedComparatorChain:()=>Eb,mixedRestrictionEquation:()=>ax,multipleEqualityRestrictions:()=>ox,multiplyDefined:()=>dl,multiplyDefinedByTables:()=>Qx,multiplyTypeError:()=>qp,multiplyTypeError2D:()=>Yp,multiplyTypeError3D:()=>Xp,multiplyTypeErrorCross:()=>$p,negativeTypeError:()=>Ib,nonArithmeticRange:()=>of,nonListDoubleReducer:()=>sf,nonListParameterizedReducer:()=>NP,nonSquareDeterminant:()=>AL,nonSquareInverse:()=>LL,nonSquareTrace:()=>_L,opaque:()=>Up,optimizationError:()=>RP,orTypeError:()=>Sb,orderedPairAccessTypeError:()=>Cb,parameterAlreadyDefined:()=>Im,parenthesesUnavailable:()=>KP,pdfWrongArity:()=>dx,percentMissingOf:()=>ZP,piecewiseBranchTypeError:()=>Yb,piecewiseConditionTypeError:()=>cm,piecewiseMissingCondition:()=>Yx,piecewisePartMissingCondition:()=>Xx,pointTypeError:()=>Ob,pointsUnsupported:()=>ac,polygonTwoNumbersError:()=>Kp,polygonUnsupportedIn3d:()=>wm,primeWithoutParen:()=>Pm,primedFunctionArity:()=>nc,productArgumentTypeError:()=>kb,productInfiniteBoundError:()=>um,productLowerBoundTypeError:()=>Bb,productMissingBody:()=>UP,productMissingBound:()=>LP,productUpperBoundTypeError:()=>Gb,randomArity:()=>hx,randomFromBroadcastDistribution:()=>bx,recursionCyclicDependency:()=>fb,recursionDoesNotTerminate:()=>db,recursiveDepthExceeded:()=>mb,recursiveFunctionCannotDependOnFreeVariable:()=>lb,recursiveFunctionMissingBaseCase:()=>rm,recursiveFunctionMissingBaseCaseWithMetadata:()=>cb,regressionTypeError:()=>Wb,regressionsUnsupported:()=>oc,selfReferentialFunctions:()=>$a,setLogInternalErrors:()=>ub,shadowedIndex:()=>Em,shadowedIntegrationVariable:()=>_m,shadowedListComprehensionInput:()=>Gm,singleVariableImplicitEquationsDisabled:()=>TP,singularInverse:()=>wL,sliderLimitReferencesExport:()=>tP,sliderMaxInvalid:()=>rP,sliderMaxLessThanMin:()=>iP,sliderMinInvalid:()=>nP,sliderStepInvalid:()=>sP,substitutionAmbiguousComma:()=>Ya,substitutionBodyAction:()=>WL,substitutionBodyDependsOnRegression:()=>uT,substitutionDuplicateSymbol:()=>cT,substitutionFunctionLHS:()=>hl,substitutionIllegalLHS:()=>gl,substitutionInvalidAssignments:()=>mf,substitutionLocalLHS:()=>yf,substitutionNested:()=>km,substitutionRecursiveShadow:()=>gf,substitutionTypeError:()=>ZL,substitutionUnsupportedInterval:()=>zm,subtractTypeError:()=>xb,sumArgumentTypeError:()=>Vb,sumInfiniteBoundError:()=>am,sumLowerBoundTypeError:()=>wb,sumMissingBody:()=>HP,sumMissingBound:()=>_P,sumUpperBoundTypeError:()=>Fb,superscriptWithPrime:()=>Bx,tableCycleWithoutGlobalDefinition:()=>Kx,tableEntryTypeError:()=>Zb,tableHeaderTypeError:()=>Xb,tdistWrongArity:()=>gx,threeDLengthTypeError:()=>_b,tickerMinStepNonNegativeNumber:()=>eP,tokenWithSubscript:()=>Dx,tooManyArguments:()=>ym,tooManyVariables:()=>tn,transformationDefinitionTypeError:()=>Rb,transformationTypeError:()=>Nb,ttestListTooShort:()=>yl,unaryOperatorMissingLeft:()=>Cx,unaryOperatorMissingRight:()=>Rx,unexpectedEquality:()=>hb,unexpectedInequality:()=>om,unexpectedPrime:()=>xm,unexpectedSubscript:()=>Vx,unexpectedSymbol:()=>Nr,unplottableEqualityChain:()=>DP,unplottableLongInequalityChain:()=>Mb,unplottablePolarFunction:()=>bP,unrecognizedSymbol:()=>sm,updateRuleFunctionLHS:()=>lm,updateRuleIllegalLHS:()=>ex,updateRuleLocalLHS:()=>pm,updateRuleNonIdentifierLHS:()=>Jb,updateRuleTypeError:()=>jb,updateRuleUndefinedLHS:()=>Kb,useRForCylindricalCoordinates:()=>dP,useRhoForSphericalCoordinates:()=>fP,variableAsFunction:()=>Nm,variableLengthDistributionList:()=>df,variableLengthIntegralDependsOnIntegrationVariable:()=>aT,variableLengthProductBodyDependsOnIndex:()=>oT,variableLengthSumBodyDependsOnIndex:()=>sT,variableLengthTopLevelList:()=>iT,variableSeed:()=>jP,variableUnsupported:()=>Fm,variablesUnsupported:()=>cf,writeIntegral:()=>Lm,wrongArity:()=>ds,wrongDoubleReducerArity:()=>ef,wrongParameterizedReducerArity:()=>Px,zeroArgReducer:()=>Tx});function kp(e){return{__isLocalizableNumericValue:!0,value:e}}function Mq(e){return e&&e.__isLocalizableNumericValue}var nm=!1;function ub(e){nm=e}function OL(){return nm}function CL(...e){nm&&console.error(...e)}function J(e){if(nm){let t=e instanceof Error?e:new Error(`${e}`);return CL(t.stack),new C(S(\"shared-calculator-error-internal-error\",{msg:t.message}))}return new C(S(\"shared-calculator-error-parse-error\"))}function rm(e){let t=e.length,n=e[0];return new C(S(\"shared-calculator-error-recursion-missing-base-case\",{count:kp(t),lastSymbol:X(n),symbols:e.slice(1).map(r=>X(r)).join(\"', '\")}))}function cb(e,t){let n=rm(e);return n.recursionMetadata=t,n}function lb(e){return new C(S(\"shared-calculator-error-recursion-base-case-free-variable\",{freeVariable:X(e)}))}function pb(e){return new C(S(\"shared-calculator-error-recursion-base-case-free-variable\",{freeVariable:X(e)}))}function zp(){return new C(S(\"shared-calculator-error-recursion-base-case-same-type\")).allowExport()}function Hp(){return new C(S(\"shared-calculator-error-recursion-base-case-too-complicated\"))}function im(){return new C(S(\"shared-calculator-error-recursion-base-case-argument-non-number\"))}function fb(){return new C(S(\"shared-calculator-error-recursion-does-not-terminate\"))}function db(){return new C(S(\"shared-calculator-error-recursion-does-not-terminate\"))}function mb(){return new C(S(\"shared-calculator-error-recursion-depth-limit-exceeded\"))}function yb(e,t){return new C(S(\"shared-calculator-error-recursion-wrong-arity\",{fnSymbol:X(e),count:kp(t)}))}function gb(e,t,n){return new C(S(\"shared-calculator-error-recursion-argument-type\",{index:e+1,expectedType:t,foundType:n})).allowExport()}function Up(){return new C(S(\"shared-calculator-error-parse-error\"))}function sm(e){return e=X(e),new C(S(\"shared-calculator-error-unrecognized-symbol\",{symbol:e}))}function om(){return new C(S(\"shared-calculator-error-unexpected-inequality\"))}function hb(){return new C(S(\"shared-calculator-error-unexpected-equality\"))}function Nr(e){return e=X(e),new C(S(\"shared-calculator-error-unexpected-symbol\",{symbol:e}))}function bb(e){return new C(S(\"shared-calculator-error-add-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function xb(e){return new C(S(\"shared-calculator-error-subtract-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function qp(e){return new C(S(\"shared-calculator-error-multiply-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function $p(e){return new C(S(\"shared-calculator-error-multiply-type-error-cross\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Yp(e){return new C(S(\"shared-calculator-error-multiply-type-error-2d\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Xp(e){return new C(S(\"shared-calculator-error-multiply-type-error-3d\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Pb(e){return new C(S(\"shared-calculator-error-divide-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Tb(e){return new C(S(\"shared-calculator-error-exponent-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Ib(e){return new C(S(\"shared-calculator-error-negative-type-error\",{symbol:e[0]})).allowExport()}function Eb(){return new C(S(\"shared-calculator-error-mixed-comparator-chain\"))}function Mb(){return new C(S(\"shared-calculator-error-unplottable-long-inequality-chain\"))}function vb(e){return new C(S(\"shared-calculator-error-comparator-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Db(e){return new C(S(\"shared-calculator-error-operator-type-error\",{symbol:\"and\",symbol1:e[0],symbol2:e[1]})).allowExport()}function Sb(e){return new C(S(\"shared-calculator-error-operator-type-error\",{symbol:\"or\",symbol1:e[0],symbol2:e[1]})).allowExport()}function ec(e){return new C(S(\"shared-calculator-error-list-type-error\",{symbol1:e[0]})).allowExport()}function Ob(e){return new C(S(\"shared-calculator-error-point-type-error\",{symbol1:e,symbol2:ne(R)})).allowExport()}function Zp(e){return new C(S(\"shared-calculator-error-index-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Cb(e){return new C(S(\"shared-calculator-error-ordered-pair-access-type-error\",{symbol:e[0]})).allowExport()}function Pi(e,t){switch(t.length){case 1:return new C(S(\"shared-calculator-error-function-type-error-1\",{fn:X(e),arg:t[0]})).allowExport();case 2:return new C(S(\"shared-calculator-error-function-type-error-2\",{fn:X(e),arg1:t[0],arg2:t[1]})).allowExport();default:return new C(S(\"shared-calculator-error-function-type-error-many\",{fn:X(e)})).allowExport()}}var ab={translate:\"translation\",rotate:\"rotation\",dilate:\"dilation\",reflect:\"reflection\"};function Rb(e,t,n){let r=[];if(!Array.isArray(n))return Pi(e,t);for(let s=1;s<n.length;s++){let o=n[s];typeof o==\"number\"?r.push(ne(o)):r.push(ne(o.types[0]))}let i=\"\";switch(r.length){case 1:i=S(t.length>r.length?\"shared-calculator-error-transformation-definition-expected-types-use-fewer-1\":\"shared-calculator-error-transformation-definition-expected-types-1\",{arg:r[0]});break;case 2:i=S(t.length>r.length?\"shared-calculator-error-transformation-definition-expected-types-use-fewer-2\":\"shared-calculator-error-transformation-definition-expected-types-2\",{arg1:r[0],arg2:r[1]});break}switch(t.length){case 1:return new C(S(t.length<r.length?\"shared-calculator-error-transformation-definition-type-error-use-more-1\":\"shared-calculator-error-transformation-definition-type-error-1\",{fn:X(ab[e]),arg:t[0],expectedTypeMessage:i}));case 2:return new C(S(t.length<r.length?\"shared-calculator-error-transformation-definition-type-error-use-more-2\":\"shared-calculator-error-transformation-definition-type-error-2\",{fn:X(ab[e]),arg1:t[0],arg2:t[1],expectedTypeMessage:i}));default:return new C(S(\"shared-calculator-error-transformation-definition-type-error-many\",{fn:X(ab[e])}))}}function Nb(e,t){switch(t.length){case 1:return new C(S(\"shared-calculator-error-transformation-type-error-1\",{fn:X(e),arg:t[0]})).allowExport();case 2:return new C(S(\"shared-calculator-error-transformation-type-error-2\",{fn:X(e),arg1:t[0],arg2:t[1]})).allowExport();default:return new C(S(\"shared-calculator-error-transformation-type-error-many\",{fn:X(e)})).allowExport()}}function Ab(e,t){let n=X(e),r=X(\"count\");return new C(S(\"shared-calculator-error-geometry-length-type-error\",{fn:n,alternativeFn:r,arg:t})).allowExport()}function _b(e,t){let n=X(e),r=X(\"count\");return new C(S(\"shared-calculator-error-3d-length-type-error\",{fn:n,alternativeFn:r,arg:t})).allowExport()}function Wp(e){return new C(S(\"shared-calculator-error-illegal-dot-call\",{symbol:X(e)}))}function Lb(e,t){return new C(S(\"shared-calculator-error-dot-lhs-type-error\",{symbol:X(e),type:t})).allowExport()}function wb(e){return new C(S(\"shared-calculator-error-sum-lower-bound-type-error\",{symbol:e[0]})).allowExport()}function Fb(e){return new C(S(\"shared-calculator-error-sum-upper-bound-type-error\",{symbol:e[0]})).allowExport()}function am(){return new C(S(\"shared-calculator-error-sum-infinite-bound-type-error\"))}function Vb(e){return new C(S(\"shared-calculator-error-sum-argument-type-error\",{symbol:e[0]})).allowExport()}function Bb(e){return new C(S(\"shared-calculator-error-product-lower-bound-type-error\",{symbol:e[0]})).allowExport()}function Gb(e){return new C(S(\"shared-calculator-error-product-upper-bound-type-error\",{symbol:e[0]})).allowExport()}function um(){return new C(S(\"shared-calculator-error-product-infinite-bound-type-error\"))}function kb(e){return new C(S(\"shared-calculator-error-product-argument-type-error\",{symbol:e[0]})).allowExport()}function zb(e){return new C(S(\"shared-calculator-error-integral-lower-bound-type-error\",{symbol:e[0]})).allowExport()}function Hb(e){return new C(S(\"shared-calculator-error-integral-upper-bound-type-error\",{symbol:e[0]})).allowExport()}function Ub(e){return new C(S(\"shared-calculator-error-integral-argument-type-error\",{symbol:e[0]})).allowExport()}function qb(e){return new C(S(\"shared-calculator-error-derivative-type-error\",{symbol:e[0]})).allowExport()}function $b(e,t){return new C(S(\"shared-calculator-error-derivative-variable-type-error\",{symbol1:X(e),symbol2:t[0]}))}function cm(e){return new C(S(\"shared-calculator-error-piecewise-condition-type-error\",{symbol1:ne(ge),symbol2:e[0]})).allowExport()}function Yb(e){return new C(S(\"shared-calculator-error-piecewise-branch-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function Xb(e){return new C(S(\"shared-calculator-error-table-header-type-error\",{symbol:e[0]}))}function Zb(e){return new C(S(\"shared-calculator-error-table-entry-type-error\",{symbol:e[0]}))}function Wb(e){return new C(S(\"shared-calculator-error-regression-type-error\",{symbol1:e[0],symbol2:e[1]}))}function jb(e){return new C(S(\"shared-calculator-error-update-rule-type-error\",{symbol:e}))}function Jb(){return new C(S(\"shared-calculator-error-update-rule-non-identifier-lhs\",{arrow:\"\\u2192\",example:\"a\"}))}function Qb(e){return new C(S(\"shared-calculator-error-duplicate-update-rules\",{symbol:X(e)}))}function Kb(e){return new C(S(\"shared-calculator-error-update-rule-undefined-lhs\",{symbol:X(e)}))}function ex(e){return new C(S(\"shared-calculator-error-update-rule-illegal-lhs\",{symbol:X(e)}))}function lm(e){return new C(S(\"shared-calculator-error-update-rule-function-lhs\",{symbol:X(e)}))}function pm(e){return new C(S(\"shared-calculator-error-update-rule-local-lhs\",{symbol:X(e)}))}function tx(e){let t=e.filter(n=>n.scope===\"free\").map(n=>n.symbol);return new C(S(\"shared-calculator-error-action-merge-free-variable\",{symbol:X(t[0]||\"\")})).setDependencies(t).allowExport()}function jp(e){return new C(S(\"shared-calculator-error-event-handler-type-error\",{example:\"a\\u2192a+1\"}))}function Jp(){return new C(S(\"shared-calculator-error-heterogeneous-list\")).allowExport()}function fm(e){return new C(S(\"shared-calculator-error-combine-type-error\",{symbol1:e[0],symbol2:e[1]})).allowExport()}function cl(e){return new C(S(\"shared-calculator-error-log-scale-type-error\",{symbol:e})).allowExport()}function nx(){return new C(S(\"shared-calculator-error-log-scale-histogram\"))}function rx(){return new C(S(\"shared-calculator-error-log-scale-dot-plot\"))}function ix(){return new C(S(\"shared-calculator-error-log-scale-box-plot\"))}function sx(){return new C(S(\"shared-calculator-error-deeply-nested\")).allowExport()}function ox(){return new C(S(\"shared-calculator-error-3d-multiple-equality-restrictions\")).allowExport()}function ax(){return new C(S(\"shared-calculator-error-3d-mixed-restriction-equation\")).allowExport()}function Bo(){return new C(S(\"shared-calculator-error-3d-bad-equality-slice\")).allowExport()}function tc(e){return new C(S(\"shared-calculator-error-gpu-variable-list-length\",{symbol:X(e.filter(t=>t.symbol!==\"globalRandomSeed\")[0].symbol)}))}function dm(e){return new C(S(\"shared-calculator-error-gpu-variable-sum\",{symbol:X(e[0].symbol)}))}function mm(e){return new C(S(\"shared-calculator-error-gpu-variable-product\",{symbol:X(e[0].symbol)}))}function ll(e){return new C(S(\"shared-calculator-error-gpu-function-unsupported\",{symbol:X(e)}))}function ux(){return new C(S(\"shared-calculator-error-gpu-integral-unsupported\"))}function cx(){return new C(S(\"shared-calculator-error-gpu-long-sum\",{maxTermCount:1e3.toLocaleString()}))}function lx(){return new C(S(\"shared-calculator-error-gpu-long-product\",{maxTermCount:1e3.toLocaleString()}))}function pl(){return new C(S(\"shared-calculator-error-gpu-max-list-size\",{maxListSize:100 .toLocaleString()}))}function Qp(){return new C(S(\"shared-calculator-error-max-list-size\",{maxListSize:1e4.toLocaleString()})).allowExport()}function Kp(){return new C(S(\"shared-calculator-error-two-numbers-error\"))}function px(){return new C(S(\"shared-calculator-error-boxplot-offset-invalid\"))}function fx(){return new C(S(\"shared-calculator-error-boxplot-breadth-invalid\"))}function ym(e,t){return new C(S(\"shared-calculator-error-too-many-arguments\",{symbol:e,max:t}))}function dx(){var e=S(\"shared-calculator-error-pdf-wrong-arity-recommendation\"),t=S(\"shared-calculator-error-pdf-wrong-arity\",{recommendation:e});return new C(t)}function mx(){var e=S(\"shared-calculator-error-cdf-wrong-arity-recommendation\"),t=S(\"shared-calculator-error-cdf-wrong-arity\",{recommendation:e});return new C(t)}function yx(){var e=S(\"shared-calculator-error-cdf-too-many-arguments-recommendation\"),t=S(\"shared-calculator-error-cdf-too-many-arguments\",{recommendation:e});return new C(t)}function gx(){return new C(S(\"shared-calculator-error-tdist-wrong-arity\"))}function hx(){return new C(S(\"shared-calculator-error-random-arity\"))}function bx(){return new C(S(\"shared-calculator-error-random-from-broadcast-distribution\"))}function xx(e){var t=e===\"rgb\"?[150,30,100]:[180,.5,.5],n=S(\"shared-calculator-error-color-arity-recommendation\",{recommendation:X(e)+\"(\"+t.join(\", \")+\")\"}),r=S(\"shared-calculator-error-color-arity\",{symbol:e,recommendation:n});return new C(r)}function ds(e,t,n,r){e=X(e);var i,s;if(t===1)r||(r=e+\"(x)\"),s=S(\"shared-calculator-error-wrong-arity-supplement\",{recommendation:r}),n>1?i=S(\"shared-calculator-error-wrong-arity-single-arg-too-many\",{dependency:e,supplement:s}):i=S(\"shared-calculator-error-wrong-arity-single-arg-too-few\",{dependency:e,supplement:s});else{var o=[];if(!r){for(var a=0;a<t;a++)o[a]=a+1;r=X(e)+\"(\"+o.join(\", \")+\")\"}s=S(\"shared-calculator-error-wrong-arity-supplement\",{recommendation:r}),i=S(\"shared-calculator-error-wrong-arity-many-arg\",{dependency:e,assignment_arity:t,supplement:s})}return new C(i)}function Px(e){return new C(S(\"shared-calculator-error-wrong-two-arg-arity\",{symbol:X(e),recommendation:X(e)+\"([1,2,3], 1)\"}))}function ef(e){return new C(S(\"shared-calculator-error-wrong-two-arg-arity\",{symbol:X(e),recommendation:X(e)+\"([1,2,3], [3,2,1])\"}))}function nc(){return new C(S(\"shared-calculator-error-primed-function-arity\"))}function Tx(e){return new C(S(\"shared-calculator-error-zero-arg-reducer\",{symbol:X(e)}))}function Ix(){return new C(S(\"shared-calculator-error-malformed-point\"))}function Ex(){return new C(S(\"shared-calculator-error-malformed-list\"))}function Mx(e){return new C(S(\"shared-calculator-error-bad-tuple-dimensions\",{symbol:e}))}function gm(e){return e=X(e),new C(S(\"shared-calculator-error-bad-implicit-call\",{symbol:e}))}function vx(e,t){return new C(S(\"shared-calculator-error-adjacent-numbers\",{left:e,right:t}))}function hm(e){return new C(S(\"shared-calculator-error-adjacent-mixed-number\",{mixedNumber:e}))}function Dx(){return new C(S(\"shared-calculator-error-token-with-subscript\"))}function Sx(e){return e=X(e),new C(S(\"shared-calculator-error-identifier-as-function\",{symbol:e}))}function Ox(e){return e=X(e),new C(S(\"shared-calculator-error-identifier-is-not-function\",{symbol:e}))}function tf(e){return e=X(e),e===\"%\"&&(e=\"% of\"),new C(S(\"shared-calculator-error-binary-operator-missing-operand\",{symbol:e}))}function Cx(e){return e=X(e),new C(S(\"shared-calculator-error-unary-operator-missing-left\",{symbol:e}))}function Rx(e){return e=X(e),new C(S(\"shared-calculator-error-unary-operator-missing-right\",{symbol:e}))}function Nx(){return new C(S(\"shared-calculator-error-fraction-missing-numerator\"))}function Ax(){return new C(S(\"shared-calculator-error-fraction-missing-denominator\"))}function _x(){return new C(S(\"shared-calculator-error-fraction-empty\"))}function bm(){return new C(S(\"shared-calculator-error-empty-subscript\"))}function Lx(){return new C(S(\"shared-calculator-error-empty-superscript\"))}function wx(e){return e=X(e),new C(S(\"shared-calculator-error-invalid-subscript\",{symbol:e}))}function Fx(){return new C(S(\"shared-calculator-error-invalid-operator-name\"))}function Vx(){return new C(S(\"shared-calculator-error-unexpected-subscript\"))}function Bx(){return new C(S(\"shared-calculator-error-superscript-with-prime\"))}function xm(){return new C(S(\"shared-calculator-error-unexpected-prime\"))}function Pm(){return new C(S(\"shared-calculator-error-prime-without-paren\"))}function Gx(){return new C(S(\"shared-calculator-error-empty-radical\"))}function kx(){return new C(S(\"shared-calculator-error-empty-radical-index\"))}function zx(){return new C(S(\"shared-calculator-error-empty-paren\"))}function Hx(){return new C(S(\"shared-calculator-error-empty-square-bracket\"))}function Ux(){return new C(S(\"shared-calculator-error-empty-pipe\"))}function qx(e){var t=e+\"^2\",n=e+\"^-1\";return new C(S(\"shared-calculator-error-bad-trig-exponent\",{form1:t,form2:n}))}function $x(e){var t=e+\"^2\";return new C(S(\"shared-calculator-error-bad-log-exponent\",{form:t}))}function Yx(){return new C(S(\"shared-calculator-error-piecewise-missing-condition\"))}function Xx(){return new C(S(\"shared-calculator-error-piecewise-part-missing-condition\"))}function Zx(){return new C(S(\"shared-calculator-error-colon-missing-condition\"))}function nf(){return new C(S(\"shared-calculator-error-blank-expression\"))}function Tm(e){return e=X(e),new C(S(\"shared-calculator-error-function-not-defined\",{dependency:e}))}function Im(e){return e=X(e),new C(S(\"shared-calculator-error-parameter-already-defined\",{dependency:e}))}function Wx(e){return e=X(e),new C(S(\"shared-calculator-error-duplicate-function-parameter\",{dependency:e}))}function jx(e){return e=X(e),new C(S(\"shared-calculator-error-function-name-as-parameter\",{dependency:e}))}function fl(e,t){return e=X(e),t===void 0?new C(S(\"shared-calculator-error-cannot-redefine\",{symbol:e})):new C(S(\"shared-calculator-error-cannot-redefine-root\",{symbol:e,symbolRoot:t}))}function Jx(e){return e=X(e),new C(S(\"shared-calculator-error-cannot-subscript\",{symbol:e}))}function dl(e){return e=X(e),new C(S(\"shared-calculator-error-multiply-defined\",{dependency:e}))}function Qx(e){let t=dl(e);return t.isMultiplyDefinedByTables=!0,t}function Em(e){return e=X(e),new C(S(\"shared-calculator-error-shadowed-index\",{symbol:e}))}function Mm(e){e=e.map(X);var t=e.pop()||\"\";return new C(S(\"shared-calculator-error-dependency-cycle\",{symbols:e.join(\"', '\"),lastSymbol:t}))}function Kx(e){let t=Mm(e);return t.isTableCycleWithoutGlobalDefinition=!0,t}function $a(e){let t=e.length,n=e[0];return new C(S(\"shared-calculator-error-self-referential-functions\",{symbols:e.slice(1).map(r=>X(r)).join(\"', '\"),lastSymbol:X(n),count:kp(t)}))}function eP(){return new C(S(\"shared-calculator-error-ticker-min-step-nonnegative\"))}function tP(e){return new C(S(\"shared-calculator-error-slider-limit-references-export\",{symbol:X(e)}))}function nP(){return new C(S(\"shared-calculator-error-slider-min-invalid\"))}function rP(){return new C(S(\"shared-calculator-error-slider-max-invalid\"))}function iP(){return new C(S(\"shared-calculator-error-slider-max-less-than-min\"))}function sP(){return new C(S(\"shared-calculator-error-slider-step-invalid\"))}function oP(){return new C(S(\"shared-calculator-error-domain-min-invalid\"))}function aP(){return new C(S(\"shared-calculator-error-domain-max-invalid\"))}function uP(){return new C(S(\"shared-calculator-error-domain-max-less-than-min\"))}function cP(){return new C(S(\"shared-calculator-error-cdf-min-invalid\"))}function lP(){return new C(S(\"shared-calculator-error-cdf-max-invalid\"))}function pP(){return new C(S(\"shared-calculator-error-cdf-max-less-than-min\"))}function fP(){return new C(S(\"shared-calculator-error-use-rho-for-spherical-coordinates\"))}function dP(){return new C(S(\"shared-calculator-error-use-r-for-cylindrical-coordinates\"))}function vm(){return new C(S(\"shared-calculator-error-cant-combine-spherical-and-cylindrical\"))}function tn(e){if(e=e.map(X),e.length===0)return new C(S(\"shared-calculator-error-too-many-variables-no-symbols\"));var t=e.pop()||\"\";return e.length>0?new C(S(\"shared-calculator-error-too-many-variables-many-symbols\",{variables:e.join(\"', '\"),lastVariable:t})):new C(S(\"shared-calculator-error-too-many-variables-one-symbol\",{variable:t}))}function mP(e){return new C(S(\"shared-calculator-error-cannot-restrict\",{variable:X(e)}))}function yP(e){return new C(S(\"shared-calculator-error-cannot-assign-color\",{variable:X(e)}))}function gP(e){return new C(S(\"shared-calculator-error-cannot-restrict-with-equality\",{variable:X(e)}))}function rf(e,t,n){e=e.map(X),t=X(t),n=n.map(X);var r=t+\"(\"+n.join(\",\")+\",\"+e.join(\",\")+\")\",i=e.pop()||\"\",s={symbols:e.join(\"', '\"),lastSymbol:i,newSignature:r};return e.length?new C(S(\"shared-calculator-error-add-arguments-to-definition-many\",s)):new C(S(\"shared-calculator-error-add-arguments-to-definition-one\",s))}function hP(e){return e=X(e),new C(S(\"shared-calculator-error-invalid-lhs\",{symbol:e}))}function bP(){return new C(S(\"shared-calculator-error-unplottable-polar-function\"))}function xP(){return new C(S(\"shared-calculator-error-invalid-inequality-variables\"))}function rc(){return new C(S(\"shared-calculator-error-invalid-implicit-variables\"))}function PP(){return new C(S(\"shared-calculator-error-invalid-implicit-variables-3d\"))}function TP(){return new C(S(\"shared-calculator-error-single-variable-implicit-equations-disabled\"))}function IP(){return new C(S(\"shared-calculator-error-implicits-disabled\"))}function Dm(){return new C(S(\"shared-calculator-error-inequalities-disabled\"))}function EP(){return new C(S(\"shared-calculator-error-complicated-polar-implicit\"))}function MP(){return new C(S(\"shared-calculator-error-invalid-double-inequality-3d\"))}function vP(){return new C(S(\"shared-calculator-error-invalid-double-equality-3d\"))}function DP(){return new C(S(\"shared-calculator-error-unplottable-chained-equality\"))}function Sm(){return new C(S(\"shared-calculator-error-invalid-double-inequality-variables\"))}function Om(){return new C(S(\"shared-calculator-error-mismatched-double-inequality\",{example:\"1 < y < 2\"}))}function Cm(){return new C(S(\"shared-calculator-error-complicated-double-inequality\"))}function Rm(e){return e?(e=X(e),new C(S(\"shared-calculator-error-equation-required-symbol\",{lhs:e+\"=\"}))):new C(S(\"shared-calculator-error-equation-required\"))}function Nm(e){return e=X(e),new C(S(\"shared-calculator-error-variable-as-function\",{dependency:e}))}function Am(e){return e=X(e),new C(S(\"shared-calculator-error-distribution-as-function\",{symbol:e}))}function SP(e){return new C(S(\"shared-calculator-error-invalid-table-header\",{supplement:e}))}function ml(e){return new C(S(\"shared-calculator-error-invalid-table-entry\",{supplement:e}))}function OP(){return new C(S(\"shared-calculator-error-invalid-first-table-column\",{most:\"'y', 'r',\",last:\"'\\u03B8'\"}))}function RL(){return new C(S(\"shared-calculator-error-invalid-dependent-first-table-column\"))}function CP(e){return new C(S(\"shared-calculator-error-invalid-regression-parameter\",{symbol:X(e)}))}function RP(){return new C(S(\"shared-calculator-error-optimization-error\"))}function sf(e){return new C(S(\"shared-calculator-error-non-list-double-reducer\",{symbol:X(e),recommendation:X(e)+\"([1,2,3], [3,2,1])\"})).allowExport()}function NP(e){return new C(S(\"shared-calculator-error-non-list-parameterized-reducer\",{symbol:X(e),recommendation:X(e)+\"([1,2,3], 1)\"})).allowExport()}function As(e){return new C(S(\"shared-calculator-error-method-requires-list\",{symbol:X(e),recommendation:X(e)+\"([1,2,3])\"})).allowExport()}function NL(e,t){return new C(S(\"shared-calculator-error-variable-function-free-variable\",{functionSymbol:e,variableSymbol:t})).allowExport()}function of(){return new C(S(\"shared-calculator-error-non-arithmetic-range\")).allowExport()}function AP(){return new C(S(\"shared-calculator-error-invalid-half-empty-range\"))}function _P(){return new C(S(\"shared-calculator-error-sum-missing-bound\"))}function LP(){return new C(S(\"shared-calculator-error-product-missing-bound\"))}function wP(){return new C(S(\"shared-calculator-error-incorrect-sum-lower-bound\"))}function FP(){return new C(S(\"shared-calculator-error-incorrect-product-lower-bound\"))}function VP(e){return new C(S(\"shared-calculator-error-bad-sum-bound-dependency\",{symbol:X(e)}))}function BP(e){return new C(S(\"shared-calculator-error-bad-product-bound-dependency\",{symbol:X(e)}))}function GP(){return new C(S(\"shared-calculator-error-integral-missing-bound\"))}function kP(){return new C(S(\"shared-calculator-error-integral-missing-differential\"))}function zP(){return new C(S(\"shared-calculator-error-differential-with-superscript\"))}function HP(){return new C(S(\"shared-calculator-error-sum-missing-body\"))}function UP(){return new C(S(\"shared-calculator-error-product-missing-body\"))}function qP(){return new C(S(\"shared-calculator-error-integral-missing-body\"))}function $P(){return new C(S(\"shared-calculator-error-derivative-missing-body\"))}function YP(e,t){return e=X(e),t=X(t),new C(S(\"shared-calculator-error-mismatched-braces\",{symbol1:e,symbol2:t}))}function _m(e){return new C(S(\"shared-calculator-error-shadowed-integration-variable\",{symbol:X(e)}))}function XP(e){return new C(S(\"shared-calculator-error-bad-integral-bound-dependency\",{symbol:X(e)}))}function ZP(){return new C(S(\"shared-calculator-error-percent-missing-of\"))}function af(e){return e=X(e),new C(S(\"shared-calculator-error-illegal-bin-width\",{symbol:e}))}function yl(e){return e=X(e),new C(S(\"shared-calculator-error-ttest-list-too-short\",{symbol:e}))}function WP(){return new C(S(\"shared-calculator-error-bad-sample-size\"))}function jP(e){return new C(S(\"shared-calculator-error-variable-seed\",{symbol:X(e[0].symbol)})).setDependencies(e.filter(t=>t.scope===\"free\").map(t=>t.symbol)).allowExport()}function uf(e){return new C(S(\"shared-calculator-error-bad-symbol-context\",{symbol:X(e)}))}function Lm(){return new C(S(\"shared-calculator-error-write-integral\",{command:\"integral\",symbol:\"\\u222B\"}))}function JP(){return new C(S(\"shared-calculator-error-ans-undefined\"))}function cf(e){return new C(S(\"shared-calculator-error-variables-unsupported\",{variable:X(e)}))}function wm(){return new C(S(\"shared-calculator-error-polygon-unsupported-in-3d\"))}function ms(e,t=!1){return t&&e===\"polygon\"?wm():new C(S(\"shared-calculator-error-function-unsupported\",{symbol:X(e)}))}function QP(){return new C(S(\"shared-calculator-error-logbase-unsupported\"))}function ic(e){return new C(S(\"shared-calculator-error-constant-unsupported\",{symbol:X(e)}))}function Fm(e){return new C(S(\"shared-calculator-error-variable-unsupported\",{symbol:X(e)}))}function Vm(e){return new C(S(\"shared-calculator-error-variable-invalid-function-name\",{symbol:X(e)}))}function lf(){return new C(S(\"shared-calculator-error-assignments-unsupported\"))}function pf(){return new C(S(\"shared-calculator-error-function-definition-unsupported\"))}function ma(){return new C(S(\"shared-calculator-error-equations-unsupported\"))}function sc(){return new C(S(\"shared-calculator-error-inequalities-unsupported\"))}function oc(){return new C(S(\"shared-calculator-error-regressions-unsupported\"))}function ac(){return new C(S(\"shared-calculator-error-points-unsupported\"))}function ff(){return new C(S(\"shared-calculator-error-feature-unavailable\"))}function Bm(){return new C(S(\"basic-calculator-error-fractions-unavailable\"))}function KP(){return new C(S(\"basic-calculator-error-parentheses-unavailable\"))}function AL(){return new C(S(\"shared-calculator-error-non-square-determinant\"))}function _L(){return new C(S(\"shared-calculator-error-non-square-trace\"))}function LL(){return new C(S(\"shared-calculator-error-non-square-inverse\"))}function wL(){return new C(S(\"shared-calculator-error-non-singular-inverse\"))}function FL(e){return new C(S(\"shared-calculator-error-clickable-object-assignment-not-defined\",{symbol:e}))}function VL(e){return new C(S(\"shared-calculator-error-multiply-defined\",{dependency:e}))}function BL(){return new C(S(\"shared-calculator-error-clickable-object-assignment-not-identifier\"))}function GL(){return new C(S(\"shared-calculator-error-clickable-object-invalid-expression\"))}function kL(){return new C(S(\"shared-calculator-error-matrix-assignment\"))}function zL(){return new C(S(\"shared-calculator-error-matrix-add-dimensions\"))}function HL(){return new C(S(\"shared-calculator-error-matrix-subtract-dimensions\"))}function UL(){return new C(S(\"shared-calculator-error-matrix-multiply-dimensions\"))}function qL(){return new C(S(\"shared-calculator-error-matrix-fractional-power\"))}function $L(){return new C(S(\"shared-calculator-error-matrix-power-dimensions\"))}function YL(e){return new C(S(\"shared-calculator-error-matrix-element-type-error\",{arg:e[0]}))}function XL(e){return new C(S(\"shared-calculator-error-matrix-invalid-variable\",{symbol:X(e)}))}function eT(e,t,n){let r=\"[1...10]\";return n&&!/[\\\\]/.test(n)&&(r=`[${n}]`),new C(S(\"shared-calculator-error-list-comprehension-input-type-error\",{identifier:e,actual:t,example:r})).allowExport()}function tT(){return new C(S(\"shared-calculator-error-incorrect-list-comprehension-input\"))}function Gm(e){return e=X(e),new C(S(\"shared-calculator-error-shadowed-list-comprehension-input\",{symbol:e}))}function nT(e){return e=X(e),new C(S(\"shared-calculator-error-bad-for-input-list-dependency\",{symbol:e}))}function rT(e){return e=X(e),new C(S(\"shared-calculator-error-bad-for-interval-dependency\",{symbol:e}))}function iT(e){let t=e.filter(n=>n.scope===\"free\").map(n=>n.symbol);return new C(S(\"shared-calculator-error-variable-length-top-level-list\",{symbol:X(t[0]||\"\")})).setDependencies(t).allowExport()}function df(e){return new C(S(\"shared-calculator-error-variable-length-distribution-list\",{symbol:e[0].symbol})).setDependencies(e.filter(t=>t.scope===\"free\").map(t=>t.symbol))}function sT(e){return new C(S(\"shared-calculator-error-variable-length-sum-body-depends-on-index\",{symbol:e}))}function oT(e){return new C(S(\"shared-calculator-error-variable-length-product-body-depends-on-index\",{symbol:e}))}function aT(e){return new C(S(\"shared-calculator-error-variable-length-integral-depends-on-integration-var\",{symbol:e}))}function ZL(e,t){return new C(S(\"shared-calculator-error-substitution-type-error\",{actual:ne(e),expected:ne(t)}))}function mf(){return new C(S(\"shared-calculator-error-substitution-invalid-assignments\"))}function yf(e){return new C(S(\"shared-calculator-error-substitution-local-lhs\",{symbol:X(e)}))}function gl(e){return new C(S(\"shared-calculator-error-substitution-illegal-lhs\",{symbol:X(e)}))}function hl(e){return new C(S(\"shared-calculator-error-substitution-function-lhs\",{symbol:X(e)}))}function uT(e,t,n){return new C(S(\"shared-calculator-error-substitution-body-regression-parameter-dependency\",{globalVariable:X(e),regressionParameter:X(t),operator:n}))}function WL(){return new C(S(\"shared-calculator-error-substitution-body-action\"))}function km(){return new C(S(\"shared-calculator-error-substitution-nested\"))}function Ya(e){return new C(S(\"shared-calculator-error-substitution-ambiguous-comma\",{operation:e}))}function cT(e){return new C(S(\"shared-calculator-error-substitution-duplicate-assignment\",{symbol:X(e)}))}function gf(e){return new C(S(\"shared-calculator-error-substitution-recursion-shadow\",{symbol:X(e)}))}function lT(){return new C(S(\"shared-calculator-error-depends-on-deleted-geo-object\"))}function pT(e){return new C(S(\"shared-calculator-error-invalid-interval-comprehension-return-type\",{type:ne(e)}))}function fT(e,t){return new C(S(\"shared-calculator-error-bad-interval-comprehension-arity\",{type:ne(e),count:kp(t)}))}function bl(e){return new C(S(\"shared-calculator-error-invalid-interval-comprehension-invalid-bound\",{identifier:e}))}function dT(){return new C(S(\"shared-calculator-error-nested-interval-comprehension\"))}function zm(){return new C(S(\"shared-calculator-error-substitution-unsupported-interval\"))}function jL(e,t){let n=Rr[e[0]].direction===-1?new ni([t[1],t[0]]):new ni([t[0],t[1]]);switch(e.length){case 0:throw new Error(\"Programming Error: ComparatorChain must have at least one comparator\");case 1:return n;case 2:return new hr([new qr[e[1]](t.slice(1)),n,new Zt(NaN)]);default:return new hr([new Xa(e.slice(1),t.slice(1)),n,new Zt(NaN)])}}var Xa=class extends j{constructor(n,r){super(r);this.symbols=n;if(n.length<1)throw\"Programming Error: ComparatorChain must have at least one comparator.\";if(r.length!==n.length+1)throw\"Programming Error: ComparatorChain must have one more arg than symbols\";if(n.includes(\"=\")&&!n.every(i=>i===\"=\"))throw Eb();this._difference=jL(n,r)}isInequality(){return!this.symbols.includes(\"=\")}};var Hm=class extends Tt{constructor(t){super();let[n,r,i,s,o]=t;this.args=t,this._symbol=i._symbol,this._operators=[r,s],this._expressions=[n,o];var a=Qu(Rr[r].inclusive&&Rr[t[3]].inclusive,Rr[t[1]].direction);this._indicator=new qr[a]([t[0],t[4]]),this.addDependency(this._symbol),this.mergeDependencies(this._expressions[0],this._expressions[1])}isInequality(){return!0}isShadeBetween(){return!0}};var Za=class extends j{constructor(t){super(t,{skipRegisterDependencies:!0}),this._index=t[0],this.registerDependencies()}registerDependencies(){for(let t=1;t<=3;t++)this.mergeDependenciesInScope(this.type,[this._index._symbol],this.args[t])}};var xl=class extends Za{constructor(){super(...arguments);this.in_place_operator=\"+=\";this.starting_value=0}evaluateConstant(n){var r=1+Math.round(n[1])-Math.round(n[0]);return r<=0?this.starting_value:r*n[2]}update(n,r){return n+r}};var Pl=class extends Za{constructor(){super(...arguments);this.in_place_operator=\"*=\";this.starting_value=1}evaluateConstant(n){var r=1+Math.round(n[1])-Math.round(n[0]);return r<=0?this.starting_value:Math.pow(n[2],r)}update(n,r){return n*r}};var Tl=class extends j{constructor(t){super(t,{skipRegisterDependencies:!0}),this._differential=t[0],this.registerDependencies()}registerDependencies(){for(let t=1;t<=3;t++)this.mergeDependenciesInScope(this.type,[this._differential._symbol],this.args[t])}};var Il=class extends j{constructor(t){super(t),this._symbol=t[0]._symbol,this._lhs=t[0],this._rhs=t[1]}};var ya=class extends j{constructor(n,r,i,s,o=[]){super([n,r].concat(i),{skipRegisterDependencies:!0});this.shouldCoerceToList=s;this.parameters=o;this._index=n,this._body=r,this._inputLists=i,this.registerDependencies()}registerDependencies(){var n=[];n.push(this._index._symbol);for(let r of this._inputLists){let i=r._symbol;this.addSubstitutionSymbol(i),n.push(i)}for(let r of this.parameters){let i=r.identifier._symbol;n.push(i),this.addDependency(i)}for(let r of this._inputLists)this.mergeDependenciesInScope(this.type,n,r.args[1]);for(let r of this.parameters)this.mergeDependenciesInScope(this.type,n,r.bounds[0]),this.mergeDependenciesInScope(this.type,n,r.bounds[1]);this.mergeDependenciesInScope(this.type,n,this._body)}};var Wa=class extends cn{constructor(t,n){super(t,n),this.seed=n[0]}};var El=class extends j{registerDependencies(){if(super.registerDependencies(),this.args[0].type===\"Identifier\"){var t=this.args[0]._symbol;Ha(t)&&this.addDependency(\"trigAngleMultiplier\")}}};var Ml=class extends j{registerDependencies(){if(this.addDependency(\"factorial\"),super.registerDependencies(),this.args[0].type===\"Identifier\"){var t=this.args[0]._symbol;Ha(t)&&this.addDependency(\"trigAngleMultiplier\")}}};var uc=class extends j{constructor(t,n){super(n),this.order=t}};var vl=class extends j{};var cc=class extends j{constructor(t,n){super(n),t instanceof ze?this._symbol=t._symbol:this._symbol=new ze(t)._symbol,this.addDependency(this._symbol)}};var Dl=class extends j{constructor(t){super(t,{skipRegisterDependencies:!0}),this._symbol=t[0]._symbol,this._expression=t[1],this.registerDependencies()}registerDependencies(){this.addUpdateSymbol(this._symbol),this.mergeDependencies(this._expression)}};var Go=class extends j{constructor(t,n){super([t].concat(n),{skipRegisterDependencies:!0}),this._body=t,this._assignments=n,this.registerDependencies()}registerDependencies(){for(var t=[],n=0;n<this._assignments.length;n++){var r=this._assignments[n],i=r._symbol;this.addSubstitutionSymbol(i),t.push(i);var s=r.args[1];this.mergeDependencies(s),this.addSubstitutionDependencies(s.getDependencies())}this.mergeDependenciesInScope(this.type,t,this._body)}};var Sl=class extends j{constructor(t){super(t),this._symbol=\"histogram\"}};var Ol=class extends j{constructor(t){super(t),this._symbol=\"dotplot\"}};var Cl=class extends j{constructor(t){super(t),this._symbol=\"boxplot\"}};var Rl=class extends j{constructor(t){super(t),this._symbol=\"ttest\"}};var Nl=class extends j{constructor(t){super(t),this._symbol=\"ittest\"}};var Al=class extends j{constructor(t){super(t),this._symbol=\"stats\"}};var ko=class extends Tt{constructor(t,n){super(),this.mergeDependencies(t,n),this._lhs=t,this._rhs=n,this._difference=new ni([this._lhs,this._rhs])}asComparator(){return new qr[\"=\"]([this._lhs,this._rhs])}};var ga=class extends Tt{constructor(t,n){super(),t instanceof ze?this._symbol=t._symbol:this._symbol=t,this.mergeDependencies(n),this._expression=n,this._exports=this.computeExports()}shouldExportAns(){return!0}computeExports(){for(var t=this._symbol,n=this.getDependencies(),r=0;r<n.length;r++)if(n[r]===t)return[];return[t]}isEquation(t,n){let r=this._symbol,i=r===\"x\"||r===\"y\",s=r===\"r\"||r===\"z\",o=r===\"rho\",a=n.getDependencies(),u=this.graphmodeDependencies(t,n);return o||s||i&&a.includes(\"z\")?u.includes(r):a.includes(r)}asEquation(){var t=new ko(new ze(this._symbol),this._expression);return t.userData=this.userData,t.metaData=this.metaData,t}shouldPromoteToSlider(t){if(!this._expression.isConstant||this._expression.is_mixed_number)return!1;let n=this._expression.asValue();return typeof n!=\"number\"||!isFinite(n)?!1:t.isValidSlider(this._symbol)}};var Um=class extends Tt{constructor(t,n){super(),this._symbols=t.args.map(r=>r._symbol),this._expression=n,this._concatenatedSymbol=this._symbols.join(\"\"),this.mergeDependencies(n)}asEquation(){let t=new ko(new Qi(this._symbols.map(n=>new ze(n))),this._expression);return t.userData=this.userData,t.metaData=this.metaData,t}};var cr=class extends Tt{constructor(n,r,i,s){super();this.recursionInfo=s;this.externalBaseCases=[];this.isFunction=!0;this._symbol=n._symbol,this._argSymbols=r.map(function(o){return o._symbol});for(let o of this._argSymbols)if(o===this._symbol)throw jx(o);this._exports=[this._symbol],this._expression=i,this.mergeDependenciesInScope(this.type,[this._symbol].concat(this._argSymbols),this._expression,{functionDefinitionSymbol:this._symbol}),this.combinedDependencies=super.getDependencies()}getDependencies(){return this.combinedDependencies}setExternalBaseCases(n){this.externalBaseCases=[...n],this.combinedDependencies=[...super.getDependencies()];for(let r of n){let i=r.getRef();i&&this.combinedDependencies.push(i)}}getExternalBaseCases(){return this.externalBaseCases}getSliderVariables(n,r){var i=this._argSymbols;return super.getSliderVariables(n,r).filter(function(s){return i.indexOf(s)===-1})}asEquation(){var n=this._argSymbols.map(function(i){return new ze(i)}),r=new ko(new cn(new ze(this._symbol),n),this._expression);return r.userData=this.userData,r.metaData=this.metaData,r}};var ja=class extends Tt{constructor(t,n){super(),this._symbol=t._symbol,this.mergeDependencies(t,n),this._lhs=t,this._rhs=n}asComparator(){return new qr[\"=\"]([this._lhs,this._rhs])}};var qm=class extends Tt{constructor(n,r){super();this.isRegression=!0;this._lhs=n,this.isLhsSimple=n instanceof ze,this._logLhs=new cn(\"ln\",[n]),this._rhs=r,this._difference=new ni([n,r]),this._logDifference=new ni([new cn(\"ln\",[n]),new cn(\"ln\",[r])]),this.mergeDependencies(n,r)}exportTo(n,r,i){if(!r.isError){for(var s in r.parameters)r.parameters.hasOwnProperty(s)&&(n.assignmentForbidden(s)||(i[s]=i[s]?dl(s):r.parameters[s]));n.assignmentForbidden(r.residualVariable)||(i[r.residualVariable]=r.residuals)}}getSliderVariables(){return[]}};var $m=class extends Tt{constructor(n,r){super();this.isImage=!0;this.center=n.center,this.radianAngle=n.radianAngle,this.width=n.width,this.height=n.height,this.opacity=n.opacity,this.moveStrategy=r,this.mergeDependencies(this.center,this.radianAngle,this.width,this.height,this.opacity)}};var Ym=class extends Tt{constructor(t){super(),this.handler=t.handler,this.minStep=t.minStep,this.mergeDependencies(this.handler),this.mergeDependencies(this.minStep)}};var Xm=class extends ga{constructor(n,r){super(new ze(n._symbol),n._expression);this.isSlider=!0;this.setInputSpan(n._inputSpan),this.sliderAssignment=n,this.sliderMin=r.sliderMin,this.sliderMax=r.sliderMax,this.sliderSoftMin=r.sliderSoftMin,this.sliderSoftMax=r.sliderSoftMax,this.sliderStep=r.sliderStep,this.sliderIsPlayingOnce=r.sliderIsPlayingOnce,this.sliderMin&&this.mergeDependencies(this.sliderMin),this.sliderMax&&this.mergeDependencies(this.sliderMax),this.sliderStep&&this.mergeDependencies(this.sliderStep)}shouldPromoteToSlider(n){return!1}asAssignment(){return new ga(this._symbol,this._expression)}};var lc=class extends j{constructor(n){let r=new Zt(n);super([r]);this.value=n;this._constantNode=r}asValue(){return this._constantNode.asValue()}asCompilerValue(){return this._constantNode.asCompilerValue()}};var Zm=class extends Tt{constructor(n){super();this.exportPenalty=1;this.isTable=!0;this.columns=n,this.mergeDependencies.apply(this,n)}getExports(n){let r=[];for(var i=0;i<this.columns.length;i++)Array.prototype.push.apply(r,this.columns[i].getExports(n));return r}exportTo(n,r,i){for(var s=0;s<this.columns.length;s++){var o=this.columns[s].getExports(n);if(o.length){var a=o[0];n.assignmentForbidden(a)||i[a]||(r.isError?i[a]=r:this.columns[s].exportTo(n,r.columns[s],i))}}}getAllIds(){return this.columns.map(function(n){return n.header.userData.id})}};function JL(e){return e.isConstant?new Zt(e.asCompilerValue()):new Zt(NaN)}var pc=class extends Tt{constructor(t,n){super(),this.header=t,this.values=n,this.isIndependent=!1,this.registerDependencies(),this._exports=this.computeExports()}registerDependencies(){this.mergeDependencies(this.header),this.mergeDependencies.apply(this,this.values)}computeExports(){return this.header instanceof ze?[this.header._symbol]:[]}_exportSymbolsTo(t,n,r){if(t.length){var i=t[0];if(n.isError)r[i]=n;else try{r[i]=new Vo(n.values.map(JL))}catch(s){if(s instanceof Tt)r[i]=s;else throw s}}}exportTo(t,n,r){var i=this.getLegalExports(t);this._exportSymbolsTo(i,n,r)}exportToLocal(t,n,r){this._exportSymbolsTo(this.getExports(t),n,r)}};var Wm=class extends Tt{constructor(t,n,r,i){super(),this._symbol=t,this._expression=n,this.otherVariableSolutionData=r,this.mergeDependencies(n),this.branchMultiplier=i}};var jm=class extends Tt{constructor(t,n,r,i,s){super(),this.parameters=t,this.residuals=n,this.statistics=r,this.model=i,this.isModelValid=s.isModelValid,this.residualVariable=s.residualVariable,this.residualSuggestionId=s.residualSuggestionId,this.shouldSuggestLogMode=s.shouldSuggestLogMode,this.isLinear=s.isLinear,this.parameterWarning=s.parameterWarning,this._exports=[this.residualVariable];for(var o in t)t.hasOwnProperty(o)&&this._exports.push(o);this.mergeDependencies(i)}getCompiledFunction(){return this.model.getCompiledFunction.apply(this.model,arguments)}getCompiledDerivative(){return this.model.getCompiledDerivative.apply(this.model,arguments)}};var fc=class extends j{constructor(n){typeof n!=\"string\"&&(n=\"\"+n);super([]);this.isString=!0;this._stringValue=n}asValue(){return this._stringValue}};var dc=class extends j{constructor(t,n){super(n),this.seed=n[0],this.userSeed=n[1],this.tag=t}asValue(){return this.seed.asValue()+\"::\"+this.tag+this.userSeed.asValue()}};function Ja(e){return typeof e!=\"object\"||!e?!1:e.type===\"Action\"}function ln(e,t){let n=e.getInstruction(t);switch(n.type){case 1:return ao(n.value);default:throw new Error(`Unexpected opcode ${n.type}.`)}}function ao(e){if(Array.isArray(e))return e.map(ao);switch(typeof e){case\"boolean\":case\"number\":case\"string\":return e;case\"object\":if(Ja(e)){let t={};for(let n in e.updateRules){let r=e.updateRules[n];t[n]={value:ao(r.value),valueType:r.valueType}}return{type:\"Action\",updateRules:t}}else return q(e);default:throw new Error(\"Unexpected value: \"+e)}}var Qa=[ge,Vt,T,R,V,Nt,Se,In,Nn,rt,Ut,Be,Ie,pe,ce,fe,Le,he,Ge,Ae,Ue,mn],QL=new Set(Qa);function uo(e){return QL.has(e)}function $r(e){switch(e){case T:return NaN;case R:return[NaN,NaN];case V:return[NaN,NaN,NaN];case Nt:case Se:return[[NaN,NaN,NaN],[NaN,NaN,NaN]];case In:return[[NaN,NaN,NaN],[NaN,NaN,NaN],[NaN,NaN,NaN]];case Nn:return[[[NaN,NaN,NaN],[NaN,NaN,NaN],[NaN,NaN,NaN]],NaN];case Ut:return[NaN,NaN,NaN];case rt:return{type:\"Action\",updateRules:{}};case Ie:case Le:case fe:return[[NaN,NaN],[NaN,NaN]];case he:return[[NaN,NaN],[NaN,NaN]];case pe:return[[NaN,NaN],NaN];case ce:return[[NaN,NaN],[NaN,NaN],[NaN,NaN]];case ge:case Vt:return!1;case Be:return[];case Ue:return[[NaN,NaN],[NaN,NaN],!1];case Ge:case Ae:return[[NaN,NaN],NaN,NaN,NaN];case mn:return[NaN,NaN];default:let t=e;throw new Error(`${t} does not have a NaN type.`)}}function _v(e,t){return _o($r(e),t)}function be(e){return e.type<=4}function Lv(e){return!be(e)}function ri(e){switch(e.type){case 21:case 23:case 19:case 50:case 53:return!0;default:return!1}}function Ti(e){switch(e.type){case 20:case 22:case 24:case 51:case 54:return!0;default:return!1}}function Jm(e){switch(e.type){case 20:case 22:case 24:case 51:return!0;default:return!1}}function Yr(e,t){let n=new Array(t);for(let i=0;i<t;i++)n[i]=!1;n[t]=!0;let r=t;for(;r>0;){r=0;for(let i=t;i>=0;i--){if(!n[i])continue;let s=e.getInstruction(i);if(!be(s))for(let o of e.getDirectDependencies(s))o>i&&!n[o]&&o>r&&(r=o),n[o]=!0}}return n}function wv(e,t){let n=new Array(t);for(let i=0;i<t;i++)n[i]=!1;n[t]=!0;let r=t;for(;r>0;){r=0;for(let i=t;i>=0;i--){if(!n[i])continue;let s=e.getInstruction(i);if(!be(s))if(s.type===33)n[s.args[1]]=!0,n[s.args[2]]=!0;else for(let o of e.getDirectDependencies(s))o>i&&!n[o]&&(r=o),n[o]=!0}}return n}function Fv(e,t){let n=e.getReturnIndex(),r=new Array(n),i=new Array(n).fill(!1);for(let o=0;o<=n;o++){let a=e.getInstruction(o);ri(a)||Ti(a)||a.type===48||a.type===47&&e.getInstruction(a.args[0]).type!==22||a.type===0||a.type===55?r[o]=2:r[o]=0}r[n]===0&&(r[n]=1,i[n]=!0);let s=0;for(let o=n;o>=0;o--){if(!t[o])continue;let a=e.getInstruction(o);if(a.type===54?s++:a.type===53&&s--,be(a))continue;if(a.type===19||a.type===20||a.type===24||a.type===54||a.type===39||a.type===55)for(let c of a.args){let l=e.getInstruction(c);r[c]===0&&l.type===1&&l.valueType===T?(r[c]=1,i[c]=!0):(r[c]=2,i[c]=!1)}else{for(let c of a.args)switch(r[c]){case 0:r[c]=1,i[c]=!0;break;case 1:case 2:r[c]=2,i[c]=!1;break}s>0&&a.type===33&&(r[o]=2,i[o]=!1)}}return i}function tw(e,t){if(e.size!==t.size)return!1;for(let n of e)if(!t.has(n))return!1;return!0}var Qm=class{constructor(t,n,r){this.chunk=t;this.referenced=n;this.shouldInline=r;this.thunkSets=[];this.thunkStarts=[];this.thunkEnds=[];this._isThunkEnd=[];this.piecewiseReferencedCount=[];this.dependencyThunkNames=[];this.parentFunctionStart=[];let i=t.getReturnIndex();for(let a=0;a<=t.instructionsLength();a++)this.thunkSets[a]=new Set;let s=t.argNames.length,o;for(let a=s;a<=t.getReturnIndex();a++){let u=t.getInstruction(a);this.parentFunctionStart[a]=o,u.type===53?o=a:u.type===54&&(o=void 0)}this.markThunkSets(s,i,[i],\"always\"),this.markThunks(s,i)}isThunkBegin(t){return this.thunkStarts[t]===t}isThunkEnd(t){return!!this._isThunkEnd[t]}containingThunkName(t){return this.thunkStarts[t]}thunkEnd(t){return this.thunkEnds[t]}isEarlyReturningThunk(t){let n=this.parentFunctionStart[t];return this.isThunkBegin(t)&&n!==void 0}dependencyThunkNamesForPiecewiseBranch(t){return this.dependencyThunkNames[t]}wantToInlineThunk(t){let n=this.thunkSets[t];if(n!==\"always\"&&n.size===1){for(let r of n)if(this.piecewiseReferencedCount[r]!==1)return!1;return!0}return!1}printChunkWithThunkInfo(){for(let t=0;t<=this.chunk.getReturnIndex();t++){let n=this.thunkSets[t],r=n===\"always\"?\"always\":`{${[...n].sort().join(\",\")}}`;if(this.isThunkBegin(t)&&(r+=\" beginThunk\"),this.isThunkEnd(t))r+=\" endThunk\";else{let i=this.containingThunkName(t);i!==void 0&&(r+=` start:${i}`)}this.shouldInline[t]&&(r+=\"\t[inline]\"),this.chunk.comments[t]=r}return this.chunk.print(this.chunk.getReturnIndex())}markThunkSets(t,n,r,i){let{chunk:s,referenced:o,thunkSets:a,piecewiseReferencedCount:u}=this;for(let l of r)a[l]=\"always\";function c(l,p){let f=a[l];if(f!==\"always\"){if(p===\"always\"){a[l]=p;return}for(let m of p)f.add(m)}}for(let l=n;l>=t;l--){if(!o[l])continue;let p=s.getInstruction(l);if(be(p))continue;let f=a[l];if(Ti(p)){let m=p.args[0];this.markThunkSets(m+1,l-1,p.args.slice(1),f),l=m+1;continue}for(let m=0;m<p.args.length;m++){let g=p.args[m];if(g<t)c(g,i);else if(m>0&&p.type===33){let d=a[g];d!==\"always\"&&d.add(g);let y=u[g];u[g]=(y!=null?y:0)+1}else c(g,f)}}}markThunks(t,n){var a,u;let{chunk:r,thunkSets:i}=this,s,o;for(let c=t;c<=n;c=o){let l=r.getInstruction(c),p=nw(this.chunk,l),f,m;if(p){let g=c+1,d=p.innerEndIndex-1;this.markThunks(g,d),m=i[p.innerEndIndex],o=p.outerEndIndex+1,f=this.thunkDecision(s,c,this.referenced[p.innerEndIndex],l.type===21&&this.shouldInline[p.outerEndIndex],m)}else m=i[c],o=c+1,f=this.thunkDecision(s,c,this.referenced[c],this.shouldInline[c],m);if(s!==void 0&&f.shouldEndThunk&&(this.markEndThunk(c-1,s),s=void 0),f.shouldStartThunk&&m!==\"always\"){for(let g of m)(u=(a=this.dependencyThunkNames)[g])!=null||(a[g]=[]),this.dependencyThunkNames[g].push(c);s={start:c,set:m}}if(s!==void 0&&(this.thunkStarts[c]=s.start,p))for(let g=p.innerEndIndex;g<=p.outerEndIndex;g++)this.thunkStarts[g]=s.start}s!==void 0&&this.markEndThunk(n,s)}thunkDecision(t,n,r,i,s){let o=this.chunk.getInstruction(n);if(o.type===33&&(i=!1),i||!r)return{shouldEndThunk:!1,shouldStartThunk:!1};if(s===\"always\")return{shouldEndThunk:t!==void 0,shouldStartThunk:!1};let a=o.type===1||o.type===47,u=s.size>0&&!a,c=t!==void 0&&!tw(s,t.set);return{shouldEndThunk:c,shouldStartThunk:(c||t===void 0)&&u}}markEndThunk(t,n){let{referenced:r}=this;for(;t>=0&&!r[t];)t--;this._isThunkEnd[t]=!0,this.thunkEnds[n.start]=t}};function nw(e,t){if(ri(t)){let n=t.endIndex,r=e.getInstruction(n);if(r===void 0)return;if(Jm(r))return{outerEndIndex:n+r.args.length-1,innerEndIndex:n};if(r.type===54)return{outerEndIndex:n,innerEndIndex:n}}}function eu(e,t){return mc(e,[t],0,e.instructionsLength()-1)}function mc(e,t,n,r){let i=[];for(let o=n;o<=r;o++)i[o]=!1;for(let o of t)i[o]=!0;let s=Math.min(...t);for(let o=0;o<=1;o++){let a=!1;for(let u=s+1;u<e.instructionsLength();u++){let c=e.getInstruction(u);if(be(c)||i[u])continue;let l=!1;for(let p of e.getDirectDependencies(c))if(i[p]){l=!0;break}if(i[u]=l,l&&c.type===20&&!i[c.args[0]]){let p=c.args[0],f=c.args.length-1;for(let m=0;m<f;m++){let g=c.args[1+m],d=p+1+m;i[g]&&(i[d]=!0,a=!0)}}}if(!a)break}return i}function Km(e){for(let t=0;t<e.argCoeffs.length;t++)if(q(e.argCoeffs[0])!==0)return!1;return!0}var ey=De(0,1),Vv=De(1,1);function ty(e){if(e.op===\"&&\")return{op:\"||\",values:e.values.map(ty)};if(e.op===\"||\")return{op:\"&&\",values:e.values.map(ty)};switch(e.condition){case\">0\":return{op:\"comparator\",value:ii._neg(e.value),condition:\">=0\"};case\">=0\":return{op:\"comparator\",value:ii._neg(e.value),condition:\">0\"};case\"=0\":return{op:\"comparator\",value:e.value,condition:\"!=0\"};case\"!=0\":return{op:\"comparator\",value:e.value,condition:\"=0\"}}}function mT(e,t){let n=[];return e.op===\"&&\"?n.push(...e.values):n.push(e),t.op===\"&&\"?n.push(...t.values):n.push(t),{op:\"&&\",values:n}}var ii;(c=>{function e(l,p){if(!(l===void 0||p===void 0))return t(l,p)}c.add=e;function t(l,p){let f=[];for(let m=0;m<l.argCoeffs.length;m++)f.push(us(l.argCoeffs[m],p.argCoeffs[m]));return{argCoeffs:f,constantCoeff:us(l.constantCoeff,p.constantCoeff)}}c._add=t;function n(l,p){if(!(l===void 0||p===void 0))return r(l,p)}c.sub=n;function r(l,p){let f=[];for(let m=0;m<l.argCoeffs.length;m++)f.push(ji(l.argCoeffs[m],p.argCoeffs[m]));return{argCoeffs:f,constantCoeff:ji(l.constantCoeff,p.constantCoeff)}}c._sub=r;function i(l){if(l!==void 0)return s(l)}c.neg=i;function s(l){let p=[];for(let f=0;f<l.argCoeffs.length;f++)p.push(hi(l.argCoeffs[f]));return{argCoeffs:p,constantCoeff:hi(l.constantCoeff)}}c._neg=s;function o(l,p){if(l===void 0||p===void 0)return;let f=Km(l),m=Km(p);if(!f&&!m)return;m||([l,p]=[p,l]);let g=[];for(let d=0;d<l.argCoeffs.length;d++)g.push(cs(l.argCoeffs[d],p.constantCoeff));return{argCoeffs:g,constantCoeff:cs(l.constantCoeff,p.constantCoeff)}}c.mul=o;function a(l,p){if(l===void 0||p===void 0||!Km(p))return;let m=[];for(let g=0;g<l.argCoeffs.length;g++)m.push(Ji(l.argCoeffs[g],p.constantCoeff));return{argCoeffs:m,constantCoeff:Ji(l.constantCoeff,p.constantCoeff)}}c.div=a;function u(l,p){if(!(l===void 0||p===void 0||!Km(p)))return q(p.constantCoeff)===0?{argCoeffs:new Array(l.argCoeffs.length).fill(ey),constantCoeff:Vv}:q(p.constantCoeff)===1?l:void 0}c.pow=u})(ii||(ii={}));var ny=class{constructor(t,n,r,i){this.chunk=t;this.coefficientTable=[];this.conditionTable=[];this.ZERO_COEFFS=new Array(n.length).fill(ey),this.mask=mc(t,n,r,i);for(let s=0;s<n.length;s++){let o=[];for(let a=0;a<n.length;a++)o.push(s===a?Vv:ey);this.coefficientTable[n[s]]={argCoeffs:o,constantCoeff:ey}}}coeffs(t){let n=this.coefficientTable[t];if(n!==void 0)return n;let r,i=this.chunk.getInstruction(t);return i.type===1&&i.valueType===T?r={argCoeffs:this.ZERO_COEFFS,constantCoeff:i.value}:this.mask[t]?r=this._coeffs(t):r=void 0,this.coefficientTable[t]=r,r}_coeffs(t){let n=this.chunk.getInstruction(t);switch(n.type){case 8:{let[i,s]=n.args;return ii.add(this.coeffs(i),this.coeffs(s))}case 9:{let[i,s]=n.args;return ii.sub(this.coeffs(i),this.coeffs(s))}case 14:{let i=n.args[0];return ii.neg(this.coeffs(i))}case 10:{let[i,s]=n.args;return ii.mul(this.coeffs(i),this.coeffs(s))}case 11:{let[i,s]=n.args;return ii.div(this.coeffs(i),this.coeffs(s))}case 12:case 13:{let[i,s]=n.args;return ii.pow(this.coeffs(i),this.coeffs(s))}case 26:case 28:case 27:case 29:case 33:case 0:case 23:case 2:case 1:case 25:case 32:case 31:case 15:case 17:case 16:case 18:case 38:case 39:case 40:case 41:case 37:case 42:case 21:case 22:case 19:case 20:case 24:case 48:case 47:case 3:case 44:case 49:case 50:case 51:case 4:case 53:case 54:case 55:return;default:let r=n;throw new Error(`Unexpected opcode ${r.type}`)}}condition(t){let n=this.conditionTable[t];if(n!==void 0)return n;let r;return this.mask[t]?r=this._condition(t):r=void 0,this.conditionTable[t]=r,r}_condition(t){let n=this.chunk.getInstruction(t);switch(n.type){case 26:{let[i,s]=n.args,o=ii.sub(this.coeffs(s),this.coeffs(i));return o===void 0?void 0:{op:\"comparator\",value:o,condition:\">0\"}}case 28:{let[i,s]=n.args,o=ii.sub(this.coeffs(s),this.coeffs(i));return o===void 0?void 0:{op:\"comparator\",value:o,condition:\">=0\"}}case 27:{let[i,s]=n.args,o=ii.sub(this.coeffs(i),this.coeffs(s));return o===void 0?void 0:{op:\"comparator\",value:o,condition:\">0\"}}case 29:{let[i,s]=n.args,o=ii.sub(this.coeffs(i),this.coeffs(s));return o===void 0?void 0:{op:\"comparator\",value:o,condition:\">=0\"}}case 25:{let[i,s]=n.args,o=ii.sub(this.coeffs(i),this.coeffs(s));return o===void 0?void 0:{op:\"comparator\",value:o,condition:\"=0\"}}case 32:{let i=n.args.map(s=>this.condition(s));return i.some(s=>s===void 0)?void 0:{op:\"&&\",values:i}}case 31:{let i=n.args.map(s=>this.condition(s));return i.some(s=>s===void 0)?void 0:{op:\"||\",values:i}}case 8:case 9:case 14:case 10:case 11:case 12:case 13:case 33:case 0:case 23:case 2:case 1:case 15:case 17:case 16:case 18:case 38:case 39:case 40:case 41:case 37:case 42:case 21:case 22:case 19:case 20:case 24:case 48:case 47:case 3:case 44:case 49:case 50:case 51:case 4:case 53:case 54:case 55:return;default:let r=n;throw new Error(`Unexpected opcode ${r.type}`)}}};function Bv(e,t,n,r){let i=e.getInstruction(n.args[0]);if(i.recursionGroup.length>1)return[];let s=i.endIndex,o=e.getInstruction(s),a=new ny(e,r,t,s),u=[];for(let l=1;l<o.args.length;l++)u[o.args[l]]={op:\"&&\",values:[]};for(let l=s-1;l>t;l--){let p=u[l];if(p===void 0)continue;let f=e.getInstruction(l);if(!be(f))if(f.type===33){u[f.args[0]]=p;let m=a.condition(f.args[0]);m!==void 0&&(u[f.args[1]]=mT(p,m),u[f.args[2]]=mT(p,ty(m)))}else for(let m of f.args)u[m]=p}let c=[];e:for(let l=s-1;l>=t;l--){let p=e.getInstruction(l);if(p.type!==55)continue;let f=e.getInstruction(p.args[0]);if(l>f.endIndex)continue;let m=p.args.slice(1);if(m.length!==f.signature.argTypes.length)throw new Error(\"Programming error: Non-matching arg length\");let g=u[l];if(g!==void 0){if(g.op===\"&&\"&&g.values.length===0)throw new Error(\"Programming error: Recursive call unconditionally executed\");for(let d=0;d<m.length;d++){if(e.getInstruction(m[d]).valueType!==T)continue e;let y=a.coeffs(m[d]);if(y===void 0||!rw(y,d)||q(y.argCoeffs[d])<-1)continue e}c[l]=g}}return c}function rw(e,t){for(let n=0;n<e.argCoeffs.length;n++)if(n!==t&&q(e.argCoeffs[n])!==0)return!1;return!0}function Gv(e,t){if(t.recursionGroup.length>1)return!1;let n=t.endIndex,r=e.getInstruction(n);if(r.type!==54)throw new Error(\"Programming Error: end of BeginFunction is not EndFunction\");let[i,...s]=r.args;if(s.length!==1)return!1;let o=e.getInstruction(i);if(o.type!==53)throw new Error(\"Programming Error: start of EndFunction is not BeginFunction\");let a=o.args[0],u={};u[s[0]]=!0;for(let c=n-1;c>=i;c--){let l=e.getInstruction(c);switch(l.type){case 55:if(!u[c])return!1;if(l.args[0]!==a)throw new Error(\"recursionGroup.length == 1 contradicted\");break;case 33:u[c]&&(u[l.args[1]]=!0,u[l.args[2]]=!0);break;default:break}}return!0}function an(e){return`_${e}`}function _l(e){return`_${e}_thunk_computed`}function Ll(e){return`_${e}_thunk_function`}function ry(e){return`_${e}_next`}function yT(e,t){return`_${e}_${t}`}function gT(e){return`_${e}_inner`}function kv(e){return`_${e}_cache`}function zv(e){return`_${e}_key`}function iy(e){return`_${e}_computationMetrics`}function Hv(e){return`_${e}_out`}function Uv(e){return`_${e}_computationMetrics`}function qv(e){return`_${e}_cacheEntry`}function $v(e){return`_${e}_args`}function hf(e,t){return`_${e}_prev_${t}`}function Yv(e){return`_${e}_computationDepth`}function Xv(e){return`_${e}_computationCount`}var wl=class{constructor(t,n){this.chunk=t;this.glsl=n;this.inlinedSource=[];this.inlinedThunks=[];this.recursiveFunctionInfo=[];this.isTailFunction=[];let r=t.getReturnIndex();this.referenced=Yr(t,r),this._shouldInline=Fv(t,this.referenced),!this.glsl&&t.computeNeedsThunking()&&(this.thunks=new Qm(t,this.referenced,this._shouldInline));for(let i=0;i<=r;i++){let s=t.getInstruction(i);if(s.type===4){if(!this.referenced[i])continue;this.isTailFunction[i]=Gv(t,s),s.recursionGroup=s.recursionGroup.filter(o=>this.referenced[o])}}}isThunkBegin(t){return!!this.thunks&&this.thunks.isThunkBegin(t)}isThunkEnd(t){return!!this.thunks&&this.thunks.isThunkEnd(t)}isEarlyReturningThunk(t){return!!this.thunks&&this.thunks.isEarlyReturningThunk(t)&&this.inlinedThunks[t]===void 0}thunkName(t){var n;return(n=this.thunks)==null?void 0:n.containingThunkName(t)}thunkEnd(t){return this.thunks.thunkEnd(t)}shouldInline(t){return this._shouldInline[t]}inlineSource(t,n){this.inlinedSource[t]=n}wantToInlineThunk(t){return!!this.thunks&&this.thunks.wantToInlineThunk(t)}inlineThunk(t,n){this.inlinedThunks[t]=n}referenceArg(t){let n=this.inlinedSource[t];return n!==void 0?n:an(t)}referencePiecewiseBranch(t){var o;let n=this.referenceArg(t),r=(o=this.thunks)==null?void 0:o.dependencyThunkNamesForPiecewiseBranch(t);if(!r||r.length===0)return{expression:n,rawExpression:n,thunkDependencies:[]};let i=[],s=\"\";for(let a of r){let u=this.inlinedThunks[a];if(u!==void 0)s&&(s+=\",\"),s+=u;else{let c=_l(a),l=Ll(a),p=`${c}||${l}()`;s&&(s+=\",\"),s+=`${p}`}i.push(a)}return{expression:\"(\"+s+\",\"+n+\")\",rawExpression:n,thunkDependencies:i}}enterFunction(t,n,r){let i=t.args[0],s=this.chunk.getInstruction(i),o=[];for(let u=0;u<s.signature.argTypes.length;u++)o.push(n+u+1);let a=Bv(this.chunk,n,t,o);this.recursiveFunctionInfo.push({fn:i,argBlockvars:o,reachConditions:a,returnType:t.valueType,executionMode:r})}exitFunction(){this.recursiveFunctionInfo.pop()}};function Wv(e,t,n){let r=\"\",i=(e.instructionsLength()-1).toString().length,s=0,o=!1,a=Yr(e,t);for(let u=0;u<e.instructionsLength();u++){let c=e.getInstruction(u),l=n.comments[u]||\"\";if(Ti(c)&&(s-=1),!a[u]&&!n.printUnreferencedInstructions||c.type===0)o||(r+=`${Zv(u,i)}: ${bT(2*s)}...\n`),o=!0;else{o=!1;let p=`${Zv(u,i)}: ${bT(2*s)}${yc(e,u)}`;l&&(p+=\" \".repeat(Math.max(0,36-p.length)),p+=`\t# ${l}`),r+=p+`\n`}ri(c)&&(s+=1)}return r}function yc(e,t){let n=e.getInstruction(t);switch(n.type){case 0:return Ar(n.type);case 2:return`${Ar(n.type)} ${on(n.valueType)} ${e.argNames[t]}`;case 3:return`${Ar(n.type)} ${on(n.valueType)}`;case 1:return`${Ar(n.type)} ${on(n.valueType)} ${hT(n.value)}`;case 37:case 42:return`${Ar(n.type)} ${on(n.valueType)} ${n.symbol} ${n.args.join(\" \")}`;case 44:return`${Ar(n.type)} ${on(n.valueType)} ${n.tag} ${n.args.join(\" \")}`;case 48:return`${Ar(n.type)} ${on(n.valueType)} ${n.args.join(\" \")}`;case 17:case 18:return`${Ar(n.type)} ${on(n.valueType)} (${n.index}) ${n.args.join(\" \")}`;case 50:return`${Ar(n.type)} ${on(n.valueType)} ${n.args.join(\" \")} (${n.callData.parameterSymbols.join(\",\")})`;case 4:{let i=n.signature.argTypes.map(s=>on(s)).join(\", \");return`${Ar(n.type)} ${on(n.valueType)} ${n.symbol}(${i}) [group ${n.recursionGroup.join(\" \")}]`}case 8:case 9:case 10:case 11:case 13:case 12:case 14:case 15:case 16:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 32:case 31:case 33:case 38:case 39:case 40:case 41:case 47:case 49:case 51:case 53:case 54:case 55:return`${Ar(n.type)} ${on(n.valueType)} ${n.args.join(\" \")}`;default:let r=n;throw new Error(`Unexpected opcode ${r.type}`)}}function Ar(e){switch(e){case 0:return\"Noop\";case 1:return\"Constant\";case 8:return\"Add\";case 9:return\"Subtract\";case 10:return\"Multiply\";case 11:return\"Divide\";case 12:return\"Exponent\";case 13:return\"RawExponent\";case 14:return\"Negative\";case 15:return\"OrderedPair\";case 17:return\"OrderedPairAccess\";case 16:return\"OrderedTriple\";case 18:return\"OrderedTripleAccess\";case 19:return\"BeginLoop\";case 20:return\"EndLoop\";case 21:return\"BeginIntegral\";case 22:return\"EndIntegral\";case 23:return\"BeginBroadcast\";case 24:return\"EndBroadcast\";case 25:return\"Equal\";case 26:return\"Less\";case 27:return\"Greater\";case 28:return\"LessEqual\";case 29:return\"GreaterEqual\";case 31:return\"Or\";case 32:return\"And\";case 33:return\"Piecewise\";case 38:return\"List\";case 39:return\"ListAccess\";case 40:return\"DeferredListAccess\";case 41:return\"InboundsListAccess\";case 37:return\"NativeFunction\";case 42:return\"Distribution\";case 2:return\"LoadArg\";case 47:return\"BlockVar\";case 48:return\"BroadcastResult\";case 3:return\"SymbolicVar\";case 44:return\"ExtendSeed\";case 49:return\"Action\";case 50:return\"BeginMap\";case 51:return\"EndMap\";case 4:return\"FunctionHeader\";case 53:return\"BeginFunction\";case 54:return\"EndFunction\";case 55:return\"FunctionCall\";default:let t=e;throw new Error(`Unexpected opcode ${t.type}`)}}function hT(e){if(Array.isArray(e))return`[${e.map(hT).join(\",\")}]`;switch(typeof e){case\"string\":return e;case\"boolean\":case\"number\":return e.toString();case\"object\":if(Ja(e)){let t=[];for(let n in e.updateRules)t.push(`\"${n}\": ${hT(e.updateRules[n].value)}`);return`{${t.join(\", \")}}`}else return`${e.n}/${e.d}`;default:throw new Error(\"Unexpected value: \"+e)}}function Zv(e,t){let n=e.toString();return bT(t-n.length)+n}function bT(e){let t=\"\";for(let n=0;n<e;n++)t+=\" \";return t}function Jv(e,t,n,r){let i=t.reachConditions[n];if(i!==void 0)return Qv(e,t,r,i)}function Qv(e,t,n,r){let i=t.argBlockvars;if(r.op===\"||\"||r.op===\"&&\"){let s=[];for(let o of r.values){let a=Qv(e,t,n,o);if(a===void 0)return;s.push(a)}return s.length===0?r.op===\"&&\"?\"true\":\"false\":`(${s.join(r.op)})`}switch(r.condition){case\">0\":case\">=0\":{let o=`(${jv(e,r.value,i)}${r.condition})`,a=xT(e,r.value,i,n);return`(${o}&&${a})`}case\"!=0\":{let s=jv(e,r.value,i),o=`(${s}>0)`,a=xT(e,r.value,i,n),u=`(${s}<0)`,c=xT(e,ii._neg(r.value),i,n);return`((${o}&&${a})||(${u}&&${c}))`}case\"=0\":return}}function xT(e,t,n,r){let i=[];for(let s=0;s<n.length;s++){let o=q(t.argCoeffs[s]),a=e.referenceArg(n[s]),u=e.referenceArg(r[s]);o>0?i.push(`${u}>=${a}`):o<0&&i.push(`${u}<=${a}`)}return i.length===0?!0:`(${i.join(\"&&\")})`}function jv(e,t,n){let r=\"\";for(let i=0;i<n.length;i++){let s=e.printValue(t.argCoeffs[i],T),o=e.referenceArg(n[i]);r+=`${s}*${o}+`}return r+=e.printValue(t.constantCoeff,T),`(${r})`}var zt;(r=>(r.Noop=0,r.Inline=1,r.Block=2))(zt||(zt={}));function PT(e){switch(e.type){case zt.Noop:return\"\";case zt.Inline:return e.source+`;\n`;case zt.Block:return e.source}}function bt(e){return e.type===1}function Kv(e){if(!bt(e))throw new Error(`Programming error: expected constant instruction but found ${Ar(e.type)} instead.`)}var IT=class{constructor(t,n){this.chunk=t;this.recursiveFunctionGroup=n;this.referencesFrom={};this.referencesTo={};this.baseCases={};for(let c of Object.values(n))this.referencesFrom[c]=[],this.referencesTo[c]=[],this.baseCases[c]=[];let{dependsOnRecursiveCall:r,iterationParameterIndex:i,recursiveReferences:s}=aw(this.chunk,this.recursiveFunctionGroup);for(let c of s)this.referencesFrom[c.from].push(c),this.referencesTo[c.to].push(c);this.iterationParameterIndex=i;let{baseCases:o,isEveryBranchRecursiveOrBaseCase:a,isUnconditionallyRecursive:u}=ow(t,n,r,i);this.isEveryBranchRecursiveOrBaseCase=a,this.isUnconditionallyRecursive=u;for(let c of o)this.baseCases[c.fn].push(c)}hasRecursiveReferences(){for(let t of Object.values(this.referencesFrom))if(t.length>0)return!0;return!1}getBaseCasesForFunction(t){return this.baseCases[t]}getReferencesFrom(t){return this.referencesFrom[t]}getReferencesTo(t){return this.referencesTo[t]}getAllReferences(){let t=[];for(let n of Object.values(this.referencesFrom))t.push(...n);return t}};function sw(e,t,n){if(t===void 0)return;let r=e.getInstruction(n),i=e.getInstruction(r.args[0]);if(i.type!==25)return;let[s,o]=i.args,a;if(s===t)a=o;else if(o===t)a=s;else return;let u=e.getInstruction(a);if(bt(u)&&u.valueType===T)return u.value}function ow(e,t,n,r){let i=[],s=!0,o=!0;for(let a in t){let u=t[a],l=e.getInstruction(u).endIndex,f=e.getInstruction(l).args[0],m=r!==void 0?f+r+1:void 0,g={[l]:!0};for(let d=l;d>f;d--){if(!g[d])continue;let y=e.getInstruction(d);if(!be(y)){if(y.type===33){let h=y.args[1],b=y.args[2];if(!n[h]||!n[b]){s=!1;let P=sw(e,m,d);P!==void 0&&!n[h]?i.push({fn:u,argValue:P}):o=!1}}for(let h of y.args)g[h]=!0}}}return i.sort((a,u)=>q(a.argValue)-q(u.argValue)),{baseCases:i,isUnconditionallyRecursive:s,isEveryBranchRecursiveOrBaseCase:o}}var TT=Symbol(\"NON_ITERATIVE\");function aw(e,t){let n=new Set(Object.values(t)),r={},i=[],s;for(let o in t){let a=t[o],c=e.getInstruction(a).endIndex,p=e.getInstruction(c).args[0],f=Yr(e,c);for(let m=p;m<c;m++){let g=e.getInstruction(m);if(!be(g)&&f[m]){if(g.type===55&&n.has(g.args[0])){r[m]=!0;let d=ET(e,p,g);d?(d.iterationParameterIndex!==void 0&&(s!==void 0&&s!==d.iterationParameterIndex?s=TT:s=d.iterationParameterIndex),i.push(d.ref)):s=TT}for(let d of e.getDirectDependencies(g))if(r[d]){r[m]=!0;break}}}}return s===void 0&&Object.values(t).every(o=>e.getInstruction(o).signature.argTypes.length===1)&&(s=0),{dependsOnRecursiveCall:r,iterationParameterIndex:s===TT?void 0:s,recursiveReferences:i}}function ET(e,t,n){let r=e.getInstruction(t),i,s;for(let o=1;o<n.args.length;o++){let a=n.args[o],u=e.getInstruction(a),c,l;if(u.type===9&&i===void 0){let m=e.getInstruction(u.args[1]);if(!(m.type===1&&m.valueType===T))return;l=q(m.value),c=u.args[0]}else l=0,c=a;let p=e.getInstruction(c);if(!(p.type===47&&p.args[0]===t&&o===c-t)||l!==Math.floor(l)||l<0)return;if(i===void 0)s=l,l!==0&&(i=o-1);else if(l!==0)return}if(s!==void 0)return{ref:{from:r.args[0],to:n.args[0],iterationParameterOffset:s},iterationParameterIndex:i}}function eD(e,t){var c,l;let n=new IT(e,t),r={};for(let p in n.recursiveFunctionGroup){let f=n.recursiveFunctionGroup[p],m=n.getBaseCasesForFunction(f);if(m.length===0)continue;let g=q(m[0].argValue),d=1;for(;d<m.length&&q(m[d].argValue)===q(m[d-1].argValue)+1;)d++;let y=m.slice(d).map(h=>q(h.argValue));r[p]={min:g,consecutiveCount:d,additional:y}}let i={},s=-1/0,o=1/0;if(n.iterationParameterIndex!==void 0&&n.isEveryBranchRecursiveOrBaseCase){let p=new Map;for(let f of Object.values(n.recursiveFunctionGroup)){let m=e.getInstruction(f).symbol,g=-1/0;for(let d of n.getReferencesTo(f))g=Math.max(g,d.iterationParameterOffset);if(isFinite(g)&&(i[m]=g),g>0){let d=r[e.getInstruction(f).symbol],y=(c=d==null?void 0:d.min)!=null?c:-1/0;p.set(f,{min:y+g,max:y+((l=d==null?void 0:d.consecutiveCount)!=null?l:0)})}}for(let{min:f,max:m}of p.values())s=Math.max(s,f),o=Math.min(o,m)}let a={};for(let p in n.recursiveFunctionGroup){let f=n.recursiveFunctionGroup[p],m=e.getInstruction(f);a[p]=m.parameterSymbols}let u={};for(let p in n.recursiveFunctionGroup){let f=n.recursiveFunctionGroup[p],m=e.getInstruction(f);u[p]=m.signature.argTypes.map((g,d)=>d===n.iterationParameterIndex&&n.isEveryBranchRecursiveOrBaseCase&&!n.isUnconditionallyRecursive?1:0)}if(n.iterationParameterIndex!==void 0&&isFinite(s)&&s<=o){let p=uw(n);return{canIterate:!0,parameterSymbols:a,baseCaseInfo:r,maxRecursiveCallOffsets:i,iterationParameterIndex:n.iterationParameterIndex,domainInfo:u,loopStart:s,order:p}}else return{canIterate:!1,parameterSymbols:a,baseCaseInfo:r,maxRecursiveCallOffsets:i,iterationParameterIndex:n.iterationParameterIndex,domainInfo:u}}function uw(e){if(e.iterationParameterIndex===void 0)throw J(\"Programming error: no recursive parameter\");let n=Object.values(e.recursiveFunctionGroup),r=new Map,i=new Map,s=u=>{let c=new Set;for(let l of e.getReferencesTo(u))l.iterationParameterOffset===0&&c.add(l.from);return[...c]};n.forEach(u=>{let c=s(u);r.set(u,c);for(let l of c)i.set(l,(i.get(l)||0)+1);i.has(u)||i.set(u,0)});let o=[];i.forEach((u,c)=>{u===0&&o.push(c)});let a=[];for(;o.length>0;){let u=o.shift();a.push(u),(r.get(u)||[]).forEach(l=>{let p=l,f=i.get(p)-1;i.set(p,f),f===0&&o.push(p)})}if(a.length!==n.length)throw fb();return a}function sy(e,t){let n;for(let o=t,a=0;o>0;o--){let u=e.getInstruction(o);if(u.type===53&&a===0){n=o;break}u.type===54&&a++,u.type===53&&a--}if(n===void 0)return!1;let r=e.getInstruction(t),i=e.getInstruction(r.args[0]),s=e.getInstruction(n).args[0];return i.recursionGroup.includes(s)}function tD(e,t,n){if(e.glsl)throw J(\"GLSL function not implemented\");let{chunk:r,referenced:i}=e,s=t.args[0],o=r.getInstruction(s),a=o.signature.argTypes;if(e.isTailFunction[s])return{type:zt.Noop,nextIdx:o.endIndex+1};e.enterFunction(t,n,0);let u=\"\";for(let c=0;c<a.length;c++){let l=n+c+1;i[l]&&(u+=`${an(l)}=${yT(s,c)};\n`)}return{type:zt.Block,source:cw(e,t,n,u),nextIdx:n+1}}function cw(e,t,n,r){let{chunk:i}=e,s=t.args[0],o=i.getInstruction(s),a=o.signature.argTypes,u=\"\";for(let m=0;m<a.length;m++)m>0&&(u+=\",\"),u+=yT(s,m);let c=gT(s),l=kv(s),p=zv(s),f=iy(s);return`\n const ${p}=${a.length===1&&o.signature.argTypes[0]===T?\"({fn, args}) => `${fn}:${args[0]}`\":\"({fn, args}) => `${fn}:${JSON.stringify(args)}`\"};\n\n const ${c}=((${l}, ${u}) => {\n ${Fl(e,n+1,o.endIndex-1)}\n const ${f} = {depth: 0, count: 0};\n const cache = ${l};\n ${r}\n `}function nD(e,t,n){let r=n+1,i=t.args[0],o=e.chunk.getInstruction(i).args[0];if(e.isTailFunction[o])throw J(\"Unexpected tail recursive function\");let a=lw(e,t),{referenced:u}=e;return u[n]&&(a+=`${an(n)}=${e.referenceArg(t.args[0])};\n`),e.exitFunction(),{type:zt.Block,source:a,nextIdx:r}}function lw(e,t){let n=t.args[0],r=e.chunk.getInstruction(n),i=r.args[0],s=Hv(i),o=iy(i),a=r.valueType;return`\n${o}.count++;\n${o}.depth++;\nlet ${s};\nif ((${o}.depth > BuiltIn.RECURSIVE_DEPTH_LIMIT) || (${o}.count > BuiltIn.RECURSIVE_COMPUTATION_LIMIT)) {\n ${s}=BuiltIn.handleRecursionLimitExceeded(__meta, ${a});\n} else {\n ${s}=${e.referenceArg(t.args[1])};\n}\nreturn BuiltIn.recursionSuccess(${s},${o});\n});\n`}function bf(e,t){return`{ fn: ${e}, args: ${t} }`}function rD(e,t,n){let r=n+1,{chunk:i}=e,s=t.args[0],o=i.getInstruction(s),u=i.getInstruction(o.endIndex).args[0],c=t.args.slice(1).map(y=>e.referenceArg(y)),l=an(n),p=$v(n),f=Uv(n),m=qv(n),g=i.getInstruction(u),d=i.getInstruction(g.args[0]);if(sy(i,n)){if(e.recursiveFunctionInfo.length<1)throw J(\"Expected recursive function info\");let y=e.recursiveFunctionInfo[e.recursiveFunctionInfo.length-1],h=\"\",b=Jv(e,y,n,t.args.slice(1));if(e.isTailFunction[s]){let I=g.valueType;b&&(h=`\nif (${b}) {\n return BuiltIn.recursionDiverges(__meta, ${I});\n }`);let E=d.signature.argTypes,v=h+`\n`;v+=\"looping=true\";for(let O=0;O<E.length;O++){let A=ry(u+O+1);v+=`,\n${A}=${c[O]}`}return h?{type:zt.Block,source:v+`;\n`,nextIdx:r}:{type:zt.Inline,source:v,nextIdx:r}}else if(y.executionMode===1){let I=i.getInstruction(i.getInstruction(y.fn).endIndex),E=ET(i,I.args[0],t);if(!E)throw J(\"Expected valid iteration reference\");let v=hf(E.ref.to,E.ref.iterationParameterOffset);return{type:zt.Inline,source:`${l}=${v}`,nextIdx:r}}b&&(h=`\nif (${b}) {\n return BuiltIn.SYMBOL_DIVERGES;\n }`);let x=iy(y.fn),P=bf(s,p),M=`\n const ${p} = ([${c.join(\",\")}]);\n ${h}\n const ${m} = cache.get(BuiltIn.recursionCacheKey(${P}));\n if (${m} === undefined) {\n return BuiltIn.recursionMissingCacheEntry(${P});\n }\n ${l} = ${m}[0];\n const ${f} = ${m}[1];\n if (${f}.count > ${x}.count) {\n ${x}.count = ${f}.count;\n }\n if (${f}.depth > ${x}.depth) {\n ${x}.depth = ${f}.depth;\n }\n `;return{type:zt.Block,source:M,nextIdx:r}}else{let y=`{${d.recursionGroup.map(P=>`${P}: ${gT(P)}`).join(\",\")}}`,h=e.chunk.getRecursionStructure(g.args[0]);if(e.isTailFunction[s])return pw(e,t,n);if(h.canIterate)return fw(e,t,n,h,{innerFunctionsMap:y});let b=bf(s,`[${c.join(\",\")}]`),x=`${l}=BuiltIn.executeRecursiveFunction(\n __meta,\n ${y},\n ${g.valueType},\n ${b}\n )`;return{type:zt.Inline,source:x,nextIdx:r}}}var iD=Symbol(\"UPDATED_IN_BODY\");function sD(e){let t=\"\";for(let n of e){let r=\"declare\"in n?`let ${n.declare}`:an(n.reference),i=n.initializeRHS;t+=`${r}=${i};\n`}return t}function oD(e){let t=\"\",n=\"\";for(let r of e){let i=\"declare\"in r?r.declare:an(r.reference);r.updateRHS!==iD&&(t&&(t+=\",\",n+=\",\"),t+=`${i}`,n+=`${r.updateRHS}`)}return`[${t}]=[${n}]`}function pw(e,t,n){let r=t.args[0],i=e.chunk.getInstruction(r),s=e.chunk.getInstruction(i.endIndex),o=s.args[0],a=e.chunk.getInstruction(o),u=a.valueType,c=an(n),l=[];e.enterFunction(a,o,2);let p=oy(e,o,i.endIndex).source;e.exitFunction();let f=Yv(n),m=Xv(n);l.push({declare:f,initializeRHS:\"0\",updateRHS:`${f}+1`},{declare:m,initializeRHS:\"0\",updateRHS:`${m}+1`});for(let d=1;d<t.args.length;d++){let y=o+d;if(!e.referenced[y])continue;let h=ry(y);l.push({reference:y,initializeRHS:e.referenceArg(t.args[d]),updateRHS:h},{declare:h,initializeRHS:void 0,updateRHS:iD})}let g=`${c}=(() => {\n ${Fl(e,o+1,i.endIndex-1)}\n\n let looping = true;\n ${sD(l)}\n while (looping) {\n looping = false;\n\n ${p}\n\n if (looping) {\n ${oD(l)}\n }\n\n if ((${f} > BuiltIn.RECURSIVE_DEPTH_LIMIT) || (${m} > BuiltIn.RECURSIVE_COMPUTATION_LIMIT)) {\n return BuiltIn.handleRecursionLimitExceeded(__meta, ${u});\n };\n }\n\n return ${e.referenceArg(s.args[1])}\n })()`;return{type:zt.Inline,source:g,nextIdx:n+1}}function fw(e,t,n,r,i){let s=t.args[0],o=e.chunk.getInstruction(s),a=e.chunk.getInstruction(o.endIndex),u=a.args[0],c=an(n),l=[],p=\"\",f,{iterationParameterIndex:m,loopStart:g,order:d}=r,y=r.maxRecursiveCallOffsets,h=u+m+1,b=an(h),x=t.args[m+1],P=`(${g})`,M=e.chunk.getInstruction(x),I=(M.type===39||M.type===41)&&e.chunk.getInstruction(M.args[1]).type===23?M.args[0]:void 0,E=`(${e.referenceArg(x)})-${P}`,v,O;if(I!==void 0){let z=e.referenceArg(I);v=`BuiltIn.listMax(\n (${z}).filter(\n x => isFinite(x) &&\n Math.floor(x - ${P}) === (x - ${P})\n )\n )`,O=`BuiltIn.getBroadcastTargetElements(${z}).has(${b})`}else v=`(${e.referenceArg(x)})`,O=\"false\";l.push({reference:h,initializeRHS:`(${P})`,updateRHS:`${b}+1`}),f=\"\";for(let z of d){let G=e.chunk.getInstruction(z),$=G.endIndex,w=e.chunk.getInstruction($),Y=w.args[0],de=e.chunk.getInstruction(Y);for(let ie=1;ie<t.args.length;ie++){let Z=Y+ie;if(!e.referenced[Z])continue;let Re=an(Z);ie===m+1?f+=`${Re}=${e.referenceArg(h)};\n`:p+=`${Re}=${e.referenceArg(t.args[ie])};\n`}p+=Fl(e,Y+1,G.endIndex-1);let re=y[G.symbol];if(re!==void 0)for(let ie=1;ie<=re;ie++){let Z=hf(z,ie),Re=ie===1?e.referenceArg(w.args[1]):hf(z,ie-1),Ne=t.args.slice(1).map((Q,U)=>U===m?g-ie:e.referenceArg(Q)),Te=bf(z,`[${Ne.join(\",\")}]`),Me=`BuiltIn.executeRecursiveFunction(\n __meta,\n ${i.innerFunctionsMap},\n ${de.valueType},\n ${Te}\n )`,ve=`(\n broadcastOutputMap\n ? (broadcastOutputMap[BuiltIn.recursionCacheKey(${Te})] = ${Me})\n : ${Me}\n )`;l.push({declare:Z,initializeRHS:ve,updateRHS:Re})}e.enterFunction(de,Y,1),f+=oy(e,Y,G.endIndex).source,e.exitFunction(),f+=`const ${hf(z,0)}=${e.referenceArg(w.args[1])};\n`}let A=t.args.slice(1).map(z=>e.referenceArg(z)),N=t.args.slice(1).map((z,G)=>G===m?b:e.referenceArg(z)),L=`${c}=(() => {\n ${p}\n const broadcastOutputMap = ${I!==void 0?\"__meta.iterativeRecursionOutputs\":\"undefined\"};\n\n ${sD(l)}\n\n const outerStackFrame = ${bf(s,`[${A.join(\",\")}]`)};\n\n if (broadcastOutputMap) {\n const cacheEntry = broadcastOutputMap[BuiltIn.recursionCacheKey(outerStackFrame)];\n if (cacheEntry !== undefined) {\n return cacheEntry;\n }\n }\n\n\n const targetLoopSteps = ${E}\n if (targetLoopSteps < 0 || Math.floor(targetLoopSteps) !== targetLoopSteps) {\n return BuiltIn.executeRecursiveFunction(\n __meta,\n ${i.innerFunctionsMap},\n ${o.valueType},\n outerStackFrame\n );\n }\n\n const loopEnd = ${v};\n\n let result;\n while (true) {\n ${f}\n\n result = ${e.referenceArg(a.args[1])};\n\n if (broadcastOutputMap && ${O}) {\n const key = BuiltIn.recursionCacheKey(${bf(s,`[${N.join(\",\")}]`)});\n broadcastOutputMap[key] = result;\n }\n\n if (${b} < loopEnd) {\n ${oD(l)}\n } else {\n break;\n }\n }\n\n ${I===void 0?\"return result;\":`const cached = broadcastOutputMap[BuiltIn.recursionCacheKey(outerStackFrame)];\n if (cached === undefined) {\n return BuiltIn.recursionDiverges(__meta, ${o.valueType});\n }\n return cached;\n `}\n })()`;return{type:zt.Inline,source:L,nextIdx:n+1}}function ay(e){let{chunk:t}=e,n=Fl(e,t.argNames.length,t.instructionsLength()-1),r=0;for(;r<t.instructionsLength();){let i=t.getInstruction(r),s=MT(e,i,r);n+=PT(s),r=s.nextIdx}return n+=`return ${e.referenceArg(t.getReturnIndex())};`,n}function dw(e,t){let{chunk:n}=e,r=[],i=e.thunkName(t),s=e.thunkEnd(i),o=_l(i),a=Ll(i),u=\"\",c=!1,l=!1;e.wantToInlineThunk(i)||(l=!0);let p=t;for(;p<=s;){let f=n.getInstruction(p),m=p===t?aD(e,f,p):MT(e,f,p);switch(m.type){case zt.Noop:break;case zt.Inline:c&&(u+=`,\n`),u+=m.source,c=!0;break;case zt.Block:c&&(u+=`;\n`),c=!1,u+=m.source,l=!0;break}r.push(u),p=m.nextIdx}if(u===\"\"&&(u=\"0\",l=!1),l){let f=`${o}=false;${a}=()=>{\n${o}=true;\n\n ${u}${c?\";\":\"\"}\n };\n`;return{type:zt.Block,source:f,nextIdx:p}}else return e.inlineThunk(i,u),{type:zt.Noop,nextIdx:p}}function MT(e,t,n){return e.isThunkBegin(n)?dw(e,n):aD(e,t,n)}function aD(e,t,n){let r=n+1;if(!e.referenced[n])return{type:zt.Noop,nextIdx:r};switch(t.type){case 0:case 47:case 48:case 22:case 49:case 4:return{type:zt.Noop,nextIdx:r};case 21:if(e.glsl)throw ux();return yw(e,t,n);case 2:return e.inlineSource(n,e.chunk.argNames[n]),{type:zt.Noop,nextIdx:r};case 23:return{type:zt.Block,source:gw(e,t,n),nextIdx:r};case 24:return{type:zt.Block,source:hw(e,t,n),nextIdx:r};case 19:return{type:zt.Block,source:bw(e,t,n),nextIdx:r};case 20:return{type:zt.Block,source:xw(e,t,n),nextIdx:r};case 50:return{type:zt.Block,source:Pw(e,t,n),nextIdx:r};case 51:return{type:zt.Block,source:Tw(e,t,n),nextIdx:r};case 53:return tD(e,t,n);case 54:return nD(e,t,n);case 33:{let i=e.referenceArg(t.args[0]),s=e.referencePiecewiseBranch(t.args[1]),o=e.referencePiecewiseBranch(t.args[2]);if(!(s.thunkDependencies.some(p=>e.isEarlyReturningThunk(p))||o.thunkDependencies.some(p=>e.isEarlyReturningThunk(p)))){let p=e.emitTernary(i,s.expression,o.expression,t);return e.shouldInline(n)?(e.inlineSource(n,`(${p})`),{type:zt.Noop,nextIdx:r}):{type:zt.Inline,source:`${an(n)}=${p}`,nextIdx:r}}let u=an(n),c=p=>{if(p.length===0)return\"\";let f=\"\";for(let m of p){let g=e.inlinedThunks[m];if(g!==void 0){let d=`(${g},void 0)`;f!==\"\"?f=`(${f}||${d})`:f=d}else{let d=_l(m),y=Ll(m);f!==\"\"&&(f+=\"||\"),f+=`(${d} ? undefined : ${y}())`}}return f=\"const earlyReturn =\"+f,f+=`;\nif (earlyReturn !== undefined) return earlyReturn;\n`,f},l=`if (${i}) {\n ${c(s.thunkDependencies)}${u} = ${s.rawExpression};\n } else {\n ${c(o.thunkDependencies)}${u} = ${o.rawExpression};\n }`;return{type:zt.Block,source:l,nextIdx:r}}case 55:return rD(e,t,n);default:{let i=Iw(e,t);return e.shouldInline(n)?(e.inlineSource(n,`(${i})`),{type:zt.Noop,nextIdx:r}):{type:zt.Inline,source:`${an(n)}=${i}`,nextIdx:r}}}}function oy(e,t,n){let{chunk:r,referenced:i}=e,s=\"\",o=t+1;for(;o<n;){if(!i[o]){o=o+1;continue}let a=r.getInstruction(o),u=MT(e,a,o);s+=PT(u),o=u.nextIdx}return{type:zt.Block,source:s,nextIdx:o}}function mw(e,t,n){let{endIndex:r}=t,{chunk:i}=e,s=`function(${an(n)}) {\n`,o=n+1,a=r-1;s+=Fl(e,o,a),s+=oy(e,n,r).source;let u=i.getInstruction(r);return s+=`return ${e.referenceArg(u.args[1])};\n}`,s}function yw(e,t,n){let r=\"BuiltIn.quad(\";r+=mw(e,t,n),r+=`,${e.referenceArg(t.args[0])},${e.referenceArg(t.args[1])})`;let{endIndex:i}=t,s=i+1;return e.shouldInline(s)?(e.inlineSource(s,r),{type:zt.Noop,nextIdx:t.endIndex}):{type:zt.Inline,source:`${an(i+1)}=${r}`,nextIdx:t.endIndex}}function Fl(e,t,n){let{chunk:r,referenced:i}=e,s=\"\",o=!1;for(let a=t;a<=n;a++){if(!e.glsl&&e.isThunkBegin(a)){let c=e.thunkName(a);s+=`${o?\",\":\"var \"}${_l(c)}`,s+=`,${Ll(c)}`,o=!0}let u=r.getInstruction(a);if(!(u.type===0||u.type===24||u.type===20||!i[a])){if(u.type===21){let{endIndex:c}=u;a=c,e.shouldInline(c+1)&&a++;continue}if(!e.shouldInline(a)&&(s+=e.emitVarDeclaration(a,o),o=!0,u.type===53)){let{endIndex:c}=u;a=c-1;continue}}}return o&&(s+=`;\n`),s}function gw(e,t,n){let{glsl:r,chunk:i,referenced:s}=e,o=an(n),a=i.getInstruction(t.endIndex),u=e.referenceArg(t.args[0]),c=\"\";for(let p=1;p<a.args.length;p++){let f=t.endIndex+p;if(!s[f]||i.getInstruction(f).type!==48)continue;let g=an(f);r||(c+=`${g}=[];\n`)}return r||(c+=`if(${u}>${1e4}) throw ErrorMsg.maxListSize();\n`),c+=`for(${o}=1${r?\".0\":\"\"};${o}<=${u};${o}++){\n`,c}function hw(e,t,n){let{glsl:r,chunk:i,referenced:s}=e,o=\"\";for(let a=1;a<t.args.length;a++){let u=n+a;if(u>=i.instructionsLength()||!s[u]||i.getInstruction(u).type!==48)continue;let c=an(n+a),l=e.referenceArg(t.args[a]);if(r){let p=e.referenceArg(t.args[0]);o+=`${c}[int(${p})-1]=${l};\n`}else o+=`${c}.push(${l});\n`}return o+=`}\n`,o}function bw(e,t,n){let{chunk:r,referenced:i}=e,s=an(n);e.beforeBeginLoop(t);let o=`${e.referenceArg(t.args[0])}`,a=`${e.referenceArg(t.args[1])}`,u=`if(${o}>${a}){\n`;for(let c=2;c<t.args.length;c++){let l=t.endIndex+c-1;if(l>=r.instructionsLength()||!i[l]||r.getInstruction(l).type!==47)continue;let p=an(l);u+=`${p}=${e.referenceArg(t.args[c])};\n`}u+=e.checkFiniteBounds(t,o,a),u+=`}else{\n`;for(let c=2;c<t.args.length;c++){let l=n+c-1;if(!i[l]||r.getInstruction(l).type!==47)continue;let p=an(l);u+=`${p}=${e.referenceArg(t.args[c])};\n`}return u+=`${s}=${o};\n`,u+=\"while (true) {\",u}function xw(e,t,n){let{chunk:r,referenced:i}=e,s=r.getInstruction(t.args[0]),o=`${e.referenceArg(s.args[1])}`,a=an(t.args[0]),u=`${a}++;`;u+=`if (${a}<=${o}) {\n`;let c={};for(let l=1;l<t.args.length;l++){let p=t.args[0]+l;if(!i[p]||r.getInstruction(p).type!==47)continue;let f=an(p),m=e.referenceArg(t.args[l]);c[f]=m}for(let l in c){let p=c[l];c[p]&&(u+=`const _next_${l}=${p};\n`,c[l]=`_next_${l}`)}for(let l in c){let p=c[l];u+=`${l}=${p};\n`}u+=`} else {\n`;for(let l=1;l<t.args.length;l++){let p=n+l;if(p>=r.instructionsLength()||!i[p]||r.getInstruction(p).type!==47)continue;let f=an(p);u+=`${f}=${e.referenceArg(t.args[l])};\n`}return u+=`break;\n`,u+=`}\n}\n`,u+=`}\n`,u}function Pw(e,t,n){let{glsl:r}=e;if(r)throw J(\"GLSL map not implemented yet\");let i=an(t.endIndex+1),s=[];for(let a=0;a<t.callData.parameterSymbols.length;a++){let u=an(n+a+1);s.push(u)}let o=s.join(\",\");return`${i}=(${o}) => {\n`}function Tw(e,t,n){let r=`return ${e.referenceArg(t.args[1])}`;return r+=`}\n`,r}function Iw(e,t){switch(t.type){case 1:return e.emitConstant(t);case 8:case 9:case 10:case 11:case 12:case 13:case 25:case 26:case 27:case 28:case 29:case 31:case 32:return e.emitBinary(t,e.referenceArg(t.args[0]),e.referenceArg(t.args[1]));case 14:{let r=e.referenceArg(t.args[0]);return e.emitNeg(r)}case 15:return e.emitVec2(e.referenceArg(t.args[0]),e.referenceArg(t.args[1]));case 16:return e.emitVec3(e.referenceArg(t.args[0]),e.referenceArg(t.args[1]),e.referenceArg(t.args[2]));case 17:case 18:return e.emitVecAccess(e.referenceArg(t.args[0]),t.index);case 38:return e.emitList(t.args.map(r=>e.referenceArg(r)),t);case 40:case 42:case 3:throw new Error(`Programming Error: expect ${Ar(t.type)} to be removed before emitting code.`);case 39:{let r=t.valueType;return e.emitListAccess(e.referenceArg(t.args[0]),e.referenceArg(t.args[1]),e.printValue($r(r),r),t)}case 41:return e.emitInboundsListAccess(e.referenceArg(t.args[0]),e.referenceArg(t.args[1]));case 37:return e.emitNativeFunction(t.args.map(r=>e.referenceArg(r)),t);case 44:return e.emitExtendSeed(e.referenceArg(t.args[0]),e.referenceArg(t.args[1]),t.tag);case 2:case 0:case 21:case 22:case 19:case 20:case 23:case 24:case 47:case 48:case 49:case 50:case 51:case 53:case 54:case 33:case 55:case 4:throw new Error(`Unexpected opcode ${t.type}`);default:let n=t;throw new Error(`Unexpected opcode ${n.type}`)}}function uy(e){let t=new vT(e),n=ay(t);return t.finish(n)}var vT=class extends wl{constructor(n){super(n,!1);this.constants=[]}finish(n){return{source:n,constants:this.constants}}printValue(n){return uD(n)}beforeBeginLoop(){}checkFiniteBounds(n,r,i){let s=`}else if(!isFinite(${i}-${r})){\n`;for(let o=2;o<n.args.length;o++){let a=n.endIndex+o-1;if(a>=this.chunk.instructionsLength()||!this.referenced[a])continue;let u=this.chunk.getInstruction(a);if(u.type!==47)continue;let c=an(a);uo(u.valueType)?s+=`${c}=${this.printValue($r(u.valueType))};\n`:s+=`throw new Error('Cannot set ${c} of type ${on(u.valueType)} to NaN value');\n`}return s}emitConstant(n){return n.valueType===T||n.valueType===ge||n.valueType===R||n.valueType===V?this.printValue(n.value):(this.constants.push(ao(n.value)),`_C[${this.constants.length-1}]`)}emitNeg(n){return`-${n}`}emitTernary(n,r,i){return`${n}?${r}:${i}`}emitVec2(n,r){return`[${n},${r}]`}emitVec3(n,r,i){return`[${n},${r},${i}]`}emitVecAccess(n,r){return`${n}[${r-1}]`}emitBinary(n,r,i){switch(n.type){case 8:return`${r}+${i}`;case 9:return`${r}-${i}`;case 10:return`${r}*${i}`;case 11:return`${r}/${i}`;case 12:return`BuiltIn.pow(${r},${i})`;case 13:return`Math.pow(${r},${i})`;case 25:return`${r}===${i}`;case 26:return`${r}<${i}`;case 28:return`${r}<=${i}`;case 27:return`${r}>${i}`;case 29:return`${r}>=${i}`;case 31:return`${r}||${i}`;case 32:return`${r}&&${i}`;default:throw new Error(\"Programming Error: invalid binary opcode.\")}}emitList(n){return`[${n.join(\",\")}]`}emitListAccess(n,r,i){let s=`${n}.length`,o=`Math.floor(${r})`;return`(${o}>=1&&${o}<=${s})?${n}[${o}-1]:${i}`}emitInboundsListAccess(n,r){return`${n}[${r}-1]`}emitNativeFunction(n,r){let i=bn[r.symbol];return`${i.module}.${i.symbol}(${n.join(\",\")})`}emitExtendSeed(n,r,i){return`${n}+'::${i}'+${r}`}emitVarDeclaration(n,r){let i=r?\",\":\"var \";return i+=an(n),i}emitFunctionCall(n,r,i,s){return`${n}(${r}, ${i}, ${s.join(\",\")})`}};function uD(e){if(Array.isArray(e))return`[${e.map(uD).join(\",\")}]`;switch(typeof e){case\"boolean\":case\"number\":return e.toString();case\"string\":return`${JSON.stringify(e)}`;case\"object\":if(Ja(e))throw new Error(\"Action values cannot be compiled\");return q(e).toString();default:throw new Error(\"Unexpected value: \"+e)}}var fo={};No(fo,{LruCache:()=>ql,RECURSIVE_COMPUTATION_LIMIT:()=>y1,RECURSIVE_DEPTH_LIMIT:()=>Lf,RecursiveFunctionResult:()=>m1,SYMBOL_DIVERGES:()=>d1,TerminationStatus:()=>g1,acosh:()=>c1,acot:()=>dF,acoth:()=>TF,acsc:()=>mF,acsch:()=>PF,addTangentAngle:()=>zV,addTangentArc:()=>kV,addTangentCircle:()=>GV,addTangentLine:()=>VV,addTangentRay:()=>BV,addTangentSegment:()=>bI,addTangentSegmentThreeD:()=>FV,angleMarkerMultiplier:()=>SV,angleMarkerRawDelta:()=>DV,arc:()=>MV,arcArcIntersection:()=>WV,arcCenter:()=>jl,arcCircleIntersection:()=>ZV,arcGlider:()=>Z1,arcLineIntersection:()=>Q1,arcOmega:()=>Jl,argMax:()=>ZF,argMin:()=>XF,asec:()=>yF,asech:()=>xF,asinh:()=>l1,atanh:()=>p1,basePointFromVector:()=>gV,basePointFromVectorThreeD:()=>xV,bernoulliTable:()=>T1,binomSample:()=>LF,binomcdf:()=>FF,binompdf:()=>wy,center:()=>IV,chooseNonIncidentPoint:()=>$V,circle:()=>TV,circleArcIntersection:()=>XV,circleCircleIntersection:()=>Af,circleGlider:()=>UV,circleLineIntersection:()=>II,clamp:()=>rr,common_log:()=>uF,composeTransformation:()=>uB,corr:()=>Vy,cos:()=>xn,cosh:()=>o1,cot:()=>fF,cotDerivative:()=>I1,coth:()=>bF,cov:()=>jF,covp:()=>G1,csc:()=>pF,csch:()=>hF,dilation:()=>sB,directedAngleMarker:()=>Y1,directedCoterminalAngle:()=>X1,distance:()=>Xl,distanceThreeD:()=>eV,elementsAt:()=>xB,erf:()=>GF,erfcx:()=>Ta,executeRecursiveFunction:()=>Qw,expm1:()=>Yw,factorial:()=>$o,frequency:()=>IB,gcd:()=>nI,getArcDetails:()=>By,getBroadcastTargetElements:()=>Ww,getRecursiveDepthLimit:()=>Zw,handleRecursionLimitExceeded:()=>b1,hsv:()=>tV,hypot:()=>po,identity:()=>PV,invBinom:()=>R1,invNorm:()=>uI,invPoisson:()=>C1,invT:()=>N1,invUniform:()=>zF,invertTransformation:()=>cB,isDegenerateArc:()=>gI,itscore:()=>_1,ittest:()=>lI,lcm:()=>P1,line:()=>dV,lineArcIntersection:()=>J1,lineCircleIntersection:()=>TI,lineGlider:()=>xI,lineLineIntersection:()=>j1,listGCD:()=>tF,listLCM:()=>nF,listLength:()=>HF,listMax:()=>w1,listMin:()=>L1,log:()=>aF,log1p:()=>_f,log_base:()=>M1,lowerQuantileIndex:()=>qF,lowerQuartileIndex:()=>YF,mad:()=>WF,mathVector:()=>U1,mathVectorThreeD:()=>q1,md5Spyable:()=>s1,mean:()=>Xo,median:()=>V1,mod:()=>x1,nCr:()=>ou,nPr:()=>vy,normalSample:()=>AF,normalcdf:()=>RF,normalpdf:()=>iI,nthroot:()=>cF,parallel:()=>KV,perpendicular:()=>eB,pointDet:()=>tS,pointDot:()=>tB,pointPerp:()=>nB,poissonSample:()=>wF,poissoncdf:()=>VF,poissonpdf:()=>Yl,polyGamma:()=>E1,polygon:()=>nV,polygonArea:()=>mI,polygonEdges:()=>aV,polygonGlider:()=>qV,polygonInteriorDirectedAngles:()=>fV,polygonInteriorUndirectedAngles:()=>pV,polygonPerimeter:()=>uV,pow:()=>f1,quad:()=>KF,quantile:()=>F1,quartile:()=>Ic,quartileIndex:()=>Fy,radius:()=>EV,random:()=>sI,randomPerm:()=>oI,rank:()=>QT,ray:()=>mV,rayGlider:()=>KT,recursionCacheKey:()=>jT,recursionDiverges:()=>h1,recursionMissingCacheEntry:()=>Jw,recursionSuccess:()=>jw,reflection:()=>aB,restriction:()=>vB,restrictionToBoolean:()=>DB,rgb:()=>k1,rotation:()=>oB,scaleTangentAngle:()=>wV,scaleTangentArc:()=>LV,scaleTangentCircle:()=>_V,scaleTangentLine:()=>NV,scaleTangentRay:()=>AV,scaleTangentSegment:()=>hI,sec:()=>lF,sech:()=>gF,segment:()=>yI,segmentGlider:()=>PI,segmentThreeD:()=>rV,segmentThreeDGlider:()=>HV,select:()=>bB,shuffle:()=>NF,sign:()=>tI,sin:()=>Kt,sinh:()=>a1,sortPerm:()=>Ec,spearman:()=>JF,sphere:()=>sV,sqrtxsqm1:()=>eF,sqrtxsqp1:()=>Kw,stats:()=>pI,stdev:()=>Dy,stdevp:()=>QF,supplementAngle:()=>CV,tSample:()=>_F,tan:()=>D1,tanh:()=>u1,tcdf:()=>Ey,testingOnlySetRecursiveDepthLimit:()=>rI,toFraction:()=>Xw,tone:()=>TB,total:()=>EF,tpdf:()=>Ly,transformAngleMarker:()=>hB,transformArc:()=>yB,transformCircle:()=>mB,transformLine:()=>pB,transformPoint:()=>Yo,transformPolygon:()=>gB,transformRay:()=>fB,transformSegment:()=>Gy,transformVector:()=>dB,transformation:()=>rB,translation:()=>iB,triangle:()=>iV,tscore:()=>A1,ttest:()=>cI,undirectedAngleMarker:()=>vV,undirectedCoterminalAngle:()=>OV,uniformSample:()=>au,uniformcdf:()=>BF,uniformpdf:()=>aI,uniquePerm:()=>PB,upperQuantileIndex:()=>UF,upperQuartileIndex:()=>$F,validateRangeLength:()=>fI,validateSampleCount:()=>dI,variance:()=>B1,varp:()=>wf,vector:()=>H1,vectorDisplacementAsPoint:()=>yV,vectorThreeD:()=>hV,vectorThreeDDisplacementAsPoint:()=>bV,vertices:()=>oV,volume:()=>EB});var cD=function(){\"use strict\";function e(d,y){var h=(d&65535)+(y&65535),b=(d>>16)+(y>>16)+(h>>16);return b<<16|h&65535}function t(d,y){return d<<y|d>>>32-y}function n(d,y,h,b,x,P){return e(t(e(e(y,d),e(b,P)),x),h)}function r(d,y,h,b,x,P,M){return n(y&h|~y&b,d,y,x,P,M)}function i(d,y,h,b,x,P,M){return n(y&b|h&~b,d,y,x,P,M)}function s(d,y,h,b,x,P,M){return n(y^h^b,d,y,x,P,M)}function o(d,y,h,b,x,P,M){return n(h^(y|~b),d,y,x,P,M)}function a(d,y){d[y>>5]|=128<<y%32,d[(y+64>>>9<<4)+14]=y;var h,b,x,P,M,I=1732584193,E=-271733879,v=-1732584194,O=271733878;for(h=0;h<d.length;h+=16)b=I,x=E,P=v,M=O,I=r(I,E,v,O,d[h],7,-680876936),O=r(O,I,E,v,d[h+1],12,-389564586),v=r(v,O,I,E,d[h+2],17,606105819),E=r(E,v,O,I,d[h+3],22,-1044525330),I=r(I,E,v,O,d[h+4],7,-176418897),O=r(O,I,E,v,d[h+5],12,1200080426),v=r(v,O,I,E,d[h+6],17,-1473231341),E=r(E,v,O,I,d[h+7],22,-45705983),I=r(I,E,v,O,d[h+8],7,1770035416),O=r(O,I,E,v,d[h+9],12,-1958414417),v=r(v,O,I,E,d[h+10],17,-42063),E=r(E,v,O,I,d[h+11],22,-1990404162),I=r(I,E,v,O,d[h+12],7,1804603682),O=r(O,I,E,v,d[h+13],12,-40341101),v=r(v,O,I,E,d[h+14],17,-1502002290),E=r(E,v,O,I,d[h+15],22,1236535329),I=i(I,E,v,O,d[h+1],5,-165796510),O=i(O,I,E,v,d[h+6],9,-1069501632),v=i(v,O,I,E,d[h+11],14,643717713),E=i(E,v,O,I,d[h],20,-373897302),I=i(I,E,v,O,d[h+5],5,-701558691),O=i(O,I,E,v,d[h+10],9,38016083),v=i(v,O,I,E,d[h+15],14,-660478335),E=i(E,v,O,I,d[h+4],20,-405537848),I=i(I,E,v,O,d[h+9],5,568446438),O=i(O,I,E,v,d[h+14],9,-1019803690),v=i(v,O,I,E,d[h+3],14,-187363961),E=i(E,v,O,I,d[h+8],20,1163531501),I=i(I,E,v,O,d[h+13],5,-1444681467),O=i(O,I,E,v,d[h+2],9,-51403784),v=i(v,O,I,E,d[h+7],14,1735328473),E=i(E,v,O,I,d[h+12],20,-1926607734),I=s(I,E,v,O,d[h+5],4,-378558),O=s(O,I,E,v,d[h+8],11,-2022574463),v=s(v,O,I,E,d[h+11],16,1839030562),E=s(E,v,O,I,d[h+14],23,-35309556),I=s(I,E,v,O,d[h+1],4,-1530992060),O=s(O,I,E,v,d[h+4],11,1272893353),v=s(v,O,I,E,d[h+7],16,-155497632),E=s(E,v,O,I,d[h+10],23,-1094730640),I=s(I,E,v,O,d[h+13],4,681279174),O=s(O,I,E,v,d[h],11,-358537222),v=s(v,O,I,E,d[h+3],16,-722521979),E=s(E,v,O,I,d[h+6],23,76029189),I=s(I,E,v,O,d[h+9],4,-640364487),O=s(O,I,E,v,d[h+12],11,-421815835),v=s(v,O,I,E,d[h+15],16,530742520),E=s(E,v,O,I,d[h+2],23,-995338651),I=o(I,E,v,O,d[h],6,-198630844),O=o(O,I,E,v,d[h+7],10,1126891415),v=o(v,O,I,E,d[h+14],15,-1416354905),E=o(E,v,O,I,d[h+5],21,-57434055),I=o(I,E,v,O,d[h+12],6,1700485571),O=o(O,I,E,v,d[h+3],10,-1894986606),v=o(v,O,I,E,d[h+10],15,-1051523),E=o(E,v,O,I,d[h+1],21,-2054922799),I=o(I,E,v,O,d[h+8],6,1873313359),O=o(O,I,E,v,d[h+15],10,-30611744),v=o(v,O,I,E,d[h+6],15,-1560198380),E=o(E,v,O,I,d[h+13],21,1309151649),I=o(I,E,v,O,d[h+4],6,-145523070),O=o(O,I,E,v,d[h+11],10,-1120210379),v=o(v,O,I,E,d[h+2],15,718787259),E=o(E,v,O,I,d[h+9],21,-343485551),I=e(I,b),E=e(E,x),v=e(v,P),O=e(O,M);return[I,E,v,O]}function u(d){var y,h=\"\",b=d.length*32;for(y=0;y<b;y+=8)h+=String.fromCharCode(d[y>>5]>>>y%32&255);return h}function c(d){var y,h=[];for(h[(d.length>>2)-1]=void 0,y=0;y<h.length;y+=1)h[y]=0;var b=d.length*8;for(y=0;y<b;y+=8)h[y>>5]|=(d.charCodeAt(y/8)&255)<<y%32;return h}function l(d){return u(a(c(d),d.length*8))}function p(d){var y=\"0123456789abcdef\",h=\"\",b,x;for(x=0;x<d.length;x+=1)b=d.charCodeAt(x),h+=y.charAt(b>>>4&15)+y.charAt(b&15);return h}function f(d){return unescape(encodeURIComponent(d))}function m(d){return l(f(d))}function g(d){return p(m(d))}return g}();function ha(e,t,n){e.prototype=t.prototype=n,n.constructor=e}function tu(e,t){var n=Object.create(e.prototype);for(var r in t)n[r]=t[r];return n}function Ho(){}var nu=.7,bc=1/nu,Vl=\"\\\\s*([+-]?\\\\d+)\\\\s*\",xf=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",zo=\"\\\\s*([+-]?(?:\\\\d*\\\\.)?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",Ew=/^#([0-9a-f]{3,8})$/,Mw=new RegExp(`^rgb\\\\(${Vl},${Vl},${Vl}\\\\)$`),vw=new RegExp(`^rgb\\\\(${zo},${zo},${zo}\\\\)$`),Dw=new RegExp(`^rgba\\\\(${Vl},${Vl},${Vl},${xf}\\\\)$`),Sw=new RegExp(`^rgba\\\\(${zo},${zo},${zo},${xf}\\\\)$`),Ow=new RegExp(`^hsl\\\\(${xf},${zo},${zo}\\\\)$`),Cw=new RegExp(`^hsla\\\\(${xf},${zo},${zo},${xf}\\\\)$`),lD={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};ha(Ho,Pf,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:pD,formatHex:pD,formatHex8:Rw,formatHsl:Nw,formatRgb:fD,toString:fD});function pD(){return this.rgb().formatHex()}function Rw(){return this.rgb().formatHex8()}function Nw(){return bD(this).formatHsl()}function fD(){return this.rgb().formatRgb()}function Pf(e){var t,n;return e=(e+\"\").trim().toLowerCase(),(t=Ew.exec(e))?(n=t[1].length,t=parseInt(t[1],16),n===6?dD(t):n===3?new br(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):n===8?cy(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):n===4?cy(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=Mw.exec(e))?new br(t[1],t[2],t[3],1):(t=vw.exec(e))?new br(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Dw.exec(e))?cy(t[1],t[2],t[3],t[4]):(t=Sw.exec(e))?cy(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Ow.exec(e))?gD(t[1],t[2]/100,t[3]/100,1):(t=Cw.exec(e))?gD(t[1],t[2]/100,t[3]/100,t[4]):lD.hasOwnProperty(e)?dD(lD[e]):e===\"transparent\"?new br(NaN,NaN,NaN,0):null}function dD(e){return new br(e>>16&255,e>>8&255,e&255,1)}function cy(e,t,n,r){return r<=0&&(e=t=n=NaN),new br(e,t,n,r)}function Tf(e){return e instanceof Ho||(e=Pf(e)),e?(e=e.rgb(),new br(e.r,e.g,e.b,e.opacity)):new br}function xc(e,t,n,r){return arguments.length===1?Tf(e):new br(e,t,n,r==null?1:r)}function br(e,t,n,r){this.r=+e,this.g=+t,this.b=+n,this.opacity=+r}ha(br,xc,tu(Ho,{brighter(e){return e=e==null?bc:Math.pow(bc,e),new br(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?nu:Math.pow(nu,e),new br(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new br(hc(this.r),hc(this.g),hc(this.b),py(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:mD,formatHex:mD,formatHex8:Aw,formatRgb:yD,toString:yD}));function mD(){return`#${gc(this.r)}${gc(this.g)}${gc(this.b)}`}function Aw(){return`#${gc(this.r)}${gc(this.g)}${gc(this.b)}${gc((isNaN(this.opacity)?1:this.opacity)*255)}`}function yD(){let e=py(this.opacity);return`${e===1?\"rgb(\":\"rgba(\"}${hc(this.r)}, ${hc(this.g)}, ${hc(this.b)}${e===1?\")\":`, ${e})`}`}function py(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function hc(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function gc(e){return e=hc(e),(e<16?\"0\":\"\")+e.toString(16)}function gD(e,t,n,r){return r<=0?e=t=n=NaN:n<=0||n>=1?e=t=NaN:t<=0&&(e=NaN),new co(e,t,n,r)}function bD(e){if(e instanceof co)return new co(e.h,e.s,e.l,e.opacity);if(e instanceof Ho||(e=Pf(e)),!e)return new co;if(e instanceof co)return e;e=e.rgb();var t=e.r/255,n=e.g/255,r=e.b/255,i=Math.min(t,n,r),s=Math.max(t,n,r),o=NaN,a=s-i,u=(s+i)/2;return a?(t===s?o=(n-r)/a+(n<r)*6:n===s?o=(r-t)/a+2:o=(t-n)/a+4,a/=u<.5?s+i:2-s-i,o*=60):a=u>0&&u<1?0:o,new co(o,a,u,e.opacity)}function fy(e,t,n,r){return arguments.length===1?bD(e):new co(e,t,n,r==null?1:r)}function co(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ha(co,fy,tu(Ho,{brighter(e){return e=e==null?bc:Math.pow(bc,e),new co(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?nu:Math.pow(nu,e),new co(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*t,i=2*n-r;return new br(DT(e>=240?e-240:e+120,i,r),DT(e,i,r),DT(e<120?e+240:e-120,i,r),this.opacity)},clamp(){return new co(hD(this.h),ly(this.s),ly(this.l),py(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=py(this.opacity);return`${e===1?\"hsl(\":\"hsla(\"}${hD(this.h)}, ${ly(this.s)*100}%, ${ly(this.l)*100}%${e===1?\")\":`, ${e})`}`}}));function hD(e){return e=(e||0)%360,e<0?e+360:e}function ly(e){return Math.max(0,Math.min(1,e||0))}function DT(e,t,n){return(e<60?t+(n-t)*e/60:e<180?n:e<240?t+(n-t)*(240-e)/60:t)*255}var dy=Math.PI/180,my=180/Math.PI;var yy=18,xD=.96422,PD=1,TD=.82521,ID=4/29,Bl=6/29,ED=3*Bl*Bl,_w=Bl*Bl*Bl;function MD(e){if(e instanceof Uo)return new Uo(e.l,e.a,e.b,e.opacity);if(e instanceof ba)return DD(e);e instanceof br||(e=Tf(e));var t=RT(e.r),n=RT(e.g),r=RT(e.b),i=ST((.2225045*t+.7168786*n+.0606169*r)/PD),s,o;return t===n&&n===r?s=o=i:(s=ST((.4360747*t+.3850649*n+.1430804*r)/xD),o=ST((.0139322*t+.0971045*n+.7141733*r)/TD)),new Uo(116*i-16,500*(s-i),200*(i-o),e.opacity)}function NT(e,t,n,r){return arguments.length===1?MD(e):new Uo(e,t,n,r==null?1:r)}function Uo(e,t,n,r){this.l=+e,this.a=+t,this.b=+n,this.opacity=+r}ha(Uo,NT,tu(Ho,{brighter(e){return new Uo(this.l+yy*(e==null?1:e),this.a,this.b,this.opacity)},darker(e){return new Uo(this.l-yy*(e==null?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,n=isNaN(this.b)?e:e-this.b/200;return t=xD*OT(t),e=PD*OT(e),n=TD*OT(n),new br(CT(3.1338561*t-1.6168667*e-.4906146*n),CT(-.9787684*t+1.9161415*e+.033454*n),CT(.0719453*t-.2289914*e+1.4052427*n),this.opacity)}}));function ST(e){return e>_w?Math.pow(e,1/3):e/ED+ID}function OT(e){return e>Bl?e*e*e:ED*(e-ID)}function CT(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function RT(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Lw(e){if(e instanceof ba)return new ba(e.h,e.c,e.l,e.opacity);if(e instanceof Uo||(e=MD(e)),e.a===0&&e.b===0)return new ba(NaN,0<e.l&&e.l<100?0:NaN,e.l,e.opacity);var t=Math.atan2(e.b,e.a)*my;return new ba(t<0?t+360:t,Math.sqrt(e.a*e.a+e.b*e.b),e.l,e.opacity)}function vD(e,t,n,r){return arguments.length===1?Lw(e):new ba(e,t,n,r==null?1:r)}function ba(e,t,n,r){this.h=+e,this.c=+t,this.l=+n,this.opacity=+r}function DD(e){if(isNaN(e.h))return new Uo(e.l,0,0,e.opacity);var t=e.h*dy;return new Uo(e.l,Math.cos(t)*e.c,Math.sin(t)*e.c,e.opacity)}ha(ba,vD,tu(Ho,{brighter(e){return new ba(this.h,this.c,this.l+yy*(e==null?1:e),this.opacity)},darker(e){return new ba(this.h,this.c,this.l-yy*(e==null?1:e),this.opacity)},rgb(){return DD(this).rgb()}}));var RD=-.14861,AT=1.78277,_T=-.29227,gy=-.90649,If=1.97294,SD=If*gy,OD=If*AT,CD=AT*_T-gy*RD;function ww(e){if(e instanceof Pc)return new Pc(e.h,e.s,e.l,e.opacity);e instanceof br||(e=Tf(e));var t=e.r/255,n=e.g/255,r=e.b/255,i=(CD*r+SD*t-OD*n)/(CD+SD-OD),s=r-i,o=(If*(n-i)-_T*s)/gy,a=Math.sqrt(o*o+s*s)/(If*i*(1-i)),u=a?Math.atan2(o,s)*my-120:NaN;return new Pc(u<0?u+360:u,a,i,e.opacity)}function LT(e,t,n,r){return arguments.length===1?ww(e):new Pc(e,t,n,r==null?1:r)}function Pc(e,t,n,r){this.h=+e,this.s=+t,this.l=+n,this.opacity=+r}ha(Pc,LT,tu(Ho,{brighter(e){return e=e==null?bc:Math.pow(bc,e),new Pc(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?nu:Math.pow(nu,e),new Pc(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*dy,t=+this.l,n=isNaN(this.s)?0:this.s*t*(1-t),r=Math.cos(e),i=Math.sin(e);return new br(255*(t+n*(RD*r+AT*i)),255*(t+n*(_T*r+gy*i)),255*(t+n*(If*r)),this.opacity)}}));function ys(e,t,n){return e>0==t>0?n===1?t:e+n*(t-e):e*(1-n)+t*n}function Jn(e,t,n){return[ys(e[0],t[0],n),ys(e[1],t[1],n)]}function gs(e,t,n){return[ys(e[0],t[0],n),ys(e[1],t[1],n),ys(e[2],t[2],n)]}function Ef(e,t){return[e[0]+t[0],e[1]+t[1]]}function ND(e,t){return[e[0]-t[0],e[1]-t[1]]}function wT(e,t){return[e[0]-t[0],e[1]-t[1],e[2]-t[2]]}function FT(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function xa(e,t){return Gl(wT(e,t))}function hy(e,t,n){return[ys(e[0],t[0],n[0]),ys(e[1],t[1],n[1])]}function AD(e,t){return[e[0]*t,e[1]*t]}function Gl(e){let[t,n,r]=e;return t*t+n*n+r*r}function kl(e,t){let n=e[1]*t[2]-e[2]*t[1],r=e[2]*t[0]-e[0]*t[2],i=e[0]*t[1]-e[1]*t[0],s=Math.sqrt(n*n+r*r+i*i);return[n/s,r/s,i/s]}function zl(e,t,n){e=Math.fround(e),t=Math.fround(t),n=Math.fround(n);let r=Math.fround(e*e+t*t+n*n);return isFinite(r)&&r!=0}function qo([e,t,n]){return isFinite(e)&&isFinite(t)&&isFinite(n)}function Ki(e,t){let n;e>t&&(n=e,e=t,t=n);let r=e>0,i=t>0,s=Math.abs(e)>.01,o=Math.abs(t)>.01;if(s||o)return pa(e,t);if(e===0)return t*Math.abs(t);if(t===0)return e*Math.abs(e);if(r!==i)return 0;let a=r?Math.sqrt(e*t):-Math.sqrt(e*t);return a>=e&&t>=a?a:pa(e,t)}function zT(e,t,n,r,i){if(!(isNaN(t)||isNaN(r)||t<0==r<0))for(;;){let s=Ki(e,n),o=i(s);if(!isFinite(o))return;if(s===e||s===n)return Math.abs(t)<=Math.abs(r)?[e,t]:[n,r];if(o===0)return vf(e,t,s,o,n,r,i);t<0!=o<0?(n=s,r=o):(e=s,t=o)}}function HD(e,t,n,r,i){if(!(VT(t)||VT(r))&&BT(t,r))for(;;){let s=Ki(e,n),o=i(s);if(VT(o))return;if(s===e||s===n)return s;if(BT(t,o))n=s,r=o;else if(BT(o,r))e=s,t=o;else return}}function VT(e){for(let t of e)if(isNaN(t))return!0;return!1}function BT(e,t){for(let n=0;n<e.length;n++)if(!Fw(e[n],t[n]))return!1;return!0}function Fw(e,t){return e<=0&&t>=0||e>=0&&t<=0}function vf(e,t,n,r,i,s,o){let a;if(!isFinite(r))return;isFinite(t)||(a=si(e,t,n,r,o),a!==void 0&&(e=a,t=o(e))),isFinite(s)||(a=si(n,r,i,s,o),a!==void 0&&(i=a,s=o(a)));let u,c;t===r?u=[e,t]:u=_D(e,t,n,r,o,r),s===r?c=[i,s]:c=_D(n,r,i,s,o,r);let l;return u&&c&&(l=Ki(u[0],c[0])),l!==void 0?[l,o(l)]:void 0}function si(e,t,n,r,i){if(isFinite(t)!==isFinite(r))for(;;){let s=Ki(e,n),o=i(s);if(s===e||s===n)return isFinite(t)?e:n;isFinite(o)!==isFinite(t)?(n=s,r=o):(e=s,t=o)}}function by(e,t,n,r,i){if(qo(t)!==qo(r))for(;;){let s=Ki(e,n),o=i(s);if(s===e||s===n)return qo(t)?e:n;qo(o)!==qo(t)?(n=s,r=o):(e=s,t=o)}}function _D(e,t,n,r,i,s){if(t===s!=(r===s))for(;;){let o=Ki(e,n),a=i(o);if(o===e||o===n)return t===s?[e,t]:[n,r];a===s!=(t===s)?(n=o,r=a):(e=o,t=a)}}function UD(e,t,n,r,i,s,o){if(e<n&&n<i&&isFinite(t)&&isFinite(r)&&isFinite(s)&&t!==r&&r!==s&&r>t==r>s)for(;;){let a=Ki(e,n),u=o(a),c=Ki(n,i),l=o(c);if(!isFinite(u)||!isFinite(l))return;if(a===e||a===n||c===n||c===i)return u>r==r>t?[a,u]:l>r==r>t?[c,l]:[n,r];if(u===r||l===r)return vf(e,t,n,r,i,s,o);r>t&&u>t&&u>r||r<t&&u<t&&u<r?(i=n,s=r,n=a,r=u):r>t&&l>r&&l>s||r<t&&l<r&&l<s?(e=n,t=r,n=c,r=l):(e=a,t=u,i=c,s=l)}}function hs([e,t],[n,r]){return(n-e)*(n-e)+(r-t)*(r-t)}function LD(e,t,n,r,i,s){let o=s(e),a=s(t),u=s(n),c=hs(o,r),l=hs(a,r),p=hs(u,r);if(!(t<=e||n<=t)&&!(!isFinite(c)||!isFinite(l)||!isFinite(p))&&!(l>=c||l>=p))for(;;){if(Math.abs(u[0]-o[0])<i&&Math.abs(u[1]-o[1])<i)return[e,n];let f=Ki(e,t),m=s(f),g=hs(m,r),d=Ki(t,n),y=s(d),h=hs(y,r);if(!isFinite(g)||!isFinite(h))return;if(f===e||f===t||d===t||d===n)return g<l&&g<h?[f,f]:h<g&&h<l?[d,d]:[t,t];if((g===l||h===l)&&(t=.5*(f+t),a=s(t),l=hs(a,r),g===l||h===l))return[e,n];g<l&&g<h?([n,t]=[t,f],[u,a]=[a,m],[p,l]=[l,g]):h<g&&h<l?([e,t]=[t,d],[o,a]=[a,y],[c,l]=[l,h]):([e,n]=[f,d],[o,u]=[m,y],[c,p]=[g,h])}}function wD(e,t,n){return t===void 0&&(t=-1/0),n===void 0&&(n=1/0),Math.min(n,Math.max(t,e))}function GT(e,t,n,r,i,s){let o;if(r!==void 0&&i!==void 0){let p=.5*(r+i);o=n+.01*(n<p?i-r:r-i)}else o=Math.abs(n)>1?n*1.00001:n+1e-5;let a=e(n),u=e(o),c=hs(a,t),l=hs(u,t);if(!(!isFinite(c)||!isFinite(l))){if(c===l)return[n,o];for(l>c&&([n,o]=[o,n],[a,u]=[u,a],[c,l]=[l,c]);isFinite(n)&&isFinite(o)&&n!==o;){if(i!==void 0&&o>i)return[i,i];if(r!==void 0&&o<r)return[r,r];let p=n+3*(o-n),f=e(p),m=hs(f,t);if(!isFinite(m))return[n,o];if(m===l)return[n,o];if(m>l){let g=o>n?LD(n,o,p,t,s,e):LD(p,o,n,t,s,e);return g&&[wD(g[0],r,i),wD(g[1],r,i)]}[n,c,o,l]=[o,l,p,m]}return[n,o]}}function FD(e,t,n,r){return n?r?Math.min(hs(e(r[0]),t),hs(e(r[1]),t))<Math.min(hs(e(n[0]),t),hs(e(n[1]),t)):!1:!0}function N4(e,t,n,r,i,s){let o=GT(e,t,n,r,i,s);if(r!==void 0){let a=GT(e,t,r,r,i,s);FD(e,t,o,a)&&(o=a)}if(i!==void 0){let a=GT(e,t,i,r,i,s);FD(e,t,o,a)&&(o=a)}return o}function VD(e,t,n,r,i,s,o,a){let u=Math.abs(r-t),c=Math.abs(s-r),l=Math.abs(a-s);return u>c&&u>l?[e,n]:l>c&&l>u?[i,o]:[n,i]}function Hl(e,t,n,r,i,s,o,a=0){if(!((n-e)*(i-n)<=0)&&!(!isFinite(e)||!isFinite(n)||!isFinite(i))&&!(!isFinite(t)||!isFinite(s))){if(!isFinite(r)){let u=si(e,t,n,r,o),c=si(n,r,i,s,o);return u===void 0||c===void 0?void 0:[u,c]}if(!(Math.abs(r-((i-n)*t+(n-e)*s)/(i-e))<a))for(;;){let u=Ki(e,n),c=o(u),l=Ki(n,i),p=o(l),f=Math.abs(c-pa(t,r)),m=Math.abs(r-pa(c,p)),g=Math.abs(p-pa(r,s));if(f<=a&&m<=a&&g<=a)return;if(!isFinite(c)){let d=si(e,t,u,c,o),y=si(u,c,i,s,o);return d===void 0||y===void 0?void 0:[d,y]}if(!isFinite(p)){let d=si(e,t,l,p,o),y=si(l,p,i,s,o);return d===void 0||y===void 0?void 0:[d,y]}if((u===e||u===n)&&(l===n||l===i))return Math.abs(r-t)>Math.abs(s-r)?[e,n]:[n,i];if(u===e||u===n)return VD(e,t,n,r,l,p,i,s);if(l===n||l===i)return VD(e,t,u,c,n,r,i,s);f>g&&f>=m?(i=n,s=r,n=u,r=c):g>f&&g>=m?(e=n,t=r,n=l,r=p):(e=u,t=c,i=l,s=p)}}}var Pa=(Math.sqrt(5)-1)/2;function Mf(e,t){return e>0==t>0?e+Pa*(t-e):(1-Pa)*e+Pa*t}function ru(e,t){let n;e>t&&(n=e,e=t,t=n);let r=e>0,i=t>0,s=Math.abs(e)>.01,o=Math.abs(t)>.01;if(s||o)return Mf(e,t);if(e===0)return t*Math.abs(t);if(t===0)return e*Math.abs(e);if(r!==i)return 0;let a=r?Math.sqrt(e*t):-Math.sqrt(e*t);return a>=e&&t>=a?a:Mf(e,t)}function qD(e,t,n,r,i,s){if(!isFinite(e)||!isFinite(n)||!isFinite(t)||!isFinite(r))return;e>n&&([e,t,n,r]=[n,r,e,t]);let o=ru(e,n),a=i(o);if(Math.abs(a-Mf(t,r))<=s)return;let u=ru(e,o),c=i(u);for(;;){let l=Math.abs(c-Mf(t,a)),p=Math.abs(a-Mf(r,c));if(l<=s&&p<=s)return;if(l>p){if(n=o,r=a,o=u,a=c,u=ru(e,o),c=i(u),u===e||u===o)return GD(e,t,o,a,n,r);if(!isFinite(c))return BD(e,t,u,c,n,r,i)}else{if(e=u,t=c,u=o,c=a,o=ru(n,o),a=i(o),o===n||o===u)return GD(e,t,u,c,n,r);if(!isFinite(a))return BD(e,t,o,a,n,r,i)}}}function BD(e,t,n,r,i,s,o){let a=si(e,t,n,r,o),u=si(n,r,i,s,o);if(!(a===void 0||u===void 0))return[a,u]}function GD(e,t,n,r,i,s){return Math.abs(r-t)>Math.abs(s-r)?[e,n]:[n,i]}function kT(e,t,n){let r=e[0]*(1-Pa)+t[0]*Pa-n[0],i=e[1]*(1-Pa)+t[1]*Pa-n[1],s=e[2]*(1-Pa)+t[2]*Pa-n[2];return r*r+i*i+s*s}function xy(e,t,n,r,i,s,o,a){if(!isFinite(e)||!isFinite(n)||!qo(t)||!qo(r))return;e>n&&([e,t,n,r]=[n,r,e,t]);let u=ru(e,n),c=i(u),l=s*s;if(kT(t,r,c)<=l)return;let p=ru(e,u),f=i(p);for(;;){let m=kT(t,c,f),g=kT(r,f,c);if(m<=l&&g<=l)return n-e<a?p:void 0;if(m>g){if(n=u,r=c,u=p,c=f,p=ru(e,u),f=i(p),p===e||u-p<=o)return zD(e,t,u,c,n,r);if(!qo(f))return kD(e,t,p,f,n,r,i)}else{if(e=p,t=f,p=u,f=c,u=ru(n,u),c=i(u),u===n||u-p<=o)return zD(e,t,p,f,n,r);if(!qo(c))return kD(e,t,u,c,n,r,i)}}}function kD(e,t,n,r,i,s,o){let a=by(e,t,n,r,o),u=by(n,r,i,s,o);if(!(a===void 0||u===void 0))return[a,u]}function zD(e,t,n,r,i,s){return xa(r,t)>xa(s,r)?[e,n]:[n,i]}var Bw=Hl,Py=si,Gw=3.154019550531224,$D=Math.pow(2,-13),iu=$D*$D,YD=iu*iu,HT=iu,qT=32,lo=[],su=[];function kw(e,t){for(var n=qT;n>0;n--){var r=Gw/qT*n,i=Math.sinh(r),s=Math.cosh(Math.PI/2*i),o=1/(Math.exp(Math.PI/2*i)*s),a=Math.cosh(r)/(s*s);e.push(o),t.push(a)}}kw(lo,su);var WD=0;for(Ty=0;Ty<su.length;Ty++)WD+=su[Ty];var Ty,Iy=1/(1+2*WD);function Ii(e,t,n){return .5*(t*(2-n)+e*n)}function zw(e,t,n){var r=.5*(t+n),i=Bw(t,e(t),r,e(r),n,e(n),e);return i?.5*(i[0]+i[1]):r}function Df(e,t,n,r,i){return{x1:e,x2:t,value:n,error:r,minerror:i}}function XD(e,t,n){var r=Math.abs(e(Ii(t,n,iu))),i=Math.abs(e(Ii(t,n,2*iu))),s=Math.abs(e(Ii(t,n,4*iu)));return r<iu||i<iu?!1:r>1.95*i&&i>1.95*s}function UT(e,t,n){var r=Ii(n,t,lo[0]),i=Ii(t,n,lo[0]),s=e(r),o=e(i),a=Ii(t,n,1),u=e(a),c,l;if(isFinite(u)&&!isFinite(s)){if(c=Py(r,s,a,u,e),Math.abs((c-t)/(n-t))>HT)return Df(t,n,NaN,NaN,NaN);t=c,s=e(t)}if(isFinite(u)&&!isFinite(o)){if(l=Py(a,u,i,o,e),Math.abs((l-n)/(n-t))>HT)return Df(t,n,NaN,NaN,NaN);n=l,o=e(n)}if(isFinite(s)&&isFinite(o)&&!isFinite(u)){if(c=Py(r,s,a,u,e),l=Py(a,u,i,o,e),Math.abs((l-c)/(n-t))>HT)return Df(t,n,NaN,NaN,NaN);u=.5*(c+l)}if(XD(e,t,n)||XD(e,n,t))return Df(t,n,NaN,NaN,NaN);for(var p=u,f=0,m=0,g=0,d=0,y=0,h=0,b=0;b<qT;b+=4)y=e(Ii(t,n,lo[b])),h=e(Ii(n,t,lo[b])),d=Math.max(d,Math.abs(y),Math.abs(h)),f+=su[b]*(y+h),y=e(Ii(t,n,lo[b+1])),h=e(Ii(n,t,lo[b+1])),d=Math.max(d,Math.abs(y),Math.abs(h)),g+=su[b+1]*(y+h),y=e(Ii(t,n,lo[b+2])),h=e(Ii(n,t,lo[b+2])),d=Math.max(d,Math.abs(y),Math.abs(h)),m+=su[b+2]*(y+h),y=e(Ii(t,n,lo[b+3])),h=e(Ii(n,t,lo[b+3])),d=Math.max(d,Math.abs(y),Math.abs(h)),g+=su[b+3]*(y+h);var x=p+f,P=x+m,M=P+g,I=Math.abs(m-x),E=Math.abs(g-P),v=Iy*(n-t)*M,O=Iy*Math.abs(n-t)*d*su[0],A;return I===0?A=Iy*Math.abs(n-t)*E:A=Iy*Math.abs(n-t)*E*(E/I)*(E/I),A=Math.max(A,O),Df(t,n,v,A,O)}function ZD(e){for(var t=-1/0,n=-1/0,r=-1,i=0,s=0;s<e.length;s++){var o=e[s];i+=o.value,o.error>t&&(t=o.error,r=s),o.minerror>n&&(n=o.minerror)}return{maxerror:t,maxminerror:n,maxindex:r,totalvalue:i}}function Sf(e,t,n,r=32){if(isNaN(t)||isNaN(n))return NaN;var i=1;if(t>n){var s=t;t=n,n=s,i=-1}if(t===1/0&&n===1/0)return NaN;if(t===-1/0&&n===-1/0)return NaN;if(t===-1/0&&n===1/0)return i*Sf(function(f){return e(f/((1+f)*(1-f)))*(1+f*f)/((1+f)*(1+f)*(1-f)*(1-f))},-1,1,r);if(t===-1/0)return i*Sf(function(f){return-e(n-f/(1-f))/((1-f)*(1-f))},1,0,r);if(n===1/0)return i*Sf(function(f){return e(t+f/(1-f))/((1-f)*(1-f))},0,1,r);for(var o=[UT(e,t,n)],a=ZD(o),u=1;u<r&&!(Math.abs(a.maxerror/a.totalvalue)<=32*YD||a.maxerror<=32*YD||a.maxerror<=32*a.maxminerror||!isFinite(a.maxerror)||!isFinite(a.maxminerror));u++){var c=o[o.length-1];o[o.length-1]=o[a.maxindex],o[a.maxindex]=c;var l=o.pop(),p=zw(e,Ii(l.x2,l.x1,.125),Ii(l.x1,l.x2,.125));o.push(UT(e,l.x1,p)),o.push(UT(e,p,l.x2)),a=ZD(o)}return!isFinite(a.maxerror)||!isFinite(a.maxminerror)?NaN:Math.abs(a.totalvalue)<=10*a.maxminerror?0:i*a.totalvalue}var Of=class{constructor(t){this.comparator=t;this._data=[]}size(){return this._data.length}queue(t){let n=this._data.length;for(this._data.push(t);n>0;){let r=n-1>>>1;if(this.comparator(this._data[n],this._data[r])<0){let i=this._data[r];this._data[r]=this._data[n],this._data[n]=i,n=r}else break}}dequeue(){let t=this._data[0],n=this._data.pop();if(this._data.length>0&&n!==void 0){this._data[0]=n;let r=0,i=this._data.length-1;for(;;){let s=(r<<1)+1,o=s+1,a=r;if(s<=i&&this.comparator(this._data[s],this._data[a])<0&&(a=s),o<=i&&this.comparator(this._data[o],this._data[a])<0&&(a=o),a!==r){let u=this._data[a];this._data[a]=this._data[r],this._data[r]=u,r=a}else break}}return t}peek(){return this._data[0]}clear(){this._data.length=0}};function Uw(e,t){let n=e.start[1]-e.end[1],r=e.end[0]-e.start[0],i=t.start[1]-t.end[1],s=t.end[0]-t.start[0],o=n*e.end[0]+r*e.end[1],a=i*t.end[0]+s*t.end[1],u=n*s-i*r;if(u!==0)return(n*a-i*o)/u}function qw(e,t,n){if(n.xSlope>=t.xSlope)return;if(t.scanlineX===n.scanlineX)return e;let r=t.start[1]>t.end[1]?t.start:t.end,i=n.start[1]>n.end[1]?n.start:n.end,s=r[1];if(i[1]<r[1]){if(s=i[1],$T(s,t)<i[0])return}else if(r[1]<i[1]){let a=$T(s,n);if(r[0]<a)return}else if(r[0]<i[0])return;let o=Uw(t,n);if(o!==void 0)return Math.max(Math.min(o,s),e)}function $T(e,t){let n=t.end[0],r=t.start[0],i=t.end[1],s=t.start[1];if(i===e)return n;if(s===e)return r;{let o=(e-i)/(s-i),a=(1-o)*n+o*r;if(n<r){if(a<=n)return n;if(r<=a)return r}else{if(a<=r)return r;if(n<=a)return n}return a}}function YT(e){let t=0,n=0,r=!1,i=0;for(let{scanlineX:s,isClockwise:o}of e)o?i+=1:i-=1,i!==0&&!r?(r=!0,n=s):i===0&&r&&(r=!1,t+=s-n);return t}var Cf=class{constructor(t){this.scanlineY=-1/0;let n=1;this.activeEdges=[],this.events=new Of(function(r,i){return r.y-i.y}),this.scanlineY=-1/0,this.polygonLength=t.length-1;for(let r=t.length-1;r>=1;r--){let i=t[r],s=t[r-1],o={id:n++,index:r-1,end:i,start:s,scanlineX:0,xSlope:1/0,isClockwise:s[1]>i[1],skipIntersectionWith:{}};s[1]>i[1]?(this.events.queue({type:\"+\",y:i[1],edge:o}),this.events.queue({type:\"-\",y:s[1],edge:o}),o.xSlope=(s[0]-i[0])/(s[1]-i[1]),o.scanlineX=i[0]):i[1]>s[1]?(this.events.queue({type:\"+\",y:s[1],edge:o}),this.events.queue({type:\"-\",y:i[1],edge:o}),o.xSlope=(i[0]-s[0])/(i[1]-s[1]),o.scanlineX=s[0]):this.events.queue({type:\"h\",y:s[1],edge:o})}}nextScanline(){var s;let t,n=this.events.peek();if(!n)return;if(n.y<=this.scanlineY)throw new Error(\"Programming error: expected next event to begin a new scanline\");this.scanlineY=n.y,this.updateActiveEdgeScanlineIntersections();let r=YT(this.activeEdges),i=[];for(;t=this.events.dequeue();)if(t.type===\"x\"?this.swapActiveEdges(t):t.type===\"+\"?this.insertActiveEdge(t):t.type===\"-\"&&this.removeActiveEdge(t),i.push(t),((s=this.events.peek())==null?void 0:s.y)!==this.scanlineY)return{y:this.scanlineY,activeEdges:this.activeEdges,lengthBeforeProcessingEvents:r,events:i}}updateActiveEdgeScanlineIntersections(){let t=-1/0;for(let n of this.activeEdges){let r=$T(this.scanlineY,n);r<t?r=t:t=r,n.scanlineX=r}}insertActiveEdge(t){let n=this.activeEdges,r=t.edge,i=t.y,{xSlope:s,scanlineX:o}=r;for(var a=0;a<n.length;a++){let u=n[a];if(o<u.scanlineX||o===u.scanlineX&&s<=u.xSlope)break}n.splice(a,0,r),this.checkIntersection(i,n[a-1],r),this.checkIntersection(i,r,n[a+1])}checkIntersection(t,n,r){if(!n||!r||n.index===(r.index+1)%this.polygonLength||r.index===(n.index+1)%this.polygonLength)return;if(n.id<r.id){if(n.skipIntersectionWith[r.id])return}else if(r.skipIntersectionWith[n.id])return;let i=qw(t,n,r);if(i===void 0)return;n.id<r.id?n.skipIntersectionWith[r.id]=!0:r.skipIntersectionWith[n.id]=!0;let s={type:\"x\",y:i,edge1:n,edge2:r};this.events.queue(s)}removeActiveEdge(t){let n=this.activeEdges,r=t.edge,i=t.y,s=n.indexOf(r);n.splice(s,1),this.checkIntersection(i,n[s-1],n[s])}swapActiveEdges(t){let n=this.activeEdges,r=t.edge1,i=t.edge2,s=t.y,o=n.indexOf(r),a=o+1;o===-1||n[a]!==i?r.id<i.id?delete r.skipIntersectionWith[i.id]:delete i.skipIntersectionWith[r.id]:(n[o]=i,n[a]=r,this.checkIntersection(s,n[o-1],i),this.checkIntersection(s,r,n[a+1]))}static debugEvent(t){let n=`y=${t.y} `;return n+=t.type===\"x\"?`[x ${t.edge1.index}/${t.edge2.index}]`:`[${t.type} ${t.edge.index}] (${t.edge.end})-(${t.edge.start})`,n}debugState(){return`y=${this.scanlineY}\n${this.activeEdges.map(t=>`[${t.index}] ${t.scanlineX}`)}`}};function $w(e){let t=e.slice(0,2),n=e.slice(-2);return t[0]!==n[0]||t[1]!==n[1]?[...e,...t]:e}function F4(e,t){if(!e)return!1;let n=$w(e),[r,i]=t,s=0;for(var o=n.length-1;o>=3;o-=2){let a=n[o-3],u=n[o-2],c=n[o-1],l=n[o];u>i!=l>i&&r<(c-a)*(i-u)/(l-u)+a&&(u>l?s+=1:u<l&&(s-=1))}return s!==0}function JD(e){if(e.length<4||e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1])return 0;let t=new Cf(e),n,r=0,i;for(;i=t.nextScanline();){let s=i.lengthBeforeProcessingEvents;n&&(r+=.5*(i.y-n.y)*(s+n.length)),n={y:i.y,length:YT(i.activeEdges)}}return r}function QD(e){if(!e.length)return[];if(e[0][0]!==e[e.length-1][0]||e[0][1]!==e[e.length-1][1])throw new Error(\"Programming error: expected last point to be a duplicate of the first point.\");for(let f=0;f<e.length-1;f++)if(e[f][0]===e[f+1][0]&&e[f][1]===e[f+1][1])throw new Error(`Programming error: unexpected duplicate point at ${f+1}`);let t=new Cf(e),n=e.slice(0,-1).map(()=>0),r;for(;r=t.nextScanline();)for(let f of r.events){let m={};if(f.type===\"h\"){let g=f.edge;m[g.index]={xMin:Math.min(g.end[0],g.start[0]),xMax:Math.max(g.end[0],g.start[0]),dx:g.end[0]-g.start[0]}}else if(f.type===\"x\"){let g=f.edge1,d=f.edge2,y=jD([g.start,g.end],[d.start,d.end]),h=y>0?-1:y<0?1:0;n[g.index]+=h,n[d.index]-=h}for(let g of r.activeEdges){let d=g.end[1]-g.start[1];for(let y in m){let{xMin:h,xMax:b,dx:x}=m[y];if(h<g.scanlineX&&g.scanlineX<b){let P=x*d,M=P>0?-1:P<0?1:0;n[y]+=M,n[g.index]-=M}}}}let i=e.slice(0,-1).map(()=>0),s=e[0][1],o=0;for(let f=1;f<e.length;f++)e[f][1]<s&&(s=e[f][1],o=f);let a=e.length-1,u=o>0?o-1:a-1,c=(o+1)%a,p=jD([e[u],e[o]],[e[o],e[c]])>0?1:0;i[o]=p>0?-1:1;for(let f=0;f<a-1;f++){let m=(o+f)%a;p+=n[m],i[(m+1)%a]=p>0?-1:1}return i}function jD(e,t){let n=e[1][0]-e[0][0],r=e[1][1]-e[0][1],i=t[1][0]-t[0][0],s=t[1][1]-t[0][1];return n*s-r*i}var s1={spy:cD},{cosh:o1,sinh:a1,tanh:u1,acosh:c1,asinh:l1,atanh:p1,expm1:Yw,log1p:_f,sign:tI,hypot:po}=Math,Xw=la,nI=qu,f1=$u,d1=Symbol(\"DIVERGES\"),m1=(n=>(n[n.SUCCESS=0]=\"SUCCESS\",n[n.MISSING_CACHE_ENTRY=1]=\"MISSING_CACHE_ENTRY\",n))(m1||{}),Ry=class Ry{constructor(t=Ry.defaultLimit,n){this.limit=t;this.computeSize=n;this.currentSize=0;this.cache=new Map}get(t){let n=this.cache.get(t);return n&&(this.cache.delete(t),this.cache.set(t,n)),n==null?void 0:n.value}set(t,n){let r=this.computeSize?this.computeSize(n):1;if(this.currentSize+r>=this.limit){let i=this.cache.keys().next().value;this.cache.delete(i)}this.cache.set(t,{size:r,value:n})}};Ry.defaultLimit=1e5;var ql=Ry,Lf=1e4,y1=Lf*2;function Zw(){return Lf}function rI(e){Lf=e}var g1=(n=>(n[n.DoesNotTerminate=0]=\"DoesNotTerminate\",n[n.DepthLimitExceeded=1]=\"DepthLimitExceeded\",n))(g1||{});function h1(e,t){if(uo(t))return e.recursionTerminationStatus=0,$r(t);throw db()}function b1(e,t){if(uo(t))return e.recursionTerminationStatus=1,$r(t);throw mb()}var KD=new WeakMap;function Ww(e){let t=KD.get(e);return t||(t=new Set(e),KD.set(e,t)),t}function jT(e){return`${e.fn}:${JSON.stringify(e.args)}`}function jw(e,t){return{status:0,result:[e,t]}}function Jw(e){return{status:1,stackFrame:e}}function Qw(e,t,n,r){let i=e.recursiveFunctionCache||new ql,s=[];s.push(r);let o=0;for(;s.length>0;){if(s.length>Lf||o++>y1)return b1(e,n);let a=s.pop(),{fn:u,args:c}=a,l=t[u](i,...c);if(l===d1)return h1(e,n);if((l==null?void 0:l.status)===1)s.push({fn:u,args:c}),s.push(l.stackFrame);else{let p=jT(a);i.set(p,l.result)}}return i.get(jT(r))[0]}var Kw=function(e){let t=e*e;return 1+t===1?1:1+t===t?Math.abs(e):Math.sqrt(t+1)},eF=function(e){let t=e*e;return t<1?NaN:t-1===t?Math.abs(e):Math.sqrt(t-1)};function rr(e,t,n){return Math.max(t,Math.min(n,e))}function x1(e,t){let n=e%t;return e*t<0&&n!==0?n+t:n}function P1(e,t){e=Math.round(e),t=Math.round(t);let n=nI(e,t);return Math.abs(e/n*t)}function tF(e){if(e.length===0)return NaN;let t=e[0];for(let n=1;n<e.length;n++)t=nI(t,e[n]);return t}function nF(e){if(e.length===0)return NaN;let t=e[0];for(let n=1;n<e.length;n++)t=P1(t,e[n]);return t}function ou(e,t){if(isNaN(e))return e;if(isNaN(t))return t;if(!isFinite(e)&&!isFinite(t))return NaN;if(t===0||e===t)return 1;if(e===0)return bs(t);let n=isFinite(e)&&e===Math.round(e),r=isFinite(t)&&t===Math.round(t);if(e<0&&t<0&&e-t<0)return n&&r?0:bs(e-t)*bs(t)/(bs(e)*ou(-e,-t));if(e<0&&t>0&&e-t<0)return n&&r?Math.pow(-1,t)*ou(t-e-1,t):bs(e-t)/bs(e)*ou(-(e-t),t);if(e<0&&t<0&&e-t>0)return n&&r?Math.pow(-1,e-t)*ou(-t-1,e-t):bs(t)/bs(e)*ou(-t,-e);if(e>0&&t<0&&e-t>0){let a=Math.abs(e)>Math.abs(t)?-t:e;return bs(t)/ou(e-t,a)}if(e>0&&t>0&&e-t<0)return bs(e-t)/ou(t,e);if(e<0||t<0||e-t<0||e<15&&t<15&&e-t<15)return vy(e,t)/$o(t);let i=es(e)-es(t)-es(e-t)-(e-t)*_f(-t/e),s=Math.sqrt(e/(2*Math.PI*t*(e-t)))*Math.pow(e/t,t)*Math.exp(i);return n&&r&&e>0&&t>0&&e-t>0?Math.round(s):s}function vy(e,t){if(isNaN(e))return e;if(isNaN(t))return t;if(!isFinite(e)&&!isFinite(t))return NaN;if(t===0)return 1;if(e===0)return 1/$o(-t);if(e===t)return $o(e);let n=isFinite(e)&&e===Math.round(e),r=isFinite(t)&&t===Math.round(t);if(e<0&&e-t<0)return n&&r?Math.pow(-1,t)*vy(t-e-1,t):bs(e-t)/bs(e)*vy(-(e-t),t);if(e<0||e-t<0||e<15&&e-t<15)return $o(e)/$o(e-t);let i=es(e)-es(e-t)-(e-t)*_f(-t/e),s=Math.sqrt(e/(e-t))*Ny(e,t)*Math.exp(i);return n&&r&&e>0&&t>0&&e-t>0?Math.round(s):s}function $o(e){if(e===-1/0)return NaN;let t=Math.round(e)===e;if(e<0)return t?1/0:1/(bs(e)*e1(-e));let n=e1(e);return t?Math.round(n):n}function e1(e){return e>171?1/0:e<14?rF(e):oF(e)}function rF(e){let t=4.077131788261185,n=7.024675027156382,r=6.657107767450176,i=3.766266976716022,s=1.2792371666711133,o=.24304596436338005,a=.020049769312165774,u=4.154347453162709,c=7.270007565107539,l=6.97805297331391,p=3.989651532924167,f=1.367176195613119,m=.26175627691546965,g=.021742722739397567,d=1+e*(t+e*(n+e*(r+e*(i+e*(s+e*(o+e*a)))))),y=1+e*(u+e*(c+e*(l+e*(p+e*(f+e*(m+e*g)))))),h=e+1,b=1-(h-e);return Ny(h,e)*Math.sqrt(h+(2*e+1)*b)*(d/y)}var iF=Math.pow(2,27)+1;function sF(e){let t=iF*e;return t-(t-e)}var XT=.3678794428706169,ZT=-16991745912462731e-25;function Ny(e,t){let n=sF(e),r=e-n,i=e*(XT+ZT);if(i===0)return Math.pow(e/Math.E,t);let s=n*XT-i+n*ZT+r*XT+r*ZT;return Math.pow(i,t)*(1+t*(s/i))}function oF(e){return Ny(e,e)*Math.sqrt(2*Math.PI*e)*Math.exp(S1(e))}var T1=[1/6,-1/30,1/42,-1/30,5/66,-691/2730,7/6,-3617/510,43867/798,-174611/330,854513/138,-236364091/2730,8553103/6,-23749461029/870];function I1(e,t){if(e!==Math.floor(e))return NaN;if(e<0)return NaN;if(e===0)return 1/D1(t);let n=Kt(t);if(e===1)return-1/(n*n);let r=xn(t);if(e===2)return 2*r/(n*n*n);let i=[0,2],s=[];for(let a=3;a<=e;a++){s=[];for(let u=0;u<a;u++){let c=0,l=0;u>0&&(c=(a-u+1)*i[u-1]),u+2<a&&(l=(u+1)*i[u+1]),s.push(-(c+l))}i=s}let o=0;for(let a=e-1;a>=0;a--)o=s[a]+r*o;return o/Math.pow(n,e+1)}function E1(e,t){if(e<0)return NaN;if(e!==Math.floor(e))return NaN;let n=e%2===0?-1:1;if(t<0)return-n*E1(e,1-t)-Math.pow(Math.PI,e+1)*I1(e,Math.PI*t);let r=$o(e),i=0,s=Math.pow(t,-(e+1));for(;t<10;)i+=s,t++,s=Math.pow(t,-(e+1));i+=e===0?-Math.log(t):s*t/e,i+=.5*s;let o=T1,a=e+1,u=2,c=s*t*a/u,l=1/(t*t);for(let p=1;p<=14;p++)c*=l,i+=c*o[p-1],a++,u++,c*=a/u,a++,u++,c*=a/u;return r*n*i}function aF(e){let t=Math.log(e);return Math.exp(Math.round(t))===e?Math.round(t):t}function M1(e,t){if(t===0)return NaN;let n;return t===Math.E?n=Math.log(e):t===2&&Math.log2?n=Math.log2(e):t===10&&Math.log10?n=Math.log10(e):n=Math.log(e)/Math.log(t),Math.pow(t,Math.round(n))===e?Math.round(n):n}function uF(e){return M1(e,10)}function cF(e,t){return f1(e,1/t)}var v1=1/Math.PI;function Ay(e){return e>1e12?!1:Math.round(v1*e)*Math.PI===e}function _y(e){if(e>1e12)return!1;let t=Math.round(2*v1*e);return t%2===1&&t*Math.PI===2*e}function Kt(e){return Ay(Math.abs(e))?0:Math.sin(e)}function xn(e){return _y(Math.abs(e))?0:Math.cos(e)}function D1(e){let t=Math.abs(e);return Ay(t)?0:_y(t)?1/0:Math.tan(e)}function lF(e){return _y(Math.abs(e))?1/0:1/Math.cos(e)}function pF(e){return Ay(Math.abs(e))?1/0:1/Math.sin(e)}function fF(e){let t=Math.abs(e);return Ay(t)?1/0:_y(t)?0:1/Math.tan(e)}function dF(e){return e>0?Math.atan(1/e):Math.PI/2-Math.atan(e)}function mF(e){return Math.asin(1/e)}function yF(e){return Math.acos(1/e)}function gF(e){return 1/o1(e)}function hF(e){return 1/a1(e)}function bF(e){return 1/u1(e)}function xF(e){return c1(1/e)}function PF(e){return l1(1/e)}function TF(e){return p1(1/e)}function IF(e){if(e===0||isNaN(e))return e;if(!isFinite(e))return NaN;if(e===Math.floor(e))return e>0?0:-0;let t=Math.round(2*e),n=-.5*t+e,r=t&2?-1:1,i=t&1?Math.cos(Math.PI*n):Math.sin(Math.PI*n);return r*i}function bs(e){return e===1/0||e===-1/0?0:e===0?1:IF(e)/(Math.PI*e)}function Xo(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t/e.length}function EF(e){let t=0;for(let n=0;n<e.length;n++)t+=e[n];return t}function JT(e){return e>50?Math.exp(.5*((1-e)*_f(-1/(e-1))-1)+es(.5*(e-1))-es(.5*(e-2)))*Math.sqrt((1-1/e)/(2*Math.PI)):e/(e+1)*$o((e+1)/2)/($o(e/2)*Math.sqrt(e*Math.PI))}function $l(e,t,n=e-t){if(Math.abs(n)<.1*(e+t)){let r=n/(e+t),i=n*n/(e+t),s=2*e*r;for(let o=1;o<10;o++){s*=r*r;let a=i+s/(2*o+1);if(a==i)return a;i=a}}return e*Math.log(e/t)+t-e}var MF=[0,.08106146679532726,.0413406959554093,.02767792568499834,.020790672103765093,.016644691189821193,.013876128823070748,.01189670994589177,.010411265261972096,.009255462182712733,.00833056343336287,.007573675487951841,.00694284010720953,.006408994188004207,.0059513701127588475,.005554733551962801];function es(e){return e>15?S1(e):e<0?NaN:e===Math.floor(e)?MF[e]:Math.log($o(e)/(Ny(e,e)*Math.sqrt(2*Math.PI*e)))}function S1(e){let t=.08333333333333333,n=.002777777777777778,r=.0007936507936507937,i=.0005952380952380953,s=.0008417508417508417,o=e*e;return(t-(n-(r-(i-s/o)/o)/o)/o)/e}function Ly(e,t){return t<=0?NaN:JT(t)*Math.pow(1+e*e/t,-((t+1)/2))}function Tc(e,t){if(t>0)return 1-Tc(e,-t);if(t===-1/0)return 0;if(t===0)return .5;if(e>=40&&t>-1)return .5+JT(e)*vF(e,t);if(t/e<-1e3){let r=t*t;return JT(e)*Math.pow(e,.5*(e-1))*Math.pow(Math.abs(t),-e)*(1-e*e*(e+1)*(1/(2+e)+e*(e+3)/(4*(4+e)*r))/(2*r))}let n=Math.sqrt(t*t+e);return DF((t+n)/(2*n),e/2,e/2)}function vF(e,t){let n=t*t/e,r=t,i=r;for(let s=1;s<=15;s++)r*=-(2*s-1)/(2*s+1)*(.5*(e+1)+s-1)/s*n,i+=r;return i}function Ey(e,t,n){return n<=0?NaN:e===-1/0?Tc(n,t):e>0&&t>0?Tc(n,-e)-Tc(n,-t):Tc(n,t)-Tc(n,e)}function DF(e,t,n){if(e<0||e>1)throw new RangeError(\"First argument must be between 0 and 1.\");if(t===1&&n===1)return e;if(e===0)return 0;if(e===1)return 1;if(t===0)return 1;if(n===0)return 0;{let r=es(t+n)-es(t)-es(n)-$l(t,(t+n)*e)-$l(n,(t+n)*(1-e),(t+n)*e-t),i=Math.exp(r)*Math.sqrt(t*n/(2*Math.PI*(t+n)));return e<(t+1)/(t+n+2)?i*t1(e,t,n)/t:1-i*t1(1-e,n,t)/n}}function t1(e,t,n){let r=Math.pow(2,-52),i=1e-300,s=t+n,o=t+1,a=t-1,u=1,c=1-s*e/o;Math.abs(c)<i&&(c=i),c=1/c;let l=c;for(let p=1;p<=100;p++){let f=2*p,m=p*(n-p)*e/((a+f)*(t+f));c=1+m*c,Math.abs(c)<i&&(c=i),u=1+m/u,Math.abs(u)<i&&(u=i),c=1/c,l*=c*u,m=-(t+p)*(s+p)*e/((t+f)*(o+f)),c=1+m*c,Math.abs(c)<i&&(c=i),u=1+m/u,Math.abs(u)<i&&(u=i),c=1/c;let g=c*u;if(l*=g,Math.abs(g-1)<=r)return l}return l}function SF(e,t){let n=Math.pow(2,-52),r=1e-300,i=1,s=e,o=i/s,a=i/r,u=1/s,c=2,l=0,p=s,f=-(e-1),m=0;do f-=1,p+=1,u=u*f*t+p,u===0&&(u=r),a=p+f*t/a,a===0&&(a=r),u=1/u,l=a*u,o=o*l,m+=1,p+=1,u=u*m*t+p,u===0&&(u=r),a=p+m*t/a,a===0&&(a=r),u=1/u,l=a*u,o*=l,c+=2;while(c<100&&Math.abs(l-1)>n);return o}function OF(e,t){let n=Math.pow(2,-52),r=1e-300,i=1,s=t+1-e,o=i/s,a=i/r,u=1/s,c=2,l=0,p=s;do{let f=-(c-1)*(c-e-1);p+=2,u=u*f+p,u===0&&(u=r),a=p+f/a,a===0&&(a=r),u=1/u,l=a*u,o*=l,c+=1}while(c<100&&Math.abs(l-1)>n);return o}function CF(e,t){let n=t/e,r=tI(t-e)*Math.sqrt(2*$l(1,n)),i=[1,-.3333333333333333,.08333333333333333,-.014814814814814815,.0011574074074074073,.0003527336860670194,-.0001787551440329218,3919263178522438e-20,-2185448510679992e-21,-185406221071516e-20,8296711340953087e-22,-17665952736826078e-23,6707853543401498e-24,10261809784240309e-24,-4382036018453353e-24,914769958223679e-24,-25514193994946248e-27,-5830772132550426e-26,24361948020667415e-27,-50276692801141755e-28,11004392031956135e-29,3371763262400985e-28,-1392388722418162e-28,28534893807047445e-30,-5139111834242572e-31,-19752288294349442e-31,8099521156704561e-31],s=i.length-2,o=0,a=0,u=0,c=0;for(;s>=0;s--)u=(s+2)*o/e+i[s+1],c=r*c+u,o=a,a=u;if(c=e/(e+o)*c,t<e){let l=Math.exp(-.5*e*r*r)*(.5*Ta(-r*Math.sqrt(e/2))-c/Math.sqrt(2*Math.PI*e));return isFinite(l)?1-l:1}else{let l=Math.exp(-.5*e*r*r)*(.5*Ta(r*Math.sqrt(e/2))+c/Math.sqrt(2*Math.PI*e));return isFinite(l)?l:0}}function n1(e,t,n){return(e-t)/(Math.SQRT2*Math.abs(n))}function Rf(e){return e<0?.5*Math.exp(-e*e)*Ta(-e):1-.5*Math.exp(-e*e)*Ta(e)}function RF(e,t,n,r){let i=n1(t,n,r);if(e===-1/0)return Rf(i);let s=n1(e,n,r);return s>0&&i>0?Rf(-s)-Rf(-i):Rf(i)-Rf(s)}function iI(e,t,n){return 1/Math.sqrt(2*Math.PI*n*n)*Math.exp(-(e-t)*(e-t)/(2*n*n))}function sI(e){let t=s1.spy(e),n=parseInt(t.slice(0,8),16)&2097151,r=parseInt(t.slice(8,16),16);return(n*4294967296+r)/9007199254740992}function O1(e,t){for(let n=t.length-1;n>0;n--){let r=e+\"::sc\"+n,i=Math.floor(sI(r)*(n+1)),s=t[n];t[n]=t[i],t[i]=s}}function NF(e,t){let n=t.slice();return O1(e,n),n}function oI(e,t){let n=[];for(let r=0;r<t;r++)n.push(r);return O1(e,n),n}function au(e,t,n){return sI(e)*(n-t)+t}function AF(e,t,n){let r=0,i,s,o,a;do i=e+\"::sc\"+r,r+=1,s=au(i,0,1)*2-1,i=e+\"::sc\"+r,r+=1,o=au(i,0,1)*2-1,a=s*s+o*o;while(a>=1||a===0);let u=Math.sqrt(-2*Math.log(a)/a);return t+n*s*u}function _F(e,t){if(t<=0)return NaN;let n=0,r,i,s,o;do r=e+\"::sc\"+n,n+=1,i=au(r,0,1)*2-1,r=e+\"::sc\"+n,n+=1,s=au(r,0,1)*2-1,o=i*i+s*s;while(o>1);let a=i*i/o,u=t*(Math.pow(o,-2/t)-1);return r=e+\"::sc\"+n,n+=1,(au(r,0,1)<.5?-1:1)*Math.sqrt(a*u)}function LF(e,t,n){return t=rr(Math.round(t),0,1/0),t===1/0?NaN:(n=rr(n,0,1),R1(au(e,0,1),t,n))}function wF(e,t){return t<0?NaN:C1(au(e,0,1),t)}function My(e,t,n){return e>=t?1:e<0?0:e<Math.floor((t+1)*n)?r1(e,t,n):1-r1(t-e-1,t,1-n)}function r1(e,t,n){let r=(1-n)/n,i=wy(e,t,n),s=i;for(;e>0&&(i*=e/(t-e+1)*r,s+i!==s);e--)s+=i;return s}function FF(e,t,n,r){return n=rr(Math.round(n),0,1/0),n===1/0?NaN:(r=rr(r,0,1),t<0?0:(e=Math.ceil(e),t=Math.floor(t),e===-1/0?My(t,n,r):My(t,n,r)-My(e-1,n,r)))}function wy(e,t,n){if(e=Math.round(e),t=rr(Math.round(t),0,1/0),t===1/0)return NaN;if(n=rr(n,0,1),e<0||e>t)return 0;if(n===0)return e===0?1:0;if(n===1)return e===t?1:0;if(e===0)return Math.exp(t*_f(-n));if(e===t)return Math.pow(n,t);let r=es(t)-es(e)-es(t-e)-$l(e,t*n)-$l(t-e,t*(1-n),t*n-e);return Math.exp(r)*Math.sqrt(t/(2*Math.PI*e*(t-e)))}function Yl(e,t){return t<0?NaN:(e=Math.round(e),e<0?0:t===0?e===0?1:0:e===0?Math.exp(-t):Math.exp(-es(e)-$l(e,t))/Math.sqrt(2*Math.PI*e))}function Nf(e,t){if(isNaN(e)||isNaN(t))return NaN;if(e===1/0)return 1;if(e=Math.floor(e),e<0)return 0;if(t===0)return 1;if(e+1>12&&2.35*(e+1)>t&&.3*(e+1)<t)return CF(e+1,t);if(e+1>=t){let n=SF(e+1,t);return isFinite(n)?1-t*Yl(e,t)*n:1}else{let n=OF(e+1,t);return isFinite(n)?t*Yl(e,t)*n:0}}function VF(e,t,n){return n<0?NaN:(e=Math.ceil(e),t=Math.floor(t),t<0?0:e===-1/0?Nf(t,n):Nf(t,n)-Nf(e-1,n))}function aI(e,t,n){return n<=t?NaN:e<t||e>n?0:1/(n-t)}function i1(e,t,n){return n<=t?NaN:e<t?0:e>n?1:(e-t)/(n-t)}function BF(e,t,n,r){return i1(t,n,r)-i1(e,n,r)}function GF(e){let t=-e*e;return t<-750?e>=0?1:-1:e>=.065?1-Math.exp(t)*Ta(e):e<=-.065?Math.exp(t)*Ta(-e)-1:e*(1.1283791670955126+t*(.37612638903183754+t*(.11283791670955126+t*(.026866170645131252+t*.005223977625442188))))}function Ta(e){let t=.9999999999999999,n=2.224574423459406,r=2.444115549920689,i=1.7057986861852539,s=.8257463703357973,o=.28647031042892007,a=.07124513844341643,u=.012296749268608364,c=.001347817214557592,l=7263959403471071e-20,p=1,f=3.352953590554884,m=5.227518529742423,g=5.003720878235473,d=3.266590890998987,y=1.5255421920765353,h=.5185887413188858,b=.12747319185915415,x=.02185979575963238,P=.0023889438122503674,M=.00012875032817508128;if(e<0)return e<-6.1?2*Math.exp(e*e):2*Math.exp(e*e)-Ta(-e);if(e>50){let I=.5641895835477563,E=e*e;return e>5e7?I/e:I*(E*(E+4.5)+2)/(e*(E*(E+5)+3.75))}else{let I=t+e*(n+e*(r+e*(i+e*(s+e*(o+e*(a+e*(u+e*(c+e*l)))))))),E=p+e*(f+e*(m+e*(g+e*(d+e*(y+e*(h+e*(b+e*(x+e*(P+e*M)))))))));return I/E}}function uI(e){let t=-39.6968302866538,n=220.946098424521,r=-275.928510446969,i=138.357751867269,s=-30.6647980661472,o=2.50662827745924,a=-54.4760987982241,u=161.585836858041,c=-155.698979859887,l=66.8013118877197,p=-13.2806815528857,f=-.00778489400243029,m=-.322396458041136,g=-2.40075827716184,d=-2.54973253934373,y=4.37466414146497,h=2.93816398269878,b=.00778469570904146,x=.32246712907004,P=2.445134137143,M=3.75440866190742,I=.02425,E,v,O;return e>.5?-uI(1-e):e===.5?0:e<0?NaN:e===0?-1/0:(e<I?(E=Math.sqrt(-2*Math.log(e)),O=(((((f*E+m)*E+g)*E+d)*E+y)*E+h)/((((b*E+x)*E+P)*E+M)*E+1)):(E=e-.5,v=E*E,O=(((((t*v+n)*v+r)*v+i)*v+s)*v+o)*E/(((((a*v+u)*v+c)*v+l)*v+p)*v+1)),O-Math.sqrt(2*Math.PI)*(.5*Ta(-O/Math.SQRT2)-Math.exp(.5*O*O)*e))}function C1(e,t){if(t<0||e<0||e>1)return NaN;if(t===0||e===0)return 0;if(e===1)return 1/0;let n=-1,r=Math.ceil(t);for(;Nf(r,t)<e;)r=2*r;let i=Math.floor(n+(r-n)/2);for(;n<i&&i<r;)Nf(i,t)<e?n=i:r=i,i=Math.floor(n+(r-n)/2);return r}function R1(e,t,n){if(t!==Math.round(t))return NaN;if(n<0||n>1)return NaN;if(e<0||e>1)return NaN;if(e===0)return 0;if(e===1)return t;if(t===0)return 0;if(n===1)return t;if(n===0)return 0;let r=-1,i=t,s=Math.floor(r+(i-r)/2);for(;r<s&&s<i;)My(s,t,n)<e?r=s:i=s,s=Math.floor(r+(i-r)/2);return i}function N1(e,t){if(isNaN(t)||t<=0||e<0||e>1)return NaN;if(e===0)return-1/0;if(e===1)return 1/0;if(t===1||t===2||t===4)return WT(t,e);let n,r;if(e===.5)return 0;if(e>.5)n=t>1?uI(e):WT(1,e),r=t>1?WT(1,e):Math.pow(Ly(0,t)*Math.pow(t,(t-1)/2)/(1-e),1/t);else return-N1(1-e,t);return kF(t,e,n,r)}function WT(e,t){let n=4*t*(1-t);switch(e){case 1:return Math.tan(Math.PI*(t-.5));case 2:return 2*(t-.5)*Math.sqrt(2/n);case 4:let r=Math.cos(Math.acos(Math.sqrt(n))/3)/Math.sqrt(n);return tI(t-.5)*2*Math.sqrt(r-1);default:throw new Error(\"_invTSimple() must be called with 1, 2, or 4 df.\")}}function kF(e,t,n,r){if(!isFinite(n)||!isFinite(r))return NaN;let i=n,s=r;for(;;){let o=Ki(i,s),a=Tc(e,o);if(o===i||o===s)return a>t?i:s;a<t?i=o:s=o}}function zF(e,t,n){return e<0||e>1||n<=t?NaN:e===0?t:e===1?n:t+e*(n-t)}function A1(e,t){let n=Dy(e);return(Xo(e)-t)*Math.sqrt(e.length)/n}function _1(e,t){let n=e.length,r=Xo(e),i=Dy(e),s=t.length,o=Xo(t),a=Dy(t),u=Math.sqrt(((n-1)*i*i+(s-1)*a*a)/(n+s-2));return(r-o)/(u*Math.sqrt(1/n+1/s))}function Ul(e,t,n){return n<0?Ey(-1/0,e,t):n>0?Ey(-1/0,-e,t):2*Ey(-1/0,-Math.abs(e),t)}function cI(e,t){arguments.length===1&&(t=0);let n=A1(e,t),r=e.length-1;return{lessThan:Ul(n,r,-1),greaterThan:Ul(n,r,1),notEqual:Ul(n,r,0)}}function lI(e,t){let n=_1(e,t),r=e.length+t.length-2;return{lessThan:Ul(n,r,-1),greaterThan:Ul(n,r,1),notEqual:Ul(n,r,0)}}function pI(e){return{min:L1(e),q1:Ic(e,1),median:V1(e),q3:Ic(e,3),max:w1(e)}}function HF(e){return e.length}function L1(e){if(e.length<1)return NaN;let t=e[0];if(isNaN(t))return NaN;for(let n=1;n<e.length;n++){if(isNaN(e[n]))return NaN;e[n]<t&&(t=e[n])}return t}function w1(e){if(e.length<1)return NaN;let t=e[0];if(isNaN(t))return NaN;for(let n=1;n<e.length;n++){if(isNaN(e[n]))return NaN;e[n]>=t&&(t=e[n])}return t}function F1(e,t){if(!isFinite(t)||t<0||t>1)return NaN;if(e.some(isNaN))return NaN;if(e.length===0)return NaN;let n=e.length,r=Ec(e),i=t*(n-1);return Math.floor(i)===i?e[r[i]]:(Math.ceil(i)-i)*e[r[Math.floor(i)]]+(i-Math.floor(i))*e[r[Math.ceil(i)]]}function Ic(e,t){if(!isFinite(t)||t<0||t>4)return NaN;if(e.some(isNaN))return NaN;let n=Ec(e),r=Fy(e,t),i=Math.floor(r),s=Math.ceil(r);return(e[n[i]]+e[n[s]])/2}function Ec(e){let t=e.length,n=[];for(let r=0;r<t;r++)n.push(r);return n.sort(function(r,i){return q(ji(e[r],e[i]))}),n}function Fy(e,t){t=Math.round(t);let n=e.length,r=n%2===1,i;return n===1?0:(t===0&&(i=0),t===2&&(i=(n-1)/2),t===4&&(i=n-1),t===1&&(i=r?(n+1)/4-1:(n+2)/4-1),t===3&&(i=r?(3*n+3)/4-1:(3*n+2)/4-1),i===void 0?NaN:i)}function UF(e,t){return Ec(e)[Math.ceil(t*(e.length-1))]+1}function qF(e,t){return Ec(e)[Math.floor(t*(e.length-1))]+1}function $F(e,t){return Ec(e)[Math.ceil(Fy(e,t))]+1}function YF(e,t){return Ec(e)[Math.floor(Fy(e,t))]+1}function V1(e){return F1(e,.5)}function XF(e){if(e.length<1)return 0;let t=e[0];if(isNaN(t))return 0;let n=0;for(let r=1;r<e.length;r++){if(isNaN(e[r]))return 0;e[r]<t&&(n=r,t=e[r])}return n+1}function ZF(e){if(e.length<1)return 0;let t=e[0];if(isNaN(t))return 0;let n=0;for(let r=1;r<e.length;r++)if(e[r]>=t){if(isNaN(e[r]))return 0;n=r,t=e[r]}return n+1}function wf(e){let t=Xo(e),n=0;for(let r=0;r<e.length;r++){let i=e[r]-t;n+=i*i}return n/e.length}function WF(e){let t=Xo(e),n=0;for(let r=0;r<e.length;r++)n+=Math.abs(e[r]-t);return n/e.length}function B1(e){let t=e.length;return wf(e)*t/(t-1)}function G1(e,t){let n=Math.min(e.length,t.length);e.length!==n&&(e=e.slice(0,n)),t.length!==n&&(t=t.slice(0,n));let r=Xo(e),i=Xo(t),s=0;for(let o=0;o<n;o++)s+=(e[o]-r)*(t[o]-i);return s/n}function jF(e,t){let n=Math.min(e.length,t.length);return G1(e,t)*n/(n-1)}function Vy(e,t){let n=Math.min(e.length,t.length);e.length!==n&&(e=e.slice(0,n)),t.length!==n&&(t=t.slice(0,n));let r=Xo(e),i=Xo(t),s=0,o=0,a=0;for(let u=0;u<n;u++){let c=e[u]-r,l=t[u]-i;s+=c*c,o+=l*l,a+=c*l}return a/Math.sqrt(s*o)}function fI(e,t,n,r){let i=e[0];for(let o=2;o<e.length;o++){let a=q(Ji(ji(e[o],i),n));if(!Li(a,o,10))return 0}let s=q(r);for(let o=0;o<t.length-1;o++){let a=q(Ji(ji(t[o],i),n));if(!Li(a,s-t.length+o,10))return 0}return!isFinite(s)||s<e.length||s<t.length?0:s}function dI(e){return e<0||!isFinite(e)?0:e}function QT(e){let t=e.length;if(t===0)return[];let n=[],r=[];for(let a=0;a<t;a++)r.push([e[a],a]);r.sort(function(a,u){let c=a[0],l=u[0];return c===1/0&&l===1/0||c===-1/0&&l===-1/0?0:c-l});let i=0,s=1,o=1;for(;i<t;){let a=i;for(;a<t-1&&r[a][0]===r[a+1][0];)a+=1;o=a-i+1;let u;for(a=0;a<o;a++)u=r[i+a][1],n[u]=isNaN(e[u])?NaN:s+.5*(o-1);s+=o,i+=o}return n}function JF(e,t){let n=Math.min(e.length,t.length);return e.length!==n&&(e=e.slice(0,n)),t.length!==n&&(t=t.slice(0,n)),Vy(QT(e),QT(t))}function Dy(e){return Math.sqrt(B1(e))}function QF(e){return Math.sqrt(wf(e))}var KF=Sf;function Xl(e,t){return po(t[0]-e[0],t[1]-e[1])}function eV(e,t){return po(t[0]-e[0],po(t[1]-e[1],t[2]-e[2]))}function k1(e,t,n){return[rr(Math.round(e),0,255),rr(Math.round(t),0,255),rr(Math.round(n),0,255)]}function tV(e,t,n){isFinite(e)||(e=0),t=rr(t,0,1),n=rr(n,0,1);let r=n*(1-t/2);r===0||r===1?t=0:t=(n-r)/Math.min(r,1-r);let{r:i,g:s,b:o}=fy(e,t,r).rgb();return k1(i,s,o)}function nV(e){return e}function rV(e,t){return[e,t]}function iV(e,t,n){return[e,t,n]}function sV(e,t){return[e,t]}function oV(e){return e}function aV(e){let t=[];if(e.length===0)return[];for(let n=0;n<e.length-1;n++)t.push([e[n],e[n+1]]);return t.push([e[e.length-1],e[0]]),t}function mI(e){if(e.length==0)return 0;let t=[...e,e[0]];return JD(t)}function uV(e){let t=0;for(let n=0;n<e.length-1;n++){let[r,i]=e[n],[s,o]=e[n+1];t+=as(s-r,o-i)}if(e.length>1){let[n,r]=e[e.length-1],[i,s]=e[0];t+=as(i-n,s-r)}return t}function cV(e){let t=!1;for(let n=0;n<e.length;n++){let r=(n+1)%e.length;e[n][0]===e[r][0]&&e[n][1]===e[r][1]&&(t=!0)}return t?e.filter((n,r)=>{let i=e[r===0?e.length-1:r-1];return n[0]!==i[0]||n[1]!==i[1]}):e}function lV(e){let[t,n,r,i]=e;return[t,r>=0?n:n+r,r>=0?r:-r,i]}function z1(e,t,n){if(e.length===0)return[];e=cV(e);let r=QD([...e,e[0]]),i=[];for(let s=0;s<e.length;s++){let o=e[s>0?s-1:e.length-1],a=e[s],u=e[s<e.length-1?s+1:0],c=r[s]===1,l=RV(o,a,u,c?\"counterclockwise\":\"clockwise\",n);i.push(t?l:lV(l))}return i}function pV(e,t){return z1(e,!1,t)}function fV(e,t){return z1(e,!0,t)}function yI(e,t){return[e,t]}var dV=yI,mV=yI;function H1(e,t){let n=[t[0]-e[0],t[1]-e[1]],r=[e[0],e[1]];return U1(n,r)}function U1(e,t){return[e,t]}function yV(e){return e[0]}function gV(e){return e[1]}function hV(e,t){let n=[t[0]-e[0],t[1]-e[1],t[2]-e[2]],r=[e[0],e[1],e[2]];return q1(n,r)}function q1(e,t){return[e,t]}function bV(e){return e[0]}function xV(e){return e[1]}function PV(e){return e}function TV(e,t){return[e,t]}function IV(e){return e[0]}function EV(e){return e[1]}function MV(e,t,n){return[e,t,n]}function jl([e,t,n]){let[r,i]=e,[s,o]=t,[a,u]=n,c=s*s+o*o,l=(r*r+i*i-c)/2,p=(c-a*a-u*u)/2,f=(r-s)*(o-u)-(s-a)*(i-o);f=1/f;let m=(l*(o-u)-p*(i-o))*f,g=((r-s)*p-(s-a)*l)*f;return[m,g]}function Jl(e){let[[t,n],[r,i],[s,o]]=e,a=r-t,u=i-n,c=s-r,l=o-i;return 2*Math.atan2(a*l-c*u,a*c+u*l)}function gI(e){let t=Math.abs(Jl(e));return t<1e-9||t>2*Math.PI-1e-9}function $1(e){return Math.abs(e)===Math.PI?Math.PI:x1(e+Math.PI,2*Math.PI)-Math.PI}function Y1(e,t,n,r){return[e,$1(t),n,r]}function vV([e,t,n,r]){return[e,t,n,r]}function DV(e){return e[2]}function SV(e){return e[3]}function X1(e){let[t,n,r,i]=e,s=Math.PI*2,o=r===0?s:r>0?r-s:r+s;return[t,n,o,i]}function OV(e){let[t,n,r,i]=X1(e);return[t,n,r,i]}function CV(e){let[t,n,r,i]=e,s=r>=0?Math.PI-r:-Math.PI-r;return[t,$1(n+r),s,i]}function RV(e,t,n,r,i){let s=e[0]-t[0],o=e[1]-t[1],a=n[0]-t[0],u=n[1]-t[1],c=Math.atan2(o,s),l=Math.atan2(s*u-o*a,s*a+o*u),p=2*Math.PI;return r===\"clockwise\"?l-=l<0?0:p:r===\"counterclockwise\"&&(l+=l<0?p:0),Y1(t,c,l,i)}function hI(e,t){let[[n,r],[i,s]]=e;return[[t*n,t*r],[t*i,t*s]]}var NV=hI,AV=hI;function _V(e,t){let[[n,r],i]=e;return[[t*n,t*r],t*i]}function LV(e,t){let[[n,r],[i,s],[o,a]]=e;return[[t*n,t*r],[t*i,t*s],[t*o,t*a]]}function wV(e,t){let[[n,r],i,s,o]=e;return[[t*n,t*r],t*i,t*s,o]}function bI(e,t){let[[n,r],[i,s]]=e,[[o,a],[u,c]]=t;return[[n+o,r+a],[i+u,s+c]]}function FV(e,t){let[[n,r,i],[s,o,a]]=e,[[u,c,l],[p,f,m]]=t;return[[n+u,r+c,i+l],[s+p,o+f,a+m]]}var VV=bI,BV=bI;function GV(e,t){let[[n,r],i]=e,[[s,o],a]=t;return[[n+s,r+o],i+a]}function kV(e,t){let[[n,r],[i,s],[o,a]]=e,[[u,c],[l,p],[f,m]]=t;return[[n+u,r+c],[i+l,s+p],[o+f,a+m]]}function zV(e,t){let[[n,r],i,s,o]=e,[[a,u],c,l]=t;return[[n+a,r+u],i+c,s+l,o]}function xI(e,t){let[[n,r],[i,s]]=e;return[(1-t)*n+t*i,(1-t)*r+t*s]}function PI(e,t){return xI(e,rr(t,0,1))}function HV(e,t){t=rr(t,0,1);let[[n,r,i],[s,o,a]]=e;return[(1-t)*n+t*s,(1-t)*r+t*o,(1-t)*i+t*a]}function KT(e,t){return xI(e,rr(t,0,1/0))}function UV(e,t){let[[n,r],i]=e,s=Math.min(1,Math.max(0,t));return[n+i*Math.cos(2*Math.PI*s),r+i*Math.sin(2*Math.PI*s)]}function Z1(e,t){let n=By(e);if(!n)return[NaN,NaN];if(n.type===\"segment\")return PI([e[0],e[2]],t);if(n.type===\"rays\")return t<=0?KT([n.start1,n.end1],-t):t>=1?KT([n.start2,n.end2],t-1):[NaN,NaN];t=Math.min(1,Math.max(0,t));let r=jl(e),i=Jl(e),s=Math.atan2(e[0][1]-r[1],e[0][0]-r[0]),o=Xl(r,e[0]),a=s+t*i;return[r[0]+o*Math.cos(a),r[1]+o*Math.sin(a)]}function qV(e,t){if(isNaN(t))return[NaN,NaN];if(t<0||t>=e.length)return e[0];let n=Math.floor(t);return PI([e[n],e[(n+1)%e.length]],t-n)}function By(e){let[t,n,r]=e,[[i,s],[o,a],[u,c]]=[t,n,r];if(isNaN(i)||isNaN(s)||isNaN(o)||isNaN(a)||isNaN(u)||isNaN(c))return;let l=jl([t,n,r]),p=Xl(l,t);if(isFinite(p)&&!gI([t,n,r])){let f=Math.atan2(t[1]-l[1],t[0]-l[0]),m=f+Jl([t,n,r]);return{type:\"arc\",center:l,radius:p,startAngle:f,endAngle:m}}else{let f=Rs(o,a,0,i,s,0,u,c,0);return f<0||f>1?{type:\"rays\",start1:[i,s],end1:[i+(i-u),s+(s-c)],start2:[u,c],end2:[u+(u-i),c+(c-s)]}:{type:\"segment\",start:[i,s],end:[u,c]}}}function $V(e,t,n){let i=Xl(e,t);if(i>1e-9)return t;let s=Xl(e,n);return s>1e-9?n:isNaN(i)&&isNaN(s)?[NaN,NaN]:e}function Af(e,t){let[[n,r],i]=e,[[s,o],a]=t,u=po(s-n,o-r),c=i+a,l=i-a,p=u*u,f=Math.sqrt((u+c)*(-u+c)*(u-l)*(u+l))/4,m=i*i,g=a*a;return[(s+n)/2+(s-n)*(m-g)/(2*p)+-2*(o-r)*f/p,(o+r)/2+(o-r)*(m-g)/(2*p)+2*(s-n)*f/p]}function W1(e,t,n){let[[r,i],s]=e,[[o,a],[u,c]]=t,l=o-r,p=u-r,f=a-i,m=c-i,g=p-l,d=m-f,y=g*g+d*d,h=l*m-p*f,b=s*s*y-h*h;if(b<0)return[NaN,NaN];let x=Math.sqrt(b);return x<0?[NaN,NaN]:[r+(h*d+n*g*x)/y,i+(-h*g+n*d*x)/y]}function YV(e,t){let[[n,r],[i,s]]=e,[[o,a],[u,c]]=t,l=s-r,p=n-i,f=c-a,m=o-u,g=l*n+p*r,d=f*o+m*a,y=l*m-f*p;return y===0?[NaN,NaN]:[(m*g-p*d)/y,(l*d-f*g)/y]}function TI(e,t,n=0){let r=W1(t,e,-1);return Wl(r,e,n,!0)?r:[NaN,NaN]}function II(e,t,n=0){let r=W1(e,t,1);return Wl(r,t,n,!1)?r:[NaN,NaN]}function j1(e,t,n=0){let r=YV(e,t);return!Wl(r,e,n,!0)||!Wl(r,t,n,!1)?[NaN,NaN]:r}function XV(e,t,n=0){let r=K1(t,e,n,-1);return Zl(r,t,n,!1)?r:[NaN,NaN]}function J1(e,t,n=0){let r=eS(t,e,n,-1);return!Wl(r,e,n,!0)||!Zl(r,t,n,!1)?[NaN,NaN]:r}function ZV(e,t,n=0){let r=K1(e,t,n,1);return Zl(r,e,n,!0)?r:[NaN,NaN]}function Q1(e,t,n=0){let r=eS(e,t,n,1);return!Zl(r,e,n,!0)||!Wl(r,t,n,!1)?[NaN,NaN]:r}function WV(e,t,n=0){let r=jV(e,t,n);return!Zl(r,e,n,!0)||!Zl(r,t,n,!1)?[NaN,NaN]:r}function jV(e,t,n){let r=Oy(e);if(Cy(r))return J1(r,t,n);let i=Oy(t);return Cy(i)?Q1(e,i,n):EI(()=>Af(r,i),()=>Af(i,r),s=>MI(-1,Sy(e,s),Sy(t,s)))}function K1(e,t,n,r){let i=Oy(e);return Cy(i)?r>0?II(t,i,n):TI(i,t,n):EI(()=>Af(i,t),()=>Af(t,i),s=>MI(r,Sy(e,s),JV(t,s)))}function eS(e,t,n,r){let i=Oy(e);return Cy(i)?j1(i,t,n):EI(()=>II(i,t,n),()=>TI(t,i,n),s=>MI(r,Sy(e,s),QV(t)))}function EI(e,t,n){let r=e();if(n(r))return r;let i=t();return n(i)?i:[NaN,NaN]}function MI(e,t,n){return e*tS(t,n)>0}function Sy(e,[t,n]){let[r,i]=jl(e);return Jl(e)>0?[i-n,t-r]:[n-i,r-t]}function JV([[e,t]],[n,r]){return[t-r,n-e]}function QV([[e,t],[n,r]]){return[n-e,r-t]}function Oy(e){let t=jl(e),n=Xl(t,Z1(e,0));return isFinite(n)&&!gI(e)?[t,n]:[e[0],e[2]]}function Cy(e){return Array.isArray(e[1])}function Zl([e,t],n,r,i){let[s,o]=jl(n);return(i?(r&3)===0:(r&12)===0)||Ld(Math.atan2(t-o,e-s),Math.atan2(n[0][1]-o,n[0][0]-s),Jl(n))}function Wl([e,t],[[n,r],[i,s]],o,a){let u=Rs(e,t,0,n,r,0,i,s,0),[c,l]=a?[(o&1)===0,(o&2)===0]:[(o&4)===0,(o&8)===0];return!isNaN(u)&&(u>=0||c)&&(u<=1||l)}function KV(e,t){let[[n,r],[i,s]]=e,[o,a]=t;return[[o,a],[o+(i-n),a+(s-r)]]}function eB(e,t){let[[n,r],[i,s]]=e,[o,a]=t;return[[o,a],[o+(s-r),a-(i-n)]]}function tS(e,t){let[n,r]=e,[i,s]=t;return n*s-i*r}function tB(e,t){let[n,r]=e,[i,s]=t;return n*i+r*s}function nB(e){let[t,n]=e;return[-n,t]}function rB(e,t,n){return[e,t,n]}function iB(e){return[[1,0],e,!1]}function sB(e,t){let[n,r]=e;return[[t,0],[(1-t)*n,(1-t)*r],!1]}function oB(e,t){let[n,r]=e,i=Math.cos(t),s=Math.sin(t);return[[i,s],[n*(1-i)+r*s,r*(1-i)-n*s],!1]}function aB(e){let[[t,n],[r,i]]=e,s=r-t,o=i-n,a=s*s+o*o;return[[(s*s-o*o)/a,2*s*o/a],[(1-(s*s-o*o)/a)*t-2*s*o/a*n,(1+(s*s-o*o)/a)*n-2*s*o/a*t],!0]}function uB(e,t){let[[n,r],[i,s],o]=e,[[a,u],[c,l],p]=t;return o&&(u=-u,l=-l,p=!p),[[a*n-u*r,a*r+u*n],[i+n*c-r*l,s+n*l+r*c],p]}function cB(e){let[[t,n],[r,i],s]=e,o=t*t+n*n,a=t/o,u=-n/o,c=-(t/o*r+n/o*i),l=-(t/o*i-n/o*r);return s&&(u=-u,l=-l),[[a,u],[c,l],s]}function Yo(e,t){let[[n,r],[i,s],o]=e,[a,u]=t;return o&&(u=-u),[n*a-r*u+i,n*u+r*a+s]}function lB(e,t){let[n,r,i]=e;return i?-t:t}function Gy(e,t){let[n,r]=t;return[Yo(e,n),Yo(e,r)]}var pB=Gy,fB=Gy;function dB(e,t){let[n,r]=t,i=[r,[r[0]+n[0],r[1]+n[1]]],s=Gy(e,i);return H1(s[0],s[1])}function mB(e,t){let[n,r]=t,[[i,s]]=e;return[Yo(e,n),po(i,s)*r]}function yB(e,t){let[n,r,i]=t;return[Yo(e,n),Yo(e,r),Yo(e,i)]}function gB(e,t){let n=[];for(let r of t)n.push(Yo(e,r));return n}function hB(e,t){let[n,r,i]=t,s=Yo(e,n),[o,a,u]=e,[c,l]=Yo([o,[0,0],u],[Math.cos(r),Math.sin(r)]),p=Math.atan2(l,c),f=lB(e,i);return[s,p,f,t[3]]}function bB(e,t){let n=[];for(let r=0;r<Math.min(e.length,t.length);r++)t[r]&&n.push(e[r]);return n}function xB(e,t){let n=[];for(let r of t)n.push(e[r]);return n}function PB(e){let t=[],n={};for(let r=0;r<e.length;r++){let i=e[r],s=eI(i);n.hasOwnProperty(s)||(n[s]=!0,t.push(r))}return t}function TB(e,t){return[e,t]}function IB(e){return e[0]}function EB(e){return e[1]}function eI(e){if(Array.isArray(e))return`[${e.map(eI).join(\",\")}]`;switch(typeof e){case\"string\":return e;case\"boolean\":case\"number\":return e.toString();case\"object\":if(MB(e)){let n=[];for(let r in e.updateRules)n.push(`\"${r}\": ${eI(e.updateRules[r].value)}`);return`{${n.join(\",\")}}`}else return q(e).toString();default:return e}}function MB(e){return typeof e!=\"object\"||!e?!1:e.type===\"Action\"}function vB(e){return e}function DB(e){return e}function Xr(e){if(!mo(e))throw new Error(\"Programming error: expected an array but found \"+typeof e)}function mo(e){return Array.isArray(e)}function nS(e){if(mo(e))for(let{compiled:t}of e)t&&vI(t)}function Z4(e){if(mo(e))for(let{compiled:t}of e)t&&SB(t)}function vI(e){delete e.fn}function SB(e){e.fn=Ff(e.args,e.source,e.constants,e.executionMetadata)}function Ff(e,t,n,r){let s=`var fn = (function(${e.join(\",\")}){\"use strict\"; ${t}});\nfn.__meta = __meta;\nreturn fn;\n`;return new Function(\"BuiltIn\",\"ErrorMsg\",\"_C\",\"__meta\",s)(fo,nn,n,r)}function rS(e){let t=e.getInstruction(e.getReturnIndex());if(t.type!==47)throw new Error(`Expected BlockVar, got ${t.type}`);let n=e.getInstruction(t.args[0]);if(n.type!==51)throw new Error(`Expected EndMap, got ${n.type}`);let r=W(t.valueType)?ke(t.valueType):t.valueType,i=e.getInstruction(n.args[0]);if(i.type!==50)throw new Error(`Expected BeginMap, got ${i.type}`);let s=[];for(let p of i.args){let f=e.getInstruction(p);if(!bt(f)||f.valueType!==T)throw J(\"Programming error: interval bounds must be constant numbers\");s.push(q(f.value))}let o,a;r===Wn||r===jn?(o=[\"t\"],a={type:\"1d\",min:s[0],max:s[1]}):(o=[\"u\",\"v\"],a={type:\"2d\",uMin:s[0],uMax:s[1],vMin:s[2],vMax:s[3]});let u=uy(e),c=`\n const mapFn = (function() {\n \"use strict\";\n ${u.source}\n })();\n return mapFn(${o.join(\",\")});\n`,l={};return{args:o,source:c,constants:u.constants,executionMetadata:l,fn:Ff(o,c,u.constants,l),domain:a}}function oi(e,t){let n=[],r=[];for(let i=0;i<t;i++)r.push(!1);r.push(!0);for(let i=t;i>=0;i--){if(!r[i])continue;let s=e.getInstruction(i);if(s.type===2)n.push({symbol:e.argNames[i],scope:\"free\"});else if(ri(s))switch(s.type){case 21:n.push({symbol:s.callData.indexSymbol,scope:\"integral\"});break;case 19:n.push({symbol:s.callData.indexSymbol,scope:s.callData.type});break;case 23:if(s.listComprehensionCallData)for(let a of s.listComprehensionCallData.inputListSymbols)n.push({symbol:a,scope:\"comprehension\"});break;case 50:for(let a of s.callData.parameterSymbols)n.push({symbol:a,scope:\"map\"});break;case 53:{let a=e.getInstruction(s.args[0]);for(let u of a.parameterSymbols)n.push({symbol:u,scope:\"recursive-function\"});break}default:let o=s;throw new Error(`Programming Error: unexpected loop instruction ${o.type}`)}else s.type===3&&s.symbol&&n.push({symbol:s.symbol,scope:\"symbolic-var\"});if(!be(s))for(let o of e.getDirectDependencies(s))r[o]=!0}return n.reverse()}function iS(e){if(e.isConstant())return;let t=[];for(let s=0;s<e.getReturnIndex();s++)e.getInstruction(s).type===44&&t.push(s);if(t.length===0)return;let n=Yr(e,e.getReturnIndex()),r=[];for(let s=0;s<e.argNames.length;s++)n[s]&&r.push(s);let i=mc(e,r,0,e.getReturnIndex());for(let s of t)if(n[s]&&i[s])throw jP(oi(e,s))}function OB(e){for(var t=0;t<this.length;t++)e(this.elementAt(t),t)}function CB(e){for(var t=[],n=0;n<this.length;n++)t.push(e(this.elementAt(n),n));return t}var pn=class e extends Tt{constructor(n){super();this.isError=!1;this.eachElement=OB;this.mapElements=CB;if(n.getError())throw new Error(\"Programming error: IRExpression should not be constructed with an error chunk\");if(this._chunk=n,this.valueType=n.getReturnType(),this.addDependencies(n.getLiveArgNames()),this.isList=W(this.valueType),this.isList&&(this.length=this._chunk.getConstantListLength(),this.length===void 0))throw iT(n.getListLengthDependencies());iS(n);var r=n.isConstant();this.isConstant=r&&(this.valueType===T||this.valueType===ge),this.isTypedConstant=r,this.isEmptyAction=r&&this.valueType===rt&&Object.keys(n.asValue().updateRules).length===0}shouldExportAns(){return!0}getCompiledFunction(n){return ca(this.valueType)?rS(this._chunk):this._chunk.getCompiledFunction(n)}getRestrictedFunctionForGLSL(n,r){return this._chunk.getRestrictedFunctionForGLSL(n,r)}polynomialOrder(n){return this._chunk.polynomialOrder(n,{allowRestriction:!0,allowClosedBlockReferences:!1})}getPolynomialCoefficients(n){for(var r=this._chunk.getPolynomialCoefficients(n),i=r.chunk,s=r.coefficients,o=[],a=0;a<s.length;a++){var u=i.copy();u.setReturnIndex(s[a]),u.fuseBroadcast(),o.push(new e(u))}return o}takeDerivative(n){var r=this._chunk.copy().takeDerivative(n).fuseBroadcast();return new e(r)}gradient(n){var r=this._chunk.copy().gradient(n).fuseBroadcast();return new e(r)}toImplicitBool(){let n=this._chunk.copy();return n.GreaterEqual([n.getReturnIndex(),n.Constant(0)]),n.fuseBroadcast(),new e(n)}interpretWithParameters(n){let r,i=this._chunk.argNames;if(n.length===i.length)r=n;else{r=[];let s=this.getDependencies();for(let o=0,a=0;o<i.length;o++)s[a]===i[o]?(r.push(n[a]),a+=1):r.push(void 0)}return this._chunk.interpretWithParameters(r)}substituteConstantArguments(n){return new e(this._chunk.substituteConstantArguments(n))}boundDomain(n){return this._chunk.boundDomain(n)}asValue(){if(this._chunk.isConstant())return this._chunk.asValue();if(this.isList){for(var n=[],r=ao($r(ke(this.valueType))),i=0;i<this.length;i++)n.push(r);return n}else return ao($r(this.valueType))}asTypedValue(){return{valueType:this.valueType,value:this.asValue()}}asCompilerValue(){return this._chunk.asCompilerValue()}isNaN(){return typeof this.asValue()==\"number\"&&isNaN(this.asValue())}getEvaluationInfo(){return this._chunk.isConstant()&&this.getDependencies().length===0&&(oe(this.valueType,T)||oe(this.valueType,ge))?[{val:this.asValue()}]:!1}findLinearSubset(n){return this._chunk.findLinearSubset(n)}deriveRegressionRestrictions(){var n=this._chunk.deriveRegressionRestrictions();return n===this._chunk?this:new e(n)}getCursorContext(){return this._chunk.getCursorContext()}getRecursiveFunctionMetadata(){let n=this._chunk.getInstruction(this._chunk.getReturnIndex());if(n.type===55)return this._chunk.getRecursiveFunctionMetadata(n.args[0])}};var Ql=class extends j{};var Kl=class extends j{};var uu=class extends j{};var ep=class extends j{};var tp=class extends j{};var cu=class extends j{};var np=class extends j{};var rp=class extends j{};var ip=class extends j{};var ky=class extends cu{};var wi=class e extends Tt{constructor(n,r,i,s,o){super();this.specifiedArg=i;this.rhs=s;this.originalNode=o;if(this._symbol=n,this._argSymbols=r.map(function(a){return a._symbol}),this._expression=s,this.userData=o.userData,this.metaData=o.metaData,this._inputSpan=o._inputSpan,this.mergeDependenciesInScope(\"FunctionDefinition\",this._argSymbols,this._expression,{functionDefinitionSymbol:this._symbol}),i.valid){let a=i.functionDefArgSymbols.slice();a[i.argIndex]=i.argValue.toString(),this.ref=`_base_case:${n}:${a.join(\",\")}`,this._exports=[this.ref]}else{let a=this._exports.find(u=>u.indexOf(\"idref\")!==-1);a&&(this.ref=a)}}static fromCallAssignment(n,r){let i=r._lhs;if(!(i instanceof cn))return;let s=n[i._symbol];if(!s||!(s instanceof cr))return;if(i.args.length!==s._argSymbols.length)return new e(s._symbol,[],{valid:!1,error:yb(s._symbol,s._argSymbols.length)},r._rhs,r);let o,a=[];for(let u=0;u<i.args.length;u++){let c=i.args[u];if(c instanceof Zt){if(o){o={valid:!1,error:Hp()};break}o={valid:!0,argIndex:u,functionDefArgSymbols:s._argSymbols,argValue:c.asValue(),argSymbol:s._argSymbols[u]}}else if(c instanceof ze)if(c._symbol!==s._argSymbols[u]){o={valid:!1,error:im()};break}else a.push(c);else{o={valid:!1,error:im()};break}}if(o)return new e(s._symbol,a,o,r._rhs,r)}getRef(){return this.ref}};function ae(e,t){let n=Av(e);return n.prototype.type=t,n}var RB={Base:ae(Tt,\"Base\"),Expression:ae(j,\"Expression\"),Error:ae(C,\"Error\"),Constant:ae(Zt,\"Constant\"),MixedNumber:ae(Jd,\"MixedNumber\"),Identifier:ae(ze,\"Identifier\"),Ans:ae(Qd,\"Ans\"),List:ae(Vo,\"List\"),Range:ae(ol,\"Range\"),ListAccess:ae(Ua,\"ListAccess\"),DotAccess:ae(xi,\"DotAccess\"),Construction:ae(ju,\"Construction\"),ParenSeq:ae(Qi,\"ParenSeq\"),MovablePoint:ae(Kd,\"MovablePoint\"),NamedCoordinateAccess:ae(Ju,\"NamedCoordinateAccess\"),BareSeq:ae(qa,\"BareSeq\"),Norm:ae(al,\"Norm\"),BaseComparator:ae(Ns,\"BaseComparator\"),ComparatorChain:ae(Xa,\"ComparatorChain\"),DoubleInequality:ae(Hm,\"DoubleInequality\"),RepeatedOperator:ae(Za,\"RepeatedOperator\"),Sum:ae(xl,\"Sum\"),Product:ae(Pl,\"Product\"),Integral:ae(Tl,\"Integral\"),AssignmentExpression:ae(Il,\"AssignmentExpression\"),ListComprehension:ae(ya,\"ListComprehension\"),FunctionCall:ae(cn,\"FunctionCall\"),RecursiveFunctionBaseCase:ae(wi,\"RecursiveFunctionBaseCase\"),SeededFunctionCall:ae(Wa,\"SeededFunctionCall\"),FunctionExponent:ae(El,\"FunctionExponent\"),FunctionFactorial:ae(Ml,\"FunctionFactorial\"),Prime:ae(uc,\"Prime\"),Piecewise:ae(hr,\"Piecewise\"),Restriction:ae(vl,\"Restriction\"),Derivative:ae(cc,\"Derivative\"),UpdateRule:ae(Dl,\"UpdateRule\"),Substitution:ae(Go,\"Substitution\"),Histogram:ae(Sl,\"Histogram\"),DotPlot:ae(Ol,\"DotPlot\"),BoxPlot:ae(Cl,\"BoxPlot\"),TTest:ae(Rl,\"TTest\"),IndependentTTest:ae(Nl,\"IndependentTTest\"),Stats:ae(Al,\"Stats\"),Assignment:ae(ga,\"Assignment\"),CoordinateEquation:ae(Um,\"CoordinateEquation\"),FunctionDefinition:ae(cr,\"FunctionDefinition\"),CallAssignment:ae(ja,\"CallAssignment\"),Equation:ae(ko,\"Equation\"),Regression:ae(qm,\"Regression\"),Image:ae($m,\"Image\"),Ticker:ae(Ym,\"Ticker\"),Slider:ae(Xm,\"Slider\"),RegressionParameter:ae(lc,\"RegressionParameter\"),Table:ae(Zm,\"Table\"),TableColumn:ae(pc,\"TableColumn\"),SolvedEquation:ae(Wm,\"SolvedEquation\"),OptimizedRegression:ae(jm,\"OptimizedRegression\"),Seed:ae(fc,\"Seed\"),ExtendSeed:ae(dc,\"ExtendSeed\"),IRExpression:ae(pn,\"IRExpression\"),Add:ae(Ql,\"Add\"),Subtract:ae(ni,\"Subtract\"),Multiply:ae(Kl,\"Multiply\"),DotMultiply:ae(uu,\"DotMultiply\"),CrossMultiply:ae(ep,\"CrossMultiply\"),Divide:ae(tp,\"Divide\"),Exponent:ae(cu,\"Exponent\"),Negative:ae(np,\"Negative\"),Or:ae(rp,\"Or\"),PercentOf:ae(ip,\"PercentOf\"),RawExponent:ae(ky,\"RawExponent\"),Comparator:{\"<\":ae(qr[\"<\"],\"Comparator['<']\"),\">\":ae(qr[\">\"],\"Comparator['>']\"),\"<=\":ae(qr[\"<=\"],\"Comparator['<=']\"),\">=\":ae(qr[\">=\"],\"Comparator['>=']\"),\"=\":ae(qr[\"=\"],\"Comparator['=']\")}},D=RB;var lr={xmin:-5,xmax:5,ymin:-5,ymax:5,zmin:-5,zmax:5};function SI(e,t){let n=Math.round(1e6*e)/1e6;return Math.abs(n-e)<t?n:e}function c6(e){let t=!0,n=!0,r=!0;return e.hardMin!==void 0&&e.target<e.hardMin&&(t=!1),e.hardMax!==void 0&&e.target>e.hardMax&&(n=!1),e.step&&zy({target:e.target,step:e.step,hardMin:t?e.hardMin:void 0,hardMax:n?e.hardMax:void 0})!==e.target&&(r=!1),{min:t,max:n,step:r}}function zy(e){let{target:t,hardMin:n,hardMax:r,step:i}=e,s=1e-10;if(n!==void 0&&r!==void 0&&(s=Math.min(s,Math.abs(r-n)/1e3)),i&&(s=Math.min(s,i/10)),n!==void 0&&(n=SI(n,s)),r!==void 0&&(r=SI(r,s)),e.forceSliderToMax&&r!==void 0&&(t=r),n>r||t<=n)return n;if(t>=r)return r;if(i){let u=n!==void 0?n:0;var o=Math.round((t-u)/i);t=i*o+u}let a=SI(t,s);return(i||n===a||r===a)&&(t=a),t<=n?n:t>=r?r:t}function sS(e){let{storedMax:t,sliderValue:n,hardMin:r,step:i}=e,s=e.is3d?lr.xmax:10;if(t>s&&(s=t),n>s&&(s=n),r>s&&(s=r),i){let o=zy({target:s,hardMin:r,hardMax:void 0,step:i});o>=s?s=o:s=o+i}return s}var CI=D.Constant,AB=D.Identifier;D.Base.prototype.tryGetConcreteTree=function(e,t,n={}){var r;try{r=this.getConcreteTree(e,t,n)}catch(i){i instanceof D.Base?r=i:r=J(i)}return r};D.Base.prototype.getConcreteTree=function(e,t,n={}){var i;var r=this.buildIRExpression(e,t,{selection:(i=this.parseOptions)==null?void 0:i.selection,coerceToNumber:n.coerceToNumber});if(r.isError)throw r;return r};D.DoubleInequality.prototype.getConcreteTree=function(e,t){return new this.constructor([new D.Piecewise([this._indicator,this._expressions[0],new CI(NaN)]).getConcreteTree(e,t),this._operators[0],new AB(this._symbol),this._operators[1],new D.Piecewise([this._indicator,this._expressions[1],new CI(NaN)]).getConcreteTree(e,t)])};D.Error.prototype.getConcreteTree=function(e,t){return this};function Vf(e,t){return e.isError?e:t.indexOf(e.valueType)===-1?Up():e}D.Image.prototype.getConcreteTree=function(e,t){var n=this.center.tryGetConcreteTree(e,t),r=this.radianAngle.tryGetConcreteTree(e,t),i=this.width.tryGetConcreteTree(e,t),s=this.height.tryGetConcreteTree(e,t),o=this.opacity.tryGetConcreteTree(e,t),a=[R,Pt,We],u=[T,se,We];return n=Vf(n,a),r=Vf(r,u),i=Vf(i,u),s=Vf(s,u),o=Vf(o,u),new D.Image({center:n,radianAngle:r,width:i,height:s,opacity:o},this.moveStrategy)};D.Ticker.prototype.getConcreteTree=function(e,t){var n=this.handler.tryGetConcreteTree(e,t);!n.isError&&n.valueType!==rt&&(n=jp(ne(n.valueType)));var r=n.getDependencies().filter(function(i){return!(e.graphingEnabled()&&e.validActionVariable(i))});return r.length&&(n=tn(e.sliderVariables(r)).setDependencies(r)),new D.Ticker({handler:n,minStep:this.minStep.tryGetConcreteTree(e,t)})};function OI(e,t,n){if(!t){n.valids[e]=!0;return}var r=t.getDependencies();if(t.isError)n.errors[e]=!0;else if(r.length>0){n.errors[e]=!0;for(var i=0;i<r.length;i++)r[i]===n.exportedSymbol?n.errors.cycle=!0:n.missingVars.push(r[i])}else n.values[e]=+t.asValue();n.valids[e]=isFinite(n.values[e]),n.valids[e]||(n.values[e]=void 0)}function Hy(e){return e&&e.valueType===se&&e.length===1&&e.args?e.args[0]:e}D.Slider.prototype.getConcreteTree=function(e,t){var n=this._expression.getConcreteTree(e,t),r=Hy(this.sliderMin&&this.sliderMin.tryGetConcreteTree(e,t)),i=Hy(this.sliderMax&&this.sliderMax.tryGetConcreteTree(e,t)),s=Hy(this.sliderStep&&this.sliderStep.tryGetConcreteTree(e,t)),o={exportedSymbol:this._symbol,errors:{},values:{},valids:{},missingVars:[],errMsg:void 0};if(OI(\"min\",r,o),OI(\"max\",i,o),OI(\"step\",s,o),s&&o.valids.step&&(o.values.step===0?delete o.values.step:o.values.step=Math.abs(o.values.step)),o.errors.cycle?n=tP(o.exportedSymbol):(o.errors.min||!o.valids.min?o.errMsg=nP():o.errors.max||!o.valids.max?o.errMsg=rP():(o.errors.step||!o.valids.step)&&(o.errMsg=sP()),o.values.min>o.values.max&&(o.valids.min=!1,o.valids.max=!1,o.errMsg||(o.errMsg=iP()))),n.isConstant){var a=t.initialEvaluation&&t.initialEvaluation.asValue(),u=a&&this.sliderIsPlayingOnce,c=o.values.max,l=+n.asValue(),p=o.values.min,f=o.values.step;if(u&&!isFinite(c)){var m=Hy(this.sliderSoftMax&&this.sliderSoftMax.tryGetConcreteTree(e,t));m&&(c=sS({storedMax:+m.asValue(),sliderValue:l,step:f,hardMin:p,is3d:e.is3dProduct()}))}var g=zy({target:l,hardMin:p,hardMax:c,step:f,forceSliderToMax:!!u}),d=Yu(g.toString()),y=isFinite(q(d))?d:g;n=new CI(y).getConcreteTree(e,t)}return n.sliderInfo=o,n};function oS(e,t){if(!t[this._symbol])throw ms(this._symbol);var n=this.args.map(function(i){return i.getConcreteTree(e,t)});if(n.length>0){if(n.length===1&&n.push(new D.Constant(1).getConcreteTree(e,t)),n[1].getDependencies().length)throw af(this._symbol).setDependencies(n[1].getDependencies());if(n[1].valueType!==T)throw af(this._symbol);var r=n[1].asValue();if(!isFinite(r)||r<=0)throw af(this._symbol)}return this.typeCheck(e,n),new this.constructor(n)}D.Histogram.prototype.getConcreteTree=oS;D.DotPlot.prototype.getConcreteTree=oS;D.BoxPlot.prototype.getConcreteTree=function(e,t){if(!t[this._symbol])throw ms(this._symbol);var n=this.args.map(function(r){return r.getConcreteTree(e,t)});return this.typeCheck(e,n),n.length===1&&(n[0].valueType===se||n[0].valueType===We)?new this.constructor(n):J(\"Failed to copmile BoxPlot\")};function RI(e,t){if(!t[this._symbol])throw ms(this._symbol);var n=this.args.map(function(r){return r.getConcreteTree(e,t)});return this.typeCheck(e,n),new this.constructor(n)}D.TTest.prototype.getConcreteTree=RI;D.IndependentTTest.prototype.getConcreteTree=RI;D.Stats.prototype.getConcreteTree=RI;D.Table.prototype.getConcreteTree=function(e,t){for(var n=[],r=Object.create(t),i=0;i<this.columns.length;i++){var s=this.columns[i].getConcreteTree(e,r);s.isIndependent&&this.columns[i].exportToLocal(e,s,r),n.push(s)}return new this.constructor(n)};D.TableColumn.prototype.getConcreteTree=function(e,t){var u;var n=this.header.getConcreteTree(e,t),r,i,s=this.header instanceof D.Identifier&&!t[this.header._symbol];if(s){r=[];for(var o=0;o<this.values.length;o++){if(this.values[o].tableError()){r.push(ml(this.values[o].tableError()));continue}var a=this.values[o].tryGetConcreteTree(e,t);a.isError?r.push(a):a.tableError()?r.push(ml(a.tableError())):a.valueType===T?r.push(a):r.push(Zb([ne(a.valueType)]))}return i=new this.constructor(n,r),i.isIndependent=!0,i}else return n.isList?r=n.mapElements(function(c){return c}):r=[],!n.isError&&n.valueType!==T&&n.valueType!==se&&n.valueType!==We&&(n=Xb([ne((u=n.valueType)!=null?u:Ht)])),i=new this.constructor(n,r),i};function Bf(e,t,n){return{symbolMap:e,symbolNodeMap:t,maxIndex:n}}function Uy(e,t){return e.symbolMap[t]}function aS(e,t){return e.symbolNodeMap[t]}function xr(e,t,n,r){e.symbolNodeMap[t]=r,e.symbolMap[t]=n,e.maxIndex=Math.max(e.maxIndex,n)}function ts(e){return Bf(Object.create(e.symbolMap),Object.create(e.symbolNodeMap),e.maxIndex)}function qy(e,t,n){let r=e.getInstruction(n);if(!be(r)){for(let o of r.args)if(!bt(e.getInstruction(o)))return!0}if(t<n)return!bt(e.getInstruction(t));let i=[!0];for(let o=n+1;o<=t;o++)i.push(!1);let s=[t];for(;s.length;){let o=s.pop();if(i[o-n])continue;i[o-n]=!0;let a=e.getInstruction(o);if(!be(a))for(let u of a.args){let c=e.getInstruction(u);if(u<n){let l=e.getInstruction(u);if(l.type===4)continue;if(!bt(l))return!0}else{if(e.getInstruction(u).type===50)return!0;if(c.type===3)return!0;i[u-n]||s.push(u)}}}return!1}function yo(e,t,n){let r=zn(e,t);if(r===void 0)throw new Error(`${n}\nNon-constant instruction: \"${yc(e,_r(e,t))}\"`);return r}function zn(e,t){let n=Mc(e,t,void 0,void 0);if(!(n<0))return n}function Mc(e,t,n,r){var a;let i=n&&n[t];if(i)return i;let s=e.getInstruction(t),o;switch(s.type){case 38:o=s.args.length;break;case 1:o=s.value.length;break;case 48:{o=(a=s.constantLength)!=null?a:-1;break}}return o===void 0&&(n=n||{},o=_B(e,s,n,r||new Set)),n&&(n[t]=o),o}function _B(e,t,n,r){switch(t.type){case 33:{let i=Mc(e,t.args[1],n,r),s=Mc(e,t.args[2],n,r);return i===s?i:-1}case 37:switch(t.symbol){case\"elementsAt\":return Mc(e,t.args[1],n,r);case\"sortPerm\":return Mc(e,t.args[0],n,r);case\"shuffle\":return Mc(e,t.args[1],n,r);default:return-1}case 55:{if(r&&r.has(t.args[0]))return-1;r.add(t.args[0]);let i=e.dereferenceFunctionHeader(t.args[0]);if(i!==void 0){let s=e.getInstruction(i);return Mc(e,s.args[1],n,r)}return-1}default:{if(W(t.valueType))return-1;throw new Error(`Programming Error: cannot find the list length of ${Ar(t.type)} ${ne(t.valueType)}.`)}}}function _r(e,t){let n=e.getInstruction(t);if(!W(n.valueType))throw new Error(`Programming Error: cannot find the list length of ${e.printInstruction(t)}`);switch(n.type){case 38:return e.Constant(n.args.length);case 1:return e.Constant(n.value.length);case 48:{let r=e.getInstruction(n.args[0]);return e.getInstruction(r.args[0]).args[0]}case 37:switch(n.symbol){case\"elementsAt\":return _r(e,n.args[1]);case\"sortPerm\":return _r(e,n.args[0]);case\"shuffle\":return _r(e,n.args[1])}}return e.SyntheticNativeFunction(\"count\",[t])}function Gf(e,t){let n=[];for(let o of t)W(e.getInstruction(o).valueType)&&n.push(o);if(n.length===0)return;if(n.length===1)return _r(e,n[0]);let r=[];for(let o of n)r.push(zn(e,o));let i,s=1/0;for(let o=0;o<r.length;o++){let a=n[o],u=r[o];if(u===void 0)return e.SyntheticNativeFunction(\"min\",[e.List(n.map(c=>_r(e,c)))]);u<s&&(i=a,s=u)}return i!==void 0?_r(e,i):e.Constant(s)}function $y(e,t){if(W(e)){let n=ke(e);for(let r=0;r<t.length;r++)if(Pr(n,t[r]))return!0;return!1}return Pr(e,t)}function Pr(e,t){switch(e){case T:return Wi(t);case Vt:return t;case R:{let[n,r]=t;return Wi(n)||Wi(r)}case V:{let[n,r,i]=t;return Wi(n)||Wi(r)||Wi(i)}case Ut:{let[n,r,i]=t;return Wi(n)||Wi(r)||Wi(i)}case Be:{for(let n of t)if(Pr(R,n))return!0;return!1}case Nn:{let[n,r]=t;return Pr(V,n)||Pr(T,r)}case In:{let[n,r,i]=t;return Pr(V,n)||Pr(V,r)||Pr(V,i)}case Nt:case Se:{let[n,r]=t;return Pr(V,n)||Pr(V,r)}case Ie:case fe:case Le:case he:{let[n,r]=t;return Pr(R,n)||Pr(R,r)}case pe:{let[n,r]=t;return Pr(R,n)||Pr(T,r)}case ce:{let[n,r,i]=t;return Pr(R,n)||Pr(R,r)||Pr(R,i)}case Ge:case Ae:{let[n,r,i]=t;return Pr(R,n)||Pr(T,r)||Pr(T,i)}case rt:return Object.keys(t.updateRules).length===0;case ge:case St:case ot:case Ue:case Wn:case jn:case sr:case or:return!1;case mn:{let[n,r]=t;return Wi(n)||Wi(r)}default:throw new Error(\"Type cannot contain a NaN value: \"+ne(e)+\".\")}}function NI(e,t,n){let r;return Yy(t)?r=_I(t,n):r=lS(t,n),e.ConstantOfType(t,r)}function AI(e){return Yy(e)||cS(e)}function Yy(e){switch(e){case We:case se:case Ln:case Hr:case Pt:case Tn:case Fn:case Vn:case Gn:case kn:case Bn:case Rn:case gn:case hn:case Kn:case nr:case tr:case yr:case er:case Zn:case Ur:case mr:return!0;default:return!1}}function cS(e){switch(e){case T:case ge:case Vt:case R:case Ie:case pe:case ce:case Le:case he:case fe:case Be:case Ge:case Ae:case V:case Se:case In:case Nn:case Nt:case Ut:case mn:case Ue:case rt:case ot:return!0;default:return!1}}function _I(e,t){if(e===We)return[];let n=ke(e);if(!cS(n))throw new Error(`Programming error: unexpected element type ${on(n)} for list type ${on(e)}.`);let r=[];for(let i=0;i<t.length;i++){let s=lS(n,t[i]);r.push(s)}return r}function lS(e,t){if(e===T)return De(t,1);if(e===R){let[n,r]=t;return[De(n,1),De(r,1)]}else if(e===V){let[n,r,i]=t;return[De(n,1),De(r,1),De(i,1)]}else return t}function LI(e,t){return us(e,t)}function wI(e,t){return ji(e,t)}function FI(e,t){return cs(e,t)}function VI(e,t){return Ji(e,t)}function kf(e,t){return q(e)===Math.E?Math.exp(q(t)):Hh(e,t)}var LB=kf;function BI(e){return hi(e)}function wB(e,t){return[e,t]}function FB(e,t){return t[e-1]}function VB(e,t,n){return[e,t,n]}function BB(e,t){return t[e-1]}function GI(e,t){return q(e)===q(t)}function kI(e,t){return q(e)<q(t)}function zI(e,t){return q(e)>q(t)}function HI(e,t){return q(e)<=q(t)}function UI(e,t){return q(e)>=q(t)}function fS(e,t){return e||t}function dS(e,t){return e&&t}function GB(e,t,n){let r=Math.floor(q(n))-1;return!isFinite(r)||r<0||r>=t.length?$r(e):t[r]}function qI(e,t,n){return En(n)&&(n=q(n)),`${t}::${e}${n}`}function $I(e,t){switch(e){case\"mod\":return qM(t[0],t[1]);case\"abs\":return HM(t[0]);case\"sqrt\":return UM(t[0]);case\"nthroot\":return wd(t[0],t[1]);case\"total\":return $M(t[0]);case\"count\":return t[0].length;case\"validateRangeLength\":{let n=t[0],r=t[1],i=t[2],s=t[3],o=fI(n,r,i,s);if(o===0)throw of();return o}case\"validateSampleCount\":{let n=ao(t[0]),r=dI(n);if(r===0&&n!==0)throw WP();return r}case\"select\":case\"elementsAt\":case\"uniquePerm\":case\"sortPerm\":{let n=bn[e];return fo[n.symbol].apply(null,t)}default:{let n=bn[e];return(n.module===\"Math\"?Math:fo)[n.symbol].apply(null,ao(t))}}}function mS(e,t){let n=Array(t+1);return nt(e,t,n)}function yS(e,t,n){let r=Array(t+1);for(let i=0;i<n.length;i++)r[i]=n[i];return nt(e,t,r)}function gS(e,t,n){if(t.constantLength)return t.constantLength;let r=t.args[0],s=e.getInstruction(r).args[0],o=e.getInstruction(s);return q(nt(e,o.args[0],n))}function hS(e,t,n,r){let i=e.getInstruction(t),s=gS(e,i,r);if(!isFinite(n)||n<0||n>=s)return $r(ke(i.valueType));let o=i.args[0],a=t-o,u=e.getInstruction(o),c=u.args[0],l=u.args[a];r[c]=n+1;let p=nt(e,l,r);for(let f=c;f<=o;f++)r[f]=void 0;return p}function kB(e,t,n){let r=e.getInstruction(t),i=r.args[0],s=e.getInstruction(i).args[0];if(HB(e,s+1,i-1)&&Yy(r.valueType)){let u=e.copy(),c=sp(u);return _I(r.valueType,c)}let o=gS(e,r,n),a=[];for(let u=o-1;u>=0;u--)a[u]=hS(e,t,u,n);return a}function bS(e,t,n){let r=nt(e,t.args[1],n),i=t.args[0],s=e.getInstruction(i);if(s.type===48)return hS(e,i,q(r)-1,n);if(s.type===33){let o=nt(e,s.args[0],n);return bS(e,{...t,args:[o?s.args[1]:s.args[2],t.args[1]]},n)}else{let o=nt(e,t.args[0],n);return GB(t.valueType,o,r)}}function nt(e,t,n){let r=n[t];if(r!==void 0)return r;let i=zB(e,t,n);return typeof i==\"number\"&&i===Math.floor(i)&&(i=De(i,1)),n[t]=i,i}function zB(e,t,n){let r=e.getInstruction(t);switch(r.type){case 1:return r.value;case 8:return LI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 9:return wI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 10:return FI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 11:return VI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 12:return kf(nt(e,r.args[0],n),nt(e,r.args[1],n));case 13:return LB(nt(e,r.args[0],n),nt(e,r.args[1],n));case 14:return BI(nt(e,r.args[0],n));case 15:return wB(nt(e,r.args[0],n),nt(e,r.args[1],n));case 16:return VB(nt(e,r.args[0],n),nt(e,r.args[1],n),nt(e,r.args[2],n));case 17:return FB(r.index,nt(e,r.args[0],n));case 18:return BB(r.index,nt(e,r.args[0],n));case 25:return GI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 26:return kI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 27:return zI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 28:return HI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 29:return UI(nt(e,r.args[0],n),nt(e,r.args[1],n));case 31:return nt(e,r.args[0],n)||nt(e,r.args[1],n);case 32:return nt(e,r.args[0],n)&&nt(e,r.args[1],n);case 44:return qI(r.tag,nt(e,r.args[0],n),nt(e,r.args[1],n));case 33:return nt(e,r.args[0],n)?nt(e,r.args[1],n):nt(e,r.args[2],n);case 37:{let s=[];for(let o of r.args)s.push(nt(e,o,n));return $I(r.symbol,s)}case 38:{let s=[];for(let o of r.args)s.push(nt(e,o,n));return s}case 39:case 40:case 41:return bS(e,r,n);case 48:return kB(e,t,n);case 47:{let s=r.args[0],o=t-s,u=e.getInstruction(s).args[o],c=pS(e,{endIndex:s,returnIndex:u,resultIndex:t},n);return sp(c)}case 55:{let s=r.args[0],a=e.getInstruction(s).endIndex,c=e.getInstruction(a).args[0],l=pS(e,{endIndex:a,returnIndex:c,resultIndex:t},n);return sp(l)}case 19:case 20:case 21:case 22:case 23:case 24:case 42:case 0:case 2:case 3:case 49:case 50:case 51:case 4:case 53:case 54:throw new Error(`Programming Error: cannot interpret opcode ${r.type}`);default:let i=r;throw new Error(`Programming Error: unexpected opcode ${i.type}`)}}function pS(e,t,n){let r=t.endIndex,i=t.returnIndex,s=t.resultIndex,o=e.getInstruction(r).args[0],a=[];a[i]=!0;let u=i;e.getInstruction(s).type===55&&(a[s]=!0,u=s);for(let m=u;m>=o;m--){if(!a[m])continue;let g=e.getInstruction(m);if(!be(g))for(let d of g.args)d<o||d>r?nt(e,d,n):a[d]=!0}let l=e.copy();l.truncate(o);for(let m=0;m<o;m++){let g=n[m],d=e.getInstruction(m);if(g!==void 0){let y=d.valueType;l.replaceInstructionWithConstant(m,{type:1,valueType:y,value:g})}}l.reopenAllBlocks();let p=[];for(let m=o;m<s;m++){let g=e.getInstruction(m);if(be(g))p.push(l.copyInstruction(g));else{let d=[];for(let y of g.args)d.push(y<o?y:p[y-o]);g.type===40?p.push(l.InboundsListAccess(d)):p.push(l.copyInstructionWithArgs(g,d))}}l.Noop();let f=e.getInstruction(s);if(f.type===47)l.replaceInstructionWithBlockVarOrFunctionCall(l.getReturnIndex(),{type:47,valueType:f.valueType,args:[r<o?r:p[r-o]]});else if(f.type===55)l.replaceInstructionWithBlockVarOrFunctionCall(l.getReturnIndex(),{type:55,valueType:f.valueType,args:f.args.map(m=>m<o?m:p[m-o])});else throw new Error(`Programming error: unexpected opcode ${Ar(f.type)}`);return l}function HB(e,t,n){let r=[];for(let s=0;s<=t;s++)r.push(!1);let i=[];for(let s=t+1;s<=n;s++)i.push(s);for(;i.length;){let s=i.pop();if(r[s])continue;r[s]=!0;let o=e.getInstruction(s);if(o.type===55)return!0;if(!be(o))for(let a of o.args)r[a]||i.push(a)}return!1}function sp(e){let t=e.getCompiledFunction();return t.executionMetadata.recursiveFunctionCache=new ql,t.executionMetadata.iterativeRecursionOutputs={},t.fn()}function Tr(e,t){let n=e.getInstruction(t);if(n.type!==48)return t;let r=n.args[0],i=e.getInstruction(r),s=i.args[0],o=!1;for(let u=s+1;u<r;u++){let c=e.getInstruction(u);if(c.type===40&&c.args[1]===s){o=!0;break}}if(!o)return t;let a=[];for(let u=s;u<=r+i.args.length-1;u++){let c=e.getInstruction(u);if(be(c))a.push(e.copyInstruction(c));else{let l=[];for(let p of c.args)l.push(p>=s?a[p-s]:p);c.type===40?a.push(e.InboundsListAccess(l)):a.push(e.copyInstructionWithArgs(c,l))}}return e.getReturnIndex()}function zf(e,t,n){let r=e.getInstruction(t);if(W(r.valueType)){let i=zn(e,t);if(n=Math.floor(n),isNaN(n)||n<0||i!==void 0&&n>=i){let s=ke(r.valueType);return e.NanOfType(s)}return r.type===38?r.args[n]:r.type===1&&W(r.valueType)?e.ConstantOfType(ke(r.valueType),r.value[n]):i!==void 0?e.InboundsListAccess([t,e.Constant(n+1)]):e.ListAccess([t,e.Constant(n+1)])}else{if(r.valueType===R)return isNaN(n)||n<0||n>2?e.Constant(NaN):r.type===15?r.args[n]:r.type===1?e.Constant(r.value[n]):e.OrderedPairAccess(n+1,[t]);if(r.valueType===V)return isNaN(n)||n<0||n>3?e.Constant(NaN):r.type===16?r.args[n]:r.type===1?e.Constant(r.value[n]):e.OrderedTripleAccess(n+1,[t]);throw new Error(`Cannot access elements of ${ne(r.valueType)}`)}}function Xy(e,t,n){let r=e.getInstruction(t);if(n.length===0)return e.ConstantOfType(r.valueType,[]);if(r.type===1&&W(r.valueType)){let i=[],s=ke(r.valueType);for(let o of n){let a=Math.floor(o);isNaN(a)||a<0||a>=yo(e,t,\"Programming error: expected Constant list instruction to have constant length.\")?i.push($r(s)):i.push(r.value[a])}return e.ConstantOfType(r.valueType,i)}else if(r.type===38){let i=[];for(let s of n){let o=Math.floor(s);if(isNaN(o)||o<0||o>=yo(e,t,\"Programming error: expected List instruction to have constant length.\")){let a=ke(r.valueType);i.push(e.NanOfType(a))}else i.push(r.args[o])}return e.List(i)}else{let i=[],s=!0,o=zn(e,t);for(let u of n){let c=Math.floor(u);i.push(e.Constant(c+1)),(isNaN(c)||c<0||o===void 0||c>=o)&&(s=!1)}let a=[t,e.List(i)];return s?e.InboundsListAccess(a):e.ListAccess(a)}}function TS(e){if(e.instructionsLength()-1!==e.getReturnIndex())throw new Error(\"Programming Error: only the final instruction in a chunk can be constant collapsed\");let t=e.getInstruction(e.getReturnIndex());if(be(t))return e.getReturnIndex();switch(t.type){case 8:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.Constant(LI(r.value,i.value))):r.type===1&&q(r.value)===0?(e.popInstruction(),t.args[1]):i.type===1&&q(i.value)===0?(e.popInstruction(),t.args[0]):e.getReturnIndex()}case 9:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.Constant(wI(r.value,i.value))):r.type===1&&q(r.value)===0?(e.popInstruction(),e.Negative([t.args[1]])):i.type===1&&q(i.value)===0?(e.popInstruction(),t.args[0]):e.getReturnIndex()}case 10:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.Constant(FI(r.value,i.value))):r.type===1&&q(r.value)===1?(e.popInstruction(),t.args[1]):i.type===1&&q(i.value)===1?(e.popInstruction(),t.args[0]):e.getReturnIndex()}case 11:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.Constant(VI(r.value,i.value))):i.type===1&&q(i.value)===1?(e.popInstruction(),t.args[0]):e.getReturnIndex()}case 12:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);if(r.type===1&&i.type===1)return e.popInstruction(),e.Constant(kf(r.value,i.value));if(r.type===1&&r.valueType===T){let s=q(r.value);if(s===Math.E)return e.popInstruction(),e.SyntheticNativeFunction(\"exp\",[t.args[1]]);if(s>0)return e.popInstruction(),e.RawExponent(t.args)}if(i.type===1&&i.valueType===T){let s=q(i.value);if(s===1)return e.popInstruction(),t.args[0];if(s===Math.floor(s))return e.popInstruction(),e.RawExponent(t.args);if(En(i.value)){let{n:o,d:a}=i.value;if(a%2===1){e.popInstruction();let u=e.RawExponent([e.SyntheticNativeFunction(\"abs\",[t.args[0]]),t.args[1]]);return o%2===0?u:e.Multiply([e.SyntheticNativeFunction(\"sign\",[t.args[0]]),u])}}}return e.getReturnIndex()}case 13:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.Constant(kf(r.value,i.value))):i.type===1&&q(i.value)===1?(e.popInstruction(),t.args[0]):e.getReturnIndex()}case 14:{let r=e.getInstruction(t.args[0]);return r.type===1?(e.popInstruction(),e.Constant(BI(r.value))):e.getReturnIndex()}case 25:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,GI(r.value,i.value))):e.getReturnIndex()}case 26:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,kI(r.value,i.value))):e.getReturnIndex()}case 27:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,zI(r.value,i.value))):e.getReturnIndex()}case 28:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,HI(r.value,i.value))):e.getReturnIndex()}case 29:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,UI(r.value,i.value))):e.getReturnIndex()}case 31:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,fS(r.value,i.value))):r.type===1?(e.popInstruction(),r.value?t.args[0]:t.args[1]):i.type===1?(e.popInstruction(),i.value?t.args[1]:t.args[0]):e.getReturnIndex()}case 32:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&i.type===1?(e.popInstruction(),e.ConstantOfType(ge,dS(r.value,i.value))):r.type===1?(e.popInstruction(),r.value?t.args[1]:t.args[0]):i.type===1?(e.popInstruction(),i.value?t.args[0]:t.args[1]):e.getReturnIndex()}case 33:{let r=e.getInstruction(t.args[0]);return r.type===1?(e.popInstruction(),r.value?t.args[1]:t.args[2]):e.getReturnIndex()}case 17:{let r=e.getInstruction(t.args[0]),i=t.index;return r.type===15?(e.popInstruction(),r.args[i-1]):r.type===1&&r.valueType===R?(e.popInstruction(),e.Constant(r.value[i-1])):e.getReturnIndex()}case 18:{let r=e.getInstruction(t.args[0]),i=t.index;return r.type===16?(e.popInstruction(),r.args[i-1]):r.type===1&&r.valueType===V?(e.popInstruction(),e.Constant(r.value[i-1])):e.getReturnIndex()}case 38:{if(xS(e,t.args)){e.popInstruction();let r=[];for(let i of t.args)r.push(e.getInstruction(i).value);return e.ConstantOfType(t.valueType,r)}return e.getReturnIndex()}case 39:case 41:{let r=t.args[0],i=e.getInstruction(r),s=e.getInstruction(t.args[1]);if(i.type===33&&s.type===1){let o=t.type===39?e.ListAccess([i.args[1],t.args[1]]):e.InboundsListAccess([i.args[1],t.args[1]]),a=t.type===39?e.ListAccess([i.args[2],t.args[1]]):e.InboundsListAccess([i.args[2],t.args[1]]);return e.Piecewise([i.args[0],o,a])}if(i.type===48){e.popInstruction();let o=i.args[0],a=r-o,u=e.getInstruction(o),c=u.args[0],l,p;if(t.type===41)l=t.args[1];else{let m=zn(e,r);if(s.type===1&&s.valueType===T&&m!==void 0){let g=q(s.value),d=Math.floor(g);if(d<1||d>m)return e.NanOfType(t.valueType);l=g===d?t.args[1]:e.Constant(d)}else{let g=e.Constant(1),y=e.getInstruction(c).args[0],h=e.SyntheticNativeFunction(\"floor\",[t.args[1]]),b=e.GreaterEqual([h,g]),x=e.LessEqual([h,y]);l=e.Piecewise([b,e.Piecewise([x,h,y]),g]),p={one:g,lengthIndex:y,roundedIndex:h,greaterEqualIndex:b,lessEqualIndex:x}}}if(u.args[a]<c)return u.args[a];let f=[l];for(let m=c+1;m<=u.args[a];m++){let g=e.getInstruction(m);if(be(g))f.push(e.copyInstruction(g));else{let d=[];for(let y of g.args)d.push(y>=c?f[y-c]:y);g.type===40?f.push(e.InboundsListAccess(d)):f.push(e.copyInstructionWithArgs(g,d))}}if(p){let{greaterEqualIndex:m,lessEqualIndex:g,lengthIndex:d,one:y}=p,h=ke(i.valueType),b=e.NanOfType(h),x=f[f.length-1],P=e.And([e.And([m,g]),e.GreaterEqual([d,y])]);return e.Piecewise([P,x,b])}else return f[f.length-1]}else if(s.type===1&&s.valueType===T)if(i.type===38){e.popInstruction();let o=Math.floor(q(s.value))-1;return isNaN(o)||o<0||o>=i.args.length?e.NanOfType(t.valueType):i.args[o]}else if(i.type===1){e.popInstruction();let o=Math.floor(q(s.value))-1;return isNaN(o)||o<0||o>=i.value.length?e.NanOfType(t.valueType):e.ConstantOfType(ke(i.valueType),i.value[o])}else return e.getReturnIndex();else return e.getReturnIndex()}case 47:{let r=e.getInstruction(t.args[0]);if(!Ti(r)||qy(e,e.getReturnIndex(),r.args[0]))return e.getReturnIndex();if(AI(t.valueType)){let i=e.copy(),s=sp(i);return e.popInstruction(),NI(e,t.valueType,s)}else throw new Error(`Constant collapsing a block with return type ${ne(t.valueType)} is not implemented.`)}case 55:{let r=e.dereferenceFunctionHeader(t.args[0]);if(r===void 0||!xS(e,t.args.slice(1))||qy(e,r,t.args[0]))return e.getReturnIndex();if(AI(t.valueType)){let i=e.copy(),s=sp(i);return e.popInstruction(),NI(e,t.valueType,s)}else throw new Error(`Constant collapsing a function call with return type ${ne(t.valueType)} is not implemented.`)}case 37:switch(t.symbol){case\"nthroot\":{let r=PS(e,t.args);if(r!==void 0)return e.Constant(wd(r[0],r[1]));{let i=e.getInstruction(t.args[1]);if(i.type===1&&i.valueType===T)return e.Exponent([t.args[0],e.Constant(_p(i.value))])}return e.getReturnIndex()}case\"count\":{let r=zn(e,t.args[0]);return r!==void 0?(e.popInstruction(),e.Constant(r)):e.getReturnIndex()}case\"select\":{let r=zn(e,t.args[0]);if(r!==void 0&&bt(e.getInstruction(t.args[1]))){e.popInstruction();let i=ln(e,t.args[1]),s=[];for(let o=0;o<Math.min(r,i.length);o++)i[o]&&s.push(o);return Xy(e,t.args[0],s)}else return e.getReturnIndex()}case\"shuffle\":{let r=t.args[0],i=t.args[1],s=zn(e,i);if(s!==void 0&&bt(e.getInstruction(r))){e.popInstruction();let o=oI(ln(e,r),s);return Xy(e,i,o)}else return e.getReturnIndex()}case\"elementsAt\":{let r=t.args[0],i=t.args[1];if(bt(e.getInstruction(i))){e.popInstruction();let s=ln(e,i);return Xy(e,r,s)}return e.getReturnIndex()}case\"restrictionToBoolean\":{let r=e.getInstruction(t.args[0]);return bt(r)?(e.popInstruction(),e.ConstantOfType(ge,r.value)):r.type===37&&r.symbol===\"restriction\"?(e.popInstruction(),r.args[0]):e.getReturnIndex()}default:{let r=PS(e,t.args);return r===void 0?e.getReturnIndex():(e.popInstruction(),e.ConstantOfType(t.valueType,$I(t.symbol,r)))}}case 44:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return bt(r)&&bt(i)?e.ConstantOfType(ot,qI(t.tag,ln(e,t.args[0]),ln(e,t.args[1]))):e.getReturnIndex()}case 15:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]);return r.type===1&&r.valueType===T&&i.type===1&&i.valueType===T?e.ConstantOfType(R,[r.value,i.value]):e.getReturnIndex()}case 16:{let r=e.getInstruction(t.args[0]),i=e.getInstruction(t.args[1]),s=e.getInstruction(t.args[2]);return r.type===1&&r.valueType===T&&i.type===1&&i.valueType===T&&s.type===1&&s.valueType===T?e.ConstantOfType(V,[r.value,i.value,s.value]):e.getReturnIndex()}case 48:{let r=e.getReturnIndex(),i=zn(e,r);if(i!==void 0&&i===0)return e.popInstruction(),e.ConstantOfType(t.valueType,[]);let s=t.args[0],o=e.getInstruction(s),a=o.args[0],u=r-s,c=o.args[u];if(!qy(e,c,a)){if(t.valueType===wn){if(i==null)throw df(oi(e,r));let f=[];for(let m=0;m<i;m++){let g=e.InboundsListAccess([r,e.Constant(m+1)]);f.push(g)}return e.List(f)}let p=mS(e,r);e.popInstruction(),e.ConstantOfType(t.valueType,p)}return r}case 49:{for(let i of t.args)if(!bt(e.getInstruction(i)))return e.getReturnIndex();e.popInstruction();let r={};for(let i=0;i<t.symbols.length;i++){let s=t.symbols[i],o=e.getInstruction(t.args[i]);if(o.type===48&&(o=e.getInstruction(Tr(e,t.args[i]))),o.type!==1)throw new Error(\"Expected instruction to be constant\");let{valueType:a,value:u}=o;$y(a,u)||(r[s]={value:u,valueType:a})}return e.ConstantOfType(rt,{type:\"Action\",updateRules:r})}case 20:case 22:case 23:case 24:case 40:case 42:case 21:case 19:case 50:case 51:case 53:case 54:return e.getReturnIndex();default:let n=t;throw new Error(`Unexpected opcode ${n.type}`)}}function xS(e,t){for(let n of t){let r=e.getInstruction(n);if(!bt(r))return!1}return!0}function PS(e,t){let n=[];for(let r of t){let i=e.getInstruction(r);if(bt(i))n.push(i.value);else return}return n}var IS={segment:!0,ray:!0,vector:!0,line:!0,circle:!0,arc:!0,polygon:!0,glider:!0,midpoint:!0,intersection:!0,strictintersection:!0,perpendicular:!0,parallel:!0,translate:!0,rotate:!0,dilate:!0,reflect:!0,apply:!0,segments:!0,vertices:!0,angle:!0,angles:!0,directedangle:!0,directedangles:!0,clockwise:!0,counterclockwise:!0,reflex:!0,start:!0,end:!0};function qB(e){return e!==void 0&&e in IS}function YI(e){return qB(e)?e===\"rotate\"||e===\"dilate\"||e===\"translate\"||e===\"reflect\"?!0:!1:!1}function Zy(e){if(e.type===\"ListAccess\"&&e.list.type===\"Identifier\"&&e.index.type===\"Constant\")return[e.list._symbol,e.index.asValue()];if(e.type===\"Identifier\")return[e._symbol,void 0]}function Wy(e){let t={},n=e;if((n instanceof ga||n instanceof cr)&&(t.identifier=n._symbol,n=n._expression),n instanceof Ua&&n.index instanceof Zt&&(t.listAccess=n.index.asValue(),n=n.list),t.identifier&&n instanceof ze){let r=n._symbol,i=t.listAccess;t.assignmentRhsReference=[r,i]}if(n instanceof cn){let r=n._symbol,i=n.args[0]instanceof ze?n.args[0]._symbol:void 0;if(YI(r)&&e instanceof cr&&i&&e._argSymbols.some(s=>s===i))t.tree={symbol:r,parents:n.args.slice(1).map(Zy)};else if(IS[r])t.tree={symbol:r,parents:n.args.map(Zy)};else{let s=[n._symbol,void 0];t.tree={symbol:\"apply\",parents:[s,...n.args.map(Zy)]}}}else if(n instanceof xi){let r=n.args.map(Zy);r.length===2&&r[1]&&r[1][0]===\"segments\"?t.tree={symbol:\"segment\",parents:[r[0]]}:r.length===2&&r[1]&&r[1][0]===\"start\"?t.tree={symbol:\"start\",parents:[r[0]]}:r.length===2&&r[1]&&r[1][0]===\"end\"&&(t.tree={symbol:\"end\",parents:[r[0]]})}return t}function Hf(e){if(e.length===0)return We;let t=e[0];if(t!==T&&zr(t,T)){let n=!1,r=!0;for(let i of e)if(i===T&&(n=!0),!zr(i,T)){r=!1;break}n&&r&&(t=T)}return ei(t)?ar(t):sn}var vc=_s([[T,T]]),$B=_s([[{meta:\"union\",types:Zi},{meta:\"union\",types:[ge,T]}]]),XI={Negative:_s([[T],[R],[he],[Se],[V]]),Add:_s([[T,T],[R,R],[he,he],[Se,Se],[V,V]]),Subtract:_s([[T,T],[R,R],[he,he],[Se,Se],[V,V]]),Multiply:_s([[T,T],[R,T],[T,R],[T,he],[T,Se],[he,T],[Se,T],[V,T],[T,V],[Vt,{meta:\"union\",types:Qa}],[{meta:\"union\",types:Qa},Vt]]),DotMultiply:_s([[T,T],[R,T],[T,R],[he,he],[Se,Se],[T,he],[he,T],[T,Se],[Se,T],[V,T],[T,V],[V,V],[Vt,{meta:\"union\",types:Qa}],[{meta:\"union\",types:Qa},Vt]]),CrossMultiply:_s([[T,T],[R,T],[T,R],[he,T],[T,he],[Se,T],[T,Se],[Se,Se],[V,V],[Vt,{meta:\"union\",types:Qa}],[{meta:\"union\",types:Qa},Vt]]),Divide:_s([[T,T],[R,T],[he,T],[Se,T],[V,T]]),Exponent:vc,\"Comparator['=']\":vc,\"Comparator['>']\":vc,\"Comparator['<']\":vc,\"Comparator['>=']\":vc,\"Comparator['<=']\":vc,ComparatorChain:_s([{type:\"variadic\",initial:[T,T],rest:T}]),PercentOf:vc,NamedCoordinateAccess:_s([[R],[V]]),Norm:_s([[T],[R],[V],[he],[Se]]),ListAccess:$B};function _s(e){return e.map(ti)}function jy(e,t,n){if(t instanceof Vo){let r=n.filter(s=>s!==void 0);if(r.length===0)return;let i=Hf(r);return W(i)&&i!==sn?Ia([{type:\"variadic\",initial:[],rest:ke(i)}],n):[]}else if(t instanceof cn||t instanceof Wa||t instanceof xi){let r=t instanceof xi?t.args[1]._symbol:t._symbol;if(!r)return;let i=Vp(r);return i?Ia(i,n):void 0}else if(t instanceof hr){let[r,i,s]=n,o=i!==void 0&&s!==void 0?ua(i,s):void 0;!o&&s===T&&t.args[2]instanceof Zt&&t.args[2].isNaN()&&(s=void 0);let a;if(o!==void 0)a=o;else if(i!==void 0)a=i;else if(s!==void 0)a=s;else return;return W(a)&&(a=ke(a)),Ia([ti([ge,a,a])],[n[0],i,s])}else if(e.is3dProduct()&&t instanceof uu){let r=[...XI.DotMultiply,ti([R,R])];return Ia(r,n)}else if(t instanceof Qi){let r=[{type:\"variadic\",initial:[rt],rest:rt},ti([T,T])];return e.is3dProduct()&&r.push(ti([T,T,T])),Ia(r,n)}else if(t instanceof qa){let r=[{type:\"variadic\",initial:[rt],rest:rt}],i=n.filter(s=>s!==void 0&&s!==T);if(i.length>0){let s=Hf(i);W(s)&&s!==sn&&r.push({type:\"variadic\",initial:[],rest:ke(s)})}return Ia(r,n)}else if(t.type in XI&&n.some(r=>r!==void 0)){let r=XI[t.type];return r?Ia(r,n):void 0}}function Ia(e,t){let n=[];for(let r of e)Array.isArray(r)&&r.length<t.length||t.every((i,s)=>{if(i===void 0)return!0;let o=Uu(r,s);return o===void 0?!1:zh(i,o)})&&n.push(r);return n}function ES(e,t,n,r,i){var h,b,x,P;if(!sl(t)&&!il(t)||YI(t))return;let s,o=!1,a=!1,u=0,c=[],l=[],p=r.map(M=>e.getInstruction(M).valueType),f=sl(t)?oo[t]:void 0;if(f&&(o=f.isSeeded,s=void 0,c.push(...f.argumentTypes),u=(b=(h=f.defaultArguments)==null?void 0:h.length)!=null?b:0,l=Jy(c,p,u),a=f.allowDotCall),t===\"mean\"&&l.length===0&&p.length>0&&oe(p[0],St))c=[[St]],u=0,l=[],a=!0;else if(il(t)&&l.length===0&&!(f!=null&&f.fallthroughUnlessDistribution&&p.length>0&&oe(p[0],St))){let M=bn[t];s=M.tag,c.push(...rb(t)),u=(P=(x=M.defaultArguments)==null?void 0:x.length)!=null?P:0,l=Jy(c,p,u),a=a||M.allowDotCall}let m=Math.min(...c.map(Ga)),g=Math.max(...c.map(Cp)),d=r,y=r;if(o&&(y=d=r.slice(1),m-=1,g-=1),i){if(!a)throw Wp(n);let M=e.getInstruction(d[0]).valueType;if(!W(M)&&M!==Nt&&M!==Se&&M!==St&&M!==mn&&(M===R||!Sp(M)))throw Lb(n,ne(M));n=\".\"+n,y=d.slice(1),m-=1,g-=1}if(!(l.length>0))throw YB(e,{symbol:t,errorSymbol:n,providedArgs:y,argsWithoutSeed:d,isDotCall:i,minArity:m,maxArity:g,defaultArgumentCount:u,builtInTag:s})}function YB(e,{symbol:t,errorSymbol:n,providedArgs:r,argsWithoutSeed:i,isDotCall:s,minArity:o,maxArity:a,defaultArgumentCount:u,builtInTag:c}){if(c===\"doubleReducer\"&&r.length===2){if(!W(e.getInstruction(r[0]).valueType)||!W(e.getInstruction(r[1]).valueType))throw sf(t)}else if(c===\"parameterizedReducer\"&&r.length===2&&!W(e.getInstruction(r[0]).valueType))throw NP(t);if(t===\"logbase\"&&r.length!==2)return ds(\"log\",1,r.length-1);if(t===\"random\")return hx();if(r.length<o||r.length>a){let{dotMinArityExampleArgs:p,dotMaxArityExampleArgs:f,minArityExampleArgs:m,maxArityExampleArgs:g}=XB(t),d,y;if(r.length<o?(y=o-u,s&&p?d=n+p:m&&(d=n+m)):(y=a,s&&f?d=n+f:g&&(d=n+g)),c===\"reducer\"&&r.length===0)return Tx(n);if(c===\"doubleReducer\")return ef(n);if(c===\"parameterizedReducer\")return Px(n);if(c===\"color\")return xx(n);if(sl(t))switch(t){case\"pdf\":return s?ds(n,y,r.length,d):dx();case\"cdf\":return s?ds(n,y,r.length,d):r.length<o?mx():yx();case\"tdist\":return gx();case\"length\":case\"round\":case\"midpoint\":case\"segment\":case\"vector\":case\"distance\":case\"circle\":case\"center\":case\"radius\":case\"glider\":case\"intersection\":case\"strictintersection\":case\"parallel\":case\"perpendicular\":case\"start\":case\"end\":case\"angle\":case\"directedangle\":case\"angles\":case\"directedangles\":case\"apply\":case\"translate\":case\"reflect\":case\"dilate\":case\"rotate\":case\"normaldist\":case\"poissondist\":case\"binomialdist\":case\"uniformdist\":case\"total\":case\"mean\":case\"median\":case\"stdev\":case\"var\":case\"quantile\":case\"sort\":case\"shuffle\":case\"join\":case\"unique\":case\"polygon\":case\"coterminal\":return ds(n,y,r.length,d);case\"points\":case\"lines\":case\"circles\":case\"polygons\":case\"rays\":case\"vectors\":case\"arcs\":throw Nr(n);case\"histogram\":case\"dotplot\":case\"boxplot\":case\"ttest\":case\"ittest\":case\"stats\":case\"det\":case\"inv\":case\"transpose\":case\"rref\":case\"trace\":throw J(`Unexpected arity error for ${t}`);default:let h=t;throw new Error(`Unexpected compiler function ${h}`)}return ds(n,y,r.length,d)}if(t===\"polygon\"&&r.length===2&&e.getInstruction(r[0]).valueType===T&&e.getInstruction(r[1]).valueType===T)return Kp();let l=[];for(let p=0;p<i.length;p++){let f=i[p],m=c!==void 0&&c!==\"doubleReducer\"&&c!==\"never-broadcast\"&&!(c===\"parameterizedReducer\"&&p===0)&&t!==\"polygon\",g=e.getInstruction(f).valueType;W(g)&&m&&(g=ke(g)),l.push(ne(g))}return Pi(n,l)}function XB(e){return sl(e)?oo[e]:il(e)?bn[e]:{}}function Jy(e,t,n){return Ia(e,t).filter(r=>t.length+n>=Ga(r))}function Zo(e,t){let n=[];for(let r of t)n.push(ne(e.getInstruction(r).valueType));return n}function Dc(e,t){let n=[];for(let r of t){let i=e.getInstruction(r).valueType,s=W(i)?ke(i):i;n.push(ne(s))}return n}function Je(e,t,n){return oe(e.getInstruction(t).valueType,n)}function lu(e,t,n,r){var c,l;let i=n.type;if(i===\"FunctionCall\"||i===\"SeededFunctionCall\"||i===\"DotAccess\"){let p,f;if(n instanceof xi&&(n.args[1]instanceof ze||n.args[1]instanceof cn))p=n.args[1]._symbol,f=(c=n.args[1]._errorSymbol)!=null?c:p;else if(n instanceof cn||n instanceof Wa)p=n._symbol,f=(l=n._errorSymbol)!=null?l:p;else return;if(p===\"polygon\"&&t.is3dPolicy())throw wm();ES(e,p,f,r,n instanceof xi);return}let s=r.map(p=>e.getInstruction(p).valueType),o=jy(t,n,s);if(!o)return;let a=Math.min(...o.map(Ga));if(o.length>0&&r.length>=a)return;let u=ZB(i,s);switch(i){case\"Add\":throw bb(u);case\"Subtract\":throw xb(u);case\"CrossMultiply\":throw t.is3dProduct()&&s.length===2&&(oe(s[0],R)&&oe(s[1],R)||oe(s[0],T)&&oe(s[1],V)||oe(s[0],V)&&oe(s[1],T))?$p(u):qp(u);case\"DotMultiply\":throw qp(u);case\"Multiply\":{if(t.is3dProduct()&&s.length===2){if(oe(s[0],V)&&oe(s[1],V))throw Xp(u);if(oe(s[0],R)&&oe(s[1],R))throw Yp(u)}throw qp(u)}case\"Divide\":throw Pb(u);case\"Exponent\":throw Tb(u);case\"Negative\":throw Ib(u);case\"Comparator['=']\":case\"Comparator['>']\":case\"Comparator['<']\":case\"Comparator['>=']\":case\"Comparator['<=']\":case\"ComparatorChain\":throw vb(u);case\"Or\":throw Sb(u);case\"Piecewise\":throw oe(s[0],ge)?Yb([ne(e.getInstruction(r[1]).valueType),ne(e.getInstruction(r[2]).valueType)]):cm(u);case\"Restriction\":throw cm(u);case\"List\":{MS(e,r);break}case\"ListAccess\":throw Zp(u);case\"Norm\":throw Pi(\"abs\",u);case\"ParenSeq\":{let p=s.indexOf(rt)!==-1,f=s.some(g=>g!==rt);if(p&&f)throw fm([ne(s[0]),ne(s[1])]);if(s.length!==2&&(!t.is3dProduct()||s.length!==3)){let g=t.is3dPolicy()?3:2;throw Mx(g)}let m=s.find(g=>!oe(g,T));throw m!==void 0?Ob(ne(m)):J(\"Unexpected error type checking ParenSeq\")}case\"BareSeq\":{if(s.length<2)throw Nr(\",\");let p=s[0],f=s.find(m=>m!==p);if(f)throw fm([ne(p),ne(f)]);if(p===T)throw r.length===2?Ix():Ex();MS(e,r);break}case\"Ans\":case\"Constant\":case\"Assignment\":case\"RecursiveFunctionBaseCase\":case\"MixedNumber\":case\"Identifier\":case\"Construction\":case\"Range\":case\"NamedCoordinateAccess\":case\"Sum\":case\"Product\":case\"Integral\":case\"ListComprehension\":case\"FunctionExponent\":case\"FunctionFactorial\":case\"Prime\":case\"Derivative\":case\"UpdateRule\":case\"Substitution\":case\"CoordinateEquation\":case\"FunctionDefinition\":case\"Slider\":case\"RegressionParameter\":case\"Seed\":case\"ExtendSeed\":case\"PercentOf\":return;default:{let p=i;throw new Error(`Unexpected node type: ${p}`)}}}function MS(e,t){if(t.length===0)return;let n=e.getInstruction(t[0]).valueType;if(!ei(n))throw ec([ne(n)]);for(let r of t){let i=e.getInstruction(r).valueType;if(!ei(i))throw ec([ne(i)]);if(i!==n)throw Jp()}}function ZB(e,t){let n=r=>W(r)?ke(r):r;switch(e){case\"Add\":case\"Subtract\":case\"Multiply\":case\"Divide\":case\"Exponent\":case\"Negative\":case\"Comparator['<']\":case\"Comparator['>']\":case\"Comparator['=']\":case\"Comparator['<=']\":case\"Comparator['>=']\":case\"NamedCoordinateAccess\":return t.map(n).map(ne);case\"ComparatorChain\":{let r=t.map(n);for(let i=0;i<r.length;i++)if(!zr(r[i],T))return i===0?[ne(r[i]),ne(r[i+1])]:[ne(r[i-1]),ne(r[i])];return r.map(ne)}case\"ListAccess\":case\"Constant\":case\"MixedNumber\":case\"Identifier\":case\"Ans\":case\"List\":case\"Range\":case\"Construction\":case\"ParenSeq\":case\"BareSeq\":case\"Norm\":case\"Sum\":case\"Product\":case\"Integral\":case\"ListComprehension\":case\"FunctionExponent\":case\"FunctionFactorial\":case\"Prime\":case\"Piecewise\":case\"Restriction\":case\"Derivative\":case\"UpdateRule\":case\"Substitution\":case\"Assignment\":case\"RecursiveFunctionBaseCase\":case\"CoordinateEquation\":case\"FunctionDefinition\":case\"Slider\":case\"RegressionParameter\":case\"Seed\":case\"ExtendSeed\":case\"DotMultiply\":case\"CrossMultiply\":case\"Or\":case\"PercentOf\":return t.map(ne);default:{let r=e;throw new Error(`Unexpected node type: ${r}`)}}}function vS(e,t){let n=e.getInstruction(t);if(be(n))return;let r=ZI(e,n).expectedTypes;if(n.type===49){for(let a of n.args){let u=e.getInstruction(a).valueType;if(!oe(u,T)&&!oe(u,R)&&!oe(u,V)&&!oe(u,Ut)&&!oe(u,Be)&&!oe(u,Ie)&&!oe(u,fe)&&!oe(u,Le)&&!oe(u,he)&&!oe(u,pe)&&!oe(u,ce)&&!oe(u,Ge)&&!oe(u,mn)&&!oe(u,Ae))throw jb(ne(u))}let o={};for(let a of n.symbols){if(o[a])throw Qb(a);o[a]=!0}return}let i=[];for(let o=0;o<n.args.length;o++){let a=e.getInstruction(n.args[o]).valueType,u=Uu(r,o);(u===void 0||!Rp(a,u))&&i.push(n.args[o])}if(i.length===0)return;let s=Zo(e,n.args);switch(n.type){case 32:throw Db(s);case 17:case 18:throw Cb(s);case 21:{let o=e.getInstruction(n.args[0]).valueType,a=e.getInstruction(n.args[1]).valueType;if(o!==T)throw zb([ne(o)]);if(a!==T)throw Hb([ne(a)]);return}case 22:{let o=e.getInstruction(n.args[1]).valueType;throw Ub([ne(o)])}case 44:{if(e.getInstruction(n.args[0]).valueType!==ot||e.getInstruction(n.args[1]).valueType!==ot&&e.getInstruction(n.args[1]).valueType!==T)throw J(`Unexpected arg types for ExtendSeed: ${Zo(e,n.args).map(o=>o.key).join(\", \")}`);return}case 31:case 15:case 16:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 25:case 26:case 27:case 28:case 29:case 38:case 39:case 40:case 41:case 37:case 42:case 33:case 48:case 47:case 23:case 24:case 19:case 20:case 50:case 51:case 53:case 54:case 55:throw J(`Invalid argument types for opcode ${n.type}`);default:{let o=n;throw new Error(`Unexpected opcode: ${o.type}`)}}}function ZI(e,t,n=!1){switch(t.type){case 8:case 9:case 10:case 11:return n&&t.args.length>0&&e.getInstruction(t.args[0]).valueType===R?{expectedTypes:[R,R]}:{expectedTypes:[T,T]};case 12:case 13:case 25:case 26:case 27:case 28:case 29:return{expectedTypes:[T,T]};case 14:return{expectedTypes:[T]};case 31:return{expectedTypes:[ge,ge]};case 32:return{expectedTypes:[ge,ge]};case 33:return{expectedTypes:[ge,t.valueType,t.valueType]};case 15:case 16:return{expectedTypes:t.args.map(()=>T)};case 17:return{expectedTypes:[R]};case 18:return{expectedTypes:[V]};case 21:return{expectedTypes:[T,T]};case 22:{let r=e.getInstruction(t.args[1]).valueType;return r===R||r===V?{expectedTypes:[T,r]}:{expectedTypes:[T,T]}}case 38:{let r=t.valueType,i=ke(r);return{expectedTypes:{type:\"variadic\",initial:[],rest:i}}}case 39:case 40:case 41:return{expectedTypes:[sn,T]};case 37:{let r=t.symbol,i=bn[r],s=i.argumentTypes;if(i.tag===\"reducer\"&&!WB(e,t.args)&&Array.isArray(s)&&typeof s[0]==\"number\"&&W(s[0]))return{isReducerWithNoListArgs:!0,expectedTypes:{type:\"variadic\",initial:[],rest:ke(s[0])}};if(Array.isArray(s))return{expectedTypes:s};{let{initial:o,rest:a}=s,u=t.args.length-o.length,c=[...o];for(let l=0;l<u;l++)c.push(a);return{expectedTypes:c}}}case 44:return e.getInstruction(t.args[0]).valueType===ot&&e.getInstruction(t.args[1]).valueType!==ot?{expectedTypes:[ot,T]}:{expectedTypes:t.args.map(r=>e.getInstruction(r).valueType)};case 47:return{expectedTypes:t.args.map(r=>e.getInstruction(r).valueType)};case 23:return{expectedTypes:[T]};case 19:return{expectedTypes:t.args.map(r=>{let i=e.getInstruction(r).valueType;return i===ge||t.callData.type===\"sum\"&&(i===R||i===V)?i:T})};case 50:{let r=t.callData.parameterSymbols.length,i=[];for(let s=0;s<r;s++)i.push(T,T);return{expectedTypes:i}}case 24:case 20:case 51:{let r=[T];for(let i=1;i<t.args.length;i++)r.push(e.getInstruction(t.args[i]).valueType);return{expectedTypes:r}}case 42:return{expectedTypes:t.args.map(()=>T)};case 48:case 49:return{expectedTypes:t.args.map(r=>e.getInstruction(r).valueType)};case 53:return{expectedTypes:[t.valueType]};case 54:return{expectedTypes:t.args.map(r=>e.getInstruction(r).valueType)};case 55:return{expectedTypes:t.args.map(r=>e.getInstruction(r).valueType)};default:{let r=t;throw new Error(`Unexpected opcode: ${r.type}`)}}}function WB(e,t){for(let n of t)if(W(e.getInstruction(n).valueType))return!0;return!1}var eg=WI({sin:Pn(\"isinf(x) || isnan(x) ? NaN : dcg_isPiMultiple(abs(x)) ? 0.0 : sin(x)\"),cos:Pn(\"isinf(x) || isnan(x) ? NaN : dcg_isOddHalfPiMultiple(abs(x)) ? 0.0 : cos(x)\"),tan:Vi(Ye`float a=abs(x);\n return isinf(x) || isnan(x) ? NaN\n : dcg_isPiMultiple(a) ? 0.0\n : dcg_isOddHalfPiMultiple(a) ? Infinity\n : tan(x);`),cot:Vi(Ye`float a=abs(x);\n return isinf(x) || isnan(x) ? NaN\n : a < 0.03 ? 1.0/x - x/3.0\n : dcg_isPiMultiple(a) ? Infinity\n : dcg_isOddHalfPiMultiple(a) ? 0.0\n : 1.0 / tan(x);`),sec:Pn(\"isinf(x) || isnan(x) ? NaN : dcg_isOddHalfPiMultiple(abs(x)) ? Infinity: 1.0 / cos(x)\"),csc:Vi(Ye`float a=abs(x);\n return isinf(x) || isnan(x) ? NaN\n : a < 0.03 ? 1.0/x + x/6.0\n : dcg_isPiMultiple(a) ? Infinity\n : 1.0 / sin(x);`),arcsin:Vi(Ye`if (isinf(x) || isnan(x)) { return NaN; }\n if (x == 1.0) { return dcg_PI/2.0; }\n if (x == -1.0) { return -dcg_PI/2.0; }\n if (x > 1.0 || x < -1.0) return NaN;\n float y0 = asin(x);\n return y0 + (x - sin(y0)) / cos(y0);`),arccos:Vi(Ye`if (isinf(x) || isnan(x)) { return NaN; }\n if (x == 1.0) { return 0.0; }\n if (x == -1.0) { return dcg_PI; }\n if (x > 1.0 || x < -1.0) return NaN;\n float y0 = acos(x);\n return y0 + (cos(y0) - x) / sin(y0);`),arctan:Qy(Ye`isnan(x) || isnan(y) ? NaN\n : isinf(x) && isinf(y) ?\n (y > 0.0 ? 0.25 : 0.75) * sign(x) * dcg_PI\n : x == 0.0 && y == 0.0 ? y\n : atan(x, y)\n `),arccot:Pn(\"isnan(x) ? NaN : dcg_PI/2.0 - atan(x)\"),arcsec:Pn(\"isnan(x) ? NaN : dcg_arccos(1.0/x)\"),arccsc:Pn(\"isnan(x) ? NaN : dcg_arcsin(1.0/x)\"),sinh:Pn(\"isinf(x) ? x : isnan(x) ? NaN : sinh(x)\"),cosh:Pn(\"isinf(x) ? Infinity : isnan(x) ? NaN : cosh(x)\"),tanh:Pn(\"abs(x) > 10.0 ? sign(x) : isnan(x) ? NaN : tanh(x)\"),coth:Pn(\"abs(x) > 10.0 ? sign(x) : isnan(x) ? NaN : x == 0.0 ? Infinity : abs(x) < 0.03 ? 1.0/x + x/3.0 : 1.0/tanh(x)\"),sech:Pn(\"isinf(x) ? 0.0 : isnan(x) ? NaN : 1.0/cosh(x)\"),csch:Pn(\"isinf(x) ? 0.0 : isnan(x) ? NaN : x == 0.0 ? Infinity : abs(x) < 0.03 ? 1.0/x - x/6.0 : 1.0/sinh(x)\"),arcsinh:Vi(Ye`float a=abs(x);\n return isnan(x) ? NaN : sign(x) * (\n 1.0 + x * x == 1.0\n ? dcg_log1p(a)\n : log(a + dcg_rtxsqpone(a))\n );`),arccosh:Pn(\"x < 1.0 || isnan(x) ? NaN : log(x + dcg_rtxsqmone(x))\"),arctanh:Vi(Ye`if (isnan(x) || abs(x) > 1.0) { return NaN; }\n if (x == 1.0) { return Infinity; }\n if (x == -1.0) { return -Infinity; }\n float y0 = 0.5*(dcg_log1p(x) - dcg_log1p(-x));\n float c = cosh(y0);\n return y0 + (x - tanh(y0)) * c * c;`),arccoth:Pn(\"isnan(x) ? NaN : abs(x) >= 1.0 ? dcg_arctanh(1.0/x) : NaN\"),arcsech:Pn(\"isnan(x) ? NaN : 0.0 < x && x <= 1.0 ? dcg_arccosh(1.0/x) : x == 0.0 ? Infinity : NaN\"),arccsch:Pn(\"isinf(x) ? 0.0 : isnan(x) ? NaN : dcg_arcsinh(1.0/x)\"),sinpiSeries:Vi(Ye`float xsq = x*x;\n return x*(dcg_PI-xsq*(5.167708-xsq*(2.549761-xsq*0.5890122)));`),sinpi:Vi(Ye`if (isnan(x) || isinf(x)) { return NaN; }\n if (x==0.0) { return x; }\n if (x == floor(x)) { return x > 0.0 ? 0.0 : -0.0; }\n int i = int(dcg_round(2.0*x));\n float t = -0.5 * float(i) + x;\n float s = bool(i & 2) ? -1.0 : 1.0;\n float y = bool(i & 1) ? cos(dcg_PI * t) : dcg_sinpiSeries(t);\n return s*y;`),sincpi:Pn(\"isnan(x) ? NaN : isinf(x) ? 0.0 : x == 0.0 ? 1.0 : dcg_sinpi(x)/(dcg_PI*x);\"),sqrt:Pn(\"isnan(x) ? NaN : x >= 0.0 ? sqrt(x) : NaN\"),rtxsqpone:Pn(\"dcg_hypot(x, 1.0)\"),rtxsqmone:Vi(\"float t = x*x; return isnan(x) || t < 1.0 ? NaN : t - 1.0 == t ? abs(x) : sqrt(t - 1.0);\"),nthroot:Qy(\"isnan(x) || isnan(y) ? NaN : dcg_pow(x, 1.0/y)\"),hypot:AS(Ye`if (isnan(x) || isnan(y)) return NaN;\n if (isinf(x) || isinf(y)) return Infinity;\n x = abs(x);\n y = abs(y);\n float m = max(x,y);\n x /= m;\n y /= m;\n return m == 0.0 ? 0.0 : sqrt(x*x + y*y) * m;`),log:Pn(\"isnan(x) ? NaN : x > 0.0 ? log(x)*0.4342944819 : x == 0.0 ? -Infinity : NaN\"),logbase:Qy(Ye`isnan(x) || isnan(y) ? NaN\n : y == 1.0 ?\n (\n x > 1.0 ? Infinity\n : x == 1.0 ? NaN\n : x < 0.0 ? NaN\n : -Infinity\n )\n : y > 0.0 ?\n (\n x > 0.0 ? log(x)/log(y)\n : x == 0.0 && !isinf(y) ? -Infinity\n : NaN\n )\n : NaN`),ln:Pn(\"isnan(x) ? NaN : x > 0.0 ? log(x) : x == 0.0 ? -Infinity : NaN\"),exp:Pn(\"isnan(x) ? NaN : exp(x)\"),floor:Pn(\"isnan(x) ? NaN : floor(x)\"),ceil:Pn(\"isnan(x) ? NaN : ceil(x)\"),round:Pn(\"isinf(x) || isnan(x) ? x : floor(0.5 + x)\"),abs:Pn(\"isnan(x) ? NaN : abs(x)\"),sign:Pn(\"isnan(x) ? NaN : sign(x)\"),mod:Qy(\"isinf(x) || isinf(y) || isnan(x) || isnan(y) || y == 0.0 ? NaN : mod(x, y)\"),stirlingPrefactor:Ea(\"float\",\"float x, float y\",Ye`if (isnan(x) || isnan(y)) { return NaN; }\n return pow(x/exp(1.0), y);`),stirlerrSeries:Vi(Ye`float S0 = 0.083333336;\n float S1 = 0.0027777778;\n float S2 = 0.0007936508;\n float nn = x*x;\n return (S0-(S1-S2/nn)/nn)/x;`),factorialAsymptotic:Pn(\"dcg_stirlingPrefactor(x,x)*sqrt(2.0*dcg_PI*x)*exp(dcg_stirlerrSeries(x))\"),factorialMinimax:Vi(Ye`float n1 = 2.1618295;\n float n2 = 1.5849807;\n float n3 = 0.4026814;\n float d1 = 2.2390451;\n float d2 = 1.6824219;\n float d3 = 0.43668285;\n\n float n = 1.0 + x*(n1 + x*(n2 + x*n3));\n float d = 1.0 + x*(d1 + x*(d2 + x*d3));\n float xp1 = x+1.0;\n\n return dcg_stirlingPrefactor(xp1,x)*sqrt(xp1)*(n/d);\n `),factorialPositive:Pn(Ye`(x>33.0)?Infinity:(x>8.0)?dcg_factorialAsymptotic(x):dcg_factorialMinimax(x);`),factorial:Vi(Ye`if (isnan(x) || (isinf(x) && x < 0.0)) { return NaN; }\n bool isInteger = x == floor(x);\n if (x < 0.0) {\n if (isInteger) return Infinity;\n return 1.0 / (dcg_sincpi(x) * dcg_factorialPositive(-x));\n }\n float approx = dcg_factorialPositive(x);\n return isInteger ? dcg_round(approx) : approx;`),distance:Ea(\"float\",\"vec2 a, vec2 b\",Ye`\n if (any(isnan(a)) || any(isnan(b))) return NaN;\n vec2 d = a-b;\n return dcg_hypot(d.x, d.y);`),distanceThreeD:Ea(\"float\",\"vec3 a, vec3 b\",Ye`\n if (any(isnan(a)) || any(isnan(b))) return NaN;\n vec3 d = a-b;\n return dcg_hypot(dcg_hypot(d.x, d.y), d.z);`),hsv:Ea(\"vec3\",\"float h, float s, float v\",Ye`if (isnan(h) || isnan(s) || isnan(v)) {discard;}\n vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n if (isinf(h)) h = 0.0;\n vec3 p = abs(fract(h / 360.0 + K.xyz) * 6.0 - K.www);\n return vec3(clamp(v, 0.0, 1.0) * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), clamp(s, 0.0, 1.0)));`),rgb:Ea(\"vec3\",\"float r, float g, float b\",Ye`if (isnan(r) || isnan(g) || isnan(b)) {discard;}\n return clamp(vec3(r,g,b),0.0,255.0)/255.0;`),erf:Vi(Ye`if (isnan(x)) return NaN;\n float t = abs(x);\n float n = x*x;\n float r = -n;\n return sign(x) * (\n r < -750.0\n ? 1.0\n : t >= 0.065\n ? 1.0 - exp(r) * (\n t > 50000000.0\n ? r / t\n : t > 50.0\n ? (r * (n * (n + 4.5) + 2.0)) / (t * (n * (n + 5.0) + 3.75))\n : ((0.9999999999999999+t*(2.224574423459406+t*(2.444115549920689+\n t*(1.7057986861852539+t*(0.8257463703357973+\n t*(0.28647031042892007+t*(0.07124513844341643+\n t*(0.012296749268608364+t*(0.001347817214557592+\n 0.00007263959403471071*t))))))))\n )/(1.0+t*(3.352953590554884+t*(5.227518529742423+\n t*(5.003720878235473+t*(3.266590890998987+\n t*(1.5255421920765353+t*(0.5185887413188858+\n t*(0.12747319185915415+t*(0.02185979575963238+\n t*(0.0023889438122503674+0.00012875032817508128*t\n ))))))))))\n )\n )\n : t*(1.1283791670955126+r*(0.37612638903183754+\n r*(0.11283791670955126+r*(0.026866170645131252+\n 0.005223977625442188*r))))\n );`),restriction:Ea(\"bool\",\"bool x\",\"return x;\"),restrictionToBoolean:Ea(\"bool\",\"bool x\",\"return x;\")});function Ea(e,t,n){return{type:\"scalar\",value:`${e} dcg_[[name_here]](${t}){ ${n} }`}}function Vi(e){return Ea(\"float\",\"float x\",e)}function Pn(e){return Vi(`return ${e};`)}function AS(e){return Ea(\"float\",\"float x, float y\",e)}function Qy(e){return AS(`return ${e};`)}function Fi(e,{outType:t,deps:n}={}){let r=t!=null?t:()=>\"float\";return{type:\"reducer\",value:i=>`${r(i)} dcg_[[name_here]](float[${i}] L) { ${e(i)} }`,deps:n!=null?n:[]}}function Ky(e,t=()=>\"float\"){return{type:\"double-reducer\",value:(n,r)=>{let i=Math.min(n,r),s=t(i),o=e(i);return`${s} dcg_[[name_here]](float[${n}] X, float[${r}] Y) { ${o} }`}}}var jB=WI({lcm:Fi(e=>Ye`float g = abs(dcg_round(L[0]));\n if (isinf(g)) return Infinity;\n if (isnan(g)) return NaN;\n for (int i=1; i<${e}; i++) {\n float v = abs(dcg_round(L[i]));\n if (isinf(v)) return Infinity;\n if (isnan(v)) return NaN;\n g *= dcg_round(v / dcg_gcd2(g, v));\n }\n return g;`),gcd:Fi(e=>Ye`float g = abs(dcg_round(L[0]));\n if (isnan(g)) return NaN;\n for (int i=1; i<${e}; i++) {\n float x = L[i];\n if (isnan(x)) return NaN;\n g = dcg_gcd2(g, abs(dcg_round(x)));\n }\n return g;`),mean:Fi(e=>Ye`float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n float x = L[i];\n if (isnan(x) || (isinf(x) && x == -tot)) return NaN;\n tot += x;\n }\n return tot / ${e}.0;`),total:Fi(e=>Ye`float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n float x = L[i];\n if (isnan(x) || (isinf(x) && x == -tot)) return NaN;\n tot += x;\n }\n return tot;`),stdev:Fi(e=>SS(e,e-1),{deps:[\"mean\"]}),stdevp:Fi(e=>SS(e,e),{deps:[\"mean\"]}),mad:Fi(e=>Ye`float mean = dcg_mean(L);\n if (isnan(mean) || isinf(mean)) return NaN;\n float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n tot += abs(L[i] - mean);\n }\n return tot / ${e}.0;`,{deps:[\"mean\"]}),min:Fi(e=>OS(e,\"min\")),max:Fi(e=>OS(e,\"max\")),argmin:Fi(e=>CS(e,\"<\")),argmax:Fi(e=>CS(e,\">=\")),median:Fi(e=>e%2===1?`return L[int(dcg_sortPerm(L)[${(e-1)/2}])-1];`:Ye`float[${e}] perm = dcg_sortPerm(L);\n return 0.5*(L[int(perm[${e/2}])-1]+L[int(perm[${e/2-1}])-1]);`,{deps:[\"sortPerm\"]}),varp:Fi(e=>DS(e,e),{deps:[\"mean\"]}),var:Fi(e=>DS(e,e-1),{deps:[\"mean\"]}),sortPerm:Fi(e=>{if(e>100)throw pl();return Ye`int[${e}] perm;\n int[${e}] nextPerm;\n for (int i=0; i<${e}; i++)\n perm[i] = i;\n float lastMin = -Infinity;\n int lastIndex = -1;\n for (int i=0; i<${e}; i++) {\n float currMin = Infinity;\n int currIndex = -1;\n int j;\n for (j=0; j<${e}; j++) {\n float e = L[j];\n if (\n (e > lastMin || (e == lastMin && j > lastIndex))\n && e < currMin\n ) {\n currMin = e;\n currIndex = j;\n }\n }\n perm[i] = currIndex;\n lastMin = currMin;\n lastIndex = currIndex;\n }\n float[${e}] permFloat;\n for (int i=0; i<${e}; i++)\n permFloat[i] = float(perm[i] + 1);\n return permFloat;`},{outType:e=>`float[${e}]`})});function DS(e,t){return t===0?\"return NaN;\":Ye`float mean = dcg_mean(L);\n if (isnan(mean) || isinf(mean)) return NaN;\n float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n float delta = L[i] - mean;\n tot += delta * delta;\n }\n return tot / ${t}.0;`}function SS(e,t){return t===0?\"return NaN;\":Ye`float mean = dcg_mean(L);\n if (isnan(mean) || isinf(mean)) return NaN;\n float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n tot = dcg_hypot(tot, L[i] - mean);\n }\n return tot / ${jI(Math.sqrt(t))};`}function OS(e,t){return Ye`float m = L[0];\n if (isnan(m)) return NaN;\n for (int i=1; i<${e}; i++) {\n float x = L[i];\n if (isnan(x)) return NaN;\n m = ${t}(m, x);\n }\n return m;`}function CS(e,t){return Ye`if (isnan(L[0])) return 0.0;\n int arg = 0;\n float best = L[0];\n for (int i=1; i<${e}; i++) {\n float e = L[i];\n if (isnan(e)) return 0.0;\n if (e ${t} best) {\n arg = i;\n best = e;\n }\n }\n return float(arg + 1);`}var JB=WI({elementsAt:Ky(e=>`float[${e}] outList;\n for (int i=0; i<${e}; i++) {\n float y = Y[i];\n outList[i] = isnan(y) || isinf(y) ? NaN : X[int(y)-1];\n }\n return outList;`,e=>`float[${e}]`),cov:Ky(e=>RS(e,e-1)),covp:Ky(e=>RS(e,e)),corr:Ky(e=>Ye`${_S(e)}\n float t1 = 0.0;\n float t2 = 0.0;\n float tc = 0.0;\n for (int i=0; i<${e}; i++) {\n float d1 = X[i] - m1;\n float d2 = Y[i] - m2;\n t1 = dcg_hypot(t1, d1);\n t2 = dcg_hypot(t2, d2);\n tc += d1 * d2;\n }\n return tc / (t1 * t2);`)}),QB={...eg,...jB,...JB},tg=QB;function KB(e,t){switch(e.type){case\"scalar\":return e.value.replace(\"[[name_here]]\",t);case\"reducer\":{let n=e.value;return r=>n(r).replace(\"[[name_here]]\",t)}case\"double-reducer\":{let n=e.value;return(r,i)=>n(r,i).replace(\"[[name_here]]\",t)}}}function WI(e){for(let[t,n]of Object.entries(e))n.type!==\"omitted\"&&(n.value=KB(n,t));return e}function RS(e,t){return Ye`${_S(e)}\n float tot = 0.0;\n for (int i=0; i<${e}; i++) {\n tot += (X[i] - m1) * (Y[i] - m2);\n }\n return tot / ${t}.0;`}function _S(e){return Ye`float m1 = 0.0;\n for (int i=0; i<${e}; i++) {\n float x = X[i];\n if (isnan(x) || isinf(x)) return NaN;\n m1 += x;\n }\n m1 /= ${e}.0;\n float m2 = 0.0;\n for (int i=0; i<${e}; i++) {\n float y = Y[i];\n if (isnan(y) || isinf(y)) return NaN;\n m2 += y;\n }\n m2 /= ${e}.0;`}var e3=[Ye`float dcg_rawpow(float x, float y) {\n if (isnan(x) || isnan(y)) return NaN;\n if (isinf(y)) {${\"\"}\n float a = abs(x);\n if (a == 1.0) return NaN;\n if (y > 0.0) {\n return a > 1.0 ? Infinity : 0.0;\n } else {\n return a < 1.0 ? Infinity : 0.0;\n }\n }\n if (x > 0.0) return pow(x, y);\n else if (x == 0.0) {\n if (y > 0.0) return 0.0;\n else if (y == 0.0) return 1.0;\n else return Infinity;\n } else {\n float m = mod(y, 2.0);\n if (m == 1.0) return -pow(-x, y);\n else return pow(-x, y);\n }\n }`,Ye`float dcg_pow(float x, float y) {\n if (isnan(x) || isnan(y)) return NaN;\n if (isinf(y)) {\n float a = abs(x);\n if (a == 1.0) return NaN;\n if (y > 0.0) {\n return a > 1.0 ? Infinity : 0.0;\n } else {\n return a < 1.0 ? Infinity : 0.0;\n }\n }\n if (x > 0.0) return pow(x,y);\n else if (x == 0.0) {\n if (y > 0.0) return 0.0;\n if (y == 0.0) return 1.0;\n if (y < 0.0) return Infinity;\n } else {\n float m = mod(y, 2.0);\n if (m == 0.0) return pow(-x, y);\n else if (m == 1.0) return -pow(-x, y);\n else {${\"\"}\n vec2 a0 = vec2(0.0, 1.0);\n vec2 a1 = vec2(1.0, 0.0);\n float approx = y;\n for (int i=0; i<12; i+=1) {\n float whole = floor(approx);\n vec2 a = whole * a1 + a0;\n if (a.y > 100.0) break;\n a0 = a1; a1 = a;\n if (approx == whole) break;\n approx = 1.0 / (approx - whole);\n }${\"\"}\n float r = a1.x / a1.y;\n float m = max(max(abs(y), abs(r)), 1.0);\n if (abs(mod(a1.y, 2.0) - 1.0) < 0.01 && abs((r - y)/y) < 0.00001) {\n return (mod(a1.x, 2.0) == 0.0 ? 1.0 : -1.0) * pow(-x, y);\n } else {\n return NaN;\n }\n }\n }\n }`,Ye`float dcg_add(float x, float y) {\n return isnan(x) || isnan(y) ? NaN\n : isinf(x) && isinf(y) && x != y ? NaN\n : x + y;\n }`,Ye`float dcg_sub(float x, float y) {\n return isnan(x) || isnan(y) ? NaN\n : isinf(x) && isinf(y) && x != -y ? NaN\n : x - y;\n }`,Ye`float dcg_mul(float x, float y) {\n return isnan(x) || isnan(y) ? NaN\n : isinf(x) && y == 0.0 ? NaN\n : x == 0.0 && isinf(y) ? NaN\n : x * y;\n }`,Ye`float dcg_div(float x, float y) {\n return isnan(x) || isnan(y) ? NaN\n : isinf(x) && isinf(y) ? NaN\n : x == 0.0 && y == 0.0 ? NaN\n : x / y;\n }`,Ye`float dcg_neg(float x) {\n return isnan(x) ? NaN : -x;\n }`,Ye`bool dcg_equal(float x, float y) {\n return isnan(x) || isnan(y) ? false : x == y;\n }`,Ye`bool dcg_less(float x, float y) {\n return isnan(x) || isnan(y) ? false : x < y;\n }`,Ye`bool dcg_lessEqual(float x, float y) {\n return isnan(x) || isnan(y) ? false : x <= y;\n }`,Ye`bool dcg_greater(float x, float y) {\n return isnan(x) || isnan(y) ? false : x > y;\n }`,Ye`bool dcg_greaterEqual(float x, float y) {\n return isnan(x) || isnan(y) ? false : x >= y;\n }`,Ye`float dcg_gcd2(float u, float v) {\n if (isinf(u)) return v;\n if (isinf(v)) return u;\n for (int i=0; i<95; i++) {\n if (v == 0.0) break;\n u = mod(u, v);\n if (u == 0.0) break;\n v = mod(v, u);\n }\n return u+v;\n }`,Ye`float dcg_log1p(float x) {\n return x - 0.5 * x * x == x ? x : log(1.0 + x);\n }`,Ye`bool dcg_isPiMultiple(float absx) {\n if (absx > 1.0e5) return false;\n return floor(0.5 + dcg_PI_INV * absx) * dcg_PI == absx;\n }`,Ye`bool dcg_isOddHalfPiMultiple(float absx) {\n if (absx > 1.0e5) return false;\n float n = floor(0.5 + 2.0 * dcg_PI_INV * absx);\n return mod(n, 2.0) == 1.0 && n * dcg_PI == 2.0 * absx;\n }`].join(`\n`),NS=[\"round\",\"hypot\",\"rtxsqpone\",\"rtxsqmone\"],t3=NS.map(e=>eg[e].value).join(`\n`)+Object.keys(eg).filter(e=>NS.indexOf(e)===-1).map(e=>eg[e].value).join(`\n`),F7=Ye`uniform float NaN;\n uniform float Infinity;\n #define dcg_PI 3.141592653589793\n #define dcg_PI_INV 0.3183098861837907\n ${e3}\\n`+t3;function Ye(e,...t){let n=e[0];for(let r=0;r<t.length;r++)n+=t[r],n+=e[r+1];return n3(n)}function n3(e){let t=e.split(`\n`);if(/^\\s/.test(t[0][0]))throw new Error(\"Programming error: Expected un-indented first line\");if(t.length<=1)return e;let n=Math.min(...t.slice(1).map(r=>r.match(/^\\s*/)[0].length));return t[0]+`\n`+t.slice(1).map(r=>r.slice(n)).join(`\n`)}function Wo(e,t){let n=new JI(e,t),r=ay(n);return n.finish(r)}var JI=class extends wl{constructor(n,r){super(n,!0);this.maxUniforms=r;this.glsl=!0;this.shaderUniforms=[];this.definitions={}}finish(n){return{source:n,shaderFunctions:r3(this.chunk,this.definitions),shaderUniforms:this.shaderUniforms}}printValue(n,r){if(Array.isArray(n)){if(n.length>100)throw pl();let i=W(r),s=i?ke(r):r,o=n.map(c=>this.printValue(c,s)).join(\",\"),a=ng(r),u=LS({type:a,arity:n.length});return this.definitions[u]=!0,(i?\"buildList\":a)+\"(\"+o+\")\"}switch(typeof n){case\"boolean\":return n.toString();case\"number\":return this.printFloatOrUniformGLSL(n);case\"string\":throw ll(\"random\");case\"object\":if(Ja(n))throw new Error(\"Action values cannot be compiled\");return this.printFloatOrUniformGLSL(q(n));default:throw new Error(\"Unexpected value: \"+n)}}printFloatOrUniformGLSL(n){if(this.shaderUniforms.length>=this.maxUniforms)return jI(n);{let i=\"_DCG_SC_\"+this.shaderUniforms.length;return this.shaderUniforms.push(n),i}}beforeBeginLoop(n){let r=this.chunk.getInstruction(n.args[0]),i=this.chunk.getInstruction(n.args[1]),s=n.callData.type===\"sum\";if(r.type!==1){let u=oi(this.chunk,n.args[0]);throw s?dm(u):mm(u)}if(i.type!==1){let u=oi(this.chunk,n.args[1]);throw s?dm(u):mm(u)}if(r.valueType!==T||i.valueType!==T)throw new Error(\"Programming error: non-number in summation bounds\");let o=q(r.value),a=q(i.value);if(!isFinite(a-o)||a-o>=1e3)throw s?cx():lx()}checkFiniteBounds(){return\"\"}emitConstant(n){return this.printValue(n.value,n.valueType)}emitNeg(n){return`dcg_neg(${n})`}emitTernary(n,r,i,s){return W(s.valueType)?`dcg_ternary(${n},${r},${i})`:`${n}?${r}:${i}`}emitVec2(n,r){return`vec2(${n},${r})`}emitVec3(n,r,i){return`vec3(${n},${r},${i})`}emitVecAccess(n,r){return`${n}.${r===1?\"x\":r===2?\"y\":\"z\"}`}emitBinary(n,r,i){switch(n.type){case 8:return`dcg_add(${r},${i})`;case 9:return`dcg_sub(${r},${i})`;case 10:return`dcg_mul(${r},${i})`;case 11:return`dcg_div(${r},${i})`;case 12:return`dcg_pow(${r},${i})`;case 13:return`dcg_rawpow(${r},${i})`;case 25:return`dcg_equal(${r},${i})`;case 26:return`dcg_less(${r},${i})`;case 28:return`dcg_lessEqual(${r},${i})`;case 27:return`dcg_greater(${r},${i})`;case 29:return`dcg_greaterEqual(${r},${i})`;case 31:return`${r}||${i}`;case 32:return`${r}&&${i}`;default:throw new Error(\"Programming Error: invalid binary opcode.\")}}emitList(n,r){let i=LS({type:ng(r.valueType),arity:r.args.length});return this.definitions[i]=!0,`buildList(${n.join(\",\")})`}emitListAccess(n,r,i,s){let o=zn(this.chunk,s.args[0]);if(o===void 0)throw tc(oi(this.chunk,s.args[0]));let a=`int(${r})`;return`(${a}>=1&&${a}<=${o})?${n}[${a}-1]:${i}`}emitInboundsListAccess(n,r){return`${n}[int(${r})-1]`}emitNativeFunction(n,r){if(!tg[r.symbol])throw ll(r.symbol);return`dcg_${r.symbol}(${n.join(\",\")})`}emitExtendSeed(){throw ll(\"random\")}emitVarDeclaration(n,r){let i=r?\";\":\"\";return i+=wS(this.chunk,n)+\" \"+an(n),i}emitFunctionCall(){throw ll(\"recursion\")}};function LS(e){let{type:t,arity:n}=e,r=t+\"[\"+n+\"]\",i=r+\" buildList(\";for(let s=0;s<n-1;s++)i+=`${t} _${s}, `;i+=`${t} _${n-1}) {\n`,i+=r+` a;\n`;for(let s=0;s<n;s++)i+=`a[${s}] = _${s};\n`;return i+=`return a;\n}\n`,i}function r3(e,t){let n=e.argNames.length,r=e.instructionsLength()-1;for(let i=n;i<=r;i++){let s=e.getInstruction(i);if(s.type===33){if(W(s.valueType)){let o=wS(e,i),a=`${o} dcg_ternary(bool x, ${o} y, ${o} z) { if (x) return y; return z; }`;t[a]=!0}}else if(s.type===37){let o=tg[s.symbol];if((o==null?void 0:o.type)===\"reducer\"){let a=s.args[0],u=zn(e,a);if(u===void 0)throw tc(oi(e,a));for(let c of o.deps)t[tg[c].value(u)]=!0;t[o.value(u)]=!0}else if((o==null?void 0:o.type)===\"double-reducer\"){let a=s.args[0],u=s.args[1],c=zn(e,a),l=zn(e,u);if(c===void 0)throw tc(oi(e,a));if(l===void 0)throw tc(oi(e,u));t[o.value(c,l)]=!0}}}return t}function jI(e){let t=e.toString();return/^-?\\d+$/.test(t)?t+\".0\":t}function ng(e){switch(W(e)?ke(e):e){case ge:return\"bool\";case T:return\"float\";case R:return\"vec2\";case Ut:case V:return\"vec3\";default:throw new Error(\"Unexpected type: \"+on(e))}}function wS(e,t){let n=e.getInstruction(t);if(W(n.valueType)){let r=zn(e,t);if(r===void 0)throw tc(oi(e,t));if(r>100)throw pl();return`${ng(n.valueType)}[${r}]`}else return ng(n.valueType)}function fn(e,t,n){switch(t){case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 17:case 18:case 21:case 19:case 23:case 50:return T;case 25:case 26:case 27:case 28:case 29:case 31:case 32:return ge;case 33:{let i=e.getInstruction(n[1]).valueType,s=e.getInstruction(n[2]).valueType,o=ua(i,s);return o===void 0?i:o}case 15:return R;case 16:return V;case 38:return Hf(n.map(i=>e.getInstruction(i).valueType));case 39:case 40:case 41:{let i=e.getInstruction(n[0]).valueType;return W(i)?ke(i):Ht}case 44:return ot;case 49:return rt;case 55:return e.getInstruction(n[0]).valueType;case 1:case 2:case 37:case 42:case 47:case 48:case 3:case 0:case 24:case 22:case 20:case 51:case 4:case 53:case 54:return Ht;default:let r=t;throw new Error(`Unexpected opcode ${r}`)}}function Ls(e,t){return e.pushLeafInstruction(t)}function Mn(e,t,n){switch(t.type){case 8:return e.Add(n);case 9:return e.Subtract(n);case 10:return e.Multiply(n);case 11:return e.Divide(n);case 12:return e.Exponent(n);case 13:return e.RawExponent(n);case 14:return e.Negative(n);case 25:return e.Equal(n);case 26:return e.Less(n);case 27:return e.Greater(n);case 28:return e.LessEqual(n);case 29:return e.GreaterEqual(n);case 31:return e.Or(n);case 32:return e.And(n);case 33:return e.Piecewise(n);case 47:return e.BlockVar(t.valueType,n);case 48:return e.BroadcastResult(t.valueType,n);case 15:return e.OrderedPair(n);case 16:return e.OrderedTriple(n);case 17:return e.OrderedPairAccess(t.index,n);case 18:return e.OrderedTripleAccess(t.index,n);case 37:return e.NativeFunction(t.symbol,t.callData,n);case 42:return e.Distribution(t.symbol,n);case 21:return e.BeginIntegral(t.callData,n);case 22:return e.EndIntegral(n);case 23:return e.BeginBroadcast(n);case 24:return e.EndBroadcast(n);case 19:return e.BeginLoop(t.callData,n);case 20:return e.EndLoop(n);case 38:return e.List(n);case 39:return e.ListAccess(n);case 40:return e.DeferredListAccess(n);case 41:return e.InboundsListAccess(n);case 44:return e.ExtendSeed(t.tag,n);case 49:return e.Action(t.symbols,n);case 50:return e.BeginMap(t.callData,n);case 51:return e.EndMap(n);case 53:return e.BeginFunction(n);case 54:return e.EndFunction(n);case 55:return e.FunctionCall(n);default:let r=t;throw new Error(`Unexpected opcode ${r.type}`)}}function FS(e){if(e.instructionsLength()-1!==e.getReturnIndex())throw new Error(\"Programming Error: only the final instruction in a chunk can be converted to broadcast\");let t=e.getInstruction(e.getReturnIndex());if(be(t))return e.getReturnIndex();switch(t.type){case 8:case 9:case 10:case 11:case 12:case 13:case 25:case 26:case 27:case 28:case 29:case 31:case 32:case 15:case 16:case 14:case 33:case 17:case 18:return Sc(e,t);case 42:return Tr(e,Sc(e,t));case 37:{let r=bn[t.symbol];switch(r.tag){case\"default\":case\"trig\":case\"trig2\":case\"inverseTrig\":case\"color\":return Sc(e,t);case\"never-broadcast\":{let i=[],s=!1;for(let o of t.args){let a=Tr(e,o);a!==o?(s=!0,i.push(a)):i.push(o)}return s?e.copyInstructionWithArgs(t,i):e.getReturnIndex()}case\"reducer\":if(i3(e,t.args))if(t.args.length===1){let i=t.args[0],s=Tr(e,i);return s!==i?e.copyInstructionWithArgs(t,[s]):e.getReturnIndex()}else return Sc(e,t);else return e.getReturnIndex();case\"doubleReducer\":{if(t.args.length!==2)throw new Error(\"Programming error: double reducers must have two arguments\");let i=Tr(e,t.args[0]),s=Tr(e,t.args[1]);return i!==t.args[0]||s!==t.args[1]?e.copyInstructionWithArgs(t,[i,s]):e.getReturnIndex()}case\"parameterizedReducer\":{if(t.args.length!==2)throw new Error(\"Programming error: double reducers must have two arguments\");let i=Tr(e,t.args[0]);return i===t.args[0]?Sc(e,t,[!1,!0]):e.copyInstructionWithArgs(t,[i,t.args[1]])}default:{let i=r.tag;throw new Error(`Programming Error: unexpected tag ${i}`)}}}case 39:case 40:case 41:return Sc(e,t,[!1,!0]);case 55:{let i=e.getInstruction(t.args[0]).signature.argTypes.map(a=>!W(a)),s=[t.args[0]],o=!1;for(let a=1;a<t.args.length;a++){let u=t.args[a],c=Tr(e,u);c!==u?(o=!0,s.push(c)):s.push(u)}return o?e.copyInstructionWithArgs(t,s):Sc(e,t,[!1,...i])}case 21:case 22:case 19:case 20:case 50:case 51:return e.getReturnIndex();case 38:case 47:case 23:case 24:case 48:case 44:case 49:case 53:case 54:return e.getReturnIndex();default:let n=t;throw new Error(`Unexpected opcode ${n.type}`)}}function i3(e,t){for(let n of t)if(W(e.getInstruction(n).valueType))return!0;return!1}function Sc(e,t,n){let r=t.args,i=!1,s=[];for(let m=0;m<r.length;m++){if(n&&!n[m])continue;let g=r[m],d=e.getInstruction(g).valueType;W(d)&&s.indexOf(g)===-1&&s.push(g),d===We&&(i=!0)}if(s.length===0)return e.getReturnIndex();if(t.type===33&&s.indexOf(t.args[0])==-1&&s.indexOf(t.args[1])>=0&&s.indexOf(t.args[2])>=0){let m=Tr(e,t.args[1]),g=Tr(e,t.args[2]);return m!==t.args[1]||g!==t.args[2]?Mn(e,t,[t.args[0],m,g]):e.getReturnIndex()}e.popInstruction();let o=Gf(e,s);if(o===void 0)throw new Error(\"Programming Error: expected minListLength to be defined for \"+s.length+\" lists\");let a=o;if(bt(e.getInstruction(a))&&ln(e,a)===0&&i)return e.ConstantOfType(We,[]);let u=e.BeginBroadcast([a]),c=[];for(let m of s)c.push(Ma(e,m,u));let l=[];for(let m=0;m<r.length;m++){let g=r[m];if(n&&!n[m])l.push(g);else{let d=s.indexOf(g);l.push(d===-1?g:c[d])}}let p=e.copyInstructionWithArgs(t,l),f=e.EndBroadcast([u,p]);return e.BroadcastResult(ar(e.getInstruction(p).valueType),[f])}function Ma(e,t,n){return e.getInstruction(t).type==48?e.DeferredListAccess([t,n]):e.InboundsListAccess([t,n])}function VS(e){let t=[];t.push(\"digraph {\");for(let n=0;n<e.instructionsLength();n++)e.getInstruction(n).type!==0&&t.push(`${n} [label=\"${n}: ${yc(e,n)}\"];`);for(let n=0;n<e.instructionsLength();n++){let r=e.getInstruction(n);if(Lv(r))for(let i of r.args)t.push(`${n} -> ${i};`)}return t.push(\"}\"),t.join(`\n`)}function BS(e,t,n){let r=e.argNames.indexOf(t);if(r===-1)return 0;let i=Lr(e,r,n);return en(i,e.getReturnIndex())}function Lr(e,t,{allowRestriction:n,allowClosedBlockReferences:r}){return{chunk:e,argIndex:t,orderTable:[],mask:eu(e,t),allowRestriction:n,allowClosedBlockReferences:r}}function en(e,t){let n=e.orderTable[t];if(n!==void 0)return n;let r=s3(e,t);return e.orderTable[t]=r,r}function s3(e,t){let{chunk:n,mask:r,argIndex:i,allowRestriction:s,allowClosedBlockReferences:o}=e;if(!o&&n.isInClosedBlock(t))return 1/0;if(t===i)return 1;let a=n.getInstruction(t);if(ri(a)||Ti(a))return 1/0;switch(a.type){case 8:case 9:case 26:case 28:case 27:case 29:{let[c,l]=a.args;return Math.max(en(e,c),en(e,l))}case 10:{let[c,l]=a.args;return en(e,c)+en(e,l)}case 14:return en(e,a.args[0]);case 11:{let[c,l]=a.args;return en(e,l)>0?1/0:en(e,c)}case 12:case 13:{let[c,l]=a.args,p=n.getInstruction(l);if(en(e,c)===0&&en(e,l)===0)return 0;if(p.type===1){let f=q(p.value);return f===Math.round(f)&&f>0?en(e,c)*f:1/0}else return 1/0}case 33:{if(!r[t])return 0;let c=n.getInstruction(a.args[2]);return s&&c.type===1&&isNaN(q(c.value))?en(e,a.args[1]):1/0}case 2:case 0:case 1:case 25:case 32:case 31:case 15:case 17:case 16:case 18:case 38:case 39:case 40:case 41:case 37:case 42:case 48:case 47:case 3:case 44:case 49:case 4:case 55:return r[t]?1/0:0;default:let u=a;throw new Error(`Unexpected opcode ${u.type}`)}}function GS(e,t){let n=e.argNames.indexOf(t),r=e.getReturnIndex(),i=ws(Lr(e,n,{allowRestriction:!0,allowClosedBlockReferences:!1}),r);if(en(i.orderCtx,r)>2)throw new Error(\"Programming Error: cannot compute polynomial coefficients for polynomials of order greater than 2\");let s=Hn(i,r),o=!1;for(let a=0;a<e.instructionsLength();a++)e.getInstruction(a).type===33&&i.mask[a]&&(o=!0);return{chunk:i.newChunk,coefficients:s,mappedArgIndex:i.valueMap[n],mappedReturnIndex:i.valueMap[r],isRestrictedPolynomial:o}}function ws(e,t){let{chunk:n,argIndex:r}=e,i=Yr(n,t);if(n.isInClosedBlock(r))throw new Error(\"Programming Error: cannot find polynomial coefficients of an instruction in a closed block\");let s,o;r>=0&&r<n.argNames.length?(s=n.argNames.slice(),o=n.argTypes.slice(),s.splice(r,1),o.splice(r,1)):(s=n.argNames,o=n.argTypes);let a=new jo({argNames:s,argTypes:o}),u=[];for(let m=0;m<n.instructionsLength();m++){if(!i[m])continue;let g=n.getInstruction(m);if(g.type===2)m<r||r<0?u[m]=m:m===r?u[m]=a.SymbolicVar(n.argTypes[m]):u[m]=m-1;else if(be(g))u[m]=Ls(a,g);else{let d=[];for(let y of g.args)d.push(u[y]);u[m]=Mn(a,g,d)}}let c=[],l=a.Constant(0),p=a.Constant(1),f=a.Constant(NaN);return{chunk:n,newChunk:a,orderCtx:e,coefficientTable:c,mask:e.mask,valueMap:u,argIndex:r,zero:l,one:p,nan:f}}function Hn(e,t){let{newChunk:n,orderCtx:r,coefficientTable:i,mask:s,valueMap:o,argIndex:a,zero:u,one:c,nan:l}=e,p=i[t];if(p!==void 0)return p;let f;for(s[t]?t===a?f=[u,c]:en(r,t)>2?f=[l]:f=o3(e,t):f=[o[t]];f.length>1;){let m=n.getInstruction(f[f.length-1]);if(m.type===1&&q(m.value)===0)f.pop();else break}if(f.length===0)throw new Error(\"Programming Error: coefficients cannot be empty\");return i[t]=f,f}function o3(e,t){let n=e.chunk.getInstruction(t),{newChunk:r}=e;switch(n.type){case 8:{let[s,o]=n.args,a=Hn(e,s),u=Hn(e,o),c=a.length-1,l=u.length-1,p=[];for(let f=0;f<=Math.max(c,l);f++)c>=f&&l>=f?p.push(r.Add([a[f],u[f]])):p.push(c>l?a[f]:u[f]);return p}case 9:case 26:case 28:case 27:case 29:{let[s,o]=n.args;(n.type===26||n.type==28)&&([s,o]=[o,s]);let a=Hn(e,s),u=Hn(e,o),c=a.length-1,l=u.length-1,p=[];for(let f=0;f<=Math.max(c,l);f++)c>=f&&l>=f?p.push(r.Subtract([a[f],u[f]])):p.push(c>l?a[f]:r.Negative([u[f]]));return p}case 14:{let s=n.args[0],o=Hn(e,s),a=[];for(let u=0;u<o.length;u++)a.push(r.Negative([o[u]]));return a}case 10:{let[s,o]=n.args,a=Hn(e,s),u=Hn(e,o),c=a.length-1,l=u.length-1,p=[];for(let f=0;f<=c;f++)for(let m=0;m<=l;m++){if(f+m>2)continue;let g=r.Multiply([a[f],u[m]]),d=p[f+m];d===void 0?p[f+m]=g:p[f+m]=r.Add([d,g])}return p}case 11:{let[s,o]=n.args,a=Hn(e,s),u=Hn(e,o),c=[];for(let l=0;l<a.length;l++)c.push(r.Divide([a[l],u[0]]));return c}case 12:case 13:{let[s,o]=n.args,a=Hn(e,s),u=Hn(e,o);if(a.length-1===0)return[r.RawExponent([a[0],u[0]])];let l=r.getInstruction(u[0]);switch(q(l.value)){case 0:return[r.Constant(1)];case 1:return a;case 2:return[r.Multiply([a[0],a[0]]),r.Multiply([r.Constant(2),r.Multiply([a[0],a[1]])]),r.Multiply([a[1],a[1]])]}}case 33:return Hn(e,n.args[1]);case 0:case 23:case 2:case 1:case 25:case 32:case 31:case 15:case 17:case 16:case 18:case 38:case 39:case 40:case 41:case 37:case 42:case 21:case 22:case 19:case 20:case 24:case 48:case 47:case 3:case 44:case 49:case 50:case 51:case 4:case 53:case 54:case 55:throw new Error(`Cannot find polynomial coefficients of opcode ${n.type} that depends on symbol.`);default:let i=n;throw new Error(`Unexpected opcode ${i.type}`)}}function kS(e){if(e.instructionsLength()-1!==e.getReturnIndex())throw new Error(\"Programming Error: only the final instruction in a chunk can be lifted to numbers\");let t=e.getInstruction(e.getReturnIndex());if(be(t))return e.getReturnIndex();switch(t.type){case 8:return pu(e,t.args[0])&&pu(e,t.args[1])?(e.popInstruction(),e.OrderedPair([e.Add([e.OrderedPairAccess(1,[t.args[0]]),e.OrderedPairAccess(1,[t.args[1]])]),e.Add([e.OrderedPairAccess(2,[t.args[0]]),e.OrderedPairAccess(2,[t.args[1]])])])):fu(e,t.args[0])&&fu(e,t.args[1])?(e.popInstruction(),e.OrderedTriple([e.Add([e.OrderedTripleAccess(1,[t.args[0]]),e.OrderedTripleAccess(1,[t.args[1]])]),e.Add([e.OrderedTripleAccess(2,[t.args[0]]),e.OrderedTripleAccess(2,[t.args[1]])]),e.Add([e.OrderedTripleAccess(3,[t.args[0]]),e.OrderedTripleAccess(3,[t.args[1]])])])):Da(e,t.args)?(e.popInstruction(),du(e,[e.Add([ai(e,t.args[0]),ai(e,t.args[1])]),go(e,t.args[0])])):e.getReturnIndex();case 9:return pu(e,t.args[0])&&pu(e,t.args[1])?(e.popInstruction(),e.OrderedPair([e.Subtract([e.OrderedPairAccess(1,[t.args[0]]),e.OrderedPairAccess(1,[t.args[1]])]),e.Subtract([e.OrderedPairAccess(2,[t.args[0]]),e.OrderedPairAccess(2,[t.args[1]])])])):fu(e,t.args[0])&&fu(e,t.args[1])?(e.popInstruction(),e.OrderedTriple([e.Subtract([e.OrderedTripleAccess(1,[t.args[0]]),e.OrderedTripleAccess(1,[t.args[1]])]),e.Subtract([e.OrderedTripleAccess(2,[t.args[0]]),e.OrderedTripleAccess(2,[t.args[1]])]),e.Subtract([e.OrderedTripleAccess(3,[t.args[0]]),e.OrderedTripleAccess(3,[t.args[1]])])])):Da(e,t.args)?(e.popInstruction(),du(e,[e.Subtract([ai(e,t.args[0]),ai(e,t.args[1])]),go(e,t.args[0])])):e.getReturnIndex();case 14:return pu(e,t.args[0])?(e.popInstruction(),e.OrderedPair([e.Negative([e.OrderedPairAccess(1,[t.args[0]])]),e.Negative([e.OrderedPairAccess(2,[t.args[0]])])])):fu(e,t.args[0])?(e.popInstruction(),e.OrderedTriple([e.Negative([e.OrderedTripleAccess(1,[t.args[0]])]),e.Negative([e.OrderedTripleAccess(2,[t.args[0]])]),e.Negative([e.OrderedTripleAccess(3,[t.args[0]])])])):Da(e,t.args)?(e.popInstruction(),du(e,[e.Negative([ai(e,t.args[0])]),go(e,t.args[0])])):e.getReturnIndex();case 10:if(Uf(e,t.args[0])&&Uf(e,t.args[1]))return e.popInstruction(),e.SyntheticNativeFunction(\"restriction\",[e.And([e.SyntheticNativeFunction(\"restrictionToBoolean\",[t.args[0]]),e.SyntheticNativeFunction(\"restrictionToBoolean\",[t.args[1]])])]);if(Uf(e,t.args[0])||Uf(e,t.args[1])){let r,i;Uf(e,t.args[0])?(r=t.args[0],i=t.args[1]):(r=t.args[1],i=t.args[0]);let s=e.getInstruction(i).valueType;return uo(s)?(e.popInstruction(),e.Piecewise([e.SyntheticNativeFunction(\"restrictionToBoolean\",[r]),i,e.NanOfType(s)])):e.getReturnIndex()}else return pu(e,t.args[0])&&va(e,t.args[1])?(e.popInstruction(),e.OrderedPair([e.Multiply([e.OrderedPairAccess(1,[t.args[0]]),t.args[1]]),e.Multiply([e.OrderedPairAccess(2,[t.args[0]]),t.args[1]])])):va(e,t.args[0])&&pu(e,t.args[1])?(e.popInstruction(),e.OrderedPair([e.Multiply([t.args[0],e.OrderedPairAccess(1,[t.args[1]])]),e.Multiply([t.args[0],e.OrderedPairAccess(2,[t.args[1]])])])):Da(e,[t.args[0]])&&va(e,t.args[1])?(e.popInstruction(),du(e,[e.Multiply([ai(e,t.args[0]),t.args[1]]),go(e,t.args[0])])):va(e,t.args[0])&&Da(e,[t.args[1]])?(e.popInstruction(),du(e,[e.Multiply([t.args[0],ai(e,t.args[1])]),go(e,t.args[1])])):fu(e,t.args[0])&&va(e,t.args[1])?(e.popInstruction(),e.OrderedTriple([e.Multiply([e.OrderedTripleAccess(1,[t.args[0]]),t.args[1]]),e.Multiply([e.OrderedTripleAccess(2,[t.args[0]]),t.args[1]]),e.Multiply([e.OrderedTripleAccess(3,[t.args[0]]),t.args[1]])])):va(e,t.args[0])&&fu(e,t.args[1])?(e.popInstruction(),e.OrderedTriple([e.Multiply([t.args[0],e.OrderedTripleAccess(1,[t.args[1]])]),e.Multiply([t.args[0],e.OrderedTripleAccess(2,[t.args[1]])]),e.Multiply([t.args[0],e.OrderedTripleAccess(3,[t.args[1]])])])):e.getReturnIndex();case 11:return pu(e,t.args[0])&&va(e,t.args[1])?(e.popInstruction(),e.OrderedPair([e.Divide([e.OrderedPairAccess(1,[t.args[0]]),t.args[1]]),e.Divide([e.OrderedPairAccess(2,[t.args[0]]),t.args[1]])])):Da(e,[t.args[0]])&&va(e,t.args[1])?(e.popInstruction(),du(e,[e.Divide([ai(e,t.args[0]),t.args[1]]),go(e,t.args[0])])):fu(e,t.args[0])&&va(e,t.args[1])?(e.popInstruction(),e.OrderedTriple([e.Divide([e.OrderedTripleAccess(1,[t.args[0]]),t.args[1]]),e.Divide([e.OrderedTripleAccess(2,[t.args[0]]),t.args[1]]),e.Divide([e.OrderedTripleAccess(3,[t.args[0]]),t.args[1]])])):e.getReturnIndex();case 12:case 13:case 25:case 26:case 27:case 28:case 29:case 32:case 31:case 15:case 16:case 33:case 17:case 18:case 37:case 42:case 39:case 40:case 41:case 21:case 22:case 19:case 20:case 38:case 47:case 23:case 24:case 48:case 44:case 49:case 50:case 51:case 53:case 54:case 55:return e.getReturnIndex();default:let n=t;throw new Error(`Unexpected opcode ${n.type}`)}}function pu(e,t){return e.getInstruction(t).valueType===R}function fu(e,t){return e.getInstruction(t).valueType===V}function va(e,t){return e.getInstruction(t).valueType===T}function Uf(e,t){return e.getInstruction(t).valueType===Vt}function Da(e,t){return t.every(n=>Je(e,n,he))||t.every(n=>Je(e,n,Se))}function du(e,t){return mu(e,t,\"mathVector\",qf(\"mathVector\",\"mathVectorThreeD\"))}function go(e,t){return mu(e,[t],\"start\",[{match:[he],build:()=>e.SyntheticNativeFunction(\"basePointFromVector\",[t])},{match:[Se],build:()=>e.SyntheticNativeFunction(\"basePointFromVectorThreeD\",[t])}])}function ai(e,t){return mu(e,[t],\"displacement\",[{match:[he],build:()=>e.SyntheticNativeFunction(\"vectorDisplacementAsPoint\",[t])},{match:[Se],build:()=>e.SyntheticNativeFunction(\"vectorThreeDDisplacementAsPoint\",[t])}])}function qf(e,t){return[{match:[R,R],build:(n,r)=>n.SyntheticNativeFunction(e,r)},{match:[V,V],build:(n,r)=>n.SyntheticNativeFunction(t,r)}]}var a3=[\"Sum\",\"Product\",\"Integral\",\"List\",\"Derivative\",\"Piecewise\",\"Restriction\",\"Norm\",\"Exponent\",\"PercentOf\",\"FunctionDefinition\",\"UpdateRule\",\"Substitution\",\"ListComprehension\"],u3={isGeometryEnabled(){return!1},is3dProduct(){return!1},is3dPolicy(){return!1},isBeta3d(){return!1},areAllScalesLinear(){return!0},assignmentForbidden(e){return!0},substitutionForbidden(e){return!0},graphingEnabled(){return!1},isValidSlider(e){return!1},sliderVariables(e){return[]},ansEnabled(){return!1},disabledFeatures(){return a3},dimensionVarsEnabled(){return!1}},zS={...u3,isGeometryEnabled(){return!0},is3dProduct(){return!0},is3dPolicy(){return!0},isBeta3d(){return!0}};function HS(e){return 48<=e&&e<=57}function c3(e){return 97<=e&&e<=122}function l3(e){return 65<=e&&e<=90}function rg(e){return c3(e)||l3(e)}function ig(e){return e===92}function QI(e){return e===39}function US(e){if(9<=e&&e<=13||8192<=e&&e<=8202)return!0;switch(e){case 32:case 160:case 5760:case 8232:case 8233:case 8239:case 8287:case 12288:case 65279:return!0;default:return!1}}function gu(e,t){return Kr(e.token.span,t.prevSpan)}function yu(e,t,n){return{type:e,span:t,val:n}}function p3(e,t,n,r){return{input:e,prevSpan:t,pos:n,token:r}}function qS(e){return $S(e,0,to(e,0))}function $S(e,t,n){for(;US(e.charCodeAt(t));)t+=1;let r=m3(e,t);return p3(e,n,t,r)}function ho(e){return $S(e.input,e.token.span.end,e.token.span)}function Bi(e){return e.token}function Jo(e,t){if(Bi(e).type!==t)throw`Parse Error: expected ${t}.`;return ho(e)}function YS(e,t){return Bi(e).type===t}function sg(e){return e.pos>=e.input.length}var f3={\"\\\\left\":\"Left\",\"\\\\right\":\"Right\",\"\\\\sqrt\":\"Sqrt\",\"\\\\frac\":\"Frac\",\"\\\\operatorname\":\"OperatorName\",\"\\\\token\":\"Token\"},d3={\"[\":\"[\",\"]\":\"]\",\"{\":\"{\",\"}\":\"}\",\"^\":\"^\",_:\"_\"};function m3(e,t){let n=t;if(t>=e.length)return yu(\"End\",to(e,t),\"\");let r=e.charCodeAt(t);if(HS(r)){let i=yi(e,n,t+1);return yu(\"Digit\",i,e.charAt(n))}else if(rg(r)){let i=yi(e,n,t+1);return yu(\"Letter\",i,e.charAt(n))}else if(ig(r))if(t+=1,rg(e.charCodeAt(t))){for(;rg(e.charCodeAt(t));)t+=1;let i=yi(e,n,t),s=Cn(i),o=f3[s]||\"Cmd\";return yu(o,i,s)}else{t+=1;let i=yi(e,n,t),s=Cn(i);return yu(\"EscapedSymbol\",i,s)}else if(QI(r)){for(t+=1;QI(e.charCodeAt(t));)t+=1;if(e.charAt(t)===\"^\"){t+=1;let i=yi(e,n,t),s=Cn(i);return yu(\"Primes^\",i,s)}else{let i=yi(e,n,t),s=Cn(i);return yu(\"Primes\",i,s)}}else{let i=yi(e,n,t+1),s=e.charAt(n),o=d3[s]||\"Symbol\";return yu(o,i,s)}}function KI(e,t){return{type:\"Group\",span:e,args:t}}function XS(e,t,n){return{type:\"Sqrt\",span:e,optArg:t,arg:n}}function ZS(e,t,n){return{type:\"Frac\",span:e,num:t,den:n}}function WS(e,t,n,r){return{type:\"SupSub\",span:e,sup:t,sub:n,nprimes:r}}function jS(e,t,n,r){return{type:\"LeftRight\",span:e,left:t,right:n,arg:r}}function JS(e,t){return{type:\"OperatorName\",span:e,arg:t}}function QS(e,t){return{type:\"TokenNode\",span:e,arg:t}}function KS(e,t){return{type:\"Symbol\",span:e,val:t}}function eO(e){switch(e){case\"Frac\":return 2;case\"^\":case\"_\":case\"Primes^\":case\"Left\":case\"Sqrt\":case\"OperatorName\":case\"Token\":return 1;default:return 0}}function tO(e){let{state:t,tree:n}=og(qS(e),!1);if(!sg(t))throw`Parse error: unexpected ${Cn(Bi(t).span)}.`;return n}function Fs(e,t){return{state:e,tree:t}}function og(e,t){let n=e,r=[];e:for(;!sg(e);){let s=Bi(e);switch(s.type){case\"Cmd\":case\"EscapedSymbol\":case\"Letter\":case\"Digit\":case\"Symbol\":case\"[\":case\"{\":case\"^\":case\"_\":case\"Primes\":case\"Primes^\":case\"Left\":case\"Frac\":case\"Sqrt\":case\"OperatorName\":case\"Token\":case\"]\":{if(s.type===\"]\"&&t)break e;let a;if({state:e,tree:a}=nO(e),a.type===\"Group\")for(let u of a.args)r.push(u);else r.push(a);break}case\"}\":case\"Right\":case\"End\":break e;default:throw`Unexpected token type ${s.type}.`}}let i=gu(n,e);return Fs(e,KI(i,r))}function nO(e){let t=Bi(e);switch(t.type){case\"Cmd\":case\"EscapedSymbol\":case\"Letter\":case\"Digit\":case\"Symbol\":return e=ho(e),Fs(e,t);case\"[\":case\"]\":return e=ho(e),Fs(e,KS(t.span,t.val));case\"{\":{e=ho(e);let r;return{state:e,tree:r}=og(e,!1),e=Jo(e,\"}\"),Fs(e,r)}case\"^\":case\"_\":case\"Primes\":case\"Primes^\":return T3(e);case\"Left\":return P3(e);case\"Frac\":return x3(e);case\"Sqrt\":return b3(e);case\"OperatorName\":return g3(e);case\"Token\":return h3(e);case\"}\":case\"Right\":throw`Parse Error: unexpected ${t.val}.`;case\"End\":throw\"Parse Error: unexpected end.\";default:throw`Unexpected token type ${t.type}.`}}function g3(e){let t=e,n=Bi(e);e=Jo(e,\"OperatorName\");let r;({state:e,tree:r}=hu(e,n));let i=gu(t,e);return Fs(e,JS(i,r))}function h3(e){let t=e,n=Bi(e);e=Jo(e,\"Token\");let r;({state:e,tree:r}=hu(e,n));let i=gu(t,e);return Fs(e,QS(i,r))}function b3(e){let t=e,n=Bi(e);e=Jo(e,\"Sqrt\");let r;YS(e,\"[\")&&({state:e,tree:r}=I3(e));let i;({state:e,tree:i}=hu(e,n));let s=gu(t,e);return Fs(e,XS(s,r,i))}function x3(e){let t=e,n=Bi(e);e=Jo(e,\"Frac\");let r;({state:e,tree:r}=hu(e,n));let i;({state:e,tree:i}=hu(e,n));let s=gu(t,e);return Fs(e,ZS(s,r,i))}function P3(e){let t=e;e=Jo(e,\"Left\");let n=Bi(e);e=ho(e);let r;({state:e,tree:r}=og(e,!1)),e=Jo(e,\"Right\");let i=Bi(e);e=ho(e);let s=gu(t,e);return Fs(e,jS(s,n,i,r))}function T3(e){let t=e,n,r,i=0;e:for(;!sg(e);){let o=Bi(e);switch(o.type){case\"^\":if(e=ho(e),n)throw\"Parse Error: double superscript.\";({state:e,tree:n}=hu(e,o));break;case\"_\":if(e=ho(e),r)throw\"Parse Error: double subscript.\";({state:e,tree:r}=hu(e,o));break;case\"Primes\":if(e=ho(e),i>0)throw\"Parse Error: double primes.\";i=o.val.length;break;case\"Primes^\":if(e=ho(e),i>0)throw\"Parse Error: double primes.\";if(n)throw\"Parse Error: double superscript\";i=o.val.length-1,{state:e,tree:n}=hu(e,o);break;default:break e}}let s=gu(t,e);return Fs(e,WS(s,n,r,i))}function hu(e,t){let n=eO(t.type),r;if(n<=0)throw new Error(\"Programming Error: greediness must be greater than 0.\");let i=eO(Bi(e).type);if(i>0&&i<=n){let s=Cn(t.span);throw`Parse Error: can't use ${Cn(Bi(e).span)} as argument of ${s}. Use {}.`}return{state:e,tree:r}=nO(e),r.type!==\"Group\"&&(r=KI(r.span,[r])),Fs(e,r)}function I3(e){e=Jo(e,\"[\");let t;return{state:e,tree:t}=og(e,!0),e=Jo(e,\"]\"),Fs(e,t)}var E3={mcd:\"gcd\",gcf:\"gcd\",mcm:\"lcm\",signum:\"sign\",sgn:\"sign\",stdDevP:\"stdevp\",stddevp:\"stdevp\",stdDev:\"stdev\",stddev:\"stdev\",variance:\"var\",TTest:\"ttest\",TScore:\"tscore\",IndependentTTest:\"ittest\",iTTest:\"ittest\",inverseCdf:\"quantile\",inversecdf:\"quantile\",arsinh:\"arcsinh\",arcosh:\"arccosh\",artanh:\"arctanh\",arcsch:\"arccsch\",arsech:\"arcsech\",arcoth:\"arccoth\"};function rO(e){let t=0;for(;ig(e.charCodeAt(t));)t+=1;return t>0&&(e=e.slice(t)),E3[e]||e}function iO(e,t,n){return{type:\"Comparator\",span:e,symbol:t,args:n}}function sO(e,t,n){if(t.length<1)throw\"Programming Error: ComparatorChain must have at least one comparator.\";if(n.length!==t.length+1)throw\"Programming Error: ComparatorChain must have one more arg than symbols\";return{type:\"ComparatorChain\",span:e,args:n,symbols:t}}function oO(e,t){return{type:\"Tilde\",span:e,args:t}}function aO(e,t){return{type:\"Pos\",span:e,args:t}}function uO(e,t){return{type:\"Neg\",span:e,args:t}}function cO(e,t){return{type:\"Add\",span:e,args:t}}function lO(e,t){return{type:\"Sub\",span:e,args:t}}function pO(e,t){return{type:\"Mul\",span:e,args:t}}function fO(e,t){return{type:\"DotMul\",span:e,args:t}}function dO(e,t){return{type:\"CrossMul\",span:e,args:t}}function mO(e,t){return{type:\"Div\",span:e,args:t}}function yO(e,t){return{type:\"Bang\",span:e,args:t}}function $f(e,t){return{type:\"Call\",span:e,args:t}}function eE(e,t){return{type:\"ImplicitCall\",span:e,args:t}}function gO(e,t){return{type:\"Index\",span:e,args:t}}function tE(e,t){return{type:\"Paren\",span:e,args:t}}function nE(e,t){return{type:\"List\",span:e,args:t}}function hO(e,t){return{type:\"Pipes\",span:e,args:t}}function rE(e,t){return{type:\"Subscript\",span:e,args:t}}function ag(e,t){return{type:\"Superscript\",span:e,args:t}}function Yf(e,t,n){return{type:\"Prime\",span:e,nprimes:t,args:n}}function ug(e,t){return{type:\"Seq\",span:e,args:t}}function bO(e,t){return{type:\"Sqrt\",span:e,args:t}}function xO(e,t){return{type:\"Nthroot\",span:e,args:t}}function PO(e,t){return{type:\"Frac\",span:e,args:t}}function TO(e,t){return{type:\"Derivative\",span:e,args:t}}function IO(e,t){return{type:\"Integral\",span:e,args:t}}function EO(e,t){return{type:\"EmptyIntegral\",span:e,args:t}}function MO(e,t){return{type:\"Sum\",span:e,args:t}}function vO(e,t){return{type:\"Product\",span:e,args:t}}function DO(e,t){return{type:\"Piecewise\",span:e,args:t}}function SO(e){return{type:\"EmptyPiecewise\",span:e}}function OO(e){return{type:\"EmptyRangeEnd\",span:e}}function CO(e,t){return{type:\"Colon\",span:e,args:t}}function iE(e,t){return{type:\"Ellipsis\",span:e,args:t}}function RO(e,t){return{type:\"For\",span:e,args:t}}function NO(e,t){return{type:\"With\",span:e,args:t}}function AO(e,t){return{type:\"Dot\",span:e,args:t}}function _O(e,t){return{type:\"PercentOf\",span:e,args:t}}function LO(e,t){return{type:\"RightArrow\",span:e,args:t}}function sE(e,t){return{type:\"Juxt\",span:e,args:t}}function wO(e,t){return{type:\"Letter\",span:e,val:t}}function cg(e,t){return{type:\"Decimal\",span:e,val:t}}function Oc(e,t){return{type:\"Cmd\",span:e,val:rO(t)}}function FO(e,t){return{type:\"Alphanumeric\",span:e,val:t}}function VO(e,t,n,r){return{type:\"MixedNumber\",span:e,whole:t,num:n,den:r}}function Un(e){if(e.type===\"Subscript\"){if(e.args[1].type!==\"Alphanumeric\")return!1;e=e.args[0]}switch(e.type){case\"Cmd\":return!0;case\"Letter\":return!0;default:return!1}}function BO(e){return e.type!==\"Superscript\"?!1:Un(e.args[0])}function GO(e,t){if(e.type!==\"Letter\"||e.val!==\"d\"||t.type!==\"Juxt\")return!1;let[n,r]=t.args;return n.type!==\"Letter\"||n.val!==\"d\"?!1:Un(r)}function pr(e){return e.type===\"Seq\"?e.args:[e]}function Ce(e,t){return{type:\"Err\",span:e,error:t}}function oE(){return{type:\"UnexpectedParseError\"}}function kO(){return{type:\"EmptyInput\"}}function zO(){return{type:\"EmptyGroup\"}}function aE(){return{type:\"EmptySubscript\"}}function HO(){return{type:\"EmptySuperscript\"}}function uE(){return{type:\"EmptyRadical\"}}function UO(){return{type:\"EmptySquareBracket\"}}function qO(){return{type:\"EmptyPipe\"}}function $O(){return{type:\"EmptyRadicalIndex\"}}function cE(){return{type:\"UnexpectedEnd\"}}function Cc(e){return{type:\"BinaryOperatorMissingRight\",val:e}}function YO(e){return{type:\"BinaryOperatorMissingLeft\",val:e}}function lE(e){return{type:\"UnaryOperatorMissingRight\",val:e}}function pE(e){return{type:\"UnaryOperatorMissingLeft\",val:e}}function XO(e,t){return{type:\"MissingCloseDelimiter\",open:e,close:t}}function Xf(e,t){return{type:\"UnexpectedCloseDelimiter\",open:e,close:t}}function ZO(){return{type:\"UnexpectedDifferential\"}}function WO(e){return{type:\"UnrecognizedSymbol\",val:e}}function jO(e){return{type:\"InvalidSubscript\",val:e}}function JO(e){return{type:\"UnexpectedSubscript\",base:e}}function fE(e){return{type:\"FunctionMissingArgument\",val:e}}function QO(){return{type:\"PercentMissingOf\"}}function dE(){return{type:\"PrimeWithoutParen\"}}function KO(){return{type:\"SuperscriptWithPrime\"}}function lg(){return{type:\"UnexpectedPrime\"}}function eC(){return{type:\"SumMissingBound\"}}function tC(){return{type:\"ProductMissingBound\"}}function mE(){return{type:\"MissingBound\"}}function nC(){return{type:\"IntegralMissingBound\"}}function rC(){return{type:\"SumMissingBody\"}}function iC(){return{type:\"ProductMissingBody\"}}function sC(){return{type:\"IntegralMissingBody\"}}function oC(){return{type:\"DerivativeMissingBody\"}}function aC(){return{type:\"IntegralMissingDifferential\"}}function uC(){return{type:\"DifferentialWithSuperscript\"}}function cC(){return{type:\"FractionMissingNumerator\"}}function lC(){return{type:\"FractionMissingDenominator\"}}function pC(){return{type:\"FractionEmpty\"}}function yE(e){return{type:\"AdjacentNumbers\",args:e}}function fC(){return{type:\"UnexpectedFor\"}}function dC(){return{type:\"TokenWithSubscript\"}}var D3={\"+\":!0,\"-\":!0,\"*\":!0,\"\\\\cdot\":!0,\"\\\\times\":!0,\"/\":!0,\"!\":!0,\"(\":!0,\")\":!0,\"\\\\{\":!0,\"\\\\}\":!0,\"(|\":!0,\"|)\":!0,\"[\":!0,\"]\":!0,\",\":!0,\"...\":!0,\":\":!0,\"=\":!0,\">\":!0,\"<\":!0,\">=\":!0,\"<=\":!0,\"->\":!0,\"~\":!0,\"%\":!0,\".\":!0,for:!0,with:!0,Letter:!0,Decimal:!0,Cmd:!0,TokenNode:!0,Differential:!0,End:!0,Trig:!0,Ln:!0,Log:!0,Int:!0,Sum:!0,Prod:!0,Err:!0};function k9(e){let t=Sa[e];if(!t)return!0;switch(t){case\"Ln\":case\"Log\":case\"for\":case\"with\":case\"Trig\":return!0;default:return!1}}var Sa={\"\\\\lt\":\"<\",\"\\\\gt\":\">\",\"\\\\le\":\"<=\",\"\\\\ge\":\">=\",\"\\\\leq\":\"<=\",\"\\\\geq\":\">=\",\"\\\\ldots\":\"...\",\"\\\\sim\":\"~\",\"\\\\to\":\"->\",\"\\\\cdot\":\"\\\\cdot\",\"\\\\times\":\"\\\\times\",\"\\\\div\":\"/\",\"\\\\ln\":\"Ln\",\"\\\\log\":\"Log\",\"\\\\int\":\"Int\",\"\\\\sum\":\"Sum\",\"\\\\prod\":\"Prod\",\"\\\\backslash\":\"Err\",\"\\\\for\":\"for\",\"\\\\with\":\"with\"},S3=[\"sin\",\"cos\",\"tan\",\"cot\",\"sec\",\"csc\"];for(let e of S3)Sa[\"\\\\\"+e]=\"Trig\",Sa[\"\\\\\"+e+\"h\"]=\"Trig\",Sa[\"\\\\arc\"+e]=\"Trig\",Sa[\"\\\\arc\"+e+\"h\"]=\"Trig\",Sa[\"\\\\ar\"+e+\"h\"]=\"Trig\";function z9(e){return e===\"\\\\log\"||e===\"\\\\prod\"||e===\"\\\\sum\"||e===\"\\\\int\"}var gE={\"+\":\"+\",\"-\":\"-\",\"*\":\"*\",\"/\":\"/\",\"!\":\"!\",\"(\":\"(\",\")\":\")\",\"[\":\"[\",\"]\":\"]\",\",\":\",\",\"...\":\"...\",\":\":\":\",\"=\":\"=\",\">=\":\">=\",\"<=\":\"<=\",\">\":\">\",\"<\":\"<\",\"~\":\"~\",\".\":\".\"},mC={\"\\\\{\":\"\\\\{\",\"\\\\}\":\"\\\\}\",\"\\\\%\":\"%\"},yC={\"|\":\"(|\",\"\\\\{\":\"\\\\{\",\"[\":\"[\",\"(\":\"(\"},gC={\"|\":\"|)\",\"\\\\}\":\"\\\\}\",\"]\":\"]\",\")\":\")\"},hC=Object.keys(D3);function bC(e,t,n,r,i,s,o,a){return{opts:e,input:t,prevSpan:n,startIndex:r,endIndex:i,token:s,mode:o,parent:a}}function ye(e,t){return Kr(e.token.span,t.prevSpan)}function qn(e,t){return Kr(e,t.prevSpan)}function bE(e){return to(e.token.span.input,e.token.span.start)}function O3(e,t){return{type:\"Differential\",span:e,val:t}}function ui(e,t,n){return{type:e,span:t,val:n}}function Oa(e,t){let n=to(e.span.input,e.span.start);return xE(t,e,0,n,void 0,void 0)}function xE(e,t,n,r,i,s){let o=t.args;if(n>o.length&&s)return xC(s,r);n=Zf(o,n);let{token:a,endIndex:u}=PC(t,n,i);if(a.type===\"End\"&&s){let c=s.input.args[s.startIndex];if(c.type===\"LeftRight\"){let l=c.right,p=gC[l.val]||\"Err\",f=ui(p,l.span,l.val);return bC(e,t,r,n,u,f,i,s)}}else a.type===\"Int\"?i=C3(i):a.type===\"Differential\"&&(i=R3(i));return bC(e,t,r,n,u,a,i,s)}function Ve(e){let t=e.input.args[e.startIndex],n=e.token.span;return t&&t.type===\"LeftRight\"?xE(e.opts,t.arg,0,n,e.mode,e):xC(e,n)}function xC(e,t){let{input:n,endIndex:r,mode:i,parent:s}=e;return xE(e.opts,n,r+1,t,i,s)}function wr(e){return e.token}function C3(e){return{type:\"integral\",parent:e}}function R3(e){if(!e||e.type!==\"integral\")throw new Error(\"Programming Error: expected lexer to be in integral mode.\");return e.parent}function Ir(e,t){return wr(e).type===t}function dg(e){return e.startIndex>=e.input.args.length}function PE(e,t){return t.token.span.start>e.token.span.start}function ir(e,t){return{token:t,endIndex:e}}function PC(e,t,n){let r=e.args;if(t>=r.length){let o=to(e.span.input,e.span.end);return ir(t,ui(\"End\",o,\"\"))}let i=e.args[t];switch(i.type){case\"Sqrt\":case\"Frac\":case\"SupSub\":return ir(t,i);case\"Letter\":{if(!n||n.type!==\"integral\"||i.val!=\"d\")return ir(t,i);let{endIndex:l,token:p}=PC(e,t+1,n);if(p.type===\"Letter\"||p.type===\"Cmd\"){let f=O3(Kr(i.span,p.span),p.val);return ir(l,f)}else return ir(t,i)}case\"LeftRight\":{let l=i.left,p=yC[l.val]||\"Err\";var s=Kr(i.span,l.span);return ir(t,ui(p,s,l.val))}case\"OperatorName\":let o=[];for(let l of i.arg.args){if(l.type!==\"Letter\")return ir(t,ui(\"Err\",i.span,Cn(i.arg.span)));o.push(l.val)}let a=\"\\\\\"+o.join(\"\"),u=Sa[a]||\"Cmd\";return ir(t,ui(u,i.span,a));case\"TokenNode\":{let l=\"$\";if(i.arg.args.length===0)return ir(t,ui(\"Err\",i.span,Cn(i.arg.span)));for(let p of i.arg.args){if(p.type!==\"Digit\")return ir(t,ui(\"Err\",i.span,Cn(i.arg.span)));l+=p.val}return ir(t,ui(\"TokenNode\",i.span,l))}case\"Cmd\":{let l=Sa[i.val]||\"Cmd\";return ir(t,ui(l,i.span,i.val))}case\"EscapedSymbol\":{let l=mC[i.val]||\"Err\";return ir(t,ui(l,i.span,i.val))}case\"Symbol\":return N3(e,t,i);case\"Digit\":return TC(e,t);default:throw`Unexpected atom ${i.type}.`}}function N3(e,t,n){switch(n.val){case\".\":return A3(e,t);case\"-\":{let i=e.args[t+1];if(i&&pg(i,\">\")){let s=ui(\"->\",Kr(n.span,i.span),\"->\");return ir(t+1,s)}break}case\"<\":{let i=e.args[t+1];if(i&&pg(i,\"=\")){let s=ui(\"<=\",Kr(n.span,i.span),\"<=\");return ir(t+1,s)}break}case\">\":{let i=e.args[t+1];if(i&&pg(i,\"=\")){let s=ui(\">=\",Kr(n.span,i.span),\">=\");return ir(t+1,s)}break}}let r=gE[n.val]||\"Err\";return ir(t,ui(r,n.span,n.val))}function A3(e,t){let n=e.args[t];if(n.type!==\"Symbol\"||n.val!==\".\")throw new Error(\"Programming Error: expected '.'\");if(t+2<e.args.length&&fg(e.args[t+1])&&fg(e.args[t+2])){let s=Kr(n.span,e.args[t+2].span);return ir(t+2,ui(\"...\",s,Cn(s)))}let r=Zf(e.args,t+1);if(r<e.args.length&&e.args[r].type===\"Digit\")return TC(e,t);let i=gE[n.val]||\"Err\";return ir(t,ui(i,n.span,n.val))}function TC(e,t){let n=_3(e,t);if(n)return n;let r=e.args,i=e.args[t].span,s=[],o=!1,a=!1;for(;t<r.length;t++){let c=Zf(r,t);if(c>=r.length)break;let l=r[c];if(l.type===\"Digit\")t=c,o=!0,s.push(l.val);else if(!a&&fg(l)){if(c+1<r.length&&fg(e.args[c+1]))break;t=c,a=!0,s.push(\".\")}else break}if(!o)throw new Error(\"Programming Error: decimals must have at least one digit.\");let u=Kr(i,e.args[t-1].span);return ir(t-1,ui(\"Decimal\",u,s.join(\"\")))}function _3(e,t){let n=e.args,r=n[t].span,i=[];for(;t<n.length;t++){let c=Zf(n,t);if(c>=n.length)break;let l=n[c];if(l.type!==\"Digit\")break;t=c,i.push(l.val)}if(t=Zf(n,t),t>=n.length)return;let s=n[t];if(s.type!==\"Frac\")return;let o=[],a=[];for(let c of s.num.args)if(!hE(c)){if(c.type!==\"Digit\")return;o.push(c.val)}for(let c of s.den.args)if(!hE(c)){if(c.type!==\"Digit\")return;a.push(c.val)}let u=Kr(r,s.span);return ir(t,VO(u,i.join(\"\"),o.join(\"\"),a.join(\"\")))}function hE(e){switch(e.type){case\"Sqrt\":case\"Frac\":case\"SupSub\":case\"LeftRight\":case\"OperatorName\":case\"TokenNode\":case\"Symbol\":case\"Letter\":case\"Digit\":return!1;case\"Cmd\":return e.val===\"\\\\space\";case\"EscapedSymbol\":return e.val===\"\\\\ \"||e.val===\"\\\\:\"||e.val===\"\\\\,\"||e.val===\"\\\\;\";default:throw`Unexpected atom ${e.type}.`}}function Zf(e,t){for(;t<e.length&&hE(e[t]);)t+=1;return t}function fg(e){return pg(e,\".\")}function pg(e,t){return e.type===\"Symbol\"&&e.val===t}function op(e){return{type:\"initial\",tokenType:e}}function Wf(e){return{type:\"l\",tokenType:e}}function jf(e){return{type:\"r\",tokenType:e}}function Xt(e){return{type:\"la\",tokenType:e}}function ap(e){return{type:\"ra\",tokenType:e}}function IC(e,t){for(let n of hC)if(t[n]===void 0)throw new Error(`Programming Error: token ${n} must be a assigned a ${e} precedence`)}function Rc(e,t,n,r){if(t[n]!==void 0)throw new Error(`Programming Error: duplicate ${e} entry for token ${n}.`);t[n]=r}function EC(e){let t={},n={},r={};for(let a=0;a<e.length;a++){let u=e[a];for(let{type:c,tokenType:l}of u)switch(c){case\"initial\":Rc(\"initial\",t,l,a);break;case\"l\":Rc(\"left\",n,l,a);break;case\"r\":Rc(\"right\",r,l,a);break;case\"la\":Rc(\"left\",n,l,a),Rc(\"right\",r,l,a);break;case\"ra\":Rc(\"left\",n,l,a),Rc(\"right\",r,l,a-1);break}}IC(\"left\",n),IC(\"right\",r);function i(a){return r[a]}function s(a){return n[a]}function o(a){let u=t[a];return u===void 0?i(a):u}return{rightPrec:i,leftPrec:s,initialPrec:o}}var up={},L3=[\"sin\",\"cos\",\"tan\",\"cot\",\"sec\",\"csc\",\"sinh\",\"cosh\",\"tanh\",\"coth\",\"sech\",\"csch\"];L3.forEach(function(e){up[e]=\"arc\"+e,up[\"arc\"+e]=e});var w3=0;function OC(e,t){return F3(e,t)}function lt(e,t){let n=[];for(let r=0;r<t.length;r++)n.push(rn(e,t[r]));return n}function F3(e,t){return e.setInput(V3(e,t),t.span)}function CC(e){if(e.type!==\"Call\")return;let[t,n]=e.args,r=pr(n);if(Un(t)&&r.every(Un))return{base:t,args:r}}function RC(e){return CC(e)!==void 0}function NC(e){return e.type===\"Paren\"&&e.args[0].type===\"Seq\"&&e.args[0].args.every(Un)}function EE(e){return Un(e)||NC(e)}function V3(e,t){let n=e.nodes;switch(t.type){case\"Comparator\":if(t.symbol===\"=\"){let[r,i]=t.args,s=CC(r);if(s){let{base:o,args:a}=s;return n.FunctionDefinition(rn(e,o),lt(e,a),rn(e,i))}else{if(r.type===\"Call\"&&Un(r.args[0]))return n.CallAssignment(rn(e,r),rn(e,i));if(EE(r)){let o;if(i.type===\"For\")o=e.setInput(yg(e,i,{parentIsList:!1}),i.span);else if(o=rn(e,i),NC(r))return n.CoordinateEquation(rn(e,r),o);return n.Assignment(rn(e,r),o)}}return n.Equation(rn(e,r),rn(e,i))}else return Qo(e,t);case\"Tilde\":{let[r,i]=lt(e,t.args);return n.Regression(r,i)}case\"ComparatorChain\":{if(!e.specializeDoubleInequalities||t.symbols.length!==2)return Qo(e,t);let[r,i,s]=t.args,[o,a]=t.symbols;return!Un(i)||t.symbols.includes(\"=\")?Qo(e,t):n.DoubleInequality([rn(e,r),o,rn(e,i),a,rn(e,s)])}case\"Call\":{let[r,i]=t.args;if(r.type===\"Cmd\")switch(r.val){case\"histogram\":return n.Histogram(lt(e,pr(i)));case\"dotplot\":return n.DotPlot(lt(e,pr(i)));case\"boxplot\":return n.BoxPlot(lt(e,pr(i)));case\"ttest\":return n.TTest(lt(e,pr(i)));case\"ittest\":return n.IndependentTTest(lt(e,pr(i)));case\"stats\":return n.Stats(lt(e,pr(i)));default:return Jf(e,t)}return Jf(e,t)}case\"For\":return yg(e,t,{parentIsList:!1});default:return Jf(e,t)}}function AC(e){if(e.type!==\"Paren\")return!1;let[t]=e.args;return t.type!==\"Seq\"?!1:t.args.length===2||t.args.length===3}function rn(e,t){return e.setInput(Jf(e,t),t.span)}function Jf(e,t){let n=e.nodes;switch(t.type){case\"Pos\":return rn(e,t.args[0]);case\"Neg\":let r=-1,i=t.args[0];for(;;)if(i.type===\"Pos\"||i.type===\"Paren\"&&!AC(i))i=i.args[0];else if(i.type===\"Neg\")i=i.args[0],r*=-1;else break;switch(i.type){case\"Decimal\":{let o=DC(i);return n.Constant(r===-1?hi(o):o)}case\"MixedNumber\":{let o=SC(i);return n.MixedNumber(r===-1?hi(o):o)}default:return r===-1?n.Negative([rn(e,i)]):rn(e,i)}case\"Add\":return n.Add(lt(e,t.args));case\"Sub\":return n.Subtract(lt(e,t.args));case\"Mul\":return n.Multiply(lt(e,t.args));case\"DotMul\":return n.DotMultiply(lt(e,t.args));case\"CrossMul\":return n.CrossMultiply(lt(e,t.args));case\"Div\":return n.Divide(lt(e,t.args));case\"Bang\":{let[o]=t.args;return o.type===\"Call\"&&Un(o.args[0])&&!mg(o.args[0])&&pr(o.args[1]).length===1?n.FunctionFactorial(lt(e,o.args)):n.FunctionCall(\"\\\\factorial\",lt(e,t.args))}case\"PercentOf\":return n.PercentOf(lt(e,t.args));case\"Call\":return MC(e,t);case\"ImplicitCall\":return U3(t),MC(e,t);case\"Dot\":{let o=t.args[1],[a,u]=lt(e,t.args);if(mg(o)){let c=to(o.span.input,o.span.end),l=e.setInput(LC(e),c);u=e.setInput(n.SeededFunctionCall(u,[l]),o.span)}else if(o.type===\"Letter\")switch(o.val){case\"x\":case\"y\":case\"z\":return n.NamedCoordinateAccess(o.val,[a]);default:break}else if(o.type===\"Call\"){let c=o.args[0];if(c.type===\"Letter\")switch(c.val){case\"x\":case\"y\":case\"z\":return n.Multiply([e.setInput(n.NamedCoordinateAccess(c.val,[a]),Kr(t.args[0].span,c.span)),rn(e,o.args[1])])}}return n.DotAccess([a,u])}case\"Prime\":{let[o]=t.args;if(o.type===\"Call\"){let[a,u]=o.args,c=pr(u).length;if(a.type===\"Cmd\"&&a.val===\"logbase\"){if(c!==2)throw nc()}else if(c!==1)throw nc();return n.Prime(t.nprimes,lt(e,t.args))}else throw o.type===\"ImplicitCall\"?Pm():xm()}case\"Index\":{let[o,a]=t.args;if(a.type===\"Seq\")return n.ListAccess([rn(e,o),e.setInput(n.List(lt(e,a.args)),void 0)]);if(a.type===\"Ellipsis\"){let[u,c]=a.args;return n.ListAccess([rn(e,o),e.setInput(n.Range([e.setInput(n.List(lt(e,pr(u))),void 0),e.setInput(n.List(c.type===\"EmptyRangeEnd\"?[]:lt(e,pr(c))),void 0)]),void 0)])}return Qf(a)?n.ListAccess([rn(e,o),e.setInput(Qo(e,a),void 0)]):n.ListAccess(lt(e,t.args))}case\"Paren\":{let[o]=t.args;if(o.type===\"Seq\"){if(o.args.length===0)throw zx();return n.ParenSeq(lt(e,o.args))}else return rn(e,o)}case\"List\":{if(t.args.length===0)return n.List([]);let o=t.args[0];if(o.type===\"Ellipsis\"){let[a,u]=o.args;return n.Range([e.setInput(n.List(lt(e,pr(a))),void 0),e.setInput(n.List(lt(e,pr(u))),void 0)])}else if(o.type===\"For\")return yg(e,o,{parentIsList:!0});return n.List(lt(e,pr(o)))}case\"Pipes\":{let[o]=t.args;return n.Norm([rn(e,o)])}case\"Subscript\":{let[o,a]=t.args;if(a.val.length===0)throw bm();let u;switch(o.type){case\"Letter\":u=o.val;break;case\"Cmd\":u=o.val;break;default:throw Vx()}if(u===\"ans\")throw Nr(\"ans\");return n.Identifier(`${u}_${a.val}`)}case\"Superscript\":{let[o,a]=t.args;if(o.type===\"Call\"&&o.args[1].type!==\"Seq\"&&!mg(o.args[0])&&!q3(o))return n.FunctionExponent(lt(e,[o.args[0],o.args[1],a]));if(o.type===\"Dot\"){let u=o.args[1],[c,l]=lt(e,o.args),p=rn(e,a);if(u.type===\"Letter\")switch(u.val){case\"x\":case\"y\":case\"z\":return n.Exponent([e.setInput(n.NamedCoordinateAccess(u.val,[c]),o.span),p]);default:break}else if(u.type===\"Call\"){let f=u.args[0];if(f.type===\"Letter\")switch(f.val){case\"x\":case\"y\":case\"z\":return n.Multiply([e.setInput(n.NamedCoordinateAccess(f.val,[c]),Kr(o.args[0].span,f.span)),e.setInput(n.Exponent([rn(e,u.args[1]),p]),yi(t.span.input,u.args[0].span.end,a.span.end))]);default:break}}return n.Exponent([e.setInput(n.DotAccess([c,l]),o.span),p])}else return n.Exponent(lt(e,t.args))}case\"Sqrt\":return n.FunctionCall(\"sqrt\",lt(e,t.args));case\"Nthroot\":return n.FunctionCall(\"nthroot\",lt(e,[t.args[1],t.args[0]]));case\"Frac\":return n.Divide(lt(e,t.args));case\"Derivative\":{let o=lt(e,t.args);if(!Un(t.args[0]))throw J(`Expected identifier in derivative, but found ${t.args[0].type}`);return n.Derivative(o[0],[o[1]])}case\"Integral\":{let[o,a,u,c]=t.args,l=lt(e,[o,a,u,c]);return n.Integral(l)}case\"EmptyIntegral\":{let[o,a,u]=lt(e,t.args),c=e.setInput(n.Constant(De(1,1)),void 0);return n.Integral([o,a,u,c])}case\"Sum\":{let[o,a,u]=t.args;if(a.type!==\"Comparator\"||!cp(a))throw wP();let c=lt(e,[a.args[0],a.args[1],u]),l=rn(hg(e,{prefix:\"ro\",expr:c[0]}),o);return n.Sum(c.concat(l))}case\"Product\":{let[o,a,u]=t.args;if(a.type!==\"Comparator\"||!cp(a))throw FP();let c=lt(e,[a.args[0],a.args[1],u]),l=rn(hg(e,{prefix:\"ro\",expr:c[0]}),o);return n.Product(c.concat(l))}case\"Juxt\":{if(e.writeIntegral){let[u,c]=t.args;if(c.type===\"Letter\"&&c.val===\"t\"&&u.type===\"Juxt\"&&([u,c]=u.args,c.type===\"Letter\"&&c.val===\"n\")){if(u.type===\"Juxt\"){if([u,c]=u.args,c.type===\"Letter\"&&c.val===\"i\")throw Lm()}else if(u.type===\"Letter\"&&u.val===\"i\")throw Lm()}}let[o,a]=t.args;if(o.type===\"MixedNumber\"&&!(Un(a)||a.type===\"Piecewise\"||a.type===\"Call\"||a.type===\"Paren\"))throw hm(gg(o));if(a.type===\"MixedNumber\")throw hm(gg(a));return n.Multiply(lt(e,t.args))}case\"Letter\":return n.Identifier(t.val);case\"Cmd\":{let o=t.val;switch(o){case\"ans\":{if(e.currentIndex===void 0)throw uf(\"ans\");return n.Ans(`ans_{${e.currentIndex-1}}`)}case\"approx\":throw sm(o);case\"dt\":{if(!e.allowDt)throw uf(o);return n.Identifier(o)}case\"index\":{if(!e.allowIndex)throw uf(o);return n.Identifier(o)}default:return n.Identifier(o)}}case\"With\":{if(e.isSubstitutionRHS)throw km();let[o,a]=t.args,u={...e,isSubstitutionRHS:!0};return n.Substitution(rn(u,o),k3(u,a))}case\"Decimal\":return n.Constant(DC(t));case\"MixedNumber\":return n.MixedNumber(SC(t));case\"Piecewise\":return H3(e,t);case\"RightArrow\":return z3(e,t);case\"Seq\":return n.BareSeq(lt(e,t.args));case\"EmptyPiecewise\":return n.Restriction([e.setInput(n.Constant(!0),to(t.span.input,t.span.start))]);case\"Comparator\":throw t.symbol===\"=\"?Nr(\"=\"):om();case\"ComparatorChain\":throw t.symbols.includes(\"=\")?hb():om();case\"Tilde\":throw Nr(\"~\");case\"Colon\":throw Nr(\":\");case\"Ellipsis\":throw Nr(\"...\");case\"For\":return yg(e,t,{parentIsList:!1});case\"EmptyRangeEnd\":throw AP();case\"Err\":throw $3(t.error);default:throw`Unexpected surface node ${t.type}.`}}function TE(e){return up.hasOwnProperty(e)}function _C(e){return e===\"ln\"||e===\"log\"||e===\"logbase\"}function B3(e){return e.type===\"Decimal\"&&e.val===\"2\"}function G3(e){return e.type!==\"Neg\"?!1:(e=e.args[0],e.type===\"Decimal\"&&e.val===\"1\")}function MC(e,t){let n=e.nodes,[r,i]=t.args,s=rn(e,r),o=pr(i),a=lt(e,o);if(mg(r)){let u=to(i.span.input,i.span.start),c=e.setInput(LC(e),u);return n.SeededFunctionCall(s,[c].concat(a))}if(Un(r))return n.FunctionCall(s,a);if(r.type===\"Superscript\"){let[u,c]=r.args;if(u.type===\"Cmd\"){let l=u.val;if(TE(l)||_C(l)){if(B3(c))return n.Exponent([e.setInput(n.FunctionCall(l,a),void 0),rn(e,c)]);if(G3(c)&&up[l]!==void 0)return n.FunctionCall(up[l],a);throw TE(l)?qx(l):$x(l===\"logbase\"?\"log\":l)}}}return n.Multiply([s,rn(e,i)])}function yg(e,t,{parentIsList:n}){let r=e.nodes,[i,s]=t.args,o=e.setInput(r.Identifier(`_comprehensionIndex_${w3++}`),void 0);if(i.type===\"For\")throw Ya(\"for\");let a=rn(hg(e,{prefix:\"li\",expr:o}),i),u=[];if(s.type===\"Seq\"){let p=!1,f=!1,m=!1;for(let g=0;g<s.args.length;g++){let d=s.args[g];cp(d)||e.allowIntervalComprehensions&&d.type===\"ComparatorChain\"?p=!0:f=!0,d.type===\"Cmd\"&&d.val===\"cursor\"&&(m=!0)}if(p&&f){let g=Ya(\"for\");throw m&&g.setCursorContext({type:\"for-assignment-lhs\",allowedTypes:[R]}),g}}let c=[];for(let p of pr(s))if(e.allowIntervalComprehensions&&p.type===\"ComparatorChain\"){let f=IE(p),{min:m,identifier:g,max:d,open:y}=f;c.push({identifier:rn(e,g),bounds:[rn(e,m),rn(e,d)],open:y})}else if(p.type===\"Comparator\"&&cp(p)){let f=e.setInput(r.AssignmentExpression(lt(e,p.args)),p.span);u.push(f)}else{if(p.type===\"Comparator\")throw bl(\"a\");{let f=tT();throw p.type===\"Cmd\"&&p.val===\"cursor\"&&f.setCursorContext({type:\"for-assignment-lhs\",allowedTypes:[R]}),f}}let l=n;return r.ListComprehension(o,a,u,l,c)}function k3(e,t){let n=e.nodes;if(t.type===\"Seq\"){let s=!1,o=!1,a=!1;for(let u=0;u<t.args.length;u++){let c=t.args[u];if(c.type===\"With\")throw Ya(\"with\");if(cp(c)||vC(c))s=!0;else if(e.allowIntervalComprehensions&&c.type===\"ComparatorChain\")try{IE(c),o=!0}catch(l){a=!0}else a=!0}if((s||o)&&a)throw Ya(\"with\");if(o)throw zm()}if(e.allowIntervalComprehensions&&t.type===\"ComparatorChain\"){let s;try{IE(t),s=!0}catch(o){s=!1}if(s)throw zm()}if(t.type===\"With\")throw km();let r=pr(t),i=[];for(let s of r){if(s.type!=\"Comparator\"||!cp(s)&&!vC(s))throw mf();let o=e.setInput(n.AssignmentExpression(lt(e,s.args)),s.span);i.push(o)}return i}function vC(e){if(e.type!==\"Comparator\"||e.symbol!==\"=\")return!1;let t=e.args[0];if(t.type!==\"Call\")return!1;let[n]=t.args;return!!Un(n)}function IE(e){if(e.symbols.length!==2)throw bl(\"a\");let[t,n,r]=e.args,[i,s]=e.symbols;if(!Un(n))throw bl(\"a\");if(i!==\"<\"&&i!==\"<=\"||s!==\"<\"&&s!==\"<=\"||e.symbols.includes(\"=\"))throw bl(Cn(n.span));return{min:t,identifier:n,max:r,open:[i===\"<\",s===\"<\"]}}function z3(e,t){let n=e.nodes;if(!Un(t.args[0]))throw Jb();return e=hg(e,{prefix:\"ec\",expr:e.setInput(n.Identifier(\"globalEventCount\"),void 0)}),n.UpdateRule(lt(e,t.args))}function H3(e,t){let n=e.nodes,[r]=t.args,i=pr(r);if(i.length===1&&Qf(i[0])){let f=i[0];return n.Restriction([e.setInput(Qo(e,f),f.span)])}if(i.length>1&&i.every(Qf)){let f=e.setInput(Qo(e,i[0]),i[0].span);for(let m=1;m<i.length;m++){let g=e.setInput(Qo(e,i[m]),i[m].span);f=e.setInput(n.Or([f,g]),Kr(i[0].span,i[m].span))}return n.Restriction([f])}let s,o=[];e:for(s=0;s<i.length;s++){let f=i[s];switch(f.type){case\"Colon\":{let[m,g]=f.args;if(!Qf(m))throw Zx();if(g.type===\"With\"&&g.args[1].type===\"Seq\")throw Ya(\"with\");o.push({condition:e.setInput(Qo(e,m),m.span),if_expr:rn(e,g)});break}case\"Comparator\":case\"ComparatorChain\":o.push({condition:e.setInput(Qo(e,f),f.span),if_expr:e.setInput(n.Constant(De(1,1)),yi(\"1\",0,1))});break;case\"For\":throw Ya(\"for\");default:break e}}if(s===0)throw Yx();if(s<i.length-1)throw Xx();let a,u;s===i.length-1?(a=Jf(e,i[s]),u=i[s]):a=n.Constant(NaN);let c=a,l=u==null?void 0:u.span,p;for(;o.length;)p=o.pop(),c=n.Piecewise([p.condition,p.if_expr,e.setInput(c,l)]),l=void 0;return c}function Qf(e){return e.type===\"Comparator\"||e.type===\"ComparatorChain\"}function Qo(e,t){let n=e.nodes;switch(t.type){case\"Comparator\":return n.Comparator[t.symbol](lt(e,t.args));case\"ComparatorChain\":return n.ComparatorChain(t.symbols,lt(e,t.args));default:throw J(`Unexpected type for condition: ${t.type}`)}}function U3(e){let[t,n]=e.args;if(t.type===\"Superscript\"&&(t=t.args[0]),t.type===\"Cmd\"&&t.val===\"logbase\"&&n.type===\"Seq\"&&n.args.length===2){if(!bo(n.args[0]))throw gm(\"log\")}else if(!bo(n))throw t.type===\"Cmd\"?gm(t.val):J(`Unexpected type for args of implicit call: ${n.type}`)}function DC(e){return Yu(e.val)}function SC(e){let t=Yu(e.whole),n=Yu(e.num),r=Yu(e.den);return us(t,Ji(n,r))}function q3(e){if(e.type!==\"Call\")return!1;let t=e.args[0];for(;t.type===\"Superscript\"||t.type===\"Subscript\"||t.type===\"Prime\";)t=t.args[0];return t.type!==\"Cmd\"?!1:TE(t.val)||_C(t.val)}function cp(e){return e.type===\"Comparator\"&&e.symbol===\"=\"&&Un(e.args[0])}function $3(e){switch(e.type){case\"UnexpectedParseError\":case\"MissingBound\":case\"EmptyGroup\":case\"UnexpectedDifferential\":case\"UnexpectedEnd\":return J(`Unexpected error type: ${e.type}`);case\"InvalidOperatorName\":return Fx();case\"UnexpectedCloseDelimiter\":case\"MissingCloseDelimiter\":return YP(e.open,e.close);case\"UnrecognizedSymbol\":return e.val===\".\"?Nr(e.val):sm(e.val);case\"EmptyInput\":return nf();case\"BinaryOperatorMissingRight\":case\"BinaryOperatorMissingLeft\":return tf(e.val===\"%\"?\"% of\":e.val);case\"UnaryOperatorMissingLeft\":return Cx(e.val);case\"UnaryOperatorMissingRight\":return Rx(e.val);case\"UnexpectedSubscript\":return Jx(e.base);case\"PercentMissingOf\":return ZP();case\"SumMissingBound\":return _P();case\"ProductMissingBound\":return LP();case\"IntegralMissingBound\":return GP();case\"SumMissingBody\":return HP();case\"ProductMissingBody\":return UP();case\"IntegralMissingBody\":return qP();case\"DerivativeMissingBody\":return $P();case\"IntegralMissingDifferential\":return kP();case\"DifferentialWithSuperscript\":return zP();case\"FractionMissingNumerator\":return Nx();case\"FractionMissingDenominator\":return Ax();case\"FractionEmpty\":return _x();case\"EmptySuperscript\":return Lx();case\"EmptySubscript\":return bm();case\"InvalidSubscript\":return wx(e.val);case\"SuperscriptWithPrime\":return Bx();case\"PrimeWithoutParen\":return Pm();case\"UnexpectedPrime\":return xm();case\"EmptyRadical\":return Gx();case\"EmptyRadicalIndex\":return kx();case\"EmptySquareBracket\":return Hx();case\"EmptyPipe\":return Ux();case\"FunctionMissingArgument\":return ds(e.val,1,0);case\"AdjacentNumbers\":return vx(gg(e.args[0]),gg(e.args[1]));case\"TokenWithSubscript\":return Dx();case\"UnexpectedFor\":return Nr(\"for\");default:throw`Unexpected surface node ${e.type}.`}}function gg(e){switch(e.type){case\"Decimal\":return e.val;case\"MixedNumber\":return`${e.whole} ${e.num}/${e.den}`;default:let t=e;throw new Error(`Unexpected node type ${t.type}`)}}function bo(e){switch(e.type){case\"Letter\":case\"Decimal\":case\"MixedNumber\":case\"Cmd\":case\"EmptyPiecewise\":return!0;case\"Neg\":{let n=e.args[0];for(;;)if(n.type===\"Pos\"||n.type===\"Paren\"&&!AC(n))n=n.args[0];else if(n.type===\"Neg\")n=n.args[0];else break;return n.type===\"Decimal\"||n.type===\"MixedNumber\"}case\"Pos\":return bo(e.args[0]);case\"Paren\":return bo(e.args[0]);case\"Juxt\":case\"Mul\":case\"DotMul\":case\"CrossMul\":case\"Div\":return bo(e.args[0])&&bo(e.args[1]);case\"Subscript\":return bo(e.args[0]);case\"Superscript\":case\"Frac\":case\"Add\":case\"Sub\":return bo(e.args[0])&&bo(e.args[1]);case\"Piecewise\":{let[n]=e.args;return Qf(n)}case\"Call\":{let[n,r]=e.args;return Un(n)||BO(n)?!1:bo(n)&&bo(r)}case\"Derivative\":case\"Sqrt\":case\"Nthroot\":case\"Pipes\":case\"Bang\":return!1;case\"Comparator\":case\"ComparatorChain\":case\"Tilde\":case\"ImplicitCall\":case\"Index\":case\"List\":case\"Seq\":case\"Integral\":case\"EmptyIntegral\":case\"Sum\":case\"Product\":case\"Colon\":case\"Ellipsis\":case\"For\":case\"With\":case\"Dot\":case\"PercentOf\":case\"Prime\":case\"EmptyRangeEnd\":case\"RightArrow\":return!1;default:throw`Unexpected surface node ${e.type}.`}}function mg(e){return e.type!==\"Cmd\"?!1:e.val===\"random\"||e.val===\"shuffle\"}function LC(e){let t=e.nodes.ExtendSeed(\"\",[e.setInput(e.nodes.Identifier(\"globalRandomSeed\"),void 0),e.setInput(e.nodes.Seed(e.nextSeed()),void 0)]);if(!e.seedExtensions)return t;for(let{prefix:n,expr:r}of e.seedExtensions)t=e.nodes.ExtendSeed(n,[e.setInput(t,void 0),r]);return t}function hg(e,t){let n=e.seedExtensions||[];return{...e,seedExtensions:n.concat(t)}}var Y3=[[op(\"(\"),Xt(\")\"),op(\"\\\\{\"),Xt(\"\\\\}\"),jf(\"[\"),Xt(\"]\"),op(\"(|\"),Xt(\"|)\"),Xt(\"Differential\"),Xt(\"End\")],[Xt(\"for\")],[jf(\"with\")],[ap(\"...\")],[Xt(\",\")],[ap(\":\")],[jf(\"->\")],[Wf(\"with\")],[Xt(\"=\"),Xt(\">\"),Xt(\"<\"),Xt(\">=\"),Xt(\"<=\"),Xt(\"~\")],[Wf(\"->\")],[Xt(\"+\"),Xt(\"-\")],[Xt(\"*\"),Xt(\"\\\\cdot\"),Xt(\"\\\\times\"),Xt(\"/\"),Xt(\"Decimal\"),Xt(\"MixedNumber\"),Xt(\"Letter\"),Xt(\"Cmd\"),Xt(\"TokenNode\"),Xt(\"%\"),jf(\"(\"),Xt(\"\\\\{\"),Xt(\"(|\"),Xt(\"Frac\"),Xt(\"Sqrt\"),Xt(\"Trig\"),Xt(\"Ln\"),Xt(\"Log\"),ap(\"Int\"),ap(\"Sum\"),ap(\"Prod\")],[op(\"+\"),op(\"-\")],[Xt(\"!\")],[Xt(\"SupSub\")],[Wf(\"[\"),Xt(\".\")],[Wf(\"(\")],[Xt(\"Err\")]],{leftPrec:bg,rightPrec:wC,initialPrec:GC}=EC(Y3),FC={trailingComma:!1};function kC(e,t){let n=t?{...FC,...t}:FC,r=Oa(e,n),i=X3(r);return i.type===\"Err\"&&i.error.type===\"EmptyGroup\"?Ce(i.span,kO()):i}function X3(e){return bu(e,{isToplevel:!0})}function bu(e,{isToplevel:t}={isToplevel:!1}){if(dg(e))return Ce(ye(e,e),zO());let{state:n,tree:r}=Qn(e,0,{isToplevel:t});return r.type!==\"Err\"&&!dg(n)?vE(n).tree:r}function B(e,t){return{state:e,tree:t}}function Qn(e,t,{isToplevel:n}={isToplevel:!1}){let r=e,i;if({state:r,tree:i}=Z3(r),i.type===\"Err\")return B(r,i);if(!PE(e,r))throw new Error(\"Programming Error: parseInitial did not advance state.\");for(;!dg(r);){let s;if(Ir(r,\"(\")&&!J3(i)?s=wC(\"(\"):s=bg(wr(r).type),t>=s)break;let o=r,a=W3(r,i,n)?bg(\"for\")-1:wC(wr(r).type);if({state:r,tree:i}=j3(r,i,a),i.type===\"Err\")return B(r,i);if(!PE(o,r))throw new Error(\"Programming Error: parseSuccessor did not advance state.\")}return B(r,i)}function ns(e){return e.type===\"UnexpectedDifferential\"||e.type===\"UnexpectedCloseDelimiter\"||e.type===\"UnexpectedEnd\"||e.type===\"BinaryOperatorMissingLeft\"}function Z3(e){let t=e,n=wr(e),r=GC(n.type),i;switch(n.type){case\"+\":{if(e=Ve(e),{state:e,tree:i}=Qn(e,r),i.type===\"Err\"){if(!ns(i.error))return B(e,i);let o=ye(t,e),a=Ce(o,lE(n.val));return B(e,a)}return B(e,aO(ye(t,e),[i]))}case\"-\":if(e=Ve(e),{state:e,tree:i}=Qn(e,r),i.type===\"Err\"){if(!ns(i.error))return B(e,i);let o=ye(t,e),a=Ce(o,lE(n.val));return B(e,a)}else return B(e,uO(ye(t,e),[i]));case\"(\":return Kf(e);case\"\\\\{\":return e=Ve(e),Ir(e,\"\\\\}\")?(e=Ve(e),B(e,SO(ye(t,e)))):({state:e,tree:i}=Qn(e,r),{state:e,tree:i}=ed(t,e,i,\"\\\\{\",\"\\\\}\"),i.type===\"Err\"?B(e,i):B(e,DO(ye(t,e),[i])));case\"[\":return e=Ve(e),Ir(e,\"]\")?(e=Ve(e),B(e,nE(ye(t,e),[]))):({state:e,tree:i}=Qn(e,r),{state:e,tree:i}=ed(t,e,i,\"[\",\"]\"),i.type===\"Err\"?B(e,i):B(e,nE(ye(t,e),[i])));case\"(|\":{if(e=Ve(e),Ir(e,\"|)\")){e=Ve(e);let o=ye(t,e);return B(e,Ce(o,qO()))}return{state:e,tree:i}=Qn(e,r),{state:e,tree:i}=ed(t,e,i,\"(|\",\"|)\"),i.type===\"Err\"?B(e,i):B(e,hO(ye(t,e),[i]))}case\"Frac\":{if(e.opts.disallowFrac)throw Bm();e=Ve(e);let o=bu(Oa(n.num,e.opts)),a=bu(Oa(n.den,e.opts));if(o.type===\"Err\"&&o.error.type===\"EmptyGroup\"&&a.type===\"Err\"&&a.error.type===\"EmptyGroup\"){let u=ye(t,e),c=Ce(u,pC());return B(e,c)}if(o.type===\"Err\"&&o.error.type===\"EmptyGroup\"){let u=ye(t,e),c=Ce(u,cC());return B(e,c)}if(a.type===\"Err\"&&a.error.type===\"EmptyGroup\"){let u=ye(t,e),c=Ce(u,lC());return B(e,c)}if(o.type===\"Err\")return B(e,o);if(a.type===\"Err\")return B(e,a);if(GO(o,a)&&a.type===\"Juxt\"){let u=a.args[1],c;if({state:e,tree:c}=Qn(e,bg(\"*\")-1),c.type===\"Err\"){if(ns(c.error)){let l=ye(t,e);return B(e,Ce(l,oC()))}return B(e,c)}return B(e,TO(ye(t,e),[u,c]))}return B(e,PO(ye(t,e),[o,a]))}case\"Sqrt\":if(e=Ve(e),n.optArg){let o=bu(Oa(n.optArg,e.opts));if(o.type===\"Err\")return o.error.type===\"EmptyGroup\"?B(e,Ce(o.span,$O())):B(e,o);let a=bu(Oa(n.arg,e.opts));return a.type===\"Err\"?a.error.type===\"EmptyGroup\"?B(e,Ce(a.span,uE())):B(e,a):B(e,xO(ye(t,e),[o,a]))}else{let o=bu(Oa(n.arg,e.opts));return o.type===\"Err\"?o.error.type===\"EmptyGroup\"?B(e,Ce(o.span,uE())):B(e,o):B(e,bO(ye(t,e),[o]))}case\"Trig\":case\"Ln\":{e=Ve(e);let o=Oc(ye(t,e),n.val),a=0,u=wr(e);if(u.type===\"SupSub\"){if(e=Ve(e),u.sub){let p=ye(t,e),f=Ce(p,JO(o.val));return B(e,f)}let l=xg(u,e.opts);if(l){if(l.type===\"Err\")return B(e,l);o=ag(ye(t,e),[o,l])}a=u.nprimes}let c=Ir(e,\"(\");if(c){if({state:e,tree:i}=Kf(e),i.type===\"Err\")return B(e,i);i=$f(ye(t,e),[o,i.args[0]])}else{if({state:e,tree:i}=Qn(e,r-1),i.type===\"Err\")return ns(i.error)?B(e,Ce(ye(t,e),fE(n.val))):B(e,i);i=eE(ye(t,e),[o,i])}if(a>0){let l=ye(t,e);if(!c){let p=Ce(l,dE());return B(e,p)}i=Yf(l,a,[i])}return B(e,i)}case\"Log\":{e=Ve(e);let o=ye(t,e),a=Oc(o,n.val),u=0,c,l,p=wr(e);if(p.type===\"SupSub\"&&(e=Ve(e),c=zC(p,e.opts),l=xg(p,e.opts),u=p.nprimes),c&&c.type===\"Err\")return B(e,c);if(l&&l.type===\"Err\")return B(e,l);let f=Ir(e,\"(\");if(f){if({state:e,tree:i}=Kf(e),i.type===\"Err\")return B(e,i);i=i.args[0]}else if({state:e,tree:i}=Qn(e,r-1),i.type===\"Err\")return ns(i.error)?B(e,Ce(ye(t,e),fE(n.val))):B(e,i);let m=c?Oc(o,\"\\\\logbase\"):a,g=c?ug(ye(t,e),pr(i).concat(c)):i;if(l&&(m=ag(ye(t,e),[m,l])),f?i=$f(ye(t,e),[m,g]):i=eE(ye(t,e),[m,g]),u>0){let d=ye(t,e);if(!f){let y=Ce(d,dE());return B(e,y)}i=Yf(d,u,[i])}return B(e,i)}case\"Int\":{e=Ve(e);let o=wr(e);e=Ve(e);let a=ME(o,t,e);if(a.type===\"Err\")return a.error.type===\"MissingBound\"?B(e,Ce(a.span,nC())):B(e,a);let{sup:u,sub:c}=a,l;if(Ir(e,\"Differential\"))return{state:e,tree:l}=BC(e),l.type===\"Err\"?B(e,l):B(e,EO(ye(t,e),[l,c,u]));if({state:e,tree:i}=Qn(e,r),i.type===\"Err\")return ns(i.error)?B(e,Ce(i.span,sC())):B(e,i);let p=i;return Ir(e,\"Differential\")?({state:e,tree:l}=BC(e),l.type===\"Err\"?B(e,l):B(e,IO(ye(t,e),[l,c,u,p]))):B(e,Ce(ye(t,e),aC()))}case\"Sum\":{e=Ve(e);let o=wr(e);e=Ve(e);let a=ME(o,t,e);if(a.type===\"Err\")return a.error.type===\"MissingBound\"?B(e,Ce(a.span,eC())):B(e,a);let{sup:u,sub:c}=a;return{state:e,tree:i}=Qn(e,r),i.type===\"Err\"?ns(i.error)?B(e,Ce(i.span,rC())):B(e,i):B(e,MO(ye(t,e),[i,c,u]))}case\"Prod\":{e=Ve(e);let o=wr(e);e=Ve(e);let a=ME(o,t,e);if(a.type===\"Err\")return a.error.type===\"MissingBound\"?B(e,Ce(a.span,tC())):B(e,a);let{sup:u,sub:c}=a;return{state:e,tree:i}=Qn(e,r),i.type===\"Err\"?ns(i.error)?B(e,Ce(i.span,iC())):B(e,i):B(e,vO(ye(t,e),[i,c,u]))}case\"Cmd\":return e=Ve(e),i=Oc(ye(t,e),n.val),B(e,i);case\"TokenNode\":{e=Ve(e);let o=wr(e);return o.type===\"SupSub\"&&o.sub?(e=Ve(e),B(e,Ce(ye(t,e),dC()))):(i=Oc(ye(t,e),n.val),B(e,i))}case\"Letter\":return e=Ve(e),i=wO(ye(t,e),n.val),B(e,i);case\"Decimal\":{e=Ve(e);let o=cg(ye(t,e),n.val),a=e.token;if(a.type===\"Decimal\"||a.type===\"MixedNumber\"){let u=e;e=Ve(e);let c=ye(t,e),l=a.type===\"MixedNumber\"?a:cg(ye(u,e),a.val);return B(e,Ce(c,yE([o,l])))}return B(e,o)}case\"MixedNumber\":{if(e.opts.disallowFrac)throw Bm();e=Ve(e);let o=e.token;if(o.type===\"Decimal\"||o.type===\"MixedNumber\"){let a=e;e=Ve(e);let u=ye(t,e),c=o.type===\"MixedNumber\"?o:cg(ye(a,e),o.val);return B(e,Ce(u,yE([n,c])))}return B(e,n)}case\"*\":case\"\\\\cdot\":case\"\\\\times\":case\"/\":case\",\":case\"=\":case\">\":case\"<\":case\">=\":case\"<=\":case\"->\":case\"~\":case\":\":case\"...\":case\"%\":case\".\":{e=Ve(e);let o=ye(t,e),a=Ce(o,YO(n.val));return B(e,a)}case\"for\":{e=Ve(e);let o=ye(t,e),a=Ce(o,fC());return B(e,a)}case\"with\":{e=Ve(e);let o=ye(t,e),a=Ce(o,oE());return B(e,a)}case\"!\":{e=Ve(e);let o=ye(t,e),a=Ce(o,pE(n.val));return B(e,a)}case\"SupSub\":{e=Ve(e);let o=\"supsub\";n.sub?o=\"subscript\":n.sup?o=\"superscript\":n.nprimes>0&&(o=\"prime\");let a=ye(t,e),u=Ce(a,pE(o));return B(e,u)}case\")\":case\"\\\\}\":case\"]\":case\"|)\":case\"Differential\":return vE(e);case\"Err\":{e=Ve(e);let o=ye(t,e),a=Ce(o,WO(n.val));return B(e,a)}case\"End\":{let o=ye(t,e),a=Ce(o,cE());return B(e,a)}default:throw`Unexpected token type ${n.type}.`}}function W3(e,t,n){return Ir(e,\"=\")&&n&&(RC(t)||EE(t))}function j3(e,t,n){let r=wr(e),i;switch(r.type){case\"+\":case\"-\":case\"*\":case\"\\\\cdot\":case\"\\\\times\":case\"/\":case\"~\":case\":\":case\".\":case\"->\":case\"for\":{if(e=Ve(e),{state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let o=qn(t.span,e),a=Ce(o,Cc(r.val));return B(e,a)}else return B(e,i);return B(e,VC(r.type,qn(t.span,e),[t,i]))}case\"with\":{if(e=Ve(e),{state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let o=qn(t.span,e),a=Ce(o,Cc(r.val));return B(e,a)}else return B(e,i);return B(e,VC(r.type,qn(t.span,e),[t,i]))}case\"%\":{e=Ve(e);let o=wr(e);if(o.type!==\"Cmd\"||o.val!==\"of\"&&o.val!==\"\\\\of\"){let a=Ce(r.span,QO());return B(e,a)}if(e=Ve(e),{state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let a=qn(t.span,e),u=Ce(a,Cc(r.val));return B(e,u)}else return B(e,i);return B(e,_O(qn(t.span,e),[t,i]))}case\"=\":case\">=\":case\"<=\":case\">\":case\"<\":{let o=[t],a=[];for(;;){let c=wr(e).type;if(c!==\"=\"&&c!==\">=\"&&c!==\"<=\"&&c!==\">\"&&c!==\"<\")break;if(a.push(c),e=Ve(e),{state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let l=qn(t.span,e),p=Ce(l,Cc(r.val));return B(e,p)}else return B(e,i);o.push(i)}let u=o[o.length-1];return u.type===\"Comparator\"?(o.pop(),Array.prototype.push.apply(o,u.args),a.push(u.symbol)):u.type===\"ComparatorChain\"&&(o.pop(),Array.prototype.push.apply(o,u.args),Array.prototype.push.apply(a,u.symbols)),o.length===2?B(e,iO(qn(t.span,e),a[0],o)):B(e,sO(qn(t.span,e),a,o))}case\"!\":return e=Ve(e),B(e,yO(qn(t.span,e),[t]));case\"[\":{let o=e;if(e=Ve(e),Ir(e,\"]\")){e=Ve(e);let a=ye(o,e);return B(e,Ce(a,UO()))}return{state:e,tree:i}=Qn(e,n),{state:e,tree:i}=ed(o,e,i,\"[\",\"]\"),i.type===\"Err\"?B(e,i):B(e,gO(qn(t.span,e),[t,i]))}case\"Sqrt\":case\"Frac\":case\"Letter\":case\"Cmd\":case\"TokenNode\":case\"Trig\":case\"Ln\":case\"Log\":case\"Sum\":case\"Int\":case\"Prod\":case\"Decimal\":case\"MixedNumber\":case\"\\\\{\":case\"(|\":return{state:e,tree:i}=Qn(e,n),i.type===\"Err\"?B(e,i):B(e,sE(qn(t.span,e),[t,i]));case\"(\":if(Un(t)){if({state:e,tree:i}=Kf(e),i.type===\"Err\")return B(e,i);let o=qn(t.span,e);return B(e,$f(o,[t,i.args[0]]))}else if(t.type===\"Prime\"&&Un(t.args[0])){if({state:e,tree:i}=Kf(e),i.type===\"Err\")return B(e,i);let o=qn(t.span,e);return B(e,Yf(o,t.nprimes,[$f(o,[t.args[0],i.args[0]])]))}else return{state:e,tree:i}=Qn(e,n),i.type===\"Err\"?B(e,i):B(e,sE(qn(t.span,e),[t,i]));case\"SupSub\":{e=Ve(e);let o=HC(r),a=xg(r,e.opts);if(o&&o.type===\"Err\")return B(e,o);if(a&&a.type===\"Err\")return B(e,a);if(o&&(t=rE(qn(t.span,e),[t,o])),a&&(t=ag(qn(t.span,e),[t,a])),r.nprimes>0){let u=qn(t.span,e);if(!Un(t)){let c=Ce(u,lg());return B(e,c)}t=Yf(u,r.nprimes,[t])}return B(e,t)}case\",\":{let o=[t];for(;Ir(e,\",\")&&(e=Ve(e),!(Ir(e,\"...\")||e.opts.trailingComma&&Q3(e)));){if({state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let a=qn(t.span,e),u=Ce(a,Cc(r.val));return B(e,u)}else return B(e,i);o.push(i)}return B(e,ug(qn(t.span,e),o))}case\"...\":{if(e=Ve(e),Ir(e,\",\")&&(e=Ve(e)),n>=bg(wr(e).type))return B(e,iE(qn(t.span,e),[t,OO(bE(e))]));if({state:e,tree:i}=Qn(e,n),i.type===\"Err\")if(ns(i.error)){let o=qn(t.span,e),a=Ce(o,Cc(r.val));return B(e,a)}else return B(e,i);return B(e,iE(qn(t.span,e),[t,i]))}case\"]\":case\")\":case\"\\\\}\":case\"|)\":case\"Differential\":return vE(e);case\"Err\":return Qn(e,n);case\"End\":{let o=ye(e,e),a=Ce(o,cE());return B(e,a)}default:throw`Unexpected token type ${r.type}.`}}function J3(e){return!!(Un(e)||e.type===\"Prime\"&&Un(e.args[0]))}function VC(e,t,n){switch(e){case\"+\":return cO(t,n);case\"-\":return lO(t,n);case\"*\":return pO(t,n);case\"\\\\cdot\":return fO(t,n);case\"\\\\times\":return dO(t,n);case\"/\":return mO(t,n);case\"~\":return oO(t,n);case\":\":return CO(t,n);case\".\":return AO(t,n);case\"->\":return LO(t,n);case\"for\":return RO(t,n);case\"with\":return NO(t,n);default:throw`Unexpected token type ${e}.`}}function zC(e,t){if(!e.sub)return;let n=e.sub,r=bu(Oa(n,t));return r.type===\"Err\"&&r.error.type===\"EmptyGroup\"?Ce(r.span,aE()):r}function HC(e){if(!e.sub)return;let t=e.sub;if(t.args.length===0)return Ce(t.span,aE());let n=[];for(let r of t.args)if(r.type===\"Digit\"||r.type===\"Letter\")n.push(r.val);else{let i=r.span;return Ce(i,jO(Cn(i)))}return FO(t.span,n.join(\"\"))}function xg(e,t){if(!e.sup)return;let n=bu(Oa(e.sup,t));return n.type===\"Err\"?n.error.type===\"EmptyGroup\"?Ce(n.span,HO()):n:e.nprimes>0?Ce(e.span,KO()):n}function ME(e,t,n){if(e.type!==\"SupSub\"){let s=ye(t,n);return Ce(s,mE())}if(e.nprimes>0){let s=ye(t,n);return Ce(s,lg())}let r=zC(e,n.opts),i=xg(e,n.opts);if(!r||r.type===\"Err\"&&r.error.type===\"EmptySubscript\"||!i||i.type===\"Err\"&&i.error.type===\"EmptySuperscript\"){let s=ye(t,n);return Ce(s,mE())}return r.type===\"Err\"?r:i.type===\"Err\"?i:{type:\"Bounds\",sup:i,sub:r}}function Kf(e){if(e.opts.disableParentheses)throw KP();let t=e,n=wr(e),r=GC(n.type);if(Ir(e,\"(\"))e=Ve(e);else throw new Error(\"Programming Error: expected '(' at start of parseParen.\");if(Ir(e,\")\")){let s=ug(bE(e),[]);e=Ve(e);let o=ye(t,e);return B(e,tE(o,[s]))}let i;return{state:e,tree:i}=Qn(e,r),{state:e,tree:i}=ed(t,e,i,\"(\",\")\"),i.type===\"Err\"?B(e,i):B(e,tE(ye(t,e),[i]))}function BC(e){let t=e,n=wr(e);if(n.type!==\"Differential\")throw new Error(\"Programming Error: expected differential\");e=Ve(e);let r=Oc(n.span,n.val),i=wr(e);if(i.type===\"SupSub\"){e=Ve(e);let s=ye(t,e),o=HC(i);if(o){if(o.type===\"Err\")return B(e,o);r=rE(s,[r,o])}if(i.sup)return B(e,Ce(s,uC()));if(i.nprimes>0)return B(e,Ce(s,lg()))}return B(e,r)}function ed(e,t,n,r,i){if(n.type===\"Err\"&&n.error.type!==\"UnexpectedEnd\")return B(t,n);if(n.type===\"Err\"||!Ir(t,i)){let s=ye(e,t),o=Ce(s,XO(r,i));return B(t,o)}return t=Ve(t),B(t,n)}function vE(e){let t=e;switch(wr(e).type){case\")\":{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,Xf(\"(\",\")\")))}case\"]\":{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,Xf(\"[\",\"]\")))}case\"\\\\}\":{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,Xf(\"\\\\{\",\"\\\\}\")))}case\"|)\":{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,Xf(\"|\",\"|\")))}case\"Differential\":{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,ZO()))}default:{e=Ve(e);let r=ye(t,e);return B(e,Ce(r,oE()))}}}function Q3(e){return Ir(e,\")\")||Ir(e,\"]\")||Ir(e,\"\\\\}\")}function K3(){throw ff()}function UC(e,t){return t&&!e._inputSpan&&e.setInputSpan(t),e}function Vs(e,t={}){let n=typeof e;if(n!==\"string\")throw new Error(`Type Error: parse can only be called with strings, got ${JSON.stringify(e)} of type ${n}`);let r=D;if(t.disabledFeatures){r=Object.create(r);for(let l of t.disabledFeatures){if(!r[l])throw new Error(`Programming Error: ${l} cannot be disabled because it is not a parsenode.`);r[l]=K3}}let i=t.seedPrefix===void 0?\"\":t.seedPrefix,s=0,o=()=>{let l=`${i}::vc${s}`;return s+=1,l},a={nodes:r,currentIndex:t.index,setInput:UC,nextSeed:o,allowDt:!!t.allowDt,allowIndex:!!t.allowIndex,writeIntegral:!!t.writeIntegral,allowIntervalComprehensions:!!t.allowIntervalComprehensions,specializeDoubleInequalities:!!t.specializeDoubleInequalities},u={};t.trailingComma!==void 0&&(u.trailingComma=t.trailingComma),t.disallowFrac&&(u.disallowFrac=!0),t.disableParentheses&&(u.disableParentheses=!0);function c(l){return l.parseOptions=t,l}if(e===\"\")return c(nf());try{let l=tO(e),p=kC(l,u),f=OC(a,p);return f.parseOptions=t,f}catch(l){let p;return l instanceof D.Error?p=l:typeof l==\"string\"?p=new D.Error(l):p=J(l),c(p)}}function Ca(e,t,n,r){return xu({chunk:e,argMap:[t],start:n,unpatchedHeaderMap:new Map,processedHeaders:new Set},r)}function tG(e,t){let{chunk:n}=e,r=n.getInstruction(t),i=[];for(let s of r.recursionGroup){let o=e.unpatchedHeaderMap.get(s);if(o===void 0)throw new Error(\"Programming Error: `substitute` did not include all headers in a recursion group.\");i.push(o)}for(let s of r.recursionGroup)e.unpatchedHeaderMap.delete(s);for(let s of i)n.getInstruction(s).recursionGroup=i}function xu(e,t){let{chunk:n,argMap:r,start:i}=e;if(t<i)return t;let s=r[t-i];if(s!==void 0)return s;let o=nG(e,t);e.argMap[t-i]=o;let a=n.getInstruction(t);if(a.type===4){let u=o;e.unpatchedHeaderMap.set(t,u),e.processedHeaders.add(t);for(let c of a.recursionGroup)e.processedHeaders.has(c)||xu(e,c);return xu(e,a.endIndex),u}if(ri(a))switch(a.type){case 23:case 21:case 50:break;case 19:{let c=a.args.length-2;for(let l=0;l<c;l++)xu(e,t+1+l);break}case 53:{let l=n.getInstruction(a.args[0]).signature.argTypes.length;for(let p=0;p<l;p++)xu(e,t+1+p);break}default:let u=a;throw new Error(`Programming Error. Unexpected OpCode: ${u.type}`)}else if(Jm(a)){let u=a.args.length-1;for(let c=0;c<u;c++)xu(e,t+1+c)}return o}function nG(e,t){let{chunk:n,start:r}=e,i=n.getInstruction(t);if(Ti(i)){let a=i.args[0];for(let u=a;u<=t;u++){let c=n.getInstruction(u);if(!be(c))for(let l of c.args)l<a&&xu(e,l)}}if(i.type===4)return n.FunctionHeader(i.symbol,i.valueType,i.signature,i.parameterSymbols);if(be(i))return Ls(n,i);let s=[];for(let a of i.args)s.push(xu(e,a));let o=e.argMap[t-r];if(o!==void 0)return o;if(i.type===55&&!sy(n,t)){let a=i.args[0];e.unpatchedHeaderMap.has(a)&&tG(e,a)}return Mn(n,i,s)}var Wt=Symbol(\"FRAME_SENTINEL\");function Nc(e,t){return DE(e,t).freeDependencies}function DE(e,t){let n={};return(t.type===\"FunctionDefinition\"||t.type===\"RecursiveFunctionBaseCase\")&&(t=t._expression),SE(e,t,n)}function qC(e,t,n){let r=[],i=[],s=[],o=[];for(let a of t.scopes){let u=qC(e,a,n);for(let c of u.freeDependencies)r.indexOf(c)===-1&&t.definitions.indexOf(c)===-1&&r.push(c);for(let c of u.updateSymbols)i.indexOf(c)===-1&&i.push(c);for(let c of u.substitutionSymbols)s.indexOf(c)===-1&&s.push(c)}for(let a of t.dependencies){if(t.definitions.indexOf(a)!==-1)continue;let u=rG(e,a,n),c=t.substitutionDependencies.indexOf(a)!==-1;for(let l of u.freeDependencies)r.indexOf(l)===-1&&t.definitions.indexOf(l)===-1&&r.push(l),c&&o.indexOf(l)===-1&&t.definitions.indexOf(l)===-1&&o.push(l);for(let l of u.updateSymbols)i.indexOf(l)===-1&&i.push(l);for(let l of u.substitutionSymbols)s.indexOf(l)===-1&&s.push(l)}return{freeDependencies:r,updateSymbols:i,substitutionSymbols:s}}function SE(e,t,n){if(t.type===\"Slider\"||t.type===\"Assignment\")return SE(e,t._expression,n);{let{freeDependencies:r,updateSymbols:i,substitutionSymbols:s}=qC(e,t.getScope(),n),o=t.getUpdateSymbols();if(o.length>0){i=i.slice();for(let u of o)i.indexOf(u)===-1&&i.push(u)}let a=t.getSubstitutionSymbols();if(a.length>0){s=s.slice();for(let u of a)s.indexOf(u)===-1&&s.push(u)}return{freeDependencies:r,updateSymbols:i,substitutionSymbols:s}}}function rG(e,t,n){if(n[t])return n[t];if(Ke[t])return n[t]={freeDependencies:[],updateSymbols:[],substitutionSymbols:[]},n[t];let r=e[t];if(r===Wt)throw new Error(\"Programming error: _getSymbolFreeDependencies called with a symbol that is defined in a local scope\");return r?(n[t]={freeDependencies:[],updateSymbols:[],substitutionSymbols:[]},n[t]=SE(e,r,n),n[t]):(n[t]={freeDependencies:[t],updateSymbols:[],substitutionSymbols:[]},n[t])}function $C(e,t){for(var n={},r=t.getDependencies().slice();r.length;){var i=r.pop();if(!n.hasOwnProperty(i)){var s=e[i];if(s===Wt)return;n[i]=s,s&&s.getDependencies&&Array.prototype.push.apply(r,s.getDependencies())}}return iG(n)}function iG(e){let t=[];for(let n in e)t.push([n,e[n]]);return t}function YC(e,t,n){XC(e,t,n,{})}function XC(e,t,n,r){let i={};for(let s of n.definitions){if(i[s])switch(n.kind){case\"Sum\":case\"Product\":case\"Integral\":throw J(new Error(`${n.kind} scope is not expected to define multiple symbols`));case\"FunctionDefinition\":throw Wx(s);case\"ListComprehension\":throw Gm(s);case\"Substitution\":throw cT(s);default:let o=n.kind;throw J(new Error(`Unexpected scope kind ${o}`))}i[s]=!0}for(let s of n.definitions){let o=t[s];if(o)switch(n.kind){case\"Sum\":case\"Product\":throw Em(s);case\"Integral\":throw _m(s);case\"FunctionDefinition\":if(s===n.functionDefinitionSymbol)break;throw Im(s);case\"ListComprehension\":{if(o!==Wt&&o.type===\"FunctionDefinition\")throw hl(s);if(e.assignmentForbidden(s))throw gl(s);break}case\"Substitution\":break;default:let a=n.kind;throw J(new Error(`Unexpected scope kind ${a}`))}if(r[s])switch(n.kind){case\"Sum\":case\"Product\":throw Em(s);case\"Integral\":throw _m(s);case\"FunctionDefinition\":throw Im(s);case\"ListComprehension\":throw Gm(s);case\"Substitution\":throw yf(s);default:let a=n.kind;throw J(new Error(`Unexpected scope kind ${a}`))}}r=Object.create(r);for(let s of n.definitions)r[s]=!0;for(let s of n.scopes)XC(e,t,s,r)}function lp(e,t,n){let r=e.getInstruction(t);if(!oe(r.valueType,T)&&!oe(r.valueType,R)&&!oe(r.valueType,V))throw qb([ne(r.valueType)]);let i=e.getInstruction(n);if(!oe(i.valueType,T)&&i.type!==0)throw J(`Unexpected derivative var type ${i.valueType}`);let s=e.Constant(0);if(t<n)return s;let o=e.Constant(1),a=e.Constant(NaN),u=eu(e,n),c=wv(e,t);e.derivativeMaps[n]||(e.derivativeMaps[n]={maxValidReference:e.instructionsLength()-1,map:[]});let{map:l,maxValidReference:p}=e.derivativeMaps[n];for(let y=0;y<l.length;y++){let h=l[y];h!==void 0&&h>p&&(l[y]=void 0)}let f=[],m=!1;for(let y=0;y<n;y++)f[y]=y,l[y]=s;let g=Yr(e,t);return Tg({chunk:e,derivativeVarIndex:n,forwardMask:u,backwardMask:c,referenced:g,valueMap:f,derivativeMap:l,mustCopy:m,ZERO:s,ONE:o,NAN:a},n,t),e.derivativeMaps[n].maxValidReference=e.instructionsLength()-1,l[t]}function Tg(e,t,n){let{chunk:r,valueMap:i,derivativeMap:s,backwardMask:o}=e;for(let a=t;a<=n;a++){let u=s[a];if(u!==void 0)if(r.getInstruction(u).type===0)s[a]=void 0;else{i[a]=Pg(e,a);continue}if(!o[a]){i[a]=Pg(e,a);continue}let c=r.getInstruction(a);if(ri(c)&&c.endIndex!==-1)switch(c.type){case 21:{a=sG(e,a);continue}case 19:case 23:{a=uG(e,a);continue}case 53:{a=lG(e,a);continue}}i[a]=Pg(e,a),s[a]=pG(e,a)}return n}function sG(e,t){let{chunk:n,forwardMask:r,valueMap:i,derivativeMap:s,ZERO:o}=e,a=n.getInstruction(t),u=a.endIndex,c=n.getInstruction(u),l=o;if(r[a.args[1]]){let p=i[a.args[1]];l=n.Add([l,n.Multiply([s[a.args[1]],Ca(n,p,t,c.args[1])])])}if(r[a.args[0]]){let p=i[a.args[0]];l=n.Subtract([l,n.Multiply([s[a.args[0]],Ca(n,p,t,c.args[1])])])}if(oG(n,t,r)){let p=i.slice();p[t]=Mn(n,a,[p[a.args[0]],p[a.args[1]]]),s[t]=o,Tg({...e,valueMap:p,mustCopy:!0},t+1,u-1);let f=Mn(n,c,[p[c.args[0]],s[c.args[1]]]);s[u]=f,l=n.Add([l,Mn(n,n.getInstruction(u+1),[f])])}else for(let p=t;p<=u;p++)s[p]=o;if(aG(n,t,i)){let p={...e,mustCopy:!0};for(let f=t;f<=u+1;f++)i[f]=Pg(p,f)}else for(let p=t;p<=u+1;p++)i[p]=p;return s[u+1]=l,u+c.args.length-1}function oG(e,t,n){let r=e.getInstruction(t),i=e.getInstruction(r.endIndex);if(i.args[1]<t+1)return n[i.args[1]];for(let s=t+1;s<=i.args[1];s++){let o=e.getInstruction(s);if(!be(o)){for(let a of o.args)if(a<t&&n[a])return!0}}return!1}function aG(e,t,n){let r=e.getInstruction(t);for(let i=t;i<=r.endIndex;i++){let s=e.getInstruction(i);if(!be(s)){for(let o of s.args)if(n[o]!==o)return!0}}return!1}function uG(e,t){let{chunk:n,derivativeMap:r,valueMap:i,ZERO:s}=e,o=n.getInstruction(t),a=o.endIndex,u=n.getInstruction(a),c;if(o.type===23)i[t]=Mn(n,o,[i[o.args[0]]]),r[t]=s,c=t+1;else{let p=[];p.push(i[o.args[0]],i[o.args[1]]);for(let f=2;f<o.args.length;f++)p.push(i[o.args[f]],r[o.args[f]]);i[t]=Mn(n,o,p),r[t]=s;for(let f=2;f<o.args.length;f++)i[t+f-1]=Mn(n,n.getInstruction(t+f-1),[i[t]]),r[t+f-1]=Mn(n,n.getInstruction(t+f-1),[i[t]]);c=t+o.args.length-1}Tg({...e,mustCopy:!0},c,a-1);let l=[];l.push(i[u.args[0]]);for(let p=1;p<u.args.length;p++)l.push(i[u.args[p]],r[u.args[p]]);i[a]=Mn(n,u,l),r[a]=s;for(let p=1;p<u.args.length;p++)i[a+p]=Mn(n,n.getInstruction(a+p),[i[a]]),r[a+p]=Mn(n,n.getInstruction(a+p),[i[a]]);return a+u.args.length-1}function Pg(e,t){let{chunk:n,valueMap:r,mustCopy:i,referenced:s}=e;if(!s[t])return t;let o=n.getInstruction(t);if(be(o))return i?Ls(n,o):t;{let a=[],u=!1;for(let c of o.args)a.push(r[c]),r[c]!==c&&(u=!0);return u||i?Mn(n,o,a):t}}function cG(e,t){let{chunk:n,derivativeMap:r}=e,i=n.getInstruction(t),s=[],o=i.recursionGroup;for(let a of o){let u=n.getInstruction(a),c={argTypes:[]};for(let p of u.signature.argTypes)c.argTypes.push(p,p);let l=r[a];l||(l=n.FunctionHeader(u.symbol+`_\\u2202${e.derivativeVarIndex}`,u.valueType,c,u.parameterSymbols),s.push(l)),e.derivativeMap[a]=l}for(let a of s){let u=n.getInstruction(a);u.recursionGroup=s}return e.derivativeMap[t]}function lG(e,t){let{chunk:n,valueMap:r,derivativeMap:i}=e,o=n.getInstruction(t).args[0],a=n.getInstruction(o),u=a.endIndex,l=n.getInstruction(u).args[1],p=i[o],f=n.BeginFunction([p]);i[t]=f;let m=a.signature.argTypes,g=[];for(let x=0;x<m.length;x++){let P=m[x],M=t+x+1;g.push(M);let I=n.BlockVar(P,[f]),E=n.BlockVar(P,[f]);r[M]=I,i[M]=E}let d=t+m.length+1,y=u-1,h=mc(n,g,d,y),b=r.slice();return b[o]=o,Tg({...e,valueMap:b,mustCopy:!0,forwardMask:h},d,y),n.EndFunction([f,i[l]]),u}function pG(e,t){let{chunk:n,derivativeVarIndex:r,forwardMask:i,valueMap:s,derivativeMap:o,ZERO:a,ONE:u,NAN:c}=e,l=n.getInstruction(t);if(t===r)if(W(l.valueType)){let f=_r(n,t),m=n.BeginBroadcast([f]),g=n.EndBroadcast([m,u]);return n.BroadcastResult(se,[g])}else return u;if(ri(l)||Ti(l)||l.type===47||l.type===48||l.type===25||l.type===27||l.type===26||l.type===29||l.type===28||l.type===32||l.type===31||l.type===42||l.type===44||l.type===49||l.valueType===ot)return a;if(l.type===4)return cG(e,t);if(!i[t]||be(l))return l.valueType!==T?dG(n,[s[t],a]):l.type!==1||isFinite(q(l.value))?a:c;if(l.type===38||l.type===15||l.type===16){let f=[];for(let m of l.args)f.push(o[m]);return Mn(n,l,f)}if(l.type===33)return Mn(n,l,[s[l.args[0]],o[l.args[1]],o[l.args[2]]]);if(l.type===55){let m=[o[l.args[0]]];for(let g of l.args.slice(1))m.push(s[g]),m.push(o[g]);return n.FunctionCall(m)}let p=a;for(let f=0;f<l.args.length;f++){if(!i[l.args[f]])continue;let m=o[l.args[f]];if(m===a)continue;let g=fG(e,s[t],f,m);g!==a&&(p=p===a?g:mG(n,[g,p]))}return p}function fG(e,t,n,r){let{chunk:i,ZERO:s,ONE:o,NAN:a}=e,u=i.getInstruction(t);switch(u.type){case 8:return r;case 9:switch(n){case 0:return r;default:return i.Negative([r])}case 10:switch(n){case 0:return i.Multiply([r,u.args[1]]);default:return i.Multiply([u.args[0],r])}case 11:switch(n){case 0:return i.Divide([r,u.args[1]]);default:return i.Multiply([u.args[0],i.Divide([i.Negative([r]),i.Multiply([u.args[1],u.args[1]])])])}case 14:return i.Negative([r]);case 12:case 13:switch(n){case 0:return i.Multiply([i.Multiply([u.args[1],i.Exponent([u.args[0],i.Subtract([u.args[1],o])])]),r]);default:return i.Multiply([i.Piecewise([i.Equal([u.args[0],s]),i.Piecewise([i.GreaterEqual([u.args[1],s]),s,a]),i.Multiply([i.SyntheticNativeFunction(\"ln\",[u.args[0]]),t])]),r])}case 37:return yG(i,t,WC[u.symbol][n],r);case 39:case 40:case 41:switch(n){case 0:return Mn(i,u,[r,u.args[1]]);default:return s}case 17:case 18:return Mn(i,u,[r]);default:{let c=u;throw new Error(`Unimplemented derivative for opcode ${c.type}`)}}}function dG(e,t){switch(e.getInstruction(t[0]).valueType){case Ie:return e.SyntheticNativeFunction(\"scaleTangentSegment\",t);case fe:return e.SyntheticNativeFunction(\"scaleTangentLine\",t);case Le:return e.SyntheticNativeFunction(\"scaleTangentRay\",t);case pe:return e.SyntheticNativeFunction(\"scaleTangentCircle\",t);case ce:return e.SyntheticNativeFunction(\"scaleTangentArc\",t);case Ge:return e.SyntheticNativeFunction(\"scaleTangentUndirectedAngleMarker\",t);case Ae:return e.SyntheticNativeFunction(\"scaleTangentDirectedAngleMarker\",t);default:return e.Multiply(t)}}function mG(e,t){switch(e.getInstruction(t[0]).valueType){case Ie:return e.SyntheticNativeFunction(\"addTangentSegment\",t);case Nt:return e.SyntheticNativeFunction(\"addTangentSegmentThreeD\",t);case fe:return e.SyntheticNativeFunction(\"addTangentLine\",t);case Le:return e.SyntheticNativeFunction(\"addTangentRay\",t);case pe:return e.SyntheticNativeFunction(\"addTangentCircle\",t);case ce:return e.SyntheticNativeFunction(\"addTangentArc\",t);case Ge:return e.SyntheticNativeFunction(\"addTangentUndirectedAngleMarker\",t);case Ae:return e.SyntheticNativeFunction(\"addTangentDirectedAngleMarker\",t);default:return e.Add(t)}}function yG(e,t,n,r){let i=Object.create(Ke),s=Bf({},{},-1),a=e.getInstruction(t).args;for(let u=0;u<a.length;u++){let c=gG[u];xr(s,c,a[u]),i[c]=Wt}return xr(s,\"x_1\",r),i.x_1=Wt,xr(s,\"q\",t),i.q=Wt,Ee(OE(zS,i,e,s,td.root,void 0,void 0),n)}var gG=[\"x\",\"y\",\"z\",\"u\"],ZC={exp:[\"q*x_1\"],ln:[\"\\\\{x >= 0: x_1/x \\\\}\"],log:[\"\\\\{x >= 0: x_1/(x*\\\\ln(10)) \\\\}\"],sqrt:[\"x_1/(2*q)\"],rtxsqpone:[\"x*x_1/q\"],rtxsqmone:[\"x*x_1/q\"],sin:[\"\\\\cos(x)*x_1\"],cos:[\"-\\\\sin(x)*x_1\"],tan:[\"(1+q^2)*x_1\"],arcsin:[\"x_1/\\\\sqrt{1 - x^2}\"],arccos:[\"-x_1/\\\\sqrt{1 - x^2}\"],sinh:[\"\\\\cosh(x)*x_1\"],cosh:[\"\\\\sinh(x)*x_1\"],tanh:[\"(\\\\sech(x))^2*x_1\"],arcsinh:[\"x_1/\\\\rtxsqpone(x)\"],arccosh:[\"\\\\{ x > 0: x_1/\\\\rtxsqmone(x) \\\\}\"],arctanh:[\"\\\\{ \\\\abs(x) < 1: x_1/(1 - x^2) \\\\}\"],csc:[\"-\\\\cot(x)*q*x_1\"],sec:[\"\\\\tan(x)*q*x_1\"],cot:[\"-(1+q^2)*x_1\"],arccsc:[\"-x_1/(\\\\abs(x)*\\\\rtxsqmone(x))\"],arcsec:[\"x_1/(\\\\abs(x)*\\\\rtxsqmone(x))\"],arccot:[\"-x_1/(1+x^2)\"],csch:[\"-\\\\coth(x)*q*x_1\"],sech:[\"-\\\\tanh(x)*q*x_1\"],coth:[\"-(\\\\csch(x))^2*x_1\"],arccsch:[\"-x_1/(\\\\abs(x)*\\\\rtxsqpone(x))\"],arcsech:[\"\\\\{ x >= 0: -x_1/(x*\\\\sqrt{1 - x^2}) \\\\}\"],arccoth:[\"\\\\{ \\\\abs(x) > 1 : x_1/(1 - x^2) \\\\}\"],factorial:[\"q*\\\\polyGamma(0, x + 1)*x_1\"],floor:[\"\\\\{ q=x: 0/0, 0*x_1 \\\\}\"],ceil:[\"\\\\{ q=x: 0/0, 0*x_1 \\\\}\"],round:[\"\\\\{ \\\\abs(\\\\mod(x, 1) - 0.5) > 0: 0*x_1 \\\\}\"],abs:[\"\\\\{ x=0: 0/0, \\\\sign(x)*x_1 \\\\}\"],sign:[\"\\\\{ x=0: 0/0, 0*x_1 \\\\}\"],distance:[\"-((y.x-x.x)*x_1.x+(y.y-x.y)*x_1.y)/q\",\"((y.x-x.x)*x_1.x+(y.y-x.y)*x_1.y)/q\"],distanceThreeD:[\"-((y.x-x.x)*x_1.x+(y.y-x.y)*x_1.y+(y.z-x.z)*x_1.z)/q\",\"((y.x-x.x)*x_1.x+(y.y-x.y)*x_1.y+(y.z-x.z)*x_1.z)/q\"],segmentThreeD:[\"\\\\segmentThreeD(x_1,(0,0,0))\",\"\\\\segmentThreeD((0,0,0),x_1)\"],vectorThreeD:[\"\\\\vectorThreeD(x_1,(0,0,0))\",\"\\\\vectorThreeD((0,0,0),x_1)\"],triangle:[\"\\\\triangle(x_1,(0,0,0),(0,0,0))\",\"\\\\triangle((0,0,0),x_1,(0,0,0))\",\"\\\\triangle((0,0,0),(0,0,0),x_1)\"],sphere:[\"\\\\sphere(x_1,0)\",\"\\\\sphere((0,0,0),x_1)\"],pointDet:[\"\\\\pointDet(x_1,y)\",\"\\\\pointDet(x,x_1)\"],pointDot:[\"\\\\pointDot(x_1,y)\",\"\\\\pointDot(x,x_1)\"],pointPerp:[\"\\\\pointPerp(x_1)\"],segment:[\"\\\\segment(x_1,(0,0))\",\"\\\\segment((0,0),x_1)\"],line:[\"\\\\line(x_1,(0,0))\",\"\\\\line((0,0),x_1)\"],ray:[\"\\\\ray(x_1,(0,0))\",\"\\\\ray((0,0),x_1)\"],vector:[\"\\\\vector(x_1, (0,0))\",\"\\\\vector((0,0), x_1)\"],mathVector:[\"\\\\mathVector(x_1,(0,0))\",\"\\\\mathVector((0,0),x_1)\"],mathVectorThreeD:[\"\\\\mathVectorThreeD(x_1,(0,0,0))\",\"\\\\mathVectorThreeD((0,0,0),x_1)\"],vectorDisplacementAsPoint:[\"\\\\vectorDisplacementAsPoint(x_1)\"],vectorThreeDDisplacementAsPoint:[\"\\\\vectorThreeDDisplacementAsPoint(x_1)\"],basePointFromVector:[\"\\\\basePointFromVector(x_1)\"],basePointFromVectorThreeD:[\"\\\\basePointFromVectorThreeD(x_1)\"],circle:[\"\\\\circle(x_1,0)\",\"\\\\circle((0,0),x_1)\"],arc:[\"\\\\arc(x_1,(0,0),(0,0))\",\"\\\\arc((0,0),x_1,(0,0))\",\"\\\\arc((0,0),(0,0),x_1)\"],arcCenter:[\"(0/0,0/0)\"],arcOmega:[\"0/0\"],center:[\"\\\\center(x_1)\"],radius:[\"\\\\radius(x_1)\"],undirectedAngleMarker:[\"\\\\undirectedAngleMarker(x_1)\"],directedAngleMarker:[\"\\\\directedAngleMarker(x_1,0,0,0)\",\"\\\\directedAngleMarker((0,0),x_1,0,0)\",\"\\\\directedAngleMarker((0,0),0,x_1,0)\",\"\\\\directedAngleMarker((0,0),0,0,x_1)\"],directedCoterminalAngle:[\"\\\\directedCoterminalAngle(x_1)\"],undirectedCoterminalAngle:[\"\\\\undirectedCoterminalAngle(x_1)\"],supplement:[\"\\\\supplement(x_1)\"],directedAngleMarkerMultiplier:[\"\\\\directedAngleMarkerMultiplier(x_1)\"],undirectedAngleMarkerMultiplier:[\"\\\\undirectedAngleMarkerMultiplier(x_1)\"],directedAngleMarkerRawDelta:[\"\\\\directedAngleMarkerRawDelta(x_1)\"],undirectedAngleMarkerRawDelta:[\"\\\\undirectedAngleMarkerRawDelta(x_1)\"],polygonInteriorUndirectedAngles:[\"\\\\polygonInteriorUndirectedAngles(x_1)\"],polygonInteriorDirectedAngles:[\"\\\\polygonInteriorDirectedAngles(x_1)\"],lineFromSegment:[\"x_1\"],lineFromRay:[\"x_1\"],segmentGlider:[\"\\\\segmentGlider(x_1,y)\",\"\\\\{0<y<1:(\\\\segmentGlider(x,1)-\\\\segmentGlider(x,0))*x_1,(0,0)\\\\}\"],segmentThreeDGlider:[\"\\\\segmentThreeDGlider(x_1,y)\",\"\\\\{0<y<1:(\\\\segmentThreeDGlider(x,1)-\\\\segmentThreeDGlider(x,0))*x_1,(0,0,0)\\\\}\"],rayGlider:[\"\\\\rayGlider(x_1,y)\",\"\\\\{0<y:(\\\\rayGlider(x,1)-\\\\rayGlider(x,0))*x_1,(0,0)\\\\}\"],lineGlider:[\"\\\\lineGlider(x_1,y)\",\"(\\\\lineGlider(x,1)-\\\\lineGlider(x,0))*x_1\"],circleGlider:[\"\\\\circleGlider(x_1,y)\",\"2*\\\\pi*\\\\pointPerp(q-\\\\center(x))*x_1\"],arcGlider:[\"(0/0,0/0)\",\"(0/0,0/0)\"],polygonGlider:[\"(0/0,0/0)\",\"(0/0,0/0)\"],chooseNonIncidentPoint:[\"(0/0,0/0)\"],circleCircleIntersection:[\"(\\\\radius(x)*\\\\radius(x_1)+\\\\pointDot(\\\\center(x_1),(q-\\\\center(x))))/\\\\pointDot(\\\\pointPerp(q-\\\\center(y)),q-\\\\center(x))*\\\\pointPerp(q-\\\\center(y))\",\"(\\\\radius(y)*\\\\radius(x_1)+\\\\pointDot(\\\\center(x_1),(q-\\\\center(y))))/\\\\pointDot(\\\\pointPerp(q-\\\\center(x)),q-\\\\center(y))*\\\\pointPerp(q-\\\\center(x))\"],circleArcIntersection:[\"(0/0,0/0)\"],circleLineIntersection:[\"(\\\\radius(x)*\\\\radius(x_1)+\\\\pointDot(\\\\center(x_1),(q-\\\\center(x))))/\\\\pointDot((\\\\lineGlider(y,1)-\\\\lineGlider(y,0)),q-\\\\center(x))*(\\\\lineGlider(y,1)-\\\\lineGlider(y,0))\",\"(\\\\pointDet(\\\\lineGlider(x_1,0),\\\\lineGlider(y,1))+\\\\pointDet(\\\\lineGlider(y,0),\\\\lineGlider(x_1,1))-\\\\pointDet(q,\\\\lineGlider(x_1,1)-\\\\lineGlider(x_1,0)))/(\\\\pointDet(\\\\pointPerp(q-\\\\center(x)),\\\\lineGlider(y,1)-\\\\lineGlider(y,0)))*(\\\\pointPerp(q-\\\\center(x)))\"],arcCircleIntersection:[\"(0/0,0/0)\"],arcArcIntersection:[\"(0/0,0/0)\"],arcLineIntersection:[\"(0/0,0/0)\"],lineCircleIntersection:[\"(\\\\pointDet(\\\\lineGlider(x_1,0),\\\\lineGlider(x,1))+\\\\pointDet(\\\\lineGlider(x,0),\\\\lineGlider(x_1,1))-\\\\pointDet(q,\\\\lineGlider(x_1,1)-\\\\lineGlider(x_1,0)))/(\\\\pointDet(\\\\pointPerp(q-\\\\center(y)),\\\\lineGlider(x,1)-\\\\lineGlider(x,0)))*(\\\\pointPerp(q-\\\\center(y)))\",\"(\\\\radius(y)*\\\\radius(x_1)+\\\\pointDot(\\\\center(x_1),(q-\\\\center(y))))/\\\\pointDot((\\\\lineGlider(x,1)-\\\\lineGlider(x,0)),q-\\\\center(y))*(\\\\lineGlider(x,1)-\\\\lineGlider(x,0))\"],lineArcIntersection:[\"(0/0,0/0)\"],lineLineIntersection:[\"(\\\\pointDet(\\\\lineGlider(x_1,0),\\\\lineGlider(x,1))+\\\\pointDet(\\\\lineGlider(x,0),\\\\lineGlider(x_1,1))-\\\\pointDet(q,\\\\lineGlider(x_1,1)-\\\\lineGlider(x_1,0)))/(\\\\pointDet(\\\\lineGlider(y,1)-\\\\lineGlider(y,0),\\\\lineGlider(x,1)-\\\\lineGlider(x,0)))*(\\\\lineGlider(y,1)-\\\\lineGlider(y,0))\",\"(\\\\pointDet(\\\\lineGlider(x_1,0),\\\\lineGlider(y,1))+\\\\pointDet(\\\\lineGlider(y,0),\\\\lineGlider(x_1,1))-\\\\pointDet(q,\\\\lineGlider(x_1,1)-\\\\lineGlider(x_1,0)))/(\\\\pointDet(\\\\lineGlider(x,1)-\\\\lineGlider(x,0),\\\\lineGlider(y,1)-\\\\lineGlider(y,0)))*(\\\\lineGlider(x,1)-\\\\lineGlider(x,0))\"],parallel:[\"\\\\parallel(x_1,(0,0))\",\"\\\\parallel(\\\\line((0,0),(0,0)),x_1)\"],perpendicular:[\"\\\\perpendicular(x_1,(0,0))\",\"\\\\perpendicular(\\\\line((0,0),(0,0)),x_1)\"],scaleTangentSegment:[\"\\\\scaleTangentSegment(x_1, y)\",\"\\\\scaleTangentSegment(x, x_1)\"],scaleTangentLine:[\"\\\\scaleTangentLine(x_1, y)\",\"\\\\scaleTangentLine(x, x_1)\"],scaleTangentRay:[\"\\\\scaleTangentRay(x_1, y)\",\"\\\\scaleTangentRay(x, x_1)\"],scaleTangentCircle:[\"\\\\scaleTangentCircle(x_1, y)\",\"\\\\scaleTangentCircle(x, x_1)\"],scaleTangentArc:[\"\\\\scaleTangentArc(x_1, y)\",\"\\\\scaleTangentArc(x, x_1)\"],scaleTangentDirectedAngleMarker:[\"\\\\scaleTangentDirectedAngleMarker(x_1, y)\",\"\\\\scaleTangentDirectedAngleMarker(x, x_1)\"],scaleTangentUndirectedAngleMarker:[\"\\\\scaleTangentUndirectedAngleMarker(x_1, y)\",\"\\\\scaleTangentUndirectedAngleMarker(x, x_1)\"],addTangentSegment:[\"\\\\addTangentSegment(x_1, y)\",\"\\\\addTangentSegment(x, x_1)\"],addTangentSegmentThreeD:[\"\\\\addTangentSegmentThreeD(x_1, y)\",\"\\\\addTangentSegmentThreeD(x, x_1)\"],addTangentLine:[\"\\\\addTangentLine(x_1, y)\",\"\\\\addTangentLine(x, x_1)\"],addTangentRay:[\"\\\\addTangentRay(x_1, y)\",\"\\\\addTangentRay(x, x_1)\"],addTangentCircle:[\"\\\\addTangentCircle(x_1, y)\",\"\\\\addTangentCircle(x, x_1)\"],addTangentArc:[\"\\\\addTangentArc(x_1, y)\",\"\\\\addTangentArc(x, x_1)\"],addTangentDirectedAngleMarker:[\"\\\\addTangentDirectedAngleMarker(x_1, y)\",\"\\\\addTangentDirectedAngleMarker(x, x_1)\"],addTangentUndirectedAngleMarker:[\"\\\\addTangentUndirectedAngleMarker(x_1, y)\",\"\\\\addTangentUndirectedAngleMarker(x, x_1)\"],translation:[\"\\\\translation(x_1)\"],dilation:[\"\\\\dilation(x_1, y)\",\"\\\\dilation(x, x_1)\"],reflection:[\"\\\\reflection(x_1)\"],rotation:[\"\\\\rotation((0/0,0/0),0/0)\"],compose:[\"\\\\reflection(\\\\line((0/0,0/0),(0/0,0/0)))\",\"\\\\reflection(\\\\line((0/0,0/0),(0/0,0/0)))\"],inverse:[\"\\\\reflection(\\\\line((0/0,0/0),(0/0,0/0)))\"],transformPoint:[\"(0/0,0/0)\",\"(0/0,0/0)\"],transformSegment:[\"\\\\segment((0/0,0/0),(0/0,0/0))\",\"\\\\segment((0/0,0/0),(0/0,0/0))\"],transformVector:[\"\\\\vector((0/0,0/0),(0/0,0/0))\",\"\\\\vector((0/0,0/0),(0/0,0/0))\"],transformLine:[\"\\\\line((0/0,0/0),(0/0,0/0))\",\"\\\\line((0/0,0/0),(0/0,0/0))\"],transformRay:[\"\\\\ray((0/0,0/0),(0/0,0/0))\",\"\\\\ray((0/0,0/0),(0/0,0/0))\"],transformCircle:[\"\\\\circle((0/0,0/0),0/0)\",\"\\\\circle((0/0,0/0),0/0)\"],transformArc:[\"\\\\arc((0/0,0/0),(0/0,0/0),(0/0,0/0))\",\"\\\\arc((0/0,0/0),(0/0,0/0),(0/0,0/0))\"],transformPolygon:[\"\\\\polygon([])\",\"\\\\polygon([])\"],transformAngleMarker:[\"\\\\undirectedAngleMarker(directedAngleMarker([0/0,0/0],0/0,0/0,0/0))\",\"\\\\undirectedangleMarker(directedAngleMarker([0/0,0/0],0/0,0/0,0/0))\"],transformDirectedAngleMarker:[\"\\\\directedAngleMarker([0/0,0/0],0/0,0/0,0/0)\",\"\\\\directedangleMarker([0/0,0/0],0/0,0/0,0/0)\"],mean:[\"\\\\mean(x_1)\"],total:[\"\\\\total(x_1)\"],count:[\"0\"],var:[\"2*\\\\cov(x, x_1)\"],varp:[\"2*\\\\cov(x, x_1)*(\\\\count(x)-1)/\\\\count(x)\"],stdev:[\"\\\\cov(x, x_1)/q\"],stdevp:[\"\\\\covp(x, x_1)/q\"],mad:[\"\\\\mean(\\\\sign(x-\\\\mean(x))*(x_1 - \\\\mean(x_1)))\"],min:[\"x_1[\\\\argmin(x)]\"],max:[\"x_1[\\\\argmax(x)]\"],median:[\"0.5*(x_1[\\\\lowerQuantileIndex(x, 0.5)] + x_1[\\\\upperQuantileIndex(x, 0.5)])\"],argmin:[\"0/0\"],argmax:[\"0/0\"],gcd:[\"0/0\"],lcm:[\"0/0\"],erf:[\"\\\\frac{2x_1}{\\\\sqrt{\\\\pi }}\\\\exp(-x^2)\"],invNorm:[\"\\\\frac{x_1}{\\\\pdf(\\\\normaldist(0,1),q)}\"],logbase:[\"\\\\{x > 0: \\\\frac{x_1}{x*\\\\ln(y)} \\\\}\",\"\\\\frac{-q*x_1}{y*\\\\ln(y)}\"],nthroot:[\"x^{1/y - 1}/y*x_1\",\"-\\\\frac{q*\\\\ln(x)*x_1}{y^2}\"],hypot:[\"x_1*x/q\",\"x_1*y/q\"],polyGamma:[\"0/0\",\"\\\\polyGamma(1 + x, y)*x_1\"],mod:[\"\\\\{ q=0: 0/0, x_1 \\\\}\",\"\\\\{ \\\\mod(x/y, 1) > 0: -\\\\floor(x/y)*x_1 \\\\}\"],cov:[\"\\\\cov(x_1, y)\",\"\\\\cov(x, x_1)\"],covp:[\"\\\\covp(x_1, y)\",\"\\\\covp(x, x_1)\"],corr:[\"(\\\\cov(x_1, y) - (\\\\cov(x, y)*\\\\cov(x, x_1)/\\\\var(x)))/(\\\\stdevp(x)\\\\stdevp(y))\",\"(\\\\cov(x, x_1) - (\\\\cov(x, y)*\\\\cov(y, x_1)/\\\\var(y)))/(\\\\stdevp(x)\\\\stdevp(y))\"],spearman:[\"0/0\",\"0/0\"],quantile:[\"\\\\{ \\\\floor(y*(\\\\count(x)-1)) = y*(\\\\count(x)-1) : x_1[\\\\upperQuantileIndex(x, y)], (\\\\ceil(y*(\\\\count(x)-1)) - y*(\\\\count(x)-1))*x_1[\\\\lowerQuantileIndex(x, y)] + (y*(\\\\count(x)-1) - \\\\floor(y*(\\\\count(x)-1)))*x_1[\\\\upperQuantileIndex(x, y)]\\\\}\",\"\\\\{ \\\\floor(y*(\\\\count(x)-1)) < y*(\\\\count(x)-1) : (\\\\count(x)-1)*(x[\\\\upperQuantileIndex(x, y)] - x[\\\\lowerQuantileIndex(x, y)])*x_1\\\\}\"],quartile:[\"0.5*(x_1[\\\\lowerQuartileIndex(x, y)] + x_1[\\\\upperQuartileIndex(x, y)])\",\"0/0\"],tscore:[\"\\\\frac{\\\\sqrt{\\\\count(x)}(\\\\stdev(x)*\\\\mean(x_1)-(\\\\mean(x)-y)*\\\\frac{\\\\cov(x,x_1)}{\\\\stdev(x)})}{\\\\stdev(x)^2}\",\"-x_1*\\\\sqrt{\\\\count(x)}/\\\\stdev(x)\"],quartileIndex:[\"0/0\",\"0/0\"],upperQuartileIndex:[\"0/0\",\"0/0\"],lowerQuartileIndex:[\"0/0\",\"0/0\"],upperQuantileIndex:[\"0/0\",\"0/0\"],lowerQuantileIndex:[\"0/0\",\"0/0\"],nCr:[\"q*(\\\\polyGamma(0, 1 + x) - \\\\polyGamma(0, 1 + x - y))\",\"q*(\\\\polyGamma(0, 1 + x - y) - \\\\polyGamma(0, 1 + y))\"],nPr:[\"q*(\\\\polyGamma(0, 1 + x) - \\\\polyGamma(0, 1 + x - y))\",\"q*\\\\polyGamma(0, 1 + x - y)\"],arctan:[\"x_1*y/(y^2+x^2)\",\"-x_1*x/(y^2+x^2)\"],poissonpdf:[\"0/0\",\"x_1\\\\frac{\\\\exp(-y)(\\\\floor(x)-y)y^{(\\\\floor(x)-1)}}{(\\\\floor(x))!}\"],invPoisson:[\"0/0\",\"0/0\"],tpdf:[\"x_1*q*\\\\frac{-(y+1)*x}{y+x^2}\",\"x_1*\\\\frac{1}{2}q*( \\\\frac{x^2-1}{y + x^2} + \\\\ln(\\\\frac{y}{y + x^2}) + \\\\polyGamma(0, \\\\frac{1+y}{2}) - \\\\polyGamma(0, y/2))\"],invT:[\"x_1/\\\\pdf(\\\\tdist(y),q)\",\"0/0\"],tcdf:[\"-x_1*\\\\pdf(\\\\tdist(z),x)\",\"x_1*\\\\pdf(\\\\tdist(z),y)\",\"0/0\"],poissoncdf:[\"0/0\",\"0/0\",\"x_1\\\\sum _{n=\\\\max(0,\\\\floor(\\\\min(x,y)))}^{\\\\floor(\\\\max(x,y))}\\\\frac{\\\\exp(-z)(n-z)z^{(n-1)}}{n!}\"],normalpdf:[\"-x_1*\\\\frac{x-y}{z^2} q\",\"x_1*\\\\frac{x-y}{z^2} q\",\"x_1*(\\\\frac{(x-y-z)*(x-y+z)}{z^3}) q\"],binompdf:[\"0/0\",\"0/0\",\"\\\\{0<=z<=1: x_1*q*(\\\\frac{\\\\round(x)}{z}-\\\\frac{\\\\round(y)-\\\\round(x)}{1-z}), 0 \\\\}\"],invBinom:[\"0/0\",\"0/0\",\"0/0\"],uniformpdf:[\"0\",\"\\\\{y<=x: \\\\frac{x_1}{(z-y)^2}, 0\\\\}\",\"\\\\{z>=x: -\\\\frac{x_1}{(z-y)^2}, 0\\\\}\"],invUniform:[\"\\\\{y<=x<=z: x_1*(z-y), 0\\\\}\",\"\\\\{y<=x<=z: x_1*(1-x), 0\\\\}\",\"\\\\{y<=x<=z: x_1*x, 0\\\\}\"],normalcdf:[\"-x_1\\\\pdf(\\\\normaldist(z,u), x)\",\"x_1\\\\pdf(\\\\normaldist(z,u), y)\",\"-x_1*(\\\\pdf(\\\\normaldist(z,u), y) - \\\\pdf(\\\\normaldist(z,u), x))\",\"x_1*( \\\\{\\\\abs(y)=1/0:0,\\\\frac{z-y}{u}\\\\pdf(\\\\normaldist(z,u),y)\\\\} - \\\\{\\\\abs(x)=1/0:0,\\\\frac{z-x}{u}\\\\pdf(\\\\normaldist(z,u),x)\\\\})\"],binomcdf:[\"0/0\",\"0/0\",\"0/0\",\"\\\\{0<=u<=1: x_1*\\\\sum _{n=\\\\max(0,\\\\round(\\\\min(x,y)))}^{\\\\round(\\\\max(x,y))}( \\\\pdf(\\\\binomialdist(z,u),n)*(\\\\frac{n}{u}-\\\\frac{\\\\round(z)-n}{1-u})), 0 \\\\}\"],uniformcdf:[\"\\\\{z>u: 0/0, -x_1\\\\pdf(\\\\uniformdist(z,u), x)\\\\}\",\"\\\\{z>u: 0/0, x_1\\\\pdf(\\\\uniformdist(z,u), y)\\\\}\",\"\\\\{z>u: 0/0, x_1*(\\\\frac{\\\\{z<x<u:u-x,0\\\\} + \\\\{z<y<u:y-u,0\\\\}}{(u-z)^2})\\\\}\",\"\\\\{z>u: 0/0, x_1*(\\\\frac{\\\\{z<x<u:x-z,0\\\\} + \\\\{z<y<u:z-y,0\\\\}}{(u-z)^2})\\\\}\"],normalSample:[\"0/0\",\"0/0\",\"0/0\"],uniformSample:[\"0/0\",\"0/0\",\"0/0\"],tSample:[\"0/0\",\"0/0\"],poissonSample:[\"0/0\",\"0/0\"],binomSample:[\"0/0\",\"0/0\",\"0/0\"],rgb:[\"0/0\",\"0/0\",\"0/0\"],hsv:[\"0/0\",\"0/0\",\"0/0\"],polygon:[\"\\\\polygon(x_1)\"],area:[\"0/0\"],perimeter:[\"0/0\"],vertices:[\"\\\\vertices(x_1)\"],segments:[\"\\\\segments(x_1)\"],validateRangeLength:[\"0\",\"0\",\"0\",\"\\\\{q \\\\ge 1: x_1, 0\\\\}\"],validateSampleCount:[\"\\\\{x<0:0,1\\\\}*x_1\"],select:[\"\\\\select(x_1, y)\",\"0*q\"],shuffle:[\"0*y\",\"\\\\shuffle(x, x_1)\"],sortPerm:[\"0*x\"],elementsAt:[\"\\\\elementsAt(x_1, y)\",\"0*q\"],uniquePerm:[\"0*q\"],tone:[\"\\\\tone(x_1,0)\",\"\\\\tone(0,x_1)\"],restriction:[\"0\"],restrictionToBoolean:[\"0\"]},WC={};for(let e in ZC){let t=e,n=ZC[t],r=[];for(let i=0;i<n.length;i++){let s=n[i];r.push(Vs(s,{}))}WC[t]=r}function jC(e,t){e.map.length=Math.min(e.map.length,t),e.maxValidReference=Math.min(e.maxValidReference,t-1)}function JC(e,t,n){let r=e.argNames.indexOf(t);if(r===-1){let o=e.getInstruction(n);return o.type===1?CE(o.valueType,o.value):Xn()}let i=Lr(e,r,{allowRestriction:!0,allowClosedBlockReferences:!1}),s=hG(i,n);return Zr(s,n)}function hG(e,t){let{chunk:n,mask:r}=e;return{chunk:n,mask:r,orderCtx:e,domainTable:[],index:t}}function Zr(e,t){let{domainTable:n}=e,r=n[t];if(r!==void 0)return r;let i=bG(e,t);return n[t]=i,i}function bG(e,t){let{chunk:n,mask:r,orderCtx:i}=e,s=n.getInstruction(t);switch(s.type){case 1:return CE(s.valueType,s.value);case 3:case 2:return s.valueType===T?Ao():Xn();case 0:return Xn();case 31:return Dp(Zr(e,s.args[0]),Zr(e,s.args[1]));case 32:case 8:case 9:case 10:return Dn(Zr(e,s.args[0]),Zr(e,s.args[1]));case 11:{let o=Dn(Zr(e,s.args[0]),Zr(e,s.args[1])),a=n.getInstruction(s.args[1]);return a.type===1&&a.valueType===T&&q(a.value)!==0?o:Dn(Xn(),o)}case 14:return Zr(e,s.args[0]);case 15:case 16:{let o=Ao();for(let a of s.args)o=Dn(o,Zr(e,a));return o}case 12:case 13:case 47:case 48:case 17:case 18:case 42:case 21:case 22:case 23:case 24:case 19:case 20:case 39:case 40:case 41:case 44:case 50:case 51:case 54:case 55:{let o=Xn();for(let a of s.args)o=Dn(o,Zr(e,a));return o}case 4:case 53:return Xn();case 49:return Xn();case 38:return s.args.length===1?Zr(e,s.args[0]):Xn();case 25:return Xn();case 33:return wM(Zr(e,s.args[0]),Zr(e,s.args[1]),Zr(e,s.args[2]));case 26:case 27:case 28:case 29:{if(!r[t])return Ao();let o=Dn(Zr(e,s.args[0]),Zr(e,s.args[1]));if(en(i,t)>1)return Dn(Xn(),o);let a=e.coefficientCtx;a===void 0&&(a=ws(i,e.index),e.coefficientCtx=a);let u=a.newChunk,c=Hn(a,t),[l,p]=c;if(!bt(u.getInstruction(l)))return Dn(Xn(),o);let f=ln(u,l);if(isNaN(f))return aa();if(p===void 0)return s.type===28||s.type===29?f>=0?o:aa():f>0?o:aa();{let m=ln(u,p);return Dn(o,Xc(f,m))}}case 37:switch(s.symbol){case\"restriction\":case\"restrictionToBoolean\":return Zr(e,s.args[0]);case\"count\":return Ao();default:{if(bn[s.symbol].noPeel)return Xn();let o=Xn();for(let a of s.args)o=Dn(o,Zr(e,a));return o}}}}function CE(e,t){if(W(e))return t.length===1?CE(ke(e),t[0]):Xn();switch(e){case T:case R:case V:return $y(e,t)?aa():Ao();case ge:return t?Ao():aa();default:return Xn()}}function KC(e){let t=[],n=[];for(let r=0;r<e.argNames.length;r++){let i=[],s=[];for(let o=0;o<e.argNames.length;o++)i.push(e.argTypes[o]===T),s.push(r===o);n.push(s),t.push(i)}for(let r=e.argNames.length;r<=e.getReturnIndex();r++)n.push(xG(e,n,r)),t.push(PG(e,n,t,r));return t[e.getReturnIndex()]}function xG(e,t,n){let r=e.getInstruction(n),i=TG(e.argNames.length);if(be(r))return i;for(let s of r.args){let o=t[s];for(let a=0;a<o.length;a++)i[a]=i[a]||o[a]}return i}function PG(e,t,n,r){let i=e.getInstruction(r);if(be(i))return QC(e.argNames.length);switch(i.type){case 8:case 9:case 14:case 16:case 18:case 38:{let a=QC(e.argNames.length);for(let u=0;u<i.args.length;u++){let c=n[i.args[u]];for(let l=0;l<c.length;l++)a[l]=a[l]&&c[l]}return a}case 11:{let a=[],u=n[i.args[0]],c=t[i.args[1]];for(let l=0;l<u.length;l++)a.push(u[l]&&!c[l]);return a}case 10:{let a=n[i.args[0]].slice(),u=n[i.args[1]].slice(),c=t[i.args[0]],l=t[i.args[1]],p=0,f=0;for(let m=0;m<a.length;m++){let g=a[m]&&!l[m],d=u[m]&&!c[m];a[m]=g,u[m]=d,g&&(p+=1),d&&(f+=1)}return p>=f?a:u}case 33:{let a=t[i.args[0]],u=n[i.args[1]],c=n[i.args[2]];for(var s=[],r=0;r<a.length;r++)s.push(!a[r]&&u[r]&&c[r]);return s}case 39:case 40:case 41:{let a=n[i.args[0]],u=t[i.args[1]],c=[];for(var r=0;r<u.length;r++)c.push(a[r]&&!u[r]);return c}case 48:{let a=i.args[0],u=e.getInstruction(a),c=r-a;return n[u.args[c]]}case 15:case 17:case 12:case 13:case 26:case 28:case 27:case 29:case 25:case 32:case 31:case 37:case 42:case 21:case 22:case 19:case 20:case 23:case 24:case 47:case 44:case 49:case 50:case 51:case 53:case 54:case 55:{let a=t[r],u=[];for(let c of a)u.push(!c);return u}default:let o=i;throw new Error(`Unexpected opcode ${o.type}`)}}function TG(e){let t=[];for(let n=0;n<e;n++)t.push(!1);return t}function QC(e){let t=[];for(let n=0;n<e;n++)t.push(!0);return t}function tR(e){let t=e.getReturnIndex(),n=Yr(e,t),r=e.getInstruction(t);if(r.type!==48)return e;let i=r.args[0],s=t-i,o=e.getInstruction(i),a=o.args[0],u=o.args[s],c=[],l=[];c.push(a);let p=yo(e,e.getReturnIndex(),\"Programming error: cannot optimize regression on non-constant-length list\");l.push({min:1,max:p,length:p});let f=!1,m=!1;for(let E=a+1;E<=u;E++){if(!n[E])continue;let v=e.getInstruction(E);if(v.type===39||v.type===41||v.type===40){if(v.args[1]!==a)continue;let O=v.args[0];if(e.getInstruction(O).valueType!==se||!bt(e.getInstruction(O)))continue;let A=ln(e,O),N=MG(A);if(!isFinite(N.min)||!isFinite(N.max))continue;c.push(E),l.push(N)}else eR(v)?f=!0:(v.type===12||v.type===13)&&(m=!0)}if(c.length===0||!m&&!f)return e;let g=[],d=[];for(let E=0;E<e.argNames.length;E++)d.push(E),g.push(Ao());let y=[],h=[];for(let E=0;E<=u;E++)y.push(RE(e,d,y,E)),h.push(RE(e,c,h,E));for(let E=0;E<=u;E++){if(!n[E])continue;let v=e.getInstruction(E);if(v.type===33){let O=y[E];for(let A=0;A<O.length;A++)if(O[A])return e}else if(v.type===12||v.type===13){let O=!1,A=!1;for(let Z=0;Z<c.length;Z++)h[v.args[0]][Z]&&(O=!0),h[v.args[1]][Z]&&(A=!0);if(O||!A)continue;let N=y[v.args[0]],L=0,z;for(let Z=0;Z<N.length;Z++)N[Z]&&(z=Z,L+=1);if(L!==1||z===void 0)continue;let G=d[z],$=Lr(e.copy().reopenFinalBlock(),G,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en($,v.args[0])!==1)continue;let w=ws($,v.args[0]),[Y,de]=Hn(w,v.args[0]);if(de===void 0)continue;let re=ln(w.newChunk,de),ie=ln(w.newChunk,Y);g[z]=Dn(g[z],Xc(ie,re))}}if(f){let E=e.copy().reopenFinalBlock();for(let v=0;v<c.length;v++){let O=Lr(E,c[v],{allowRestriction:!1,allowClosedBlockReferences:!1}),A=ws(O,u);for(let N=a+1;N<=u;N++){if(!n[N])continue;let L=E.getInstruction(N);if(eR(L)){let z=L.args[0];if(en(O,z)!==1)continue;let G=Hn(A,z)[1];if(G===void 0)continue;let $=EG(A.newChunk,G),w,Y=0;for(let ve=0;ve<$.length;ve++)$[ve]&&(w=ve,Y+=1);if(Y!==1||w===void 0)continue;let de=Lr(A.newChunk,w,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en(de,G)!==1)continue;let re=ws(de,G),[ie,Z]=Hn(re,G);if(Z===void 0||!bt(re.newChunk.getInstruction(ie))||!bt(re.newChunk.getInstruction(Z)))continue;let Re=ln(re.newChunk,ie),Ne=ln(re.newChunk,Z),Te=(l[v].max-l[v].min)/Math.min(l[v].length-1,31),Me=Math.PI/Te;if(!isFinite(Me)||Me<=0)continue;g[w]=Dn(g[w],Xc(Re,Ne)),g[w]=Dn(g[w],Xc(Me-Re,-Ne))}}}}let b=!1;for(let E of g){if(gi(E)||!Yi(E))return e;(E.bounds[0]!==-1/0||E.bounds[1]!==1/0)&&(b=!0)}if(!b)return e;let x=e.copy(),P=x.Constant(1),M=x.Constant(NaN),I=t;for(let E=0;E<x.argNames.length;E++)I=IG(x,g[E],I,E,P,M);return x.fuseBroadcast(),x}function IG(e,t,n,r,i,s){if(gi(t)||!Yi(t)||t.bounds[0]===-1/0&&t.bounds[1]===1/0)return n;let o=e.And([e.LessEqual([e.Constant(t.bounds[0]),r]),e.LessEqual([r,e.Constant(t.bounds[1])])]);return e.Multiply([n,e.Piecewise([o,i,s])])}function EG(e,t){let n=[];for(let i=0;i<e.argNames.length;i++)n.push(i);let r=[];for(let i=0;i<=t;i++)r.push(RE(e,n,r,i));return r[t]}function eR(e){return e.type===37&&(e.symbol===\"sin\"||e.symbol===\"cos\")}function MG(e){var t=1/0,n=-1/0,r=e.length;for(let i of e)t=Math.min(t,i),n=Math.max(n,i);return{min:t,max:n,length:r}}function RE(e,t,n,r){let i=e.getInstruction(r),s=vG(t.length);for(let o=0;o<t.length;o++)if(t[o]===r)return s[o]=!0,s;if(be(i))return s;for(let o of i.args){let a=n[o];for(let u=0;u<a.length;u++)s[u]=s[u]||a[u]}return s}function vG(e){let t=[];for(let n=0;n<e;n++)t.push(!1);return t}function nR(e){let t=e.getReturnIndex(),n=e.getInstruction(t);if(be(n))return t;let r=ZI(e,n),i=r.expectedTypes,s=NE(e,n.args,[i]);if(r.isReducerWithNoListArgs){let o=DG(e,s.didCoerce?s.args:n.args),a=ar(r.expectedTypes.rest);if(ro(o,a)){s.didCoerce?e.replaceInstructionWithNoop(t):e.popInstruction();let u=e.List(n.args);return e.copyInstructionWithArgs(n,[u])}}else s.didCoerce&&(e.replaceInstructionWithNoop(t),e.copyInstructionWithArgs(n,s.args));return e.getReturnIndex()}function NE(e,t,n){let r=!1,i=[];for(let s=0;s<t.length;s++){let o=Np(n,s),a=t[s],u=e.getInstruction(a).valueType,c=a;o.every(l=>!ro(u,l))&&oe(o[0],T)&&(c=Ac(e,a)),c!==a&&(r=!0),i.push(c)}return r?{didCoerce:r,args:i}:{didCoerce:!1}}function Ac(e,t){let n=e.getInstruction(t);return n.valueType===We?t:oe(n.valueType,Ge)?iR(e,t):oe(n.valueType,Ae)?rR(e,t):oe(n.valueType,Vt)?e.Piecewise([e.SyntheticNativeFunction(\"restrictionToBoolean\",[t]),e.Constant(1),e.Constant(NaN)]):t}function DG(e,t){let n=e.getInstruction(t[0]).valueType;if(!ei(n))return sn;for(let r of t)if(e.getInstruction(r).valueType!==n)return sn;return ar(n)}function Bs(e){var t=e;if(t&&typeof t.toJSON==\"function\"&&(t=t.toJSON()),!t||typeof t!=\"object\")return t;if(Array.isArray(t))return t.map(Bs);var n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=Bs(t[r]));return n}function sR(e,t){let n=[],r=[],i=[];for(let o=0;o<e.argNames.length;o++)t.hasOwnProperty(e.argNames[o])||(n.push(e.argNames[o]),r.push(e.argTypes[o]));let s=new jo({argNames:n,argTypes:r});for(let o=0,a=0;o<e.argNames.length;o++)t.hasOwnProperty(e.argNames[o])?i[o]=s.ConstantOfType(e.argTypes[o],t[e.argNames[o]]):(i[o]=a,a+=1);for(let o=e.argNames.length;o<e.instructionsLength();o++){let a=e.getInstruction(o);if(be(a))i.push(Ls(s,a));else{let u=[];for(let c of a.args)u.push(i[c]);i.push(Mn(s,a,u))}}return s}function Pu(e,t){if(t.type!==33)return!1;let n=e.getInstruction(t.args[2]);return n.type===1&&uo(n.valueType)&&_v(n.valueType,n.value)||Pu(e,n)&&oR(e,t.args[1])&&oR(e,n.args[1])}function AE(e,t){let n=[];for(;t.type===33;)n.push(t.args[0]),t=e.getInstruction(t.args[2]);return n}function*Ig(e,t){let n=e.getInstruction(t);n.type!==32?yield t:(yield*Ig(e,n.args[0]),yield*Ig(e,n.args[1]))}function aR(e,t){return e.getInstruction(t).type===25}function uR(e,t){let n=e.getInstruction(t);if(n.type!==25)return;let r=n.args[0],i=n.args[1],s=e.getInstruction(r),o=e.getInstruction(i),a=(o.type===41||o.type===40)&&bt(e.getInstruction(o.args[0]));return s.type===2&&(bt(o)||a)&&oe(o.valueType,T)?{type:\"constant\",variable:e.argNames[r],index:i}:oe(s.valueType,T)&&oe(o.valueType,T)?{type:\"implicit\",index:e.Subtract([r,i])}:void 0}function oR(e,t){let n=e.getInstruction(t);return n.type===1&&n.valueType===T&&q(n.value)===1}var LE=class{constructor(t,n,r,i){this.openChunk=t;this.returnIndex=n;this.restrictionIndex=r;this.slices=i}getSliceVariablesOrImplicit(){return this.slices.map(t=>t.type===\"constant\"?t.variable:\"_implicit\")}getPeeledSlices(){let t=[];for(let n of this.slices)if(n.type===\"constant\"){let r=this.openChunk.getInstruction(n.index);if(bt(r)&&r.valueType===T)t.push({type:\"constant\",variable:n.variable,value:q(r.value)});else if(!(bt(r)&&r.valueType===se))throw Bo()}else if(this.openChunk.getInstruction(n.index).valueType===T){let i=this.openChunk.copy();i.setReturnIndex(n.index),i.fuseBroadcast(),t.push({type:\"implicit\",sliceChunk:i})}else throw Bo();return t}getValueAndRestrictionChunk(){let t=this.getPeeledSlices(),n=this.openChunk.copy();n.setReturnIndex(this.returnIndex),n.fuseBroadcast();let r;return this.restrictionIndex!==void 0&&(r=this.openChunk.copy(),r.setReturnIndex(this.restrictionIndex),r.fuseBroadcast()),{valueChunk:n,restrictionChunk:r,slices:t}}getSlicesAndRestrictionChunk(){let t=this.getPeeledSlices(),n=this.openChunk.copy(),r=n.GreaterEqual([this.returnIndex,n.Constant(0)]);return this.restrictionIndex!==void 0&&(r=n.And([r,this.restrictionIndex])),n.setReturnIndex(r),n.fuseBroadcast(),{restrictionChunk:n,slices:t}}},Eg=class{constructor(t,n,r){this.chunk=t;this.slices=[];this.oldIPtoNewIP=[];this.oldIPToRestriction=[];var i,s;this.produceNumbers=(i=r==null?void 0:r.produceNumbers)!=null?i:!1,this.allowSlices=(s=r==null?void 0:r.allowSlices)!=null?s:!1,this.newChunk=new jo({argNames:t.argNames,argTypes:t.argTypes}),this.startTrue=this.produceNumbers?this.newChunk.Constant(1/0):this.newChunk.ConstantOfType(ge,!0),this.peelable=CG(t),NG(t,this.peelable,n)}selectRestriction(){return!0}},wE=class extends Eg{constructor(n,r,i){super(n,r,i);this.currSelectIndex=0;this.selectIndex=i.selectIndex}selectRestriction(){let n=this.selectIndex===this.currSelectIndex;return this.currSelectIndex++,this.produceNumbers?n:!n}};function Ra(e,t,n){let r=new Eg(e,t,n);FE(r,0,e.instructionsLength()-1);let i=r.oldIPToRestriction[e.getReturnIndex()];return new LE(r.newChunk,r.oldIPtoNewIP[e.getReturnIndex()],r.startTrue===i?void 0:i,r.slices)}function*cR(e,t,n){var i,s;let r=_E(e,n,{produceNumbers:!1,selectIndex:0});if(r===void 0||r.count<=1){yield{value:t,restriction:void 0};return}for(let o=0;o<r.count;o++){let a=(i=_E(e,n,{produceNumbers:!0,selectIndex:o}))==null?void 0:i.chunk,u=o===0?r.chunk:(s=_E(e,n,{produceNumbers:!1,selectIndex:o}))==null?void 0:s.chunk;if(!a||!u)throw new Error(\"Programming Error: selectIndex gave invalid chunk.\");yield{value:a,restriction:u}}}function _E(e,t,n){let r=new wE(e,t,n);FE(r,0,e.instructionsLength()-1);let i=r.oldIPToRestriction[e.getReturnIndex()];if(r.currSelectIndex===0)return;let s=r.oldIPtoNewIP[e.getReturnIndex()],o=r.newChunk.getInstruction(s);if(o.type!==29)throw new Error(\"Programming Error: Expected GreaterEqual.\");let a=r.produceNumbers?r.newChunk.Subtract([o.args[0],o.args[1]]):s;return r.selectRestriction()&&(i=Mg(r,[i,a])),r.newChunk.setReturnIndex(i),{chunk:r.newChunk,count:r.currSelectIndex}}function FE(e,t,n){let{chunk:r,newChunk:i,peelable:s,oldIPtoNewIP:o,oldIPToRestriction:a}=e;for(let u=t;u<=n;u++){let c=r.getInstruction(u);if(s[u]&&(c.type===19||c.type===23))u=OG(e,u);else if(c.type===2)o[u]=u,a[u]=e.startTrue;else if(be(c))o[u]=i.copyInstruction(c),a[u]=e.startTrue;else if(s[u]&&Pu(r,c)){o[u]=o[c.args[1]];let l=c.args.map(p=>a[p]);for(let p of AG(e,c))e.selectRestriction()&&l.push(p);a[u]=Mg(e,l)}else o[u]=i.copyInstructionWithArgs(c,c.args.map(l=>o[l])),a[u]=Mg(e,c.args.map(l=>a[l]))}}function Mg(e,t){let r=[...new Set(t)].filter(i=>!lR(e,i));return r.length?vg(e,r).reduce((i,s)=>e.produceNumbers?e.newChunk.SyntheticNativeFunction(\"min\",[i,s]):e.newChunk.And([i,s])):e.startTrue}function SG(e,t){let n=[...new Set(t)];return n.some(r=>!lR(e,r))?vg(e,n).reduce((r,i)=>e.produceNumbers?e.newChunk.SyntheticNativeFunction(\"max\",[r,i]):e.newChunk.Or([r,i])):e.startTrue}function vg(e,t){if(!e.produceNumbers)return t;let n=e.newChunk;return t.map(r=>{let i=n.getInstruction(r);if(i.valueType!==ge)return r;switch(i.type){case 27:case 29:return n.Subtract([i.args[0],i.args[1]]);case 26:case 28:return n.Subtract([i.args[1],i.args[0]]);case 25:throw J(\"convertBoolsToNums on an equality.\");case 32:return n.SyntheticNativeFunction(\"min\",vg(e,i.args));case 31:return n.SyntheticNativeFunction(\"max\",vg(e,i.args));case 1:return n.Constant(i.value?1/0:-1/0);default:throw J(\"convertBoolsToNums on a non-opcode condition.\")}})}function lR({newChunk:e},t){let n=e.getInstruction(t);return n.type===1&&(n.valueType===T&&n.value===1/0||n.valueType===ge&&n.value)}function OG(e,t){let{chunk:n,newChunk:r,oldIPtoNewIP:i,oldIPToRestriction:s,startTrue:o}=e,a=n.getInstruction(t),u=a.endIndex,c=n.getInstruction(u),l,p;if(a.type===23)i[t]=r.copyInstructionWithArgs(a,[i[a.args[0]]]),s[t]=o,p=t+1;else{let d=a.args.map(y=>i[y]);d.push(o),i[t]=r.copyInstructionWithArgs(a,d),s[t]=o;for(let y=2;y<a.args.length;y++){let h=t+y-1;i[h]=r.copyInstructionWithArgs(n.getInstruction(h),[i[t]]),s[h]=o}l=r.BlockVar(e.produceNumbers?T:ge,[i[t]]),p=t+a.args.length-1}FE(e,p,u-1);let f=c.args.map(d=>i[d]),m=e.slices.filter(d=>p<=d.index&&d.index<u),g=l;if(a.type===19){if(l===void 0)throw new Error(\"Expected restrictionAccumVar to be defined\");g=Mg(e,[l,s[c.args[1]]]),f.push(g)}else{f.push(s[c.args[1]]);for(let d of m)f.push(d.index)}i[u]=r.copyInstructionWithArgs(c,f),s[u]=o;for(let d=1;d<c.args.length;d++)i[u+d]=r.copyInstructionWithArgs(n.getInstruction(u+d),[i[u]]);if(a.type===23){let d=r.BroadcastResult(e.produceNumbers?se:Ln,[i[u]]);for(let y of m)y.index=r.BroadcastResult(se,[i[u]]);for(let y=1;y<c.args.length;y++)s[u+y]=d}else{let d=r.BlockVar(e.produceNumbers?T:ge,[i[u]]);l===g&&(d=o);for(let y=1;y<c.args.length;y++)s[u+y]=d}return u+c.args.length-1}function CG(e){let t=[];for(let r=0;r<e.instructionsLength();r++)t.push(!1);t[e.getReturnIndex()]=!0;let n=e.instructionsLength()-1;for(let r=n;r>=0;r--){if(!t[r])continue;let i=e.getInstruction(r);if(!be(i))for(let s of RG(e,i))t[s]=!0}return t}function RG(e,t){switch(t.type){case 14:case 8:case 9:case 26:case 28:case 27:case 29:case 10:case 11:case 12:case 13:case 25:case 32:case 15:case 16:case 38:case 47:case 19:case 39:case 40:case 41:case 23:case 24:case 48:case 50:return t.args;case 33:return Pu(e,t)?AE(e,t).concat([t.args[1]]):[];case 37:{let r=bn[t.symbol];return r.noPeel?[]:r.tag===\"reducer\"||r.tag===\"doubleReducer\"||r.tag===\"never-broadcast\"||r.tag===\"parameterizedReducer\"?t.args.filter(i=>e.getInstruction(i).type!==48):t.args}case 20:return t.args.slice(1);case 51:return[];case 31:return[];case 17:case 18:case 42:case 21:case 22:case 44:case 49:case 53:case 54:case 55:return[];default:let n=t;throw new Error(`Unexpected opcode ${n.type}`)}}function NG(e,t,n){let r=[];for(let i=0;i<e.argNames.length;i++){let s=e.argNames[i];n.indexOf(s)<0&&r.push(i)}for(let i of r){let s=eu(e,i);for(let o=0;o<e.instructionsLength();o++)t[i]&&(t[i]=!s[o])}}function AG(e,t){let n=AE(e.chunk,t).map(r=>e.oldIPtoNewIP[r]);if(e.allowSlices&&n.length===1){let r=uR(e.newChunk,n[0]);if(r)return e.slices.push(r),[]}if(n.some(r=>aR(e.newChunk,r)))throw Bo();if(n.length===1){let r=n[0];return[...Ig(e.newChunk,r)]}return[SG(e,n)]}var jo=class e{constructor(t){this.derivativeMaps={};if(this.instructions=[],this.blockMask=[],this.comments=[],t.argNames.length!==t.argTypes.length)throw new Error(\"Programming Error: length of argNames must match length of argTypes\");this.argNames=t.argNames,this.argTypes=t.argTypes;for(let n=0;n<this.argTypes.length;n++){let r=this.argTypes[n];this.LoadArg(r)}this.returnIndex=this.Constant(NaN)}computeNeedsThunking(){for(let t=this.returnIndex;t>=0;t--)if(this.instructions[t].type===55)return!0;return!1}setError(t){this.error=t}getError(){return this.error}getReturnIndex(){return this.returnIndex}setReturnIndex(t){if(!(0<=t&&t<this.instructions.length))throw new Error(`Programming Error: out of bounds return index ${t}`);this.returnIndex=t}addComments(t){for(let n in t){let r=this.comments[n]||\"\";this.comments[n]=r+t[n]}return this}instructionsLength(){return this.instructions.length}getInstruction(t){return this.instructions[t]}popInstruction(){this.truncate(this.instructions.length-1)}truncate(t){this.instructions.length=Math.min(t,this.instructions.length),this.blockMask.length=Math.min(t,this.blockMask.length),this.comments.length=Math.min(t,this.comments.length);for(let n in this.derivativeMaps)+n>=t?delete this.derivativeMaps[n]:jC(this.derivativeMaps[n],t);this.setReturnIndex(this.instructions.length-1)}dereferenceFunctionHeader(t){let n=this.getInstruction(t);return n.endIndex===-1?void 0:n.endIndex}getDirectDependencies(t){if(t.type===55){let n=t.args,r=this.dereferenceFunctionHeader(n[0]);if(r!==void 0)return n.concat(r)}return t.args}getRecursionStructure(t){let n=this.getInstruction(t);if(n.endIndex===-1)throw J(\"Programming error: cannot get recursion structure before function is closed\");if(!n.__cachedRecursionStructure){let r={};for(let i of n.recursionGroup){let s=this.getInstruction(i);r[s.symbol]=i}n.__cachedRecursionStructure=eD(this,r)}return n.__cachedRecursionStructure}getRecursiveFunctionMetadata(t){let n=this.getRecursionStructure(t),r=this.getInstruction(t);return{type:n.canIterate?\"iterative\":\"general\",recursionGroup:r.recursionGroup.map(i=>this.getInstruction(i).symbol),returnType:r.valueType,signature:r.signature,recursiveStructure:n}}pushInstructionChecked(t){if(this.instructions.length>=32768)throw sx();this.instructions.push(t),this.setReturnIndex(this.instructions.length-1)}pushLeafInstruction(t){return this.pushInstructionChecked(t),this.getReturnIndex()}pushInstruction(t){return this.checkInstructionArguments(t),this.pushInstructionChecked(t),this.setReturnIndex(FS(this)),this.setReturnIndex(kS(this)),this.setReturnIndex(nR(this)),vS(this,this.getReturnIndex()),this.returnIndex===this.instructions.length-1&&this.setReturnIndex(TS(this)),this.getReturnIndex()}checkInstructionArguments(t){for(let n of t.args)if(this.blockMask[n])throw new Error(\"Programming Error: cannot reference an instruction in a closed block\")}markClosedBlock(t,n){for(let r=t;r<n;r++)this.blockMask[r]=!0}LoadArg(t){return this.pushLeafInstruction({type:2,valueType:t})}BlockVar(t,n){return this.pushInstruction({type:47,valueType:t,args:n})}SymbolicVar(t,n){return this.pushLeafInstruction({type:3,valueType:t,symbol:n})}BroadcastResult(t,n){let r=n[0],s=this.instructions[r].args[0],a=this.getInstruction(s).args[0],u=this.getInstruction(a);return this.pushInstruction({type:48,valueType:t,args:n,constantLength:bt(u)?ln(this,a):void 0})}Constant(t){return this.ConstantOfType(T,t)}ConstantOfType(t,n){if(typeof n==\"number\"&&(n=De(n,1)),W(t)&&n.length>1e4)throw Qp();return this.pushLeafInstruction({type:1,valueType:t,value:n})}NanOfType(t){if(t===St){let n=this.Constant(NaN);return this.Distribution(\"uniformdist\",[n,n])}else return this.ConstantOfType(t,$r(t))}Add(t){let n=8,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Subtract(t){let n=9,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Multiply(t){let n=10,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Divide(t){let n=11,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Exponent(t){let n=12,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}RawExponent(t){let n=13,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Negative(t){let n=14,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Equal(t){let n=25,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Less(t){let n=26,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Greater(t){let n=27,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}LessEqual(t){let n=28,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}GreaterEqual(t){let n=29,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Comparator(t,n){switch(t){case\"=\":return this.Equal(n);case\">\":return this.Greater(n);case\"<\":return this.Less(n);case\"<=\":return this.LessEqual(n);case\">=\":return this.GreaterEqual(n);default:{let r=t;throw new Error(`Unexpected comparator symbol: ${r}`)}}}Or(t){let n=31,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}And(t){let n=32,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}Piecewise(t){let n=33,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}OrderedPair(t){let n=15,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}OrderedPairAccess(t,n){let r=17,i=fn(this,r,n);return this.pushInstruction({type:r,valueType:i,index:t,args:n})}OrderedTriple(t){let n=16,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}OrderedTripleAccess(t,n){let r=18,i=fn(this,r,n);return this.pushInstruction({type:r,valueType:i,index:t,args:n})}List(t){let n=38,r=fn(this,n,t);if(t.length>1e4)throw Qp();return this.pushInstruction({type:n,valueType:r,args:t})}ListAccess(t){let n=39,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}DeferredListAccess(t){let n=40,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}InboundsListAccess(t){let n=41,r=fn(this,n,t);return this.pushInstruction({type:n,valueType:r,args:t})}NativeFunction(t,n,r){let i=37,s=bn[t].returnType,o=typeof s==\"function\"?s(r.map(a=>this.getInstruction(a).valueType)):s;return this.pushInstruction({type:i,valueType:o,args:r,symbol:t,callData:n})}SyntheticNativeFunction(t,n){let r=37,i=bn[t].returnType,s=typeof i==\"function\"?i(n.map(a=>this.getInstruction(a).valueType)):i,o={errorSymbol:t,providedArity:n.length,isDotCall:!1};return this.pushInstruction({type:r,valueType:s,args:n,symbol:t,callData:o})}Distribution(t,n){let r=42,i=St;return this.pushInstruction({type:r,valueType:i,args:n,symbol:t})}BeginIntegral(t,n){let r=21,i=fn(this,r,[]);return this.pushInstruction({type:r,valueType:i,args:n,endIndex:-1,callData:t})}EndIntegral(t){let n=22,r=fn(this,n,t),i=t[0],s=this.getInstruction(i);this.instructions[i]={type:s.type,valueType:s.valueType,args:s.args,endIndex:this.instructionsLength(),callData:s.callData};let o=this.pushInstruction({type:n,valueType:r,args:t});return this.markClosedBlock(i,o),o}BeginBroadcast(t,n){let r=23,i=fn(this,r,[]),s=this.getInstruction(t[0]);if(bt(s)&&ln(this,t[0])>1e4)throw Qp();return this.pushInstruction({type:r,valueType:i,endIndex:-1,args:t,listComprehensionCallData:n})}EndBroadcast(t){let n=24,r=fn(this,n,t),i=t[0],s=this.getInstruction(i),o={type:s.type,valueType:s.valueType,args:s.args,endIndex:this.instructionsLength()};this.instructions[i]=o;let a=this.pushInstruction({type:n,valueType:r,args:t});return this.markClosedBlock(i,a),a}BeginLoop(t,n){let r=19,i=fn(this,r,n);return this.pushInstruction({type:r,valueType:i,args:n,endIndex:-1,callData:t})}EndLoop(t){let n=20,r=fn(this,n,t),i=t[0],s=this.getInstruction(i);this.instructions[i]={type:s.type,valueType:s.valueType,args:s.args,endIndex:this.instructionsLength(),callData:s.callData};let o=this.pushInstruction({type:n,valueType:r,args:t});return this.markClosedBlock(i,o),o}BeginMap(t,n){let r=50,i=fn(this,r,n);return this.pushInstruction({type:r,valueType:i,args:n,endIndex:-1,callData:t})}EndMap(t){let n=51,r=fn(this,n,t),i=t[0],s=this.getInstruction(i);this.instructions[i]={type:s.type,valueType:s.valueType,args:s.args,endIndex:this.instructionsLength(),callData:s.callData};let o=this.pushInstruction({type:n,valueType:r,args:t});return this.markClosedBlock(i,o),o}FunctionHeader(t,n,r,i){let s=4;return this.pushLeafInstruction({type:s,valueType:n,endIndex:-1,symbol:t,signature:r,parameterSymbols:i,recursionGroup:[]})}BeginFunction(t){let n=53,r=this.getInstruction(t[0]);return this.pushInstruction({type:n,valueType:r.valueType,endIndex:-1,args:t})}EndFunction(t){let n=54,r=t[0],i=this.getInstruction(r);this.instructions[r]={type:i.type,valueType:i.valueType,args:i.args,endIndex:this.instructionsLength()};let s=i.args[0],o=this.getInstruction(i.args[0]);this.instructions[s]={type:o.type,valueType:o.valueType,endIndex:this.instructionsLength(),symbol:o.symbol,signature:o.signature,parameterSymbols:o.parameterSymbols,recursionGroup:o.recursionGroup};let a=this.pushInstruction({type:n,valueType:Ht,args:t});return this.markClosedBlock(r,a),a}FunctionCall(t){let n=55;return this.pushInstruction({type:n,valueType:fn(this,n,t),args:t})}ExtendSeed(t,n){let r=44,i=ot;return this.pushInstruction({type:r,valueType:i,args:n,tag:t})}Noop(){let t=0,n=Ht;return this.pushLeafInstruction({type:t,valueType:n})}Action(t,n){return this.pushInstruction({type:49,valueType:rt,args:n,symbols:t})}replaceInstructionWithConstant(t,n){this.instructions[t]=n,this.blockMask[t]=void 0}replaceInstructionWithBlockVarOrFunctionCall(t,n){this.instructions[t]=n}reopenFinalBlock(){let t=this.getInstruction(this.getReturnIndex());if(t.type!==48)return this;let n=t.args[0],i=this.getInstruction(n).args[0];for(let s=i;s<n;s++)this.blockMask[s]=void 0;return this.truncate(n),this}reopenAllBlocks(){this.blockMask=[]}isInClosedBlock(t){return!!this.blockMask[t]}copy(){let t=new e({argNames:this.argNames,argTypes:this.argTypes});return t.instructions=this.instructions.slice(),t.blockMask=this.blockMask.slice(),t.comments=this.comments.slice(),t.derivativeMaps=Bs(this.derivativeMaps),t.setReturnIndex(this.getReturnIndex()),t}fuseBroadcast(){return this.setReturnIndex(Tr(this,this.getReturnIndex())),this}copyInstruction(t){return Ls(this,t)}copyInstructionWithArgs(t,n){return Mn(this,t,n)}replaceInstructionWithNoop(t){this.instructions[t]={type:0,valueType:Ht}}getReturnType(){return this.instructions[this.getReturnIndex()].valueType}isConstant(){return bt(this.instructions[this.getReturnIndex()])}asValue(){return ln(this,this.getReturnIndex())}asCompilerValue(){let t=this.instructions[this.getReturnIndex()];switch(t.type){case 1:return t.value;default:throw new Error(`Unexpected opcode ${t.type}.`)}}getConstantListLength(){return zn(this,this.getReturnIndex())}getListLengthDependencies(){let t=this.copy(),n=_r(t,t.getReturnIndex());return oi(t,n)}elementAt(t){let n=this.copy(),r=n.getReturnIndex();return n.setReturnIndex(zf(n,r,t)),n}substituteConstantArguments(t){return sR(this,t)}interpretWithParameters(t){return yS(this,this.getReturnIndex(),t)}getCompiledFunction(t){let n;if(t){n=t.slice();for(let o of this.argNames)n.indexOf(o)===-1&&n.push(o)}else n=this.argNames;let{source:r,constants:i}=uy(this),s={};return{args:n,source:r,constants:i,executionMetadata:s,fn:Ff(n,r,i,s)}}getRestrictedFunctionForGLSL(t,n){let r=Ra(this,t,{allowSlices:!0}),{restrictionChunk:i,valueChunk:s}=r.getValueAndRestrictionChunk(),o;if(i!==void 0)try{o=Wo(i,n)}catch(a){i=void 0}return o===void 0&&r.getSliceVariablesOrImplicit().length==0?{concrete:new pn(this),restriction:void 0,restrictionExpr:void 0}:{concrete:new pn(s),restriction:o,restrictionExpr:i&&new pn(i)}}polynomialOrder(t,n){return BS(this,t,n)}getPolynomialCoefficients(t){return GS(this,t)}takeDerivative(t){let n=this.argNames.indexOf(t);return n===-1?this.Constant(0):this.setReturnIndex(lp(this,this.getReturnIndex(),n)),this}gradient(t){let n=[],r=this.getReturnIndex();for(let i of t){let s=this.argNames.indexOf(i);s===-1?n.push(this.Constant(0)):n.push(lp(this,r,s))}return this.List(n),this}deriveRegressionRestrictions(){return tR(this)}boundDomain(t){return JC(this,t,this.getReturnIndex())}findLinearSubset(t){let n=KC(this),r=[];for(let i of t){let s=this.argNames.indexOf(i);if(s===-1)throw new Error(\"Programming Error: findLinearSubset called with a non-dependency\");r.push(n[s])}return r}isLinearIn(t){let n=this.argNames.filter(r=>t.includes(r));return n.length===0?!1:this.findLinearSubset(n).every(Boolean)}isImplicitPlane(){let t=n=>n===\"x\"||n===\"y\"||n===\"z\";return this.isLinearIn([\"x\",\"y\",\"z\"])&&this.argNames.every(t)}print(t,n=this.comments){let r;return t===void 0?(t=this.instructionsLength()-1,r={printUnreferencedInstructions:!0,comments:n}):r={printUnreferencedInstructions:!1,comments:n},Wv(this,t,r)}printInstruction(t){return yc(this,t)}toDot(){return VS(this)}getLiveArgNames(){let t=Yr(this,this.getReturnIndex()),n=[];for(let r=0;r<this.argNames.length;r++)t[r]&&n.push(this.argNames[r]);return n}getCursorContext(){return this.cursorContext}setCursorContext(t){this.cursorContext=t}};var Ko={normaldist:{pdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"normalpdf\",n.concat(r.args))},cdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"normalcdf\",n.concat(r.args))},mean:function(e,t,n){return e.getInstruction(t).args[0]},median:function(e,t,n){return Ko.normaldist.mean(e,t,n)},stdev:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"abs\",[r.args[1]])},var:function(e,t,n){let r=e.getInstruction(t);return e.Multiply([r.args[1],r.args[1]])},quantile:function(e,t,n){let r=e.getInstruction(t);return e.Add([e.Multiply([e.SyntheticNativeFunction(\"invNorm\",n),e.SyntheticNativeFunction(\"abs\",[r.args[1]])]),r.args[0]])},random:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"normalSample\",[n[0],r.args[0],r.args[1]])}},tdist:{pdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"tpdf\",n.concat(r.args))},cdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"tcdf\",n.concat(r.args))},mean:function(e,t,n){return e.Constant(0)},median:function(e,t,n){return e.Constant(0)},stdev:function(e,t,n){return e.SyntheticNativeFunction(\"sqrt\",[Ko.tdist.var(e,t,n)])},var:function(e,t,n){let r=e.getInstruction(t),i=e.Constant(2),s=r.args[0];return e.Piecewise([e.GreaterEqual([s,i]),e.Divide([s,e.Subtract([s,i])]),e.Constant(NaN)])},quantile:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invT\",[n[0],r.args[0]])},random:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"tSample\",[n[0],r.args[0]])}},poissondist:{pdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"poissonpdf\",n.concat(r.args))},cdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"poissoncdf\",n.concat(r.args))},mean:function(e,t,n){return e.getInstruction(t).args[0]},median:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invPoisson\",[e.Constant(.5),r.args[0]])},stdev:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"sqrt\",[r.args[0]])},var:function(e,t,n){return Ko.poissondist.mean(e,t,n)},quantile:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invPoisson\",[n[0],r.args[0]])},random:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"poissonSample\",[n[0],r.args[0]])}},binomialdist:{pdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"binompdf\",n.concat(r.args))},cdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"binomcdf\",n.concat(r.args))},mean:function(e,t,n){let r=e.getInstruction(t);return e.Multiply([r.args[0],r.args[1]])},median:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invBinom\",[e.Constant(.5),r.args[0],r.args[1]])},stdev:function(e,t,n){return e.SyntheticNativeFunction(\"sqrt\",[Ko.binomialdist.var(e,t,n)])},var:function(e,t,n){let r=e.getInstruction(t),[i,s]=r.args;return e.Multiply([i,e.Multiply([s,e.Subtract([e.Constant(1),s])])])},quantile:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invBinom\",[n[0],r.args[0],r.args[1]])},random:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"binomSample\",[n[0],r.args[0],r.args[1]])}},uniformdist:{pdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"uniformpdf\",n.concat(r.args))},cdf:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"uniformcdf\",n.concat(r.args))},mean:function(e,t,n){let r=e.getInstruction(t);return e.Divide([e.Add([r.args[0],r.args[1]]),e.Constant(2)])},median:function(e,t,n){return Ko.uniformdist.mean(e,t,n)},stdev:function(e,t,n){return e.SyntheticNativeFunction(\"sqrt\",[Ko.uniformdist.var(e,t,n)])},var:function(e,t,n){let r=e.getInstruction(t),i=e.Subtract([r.args[1],r.args[0]]);return e.Divide([e.Multiply([i,i]),e.Constant(12)])},quantile:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"invUniform\",[n[0],r.args[0],r.args[1]])},random:function(e,t,n){let r=e.getInstruction(t);return e.SyntheticNativeFunction(\"uniformSample\",[n[0],r.args[0],r.args[1]])}}};function pR(e,t,n){let r=n[0],i=e.Constant(0),s=e.Constant(1);if(zn(e,t)===0)return e.Constant(NaN);let a=_r(e,t);return e.InboundsListAccess([t,e.Add([e.SyntheticNativeFunction(\"floor\",[e.Multiply([e.SyntheticNativeFunction(\"uniformSample\",[r,i,s]),a])]),s])])}function nd(e,t,n){if(t===n)return!0;if(t<n)return!1;let r=[!0];for(let s=n+1;s<=t;s++)r.push(!1);let i=[t];for(;i.length;){let s=i.pop();if(r[s-n])continue;r[s-n]=!0;let o=e.getInstruction(s);if(!be(o))for(let a of e.getDirectDependencies(o)){if(a===n)return!0;a<n||r[a-n]||i.push(a)}}return!1}var Na;function fR(e){Na=e}function dR(){Na&&(Na.cacheHits+=1)}function mR(){Na&&(Na.cacheMisses+=1)}function yR(){Na&&(Na.cacheWrites+=1)}function gR(){Na&&(Na.cacheReads+=1)}function xR(e,t,n,r,i){let s=oe(n,pe)||oe(n,ce),o=oe(i,pe)||oe(i,ce);if(!s&&!o)return;let a=bR(e,t,n),u=bR(e,r,i),c=a.filter(l=>u.some(p=>VE(l,p))&&!!e.lookup(l[0]));for(let l of a)hR(e,l,r)&&c.every(p=>!VE(l,p))&&c.push(l);for(let l of u)hR(e,l,t)&&c.every(p=>!VE(l,p))&&c.push(l);if(c.length===1)return c[0]}function VE(e,t){return e[0]===t[0]&&e[1]===t[1]}function hR(e,[t,n],r){let i=e.lookup(t),s=i&&e.getGeometryTree(i);return((s==null?void 0:s.symbol)===\"glider\"||(s==null?void 0:s.symbol)===\"intersection\"||(s==null?void 0:s.symbol)===\"strictintersection\"||(s==null?void 0:s.symbol)===\"midpoint\")&&(s==null?void 0:s.parents.some(o=>o&&e.resolvesTo(o[0],r)&&(n===void 0||o[1]===void 0||o[1]===n)))}function bR(e,t,n){var s;let r=[],i=((s=e.getGeometryTree(t))==null?void 0:s.parents)||[];for(let o=0;o<i.length;o++){let a=i[o];if(oe(n,pe)&&o===0||!a)continue;let u=e.lookup(a[0]);u&&e.isPointOrListOfPoints(u)&&r.push(a)}return r}function BE(e,t,n){if(!t)return;let r=GE(t,n._expression);r===\"start-to-end\"?e.setCursorContext({type:n.type===\"Assignment\"?\"assignment-rhs\":\"function-definition-body\",allowedTypes:[Ht]}):r===\"empty-list\"&&e.setCursorContext({type:\"expression-arguments\",expressionType:\"List\",argIndex:0,argCount:0,isLastValidArg:!1,positionWithinArg:\"start-to-end\",allowedTypesForInsertedArg:[Ht]})}function PR(e,t,n){if(t){let r=GE(t,n.args[1]);r===\"start-to-end\"?e.setCursorContext({type:\"for-assignment-rhs\",allowedTypes:[Ie,pe,ce,fe,Le,Be,...Zi]}):r===\"empty-list\"&&e.setCursorContext({type:\"for-assignment-rhs\",allowedTypes:[Ht]})}}function pp(e,t,n,r,i){let s=_G(e,t,n,r,i);s&&e.setCursorContext(s)}function GE(e,t){let n=t.getInputSpan();return n?e.start===n.start&&e.end===n.end?\"start-to-end\":e.start===e.end&&e.start===n.end?\"end\":e.start===e.end&&e.start===n.start?\"start\":e.start===e.end&&t.type===\"List\"&&t.args.length===0?\"empty-list\":\"not-aligned\":\"not-aligned\"}function kE(e,t){if(!e)return;let n=!1;t instanceof xi&&t.args[1]instanceof cn&&(n=!0,t=t.args[1]);let r=t.args;if(r){if(r.length===0){let i=t.getInputSpan();if(!i)return;let s=Cn(i),o=-1;return t.type===\"List\"?o=s.indexOf(\"[\"):(t.type===\"FunctionCall\"||t.type===\"SeededFunctionCall\")&&(o=s.indexOf(\"(\")),o<0?void 0:e.start===i.start+o+1?{argIndex:0,positionWithinArg:\"start-to-end\",isDotCall:n}:void 0}for(let i=0;i<r.length;i++){let s=r[i],o=s.getInputSpan();if((o==null?void 0:o.input)!==e.input)continue;if(e.start<o.start)break;let a=GE(e,s);if(a!==\"not-aligned\")return{argIndex:i,positionWithinArg:a,isDotCall:n}}}}function _G(e,t,n,r,i){if(!n||!r.args)return;let s=kE(n,r);if(s===void 0)return;s.isDotCall&&(r=r.args[1]);let o=s.positionWithinArg===\"end\"?s.argIndex+1:s.argIndex;s.isDotCall&&(o+=1);let a;s.positionWithinArg===\"empty-list\"||s.positionWithinArg===\"start-to-end\"?a=[...i.slice(0,o),void 0,...i.slice(o+1)]:r instanceof hr?a=o===1?[i[0],void 0,i[1]]:[i[0],i[1],void 0]:a=[...i.slice(0,o),void 0,...i.slice(o)],a=a.map(p=>{if(!(p===void 0||e.getInstruction(p).type===2))return p});let u=[];for(let p of a)u.push(p===void 0?void 0:e.getInstruction(p).valueType);let c=jy(t,r,u),l=c&&Np(c,o);if(s.positionWithinArg===\"empty-list\"){let p=l==null?void 0:l.filter(W).map(ke);return(p==null?void 0:p.length)===0?void 0:{type:\"expression-arguments\",expressionType:\"List\",argIndex:0,argCount:0,isLastValidArg:!1,positionWithinArg:\"start-to-end\",allowedTypesForInsertedArg:p!=null?p:[Ht]}}else{if((l==null?void 0:l.length)===0)return;let p=!1;if(c){let g=0;for(let d of c){let y=Array.isArray(d)?d.length-1:1/0;g=Math.max(g,y)}p=s.positionWithinArg===\"end\"&&s.argIndex===g-1||s.positionWithinArg===\"start-to-end\"&&s.argIndex===g}let f=r.args.length;if(r instanceof hr&&r.args.length===3){let g=r.args[2];g instanceof Zt&&g.isNaN()&&(f=2)}let m={type:\"expression-arguments\",expressionType:r.type,argIndex:s.argIndex,argCount:f,isLastValidArg:p,positionWithinArg:s.positionWithinArg,allowedTypesForInsertedArg:l!=null?l:[Ht]};if(r instanceof cn&&(m.functionSymbol=r._symbol,m.isDotCall=s.isDotCall,r instanceof cn&&r._symbol===\"polygon\")){let g=r.args.filter(d=>!(d instanceof ze&&d._symbol===\"cursor\"));if(g.length>0){let d=g[0].getInputSpan(),y=g[g.length-1].getInputSpan();m.polygonVertices=d&&y?{firstLatex:Cn(d),lastLatex:Cn(y)}:void 0}}return m}}function TR(e){return e.type===\"FunctionDefinition\"}function Dg(e){return e.type===\"Identifier\"}function Gs(e){return e.type===\"Table\"}function rd(e){return e.type===\"Image\"}function xo(e){return e.type===\"Error\"}function fp(e){return e.type===\"Regression\"}function LG(e){let t=Bf({},{},-1);for(let n=0;n<e.argNames.length;n++)xr(t,e.argNames[n],n);return t}var dp=class dp{constructor(t,n,r,i){if(this.kind=t,this.substitutedGlobals={...n==null?void 0:n.substitutedGlobals},t&&r&&i)for(let s of i)r[s]&&r[s]!==Wt&&!this.substitutedGlobals[s]&&(this.substitutedGlobals[s]=t)}allowsRegressionParameterDependency(){if(!this.kind)return!0;for(let t in this.substitutedGlobals)return!1;return!0}getRegressionDependencyError(t){if(this.allowsRegressionParameterDependency())return;let[n,r]=Object.entries(this.substitutedGlobals)[0];return uT(n,t,r)}getKind(){return this.kind}getSubstitutedGlobals(){return this.substitutedGlobals}with(t,n){return new dp(\"with\",this,t,n)}for(t,n){return new dp(\"for\",this,t,n)}};dp.root=new dp;var td=dp,HE=class{constructor(t,n){this.definitions=t;this.baseCases=n;this.type=\"type-inference\";this.argTypes={};this.returnTypes={};this.baseCaseTypes={};this.firstValidBaseCaseIdentifiers={};this.stack=[];this.isUnconditionallyRecursive=!1}registerFunctionCall(t,n){this.argTypes[t]||(this.argTypes[t]=n)}};function OE(e,t,n,r,i,s,o){return{policy:e,frame:t,chunk:n,scope:r,substitutionContext:i,recursiveFunctionContext:s,selection:o}}function zs(e,t,n){return{...e,frame:t,scope:n}}function Ag(e){let{policy:t,frame:n,argNames:r,argTypes:i,selection:s}=e,o=new jo({argNames:r,argTypes:i}),a=LG(o);return OE(t,n,o,a,td.root,void 0,s)}function mp(e,t){let{policy:n,frame:r,argNames:i,argTypes:s,selection:o}=e,a=DE(r,t),{freeDependencies:u,updateSymbols:c}=a;if(i||(i=u),!s){s=[];for(let p=0;p<i.length;p++)s.push(T)}let l=Ag({policy:n,frame:r,argNames:i,argTypes:s,selection:o});try{YC(n,r,t.getScope()),Ee(l,t),(e.coerceToNumber||oe(l.chunk.getReturnType(),Vt))&&Ac(l.chunk,l.chunk.getReturnIndex()),e.wrapInList&&!W(l.chunk.getReturnType())&&l.chunk.List([l.chunk.getReturnIndex()]),l.chunk.fuseBroadcast(),FG(l,t,a),wG(l,t,c)}catch(p){let f=p instanceof C?p:J(p);f.setCursorContext(l.chunk.getCursorContext()),l.chunk.setError(f)}return l.chunk}function wG(e,t,n){if(t.type===\"FunctionDefinition\")for(let i of n){if(t._argSymbols.indexOf(i)!==-1||t._symbol===i)throw pm(i);if(t._sybmol===i)throw lm(i)}let r=[];for(let i of n)e.frame[i]||r.push(i);if(r.length){let i=_R(e,r[0]).setDependencies(e.chunk.argNames.concat(r));throw e.chunk.isConstant()&&e.chunk.getReturnType()===rt&&i.setActionValue(e.chunk.asValue()),i}}function FG(e,t,{substitutionSymbols:n}){if(t.type===\"FunctionDefinition\")for(let i of n){if(t._argSymbols.indexOf(i)!==-1||t._symbol===i)throw yf(i);if(t._sybmol===i)throw hl(i)}let r=[];for(let i of n)e.frame[i]||r.push(i);if(r.length){let i=r[0];if(e.policy.substitutionForbidden(i))throw gl(i)}}function Ee(e,t){let n;if(gR(),GG(e,t))dR(),n=e.chunk.copyInstruction(t.__IRCache.instruction);else{mR();let r=e.chunk.instructionsLength();n=kG(e,t),n=VG(e,r,n),BG(e,t,n)}return e.chunk.setReturnIndex(n),n}function VG(e,t,n){let{chunk:r,scope:i}=e;if(n<=t)return n;let s=r.getInstruction(n);return bt(s)?(r.truncate(Math.max(t,i.maxIndex+1)),Ls(r,s)):n}function BG(e,t,n){let{frame:r,chunk:i}=e,s=i.getInstruction(n);if(!bt(s))return;let o=$C(r,t);o&&(yR(),t.__IRCache={keys:o,instruction:s})}function GG(e,t){let{frame:n,substitutionContext:r}=e;if(!t.__IRCache)return!1;let i=t.__IRCache.keys;for(let[s,o]of i){let a=n[s];if(a!==o||a&&a.type===\"RegressionParameter\"&&!r.allowsRegressionParameterDependency())return!1}return!0}function kG(e,t){var l,p,f,m;let{policy:n,frame:r,chunk:i,scope:s,substitutionContext:o,selection:a}=e,u=t.type;switch(u){case\"Constant\":{let d=t._constantValue,y=typeof d==\"boolean\"?ge:T;return i.ConstantOfType(y,d)}case\"RegressionParameter\":return i.Constant(t._constantNode._constantValue);case\"MixedNumber\":return i.Constant(t._constantValue);case\"Negative\":return i.Negative(Sg(e,t,t.args));case\"Add\":return i.Add(ks(e,t,t.args));case\"Subtract\":return i.Subtract(ks(e,t,t.args));case\"Multiply\":{let d=ks(e,t,t.args);if(e.policy.is3dProduct()){let y=i.getInstruction(d[0]).valueType,h=i.getInstruction(d[1]).valueType;if(oe(y,V)&&oe(h,V))throw Xp([ne(y),ne(h)]);if(oe(y,R)&&oe(h,R))throw Yp([ne(y),ne(h)])}return i.Multiply(d)}case\"DotMultiply\":{let[d,y]=ks(e,t,t.args);return(p=(l=IR(e,d,y))!=null?l:Da(i,[d,y])?IR(e,ai(i,d),ai(i,y),{forcePermitted:!0}):void 0)!=null?p:i.Multiply([d,y])}case\"CrossMultiply\":{let[d,y]=ks(e,t,t.args);if(!e.policy.is3dPolicy())return i.Multiply([d,y]);if(Je(i,d,Se)&&Je(i,y,Se))return du(i,[ER(e,ai(i,d),ai(i,y)),go(i,d)]);if(Je(i,d,V)&&Je(i,y,V))return ER(e,d,y);if(Je(i,d,R)&&Je(i,y,R)||Je(i,d,T)&&Je(i,y,V)||Je(i,d,V)&&Je(i,y,T)){let h=i.getInstruction(d).valueType,b=i.getInstruction(y).valueType;throw $p([ne(h),ne(b)])}else return i.Multiply([d,y])}case\"Divide\":return i.Divide(ks(e,t,t.args));case\"Exponent\":return i.Exponent(ks(e,t,t.args));case\"Comparator['=']\":case\"Comparator['>']\":case\"Comparator['<']\":case\"Comparator['>=']\":case\"Comparator['<=']\":return i.Comparator(t.operator,ks(e,t,t.args));case\"ComparatorChain\":{let d=Tu(e,t,t.args),y=i.Comparator(t.symbols[0],[d[0],d[1]]);for(let h=1;h<t.symbols.length;h++)y=i.And([y,i.Comparator(t.symbols[h],[d[h],d[h+1]])]);return y}case\"Or\":return i.Or(ks(e,t,t.args));case\"PercentOf\":return i.Divide([i.Multiply(ks(e,t,t.args)),i.Constant(100)]);case\"ParenSeq\":return $G(e,t);case\"BareSeq\":return YG(e,t);case\"NamedCoordinateAccess\":{let[d]=Sg(e,t,t.args),y=t.symbol,h=Je(i,d,V),b;switch(y){case\"x\":b=1;break;case\"y\":b=2;break;case\"z\":{if(!h)throw Nr(\".\").allowExport();b=3;break}default:{let x=y;throw new Error(`Programming Error: unexpected named coordinate: '${x}'.`)}}return h?i.OrderedTripleAccess(b,[d]):i.OrderedPairAccess(b,[d])}case\"Norm\":{let d=Sg(e,t,t.args)[0];return(m=(f=UE(e,d))!=null?f:Da(i,[d])?UE(e,ai(i,d)):void 0)!=null?m:i.SyntheticNativeFunction(\"abs\",[d])}case\"UpdateRule\":{let d=t._symbol;var c=r[d];if(c!==void 0){if(c!==Wt&&c.isError)throw c;if(c===Wt||c.type!==\"Assignment\"&&c.type!==\"Slider\")throw _R(e,d)}let y=Ee(e,t.args[1]);return i.Action([d],[y])}case\"List\":{if(t.getDependencies().length>0)return Xr(t.args),i.List(Tu(e,t,t.args));if(t.args.length===0)return pp(i,n,a,t,[]),i.ConstantOfType(We,[]);{let d=i.instructionsLength(),y=[],h,b;Xr(t.args);for(let P of t.args){let M=Ee(e,P),I=i.getInstruction(M);if(h===void 0){if(h=I.valueType,!ei(h))throw ec([ne(h)]);b=ar(h)}else if(I.valueType!==h){if(zr(I.valueType,h)||zr(h,I.valueType))return i.truncate(d),i.List(Tu(e,t,t.args));throw Jp()}if(I.type!==1)throw new Error(\"Programming error: expected list with no dependencies to constant collapse.\");y.push(I.value),i.truncate(d)}let x=kE(e.selection,t);if(e.selection&&x!==void 0&&b!==void 0&&x.positionWithinArg!==\"empty-list\"){let P=ke(b);i.setCursorContext({type:\"expression-arguments\",expressionType:\"List\",argIndex:x.argIndex,argCount:t.args.length,isLastValidArg:!1,positionWithinArg:x.positionWithinArg,allowedTypesForInsertedArg:[P]})}return i.ConstantOfType(b,y)}}case\"ListAccess\":{let d=Ee(e,t.args[0]),y=i.getInstruction(d);if(t.args[1].type===\"Range\"&&t.args[1].args[1].length===0){if(!W(y.valueType))throw Zp([ne(y.valueType),ne(T)]);let h=_r(i,d),b=qE(e,Ee(e,t.args[1].args[0]),i.List([h]),{stepMustBePositive:!0});return i.ListAccess([d,b])}else{let h=Ee(e,t.args[1]),b=i.getInstruction(h);if(lu(i,n,t,[d,h]),b.valueType===Ln)return i.SyntheticNativeFunction(\"select\",[d,h]);if(b.valueType===ge&&W(y.valueType)){let x=i.ConstantOfType(y.valueType,[]);return i.Piecewise([h,d,x])}return i.ListAccess([d,h])}}case\"Range\":{let[d,y]=ks(e,t,t.args);return qE(e,d,y,{stepMustBePositive:!1})}case\"ListComprehension\":return ZG(e,t);case\"Piecewise\":{let d=zG(e,t,t.args),y=i.getInstruction(d[0]),h=i.getInstruction(d[1]),b=i.getInstruction(d[2]),x=ro(h.valueType,b.valueType)||ro(b.valueType,h.valueType);if(y.type===1&&y.valueType===ge&&x){let I=d[y.value?1:2],E=i.getInstruction(I),v=h.valueType!==We?h.valueType:b.valueType;return E.valueType===We&&v!==We?i.ConstantOfType(v,[]):I}let P=h.valueType,M=W(P)?ke(P):P;if(!x&&bt(b)&&b.valueType===T&&Wi(b.value)&&uo(M)){if(oe(h.valueType,Vt))return i.SyntheticNativeFunction(\"restriction\",[i.And([d[0],i.SyntheticNativeFunction(\"restrictionToBoolean\",[d[1]])])]);let I=i.NanOfType(M);d=[d[0],d[1],I]}return i.Piecewise(d)}case\"Restriction\":return i.SyntheticNativeFunction(\"restriction\",Sg(e,t,t.args));case\"Ans\":case\"Identifier\":{let d=t._symbol,y=t._errorSymbol;if(t.type===\"Ans\"&&i.argNames.indexOf(d)!==-1)throw JP();let h=Uy(s,d),b=r[d];if(h!==void 0&&(s.symbolMap.hasOwnProperty(d)||b===void 0||b===Wt))return h;if(b===void 0){if(Ke[d]){let P=e.policy.is3dPolicy();throw Ke[d].isFunction?ms(y,P):ic(y)}throw new Error(`Programming Error: reached undefined symbol ${d}`)}if(b!==Wt&&xo(b))throw b;if(b===Wt||b.isFunction)throw Sx(y);if(b.type===\"RegressionParameter\"){let P=o.getRegressionDependencyError(y);if(P)throw P}let x=Ee(e,b);return xr(s,d,x,b),x}case\"FunctionCall\":case\"SeededFunctionCall\":{Xr(t.args);let d=Tu(e,t,t.args);return Xr(d),Og(e,t._symbol,t._errorSymbol,d,t.args)}case\"Substitution\":return e2(e,t);case\"FunctionExponent\":{let d=t.args[0]._symbol,y=r[d];return y!==Wt&&(y!=null&&y.isFunction)?Ee(e,new D.Exponent([new D.FunctionCall(d,[t.args[1]]),t.args[2]])):Ee(e,new D.Multiply([t.args[0],new D.Exponent([t.args[1],t.args[2]])]))}case\"FunctionFactorial\":{let d=t.args[0]._symbol,y=r[d];return y!==Wt&&(y!=null&&y.isFunction)?Ee(e,new D.FunctionCall(\"\\\\factorial\",[new D.FunctionCall(d,[t.args[1]])])):Ee(e,new D.Multiply([t.args[0],new D.FunctionCall(\"\\\\factorial\",[t.args[1]])]))}case\"DotAccess\":{let d=t.args[0],y=t.args[1],h=r[y._symbol];if(d.type===\"Identifier\"&&d._symbol===\"construction\")return t2(e,y);if((y.type===\"Identifier\"||y.type===\"FunctionCall\")&&h!==Wt&&(h!=null&&h.isFunction)){let b=y._symbol,x=y._errorSymbol,P=y.type===\"Identifier\"?[d]:[d].concat(y.args),M=Tu(e,t,P);return Og(e,b,x,M,P,{dotLHSIndex:M[0]})}else if(y.type===\"SeededFunctionCall\"){let b=y._symbol,x=y._errorSymbol,P=[y.seed,d].concat(y.args.slice(1)),M=Tu(e,t,P);return Og(e,b,x,M,P,{dotLHSIndex:M[1]})}else throw Nr(\".\")}case\"Seed\":return i.ConstantOfType(ot,t._stringValue);case\"ExtendSeed\":return i.ExtendSeed(t.tag,ks(e,t,t.args));case\"Integral\":{let d=t._differential._symbol,y=Object.create(r);y[d]=XP(d);let h=ts(s),b=zs(e,y,h),x=Ee(b,t.args[1]),P=Ee(b,t.args[2]),M=i.getInstruction(x),I=i.getInstruction(P),E=i.SymbolicVar(T,d),v=ts(s);xr(v,d,E);let O=Object.create(r);O[d]=Wt;let A=Ee(zs(e,O,v),t.args[3]);if(!nd(i,A,E))return i.Multiply([A,i.Subtract([P,x])]);let N=Gf(i,[x,P,A]);if(N!==void 0&&nd(i,N,E))throw aT(d);let L=N!==void 0?i.BeginBroadcast([N]):void 0,z=x;L!==void 0&&W(M.valueType)&&(z=Ma(i,x,L));let G=P;L!==void 0&&W(I.valueType)&&(G=Ma(i,P,L));let $=i.getInstruction(A).valueType,w=W($)?ke($):$,Y;if(w===R||w===V){let de=[],re=w===R?2:3;for(let ie=0;ie<re;ie++){let Z=i.BeginIntegral({indexSymbol:d},[z,G]),Re=Ca(i,Z,E,A),Ne=i.getInstruction(Re);L!==void 0&&W(Ne.valueType)&&(Re=Ma(i,Re,L)),Re=w===R?i.OrderedPairAccess(ie+1,[Re]):i.OrderedTripleAccess(ie+1,[Re]);let Te=i.EndIntegral([Z,Re]);de.push(i.BlockVar(T,[Te]))}Y=w===R?i.OrderedPair(de):i.OrderedTriple(de)}else{let de=i.BeginIntegral({indexSymbol:d},[z,G]),re=Ca(i,de,E,A),ie=i.getInstruction(re);L!==void 0&&W(ie.valueType)&&(re=Ma(i,re,L));let Z=i.EndIntegral([de,re]);Y=i.BlockVar(T,[Z])}if(L!==void 0){let de=i.EndBroadcast([L,Y]);return i.BroadcastResult(ar(w),[de])}else return Y}case\"Sum\":case\"Product\":{let d=t._index._symbol,y=t.type===\"Sum\",h=Object.create(r);h[d]=y?VP(d):BP(d);let b=ts(s),x=zs(e,h,b),P=Ee(x,t.args[1]);P=Ac(x.chunk,P);let M=Ee(x,t.args[2]);if(M=Ac(x.chunk,M),!Je(i,P,T)){let K=Dc(i,[P]);throw y?wb(K):Bb(K)}if(!Je(i,M,T)){let K=Dc(i,[M]);throw y?Fb(K):Gb(K)}let I=i.SyntheticNativeFunction(\"round\",[P]),E=i.SyntheticNativeFunction(\"round\",[M]),v=i.getInstruction(I),O=i.getInstruction(E);if(v.type===1&&v.valueType===T&&!isFinite(q(v.value)))throw y?am():um();if(O.type===1&&O.valueType===T&&!isFinite(q(O.value)))throw y?am():um();let A=i.SymbolicVar(T,d),N=ts(s);xr(N,d,A);let L=Object.create(r);L[d]=Wt;let z=Ee(zs(e,L,N),t.args[3]),G=i.getInstruction(z).valueType,$=W(G)?ke(G):G,Y=(t.type===\"Sum\"?Vh:[T]).find(K=>zr($,K));if(Y===void 0){let K=Dc(i,[z]);throw y?Vb(K):kb(K)}if(!nd(i,z,A)){let K=i.Add([i.Subtract([E,I]),i.Constant(1)]);K=i.SyntheticNativeFunction(\"max\",[K,i.Constant(0)]);let _e=y?i.Multiply([z,K]):i.Exponent([z,K]);return i.Piecewise([i.Less([K,i.Constant(1/0)]),_e,i.NanOfType(Y)])}let de=Gf(i,[I,E,z]);if(de!==void 0&&nd(i,de,A))throw y?sT(d):oT(d);let re=de!==void 0?i.BeginBroadcast([de]):void 0,ie=I;re!==void 0&&W(v.valueType)&&(ie=Ma(i,I,re));let Z=E;re!=null&&W(O.valueType)&&(Z=Ma(i,E,re));let Re=i.Constant(y?0:1),Ne=Y===R?i.OrderedPair([Re,Re]):Y===V?i.OrderedTriple([Re,Re,Re]):Re,Te=i.BeginLoop({type:y?\"sum\":\"product\",indexSymbol:d},[ie,Z,Ne]),Me=i.BlockVar(Y,[Te]),ve=Ca(i,Te,A,z),Q=i.getInstruction(ve);re!==void 0&&W(Q.valueType)&&(ve=Ma(i,ve,re));let U=y?i.Add([Me,ve]):i.Multiply([Me,ve]),xe=i.EndLoop([Te,U]),le=i.BlockVar(Y,[xe]);if(re!==void 0){let K=i.EndBroadcast([re,le]);return i.BroadcastResult(ar(Y),[K])}else return le}case\"Derivative\":{let d=t._symbol,y=Ee(e,new D.Identifier(d));if(!Je(i,y,T))throw $b(d,Dc(i,[y]));let h=i.getInstruction(y),b,x,P=!1;if((h.type===2||h.type===3)&&h.valueType===T)b=e,x=y;else{let v=ts(s);x=i.SymbolicVar(h.valueType),xr(v,d,x),P=!0;let O=Object.create(r);O[d]=Wt,b=zs(e,O,v)}let M=1;for(;t.args[0].type===\"Derivative\"&&t.args[0]._symbol===t._symbol;)M+=1,t=t.args[0];let E=Tr(i,Ee(b,t.args[0]));for(let v=0;v<M;v++)E=lp(i,E,x);return x===y?E:(P&&delete i.derivativeMaps[x],Ca(i,y,x,E))}case\"Prime\":{let d=t.args[0],y=r[d._symbol];if(!y)throw Tm(d._symbol);if(y===Wt||!y.isFunction)throw Ox(d._symbol);let h=Ee(e,d.args[0]),b=i.getInstruction(h),x=!1,P;(b.type===2||b.type===3)&&b.valueType===T?P=h:(P=i.SymbolicVar(b.valueType),x=!0);let M,I;if(d._symbol===\"logbase\"){if(d.args.length!==2)throw nc();M=[P,Ee(e,d.args[1])],I=[d.args[0],d.args[1]]}else{if(d.args.length!==1)throw nc();M=[P],I=[d.args[0]]}let v=Tr(i,Og(e,d._symbol,d._errorSymbol,M,I));for(let O=0;O<t.order;O++)v=lp(i,v,P);return P===h?v:(x&&delete i.derivativeMaps[P],Ca(i,h,P,v))}case\"Slider\":return e.chunk.Constant(t.getConcreteTree(n,r).asCompilerValue());case\"Assignment\":return BE(i,e.selection,t),Ee(e,t._expression);case\"CoordinateEquation\":return Ee(e,t._expression);case\"FunctionDefinition\":{let d=t;return BE(i,e.selection,d),d.recursionInfo?wR(e,d,d.recursionInfo):Ee(e,t._expression)}case\"RecursiveFunctionBaseCase\":return Ee(e,t._expression);case\"Construction\":throw Nr(\"construction\");default:let g=u;throw new Error(`Programming error, unimplemented node type ${g}`)}}function Sg(e,t,n){let r=[Ee(e,n[0])];return pp(e.chunk,e.policy,e.selection,t,r),lu(e.chunk,e.policy,t,r),r}function ks(e,t,n){let r=[Ee(e,n[0]),Ee(e,n[1])];return pp(e.chunk,e.policy,e.selection,t,r),lu(e.chunk,e.policy,t,r),r}function UE(e,t){let n=e.chunk;return Je(n,t,V)?n.SyntheticNativeFunction(\"hypot\",[n.OrderedTripleAccess(1,[t]),n.SyntheticNativeFunction(\"hypot\",[n.OrderedTripleAccess(2,[t]),n.OrderedTripleAccess(3,[t])])]):Je(n,t,R)?n.SyntheticNativeFunction(\"hypot\",[n.OrderedPairAccess(1,[t]),n.OrderedPairAccess(2,[t])]):void 0}function IR(e,t,n,{forcePermitted:r}={forcePermitted:!1}){let i=e.chunk;return(r||e.policy.is3dProduct())&&Je(i,t,R)&&Je(i,n,R)?i.Add([i.Multiply([i.OrderedPairAccess(1,[t]),i.OrderedPairAccess(1,[n])]),i.Multiply([i.OrderedPairAccess(2,[t]),i.OrderedPairAccess(2,[n])])]):(r||e.policy.is3dProduct())&&Je(i,t,V)&&Je(i,n,V)?i.Add([i.Add([i.Multiply([i.OrderedTripleAccess(1,[t]),i.OrderedTripleAccess(1,[n])]),i.Multiply([i.OrderedTripleAccess(2,[t]),i.OrderedTripleAccess(2,[n])])]),i.Multiply([i.OrderedTripleAccess(3,[t]),i.OrderedTripleAccess(3,[n])])]):void 0}function ER(e,t,n){let r=e.chunk,i=r.OrderedTripleAccess(1,[t]),s=r.OrderedTripleAccess(2,[t]),o=r.OrderedTripleAccess(3,[t]),a=r.OrderedTripleAccess(1,[n]),u=r.OrderedTripleAccess(2,[n]),c=r.OrderedTripleAccess(3,[n]);return r.OrderedTriple([r.Subtract([r.Multiply([s,c]),r.Multiply([o,u])]),r.Subtract([r.Multiply([o,a]),r.Multiply([i,c])]),r.Subtract([r.Multiply([i,u]),r.Multiply([s,a])])])}function zG(e,t,n){let r=[Ee(e,n[0]),Ee(e,n[1]),Ee(e,n[2])];return pp(e.chunk,e.policy,e.selection,t,r),lu(e.chunk,e.policy,t,r),r}function Tu(e,t,n){let r=[];for(let i of n)r.push(Ee(e,i));return pp(e.chunk,e.policy,e.selection,t,r),lu(e.chunk,e.policy,t,r),r}function Og(e,t,n,r,i,s){let{frame:o,chunk:a,scope:u,recursiveFunctionContext:c}=e;if(c&&c.type===\"type-inference\"&&c.definitions[t]){c.registerFunctionCall(t,r.map(g=>a.getInstruction(g).valueType));let f=c.definitions[t];if(f instanceof C)throw f;let m=VR(e,c,f,r);return a.SymbolicVar(m.returnType)}let l=Uy(u,t);if(l!==void 0){let f=a.getInstruction(l);if(f.type===4){if(f.signature.argTypes.length!==r.length)throw ds(t,f.signature.argTypes.length,r.length);for(let m=0;m<r.length;m++){let g=a.getInstruction(r[m]).valueType,d=f.signature.argTypes[m];if(!oe(g,d))throw gb(m,on(d),on(g))}return a.FunctionCall([l,...r])}else if(oe(f.valueType,Ue))return Ng(e.chunk,[l,...r],n,!0);if(r.length>=1){let m=r.length===1?r[0]:Ee(e,new D.ParenSeq(i));return a.Multiply([l,m])}else throw f.type===2?Tm(n):f.valueType===St?Am(n):Nm(n)}let p=o[t];if(p!==Wt&&(p!=null&&p.isError))throw p;if(p===void 0||p===Wt||!p.isFunction){if(Ke[t]&&Ke[t].isFunction){if(t===\"logbase\"&&o.ln&&o.log)throw QP();let f=e.policy.is3dPolicy();throw ms(n,f)}if(p&&p!==Wt){let f=Ee(e,p);if(a.getInstruction(f).valueType===St)throw Am(n);if(oe(a.getInstruction(f).valueType,Ue))return Ng(e.chunk,[f,...r],n,!0)}if(r.length>=1){let f=r.length===1?r[0]:Ee(e,new D.ParenSeq(i));return a.Multiply([Ee(e,new D.Identifier(t)),f])}throw p?Nm(n):new Error(`Programming Error: reached undefined symbol ${t}`)}if(TR(p)){if(s&&s.dotLHSIndex!==void 0)throw Wp(n);if(r.length!==p._argSymbols.length)throw ds(n,p._argSymbols.length,r.length);let f=ts(u),m=Object.create(o);for(let d=0;d<p._argSymbols.length;d++)xr(f,p._argSymbols[d],r[d],i[d]),m[p._argSymbols[d]]=Wt;let g=zs(e,m,f);return p.recursionInfo?wR(g,p,p.recursionInfo):Ee(g,p._expression)}else{if(oo.hasOwnProperty(t))return qG(e,t,n,r,i,s);if(bn.hasOwnProperty(t))return Cg(e,t,n,r,s);{let f=e.policy.is3dPolicy();throw ms(n,f)}}}function HG(e,t){let n=go(e,t),r=e.Add([n,ai(e,t)]);return e.SyntheticNativeFunction(\"segment\",[n,r])}function Cg(e,t,n,r,i){let{chunk:s}=e,o=bn[t],a=!!(i&&i.dotLHSIndex!==void 0),u=r.length,{minArity:c,maxArity:l}=o;if(u>l||u<c)throw J(\"Unexpected arity mismatch\");let p=RR(s,r,o),f={errorSymbol:n,providedArity:u,isDotCall:a};switch(o.tag){case\"default\":case\"reducer\":case\"doubleReducer\":case\"parameterizedReducer\":case\"color\":case\"never-broadcast\":return s.NativeFunction(t,f,p);case\"trig\":{let m=Ee(e,new D.Identifier(\"trigAngleMultiplier\")),g=s.Multiply([p[0],m]);return s.NativeFunction(t,f,[g])}case\"trig2\":{let m=Ee(e,new D.Identifier(\"trigAngleMultiplier\")),g=s.Multiply([p[1],m]);return s.NativeFunction(t,f,[p[0],g])}case\"inverseTrig\":{let m=Ee(e,new D.Identifier(\"trigAngleMultiplier\")),g=s.NativeFunction(t,f,p);return s.Divide([g,m])}default:{let m=o.tag;throw new Error(`Programming Error: unexpected tag ${m}`)}}}function RR(e,t,{minArity:n,defaultArguments:r}){if(!r||!(t.length-n<r.length))return t;let i=t.slice();for(;i.length-n<r.length;)i.push(e.copyInstruction(r[i.length-n]));return i}function UG(e,t,{match:n,noBroadcast:r}){let i=[r?n:ti(n)];return Jy(i,t.map(s=>e.getInstruction(s).valueType),0).length>0}function mu(e,t,n,r){let i=r.find(s=>UG(e,t,s));if(!i){if(typeof n==\"string\")throw Pi(n,Zo(e,t));return n(e,t)}return i.build(e,t)}function MR(e,t){if(t.length!==2)throw J(\"Can only take the midpoint of two points\");let n=e.Constant(De(1,2));return e.Multiply([n,e.Add(t)])}function qG(e,t,n,r,i,s){let{chunk:o,policy:a}=e,u=oo[t];if(u.fallthroughUnlessDistribution&&u.fallthroughUnlessDistribution&&!SR(o,r))return Cg(e,t,n,r,s);let{minArity:c,maxArity:l}=u,p=r.length;if(p<c||p>l)throw new Error(\"Programming Error: unexpected arity mismatch\");let f;if(t===\"cdf\")p===2?f=[r[0],o.Constant(-1/0),r[1]]:f=r;else if(t===\"random\")if(p===1||p<4&&!W(o.getInstruction(r[1]).valueType)&&o.getInstruction(r[1]).valueType!==St){let d=o.Distribution(\"uniformdist\",[o.Constant(0),o.Constant(1)]);f=[r[0],d].concat(r.slice(1))}else f=r;else f=RR(o,r,u);let m=Vp(t);if(m){let d=NE(o,f,m);d.didCoerce&&(f=d.args)}function g(d,y=n){return mu(o,f,y,d)}switch(t){case\"length\":if(a.isGeometryEnabled()||a.is3dPolicy()){let d=f[0],y=a.is3dPolicy()?_b:Ab;return g([{match:[We],build:()=>{throw y(n,Zo(o,f)[0])}},{match:[Nt],build:()=>{let h=o.Constant(0),b=o.Constant(1);return o.SyntheticNativeFunction(\"distanceThreeD\",[o.SyntheticNativeFunction(\"segmentThreeDGlider\",[d,h]),o.SyntheticNativeFunction(\"segmentThreeDGlider\",[d,b])])}},{match:[Ie],build:()=>{let h=o.Constant(0),b=o.Constant(1);return o.SyntheticNativeFunction(\"distance\",[o.SyntheticNativeFunction(\"segmentGlider\",[d,h]),o.SyntheticNativeFunction(\"segmentGlider\",[d,b])])}},{match:[ce],build:()=>{let h=o.SyntheticNativeFunction(\"abs\",[o.SyntheticNativeFunction(\"arcOmega\",[f[0]])]),{radius:b,startPoint:x}=LR(o,f[0]),P=o.SyntheticNativeFunction(\"arcGlider\",[f[0],o.Constant(1)]);return o.Piecewise([o.Equal([h,o.Constant(0)]),o.SyntheticNativeFunction(\"distance\",[x,P]),o.Multiply([b,h])])}},{match:[Bh],build:()=>UE(e,ai(o,d))},{match:[sn],noBroadcast:!0,build:()=>{throw y(n,Zo(o,f)[0])}}])}else return o.SyntheticNativeFunction(\"count\",f);case\"round\":return g([{match:[T],build:()=>o.SyntheticNativeFunction(\"round\",f)},{match:[T,T],build:()=>{let d=o.SyntheticNativeFunction(\"round\",[f[1]]),y=o.RawExponent([o.Constant(10),d]);return o.Divide([o.SyntheticNativeFunction(\"round\",[o.Multiply([f[0],y])]),y])}}]);case\"midpoint\":return g([{match:[Ie],build:()=>{let d=o.Constant(De(1,2));return o.SyntheticNativeFunction(\"segmentGlider\",[f[0],d])}},{match:[Nt],build:()=>{let d=o.Constant(De(1,2));return o.SyntheticNativeFunction(\"segmentThreeDGlider\",[f[0],d])}},{match:[R,R],build:MR},{match:[V,V],build:MR}]);case\"circle\":return g([{match:[R,Ie],build:()=>{let d=o.Constant(0),y=o.Constant(1);return o.SyntheticNativeFunction(\"circle\",[f[0],o.SyntheticNativeFunction(\"distance\",[o.SyntheticNativeFunction(\"segmentGlider\",[f[1],d]),o.SyntheticNativeFunction(\"segmentGlider\",[f[1],y])])])}},{match:[R,R],build:()=>o.SyntheticNativeFunction(\"circle\",[f[0],o.SyntheticNativeFunction(\"distance\",f)])},{match:[R,T],build:()=>o.SyntheticNativeFunction(\"circle\",f)}]);case\"segment\":return g(qf(\"segment\",\"segmentThreeD\"));case\"vector\":return g(qf(\"vector\",\"vectorThreeD\"));case\"distance\":return g(qf(\"distance\",\"distanceThreeD\"));case\"center\":case\"radius\":return g([{match:[{meta:\"union\",types:[pe,ce]}],build:()=>{let d=WG(o,f[0]);return o.SyntheticNativeFunction(t,[d])}}]);case\"glider\":return NR(e.chunk,f);case\"intersection\":case\"strictintersection\":{let d=0;t===\"strictintersection\"&&((Je(o,f[0],Ie)||Je(o,f[0],ce))&&(d+=3),(Je(o,f[1],Ie)||Je(o,f[1],ce))&&(d+=12)),Je(o,f[0],Le)&&(d+=1),Je(o,f[1],Le)&&(d+=4);let y=KG(e,i,f);if(!y)return zE(o,f,d);let h=Ee(e,new D.Identifier(y[0]));return y[1]!==void 0&&(h=o.ListAccess([h,o.Constant(y[1])])),o.SyntheticNativeFunction(\"chooseNonIncidentPoint\",[h,zE(o,[f[0],f[1]],d),zE(o,[f[1],f[0]],d<<2&12|d>>2&3)])}case\"parallel\":case\"perpendicular\":return g([{match:[{meta:\"union\",types:_d},R],build:()=>{let y=[Rg(o,f[0]),f[1]];return o.SyntheticNativeFunction(t,y)}}]);case\"start\":return go(o,f[0]);case\"end\":return o.Add([go(o,f[0]),ai(o,f[0])]);case\"translate\":case\"reflect\":case\"rotate\":case\"dilate\":return jG(e,t,f);case\"apply\":return Ng(o,f,n,!1);case\"normaldist\":case\"tdist\":case\"poissondist\":case\"binomialdist\":case\"uniformdist\":return o.Distribution(t,f);case\"pdf\":case\"cdf\":case\"median\":case\"stdev\":case\"var\":case\"quantile\":return DR(o,f,t);case\"total\":case\"mean\":return t===\"mean\"&&SR(o,r)?DR(o,f,t):g([{match:{type:\"variadic\",initial:[],rest:We},build:()=>Cg(e,t,n,f,s)},{match:{type:\"variadic\",initial:[R],rest:R},build:()=>{let y=h=>o.SyntheticNativeFunction(t,f.map(b=>o.OrderedPairAccess(h,[b])));return o.OrderedPair([y(1),y(2)])}},{match:{type:\"variadic\",initial:[V],rest:V},build:()=>{let y=h=>o.SyntheticNativeFunction(t,f.map(b=>o.OrderedTripleAccess(h,[b])));return o.OrderedTriple([y(1),y(2),y(3)])}}],()=>Cg(e,t,n,f,s));case\"random\":{let d=f[0],y=f[1],h=o.getInstruction(f[0]),b=o.getInstruction(y);if(h.valueType!==ot)throw J(`Unexpected value type for seed arg: ${h.valueType}`);if(b.valueType===wn)throw bx();let x;if(W(b.valueType))x=pR;else{if(b.type!==42||b.valueType!==St)throw J('Expected distribution argument to \"random\"');x=Ko[b.symbol][t]}if(f.length>2){let P=f[2],M=o.getInstruction(P);if(M.valueType!==T)throw J(`Expected numSamples argument to random() to be a number but got ${M.valueType}`);if(f.length===4){if(o.getInstruction(f[3]).valueType!==T)throw J(`Expected userSeed argument to random() to be a number but got ${M.valueType}`);d=o.ExtendSeed(\"us\",[d,f[3]])}let I=o.Constant(1),E=o.SyntheticNativeFunction(\"round\",[o.SyntheticNativeFunction(\"validateSampleCount\",[P])]),v=o.BeginBroadcast([E]);d=o.ExtendSeed(\"lc\",[d,o.Subtract([v,I])]);let O=x(o,y,[d]),A=o.EndBroadcast([v,O]);return o.BroadcastResult(ar(o.getInstruction(O).valueType),[A])}return x(o,y,[d])}case\"shuffle\":{let d=f[0],y=f[1],h=f[2];if(!W(o.getInstruction(y).valueType)||h!==void 0&&o.getInstruction(h).valueType!==T)throw J(`Unexpected args for \"${t}\"`);return h!==void 0&&(d=o.ExtendSeed(\"us\",[d,h])),o.SyntheticNativeFunction(\"shuffle\",[d,y])}case\"sort\":return g([{match:[se],noBroadcast:!0,build:()=>vR(e,f[0],f[0])},{match:[{meta:\"union\",types:Zi},se],noBroadcast:!0,build:()=>vR(e,f[0],f[1])}]);case\"join\":{let d=[],y=!0;for(let N of f){let L=o.getInstruction(N);bt(L)||(y=!1);let z=L.valueType;if(z!==We)if(W(z))d.push({isList:!0,index:N,elementType:ke(z)});else if(ei(z))d.push({isList:!1,index:N,elementType:z});else throw Pi(n,Zo(o,r))}if(d.length===0)return o.ConstantOfType(We,[]);for(let N of d)if(N.elementType!==d[0].elementType)throw Pi(n,Zo(o,r));if(y){let N=[];for(let L of d){let z=o.getInstruction(Tr(o,L.index));Kv(z),L.isList?N.push(...z.value):N.push(z.value)}return o.ConstantOfType(ar(d[0].elementType),N)}let h=o.Constant(0),b=o.Constant(1),x={};for(let N of d)N.isList&&x[N.index]===void 0&&(x[N.index]=_r(o,N.index));let P=o.SyntheticNativeFunction(\"total\",d.map(N=>N.isList?x[N.index]:b)),M=o.BeginBroadcast([P]),I=h,E=[],v=[];for(let N of d){let L=N.isList?o.ListAccess([N.index,o.Subtract([M,I])]):N.index;if(v.push(L),N!==d[d.length-1]){let z=N.isList?x[N.index]:b;I=o.Add([I,z]),E.push(o.LessEqual([M,I]))}}let O=v[v.length-1];for(let N=v.length-2;N>=0;N--)O=o.Piecewise([E[N],v[N],O]);let A=o.EndBroadcast([M,O]);return o.BroadcastResult(ar(d[0].elementType),[A])}case\"unique\":{let d=f[0],y=o.getInstruction(d);if(!W(y.valueType)||y.valueType===wn)throw J(`Unexpected types for ${t}`);return o.SyntheticNativeFunction(\"elementsAt\",[d,o.SyntheticNativeFunction(\"uniquePerm\",[d])])}case\"polygon\":return g([{match:[],build:()=>{let d=o.ConstantOfType(Pt,[]);return o.SyntheticNativeFunction(\"polygon\",[d])}},{match:[T,T],noBroadcast:!0,build:()=>{throw Kp()}},{match:[T,T],build:()=>{let d=o.OrderedPair(f);return o.SyntheticNativeFunction(\"polygon\",[d])}},{match:{type:\"variadic\",initial:[],rest:R},build:()=>o.SyntheticNativeFunction(\"polygon\",f)}]);case\"directedangle\":return OR(e,f,n);case\"angle\":return o.SyntheticNativeFunction(\"undirectedAngleMarker\",[OR(e,f,n)]);case\"angles\":return o.SyntheticNativeFunction(\"polygonInteriorUndirectedAngles\",[f[0],Ee(e,new D.Identifier(\"trigAngleMultiplier\"))]);case\"directedangles\":return o.SyntheticNativeFunction(\"polygonInteriorDirectedAngles\",[f[0],Ee(e,new D.Identifier(\"trigAngleMultiplier\"))]);case\"coterminal\":{if(Je(o,f[0],Ae))return o.SyntheticNativeFunction(\"directedCoterminalAngle\",f);if(Je(o,f[0],Ge))return o.SyntheticNativeFunction(\"undirectedCoterminalAngle\",f);throw J(`Unexpected types for ${t}`)}case\"histogram\":case\"dotplot\":case\"boxplot\":case\"ttest\":case\"ittest\":case\"stats\":case\"det\":case\"inv\":case\"transpose\":case\"rref\":case\"trace\":case\"points\":case\"lines\":case\"circles\":case\"polygons\":case\"rays\":case\"arcs\":case\"vectors\":throw Nr(n);default:{let d=t;throw new Error(`Programming Error: unexpected compiler function ${d}`)}}}function NR(e,t){return mu(e,t,\"glider\",[{match:[Ie,T],build:()=>e.SyntheticNativeFunction(\"segmentGlider\",t)},{match:[fe,T],build:()=>e.SyntheticNativeFunction(\"lineGlider\",t)},{match:[Le,T],build:()=>e.SyntheticNativeFunction(\"rayGlider\",t)},{match:[pe,T],build:()=>e.SyntheticNativeFunction(\"circleGlider\",t)},{match:[ce,T],build:()=>e.SyntheticNativeFunction(\"arcGlider\",t)},{match:[Be,T],build:()=>e.SyntheticNativeFunction(\"polygonGlider\",t)}])}function vR(e,t,n){let{chunk:r}=e;if(zn(r,n)===0)return n;let s=r.SyntheticNativeFunction(\"min\",[_r(r,t),_r(r,n)]);return n=r.ListAccess([n,qE(e,r.List([r.Constant(1)]),r.List([s]),{stepMustBePositive:!0})]),r.SyntheticNativeFunction(\"elementsAt\",[t,r.SyntheticNativeFunction(\"sortPerm\",[n])])}function DR(e,t,n){let r=t[0],i=e.getInstruction(r);if(!oe(i.valueType,St))throw J(`Unexpected args for \"${n}\"`);let s=t.slice(1);for(let o of s)if(!oe(e.getInstruction(o).valueType,T))throw J(`Unexpected args for \"${n}\"`);if(W(i.valueType)){let o=[],a=1/0;for(let c of t){let l=Tr(e,c);o.push(l);let p=e.getInstruction(l);if(W(p.valueType)){let f=zn(e,l);if(f===void 0)throw df(oi(e,l));a=Math.min(a,f)}}let u=[];for(let c=0;c<a;c++){let l=zf(e,o[0],c),p=e.getInstruction(l);if(p.type!==42)throw J(`Unexpected opcode for distribution arg: ${p.type}`);let f=[];for(let m of o.slice(1))W(e.getInstruction(m).valueType)?f.push(zf(e,m,c)):f.push(m);u.push(Ko[p.symbol][n](e,l,f))}return e.List(u)}else{if(i.type!==42)throw J(`Unexpected opcode for distribution arg: ${i.type}`);return Ko[i.symbol][n](e,r,s)}}function SR(e,t){return t.length!==0&&e.getInstruction(t[0]).valueType!==We&&oe(e.getInstruction(t[0]).valueType,St)}function $G(e,t){let{chunk:n}=e;Xr(t.args);let r=Tu(e,t,t.args),i=!1,s=!1;for(let o=0;o<r.length;o++){let u=n.getInstruction(r[o]).valueType;i=i||u===rt,s=s||u!==rt}if(i&&s)throw J(\"Unexpected mix of actions and non-actions\");if(i)return AR(e,r);if(r.length===2)return n.OrderedPair(r);if(r.length==3)return n.OrderedTriple(r);throw J(`Unexpected tuple dimensions: ${r.length}`)}function YG(e,t){let{chunk:n}=e;Xr(t.args);let r=Tu(e,t,t.args);if(r.length<1)throw J(\"Empty bare sequence\");let i=n.getInstruction(r[0]).valueType;if(i===T)throw J(\"Ambiguous bare sequence\");return i===rt?AR(e,r):n.List(r)}function AR(e,t){let{chunk:n}=e,r=[],i=[];for(let o of t){let a=n.getInstruction(o);switch(a.type){case 49:{Array.prototype.push.apply(r,a.symbols),Array.prototype.push.apply(i,a.args);break}case 1:{let c=a.value.updateRules;for(let l in c)r.push(l),i.push(n.ConstantOfType(c[l].valueType,c[l].value));break}default:{var s=oi(n,o);throw s.length>0?tx(s):J(`Unexpected opcode for action: ${a.type}`)}}}return n.Action(r,i)}function _R(e,t){var n=e.frame[t];return n===Wt?pm(t):e.policy.assignmentForbidden(t)?ex(t):n&&n.type===\"FunctionDefinition\"?lm(t):Kb(t).allowExport()}function XG(e,t){switch(e.getInstruction(t).valueType){case Ie:case pe:case ce:return[e.Constant(0),e.Constant(1)];case fe:return[e.Constant(-1/0),e.Constant(1/0)];case Le:return[e.Constant(0),e.Constant(1/0)];case Be:return[e.Constant(0),e.SyntheticNativeFunction(\"count\",[e.SyntheticNativeFunction(\"vertices\",[t])])];default:return}}function ZG(e,t){let{policy:n,frame:r,chunk:i,scope:s,selection:o,recursiveFunctionContext:a}=e;if(!(t instanceof ya))throw new Error(\"Programming error: expected a ListComprehension node but got \"+t.type);let u=t._body,c=[],l=[],p=i.Constant(1),f=Object.create(r);Xr(t._inputLists);for(let{_symbol:I}of t._inputLists){let E=I;if(a&&r[E])throw gf(E);f[E]=nT(E)}for(let I of t.parameters){let E=I.identifier._symbol;if(a&&r[E])throw gf(E);f[E]=rT(E)}let m=ts(s),g=zs(e,f,m);for(let I=t._inputLists.length-1;I>=0;I--){let E=t._inputLists[I],v=E._symbol,O=Ee(g,E.args[1]);PR(i,o,E);let A=i.getInstruction(O);if(!W(A.valueType)){let L=XG(i,O);if(L){c.push({symbol:v,object:O,gliderBounds:L});continue}let z;if(ei(A.valueType)){let G=E.args[1].getInputSpan();G&&(z=Cn(G))}throw eT(v,ne(A.valueType),z)}let N=_r(i,O);l.push({symbol:v,assignedList:O,lengthIndex:N}),p=i.Multiply([p,N])}let d=Object.create(r),y=ts(s),h=[],b;if(l.length>0){let I=i.Constant(1);b=i.BeginBroadcast([p],{inputListSymbols:l.map(v=>v.symbol)}),xr(y,t._index._symbol,b);let E=I;for(let v=l.length-1;v>=0;v--){let{symbol:O,assignedList:A,lengthIndex:N}=l[v],L;if(l.length===1)L=b;else{let z=i.SyntheticNativeFunction(\"floor\",[i.Divide([i.Subtract([b,I]),E])]);L=i.Add([i.SyntheticNativeFunction(\"mod\",[z,N]),I]),v>0&&(E=i.Multiply([E,N]))}xr(y,O,i.ListAccess([A,L])),h.push(O)}}let x;if(t.parameters.length>0||c.length>0){let I=[],E=[];for(let v of t.parameters)I.push(v.identifier._symbol),E.push(Ee(g,v.bounds[0]),Ee(g,v.bounds[1]));for(let v of c)I.push(v.symbol),E.push(v.gliderBounds[0],v.gliderBounds[1]);x=i.BeginMap({parameterSymbols:I},E);for(let v=0;v<t.parameters.length+c.length;v++)i.BlockVar(T,[x]);for(let v=0;v<t.parameters.length;v++){let O=t.parameters[v].identifier._symbol,[A,N]=t.parameters[v].open,L=E[2*v],z=E[2*v+1],G=x+v+1,$=i.Piecewise([i.And([A?i.Greater([G,L]):i.GreaterEqual([G,L]),N?i.Less([G,z]):i.LessEqual([G,z])]),G,i.NanOfType(T)]);d[O]=Wt,xr(y,O,$),h.push(O)}for(let v=0;v<c.length;v++){let O=c[v].symbol,A=x+t.parameters.length+v+1;d[O]=Wt,xr(y,O,NR(i,[c[v].object,A])),h.push(O)}}for(let I of l)d[I.symbol]=Wt;let M=Ee({...zs(e,d,y),substitutionContext:e.substitutionContext.for(r,h)},u);if(x!==void 0){let I=i.EndMap([x,M]),E=i.getInstruction(M).valueType;if(ca(E))throw dT();if(!Gh(E))throw pT(E);let v=n.is3dPolicy()?2:1;if(t.parameters.length+c.length>v)throw fT(E,t.parameters.length);let O=kh(E,t.parameters.length+c.length);M=i.BlockVar(O,[I])}if(b!==void 0){let I=i.getInstruction(M);if(!ei(I.valueType))throw ec([ne(I.valueType)]);let E=i.EndBroadcast([b,M]);M=i.BroadcastResult(ar(I.valueType),[E])}else t.shouldCoerceToList&&(M=i.List([M]));return M}function qE(e,t,n,r){let{stepMustBePositive:i}=r,{chunk:s}=e;t=Ac(s,t),n=Ac(s,n);let o=s.getInstruction(t),a=s.getInstruction(n),u=yo(s,t,\"Programming error: expected range start list to have constant length.\"),c=yo(s,n,\"Programming error: expected range start list to have constant length.\");if(o.valueType!==se||a.valueType!==se)throw of();let l=s.Constant(1),p=s.Constant(0),f=s.ListAccess([t,l]),m=s.ListAccess([t,s.Constant(2)]),g=s.ListAccess([n,s.Constant(c)]),d=s.Subtract([g,f]),y=u>1?s.Subtract([m,f]):s.Piecewise([s.GreaterEqual([d,p]),l,s.Constant(-1)]),h=s.Add([l,s.SyntheticNativeFunction(\"round\",[s.Divide([d,y])])]),b=s.SyntheticNativeFunction(\"validateRangeLength\",[t,n,y,h]);i&&(b=s.Piecewise([s.GreaterEqual([y,p]),b,p]));let x=s.BeginBroadcast([b]),P=s.Add([f,s.Multiply([y,s.Subtract([x,l])])]),M=s.EndBroadcast([x,P]);return s.addComments({[f]:\"start\",[m]:\"second\",[g]:\"last\",[h]:\"proposedLength\",[y]:\"step\",[P]:\"body\"}),s.BroadcastResult(ar(s.getInstruction(P).valueType),[M])}function Rg(e,t){return Je(e,t,Ie)?e.SyntheticNativeFunction(\"lineFromSegment\",[t]):Je(e,t,he)?e.SyntheticNativeFunction(\"lineFromSegment\",[HG(e,t)]):Je(e,t,Le)?e.SyntheticNativeFunction(\"lineFromRay\",[t]):t}function WG(e,t){if(Je(e,t,ce)){let{center:n,radius:r}=LR(e,t);return e.SyntheticNativeFunction(\"circle\",[n,r])}return t}function LR(e,t){let n=e.SyntheticNativeFunction(\"arcCenter\",[t]),r=e.SyntheticNativeFunction(\"arcGlider\",[t,e.Constant(0)]),i=e.SyntheticNativeFunction(\"distance\",[n,r]);return{center:n,radius:i,startPoint:r}}function OR(e,t,n){let{chunk:r}=e;if(t.length===3&&Je(r,t[0],R)&&Je(r,t[1],R)&&Je(r,t[2],R)){let i=t[0],s=t[1],o=t[2],a=r.Subtract([i,s]),u=r.Subtract([o,s]),c=r.OrderedPairAccess(1,[a]),l=r.OrderedPairAccess(2,[a]),p=r.OrderedPairAccess(1,[u]),f=r.OrderedPairAccess(2,[u]),m=r.SyntheticNativeFunction(\"arctan\",[l,c]),g=r.Subtract([r.Multiply([c,f]),r.Multiply([l,p])]),d=r.Add([r.Multiply([c,p]),r.Multiply([l,f])]),y=r.SyntheticNativeFunction(\"arctan\",[g,d]),h=r.SyntheticNativeFunction(\"abs\",[y]),b=r.Constant(Math.PI),x=r.Constant(Math.PI*2);y=r.Piecewise([r.Equal([h,b]),b,r.Piecewise([r.Less([h,b]),y,r.Multiply([r.Multiply([r.SyntheticNativeFunction(\"sign\",[y]),r.Constant(-1)]),r.Subtract([x,h])])])]);let P=r.SyntheticNativeFunction(\"directedAngleMarker\",[s,m,y,Ee(e,new D.Identifier(\"trigAngleMultiplier\"))]),M=r.Constant(0),I=r.And([r.Equal([g,M]),r.Equal([d,M])]);return r.Piecewise([I,r.NanOfType(Ae),P])}else throw J(`Unexpected types for ${n}`)}function rR(e,t){return e.Divide([e.SyntheticNativeFunction(\"directedAngleMarkerRawDelta\",[t]),e.SyntheticNativeFunction(\"directedAngleMarkerMultiplier\",[t])])}function iR(e,t){return e.SyntheticNativeFunction(\"abs\",[e.Divide([e.SyntheticNativeFunction(\"undirectedAngleMarkerRawDelta\",[t]),e.SyntheticNativeFunction(\"undirectedAngleMarkerMultiplier\",[t])])])}function jG(e,t,n){let{chunk:r}=e,i=n.slice(1),s=Vp(t);if(!s)throw new Error(`Unexpected transformation type: ${t}`);let o=s.map(c=>{let l=0;for(let p=1;p<n.length;p++){let f=r.getInstruction(n[p]).valueType,m=Uu(c,p);m&&Rp(f,m)&&l++}return{signature:c,matchedArgsCount:l,signatureArgsCount:Array.isArray(c)?c.length-1:c.initial.length+1,providedArgsCount:n.length-1}}).sort((c,l)=>l.matchedArgsCount!==c.matchedArgsCount?l.matchedArgsCount-c.matchedArgsCount:c.signatureArgsCount-l.signatureArgsCount),a;switch(t){case\"translate\":{a=[{match:[he],build:()=>r.SyntheticNativeFunction(\"translation\",[r.SyntheticNativeFunction(\"vectorDisplacementAsPoint\",i)])},{match:[R,R],build:()=>r.SyntheticNativeFunction(\"translation\",[r.Subtract([i[1],i[0]])])}];break}case\"reflect\":{a=[{match:[{meta:\"union\",types:_d}],build:()=>{let c=Rg(r,i[0]);return r.SyntheticNativeFunction(\"reflection\",[c])}}];break}case\"rotate\":{a=[{match:[R,T],build:()=>{let c=Ee(e,new D.Identifier(\"trigAngleMultiplier\"));return r.SyntheticNativeFunction(\"rotation\",[i[0],r.Multiply([i[1],c])])}}];break}case\"dilate\":{a=[{match:[R,T],build:()=>r.SyntheticNativeFunction(\"dilation\",i)}];break}default:{let c=t;throw new Error(`Programming error: exhaustive check failed: ${c}`)}}let u=mu(r,i,()=>{throw Rb(t,Zo(r,i),o[0].signature)},a);return Ng(r,[u,n[0]],t,!0)}function JG(e,t){let{match:n}=e;return{...e,match:Array.isArray(n)?[t,...n]:{...n,initial:[t,...n.initial]}}}function QG(e){return e.map(([t,n])=>({match:[t],build:(r,i)=>r.SyntheticNativeFunction(n,i)}))}function Ng(e,t,n,r){let s=QG([[Ue,\"compose\"],[R,\"transformPoint\"],[Ie,\"transformSegment\"],[fe,\"transformLine\"],[Le,\"transformRay\"],[he,\"transformVector\"],[pe,\"transformCircle\"],[ce,\"transformArc\"],[Be,\"transformPolygon\"],[Ge,\"transformAngleMarker\"],[Ae,\"transformDirectedAngleMarker\"]]).map(a=>JG(a,Ue));function o(){throw r?Nb(n,Dc(e,t.slice(1))):Pi(n,Dc(e,t))}return mu(e,t,o,s)}function zE(e,t,n){let r=Rg(e,t[0]),i=Rg(e,t[1]),s=[r,i,e.ConstantOfType(T,n)];if(Je(e,r,pe)){if(Je(e,i,pe))return e.SyntheticNativeFunction(\"circleCircleIntersection\",s);if(Je(e,i,ce))return e.SyntheticNativeFunction(\"circleArcIntersection\",s);if(Je(e,i,fe))return e.SyntheticNativeFunction(\"circleLineIntersection\",s)}if(Je(e,r,ce)){if(Je(e,i,pe))return e.SyntheticNativeFunction(\"arcCircleIntersection\",s);if(Je(e,i,ce))return e.SyntheticNativeFunction(\"arcArcIntersection\",s);if(Je(e,i,fe))return e.SyntheticNativeFunction(\"arcLineIntersection\",s)}if(Je(e,r,fe)){if(Je(e,i,pe))return e.SyntheticNativeFunction(\"lineCircleIntersection\",s);if(Je(e,i,ce))return e.SyntheticNativeFunction(\"lineArcIntersection\",s);if(Je(e,i,fe))return e.SyntheticNativeFunction(\"lineLineIntersection\",s)}throw J(\"Invalid intersection types\")}function KG(e,[t,n],[r,i]){let{chunk:s,frame:o}=e,a=s.getInstruction(r).valueType,u=s.getInstruction(i).valueType,c=f=>{let m=o[f];return m&&m!==Wt?m:aS(e.scope,f)},l=Dg(t)?c(t._symbol):t,p=Dg(n)?c(n._symbol):n;if(!(!l||!p))return xR({getGeometryTree:f=>Wy(f).tree,lookup:c,isPointOrListOfPoints:f=>{if(f.isFunction)return!1;let m=Ee(e,f);return oe(s.getInstruction(m).valueType,R)},resolvesTo:(f,m)=>o[f]===m},l,a,p,u)}function e2(e,t){let{policy:n,frame:r,scope:i,recursiveFunctionContext:s}=e,o=t._body,a=ts(i),u=Object.create(r),c=[];for(let p=0;p<t._assignments.length;p++){let f=t._assignments[p]._lhs,m;if(f instanceof ze)m=f._symbol;else throw mf();let g=t._assignments[p].args[1],d=r[m];if(d){if(d!==Wt&&d.isError)throw d;if(d!==Wt&&d.type===\"FunctionDefinition\")throw hl(m);if(n.assignmentForbidden(m))throw gl(m);if(s)throw gf(m)}let y=Ee(e,g);xr(a,m,y,g),u[m]=Wt,c.push(m)}return Ee({...zs(e,u,a),substitutionContext:e.substitutionContext.with(r,c)},o)}var CR={points:Pt,lines:Bn,segments:Tn,polygons:Rn,circles:Fn,arcs:Vn,angles:gn,directedangles:hn,rays:Gn,vectors:kn};function t2(e,t){let{chunk:n,frame:r}=e,i=r.construction;if(i.isError)throw i;if(i.type!==\"Construction\")throw J(`Expected construction node but found ${i.type}}`);if(!Dg(t))throw J(`Expected identifier but found ${t.type}`);let s=t._symbol;if(!(s in CR))throw Nr(\"construction\");let o=CR[s];if(i.args.length===0)return n.ConstantOfType(o,[]);let a=ke(o),u=[];for(let c of i.args)try{let l=Ee(e,c);n.getInstruction(l).valueType===a&&u.push(l)}catch(l){if(l instanceof D.Base)continue;throw l}return n.List(u)}function id(e,t){let n=e.args;if(e instanceof cn&&t.definitions[e._symbol])return!1;if(e instanceof hr){let a=[id(e.args[0],t)||new Zt(!0)],u=id(e.args[1],t),c=id(e.args[2],t);return u&&a.push(u),c&&a.push(c),a.length===1?!1:(a.length===2&&a.push(a[1]),new hr(a))}let i=[],s=!1;for(let o of n){let a=id(o,t);if(a===!1){s=!0;continue}i.push(a)}return s?!1:e.copyWithArgs(i)}function wR(e,t,n){let{chunk:r,frame:i,scope:s}=e,o={},a=Object.keys(n.definitions);for(let h of a){let b=n.definitions[h];if(b instanceof C)throw b;o[h]=b}let u=t._argSymbols.filter(h=>Uy(s,h)===void 0&&i[h]===void 0),c=t._argSymbols.map(h=>u.includes(h)?r.SymbolicVar(T,h):Ee(e,new ze(h))),l=new HE(o,n.baseCases);try{VR(e,l,t,c)}catch(h){throw l.isUnconditionallyRecursive&&h instanceof C&&!h.blocksExport?a.length>1||FR(t,t._expression)?$a(a):rm(a):h}let p={},f={},m={},g=ts(s),d=Object.create(i);for(let h of a){let b=l.returnTypes[h];if(b===void 0)throw J(`Could not infer the return type for recursive function ${h}.`);let x=l.argTypes[h];if(x===void 0)throw J(`Could not infer the argument types for recursive function ${h}.`);f[h]={argTypes:x},p[h]=b,m[h]=r.FunctionHeader(h,b,f[h],o[h]._argSymbols),xr(g,h,m[h]),d[h]=Wt}let y=[];for(let h of a)y.push(m[h]);for(let h of y)r.getInstruction(h).recursionGroup=y;for(let h of a){let b=ts(g),x=Object.create(d),P=o[h],M=m[h],I=r.BeginFunction([M]);for(let O=0;O<P._argSymbols.length;O++){let A=P._argSymbols[O],N=r.BlockVar(f[h].argTypes[O],[I]);x[A]=Wt,xr(b,A,N)}let E={...zs(e,x,b),recursiveFunctionContext:{type:\"compile-general\"}},v=BR(E,P,n.baseCases,Ee(E,P._expression));if(r.getInstruction(v).valueType!==p[h])throw Pi(h,Zo(r,c));v=Tr(r,v),r.EndFunction([I,v])}if(l.isUnconditionallyRecursive){let h=r.getRecursiveFunctionMetadata(m[t._symbol]),b=h==null?void 0:h.recursiveStructure;throw b!=null&&b.canIterate?new Error(\"Programming error: expected canIterate==false for unconditionally recursive function.\"):b!=null&&b.maxRecursiveCallOffsets&&a.every(x=>b.maxRecursiveCallOffsets[x]===0)?$a(a):cb(a,{type:\"missing-non-recursive-branch\",recursionGroup:a,recursiveStructure:b})}return r.FunctionCall([m[t._symbol],...c])}function FR(e,t){return t instanceof cn&&t._symbol===e._symbol?t.args.every((n,r)=>n instanceof ze&&n._symbol===e._argSymbols[r]):t.args.every(n=>FR(e,n))}function VR(e,t,n,r){let{chunk:i,scope:s,frame:o}=e,a=t.returnTypes[n._symbol],u=t.argTypes[n._symbol];if(a!==void 0&&u!==void 0)return{returnType:a,argTypes:u};let c=n._argSymbols.length,l=r.length;if(c!==l)throw ds(n._symbol,c,l);let p=r.map(I=>i.getInstruction(I).valueType),f=`${n._symbol}:${p.join(\",\")}:${Object.keys(t.returnTypes).join(\",\")}`;if(t.stack.includes(f))return t.isUnconditionallyRecursive=!0,{returnType:T,argTypes:p};t.stack.push(f);let m=i.instructionsLength(),g=i.getReturnIndex(),d;{let I=id(n._expression,t),E=n._symbol,v=t.baseCases[E],O=ts(s),A=Object.create(o),N={...zs(e,A,O),recursiveFunctionContext:t},L=[];for(let G=0;G<n._argSymbols.length;G++){let $=n._argSymbols[G],w=i.SymbolicVar(p[G]);L.push(w),A[$]=Wt,xr(O,$,w)}if(!t.baseCaseTypes.hasOwnProperty(E)){let G,$,w;for(let Y of v){let de=Y.getRef();if(!Y.specifiedArg.valid||!de)continue;let re=new ze(de),ie=Ee(N,re);w||(w=re);let Z=i.getInstruction(ie).valueType;if(G===void 0)G=Y.specifiedArg.argIndex;else if(G!==Y.specifiedArg.argIndex)throw Hp();let Re=$;if(Re===void 0)$=Z;else{let Ne=ua(Re,Z);if(Ne===void 0)throw zp();$=Ne}}t.baseCaseTypes[E]=$,t.firstValidBaseCaseIdentifiers[E]=w}let z=t.firstValidBaseCaseIdentifiers[E];if(I||z){let G=BR(N,n,t.baseCases,Ee(N,I||z)),{someArgBroadcasts:$,inferredArgTypes:w}=n2(i,L,g,G);if(p=w,d=i.getInstruction(G).valueType,$){if(!W(d))throw J(`TODO: expected a list type but found ${on(d)}`);d=ke(d)}let Y=t.returnTypes[n._symbol];if(Y!==void 0&&d!==Y)throw zp();t.argTypes[n._symbol]=w,t.returnTypes[n._symbol]=d}}i.truncate(m);let y=ts(s),h=Object.create(o),b={...zs(e,h,y),recursiveFunctionContext:t};for(let I=0;I<n._argSymbols.length;I++){let E=n._argSymbols[I],v=i.SymbolicVar(p[I]);h[E]=Wt,xr(y,E,v)}let x=Ee(b,n._expression);t.stack.pop();let P=i.getInstruction(x).valueType,M=d===void 0?P:ua(d,P);if(M===void 0)throw J(`Mismatched return types: ${d&&on(d)} vs ${on(P)}`);return t.returnTypes[n._symbol]=M,i.truncate(m),{returnType:M,argTypes:p}}function n2(e,t,n,r){let i=[],u=[];for(let p=0;p<r-n;p++)u.push(0);if(e.getInstruction(r).type===48){u.push(1);for(let p=r;p>=0;p--){let f=u[p-n];if(f===0)continue;let m=e.getInstruction(p);if(!be(m)){if(m.type===24?i.push(p):m.type===23&&i.pop(),(m.type===48||m.type===24)&&(u[m.args[0]-n]|=f),m.type===39||m.type===41||m.type===40)for(let g of i){let y=e.getInstruction(g).args[0];if(m.args[1]===y){u[m.args[0]-n]|=f;break}}if(i.length>0){let g=i[i.length-1],y=e.getInstruction(g).args[0];for(let h of m.args)h>=y&&(u[h-n]|=f);m.type===33&&m.args[0]>=y&&(u[m.args[0]-n]|=2)}}}}let c=[],l=!1;for(let p=0;p<t.length;p++){let f=t[p],m=e.getInstruction(f).valueType;if(u[f-n]&2){if(!W(m))throw J(`Expected list type but found ${on(m)}`);l=!0,c.push(ke(m))}else c.push(m)}return{inferredArgTypes:c,someArgBroadcasts:l}}function BR(e,t,n,r){let{chunk:i}=e;for(let s of n[t._symbol]){let o=s.specifiedArg;if(!o.valid)continue;let a=t._argSymbols[o.argIndex],u=Ee(e,new ze(a)),c=i.Equal([u,i.Constant(o.argValue)]),l=Ee(e,s),p=i.getInstruction(l).valueType,f=i.getInstruction(r).valueType;if(ua(p,f)===void 0)throw zp();r=i.Piecewise([c,l,r])}return r}Tt.prototype.buildIRExpression=function(e,t,n){var i;var r=mp({policy:e,frame:t,wrapInList:n&&n.wrapInList,coerceToNumber:n&&n.coerceToNumber,selection:n&&n.selection},this);return e.isGeometryEnabled()&&r.argNames.some(s=>s[0]===\"$\")?lT():(i=r.getError())!=null?i:new pn(r)};C.prototype.buildIRExpression=function(e,t,n){return this};var GR=Wc;function $E(e){for(var t=[],n=0;n<e.length;n++)t.push(ne(e[n].valueType));return t}function kR(e,t){var n=t.length,r=t[0];if(n<2)throw As(this._symbol);if(!GR(r.valueType,[se,We]))throw As(this._symbol);if(n>2)throw ym(this._symbol,2)}D.Histogram.prototype.typeCheck=kR;D.DotPlot.prototype.typeCheck=kR;D.BoxPlot.prototype.typeCheck=function(e,t){var n=t.length,r=t[0];if(n===0)throw As(this._symbol);if(!GR(r.valueType,[se,We]))throw As(this._symbol);if(n>1)throw As(this._symbol)};D.TTest.prototype.typeCheck=function(e,t){var n=this._symbol;if(t.length===0)throw As(n);if(t[0].valueType===We)throw yl(n);if(t[0].valueType!==se)throw As(n);if(t.length>2)throw ym(n,2);if(t[0].length<2)throw yl(n);if(t[1]&&t[1].valueType!==T)throw Pi(n,$E(t))};D.IndependentTTest.prototype.typeCheck=function(e,t){var n=this._symbol;if(t.length!==2)throw ef(n);if(!W(t[0].valueType)||!W(t[1].valueType))throw sf(n);if(t[0].valueType===We||t[1].valueType===We)throw yl(\"ittest\");if(t[0].valueType!==se||t[1].valueType!==se)throw Pi(n,$E(t));if(t[0].length<2||t[1].length<2)throw yl(\"ittest\")},D.Stats.prototype.typeCheck=function(e,t){var n=t.length,r=t[0];if(n===0)throw As(this._symbol);if(r.valueType===We)throw Pi(this._symbol,$E(t));if(r.valueType!==se)throw As(this._symbol);if(n>1)throw As(this._symbol)};var Iu=function(e,t,n){n=n||0;var r=Array(n+1).join(\" \"),i=r+\" \";return`[\n`+i+e.map(function(s){return s.repr(t,n+1)}).join(`,\n`+i)+`\n`+r+\"]\"},fr=function(e,t){return t=t||\"\",\"\"+t+e};D.Expression.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+Iu(this.args,e,t)+\")\"};D.IRExpression.prototype.repr=function(e,t){t=t||0;var n=Array(t+1).join(\" \"),r=n+\" \",i=this._chunk.print().split(`\n`);return i.pop(),fr(this.type,e)+\"(`\\n\"+r+i.join(`\n`+r)+`\n`+n+\"`)\"};D.DoubleInequality.prototype.repr=function(e,t){t=t||0;var n=Array(t+1).join(\" \"),r=n+\" \";return fr(this.type,e)+`([\n`+r+this.args[0].repr(e,t+1)+`,\n`+r+\"'\"+this.args[1]+`',\n`+r+this.args[2].repr(e,t+1)+`,\n`+r+\"'\"+this.args[3]+`',\n`+r+this.args[4].repr(e,t+1)+`\n`+n+\"])\"};D.ComparatorChain.prototype.repr=function(e,t){return t=t||0,fr(this.type,e)+\"([\"+this.symbols.map(n=>`'${n}'`).join(\",\")+`],\n`+Iu(this.args,e,t)+\")\"};D.Identifier.prototype.repr=function(e){return fr(this.type,e)+\"('\"+this._symbol+\"')\"};D.Constant.prototype.repr=function(e){return fr(this.type,e)+\"(\"+this.asValue()+\")\"};D.ExtendSeed.prototype.repr=function(e,t){return fr(this.type,e)+\"('\"+this.tag+\"', \"+Iu(this.args,e,t)+\")\"};D.Seed.prototype.repr=function(e){return fr(this.type,e)+\"(\"+this.asValue()+\")\"};D.FunctionCall.prototype.repr=function(e,t){return fr(this.type,e)+\"('\"+this._symbol+\"', \"+Iu(this.args,e,t)+\")\"};D.RecursiveFunctionBaseCase.prototype.repr=function(e,t){return this.originalNode.repr(e,t)};D.Assignment.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+new D.Identifier(this._symbol).repr(e,t)+\", \"+this._expression.repr(e,t)+\")\"};D.CoordinateEquation.prototype.repr=function(e,t){return this.asEquation().repr(e,t)};D.Regression.prototype.repr=D.Equation.prototype.repr=D.CallAssignment.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+this._lhs.repr(e,t)+\", \"+this._rhs.repr(e,t)+\")\"};D.FunctionDefinition.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+new D.Identifier(this._symbol).repr(e,t)+\", \"+Iu(this._argSymbols.map(function(n){return new D.Identifier(n)}),e,t)+\", \"+this._expression.repr(e,t)+\")\"};D.Error.prototype.repr=function(e,t){return fr(this.type,e)+\"('\"+this._msg+\"')\"};D.Derivative.prototype.repr=function(e,t){return fr(this.type,e)+\"('\"+this._symbol+\"', \"+Iu(this.args,e,t)+\")\"};D.SolvedEquation.prototype.repr=function(e,t){return fr(this.type,e)+\"('\"+this._symbol+\"', \"+this._expression.repr(e,t)+\")\"};D.OptimizedRegression.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+JSON.stringify(this.parameters)+\", \"+JSON.stringify(this.residuals)+\", \"+JSON.stringify(this.statistics)+\", \"+this.model.repr(e,t+1)+\", \"+JSON.stringify({isModelValid:this.isModelValid,residualVariable:this.residualVariable,residualSuggestionId:this.residualSuggestionId,shouldSuggestLogMode:this.shouldSuggestLogMode,isLinear:this.isLinear,parameterWarning:this.parameterWarning})+\")\"};D.Table.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+Iu(this.columns,e,t)+\")\"};D.TableColumn.prototype.repr=function(e,t){return fr(this.type,e)+\"(\"+this.header.repr(e,t)+\", \"+this.length+\", \"+Iu(this.values,e,t)+\")\"};D.Image.prototype.repr=function(e,t){var n=Array(t+1).join(\" \"),r=n+\" \";return fr(this.type,e)+`({\n`+r+\"center: \"+this.center.repr(e,t+1)+`,\n`+r+\"radianAngle: \"+this.radianAngle.repr(e,t+1)+`,\n`+r+\"width: \"+this.width.repr(e,t+1)+`,\n`+r+\"height: \"+this.height.repr(e,t+1)+`},\n`+r+\"opacity: \"+this.opacity.repr(e,t+1)+`,\n`+r+JSON.stringify(this.moveStrategy)+`\n`+n+\"})\"};D.Ticker.prototype.repr=function(e,t){var n=Array(t+1).join(\" \"),r=n+\" \";return fr(this.type,e)+`({\n`+r+\"handler: \"+this.handler.repr(e,t+1)+`,\n`+r+\"minStep: \"+this.minStep.repr(e,t+1)+`\n`+n+\"})\"};D.Slider.prototype.repr=function(e,t){var n=Array(t+1).join(\" \"),r=n+\" \";return fr(this.type,e)+`({\n`+r+\"sliderAssignment: \"+this.sliderAssignment.repr(e,t+1)+`,\n`+r+\"sliderMin: \"+(this.sliderMin&&this.sliderMin.repr(e,t+1))+`,\n`+r+\"sliderMax: \"+(this.sliderMax&&this.sliderMax.repr(e,t+1))+`,\n`+r+\"sliderStep: \"+(this.sliderStep&&this.sliderStep.repr(e,t+1))+`},\n`+n+\")\"};var _g=function(e,t){return e.map(function(n){return n.substitute(t)})};D.Identifier.prototype.substitute=function(e){return e[this._symbol]?e[this._symbol]:this};D.FunctionCall.prototype.substitute=function(e){var t=e[this._symbol];if(t){if(t.type===\"Identifier\")return new D.FunctionCall(t,_g(this.args,e));if(t.type===\"Constant\")return new D.Multiply([t,this.args.length===1?this.args[0].substitute(e):new D.Constant(NaN)])}return D.Expression.prototype.substitute.call(this,e)};D.Constant.prototype.substitute=function(e){return this};D.Expression.prototype.substitute=function(e){return this.copyWithArgs(_g(this.args,e))};D.Derivative.prototype.substitute=function(e){var t=e[this._symbol];if(t){if(t.type===\"Identifier\")return new D.Derivative(t,_g(this.args,e));throw new Error(\"Cannot substitute for a derivative variable with a non-Identifier\")}return new D.Derivative(this._symbol,_g(this.args,e))};D.Expression.prototype.simpleFunctionExpression=function(){return this};D.Assignment.prototype.simpleFunctionExpression=function(){return this._expression};D.CoordinateEquation.prototype.simpleFunctionExpression=function(){return this.asEquation().simpleFunctionExpression()};D.FunctionDefinition.prototype.simpleFunctionExpression=function(){return this._expression};D.RecursiveFunctionBaseCase.prototype.simpleFunctionExpression=function(){return this._expression};D.Equation.prototype.simpleFunctionExpression=D.CallAssignment.prototype.simpleFunctionExpression=function(){return this.asComparator().simpleFunctionExpression()};function ea(e){return e>=100}function zR(e,t){switch(e){case 106:return 200;case 107:return 201;case 108:return 202;case 103:return 214;case 130:return 215;case 112:return 209;case 113:return 210;case 110:switch(t){case\"z\":return 206;case\"theta\":return 205;case\"x\":case\"y\":case\"r\":case\"_implicit\":return 211;default:return 10}case 109:switch(t){case\"r\":return 203;case\"theta\":return 204;case\"x\":case\"y\":case\"z\":case\"_implicit\":return 213;default:return 10}case 111:switch(t){case\"theta\":return 207;case\"phi\":return 208;case\"x\":case\"y\":case\"z\":case\"rho\":case\"_implicit\":return 212;default:return 10}default:return 10}}function YE(e){switch(e){case 123:case 122:case 121:case 120:case 124:case 126:case 127:return!0;default:return!1}}var Lg={normaldist:{type:\"distribution\",symbol:\"normaldist\",params:[\"mean\",\"stdev\"],defaults:[\"0\",\"1\"],discrete:!1},tdist:{type:\"distribution\",symbol:\"tdist\",params:[\"dof\"],defaults:[void 0],discrete:!1},binomialdist:{type:\"distribution\",symbol:\"binomialdist\",params:[\"trials\",\"probsuccess\"],defaults:[void 0,\"0.5\"],discrete:!0},poissondist:{type:\"distribution\",symbol:\"poissondist\",params:[\"mean\"],defaults:[void 0],discrete:!0},uniformdist:{type:\"distribution\",symbol:\"uniformdist\",params:[\"min\",\"max\"],defaults:[\"0\",\"1\"],discrete:!1}},r2={Histogram:{type:\"visualization\",symbol:\"histogram\",params:[\"data\",\"binwidth\"],defaults:[void 0,\"1\"]},DotPlot:{type:\"visualization\",symbol:\"dotplot\",params:[\"data\",\"binwidth\"],defaults:[void 0,\"1\"]},BoxPlot:{type:\"visualization\",symbol:\"boxplot\",params:[\"data\"],defaults:[void 0]}};function HR(e){let t=Vs(e,{trailingComma:!0});return Aa(t)}function Aa(e){let t=e,n=r2[t.type];if(!n)switch(t.type===\"Assignment\"&&(t=t._expression),t.type){case\"FunctionCall\":{n=Lg[t._symbol];break}default:return}if(!n)return;let r={},i=n.params,s=t.args;for(let o=0;o<i.length;o++){let a=s[o];r[i[o]]=a&&a.getInputString()||\"\"}return{...n,span:t.getInputSpan(),values:r}}var s2={X_OR_Y:{points:!1,lines:!0,fill:!1},SINGLE_POINT:{points:!0,lines:!1,fill:!1},POINT_LIST:{points:!0,lines:!1,fill:!1},PARAMETRIC:{points:!1,lines:!0,fill:!1},POLAR:{points:!1,lines:!0,fill:!1},IMPLICIT:{points:!1,lines:!0,fill:!1},POLYGON:{points:!1,lines:!0,fill:!0},HISTOGRAM:{points:!1,lines:!0,fill:!0},DOTPLOT:{points:!0,lines:!1,fill:!1},BOXPLOT:{points:!1,lines:!0,fill:!1},TTEST:{points:!1,lines:!1,fill:!1},STATS:{points:!1,lines:!1,fill:!1},VECTOR2D:{points:!1,lines:!0,fill:!1},POINT3D:{points:!0,lines:!1,fill:!1},POINT3D_LIST:{points:!0,lines:!1,fill:!1},CURVE3D_xyz_t:{points:!1,lines:!0,fill:!1},SLICE:{points:!1,lines:!0,fill:!1},SLICE_r\\u03B8z_at_z:{points:!1,lines:!0,fill:!1},SLICE_zr\\u03B8_at_r:{points:!1,lines:!0,fill:!1},SLICE_zr\\u03B8_at_\\u03B8:{points:!1,lines:!0,fill:!1},SLICE_zr\\u03B8_at_xyz:{points:!1,lines:!0,fill:!1},SLICE_r\\u03B8\\u03C6_at_\\u03B8:{points:!1,lines:!0,fill:!1},SLICE_r\\u03B8\\u03C6_at_\\u03C6:{points:!1,lines:!0,fill:!1},SLICE_r\\u03B8\\u03C6_at_xyz:{points:!1,lines:!0,fill:!1},SLICE_xyz_uv:{points:!1,lines:!0,fill:!1},SEGMENT3D:{points:!1,lines:!0,fill:!1},VECTOR3D:{points:!1,lines:!0,fill:!1},SPHERE3D:{points:!1,lines:!0,fill:!1},SURFACE_xyz_uv:{points:!1,lines:!0,fill:!1},SURFACE_z_r\\u03B8:{points:!1,lines:!0,fill:!1},SURFACE_r_\\u03B8z:{points:!1,lines:!0,fill:!1},SURFACE_r_\\u03B8\\u03C6:{points:!1,lines:!0,fill:!1},SURFACE_r_\\u03B8z_AMBIGUOUS:{points:!1,lines:!0,fill:!1},SURFACE:{points:!1,lines:!0,fill:!1},TRIANGLE3D:{points:!1,lines:!0,fill:!1},SURFACE_AMBIGUOUS:{points:!1,lines:!0,fill:!1},SURFACE_CONSTANT_AMBIGUOUS:{points:!1,lines:!0,fill:!1},IMPLICIT_SURFACE:{points:!1,lines:!0,fill:!1},IMPLICIT_SURFACE_AMBIGUOUS:{points:!1,lines:!0,fill:!1}};function XE(e,t,n){var i,s,o,a,u,c;if(e===void 0)return{points:!1,lines:!1,fill:!1};let r=s2[e];switch(e){case\"SINGLE_POINT\":return{points:!0,lines:!1,fill:!1};case\"POINT_LIST\":case\"POINT3D_LIST\":case\"DOTPLOT\":return{points:(i=t.points)!=null?i:r.points,lines:(s=t.lines)!=null?s:r.lines,fill:!1};case\"POINT3D\":return{points:(o=t.points)!=null?o:r.points,lines:!1,fill:!1};case\"PARAMETRIC\":case\"POLYGON\":case\"X_OR_Y\":case\"VECTOR2D\":case\"POLAR\":case\"IMPLICIT\":case\"HISTOGRAM\":case\"BOXPLOT\":case\"TTEST\":case\"STATS\":case\"CURVE3D_xyz_t\":return{points:!1,lines:(a=t.lines)!=null?a:r.lines,fill:(u=t.fill)!=null?u:r.fill};case\"TRIANGLE3D\":case\"SPHERE3D\":case\"SURFACE\":case\"SURFACE_r_\\u03B8z\":case\"SURFACE_z_r\\u03B8\":case\"SURFACE_r_\\u03B8\\u03C6\":case\"SURFACE_xyz_uv\":case\"IMPLICIT_SURFACE\":case\"SURFACE_AMBIGUOUS\":case\"SURFACE_CONSTANT_AMBIGUOUS\":case\"SURFACE_r_\\u03B8z_AMBIGUOUS\":case\"IMPLICIT_SURFACE_AMBIGUOUS\":case\"SEGMENT3D\":case\"VECTOR3D\":case\"SLICE\":case\"SLICE_r\\u03B8z_at_z\":case\"SLICE_zr\\u03B8_at_r\":case\"SLICE_zr\\u03B8_at_\\u03B8\":case\"SLICE_zr\\u03B8_at_xyz\":case\"SLICE_r\\u03B8\\u03C6_at_\\u03B8\":case\"SLICE_r\\u03B8\\u03C6_at_\\u03C6\":case\"SLICE_r\\u03B8\\u03C6_at_xyz\":case\"SLICE_xyz_uv\":return{points:!1,lines:(c=t.lines)!=null?c:r.lines,fill:!1};default:n&&n(e);let l=e;return XE(e,t)||l}}function ZE(e){if(e===void 0)return!1;switch(e){case\"SINGLE_POINT\":case\"POINT_LIST\":case\"PARAMETRIC\":case\"POLYGON\":case\"X_OR_Y\":case\"VECTOR2D\":case\"POLAR\":case\"IMPLICIT\":case\"SURFACE\":case\"SURFACE_AMBIGUOUS\":case\"SURFACE_CONSTANT_AMBIGUOUS\":case\"SURFACE_r_\\u03B8z\":case\"SURFACE_r_\\u03B8z_AMBIGUOUS\":case\"SURFACE_z_r\\u03B8\":case\"SURFACE_r_\\u03B8\\u03C6\":case\"SURFACE_xyz_uv\":case\"IMPLICIT_SURFACE\":case\"IMPLICIT_SURFACE_AMBIGUOUS\":case\"CURVE3D_xyz_t\":case\"SLICE\":case\"SLICE_r\\u03B8z_at_z\":case\"SLICE_zr\\u03B8_at_r\":case\"SLICE_zr\\u03B8_at_\\u03B8\":case\"SLICE_zr\\u03B8_at_xyz\":case\"SLICE_r\\u03B8\\u03C6_at_\\u03B8\":case\"SLICE_r\\u03B8\\u03C6_at_\\u03C6\":case\"SLICE_r\\u03B8\\u03C6_at_xyz\":case\"SLICE_xyz_uv\":case\"SEGMENT3D\":case\"VECTOR3D\":case\"SPHERE3D\":case\"POINT3D\":case\"POINT3D_LIST\":case\"TRIANGLE3D\":return!0;case\"HISTOGRAM\":case\"BOXPLOT\":case\"DOTPLOT\":case\"TTEST\":case\"STATS\":return!1;default:return e}}function UR(e){return e===\"SURFACE_r_\\u03B8\\u03C6\"||e===\"SLICE_r\\u03B8\\u03C6_at_\\u03B8\"||e===\"SLICE_r\\u03B8\\u03C6_at_\\u03C6\"||e===\"SLICE_r\\u03B8\\u03C6_at_xyz\"}function qR(e){return e===\"SURFACE_z_r\\u03B8\"||e===\"SLICE_zr\\u03B8_at_r\"||e===\"SLICE_zr\\u03B8_at_\\u03B8\"||e===\"SLICE_zr\\u03B8_at_xyz\"}function $R(e){return e===\"SURFACE_r_\\u03B8z\"||e===\"SURFACE_r_\\u03B8z_AMBIGUOUS\"||e===\"SLICE_r\\u03B8z_at_z\"}function ta(e){if(typeof e==\"string\")return e;if(e===void 0)return\"\";if(isNaN(e))return\"\\\\frac{0}{0}\";if(e===1/0)return\"\\\\infty\";if(e===-1/0)return\"-\\\\infty\";let t=e+\"\";return t=t.replace(/^1e\\+?([-\\d]+)/,\"10^{$1}\"),t=t.replace(/([-\\d\\.]+)e\\+?([-\\d]+)/,\"$1\\\\cdot 10^{$2}\"),t}function o2(e){let t=e+\"\";if(/\\d+\\.?\\d*e[\\+\\-]*\\d+/i.test(t)){let r=\"0\",i=String(t).toLowerCase().split(\"e\"),s=parseFloat(i[0]),o=parseInt(i[1],10),a=Math.abs(o),u=Math.abs(s).toString().split(\".\");if(o<0)t=\"0.\"+new Array(a).join(r)+u.join(\"\");else{var n=u[1];n&&(a=a-n.length),t=u.join(\"\")+new Array(a+1).join(r)}s<0&&(t=\"-\"+t)}return t}function NQ(e,t=2){var n=o2(e),r=n.indexOf(\".\");if(r===-1)return n;for(var i,s=r+1;s<n.length;s++)if(i){if(n[s]!==i)break}else if(n[s]===\"0\"||n[s]===\"9\")i=n[s];else break;return n.substr(0,Math.max(r+5,s+t))}function vn(e,t){if(W(e)){let n=[];for(let r=0;r<t.length;r++)n.push(vn(ke(e),t[r]));return`\\\\left[${n.join(\",\")}\\\\right]`}switch(e){case T:return ta(t);case R:{let[s,o]=t;return`\\\\left(${ta(s)},${ta(o)}\\\\right)`}case V:{let[s,o,a]=t;return`\\\\left(${ta(s)},${ta(o)},${ta(a)}\\\\right)`}case Ut:return\"\\\\operatorname{rgb}\\\\left(\"+[vn(T,t[0]),vn(T,t[1]),vn(T,t[2])].join(\",\")+\"\\\\right)\";case Be:{let s=[];for(let o of t)s.push(vn(R,o));return\"\\\\operatorname{polygon}\\\\left(\"+s.join(\",\")+\"\\\\right)\"}case Ie:return\"\\\\operatorname{segment}\\\\left(\"+[vn(R,t[0]),vn(R,t[1])].join(\",\")+\"\\\\right)\";case fe:return\"\\\\operatorname{line}\\\\left(\"+[vn(R,t[0]),vn(R,t[1])].join(\",\")+\"\\\\right)\";case Le:return\"\\\\operatorname{ray}\\\\left(\"+[vn(R,t[0]),vn(R,t[1])].join(\",\")+\"\\\\right)\";case he:let n=t[0],r=t[1],i=[r[0]+n[0],r[1]+n[1]];return`\\\\operatorname{vector}\\\\left(${vn(R,r)},${vn(R,i)}\\\\right)`;case pe:return\"\\\\operatorname{circle}\\\\left(\"+[vn(R,t[0]),vn(T,t[1])].join(\",\")+\"\\\\right)\";case ce:return\"\\\\operatorname{arc}\\\\left(\"+[vn(R,t[0]),vn(R,t[1]),vn(R,t[2])].join(\",\")+\"\\\\right)\";case Ge:return\"\\\\operatorname{angle}\\\\left(\"+[vn(R,t[0]),vn(T,t[1]),vn(T,t[2])].join(\",\")+\"\\\\right)\";case Ae:return\"\\\\operatorname{directedangle}\\\\left(\"+[vn(R,t[0]),vn(T,t[1]),vn(T,t[2])].join(\",\")+\"\\\\right)\";case mn:return`\\\\operatorname{tone}\\\\left(${vn(T,t[0])},${vn(T,t[1])}\\\\right)`;default:throw new Error(\"Cannot serialize a value of type \"+ne(e)+\".\")}}function WE(e){let t={};for(let n in e.updateRules)t[n]=jE(e,n);return t}function jE(e,t){let{valueType:n,value:r}=e.updateRules[t];return`${ur(t)}=${vn(n,r)}`}var xs=class{constructor(t){this.xtolerance=t.xtolerance||t.tolerance||0,this.ytolerance=t.ytolerance||t.tolerance||0,this.ztolerance=t.ztolerance||t.tolerance||0,this.map=t.map,this.segments=[],this.segment=[],this.pivotPoint=void 0,this.pendingPoint=void 0}colinear(t,n,r){let i=this.map(t),s=this.map(n),o=this.map(r);var a=Rs(o[0],o[1],o[2]||0,i[0],i[1],i[2]||0,s[0],s[1],s[2]||0);if(a<1)return!1;var u=[i[0]+a*(s[0]-i[0]),i[1]+a*(s[1]-i[1]),i.length===3?i[2]+a*(s[2]-i[2]):0];return Math.abs(o[0]-u[0])<=this.xtolerance&&Math.abs(o[1]-u[1])<=this.ytolerance&&(i.length===2||Math.abs(o[2]-u[2])<=this.ztolerance)}addPoint(t){if(this.dimensions=t.length,this.xtolerance<0&&this.ytolerance<0&&(this.dimensions===2||this.ztolerance<0)){this.segment.push.apply(this.segment,t);return}if(!this.segment.length){this.segment.push.apply(this.segment,t);return}let n=this.dimensions===2?[this.segment[this.segment.length-2],this.segment[this.segment.length-1]]:[this.segment[this.segment.length-3],this.segment[this.segment.length-2],this.segment[this.segment.length-1]];if(!(t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2])){if(!this.pivotPoint||!this.pendingPoint){this.pivotPoint=t,this.pendingPoint=t;return}(!this.colinear(n,this.pivotPoint,t)||as(n[0]-t[0],n[1]-t[1],(n[2]||0)-(t[2]||0))<as(n[0]-this.pendingPoint[0],n[1]-this.pendingPoint[1],(n[2]||0)-(this.pendingPoint[2]||0)))&&(this.flushPending(),this.pivotPoint=t),this.pendingPoint=t}}flushPending(){this.pendingPoint&&(this.segment.push.apply(this.segment,this.pendingPoint),this.pivotPoint=void 0,this.pendingPoint=void 0)}breakSegment(){this.flushPending(),this.segment.length>(this.dimensions||2)&&this.segments.push(this.segment),this.segment=[]}getSegments(){return this.breakSegment(),this.segments}finish(){return{segments:this.getSegments(),resolved:!0}}};var XR=5,a2=Math.pow(2,14),{abs:Hs}=Math;function ud(e,t){let n=u2(e,t);return{segments:n.contours.strokeSegments,fillSegments:n.contours.fillSegments,resolved:n.quadTree.resolved}}function u2(e,t){let n=Math.pow(2,-XR),r=YR(t,n),i=YR(t,2*n),s=c2(e,r,i),o=g2(s.root,e,r),a=T2(o,e,r);return{paddedDomain:r,rootDomain:i,quadTree:s,triangles:o,contours:a}}function gp(e,t,n){return{x:e,y:t,z:n}}function Eu(e,t,n){return{x:e,y:t,isZero:n}}function wg(e,t,n){return{vertices:[e,t,n],visited:!1,next:void 0}}function YR(e,t){let{mathToPixels:n}=e,r=n.interpolateX(e.xmin,e.xmax,-t),i=n.interpolateX(e.xmax,e.xmin,-t),s=n.interpolateY(e.ymin,e.ymax,-t),o=n.interpolateY(e.ymax,e.ymin,-t);return{...e,xmin:r,ymin:s,xmax:i,ymax:o}}function sd(e,t){return{depth:e,vertices:t,children:void 0,center:void 0}}function JE(e,t,n){e.center=ZR(e.vertices[0],e.vertices[1],e.vertices[2],e.vertices[3],t,n)}function c2(e,t,n){let r=l2(e,n),i=[],s=[];s.push(r);let o=1,a=!0;e:for(;s.length;){let u=i;i=s,s=u;let c;for(;c=i.pop();)if(f2(c,e,t)){if(p2(c,e,t),!c.children){a=!1;break e}if(s.push(c.children[0]),s.push(c.children[1]),s.push(c.children[2]),s.push(c.children[3]),o+=3,o>=a2){a=!1;break e}}else JE(c,e,t)}for(let u=0;u<i.length;u++)JE(i[u],e,t);for(let u=0;u<s.length;u++)JE(s[u],e,t);return{root:r,resolved:a}}function l2(e,t){let n=t.xmin,r=t.xmax,i=t.ymin,s=t.ymax;return sd(0,[yp(n,s,e),yp(r,s,e),yp(r,i,e),yp(n,i,e)])}function p2(e,t,n){let r=e.depth+1,i=e.vertices[0],s=e.vertices[1],o=e.vertices[2],a=e.vertices[3],u=ci(i,s,t,n),c=ci(s,o,t,n),l=ci(o,a,t,n),p=ci(a,i,t,n),f=ci(i,o,t,n);e.children=[sd(r,[i,u,f,p]),sd(r,[u,s,c,f]),sd(r,[f,c,o,l]),sd(r,[p,f,l,a])]}function f2(e,t,n){if(e.depth<XR)return!0;if(m2(e,n)||d2(e,n))return!1;let r=e.vertices[0],i=e.vertices[1],s=e.vertices[2],o=e.vertices[3];if(isNaN(r.z)&&isNaN(i.z)&&isNaN(s.z)&&isNaN(o.z))return!1;if(isNaN(r.z)||isNaN(i.z)||isNaN(s.z)||isNaN(o.z))return!0;let a=ZR(r,i,s,o,t,n),u=ra(r,i,t,n),c=ra(i,s,t,n),l=ra(s,o,t,n),p=ra(o,r,t,n);return vu(r,u,t,n)||vu(i,u,t,n)||vu(i,c,t,n)||vu(s,c,t,n)||vu(s,l,t,n)||vu(o,l,t,n)||vu(o,p,t,n)||vu(r,p,t,n)||Mu(r,u,a,t,n)||Mu(u,i,a,t,n)||Mu(i,c,a,t,n)||Mu(c,s,a,t,n)||Mu(s,l,a,t,n)||Mu(l,o,a,t,n)||Mu(o,p,a,t,n)||Mu(p,r,a,t,n)}function Mu(e,t,n,r,i){if(e.z>0==t.z>0&&t.z>0==n.z>0)return!1;let s=0;isFinite(e.z)&&(s=Math.max(s,Math.abs(e.z))),isFinite(t.z)&&(s=Math.max(s,Math.abs(t.z))),isFinite(n.z)&&(s=Math.max(s,Math.abs(n.z)));let o=32*Number.EPSILON*s,a,u,c,l;if(e.z>0==t.z>0){if(a=ci(e,t,r,i),a.z>0!=e.z>0)return!0;u=na(e,n,r,i,o),c=na(t,n,r,i,o),l=na(a,n,r,i,o)}else if(t.z>0==n.z>0){if(a=ci(t,n,r,i),a.z>0!=t.z>0)return!0;u=na(t,e,r,i,o),c=na(n,e,r,i,o),l=na(a,e,r,i,o)}else{if(a=ci(n,e,r,i),a.z>0!=n.z>0)return!0;u=na(n,t,r,i,o),c=na(e,t,r,i,o),l=na(a,t,r,i,o)}let{mathToPixels:p,map3d:f}=i;if(f){let g=f(l.x,l.y),d=f(u.x,u.y),y=f(c.x,c.y);var m=zM(g[0],g[1],g[2],d[0],d[1],d[2],y[0],y[1],y[2]);return m>i.tolerance}else{let[g,d]=p.mapCoordinatePair([l.x,l.y]),[y,h]=p.mapCoordinatePair([u.x,u.y]),[b,x]=p.mapCoordinatePair([c.x,c.y]);return kM(g,d,y,h,b,x)>i.tolerance}}function vu(e,t,n,r){if(isNaN(e.z)&&isNaN(t.z))return!1;if(isNaN(e.z)||isNaN(t.z))return e.z>0||t.z>0;let s=4*ci(e,t,n,r).z-t.z-3*e.z,o=1e-4,a=(n((1-o)*e.x+o*t.x,(1-o)*e.y+o*t.y)-e.z)/o,u=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.abs(s-a)>.125*u}function d2(e,t){let{mathToPixels:n,map3d:r,tolerance:i}=t;if(r)return!1;{let[s,o]=n.mapCoordinatePair([e.vertices[1].x,e.vertices[1].y]),[a,u]=n.mapCoordinatePair([e.vertices[0].x,e.vertices[0].y]),[c,l]=n.mapCoordinatePair([e.vertices[3].x,e.vertices[3].y]);if(Hs(s-a)<10*i||Hs(u-l)<10*i)return!0}return!1}function m2(e,t){return e.vertices[0].x<t.xmin||e.vertices[0].y>t.ymax||e.vertices[2].x>t.xmax||e.vertices[2].y<t.ymin}function hp(e,t){return e.x<t.xmin||e.x>t.xmax||e.y<t.ymin||e.y>t.ymax}function yp(e,t,n){return gp(e,t,n(e,t))}function ci(e,t,n,r){let{mathToPixels:i}=r;return yp(i.interpolateX(e.x,t.x,.5),i.interpolateY(e.y,t.y,.5),n)}function ra(e,t,n,r){if(hp(e,r)||hp(t,r))return ci(e,t,n,r);if(isNaN(e.z)||isNaN(t.z))return y2(e,t,n,r);if(e.z>0!=t.z>0)return ci(e,t,n,r);let i=.01,s=n((1-i)*e.x+i*t.x,(1-i)*e.y+i*t.y)-e.z,o=t.z-n(i*e.x+(1-i)*t.x,i*e.y+(1-i)*t.y);return isNaN(s)||isNaN(o)||s>0==o>0?ci(e,t,n,r):WR(gp(e.x,e.y,s),gp(t.x,t.y,o),n,r)}function ZR(e,t,n,r,i,s){let o=ra(e,n,i,s);return e.z>0==n.z>0&&o.z>0!=e.z>0||(o=ra(t,r,i,s),t.z>0==r.z>0&&o.z>0!=t.z>0)?o:ci(e,n,i,s)}function WR(e,t,n,r){if(isNaN(e.z))return t;if(isNaN(t.z))return e;if(!isFinite(e.z)&&!isFinite(t.z))return ci(e,t,n,r);if(isFinite(e.z))if(isFinite(t.z)){let i=1-e.z/t.z,s=1-t.z/e.z;return yp(e.x/i+t.x/s,e.y/i+t.y/s,n)}else return e;else return t}function na(e,t,n,r,i){let{mathToPixels:s,map3d:o}=r,a=e.x,u=t.x,c=e.y,l=t.y,p=e.z,f=t.z;if(hp(e,r)||hp(t,r)){let m=ci(e,t,n,r);return Eu(m.x,m.y,!1)}if(o){let[m,g,d]=o(a,c),[y,h,b]=o(u,l);for(;Hs(m-y)>r.tolerance||Hs(g-h)>r.tolerance||Hs(d-b)>r.tolerance;){let x=.5*(a+u),P=.5*(c+l),M=n(x,P);if(M>0==p>0?(a=x,c=P,p=M):(u=x,l=P,f=M),(x===a||x===u)&&(P===c||P===l))break;[m,g,d]=o(a,c),[y,h,b]=o(u,l)}}else{let[m,g]=s.mapCoordinatePair([a,c]),[d,y]=s.mapCoordinatePair([u,l]);for(;Hs(m-d)>r.tolerance||Hs(g-y)>r.tolerance;){let h=.5*(a+u),b=.5*(c+l),x=n(h,b);x>0==p>0?(a=h,c=b,p=x):(u=h,l=b,f=x),[m,g]=s.mapCoordinatePair([a,c]),[d,y]=s.mapCoordinatePair([u,l])}}if(isNaN(p))return Eu(u,l,!1);if(isNaN(f))return Eu(a,c,!1);{let m=Math.abs(p),g=Math.abs(f);if(m<i&&g>100*i)return 1/m>=g?Eu(a,c,!0):Eu(u,l,!1);if(g<i&&m>100*i)return 1/g>=m?Eu(u,l,!0):Eu(a,c,!1);let d=WR(gp(a,c,p),gp(u,l,f),n,r),y=p===0||f===0||d.z===0||d.z>=p==f>=d.z&&Math.abs(d.z)<1e250;return Eu(d.x,d.y,y)}}function y2(e,t,n,r){let{mathToPixels:i,map3d:s}=r;if(isNaN(e.z)===isNaN(t.z))return ci(e,t,n,r);if(isNaN(e.z)){let p=e;e=t,t=p}let o=e.x,a=t.x,u=e.y,c=t.y,l=e.z;if(s){let[p,f,m]=s(o,u),[g,d,y]=s(a,c);for(;Hs(p-g)>r.tolerance||Hs(f-d)>r.tolerance||Hs(m-y)>r.tolerance||isNaN(p)||isNaN(g);){let h=.5*(o+a),b=.5*(u+c),x=n(h,b);if(isNaN(x)===isNaN(l)?(o=h,u=b,l=x):(a=h,c=b),(h===o||h===a)&&(b===u||b===c))break;[p,f,m]=s(o,u),[g,d,y]=s(a,c)}}else{let[p,f]=i.mapCoordinatePair([o,u]),[m,g]=i.mapCoordinatePair([a,c]);for(;Hs(p-m)>r.tolerance||Hs(f-g)>r.tolerance;){let d=.5*(o+a),y=.5*(u+c),h=n(d,y);isNaN(h)===isNaN(l)?(o=d,u=y,l=h):(a=d,c=y),[p,f]=i.mapCoordinatePair([o,u]),[m,g]=i.mapCoordinatePair([a,c])}}return gp(o,u,l)}function g2(e,t,n){let r={triangles:[],edgeCache:{},domain:n,fn:t};return od(e,r),r.triangles}function od(e,t){e.children&&(od(e.children[0],t),od(e.children[1],t),od(e.children[2],t),od(e.children[3],t),Du(e.children[0],e.children[1],t),Du(e.children[3],e.children[2],t),Su(e.children[1],e.children[2],t),Su(e.children[0],e.children[3],t))}function Du(e,t,n){e.children&&t.children?(Du(e.children[1],t.children[0],n),Du(e.children[2],t.children[3],n)):e.children?(Du(e.children[1],t,n),Du(e.children[2],t,n)):t.children?(Du(e,t.children[0],n),Du(e,t.children[3],n)):h2(e,t,n)}function Su(e,t,n){e.children&&t.children?(Su(e.children[2],t.children[1],n),Su(e.children[3],t.children[0],n)):e.children?(Su(e.children[2],t,n),Su(e.children[3],t,n)):t.children?(Su(e,t.children[1],n),Su(e,t.children[0],n)):b2(e,t,n)}function h2(e,t,n){if(!e.center||!t.center)return;let r,i;e.depth>=t.depth?(r=ra(e.vertices[1],e.vertices[2],n.fn,n.domain),i=Bg(e.vertices[1],t.center,e.vertices[2],e.center,r)):(r=ra(t.vertices[0],t.vertices[3],n.fn,n.domain),i=Bg(t.vertices[0],t.center,t.vertices[3],e.center,r)),jR(i,n.edgeCache,n.domain);for(let s=0;s<4;s++)n.triangles.push(i[s])}function b2(e,t,n){if(!e.center||!t.center)return;let r,i;e.depth>=t.depth?(r=ra(e.vertices[3],e.vertices[2],n.fn,n.domain),i=Bg(e.vertices[2],t.center,e.vertices[3],e.center,r)):(r=ra(t.vertices[1],t.vertices[0],n.fn,n.domain),i=Bg(t.vertices[1],t.center,t.vertices[0],e.center,r)),jR(i,n.edgeCache,n.domain);for(let s=0;s<4;s++)n.triangles.push(i[s])}function Bg(e,t,n,r,i){return[wg(e,i,t),wg(t,i,n),wg(n,i,r),wg(r,i,e)]}function ad(e,t,n){return e.z>0&&!hp(e,n)&&(!(t.z>0)||hp(t,n))}function Fg(e,t){return\"\"+e.x+\",\"+e.y+\",\"+t.x+\",\"+t.y}function jR(e,t,n){Vg(e[0],e[1],e[2],Fg(e[1].vertices[2],e[1].vertices[0]),t,n),Vg(e[1],e[2],e[3],Fg(e[2].vertices[0],e[2].vertices[2]),t,n),Vg(e[2],e[3],e[0],Fg(e[3].vertices[2],e[3].vertices[0]),t,n),Vg(e[3],e[0],e[1],Fg(e[0].vertices[0],e[0].vertices[2]),t,n)}function Vg(e,t,n,r,i,s){let o=t.vertices[0],a=t.vertices[1],u=t.vertices[2];ad(a,u,s)&&(t.next=n),ad(o,a,s)&&(t.next=e),ad(u,o,s)&&P2(t,r,i),ad(o,u,s)&&x2(t,r,i)}function x2(e,t,n){n[t]?n[t].next=e:n[t]=e}function P2(e,t,n){n[t]?e.next=n[t]:n[t]=e}function T2(e,t,n){let{tolerance:r,mathToPixels:i,map3d:s}=n,o;if(s){let a={tolerance:r,map:u=>s(u[0],u[1])};o={fillAccumulator:new xs(a),strokeAccumulator:new xs(a),fn:t,domain:n}}else{let a={tolerance:r,map:u=>i.mapCoordinatePair(u)};o={fillAccumulator:new xs(a),strokeAccumulator:new xs(a),fn:t,domain:n}}for(let a=0;a<e.length;a++){let u=e[a];u.next&&!u.visited&&I2(u,o)}return{strokeSegments:o.strokeAccumulator.finish().segments,fillSegments:o.fillAccumulator.finish().segments}}function I2(e,t){for(;;){let n=e.vertices[0],r=e.vertices[1],i=e.vertices[2],s=0;isFinite(n.z)&&(s=Math.max(s,Math.abs(n.z))),isFinite(r.z)&&(s=Math.max(s,Math.abs(r.z))),isFinite(i.z)&&(s=Math.max(s,Math.abs(i.z)));let o=32*Number.EPSILON*s;if(QE(n,r,t,o),QE(r,i,t,o),QE(i,n,t,o),e.visited||!e.next)break;e.visited=!0,e=e.next}t.strokeAccumulator.breakSegment(),t.fillAccumulator.breakSegment()}function QE(e,t,n,r){if(ad(e,t,n.domain)){let i=na(e,t,n.fn,n.domain,r);n.fillAccumulator.addPoint([i.x,i.y]),i.isZero?n.strokeAccumulator.addPoint([i.x,i.y]):n.strokeAccumulator.breakSegment()}}var rs={pointsOfInterest:!0,plotSingleVariableImplicitEquations:!0,plotImplicits:!0,plotInequalities:!0,sliders:!0};function KE(e){return Math.abs(e)<5e-8}var cd=class extends xs{constructor(t,n,r){let{tolerance:i,mathToPixels:s}=t;super({tolerance:i,map:o=>s.mapCoordinatePair(o)}),this.fn=n,this.mappedFn=o=>s.mapY(n(o)),this.derivative=r,this.poiData={zeros:{x:[],y:[]},intercept:{x:[],y:[]},extrema:{x:[],y:[]}},this.zeroBuffer=[],this.extremumBuffer=[]}getPOI(){return rs.pointsOfInterest?(this.poiData.intercept=this.findIntercept(this.fn),this.poiData):{zeros:{x:[],y:[]},intercept:{x:[],y:[]},extrema:{x:[],y:[]}}}addPoint(t){this.segment.length===0&&KE(t[1])&&(this.poiData.zeros.x.push(t[0]),this.poiData.zeros.y.push(t[1])),this.updateZeroBuffer(t),this.updateExtremumBuffer(t),super.addPoint(t)}updateZeroBuffer(t){let[n,r]=this.map?this.map(t):t;if(!isFinite(n)||!isFinite(r)){this.zeroBuffer.length=0;return}switch(this.zeroBuffer.length){case 0:{if(KE(t[1]))return;this.zeroBuffer.push(t);return}case 1:if(t[1]===0){this.zeroBuffer.push(t);return}else if(t[1]>0!=this.zeroBuffer[0][1]>0){let i=zT(this.zeroBuffer[0][0],this.zeroBuffer[0][1],t[0],t[1],this.fn);i&&(this.poiData.zeros.x.push(i[0]),this.poiData.zeros.y.push(i[1])),this.zeroBuffer.length=0,this.zeroBuffer.push(t);return}else{this.zeroBuffer.length=0,this.zeroBuffer.push(t);return}case 2:{if(t[1]===0)return;if(t[1]>0!=this.zeroBuffer[0][1]>0){let i=vf(this.zeroBuffer[0][0],this.zeroBuffer[0][1],this.zeroBuffer[1][0],this.zeroBuffer[1][1],t[0],t[1],this.fn);i&&(this.poiData.zeros.x.push(i[0]),this.poiData.zeros.y.push(i[1])),this.zeroBuffer.length=0,this.zeroBuffer.push(t);return}else{this.zeroBuffer.length=0,this.zeroBuffer.push(t);return}}}}updateExtremumBuffer(t){let[n,r]=this.map?this.map(t):t;if(!isFinite(n)||!isFinite(r)){this.extremumBuffer.length=0;return}switch(this.extremumBuffer.length){case 0:{this.extremumBuffer.push(t);return}case 1:{t[1]===this.extremumBuffer[0][1]&&(this.extremumBuffer.length=0),this.extremumBuffer.push(t);return}case 2:if(t[1]===this.extremumBuffer[1][1]){this.extremumBuffer.push(t);return}else if(t[1]>this.extremumBuffer[1][1]!=this.extremumBuffer[1][1]>this.extremumBuffer[0][1]){let i=this.bisectExtremumUsingDerivative(this.extremumBuffer[0][0],this.extremumBuffer[0][1],this.extremumBuffer[1][0],this.extremumBuffer[1][1],t[0],t[1]);i&&(this.poiData.extrema.x.push(i[0]),this.poiData.extrema.y.push(i[1]),!Hl(this.extremumBuffer[0][0],this.mappedFn(this.extremumBuffer[0][0]),i[0],this.mappedFn(i[0]),t[0],this.mappedFn(t[0]),this.mappedFn,this.ytolerance)&&i[0]>this.segment[this.segment.length-2]&&(this.pendingPoint=i)),this.extremumBuffer.shift(),this.extremumBuffer.push(t);return}else{this.extremumBuffer.shift(),this.extremumBuffer.push(t);return}case 3:{if(t[1]===this.extremumBuffer[1][1])return;if(t[1]>this.extremumBuffer[1][1]!=this.extremumBuffer[1][1]>this.extremumBuffer[0][1]){let i,s=.5*(this.extremumBuffer[1][0]+this.extremumBuffer[2][0]),o=this.fn(s);o===this.extremumBuffer[1][1]?i=vf(this.extremumBuffer[0][0],this.extremumBuffer[0][1],this.extremumBuffer[1][0],this.extremumBuffer[1][1],t[0],t[1],this.fn):i=this.bisectExtremumUsingDerivative(this.extremumBuffer[1][0],this.extremumBuffer[1][1],s,o,this.extremumBuffer[2][0],this.extremumBuffer[2][1]),i&&(this.poiData.extrema.x.push(i[0]),this.poiData.extrema.y.push(i[1])),this.extremumBuffer.shift(),this.extremumBuffer.shift(),this.extremumBuffer.push(t);return}else{this.extremumBuffer.shift(),this.extremumBuffer.shift(),this.extremumBuffer.push(t);return}}}}bisectExtremumUsingDerivative(t,n,r,i,s,o){let a;if(this.derivative){let u=this.derivative(t),c=this.derivative(s);if(!isNaN(u)&&!isNaN(c)&&(i>n&&u>0&&c<0||i<n&&u<0&&c>0)){let l=zT(t,u,s,c,this.derivative);l&&(a=[l[0],this.fn(l[0])])}}return a||(a=UD(t,n,r,i,s,o,this.fn)),a}breakSegment(){this.zeroBuffer.length=0,this.extremumBuffer.length=0,this.flushPending(),this.segment.length>2&&(this.segments.push(this.segment),KE(this.segment[this.segment.length-1])&&(this.poiData.zeros.x.push(this.segment[this.segment.length-2]),this.poiData.zeros.y.push(this.segment[this.segment.length-1]))),this.segment=[]}findIntercept(t){if(!t)return{x:[],y:[]};let n=t(0);return isFinite(n)?{x:[0],y:[t(0)]}:{x:[],y:[]}}finish(){return{segments:this.getSegments(),resolved:!0,poi:this.getPOI()}}};var E2=e=>{for(var t=[],n=[],r=e.length,i=0;i<r;i++)t.push(e[i][0]),n.push(e[i][1]);return{defined:{x:t,y:n}}},Us=E2;var{sin:M2,cos:v2}=Math,Qe=class e{constructor(t=0,n=0,r=0){this.x=t;this.y=n;this.z=r}copy(t){return this.x=t.x,this.y=t.y,this.z=t.z,this}set(t,n,r){return this.x=t,this.y=n,this.z=r,this}clone(){return new e(this.x,this.y,this.z)}equals(t){return t.x===this.x&&t.y===this.y&&t.z===this.z}isZero(){return this.x===0&&this.y===0&&this.z===0}isFinite(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.z)}subVectors(t,n){return this.x=t.x-n.x,this.y=t.y-n.y,this.z=t.z-n.z,this}addVectors(t,n){return this.x=t.x+n.x,this.y=t.y+n.y,this.z=t.z+n.z,this}multiply(t){return this.x*=t,this.y*=t,this.z*=t,this}magnitude(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}normalize(){return this.multiply(1/this.magnitude()),this}cross(t){return this.crossVectors(this,t)}crossVectors(t,n){let r=t.x,i=t.y,s=t.z,o=n.x,a=n.y,u=n.z;return this.x=i*u-s*a,this.y=s*o-r*u,this.z=r*a-i*o,this}dot(t){return this.x*t.x+this.y*t.y+this.z*t.z}rotateAroundAxis(t,n){let r=D2(t,n);return new e(r[0]*this.x+r[1]*this.y+r[2]*this.z,r[3]*this.x+r[4]*this.y+r[5]*this.z,r[6]*this.x+r[7]*this.y+r[8]*this.z)}};function D2(e,t){let n=e.x,r=e.y,i=e.z,s=M2(t),o=v2(t),a=1-o;return[a*n*n+o,a*n*r+s*i,a*n*i-s*r,a*r*n-s*i,a*r*r+o,a*r*i+s*n,a*i*n+s*r,a*i*r-s*n,a*i*i+o]}var ee=class{constructor(t,n){this.min=t;this.max=n}get width(){return this.max-this.min}};function ld(e,t,n,r,i,s=100){if(isFinite(r)||([r,i]=[i,r],[t,n]=[n,t]),isFinite(i))return e0(e,t,n,r,i,s);for(;;){let o=gs(t,n,.5),a=e(...o);if(a===0)return o;if(!isFinite(a))n=o,i=a;else if(r<0==a<0)t=o,r=a;else return n=o,i=a,e0(e,t,n,r,i,s);if(s*=.5,s<1)return}}function JR(e,t,n,r,i,s=100){if(isFinite(r)||([r,i]=[i,r],[t,n]=[n,t]),!isFinite(i))for(;;){let o=gs(t,n,.5),a=e(...o);if(a===0)return{posNeg:o};if(!isFinite(a))n=o,i=a;else if(r<0==a<0)t=o,r=a;else if(r>0){n=o,i=a;break}else return{posNeg:t0(e,o,t,a,r,s),posNaN:S2(e,o,n,s)};if(s*=.5,s<1){let u=gs(t,n,.5);return r>0?{posNaN:u}:{}}}return{posNeg:e0(e,t,n,r,i,s)}}function e0(e,t,n,r,i,s){return r>0?t0(e,t,n,r,i,s):t0(e,n,t,i,r,s)}function t0(e,t,n,r,i,s){let o=r-i;for(;;){let a=gs(t,n,.5),u=e(...a);if(u<0)n=a,i=u;else if(u>0)t=a,r=u;else return u===0?a:void 0;if(s*=.5,s<1){if(r-i<.1*o)return gs(t,n,.5);if(s<1e-6)return}}}function S2(e,t,n,r){for(;;){let i=gs(t,n,.5),s=e(...i);if(!isFinite(s))n=i;else if(s>=0)t=i;else return;if(r*=.5,r<1)return gs(t,n,.5)}}function bp(e,t,n,r,i,s,o){let[a,u,c]=[new Qe,new Qe,new Qe],[l,p,f]=[new Qe,new Qe,new Qe],[m,g]=[new Qe,new Qe];for(let y=0;y<e.length/3;y++){let h=e[3*y],b=e[3*y+1],x=e[3*y+2];a.set(t[3*h],t[3*h+1],t[3*h+2]),u.set(t[3*b],t[3*b+1],t[3*b+2]),c.set(t[3*x],t[3*x+1],t[3*x+2]),l.set(n[3*h],n[3*h+1],n[3*h+2]),p.set(n[3*b],n[3*b+1],n[3*b+2]),f.set(n[3*x],n[3*x+1],n[3*x+2]),m.subVectors(c,a),g.subVectors(a,u);var d=m.cross(g).normalize();if(!(l.dot(d)>o&&p.dot(d)>o&&f.dot(d)>o)||l.dot(p)<0||l.dot(f)<0||p.dot(f)<0){let M=t.length/3;e[3*y]=M,e[3*y+1]=M+1,e[3*y+2]=M+2,t.push(a.x,a.y,a.z),t.push(u.x,u.y,u.z),t.push(c.x,c.y,c.z),n.push(d.x,d.y,d.z),n.push(d.x,d.y,d.z),n.push(d.x,d.y,d.z),r.push(r[2*h],r[2*h+1]),r.push(r[2*b],r[2*b+1]),r.push(r[2*x],r[2*x+1]);let I=i;if(i>0){for(let E=0;E<I;E++)s.push(s[I*h+E]);for(let E=0;E<I;E++)s.push(s[I*b+E]);for(let E=0;E<I;E++)s.push(s[I*x+E])}}}}var Gg=[[1,2,4,21,20,18],[0,1,3,20,19,18],[2,6,7,25,21,18],[5,6,8,25,22,18],[5,9,11,23,22,18],[0,9,10,23,19,18],[10,12,14,24,23,19],[3,12,13,24,20,19],[4,13,15,24,21,20],[15,7,16,25,24,21],[11,17,14,24,23,22],[17,8,16,25,24,22]],Er=[0,1,0,2,0,3,1,2,2,3,0,4,0,7,3,7,4,7,0,5,1,5,4,5,1,6,2,6,5,6,3,6,6,7,4,6,0,8,1,8,2,8,3,8,4,8,5,8,6,8,7,8],KR=[[0,2,3,8],[0,1,2,8],[0,3,7,8],[0,4,7,8],[0,4,5,8],[0,1,5,8],[1,5,6,8],[1,2,6,8],[2,3,6,8],[3,6,7,8],[4,5,6,8],[4,6,7,8]],eN=[[0,0,0],[0,1,0],[1,1,0],[1,0,0],[0,0,1],[0,1,1],[1,1,1],[1,0,1],[.5,.5,.5]],n0=[[1,2,4],[4,20,21],[2,18,21],[1,18,20],[0,1,3],[3,19,20],[0,18,19],[2,6,7],[7,21,25],[6,18,25],[5,6,8],[8,22,25],[5,18,22],[5,9,11],[11,22,23],[9,18,23],[0,9,10],[10,19,23],[10,12,14],[14,23,24],[12,19,24],[3,12,13],[13,20,24],[4,13,15],[15,21,24],[15,7,16],[16,24,25],[11,17,14],[17,22,24],[17,8,16]],r0=[];for(let e=0;e<30;e++){let t=n0[e],n=new Set;for(let r of t)n.add(Er[r*2]),n.add(Er[r*2+1]);r0[e]=[...n]}var tN=[[0,3,2,1],[4,6,3,5],[7,2,9,8],[10,12,9,11],[13,12,15,14],[16,6,15,17],[18,17,20,19],[21,5,20,22],[23,1,22,24],[25,24,8,26],[27,14,28,19],[29,28,11,26]],O2=1<<31,C2=1<<30,QR=1<<24,_c=1<<24,Ps=1<<24,qs=65536,$s=256,Ys=1;function nN(e,t,n){return n*qs+t*$s+e*Ys}var R2={0:0*QR,1:$s,2:Ys+$s,3:Ys,4:qs,5:$s+qs,6:Ys+$s+qs,7:Ys+qs,8:8*QR};function rN(e,t){return O2+e+R2[t]}var N2={3:2*Ps+$s,4:0*Ps+Ys,7:5*Ps+Ys,8:2*Ps+qs,10:5*Ps+$s,11:0*Ps+qs,12:6*Ps+$s,13:5*Ps+Ys+$s,14:2*Ps+$s+qs,15:9*Ps+Ys,16:0*Ps+Ys+qs,17:1*Ps+qs};function pd(e,t){var n;return C2+e+((n=N2[t])!=null?n:Ps*t)}var A2={18:10*_c+$s,21:7*_c+$s,23:16*_c+Ys,25:13*_c+Ys,27:4*_c+qs,29:0*_c+qs};function i0(e,t){var n;return e+((n=A2[t])!=null?n:_c*t)}var xp=class{constructor(t,n,r,i,s){this.PAConstructor=t;this.x=n;this.y=r;this.z=i;this.gridsize=s;this.i=0;this.j=0;this.k=0;this.cubeVertex=new Array(9);this.cubeVertexValue=new this.PAConstructor(9);if(s>250)throw new Error(\"Programming Error: resolution should be clamped well below 250.\");this.size=new Qe(this.x.width/s,this.y.width/s,this.z.width/s)}loopOverUnitCubes(t){let n=this.gridsize,r=n+1,i=new kg(this.x.min,this.y.min,this.z.min,this.size.x,this.size.y,this.size.z,n+1,n+1,n+1),s=new kg(this.x.min+this.size.x/2,this.y.min+this.size.y/2,this.z.min+this.size.z/2,this.size.x,this.size.y,this.size.z,n,n,n),o=i.setupArray(this.PAConstructor),a=i.setupArray(this.PAConstructor),u=s.setupArray(this.PAConstructor);this.evaluateArray(a,i,0);for(let c=0;c<n;c++){this.k=c,[o,a]=[a,o],this.evaluateArray(a,i,c+1),this.evaluateArray(u,s,c);for(let l=0;l<n;l++){this.j=l;for(let p=0;p<n;p++){this.i=p;let f=l*r+p;this.cubeVertexValue.setFrom(0,o,f),this.cubeVertexValue.setFrom(1,o,f+r),this.cubeVertexValue.setFrom(2,o,f+r+1),this.cubeVertexValue.setFrom(3,o,f+1),this.cubeVertexValue.setFrom(4,a,f),this.cubeVertexValue.setFrom(5,a,f+r),this.cubeVertexValue.setFrom(6,a,f+r+1),this.cubeVertexValue.setFrom(7,a,f+1),this.cubeVertexValue.setFrom(8,u,l*n+p),t()}}}}evaluateArray(t,n,r){let i=n.z0+r*n.dz;for(let s=0;s<n.numX;s++)for(let o=0;o<n.numY;o++){let a=n.x0+s*n.dx,u=n.y0+o*n.dy;this.setAt(t,o*n.numX+s,a,u,i)}}setVertexPositions(){for(let t=0;t<9;t++){let n=eN[t];this.cubeVertex[t]=[this.x.min+(this.i+n[0])*this.size.x,this.y.min+(this.j+n[1])*this.size.y,this.z.min+(this.k+n[2])*this.size.z]}}},kg=class{constructor(t,n,r,i,s,o,a,u,c){this.x0=t;this.y0=n;this.z0=r;this.dx=i;this.dy=s;this.dz=o;this.numX=a;this.numY=u;this.numZ=c}setupArray(t){return new t(this.numX*this.numY)}};var zg=class{constructor(t){this.length=t;this.n=1;this.buffer=new Float64Array(t)}set(t,n){this.buffer[t]=n}get(t){return this.buffer[t]}setFrom(t,n,r){if(n.n!==this.n)throw new Error(\"Programming Error: Mismatched dimensions\");this.set(t,n.get(r))}},Hg=class{constructor(t){this.length=t;this.n=2;this.buffer=new Float64Array(t*2)}set(t,n,r){this.buffer[t*2]=n,this.buffer[t*2+1]=r}getX(t){return this.buffer[t*2]}getY(t){return this.buffer[t*2+1]}setFrom(t,n,r){if(n.n!==this.n)throw new Error(\"Programming Error: Mismatched dimensions\");this.set(t,n.getX(r),n.getY(r))}};var dd=50;function Lc(e){return e!==void 0&&e!==0}function _2(e){return Lc(e.posNeg)||Lc(e.posNaN)}var fd={};function s0(e=fd,t=fd,n=fd){return{edge0:e,edge1:t,edge2:n}}function iN(e,t,n,r,{isInequality:i}){return new o0(e,t,new ee(n.xmin,n.xmax),new ee(n.ymin,n.ymax),new ee(n.zmin,n.zmax),r,{isInequality:i}).fullLoopOverUnitCubes()}var o0=class extends xp{constructor(n,r,i,s,o,a,{isInequality:u}){super(zg,i,s,o,a);this.f=n;this.gradient=r;this.cubeEdge=new Array(26);this.face=s0();this.cubeHasCrossing=!1;this.allNormalsFromGradient=!0;this.normalFromGradient=[];this.edgesMaybeCross=0;this.positions=[];this.uvs=[];this.normals=[];this.triangles=[];this.isInequality=u,this.sheet=Array((a+1)*(a+1)),this.strip=Array(a+1);for(let c=0;c<(a+1)*(a+1);c++)this.sheet[c]=s0();for(let c=0;c<a+1;c++)this.strip[c]=s0()}setAt(n,r,i,s,o){let a=this.f(i,s,o);n.set(r,a)}fullLoopOverUnitCubes(){this.positions=[],this.normals=[],this.triangles=[],this.loopOverUnitCubes(this.onEachCube.bind(this));let{uvs:n,positions:r,normals:i}=this;if(!this.allNormalsFromGradient)for(let s=0;s<i.length/3;s++){if(this.normalFromGradient[s])continue;let o=i[3*s],a=i[3*s+1],u=i[3*s+2],c=Math.sqrt(o*o+a*a+u*u);i[3*s]=o/c,i[3*s+1]=a/c,i[3*s+2]=u/c}return bp(this.triangles,this.positions,i,n,0,[],.7),{positions:r,normals:i,faces:this.triangles,uvs:n,resolved:!0,extraAttrs:[]}}onEachCube(){this.edgesMaybeCross=0,this.cubeHasCrossing=!1;for(let n=0;n<26;n++){let r=this.cubeVertexValue.get(Er[n*2]),i=this.cubeVertexValue.get(Er[n*2+1]);(r===0||i===0)&&(this.cubeHasCrossing=!0),!(r>0&&i>0||r<0&&i<0)&&(isFinite(r)||isFinite(i))&&(this.edgesMaybeCross|=1<<n)}this.edgesMaybeCross&&(this.setVertexPositions(),this.setEdges()),this.saveEdges(),this.cubeHasCrossing&&this.generateTriangles()}setEdges(){let{i:n,j:r,k:i,gridsize:s}=this,o=this.sheet[(n+0)*(s+1)+r+0],a=this.sheet[(n+1)*(s+1)+r+0],u=this.sheet[(n+0)*(s+1)+r+1],c=0;i>0&&(this.cubeEdge[0]=o.edge0,this.cubeEdge[1]=o.edge1,this.cubeEdge[2]=o.edge2,this.cubeEdge[3]=u.edge2,this.cubeEdge[4]=a.edge0,c|=31),r>0&&(this.cubeEdge[5]=this.strip[n].edge0,this.cubeEdge[6]=this.strip[n].edge1,this.cubeEdge[7]=this.strip[n+1].edge0,this.cubeEdge[8]=this.strip[n].edge2,c|=480,i==0&&(this.cubeEdge[2]=o.edge2,c|=4)),n>0&&(this.cubeEdge[9]=this.face.edge0,this.cubeEdge[10]=this.face.edge1,this.cubeEdge[11]=this.face.edge2,c|=3584,i==0&&(this.cubeEdge[0]=o.edge0,c|=1),r==0&&(this.cubeEdge[5]=this.strip[n].edge0,c|=32));for(let l=0;l<26;l++){if(~this.edgesMaybeCross>>l&1){this.cubeEdge[l]=fd;continue}if(c>>l&1){!this.cubeHasCrossing&&(this.cubeEdge[l].posNeg||this.cubeEdge[l].posNaN)&&(this.cubeHasCrossing=!0);continue}let p=this.findSurfaceCrossingEDI(Er[l*2],Er[l*2+1]);this.cubeEdge[l]=p,_2(p)&&(this.cubeHasCrossing=!0)}}saveEdges(){let{i:n,j:r,k:i,gridsize:s}=this;i<s-1&&(this.sheet[(n+0)*(s+1)+r+0].edge0=this.cubeEdge[11],this.sheet[(n+0)*(s+1)+r+0].edge1=this.cubeEdge[17],this.sheet[(n+0)*(s+1)+r+0].edge2=this.cubeEdge[8]),r<s-1&&(this.strip[n].edge0=this.cubeEdge[10],this.strip[n].edge1=this.cubeEdge[12],this.strip[n].edge2=this.cubeEdge[14]),n<s-1&&(this.face.edge0=this.cubeEdge[15],this.face.edge1=this.cubeEdge[13],this.face.edge2=this.cubeEdge[16]),i==0&&(this.sheet[(n+0)*(s+1)+r+1].edge2=this.cubeEdge[3],this.sheet[(n+1)*(s+1)+r+0].edge0=this.cubeEdge[4]),r==0&&(this.strip[n+1].edge0=this.cubeEdge[7]),r==s-1&&(this.sheet[n*(s+1)+s].edge2=this.cubeEdge[14]),n==s-1&&(this.sheet[(s+0)*(s+1)+r].edge0=this.cubeEdge[16],this.strip[s].edge0=this.cubeEdge[13])}findSurfaceCrossingEDI(n,r){let i=this.cubeVertexValue.get(n),s=this.cubeVertexValue.get(r);if(i===0||s===0)return fd;let o=this.cubeVertex[n],a=this.cubeVertex[r];if(this.isInequality){let{posNeg:u,posNaN:c}=JR(this.f,o,a,i,s);return{posNeg:u!==void 0?this.pushPositionWithGradient(...u):void 0,posNaN:c!==void 0?this.pushPositionNoGradient(...c):void 0}}else{let u=ld(this.f,o,a,i,s);return{posNeg:u!==void 0?this.pushPositionWithGradient(...u):void 0}}}pushPositionWithGradient(n,r,i){if(!(isFinite(n)&&isFinite(r)&&isFinite(i)))return 0;let[s,o,a]=this.computeGradient(n,r,i),u=Math.sqrt(s*s+o*o+a*a);return s/=-u,o/=-u,a/=-u,zl(s,o,a)?(this.normalFromGradient.push(!0),this._pushPositionAndNormal(n,r,i,s,o,a)):this.pushPositionNoGradient(n,r,i)}pushPositionNoGradient(n,r,i){return isFinite(n)&&isFinite(r)&&isFinite(i)?(this.allNormalsFromGradient=!1,this.normalFromGradient.push(!1),this._pushPositionAndNormal(n,r,i,0,0,0)):0}_pushPositionAndNormal(n,r,i,s,o,a){return this.positions.push(n,r,i),this.uvs.push((n-this.x.min)/this.x.width,(r-this.y.min)/this.y.width),this.normals.push(s,o,a),this.positions.length/3}computeGradient(n,r,i){let s=NaN,o=NaN,a=NaN;if(this.gradient&&([s,o,a]=this.gradient(n,r,i),isFinite(s)&&isFinite(o)&&isFinite(a)))return[s,o,a];let u=.001*Math.min(this.size.x,this.size.y,this.size.z),c=this.f(n,r,i);if(isFinite(s)||(s=(this.f(n+u,r,i)-c)/u),isFinite(s)||(s=(c-this.f(n-u,r,i))/u),isFinite(o)||(o=(this.f(n,r+u,i)-c)/u),isFinite(o)||(o=(c-this.f(n,r-u,i))/u),isFinite(a)||(a=(this.f(n,r,i+u)-c)/u),isFinite(a)||(a=(c-this.f(n,r,i-u))/u),isFinite(s)&&isFinite(o)&&isFinite(a))return[s,o,a];let l=NaN,p=NaN,f=NaN,m=NaN,g=NaN,d=NaN,y=u/2;return(!isFinite(s)||!isFinite(o))&&(l=(this.f(n+y,r+y,i)-c)/u,isFinite(l)||(l=(c-this.f(n-y,r-y,i))/u),p=(this.f(n+y,r-y,i)-c)/u,isFinite(p)||(p=(c-this.f(n-y,r+y,i))/u),isFinite(l)&&isFinite(p)&&(isFinite(s)||(s=l+p),isFinite(o)||(o=l-p))),(!isFinite(o)||!isFinite(a))&&(f=(this.f(n,r+y,i+y)-c)/u,isFinite(f)||(f=(c-this.f(n,r-y,i-y))/u),m=(this.f(n,r+y,i-y)-c)/u,isFinite(m)||(m=(c-this.f(n,r-y,i+y))/u),isFinite(f)&&isFinite(m)&&(isFinite(o)||(o=f+m),isFinite(a)||(a=f-m))),(!isFinite(a)||!isFinite(s))&&(g=(this.f(n+y,r,i+y)-c)/u,isFinite(g)||(g=(c-this.f(n-y,r,i-y))/u),d=(this.f(n-y,r,i+y)-c)/u,isFinite(d)||(d=(c-this.f(n+y,r,i-y))/u),isFinite(g)&&isFinite(d)&&(isFinite(s)||(s=g-d),isFinite(a)||(a=g+d))),[s,o,a]}generateTriangles(){for(let n=0;n<12;n++){let r=Gg[n],i=[],s=0,o=KR[n],a=0,u=o[0],c=Math.abs(this.cubeVertexValue.get(u));c>a&&isFinite(c)&&(a=c);let l=o[1],p=Math.abs(this.cubeVertexValue.get(l));p>a&&isFinite(p)&&(a=p);let f=o[2],m=Math.abs(this.cubeVertexValue.get(f));m>a&&isFinite(m)&&(a=m);let g=o[3],d=Math.abs(this.cubeVertexValue.get(g));d>a&&isFinite(d)&&(a=d);let y=a*Number.EPSILON*32;if(c<=y){s|=35;let b=this.pushPositionWithGradient(...this.cubeVertex[u]);b!==void 0&&i.push(b)}if(p<=y){s|=21;let b=this.pushPositionWithGradient(...this.cubeVertex[l]);b!==void 0&&i.push(b)}if(m<=y){s|=14;let b=this.pushPositionWithGradient(...this.cubeVertex[f]);b!==void 0&&i.push(b)}if(d<=y){s|=56;let b=this.pushPositionWithGradient(...this.cubeVertex[g]);b!==void 0&&i.push(b)}if(i.length===4)continue;let h;for(let b=0;b<4;b++){let x=o[b];if(this.cubeVertexValue.get(x)>y){h=this.cubeVertex[x];break}}if(h===void 0&&this.isInequality)for(let b=0;b<6;b++){if(s>>b&1)continue;let{posNeg:x,posNaN:P}=this.cubeEdge[r[b]];if(Lc(x)&&Lc(P)){h=gs(this.positions.slice((x-1)*3,x*3),this.positions.slice((P-1)*3,P*3),.5);break}}if(h===void 0)for(let b=0;b<4;b++){let x=o[b];if(!isFinite(this.cubeVertexValue.get(x))){h=this.cubeVertex[x];break}}if(h===void 0&&s&&i.length>0){let b;for(let x=0;x<4;x++){let P=o[x];if(this.cubeVertexValue.get(P)<-y){b=this.cubeVertex[P];break}}if(b){let x=i[0],P=this.positions.slice((x-1)*3,x*3);h=gs(b,P,2)}}if(h!==void 0){if(this.isInequality){let b=[],x=[],P=!1;for(let M=0;M<6;M++){if(s>>M&1)continue;let{posNeg:I,posNaN:E}=this.cubeEdge[r[M]],v=Lc(I),O=Lc(E);v&&b.push(I),O&&x.push(E),v&&O&&(P=!0)}if(P){b.push(...i),this.pushTriangleFromCorners(x,h),this.pushTriangleFromCorners(b,h);continue}}for(let b=0;b<6;b++){if(s>>b&1)continue;let{posNeg:x,posNaN:P}=this.cubeEdge[r[b]],M=x||P;Lc(M)&&i.push(M)}this.pushTriangleFromCorners(i,h)}}}pushTriangleFromCorners(n,r){if(n.length>=3){let i=n[0]-1,s=n[1]-1,o=n[2]-1;this.pushTriangle(i,s,o,r)}if(n.length==4){let i=n[0]-1,s=n[2]-1,o=n[3]-1;this.pushTriangle(i,s,o,r)}}pushTriangle(n,r,i,s){this.allNormalsFromGradient||this.fixBadNormals(n,r,i,s),this.checkWindingOrder(n,r,i)&&([r,i]=[i,r]),this.triangles.push(n,r,i)}fixBadNormals(n,r,i,s){let o=!this.normalFromGradient[n],a=!this.normalFromGradient[r],u=!this.normalFromGradient[i];if(!(o||a||u))return;let c=this.positions,l=this.normals,p=new Qe(c[3*n],c[3*n+1],c[3*n+2]),f=new Qe(c[3*r],c[3*r+1],c[3*r+2]),m=new Qe(c[3*i],c[3*i+1],c[3*i+2]),g=new Qe().subVectors(m,p),d=new Qe().subVectors(p,f);var y=g.cross(d);let h=new Qe().subVectors(p,new Qe(...s));y.dot(h)<0&&y.multiply(-1),y.isFinite()&&(o&&(l[3*n+0]+=y.x,l[3*n+1]+=y.y,l[3*n+2]+=y.z),a&&(l[3*r+0]+=y.x,l[3*r+1]+=y.y,l[3*r+2]+=y.z),u&&(l[3*i+0]+=y.x,l[3*i+1]+=y.y,l[3*i+2]+=y.z))}checkWindingOrder(n,r,i){let s=this.positions,o=this.normals,a=s[3*i]-s[3*n],u=s[3*i+1]-s[3*n+1],c=s[3*i+2]-s[3*n+2],l=s[3*n]-s[3*r],p=s[3*n+1]-s[3*r+1],f=s[3*n+2]-s[3*r+2],m=u*f-c*p,g=c*l-a*f,d=a*p-u*l,y=o[3*n],h=o[3*n+1],b=o[3*n+2];return m*y+g*h+d*b<0}};function qg(e){let{triangles:t,normalDirHints:n}=e.triangulate(),{extraAttrCount:r}=e,i=e.getVertexCount(),s=new Array(i),o=new Array(i*3),a=[],u=!1,c=new Array(i*3),l=new Array(i*2),p=new Array(i*r),f=[],m=0;function g(y){let h=e.getVertex(y);if(!h)return null;let b=n[y],x=b?e.hintedNormal(y,b):e.getNormal(y);x?(c[3*m]=x[0],c[3*m+1]=x[1],c[3*m+2]=x[2]):(a[m]=!0,u=!0,c[3*m]=0,c[3*m+1]=0,c[3*m+2]=0),o[3*m]=h[0],o[3*m+1]=h[1],o[3*m+2]=h[2];let P=e.getUV(y);if(l[2*m]=P[0],l[2*m+1]=P[1],r>0)for(let M=0;M<r;M++)p[r*m+M]=e.getExtraAttr(y,M);return m++}function d(y){let h=s[y];return h===void 0?s[y]=g(y):h}for(let y=0;y<t.length;y+=3){let h=t[y],b=t[y+1],x=t[y+2],P=d(h),M=d(b),I=d(x);if(P===null||M===null||I===null)continue;f.push(P,M,I);let E=a[P],v=a[M],O=a[I];if(E||v||O){let A=o,N=c,L=new Qe(A[3*P],A[3*P+1],A[3*P+2]),z=new Qe(A[3*M],A[3*M+1],A[3*M+2]),G=new Qe(A[3*I],A[3*I+1],A[3*I+2]),$=new Qe().subVectors(G,L),w=new Qe().subVectors(L,z),Y=$.cross(w);if(!Y.isFinite())continue;E&&(N[3*P+0]+=Y.x,N[3*P+1]+=Y.y,N[3*P+2]+=Y.z),v&&(N[3*M+0]+=Y.x,N[3*M+1]+=Y.y,N[3*M+2]+=Y.z),O&&(N[3*I+0]+=Y.x,N[3*I+1]+=Y.y,N[3*I+2]+=Y.z)}}if(o.length=m*3,c.length=m*3,l.length=m*2,u)for(let y=0;y<m;y++){if(!a[y])continue;let h=c[3*y],b=c[3*y+1],x=c[3*y+2],P=Math.sqrt(h*h+b*b+x*x);c[3*y]=h/P,c[3*y+1]=b/P,c[3*y+2]=x/P}return bp(f,o,c,l,r,p,0),{positions:o,normals:c,faces:f,uvs:l,resolved:!0,extraAttrs:p}}var c0=class{constructor({resolution:t,uRange:n,vRange:r,du:i,dv:s,extraAttrCount:o}){this.normalDirHints=[];this.isVertexAtCreaseCache=[];this.triangles=[];this.edgeVertices=new Map;this.edgeNormalVertices=new Map;this.finiteVertices=new Map;this.resolution=t,this.uRange=n,this.vRange=r,this.du=i,this.dv=s,this.extraAttrCount=o,this.duSquared=i*i,this.dvSquared=s*s}addVertex(t){return this.normalDirHints.push(void 0),this.isVertexAtCreaseCache.push(void 0),this._addVertex(t)}jumpAlongEdge(t,n){let r=0;if(t>n){let u=t;t=n,n=u,r=1}let i=n*n+t,s=this.edgeVertices.get(i);if(s===null)return;if(s!==void 0)return[s[r],s[1-r]];let o=this.findJumpBetweenTwoSamples(t,n);if(o===void 0){this.edgeVertices.set(i,null);return}let a=[this.addVertex(o[0]),this.addVertex(o[1])];return this.edgeVertices.set(i,a),[a[r],a[1-r]]}edgeNormalFeature(t,n){let r=0;if(t>n){let u=t;t=n,n=u,r=1}let i=n*n+t,s=this.edgeNormalVertices.get(i);if(s!==void 0)return this.flipEdgeNormalFeature(s,r);let o=this.findCreaseBetweenTwoSamples(t,n),a=o===null?null:o.type===\"high-curvature\"?{type:\"high-curvature\",pos:this.addVertex(o.pos)}:{type:\"crease\",left:this.addVertex(o.left),right:this.addVertex(o.right)};return this.edgeNormalVertices.set(i,a),this.flipEdgeNormalFeature(a,r)}flipEdgeNormalFeature(t,n){return(t==null?void 0:t.type)===\"crease\"?{type:\"crease\",left:n===0?t.left:t.right,right:n===0?t.right:t.left}:t}findCreaseBetweenTwoSamples(t,n){let s=this.getUV(t),o=this.getUV(n),a=this.getNormal(t),u=this.getNormal(n),c=b=>{var P;let x=Jn(s,o,b);return(P=this.fn(x).normal)!=null?P:[NaN,NaN,NaN]};if(!a||!u)return null;let l=o[0]-s[0],p=o[1]-s[1],f=this.du,m=this.dv,g=(Math.abs(f*l)+Math.abs(m*p))/(l*l+p*p),d=xy(0,a,1,u,c,.01,2*g,.9);if(d===void 0)return null;if(typeof d==\"number\")return d<g||d>1-g?null:{type:\"high-curvature\",pos:this.fn(Jn(s,o,d))};let y=d[0],h=d[1];return y<g||h>1-g?null:(y-=g,h+=g,y<=1e-8&&(y=1e-8),h>=1-1e-8&&(h=1-1e-8),{type:\"crease\",left:this.fn(Jn(s,o,y)),right:this.fn(Jn(s,o,h))})}isVertexAtCrease(t){let n=this.isVertexAtCreaseCache[t];if(n!==void 0)return n;let r=this._isVertexAtCrease(t);return this.isVertexAtCreaseCache[t]=r,r}finiteAlongEdge(t,n){if(t>n){let a=t;t=n,n=a}let r=n*n+t,i=this.finiteVertices.get(r);if(i!==void 0)return i;let s=this.findFiniteBetweenTwoSamples(t,n);if(s===void 0)return;let o=this.addVertex(s);return this.finiteVertices.set(r,o),o}pushTriangle(t,n,r){this.isDegenerate(t,n,r)||this.triangles.push(t,n,r)}getTriangles(){return this.triangles}},L2=1e-4,w2=.99,Tp=.9999;function a0(e,t){return!e||!t?!0:e[0]*t[0]+e[1]*t[1]+e[2]*t[2]<w2}var l0=class extends c0{hintVec(t,n){let r=this.getUV(t),i=this.getUV(n);return AD(ND(i,r),L2)}hintNormal1(t,n,r){let i=this.hintVec(t,n),s=this.hintVec(t,r);this.normalDirHints[t]=[i,s]}hintNormals2(t,n){let r=this.hintVec(t,n),i=u0(r);this.normalDirHints[t]=[Ug(r),i],this.normalDirHints[n]=[i,Ug(i)]}hintNormals2Finite(t,n){let r=this.hintVec(t,n),i=Ug(r);this.normalDirHints[t]=this.normalDirHints[n]=[i,u0(i)]}hintNormalFirstBad(t,n){let r=this.hintVec(t,n);this.normalDirHints[t]=[Ug(r),u0(r)]}hintNormalSecondBad(t,n){let r=this.hintVec(n,t);this.normalDirHints[n]=[V2(r),F2(r)]}},p0=class extends l0{oneJump(t,n,r,i){let s=i[0],o=i[1];this.pushTriangle(s,r,t),this.pushTriangle(o,n,r),this.hintNormalFirstBad(s,r),this.hintNormalSecondBad(r,o)}oneJumpOneExtra(t,n,r,i,s){let o=i[0],a=i[1];this.pushTriangle(o,r,t),this.pushTriangle(o,s,r),this.pushTriangle(a,n,s),this.hintNormalFirstBad(o,r),this.hintNormalSecondBad(r,a)}oneJumpOneExtra2(t,n,r,i,s){let o=i[0],a=i[1];this.pushTriangle(a,n,r),this.pushTriangle(a,r,s),this.pushTriangle(o,s,t),this.hintNormalFirstBad(o,r),this.hintNormalSecondBad(r,a)}oneJumpTwoExtra(t,n,r,i,s,o){let a=i[0],u=i[1];this.pushTriangle(a,o,t),this.pushTriangle(a,s,o),this.pushTriangle(s,r,o),this.pushTriangle(u,n,s)}twoJumps(t,n,r,i,s){let o=i[0],a=i[1],u=s[0],c=s[1];this.pushTriangle(o,r,t),this.pushTriangle(o,c,r),this.pushTriangle(a,n,u),this.hintNormals2(o,c),this.hintNormals2(u,a)}twoJumpsOneExtraPoint(t,n,r,i,s,o){let a=i[0],u=i[1],c=s[0],l=s[1];this.pushTriangle(a,o,t),this.pushTriangle(a,l,o),this.pushTriangle(l,r,o),this.pushTriangle(u,n,c),this.hintNormals2(a,l),this.hintNormals2(c,u)}oneExtraPoint(t,n,r,i){this.pushTriangle(i,r,t),this.pushTriangle(i,n,r)}oneExtraPointOneVertexCrease(t,n,r,i){let s=this.copyVertex(r);this.pushTriangle(i,s,t),this.pushTriangle(i,n,s),this.hintNormal1(s,t,n)}twoExtraPoints(t,n,r,i,s){this.pushTriangle(i,r,t),this.pushTriangle(i,s,r),this.pushTriangle(i,n,s)}threeExtraPoints(t,n,r,i,s,o){this.pushTriangle(i,o,t),this.pushTriangle(i,s,o),this.pushTriangle(i,n,s),this.pushTriangle(s,r,o)}oneEdgeJumpOneVertexCrease(t,n,r,i){let s=i[0],o=i[1],a=this.copyVertex(r),u=this.copyVertex(r);this.pushTriangle(s,a,t),this.pushTriangle(o,n,u),this.hintNormals2(u,o),this.hintNormals2(s,a)}threeVertexCrease(t,n,r){let i=this.copyVertex(t),s=this.copyVertex(n),o=this.copyVertex(r);this.pushTriangle(i,s,o),this.hintNormals2(i,s),this.hintNormalFirstBad(o,i)}twoVertexCrease(t,n,r){let i=this.copyVertex(t),s=this.copyVertex(n);this.pushTriangle(i,s,r),this.hintNormals2(i,s)}oneVertexCrease(t,n,r){let i=this.copyVertex(t);this.pushTriangle(i,n,r),this.hintNormal1(i,n,r)}pushTrianglesBasedOnJumps(t,n,r){let i=this.jumpAlongEdge(t,n),s=this.jumpAlongEdge(n,r),o=this.jumpAlongEdge(r,t);if(i&&s&&o){let y=this.getUV(t),h=this.getUV(n),b=this.getUV(r),x=this.addVertex(this.fn(Jn(y,Jn(h,b,.5),1e-4))),P=this.addVertex(this.fn(Jn(h,Jn(b,y,.5),1e-4))),M=this.addVertex(this.fn(Jn(b,Jn(y,h,.5),1e-4))),I=this.jumpAlongEdge(x,P),E=this.jumpAlongEdge(P,M),v=this.jumpAlongEdge(M,x);if(I&&E&&v)return;t=x,n=P,r=M,i=I,s=E,o=v}let a=this.getNormal(t),u=this.getNormal(n),c=this.getNormal(r),l=this.isVertexAtCrease(t),p=this.isVertexAtCrease(n),f=this.isVertexAtCrease(r),m,g,d;if(!l&&!p&&!i&&a0(a,u)){let y=this.edgeNormalFeature(t,n);y!==null&&(y.type===\"high-curvature\"?m=y.pos:i=[y.left,y.right])}if(!p&&!f&&!s&&a0(u,c)){let y=this.edgeNormalFeature(n,r);y!==null&&(y.type===\"high-curvature\"?g=y.pos:s=[y.left,y.right])}if(!f&&!l&&!o&&a0(c,a)){let y=this.edgeNormalFeature(r,t);y!==null&&(y.type===\"high-curvature\"?d=y.pos:o=[y.left,y.right])}i&&s?d?this.twoJumpsOneExtraPoint(t,n,r,i,s,d):this.twoJumps(t,n,r,i,s):s&&o?m?this.twoJumpsOneExtraPoint(n,r,t,s,o,m):this.twoJumps(n,r,t,s,o):o&&i?g?this.twoJumpsOneExtraPoint(r,t,n,o,i,g):this.twoJumps(r,t,n,o,i):i?f?this.oneEdgeJumpOneVertexCrease(t,n,r,i):g&&d?this.oneJumpTwoExtra(t,n,r,i,g,d):g?this.oneJumpOneExtra(t,n,r,i,g):d?this.oneJumpOneExtra2(t,n,r,i,d):this.oneJump(t,n,r,i):s?l?this.oneEdgeJumpOneVertexCrease(n,r,t,s):d&&m?this.oneJumpTwoExtra(n,r,t,s,d,m):d?this.oneJumpOneExtra(n,r,t,s,d):m?this.oneJumpOneExtra2(n,r,t,s,m):this.oneJump(n,r,t,s):o?p?this.oneEdgeJumpOneVertexCrease(r,t,n,o):m&&g?this.oneJumpTwoExtra(r,t,n,o,m,g):m?this.oneJumpOneExtra(r,t,n,o,m):g?this.oneJumpOneExtra2(r,t,n,o,g):this.oneJump(r,t,n,o):l&&p&&f?this.threeVertexCrease(t,n,r):l&&p?this.twoVertexCrease(t,n,r):p&&f?this.twoVertexCrease(n,r,t):f&&l?this.twoVertexCrease(r,t,n):l?g?this.oneExtraPointOneVertexCrease(n,r,t,g):this.oneVertexCrease(t,n,r):p?d?this.oneExtraPointOneVertexCrease(r,t,n,d):this.oneVertexCrease(n,r,t):f?m?this.oneExtraPointOneVertexCrease(t,n,r,m):this.oneVertexCrease(r,t,n):m&&g&&d?this.threeExtraPoints(t,n,r,m,g,d):m&&g?this.twoExtraPoints(t,n,r,m,g):g&&d?this.twoExtraPoints(n,r,t,g,d):d&&m?this.twoExtraPoints(r,t,n,d,m):m?this.oneExtraPoint(t,n,r,m):g?this.oneExtraPoint(n,r,t,g):d?this.oneExtraPoint(r,t,n,d):this.pushTriangle(t,n,r)}oneNonFinite(t,n,r){let i=this.finiteAlongEdge(n,r),s=this.finiteAlongEdge(t,r);s!==void 0&&i!==void 0&&(this.pushTrianglesBasedOnJumps(i,t,n),this.pushTrianglesBasedOnJumps(i,s,t),this.hintNormals2Finite(i,s))}twoNonFinite(t,n,r){let i=this.finiteAlongEdge(t,n),s=this.finiteAlongEdge(t,r);i!==void 0&&s!==void 0&&(this.pushTrianglesBasedOnJumps(t,i,s),this.hintNormals2Finite(i,s))}pushTriangles(t,n,r){let i=this.allowVertex(t),s=this.allowVertex(n),o=this.allowVertex(r);i&&s&&o?this.pushTrianglesBasedOnJumps(t,n,r):i&&s?this.oneNonFinite(t,n,r):s&&o?this.oneNonFinite(n,r,t):o&&i?this.oneNonFinite(r,t,n):i?this.twoNonFinite(t,n,r):s?this.twoNonFinite(n,r,t):o&&this.twoNonFinite(r,t,n)}},Pp=class extends p0{triangulate(){let t=this.resolution,{uRange:n,vRange:r,fn:i}=this,s=[n.min,r.min],o=[n.max,r.max],a=t-1,u=new Array(t*t);u[0]=this.addVertex(i(s));for(let c=1;c<=a;c++)u[c]=this.addVertex(i(hy(s,o,[c/a,0]))),u[t*c]=this.addVertex(i(hy(s,o,[0,c/a])));for(let c=1;c<=a;c++)for(let l=1;l<=a;l++){let p=u[(l-1)*t+(c-1)],f=u[l*t+(c-1)],m=u[(l-1)*t+c],g=this.addVertex(i(hy(s,o,[c/a,l/a])));u[l*t+c]=g,(c+l)%2===0?(this.pushTriangles(p,g,f),this.pushTriangles(p,m,g)):(this.pushTriangles(p,m,f),this.pushTriangles(m,g,f))}return{triangles:this.getTriangles(),normalDirHints:this.normalDirHints}}};function F2(e){let t=e[0]*Math.SQRT1_2,n=e[1]*Math.SQRT1_2;return[t+n,n-t]}function Ug(e){let t=e[0]*Math.SQRT1_2,n=e[1]*Math.SQRT1_2;return[t-n,t+n]}function V2(e){return[e[1],-e[0]]}function u0(e){return[-e[1],e[0]]}var sN=80;var f0=class extends Pp{constructor(n,r,i,s,o,a){let u=i.width/1e8,c=s.width/1e8;super({resolution:o,uRange:i,vRange:s,du:u,dv:c,extraAttrCount:a});this.vertices=[];this.fn=n=>{let r=this._fn(n),i=this.tangentInForced(n,[this.du,0],r),s=this.tangentInForced(n,[0,this.dv],r),o=kl(i,s);return{uv:n,f:r,normal:o,dfEast:i,dfNorth:s}};this._fn=l=>n(l[0],l[1]),this.xmin=r.xmin*6-r.xmax*5,this.xmax=r.xmax*6-r.xmin*5,this.ymin=r.ymin*6-r.ymax*5,this.ymax=r.ymax*6-r.ymin*5,this.zmin=r.zmin*6-r.zmax*5,this.zmax=r.zmax*6-r.zmin*5,this.distThresh=((r.xmax-r.xmin)*1e-6)**2}getVertexCount(){return this.vertices.length}getUV(n){return this.vertices[n].uv}getNormal(n){return this.vertices[n].normal}_addVertex(n){return this.vertices.push(n)-1}copyVertex(n){return this.addVertex(this.vertices[n])}getF(n){return this.vertices[n].f}getDfNorth(n){return this.vertices[n].dfNorth}getDfEast(n){return this.vertices[n].dfEast}insidePaddedDomain(n){return this.zmin<=n[2]&&n[2]<=this.zmax&&this.ymin<=n[1]&&n[1]<=this.ymax&&this.xmin<=n[0]&&n[0]<=this.xmax}tangentInForced(n,r,i){let s=Ef(n,r);return wT(this._fn(s),i)}_isVertexAtCrease(n){let r=this.getUV(n),i=this.getDfEast(n),s=this.getDfNorth(n),o=this.getF(n),a=this.tangentInForced(r,[-this.du,0],o);if(FT(a,i)/Math.sqrt(Gl(a)*Gl(i))>-Tp)return!0;let c=this.tangentInForced(r,[0,-this.dv],o);return FT(s,c)/Math.sqrt(Gl(s)*Gl(c))>-Tp}hintedNormal(n,r){let i=this.getUV(n),s=this.getF(n),o=kl(this.tangentInForced(i,r[0],s),this.tangentInForced(i,r[1],s));return zl(...o)?o:this.getNormal(n)}getVertex(n){if(this.allowVertex(n))return this.getF(n)}getExtraAttr(n,r){return this.vertices[n].f[3+r]}findJumpBetweenTwoSamples(n,r){let i=this.getUV(n),s=this.getF(n),o=0,a=this.getUV(r),u=this.getF(r),c=1,l=m=>this._fn(Jn(i,a,m));if(!isFinite(s[0])||!isFinite(s[1])||!isFinite(s[2])||!isFinite(u[0])||!isFinite(u[1])||!isFinite(u[2]))return;let f=xy(o,s,c,u,l,(this.xmax-this.xmin)*1e-6,0,0);if(f)return[this.fn(Jn(i,a,ys(f[0],0,1e-5))),this.fn(Jn(i,a,ys(f[1],1,1e-5)))]}clip(n){return this.insidePaddedDomain(n)?n:[NaN,NaN,NaN]}findFiniteBetweenTwoSamples(n,r){let i=this.getUV(n),s=this.getF(n),o=this.getUV(r),a=this.getF(r),u=l=>this.clip(this._fn(Jn(i,o,l))),c=by(0,this.clip(s),1,this.clip(a),u);if(c!==void 0)return this.fn(Jn(i,o,c))}allowVertex(n){return this.insidePaddedDomain(this.getF(n))}isDegenerate(n,r,i){let s=this.getF(n),o=this.getF(r);if(xa(s,o)<this.distThresh)return!0;let a=this.getF(i);return xa(o,a)<this.distThresh||xa(s,a)<this.distThresh}};function wc(e,t,n,r,i,s){let o=new f0(e,t,n,r,i,s);return qg(o)}var{floor:B2}=Math;function d0(e){let t=[];for(let n of e)t.push(...n),t.push(NaN,NaN,NaN);return t}function Fc(e,t,n,r){(n===void 0||isNaN(n))&&(n=y0(t.min,t.max)),n=rr(B2(n),2,2e3);let{xmin:i,xmax:s,ymin:o,ymax:a,zmin:u,zmax:c}=r.viewport;u!=null||(u=lr.zmin),c!=null||(c=lr.zmax);let l=Yg(e,{min:t.min,max:t.max,nInitialSamples:n,xtolerance:(s-i)/1e3,ytolerance:(a-o)/1e3,ztolerance:(c-u)/1e3,map:p=>p});return d0(l.segments)}function $g(e,t,n,r){let i=r.degreeMode?Math.PI/180:1;return Fc(s=>{let o=e(s),a=o[0],u=o[1],c=o[2];return[a*xn(u*i),a*Kt(u*i),c]},t,n,r)}function m0(e,t,n,r){let i=r.degreeMode?Math.PI/180:1;return Fc(s=>{let o=e(s),a=o[0],u=o[1],c=o[2];return[a*Kt(c*i)*xn(u*i),a*Kt(c*i)*Kt(u*i),a*xn(c*i)]},t,n,r)}function g0(e,t){return{type:\"linear\",s:e,t}}function oN(e,t){return{type:\"logarithmic\",s:e,t}}function aN(e,t){return{type:\"exponential\",s:e,t}}function h0(){return g0(1,0)}function G2([e,t],[n,r]){let i=(r-n)/(t-e),s=(n+r)/2-i*(t+e)/2;return g0(i,s)}function k2([e,t],[n,r]){let i=(r-n)/(Math.log(t)-Math.log(e)),s=(Math.log(t)*n-Math.log(e)*r)/(Math.log(t)-Math.log(e));return oN(i,s)}function z2([e,t],[n,r]){let i=(Math.log(r)-Math.log(n))/(t-e),s=(t*Math.log(n)-e*Math.log(r))/(t-e);return aN(i,s)}function b0(e,t,n){switch(e){case\"linear\":return G2(t,n);case\"logarithmic\":return k2(t,n);case\"exponential\":return z2(t,n);default:{let r=e;throw new Error(\"Unexpected scale type: \"+r)}}}function x0({type:e,s:t,t:n},r){switch(e){case\"linear\":return t*r+n;case\"logarithmic\":return t*Math.log(r)+n;case\"exponential\":return Math.exp(t*r+n);default:let i=e;throw new Error(\"Unexpected scale type: \"+i)}}function P0(e,t,n,r){switch(e){case\"linear\":return H2(t,n,r);case\"logarithmic\":return Math.pow(t,1-r)*Math.pow(n,r);case\"exponential\":return r===0?t:r===1?n:Math.log((1-r)*Math.exp(t)+r*Math.exp(n));default:let i=e;throw new Error(\"Unexpected scale type: \"+i)}}function H2(e,t,n){return(1-n)*e+n*t}function T0({type:e,s:t,t:n}){switch(e){case\"linear\":return g0(1/t,-n/t);case\"logarithmic\":return aN(1/t,-n/t);case\"exponential\":return oN(1/t,-n/t);default:let r=e;throw new Error(\"Unexpected scale type: \"+r)}}function I0(e){switch(e){case\"linear\":return\"linear\";case\"logarithmic\":return\"exponential\";case\"exponential\":return\"logarithmic\";default:let t=e;throw new Error(\"Unexpected scale type: \"+t)}}function Xg({width:e,height:t}){return{left:0,right:e,top:0,bottom:t}}function Zg({xmin:e,xmax:t,ymin:n,ymax:r}){return{left:e,right:t,bottom:n,top:r}}var Ou=class e{constructor(t,n){this.xScale=t,this.yScale=n}static fromRects(t,n,{xAxisScale:r,yAxisScale:i}){return new e(b0(r,[t.left,t.right],[n.left,n.right]),b0(i,[t.bottom,t.top],[n.bottom,n.top]))}static fromRectsInverse(t,n,{xAxisScale:r,yAxisScale:i}){return e.fromRects(n,t,{xAxisScale:I0(r),yAxisScale:I0(i)})}inverse(){return new e(T0(this.xScale),T0(this.yScale))}mapX(t){return x0(this.xScale,t)}mapY(t){return x0(this.yScale,t)}mapPoint({x:t,y:n}){return{x:this.mapX(t),y:this.mapY(n)}}mapCoordinatePair([t,n]){return[this.mapX(t),this.mapY(n)]}mapRect({top:t,bottom:n,left:r,right:i}){return{left:this.mapX(r),right:this.mapX(i),bottom:this.mapY(n),top:this.mapY(t)}}interpolateX(t,n,r){return P0(this.xScale.type,t,n,r)}interpolateY(t,n,r){return P0(this.yScale.type,t,n,r)}dangerouslyGetXScaleFactor(){if(this.xScale.type!==\"linear\")throw new Error(`Cannot get scale factor a '${this.xScale.type}' scale`);return this.xScale.s}dangerouslyGetYScaleFactor(){if(this.yScale.type!==\"linear\")throw new Error(`Cannot get scale factor a '${this.yScale.type}' scale`);return this.yScale.s}};var E0=class extends Pp{constructor(n,r,i,s,o,a=[0,1,2]){let u=r.width/1e8,c=i.width/1e8;super({resolution:o,uRange:r,vRange:i,du:u,dv:c,extraAttrCount:0});this.vertices=[];this.fn=n=>{let r=this._fn(n),i=this.tangentInForcedDf(n,[this.du,0],r),s=this.tangentInForcedDf(n,[0,this.dv],r),o=kl([this.du,0,i],[0,this.dv,s]);return{uv:n,f:r,normal:[o[this.perm0],o[this.perm1],o[this.perm2]],dfEast:i,dfNorth:s}};this._fn=l=>n(l[0],l[1]),this.paddedOutputDomain=new ee(s.min-5*s.width,s.max+5*s.width),this.jumpTolerance=s.width/1e3,this.perm0=a[0],this.perm1=a[1],this.perm2=a[2]}getVertexCount(){return this.vertices.length}getUV(n){return this.vertices[n].uv}getNormal(n){return this.vertices[n].normal}_addVertex(n){return this.vertices.push(n)-1}copyVertex(n){return this.addVertex(this.vertices[n])}getF(n){return this.vertices[n].f}getDfNorth(n){return this.vertices[n].dfNorth}getDfEast(n){return this.vertices[n].dfEast}tangentInForcedDf(n,r,i){let s=Ef(n,r);return this._fn(s)-i}tangentInForced(n,r,i){let s=Ef(n,r);return[r[0],r[1],this._fn(s)-i]}getExtraAttr(){throw new Error(\"Unexpected getExtraAttr call in explicit-surface.ts\")}_isVertexAtCrease(n){let r=this.getUV(n),i=this.getDfEast(n),s=this.getDfNorth(n),o=this.getF(n),a=this.tangentInForcedDf(r,[-this.du,0],o);if((-this.duSquared+a*i)/Math.sqrt((this.duSquared+a*a)*(this.duSquared+i*i))>-Tp)return!0;let l=this.tangentInForcedDf(r,[0,-this.dv],o);return(-this.dvSquared+s*l)/Math.sqrt((this.dvSquared+s*s)*(this.dvSquared+l*l))>-Tp}hintedNormal(n,r){let i=this.getUV(n),s=this.getF(n),o=kl(this.tangentInForced(i,r[0],s),this.tangentInForced(i,r[1],s));return zl(...o)?[o[this.perm0],o[this.perm1],o[this.perm2]]:this.getNormal(n)}getVertex(n){if(!this.allowVertex(n))return;let r=this.getF(n),i=this.getUV(n);return[this.perm0===2?r:i[this.perm0],this.perm1===2?r:i[this.perm1],this.perm2===2?r:i[this.perm2]]}findJumpBetweenTwoSamples(n,r){let i=this.getUV(n),s=this.getF(n),o=0,a=this.getUV(r),u=this.getF(r),c=1,l=f=>this._fn(Jn(i,a,f));if(!isFinite(s)||!isFinite(u))return;let p=qD(o,s,c,u,l,this.jumpTolerance);if(p)return[this.fn(Jn(i,a,ys(p[0],0,1e-5))),this.fn(Jn(i,a,ys(p[1],1,1e-5)))]}findFiniteBetweenTwoSamples(n,r){let i=this.getUV(n),s=this.getF(n),o=this.getUV(r),a=this.getF(r),u=p=>{let f=this._fn(p);return f<this.paddedOutputDomain.min||f>this.paddedOutputDomain.max?NaN:f},c=p=>u(Jn(i,o,p)),l=si(0,this.paddedOutputDomain.min<s&&s<this.paddedOutputDomain.max?s:NaN,1,this.paddedOutputDomain.min<a&&a<this.paddedOutputDomain.max?a:NaN,c);if(l!==void 0)return this.fn(Jn(i,o,l))}allowVertex(n){let r=this.getF(n);return this.paddedOutputDomain.min<r&&r<this.paddedOutputDomain.max}isDegenerate(n,r,i){let s=this.getUV(n),o=this.getUV(r),a=this.getUV(i),u=this.uRange.width*1e-6,c=this.vRange.width*1e-6;return Math.abs(s[0]-o[0])<u&&Math.abs(s[1]-o[1])<c||Math.abs(o[0]-a[0])<u&&Math.abs(o[1]-a[1])<c||Math.abs(a[0]-s[0])<u&&Math.abs(a[1]-s[1])<c}};function Wg(e,t,n,r,i,s=[0,1,2]){let o=new E0(e,t,n,r,i,s);return qg(o)}function fN(e,t,n,r){let i=q2(e,t,n,r);return d0(i)}function q2(e,t,n,r){return new S0(e,t,new ee(n.xmin,n.xmax),new ee(n.ymin,n.ymax),new ee(n.zmin,n.zmax),r).run()}var $2={},S0=class extends xp{constructor(n,r,i,s,o,a){super(Hg,i,s,o,a);this.f=n;this.g=r;this.vertexFGZs={};this.vertexZeroF={};this.vertexZeroG={};this.threshF=0;this.threshG=0;this.cubeID=0;this.edgesMaybeCrossF=0;this.edgesMaybeCrossG=0;this.tetEdgeCrossings=new Array(26);this.edgeFGZs=new Array(26);this.edgeCrossings=new Map;this.allFGZs=new Map}setAt(n,r,i,s,o){let a=this.f(i,s,o),u=this.g(i,s,o);n.set(r,a,u)}run(){return this.loopOverUnitCubes(this.onEachCube.bind(this)),this.traceCurves()}onEachCube(){this.cubeID=nN(this.i,this.j,this.k),this.pruneEdges(),this.edgesMaybeCrossF&&this.edgesMaybeCrossG&&(this.setVertexPositions(),this.setVertexZeros(),this.setEdgeCrossings(),this.insertCurveSegmentsFromCube())}pruneEdges(){this.edgesMaybeCrossF=0,this.edgesMaybeCrossG=0;for(let n=0;n<26;n++){let r=Er[n*2],i=Er[n*2+1],s=this.cubeVertexValue.getX(r),o=this.cubeVertexValue.getY(r),a=this.cubeVertexValue.getX(i),u=this.cubeVertexValue.getY(i);!(s>0&&a>0||s<0&&a<0)&&(isFinite(s)||isFinite(a))&&(this.edgesMaybeCrossF|=1<<n),!(o>0&&u>0||o<0&&u<0)&&(isFinite(o)||isFinite(u))&&(this.edgesMaybeCrossG|=1<<n)}}setVertexZeros(){let n=0,r=0;for(let o=0;o<9;o++){let a=this.cubeVertexValue.getX(o),u=this.cubeVertexValue.getY(o),c=Math.abs(a),l=Math.abs(u);c>n&&isFinite(c)&&(n=c),l>r&&isFinite(c)&&(r=l)}let i=this.threshF=n*Number.EPSILON*32,s=this.threshG=r*Number.EPSILON*32;for(let o=0;o<9;o++){let a=this.cubeVertexValue.getX(o),u=this.cubeVertexValue.getY(o),c=Math.abs(a),l=Math.abs(u);if(this.vertexZeroF[o]=c<=i,this.vertexZeroG[o]=l<=s,c<=i&&l<=s){let p=this.cubeVertex[o],f=this.createFGZ(rN(this.cubeID,o),p);this.vertexFGZs[o]=f}else this.vertexFGZs[o]=void 0}}getEdgeCrossings(n){let r=this.edgesMaybeCrossF>>n&1,i=this.edgesMaybeCrossG>>n&1;if(!r&&!i)return $2;let s=pd(this.cubeID,n),o=this.edgeCrossings.get(s);if(o!==void 0)return o;let a=this.getEdgeCrossingsUncached(n,r,i);return this.edgeCrossings.set(s,a),a}getEdgeCrossingsUncached(n,r,i){let s=Er[n*2],o=Er[n*2+1],a=this.cubeVertexValue.getX(s),u=this.cubeVertexValue.getY(s),c=this.cubeVertexValue.getX(o),l=this.cubeVertexValue.getY(o),p=this.cubeVertex[s],f=this.cubeVertex[o],m=!r||a===0||c===0?void 0:ld(this.f,p,f,a,c),g=!i||u===0||l===0?void 0:ld(this.g,p,f,u,l),d=this.threshF;!m&&g&&Math.abs(a)<=d&&Math.abs(c)<=d&&Math.abs(this.f(g[0],g[1],g[2]))<=d&&(m=g);let y=this.threshG;return!g&&m&&Math.abs(u)<=y&&Math.abs(l)<=y&&Math.abs(this.g(m[0],m[1],m[2]))<=y&&(g=m),{f:m,g}}getTriangleCrossing(n){let r=i0(this.cubeID,n),i=this.allFGZs.get(r);if(i!==void 0)return i;let s=this.getTriangleCrossingUncached(n);return this.allFGZs.set(r,s),s}createFGZ(n,r){let i=this.allFGZs.get(n);if(i)return i;let s={id:n,pos:r,connections:[],visited:!1};return this.allFGZs.set(n,s),s}getTriangleCrossingUncached(n){let r=[],i=[],s=r0[n];for(let a=0;a<3;a++){let u=s[a];if(this.vertexFGZs[u])return null;this.vertexZeroF[u]&&r.push(this.cubeVertex[u]),this.vertexZeroG[u]&&i.push(this.cubeVertex[u])}let o=n0[n];for(let a=0;a<3;a++){let u=o[a],c=this.tetEdgeCrossings[u];if(this.edgeFGZs[u]||!c)continue;let l=c.f,p=c.g,f=Er[2*u],m=Er[2*u+1];l&&!this.vertexZeroF[f]&&!this.vertexZeroF[m]&&r.push(l),p&&!this.vertexZeroG[f]&&!this.vertexZeroG[m]&&i.push(p)}if(r.length===2&&i.length===2){let a=Y2(r[0],r[1],i[0],i[1]);return a?{id:i0(this.cubeID,n),pos:a,connections:[],visited:!1}:null}else return null}setEdgeCrossings(){for(let n=0;n<26;n++){let r=this.getEdgeCrossings(n),i=r.f,s=r.g,o=Er[n*2],a=Er[n*2+1];if(this.vertexFGZs[o]||this.vertexFGZs[a])this.tetEdgeCrossings[n]=void 0,this.edgeFGZs[n]=void 0;else if(i&&this.vertexZeroG[o]&&this.vertexZeroG[a]){let u=this.createFGZ(pd(this.cubeID,n),i);this.edgeFGZs[n]=u,this.tetEdgeCrossings[n]=void 0}else if(s&&this.vertexZeroF[o]&&this.vertexZeroF[a]){let u=this.createFGZ(pd(this.cubeID,n),s);this.edgeFGZs[n]=u,this.tetEdgeCrossings[n]=void 0}else if(i&&s&&xa(i,s)<1e-8){let u=this.createFGZ(pd(this.cubeID,n),i);this.edgeFGZs[n]=u,this.tetEdgeCrossings[n]=void 0}else this.edgeFGZs[n]=void 0,this.tetEdgeCrossings[n]=r}}insertCurveSegmentsFromCube(){for(let n=0;n<12;n++)this.insertCurveSegmentsFromTetrahedron(n)}insertCurveSegmentsFromTetrahedron(n){let r=[],i=tN[n];for(let l=0;l<4;l++){let p=this.getTriangleCrossing(i[l]);p&&r.push(p)}let s=[],o=Gg[n];for(let l=0;l<6;l++){let p=this.edgeFGZs[o[l]];p&&s.push(p)}let a=[],u=[Er[o[0]*2],Er[o[0]*2+1],Er[o[3]*2],Er[o[3]*2+1]];for(let l of u){let p=this.vertexFGZs[l];p&&a.push(p)}let c=[...a,...s,...r];switch(c.length){case 0:case 1:break;case 2:this.connectCrossings(c[0],c[1]);break;case 3:r.length===2&&this.connectCrossings(r[0],r[1]);break;case 4:r.length===4&&(this.connectCrossings(r[0],r[1]),this.connectCrossings(r[2],r[3]));break;default:throw new Error(\"Programming error: 5 is impossible.\")}}connectCrossings(n,r){n.connections.some(i=>i.id===r.id)||r.connections.some(i=>i.id===n.id)||n.connections.length>=2||r.connections.length>=2||(n.connections.push(r),r.connections.push(n))}traceCurves(){let n={xtolerance:this.size.x*.1,ytolerance:this.size.y*.1,ztolerance:this.size.z*.1,map:i=>i},r=new xs(n);for(let i of this.allFGZs.values())i&&!i.visited&&i.connections.length===1&&this.traceCurve(r,i);for(let i of this.allFGZs.values())i&&!i.visited&&this.traceCurve(r,i);return r.finish().segments}traceCurve(n,r){let i=r;for(;;){n.addPoint(r.pos),r.visited=!0;let s;for(let o of r.connections)o.visited||(s=o);if(!s)break;r=s}i.connections.length===2&&n.addPoint(i.pos),n.breakSegment()}},[jg,uN,M0]=[new Qe,new Qe,new Qe],cN=new Qe,[v0,D0,lN]=[new Qe,new Qe,new Qe],[Jg,pN,Qg]=[new Qe,new Qe,new Qe];function Y2(e,t,n,r){jg.set(e[0],e[1],e[2]),uN.set(t[0],t[1],t[2]),M0.set(n[0],n[1],n[2]),cN.set(r[0],r[1],r[2]),v0.subVectors(uN,jg),D0.subVectors(cN,M0),lN.subVectors(M0,jg),Jg.crossVectors(v0,D0),pN.crossVectors(lN,D0);let i=Jg.dot(pN)/Jg.dot(Jg);return 0<=i&&i<=1?(Qg.addVectors(jg,v0.multiply(i)),[Qg.x,Qg.y,Qg.z]):null}function Kg(e,t,n,r){let i=[],s=[],o=[],a=[],{xmin:u,xmax:c,ymin:l,ymax:p,zmin:f,zmax:m}=n,g,d,y;switch(r){case\"z\":g={xmin:u,xmax:c,ymin:l,ymax:p},d=(P,M)=>[P[M],P[M+1],f,P[M],P[M+1],m],y=(P,M)=>e(P,M,0);break;case\"y\":g={xmin:u,xmax:c,ymin:f,ymax:m},d=(P,M)=>[P[M],l,P[M+1],P[M],p,P[M+1]],y=(P,M)=>e(P,0,M);break;case\"x\":g={xmin:f,xmax:m,ymin:l,ymax:p},d=(P,M)=>[u,P[M+1],P[M],c,P[M+1],P[M]],y=(P,M)=>e(0,M,P);break}let h=Xg({width:500,height:500}),b={...g,mathToPixels:Ou.fromRects(Zg(g),h,{xAxisScale:\"linear\",yAxisScale:\"linear\"}),tolerance:Xs},x=ud(y,b);for(let P of x.segments)for(let M=0;M<P.length/2;M++){let[I,E,v,O,A,N]=d(P,2*M);if(i.push(I,E,v,O,A,N),o.push(I,E,O,A),t){let L=t(I,E,v),z=t(O,A,N);s.push(L[0],L[1],L[2]),s.push(z[0],z[1],z[2])}else s.push(0,0,0),s.push(0,0,0);if(M>0){let L=i.length/3-4;a.push(L,L+1,L+2),a.push(L+2,L+1,L+3)}}return bp(a,i,s,o,0,[],.7),{positions:i,normals:s,faces:a,uvs:o,resolved:x.resolved,extraAttrs:[]}}var{floor:dN}=Math,mN=1e4,eh=5,yN=(e,t,n)=>({x:e,y:t,z:n}),gN=(e,t,n)=>({x:n,y:e,z:t}),hN=(e,t,n)=>({x:e,y:n,z:t}),th=class{constructor(){this.xmin=lr.xmin;this.xmax=lr.xmax;this.ymin=lr.ymin;this.ymax=lr.ymax;this.zmin=lr.zmin;this.zmax=lr.zmax}},X2=0;function fi(){return\"result_\"+X2++}function Z2(){return{zeros:{x:[],y:[]},extrema:{x:[],y:[]},intercept:{x:[],y:[]}}}function IN(e){return{graphMode:15,error:e,segments:[]}}function C0(e,t){let n=e[0]+t.min*e[1],r=e[0]+t.max*e[1],i={zeros:{x:[],y:[]},intercept:{x:[],y:[]},extrema:{x:[],y:[]}};if(!isFinite(n)||!isFinite(r))return{segments:[],poi:i,resolved:!0};let s=[[t.min,n,t.max,r]],o=-e[0]/e[1];return!isNaN(o)&&o>=t.min&&o<=t.max&&(i.zeros.x.push(o),i.zeros.y.push(0)),0>=t.min&&0<=t.max&&(i.intercept.x.push(0),i.intercept.y.push(e[0])),{segments:s,poi:i,resolved:!0}}function W2(e,t){let n=C0(e[0],t),r=C0(e[1],t);return n.segments.length&&r.segments.length&&n.segments[0].length===4&&r.segments[0].length===4?{segments:[[n.segments[0][1],r.segments[0][1],n.segments[0][3],r.segments[0][3]]],resolved:!0}:{segments:[],resolved:!0}}function j2(e,t){let n=e(t);return{segments:[[...n,...n]],resolved:!0}}function bN(e,t,n){let{mappedFn:r,jumpTolerance:i,screen:s}=n,[o,a]=e,[u,c]=t,l=pa(o,u),p=r(l),f=s.height;if(!(a<0&&c<0&&(a>=p||c>=p))&&!(a>f&&c>f&&(a<=p||c<=p)))return Hl(o,a,l,p,u,c,r,i)}var O0=(e,t,n)=>{let{fn:r,mappedFn:i,jumpTolerance:s,accumulator:o}=n;if(!isFinite(s)||s<=0)return;let a=bN(e,t,n);if(!a)return;let u=(t[0]-e[0])/10,c=[-u,u],l;for(let p=0;p<c.length;p++){let f=e[0]+c[p],m=i(f);isFinite(m)||([f,m]=e,f=e[0],m=e[1]);let g=t[0]+c[p],d=i(g);if(isFinite(d)?l=g:[g,d]=t,bN([f,m],[g,d],n)){let[y,h]=a;o.addPoint([y,r(y)]),o.breakSegment(),o.addPoint([h,r(h)]);return}}return l},R0=class{constructor(t,n,r){let i=s=>n.mathToPixels.mapY(t(s));this.derivative=r,this.accumulator=new cd(n,t,r),this.fn=t,this.mathToPixels=n.mathToPixels,this.mappedFn=i,this.jumpTolerance=n.tolerance||0,this.screen=n.screen}};function xN(e,t,n,r){let i=n,s=e(i),o=t.mapY(s);return r>0&&!isFinite(o)&&(i=n+r,s=e(i),o=t.mapY(s)),r>0&&!isFinite(o)&&(i=n-r,s=e(i),o=t.mapY(s)),[i,s,o]}function A0(e,t,n){let r=new R0(e,t,n),{mathToPixels:i,mappedFn:s}=r,o=t.nInitialSamples,[a,u,c]=xN(e,i,t.min,0);isFinite(c)&&r.accumulator.addPoint([a,u]);for(var l=1;l<o;l++){let p=i.interpolateX(t.min,t.max,l/(o-1)),f=l===o-1?0:Math.abs(a-p)/10,[m,g,d]=xN(e,i,p,f);if(isFinite(d)&&isFinite(c)){let y=O0([a,c],[m,d],r);y!==void 0&&(m=y,g=e(m),d=i.mapY(g)),r.accumulator.addPoint([m,g])}else if(isFinite(d)&&!isFinite(c)){let y=si(a,c,m,d,s);if(y!==void 0){y!==m&&r.accumulator.addPoint([y,e(y)]);let h=O0([y,s(y)],[m,d],r);h!==void 0&&(m=h,g=e(m),d=i.mapY(g)),r.accumulator.addPoint([m,g])}}else if(!isFinite(d)&&isFinite(c)){let y=si(a,c,m,d,s);if(y!==void 0){let h=O0([a,c],[y,s(y)],r);h!==void 0&&(y=h),y!==a&&r.accumulator.addPoint([y,e(y)]),r.accumulator.breakSegment()}}a=m,u=g,c=d}return r.accumulator.finish()}function J2(e){let{fn:t,min:n,max:r}=e,i=Math.floor(n),s=Math.ceil(r),o=!0;s-i+1>mN&&(s=i+(mN-1),o=!1);let a=[];for(let u=i;u<=s;u++){let c=t(u);!isFinite(u)||!isFinite(c)||a.push([u,c])}return{segments:a,resolved:o}}function Q2(e,t,n,r){let i=t.min,s=t.max-t.min,o=t.rtoleranceMath,a=Math.floor(s/(Math.PI/n)),u,c,l;function p(f,m){let g=m%2===0?1:-1;if(!r&&g===-1)return!1;let d=m*(Math.PI/n),y=[i,i+1,i+2,i+3],h=!1;for(let b=0,x=y.length;b<x;b++){let P=f(y[b]),M=f(y[b]+d);if(isFinite(P)&&isFinite(M)&&(h=!0),isFinite(P)!==isFinite(M)||Math.abs(P-g*M)>o)return!1}return!!h}for(u=1;u<=a;u++)if(p(e,u)){for(l=u,c=2;c*u<=a;c++)p(e,c*u)||(l=void 0);if(l)break}return l?l*(Math.PI/n):null}function EN(e){return[e[1]*Math.cos(e[0]),e[1]*Math.sin(e[0])]}function Yg(e,t){if(t.max<t.min)return{segments:[],resolved:!0};if(t.parameterTransform){let p=t.parameterTransform,f=e;e=m=>f(p(m))}let{xtolerance:n,ytolerance:r,ztolerance:i,map:s}=t,o=new xs({xtolerance:n,ytolerance:r,ztolerance:i,map:s}),a=10,u=t.min,c=e(u);isFinite(c[0])&&isFinite(c[1])&&o.addPoint(c);let l=t.nInitialSamples;for(let p=1;p<l;p++){let f=p/(l-1),m=(1-f)*t.min+f*t.max,g=e(m);md(e,u,c,m,g,a,o,t.screen),u=m,c=g}return o.finish()}function K2(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function md(e,t,n,r,i,s,o,a){if(r===t)return;let{xtolerance:u,ytolerance:c,ztolerance:l,map:p}=o,f=pa(t,r),m=e(f),g=p(n),d=p(i),y=p(m),h=isFinite(g[0])&&isFinite(g[1])&&(g.length===2||isFinite(g[2])),b=isFinite(d[0])&&isFinite(d[1])&&(d.length===2||isFinite(d[2])),x=isFinite(y[0])&&isFinite(y[1])&&(y.length===2||isFinite(y[2]));if(s===0||f===t||f===r){o.breakSegment(),b&&o.addPoint(i);return}if(!(!h&&!b)){if(h!==b){let P=t,M=r,I=n,E=i;for(;t!==f&&f!==r;)x==h?(t=f,n=m,g=y,h=x):(r=f,i=m,d=y,b=x),f=t+(r-t)/2,m=e(f),y=p(m),x=isFinite(y[0])&&isFinite(y[1])&&(y.length===2||isFinite(y[2]));h?(md(e,P,I,t,n,s-1,o,a),o.breakSegment()):(o.breakSegment(),o.addPoint(i),md(e,r,i,M,E,s-1,o,a));return}if(h&&x&&b){let P=K2(g,d),M=Rs(y[0],y[1],y[2]||0,g[0],g[1],g[2]||0,d[0],d[1],d[2]||0),I=M>.2&&M<.8&&Math.abs(y[0]-(g[0]+M*(d[0]-g[0])))<=u&&Math.abs(y[1]-(g[1]+M*(d[1]-g[1])))<=c&&(g.length===2||Math.abs(y[2]-(g[2]+M*(d[2]-g[2])))<=l);if(P||I||a&&ek(g,y,d,a)){o.addPoint(i);return}}md(e,t,n,f,m,s-1,o,a),md(e,f,m,r,i,s-1,o,a)}}function ek(e,t,n,{width:r,height:i}){return e[0]<0&&n[0]<0&&(e[0]>=t[0]||n[0]>=t[0])||e[0]>r&&n[0]>r&&(e[0]<=t[0]||n[0]<=t[0])||e[1]<0&&n[1]<0&&(e[1]>=t[1]||n[1]>=t[1])||e[1]>i&&n[1]>i&&(e[1]<=t[1]||n[1]<=t[1])}function tk(){return qi({positions:[],normals:[],faces:[],uvs:[],resolved:!0,extraAttrs:[]})}function _0(e,t,n,r,i,{isInequality:s}){let o=e.fn,a;return t&&!t.includes(\"z\")?a=Kg(o,n,r,\"z\"):t&&!t.includes(\"x\")?a=Kg(o,n,r,\"x\"):t&&!t.includes(\"y\")?a=Kg(o,n,r,\"y\"):a=iN(o,n,r,i,{isInequality:s}),qi(a)}function PN(e,t,n,r,i){let s=wc(e,t,n,r,i,0);return qi(s)}function nk(e,t,n,r,i,s){let o=s?Math.PI/180:1,a=e.fn,u=wc((c,l)=>{let[p,f,m]=a(c,l);return[p*xn(f*o),p*Kt(f*o),m,p,f]},t,n,r,i,2);return qi(u)}function rk(e,t,n,r,i,s){let o=s?Math.PI/180:1,a=e.fn,u=wc((c,l)=>{let[p,f,m]=a(c,l);return[p*Kt(m*o)*xn(f*o),p*Kt(m*o)*Kt(f*o),p*xn(m*o),p,f,m]},t,n,r,i,3);return qi(u)}function ik(e,t,n){let r=e.fn,i=Wg((s,o)=>r(s,o),new ee(t.xmin,t.xmax),new ee(t.ymin,t.ymax),new ee(t.zmin,t.zmax),n);return qi(i)}function sk(e,t,n){let r=e.fn,i=Wg((s,o)=>r(s,o),new ee(t.ymin,t.ymax),new ee(t.zmin,t.zmax),new ee(t.xmin,t.xmax),n,[2,0,1]);return qi(i)}function ok(e,t,n){let r=e.fn,i=Wg((s,o)=>r(o,s),new ee(t.zmin,t.zmax),new ee(t.xmin,t.xmax),new ee(t.ymin,t.ymax),n,[1,2,0]);return qi(i)}function ak(e,t,n,r,i,s){let o=s?Math.PI/180:1,a=e.fn,u=wc((c,l)=>[c*xn(l*o),c*Kt(l*o),a(c,l)],t,n,r,i,0);return qi(u)}function uk(e,t,n,r,i,s){let o=s?Math.PI/180:1,a=e.fn,u=wc((c,l)=>{let p=a(c,l);return[p*xn(c*o),p*Kt(c*o),l,p]},t,n,r,i,1);return qi(u)}function ck(e,t,n,r,i,s){let o=s?Math.PI/180:1,a=e.fn,u=wc((c,l)=>{let p=a(c,l);return[p*Kt(l*o)*xn(c*o),p*Kt(l*o)*Kt(c*o),p*xn(l*o),p]},t,n,r,i,1);return qi(u)}function qi(e){let{positions:t,normals:n,faces:r,uvs:i,extraAttrs:s,resolved:o}=e;return{guid:fi(),positions:new Float32Array(t),normals:new Float32Array(n),faces:new Uint32Array(r),uvs:new Float32Array(i),resolved:o,extraAttrs:new Float32Array(s)}}function TN(e){for(let t of e)if(t!==0)return!1;return!0}function MN(e,t){let{min:n,max:r,mathToPixels:i,nInitialSamples:s}=t,o=i.interpolateX(n,r,0),a=e(o),u=TN(a),c=!1,l=[];for(var p=1;p<s;p++){let f=i.interpolateX(n,r,p/(s-1)),m=e(f),g=TN(m);if(u){o=f,a=m,g||(u=!1);continue}if(g){c?(u=!0,c=!1):c=!0;continue}let d=HD(o,a,f,m,e);d!==void 0&&l.push(d),o=f,a=m}return l}function vN(e){if(!e)return!1;let t=e.viewport.xmin,n=e.viewport.xmax,r=e.viewport.ymin,i=e.viewport.ymax;return!(!isFinite(t)||!isFinite(n)||n<=t||!isFinite(r)||!isFinite(i)||i<=r||!isFinite(e.screen.width)||e.screen.width<=0||!isFinite(e.screen.height)||e.screen.height<=0)}function y0(e,t){let n=t-e;return 1+Math.ceil(n/(n/1e3))}var Xs=.001,Cu=new Ou(h0(),h0());function Ip(e,t,n){var z,G,$,w,Y,de,re,ie,Z;let{viewport:r,screen:i,xAxisScale:s,yAxisScale:o,degreeMode:a}=e,u=a?Math.PI/180:1,c=e.viewport.xmin,l=e.viewport.xmax,p=e.viewport.ymin,f=e.viewport.ymax,m=(z=e.viewport.zmin)!=null?z:lr.zmin,g=(G=e.viewport.zmax)!=null?G:lr.zmax,d=(($=t.domain)==null?void 0:$.type)===\"2d\",{uMin:y,uMax:h,vMin:b,vMax:x}=((w=t.domain)==null?void 0:w.type)===\"2d\"?t.domain:{uMin:0,uMax:1,vMin:0,vMax:1};var P=t.lineWidth;if(t.willConvertTo3D||P>3){let Re=t.willConvertTo3D?200:e.screen.width;var M=P*(l-c)/Re;let Ne=t.willConvertTo3D?200:e.screen.height;var I=P*(f-p)/Ne;c-=M,l+=M,p-=I,f+=I}let v=1/4,O=t.domainBound,A,N=Ou.fromRects(Zg(r),Xg(i),{xAxisScale:s,yAxisScale:o}),L={xmin:c,xmax:l,ymin:p,ymax:f,zmin:m,zmax:g};switch(t.graphMode){case 1:switch(A=Dn(Xi([p,f]),O),A.type){case\"empty\":return!1;case\"interval\":p=A.bounds[0],f=A.bounds[1]}let Re=Math.max(eh,1+Math.ceil(Math.abs(N.mapY(f)-N.mapY(p))/v)),Ne=new Ou(N.yScale,N.xScale);return{min:p,max:f,tolerance:v,nInitialSamples:Re,mathToPixels:Ne,screen:{width:i.height,height:i.width}};case 2:{switch(A=Dn(Xi([c,l]),O),A.type){case\"empty\":return!1;case\"interval\":c=A.bounds[0],l=A.bounds[1]}let Te=Math.max(eh,1+Math.ceil(Math.abs(N.mapX(l)-N.mapX(c))/v));return{min:c,max:l,tolerance:v,nInitialSamples:Te,mathToPixels:N,screen:i}}case 6:{let Te=e.degreeMode?Math.PI/180:1;if(((Y=t.domain)==null?void 0:Y.type)!==\"1d\")throw new Error(\"Expected polar graph to have domain\");let{min:Me,max:ve}=t.domain;switch(A=Dn(Xi([Me,ve]),O),A.type){case\"empty\":return!1;case\"interval\":Me=A.bounds[0],ve=A.bounds[1]}let Q=Math.max(eh,1+Math.min(Math.ceil(Te*Math.abs(ve-Me)/(2*Math.PI)*1e3),12e3)),U=Math.abs(N.mapX(l)-N.mapX(c)),xe=Math.abs(N.mapY(f)-N.mapY(p)),le=Math.hypot(U,xe),_e=Math.hypot(l-c,f-p)/le,Ze={min:Me,max:ve,screen:i,nInitialSamples:Q,xtolerance:v,ytolerance:v,rtoleranceMath:_e,map:([me,te])=>N.mapCoordinatePair(EN([me,te]))};if(!t.domain.isExplicit){let me=Q2(n,Ze,Te,t.operator===\"=\");me&&(Ze.max=Ze.min+me,Ze.nInitialSamples=Math.max(eh,1+Math.min(Math.ceil(Te*Math.abs(Ze.max-Ze.min)/(2*Math.PI)*1e3),12e3)))}return Ze}case 5:case 100:case 101:case 102:{let Te={min:0,max:1},{min:Me,max:ve}=((de=t.domain)==null?void 0:de.type)===\"1d\"?t.domain:Te;switch(A=Dn(Xi([Me,ve]),O),A.type){case\"empty\":return!1;case\"interval\":Me=A.bounds[0],ve=A.bounds[1]}let Q;return(!isFinite(Me)||!isFinite(ve))&&(Q=DN,Me=nh(Me),ve=nh(ve)),{min:Me,max:ve,screen:i,nInitialSamples:y0(Me,ve),xtolerance:v,ytolerance:v,ztolerance:v,parameterTransform:Q,map:([U,xe])=>N.mapCoordinatePair([U,xe])}}case 8:return{xmin:c,xmax:l,ymin:p,ymax:f,mathToPixels:N,tolerance:v};case 106:return{...L,u:new ee(c,l),v:new ee(p,f)};case 120:case 122:case 107:return{...L,u:new ee(p,f),v:new ee(m,g)};case 121:case 123:case 108:return{...L,u:new ee(c,l),v:new ee(m,g)};case 109:return{...L,u:new ee(y,d?h:lr.xmax),v:new ee(b,d?x:2*Math.PI)};case 124:case 110:{let{min:Te,max:Me}=((re=t.domain)==null?void 0:re.type)===\"1d\"?t.domain:{min:0,max:2*Math.PI};return{...L,u:new ee(Te,Me),v:new ee(m,g)}}case 211:{let{min:Te,max:Me}=((ie=t.domain)==null?void 0:ie.type)===\"1d\"?t.domain:{min:0,max:2*Math.PI/u};return{...{xmin:Te,xmax:Me,ymin:m,ymax:g},u:new ee(Te,Me),v:new ee(m,g),mathToPixels:Cu,tolerance:Xs}}case 212:{let Te=d?h:2*Math.PI/u,Me=d?x:Math.PI/u;return{...{xmin:y,xmax:Te,ymin:b,ymax:Me},u:new ee(y,Te),v:new ee(b,Me),mathToPixels:Cu,tolerance:Xs}}case 215:case 214:return{...{xmin:y,xmax:h,ymin:b,ymax:x},u:new ee(y,h),v:new ee(b,b),mathToPixels:Cu,tolerance:Xs};case 213:{let Te=d?h:lr.xmax,Me=d?x:2*Math.PI/u;return{...{xmin:y,xmax:Te,ymin:b,ymax:Me},u:new ee(y,Te),v:new ee(b,Me),mathToPixels:Cu,tolerance:Xs}}case 111:return{...L,u:new ee(y,d?h:2*Math.PI/u),v:new ee(b,d?x:Math.PI/u)};case 117:case 118:case 119:case 129:case 130:case 103:case 104:case 105:case 112:case 126:case 113:case 127:case 210:case 114:case 115:case 116:return{...L,u:new ee(y,h),v:new ee(b,x)};case 200:case 201:case 202:case 206:case 205:case 203:case 204:case 207:case 208:{if(t.graphMode===200&&(t.slice_coordinate===\"z\"||t.slice_coordinate===\"_implicit\"))return{xmin:c,xmax:l,ymin:p,ymax:f,mathToPixels:N,tolerance:Xs};if(t.graphMode===201&&(t.slice_coordinate===\"x\"||t.slice_coordinate===\"_implicit\"))return{...{xmin:p,xmax:f,ymin:m,ymax:g},mathToPixels:Cu,tolerance:Xs};if(t.graphMode===202&&(t.slice_coordinate===\"y\"||t.slice_coordinate===\"_implicit\"))return{...{xmin:c,xmax:l,ymin:m,ymax:g},mathToPixels:Cu,tolerance:Xs};let{min:Te,max:Me}=((Z=t.domain)==null?void 0:Z.type)===\"1d\"?t.domain:{min:0,max:2*Math.PI};return{x:new ee(c,l),y:new ee(p,f),z:new ee(m,g),t:new ee(Te,Me),u:new ee(y,h),v:new ee(b,x)}}case 209:return t.slice_coordinate===\"z\"?{xmin:c,xmax:l,ymin:p,ymax:f,mathToPixels:N,tolerance:Xs}:t.slice_coordinate===\"x\"?{...{xmin:p,xmax:f,ymin:m,ymax:g},mathToPixels:Cu,tolerance:Xs}:t.slice_coordinate===\"y\"?{...{xmin:c,xmax:l,ymin:m,ymax:g},mathToPixels:Cu,tolerance:Xs}:t.slice_coordinate===\"_implicit\"?{...L,u:new ee(c,l),v:new ee(p,f)}:!1;default:return!1}}function DN(e){return Math.sinh(10*e)/(1-e*e)}function nh(e){if(e===1/0)return 1;if(e===-1/0)return-1;let t=Math.asinh(e);return 2*t/(10+Math.sqrt(100+4*t*t))}function rh(e){let{viewState:t,graphInfo:n,compiled:r,maxOverride:i,showPoint:s}=e,o=r.fn,a=Ip(t,n,o),u;if(!a)u={segments:[],resolved:!0};else{let{min:p,max:f}=a;u=J2({fn:o,min:Math.max(p,0),max:i!==void 0?Math.min(i,f):f})}let{points:c,droppedIndices:l}=yd(u.segments);return{segments:[c],droppedIndices:l,graphMode:3,color:n.color,style:n.pointStyle,poi:Us(u.segments),resolved:u.resolved,showPoint:s}}function lk(e){switch(e){case 120:case 122:return 107;case 121:case 123:return 108;case 124:return 110;case 126:return 112;case 127:return 113;default:return e}}function SN(e,t,n){let r=n?Math.PI/180:1;switch(e){case 114:return t;case 115:{let[i,s,o]=t;return[i*xn(s*r),i*Kt(s*r),o]}case 116:{let[i,s,o]=t;return[i*Kt(o*r)*xn(s*r),i*Kt(o*r)*Kt(s*r),i*xn(o*r)]}default:return[0,0,0]}}function _a(e){var d,y,h,b,x,P,M,I,E;let{viewState:t,graphInfo:n,compiled:r,derivative:i}=e,s=r.fn,{degreeMode:o}=t,a=o?Math.PI/180:1,u=Ip(t,n,s),c,l,p,f=lk(n.graphMode),m=t.xAxisScale===\"linear\"&&t.yAxisScale===\"linear\";if(!u)c={segments:[],resolved:!0};else{switch(f){case 1:case 2:let v=i?i.fn:void 0;c=n.isLinear&&m&&mo(n.linearCoefficients)?C0(n.linearCoefficients,u):A0(s,u,v);break;case 6:c=Yg(G=>[G,s(G)],u);break;case 8:c=ud(s,u);break;case 5:u.max===u.min?c=j2(s,u.min):c=n.isLinear&&m&&mo(n.linearCoefficients)?W2(n.linearCoefficients,u):Yg(s,u);break;case 100:case 101:case 102:let O=r.fn,{min:A,max:N}=((d=n.domain)==null?void 0:d.type)===\"1d\"?n.domain:{min:0,max:1};if(!isFinite(A)||!isFinite(N)){A=nh(A),N=nh(N);let G=O;O=$=>G(DN($))}let L=new ee(A,N),z=[];switch(f){case 100:z=Fc(O,L,n.resolution,t);break;case 101:z=$g(O,L,n.resolution,t);break;case 102:z=m0(O,L,n.resolution,t);break}return{graphMode:100,guid:fi(),points:z,color:n.color,thickness:n.lineWidth};case 112:case 113:case 130:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:{let G=u,{u:$,v:w}=G,Y=f===112||f===113,de=n.graphMode===122||n.graphMode===123,re=Y?dd:de?2:sN,{resolution:ie}=n,Z=ie===void 0||isNaN(ie)?re:rr(dN(ie),2,100),Re=Xi([$.min,$.max]).type!==\"empty\"&&Xi([w.min,w.max]).type!==\"empty\",Ne;switch(Re&&f){case 103:{let ve=r.fn;Ne=PN(ve,G,$,w,Z);break}case 130:{Ne=PN((Q,U)=>{let[xe,le]=r.fn(Q,U);return[xe,le,0]},G,$,w,Z);break}case 104:Ne=nk(r,G,$,w,Z,o);break;case 105:Ne=rk(r,G,$,w,Z,o);break;case 106:Ne=ik(r,G,Z);break;case 107:Ne=sk(r,G,Z);break;case 108:Ne=ok(r,G,Z);break;case 109:Ne=ak(r,G,$,w,Z,o);break;case 110:Ne=uk(r,G,$,w,Z,o);break;case 111:Ne=ck(r,G,$,w,Z,o);break;case 112:case 113:Ne=_0(r,e.dependencies,e.gradient,u,Z,{isInequality:(y=e.isImplicit3dInequality)!=null?y:!1});break;case!1:Ne=tk();break}let Te=n.graphMode===113||n.graphMode===127;return{meshData:Ne,resolved:Ne.resolved,color:n.color,fillOpacity:Te?1:(h=n.fillOpacity)!=null?h:1,uvRange:[$,w],uvArgs:(b=ss[n.graphMode])!=null?b:[],extraMeshArgs:(x=Vc[n.graphMode])!=null?x:[],graphMode:f,compiled:r,restrictionShader:e.restrictionShader3d}}case 200:case 201:case 202:case 211:case 206:case 205:case 203:case 204:case 213:case 207:case 208:case 212:case 214:case 215:case 209:{let G=(Q,U,xe)=>{let le=(Rd,Nd)=>{let Yc=xe(Rd,Nd);return isNaN(Yc[0])||isNaN(Yc[1])||isNaN(Yc[2])?NaN:Q(Rd,Nd)},K=t.viewport,{xmin:_e,xmax:Ze,ymin:me,ymax:te,zmin:pt,zmax:Ro}=K,Ba=(_e+Ze)/2,ku=(me+te)/2,$c=(pt+Ro)/2,Od=Ze-_e,Cd=te-me,Ah=Ro-pt,RM=ud(le,{...U,map3d:(Rd,Nd)=>{let[Yc,NM,AM]=xe(Rd,Nd);return isNaN(Yc)||isNaN(NM)||isNaN(AM)?[NaN,NaN,NaN]:[(Yc-Ba)/Od,(NM-ku)/Cd,(AM-$c)/Ah]}});return{segments:RM.segments,resolved:RM.resolved,graphMode:8,color:n.color,lineWidth:n.lineWidth,lineOpacity:n.lineOpacity,listIndex:n.listIndex,operator:n.operator,compiled:r,poi:{}}},$=r.fn,w=(P=n.slice_value)!=null?P:0,Y=(M=n.slice_coordinate)!=null?M:\"\",de=u,re,ie,Z,Re=!0,Ne=(Q,U)=>{let le=G(Q,u,(me,te)=>{let{x:pt,y:Ro,z:Ba}=U(me,te,Q(me,te));return[pt,Ro,Ba]}),K=n.lineWidth,_e=oh(le,t,K,w),Ze=_e.points;for(let me=0;me<Ze.length/3;me++){let te=Ze[3*me],pt=Ze[3*me+1],Ro=Ze[3*me+2],{x:Ba,y:ku,z:$c}=U(te,pt,Ro);Ze[3*me]=Ba,Ze[3*me+1]=ku,Ze[3*me+2]=$c}return _e},Te=(Q,U)=>{let xe=[];for(let _e=0;_e<Q.segments.length;_e++){let Ze=Q.segments[_e];for(let me=0;me<Ze.length/2;me++){let te=Ze[2*me],pt=Ze[2*me+1];xe.push(U(te,pt))}_e<Q.segments.length-1&&xe.push([NaN,NaN,0])}let le=n.lineWidth,K=t.viewport;return ah(xe,K,le)},Me=u,ve=(Q,U)=>{var le;let xe=G(Q,Me,U);return Re=(le=xe.resolved)!=null?le:!0,Te(xe,U)};switch(f){case 200:{if(Y===\"z\")return Ne((U,xe)=>$(U,xe)-w,yN);if(Y===\"_implicit\"){let U=n.slice_function.fn;Z=ve((K,_e)=>U(K,_e,$(K,_e)),(K,_e)=>[K,_e,$(K,_e)]);break}let Q=Y===\"x\";re=Q?de.y:de.x,ie=Q?U=>[w,U,$(w,U)]:U=>[U,w,$(U,w)],Z=Fc(ie,re,n.resolution,t);break}case 201:{if(Y===\"x\")return Ne((U,xe)=>$(U,xe)-w,gN);if(Y===\"_implicit\"){let U=n.slice_function.fn;Z=ve((K,_e)=>U($(K,_e),K,_e),(K,_e)=>[$(K,_e),K,_e]);break}let Q=Y===\"y\";re=Q?de.z:de.y,ie=Q?U=>[$(w,U),w,U]:U=>[$(U,w),U,w],Z=Fc(ie,re,n.resolution,t);break}case 202:{if(Y===\"y\")return Ne((U,xe)=>$(U,xe)-w,hN);if(Y===\"_implicit\"){let U=n.slice_function.fn;Z=ve((K,_e)=>U(K,$(K,_e),_e),(K,_e)=>[K,$(K,_e),_e]);break}let Q=Y===\"x\";re=Q?de.z:de.x,ie=Q?U=>[w,$(w,U),U]:U=>[U,$(U,w),w],Z=Fc(ie,re,n.resolution,t);break}case 209:{let Q=r.fn;if(Y===\"x\")return Ne((U,xe)=>Q(w,U,xe),gN);if(Y===\"y\")return Ne((U,xe)=>Q(U,w,xe),hN);if(Y===\"z\")return Ne((U,xe)=>Q(U,xe,w),yN);if(Y===\"_implicit\"){let{resolution:U}=n,xe=U===void 0||isNaN(U)?dd:rr(dN(U),2,100);Z=fN(r.fn,n.slice_function.fn,u,xe);break}else throw new Error(\"Programming Error: unexpected slice coordinate\")}case 206:case 205:{let Q=Y===\"z\";re=Q?de.t:de.z,ie=Q?U=>[$(U,w),U,w]:U=>[$(w,U),w,U],Z=$g(ie,re,n.resolution,t);break}case 211:{let Q=r.fn,U;switch(Y){case\"x\":U=(me,te)=>Q(me,te)*xn(me*a)-w;break;case\"y\":U=(me,te)=>Q(me,te)*Kt(me*a)-w;break;case\"r\":U=(me,te)=>Q(me,te)-w;break;case\"_implicit\":let Ze=n.slice_function.fn;U=(me,te)=>Ze(Q(me,te)*xn(me*a),Q(me,te)*Kt(me*a),te,Q(me,te),me);break;default:throw new Error(\"Programming Error: bad slice\")}let xe=Y===\"x\",le=Y===\"y\",K=(Ze,me)=>[xe?w:Q(Ze,me)*xn(Ze*a),le?w:Q(Ze,me)*Kt(Ze*a),me],_e=G(U,Me,K);Z=Te(_e,K),Re=(I=_e.resolved)!=null?I:!0;break}case 213:{let Q=Y===\"x\",U=Y===\"y\",xe=Y===\"z\",le=r.fn,K;switch(Y){case\"x\":K=(te,pt)=>te*xn(pt*a)-w;break;case\"y\":K=(te,pt)=>te*Kt(pt*a)-w;break;case\"z\":K=(te,pt)=>le(te,pt)-w;break;case\"_implicit\":let me=n.slice_function.fn;K=(te,pt)=>me(te*xn(pt*a),te*Kt(pt*a),le(te,pt),te,pt);break;default:throw new Error(\"Programming Error: bad slice\")}let _e=(me,te)=>[Q?w:me*xn(te*a),U?w:me*Kt(te*a),xe?w:le(me,te)],Ze=G(K,Me,_e);Z=Te(Ze,_e);break}case 212:{let Q=Y===\"x\",U=Y===\"y\",xe=Y===\"z\",le=r.fn,K;switch(Y){case\"x\":K=(te,pt)=>le(te,pt)*Kt(pt*a)*xn(te*a)-w;break;case\"y\":K=(te,pt)=>le(te,pt)*Kt(pt*a)*Kt(te*a)-w;break;case\"z\":K=(te,pt)=>le(te,pt)*xn(pt*a)-w;break;case\"rho\":K=(te,pt)=>le(te,pt)-w;break;case\"_implicit\":let me=n.slice_function.fn;K=(te,pt)=>me(le(te,pt)*Kt(pt*a)*Kt(te*a),le(te,pt)*Kt(pt*a)*xn(te*a),le(te,pt)*xn(pt*a),le(te,pt),te,pt);break;default:throw new Error(\"Programming Error: bad slice\")}let _e=(me,te)=>[Q?w:le(me,te)*Kt(te*a)*xn(me*a),U?w:le(me,te)*Kt(te*a)*Kt(me*a),xe?w:le(me,te)*xn(te*a)],Ze=G(K,Me,_e);Z=Te(Ze,_e),Re=(E=Ze.resolved)!=null?E:!0;break}case 215:case 214:{let Q=f===214?r.fn:(xe,le)=>{let[K,_e]=r.fn(xe,le);return[K,_e,0]},U;switch(Y){case\"x\":U=(le,K)=>Q(le,K)[0]-w;break;case\"y\":U=(le,K)=>Q(le,K)[1]-w;break;case\"z\":U=(le,K)=>Q(le,K)[2]-w;break;case\"u\":U=(le,K)=>le-w;break;case\"v\":U=(le,K)=>K-w;break;case\"_implicit\":let xe=n.slice_function.fn;U=(le,K)=>{let[_e,Ze,me]=Q(le,K);return xe(_e,Ze,me,le,K)};break;default:throw new Error(\"Programming Error: bad slice\")}Z=ve(U,Q);break}case 203:case 204:{let Q=Y===\"r\";re=Q?de.v:de.u,ie=Q?U=>[w,U,$(w,U)]:U=>[U,w,$(U,w)],Z=$g(ie,re,n.resolution,t);break}case 207:case 208:{let Q=Y===\"theta\";re=Q?de.v:de.u,ie=Q?U=>[$(w,U),w,U]:U=>[$(U,w),U,w],Z=m0(ie,re,n.resolution,t);break}}return{graphMode:100,guid:fi(),points:Z,resolved:Re,color:n.color,thickness:n.lineWidth}}default:throw new Error(\"Programming Error: unexpected graphmode \"+f)}p=c.poi}if((!p||p.zeros.x.length+p.extrema.x.length+p.intercept.x.length>250)&&(p=Z2()),f===1)for(let v in p){if(!p.hasOwnProperty(v))continue;let O=v;l=p[O].y,p[O].y=p[O].x,p[O].x=l}let g={segments:c.segments,resolved:c.resolved,graphMode:f,color:n.color,style:n.lineStyle,lineWidth:n.lineWidth,lineOpacity:n.lineOpacity,listIndex:n.listIndex,operator:n.operator,poi:p,compiled:r};if(f===6){let v=u;g.sampledDomain={min:v.min,max:v.max}}return c.fillSegments&&(g.fillSegments=c.fillSegments),g}function pk(e,t,n){let r,i,s,o,a=[],u=null;switch(n){case 6:u=EN;break;case 1:u=function(c){return[c[1],c[0]]};break}for(r=0;r<e.length;r++)for(o=e[r],i=0;i<o.length;i+=2)s=[o[i],o[i+1]],u&&(s=u(s)),a.push(s[0],s[1]);for(r=t.length-1;r>=0;r--)for(o=t[r],i=o.length-2;i>=0;i-=2)s=[o[i],o[i+1]],u&&(s=u(s)),a.push(s[0],s[1]);return a}function ih(e,t,n){let r=l=>l[l.length-2],i=[],s=0,o=0,a=[],u=[],c=-1/0;for(;;){for(;o<e.length&&!(e[o].length>=2);)o+=1;for(;s<t.length&&!(t[s].length>=2);)s+=1;(o>=e.length||e[o][0]>c)&&(s>=t.length||t[s][0]>c)&&(a.length>0&&u.length>0&&i.push(pk(a,u,n)),a=[],u=[],c=Math.max(c,o<e.length?r(e[o]):1/0),c=Math.max(c,s<t.length?r(t[s]):1/0));let l=!1;if(o<e.length&&e[o][0]<=c&&(c=Math.max(c,r(e[o])),a.push(e[o]),o+=1,l=!0),s<t.length&&t[s][0]<=c&&(c=Math.max(c,r(t[s])),u.push(t[s]),s+=1,l=!0),!l)break}return i}function yd(e){let t=[],n={};for(let r=0;r<e.length;r++){let i=e[r],[s,o]=i;!isNaN(s)&&!isNaN(o)?t.push(i):n[r]=!0}return{points:t,droppedIndices:n}}var ss={[8]:[\"x\",\"y\"],[106]:[\"x\",\"y\"],[120]:[\"y\",\"z\"],[122]:[\"y\",\"z\"],[107]:[\"y\",\"z\"],[121]:[\"x\",\"z\"],[123]:[\"x\",\"z\"],[108]:[\"x\",\"z\"],[109]:[\"r\",\"theta\"],[124]:[\"theta\",\"z\"],[110]:[\"theta\",\"z\"],[111]:[\"theta\",\"phi\"],[130]:[\"u\",\"v\"],[103]:[\"u\",\"v\"],[104]:[\"u\",\"v\"],[105]:[\"u\",\"v\"],[126]:[\"x\",\"y\"],[112]:[\"x\",\"y\",\"z\"],[113]:[\"x\",\"y\",\"z\"],[127]:[\"x\",\"y\"],[201]:[\"y\",\"z\"],[202]:[\"x\",\"z\"],[200]:[\"x\",\"y\"],[206]:[\"theta\",\"z\"],[205]:[\"theta\",\"z\"],[211]:[\"theta\",\"z\"],[203]:[\"r\",\"theta\"],[204]:[\"r\",\"theta\"],[213]:[\"r\",\"theta\"],[207]:[\"theta\",\"phi\"],[208]:[\"theta\",\"phi\"],[212]:[\"theta\",\"phi\"],[214]:[\"u\",\"v\"],[215]:[\"u\",\"v\"],[209]:[\"x\",\"y\",\"z\"],[210]:[\"x\",\"y\",\"z\"]},Vc={[110]:[\"r\"],[111]:[\"rho\"],[104]:[\"r\",\"theta\"],[105]:[\"rho\",\"theta\",\"phi\"]};function fk(e){return!e||e[0].type===\"none\"&&e[1].type===\"none\"?\"NONE\":e[1].type===\"none\"?\"X\":e[0].type===\"none\"?\"Y\":\"XY\"}function ON(e,t){var n=fk(t);switch(e){case\"NONE\":return\"NONE\";case\"AUTO\":return n;case\"XY\":return n;case\"X\":return n===\"X\"||n===\"XY\"?\"X\":\"NONE\";case\"Y\":return n===\"Y\"||n===\"XY\"?\"Y\":\"NONE\";default:return\"NONE\"}}var dk=(e,t)=>{let n=e.segments[0],r=t.segments[0],i=[[...n,...r]];return{...e,segments:i}};function mk(e){let{viewState:t,graphInfo:n,compiled:r,derivative:i,bounds:s}=e,o=Bs(n),a=Dn(n.domainBound,Xi(s));if(!gi(a))return o.domainBound=a,o.lineStyle=\"SOLID\",_a({graphInfo:o,viewState:t,compiled:r,derivative:i})}function Ru(e){let{viewState:t,graphInfo:n,compiled:r,bounds:i,included:s,showPoint:o}=e,a=Bs(n),u=Dn(n.domainBound,Xi(i));if(!gi(u))return a.domainBound=u,a.pointStyle=s?\"POINT\":\"OPEN\",rh({graphInfo:a,viewState:t,compiled:r,showPoint:o,maxOverride:void 0})}function NN(e){let{viewState:t,graphInfo:n,compiled:r,bounds:i,maxOverride:s,showPoint:o}=e,[a,u]=i,c=[],l;a=Math.ceil(a),u=Math.floor(u);let p=s!==void 0?s:1/0;if(a===-1/0&&u>=p)l=Ru({bounds:[a,p],included:!0,viewState:t,graphInfo:n,compiled:r,showPoint:o}),c.push(l);else if(a===-1/0&&u<1/0)l=Ru({bounds:[a,u],included:!0,viewState:t,graphInfo:n,compiled:r,showPoint:o}),c.push(l),c.push(Ru({bounds:[u+1,p],included:!1,viewState:t,graphInfo:n,compiled:r,showPoint:o}));else if(a>-1/0&&u>=p)l=Ru({bounds:[a,p],included:!0,viewState:t,graphInfo:n,compiled:r,showPoint:o}),c.push(Ru({bounds:[-1/0,a-1],included:!1,viewState:t,graphInfo:n,compiled:r,showPoint:o})),c.push(l);else{l=Ru({bounds:[a,u],included:!0,viewState:t,graphInfo:n,compiled:r,showPoint:o});let f=Ru({bounds:[-1/0,a-1],included:!1,viewState:t,graphInfo:n,compiled:r,showPoint:o}),m=Ru({bounds:[u+1,p],included:!1,viewState:t,graphInfo:n,compiled:r,showPoint:o});c.push(l);let g;f&&m&&(g=dk(f,m),c.push(g))}return{cdfTopBranch:l,topBranches:c}}var AN=e=>{let{viewState:t,graphInfo:n,compiled:r,derivative:i,bounds:s}=e,[o,a]=s,u=mk({bounds:[o,a],viewState:t,graphInfo:n,compiled:r,derivative:i}),c=[_a({viewState:t,graphInfo:n,compiled:r,derivative:i})];return{cdfTopBranch:u,topBranches:c}};function yte(e){switch(e){case\"LOOP_FORWARD\":return\"dcg-icon-arrow-one-way\";case\"LOOP_FORWARD_REVERSE\":return\"dcg-icon-arrow-two-way\";case\"PLAY_ONCE\":return\"dcg-icon-arrow-once\";case\"PLAY_INDEFINITELY\":return\"dcg-icon-arrow-infinite\"}}function gd(e,t){let n={};for(let r in t)t.hasOwnProperty(r)&&(_o(e[r],t[r])||(n[r]=t[r]));return n}function uh(e,t){let n,r={};for(let i in t)t.hasOwnProperty(i)&&(_o(e[i],t[i])||(r[i]=t[i],n=r));return n}function xte(e,t){t||(t={});let n={};for(let r in e)e.hasOwnProperty(r)&&!t.hasOwnProperty(r)&&(n[r]=Bs(e[r]));for(let r in t)t.hasOwnProperty(r)&&(n[r]=t[r]);return n}function Tte({from:e,to:t,props:n}){for(var r in n)n[r]&&e.hasOwnProperty(r)&&(t[r]=Bs(e[r]))}function Ite(e,t){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])}function LN(e,t){let n={};for(var r in t)t.hasOwnProperty(r)&&(n[r]=e[r]);return n}function Ete(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n]=!0);return t}var yk=(r=>(r.NONE=\"NONE\",r.POSITIVE=\"POSITIVE\",r.BOTH=\"BOTH\",r))(yk||{});var wN={collapsed:!1,hidden:!1,secret:!1,readonly:!1,title:\"\"};function Dte(e){return{...wN,...e}}function Ste(e){return gd(wN,e)}var FN=\"**dcg_geo_folder**\";var w0={show:!1,min:\"\",max:\"\"},F0={breadth:\"\",axisOffset:\"\",alignedAxis:\"x\",showBoxplotOutliers:!0,binAlignment:\"center\",dotplotXMode:\"exact\",histogramMode:\"\"},V0={enabled:!1,latex:\"\"};var VN=4e3,ch={polarDomain:{min:\"\",max:\"\"},parametricDomain:{min:\"\",max:\"\"},parametricDomain3Du:{min:\"\",max:\"\"},parametricDomain3Dv:{min:\"\",max:\"\"},parametricDomain3Dr:{min:\"\",max:\"\"},parametricDomain3Dphi:{min:\"\",max:\"\"},cdf:w0,colorLatex:\"\",description:\"\",fillOpacity:\"\",lineOpacity:\"\",pointOpacity:\"\",pointSize:\"\",movablePointSize:\"\",lineWidth:\"\",resolution:\"\",labelAngle:\"\",vizProps:F0,clickableInfo:V0},BN={folderId:\"\",latex:\"\",color:\"\",showLabel:!1,showAngleLabel:!0,label:\"\",hidden:!1,secret:!1,readonly:!1,disableGraphInteractions:!1,dragMode:\"AUTO\",labelSize:\"\",labelOrientation:\"default\",suppressTextOutline:!1,interactiveLabel:!1,editableLabelMode:\"NONE\",residualVariable:\"\",isLogModeRegression:!1,pointStyle:\"POINT\",lineStyle:\"SOLID\",arrowMode:\"DEFAULT\",regressionParameters:{},displayEvaluationAsFraction:!1,slider:{},strictIntersection:!1,extendTo3D:!1,...ch,points:void 0,lines:void 0,fill:void 0},GN={hardMin:!1,hardMax:!1,animationPeriod:VN,loopMode:\"LOOP_FORWARD_REVERSE\",playDirection:1,isPlaying:!1,min:\"-10\",max:\"10\",step:\"\"},kN={hardMin:!1,hardMax:!1,animationPeriod:VN,loopMode:\"LOOP_FORWARD_REVERSE\",playDirection:1,isPlaying:!1,min:`${lr.xmin}`,max:`${lr.xmax}`,step:\"\"};function kte(e,t){return{...BN,isLogModeRegression:t.defaultLogModeRegressions,...e,slider:{...t.is3d?kN:GN,...e.slider},cdf:{...w0,...e.cdf},vizProps:{...F0,...e.vizProps},clickableInfo:{...V0,...e.clickableInfo}}}function zte(e,t){var n=gd(BN,{...e,slider:gd(t.is3d?kN:GN,e.slider)}),r=uh(w0,e.cdf);r===void 0?delete n.cdf:n.cdf=r;var i=uh(F0,e.vizProps);i===void 0?delete n.vizProps:n.vizProps=i;var s=uh(V0,e.clickableInfo);return s===void 0?delete n.clickableInfo:n.clickableInfo=s,n}function gk(e){return LN(e,ch)}function Hte(e,t){for(var n in ch)if(ch.hasOwnProperty(n)&&e[n]!==t[n])return!1;return!0}function Ute(e){return{type:\"statement\",id:e.id,latex:e.latex,label:e.label,color:e.color,fill:e.fill,points:e.points,lines:e.lines,extendTo3D:e.extendTo3D,pointStyle:e.pointStyle,lineStyle:e.lineStyle,arrowMode:e.arrowMode,dragMode:e.dragMode,labelSize:e.labelSize,labelOrientation:e.labelOrientation,suppressTextOutline:e.suppressTextOutline,interactiveLabel:e.interactiveLabel,editableLabelMode:e.editableLabelMode,residualVariable:e.residualVariable,regressionParameters:e.regressionParameters,isLogModeRegression:e.isLogModeRegression,showLabel:e.showLabel,showAngleLabel:e.showAngleLabel,shouldGraph:e.hidden,slider:{min:e.slider.hardMin?e.slider.min:\"\",max:e.slider.hardMax?e.slider.max:\"\",softMin:e.slider.hardMin?\"\":e.slider.min,softMax:e.slider.hardMax?\"\":e.slider.max,step:e.slider.step,isPlayingOnce:e.slider.isPlaying&&e.slider.loopMode===\"PLAY_ONCE\"},strictIntersection:e.strictIntersection,isInConstructionsFolder:e.folderId===FN,...gk(e)}}var Ik={};No(Ik,{LinearToSRGB:()=>Pk,SRGBToLinear:()=>lh,colorString:()=>UN,colors:()=>Bc,colors3d:()=>Tk,convertColorStringToLinearRGB:()=>G0,getDisplayColor:()=>sa,invertColor:()=>bk,isValidHexColor:()=>ph,mutateOpacity:()=>xk,normalizeColor:()=>B0,parseHex:()=>qN,shadeColor:()=>hk});function B0(e){return ph(e)?(e.match(/^#([A-Fa-f0-9]{3})$/g)&&(e=\"#\"+e[1]+e[1]+e[2]+e[2]+e[3]+e[3]),e.toLowerCase()):e}function ph(e){return typeof e==\"string\"&&(e.match(/^#([A-Fa-f0-9]{3})$/g)||e.match(/^#([A-Fa-f0-9]{6})$/g))}function hk(e,t){if(e=B0(e),!ph(e))return e;t>1&&(t=1),t<-1&&(t=-1);var n=parseInt(e.slice(1),16),r=t<0?0:255,i=t<0?t*-1:t,s=n>>16,o=n>>8&255,a=n&255;return UN(Math.round((r-s)*i)+s,Math.round((r-o)*i)+o,Math.round((r-a)*i)+a)}function UN(e,t,n){return\"#\"+(16777216+Math.round(e)*65536+Math.round(t)*256+Math.round(n)).toString(16).slice(1)}function bk(e){if(e=B0(e),!ph(e))return e;let t=\"0123456789abcdef\";return\"#\"+e.slice(1).split(\"\").map(n=>t[15-t.indexOf(n)]).join(\"\")}function qN(e){if(e=e.replace(/#/,\"\"),e.length===3)var t=parseInt(e.slice(0,1)+e.slice(0,1),16),n=parseInt(e.slice(1,2)+e.slice(1,2),16),r=parseInt(e.slice(2,3)+e.slice(2,3),16);else if(e.length===6)var t=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),r=parseInt(e.slice(4,6),16);else var t=0,n=0,r=0;return{r:t,g:n,b:r}}function xk(e,t){let n=/(rgba\\([\\d]+\\,\\ ?[\\d]+\\,\\ ?[\\d]+\\,\\ ?)[\\d.]+(\\))/;return e.match(n)?e.replace(n,`$1${t}$2`):e}function sa(e,t){if(t&&t.colorLatexValue){var n=t.colorLatexValue;return Array.isArray(n)?n[0]:n}return e.color}function lh(e){return e<.04045?e*.0773993808:Math.pow(e*.9478672986+.0521327014,2.4)}function Pk(e){return e<.0031308?e*12.92:1.055*Math.pow(e,.41666)-.055}function G0(e){let t=qN(e);return[lh(t.r/255),lh(t.g/255),lh(t.b/255)]}var Bc={RED:\"#c74440\",BLUE:\"#2d70b3\",GREEN:\"#388c46\",PURPLE:\"#6042a6\",ORANGE:\"#fa7e19\",BLACK:\"#000000\",GRAY:\"#aaaaaa\",FOCUS_OUTLINE:\"#6a93d2\"},Tk={RED:Bc.RED,BLUE:Bc.BLUE,GREEN:Bc.GREEN,ORANGE:Bc.ORANGE,PURPLE:Bc.PURPLE,GRAY:Bc.GRAY};function k0(e,t){let n;switch(t){case\"solvedEquation\":n=2;break;case\"baseComparator\":n=4;break;default:n=1;break}return Math.floor(e/n)}function Yte(e){return 2*Ek(e*.5)}function Ek(e){return e<=8?3*e:e>=16?2*e:e+16}function YN(e){let t=[];for(let r=0;r<e.instructionsLength();r++)t.push(!1);let n=[];t[e.getReturnIndex()]=!0;for(let r=e.instructionsLength()-1;r>=0;r--){if(!t[r])continue;let i=e.getInstruction(r);if(i.type===2&&n.push(e.argNames[r]),be(i))continue;let s=Pu(e,i)?[i.args[1]]:i.args;for(let o of s)t[o]=!0}return n}var Ep=class{constructor({enableGeometry:t,enable3d:n,beta3d:r,scales:i}){this._isGeometry=!1;this._is3dProduct=!1;this._isBeta3d=!1;this._isGeometry=t,this._is3dProduct=n,this._isBeta3d=r,this._scales=i}isGeometryEnabled(){return this._isGeometry}is3dProduct(){return this._is3dProduct}is3dPolicy(){return!1}isBeta3d(){return this._isBeta3d}areAllScalesLinear(){return this._scales?this._scales.xAxisScale===\"linear\"&&this._scales.yAxisScale===\"linear\":!0}assignmentForbidden(t){return t===\"x\"||t===\"y\"||t===\"theta\"||this.substitutionForbidden(t)}substitutionForbidden(t){return t===\"index\"||t===\"dt\"||t.slice(0,3)===\"tmp\"||Ke.hasOwnProperty(t)}isValidSlider(t){return t===\"x\"||t===\"y\"?!0:!(t.slice(0,3)===\"ans\"||t.slice(0,6)===\"idref_\"||this.assignmentForbidden(t))}sliderVariables(t){return t.indexOf(\"theta\")!==-1&&(t=t.filter(function(n){return n!==\"r\"})),t.filter(n=>!(this.assignmentForbidden(n)||n.slice(0,3)===\"ans\"||n.slice(0,6)===\"idref_\"||n[0]===\"_\"||this.isGeometryEnabled()&&n[0]===\"$\"))}tooManySliderVariables(t,n,r){return r?t.length>=1:t.length>=2&&n.length>=1}graphingEnabled(){return!0}ansEnabled(){return!1}dimensionVarsEnabled(){return!0}validRegressionParameter(t){return t!==\"x\"&&t!==\"y\"}validLHS(t){return t!==\"theta\"&&t.slice(0,6)!==\"idref_\"}unplottablePolarFunction(t,n){return t!==\"theta\"?!1:n.indexOf(\"r\")!==-1}validDoubleInequalitySymbol(t){return t===\"x\"||t===\"y\"}validDoubleInequalityVariables(t){return t.length>2?!1:t.every(this.validDoubleInequalitySymbol)}validExpressionVariables(t){return t.length===1&&t[0]===\"x\"}validSolvedVariable(t){return t===\"x\"||t===\"y\"||t===\"r\"}validImplicitVariables(t){switch(t.length){case 0:return!0;case 1:return t[0]===\"x\"||t[0]===\"y\"||t[0]===\"r\";case 2:return t[0]===\"x\"&&t[1]===\"y\"||t[0]===\"y\"&&t[1]===\"x\"||t[0]===\"r\"&&t[1]===\"theta\"||t[0]===\"theta\"&&t[1]===\"r\";default:return!1}}graphableListVariables(t,n){return t===\"x\"||t===\"y\"||t===\"r\"||n===\"x\"||n===\"y\"}validParametricVariable(t){return t===\"t\"}validParametricVariables(t){return t.length===1&&this.validParametricVariable(t[0])}validInequalityVariables(t){switch(t.length){case 1:return t[0]===\"x\"||t[0]===\"y\"||t[0]===\"r\";case 2:return this.validImplicitVariables(t);default:return!1}}validFirstColumnVariable(t){return t!==\"y\"&&t!==\"r\"&&t!==\"theta\"&&!t.match(/y_(\\d+)/)}validActionVariable(t){return t===\"dt\"||t===\"index\"}validCoordinateEquationSymbol(t){return!1}complicatedPolarImplicit(t,n){return t===\"theta\"||t===\"r\"&&n!==1}graphMode(t,n,r){if(n.length===0)return t===\"x\"?1:t===\"r\"?6:t===\"y\"?2:10;let i=n[0];return i===\"y\"?1:t===\"x\"?1:t===\"r\"&&i===\"theta\"?6:2}functionDefinitionGraphMode(t,n){return this.graphMode(t,n)}tableableAsConstant(t){return!(t===\"x\"||t===\"r\"||t===\"theta\")}implicitIndependent(t){return\"x\"}implicitDependency(t){return t.length!==1?\"y\":t[0]===\"y\"?\"x\":t[0]===\"theta\"?\"r\":\"y\"}disabledFeatures(){return[]}};function Gc(){return new Ep({enableGeometry:!1,enable3d:!0,beta3d:!1,scales:{xAxisScale:\"linear\",yAxisScale:\"linear\"}})}var fh=class{constructor(t){this._isBeta3d=!1;this._isBeta3d=t}isGeometryEnabled(){return!1}is3dProduct(){return!0}is3dPolicy(){return!0}isBeta3d(){return this._isBeta3d}areAllScalesLinear(){return!0}graphingEnabled(){return!0}ansEnabled(){return!1}dimensionVarsEnabled(){return!1}substitutionForbidden(t){return Gc().substitutionForbidden(t)}validInequalityVariables(t){return this.validImplicitVariables(t)}validFirstColumnVariable(t){return Gc().validFirstColumnVariable(t)}validActionVariable(t){return Gc().validActionVariable(t)}tableableAsConstant(t){return Gc().tableableAsConstant(t)}implicitIndependent(t){return Gc().implicitIndependent(t)}validRegressionParameter(t){return Gc().validRegressionParameter(t)}assignmentForbidden(t){return t===\"x\"||t===\"y\"||t===\"z\"||t===\"r\"||t===\"rho\"||t===\"theta\"||t===\"phi\"||this.substitutionForbidden(t)}sliderVariables(t){return t.filter(n=>!(this.assignmentForbidden(n)||n.slice(0,3)===\"ans\"||n.slice(0,6)===\"idref_\"||n[0]===\"_\"))}tooManySliderVariables(t,n,r){return r?this.isBeta3d()?n.length>=1:t.length>=1:n.length>=1}isValidSlider(t){return!(t.slice(0,3)===\"ans\"||t.slice(0,6)===\"idref_\"||this.assignmentForbidden(t))}validLHS(t){return t!==\"phi\"&&Gc().validLHS(t)}unplottablePolarFunction(t,n){return!1}complicatedPolarImplicit(t,n){return!1}validDoubleInequalitySymbol(t){return hd(t)}validDoubleInequalityVariables(t){return t.every(hd)}validExpressionVariables(t){return t.length===2&&t.every(n=>n==\"x\"||n==\"y\")}validSolvedVariable(t){return hd(t)||t===\"r\"||t===\"rho\"}validImplicitVariables(t){return t.every(hd)}graphableListVariables(t,n){return t===\"x\"||t===\"y\"||t===\"z\"||t===\"r\"||t===\"rho\"||n===\"x\"||n===\"y\"}validParametricVariable(t){return t===\"t\"||t===\"u\"||t===\"v\"}validParametricVariables(t){return t.length===1&&this.validParametricVariable(t[0])||t.length===2&&t.every(bd)}validCoordinateEquationSymbol(t){return this.isBeta3d()?t===\"rhothetaphi\"||t===\"rthetaz\":!1}functionDefinitionGraphMode(t,n){if(n.length===1)switch(n[0]){case\"x\":return 121;case\"y\":return 120;default:return 10}else if(n.length===2&&n.every(r=>r==\"x\"||r==\"y\"))return 106;return 10}graphMode(t,n,r){if(r!=null||(r=n),n.length===0)switch(t){case\"z\":return r.some(i=>i===\"r\"||i===\"theta\")?109:106;case\"y\":return r.includes(\"z\")?108:123;case\"x\":return r.includes(\"z\")?107:122;case\"r\":return r.indexOf(\"r\")>-1?10:XN(r);case\"rho\":return 111;case\"rthetaz\":return this.isBeta3d()?115:10;case\"rhothetaphi\":return this.isBeta3d()?116:10;default:return 10}switch(t){case\"z\":return n.every(i=>i==\"x\"||i==\"y\")?106:n.every(i=>i==\"r\"||i==\"theta\")?109:10;case\"y\":return n.every(i=>i==\"x\")?r.some(i=>i===\"z\")?108:121:n.every(i=>i==\"x\"||i==\"z\")?108:10;case\"x\":return n.every(i=>i==\"y\")?r.some(i=>i===\"z\")?107:120:n.every(i=>i==\"y\"||i==\"z\")?107:10;case\"r\":return n.every(i=>i==\"theta\")?XN(r):n.every(i=>i==\"theta\"||i==\"z\")?110:10;case\"rho\":return n.every(i=>i==\"theta\"||i==\"phi\")?111:10;case\"rthetaz\":return this.isBeta3d()?n.length===1&&n[0]===\"t\"?101:n.every(bd)?104:10:10;case\"rhothetaphi\":return this.isBeta3d()?n.length===1&&n[0]===\"t\"?102:n.every(bd)?105:10:10;default:return 10}}implicitDependency(t){if(t.length!==2)return\"z\";let n=t[0]<t[1]?t[0]+t[1]:t[1]+t[0];return n===\"xy\"?\"z\":n===\"xz\"?\"y\":n===\"yz\"?\"x\":\"z\"}disabledFeatures(){return[]}},hd=e=>e===\"x\"||e===\"y\"||e===\"z\",bd=e=>e===\"u\"||e===\"v\";function XN(e){return e.some(n=>hd(n)||n===\"r\")?110:124}D.Base.prototype.getGraphMode=function(e,t){return 10};D.Base.prototype.graphmodeDependencies=Cs;function Cs(e,t){let n=t.getDependencies();if(e.is3dProduct()&&t instanceof pn){let r=new Set(YN(t._chunk));return n.filter(i=>r.has(i))}else return n}function Mk(e,t){var n;return e&&e.hasOwnProperty(\"dragMode\")?e.dragMode===\"AUTO\"?n=t.defaultDragMode:n=e.dragMode:n=t.defaultDragMode,ON(n,t.moveStrategy)}function ZN(e,t){let n=e.is3dPolicy();if(t.isMovablePoint&&!n&&Mk(this.userData,t)!==\"NONE\")return 4;var r=Cs(e,t);switch(t.valueType){case Kn:case V:if(n){if(r.length===0)return 114;if(e.validParametricVariables(r))return r.length==1?100:La(103,t)}return 10;case R:case Pt:return r.length===0?3:n&&e.validParametricVariables(r)?r.length===1?5:r.every(bd)?La(130,t):10:e.validParametricVariables(r)?5:10;case T:case se:return!e.is3dPolicy()&&r.length===1?2:n&&r.length===2&&r.indexOf(\"x\")>-1&&r.indexOf(\"y\")>-1?La(106,t):10}if(r.length>0)return 10;switch(t.valueType){case Wn:case Dr:return 5;case jn:case Sr:return n?100:10;case sr:case Or:return n?La(130,t):10;case or:case Cr:return n?La(103,t):10;case Nt:case er:return n?119:10;case Se:case nr:return n?129:10;case In:case tr:return n?117:10;case Nn:case yr:return n?118:10;case Be:case Rn:return 16;case pe:case Fn:return 20;case ce:case Vn:return 21;case Ie:case Tn:return 17;case fe:case Bn:return 18;case Le:case Gn:return 19;case he:case kn:return this instanceof ze&&this.getDependencies().length===1?10:24;case Ge:case gn:case Ae:case hn:return 23;default:return 10}}D.Expression.prototype.getGraphMode=ZN;function WN(e,t){var n=t._expression.getDependencies();if(n.length>1)return 10;if(t._expression.isList&&t._expression.length===0)return 10;var r=t._symbol;let i=t.getDependencies();return e.graphMode(r,n,i)}D.Equation.prototype.getGraphMode=D.CallAssignment.prototype.getGraphMode=D.BaseComparator.prototype.getGraphMode=D.ComparatorChain.prototype.getGraphMode=function(e,t){if(t.isError)return 10;var n=Cs(e,t);let r=t.getDependencies();if(e.is3dPolicy()){let i=10,s=this.type===\"Equation\"||this.type===\"ComparatorChain\"&&this.symbols.includes(\"=\");return n.length>0&&(r.includes(\"z\")?i=s?112:113:i=s?126:127),La(i,t)}return t.isConstant?10:t instanceof D.SolvedEquation?WN(e,t):n.length===1||n.length===2?8:10};function q0(e){var t;return e===106||e===200||e===107||e===201||e===108||e===202?[\"x\",\"y\",\"z\",\"_implicit\"]:e===110||e===211?[\"x\",\"y\",\"z\",\"r\",\"theta\",\"_implicit\"]:e===111||e===212?[\"x\",\"y\",\"z\",\"rho\",\"theta\",\"phi\",\"_implicit\"]:e===109||e===213?[\"x\",\"y\",\"z\",\"r\",\"theta\",\"_implicit\"]:e===103||e===214||e===130||e===215?[\"x\",\"y\",\"z\",\"u\",\"v\",\"_implicit\"]:e===113||e===210||e===112||e===209?[\"x\",\"y\",\"z\",\"_implicit\"]:(t=ss[e])!=null?t:[]}function La(e,t){let n=q0(e),r=t._chunk;try{let s=Ra(r,n,{allowSlices:!0}).getSliceVariablesOrImplicit();if(s.length!==1)return e;let o=s[0];return n.indexOf(o)<0?10:zR(e,o)}catch(i){return 10}}D.DoubleInequality.prototype.getGraphMode=function(e,t){let n=t.getDependencies();return e.graphMode(t._symbol,[],n)};D.Assignment.prototype.getGraphMode=function(e,t){if(t instanceof D.SolvedEquation)return WN(e,t);if(this.isEquation(e,t))return this.asEquation().getGraphMode(e,t);let n=Cs(e,t),r=this._symbol,i=t.getDependencies();switch(t.valueType){case T:case se:case We:switch(n.length){case 0:{let o=e.graphMode(r,[],i);return e.is3dPolicy()?La(o,t):o}case 1:if(t.valueType===se&&!e.graphableListVariables(r,n[0]))return 10;if(this.isSlider)return 10;let s=e.graphMode(r,n,i);return e.is3dPolicy()?La(s,t):s;default:return e.is3dPolicy()?La(e.graphMode(r,n,i),t):10}case V:if(e.assignmentForbidden(r)||n.length>0&&!e.validParametricVariables(n))return 10;switch(n.length){case 0:return 114;case 1:return 100;case 2:return 103;default:return 10}default:return ZN.call(this,e,t)}};D.CoordinateEquation.prototype.getGraphMode=function(e,t){var n=Cs(e,t);let r=this._concatenatedSymbol;if(t.valueType!==V)return 10;if(n.length>0&&!e.validParametricVariables(n))return 10;switch(n.length){case 0:switch(r){case\"rhothetaphi\":return 116;case\"rthetaz\":return 115;default:return 10}case 1:switch(r){case\"rhothetaphi\":return 102;case\"rthetaz\":return 101;default:return 10}case 2:switch(r){case\"rhothetaphi\":return 105;case\"rthetaz\":return 104;default:return 10}default:return 10}};D.FunctionDefinition.prototype.getGraphMode=function(e,t){let n=e.is3dPolicy();if(this._argSymbols.length!==1&&!n)return 10;if(this.recursionInfo){let s=t instanceof pn?t.getRecursiveFunctionMetadata():void 0;if((s==null?void 0:s.type)===\"missing-non-recursive-branch\")return 10;if((s==null?void 0:s.recursiveStructure.domainInfo[this._symbol][0])===1)return 10}var r=e.functionDefinitionGraphMode(this._symbol,this._argSymbols),i=Cs(e,t);switch(t.valueType){case T:case se:if(n)return r;switch(i.length){case 0:return r;case 1:return i[0]!==this._argSymbols[0]?10:r;default:return 10}break;default:return 10}};D.Regression.prototype.getGraphMode=function(e,t){return this.isLhsSimple?t.isModelValid?t.model.getDependencies().length!==1?10:2:10:10};function $0(e,t){return t.isError?10:11}D.Histogram.prototype.getGraphMode=$0;D.DotPlot.prototype.getGraphMode=$0;D.BoxPlot.prototype.getGraphMode=$0;D.Image.prototype.getGraphMode=function(e,t){return this.userData.showPoints?this.center.isError||this.radianAngle.isError||this.width.isError||this.height.isError||this.opacity.isError?10:3:10};function jN(e){let t=0,n=0,r=[],i=Yr(e,e.getReturnIndex());for(let s=0;s<e.instructionsLength();s++){if(!i[s])continue;let o=e.getInstruction(s);o.type===25?r[s]=1:o.type===31||o.type===32?r[s]=r[o.args[0]]+r[o.args[1]]:r[s]=0,Pu(e,o)&&(t+=1,n+=r[o.args[0]])}return{numRestrictions:t,numEqualityRestrictions:n}}function Hc(e,t,n){try{return vk(e,t,n)}catch(r){return r instanceof C?r:J(r)}}function vk(e,t,n){var l,p;if(!e.is3dProduct()||n.isError)return n;if(!(n instanceof pn))return J(\"Expected peel error to be checked on an IRExpression\");function r(f,m){let g=m.filter(d=>f.indexOf(d)<0);if(g.length)return mP(g[0]).allowExport().setDependencies(g)}function i(){let f=mh(o),m=Dk(e,n);return r(f,m)}function s(){let f=JN(o),m=Sk(e,n,o);return r(f,m)}let o=t.getGraphMode(e,n),a=n._chunk,{numRestrictions:u,numEqualityRestrictions:c}=jN(a);if(c!==0)if(c===1){if(u!==c&&!t.isInequality())return ax();let g=Ra(a,[],{allowSlices:!0}).getSliceVariablesOrImplicit();if(g.length!==1)return Bo();let d=q0(o),y=g[0];if(d.indexOf(y)<0)return y===\"_implicit\"?Bo().allowExport():gP(y).allowExport().setDependencies([y])}else return ox();return(p=(l=i())!=null?l:s())!=null?p:n}function Dk(e,t){let n=Cs(e,t);return t.getDependencies().filter(i=>n.indexOf(i)<0)}function Sk(e,t,n){let r=Cs(e,t),i=new Set;if(t instanceof pn){let o=t.getRestrictedFunctionForGLSL(mh(n),Nu).concrete;for(let a of o.getDependencies())r.indexOf(a)>-1||i.add(a)}return[...i]}function mh(e){var n;if(!ea(e))return[];let t=Ok(e)?[\"x\",\"y\",\"z\"]:[];return e===211&&t.push(\"r\"),e===212&&t.push(\"rho\"),t.push(...(n=Vc[e])!=null?n:[]),t.push(...JN(e).filter(r=>t.indexOf(r)<0)),t}function Ok(e){return Ck(e)||e==200||e==201||e==202||e==211||e==212||e==213||e==214||e==215}function Ck(e){if(!ea(e))return!1;switch(e){case 106:case 107:case 108:case 110:case 111:case 109:case 122:case 123:case 112:case 113:case 127:case 130:case 103:case 104:case 105:case 210:return!0;case 124:case 120:case 121:case 126:case 114:case 115:case 116:case 117:case 118:case 119:case 129:case 128:case 100:case 101:case 102:case 200:case 201:case 202:case 206:case 205:case 211:case 203:case 204:case 213:case 207:case 208:case 212:case 214:case 215:case 209:return!1;default:return!1}}function JN(e){var t;return ea(e)?(t=ss[e])!=null?t:[]:[]}function QN(e=void 0){let{xmin:t,xmax:n,ymin:r,ymax:i,zmin:s,zmax:o}=e!=null?e:new th,a=[t,r,o,t,i,o,n,i,o,n,r,o,t,r,s,t,i,s,n,i,s,n,r,s,t,r,s,t,r,o,t,i,o,t,i,s,n,r,s,n,r,o,n,i,o,n,i,s,n,r,s,n,r,o,t,r,o,t,r,s,n,i,s,n,i,o,t,i,o,t,i,s],u=[0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0],c=[0,0,0,1,1,1,1,0,0,0,0,1,1,1,1,0,0,0,0,0,0,1,0,1,1,0,1,0,1,1,1,1,1,0,1,0,0,0,0,0,1,1,1,1,0,1,0,1],l=[0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23];return{positions:new Float32Array(a),normals:new Float32Array(u),faces:new Uint16Array(l),uvs:new Float32Array(c)}}function KN(e,t){let{mappedArgIndex:n,mappedReturnIndex:r,solutionIndex:i}=t,s=[],o=eu(e,n),a=Nk(e,o,r),u=i,c=e.NanOfType(e.getReturnType());for(let l=0;l<=r;l++){let p=e.getInstruction(l);if(l===n){s.push(i);continue}if(!o[l]&&!e.isInClosedBlock(l)){s.push(l);continue}if(be(p))s.push(e.copyInstruction(p));else{let f=Rk(s,p.args);s.push(e.copyInstructionWithArgs(p,f)),p.type===33&&a[l]&&(u=e.Piecewise([f[0],u,c]))}}return u}function Rk(e,t){let n=[];for(let r of t)n.push(e[r]);return n}function Nk(e,t,n){let r=[];for(let i=0;i<n;i++)r.push(!1);r[n]=t[n];for(let i=n;i>=0;i--){if(!r[i]||!t[i])continue;let s=e.getInstruction(i);if(s.type===33)r[s.args[1]]=!0;else if(!be(s))for(let o of s.args)r[o]=!0}return r}function eA(e,t){try{return Ak(e,t)}catch(n){return n instanceof D.Base?n:J(n)}}function Y0(e,t){try{let n=new pn(t),r=Nc({},n),i=[];for(let o=0;o<r.length;o++)i.push(T);let s=Ag({policy:e,frame:{},argNames:r,argTypes:i,selection:void 0});return s.chunk=t,t.fuseBroadcast(),tA({policy:e,ctx:s,isInequality:!1,allowSolvingIn3D:!0},t)}catch(n){return n instanceof D.Base?n:J(n)}}function Ak({policy:e,frame:t},n){let r=!1;if(n instanceof ja){let d=n._lhs,y=d._symbol;if(!t[y]&&!e.assignmentForbidden(y)&&(r=!0,d.args.length>1)){let h=tn([y]);throw h.silent=!0,h}}let i=n.asComparator(),s=Nc(t,i),o=[];for(let d=0;d<s.length;d++)o.push(T);let a=Ag({policy:e,frame:t,argNames:s,argTypes:o,selection:void 0}),{chunk:u}=a,c=i.getOperator(),l=c!==\"=\",p=Ee(a,i.args[0]),f=Ee(a,i.args[1]);switch(lu(u,e,i,[p,f]),c){case\"<\":u.Less([p,f]);break;case\">\":u.Greater([p,f]);break;case\"<=\":u.LessEqual([p,f]);break;case\">=\":u.GreaterEqual([p,f]);break;case\"=\":u.Equal([p,f]);break}if(u.fuseBroadcast(),u.isConstant())return new pn(u);let g=u.getInstruction(p).type!==2||Nc(t,i.args[1]).indexOf(u.argNames[p])!==-1;if(!rs.plotImplicits&&g)throw IP();return Rr[c].direction===-1?u.Subtract([f,p]):u.Subtract([p,f]),u.fuseBroadcast(),tA({policy:e,ctx:a,isInequality:l,allowSolvingIn3D:!1,maybeBaseCase:r},u)}function tA({policy:e,ctx:t,isInequality:n,allowSolvingIn3D:r,maybeBaseCase:i},s){let o=s.getLiveArgNames();if(o.length===0)throw J(`Unexpected: non-constant node with dependencies: ${o}`);if(o.length===1&&!n&&!rs.plotSingleVariableImplicitEquations)return TP();let a=g=>g===\"x\"||g===\"y\"||g===\"z\";if(e.is3dPolicy()?!o.every(a):o.length>2)return tn(e.sliderVariables(o)).setDependencies(o);if(n&&!e.validInequalityVariables(o))return xP().setDependencies(o);let{localFrames:u,effectiveOrder:c,variableOfInterest:l}=_k(t,n);if(e.complicatedPolarImplicit(l,c))return EP().setDependencies(o);if(!e.validImplicitVariables(o)){let g=rc();return i&&(g.silent=!0),g}if(e.is3dPolicy()&&r&&c!==1)return Bo();if(c>2||e.is3dPolicy()&&!r)return new pn(s);let p=[],f=[],m=1;for(let g=0;g<u.length;g++){let d=u[g],y=Lk(d,n);m=y.length;for(let b of y){let x=d.chunk.copy();if(x.setReturnIndex(b),d.isRestrictedPolynomial){let{mappedArgIndex:P,mappedReturnIndex:M}=d;x.setReturnIndex(KN(x,{mappedArgIndex:P,mappedReturnIndex:M,solutionIndex:x.getReturnIndex()}))}x.fuseBroadcast(),p.push(new pn(x))}let h=!1;for(let b of d.coefficients){let x=d.chunk.getInstruction(b);x.type===1&&x.value!==0&&(h=!0)}if(s.argNames.length!==2||h)f.push(void 0);else{let b=d.chunk.copy(),x=d.coefficients.slice();b.List(x);let P=W(s.getReturnType())?s.elementAt(g):s.copy(),I=P.argNames.indexOf(l)===0?1:0,E=P.getReturnIndex();P.Add([I,P.Multiply([P.Constant(0),E])]),f.push({coefficients:b,restriction:P})}}return new D.SolvedEquation(l,new D.List(p),f,m)}function _k(e,t){let n=e.chunk,r=e.policy,i=n.argNames,s=W(n.getReturnType()),o=[];e:for(let a=0;a<i.length;a++){let u=i[a],c=i.length>1&&!r.validSolvedVariable(u);o[a]={localFrames:[],effectiveOrder:0,variableOfInterest:u};let l=!t;if(c){o[a].effectiveOrder=1/0;continue}let p=s?n.getConstantListLength():1;if(p==null)throw new Error(\"Programming error: cannot solve a variable-length list expression\");for(let f=0;f<p;f++){let m=s?n.elementAt(f):n;if(m.polynomialOrder(u,{allowRestriction:l,allowClosedBlockReferences:!1})>2){o[a].effectiveOrder=1/0;continue e}let d=m.getPolynomialCoefficients(u);o[a].localFrames.push(d),o[a].effectiveOrder=Math.max(o[a].effectiveOrder,d.coefficients.length-1)}}if(i.length===1)return o[0];if(i.length===2&&!i.includes(\"z\"))return i[0]===\"y\"&&(o=[o[1],o[0]]),o[0].effectiveOrder===0?o[1]:o[1].effectiveOrder===0?o[0]:o[o[0].effectiveOrder<o[1].effectiveOrder?0:1];{let a=o.filter(c=>c.effectiveOrder===1);if(a.length>0)return a[0];let u=o.filter(c=>c.effectiveOrder===2);return u.length>0?u[0]:o[0]}}function Lk(e,t){return t?Fk(e):wk(e)}function wk({chunk:e,coefficients:t}){let[n,r,i]=t,s=e.Constant(De(0,1)),o=e.Constant(NaN);if(i===void 0){r===void 0&&(r=s);let a=e.Negative([e.Divide([n,r])]),u=e.Equal([r,s]);return[e.Piecewise([u,o,a])]}else{let a=e.Constant(De(2,1)),u=e.Multiply([a,i]),c=e.Negative([r]),l=e.Subtract([e.Multiply([r,r]),e.Multiply([a,e.Multiply([u,n])])]),p=e.Equal([i,s]),f=e.getInstruction(l);if(f.type===1&&q(f.value)===0)return[e.Piecewise([p,o,e.Divide([c,u])])];{let m=e.SyntheticNativeFunction(\"sqrt\",[l]),g=e.Less([r,s]),d=e.Greater([r,s]),y=e.Divide([e.Add([c,m]),u]),h=e.Divide([e.Subtract([c,m]),u]),b=e.Negative([e.Divide([n,r])]);return[e.Piecewise([p,e.Piecewise([g,b,o]),h]),e.Piecewise([p,e.Piecewise([d,b,o]),y])]}}}function Fk({chunk:e,coefficients:t}){let[n,r,i]=t,s=e.Constant(De(0,1));i===void 0&&(i=s),r===void 0&&(r=s),n===void 0&&(n=s);let o=e.Constant(De(2,1)),a=e.Constant(NaN),u=e.Constant(De(1e305,1)),c=e.Negative([u]),l=e.Multiply([o,i]),p=e.Negative([r]),f=e.Subtract([e.Multiply([r,r]),e.Multiply([o,e.Multiply([l,n])])]),m=e.SyntheticNativeFunction(\"sqrt\",[f]),g=e.Divide([e.Add([p,m]),l]),d=e.Divide([e.Subtract([p,m]),l]),y=e.Negative([e.Divide([n,r])]),h=e.Equal([i,s]),b=e.Greater([i,s]),x=e.Equal([r,s]),P=e.Greater([r,s]),M=e.Less([r,s]),I=e.Greater([n,s]),E=e.Less([f,s]);return[e.Piecewise([h,e.Piecewise([M,y,a]),e.Piecewise([b,d,a])]),e.Piecewise([h,e.Piecewise([x,e.Piecewise([I,c,a]),a]),e.Piecewise([b,e.Piecewise([E,c,a]),g])]),e.Piecewise([h,e.Piecewise([x,e.Piecewise([I,u,a]),a]),e.Piecewise([b,e.Piecewise([E,u,a]),d])]),e.Piecewise([h,e.Piecewise([P,y,a]),e.Piecewise([b,g,a])])]}var{abs:Au,min:X0,max:Z0}=Math;function W0(e,t){let{xmin:n,xmax:r,ymin:i,ymax:s,zmin:o,zmax:a}=t,u=[[n,i,a],[n,s,a],[r,s,a],[r,i,a],[n,i,o],[n,s,o],[r,s,o],[r,i,o]],c=[[0,1],[1,2],[2,3],[3,0],[4,5],[5,6],[6,7],[7,4],[0,4],[1,5],[2,6],[3,7]],l=[];for(let[v,O]of c){let A=u[v],N=u[O],L=e(...A),z=e(...N),G=L/(L-z);0<=G&&G<=1&&l.push(gs(A,N,G))}if(l.length<3)return;let p=X0(...l.map(v=>v[0])),f=Z0(...l.map(v=>v[0])),m=X0(...l.map(v=>v[1])),g=Z0(...l.map(v=>v[1])),d=X0(...l.map(v=>v[2])),y=Z0(...l.map(v=>v[2])),h=e(n,i,o),b=(e(r,i,o)-h)/(r-n),x=(e(n,s,o)-h)/(s-i),P=(e(n,i,a)-h)/(a-o),M,I,E;return Au(P)>=Au(b)&&Au(P)>=Au(x)?(M=(v,O)=>[v,O,o-(h+b*(v-n)+x*(O-i))/P],I=new ee(p,f),E=new ee(m,g)):Au(x)>=Au(P)&&Au(x)>=Au(b)?(M=(v,O)=>[v,i-(h+b*(v-n)+P*(O-o))/x,O],I=new ee(p,f),E=new ee(d,y)):(M=(v,O)=>[n-(h+x*(v-i)+P*(O-o))/b,v,O],I=new ee(m,g),E=new ee(d,y)),{explicitPlane:M,u:I,v:E}}function yh(e,t){let n=[],r=[],i=[],s=[],o=W0(e,t);if(o){let{explicitPlane:a,u,v:c}=o;n.push(...a(u.min,c.min),...a(u.max,c.min),...a(u.min,c.max),...a(u.max,c.max));let l=new Qe(n[0],n[1],n[2]),p=new Qe(n[3],n[4],n[5]),f=new Qe(n[6],n[7],n[8]),m=new Qe().subVectors(f,l),g=new Qe().subVectors(l,p),d=m.cross(g).normalize();r.push(d.x,d.y,d.z,d.x,d.y,d.z,d.x,d.y,d.z,d.x,d.y,d.z),i.push(0,0,0,1,1,0,1,1),s.push(0,1,2,3,2,1)}return{positions:n,normals:r,faces:s,uvs:i,resolved:!0,extraAttrs:[]}}var Bk=!1,Nu=256,bh=D.List;function dr(){return{}}function Uc(e,t,n){let r=1/0;for(let s of t){let o=e[s];Array.isArray(o)&&o.length<r&&(r=o.length)}let i=1;return n===\"solvedEquation\"?i=2:n===\"baseComparator\"&&(i=4),i*r}function wa(e,t,n){return Array.isArray(e)?e[k0(t,n)]:e}function Gk(e,t){var n=t.viewport.xmax-t.viewport.xmin,r=t.viewport.ymax-t.viewport.ymin;let i=as(n,r),s=as(30,30),o=Math.round(2-Math.log(i/s)/Math.LN10);if(o<=0)return Math.round(e)+\"\";{let a=Math.pow(10,o);return Math.round(e*a)/a+\"\"}}function kk(e,t){var n=t.viewport.xmax-t.viewport.xmin,r=t.viewport.ymax-t.viewport.ymin;let i=n*r,s=30*30,o=Math.round(2-Math.log(i/s)/Math.LN10);if(o<=0)return Math.round(e)+\"\";{let a=Math.pow(10,o);return Math.round(e*a)/a+\"\"}}function zk(e,t){return t.degreeMode?Math.round(e/(Math.PI/180)*10)/10+\"\\xB0\":Math.round(e*100)/100+\"\"}function _u(e,t,n){let r=k0(t,n),i=e.userData.lineStyle,s=wa(e.metaData.computedLineWidth,t,n),o=wa(e.metaData.computedLineOpacity,t,n),a=wa(e.metaData.computedFillOpacity,t,n),u=e.metaData.colorLatexValue?wa(e.metaData.colorLatexValue,t,n):e.userData.color,c=wa(e.metaData.computedResolution,t,n);return{listIndex:r,style:i,lineWidth:s,lineOpacity:o,fillOpacity:a,color:u,resolution:c}}D.Base.prototype._graph=Hk;function Hk(e,t,n,r,i,s){var m,g,d;if(t instanceof D.SolvedEquation){let y=this._graph(e,t._expression,n,r,i,t.branchMultiplier===2?\"solvedEquation\":void 0),h=fA(this,t,n,e);return h&&(y||(y=[]),Array.prototype.push.apply(y,h)),y}function o(y){let h=y.editableLabelMode;return h===\"TEXT\"||h===\"MATH\"}function a(y,h){return\"colorLatex\"in y&&jk(y.colorLatex)?y.colorLatex:h}let u=t.getExpressionType(r.graphMode,t.valueType),c=XE(u,{points:this.userData.points,lines:this.userData.lines,fill:this.userData.fill}),l={lineOpacity:\"computedLineOpacity\",lineWidth:\"computedLineWidth\",color:\"colorLatexValue\",fillOpacity:\"fillOpacity\",resolution:\"resolution\"},p=(y,h)=>{let b=Uc(this.metaData,Object.keys(y).map(P=>l[P]),s),x=[];return bh.wrap(t).eachElement((P,M)=>{if(M>=b)return;let I=this.getGraphInfo(e,P);I.graphMode=r.graphMode;let E=_u(this,M,s);I.listIndex=E.listIndex,I.style=E.style,\"lineWidth\"in y&&(I.lineWidth=E.lineWidth),\"lineOpacity\"in y&&(I.lineOpacity=E.lineOpacity),\"fillOpacity\"in y&&(I.fillOpacity=E.fillOpacity),\"color\"in y&&(I.color=a(this.userData,E.color)),\"resolution\"in y&&(I.resolution=E.resolution),x.push(...h(P,I))}),x},f=r.graphMode;switch(f){case 4:{let{points:b,droppedIndices:x}=yd([t.asValue()]),P=this.userData.shouldGraph&&c.points,M=this.userData.showLabel&&!P;return P?[{segments:[b],graphMode:f,droppedIndices:x,color:sa(this.userData,this.metaData),style:this.userData.pointStyle,showLabel:!!this.userData.showLabel,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,pointOpacity:this.metaData.computedPointOpacity,pointSize:this.metaData.computedMovablePointSize,suppressTextOutline:this.userData.suppressTextOutline,editableLabel:o(this.userData),labels:this.computedLabels||[],poi:Us(b),movablePointInfo:[]}]:M?[{segments:[b],graphMode:3,color:sa(this.userData,this.metaData),style:this.userData.pointStyle,showLabel:!!this.userData.showLabel,nakedLabel:!0,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,pointOpacity:this.metaData.computedPointOpacity,suppressTextOutline:this.userData.suppressTextOutline,editableLabel:o(this.userData),labels:this.computedLabels||[],poi:Us(b),showPoint:!1}]:[]}case 3:{let b=[],x=this.userData.shouldGraph&&c.points,P=this.userData.shouldGraph&&c.lines,M=[\"colorLatexValue\"];x&&M.push(\"computedPointOpacity\",\"computedPointSize\"),(this.userData.showLabel||x)&&M.push(\"computedLabelSize\",\"computedLabelAngle\");let I=Uc(this.metaData,M,s),E=bh.wrap(t).asValue();Xr(E),E.length>I&&(E.length=I);let v=this.userData.showLabel&&!x&&!P,O=yd(E);if(this.userData.showLabel||x){let A={segments:[O.points],graphMode:f,droppedIndices:O.droppedIndices,color:this.metaData.colorLatexValue||this.userData.color,style:this.userData.pointStyle,showLabel:!!this.userData.showLabel,showPoint:x,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,pointSize:this.metaData.computedPointSize,pointOpacity:this.metaData.computedPointOpacity,suppressTextOutline:this.userData.suppressTextOutline,interactiveLabel:!!this.userData.interactiveLabel,editableLabel:o(this.userData),nakedLabel:v,labels:this.computedLabels||[],poi:Us(E)};e.is3dPolicy()?b.push(...Xk(A)):b.push(A)}if(P){let A=this.metaData.computedLineWidth,N={segments:aA(E),graphMode:5,color:sa(this.userData,this.metaData),style:this.userData.lineStyle,lineWidth:A,lineOpacity:this.metaData.computedLineOpacity,poi:dr()};b.push(rA(e,N,n,A))}return b}case 114:case 115:case 116:{let b=[],x=this.userData.shouldGraph&&c.points,P=this.userData.shouldGraph&&c.lines,M=[\"colorLatexValue\"];x&&M.push(\"computedPointOpacity\",\"computedPointSize\");let I=bh.wrap(t).asValue();Xr(I);let{degreeMode:E}=n,v=I.map(N=>SN(f,N,E)),O=Uc(this.metaData,M,s),A=Math.min(v.length,O);if(x)for(let N=0;N<A;N++){let{color:L,fillOpacity:z}=_u(this,N,s),G=wa(this.metaData.computedPointSize,N,s);b.push({graphMode:114,position:v[N],radius:.02*G,guid:fi(),color:L,fillOpacity:z})}if(P){let N=wa(this.metaData.computedLineWidth,0,s),{color:L}=_u(this,0,s);b.push({graphMode:100,points:ah(v,n.viewport,N),thickness:N,guid:fi(),color:L})}return b}case 117:{let b=this.metaData.colorLatexValue?!Array.isArray(this.metaData.colorLatexValue):!0,x=this.metaData.computedFillOpacity,P=[],M=[],I=[],E=[],v=[],[O,A,N]=[new Qe,new Qe,new Qe],[L,z,G]=[new Qe,new Qe,new Qe],$=(Y,de,re,ie,Z,Re,Ne,Te,Me)=>{if(L.set(Y,de,re),z.set(ie,Z,Re),G.set(Ne,Te,Me),!L.isFinite()||!z.isFinite()||!G.isFinite())return;let ve=P.length/3;P.push(L.x,L.y,L.z,z.x,z.y,z.z,G.x,G.y,G.z),O.subVectors(L,G),A.subVectors(z,L),N.crossVectors(O,A),M.push(N.x,N.y,N.z,N.x,N.y,N.z,N.x,N.y,N.z),I.push(ve,ve+1,ve+2),E.push(0,0,0,1,1,0)},w=()=>{let Y={guid:fi(),resolved:!0,positions:new Float32Array(P),normals:new Float32Array(M),faces:new Uint32Array(I),uvs:new Float32Array(E),extraAttrs:new Float32Array([])};return v.length&&(Y.colors=new Float32Array(v)),Y};if(t.valueType===tr&&!Array.isArray(x)){let Y=this.metaData.computedFillOpacity,de=\"\";if(b){let re=(m=this.metaData.colorLatexValue)!=null?m:this.userData.color;de=a(this.userData,re)}return p({color:!0},(re,ie)=>{if(re.valueType===In){let[[Z,Re,Ne],[Te,Me,ve],[Q,U,xe]]=re.asValue();if($(Z,Re,Ne,Te,Me,ve,Q,U,xe),!b){let[le,K,_e]=G0(ie.color);v.push(le,K,_e,le,K,_e,le,K,_e)}}return[]}),[{meshData:w(),color:de,fillOpacity:Y!=null?Y:1,graphMode:117}]}return p({color:!0,fillOpacity:!0},(Y,de)=>{var U;let[[re,ie,Z],[Re,Ne,Te],[Me,ve,Q]]=Y.asValue();return P=[],M=[],I=[],E=[],$(re,ie,Z,Re,Ne,Te,Me,ve,Q),[{meshData:w(),color:a(this.userData,de.color),fillOpacity:(U=de.fillOpacity)!=null?U:1,graphMode:117}]})}case 119:{let b=this.metaData.colorLatexValue?!Array.isArray(this.metaData.colorLatexValue):!0;if(t.valueType===er&&b&&!Array.isArray(this.metaData.computedLineWidth)){let x=(g=this.metaData.colorLatexValue)!=null?g:this.userData.color,P=this.metaData.computedLineWidth,M=[];return p({color:!0},I=>{if(I.valueType===Nt){let[[E,v,O],[A,N,L]]=I.asValue();M.push(E,v,O,A,N,L,NaN,NaN,NaN)}return[]}),[{graphMode:119,guid:fi(),points:M,color:x,thickness:P!=null?P:1}]}return p({color:!0,lineWidth:!0},(x,P)=>{let{lineWidth:M,color:I}=P,E=x.asValue(),[[v,O,A],[N,L,z]]=E;return uA(v,O,A,N,L,z)?[]:[{graphMode:119,guid:fi(),points:[v,O,A,N,L,z],color:I,thickness:M}]})}case 129:let y=this.metaData.colorLatexValue?!Array.isArray(this.metaData.colorLatexValue):!0;if(t.valueType===nr&&y&&!Array.isArray(this.metaData.computedLineWidth)){let b=(d=this.metaData.colorLatexValue)!=null?d:this.userData.color,x=this.metaData.computedLineWidth,P=[];return p({color:!0},M=>{if(M.valueType===Se){let[[I,E,v],[O,A,N]]=M.asValue();P.push(O,A,N,I+O,E+A,v+N)}return[]}),[{graphMode:129,guid:fi(),points:P,color:b,thickness:x!=null?x:1}]}return p({color:!0,lineWidth:!0},(b,x)=>{let{lineWidth:P,color:M}=x,I=b.asValue(),[[E,v,O],[A,N,L]]=I;return uA(E,v,O,A,N,L)?[]:[{graphMode:129,guid:fi(),points:[A,N,L,E+A,v+N,O+L],color:M,thickness:P}]});case 118:return p({color:!0,resolution:!0,fillOpacity:!0},(b,x)=>{let{color:P,fillOpacity:M}=x,I=b.asValue(),[[E,v,O],A]=I,N=Math.abs(A);return isNaN(E)||isNaN(v)||isNaN(O)||isNaN(A)?[]:[{graphMode:118,position:[E,v,O],radius:[N,N,N],guid:fi(),color:P,fillOpacity:M!=null?M:1}]});case 5:case 100:case 101:case 102:{let b=this.userData,x=this.metaData,P=[],M=p({color:!0,lineOpacity:!0,lineWidth:!0,resolution:!0},(E,v)=>{var A;let O=E.getDependencies();if(O.length===0&&!ca(E.valueType)){let{points:N,droppedIndices:L}=yd([E.asValue()]);return[{segments:[N],graphMode:3,droppedIndices:L,color:sa(b,x),style:b.lineStyle,showPoint:!1,poi:Us(N)}]}else{let N=E.getCompiledFunction(O);v.domain=(A=N.domain)!=null?A:{type:\"1d\",min:this.metaData.evaluatedDomainMin,max:this.metaData.evaluatedDomainMax};let L=_a({viewState:n,graphInfo:v,compiled:N});return[rA(e,L,n,v.lineWidth)]}}),I=[];for(let E of M)E&&I.push(E);if(c.fill)if(I.forEach((E,v)=>{let{color:O,fillOpacity:A,listIndex:N}=_u(this,v,s);P.push({segments:E.segments,color:O,fillOpacity:A,listIndex:N,graphMode:7,poi:dr()})}),c.lines)I=I.concat(P);else return P;return I}case 20:return p({lineOpacity:!0,lineWidth:!0,color:!0},(b,x)=>{let[[P,M],I]=b.asValue();return isNaN(P)||isNaN(M)||isNaN(I)?[]:[{segments:[[P,M,I]],resolved:!0,graphMode:x.graphMode,color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:x.operator,poi:dr()}]});case 21:return p({color:!0,lineWidth:!0,lineOpacity:!0},(b,x)=>{let P=By(b.asValue());if(!P)return[];let M=[];return P.type===\"arc\"?M.push({graphMode:f,segments:[[P.center[0],P.center[1],P.radius,P.startAngle,P.endAngle]],color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()}):P.type===\"rays\"?M.push({graphMode:19,segments:[[P.start1[0],P.start1[1],P.end1[0],P.end1[1]]],color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()},{graphMode:19,segments:[[P.start2[0],P.start2[1],P.end2[0],P.end2[1]]],color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()}):M.push({graphMode:17,segments:[[P.start[0],P.start[1],P.end[0],P.end[1]]],color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()}),[...M,...sA(M,i)]});case 17:case 18:case 19:return p({color:!0,lineWidth:!0,lineOpacity:!0},(b,x)=>{let[[P,M],[I,E]]=b.asValue();if(isNaN(P)||isNaN(M)||isNaN(I)||isNaN(E))return[];let v=[],O={segments:[[P,M,I,E]],resolved:!0,graphMode:x.graphMode,color:x.color,style:x.lineStyle,arrowMode:x.arrowMode,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()};if(v.push(iA(e,O,n)),v.push(...sA([O],i)),this.userData.showLabel&&r.graphMode===17){let A=x.listIndex,N=this.computedLabels&&this.computedLabels[A||0];v.push({graphMode:22,objectType:17,segments:[[P,M,I,E]],color:x.color,listIndex:A,showLabel:!0,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,labels:N?[N]:[Gk(as(I-P,E-M),n)]})}return v});case 24:return p({lineOpacity:!0,lineWidth:!0,color:!0},(b,x)=>{let[P,M]=b.asValue(),[[I,E],[v,O]]=[M,[M[0]+P[0],M[1]+P[1]]];if(isNaN(v)||isNaN(O)||isNaN(I)||isNaN(E))return[];let A={segments:[[I,E,v,O]],resolved:!0,graphMode:x.graphMode,color:x.color,style:x.lineStyle,arrowMode:x.arrowMode,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:x.listIndex,operator:r.operator,poi:dr()};return[iA(e,A,n)]});case 23:return p({lineOpacity:!0,lineWidth:!0,color:!0},(b,x)=>{let{value:P,valueType:M}=b.asTypedValue(),[[I,E],v,O]=P;if(isNaN(I)||isNaN(E)||isNaN(v)||isNaN(O))return[];let A=x.listIndex,N=M===Ae,L=N?O:Math.abs(O),z=[];if(z.push({graphMode:23,segments:[[I,E,v,O,N?1:0]],color:x.color,style:x.lineStyle,lineWidth:x.lineWidth,lineOpacity:x.lineOpacity,listIndex:A,operator:r.operator,poi:dr()}),this.userData.showAngleLabel){let G=this.computedLabels&&this.computedLabels[A||0];z.push({graphMode:22,objectType:23,segments:[[I,E,v,O]],color:x.color,listIndex:A,showLabel:!0,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,labels:G?[G]:[zk(L,n)]})}return z});case 1:case 2:case 8:case 112:case 126:case 113:case 127:case 6:case 130:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 120:case 121:case 122:case 123:case 124:{let b=t.valueType===T;return p({lineOpacity:!0,lineWidth:!0,resolution:!0,fillOpacity:!0,color:!0},(x,P)=>{var w,Y,de,re,ie,Z,Re,Ne,Te,Me,ve;(r.graphMode===6||r.graphMode===110||r.graphMode===124)&&(P.domain={type:\"1d\",min:this.metaData.evaluatedDomainMin,max:this.metaData.evaluatedDomainMax,isExplicit:this.metaData.isExplicitDomain});let M=(w=ss[r.graphMode])!=null?w:[],I=x.getCompiledFunction(M);(r.graphMode==130||r.graphMode==103||r.graphMode==104||r.graphMode==105||r.graphMode==111||r.graphMode==109)&&(P.domain=(Y=I.domain)!=null?Y:{type:\"2d\",uMin:this.metaData.evaluatedDomain3DMin1,uMax:this.metaData.evaluatedDomain3DMax1,vMin:this.metaData.evaluatedDomain3DMin2,vMax:this.metaData.evaluatedDomain3DMax2});let E=[],v;try{v=x.getCompiledDerivative()}catch(Q){}let O=$k(this,x,I,n,P,v,b);if(O)return O;let A=YE(P.graphMode),N=(de=this.userData.extendTo3D)!=null?de:!1,L=A&&!N,z=!e.is3dPolicy()||L,G=(re=this.userData.lines)!=null?re:z,$=(ie=this.userData.lines)!=null?ie:!L;if(P.graphMode===127&&!N&&((Z=this.userData.lines)==null||Z)){let Q=(Re=ss[P.graphMode])!=null?Re:[],U=x._chunk.copy();U.GreaterEqual([U.getReturnIndex(),U.Constant(0)]);let xe=x.getCompiledFunction(Q),le=0,K=n.viewport,{xmin:_e,xmax:Ze,ymin:me,ymax:te}=K,pt=new ee(_e,Ze),Ro=new ee(me,te),ku=yh((Cd,Ah,_h)=>_h-le,K);return[{meshData:qi(ku),color:P.color,fillOpacity:(Ne=P.fillOpacity)!=null?Ne:1,uvRange:[pt,Ro],uvArgs:(Te=ss[P.graphMode])!=null?Te:[],extraMeshArgs:(Me=Vc[P.graphMode])!=null?Me:[],graphMode:106,compiled:xe,restrictionShader:Wo(U,Nu)}]}if(A&&(this.userData.lines===!0?(G=L,$=!L):this.userData.lines===!1&&(G=!1,$=!1)),$&&ea(P.graphMode)){let Q=mh(P.graphMode);if(P.graphMode===113||P.graphMode===127){let{positions:U,normals:xe,faces:le,uvs:K}=QN(),_e={guid:fi(),isDomainCube:!0,resolved:!0,positions:U,normals:xe,faces:le,uvs:K,extraAttrs:new Float32Array([])},Ze=x.toImplicitBool();E.push({meshData:_e,graphMode:113,color:P.color,fillOpacity:1,uvRange:[new ee(0,1),new ee(0,1)],uvArgs:[],extraMeshArgs:[],compiled:I,restrictionShader:Wo(Ze._chunk,Nu)});let me=cR(Ze._chunk,x._chunk,Q);for(let te of me){let pt=nA(P,{concrete:new pn(te.value),restriction:te.restriction&&Wo(te.restriction,Nu)},n);E.push(pt)}}else{let U=x.getRestrictedFunctionForGLSL(Q,Nu),xe=nA(P,U,n);E.push(xe)}}if(G&&Uk(this,P),!ea(P.graphMode)){let Q=_a({viewState:n,graphInfo:P,compiled:I,derivative:v}),U=dA(Aa(this),x);if(U&&(Q.boundingBox=U),e.is3dPolicy()&&G&&Q0(Q.graphMode)){let xe=(ve=P.lineWidth)!=null?ve:1;E.push(oh(Q,n,xe))}else if(Q.fillSegments){let{fillSegments:xe,...le}=Q;G||(le.lineWidth=0),E.push(le)}else G||(Q.lineWidth=0),(G||!ea(r.graphMode))&&E.push(Q);P.graphMode===8&&P.operator!==\"=\"&&E.push({graphMode:7,segments:Q.fillSegments,poi:dr(),listIndex:P.listIndex,color:P.color,fillOpacity:P.fillOpacity})}return E})}case 200:case 201:case 202:case 206:case 205:case 211:case 203:case 204:case 213:case 207:case 208:case 212:case 214:case 215:case 209:return p({color:!0,lineWidth:!0,lineOpacity:!0,resolution:!0},(b,x)=>{var w;switch(f){case 206:case 211:x.domain={type:\"1d\",min:this.metaData.evaluatedDomainMin,max:this.metaData.evaluatedDomainMax,isExplicit:this.metaData.isExplicitDomain};break;case 203:case 204:case 213:case 207:case 208:case 212:case 214:case 215:x.domain={type:\"2d\",uMin:this.metaData.evaluatedDomain3DMin1,uMax:this.metaData.evaluatedDomain3DMax1,vMin:this.metaData.evaluatedDomain3DMin2,vMax:this.metaData.evaluatedDomain3DMax2};break}let P=(w=ss[f])!=null?w:[],M={allowSlices:!0},I=Ra(b._chunk,P,M),{valueChunk:E,slices:v}=I.getValueAndRestrictionChunk(),O=E.getCompiledFunction(P),A=v[0],N=A.type===\"implicit\",L=N?NaN:A.value,z=N?\"_implicit\":A.variable,G,$=Y=>_a({viewState:n,graphInfo:{...x,slice_coordinate:z,slice_value:L,slice_function:Y},compiled:O});if(N){let Y=[\"x\",\"y\",\"z\"],de=[\"x\",\"y\",\"z\",\"r\",\"theta\"],re=[\"x\",\"y\",\"z\",\"rho\",\"theta\",\"phi\"],ie=[\"x\",\"y\",\"z\",\"u\",\"v\"],Z=A.sliceChunk;switch(f){case 200:case 201:case 202:G=Z.getCompiledFunction(Y);break;case 211:case 213:G=Z.getCompiledFunction(de);break;case 212:G=Z.getCompiledFunction(re);break;case 215:case 214:G=Z.getCompiledFunction(ie);break;case 209:{let Re=(Me,ve)=>{let Q=ve.getCompiledFunction(Y),U=Me._symbol,xe=Me._expression.args,le=[];for(let K of xe){if(!(K instanceof pn))throw J(\"Programming Error: bad type\");if(U===\"x\")O=K._chunk.getCompiledFunction([\"y\",\"z\"]),x.graphMode=201;else if(U===\"y\")O=K._chunk.getCompiledFunction([\"x\",\"z\"]),x.graphMode=202;else if(U===\"z\")O=K._chunk.getCompiledFunction([\"x\",\"y\"]),x.graphMode=200;else throw J(\"Programming Error: bad lhs\");le.push($(Q))}return le},Ne=(Me,ve)=>{let Q=n.viewport,U=ve.getCompiledFunction(Y),xe=Me.getCompiledFunction(Y).fn,le=W0(xe,Q);if(le){let{explicitPlane:K,u:_e,v:Ze}=le;return x.graphMode=214,O={args:[\"u\",\"v\"],source:\"\",constants:[],fn:K,executionMetadata:{}},x.domain={type:\"2d\",uMin:_e.min,uMax:_e.max,vMin:Ze.min,vMax:Ze.max},[$(U)]}else return[]};if(Z.isImplicitPlane())return Ne(Z,E);if(E.isImplicitPlane())return Ne(E,Z);let Te=Y0(e,E);return Te instanceof D.SolvedEquation&&!Te.isError?Re(Te,Z):(Te=Y0(e,Z),Te instanceof D.SolvedEquation&&!Te.isError?Re(Te,E):[$(Z.getCompiledFunction(Y))])}}}return[$(G)]});case 210:return p({color:!0,fillOpacity:!0,resolution:!0},(b,x)=>{var Me,ve,Q,U,xe,le,K,_e;let P=(Me=ss[f])!=null?Me:[],M={allowSlices:!0},I=Ra(b._chunk,P,M),{restrictionChunk:E,slices:v}=I.getSlicesAndRestrictionChunk(),O=E.getCompiledFunction(P);if(v[0].type===\"implicit\"){let Ze=v[0].sliceChunk,me;try{me=Ze.copy().gradient([\"x\",\"y\",\"z\"]).getCompiledFunction([\"x\",\"y\",\"z\"]).fn}catch(_h){}let te=(ve=x.resolution)!=null?ve:NaN;isNaN(te)&&(te=dd),te=rr(te,0,100);let pt=_0(Ze.getCompiledFunction(P),void 0,me,n.viewport,te,{isInequality:!1}),{xmin:Ro,xmax:Ba,ymin:ku,ymax:$c}=n.viewport,Od=new ee(Ro,Ba),Cd=new ee(ku,$c);return[{meshData:pt,color:x.color,fillOpacity:(Q=x.fillOpacity)!=null?Q:1,uvRange:[Od,Cd],uvArgs:(U=ss[x.graphMode])!=null?U:[],extraMeshArgs:(xe=Vc[x.graphMode])!=null?xe:[],graphMode:f,compiled:O,restrictionShader:Wo(E,Nu)}]}let A=v[0].value,N=v[0].variable,L=n.viewport,{xmin:z,xmax:G,ymin:$,ymax:w,zmin:Y,zmax:de}=L,re,ie,Z;switch(N){case\"x\":re=new ee($,w),ie=new ee(Y,de),Z=(Ze,me,te)=>Ze-A;break;case\"y\":re=new ee(z,G),ie=new ee(Y,de),Z=(Ze,me,te)=>me-A;break;case\"z\":re=new ee(z,G),ie=new ee($,w),Z=(Ze,me,te)=>te-A;break;default:return[]}let Re=yh(Z,L);return[{meshData:qi(Re),color:x.color,fillOpacity:(le=x.fillOpacity)!=null?le:1,uvRange:[re,ie],uvArgs:(K=ss[x.graphMode])!=null?K:[],extraMeshArgs:(_e=Vc[x.graphMode])!=null?_e:[],graphMode:f,compiled:O,restrictionShader:Wo(E,Nu)}]});case 16:{let b=[],x=this.userData.lines===void 0?!0:this.userData.lines,P=this.userData.fill===void 0?!0:this.userData.fill;if(!P&&!x)return b;let M=Uc(this.metaData,[\"computedLineOpacity\",\"computedLineWidth\",\"colorLatexValue\",\"fillOpacity\"],s),I=t.asValue();W(t.valueType)||(I=[I]);for(let E=0;E<I.length;E++){if(E>M-1)continue;let v=I[E];if(!v.length)continue;let O=this.getGraphInfo(e,t),{listIndex:A,lineWidth:N,lineOpacity:L,fillOpacity:z,color:G}=_u(this,E,s);this.userData.shouldOmitLastPolygonSegment||(v=[...v,v[0]]),Xr(v);let $=aA(v);if($.length&&(P&&b.push({segments:$,graphMode:7,poi:dr(),color:G,fillOpacity:z,style:O.style,listIndex:A}),x&&b.push({segments:$,graphMode:5,poi:dr(),color:G,style:this.userData.lineStyle,lineWidth:N,lineOpacity:L,listIndex:A}),Bk&&this.userData.showLabel)){let w=this.computedLabels&&this.computedLabels[A||0];b.push({graphMode:22,objectType:16,segments:$,color:G,listIndex:A,showLabel:!0,labelSize:this.metaData.computedLabelSize,labelAngle:this.metaData.computedLabelAngle,labelOrientation:this.userData.labelOrientation,labels:w?[w]:[kk(mI(v),n)]})}}return b}case 7:case 11:case 10:case 15:case 22:case 128:return!1;default:let h=f;throw new Error(`Unexpected graphMode: ${h}`)}}function nA(e,t,n){var c,l,p;let r=(c=ss[e.graphMode])!=null?c:[],i=t.concrete.getCompiledFunction(r),s,o,a=!1;if(e.graphMode===112||e.graphMode===126||e.graphMode===113){e.operator!==\"=\"&&(a=!0);try{s=t.concrete.gradient([\"x\",\"y\",\"z\"])._chunk,o=s.getCompiledFunction([\"x\",\"y\",\"z\"]).fn}catch(f){}}if(e.graphMode===112&&o&&s){let f=qk(i.fn,o,s,n.viewport);if(f)return{graphMode:118,position:f.center,radius:f.radii,guid:fi(),color:e.color,restrictionShader:t.restriction,fillOpacity:(l=e.fillOpacity)!=null?l:1}}let u=e.graphMode;if((u===112||u===113||u===127||u===106||u===107||u===108)&&t.concrete._chunk.isLinearIn([\"x\",\"y\",\"z\"])){let f=n.viewport,m,g,d;switch(u){case 106:m=(b,x,P)=>P-i.fn(b,x),g=new ee(f.xmin,f.xmax),d=new ee(f.ymin,f.ymax);break;case 107:m=(b,x,P)=>b-i.fn(x,P),g=new ee(f.ymin,f.ymax),d=new ee(f.zmin,f.zmax);break;case 108:m=(b,x,P)=>x-i.fn(b,P),g=new ee(f.xmin,f.xmax),d=new ee(f.zmin,f.zmax);break;case 112:case 113:case 127:m=i.fn,g=new ee(f.xmin,f.xmax),d=new ee(f.ymin,f.ymax);break}let y=qi(yh(m,f)),h=u===113||u===127;return u===127&&(u=113),{meshData:y,color:e.color,fillOpacity:h?1:(p=e.fillOpacity)!=null?p:1,uvRange:[g,d],uvArgs:[],extraMeshArgs:[],graphMode:u,compiled:i,restrictionShader:t.restriction}}return _a({viewState:n,graphInfo:e,compiled:i,restrictionShader3d:t.restriction,isImplicit3dInequality:a,gradient:o,dependencies:t.concrete._dependencies})}function Uk(e,t){var r,i,s;if(YE(t.graphMode))switch(t.graphMode){case 121:case 123:{t.graphMode=2,t.willConvertTo3D=!0,(r=t.lineWidth)!=null||(t.lineWidth=1);break}case 120:case 122:{t.graphMode=1,t.willConvertTo3D=!0,(i=t.lineWidth)!=null||(t.lineWidth=1);break}case 124:let{min:o,max:a}=((s=t.domain)==null?void 0:s.type)===\"1d\"?t.domain:{min:0,max:2*Math.PI};t.graphMode=6,t.domain={type:\"1d\",min:o,max:a,isExplicit:e.metaData.isExplicitDomain};break;case 126:t.graphMode=8;break}}function qk(e,t,n,r){if(r.zmin===void 0||r.zmax===void 0)return;let i=n.argNames.indexOf(\"x\"),s=n.argNames.indexOf(\"y\"),o=n.argNames.indexOf(\"z\");if(i===-1||s===-1||o===-1)return;let a=n.getInstruction(n.getReturnIndex());if(a.type!==38||a.args.length!==3)return;let[u,c,l]=a.args,p=Lr(n,i,{allowRestriction:!1,allowClosedBlockReferences:!1}),f=Lr(n,s,{allowRestriction:!1,allowClosedBlockReferences:!1}),m=Lr(n,o,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en(p,u)!==1||en(f,c)!==1||en(m,l)!==1||en(f,u)!==0||en(m,u)!==0||en(p,c)!==0||en(m,c)!==0||en(p,l)!==0||en(f,l)!==0)return;let{xmin:g,ymin:d,zmin:y,xmax:h,ymax:b,zmax:x}=r,P=t(g,d,y),M=t(h,b,x),I=.5*(M[0]-P[0])/(h-g),E=.5*(M[1]-P[1])/(b-d),v=.5*(M[2]-P[2])/(x-y),O=(g*M[0]-h*P[0])/(M[0]-P[0]),A=(d*M[1]-b*P[1])/(M[1]-P[1]),N=(y*M[2]-x*P[2])/(M[2]-P[2]),L=-e(O,A,N),z=Math.sqrt(L/I),G=Math.sqrt(L/E),$=Math.sqrt(L/v);if(!(!isFinite(O)||!isFinite(A)||!isFinite(N)||!isFinite(z)||!isFinite(G)||!isFinite($)||z===0||G===0||$===0))return{center:[O,A,N],radii:[z,G,$]}}function $k(e,t,n,r,i,s,o){let a=e.metaData.evaluatedCDFMin,u=e.metaData.evaluatedCDFMax,c=Aa(e),l=dA(c,t),p=c&&c.discrete;if(a!==void 0&&u!==void 0&&!isNaN(a)&&!isNaN(u)&&o){let f=[];if(p){let m={viewState:r,graphInfo:i,compiled:n,bounds:[a,u],maxOverride:oA(c,t),showPoint:e.userData.shouldGraph},g=NN(m),d=g.cdfTopBranch,y=g.topBranches;if(y.forEach(function(h){!h||!l||(h.boundingBox=l)}),y.every(h=>h!==void 0)&&(f=y,d&&d.segments[0].length)){let h=[];d.segments[0].forEach(function(b){!isNaN(b[0])&&!isNaN(b[1])&&h.push([b[0],0,b[0],b[1]])}),f.push({graphMode:5,segments:h,boundingBox:l,poi:dr(),color:i.color})}}else{let g=AN({viewState:r,graphInfo:i,compiled:n,derivative:s,bounds:[a,u]}),d=g.cdfTopBranch,y=g.topBranches;if(y.forEach(function(h){!h||!l||(h.boundingBox=l)}),f=y,d&&d.segments.length){let h,b;for(let x=0;x<d.segments.length;x++){let P=d.segments[x];if(P.length>=4){h=P[0];break}}for(let x=d.segments.length-1;x>=0;x--){let P=d.segments[x];if(P.length>=4){b=P[P.length-2];break}}if(h!==void 0&&b!==void 0&&isFinite(h)&&isFinite(b)){let x=ih(d.segments,[[h,0,b,0]],d.graphMode);f.push({graphMode:7,segments:x,poi:dr(),color:i.color})}}}return f}else if(p){let f=rh({viewState:r,graphInfo:i,compiled:n,showPoint:e.userData.shouldGraph,maxOverride:oA(c,t)});return l&&(f.boundingBox=l),[f]}else return}function cA(e){return Yk(e)||Q0(e)||lA(e)}function Yk(e){return e===3}function j0(e,t){let n=t!=null?t:{};if(!Array.isArray(e))return()=>e;let r=Object.keys(n).length===0?e:e.filter((i,s)=>!n[s]);return i=>r[i]}function Xk(e){var s,o;let t=e.droppedIndices,n=j0((s=e.pointSize)!=null?s:1,t),r=j0(e.color,t),i=j0((o=e.pointOpacity)!=null?o:1,t);return e.segments[0].map(([a,u],c)=>({graphMode:114,position:[a,u,0],radius:.02*n(c),guid:fi(),color:r(c),fillOpacity:i(c)}))}function rA(e,t,n,r){return e.is3dPolicy()&&Q0(t.graphMode)?oh(t,n,r!=null?r:1):t}function Q0(e){switch(e){case 1:case 2:case 6:case 8:case 5:return!0;default:return!1}}function oh(e,t,n,r=0){var o;let i=pA(e,t,r),s=ah(i,t.viewport,n);return{graphMode:128,guid:fi(),points:s,resolved:e.resolved,color:e.color,thickness:(o=e.lineWidth)!=null?o:1}}function iA(e,t,n){return e.is3dPolicy()&&lA(t.graphMode)?Zk(t,n):t}function lA(e){switch(e){case 17:case 24:return!0;default:return!1}}function Zk(e,t){var r;let n=pA(e,t);return{graphMode:e.graphMode===17?119:e.graphMode===24?129:128,guid:fi(),points:Wk(n),color:e.color,thickness:(r=e.lineWidth)!=null?r:1}}function Wk(e){let t=[];for(let[n,r,i]of e)t.push(n,r,i);return t}function pA(e,t,n=0){function r(s,o){if(e.graphMode===1)return[o,s];if(e.graphMode===6){let a=t.degreeMode?s*Math.PI/180:s;return[o*Math.cos(a),o*Math.sin(a)]}else return[s,o]}let i=[];for(let s=0;s<e.segments.length;s++){let o=e.segments[s];for(let a=0;a<o.length/2;a++){let[u,c]=r(o[2*a],o[2*a+1]);i.push([u,c,n])}s<e.segments.length-1&&i.push([NaN,NaN,0])}return i}function ah(e,t,n){if(t.zmin===void 0||t.zmax===void 0)return[];let{xmin:r,xmax:i,ymin:s,ymax:o,zmin:a,zmax:u}=t,c=i-r,l=o-s,p=u-a,f=n/200,m=[],g=1e-4;for(let h=0;h<e.length;h++){let b=e[h];if(isFinite(b[0])&&isFinite(b[1])&&isFinite(b[2])){let x=m[m.length-1];x!==void 0&&Math.abs(b[0]-x[0])<g*c&&Math.abs(b[1]-x[1])<g*l&&Math.abs(b[2]-x[2])<g*p||m.push(b)}else m.push(void 0)}let d=[],y=m.length;for(let h=0;h<y;h++){let b=m[h];if(!b){d.push(NaN,NaN,NaN);continue}let[x,P,M]=b,I=m[h-1],E=m[h+1];if(I&&E){let[v,O,A]=I,[N,L,z]=E,G=(x-v)/c,$=(N-x)/c,w=(P-O)/l,Y=(L-P)/l,de=(M-A)/p,re=(z-M)/p,ie=po(G,w,de),Z=po($,Y,re);if(($*G+Y*w+re*de)/(ie*Z)<.7&&ie>f&&Z>f){let Ne=.5*(f/ie),Te=.5*(f/Z),Me=Ks(v,x,1-Ne),ve=Ks(O,P,1-Ne),Q=Ks(A,M,1-Ne),U=Ks(x,N,Te),xe=Ks(P,L,Te),le=Ks(M,z,Te);d.push(Me,ve,Q),d.push(Ks(Me,x,.5),Ks(ve,P,.5),Ks(Q,M,.5)),d.push(x,P,M),d.push(Ks(x,U,.5),Ks(P,xe,.5),Ks(M,le,.5)),d.push(U,xe,le)}else d.push(x,P,M)}else d.push(x,P,M)}return d}function Ks(e,t,n){return(1-n)*e+n*t}function jk(e){return e.startsWith(\"shader:\")}function hh(e,t,n){return{resolved:!0,graphMode:t,segments:n,operator:e.operator,poi:dr(),color:e.color,style:\"DASHED\",lineWidth:1,lineOpacity:.5,isIntersectionExtension:!0}}function sA(e,t){var r,i;if(!t)return[];let n=[];for(let s of e)if(s.graphMode===17){let o=t[(r=s.listIndex)!=null?r:0];if(!o)continue;let a=0,u,c=1,l,[p,f,m,g]=s.segments[0];for(let d=0;d<o.length;d++){let[y,h]=o[d],b=Rs(y,h,0,p,f,0,m,g,0);b<a&&(a=b,u=d),s.graphMode===17&&b>c&&(c=b,l=d)}u!==void 0&&n.push(hh(s,17,[[p,f,o[u][0],o[u][1]]])),l!==void 0&&n.push(hh(s,17,[[m,g,o[l][0],o[l][1]]]))}else if(s.graphMode===21){let o=t[(i=s.listIndex)!=null?i:0];if(!o)continue;let[a,u,c,l,p]=s.segments[0],f=p-l+(p<l?1:-1)*2*Math.PI,m=[];for(let g of o){let[d,y]=g,h=Math.atan2(y-u,d-a),b=GM(h,l,f);0<b&&b<1&&m.push(b)}if(m.length){m.push(0,1),m.sort();let g=0,d=0;for(let b=0;b<m.length-1;b++){let x=m[b+1]-m[b];(g===void 0||x>g)&&(g=x,d=b)}let y=m[d],h=m[d+1];y>0&&n.push(hh(s,21,[[a,u,c,l,l+y*f]])),h<1&&n.push(hh(s,21,[[a,u,c,p,p-(1-h)*f]]))}}return n}function Jk(){throw new Error(\"Programming error: this function is not expected to be called\")}function fA(e,t,n,r){let i=[];for(let s=0;s<t.otherVariableSolutionData.length;s++){let o=t.otherVariableSolutionData[s];if(!o)continue;let{coefficients:a,restriction:u}=o,c=a.argNames[0];if(c!==\"x\"&&c!==\"y\")continue;let l=a.getCompiledFunction().fn,p,f;c===\"y\"?(p=1,f=2):(p=2,f=1);let m=void 0,{listIndex:g,style:d,lineWidth:y,lineOpacity:h,color:b}=_u(e,s,m),x=Ip(n,{graphMode:p,domainBound:Xn(),lineWidth:y,operator:\"=\"},Jk);if(!x)continue;let P=MN(l,x);for(let M of P){let I=new pn(u.substituteConstantArguments({[c]:M})),E=e.getGraphInfo(r,I);E={...E,graphMode:f,lineWidth:y};let O=e._graph(r,I,n,E,void 0,t.branchMultiplier===2?\"solvedEquation\":void 0);if(mo(O))for(let A of O)i.push({...A,listIndex:g,style:d,lineWidth:y,lineOpacity:h,color:b})}}return i.length>0?i:!1}D.Base.prototype.tryGraph=function(e,t,n,r){var i,s;try{let o=this.graph(e,t,n,r);if(Array.isArray(o))for(let a of o)\"compiled\"in a&&((i=a.compiled)!=null&&i.executionMetadata.recursionTerminationStatus)&&(a.recursionTerminationStatus=(s=a.compiled)==null?void 0:s.executionMetadata.recursionTerminationStatus);return o}catch(o){let a=o instanceof D.Error?o.getError():J(o).getError();return[IN(a)]}};D.Base.prototype.graph=function(e,t,n,r){let i=this.getGraphInfo(e,t);return this._graph(e,t,n,i,r)};D.BaseComparator.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t),i=r.graphMode,s=\"baseComparator\",o=this.userData.lines===void 0?!0:this.userData.lines;if(i===8||i===112||i===113||i===127||i===210)return this._graph(e,t,n,r);if(i===10||!(t instanceof D.SolvedEquation))return!1;let a=this.getOperator(),u=[],c=[],l=!0;t._expression.eachElement(function(y){u.push(y.getCompiledFunction());try{c.push(y.getCompiledDerivative())}catch(h){l=!1}}),l||(c=void 0);let p=[],f=[-1,0,0,1],m=Uc(this.metaData,[\"computedLineWidth\",\"computedLineOpacity\",\"computedFillOpacity\",\"colorLatexValue\"],s),g=Math.min(u.length,m);for(let y=0;y<g;y++){let h=this.getGraphInfo(e,t._expression.args[y]);h.graphMode=i;let{listIndex:b,style:x,color:P,lineWidth:M,lineOpacity:I,fillOpacity:E}=_u(this,y,s);h.listIndex=b,h.style=x,h.color=P,r.graphMode===6&&(h.domain={type:\"1d\",min:this.metaData.evaluatedDomainMin,max:this.metaData.evaluatedDomainMax,isExplicit:this.metaData.isExplicitDomain});let v=_a({viewState:n,graphInfo:h,compiled:u[y],derivative:c?c[y]:void 0});v.lineWidth=M,v.lineOpacity=I,v.fillOpacity=E,v.operator=Qu(Rr[a].inclusive,f[y%4]),o||(v.lineWidth=0),p.push(v)}for(let y=0;y<g;y+=4){let h=ih(p[y+1].segments,p[y+2].segments,i);p.push({graphMode:7,listIndex:p[y].listIndex,segments:h,poi:dr(),fillOpacity:p[y].fillOpacity,color:p[y].color})}let d=fA(this,t,n,e);if(d){for(let y of d)y.operator=Qu(Rr[a].inclusive,0);Array.prototype.push.apply(p,d)}return p};D.DoubleInequality.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t);if(r.graphMode===10)return!1;let i=[],s=Qu(Rr[this._operators[0]].inclusive,0),o=Qu(Rr[this._operators[1]].inclusive,0),a=this.userData,u=this.metaData,c=a.lines===void 0?!0:a.lines,l=[\"colorLatexValue\",\"computedFillOpacity\"];c&&l.push(\"computedLineWidth\",\"computedLineOpacity\");let p=Uc(u,l),f=t._expressions;return Xr(f),bh.eachArgs(f,(m,g)=>{let d=g;if(d>=p)return;m[0].userData=m[1].userData=a,m[0].metaData=m[1].metaData=u;let y=void 0,{color:h,lineWidth:b,lineOpacity:x,fillOpacity:P}=_u(this,d,y),M=this._graph(e,m[0],n,r)[0];M.listIndex=d,M.operator=s,M.color=h,M.lineWidth=b,M.lineOpacity=x,i.push(M);let I=this._graph(e,m[1],n,r)[0];I.listIndex=d,I.operator=o,I.color=h,I.lineWidth=b,I.lineOpacity=x,i.push(I);let E=M.segments,v=I.segments;Xr(E),Xr(v);let O=ih(E,v,M.graphMode);c||(M.lineWidth=0,I.lineWidth=0),i.push({graphMode:7,listIndex:M.listIndex,segments:O,lineOpacity:x,fillOpacity:P,poi:dr(),color:h})}),i};D.Regression.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t);return this._graph(e,t.model,n,r)};function K0(e,t){let n=1/0,r=-1/0,i=1/0,s=-1/0;for(let a of t)for(var o=0;o<a.length;o+=2){let u=a[o],c=a[o+1];u<n&&(n=u),u>r&&(r=u),c<i&&(i=c),c>s&&(s=c)}if(isFinite(n)&&isFinite(i))return{type:e,xmin:n,ymin:i,xmax:r,ymax:s}}function dA(e,t){if(!e||!(t instanceof pn))return;let n=t._chunk,r=n.getInstruction(n.getReturnIndex());if(r.type!==37)return;let i=e.discrete?\"discreteDistribution\":\"continuousDistribution\";if(e.symbol===\"binomialdist\"&&r.symbol===\"binompdf\"){let s=ln(n,r.args[1]),o=ln(n,r.args[2]),a=wy(o*s,s,o);return{type:i,xmin:0,xmax:s,ymin:0,ymax:a}}if(e.symbol===\"poissondist\"&&r.symbol===\"poissonpdf\"){let s=ln(n,r.args[1]),o=Math.max(Yl(Math.floor(s),s),Yl(Math.ceil(s),s));return{type:i,xmin:0,xmax:2.5*s,ymin:0,ymax:o}}if(e.symbol===\"normaldist\"&&r.symbol===\"normalpdf\"){let s=ln(n,r.args[1]),o=ln(n,r.args[2]),a=iI(s,s,o);return{type:i,xmin:s-2*Math.abs(o),xmax:s+2*Math.abs(o),ymin:0,ymax:a}}if(e.symbol===\"uniformdist\"&&r.symbol===\"uniformpdf\"){let s=ln(n,r.args[1]),o=ln(n,r.args[2]),a=(s+o)/2,u=o-s,c=aI(a,s,o);return{type:i,xmin:s-u/3,xmax:o+u/3,ymin:0,ymax:c}}if(e.symbol===\"tdist\"&&r.symbol===\"tpdf\"){let s=ln(n,r.args[1]),o=Ly(0,s);return{type:i,xmin:-3,xmax:3,ymin:0,ymax:o}}}function oA(e,t){if(e===void 0||e.symbol!==\"binomialdist\"||!(t instanceof pn))return;let n=t._chunk,r=n.getInstruction(n.getReturnIndex());if(r.type===37&&r.symbol===\"binompdf\")return ln(n,r.args[1])}function mA(e,t,n){let r={};n-=.5*t;for(var i=e.length-1;i>=0;i--){let s=e[i],o=Math.floor((s-n)/t);r[o]?r[o].data.push(s):r[o]={id:o,data:[s],min:o*t+n,max:o*t+n+t,center:o*t+n+t/2}}return r}D.Histogram.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t),i=t.args[0].asValue(),s=t.args[1].asValue(),o=this.userData.vizProps&&this.userData.vizProps.binAlignment===\"left\"?s/2:0;Xr(i);let a=mA(i,s,o),u=1;this.userData.vizProps&&this.userData.vizProps.histogramMode===\"density\"?u=1/(i.length*s):this.userData.vizProps&&this.userData.vizProps.histogramMode===\"relative\"&&(u=1/i.length);let c=[],l=[];for(let f in a){let m=a[f],g=m.data.length;l.push([m.min,0*u,m.min,g*u,m.max,g*u,m.max,0*u]);let d=0;a[m.id+1]&&(d=a[m.id+1].data.length);let y=[m.min,0*u,m.min,g*u,m.max,g*u];d<g&&y.push(m.max,d*u),c.push(y)}let p=K0(\"histogram\",l);return p&&s&&(p.binWidth=s),[{segments:l,graphMode:7,boundingBox:p,poi:dr(),color:r.color,fillOpacity:.4},{segments:c,graphMode:2,poi:{zeros:{x:[],y:[]},extrema:{x:[],y:[]},intercept:{x:[],y:[]}},color:r.color}]};D.DotPlot.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t),i=t.args[1].asValue(),s=this.userData.vizProps&&this.userData.vizProps.binAlignment===\"left\"?i/2:0,o=t.args[0].asValue();Xr(o);let a=mA(o,i,s),u=!1,c,l=[];for(let h in a){let b=a[h];for(var p=b.data.length-1;p>=0;p--)b.center!==b.data[p]&&(u=!0)}if(this.userData.vizProps&&this.userData.vizProps.dotplotXMode===\"exact\")for(let h in a){c=a[h].data,c.reverse();for(let x=0;x<c.length;x++)l.push([c[x],x+1])}else for(let h in a){let b=a[h];c=b.data;for(let x=0;x<c.length;x++)l.push([b.center,x+1])}let f=K0(\"dotplot\",l);f&&i&&(f.ymin=0,f.xmin-=.5*i,f.xmax+=.5*i,f.binWidth=i);let{computedPointOpacity:m,computedPointSize:g}=this.metaData,d=wa(m,0),y=this.userData.pointSize?wa(g,0):14;return[{segments:[l],graphMode:3,boundingBox:f,poi:Us(l),color:r.color,style:this.userData.pointStyle,pointSize:y,pointOpacity:d,showPoint:!0,needsDotplotXMode:u}]};D.BoxPlot.prototype.graph=function(e,t,n){let r=this.getGraphInfo(e,t),i=this.metaData.evaluatedAxisOffset,s=this.metaData.evaluatedBreadth,o=t.args[0].asValue();if(Xr(o),isNaN(s)||isNaN(i))return!1;let a=Math.min.apply(null,o),u=Math.max.apply(null,o),c=Ic(o,1),l=Ic(o,2),p=Ic(o,3),f=i,m=f-s/2,g=f+s/2,d=s/10,y=[];if(this.userData.vizProps.showBoxplotOutliers){let P=p-c,M=c-1.5*P,I=p+1.5*P;a=1/0,u=-1/0,o.forEach(function(E){M<=E&&E<a&&(a=E),u<E&&E<=I&&(u=E),(E<M||E>I)&&y.push([E,f])})}let h=[[c,m,p,m,p,g,c,g,c,m],[l,m,l,g],[c,f,a,f],[p,f,u,f],[a,f-d,a,f+d],[u,f-d,u,f+d]];if(this.userData.vizProps&&this.userData.vizProps.alignedAxis===\"y\"){for(let P of h)for(var b=0;b<P.length;b+=2){let M=P[b];P[b]=P[b+1],P[b+1]=M}for(let P of y){let M=P[0];P[0]=P[1],P[1]=M}}let x=[{segments:h,graphMode:5,boundingBox:K0(\"boxplot\",h.concat(y)),poi:dr(),color:r.color}];return y.length&&x.push({segments:[y],graphMode:3,color:r.color,style:\"OPEN\",showPoint:!0,poi:Us(y)}),x};function Qk(e){return Array.prototype.concat.apply([],e)}D.Table.prototype.isValueDraggable=function(e,t,n){if(!e.columns[t].isIndependent)return!1;let i=this.columns[t].values,s=i&&i[n];return!!(s&&isFinite(s.asValue())&&s.getDependencies().length===0)};D.Table.prototype.graph=function(e,t,n){let r={};if(t.columns[0].isError)return r;let s=t.columns[0].values;for(let o=1;o<this.columns.length;o++){let a=t.columns[o];if(a.isError)continue;let u=this.columns[o].header.userData,c=this.columns[o].header.metaData;if(u.hidden)continue;let l=Uc(c,[\"colorLatexValue\",\"computedPointSize\",\"computedPointOpacity\"]),p=u.dragMode,f=p===\"X\"||p===\"XY\",m=p===\"Y\"||p===\"XY\",g=!!u.points,d=!!u.lines,y=[],h=[],b=[],x=[],P=[],M=[],I=1/0,E=-1/0,v=1/0,O=-1/0,A={};for(let L=0;L<s.length;L++){let z=s[L],G=a.values[L];if(!z||!G||!isFinite(z.asValue())||!isFinite(G.asValue())){A[L]=!0,d&&(M.length>1&&P.push(M),M=[]);continue}let $=z.asValue(),w=G.asValue();if(g){if(L>=l)continue;let Y=f&&this.isValueDraggable(t,0,L),de=m&&this.isValueDraggable(t,o,L);Y||de?(b.push([$,w]),x.push({index:L,dragX:Y,dragY:de})):h.push([$,w])}d&&M.push([$,w]),$<I&&(I=$),$>E&&(E=$),w<v&&(v=w),w>O&&(O=w)}let N={type:\"table\",xmin:I,xmax:E,ymin:v,ymax:O};b.length&&y.push({graphMode:4,segments:[b],color:c.colorLatexValue||u.color,tableId:u.tableId,poi:Us(b),movablePointInfo:x,boundingBox:N,pointOpacity:c.computedPointOpacity,pointSize:c.computedMovablePointSize}),h.length&&y.push({segments:[h],droppedIndices:A,graphMode:3,showPoint:!0,poi:Us(h),color:c.colorLatexValue||u.color,pointSize:c.computedPointSize,pointOpacity:c.computedPointOpacity,style:u.pointStyle,tableId:u.tableId,boundingBox:N}),(P.length||M.length)&&(P.push(M),y.push({segments:P.map(Qk),graphMode:5,poi:dr(),color:sa(u,c),style:u.lineStyle,lineWidth:Array.isArray(c.computedLineWidth)?c.computedLineWidth[0]:c.computedLineWidth,lineOpacity:Array.isArray(c.computedLineOpacity)?c.computedLineOpacity[0]:c.computedLineOpacity,tableId:u.tableId,boundingBox:N})),y.length&&(r[u.id]=y)}return r};function Kk(e,t,n){return e?t===0&&n===0?e[2].type!==\"none\"||e[3].type!==\"none\":t!==0&&n!==0?e[0].type!==\"none\"&&e[1].type!==\"none\":t!==0?e[0].type!==\"none\":n!==0?e[1].type!==\"none\":!1:!1}D.Image.prototype.graph=function(e,t,n){let r=[];if(t.center.valueType!==R||t.center.getDependencies().length!==0||!t.radianAngle.isConstant||!t.width.isConstant||!t.height.isConstant||!t.opacity.isConstant)return r;let i=[],s=[],o=t.width.asValue()/2,a=t.height.asValue()/2,u=t.radianAngle.asValue();for(var c=-1;c<=1;c++)for(var l=-1;l<=1;l++){let[p,f]=t.center.asValue(),m=[p+c*o*Math.cos(u)+l*a*Math.sin(u),f-c*o*Math.sin(u)+l*a*Math.cos(u)];Kk(t.moveStrategy,c,l)&&(i.push(m),s.push([c,l]))}return r.push({segments:[i],scaleFactors:[s],graphMode:4,color:sa(this.userData,this.metaData),style:this.userData.style,poi:Us(i),movablePointInfo:[],pointOpacity:1}),r};function aA(e){let t=[],n=[];for(let[r,i]of e)!isNaN(r)&&!isNaN(i)?t.push(r,i):(t.length>=4&&n.push(t),t=[]);return t.length>=4&&n.push(t),n}function uA(...e){return e.some(t=>isNaN(t))}function ez(e){return e.isError?e.getError():e.asValue()===void 0?\"\":+e.asValue()}function tz(e,t,n){let r=[];for(var i=0;i<t.columns.length;i++){let s=n.columns[i],o=s.isError?[]:s.values.map(ez),a={dependent:!s.isIndependent,discrete:!!s.isIndependent,values:o};s.isError&&(a.error=s.getError()),r.push(a)}return{column_data:r}}function nz(e,t,n){let r={variables:[],errorMap:{},dimensions:{}};if(e.areAllScalesLinear()||(r.errorMap.scale=!0),n.center.isError&&(r.errorMap.center=!0),n.radianAngle.isError&&(r.errorMap.angle=!0),n.width.isError&&(r.errorMap.width=!0),n.height.isError&&(r.errorMap.height=!0),n.opacity.isError&&(r.errorMap.opacity=!0),Object.keys(r.errorMap).length>0)return r.variables=t.getSliderVariables(e,n),r;r.dimensions.x=[],r.dimensions.y=[],r.dimensions.radianAngle=[],r.dimensions.width=[],r.dimensions.height=[],r.dimensions.opacity=[];let i=[n.center,n.radianAngle,n.width,n.height,n.opacity];return i.some(o=>o&&o.valueType&&W(o.valueType))&&(r.is_concrete_list=!0),D.List.eachArgs(i,function(o){let a=o[0].asValue(),u=+o[1].asValue(),c=Math.atan2(Math.sin(u),Math.cos(u));r.dimensions.x.push(+a[0]),r.dimensions.y.push(+a[1]),r.dimensions.radianAngle.push(c),r.dimensions.width.push(+o[2].asValue()),r.dimensions.height.push(+o[3].asValue()),r.dimensions.opacity.push(Math.max(0,Math.min(1,+o[4].asValue())))}),(e.graphingEnabled()?t.getGraphMode(e,n):10)!==10&&(r.is_graphable=!0),n.moveStrategy&&(r.move_strategy=n.moveStrategy),t.center&&(t.center.type===\"Identifier\"?(r.center_reference_id=t.center.referencedStatementId,r.center_reference_symbol=t.center._symbol):t.center.type===\"ParenSeq\"&&n.center.valueType===R&&(r.center_is_point_literal=!0)),r}function rz(e,t,n){let r=n.handler,i=n.minStep,s={},o={};for(let p of r.getDependencies())e.validActionVariable(p)||(s[p]=!0);for(let p of i.getDependencies())o[p]=!0;let a;if(xo(i))a={status:\"error\",error:i.getError()};else{let p=i.asValue();typeof p==\"number\"&&!isNaN(p)&&p>=0?a={status:\"valid\",value:p}:a={status:\"error\",error:eP().getError()}}let u=Object.keys(s);u.length>0&&(r=tn(u).setDependencies(r.getDependencies()));let c;r.isError&&!nM(e,r)?c={status:\"error\",error:r.getError()}:r.isEmptyAction?c={status:\"empty\"}:c={status:\"maybe-valid\"};let l={handler:c,minStep:a,variables:[]};return Fu(l,e,{...s,...o}),l}function iz(){return{operator:\"=\",variables:[]}}function yA(e,t,n,r){var c;if(Gs(n))return tz(e,n,r);if(rd(n))return nz(e,n,r);let i=iz();if(n instanceof D.Ticker)return e.graphingEnabled()?rz(e,n,r):(i.error=J(\"Ticker without graphing\").getError(),i);if(e.is3dProduct()){let l=e,p=n.getGraphMode(l,r);if((p===100||p===101||p===102||p===5)&&r.getDependencies().length===1){let f=r.getDependencies()[0];(f===\"u\"||f===\"v\"||f===\"t\")&&(i.internal_domain_dependency=f)}}if((c=n.parseOptions)!=null&&c.selection){let l=r.getCursorContext();if(l)i.cursor_context={...l,selection:n.parseOptions.selection};else if(xo(r)){let p=oz(e,t,n);p&&(i.cursor_context={...p,selection:n.parseOptions.selection})}}if(n instanceof cr&&r instanceof pn?i.recursion=r.getRecursiveFunctionMetadata():n instanceof cr&&r instanceof C&&r.recursionMetadata&&(i.recursion=r.recursionMetadata),n instanceof wi&&(i.recursion_base_case={symbol:n._symbol,argValue:n.specifiedArg.valid?n.specifiedArg.argValue:void 0}),r.isError&&!(n instanceof D.FunctionDefinition&&!r.blocksExport)&&!r.silent){i.error=r.getError(),i.variables=n.getSliderVariables(e,r),i.is_single_identifier=n instanceof D.Identifier,r.actionValue&&(i.action_value=WE(r.actionValue));let l=eM(e,t,n,r);return Object.keys(l).length>0&&(i.geometry=eM(e,t,n,r)),i}if(r.valueType===Ut&&r.getDependencies().length===0){let l=r.asValue();i.rgb_value=xc(l[0],l[1],l[2]).formatHex()}r.valueType===rt&&r.getDependencies().length===0&&(i.action_value=WE(r.asValue())),r.moveStrategy&&(i.move_strategy=r.moveStrategy,i.default_drag_mode=r.defaultDragMode),n.isInequality()&&(i.is_inequality=!0),i.operator=n.getOperator(),r instanceof D.SolvedEquation?r._expression.asValue()!==!0&&r._expression.asValue()!==!1&&(i.assignment=r._symbol):n instanceof D.Assignment&&(n._symbol.startsWith(\"_\")||(i.assignment=n._symbol)),n instanceof D.FunctionDefinition&&(i.function_definition=n._symbol);let s=e.graphingEnabled()?n.getGraphMode(e,r):10;if(e.graphingEnabled()&&e.is3dPolicy()&&!ea(s)&&!cA(s)&&(s=10),s!==10&&(i.is_graphable=!0,i.expression_type=n.getExpressionType(s,r.valueType),e.is3dPolicy()&&(i.expression_type===\"SINGLE_POINT\"?i.expression_type=\"POINT3D\":i.expression_type===\"POINT_LIST\"&&(i.expression_type=\"POINT3D_LIST\")),r.valueType&&ca(r.valueType)&&(i.map_type=r.valueType),r.isShadeBetween()&&(i.is_shade_between=!0),i.expression_type!==\"POINT3D\"&&i.expression_type!==\"POINT3D_LIST\")){let l=n.tableInfo(e,r);l&&(i.is_tableable=!0,i.table_info=l)}if(r.valueType!==void 0&&W(r.valueType)&&(i.is_concrete_list=!0,r.valueType===Zn&&r.getDependencies().length===0)){let l=r.asValue();l&&(i.rgb_value=l.map(p=>xc(p[0],p[1],p[2]).formatHex()))}if(i.variables=i.is_graphable?[]:n.getSliderVariables(e,r),i.is_single_identifier=n instanceof D.Identifier,r.isTypedConstant){let l=r.asTypedValue();i.typed_constant_value=l,(l.valueType===T||l.valueType===ge)&&(i.constant_value=l.value),sz(l.valueType)&&(i.geometry=eM(e,t,n,r))}let o=r.getEvaluationInfo();if(o&&i.operator===\"=\"&&!n.isConstant&&!n.isFunction&&!(n instanceof D.RecursiveFunctionBaseCase)&&r.valueType!==ge&&r.valueType!==Ln&&!(n instanceof D.Equation)&&!(n instanceof D.ComparatorChain)&&(i.is_evaluable=!0,i.zero_values=o),r instanceof D.OptimizedRegression){let l=r,p={};for(var a in l.parameters)l.parameters.hasOwnProperty(a)&&(p[ur(a)]=+l.parameters[a].asValue());i.is_regression=!0,i.regression={parameters:p,residualVariable:ur(l.residualVariable),residualSuggestionId:l.residualSuggestionId,shouldSuggestLogMode:l.shouldSuggestLogMode,isLinear:l.isLinear,statistics:l.statistics,parameterWarning:l.parameterWarning}}let u=Aa(n);return u&&u.discrete&&(i.is_discrete_distribution=!0),i}function sz(e){switch(e){case R:case Pt:case fe:case Bn:case Ie:case Tn:case Le:case Gn:case he:case kn:case pe:case Fn:case ce:case Vn:case Be:case Rn:case Ge:case gn:case Ae:case hn:case Ue:case mr:return!0;default:return!1}}function eM(e,t,n,r){let i={};r.valueType!==void 0&&(i.valueType=r.valueType),i.valueType&&oe(i.valueType,R)&&e.graphingEnabled()&&n.getGraphMode(e,r)===4&&(i.isMovablePoint=!0);let{identifier:s,listAccess:o,assignmentRhsReference:a,tree:u}=Wy(n);if(s&&(i.identifier=s),o&&(i.listAccess=o),a&&(i.assignmentRhsReference=a),u&&(i.call=u,r.valueType&&oe(r.valueType,Ue)&&n instanceof cr)){let l=n._expression;i.transformation_preview_info={type:u.symbol,args:l.args.slice(1).map(p=>p.tryGetConcreteTree(e,t).asTypedValue())}}let c=r.moveStrategy&&r.moveStrategy[0];return c&&\"initialValue\"in c&&c.initialValue!==void 0&&(i.gliderParameter=c.initialValue),i}function oz(e,t,n){let r=n.parseOptions;if(!(r!=null&&r.selection))return;let{start:i,end:s,input:o}=r.selection;if(o.trim()===\"\")return{type:\"empty\",allowedTypes:[Ht]};let a=\"\\\\cursor\",u=o.slice(0,i)+a+\" \"+o.slice(s),c={input:u,start:i,end:i+a.length},l=Vs(u,{...n.parseOptions,selection:c});return l.isError?l.getCursorContext():mp({policy:e,frame:t,selection:c},l).getCursorContext()}function Fu(e,t,n){let r=e.variables;if(r&&r.length){let i={};for(let s of r)i[s]=!0;for(let s in n)i[s]=!0;n=i}e.variables=t.sliderVariables(Object.keys(n))}function nM(e,t){if(t.blocksExport)return!1;let n=t.getDependencies();if(n.length===0)return!1;for(let r of n)if(!e.validActionVariable(r))return!1;return!0}var k=class{constructor(t,n,r,i){this.policy=t,this.rawTree=r,this.concreteTree=i,this.evaluationState=yA(t,n,r,i)}exportTo(t,n){this.rawTree.exportTo(t,this.concreteTree,n)}graph(t,n){return this.rawTree.tryGraph(this.policy,this.concreteTree,t,n)}getGraphMode(){return this.policy.graphingEnabled()?this.rawTree.getGraphMode(this.policy,this.concreteTree):10}getGraphInfo(){return this.rawTree.getGraphInfo(this.policy,this.concreteTree)}shouldIntersect(){if(!this.evaluationState.is_graphable||!this.rawTree.userData.shouldGraph||!rs.pointsOfInterest)return!1;var t=this.getGraphMode();return t===1||t===2}};var F=function(){};F.version=\"1.2.6\";F._myIndexOf=function(t){var n=this.length,r;for(r=0;r<n;++r)if(this[r]===t)return r;return-1};F.myIndexOf=Array.prototype.indexOf?Array.prototype.indexOf:F._myIndexOf;F.precision=4;F.largeArray=50;F.compile=function(){var e=Array.prototype.slice.call(arguments),t=e.pop();return t=\"return function (\"+e.join(\",\")+\") {\"+t+\"}\",new Function([\"numeric\"],t)(F)};F._dim=function(t){for(var n=[];typeof t==\"object\";)n.push(t.length),t=t[0];return n};F.dim=function(t){var n,r;return typeof t==\"object\"?(n=t[0],typeof n==\"object\"?(r=n[0],typeof r==\"object\"?F._dim(t):[t.length,n.length]):[t.length]):[]};F.mapreduce=function(t,n){return F.compile(\"x\",\"accum\",\"_s\",\"_k\",'if(typeof accum === \"undefined\") accum = '+n+`;\nif(typeof x === \"number\") { var xi = x; `+t+`; return accum; }\nif(typeof _s === \"undefined\") _s = numeric.dim(x);\nif(typeof _k === \"undefined\") _k = 0;\nvar _n = _s[_k];\nvar i,xi;\nif(_k < _s.length-1) {\n for(i=_n-1;i>=0;i--) {\n accum = arguments.callee(x[i],accum,_s,_k+1);\n } return accum;\n}\nfor(i=_n-1;i>=1;i-=2) { \n xi = x[i];\n `+t+`;\n xi = x[i-1];\n `+t+`;\n}\nif(i === 0) {\n xi = x[i];\n `+t+`\n}\nreturn accum;`)};F.mapreduce2=function(t,n){return F.compile(\"x\",`var n = x.length;\nvar i,xi;\n`+n+`\nfor(i=n-1;i!==-1;--i) { \n xi = x[i];\n `+t+`\n}\nreturn accum;`)};F.rep=function(t,n,r){typeof r==\"undefined\"&&(r=0);var i=t[r],s=Array(i),o;if(r===t.length-1){for(o=i-2;o>=0;o-=2)s[o+1]=n,s[o]=n;return o===-1&&(s[0]=n),s}for(o=i-1;o>=0;o--)s[o]=F.rep(t,n,r+1);return s};F.dotMMsmall=function(t,n){var r,i,s,o,a,u,c,l,p,f,m,g,d,y;for(o=t.length,a=n.length,u=n[0].length,c=Array(o),r=o-1;r>=0;r--){for(l=Array(u),p=t[r],s=u-1;s>=0;s--){for(f=p[a-1]*n[a-1][s],i=a-2;i>=1;i-=2)m=i-1,f+=p[i]*n[i][s]+p[m]*n[m][s];i===0&&(f+=p[0]*n[0][s]),l[s]=f}c[r]=l}return c};F._getCol=function(t,n,r){var i=t.length,s;for(s=i-1;s>0;--s)r[s]=t[s][n],--s,r[s]=t[s][n];s===0&&(r[0]=t[0][n])};F.dotMMbig=function(t,n){var r=F._getCol,i=n.length,s=Array(i),o=t.length,a=n[0].length,u=new Array(o),c,l=F.dotVV,p,f,m,g;for(--i,--o,p=o;p!==-1;--p)u[p]=Array(a);for(--a,p=a;p!==-1;--p)for(r(n,p,s),f=o;f!==-1;--f)g=0,c=t[f],u[f][p]=l(c,s);return u};F.dotMV=function(t,n){var r=t.length,i=n.length,s,o=Array(r),a=F.dotVV;for(s=r-1;s>=0;s--)o[s]=a(t[s],n);return o};F.dotVM=function(t,n){var r,i,s,o,a,u,c,l,p,f,m,g,d,y,h,b,x,P,M;for(o=t.length,a=n[0].length,c=Array(a),s=a-1;s>=0;s--){for(f=t[o-1]*n[o-1][s],i=o-2;i>=1;i-=2)m=i-1,f+=t[i]*n[i][s]+t[m]*n[m][s];i===0&&(f+=t[0]*n[0][s]),c[s]=f}return c};F.dotVV=function(t,n){var r,i=t.length,s,o=t[i-1]*n[i-1];for(r=i-2;r>=1;r-=2)s=r-1,o+=t[r]*n[r]+t[s]*n[s];return r===0&&(o+=t[0]*n[0]),o};F.dot=function(t,n){var r=F.dim;switch(r(t).length*1e3+r(n).length){case 2002:return n.length<10?F.dotMMsmall(t,n):F.dotMMbig(t,n);case 2001:return F.dotMV(t,n);case 1002:return F.dotVM(t,n);case 1001:return F.dotVV(t,n);case 1e3:return F.mulVS(t,n);case 1:return F.mulSV(t,n);case 0:return t*n;default:throw new Error(\"numeric.dot only works on vectors and matrices\")}};F.diag=function(t){var n,r,i,s=t.length,o=Array(s),a;for(n=s-1;n>=0;n--){for(a=Array(s),r=n+2,i=s-1;i>=r;i-=2)a[i]=0,a[i-1]=0;for(i>n&&(a[i]=0),a[n]=t[n],i=n-1;i>=1;i-=2)a[i]=0,a[i-1]=0;i===0&&(a[0]=0),o[n]=a}return o};F.getDiag=function(e){var t=Math.min(e.length,e[0].length),n,r=Array(t);for(n=t-1;n>=1;--n)r[n]=e[n][n],--n,r[n]=e[n][n];return n===0&&(r[0]=e[0][0]),r};F.identity=function(t){return F.diag(F.rep([t],1))};F.pointwise=function(t,n,r){typeof r==\"undefined\"&&(r=\"\");var i=[],s,o=/\\[i\\]$/,a,u=\"\",c=!1;for(s=0;s<t.length;s++)o.test(t[s])?(a=t[s].substring(0,t[s].length-3),u=a):a=t[s],a===\"ret\"&&(c=!0),i.push(a);return i[t.length]=\"_s\",i[t.length+1]=\"_k\",i[t.length+2]='if(typeof _s === \"undefined\") _s = numeric.dim('+u+`);\nif(typeof _k === \"undefined\") _k = 0;\nvar _n = _s[_k];\nvar i`+(c?\"\":\", ret = Array(_n)\")+`;\nif(_k < _s.length-1) {\n for(i=_n-1;i>=0;i--) ret[i] = arguments.callee(`+t.join(\",\")+`,_s,_k+1);\n return ret;\n}\n`+r+`\nfor(i=_n-1;i!==-1;--i) {\n `+n+`\n}\nreturn ret;`,F.compile.apply(null,i)};F.pointwise2=function(t,n,r){typeof r==\"undefined\"&&(r=\"\");var i=[],s,o=/\\[i\\]$/,a,u=\"\",c=!1;for(s=0;s<t.length;s++)o.test(t[s])?(a=t[s].substring(0,t[s].length-3),u=a):a=t[s],a===\"ret\"&&(c=!0),i.push(a);return i[t.length]=\"var _n = \"+u+`.length;\nvar i`+(c?\"\":\", ret = Array(_n)\")+`;\n`+r+`\nfor(i=_n-1;i!==-1;--i) {\n`+n+`\n}\nreturn ret;`,F.compile.apply(null,i)};F._biforeach=function e(t,n,r,i,s){if(i===r.length-1){s(t,n);return}var o,a=r[i];for(o=a-1;o>=0;o--)e(typeof t==\"object\"?t[o]:t,typeof n==\"object\"?n[o]:n,r,i+1,s)};F._biforeach2=function e(t,n,r,i,s){if(i===r.length-1)return s(t,n);var o,a=r[i],u=Array(a);for(o=a-1;o>=0;--o)u[o]=e(typeof t==\"object\"?t[o]:t,typeof n==\"object\"?n[o]:n,r,i+1,s);return u};F._foreach=function e(t,n,r,i){if(r===n.length-1){i(t);return}var s,o=n[r];for(s=o-1;s>=0;s--)e(t[s],n,r+1,i)};F._foreach2=function e(t,n,r,i){if(r===n.length-1)return i(t);var s,o=n[r],a=Array(o);for(s=o-1;s>=0;s--)a[s]=e(t[s],n,r+1,i);return a};F.ops2={add:\"+\",sub:\"-\",mul:\"*\",div:\"/\",mod:\"%\",and:\"&&\",or:\"||\",eq:\"===\",neq:\"!==\",lt:\"<\",gt:\">\",leq:\"<=\",geq:\">=\",band:\"&\",bor:\"|\",bxor:\"^\",lshift:\"<<\",rshift:\">>\",rrshift:\">>>\"};F.opseq={addeq:\"+=\",subeq:\"-=\",muleq:\"*=\",diveq:\"/=\",modeq:\"%=\",lshifteq:\"<<=\",rshifteq:\">>=\",rrshifteq:\">>>=\",bandeq:\"&=\",boreq:\"|=\",bxoreq:\"^=\"};F.mathfuns=[\"abs\",\"acos\",\"asin\",\"atan\",\"ceil\",\"cos\",\"exp\",\"floor\",\"log\",\"round\",\"sin\",\"sqrt\",\"tan\",\"isNaN\",\"isFinite\"];F.mathfuns2=[\"atan2\",\"pow\",\"max\",\"min\"];F.ops1={neg:\"-\",not:\"!\",bnot:\"~\",clone:\"\"};F.mapreducers={any:[\"if(xi) return true;\",\"var accum = false;\"],all:[\"if(!xi) return false;\",\"var accum = true;\"],sum:[\"accum += xi;\",\"var accum = 0;\"],prod:[\"accum *= xi;\",\"var accum = 1;\"],norm2Squared:[\"accum += xi*xi;\",\"var accum = 0;\"],norminf:[\"accum = max(accum,abs(xi));\",\"var accum = 0, max = Math.max, abs = Math.abs;\"],norm1:[\"accum += abs(xi);\",\"var accum = 0, abs = Math.abs;\"],sup:[\"accum = max(accum,xi);\",\"var accum = -Infinity, max = Math.max;\"],inf:[\"accum = min(accum,xi);\",\"var accum = Infinity, min = Math.min;\"]};(function(){var e,t;for(e=0;e<F.mathfuns2.length;++e)t=F.mathfuns2[e],F.ops2[t]=t;for(e in F.ops2)if(F.ops2.hasOwnProperty(e)){t=F.ops2[e];var n,r,i=\"\";F.myIndexOf.call(F.mathfuns2,e)!==-1?(i=\"var \"+t+\" = Math.\"+t+`;\n`,n=function(s,o,a){return s+\" = \"+t+\"(\"+o+\",\"+a+\")\"},r=function(s,o){return s+\" = \"+t+\"(\"+s+\",\"+o+\")\"}):(n=function(s,o,a){return s+\" = \"+o+\" \"+t+\" \"+a},F.opseq.hasOwnProperty(e+\"eq\")?r=function(s,o){return s+\" \"+t+\"= \"+o}:r=function(s,o){return s+\" = \"+s+\" \"+t+\" \"+o}),F[e+\"VV\"]=F.pointwise2([\"x[i]\",\"y[i]\"],n(\"ret[i]\",\"x[i]\",\"y[i]\"),i),F[e+\"SV\"]=F.pointwise2([\"x\",\"y[i]\"],n(\"ret[i]\",\"x\",\"y[i]\"),i),F[e+\"VS\"]=F.pointwise2([\"x[i]\",\"y\"],n(\"ret[i]\",\"x[i]\",\"y\"),i),F[e]=F.compile(`var n = arguments.length, i, x = arguments[0], y;\nvar VV = numeric.`+e+\"VV, VS = numeric.\"+e+\"VS, SV = numeric.\"+e+`SV;\nvar dim = numeric.dim;\nfor(i=1;i!==n;++i) { \n y = arguments[i];\n if(typeof x === \"object\") {\n if(typeof y === \"object\") x = numeric._biforeach2(x,y,dim(x),0,VV);\n else x = numeric._biforeach2(x,y,dim(x),0,VS);\n } else if(typeof y === \"object\") x = numeric._biforeach2(x,y,dim(y),0,SV);\n else `+r(\"x\",\"y\")+`\n}\nreturn x;\n`),F[t]=F[e],F[e+\"eqV\"]=F.pointwise2([\"ret[i]\",\"x[i]\"],r(\"ret[i]\",\"x[i]\"),i),F[e+\"eqS\"]=F.pointwise2([\"ret[i]\",\"x\"],r(\"ret[i]\",\"x\"),i),F[e+\"eq\"]=F.compile(`var n = arguments.length, i, x = arguments[0], y;\nvar V = numeric.`+e+\"eqV, S = numeric.\"+e+`eqS\nvar s = numeric.dim(x);\nfor(i=1;i!==n;++i) { \n y = arguments[i];\n if(typeof y === \"object\") numeric._biforeach(x,y,s,0,V);\n else numeric._biforeach(x,y,s,0,S);\n}\nreturn x;\n`)}for(e=0;e<F.mathfuns2.length;++e)t=F.mathfuns2[e],delete F.ops2[t];for(e=0;e<F.mathfuns.length;++e)t=F.mathfuns[e],F.ops1[t]=t;for(e in F.ops1)F.ops1.hasOwnProperty(e)&&(i=\"\",t=F.ops1[e],F.myIndexOf.call(F.mathfuns,e)!==-1&&Math.hasOwnProperty(t)&&(i=\"var \"+t+\" = Math.\"+t+`;\n`),F[e+\"eqV\"]=F.pointwise2([\"ret[i]\"],\"ret[i] = \"+t+\"(ret[i]);\",i),F[e+\"eq\"]=F.compile(\"x\",'if(typeof x !== \"object\") return '+t+`x\nvar i;\nvar V = numeric.`+e+`eqV;\nvar s = numeric.dim(x);\nnumeric._foreach(x,s,0,V);\nreturn x;\n`),F[e+\"V\"]=F.pointwise2([\"x[i]\"],\"ret[i] = \"+t+\"(x[i]);\",i),F[e]=F.compile(\"x\",'if(typeof x !== \"object\") return '+t+`(x)\nvar i;\nvar V = numeric.`+e+`V;\nvar s = numeric.dim(x);\nreturn numeric._foreach2(x,s,0,V);\n`));for(e=0;e<F.mathfuns.length;++e)t=F.mathfuns[e],delete F.ops1[t];for(e in F.mapreducers)F.mapreducers.hasOwnProperty(e)&&(t=F.mapreducers[e],F[e+\"V\"]=F.mapreduce2(t[0],t[1]),F[e]=F.compile(\"x\",\"s\",\"k\",t[1]+`if(typeof x !== \"object\") { xi = x;\n`+t[0]+`\n return accum;\n}if(typeof s === \"undefined\") s = numeric.dim(x);\nif(typeof k === \"undefined\") k = 0;\nif(k === s.length-1) return numeric.`+e+`V(x);\nvar xi;\nvar n = x.length, i;\nfor(i=n-1;i!==-1;--i) {\n xi = arguments.callee(x[i]);\n`+t[0]+`\n}\nreturn accum;\n`))})();F.inv=function(d){var n=F.dim(d),r=Math.abs,i=n[0],s=n[1],o=F.clone(d),a,u,c=F.identity(i),l,p,f,m,g,d;for(m=0;m<s;++m){var y=-1,h=-1;for(f=m;f!==i;++f)g=r(o[f][m]),g>h&&(y=f,h=g);for(u=o[y],o[y]=o[m],o[m]=u,p=c[y],c[y]=c[m],c[m]=p,d=u[m],g=m;g!==s;++g)u[g]/=d;for(g=s-1;g!==-1;--g)p[g]/=d;for(f=i-1;f!==-1;--f)if(f!==m){for(a=o[f],l=c[f],d=a[m],g=m+1;g!==s;++g)a[g]-=u[g]*d;for(g=s-1;g>0;--g)l[g]-=p[g]*d,--g,l[g]-=p[g]*d;g===0&&(l[0]-=p[0]*d)}}return c};F.det=function(t){var n=F.dim(t);if(n.length!==2||n[0]!==n[1])throw new Error(\"numeric: det() only works on square matrices\");var r=n[0],i=1,s,o,a,u=F.clone(t),c,l,p,f,m,g,d;for(o=0;o<r-1;o++){for(a=o,s=o+1;s<r;s++)Math.abs(u[s][o])>Math.abs(u[a][o])&&(a=s);for(a!==o&&(f=u[a],u[a]=u[o],u[o]=f,i*=-1),c=u[o],s=o+1;s<r;s++){for(l=u[s],p=l[o]/c[o],a=o+1;a<r-1;a+=2)m=a+1,l[a]-=c[a]*p,l[m]-=c[m]*p;a!==r&&(l[a]-=c[a]*p)}if(c[o]===0)return 0;i*=c[o]}return i*u[o][o]};F.transpose=function(t){var n,r,i=t.length,s=t[0].length,o=Array(s),a,u,c;for(r=0;r<s;r++)o[r]=Array(i);for(n=i-1;n>=1;n-=2){for(u=t[n],a=t[n-1],r=s-1;r>=1;--r)c=o[r],c[n]=u[r],c[n-1]=a[r],--r,c=o[r],c[n]=u[r],c[n-1]=a[r];r===0&&(c=o[0],c[n]=u[0],c[n-1]=a[0])}if(n===0){for(a=t[0],r=s-1;r>=1;--r)o[r][0]=a[r],--r,o[r][0]=a[r];r===0&&(o[0][0]=a[0])}return o};F.negtranspose=function(t){var n,r,i=t.length,s=t[0].length,o=Array(s),a,u,c;for(r=0;r<s;r++)o[r]=Array(i);for(n=i-1;n>=1;n-=2){for(u=t[n],a=t[n-1],r=s-1;r>=1;--r)c=o[r],c[n]=-u[r],c[n-1]=-a[r],--r,c=o[r],c[n]=-u[r],c[n-1]=-a[r];r===0&&(c=o[0],c[n]=-u[0],c[n-1]=-a[0])}if(n===0){for(a=t[0],r=s-1;r>=1;--r)o[r][0]=-a[r],--r,o[r][0]=-a[r];r===0&&(o[0][0]=-a[0])}return o};F.norm2=function(t){return Math.sqrt(F.norm2Squared(t))};F.linspace=function(t,n,r){if(typeof r==\"undefined\"&&(r=Math.max(Math.round(n-t)+1,1)),r<2)return r===1?[t]:[];var i,s=Array(r);for(r--,i=r;i>=0;i--)s[i]=(i*n+(r-i)*t)/r;return s};F.getBlock=function(t,n,r){var i=F.dim(t);function s(o,a){var u,c=n[a],l=r[a]-c,p=Array(l);if(a===i.length-1){for(u=l;u>=0;u--)p[u]=o[u+c];return p}for(u=l;u>=0;u--)p[u]=s(o[u+c],a+1);return p}return s(t,0)};F.setBlock=function(t,n,r,i){var s=F.dim(t);function o(a,u,c){var l,p=n[c],f=r[c]-p;if(c===s.length-1)for(l=f;l>=0;l--)a[l+p]=u[l];for(l=f;l>=0;l--)o(a[l+p],u[l],c+1)}return o(t,i,0),t};F.getRange=function(t,n,r){var i=n.length,s=r.length,o,a,u=Array(i),c,l;for(o=i-1;o!==-1;--o)for(u[o]=Array(s),c=u[o],l=t[n[o]],a=s-1;a!==-1;--a)c[a]=l[r[a]];return u};F.blockMatrix=function(t){var n=F.dim(t);if(n.length<4)return F.blockMatrix([t]);var r=n[0],i=n[1],s,o,a,u,c;for(s=0,o=0,a=0;a<r;++a)s+=t[a][0].length;for(u=0;u<i;++u)o+=t[0][u][0].length;var l=Array(s);for(a=0;a<s;++a)l[a]=Array(o);var p=0,f,m,g,d,y;for(a=0;a<r;++a){for(f=o,u=i-1;u!==-1;--u)for(c=t[a][u],f-=c[0].length,g=c.length-1;g!==-1;--g)for(y=c[g],m=l[p+g],d=y.length-1;d!==-1;--d)m[f+d]=y[d];p+=t[a][0].length}return l};F.tensor=function(t,n){if(typeof t==\"number\"||typeof n==\"number\")return F.mul(t,n);var r=F.dim(t),i=F.dim(n);if(r.length!==1||i.length!==1)throw new Error(\"numeric: tensor product is only defined for vectors\");var s=r[0],o=i[0],a=Array(s),u,c,l,p;for(c=s-1;c>=0;c--){for(u=Array(o),p=t[c],l=o-1;l>=3;--l)u[l]=p*n[l],--l,u[l]=p*n[l],--l,u[l]=p*n[l],--l,u[l]=p*n[l];for(;l>=0;)u[l]=p*n[l],--l;a[c]=u}return a};F.epsilon=2220446049250313e-31;F.LU=function(e,t){t=t||!1;var n=Math.abs,r,i,s,o,a,u,c,l,p,f=e.length,m=f-1,g=new Array(f);for(t||(e=F.clone(e)),s=0;s<f;++s){for(c=s,u=e[s],p=n(u[s]),i=s+1;i<f;++i)o=n(e[i][s]),p<o&&(p=o,c=i);for(g[s]=c,c!=s&&(e[s]=e[c],e[c]=u,u=e[s]),a=u[s],r=s+1;r<f;++r)e[r][s]/=a;for(r=s+1;r<f;++r){for(l=e[r],i=s+1;i<m;++i)l[i]-=l[s]*u[i],++i,l[i]-=l[s]*u[i];i===m&&(l[i]-=l[s]*u[i])}}return{LU:e,P:g}};F.LUsolve=function(t,n){var r,i,s=t.LU,o=s.length,a=F.clone(n),u=t.P,c,l,p,f;for(r=o-1;r!==-1;--r)a[r]=n[r];for(r=0;r<o;++r)for(c=u[r],u[r]!==r&&(f=a[r],a[r]=a[c],a[c]=f),l=s[r],i=0;i<r;++i)a[r]-=a[i]*l[i];for(r=o-1;r>=0;--r){for(l=s[r],i=r+1;i<o;++i)a[r]-=a[i]*l[i];a[r]/=l[r]}return a};F.solve=function(t,n,r){return F.LUsolve(F.LU(t,r),n)};var On=F;function az(e,t){let n=e.length,r=t.length,i=0,s=0;for(let a=r-n;a<r;a++)i+=e[a+n-r]*t[a],s+=e[a+n-r]*e[a+n-r];let o=i/s;for(let a=r-n;a<r;a++)t[a]=2*o*e[a+n-r]-t[a]}function uz(e,t,n){let r=e.length,i=t.length,s=0,o=0;for(let u=i-r;u<i;u++)s+=e[u+r-i]*t[u][n],o+=e[u+r-i]*e[u+r-i];let a=s/o;for(let u=i-r;u<i;u++)t[u][n]=2*a*e[u+r-i]-t[u][n]}function cz(e,t,n,r){let i=Array(e.length-t);if(i.length===1)return i[0]=1,i;if(r===0){i[0]=1;for(let o=1;o<i.length;o++)i[o]=0;return i}let s=e[t][n]<0?-1:1;i[0]=e[t][n]+s*Math.sqrt(r);for(let o=t+1;o<e.length;o++)i[o-t]=e[o][n];return i}function lz(e,t,n){let r=0;for(;t<e.length;t++)r+=e[t][n]*e[t][n];return r}function xh(e,t){if(!t||!t.mutateInput){let s=e;e=Array(e.length);for(let o=0;o<s.length;o++)e[o]=s[o].slice()}let n=Math.min(e.length,e[0].length),r=Array(n),i=[];for(let s=0;s<n;s++){let o=-1/0,a=s;for(let c=s;c<e[s].length;c++){let l=lz(e,s,c);l>o&&(o=l,a=c)}if(r[s]=a,a!==s)for(let c=0;c<e.length;c++){let l=e[c][a];e[c][a]=e[c][s],e[c][s]=l}let u=cz(e,s,s,o);for(let c=s;c<e[s].length;c++)uz(u,e,c);i.push(u)}return{reflectors:i,r:e,p:r}}function gA(e,t,n){let{reflectors:r,r:i,p:s}=e,o=t.slice();for(let c=0;c<r.length;c++)az(r[c],o);for(let c=r.length;c<i[0].length;c++)o[c]=0;o.length=i[0].length;let a=Math.pow(2,-52),u=n.regularize?a*Math.abs(i[0][0])*Math.max(i.length,i[0].length):0;for(let c=r.length-1;c>=0;c--){let l=i[c];if(Math.abs(l[c])<=u)o[c]=0;else{for(let p=c+1;p<r.length;p++)o[c]-=o[p]*l[p];o[c]/=l[c]}}for(let c=s.length-1;c>=0;c--)if(s[c]!==c){let l=o[c];o[c]=o[s[c]],o[s[c]]=l}return o}function pz(e,t,n){let r=Array(e.r[0].length);for(let s=0;s<r.length;s++)r[s]=Array(t[0].length);let i=Array(t.length);for(let s=0;s<t[0].length;s++){for(let a=0;a<t.length;a++)i[a]=t[a][s];let o=gA(e,i,n);for(let a=0;a<o.length;a++)r[a][s]=o[a]}return r}function qc(e,t,n){return Array.isArray(t[0])?pz(e,t,n):gA(e,t,n)}function fz(e){let t=e.r,n=Math.min(t.length,t[0].length),r=t[0][0],i=t[n-1][n-1];return r===0?1/0:Math.abs(r/i)}function hA(e){let t=Math.pow(2,-52);return Math.max(e.r.length,e.r[0].length)*t*fz(e)<1}var dz=Math.pow(2,-52);function Th(e){for(let t of e)for(let n of t)if(!En(n))return!1;return!0}function mz(e){let t=[];for(let n of e)t.push(n.slice());return t}function xA(e){let{numRows:t,numCols:n}=Ph(e),r=[];for(let i=0;i<n;i++)r.push([]);for(let i=0;i<t;i++)for(let s=0;s<n;s++)r[s].push(e[i][s]);return r}function Ph(e){let t=e.length,n=t>0?e[0].length:0;return{numRows:t,numCols:n}}function yz(){throw new Error(\"Matrix dimension mismatch\")}function rM(e,t){let n=Ph(e),r=Ph(t);n.numCols!==r.numRows&&yz();let i=[];for(let s=0;s<n.numRows;s++){let o=[];for(let a=0;a<r.numCols;a++){let u=De(0,1);for(let c=0;c<e[s].length;c++)u=us(u,cs(e[s][c],t[c][a]));o.push(u)}i.push(o)}return i}function PA(e){let t=mz(e);return hz(t),t}function gz(e){let t=0;for(let n of e)for(let r of n){let i=Math.abs(q(r));if(!isFinite(i))return NaN;i>t&&(t=i)}return t}function bA(e){for(let t=0;t<e.length;t++)for(let n=0;n<e[t].length;n++)e[t][n]=NaN}function hz(e){let{numRows:t,numCols:n}=Ph(e),r=gz(e);if(!isFinite(r))return bA(e),{determinant:NaN,rank:0};let i=Math.max(t,n)*r*dz,s=De(1,1),o=0,a=0;for(;o<t&&a<n;){let u=o,c=Math.abs(q(e[o][a]));for(let p=o+1;p<t;p++){let f=Math.abs(q(e[p][a]));(!isFinite(f)||f>c)&&(c=f,u=p)}if(!isFinite(c))return bA(e),{determinant:NaN,rank:0};if(c===0){s=De(0,1),a+=1;continue}if(!En(e[u][a])&&c<i){for(let p=o;p<t;p++)e[o][p]=0;s=0,a+=1;continue}if(u!==o){s=hi(s);let p=e[o];e[o]=e[u],e[u]=p}for(let p=0;p<t;p++){if(p===o)continue;let f=Ji(e[p][a],e[o][a]);e[p][a]=De(0,1);for(let m=a+1;m<n;m++)e[p][m]=ji(e[p][m],cs(f,e[o][m]))}let l=e[o][a];s=cs(s,l),e[o][a]=De(1,1);for(let p=a+1;p<n;p++)e[o][p]=Ji(e[o][p],l);o+=1,a+=1}return{rank:o,determinant:o===t&&o===n?s:De(0,1)}}function Eh(e,t){let n=[];for(let r=0;r<t;r++)n.push(e);return n}function Bu(e,t){let n=Vu(e,t),r=0;for(let i of n){let s=i;r+=s*s}return r/n.length}function Vu(e,t){return e.apply(void 0,t)}function Ih(e,t){let n=[];for(let r of e){let i=r.apply(void 0,t);n.push(i)}return n}function TA(e,t){let n=[];for(let r=0;r<e.length;r++)t[r]&&n.push(e[r]);return n}function iM(e,t,n){let r=[];for(let i=0,s=0;i<e.length;i++){let o=0;n[i]&&(o=t[s],s+=1),r.push(e[i]+o)}return r}function aM(e,t){let n=t.solution.map(u=>Math.abs(u)<1e-6?0:u),r=t.solution.map(()=>0),i=Bu(e,n),s=Vu(e,n),o=Vu(e,r),a=0;for(let u=0;u<s.length;u++){let c=o[u]*1e-15;a+=Math.abs(s[u]*c)+c*c}return a/=s.length,isFinite(a)||(a=0),isFinite(t.MSE)&&!isFinite(i)?t:i<=t.MSE+a?{solution:n,MSE:i}:t}function uM(e,t){if(!Th(t)||!Th([e]))return;let n=xA(t),r=rM([e],n)[0],i=rM(t,n);for(let c=0;c<r.length;c++)i[c].push(hi(r[c]));let s=PA(i);if(!Th(s))return;let o=[],a=r.length,u=0;for(let c of s)for(;u<a;)if(q(c[u])===1){o.push(c[c.length-1]),u++;break}else o.push(De(0,1)),u++;for(;u<a;)o.push(De(0,1)),u++;return o}function cM(e,t){let n=Eh(0,t.length),r=Ih(t,n),i=xh(On.transpose(r),{mutateInput:!0});for(var s=0;s<2;s++){let c=Vu(e,n),l=On.neg(qc(i,c,{regularize:!1}));n=On.add(n,l)}let o=Bu(e,n);if(hA(i))return{solution:n,MSE:o};let a=Eh(0,t.length);for(var s=0;s<2;s++){let l=Vu(e,a),p=On.neg(qc(i,l,{regularize:!0}));a=On.add(a,p)}let u=Bu(e,a);return .999*u<=o?{solution:a,MSE:u}:{solution:n,MSE:o}}function sM(e,t,n,r){let i=r.maxIterations,s=r.linearSubset||Eh(!1,n.length),o=On.not(s),a=TA(t,s),u=TA(t,o),c=2,l=.1,p=n,f=0,m=.001,g;if(On.any(s)){let h=On.transpose(Ih(a,p)),b=xh(h);g={Jv:h,F:b};let x=Vu(e,p),P=On.neg(qc(b,x,{regularize:!0}));p=iM(p,P,s)}let d=!1,y=Bu(e,p);for(;f<i&&!d&&isFinite(y);){let h=Vu(e,p),b=Ih(u,p),x=On.transpose(b),P,M;if(g){let{F:v,Jv:O}=g;P=On.dot(b,On.sub(h,On.dot(O,qc(v,h,{regularize:!0})))),M=On.dot(b,On.sub(x,On.dot(O,qc(v,x,{regularize:!0}))))}else P=On.dot(b,h),M=On.dot(b,x);let I=p,E=!1;for(;f<i&&!d&&!E;){f+=1;let v=On.add(M,On.diag(Eh(m,u.length))),O=On.neg(On.solve(v,P,!0));I=iM(p,O,o),d=On.all(On.eq(I,p));let A;if(g){let L=On.transpose(Ih(a,I)),z=xh(L);A={Jv:L,F:z};let G=Vu(e,I),$=On.neg(qc(z,G,{regularize:!0}));I=iM(I,$,s)}let N=Bu(e,I);E=N<y,E?(p=I,y=N,g=A,m*=l):(m=Math.max(m,1e-64),m*=c)}}return{solution:p,MSE:y}}var oM=[18.9,.105,.0113,.089,4.414,.373,.06,.149,1.84,9.26,5,.7,.2,1.13,2.61,1,.007,30,120,1500,4e-4,7.23,-1,-.0081,-.03,-28.6,-1.71,-.4,-6.94,-.777,-500],xz=function(e){let t=e*503%oM.length;return oM[t]},Pz=function(e){let t=[];for(let n=0;n<oM.length;n++){let r=[];for(let i=0;i<e;i++)n===0&&e!==1?r[i]=0:n===1&&e!==1?r[i]=1:r[i]=xz(n*e+i);t.push(r)}return t},IA=function(e,t,n,r,i){let s=[];for(let a of n)s.push({soln:sM(e,t,a,i),initialGuess:a});s.sort(function(a,u){return isNaN(a.soln.MSE)?1:isNaN(u.soln.MSE)?-1:a.soln.MSE-u.soln.MSE});let o=[];for(let a=0;a<r;a++)o.push(s[a].initialGuess);return o};function Tz(e,t,n,r){if(!t||gi(t))return e;let i=t.bounds;return i[0]===-1/0&&i[1]===1/0?e:i[0]===-1/0?i[1]-Math.exp(-e):i[1]===1/0?i[0]+Math.exp(e):n/(r-1)*i[1]+(r-1-n)/(r-1)*i[0]}var EA=[3,5,7,11,13,17,19];function Iz(e,t){let n=[];for(let i=0;i<e.length;i++){let s=e[i],o=[];for(let a=0;a<s.length;a++){var r=EA[a%EA.length]*i%e.length;o.push(Tz(s[a],t[a],r,e.length))}n.push(o)}return n}function MA(e,t,n){n||(n={});let{linearSubset:r,bounds:i,preferredInitialGuess:s}=n,o=Pz(t.length);i&&(o=Iz(o,i));let a=IA(e,t,o,5,{maxIterations:3,linearSubset:r}),u=IA(e,t,a,1,{maxIterations:60,linearSubset:r}),c=sM(e,t,u[0],{maxIterations:250,linearSubset:r});if(!s)return c;let l=sM(e,t,s,{maxIterations:100,linearSubset:r});return isFinite(l.MSE)&&(l.MSE<c.MSE||Li(l.MSE,c.MSE,8))?l:c}function lM(e){return{chunk:e,isLazy:!0}}function vA(e){return e.slice()}function vh(e){if(!e.isLazy)return e;let t=e.chunk.copy();return t.reopenFinalBlock(),{chunk:t,forwardParameterMap:vA,reverseParameterMap:vA,isLazy:!1,valueMap:Oz(e.chunk.instructionsLength()),replacementMask:vp(e.chunk.argNames.length)}}function DA(e){let{chunk:t,forwardParameterMap:n,reverseParameterMap:r,isLazy:i,valueMap:s,replacementMask:o,didShiftScale:a}=e;return{chunk:t.copy(),forwardParameterMap:n,reverseParameterMap:r,isLazy:i,valueMap:s.slice(),replacementMask:o.slice(),didShiftScale:a}}function Ez(e){var t=1/0,n=-1/0,r=e.length;for(let i of e)t=Math.min(t,i),n=Math.max(n,i);return{min:t,max:n,length:r}}function CA(e){let t=e.getInstruction(e.getReturnIndex());if(t.type!==48)return;let n=t.args[0],r=e.getReturnIndex()-n,i=e.getInstruction(n);if(i.args.length!==2)return;let s=i.args[0],o=i.args[r],a=[],u=[];a.push(s),u.push({min:1,max:yo(e,e.getReturnIndex(),\"Programming error: cannot optimize regression on non-constant-length list\"),length:yo(e,e.getReturnIndex(),\"Programming error: cannot optimize regression on non-constant-length list\")});let c=!1,l=!1;for(let y=s+1;y<=o;y++){let h=e.getInstruction(y);if(h.type===39||h.type===41||h.type===40){if(h.args[1]!==s)continue;let b=h.args[0];if(e.getInstruction(b).valueType!==se||!bt(e.getInstruction(b)))continue;let x=ln(e,b),P=Ez(x);if(!isFinite(P.min)||!isFinite(P.max))continue;a.push(y),u.push(P)}else if(h.type===37)h.symbol===\"exp\"?l=!0:OA(h)&&(c=!0);else if(h.type===12||h.type===13)l=!0;else if(ri(h)||Ti(h))return}if(a.length===0||!l&&!c)return;let p=[];for(let y=0;y<=o;y++){let h=a.indexOf(y);if(h!==-1){let b=vp(a.length);b[h]=!0,p.push(b)}else p.push(Mh(e,p,a.length,y))}let f=[];for(let y=0;y<=e.getReturnIndex();y++)if(e.getInstruction(y).type===2){let b=vp(e.argNames.length);b[y]=!0,f.push(b)}else f.push(Mh(e,f,e.argNames.length,y));let m={listAccessDependencyTable:p,listAccesses:a,listStatisticsTable:u},g;for(let y=s+1;y<=e.getReturnIndex();y++){let h=e.getInstruction(y);switch(h.type){case 37:{if(h.symbol===\"exp\"){let $=h.args[0],w=pM(m,$);if(w===void 0){Fa(e,f,g,y);break}let{listStatistics:Y,listAccessIndex:de}=w,re=Td(lM(e),y,$,de,Y);re?g=[re]:Fa(e,f,g,y)}break}case 12:case 13:{let[$,w]=h.args,Y=pM(m,w);if(Y===void 0||SA(m,$)){Fa(e,f,g,y);break}let{listStatistics:de,listAccessIndex:re}=Y,ie=vz(lM(e),y,re,de);ie?g=[ie]:Fa(e,f,g,y);break}case 10:if(g&&g.length>1){Fa(e,f,g,y);break}let b=g&&g.length>0?g[0]:lM(e),[x,P]=h.args,M=b.isLazy?x:b.valueMap[x],I=b.isLazy?P:b.valueMap[P],E=b.chunk.getInstruction(M),v=b.chunk.getInstruction(I),O,A,N;if(E.type===37)O=x,N=E,A=P;else if(v.type===37)O=P,N=v,A=x;else{Fa(e,f,g,y);break}let L=pM(m,O);if(L===void 0||SA(m,A)){Fa(e,f,g,y);break}let{listAccessIndex:z,listStatistics:G}=L;if(N.symbol===\"exp\"){let $=Dz(b,y,A,O,z,G);if($){g=$;break}}else if(OA(N)){let $=Mz(b,y,A,O,z);if($){g=[$];break}}Fa(e,f,g,y);break;default:{Fa(e,f,g,y);break}}}if(g===void 0||g.length===0)return;let d=[];for(let y of g)d.push({chunk:y.chunk,forwardParameterMap:y.forwardParameterMap,reverseParameterMap:y.reverseParameterMap});return d}function Fa(e,t,n,r){if(n===void 0)return;let i=e.getInstruction(r);if(be(i))for(let s of n)s.valueMap[r]=r;else for(let s of n){let{chunk:o,valueMap:a}=s,u=[],c=0;for(let l of i.args){if(a[l]!==l){if(c+=1,c>1){n.length=0;return}}else{let p=t[l];for(let f=0;f<p.length;f++)if(p[f]&&s.replacementMask[f]){n.length=0;return}}u.push(a[l])}a[r]=c>0?Mn(o,i,u):r}}function pM(e,t){let{listAccessDependencyTable:n,listAccesses:r,listStatisticsTable:i}=e,s,o=n[t];for(let a=0;a<o.length;a++)if(o[a]){if(s)return;s={listAccessIndex:r[a],listStatistics:i[a]}}return s}function SA(e,t){let{listAccessDependencyTable:n}=e,r=n[t];for(let i of r)if(i)return!0;return!1}function fM(e,t){let n=[];for(let s=0;s<=t;s++)if(e.getInstruction(s).type===2){let a=vp(e.argNames.length);a[s]=!0,n.push(a)}else n.push(Mh(e,n,e.argNames.length,s));let r,i=n[t];for(let s=0;s<i.length;s++)if(i[s]){if(r!==void 0)return;r=s}return r}function Mz(e,t,n,r,i){let s=e.chunk,o=fM(s,n);if(o===void 0)return;let a=dM(e,n,o);if(a===void 0)return;let u=s.getInstruction(r),c=u.args[0];if(a=RA(a,c,i),a===void 0)return;let{chunk:l,valueMap:p}=a,f=l.getInstruction(p[c]);if(f.type!==8)return;let m=f.args[1],g=l.getInstruction(f.args[0]);if(g.type!==10)return;let[d,y]=g.args,h=o,b=m,x=d,P=y,M=l.Multiply([x,P]),I=l.SyntheticNativeFunction(\"cos\",[M]),E=l.SyntheticNativeFunction(\"sin\",[M]),v=u.symbol===\"sin\"?l.Add([l.Multiply([h,E]),l.Multiply([b,I])]):l.Subtract([l.Multiply([h,I]),l.Multiply([b,E])]);p[t]=v;function O(L){let z=a.forwardParameterMap(L),G=z[o],$=z[m],w=G*Math.cos($),Y=G*Math.sin($);return z[o]=w,z[m]=Y,z}function A(L){let z=L.slice(),G=L[o],$=L[m],w=po(G,$),Y=Math.atan2($,G);return z[o]=w,z[m]=Y,a.reverseParameterMap(z)}let N=a.replacementMask.slice();return N[o]=!0,N[d]=!0,N[m]=!0,{chunk:l,forwardParameterMap:O,reverseParameterMap:A,valueMap:p,replacementMask:N,isLazy:!1}}function vz(e,t,n,r){let i=e.chunk,s=i.getInstruction(t),[o,a]=s.args,u=i.getInstruction(o);if(u.type===1&&u.valueType===T&&q(u.value)>0){let b=vh(e),{chunk:x,valueMap:P}=b,M=x.Multiply([x.SyntheticNativeFunction(\"ln\",[P[o]]),P[a]]);return P[a]=M,P[t]=x.SyntheticNativeFunction(\"exp\",[M]),Td(b,t,a,n,r)||b}let c=fM(i,o);if(c===void 0)return;let l=dM(e,o,c);if(l===void 0)return;let{chunk:p,valueMap:f}=l,m=p.Multiply([f[o],f[a]]);f[a]=m,f[t]=p.SyntheticNativeFunction(\"exp\",[m]);function g(b){let x=l.forwardParameterMap(b),P=x[c],M=Math.log(P);return x[c]=M,x}function d(b){let x=b.slice(),P=x[c],M=Math.exp(P);return x[c]=M,l.reverseParameterMap(x)}let y=l.replacementMask.slice();y[c]=!0;let h={chunk:p,forwardParameterMap:g,reverseParameterMap:d,isLazy:!1,valueMap:f,replacementMask:y};return Td(h,t,a,n,r)||h}function Dz(e,t,n,r,i,s){if(!e.isLazy&&e.didShiftScale)return;let o=e.isLazy?e:DA(e),a=e.chunk,u=fM(a,n);if(u===void 0)return;let c=dM(e,n,u);if(c===void 0)return;let{chunk:l,valueMap:p}=c,f=l.getInstruction(p[r]).args[0],m=l.Add([f,p[n]]);p[n]=m,p[t]=l.SyntheticNativeFunction(\"exp\",[m]);function g(I){let E=c.forwardParameterMap(I),v=E[u],O=Math.log(v);return E[u]=O,E}function d(I){let E=I.slice(),v=E[u],O=Math.exp(v);return E[u]=O,c.reverseParameterMap(E)}function y(I){let E=c.forwardParameterMap(I),v=E[u],O=Math.log(-v);return E[u]=O,E}function h(I){let E=I.slice(),v=E[u],O=-Math.exp(v);return E[u]=O,c.reverseParameterMap(E)}let b=c.replacementMask.slice();b[u]=!0;let x=vh(o);x.valueMap[t]=x.chunk.Multiply([x.valueMap[n],x.valueMap[r]]);let P={chunk:l,forwardParameterMap:g,reverseParameterMap:d,isLazy:!1,valueMap:p,replacementMask:b},M=DA(P);return M.forwardParameterMap=y,M.reverseParameterMap=h,P=Td(P,t,n,i,s)||P,M=Td(M,t,n,i,s)||M,M.valueMap[t]=M.chunk.Negative([M.valueMap[t]]),[x,P,M]}function Td(e,t,n,r,i){let s=Sz(e,n,r,i);if(s!==void 0)return s.valueMap[t]=s.chunk.SyntheticNativeFunction(\"exp\",[s.valueMap[n]]),s}function Sz(e,t,n,r){let i=RA(e,t,n);if(i===void 0)return;let{chunk:s,valueMap:o}=i,a=s.getInstruction(o[t]);if(a.type!==8)return;let u=a.args[1],c=s.getInstruction(a.args[0]);if(c.type!==10)return;let[l,p]=c.args,{min:f,max:m}=r,g=m-f,d=.5*(m+f),y=s.Divide([s.Subtract([p,s.Constant(d)]),s.Constant(g)]),h=s.Add([s.Multiply([l,y]),u]);o[t]=h;function b(P){let M=i.forwardParameterMap(P),I=M[l],E=M[u],v=I*g,O=E+d*I;return M[l]=v,M[u]=O,M}function x(P){let M=P.slice(),I=P[l],E=P[u],v=I/g,O=E-v*d;return M[l]=v,M[u]=O,i.reverseParameterMap(M)}return{chunk:s,forwardParameterMap:b,reverseParameterMap:x,isLazy:!1,valueMap:o,replacementMask:i.replacementMask,didShiftScale:!0}}function dM(e,t,n){let r=e.chunk,i=Lr(r,n,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en(i,t)!==1)return;let s=ws(i,t),[o,a]=Hn(s,t);if(a===void 0)return;let u=s.newChunk.getInstruction(o);if(u.type!==1||u.valueType!==T)return;let c=s.newChunk.getInstruction(a);if(c.type!==1||c.valueType!==T)return;let l=vh(e),{chunk:p,valueMap:f}=l,m=q(u.value),g=q(c.value);f[t]=n;function d(b){let x=l.forwardParameterMap(b),P=x[n],M=m+g*P;return x[n]=M,x}function y(b){let x=b.slice(),M=(x[n]-m)/g;return x[n]=M,l.reverseParameterMap(x)}let h=l.replacementMask.slice();return h[n]=!0,{chunk:p,forwardParameterMap:d,reverseParameterMap:y,isLazy:!1,valueMap:f,replacementMask:h}}function RA(e,t,n){let r=e.chunk,i=e.isLazy?t:e.valueMap[t],s=Lr(r,n,{allowRestriction:!1,allowClosedBlockReferences:!0});if(en(s,i)!==1)return;e.isLazy&&(s=Lr(r.copy().reopenFinalBlock(),n,{allowRestriction:!1,allowClosedBlockReferences:!1}));let o=ws(s,i),[a,u]=Hn(o,i);if(u===void 0)return;let c=o.newChunk,l=Math.max(u,a),p=[];for(let Z=0;Z<=l;Z++)if(c.getInstruction(Z).type===2){let Ne=vp(c.argNames.length);Ne[Z]=!0,p.push(Ne)}else p.push(Mh(c,p,c.argNames.length,Z));let f,m;for(let Z=0;Z<r.argNames.length;Z++)if(p[u][Z])if(f===void 0)f=Z;else return;else if(p[a][Z])if(m===void 0)m=Z;else return;if(f===void 0||m===void 0)return;let g=Lr(c,f,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en(g,u)!==1)return;let d=Lr(c,m,{allowRestriction:!1,allowClosedBlockReferences:!1});if(en(d,a)!==1)return;let y=ws(g,u),h=ws(d,a),[b,x]=Hn(y,u),P=y.newChunk.getInstruction(b);if(P.type!==1||P.valueType!==T)return;let M=y.newChunk.getInstruction(x);if(M.type!==1||M.valueType!==T)return;let I=vh(e),{chunk:E,valueMap:v}=I,O=E.Add([E.Multiply([f,n]),m]);v[t]=O;let A=c.copy();A.List([u,a]);let N=A.getCompiledFunction().fn;function L(Z){let Re=I.forwardParameterMap(Z),[Ne,Te]=N.apply(null,Re);return Re[f]=Ne,Re[m]=Te,Re}let z=q(P.value),G=q(M.value),[$,w]=Hn(h,a),Y=h.newChunk.copy();Y.List([$,w]);let de=Y.getCompiledFunction().fn;function re(Z){let Re=Z.slice(),Ne=Z[f],Te=Z[m],Me=(Ne-z)/G,ve=Z.slice();ve[f]=Me,ve.splice(m,1);let[Q,U]=de.apply(null,ve),xe=(Te-Q)/U;return Re[f]=Me,Re[m]=xe,I.reverseParameterMap(Re)}let ie=I.replacementMask.slice();return ie[f]=!0,ie[m]=!0,{chunk:E,forwardParameterMap:L,reverseParameterMap:re,isLazy:!1,valueMap:v,replacementMask:ie}}function Mh(e,t,n,r){let i=e.getInstruction(r),s=vp(n);if(be(i))return s;for(let o of i.args){let a=t[o];for(let u=0;u<a.length;u++)s[u]=s[u]||a[u]}return s}function vp(e){let t=[];for(let n=0;n<e;n++)t.push(!1);return t}function Oz(e){let t=[];for(let n=0;n<e;n++)t.push(n);return t}function OA(e){return e.type===37&&(e.symbol===\"sin\"||e.symbol===\"cos\")}function xt(e,t){switch(e){case T:case ge:return new D.Constant(t);case ot:return new D.Seed(t);case R:return new D.ParenSeq([xt(T,t[0]),xt(T,t[1])]);case V:return new D.ParenSeq([xt(T,t[0]),xt(T,t[1]),xt(T,t[2])]);case Nt:return new D.FunctionCall(\"segment\",[xt(V,t[0]),xt(V,t[1])]);case Se:return new D.FunctionCall(\"vector\",[xt(V,t[0]),xt(V,t[1])]);case In:return new D.FunctionCall(\"triangle\",[xt(V,t[0]),xt(V,t[1]),xt(V,t[2])]);case Nn:return new D.FunctionCall(\"sphere\",[xt(V,t[0]),xt(T,t[1])]);case Ut:return new D.FunctionCall(\"rgb\",[xt(T,t[0]),xt(T,t[1]),xt(T,t[2])]);case Be:return new D.FunctionCall(\"polygon\",[xt(Pt,t)]);case Ie:return new D.FunctionCall(\"segment\",[xt(R,t[0]),xt(R,t[1])]);case fe:return new D.FunctionCall(\"line\",[xt(R,t[0]),xt(R,t[1])]);case Le:return new D.FunctionCall(\"ray\",[xt(R,t[0]),xt(R,t[1])]);case he:return new D.FunctionCall(\"mathVector\",[xt(R,t[0]),xt(R,t[1])]);case pe:return new D.FunctionCall(\"circle\",[xt(R,t[0]),xt(T,t[1])]);case ce:return new D.FunctionCall(\"arc\",[xt(R,t[0]),xt(R,t[1]),xt(R,t[2])]);case Ge:return new D.FunctionCall(\"angle\",[xt(R,t[0]),xt(T,t[1]),xt(T,t[2])]);case Ae:return new D.FunctionCall(\"directedangle\",[xt(R,t[0]),xt(T,t[1]),xt(T,t[2])]);case We:case se:case Ln:case Pt:case Zn:case Rn:case Tn:case Bn:case Gn:case kn:case gn:case hn:case Fn:case Vn:case Kn:case er:case nr:case tr:case yr:case Ur:{let r=[],i=ke(e);for(let s of t)r.push(xt(i,s));return new D.List(r)}case Ht:case St:case sn:case wn:case rt:case Ue:case mr:case no:case Wn:case jn:case sr:case or:case Dr:case Sr:case Or:case Cr:case Vt:case Hr:throw new Error(`Programming error: cannot create parse node from valueType: ${on(e)}`);case mn:return new D.FunctionCall(\"tone\",[xt(T,t[0]),xt(T,t[1])]);default:let n=e;throw new Error(`Programming error: unexpected valueType: ${on(n)}`)}}function VA(e,t){try{return Cz(e,t)}catch(n){return n instanceof D.Error?n:J(n)}}function Cz(e,t){let{policy:n,frame:r,exportFrame:i,lastExportFrame:s,priorAnalysis:o}=e,a=t._lhs.buildIRExpression(n,r,{coerceToNumber:!0}),u=t._rhs.buildIRExpression(n,r,{coerceToNumber:!0});if(a.isError)throw a;if(u.isError)throw u;if(a.valueType!==T&&a.valueType!==se||u.valueType!==T&&u.valueType!==se)throw Wb([ne(a.valueType),ne(u.valueType)]);let c=t._difference.buildIRExpression(n,r,{wrapInList:!0,coerceToNumber:!0});if(c.isError)throw c;for(let M of c.getDependencies())if(!n.validRegressionParameter(M))throw CP(M);let l=Nz(c.getDependencies(),t.userData.regressionParameters,s),{parameters:p,residuals:f,isLinear:m,parameterWarning:g}=FA(l,c),d={policy:n,frame:r},y=NA(d,t,p),h=Lz(t,a,y),b;if(t.userData.isLogModeRegression&&(h===di.LOGLIN||h===di.LOGLOG)){let M=t._logDifference.buildIRExpression(n,r,{wrapInList:!0,coerceToNumber:!0});if(M.isError)throw M;let I=t._logLhs.buildIRExpression(n,r,{wrapInList:!0,coerceToNumber:!0});if(I.isError)throw I;({parameters:p,isLinear:m,parameterWarning:g}=FA(l,M)),y=NA(d,t,p),f=wA(d,t._difference,p);let E=wA(d,t._logDifference,p);b=LA(t,I,y,E,t.userData.isLogModeRegression,h)}else b=LA(t,a,y,f,t.userData.isLogModeRegression,h);let x=Rz(t,i),P=_z(t,x,o,n);return t.userData.residualVariable=ur(x),new D.OptimizedRegression(p,xt(se,f),b,y.substituted,{isModelValid:y.isValid,residualVariable:x,residualSuggestionId:P,shouldSuggestLogMode:h!==di.NONE,isLinear:m,parameterWarning:g})}function Rz(e,t){if(e.userData&&e.userData.residualVariable){let s=Lo(e.userData.residualVariable);if(!t[s])return s}let n=e.getDependencies().filter(s=>s[0]!==\"_\"),r;for(let s of n){let o=s.match(/_(.*)/);if(o&&(r=\"e_\"+o[1],!t[r]))return r}let i=1;for(;;){if(r=\"e_\"+i,!t[r])return r;i++}}function NA({policy:e,frame:t},n,r){let i=n._rhs.getDependencies(),s,o;for(let p of i){if(r.hasOwnProperty(p))continue;let f=t[p];if(!f||(f.type===\"Assignment\"&&(f=f._expression),!f.buildIRExpression))continue;let m=f.buildIRExpression(e,t,{coerceToNumber:!0});if(!m.isError&&m.valueType===se){if(s!==void 0){s=void 0,o=void 0;break}m.getDependencies().length===0&&(s=p,o=m)}}let a=Object.create(t);s!==void 0&&(a[s]=void 0);let u=n._rhs.buildIRExpression(e,a,{coerceToNumber:!0}),c=Object.create(a);for(let p in r)c[p]=r[p];let l=n._rhs.buildIRExpression(e,c,{coerceToNumber:!0});return o?{node:u,substituted:l,listNode:o,isValid:!0}:{node:u,substituted:l,listNode:o,isValid:!1}}function Nz(e,t,n){let r=[];t||(t={}),n||(n={});for(let i of e){let s=ur(i);n[i]&&isFinite(n[i].asValue())?r.push(+n[i].asValue()):t.hasOwnProperty(s)&&isFinite(+t[s])?r.push(+t[s]):r.push(1)}return r}function AA(e,t){let n=t.getDependencies(),r=t.getCompiledFunction(n).fn;if(n.length){let i=t.findLinearSubset(n),s=i.every(a=>a),o=[];for(let a of n)o.push(t.takeDerivative(a).getCompiledFunction(n).fn);if(s){let a=n.map(()=>De(0,1)),u=t.interpretWithParameters(a),c=[];for(let m of n)c.push(t.takeDerivative(m).interpretWithParameters(a));let l=uM(u,c);if(l){let m=t.interpretWithParameters(l);return{solution:l,residuals:m,MSE:yM(m),isLinear:s}}let{solution:p,MSE:f}=aM(r,cM(r,o));return{solution:p,residuals:r.apply(void 0,p),MSE:f,isLinear:s}}else{let a=[];for(let p of n)a.push(t.boundDomain(p));let u={linearSubset:i,bounds:a,preferredInitialGuess:e},{solution:c,MSE:l}=aM(r,MA(r,o,u));return{solution:c,residuals:r.apply(void 0,c),MSE:l,isLinear:s}}}else return{solution:[],residuals:t.interpretWithParameters([]),MSE:Bu(r,[]),isLinear:!0}}function _A(e,t){let n={},r=t.getDependencies();for(let i=0;i<r.length;i++){let s=new D.RegressionParameter(e[i]);n[r[i]]=s}return n}function LA(e,t,n,r,i,s){let o=yM(r);if(!isFinite(o))throw RP();if(t.getDependencies().length>0)return{RMSE:Math.sqrt(o)};let a=W(t.valueType)?wf(t.asValue()):0;if(t.getDependencies().length||!isFinite(a)||a<=0||!e.isLhsSimple)return{RMSE:Math.sqrt(o)};{let u=1-o/a;if(n.isValid){let c=[],l=[],p=i&&(s===di.LINLOG||s===di.LOGLOG);D.List.eachArgs([n.listNode,t],function(m){let g=m[0].isConstant?m[0].asCompilerValue():NaN,d=m[1].isConstant?m[1].asCompilerValue():NaN;c.push(p?Math.log(q(g)):g),l.push(d)});let f=Vy(c.map(m=>q(m)),l.map(m=>q(m)));if(Li(Az(c,l).MSE,o,8))return{r:f,rsquared:f*f}}return{Rsquared:u}}}function Az(e,t){let n=t,r=[e.map(a=>hi(a)),e.map(()=>De(-1,1))],i=uM(n,r);if(i){let[a,u]=i,c=[];for(let l=0;l<t.length;l++)c.push(ji(t[l],us(cs(a,e[l]),u)));return{solution:i,MSE:yM(c)}}function s(a,u){let c=[];for(let l=0;l<e.length;l++)c.push(q(t[l])-(a*q(e[l])+u));return c}return cM(s,[function(){return e.map(function(a){return-q(a)})},function(){return e.map(function(){return-1})}])}function _z(e,t,n,r){let i=e._rhs.getDependencies(),s;for(let o in n){if(!n.hasOwnProperty(o))continue;let a=n[o].concreteTree;if(!Gs(a)||!a.columns[0])continue;let u=n[o].rawTree.columns;if(!u||!u.length)continue;let c=u[0].getExports(r);if(c.length===1&&i.indexOf(c[0])!==-1){for(let l=1;l<u.length;l++)if(u[l].getDependencies().indexOf(t)!==-1)return;s=s||o}}return s||void 0}function mM(e,t){let n=e.length,r=e[0],i=t[0],s=e[n-1],o=t[n-1];if(!isFinite(r)||!isFinite(s)||!isFinite(i)||!isFinite(o)||o-i===0)return!1;let a=s-r;if(a===0)return!1;for(let u=1;u<n-1;u++){let c=e[u],l=t[u],p=(o*(c-r)+i*(s-c))/a;if(!Li(l,p,5))return!1}return!0}var di={NONE:0,LOGLIN:1,LOGLOG:2,LINLOG:3};function Lz(e,t,n){if(!e.isLhsSimple||!n.isValid)return di.NONE;let r=n.substituted;if(r.isError||r.valueType!==T)return di.NONE;let i=r.getDependencies();if(i.length!==1||isFinite(n.node.polynomialOrder(i[0])))return di.NONE;let s=r.getCompiledFunction(i).fn,o=n.listNode;if(r.valueType!==T)return di.NONE;let a=o.mapElements(f=>+f.asValue());if(a.length<3)return di.NONE;a.sort(function(f,m){return f-m});let u=a.map(s),c=u.map(Math.log),l=a.map(Math.log),p=!0;return D.List.wrap(t).eachElement(f=>{isFinite(Math.log(+f.asValue()))||(p=!1)}),mM(a,c)&&p?di.LOGLIN:mM(l,c)&&p?di.LOGLOG:mM(l,u)?di.LINLOG:di.NONE}function wA({policy:e,frame:t},n,r){let i=Object.create(t);for(let a in r)r.hasOwnProperty(a)&&(i[a]=r[a]);let s=mp({policy:e,frame:i,wrapInList:!0},n),o=s.getError();if(o)throw o;return s.asCompilerValue()}function yM(e){let t=0;for(let n of e){let r=q(n);t+=r*r}return t/e.length}function FA(e,t){let n,r,i=t._chunk;if(i&&(r=CA(i)),!r||r.length===0)return t=t.deriveRegressionRestrictions(),n=AA(e,t),{parameters:_A(n.solution,t),residuals:n.residuals,isLinear:n.isLinear,parameterWarning:!1};let s=t.getDependencies(),o=t.getCompiledFunction(s).fn,a=1/0,u={},c,l=!1;for(let p of r){let f=new pn(p.chunk);if(f=f.deriveRegressionRestrictions(),n=AA(p.forwardParameterMap(e),f),n.MSE<a){let m=p.reverseParameterMap(n.solution.map(d=>q(d))),g=Bu(o,m);if(u&&(!isFinite(g)||g>=a)){isFinite(g)||(l=!0);continue}a=n.MSE,u=_A(m,t),c=o.apply(void 0,m)}}return{parameters:u,residuals:c,isLinear:!1,parameterWarning:l}}D.Base.prototype.analyze=function(e,t){return Gr(this)?kr(e,t,this):new k(e,t,this,this.tryGetConcreteTree(e,t))};function Dh(e,t,n,r){if(r.isError)return new k(e,t,n,r);if(!e.areAllScalesLinear()&&!Zc(r.valueType)){let u=cl(ne(r.valueType));return u.setCursorContext(r.getCursorContext()),new k(e,t,n,u)}var i=Cs(e,r),s=r.getDependencies();let o;switch(r.valueType){case St:case wn:case We:{o=r;break}case Ut:case Zn:case Ie:case Tn:case pe:case Fn:case ce:case Vn:case fe:case Bn:case Le:case Gn:case he:case kn:case Ge:case gn:case Ae:case hn:case Ue:case mr:case rt:case Be:case Rn:case Nt:case er:case Se:case nr:case In:case tr:case Nn:case yr:case mn:case Ur:i.length?o=tn(n.getSliderVariables(e,r)).setDependencies(i):o=r;break;case R:case V:case Pt:case Kn:if(i.length)if(e.validParametricVariables(i))o=r;else{var a=n.getSliderVariables(e,r);o=tn(a).setDependencies(a)}else o=r;break;case Wn:case sr:case jn:case or:case Dr:case Or:case Sr:case Cr:{i.length===0?o=r:o=tn(n.getSliderVariables(e,r)).setDependencies(i);break}case T:case se:i.length===0?o=r:i.length<=(e.is3dPolicy()?2:1)?e.is3dPolicy()&&s.length>i.length&&!e.validImplicitVariables(s)?o=tn(n.getSliderVariables(e,r)).setDependencies(s):e.validExpressionVariables(i)?o=r:o=Rm(e.implicitDependency(i)).setDependencies(i):e.validImplicitVariables(i)?o=Rm().setDependencies(i):o=tn(n.getSliderVariables(e,r)).setDependencies(s);break;default:o=J(`Programming error: unexpected value type ${r.valueType}`)}return xo(o)&&o.setCursorContext(r.getCursorContext()),o=Hc(e,n,o),new k(e,t,n,o)}function BA(e){return new D.FunctionCall(\"pdf\",[e,new D.Identifier(\"x\")])}D.Identifier.prototype.analyze=function(e,t){let n=this.tryGetConcreteTree(e,t,{coerceToNumber:!0}),r=Dh(e,t,this,n);return Gr(this)&&!hM(r)?kr(e,t,this):r};D.FunctionCall.prototype.analyze=function(e,t,n){var r;Lg[this._symbol]&&Nc(t,this).length===0&&!e.is3dPolicy()?r=BA(this).tryGetConcreteTree(e,t):r=this.tryGetConcreteTree(e,t);var i=Dh(e,t,this,r);if(Gr(this)&&!hM(i))return kr(e,t,this);var s=this.getMoveStrategy(e,t,r,n);if(s){var o=this.getDefaultDragMode(s),a=r.asCompilerValue(),u=[new D.Constant(a[0]),new D.Constant(a[1])];return new k(e,t,this,new D.MovablePoint(u,s,o))}return i};D.Expression.prototype.analyze=function(e,t){var n=Dh(e,t,this,this.tryGetConcreteTree(e,t));return Gr(this)&&!hM(n)?kr(e,t,this):n};D.FunctionDefinition.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);if(Ke[this._symbol])return this.asEquation().analyze(e,t);var n=this._symbol.split(\"_\")[0];if(Ke[n]&&Ke[n].isFunction)return new k(e,t,this,fl(this._symbol,n));let r=this.tryGetConcreteTree(e,t);if(r instanceof D.Error&&!r.blocksExport&&this._argSymbols.length===1){let u=Object.create(t);u[this._argSymbols[0]]=new ze(\"identityTransformation\");let c=this._expression.tryGetConcreteTree(e,u);if(!(c instanceof D.Error))return new k(e,t,this,c)}if(r.isError)return new k(e,t,this,r);var i=this._argSymbols,s=r.getDependencies();if(s.indexOf(this._symbol)!==-1)return new k(e,t,this,$a([this._symbol]));var o=s.filter(function(u){return i.indexOf(u)===-1});if(e.unplottablePolarFunction(this._symbol,s))return new k(e,t,this,bP());if(e.is3dPolicy()&&e.assignmentForbidden(this._symbol))return new k(e,t,this,Vm(this._symbol));if(o.some(function(u){return e.assignmentForbidden(u)}))return new k(e,t,this,rf(o,this._symbol,i).setDependencies(s));if(o.length){var a=this.getSliderVariables(e,r);return new k(e,t,this,tn(a).setDependencies(a))}return!e.areAllScalesLinear()&&!Zc(r.valueType)?new k(e,t,this,cl(ne(r.valueType))):(r=Hc(e,this,r),new k(e,t,this,r))};D.Assignment.prototype.analyze=function(e,t,n){if(Gr(this))return kr(e,t,this);var r=this._symbol;if(!e.validLHS(r))return new k(e,t,this,hP(r));if(Ke[r])return this.asEquation().analyze(e,t);var i;if(this._expression instanceof D.FunctionCall&&Lg[this._expression._symbol]&&Nc(t,this).length===0&&!e.is3dPolicy())i=BA(this._expression).tryGetConcreteTree(e,t);else{var s=Object.create(t);s[r]=e.validSolvedVariable(r)?void 0:rc(),i=this.tryGetConcreteTree(e,s)}if(i.isError)return new k(e,t,this,i);if(!e.areAllScalesLinear()&&!Zc(i.valueType))return new k(e,t,this,cl(ne(i.valueType)));if(this.isEquation(e,i))return this.asEquation().analyze(e,t);let o=i.valueType===Ut||i.valueType===Zn;if(e.assignmentForbidden(r)&&o){let g=yP(r).allowExport().setDependencies([r]);return new k(e,t,this,g)}let a=i.getDependencies(),u=Cs(e,i),c=u.includes(\"x\")||u.includes(\"y\"),l=u.includes(\"r\")||u.includes(\"theta\");if(r===\"r\"&&a.includes(\"phi\")){let g=u.includes(\"z\")?vm():fP();return new k(e,t,this,g)}if(r===\"rho\"&&u.includes(\"z\")){let g=a.includes(\"phi\")?vm():dP();return new k(e,t,this,g)}let p=this.getSliderVariables(e,i,a);if(e.tooManySliderVariables(a,p,o)||c&&l){let g=tn(p).allowExport().setDependencies(p);return new k(e,t,this,g)}var f=this.getMoveStrategy(e,t,i,n);if(f){var m=this.getDefaultDragMode(f);return i=new D.MovablePoint([i.elementAt(0),i.elementAt(1)],f,m),new k(e,t,this,i)}return i=Hc(e,this,i),new k(e,t,this,i)};D.RecursiveFunctionBaseCase.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);if(!this.specifiedArg.valid)return new k(e,t,this,this.specifiedArg.error);let n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=this._argSymbols,i=n.getDependencies();if(e.is3dPolicy()&&e.assignmentForbidden(this._symbol))return new k(e,t,this,Vm(this._symbol));var s=i.filter(function(a){return r.indexOf(a)===-1});if(s.includes(this.specifiedArg.argSymbol))return new k(e,t,this,pb(this.specifiedArg.argSymbol));for(let a of s)if(e.assignmentForbidden(a))return new k(e,t,this,lb(a));if(s.length){var o=this.getSliderVariables(e,n);return new k(e,t,this,tn(o).setDependencies(o))}return!e.areAllScalesLinear()&&!Zc(n.valueType)?new k(e,t,this,cl(ne(n.valueType))):new k(e,t,this,n)};D.CoordinateEquation.prototype.analyze=function(e,t){if(!e.validCoordinateEquationSymbol(this._concatenatedSymbol))return this.asEquation().analyze(e,t);if(Gr(this))return kr(e,t,this);let n=this.tryGetConcreteTree(e,t);return n=Hc(e,this,n),new k(e,t,this,n)};D.Regression.prototype.analyze=function(e,t,n,r,i){if(Gr(this))return kr(e,t,this);var s={policy:e,frame:t,exportFrame:n,lastExportFrame:r,priorAnalysis:i};return new k(e,t,this,VA(s,this))};function gM(e,t){var n=this.tryGetConcreteTree(e,t),r=n.getDependencies();return r.length?new k(e,t,this,tn(this.getSliderVariables(e,n)).setDependencies(r)):new k(e,t,this,this.tryGetConcreteTree(e,t))}D.Histogram.prototype.analyze=function(e,t){return Gr(this)?kr(e,t,this):e.areAllScalesLinear()?gM.call(this,e,t):new k(e,t,this,nx())};D.DotPlot.prototype.analyze=function(e,t){return Gr(this)?kr(e,t,this):e.areAllScalesLinear()?gM.call(this,e,t):new k(e,t,this,rx())};D.BoxPlot.prototype.analyze=function(e,t){return Gr(this)?kr(e,t,this):e.areAllScalesLinear()?gM.call(this,e,t):new k(e,t,this,ix())};function GA(e){return function(t,n){if(Gr(this))return kr(t,n,this);var r=this.tryGetConcreteTree(t,n),i=r.getDependencies();if(i.length)return new k(t,n,this,tn(this.getSliderVariables(t,r)).setDependencies(i));var s=new k(t,n,this,this.tryGetConcreteTree(t,n));if(!r.isError){s.evaluationState.expression_type=\"TTEST\";var o=r.args.map(function(a){return a.asValue()});s.evaluationState.ttest_results=e.apply(null,o)}return s}}D.TTest.prototype.analyze=GA(cI);D.IndependentTTest.prototype.analyze=GA(lI);D.Stats.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);var n=this.tryGetConcreteTree(e,t),r=n.getDependencies();if(r.length)return new k(e,t,this,tn(this.getSliderVariables(e,n)).setDependencies(r));var i=new k(e,t,this,this.tryGetConcreteTree(e,t));if(!n.isError){i.evaluationState.expression_type=\"STATS\";var s=n.args.map(function(o){return o.asValue()});i.evaluationState.stats_results=pI.apply(null,s)}return i};D.Equation.prototype.analyze=D.CallAssignment.prototype.analyze=D.BaseComparator.prototype.analyze=wz;function wz(e,t){if(Gr(this))return kr(e,t,this);var n=this.getOperator()!==\"=\";if(n&&!rs.plotInequalities)return new k(e,t,this,Dm());var r=eA({policy:e,frame:t},this);if(r.isError)return new k(e,t,this,r);let i=Cs(e,r);if(r instanceof D.SolvedEquation&&i.length){var s=i.concat(r._symbol);if(!e.validImplicitVariables(s))return new k(e,t,this,rc().setDependencies(s))}return this.getGraphMode(e,r)===8&&!e.validImplicitVariables(i)?new k(e,t,this,rc().setDependencies(i)):(r=Hc(e,this,r),new k(e,t,this,r))}D.DoubleInequality.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);if(!rs.plotInequalities)return new k(e,t,this,Dm());var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=n.getDependencies();return Rr[this._operators[0]].direction!==Rr[this._operators[1]].direction?new k(e,t,this,Om()):e.validDoubleInequalitySymbol(n._symbol)?e.validDoubleInequalityVariables(r)?r.length>2?new k(e,t,this,tn(this.getSliderVariables(e,n)).setDependencies(r)):n._expressions[0].getDependencies().indexOf(n._symbol)!==-1||n._expressions[1].getDependencies().indexOf(n._symbol)!==-1?new k(e,t,this,Cm().setDependencies(r)):new k(e,t,this,n):new k(e,t,this,Sm().setDependencies(r)):new k(e,t,this,Sm().setDependencies(r))};D.ComparatorChain.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=n.getDependencies();if(r.length)if(e.is3dPolicy()){if(!e.validImplicitVariables(r))return new k(e,t,this,(this.symbols.includes(\"=\")?PP():MP()).setDependencies(r));if(!(this.symbols.every(s=>s===\"<\"||s===\"<=\")||this.symbols.every(s=>s===\">\"||s===\">=\")||this.symbols.every(s=>s===\"=\")))return new k(e,t,this,Om().setDependencies(r));if(this.symbols.includes(\"=\")&&!r.includes(\"z\"))return new k(e,t,this,vP().setDependencies(r));let i=this._difference.tryGetConcreteTree(e,t);return i=Hc(e,this,i),new k(e,t,this,i)}else return this.symbols.includes(\"=\")?new k(e,t,this,DP()):this.symbols.length>2?new k(e,t,this,Mb()):e.validDoubleInequalityVariables(r)?new k(e,t,this,Cm()):new k(e,t,this,tn(this.getSliderVariables(e,n)).setDependencies(r));return new k(e,t,this,n)};D.ParenSeq.prototype.analyze=function(e,t,n){if(Gr(this))return kr(e,t,this);var r=this.tryGetConcreteTree(e,t);if(r.isError)return new k(e,t,this,r);var i=this.getMoveStrategy(e,t,r,n);if(i){var s=this.getDefaultDragMode(i),o=r.asCompilerValue(),a=[new D.Constant(o[0]),new D.Constant(o[1])];return new k(e,t,this,new D.MovablePoint(a,i,s))}return Dh(e,t,this,r)};function Fz(e,t){return e.filter(function(n){return!t[n]})}function Vz(e){for(var t={},n=0;n<e.length;n++){var r=e[n];if(r instanceof pc&&r.header instanceof D.Identifier){var i=r.header._symbol;t[i]===void 0&&(t[i]=0),t[i]+=1}}return t}D.Table.prototype.analyze=function(e,t){var n=Object.create(t),r=[],i=Vz(this.columns),s;for(s=0;s<this.columns.length;s++){var o=this.columns[s];if(o instanceof pc&&o.header instanceof D.Identifier){var a=o.header._symbol,u=n[a],c=i[a]>1;u&&u.isError&&(u.isTableCycleWithoutGlobalDefinition||u.isMultiplyDefinedByTables&&!c)&&(n[a]=void 0)}var l=o.analyze(e,n);if(s===0&&l.concreteTree.isIndependent){var p=l.concreteTree.getDependencies()[0];e.validFirstColumnVariable(p)||(l=new k(e,t,o,OP()))}if(l.concreteTree.isIndependent)l.rawTree.exportToLocal(e,l.concreteTree,n);else if(!l.concreteTree.isError){var f=l.concreteTree.header.getDependencies(),m=Fz(f,n);m.length&&(l=new k(e,t,o,tn(m).setDependencies(m)))}r.push(l.concreteTree)}var g=1;for(s=0;s<r.length;s++)r[s].isError||(g=Math.max(r[s].values.length,g));for(s=0;s<r.length;s++)if(!r[s].isError&&r[s].header.isConstant){for(var d=[],y=0;y<g;y++)d.push(r[s].header);r[s]=new D.TableColumn(r[s].header,d)}var h=new D.Table(r),b=new k(e,t,this,h);return b.evaluationState.is_graphable=!0,b};D.TableColumn.prototype.analyze=function(e,t){var n=this.header.tableError();if(n)return new k(e,t,this,SP(n));var r=this.tryGetConcreteTree(e,t);if(r.isError)return new k(e,t,this,r);if(r.header.isError)return new k(e,t,this,r.header);if(r.values.isError)return new k(e,t,this,r.values);for(var i=0;i<r.values.length;i++)if(!r.values[i].isError){var s=this.values[i]&&this.values[i].tableError();if(s){r.values[i]=ml(s);continue}var o=r.values[i].getDependencies();o.length&&(r.values[i]=tn(o).setDependencies(o))}return new k(e,t,this,r)};D.Image.prototype.analyze=function(e,t,n){var r=this.tryGetConcreteTree(e,t);if(r.radianAngle.isError||r.center.isError||r.width.isError||r.height.isError||r.opacity.isError)return new k(e,t,this,r);var i=r.center.getDependencies(),s=r.radianAngle.getDependencies(),o=r.width.getDependencies(),a=r.height.getDependencies(),u=r.opacity.getDependencies();return i.length||s.length||o.length||a.length||u.length?new k(e,t,this,new D.Image({center:i.length?tn(s).setDependencies(i):r.center,radianAngle:s.length?tn(s).setDependencies(s):r.radianAngle,width:o.length?tn(o).setDependencies(o):r.width,height:a.length?tn(a).setDependencies(a):r.height,opacity:u.length?tn(u).setDependencies(u):r.opacity})):(r.moveStrategy=this.getMoveStrategy(e,t,r,n),new k(e,t,this,r))};D.Slider.prototype.analyze=function(e,t){if(Gr(this))return kr(e,t,this);var n=this.tryGetConcreteTree(e,t),r=n.sliderInfo,i;if(r.missingVars.length){var s=wp(r.missingVars);i=new k(e,t,this,tn(e.sliderVariables(s)).setDependencies(s).allowExport())}else i=new k(e,t,this,n);var o=i.evaluationState;if(rs.sliders){o.assignment=r.exportedSymbol,o.slider_min_number=r.values.min,o.slider_max_number=r.values.max,o.slider_step_number=r.values.step,o.slider_min_valid=r.valids.min,o.slider_max_valid=r.valids.max,o.slider_step_valid=r.valids.step;var a=o.slider_min_valid&&o.slider_max_valid&&o.slider_step_valid;o.is_slider=!0,o.raw_slider_latex=this.getInputString(),o.is_slidable=a,o.is_animatable=o.is_slidable&&!o.is_graphable,r.errMsg&&(o.error=r.errMsg.getError())}return delete o.is_evaluable,delete o.zero_values,i};function Gr(e){return e.userData&&\"latex\"in e.userData&&wo(e.userData.latex).slice(-1)===\"=\"}function kr(e,t,n){return new k(e,t,n,tf(\"=\"))}function hM(e){return e.concreteTree.isConstant&&e.concreteTree.valueType===T}D.Base.prototype.analyzeFourFunction=function(e,t){var n=this.tryGetConcreteTree(e,t);return n.isError?new k(e,t,this,n):new k(e,t,this,J(`Unexpected node type ${this.type}`))};D.Expression.prototype.analyzeFourFunction=function(e,t){var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=n.getDependencies();if(r.length>0){var i=r[0],s,o=Ke[i];return o?s=o.isFunction?ms(i):ic(i):s=cf(i),new k(e,t,this,s)}return new k(e,t,this,n)};D.Assignment.prototype.analyzeFourFunction=function(e,t){return new k(e,t,this,lf())};D.FunctionDefinition.prototype.analyzeFourFunction=function(e,t){return new k(e,t,this,pf())};function kA(e,t){return new k(e,t,this,ma())}D.Equation.prototype.analyzeFourFunction=kA;D.CallAssignment.prototype.analyzeFourFunction=kA;function bM(e,t){return new k(e,t,this,sc())}D.DoubleInequality.prototype.analyzeFourFunction=bM;D.ComparatorChain.prototype.analyzeFourFunction=bM;D.BaseComparator.prototype.analyzeFourFunction=bM;D.Regression.prototype.analyzeFourFunction=function(e,t){return new k(e,t,this,oc())};D.ParenSeq.prototype.analyzeFourFunction=function(e,t){return new k(e,t,this,ac())};D.Base.prototype.analyzeScientific=function(e,t){var n=this.tryGetConcreteTree(e,t);return n.isError?new k(e,t,this,n):new k(e,t,this,J(`Unexpected node type ${this.type}`))};D.Expression.prototype.analyzeScientific=function(e,t){var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=n.getDependencies();return r.length>0?new k(e,t,this,tn(r)):new k(e,t,this,n)};D.Assignment.prototype.analyzeScientific=function(e,t){var n=this._symbol;if(Ke[n])return new k(e,t,this,fl(n));var r=Object.create(t);r[n]=ma();var i=this.tryGetConcreteTree(e,r);if(i.isError)return new k(e,t,this,i);var s=i.getDependencies();return this.isEquation(e,i)?new k(e,t,this,ma()):s.length>0?new k(e,t,this,tn(s)):new k(e,t,this,i)};D.FunctionDefinition.prototype.analyzeScientific=function(e,t){if(Ke[this._symbol])return new k(e,t,this,fl(this._symbol));var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=this._argSymbols,i=n.getDependencies();if(i.indexOf(this._symbol)!==-1)return new k(e,t,this,$a([this._symbol]));var s=i.filter(function(o){return r.indexOf(o)===-1});return s.length?new k(e,t,this,rf(s,this._symbol,r)):new k(e,t,this,n)};function zA(e,t){return new k(e,t,this,ma())}D.Equation.prototype.analyzeScientific=zA;D.CallAssignment.prototype.analyzeScientific=zA;function xM(e,t){return new k(e,t,this,sc())}D.DoubleInequality.prototype.analyzeScientific=xM;D.ComparatorChain.prototype.analyzeScientific=xM;D.BaseComparator.prototype.analyzeScientific=xM;D.Regression.prototype.analyzeScientific=function(e,t){return new k(e,t,this,oc())};D.ParenSeq.prototype.analyzeScientific=function(e,t){return new k(e,t,this,ac())};D.Base.prototype.analyzeSingleExpressionScientific=function(e,t){var n=this.tryGetConcreteTree(e,t);return n.isError?new k(e,t,this,n):new k(e,t,this,J(`Unexpected node type ${this.type}`))};D.Expression.prototype.analyzeSingleExpressionScientific=function(e,t){var n=this.tryGetConcreteTree(e,t);if(n.isError)return new k(e,t,this,n);var r=n.getDependencies();if(r.length>0){var i=r[0],s,o=Ke[i];return o?s=o.isFunction?ms(i):ic(i):s=cf(i),new k(e,t,this,s)}return new k(e,t,this,n)};D.Assignment.prototype.analyzeSingleExpressionScientific=function(e,t){return new k(e,t,this,lf())};D.FunctionDefinition.prototype.analyzeSingleExpressionScientific=function(e,t){return new k(e,t,this,pf())};function HA(e,t){return new k(e,t,this,ma())}D.Equation.prototype.analyzeSingleExpressionScientific=HA;D.CallAssignment.prototype.analyzeSingleExpressionScientific=HA;function PM(e,t){return new k(e,t,this,sc())}D.DoubleInequality.prototype.analyzeSingleExpressionScientific=PM;D.ComparatorChain.prototype.analyzeSingleExpressionScientific=PM;D.BaseComparator.prototype.analyzeSingleExpressionScientific=PM;D.Regression.prototype.analyzeSingleExpressionScientific=function(e,t){return new k(e,t,this,oc())};D.ParenSeq.prototype.analyzeSingleExpressionScientific=function(e,t){return new k(e,t,this,ac())};D.Base.prototype.getGraphInfo=function(e,t){var n=t.getDependencies(),r,i;switch(n.length){case 0:r=UA(t),i=t.boundDomain(\"x\");break;case 1:i=t.boundDomain(n[0]),Yi(i)&&!gi(i)&&(r=UA(t));break;default:i=Xn();break}return{graphMode:this.getGraphMode(e,t),color:sa(this.userData,this.metaData),pointStyle:this.userData.pointStyle,lineStyle:this.userData.lineStyle,arrowMode:this.userData.arrowMode,operator:this.getOperator(),isLinear:!!r,linearCoefficients:r,domainBound:i}};function UA(e){switch(e.valueType){case T:return TM(e);case R:{var t=TM(e.elementAt(0)),n=TM(e.elementAt(1));return!t||!n?void 0:[t,n]}default:return}}function TM(e){var t=e.getDependencies();switch(t.length){case 0:return[+e.asValue(),0];case 1:if(e.polynomialOrder(t[0])>1)return;var n=e.getPolynomialCoefficients(t[0]);return[n[0]?+n[0].asValue():0,n[1]?+n[1].asValue():0];default:return}}var qA=new D.Constant(De(0,1));D.Base.prototype.getMoveStrategy=function(){};D.Assignment.prototype.getMoveStrategy=function(e,t,n,r){return this._expression.getMoveStrategy(e,t,n,r)};function Bz(e){return{type:\"updateSliderNonlinear\",id:e.id,initialValue:e.initialValue,min:e.min,max:e.max,compiled:e.compiled,movesOn:e.movesOn,hasLinearComponent:e.hasLinearComponent}}function Gz(e){return{type:\"updateGliderParameter\",span:e.span,movesOn:e.movesOn}}function kz(e){return{type:\"updateSliderForGlider\",id:e.sliderId,movesOn:e.movesOn,min:e.min,max:e.max}}function $A(e,t,n,r,i,s){var o=t.getDependencies();for(let y of o)if(i[y])return;for(var a=o.length-1;a>=0;a--){var u=o[a];if(!s[u]){var c=r[u];if(c!==void 0){var l=n[u];if(l.order===1){var p=l.tree,f=p.getPolynomialCoefficients(u),m=f[1]||qA,g=f[0]||qA;if(!(!g.isConstant||!m.isConstant)&&!(!isFinite(g.asValue())||!isFinite(m.asValue()))&&m.asValue()!==0){var d=[-g.asValue()/m.asValue(),1/m.asValue()];return{symbol:u,id:c,coefficients:d}}}}}}}function zz(e,t){for(var n in t){var r=t[n].evaluationState,i=r.assignment;if(i===e)return n}}function Hz(e){for(var t={},n=0;n<e.length;n++)t[e[n]]=!0;return t}function IM(e,t){var n=Hz(e),r={};for(var i in t){var s=t[i].evaluationState.assignment;t[i].evaluationState.is_slidable&&n[s]&&(r[s]=i)}return r}function YA(e,t,n,r){for(var i=[],s=0;s<n.length;s++){var o=n[s],a={};i.push(a);for(var u=0;u<r.length;u++){var c=r[u],l=Object.create(t);l[c]=void 0;var p=o.tryGetConcreteTree(e,l);if(p.isError){a[c]={tree:p,order:1/0};continue}else a[c]={tree:p,order:p.polynomialOrder(c)}}}return i}function XA(e,t,n){for(var r=0;r<e.length;r++){var i=e[r];t[i].order!==0&&(n[i]=!0)}}D.ParenSeq.prototype.getMoveStrategy=function(e,t,n,r){if(n.valueType!==R||n.getDependencies().length!==0)return;for(var i=this.getDependencies(),s=IM(i,r),o=Object.keys(s),a=this.args,u=YA(e,t,a,o),c=[],l={},p={},f=0;f<2;f++){var m=a[f];let I=m.getInputSpan();if(m.isConstant){c[f]=I?{type:\"updateCoordinate\",inputSpan:I}:{type:\"none\"};continue}var g=$A(e,m,u[f],s,l,p);g&&(c[f]={type:\"updateSlider\",id:g.id,coefficients:g.coefficients},l[g.symbol]=!0,XA(o,u[f],p)),c[f]||(c[f]={type:\"none\"})}let[d,y]=c,h;if(d.type===\"none\"&&y.type===\"none\"&&o.length===1&&(h=o[0]),!h)return d.type!==\"none\"||y.type!==\"none\"?c:void 0;var b=s[h],x;try{var P=Object.create(t);P[h]=void 0,x=this.getConcreteTree(e,P).getCompiledFunction()}catch(I){return}vI(x);var M=r[b].evaluationState;return[Bz({id:b,initialValue:M.constant_value,min:M.slider_min_number,max:M.slider_max_number,compiled:x,hasLinearComponent:d.type===\"updateSlider\"||y.type===\"updateSlider\"}),{type:\"none\"}]};D.FunctionCall.prototype.getMoveStrategy=function(e,t,n,r){if(this._symbol===\"glider\"&&!(!n.isTypedConstant||n.valueType!==R)){var i,s,o;switch(this.args[1].type){case\"Constant\":{var a=this.args[1].asValue();if(typeof a!=\"number\"||(i=this.args[0].getConcreteTree(e,t),!i.isTypedConstant))return;o=i.asTypedValue();let m=this.args[1].getInputSpan();return[m?Gz({span:m,movesOn:o}):{type:\"none\"},{type:\"none\"}]}case\"Identifier\":{var u=this.args[1]._symbol,c=IM([u],r),l=c[u];if(l===void 0)return;var p=r[l].evaluationState,f=Object.create(t);return f[u]=void 0,i=this.args[0].getConcreteTree(e,f),i.isTypedConstant?(o=i.asTypedValue(),s={min:p.slider_min_number,max:p.slider_max_number},[kz({min:s.min,max:s.max,movesOn:o,sliderId:l}),{type:\"none\"}]):void 0}default:return}}};D.Image.prototype.getMoveStrategy=function(e,t,n,r){if(!(n.center.valueType!==R||n.center.getDependencies().length!==0||!n.width.isConstant||!n.height.isConstant||!n.radianAngle.isConstant||!n.opacity.isConstant)){var i=this.getDependencies(),s=IM(i,r),o=Object.keys(s),a=[this.width,this.height];this.center.type===\"ParenSeq\"?a.push(this.center.args[0],this.center.args[1]):this.center.type===\"Identifier\"&&(this.center.referencedStatementId=zz(this.center._symbol,r));for(var u={},c={},l=YA(e,t,a,o),p=[],f=[2,3,0,1],m=0;m<f.length;m++){var g=f[m],d=a[g];if(!d){p[g]={type:\"none\"};continue}if(d.isConstant){let h=d.getInputSpan();p[g]=h?{type:\"updateCoordinate\",inputSpan:h}:{type:\"none\"};continue}var y=$A(e,d,l[g],s,u,c);y&&(p[g]={type:\"updateSlider\",id:y.id,coefficients:y.coefficients},u[y.symbol]=!0,XA(o,l[g],c)),p[g]||(p[g]={type:\"none\"})}if(!(p[0].type===\"none\"&&p[1].type===\"none\"&&p[2].type===\"none\"&&p[3].type===\"none\"))return p}};D.Base.prototype.getDefaultDragMode=function(e){return\"NONE\"};D.Assignment.prototype.getDefaultDragMode=function(e){return e[0].type!==\"none\"&&e[1].type!==\"none\"?\"XY\":e[0].type!==\"none\"?\"X\":e[1].type!==\"none\"?\"Y\":\"NONE\"};D.ParenSeq.prototype.getDefaultDragMode=function(e){return e[0].type===\"updateSlider\"&&e[1].type===\"updateSlider\"?\"XY\":e[0].type===\"updateSlider\"?\"X\":e[1].type===\"updateSlider\"?\"Y\":e[0].type===\"updateSliderNonlinear\"&&e[0].hasLinearComponent?\"X\":\"NONE\"};D.FunctionCall.prototype.getDefaultDragMode=function(e){return this._symbol!==\"glider\"?\"NONE\":D.Assignment.prototype.getDefaultDragMode.call(this,e)};var Uz=D.List;D.Base.prototype.tableInfo=function(e,t){return!1};D.Identifier.prototype.tableInfo=function(e,t){return e.validFirstColumnVariable(this._symbol)?{independent_variable:this._symbol,dependent_column:this.getInputString(),by_reference:!1}:!1};D.Expression.prototype.tableInfo=function(e,t){var n=t.getDependencies();if(Aa(this))return!1;switch(t.valueType){case R:case Pt:if(n.length!==0||t.isMovablePoint&&(t.moveStrategy[0].type===\"updateSlider\"||t.moveStrategy[1].type===\"updateSlider\"))return!1;var r=Uz.wrap(t).asValue();return{independent_variable:\"x\",dependent_column:\"y\",by_reference:!1,values:r};case T:if(n.length!==1)return!1;var i=n[0];return e.validFirstColumnVariable(i)?{independent_variable:i,dependent_column:this.getInputString(),by_reference:!1}:!1;default:return!1}};D.Assignment.prototype.tableInfo=function(e,t){if(t instanceof D.SolvedEquation||!this.getInputString().length||Aa(this)||Sp(t.valueType))return!1;let n=t.getDependencies();if(n.length>1)return!1;let r;if(n.length===0){if(!e.tableableAsConstant(this._symbol))return!1;r=e.implicitIndependent(this._symbol)}else r=n[0];if(!e.validFirstColumnVariable(r))return!1;let i=e.assignmentForbidden(this._symbol)?wo(this.getInputString().replace(/[^=]*=/,\"\")):wo(this.getInputString().split(\"=\")[0]);return{independent_variable:r,dependent_column:i,by_reference:!e.assignmentForbidden(this._symbol)}};D.FunctionDefinition.prototype.tableInfo=function(e,t){if(this._argSymbols.length!==1||!this.getInputString().length)return!1;var n=t.getDependencies();if(n.length>1)return!1;var r=this._argSymbols[0];if(!e.validFirstColumnVariable(r))return!1;var i=e.assignmentForbidden(this._symbol),s=i?wo(this.getInputString().replace(/[^=]*=/,\"\")):wo(this.getInputString().split(\"=\")[0]);return{independent_variable:r,dependent_column:s,by_reference:!i}};D.BaseComparator.prototype.tableInfo=function(e,t){return!1};D.ComparatorChain.prototype.tableInfo=function(e,t){return!1};D.DoubleInequality.prototype.tableInfo=function(e,t){return!1};D.Equation.prototype.tableInfo=function(e,t){return!1};D.Base.prototype.tableError=function(){return this.isInequality()?S(\"shared-calculator-error-table-inequality-supplement\"):!(this instanceof D.Expression)&&!(this instanceof D.IRExpression)?S(\"shared-calculator-error-table-generic-supplement\"):!1};D.List.prototype.tableError=function(){return S(\"shared-calculator-error-table-list-supplement\")};D.Equation.prototype.tableError=D.Assignment.prototype.tableError=function(){return S(\"shared-calculator-error-table-equation-supplement\")};D.ComparatorChain.prototype.tableError=function(){return this.symbols.includes(\"=\")?S(\"shared-calculator-error-table-equation-supplement\"):S(\"shared-calculator-error-table-inequality-supplement\")};D.FunctionDefinition.prototype.tableError=function(){return S(\"shared-calculator-error-table-function-definition-supplement\")};D.Regression.prototype.tableError=function(){return S(\"shared-calculator-error-table-regression-supplement\")};D.List.prototype.elementAt=function(e){return e=Math.floor(e),e>=0&&e<this.args.length?this.args[e]:new D.Constant(NaN)};D.List.prototype.eachElement=function(t){for(var n=0;n<this.length;n++)t(this.elementAt(n),n)};D.List.prototype.mapElements=function(t){for(var n=[],r=0;r<this.length;r++)n.push(t(this.elementAt(r),r));return n};D.IRExpression.prototype.elementAt=function(e){var t=this._chunk.elementAt(e);return new pn(t)};D.ParenSeq.prototype.elementAt=function(e){return e<0||e>this.args.length-1?new D.Constant(NaN):this.args[e]};function qz(){return ur(this._symbol)+\" \"}D.Identifier.prototype.printLatex=qz;D.Constant.prototype.printLatex=function(){return ta(this.asValue())};D.Ticker.prototype.printLatex=function(){return\"\\\\ticker\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.Negative.prototype.printLatex=function(){return\"-\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\"};D.Add.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)+\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.PercentOf.prototype.printLatex=function(){return this.args[0].printLatex()+\" \\\\% \\\\operatorname{of} \"+this.args[1].printLatex()};D.Subtract.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)-\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.Multiply.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)*\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.DotMultiply.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\\\\cdot\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.CrossMultiply.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\\\\times\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.Divide.prototype.printLatex=function(){return\"\\\\frac{\"+this.args[0].printLatex()+\"}{\"+this.args[1].printLatex()+\"}\"};D.Exponent.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)^{\"+this.args[1].printLatex()+\"}\"};D.Assignment.prototype.printLatex=function(){return ur(this._symbol)+\"=\"+this._expression.printLatex()};D.CoordinateEquation.prototype.printLatex=function(){return\"\\\\left(\"+this._symbols.map(e=>ur(e)).join(\",\")+\"\\\\right)=\"+this._expression.printLatex()};D.Equation.prototype.printLatex=D.CallAssignment.prototype.printLatex=function(){return this._lhs.printLatex()+\"=\"+this._rhs.printLatex()};function Sh(e){switch(e){case\">\":return\">\";case\"<\":return\"<\";case\">=\":return\"\\\\ge \";case\"<=\":return\"\\\\le \";case\"=\":return\"=\"}return\"\"}D.BaseComparator.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\"+Sh(this.operator)+\"\\\\left(\"+this.args[1].printLatex()+\"\\\\right)\"};D.ComparatorChain.prototype.printLatex=function(){let e=\"\";for(let t=0;t<this.symbols.length;t++)e+=`\\\\left(${this.args[t].printLatex()}\\\\right)${Sh(this.symbols[t])}`;return e+=`\\\\left(${this.args[this.args.length-1].printLatex()}\\\\right)`,e};D.DoubleInequality.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\"+Sh(this.args[1])+this.args[2].printLatex()+Sh(this.args[3])+\"\\\\left(\"+this.args[4].printLatex()+\"\\\\right)\"};D.Or.prototype.printLatex=function(){return this.args[0].printLatex()+\",\"+this.args[1].printLatex()};function mi(e){return e.printLatex()}function $z(){switch(this._symbol){case\"sqrt\":return\"\\\\sqrt{\"+this.args[0].printLatex()+\"}\";case\"nthroot\":return\"\\\\sqrt[\"+this.args[1].printLatex()+\"]{\"+this.args[0].printLatex()+\"}\";case\"logbase\":return\"\\\\log_{\"+this.args[1].printLatex()+\"}\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\";default:return ur(this._symbol)+\"\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"}}D.FunctionCall.prototype.printLatex=$z;D.RecursiveFunctionBaseCase.prototype.printLatex=function(){return this.originalNode.printLatex()};D.SeededFunctionCall.prototype.printLatex=function(){return ur(this._symbol)+\"\\\\left(\"+this.args.slice(1).map(mi).join(\", \")+\"\\\\right)\"};D.DotAccess.prototype.printLatex=function(){return\"(\"+this.args[0].printLatex()+\").(\"+this.args[1].printLatex()+\")\"};D.Prime.prototype.printLatex=function(){switch(this.args[0]._symbol){case\"logbase\":return\"\\\\log_{\"+this.args[0].args[1].printLatex()+\"}\"+Array(this.order+1).join(\"'\")+\"\\\\left(\"+this.args[0].args[0].printLatex()+\"\\\\right)\";default:return ur(this.args[0]._symbol)+Array(this.order+1).join(\"'\")+\"\\\\left(\"+this.args[0].args.map(mi).join(\", \")+\"\\\\right)\"}};D.List.prototype.printLatex=function(){return\"\\\\left[\"+this.args.map(mi).join(\", \")+\"\\\\right]\"};D.Range.prototype.printLatex=function(){return\"\\\\left[\"+this.args[0].args.map(mi).join(\", \")+\" ... \"+this.args[1].args.map(mi).join(\", \")+\"\\\\right]\"};D.UpdateRule.prototype.printLatex=function(){return this.args[0].printLatex()+\"\\\\to(\"+this.args[1].printLatex()+\")\"};D.ListAccess.prototype.printLatex=function(){return\"\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\\\\left[\"+this.args[1].printLatex()+\"\\\\right]\"};D.ParenSeq.prototype.printLatex=function(){return\"\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.BareSeq.prototype.printLatex=function(){return this.args.map(mi).join(\", \")};D.NamedCoordinateAccess.prototype.printLatex=function(){return\"\\\\left(\\\\left(\"+this.args[0].printLatex()+\"\\\\right).\"+this.symbol+\"\\\\right)\"};D.Norm.prototype.printLatex=function(){return\"\\\\left|\"+this.args[0].printLatex()+\"\\\\right|\"};D.Sum.prototype.printLatex=function(){return\"\\\\sum_{\"+this.args[0].printLatex()+\"=\"+this.args[1].printLatex()+\"}^{\"+this.args[2].printLatex()+\"}\\\\left(\"+this.args[3].printLatex()+\"\\\\right)\"};D.Product.prototype.printLatex=function(){return\"\\\\prod_{\"+this.args[0].printLatex()+\"=\"+this.args[1].printLatex()+\"}^{\"+this.args[2].printLatex()+\"}\\\\left(\"+this.args[3].printLatex()+\"\\\\right)\"};D.Integral.prototype.printLatex=function(){return\"\\\\int_{\"+this.args[1].printLatex()+\"}^{\"+this.args[2].printLatex()+\"}\\\\left(\"+this.args[3].printLatex()+\"\\\\right)d\"+this.args[0].printLatex()};D.FunctionExponent.prototype.printLatex=function(){return this.args[0].printLatex()+\"\\\\left(\"+this.args[1].printLatex()+\"\\\\right)^{\"+this.args[2].printLatex()+\"}\"};D.FunctionFactorial.prototype.printLatex=function(){return this.args[0].printLatex()+\"\\\\left(\"+this.args[1].printLatex()+\"\\\\right)!\"};function EM(e){return e.isConstant&&e.asValue()===!0}function Yz(e){return e.isConstant&&e.isNaN()}D.Piecewise.prototype.printLatex=function(){var e=this;if(EM(e.args[0]))return e.args[1].printLatex();for(var t=[\"\\\\left\\\\{\"];;){if(EM(e.args[0])){t.push(e.args[1].printLatex());break}if(t.push(e.args[0].printLatex(),\": \"),Yz(e.args[2])){t.push(e.args[1].printLatex());break}if(t.push(e.args[1].printLatex(),\", \"),!(e.args[2]instanceof D.Piecewise)){t.push(e.args[2].printLatex());break}e=e.args[2]}return t.push(\"\\\\right\\\\}\"),t.join(\"\")};D.Restriction.prototype.printLatex=function(){return EM(this.args[0])?\"\\\\left\\\\{\\\\right\\\\}\":\"\\\\left\\\\{\"+this.args[0].printLatex()+\"\\\\right\\\\}\"};D.FunctionDefinition.prototype.printLatex=function(){return ur(this._symbol)+\"\\\\left(\"+this._argSymbols.map(ur).join(\", \")+\"\\\\right) = \"+this._expression.printLatex()};D.Derivative.prototype.printLatex=function(){return\"\\\\frac{d}{d\"+ur(this._symbol)+\"}\\\\left(\"+this.args[0].printLatex()+\"\\\\right)\"};D.Regression.prototype.printLatex=function(){return\"\\\\left(\"+this._lhs.printLatex()+\"\\\\right)\\\\sim\\\\left(\"+this._rhs.printLatex()+\"\\\\right)\"};D.Histogram.prototype.printLatex=function(){return\"\\\\histogram\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.DotPlot.prototype.printLatex=function(){return\"\\\\dotplot\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.BoxPlot.prototype.printLatex=function(){return\"\\\\boxplot\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.TTest.prototype.printLatex=function(){return\"\\\\TTest\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.IndependentTTest.prototype.printLatex=function(){return\"\\\\IndependentTTest\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.Stats.prototype.printLatex=function(){return\"\\\\Stats\\\\left(\"+this.args.map(mi).join(\", \")+\"\\\\right)\"};D.AssignmentExpression.prototype.printLatex=function(){return ur(this._symbol)+\"=\"+this.args[1].printLatex()};D.ListComprehension.prototype.printLatex=function(){return\"\\\\left[\"+this._body.printLatex()+\"\\\\operatorname{for}\"+this._inputLists.map(mi).join(\", \")+\"\\\\right]\"};D.Substitution.prototype.printLatex=function(){return\"\\\\left(\\\\left(\"+this._body.printLatex()+\"\\\\right)\\\\operatorname{with}\"+this._assignments.map(mi).join(\", \")+\"\\\\right)\"};D.Construction.prototype.printLatex=function(){return\"\\\\construction \"};D.Base.prototype.getExpressionType=function(e,t){switch(e){case 114:case 115:case 116:return t&&W(t)?\"POINT3D_LIST\":\"POINT3D\";case 100:case 101:case 102:case 128:return\"CURVE3D_xyz_t\";case 119:return\"SEGMENT3D\";case 129:return\"VECTOR3D\";case 130:case 103:case 104:case 105:return\"SURFACE_xyz_uv\";case 110:return\"SURFACE_r_\\u03B8z\";case 124:return\"SURFACE_r_\\u03B8z_AMBIGUOUS\";case 109:return\"SURFACE_z_r\\u03B8\";case 111:return\"SURFACE_r_\\u03B8\\u03C6\";case 107:case 108:case 106:return\"SURFACE\";case 118:return\"SPHERE3D\";case 117:return\"TRIANGLE3D\";case 120:case 121:return\"SURFACE_AMBIGUOUS\";case 122:case 123:return\"SURFACE_CONSTANT_AMBIGUOUS\";case 112:case 113:case 210:return\"IMPLICIT_SURFACE\";case 126:case 127:return\"IMPLICIT_SURFACE_AMBIGUOUS\";case 3:case 4:return t&&W(t)?\"POINT_LIST\":\"SINGLE_POINT\";case 1:case 2:return\"X_OR_Y\";case 5:return\"PARAMETRIC\";case 6:return\"POLAR\";case 8:return\"IMPLICIT\";case 24:case 17:return\"VECTOR2D\";case 200:case 201:case 202:case 205:case 209:return\"SLICE\";case 211:case 206:return\"SLICE_r\\u03B8z_at_z\";case 203:return\"SLICE_zr\\u03B8_at_r\";case 204:return\"SLICE_zr\\u03B8_at_\\u03B8\";case 213:return\"SLICE_zr\\u03B8_at_xyz\";case 207:return\"SLICE_r\\u03B8\\u03C6_at_\\u03B8\";case 208:return\"SLICE_r\\u03B8\\u03C6_at_\\u03C6\";case 212:return\"SLICE_r\\u03B8\\u03C6_at_xyz\";case 214:case 215:return\"SLICE_xyz_uv\";default:return t!==void 0&&oe(t,Be)?\"POLYGON\":\"X_OR_Y\"}};D.Histogram.prototype.getExpressionType=function(e,t){return\"HISTOGRAM\"};D.DotPlot.prototype.getExpressionType=function(e,t){return\"DOTPLOT\"};D.BoxPlot.prototype.getExpressionType=function(e,t){return\"BOXPLOT\"};var Oh=class extends j{};var Ch=class extends j{constructor(t){super(t),this._symbol=\"sphere\"}};function Xz(e){return function(n){return new e(n)}}var Zz=[Ql,Il,qa,Cl,ep,tp,xi,Oh,uu,Ol,cu,El,Ml,Sl,Nl,Tl,Vo,Ua,Kl,np,al,rp,Qi,ip,hr,ol,xl,Pl,vl,Ch,Al,ni,Rl,Dl];for(let e of Zz)e.prototype.copyWithArgs=Xz(e);Ns.prototype.copyWithArgs=function(e){return new qr[this.operator](e)};Xa.prototype.copyWithArgs=function(e){return new Xa(this.symbols,e)};Zt.prototype.copyWithArgs=function(e){return new Zt(this._constantValue)};ju.prototype.copyWithArgs=function(e){return new ju(this.constructedObjectIds)};cc.prototype.copyWithArgs=function(e){return new cc(this._symbol,e)};dc.prototype.copyWithArgs=function(e){return new dc(this.tag,e)};cn.prototype.copyWithArgs=function(e){return new cn(new ze(this._symbol),e)};ze.prototype.copyWithArgs=function(e){return new ze(this._symbol)};ya.prototype.copyWithArgs=function(e){return new ya(e[0],e[1],e.slice(2),this.shouldCoerceToList,this.parameters)};Ju.prototype.copyWithArgs=function(e){return new Ju(this.symbol,e)};uc.prototype.copyWithArgs=function(e){return new uc(this.order,e)};lc.prototype.copyWithArgs=function(e){return new lc(this.value)};Go.prototype.copyWithArgs=function(e){return new Go(e[0],e.slice(1))};fc.prototype.copyWithArgs=function(e){return new fc(this._stringValue)};function Id(e,t,n){let r=[],i={},s={},o={},a={},u={},c={},l=new Set,p={},f=new Set,m={},g=0,d=[],y=[];if(!n){n=[];for(let P in t)t.hasOwnProperty(P)&&n.push(P)}for(let P in t){if(!t.hasOwnProperty(P))continue;let M=t[P].exportPenalty||0;for(;r.length<M+1;)r.push([]);r[M].push(P)}for(let P of r){let M={};for(let I of P){let E=t[I],v=t[I].exportPenalty||0,O=Gs(E),A=E.getLegalExports(e);for(let N of A)Ke[N]||i[N]||(O&&(u[N]=!0),v===0&&(a[N]=!0),M[N]=M[N]||[],M[N].push(I),M[N].length>1&&(!s[N]&&O&&(o[N]=!0),s[N]=!0))}for(let I in M)o[I]||(i[I]=M[I])}for(let P of n)m.hasOwnProperty(P)||h(P);function h(P){m[P]=m[P]||{};let M=m[P],I;M.id=P,M.index=g,M.lowlink=g,d.push(M),M.instack=!0,g++;let E=t[P].getDependencies();for(let v of E){if(!i.hasOwnProperty(v))continue;let O=i[v];for(let A of O)m.hasOwnProperty(A)?(I=m[A],I.instack&&(M.lowlink=Math.min(M.lowlink,I.index))):(h(A),I=m[A],M.lowlink=Math.min(M.lowlink,I.lowlink))}if(M.lowlink===M.index)if(I=d.pop(),I.instack=!1,I===M)b(M);else{let v=[I];for(;I=d.pop(),I.instack=!1,v.push(I),I!==M;);x(v)}}function b(P){y.push(P.id);let M=t[P.id];M instanceof cr&&M._expression.getDependencies().indexOf(M._symbol)!==-1&&(p[P.id]={[P.id]:M},f.add(M._symbol))}function x(P){let M=[],I=!0,E={},v=new Set;for(let O=P.length-1;O>=0;O--){let A=P[O],N=t[A.id],L=N.getLegalExports(e);Array.prototype.push.apply(M,L),M.push(L[0]),v.add(A.id),y.push(A.id),N instanceof cr&&!s[L[0]]?E[A.id]=N:I=!1,N instanceof wi&&l.add(A.id)}if(M=wp(M),M.sort(),I){for(let O of[...v])p[O]=E;for(let O of M)f.add(O)}for(let O of M)c[O]=M}return{resolved:y,globallyDefined:a,tableDefined:u,multiplyDefined:s,multiplyDefinedByTables:o,cyclicallyDefined:c,recursiveFunctionGroups:p,recursiveFunctionSymbols:f,recursiveFunctionBaseCasesWithCycles:l}}var Wz=100;function Rh(e){for(var t=[],n=0;n<e;n++)t[n]={x:[],y:[],intersects:[]};return t}function jz(e,t,n,r){return n===1&&r===1||n===2&&r===2?function(i){return t(i)-e(i)}:n===1&&r===2||n===2&&r===1?function(i){return i-t(e(i))}:!1}function WA(e,t){t instanceof D.SolvedEquation?t=t._expression:t instanceof D.OptimizedRegression&&(t=t.model);var n=[],r=[];return t instanceof D.DoubleInequality?D.List.eachArgs(t._expressions,function(i){n.push(i[0].getCompiledFunction()),r.push(i[0].isConstant&&i[1].isNaN()),n.push(i[1].getCompiledFunction()),r.push(i[1].isConstant&&i[1].isNaN())}):D.List.wrap(t).eachElement(function(i){n.push(i.getCompiledFunction()),r.push(i.isConstant&&i.isNaN())}),{functions:n,skipIntersecting:r}}function Jz(e,t){var n=[];for(var r in e)if(e.hasOwnProperty(r)&&String(r)!==String(t)&&e[r].shouldIntersect()){var i=e[r],s=WA(i.policy,i.concreteTree);n.push({id:r,graphMode:i.getGraphMode(),functions:s.functions,skipIntersecting:s.skipIntersecting})}return n}function Qz(e,t){e.intersects=Array(e.x.length);for(var n=0;n<e.x.length;n++)e.intersects[n]=t}function Kz(e,t){if(t===1){var n=e.y;e.y=e.x,e.x=n}}function eH(e,t){Array.prototype.push.apply(e.x,t.x),Array.prototype.push.apply(e.y,t.y),e.intersects&&t.intersects&&Array.prototype.push.apply(e.intersects,t.intersects)}function tH(e,t,n){var r=A0(e,t),i=r.poi.zeros,s=r.poi.extrema,o=[],a=0,u=0;for(a=0;a<i.x.length;a++){for(;u<s.x.length&&s.x[u]<i.x[a];u++)Li(s.y[u],0)&&o.push(s.x[u]);o.push(i.x[a])}for(;u<s.x.length;u++)Li(s.y[u],0)&&o.push(s.x[u]);return{x:o,y:o.map(n)}}function jA(e,t,n){var r=e[n],i=r.getGraphInfo(),s=r.getGraphMode(),o,a,u;try{o=WA(r.policy,r.concreteTree),a=Rh(o.functions.length),u=Jz(e,n)}catch(x){return Rh(0)}if(!u)return a;for(var c=0,l=0;l<u.length;l++)for(var p=u[l],f=0;f<o.functions.length;f++)if(!o.skipIntersecting[f]){for(var m=o.functions[f].fn,g=Ip(t,i,m),d=0;d<p.functions.length;d++)if(!u[l].skipIntersecting[d]){var y=p.functions[d].fn,h=jz(m,y,s,p.graphMode);if(h){var b;try{b=tH(h,g,m)}catch(x){return Rh(0)}if(c+=b.x.length,c>Wz)return Rh(o.functions.length);Qz(b,p.id),Kz(b,s),eH(a[f],b)}}}return a}function nH(e){if(e.length<2)return\"text\";let t=e.split(\"`\").length-1;return t<2?\"text\":t===2&&e[0]===\"`\"&&e[e.length-1]===\"`\"?\"latex\":\"mixed\"}function rH(e){if(e.length===0)return[\"\"];let t=[],n=e.split(/(`)/),r=!1,i=\"\";for(let s=0;s<n.length;s++){let o=n[s];o.length&&(o===\"`\"?(i+=\"`\",r=!r,r||(t.push(i),i=\"\")):(i+=o,r||(t.push(i),i=\"\")))}return i.length&&t.push(i),t}function MM(e){return rH(e).map(iH)}function iH(e){let n=\"\\\\$({\"+[\"[a-zA-Z][0-9]*\",\"[a-zA-Z]_[a-zA-Z0-9]+\",\"[a-zA-Z]_\\\\{[a-zA-Z0-9]+\\\\}\",\"\\\\\\\\[a-zA-Z]+\",\"\\\\\\\\[a-zA-Z]+_{[a-zA-Z0-9]+}\",\"\\\\\\\\[a-zA-Z]+_[a-zA-Z0-9]+\"].join(\"})|\\\\$({\")+\"})\",r=new RegExp(n,\"g\"),i=[],s=0,o=0,a;for(;a=r.exec(e);){o=a.index,o>s&&i.push(e.substr(s,o-s));let u=a[0],c=u.replace(/[{}\\$]/g,\"\").replace(/^([a-zA-Z])([0-9]+)$/,\"$1_$2\");i.push({symbol:c,str:u}),s=a.index+u.length}return s<e.length&&i.push(e.substr(s)),{raw:e,parts:i}}function JA(e,t){return t?\"{\"+Qh(e,{bigCutoff:1e7,digits:8})+\"}\":$d(e,{bigCutoff:1e7,digits:8})}function vM(e,t,n,r){return e.map(i=>sH(i,t,n,r)).join(\"\")}function sH(e,t,n,r){let i=[],s=nH(e.raw)===\"latex\";for(let o of e.parts)if(typeof o==\"string\")i.push(o);else{let a=new D.Identifier(o.symbol).tryGetConcreteTree(t,n);if(a.valueType===T&&a.getDependencies().length===0){let u=a.asValue();if(typeof u==\"number\"){i.push(JA(u,s));continue}}else if(a.valueType===se&&r<a.length&&a.getDependencies().length===0){let u=a.elementAt(r).asValue();if(typeof u==\"number\"){i.push(JA(u,s));continue}}s?i.push(\"{?}\"):i.push(\"?\")}return i.join(\"\")}function QA(){let e={},t={},n={},r=[];for(let i in this.statements){if(!this.statements.hasOwnProperty(i))continue;let s=this.statements[i];if(!(s.type===\"Construction\"&&!this.policy.isGeometryEnabled())&&s.type!==\"Ticker\")switch(s.type){case\"Error\":break;case\"Regression\":{n[i]=[],r.push(i);break}default:{let o=s.getLegalExports(this.policy);if(o){for(let u of o)s.exportPenalty!==void 0&&s.exportPenalty>0?t[u]=i:e[u]=i;let a=[];for(let u of s.getDependencies())a.push(u);n[i]=Yh(a,s.getDummyDependencies(),o)}break}}}for(let i of r){let s=this.statements[i],o=Lo(s.userData.residualVariable);o&&(t[o]=i);let a=s.getDependencies().slice(),u={},c;for(;c=a.pop();){if(u[c])continue;u[c]=!0;let l=e[c]||t[c];if(l){a.push(...n[l]),n[i].push(c);continue}t[c]=i}}return{exportMap:e,weakExportMap:t,dependencyMap:n}}var Ed=class{constructor(){this.data={}}getChildIntersections(t){return this.data[t]||{count:0}}addListParent(t,n,r){if(Op(r.valueType,[R,Pt]),n!==void 0)r.valueType===Pt?this.addPoint(t,n,r.value[n]):this.addPoint(t,n,r.value);else{Op(r.valueType,[Pt]);for(let i=0;i<r.value.length;i++)this.addPoint(t,i,r.value[i])}}addPrimitiveParent(t,n){if(Op(n.valueType,[R,Pt]),n.valueType===R)this.addPoint(t,0,n.value);else for(let r=0;r<n.value.length;r++)this.addPoint(t,0,n.value[r])}addPoint(t,n,r){var s;let i=this.data[t]||{count:0};this.data[t]||(this.data[t]=i),i[n]||(i[n]=[]),(s=i[n])==null||s.push(r),i.count++}};var Md=class{constructor(t){this.singleExpression=t.singleExpression}isGeometryEnabled(){return!1}is3dProduct(){return!1}is3dPolicy(){return!1}isBeta3d(){return!1}areAllScalesLinear(){return!0}assignmentForbidden(t){return this.substitutionForbidden(t)}substitutionForbidden(t){return t.slice(0,3)!==\"ans\"}isValidSlider(t){return!1}sliderVariables(){return[]}graphingEnabled(){return!1}ansEnabled(){return!this.singleExpression}dimensionVarsEnabled(){return!1}disabledFeatures(){return[\"Sum\",\"Product\",\"Integral\",\"List\",\"Derivative\",\"Piecewise\",\"Restriction\",\"Norm\",\"Exponent\",\"PercentOf\",\"Substitution\"]}};var vd=class{constructor(t){this.singleExpression=t.singleExpression}isGeometryEnabled(){return!1}is3dProduct(){return!1}is3dPolicy(){return!1}isBeta3d(){return!1}areAllScalesLinear(){return!0}assignmentForbidden(t){return this.substitutionForbidden(t)}substitutionForbidden(t){return this.singleExpression?t.slice(0,3)!==\"ans\":t.slice(0,3)===\"tmp\"}isValidSlider(t){return!1}sliderVariables(){return[]}graphingEnabled(){return!1}ansEnabled(){return!this.singleExpression}dimensionVarsEnabled(){return!1}disabledFeatures(){return this.singleExpression?[\"Sum\",\"Product\",\"Integral\",\"Derivative\",\"Piecewise\",\"Substitution\",\"PercentOf\"]:[\"Sum\",\"Product\",\"Integral\",\"Derivative\",\"Piecewise\",\"Substitution\"]}};function KA(e,t,n,r){try{let i=cH(e,t,r);for(let s in i)n[s]=i[s],n[s].exportTo(e,t)}catch(i){if(!(i instanceof C))throw i;for(let s in r)n[s]=new k(e,t,r[s],i),n[s].exportTo(e,t)}}function cH(e,t,n){let r={};for(let u in n)r[n[u]._symbol]=n[u];let i=new DM(r),s={},o={definitions:s,baseCases:i.getBaseCases()};for(let u in n){let c=n[u];lH(i,c,o)}for(let u of i.getBaseCaseExports()){let c=u.analyze(e,t,{});for(let l of u.getLegalExports(e))delete t[l];c.exportTo(e,t)}let a={};for(let u in n){let c=n[u],l=c._symbol,p=s[l];p.userData=c.userData,p.metaData=c.metaData,p instanceof C?a[u]=new k(e,t,c,p):a[u]=p.analyze(e,t,a)}return a}var DM=class{constructor(t){this.baseCases={};this.baseCaseExports=[];this.analyzedFunctions={};this.recursiveFunctionGroup=t;for(let n in t)this.baseCases[n]=[];for(let n in this.recursiveFunctionGroup)this.analyzeRecursiveFunctionDefinition(this.recursiveFunctionGroup[n])}analyzeRecursiveFunctionDefinition(t){let n;for(let r of t.getExternalBaseCases())this.addBaseCase(r);if(t._expression instanceof hr){n=t._expression;do{let r=n.args[0],i=n.args[1];if(this.recursiveParameterIndex!==void 0&&r instanceof qr[\"=\"]){let s=t._argSymbols[this.recursiveParameterIndex],o=r.args.findIndex(p=>p instanceof ze&&p._symbol===s);if(o===-1)break;let a=r.args[1-o];if(!(a instanceof Zt))break;let u=a.asValue(),c=t._argSymbols.filter((p,f)=>f!==this.recursiveParameterIndex).map(p=>new ze(p)),l=new wi(t._symbol,c,{valid:!0,argIndex:this.recursiveParameterIndex,argValue:u,functionDefArgSymbols:t._argSymbols,argSymbol:t._argSymbols[this.recursiveParameterIndex]},i,i);this.baseCaseExports.push(l),this.addBaseCase(l)}else break;n=n.args[2]}while(n instanceof hr)}else if(t._expression instanceof Go){let r=[];for(let i of t._expression._assignments){let s=wi.fromCallAssignment(this.recursiveFunctionGroup,i);if((s==null?void 0:s.specifiedArg.valid)===!1)throw s.specifiedArg.error;s&&t._symbol===s._symbol?(this.baseCaseExports.push(s),this.addBaseCase(s)):r.push(i)}r.length>0?n=new Go(t._expression._body,r):n=t._expression._body}else n=t._expression;this.analyzedFunctions[t._symbol]={recursiveExpression:n}}addBaseCase(t){this.baseCases[t._symbol].push(t)}getBaseCases(){return this.baseCases}getBaseCaseExports(){return this.baseCaseExports}getFunctionAnalysis(t){return this.analyzedFunctions[t]}};function lH(e,t,n){let r=e.getFunctionAnalysis(t._symbol);if(!r){n.definitions[t._symbol]=t;return}let i=new cr(new ze(t._symbol),t._argSymbols.map(s=>new ze(s)),r.recursiveExpression,n);i.setExternalBaseCases(t.getExternalBaseCases()),n.definitions[t._symbol]=i}var Va=typeof performance!=\"undefined\"?()=>performance.now():()=>Date.now(),{Constant:eo,Seed:t_,FunctionCall:gH,Image:hH,Slider:bH,Table:xH,TableColumn:PH,Construction:TH}=D;function IH(e,t,n,r){switch(e){case\"fourFunction\":return new Md({singleExpression:!1});case\"singleExpressionFourFunction\":return new Md({singleExpression:!0});case\"scientific\":return new vd({singleExpression:!1});case\"singleExpressionScientific\":return new vd({singleExpression:!0});case\"graphing\":return new Ep({enableGeometry:!1,enable3d:t,beta3d:n,scales:r});case\"geometry\":return new Ep({enableGeometry:!0,enable3d:!1,beta3d:!1,scales:r});case\"graphing_3d\":return new fh(n)}}var EH={fourFunction:jd,singleExpressionFourFunction:jd,scientific:ib,singleExpressionScientific:sb,graphing:Bp,graphing_3d:Bp,geometry:Bp},Co=\"**geo_construction_statement_id**\";function _i(e,t){var n=Vs(e,t);return n.isError||n instanceof D.Expression?n:Up()}function MH(e){let t=e.rawTree.userData,n=e.rawTree.metaData;return!!(t.cdf&&t.cdf.show&&n.distributionSpec)}function vH(e){let t=e.evaluationState.expression_type,n=e.rawTree.userData;return!n.clickableInfo||!n.clickableInfo.enabled?!1:rd(e.rawTree)?!0:e.getGraphMode()===4?!1:ZE(t)}function un(e,t){let n=\"id\"+e;for(let[r,i]of t||[])n+=\"::\"+r+i;return n}var DH=new eo(De(0,1)),SH=new eo(De(1,1)),OH=new eo(NaN);function $i(e,t){return e?e===\"0\"?DH:e===\"1\"?SH:_i(e,t):OH}function Gu(e,t){if(e)return _i(e,t)}function CH(e){return e.slice(0,3)!==\"ans\"}function RH(e){return e.slice(0,6)!==\"idref_\"}function n_(e,t,n){let{multiplyDefined:r,multiplyDefinedByTables:i,cyclicallyDefined:s,recursiveFunctionSymbols:o}=e;for(let a in s){if(!s.hasOwnProperty(a)||n&&o.has(a))continue;let u=e.tableDefined[a]&&!e.globallyDefined[a],c=s[a].filter(CH).filter(RH);t[a]=u?Kx(c):Mm(c)}for(let a in r)r.hasOwnProperty(a)&&(t[a]=i[a]?Qx(a):dl(a))}function Sd(e,t,n){for(let r of n)e[r]||(e[r]=[]),e[r].push(t)}function r_(e,t,n){if(n.extraDepNodes)for(let r of n.extraDepNodes)r&&Sd(e,t,r.getDependencies());n.clickHandler&&Sd(e,t,n.clickHandler.getDependencies())}function NH(e,t,n){let r=e.evaluationState,i=e.rawTree,s=i.metaData.cdfMin,o=i.metaData.cdfMax,a={},u=i.type===\"Assignment\"?i._expression:i,c=u&&u.metaData&&u.metaData.distributionSpec,l=oa(t,n,s,a,-1/0),p=oa(t,n,o,a,1/0),f=!0,m=!0;if(isNaN(l)&&(f=!1,l=NaN),isNaN(p)&&(m=!1,p=NaN),f?m?l>p&&(f=!1,m=!1,r.error=pP().getError()):r.error=lP().getError():r.error=cP().getError(),f&&m){let y=new gH(\"cdf\",[u,new eo(l),new eo(p)]);r.cdf_evaluation=+y.tryGetConcreteTree(t,n).asValue()}let g=-1/0,d=1/0;if(c&&(c.discrete&&(g=0),c.symbol===\"binomialdist\"&&u.args&&u.args[0])){let y=+u.args[0].asValue();isFinite(y)&&(d=y)}i.metaData.evaluatedCDFMin=l,i.metaData.evaluatedCDFMax=p,r.cdf_min_valid=f,r.cdf_max_valid=m,r.cdf_min_default=g,r.cdf_max_default=d,r.is_single_identifier=!1,Fu(r,t,a)}function AH(e,t,n,r,i){let s={},o=!0,a=NaN,u,c=!1;if(n){let l=n.tryGetConcreteTree(e,t);u=l.getDependencies().length===0?l.asValue():NaN,c=Array.isArray(u),a=c?u:+u;for(let p of l.getDependencies())s[p]=!0}if(c){for(let l of a)if(!isFinite(+l)){o=!1,a=NaN;break}}else isFinite(+a)?i!==void 0&&a>i&&(a=i):(o=!1,a=NaN);return n||(o=!0,r!==void 0&&(a=r)),{value:a,valid:o,missingVarsMap:s}}var Dd={lineWidth:{parseNode:\"lineWidth\",valueOutputProp:\"computedLineWidth\",formulaOutputProp:\"\",validOutputProp:\"line_width_valid\",default:(e,t,n,r)=>{let i=n.isGeometryEnabled(),s=n.is3dPolicy(),o=r!==void 0&&oe(r,Be);return i&&o?1.5:s?1:2.5},transform:void 0,shouldEvaluate:void 0,seed:\"lw\"},resolution:{parseNode:\"resolution\",valueOutputProp:\"computedResolution\",formulaOutputProp:\"\",validOutputProp:\"resolution_valid\",default:()=>{},transform:void 0,shouldEvaluate:void 0,seed:\"re\"},lineOpacity:{parseNode:\"lineOpacity\",valueOutputProp:\"computedLineOpacity\",formulaOutputProp:\"\",validOutputProp:\"line_opacity_valid\",default:()=>1,transform:void 0,shouldEvaluate:void 0,seed:\"lo\"},pointOpacity:{parseNode:\"pointOpacity\",valueOutputProp:\"computedPointOpacity\",formulaOutputProp:\"\",validOutputProp:\"point_opacity_valid\",default:()=>1,transform:void 0,shouldEvaluate:void 0,seed:\"po\"},pointSize:{parseNode:\"pointSize\",valueOutputProp:\"computedPointSize\",formulaOutputProp:\"\",validOutputProp:\"point_size_valid\",default:(e,t,n)=>n.is3dProduct()?3:8,shouldEvaluate:void 0,transform:void 0,seed:\"ps\"},movablePointSize:{parseNode:\"movablePointSize\",valueOutputProp:\"computedMovablePointSize\",formulaOutputProp:\"\",validOutputProp:\"movable_point_size_valid\",default:()=>8,shouldEvaluate:void 0,transform:void 0,seed:\"ps\"},fillOpacity:{parseNode:\"fillOpacity\",valueOutputProp:\"computedFillOpacity\",formulaOutputProp:\"\",validOutputProp:\"fill_opacity_valid\",default:(e,t,n,r)=>n.is3dProduct()?1:.4,transform:void 0,shouldEvaluate:e=>{if(!e)return!1;let{expression_type:t,is_inequality:n}=e.evaluationState;return!!(t===\"POLYGON\"||t===\"PARAMETRIC\"||t===\"CURVE3D_xyz_t\"||t===\"SURFACE\"||t===\"SPHERE3D\"||t===\"SURFACE_AMBIGUOUS\"||t===\"SURFACE_CONSTANT_AMBIGUOUS\"||t===\"IMPLICIT_SURFACE\"||t===\"IMPLICIT_SURFACE_AMBIGUOUS\"||t===\"SURFACE_xyz_uv\"||t===\"SURFACE_z_r\\u03B8\"||t===\"SURFACE_r_\\u03B8z\"||t===\"SURFACE_r_\\u03B8\\u03C6\"||t===\"SURFACE_r_\\u03B8z_AMBIGUOUS\"||t===\"TRIANGLE3D\"||n)},seed:\"fo\"},labelSize:{parseNode:\"labelSize\",valueOutputProp:\"computedLabelSize\",formulaOutputProp:\"\",validOutputProp:\"label_size_valid\",transform:void 0,default:()=>1,shouldEvaluate:void 0,seed:\"ls\"},labelAngle:{parseNode:\"labelAngle\",valueOutputProp:\"computedLabelAngle\",formulaOutputProp:\"label_angle_value\",validOutputProp:\"label_angle_valid\",default:()=>0,transform:e=>`-\\\\trigAngleMultiplier*(${e})`,shouldEvaluate:void 0,seed:\"la\"}};function i_(e,t,n,r,i,s,o){let a=Dd[s],u;e&&(u=e.tryGetConcreteTree(r,i));let c=a.default&&a.default(e,u,r,o),l=[\"lineWidth\",\"pointSize\",\"movablePointSize\"].indexOf(s)>=0,p=AH(r,i,n[a.parseNode],c,l?1e4:void 0);n[a.valueOutputProp]=p.value,a.formulaOutputProp&&(t[a.formulaOutputProp]=p.value),t[a.validOutputProp]=p.valid,Fu(t,r,p.missingVarsMap)}function _H(e,t,n,r){let i,s,o;if(Gs(e.rawTree)&&e.evaluationState.column_data&&e.rawTree.columns)for(let a=0;a<e.evaluationState.column_data.length;a++){i=e.evaluationState.column_data[a];let u=e.rawTree.columns[a];xo(u)||(s=u.header.metaData,o=s[r],i_(o,i,s,t,n,r,e.concreteTree.valueType))}else i=e.evaluationState,s=e.rawTree.metaData,o=s[r],i_(o,i,s,t,n,r,e.concreteTree.valueType)}function s_(e){return xc(e[0],e[1],e[2]).formatHex()}function o_(e,t,n,r,i){let s;if(e){let o=e.tryGetConcreteTree(r,i),a=o.getDependencies().length>0?void 0:o.asValue(),{valueType:u}=o;if(s=!!(a&&(u===Ut||u===Zn)),s){let c=o&&o.valueType===Ut?s_(a):a.map(s_);t.colorLatexValue=c,n.color_latex_value=c}else delete t.colorLatexValue,delete n.color_latex_value}else s=!0;n.color_latex_valid=s}function LH(e,t,n){let r,i,s;if(Gs(e.rawTree)&&e.evaluationState.column_data&&e.rawTree.columns)for(let o=0;o<e.evaluationState.column_data.length;o++){r=e.evaluationState.column_data[o];let a=e.rawTree.columns[o];xo(a)||(i=a.header.metaData,s=i.colorLatex,o_(s,i,r,t,n))}else r=e.evaluationState,i=e.rawTree.metaData,s=i.colorLatex,o_(s,i,r,t,n)}function wH(e){if(e.concreteTree.valueType===Ut&&e.concreteTree.getDependencies().length>0){let t=e.concreteTree._chunk;try{e.evaluationState.shader=Wo(t,0)}catch(n){e.evaluationState.error=n instanceof D.Error?n.getError():J(n).getError()}}}function FH(e,t,n){let r=e.evaluationState,i=e.rawTree,s={},o=i.metaData.clickHandler;if(!o)return;let a=o.tryGetConcreteTree(t,n);!a.isError&&a.valueType!==rt&&(a=jp(ne(a.valueType)));for(let c of a.getDependencies())t.validActionVariable(c)||(s[c]=!0);let u=Object.keys(s);u.length>0&&(a=tn(u).setDependencies(a.getDependencies())),a.isError&&!nM(t,a)?r.click_handler={status:\"error\",error:a.getError()}:a.isEmptyAction?r.click_handler={status:\"empty\"}:r.click_handler={status:\"maybe-valid\"},Fu(r,t,s)}function VH(e,t,n){let r,i=e.evaluationState,s=e.rawTree,o,a;i.internal_domain_dependency?(r=i.internal_domain_dependency,r===\"u\"?(o=s.metaData.parametricDomain3DuMin,a=s.metaData.parametricDomain3DuMax):r===\"v\"?(o=s.metaData.parametricDomain3DvMin,a=s.metaData.parametricDomain3DvMax):(o=s.metaData.parametricDomainMin,a=s.metaData.parametricDomainMax)):i.expression_type===\"POLAR\"||$R(i.expression_type)?(o=s.metaData.polarDomainMin,a=s.metaData.polarDomainMax,r=\"theta\"):(o=s.metaData.parametricDomainMin,a=s.metaData.parametricDomainMax,r=\"t\");let u={},c=!!(o||a),l=oa(t,n,o,u,0),p=NaN;a?p=oa(t,n,a,u,NaN):i.expression_type===\"PARAMETRIC\"||i.expression_type===\"CURVE3D_xyz_t\"?p=1:i.expression_type===\"POLAR\"?p=Math.PI*12/+n.trigAngleMultiplier.asValue():(i.expression_type===\"SURFACE_r_\\u03B8z\"||i.expression_type===\"SURFACE_r_\\u03B8z_AMBIGUOUS\"||i.expression_type===\"SLICE_r\\u03B8z_at_z\")&&(p=Math.PI*2/+n.trigAngleMultiplier.asValue());let f=CM(l,p,i);({min:l,max:p}=f),s.metaData.evaluatedDomainMin=l,s.metaData.evaluatedDomainMax=p,(i.expression_type===\"POLAR\"||i.expression_type===\"SURFACE_r_\\u03B8z\"||i.expression_type===\"SURFACE_r_\\u03B8z_AMBIGUOUS\"||i.expression_type===\"SLICE_r\\u03B8z_at_z\")&&(s.metaData.isExplicitDomain=c),i.domains=[{variable:r,minNumber:l,maxNumber:p,minValid:f.minValid,maxValid:f.maxValid}],i.expression_type===\"PARAMETRIC\"&&delete u.t,i.expression_type===\"CURVE3D_xyz_t\"&&(delete u.t,delete u.u,delete u.v),Fu(i,t,u)}function BH(e,t,n){let r=e.evaluationState,i=r.expression_type,s=e.rawTree,o,a,u,c,l={},p=0,f=1,m=0,g=1;var d,y;UR(i)?(d=\"theta\",y=\"phi\",o=s.metaData.polarDomainMin,a=s.metaData.polarDomainMax,u=s.metaData.parametricDomain3DphiMin,c=s.metaData.parametricDomain3DphiMax,f=2*Math.PI/+n.trigAngleMultiplier.asValue(),g=Math.PI/+n.trigAngleMultiplier.asValue()):qR(i)?(d=\"r\",y=\"theta\",o=s.metaData.parametricDomain3DrMin,a=s.metaData.parametricDomain3DrMax,u=s.metaData.polarDomainMin,c=s.metaData.polarDomainMax,f=lr.xmax,g=2*Math.PI/+n.trigAngleMultiplier.asValue()):(d=\"u\",y=\"v\",o=s.metaData.parametricDomain3DuMin,a=s.metaData.parametricDomain3DuMax,u=s.metaData.parametricDomain3DvMin,c=s.metaData.parametricDomain3DvMax),p=oa(t,n,o,l,p),f=oa(t,n,a,l,f),m=oa(t,n,u,l,m),g=oa(t,n,c,l,g);let h=CM(p,f,r);({min:p,max:f}=h);let b=CM(m,g,r);({min:m,max:g}=b),s.metaData.evaluatedDomain3DMin1=p,s.metaData.evaluatedDomain3DMax1=f,s.metaData.evaluatedDomain3DMin2=m,s.metaData.evaluatedDomain3DMax2=g,r.domains=[{variable:d,minNumber:p,minValid:h.minValid,maxNumber:f,maxValid:h.maxValid},{variable:y,minNumber:m,minValid:b.minValid,maxNumber:g,maxValid:b.maxValid}],(r.expression_type===\"SURFACE_xyz_uv\"||r.expression_type===\"SLICE_xyz_uv\")&&(delete l.u,delete l.v),Fu(r,t,l)}function oa(e,t,n,r,i){if(n){let s=n.tryGetConcreteTree(e,t);for(let o of s.getDependencies())r[o]=!0;return s.isConstant?+s.asValue():NaN}else return i}function CM(e,t,n){let r=!0,i=!0;return isFinite(e)||(r=!1,e=NaN),isFinite(t)||(i=!1,t=NaN),r?i?e>t&&(r=!1,i=!1,n.error=uP().getError()):n.error=aP().getError():n.error=oP().getError(),{min:e,max:t,minValid:r,maxValid:i}}function GH(e,t,n){let r=e.evaluationState,i=e.rawTree,s=i.metaData.vizAxisOffset,o=i.metaData.vizBreadth,a={},u=oa(t,n,s,a,1),c=oa(t,n,o,a,1),l=!0,p=!0;isFinite(u)||(l=!1,u=NaN),isFinite(c)||(p=!1,c=NaN),l?p||(r.error=fx().getError()):r.error=px().getError(),i.metaData.evaluatedAxisOffset=u,i.metaData.evaluatedBreadth=c,r.viz_values={axisOffset:u,breadth:c},r.viz_valids={axisOffset:l,breadth:p},Fu(r,t,a)}function kH(e){return e.globalRandomSeed||[]}function SM(e,t,n,r,i){let s={},o={},a=[],u=[];for(let c in r)r[c]&&(o[c]=!0,a.push(c));for(let c in i)i[c]&&(s[c]=!0,u.push(c));for(;a.length||u.length;){for(;a.length;){let c=a.pop(),l=t[c];if(l)for(let p of l.getLegalExports(e))s[p]||(s[p]=!0,u.push(p))}for(;u.length;){let c=u.pop(),l=n[c];if(l)for(let p of l)o[p]||(o[p]=!0,a.push(p))}}return{ids:o,symbols:s}}function OM(e,t,n){if(e.isError||e.getDependencies().length||e.valueType!==rt)return;let r=e.asValue();if(r)for(let i in r.updateRules){t[i]=jE(r,i);let{value:s,valueType:o}=r.updateRules[i];n[i]=new D.Assignment(i,xt(o,s))}}var Nh=class{constructor(){this.childIntersections=new Ed;this.getCLSymbolMap=QA;this.statements={},this.analysis={},this.currentStatus={},this.currentLabel={},this.unpublishedIds={},this.dimensions={width:0,height:0},this.intersectId=void 0,this.dirtyExportedSymbolRoots={},this.dirtyStatementRoots={},this.markedRegressionDirty=!1,this.use_degrees=!1,this.initialEvaluation=!1,this.globalEventCount=0,this.actions=!0,this.substitutions=!0,this.intervalComprehensions=!1,this.recursion=!1,this.setEvaluationMode(\"graphing\"),this.setProduct(\"graphing\"),this.setBeta3d(!1),this.setRestrictedFunctions(!1),this.setForceEnableGeometryFunctions(!1),this.setFunctionDefinition(!0),this.setReplaceRoundWithReciprocal(!1),this.setDistributions(!0),this.invalidate()}invalidate(){delete this.statements[Co];for(let n in this.statements)this.statements.hasOwnProperty(n)&&this.markAsDirtyRoot(n);this.currentStatus={},this.analysis={};let t=this.viewState?{xAxisScale:this.viewState.xAxisScale,yAxisScale:this.viewState.yAxisScale}:void 0;this.policy=IH(this.evaluationMode,this.product===\"graphing-3d\",this.beta3d,t),this.parent_frame=EH[this.evaluationMode].getFrame({restrictedFunctions:this.restrictedFunctions,forceEnableGeometryFunctions:this.forceEnableGeometryFunctions,isGeometryCalculator:this.evaluationMode===\"geometry\",is3DCalculator:this.product===\"graphing-3d\",replaceRoundWithReciprocal:this.replaceRoundWithReciprocal,distributions:this.distributions,additionalFunctions:this.additionalFunctions,disableParentheses:this.disableParentheses,trigAngleMultiplier:new eo(this.use_degrees?Math.PI/180:De(1,1)),initialEvaluation:new eo(this.initialEvaluation?1:0),globalEventCount:new eo(0),globalRandomSeed:new t_(this.globalRandomSeedString||\"\"),width:this.policy.dimensionVarsEnabled()?new eo(De(this.dimensions.width,1)):Fm(\"width\"),height:this.policy.dimensionVarsEnabled()?new eo(De(this.dimensions.height,1)):Fm(\"height\")}),this.frame=Object.create(this.parent_frame),this.lastFrame=Object.create(this.parent_frame),this.regressionFrame=Object.create(this.parent_frame),this.lastClockTickTime=void 0}getAllActionUpdateSymbols(){var n;let t=new Set;for(let r in this.statements){let i=this.statements[r];i.getUpdateSymbols().forEach(o=>t.add(o)),i instanceof D.Ticker&&i.handler.getUpdateSymbols().forEach(o=>t.add(o));let s=this.analysis[r];(rd(i)||s&&s.getGraphMode()!==4&&ZE(s.evaluationState.expression_type))&&((n=i.metaData.clickHandler)==null||n.getUpdateSymbols().forEach(o=>t.add(o)))}return[...new Set(t)]}processChangeSet(t){let n=Va(),r={cacheWrites:0,cacheReads:0,cacheHits:0,cacheMisses:0};fR(r);let i={intersections:{},graphs:{}};t.isCompleteState&&(this.invalidate(),this.statements={},this.currentLabel={});let s=!!t.isCompleteState&&!t.isUndoRedoState;s!==this.initialEvaluation&&(this.initialEvaluation=s,this.parent_frame.initialEvaluation=new eo(s?1:0)),t.hasOwnProperty(\"logInternalErrors\")&&ub(t.logInternalErrors),t.viewState&&this.setViewState(t.viewState),t.hasOwnProperty(\"degreeMode\")&&this.setDegreeMode(t.degreeMode),t.hasOwnProperty(\"globalRandomSeed\")&&this.setGlobalRandomSeed(t.globalRandomSeed),t.hasOwnProperty(\"evaluationMode\")&&this.setEvaluationMode(t.evaluationMode),t.hasOwnProperty(\"additionalFunctions\")&&this.setAdditionalFunctions(t.additionalFunctions),t.hasOwnProperty(\"disableParentheses\")&&this.setDisableParentheses(t.disableParentheses),t.hasOwnProperty(\"restrictedFunctions\")&&this.setRestrictedFunctions(t.restrictedFunctions),t.hasOwnProperty(\"forceEnableGeometryFunctions\")&&this.setForceEnableGeometryFunctions(t.forceEnableGeometryFunctions),t.hasOwnProperty(\"distributions\")&&this.setDistributions(t.distributions),t.hasOwnProperty(\"functionDefinition\")&&this.setFunctionDefinition(t.functionDefinition),t.hasOwnProperty(\"replaceRoundWithReciprocal\")&&this.setReplaceRoundWithReciprocal(t.replaceRoundWithReciprocal),t.hasOwnProperty(\"pointsOfInterest\")&&this.setWorkerConfigProperty(\"pointsOfInterest\",t.pointsOfInterest),t.hasOwnProperty(\"plotSingleVariableImplicitEquations\")&&this.setWorkerConfigProperty(\"plotSingleVariableImplicitEquations\",t.plotSingleVariableImplicitEquations),t.hasOwnProperty(\"plotImplicits\")&&this.setWorkerConfigProperty(\"plotImplicits\",t.plotImplicits),t.hasOwnProperty(\"plotInequalities\")&&this.setWorkerConfigProperty(\"plotInequalities\",t.plotInequalities),t.hasOwnProperty(\"sliders\")&&this.setWorkerConfigProperty(\"sliders\",t.sliders),t.hasOwnProperty(\"actions\")&&this.setActions(!!t.actions),t.hasOwnProperty(\"substitutions\")&&this.setSubstitutions(!!t.substitutions),t.hasOwnProperty(\"intervalComprehensions\")&&this.setIntervalComprehensions(!!t.intervalComprehensions),t.hasOwnProperty(\"recursion\")&&this.setRecursion(!!t.recursion);let o=t.recursionDepthLimit;o!==void 0&&o>0&&o<=10**6&&rI(o),t.hasOwnProperty(\"beta3d\")&&this.setBeta3d(!!t.beta3d),t.hasOwnProperty(\"product\")&&this.setProduct(t.product);let a;if(t.hasOwnProperty(\"selectedIds\")){let f=t.selectedIds||{};(this.intersectId===void 0||!f[this.intersectId])&&([a]=Object.keys(f),this.intersectId=a)}t.hasOwnProperty(\"dimensions\")&&this.setDimensions(t.dimensions);let u=Va();this.processStatements(t,i);let c=Va();r.processStatements=c-u,u=c,this.updateAnalysis(),c=Va(),r.updateAnalysis=c-u,u=c,a!==void 0&&this._updateIntersections(a,i),c=Va(),r.updateIntersections=c-u,u=c;let l=this._publishAllStatuses();c=Va(),r.publishAllStatuses=c-u,u=c,this._computeAllLabels(),c=Va(),r.computeAllLabels=c-u,u=c,this._computeAriaDescriptions(),c=Va(),r.computeAriaDescriptions=c-u,u=c,this._graphAllChanged(i),c=Va(),r.graphAllChanges=c-u;let p=this.processEvents(t.events);return this.unpublishedIds={},r.timeInWorker=c-n,{syncId:t.syncId,isCompleteState:t.isCompleteState,intersectionChanges:i.intersections,statusChanges:l,graphChanges:i.graphs,timingData:r,eventUpdates:p}}processStatements(t,n){if(t.removes)for(let r in t.removes){let i;if(!t.isCompleteState&&this.statements.hasOwnProperty(r)&&(i=this.statements[r].getAllIds()),this.removeStatement(r,n),!t.isCompleteState&&i)for(let s of i)n.graphs[s]=void 0}if(t.statements)for(let r in t.statements){let i=t.statements[r];i===null||this.addStatement(i,n)}}setViewState(t){if(_o(t,this.viewState))return;let n=!!(this.viewState&&t.xAxisScale===this.viewState.xAxisScale&&t.yAxisScale===this.viewState.yAxisScale);if(this.viewState=t,n)for(let r in this.statements)this.statements.hasOwnProperty(r)&&(this.unpublishedIds[r]=!0);else this.invalidate()}getViewState(){return this.viewState}setDegreeMode(t){this.use_degrees=t,this.invalidate()}setDimensions(t){t!==void 0&&(this.dimensions=t,this.invalidate())}setGlobalRandomSeed(t){this.globalRandomSeedString=t,this.parent_frame.globalRandomSeed=new t_(t),this.dirtyExportedSymbolRoots.globalRandomSeed=!0}setEvaluationMode(t){this.evaluationMode=t,this.invalidate()}setProduct(t){this.product=t,this.invalidate()}setBeta3d(t){this.beta3d=t,this.invalidate()}setAdditionalFunctions(t){this.additionalFunctions=t,this.invalidate()}setDisableParentheses(t){this.disableParentheses=t,this.invalidate()}setRestrictedFunctions(t){this.restrictedFunctions=t,this.invalidate()}setForceEnableGeometryFunctions(t){this.forceEnableGeometryFunctions=t,this.invalidate()}setDistributions(t){this.distributions=t,this.invalidate()}setFunctionDefinition(t){this.functionDefinition=t,this.invalidate()}setReplaceRoundWithReciprocal(t){this.replaceRoundWithReciprocal=t,this.invalidate()}setActions(t){t!==this.actions&&(this.actions=t,this.invalidate())}setSubstitutions(t){t!==this.substitutions&&(this.substitutions=t,this.invalidate())}setIntervalComprehensions(t){t!==this.intervalComprehensions&&(this.intervalComprehensions=t,this.invalidate())}setRecursion(t){t!==this.recursion&&(this.recursion=t,this.invalidate())}setWorkerConfigProperty(t,n){n!==rs[t]&&(rs[t]=n,this.invalidate())}_publishAllStatuses(){let t={},n=this.currentStatus;this.currentStatus={};for(let r in this.unpublishedIds){if(!this.analysis.hasOwnProperty(r))continue;let i=this.analysis[r].evaluationState;_o(i,n[r])||(t[r]=i),this.currentStatus[r]=i}return t}_computeAllLabels(){for(let t in this.currentLabel){let n=this.statements[t];if(!n)continue;let r=n.tryGetConcreteTree(this.policy,this.frame),i=1;(r.valueType===Pt||r.valueType===Tn||r.valueType===Rn||r.valueType===gn||r.valueType===hn)&&(i=r.length);let s=[],o=this.currentLabel[t];if(mo(o))for(let a=0;a<i;a++)s.push(vM(o,this.policy,this.frame,a));_o(s,n.computedLabels)||(n.computedLabels=s,this.unpublishedIds[t]=!0)}}_computeAriaDescriptions(){for(let t in this.analysis){let n=this.analysis[t],r=n.evaluationState,s=n.rawTree.userData,o;if(s.description?o=s.description:s.label&&(o=s.label),o){r.computed_description=[];let a=1;n.concreteTree.isList?a=n.concreteTree.length:r.dimensions&&r.dimensions.x&&Array.isArray(r.dimensions.x)&&(a=r.dimensions.x.length);for(let u=0;u<a;u++)r.computed_description.push(vM(MM(o),this.policy,this.frame,u))}}}_graphAllChanged(t){let n=this.getViewState(),r=!1;if(!(!n||!vN(n))){for(let i in this.unpublishedIds){if(!this.analysis.hasOwnProperty(i))continue;let s=this.analysis[i],o=s.evaluationState.expression_type,a=o===\"SINGLE_POINT\"||o===\"POINT_LIST\";if(Gs(s.rawTree)){let u=s.graph(n,void 0),c=s.rawTree.getAllIds();for(let l of c)u[l]?this._notifyGraphComputed(l,u[l],t):this._notifyGraphRemoved(l,t)}else s.evaluationState.is_graphable&&(s.rawTree.userData.shouldGraph||s.rawTree.userData.showLabel&&a)?(this._notifyGraphComputed(i,s.graph(n,this.childIntersections.getChildIntersections(i)),t),this.intersectId===i&&(r=!0)):this._notifyGraphRemoved(i,t)}bi(this.unpublishedIds).length&&this.intersectId!==void 0&&(this.unpublishedIds.hasOwnProperty(this.intersectId)||(r=!0)),r&&this._updateIntersections(this.intersectId,t)}}_notifyGraphRemoved(t,n){n.graphs[t]=void 0}_notifyGraphComputed(t,n,r){nS(n),r.graphs[t]=n}_updateIntersections(t,n){if(!this.viewState)return;if(!this.analysis[t]||!this.analysis[t].shouldIntersect()){n.intersections[t]=[];return}let r=jA(this.analysis,this.viewState,t);n.intersections[t]=r}getDisabledFeatures(){let t=this.policy.disabledFeatures();this.functionDefinition===!1&&(t=t.concat(\"FunctionDefinition\")),this.actions===!1&&(t=t.concat(\"UpdateRule\")),this.substitutions===!1&&(t=t.concat([\"Substitution\",\"ListComprehension\"]));let n=this.additionalFunctions||[];return t=t.filter(r=>!(r===\"Exponent\"&&n.indexOf(\"exponent\")!==-1||r===\"PercentOf\"&&n.indexOf(\"percent\")!==-1)),t}areFractionsDisallowed(){let{evaluationMode:t}=this;return t!==\"fourFunction\"&&t!==\"singleExpressionFourFunction\"?!1:!this.additionalFunctions||this.additionalFunctions.indexOf(\"fraction\")===-1}addStatement(t,n){if(!t)return;let r=t.id;this.markExportsDirty(r),this.markAsDirtyRoot(r);let i;if(t.type===\"statement\"){let c=t.latexSelection;i=c&&{input:t.latex,start:c.start,end:c.end}}let s={index:this.policy.ansEnabled()?t.index:void 0,disabledFeatures:this.getDisabledFeatures(),disallowFrac:this.areFractionsDisallowed(),disableParentheses:!!this.disableParentheses,allowIntervalComprehensions:!!this.intervalComprehensions,seedPrefix:un(r),writeIntegral:this.evaluationMode===\"geometry\",selection:i,specializeDoubleInequalities:!this.policy.is3dProduct()},o={extraDepNodes:[]};switch(t.type){case\"table\":let c=[];this.statements.hasOwnProperty(r)&&(c=this.statements[r].getAllIds()),t.shouldGraph=!0;let l=t.columns,p=[],f=I=>!I.replace(/\\\\space|\\\\ /g,\"\").match(/\\S/);for(let I=0;I<l.length;I++){let E,v,O,A=l[I];E=Vs(A.latex,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I]])}),v=[];let N=-1;for(let L=0;L<l[I].values.length;L++)f(A.values[L])?v.push(new eo(NaN)):(v.push(Vs(A.values[L],{...s,seedPrefix:un(r,[[\"tr\",L+1],[\"tc\",I]])})),N=L);if(v=v.slice(0,N+1),O=new PH(E,v),O.id=A.id,O.header){if(O.header.userData=A,O.header.metaData={extraDepNodes:[]},A.colorLatex){let L=_i(A.colorLatex,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I],[\"cl\",I]])});O.header.metaData.colorLatex=L,O.header.metaData.extraDepNodes.push(L)}if(A.pointSize){let L=_i(A.pointSize,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I],[\"ps\",I]])});O.header.metaData.pointSize=L,O.header.metaData.extraDepNodes.push(L)}if(A.pointOpacity){let L=_i(A.pointOpacity,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I],[\"po\",I]])});O.header.metaData.pointOpacity=L,O.header.metaData.extraDepNodes.push(L)}if(A.lineWidth){let L=_i(A.lineWidth,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I],[\"lw\",I]])});O.header.metaData.lineWidth=L,O.header.metaData.extraDepNodes.push(L)}if(A.lineOpacity){let L=_i(A.lineOpacity,{...s,seedPrefix:un(r,[[\"tr\",0],[\"tc\",I],[\"lo\",I]])});O.header.metaData.lineOpacity=L,O.header.metaData.extraDepNodes.push(L)}}p.push(O)}this.statements[r]=new xH(p);let m=this.statements[r].getAllIds();c.forEach(I=>{m.indexOf(I)===-1&&this._notifyGraphRemoved(I,n)});break;case\"image\":let g=\"-\\\\trigAngleMultiplier*(\"+t.angle+\")\",d=_i(t.center,{...s,seedPrefix:un(r,[[\"ic\",r]])}),y=_i(g,{...s,seedPrefix:un(r,[[\"ia\",r]])}),h=_i(t.width,{...s,seedPrefix:un(r,[[\"iw\",r]])}),b=_i(t.height,{...s,seedPrefix:un(r,[[\"ih\",r]])}),x=_i(t.opacity,{...s,seedPrefix:un(r,[[\"io\",r]])});this.statements[r]=new hH({center:d,radianAngle:y,width:h,height:b,opacity:x},void 0);break;case\"ticker\":{this.statements[r]=new D.Ticker({handler:_i(t.handlerLatex,{...s,allowDt:!0}),minStep:_i(t.minStepLatex||\"0\",s)});break}case\"geometry-toolbar-predicate\":{this.statements[r]=_i(`\\\\{${t.latex}:1,0\\\\}`,{...s});break}default:t=t;let P,M=wo(t.latex);M.slice(-1)===\"=\"?P=M.substring(0,M.length-1):P=t.latex,this.statements[r]=Vs(P,s);for(let I in Dd){let E=I;if(t[E]){let v=Dd[E],O=t[E];v.transform&&(O=v.transform(O));let A=$i(O,{...s,seedPrefix:un(r,[[v.seed,r]])});o[E]=A,o.extraDepNodes.push(A)}}if(t.colorLatex){let I=Gu(t.colorLatex,{...s,seedPrefix:un(r,[[\"ac\",r]])});o.colorLatex=I,o.extraDepNodes.push(I)}if(t.polarDomain&&t.polarDomain.min&&(o.polarDomainMin=$i(t.polarDomain.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.polarDomainMin)),t.polarDomain&&t.polarDomain.max&&(o.polarDomainMax=$i(t.polarDomain.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.polarDomainMax)),t.parametricDomain&&t.parametricDomain.min&&(o.parametricDomainMin=$i(t.parametricDomain.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.parametricDomainMin)),t.parametricDomain&&t.parametricDomain.max&&(o.parametricDomainMax=$i(t.parametricDomain.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.parametricDomainMax)),t.parametricDomain3Du&&t.parametricDomain3Du.min&&(o.parametricDomain3DuMin=$i(t.parametricDomain3Du.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.parametricDomain3DuMin)),t.parametricDomain3Du&&t.parametricDomain3Du.max&&(o.parametricDomain3DuMax=$i(t.parametricDomain3Du.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.parametricDomain3DuMax)),t.parametricDomain3Dv&&t.parametricDomain3Dv.min&&(o.parametricDomain3DvMin=$i(t.parametricDomain3Dv.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.parametricDomain3DvMin)),t.parametricDomain3Dv&&t.parametricDomain3Dv.max&&(o.parametricDomain3DvMax=$i(t.parametricDomain3Dv.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.parametricDomain3DvMax)),t.parametricDomain3Dr&&t.parametricDomain3Dr.min&&(o.parametricDomain3DrMin=$i(t.parametricDomain3Dr.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.parametricDomain3DrMin)),t.parametricDomain3Dr&&t.parametricDomain3Dr.max&&(o.parametricDomain3DrMax=$i(t.parametricDomain3Dr.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.parametricDomain3DrMax)),t.parametricDomain3Dphi&&t.parametricDomain3Dphi.min&&(o.parametricDomain3DphiMin=$i(t.parametricDomain3Dphi.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.parametricDomain3DphiMin)),t.parametricDomain3Dphi&&t.parametricDomain3Dphi.max&&(o.parametricDomain3DphiMax=$i(t.parametricDomain3Dphi.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.parametricDomain3DphiMax)),t.vizProps&&(t.vizProps.axisOffset&&(o.vizAxisOffset=$i(t.vizProps.axisOffset,{...s,seedPrefix:un(r,[[\"vo\",r]])}),o.extraDepNodes.push(o.vizAxisOffset)),t.vizProps.breadth&&(o.vizBreadth=$i(t.vizProps.breadth,{...s,seedPrefix:un(r,[[\"vb\",r]])}),o.extraDepNodes.push(o.vizBreadth))),t.cdf&&t.cdf.show){let I=HR(t.latex);I&&I.type===\"distribution\"&&(o.distributionSpec=I,o.cdfMin=Gu(t.cdf.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),o.extraDepNodes.push(o.cdfMin),o.cdfMax=Gu(t.cdf.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),o.extraDepNodes.push(o.cdfMax))}if(this.statements[r].shouldPromoteToSlider(this.policy)){let I=t.slider,E=!!(I&&I.isPlayingOnce),v=Gu(I&&I.softMin,s),O=Gu(I&&I.softMax,s),A=Gu(I&&I.min,{...s,seedPrefix:un(r,[[\"lm\",r]])}),N=Gu(I&&I.max,{...s,seedPrefix:un(r,[[\"lM\",r]])}),L=Gu(I&&I.step,{...s,seedPrefix:un(r,[[\"ls\",r]])});this.statements[r]=new bH(this.statements[r],{sliderMin:A,sliderMax:N,sliderStep:L,sliderIsPlayingOnce:E,sliderSoftMin:v,sliderSoftMax:O})}}let a=t.clickableInfo;a&&a.enabled&&a.latex&&(o.clickHandler=_i(a.latex,{...s,allowIndex:!0})),this.statements[r].userData=t,this.statements[r].metaData=o;let u=t.label;if(u){let c=this.currentLabel[r];(!c||c.raw!==u)&&(this.currentLabel[r]=MM(u))}else delete this.currentLabel[r]}removeStatement(t,n){let r=this.statements[t];if(r){if(this.markExportsDirty(t),Gs(r)){let i=this;r.getAllIds().forEach(function(s){i._notifyGraphRemoved(s,n)})}else this._notifyGraphRemoved(t,n);delete this.currentLabel[t],delete this.statements[t],delete this.analysis[t],delete this.currentStatus[t]}}markExportsDirty(t){if(this.statements[t]){fp(this.statements[t])&&(this.markedRegressionDirty=!0);for(let n of this.statements[t].getLegalExports(this.policy))this.dirtyExportedSymbolRoots[n]=!0}}markAsDirtyRoot(t){this.dirtyStatementRoots[t]=!0}getFrame(){return this.updateAnalysis(),this.frame}getAnalysis(){return this.updateAnalysis(),this.analysis}getEvaluationState(t){if(this.updateAnalysis(),!!this.analysis[t])return this.analysis[t].evaluationState}_updateRegressions(t){let n=this.frame,r=this.lastFrame,i=this.regressionFrame;if(!this.policy.graphingEnabled())return;let s=[];for(let l in t)t.hasOwnProperty(l)&&fp(t[l])&&s.push(l);let o=this;s.sort(function(l,p){let f=o.statements[l].userData&&o.statements[l].userData.residualVariable,m=o.statements[p].userData&&o.statements[p].userData.residualVariable;return f&&!m?-1:m&&!f?1:0});let a=Id(this.policy,t,s);n_(a,i,this.recursion);let u=a.resolved,c={};for(let l of u)if(l!==Co)if(fp(this.statements[l]))this.analysis[l]=t[l].analyze(this.policy,i,n,r,c),this.analysis[l].exportTo(this.policy,n),delete t[l];else{let p=t[l].tryGetConcreteTree(this.policy,i);t[l].exportTo(this.policy,p,i),c[l]={rawTree:t[l],concreteTree:p}}}buildSymbolToExpressionDirtyMap(){let t={};for(let n in this.statements){if(!this.statements.hasOwnProperty(n))continue;let r=this.statements[n],i=r.metaData;if(Sd(t,n,r.getDependencies()),Sd(t,n,r.getLegalExports(this.policy)),fp(r)&&r.userData&&r.userData.residualVariable&&Sd(t,n,[Lo(r.userData.residualVariable)]),r_(t,n,i),Gs(r)&&r.columns)for(let s=0;s<r.columns.length;s++){let o=r.columns[s];!xo(o)&&o.header&&o.header.metaData&&r_(t,n,o.header.metaData)}}return t}buildChildIntersectionMap(){var r,i;let t=this.childIntersections,n=new Ed;for(let s in this.analysis){let o=this.analysis[s],{geometry:a}=o.evaluationState;if(a!=null&&a.call&&a.call.symbol===\"intersection\"&&this.statements[s].userData.shouldGraph&&!o.concreteTree.isError){let u=!!this.unpublishedIds[s],c=o.concreteTree.asTypedValue();for(let l of a.call.parents){let p=l&&this.frame[l[0]],f=p&&p.userData.id;if(f==null)continue;let m=l&&l[1],g=this.analysis[f];W(g.concreteTree.asTypedValue().valueType)?n.addListParent(f,m===void 0?void 0:m-1,c):n.addPrimitiveParent(f,c),u&&(this.unpublishedIds[f]=!0)}}}for(let s in t.data){let o=((r=t.data[s])==null?void 0:r.count)||0;(((i=n.data[s])==null?void 0:i.count)||0)<o&&(this.unpublishedIds[s]=!0)}return n}updateConstruction(){if(!this.policy.isGeometryEnabled){this.parent_frame.construction=ff();return}let t=[];for(let o in this.statements)this.statements[o].userData.isInConstructionsFolder&&t.push(o);let n=this.statements[Co],r=new TH(t);r.metaData={extraDepNodes:[]},r.userData={};let i={};for(let o of(n==null?void 0:n.getDependencies())||[])i[o]=!0;let s={};for(let o of r.getDependencies())s[o]=!0;(!n||!_o(i,s))&&(this.statements[Co]=r,this.parent_frame.construction=r,this.markAsDirtyRoot(Co),this.markExportsDirty(Co))}analyzeExternalRecursiveBaseCases(){if(!this.recursion)return;let t=[],n={};for(let a in this.statements){if(!this.statements.hasOwnProperty(a))continue;let u=this.statements[a];u instanceof cr&&!Ke[u._symbol]&&(t.push(a),n[u._symbol]=u)}let r=Id(this.policy,this.statements,t),i=new Set;for(let a of t){let u=this.statements[a];u instanceof cr&&r.recursiveFunctionGroups[a]&&i.add(u._symbol)}let s={},o=[];for(let a in this.statements){let u=this.statements[a];if(u instanceof ja&&i.has(u._lhs._symbol)){let c=wi.fromCallAssignment(n,u);if(!c)continue;this.markExportsDirty(a),this.markAsDirtyRoot(a),this.statements[a]=c,s[c._symbol]||(s[c._symbol]=[]),s[c._symbol].push(c),c.getDependencies().length&&o.push(a)}else u instanceof wi&&(i.has(u._symbol)?(s[u._symbol]||(s[u._symbol]=[]),s[u._symbol].push(u),u.getDependencies().length&&o.push(a)):(this.markExportsDirty(a),this.markAsDirtyRoot(a),this.statements[a]=u.originalNode))}for(let a in n){let u=n[a],c=u.getExternalBaseCases(),l=s[a]||[],p=!1;if(c.length===l.length){for(let f=0;f<l.length;f++)if(l[f]!==c[f]){p=!0;break}}else p=!0;p&&(u.setExternalBaseCases(l),this.markExportsDirty(u.userData.id),this.markAsDirtyRoot(u.userData.id))}if(o.length){let a=Id(this.policy,this.statements,o);for(let u of a.recursiveFunctionBaseCasesWithCycles){let c=this.statements[u];if(c instanceof wi){let l=n[c._symbol];l.setExternalBaseCases(l.getExternalBaseCases().filter(p=>p!==c)),this.statements[u]=c.originalNode}}}}updateAnalysis(){var m;this.updateConstruction(),this.analyzeExternalRecursiveBaseCases();let t=this.buildSymbolToExpressionDirtyMap(),n=SM(this.policy,this.statements,t,this.dirtyStatementRoots,this.dirtyExportedSymbolRoots),r=this.markedRegressionDirty;for(let g in n.ids)this.statements[g]&&fp(this.statements[g])&&(r=!0);let i={};if(r){for(let g in this.statements)this.statements[g]&&(i[g]=this.statements[g]);this.frame=Object.create(this.parent_frame),this.regressionFrame=Object.create(this.parent_frame)}else{let g=n.ids;for(let y in g)this.statements[y]&&(i[y]=this.statements[y]);let d=n.symbols;for(let y in d)d[y]&&(delete this.frame[y],delete this.regressionFrame[y])}for(let g in i)i[g]&&(this.unpublishedIds[g]=!0);this.markedRegressionDirty=!1,this.dirtyExportedSymbolRoots={},this.dirtyStatementRoots={};let s=this.analysis,o=this.frame;(this.evaluationMode===\"graphing\"||this.evaluationMode===\"geometry\"||this.evaluationMode===\"graphing_3d\")&&this._updateRegressions(i);let a=Id(this.policy,i);n_(a,o,this.recursion);let u=a.resolved,c=new Set;for(let g of u)if(g!==Co)switch(this.evaluationMode){case\"fourFunction\":case\"singleExpressionFourFunction\":s[g]=this.statements[g].analyzeFourFunction(this.policy,o,s),s[g].exportTo(this.policy,o);break;case\"scientific\":s[g]=this.statements[g].analyzeScientific(this.policy,o,s),s[g].exportTo(this.policy,o);break;case\"singleExpressionScientific\":s[g]=this.statements[g].analyzeSingleExpressionScientific(this.policy,o,s),s[g].exportTo(this.policy,o);break;case\"graphing\":case\"graphing_3d\":case\"geometry\":if(!this.policy.graphingEnabled())break;if(c.has(g))continue;let d=a.recursiveFunctionGroups[g];if(o.r){let y=Object.create(o);if(y.r=void 0,s[g]=this.statements[g].analyze(this.policy,y,s),s[g].getGraphMode()===6){s[g].exportTo(this.policy,o);continue}}if(d&&this.recursion){KA(this.policy,o,s,d);for(let y in d)c.add(y)}else s[g]=this.statements[g].analyze(this.policy,o,s),s[g].exportTo(this.policy,o);break}if(this.policy.graphingEnabled()){for(let g of u){if(g===Co)continue;let d=s[g],y=d.evaluationState.expression_type;for(let h in Dd){let b=h;var l=Dd[b];this.evaluationMode!==\"graphing_3d\"&&b===\"resolution\"||(!l.shouldEvaluate||l.shouldEvaluate(d))&&_H(d,this.policy,o,b)}LH(d,this.policy,o),this.product===\"graphing-3d\"&&wH(d),this.actions&&vH(d)&&FH(d,this.policy,o),y===\"PARAMETRIC\"||y===\"CURVE3D_xyz_t\"||y===\"POLAR\"||y===\"SURFACE_r_\\u03B8z\"||y===\"SURFACE_r_\\u03B8z_AMBIGUOUS\"||y===\"SLICE_r\\u03B8z_at_z\"?VH(d,this.policy,o):y===\"SURFACE_xyz_uv\"||y===\"SLICE_xyz_uv\"||y===\"SURFACE_r_\\u03B8\\u03C6\"||y===\"SURFACE_z_r\\u03B8\"||y===\"SLICE_zr\\u03B8_at_r\"||y===\"SLICE_zr\\u03B8_at_\\u03B8\"||y===\"SLICE_zr\\u03B8_at_xyz\"||y===\"SLICE_r\\u03B8\\u03C6_at_\\u03B8\"||y===\"SLICE_r\\u03B8\\u03C6_at_\\u03C6\"||y===\"SLICE_r\\u03B8\\u03C6_at_xyz\"?BH(d,this.policy,o):y===\"BOXPLOT\"?GH(d,this.policy,o):MH(d)&&NH(d,this.policy,o)}this.childIntersections=this.buildChildIntersectionMap()}kH(t).forEach(function(g){s[g].evaluationState.depends_on_random_seed=!0});let p=SM(this.policy,this.statements,t,{[Co]:!0},{construction:!0});for(let g in p.ids){if(g===Co)continue;let d=s[g].evaluationState;d.geometry&&(d.geometry.unconstructable=!0)}let f;for(let g in this.statements)if((m=this.statements[g].parseOptions)!=null&&m.selection){f=g;break}if(f){let g=SM(this.policy,this.statements,t,{[f]:!0},{[`idref_${f}`]:!0});for(let d in g.ids){if(d===Co)continue;let y=s[d].evaluationState;y.geometry&&(y.geometry.depends_on_selected=!0)}}this.lastFrame=Object.create(this.parent_frame);for(let g in o)o.hasOwnProperty(g)&&(this.lastFrame[g]=o[g])}processEvents(t){if(!t||!this.actions)return;let n=Object.create(this.frame),r={},i=!1,s=!1,o;for(let c of t)switch(this.globalEventCount+=1,n.globalEventCount=new D.Constant(this.globalEventCount),c.type){case\"step\":{let p=this.statements[c.expressionId];if(!p)continue;let f=p.tryGetConcreteTree(this.policy,n);s=!0,OM(f,r,n);break}case\"click\":{let p=this.statements[c.expressionId];if(!p||!p.metaData.clickHandler)continue;n.index=new D.Constant(c.indexVar+1);let f=p.metaData.clickHandler.tryGetConcreteTree(this.policy,n);s=!0,i=!0,OM(f,r,n);break}case\"clock-tick\":{(o===void 0||c.isFirstTick&&!o.isFirstTick)&&(o=c);break}default:return c}if(o){let c=this.statements[o.id];if(c&&c instanceof D.Ticker){var a=c.minStep.tryGetConcreteTree(this.policy,n).asValue(),u=typeof a==\"number\"&&a>=0&&isFinite(a);if(u){let l=this.lastClockTickTime;if(this.lastClockTickTime=Date.now(),!o.isFirstTick&&l!==void 0){n.dt=new D.Constant(this.lastClockTickTime-l);let p=c.handler.tryGetConcreteTree(this.policy,n);OM(p,r,n)}}}}return{objectClicked:i,userAction:s,updates:r}}};var a_=class{constructor(t){this.context=new Nh,this.sendMessage=t}processChangeSet(t){var n=this.context.processChangeSet(t);this.sendMessage(\"processChangeSet\",n)}};Object.defineProperty(__dcg_chunk_exports__, 'a', { get: () => zH });\nObject.defineProperty(__dcg_chunk_exports__, 'b', { get: () => HH });\nObject.defineProperty(__dcg_chunk_exports__, 'c', { get: () => UH });\nObject.defineProperty(__dcg_chunk_exports__, 'd', { get: () => No });\nObject.defineProperty(__dcg_chunk_exports__, 'e', { get: () => qH });\nObject.defineProperty(__dcg_chunk_exports__, 'f', { get: () => $H });\nObject.defineProperty(__dcg_chunk_exports__, 'g', { get: () => Dv });\nObject.defineProperty(__dcg_chunk_exports__, 'h', { get: () => Sv });\nObject.defineProperty(__dcg_chunk_exports__, 'i', { get: () => Bs });\nObject.defineProperty(__dcg_chunk_exports__, 'j', { get: () => ON });\nObject.defineProperty(__dcg_chunk_exports__, 'k', { get: () => yte });\nObject.defineProperty(__dcg_chunk_exports__, 'l', { get: () => yi });\nObject.defineProperty(__dcg_chunk_exports__, 'm', { get: () => Cn });\nObject.defineProperty(__dcg_chunk_exports__, 'n', { get: () => Ht });\nObject.defineProperty(__dcg_chunk_exports__, 'o', { get: () => T });\nObject.defineProperty(__dcg_chunk_exports__, 'p', { get: () => R });\nObject.defineProperty(__dcg_chunk_exports__, 'q', { get: () => sn });\nObject.defineProperty(__dcg_chunk_exports__, 'r', { get: () => se });\nObject.defineProperty(__dcg_chunk_exports__, 's', { get: () => Ln });\nObject.defineProperty(__dcg_chunk_exports__, 't', { get: () => Pt });\nObject.defineProperty(__dcg_chunk_exports__, 'u', { get: () => wn });\nObject.defineProperty(__dcg_chunk_exports__, 'v', { get: () => We });\nObject.defineProperty(__dcg_chunk_exports__, 'w', { get: () => Zn });\nObject.defineProperty(__dcg_chunk_exports__, 'x', { get: () => Be });\nObject.defineProperty(__dcg_chunk_exports__, 'y', { get: () => Rn });\nObject.defineProperty(__dcg_chunk_exports__, 'z', { get: () => Ie });\nObject.defineProperty(__dcg_chunk_exports__, 'A', { get: () => Tn });\nObject.defineProperty(__dcg_chunk_exports__, 'B', { get: () => pe });\nObject.defineProperty(__dcg_chunk_exports__, 'C', { get: () => Fn });\nObject.defineProperty(__dcg_chunk_exports__, 'D', { get: () => ce });\nObject.defineProperty(__dcg_chunk_exports__, 'E', { get: () => Vn });\nObject.defineProperty(__dcg_chunk_exports__, 'F', { get: () => fe });\nObject.defineProperty(__dcg_chunk_exports__, 'G', { get: () => Bn });\nObject.defineProperty(__dcg_chunk_exports__, 'H', { get: () => Le });\nObject.defineProperty(__dcg_chunk_exports__, 'I', { get: () => Gn });\nObject.defineProperty(__dcg_chunk_exports__, 'J', { get: () => Ge });\nObject.defineProperty(__dcg_chunk_exports__, 'K', { get: () => gn });\nObject.defineProperty(__dcg_chunk_exports__, 'L', { get: () => Ae });\nObject.defineProperty(__dcg_chunk_exports__, 'M', { get: () => hn });\nObject.defineProperty(__dcg_chunk_exports__, 'N', { get: () => Ue });\nObject.defineProperty(__dcg_chunk_exports__, 'O', { get: () => mr });\nObject.defineProperty(__dcg_chunk_exports__, 'P', { get: () => he });\nObject.defineProperty(__dcg_chunk_exports__, 'Q', { get: () => kn });\nObject.defineProperty(__dcg_chunk_exports__, 'R', { get: () => Hr });\nObject.defineProperty(__dcg_chunk_exports__, 'S', { get: () => mn });\nObject.defineProperty(__dcg_chunk_exports__, 'T', { get: () => Ur });\nObject.defineProperty(__dcg_chunk_exports__, 'U', { get: () => V });\nObject.defineProperty(__dcg_chunk_exports__, 'V', { get: () => VM });\nObject.defineProperty(__dcg_chunk_exports__, 'W', { get: () => y_ });\nObject.defineProperty(__dcg_chunk_exports__, 'X', { get: () => on });\nObject.defineProperty(__dcg_chunk_exports__, 'Y', { get: () => ne });\nObject.defineProperty(__dcg_chunk_exports__, 'Z', { get: () => W });\nObject.defineProperty(__dcg_chunk_exports__, '_', { get: () => ke });\nObject.defineProperty(__dcg_chunk_exports__, '$', { get: () => Sp });\nObject.defineProperty(__dcg_chunk_exports__, 'aa', { get: () => zr });\nObject.defineProperty(__dcg_chunk_exports__, 'ba', { get: () => _d });\nObject.defineProperty(__dcg_chunk_exports__, 'ca', { get: () => oe });\nObject.defineProperty(__dcg_chunk_exports__, 'da', { get: () => ca });\nObject.defineProperty(__dcg_chunk_exports__, 'ea', { get: () => Oe });\nObject.defineProperty(__dcg_chunk_exports__, 'fa', { get: () => GM });\nObject.defineProperty(__dcg_chunk_exports__, 'ga', { get: () => Ld });\nObject.defineProperty(__dcg_chunk_exports__, 'ha', { get: () => PU });\nObject.defineProperty(__dcg_chunk_exports__, 'ia', { get: () => as });\nObject.defineProperty(__dcg_chunk_exports__, 'ja', { get: () => pa });\nObject.defineProperty(__dcg_chunk_exports__, 'ka', { get: () => Rs });\nObject.defineProperty(__dcg_chunk_exports__, 'la', { get: () => T_ });\nObject.defineProperty(__dcg_chunk_exports__, 'ma', { get: () => IU });\nObject.defineProperty(__dcg_chunk_exports__, 'na', { get: () => EU });\nObject.defineProperty(__dcg_chunk_exports__, 'oa', { get: () => Li });\nObject.defineProperty(__dcg_chunk_exports__, 'pa', { get: () => MU });\nObject.defineProperty(__dcg_chunk_exports__, 'qa', { get: () => Zt });\nObject.defineProperty(__dcg_chunk_exports__, 'ra', { get: () => el });\nObject.defineProperty(__dcg_chunk_exports__, 'sa', { get: () => zd });\nObject.defineProperty(__dcg_chunk_exports__, 'ta', { get: () => R_ });\nObject.defineProperty(__dcg_chunk_exports__, 'ua', { get: () => AU });\nObject.defineProperty(__dcg_chunk_exports__, 'va', { get: () => _U });\nObject.defineProperty(__dcg_chunk_exports__, 'wa', { get: () => Qc });\nObject.defineProperty(__dcg_chunk_exports__, 'xa', { get: () => sv });\nObject.defineProperty(__dcg_chunk_exports__, 'ya', { get: () => N_ });\nObject.defineProperty(__dcg_chunk_exports__, 'za', { get: () => wU });\nObject.defineProperty(__dcg_chunk_exports__, 'Aa', { get: () => FU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ba', { get: () => VU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ca', { get: () => kU });\nObject.defineProperty(__dcg_chunk_exports__, 'Da', { get: () => zU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ea', { get: () => UU });\nObject.defineProperty(__dcg_chunk_exports__, 'Fa', { get: () => qU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ga', { get: () => L_ });\nObject.defineProperty(__dcg_chunk_exports__, 'Ha', { get: () => V_ });\nObject.defineProperty(__dcg_chunk_exports__, 'Ia', { get: () => ZU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ja', { get: () => JU });\nObject.defineProperty(__dcg_chunk_exports__, 'Ka', { get: () => QU });\nObject.defineProperty(__dcg_chunk_exports__, 'La', { get: () => bi });\nObject.defineProperty(__dcg_chunk_exports__, 'Ma', { get: () => Lp });\nObject.defineProperty(__dcg_chunk_exports__, 'Na', { get: () => Y_ });\nObject.defineProperty(__dcg_chunk_exports__, 'Oa', { get: () => _o });\nObject.defineProperty(__dcg_chunk_exports__, 'Pa', { get: () => n8 });\nObject.defineProperty(__dcg_chunk_exports__, 'Qa', { get: () => tl });\nObject.defineProperty(__dcg_chunk_exports__, 'Ra', { get: () => nl });\nObject.defineProperty(__dcg_chunk_exports__, 'Sa', { get: () => j_ });\nObject.defineProperty(__dcg_chunk_exports__, 'Ta', { get: () => l8 });\nObject.defineProperty(__dcg_chunk_exports__, 'Ua', { get: () => f8 });\nObject.defineProperty(__dcg_chunk_exports__, 'Va', { get: () => jh });\nObject.defineProperty(__dcg_chunk_exports__, 'Wa', { get: () => sL });\nObject.defineProperty(__dcg_chunk_exports__, 'Xa', { get: () => lL });\nObject.defineProperty(__dcg_chunk_exports__, 'Ya', { get: () => pL });\nObject.defineProperty(__dcg_chunk_exports__, 'Za', { get: () => xv });\nObject.defineProperty(__dcg_chunk_exports__, '_a', { get: () => qd });\nObject.defineProperty(__dcg_chunk_exports__, '$a', { get: () => fL });\nObject.defineProperty(__dcg_chunk_exports__, 'ab', { get: () => Qh });\nObject.defineProperty(__dcg_chunk_exports__, 'bb', { get: () => ur });\nObject.defineProperty(__dcg_chunk_exports__, 'cb', { get: () => Lo });\nObject.defineProperty(__dcg_chunk_exports__, 'db', { get: () => wo });\nObject.defineProperty(__dcg_chunk_exports__, 'eb', { get: () => yL });\nObject.defineProperty(__dcg_chunk_exports__, 'fb', { get: () => da });\nObject.defineProperty(__dcg_chunk_exports__, 'gb', { get: () => Ke });\nObject.defineProperty(__dcg_chunk_exports__, 'hb', { get: () => u3 });\nObject.defineProperty(__dcg_chunk_exports__, 'ib', { get: () => Rr });\nObject.defineProperty(__dcg_chunk_exports__, 'jb', { get: () => kp });\nObject.defineProperty(__dcg_chunk_exports__, 'kb', { get: () => Mq });\nObject.defineProperty(__dcg_chunk_exports__, 'lb', { get: () => ko });\nObject.defineProperty(__dcg_chunk_exports__, 'mb', { get: () => $r });\nObject.defineProperty(__dcg_chunk_exports__, 'nb', { get: () => cD });\nObject.defineProperty(__dcg_chunk_exports__, 'ob', { get: () => Pf });\nObject.defineProperty(__dcg_chunk_exports__, 'pb', { get: () => fy });\nObject.defineProperty(__dcg_chunk_exports__, 'qb', { get: () => Ki });\nObject.defineProperty(__dcg_chunk_exports__, 'rb', { get: () => wD });\nObject.defineProperty(__dcg_chunk_exports__, 'sb', { get: () => N4 });\nObject.defineProperty(__dcg_chunk_exports__, 'tb', { get: () => F4 });\nObject.defineProperty(__dcg_chunk_exports__, 'ub', { get: () => po });\nObject.defineProperty(__dcg_chunk_exports__, 'vb', { get: () => Xw });\nObject.defineProperty(__dcg_chunk_exports__, 'wb', { get: () => rr });\nObject.defineProperty(__dcg_chunk_exports__, 'xb', { get: () => P1 });\nObject.defineProperty(__dcg_chunk_exports__, 'yb', { get: () => Xl });\nObject.defineProperty(__dcg_chunk_exports__, 'zb', { get: () => jl });\nObject.defineProperty(__dcg_chunk_exports__, 'Ab', { get: () => Jl });\nObject.defineProperty(__dcg_chunk_exports__, 'Bb', { get: () => xI });\nObject.defineProperty(__dcg_chunk_exports__, 'Cb', { get: () => PI });\nObject.defineProperty(__dcg_chunk_exports__, 'Db', { get: () => KT });\nObject.defineProperty(__dcg_chunk_exports__, 'Eb', { get: () => UV });\nObject.defineProperty(__dcg_chunk_exports__, 'Fb', { get: () => Z1 });\nObject.defineProperty(__dcg_chunk_exports__, 'Gb', { get: () => qV });\nObject.defineProperty(__dcg_chunk_exports__, 'Hb', { get: () => By });\nObject.defineProperty(__dcg_chunk_exports__, 'Ib', { get: () => Af });\nObject.defineProperty(__dcg_chunk_exports__, 'Jb', { get: () => TI });\nObject.defineProperty(__dcg_chunk_exports__, 'Kb', { get: () => II });\nObject.defineProperty(__dcg_chunk_exports__, 'Lb', { get: () => j1 });\nObject.defineProperty(__dcg_chunk_exports__, 'Mb', { get: () => XV });\nObject.defineProperty(__dcg_chunk_exports__, 'Nb', { get: () => J1 });\nObject.defineProperty(__dcg_chunk_exports__, 'Ob', { get: () => ZV });\nObject.defineProperty(__dcg_chunk_exports__, 'Pb', { get: () => Q1 });\nObject.defineProperty(__dcg_chunk_exports__, 'Qb', { get: () => WV });\nObject.defineProperty(__dcg_chunk_exports__, 'Rb', { get: () => sB });\nObject.defineProperty(__dcg_chunk_exports__, 'Sb', { get: () => uB });\nObject.defineProperty(__dcg_chunk_exports__, 'Tb', { get: () => cB });\nObject.defineProperty(__dcg_chunk_exports__, 'Ub', { get: () => Yo });\nObject.defineProperty(__dcg_chunk_exports__, 'Vb', { get: () => mo });\nObject.defineProperty(__dcg_chunk_exports__, 'Wb', { get: () => Z4 });\nObject.defineProperty(__dcg_chunk_exports__, 'Xb', { get: () => SB });\nObject.defineProperty(__dcg_chunk_exports__, 'Yb', { get: () => D });\nObject.defineProperty(__dcg_chunk_exports__, 'Zb', { get: () => lr });\nObject.defineProperty(__dcg_chunk_exports__, '_b', { get: () => c6 });\nObject.defineProperty(__dcg_chunk_exports__, '$b', { get: () => zy });\nObject.defineProperty(__dcg_chunk_exports__, 'ac', { get: () => sS });\nObject.defineProperty(__dcg_chunk_exports__, 'bc', { get: () => YI });\nObject.defineProperty(__dcg_chunk_exports__, 'cc', { get: () => qS });\nObject.defineProperty(__dcg_chunk_exports__, 'dc', { get: () => ho });\nObject.defineProperty(__dcg_chunk_exports__, 'ec', { get: () => sg });\nObject.defineProperty(__dcg_chunk_exports__, 'fc', { get: () => tO });\nObject.defineProperty(__dcg_chunk_exports__, 'gc', { get: () => Un });\nObject.defineProperty(__dcg_chunk_exports__, 'hc', { get: () => Ce });\nObject.defineProperty(__dcg_chunk_exports__, 'ic', { get: () => oE });\nObject.defineProperty(__dcg_chunk_exports__, 'jc', { get: () => k9 });\nObject.defineProperty(__dcg_chunk_exports__, 'kc', { get: () => z9 });\nObject.defineProperty(__dcg_chunk_exports__, 'lc', { get: () => RC });\nObject.defineProperty(__dcg_chunk_exports__, 'mc', { get: () => kC });\nObject.defineProperty(__dcg_chunk_exports__, 'nc', { get: () => Vs });\nObject.defineProperty(__dcg_chunk_exports__, 'oc', { get: () => xR });\nObject.defineProperty(__dcg_chunk_exports__, 'pc', { get: () => ea });\nObject.defineProperty(__dcg_chunk_exports__, 'qc', { get: () => HR });\nObject.defineProperty(__dcg_chunk_exports__, 'rc', { get: () => XE });\nObject.defineProperty(__dcg_chunk_exports__, 'sc', { get: () => ZE });\nObject.defineProperty(__dcg_chunk_exports__, 'tc', { get: () => UR });\nObject.defineProperty(__dcg_chunk_exports__, 'uc', { get: () => qR });\nObject.defineProperty(__dcg_chunk_exports__, 'vc', { get: () => $R });\nObject.defineProperty(__dcg_chunk_exports__, 'wc', { get: () => ta });\nObject.defineProperty(__dcg_chunk_exports__, 'xc', { get: () => o2 });\nObject.defineProperty(__dcg_chunk_exports__, 'yc', { get: () => NQ });\nObject.defineProperty(__dcg_chunk_exports__, 'zc', { get: () => dd });\nObject.defineProperty(__dcg_chunk_exports__, 'Ac', { get: () => sN });\nObject.defineProperty(__dcg_chunk_exports__, 'Bc', { get: () => b0 });\nObject.defineProperty(__dcg_chunk_exports__, 'Cc', { get: () => x0 });\nObject.defineProperty(__dcg_chunk_exports__, 'Dc', { get: () => P0 });\nObject.defineProperty(__dcg_chunk_exports__, 'Ec', { get: () => Xg });\nObject.defineProperty(__dcg_chunk_exports__, 'Fc', { get: () => Zg });\nObject.defineProperty(__dcg_chunk_exports__, 'Gc', { get: () => Ou });\nObject.defineProperty(__dcg_chunk_exports__, 'Hc', { get: () => gd });\nObject.defineProperty(__dcg_chunk_exports__, 'Ic', { get: () => uh });\nObject.defineProperty(__dcg_chunk_exports__, 'Jc', { get: () => xte });\nObject.defineProperty(__dcg_chunk_exports__, 'Kc', { get: () => Tte });\nObject.defineProperty(__dcg_chunk_exports__, 'Lc', { get: () => Ite });\nObject.defineProperty(__dcg_chunk_exports__, 'Mc', { get: () => LN });\nObject.defineProperty(__dcg_chunk_exports__, 'Nc', { get: () => Ete });\nObject.defineProperty(__dcg_chunk_exports__, 'Oc', { get: () => yk });\nObject.defineProperty(__dcg_chunk_exports__, 'Pc', { get: () => Dte });\nObject.defineProperty(__dcg_chunk_exports__, 'Qc', { get: () => Ste });\nObject.defineProperty(__dcg_chunk_exports__, 'Rc', { get: () => FN });\nObject.defineProperty(__dcg_chunk_exports__, 'Sc', { get: () => VN });\nObject.defineProperty(__dcg_chunk_exports__, 'Tc', { get: () => ch });\nObject.defineProperty(__dcg_chunk_exports__, 'Uc', { get: () => BN });\nObject.defineProperty(__dcg_chunk_exports__, 'Vc', { get: () => GN });\nObject.defineProperty(__dcg_chunk_exports__, 'Wc', { get: () => kN });\nObject.defineProperty(__dcg_chunk_exports__, 'Xc', { get: () => kte });\nObject.defineProperty(__dcg_chunk_exports__, 'Yc', { get: () => zte });\nObject.defineProperty(__dcg_chunk_exports__, 'Zc', { get: () => gk });\nObject.defineProperty(__dcg_chunk_exports__, '_c', { get: () => Hte });\nObject.defineProperty(__dcg_chunk_exports__, '$c', { get: () => Ute });\nObject.defineProperty(__dcg_chunk_exports__, 'ad', { get: () => B0 });\nObject.defineProperty(__dcg_chunk_exports__, 'bd', { get: () => ph });\nObject.defineProperty(__dcg_chunk_exports__, 'cd', { get: () => hk });\nObject.defineProperty(__dcg_chunk_exports__, 'dd', { get: () => bk });\nObject.defineProperty(__dcg_chunk_exports__, 'ed', { get: () => qN });\nObject.defineProperty(__dcg_chunk_exports__, 'fd', { get: () => lh });\nObject.defineProperty(__dcg_chunk_exports__, 'gd', { get: () => Pk });\nObject.defineProperty(__dcg_chunk_exports__, 'hd', { get: () => Bc });\nObject.defineProperty(__dcg_chunk_exports__, 'id', { get: () => Tk });\nObject.defineProperty(__dcg_chunk_exports__, 'jd', { get: () => Ik });\nObject.defineProperty(__dcg_chunk_exports__, 'kd', { get: () => Yte });\nObject.defineProperty(__dcg_chunk_exports__, 'ld', { get: () => Ek });\nObject.defineProperty(__dcg_chunk_exports__, 'md', { get: () => Ep });\nObject.defineProperty(__dcg_chunk_exports__, 'nd', { get: () => iz });\nObject.defineProperty(__dcg_chunk_exports__, 'od', { get: () => ZA });\nObject.defineProperty(__dcg_chunk_exports__, 'pd', { get: () => XH });\nObject.defineProperty(__dcg_chunk_exports__, 'qd', { get: () => nH });\nObject.defineProperty(__dcg_chunk_exports__, 'rd', { get: () => rH });\nObject.defineProperty(__dcg_chunk_exports__, 'sd', { get: () => Md });\nObject.defineProperty(__dcg_chunk_exports__, 'td', { get: () => vd });\nObject.defineProperty(__dcg_chunk_exports__, 'ud', { get: () => Nh });\nObject.defineProperty(__dcg_chunk_exports__, 'vd', { get: () => a_ });\n\n return __dcg_chunk_exports__;\n })();"
const __dcg_shared_module_exports__ = eval(__dcg_shared_module_source__);
const __dcg_worker_source_exports__ = (function () {
// worker.js
const __dcg_worker_source__ = `
// store the code for the worker module as a function that takes the shared module exports as an argument
const __dcg_worker_module__ = (__dcg_shared_module_exports__) => {
` + "var o={};__dcg_shared_module_exports__['pd'].log=function(e){self.postMessage({log:JSON.stringify(e)})};var a=self;a.window=a;a.onmessage=function(e){var n=e.data&&e.data.connectionId;if(n)if(e.data.originalMessage.type===\"destroy\")delete o[n];else{var s=o[n];s||(s=new __dcg_shared_module_exports__['vd'](function(g,c){a.postMessage({connectionId:n,originalMessage:{type:g,payload:c}})}),o[n]=s),s.processChangeSet(e.data.originalMessage)}};a.loadMessageQueue&&(a.loadMessageQueue.forEach(function(e){a.onmessage(e)}),delete a.loadMessageQueue);\n" + `
};
// execute the shared module store its exports
const __dcg_worker_shared_module_exports__ = ${__dcg_shared_module_source__};
// call the worker module, passing in the shared module exports
__dcg_worker_module__(__dcg_worker_shared_module_exports__);`
let createWorker;
if (typeof Blob !== 'undefined' && URL && typeof URL.createObjectURL === 'function') {
createWorker = () => {
const workerURL = URL.createObjectURL(new Blob([__dcg_worker_source__], { type: 'application/javascript' }))
const worker = new Worker(workerURL);
worker.revokeObjectURL = () => {
URL.revokeObjectURL(workerURL);
}
return worker;
}
} else {
// Just for testing in Node
createWorker = () => {
(new Function(__dcg_worker_source__))();
}
}
return {createWorker, default: {createWorker}};
})();
var YV=__dcg_shared_module_exports__['c'](Uf=>{var Ne=Uf&&Uf.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,o){i.__proto__=o}||function(i,o){for(var n in o)Object.prototype.hasOwnProperty.call(o,n)&&(i[n]=o[n])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}(),qw=Uf&&Uf.__assign||function(){return qw=Object.assign||function(r){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(r[o]=e[o])}return r},qw.apply(this,arguments)};(function(){var r=-1,e=1,t=Math.min,i=Math.max;function o(){}function n(w){for(;w;){if(!w.parent)return w;w=w.parent}}function a(w,f,p){if(!f){var m=new Error("prayer failed: "+w);if(p){var y={};m.dcgExtraErrorMetaData=y;for(var T in p){var L=p[T],F=y[T]={};if(L){F.localLatex=L.latex();var N=n(L);N&&(F.rootLatex=N.latex())}else F.emptyNode=!0}}throw m}}function s(w){a("a direction was passed",w===r||w===e)}function l(w){var f=document.implementation.createHTMLDocument("");if(f.body.innerHTML=w,f.body.children.length===1)return f.body.children[0];for(var p=document.createDocumentFragment();f.body.firstChild;)p.appendChild(f.body.firstChild);return p}var c=function(f,p,m){var y;switch(f){case"svg":case"path":y=document.createElementNS("http://www.w3.org/2000/svg",f);break;default:y=document.createElement(f)}for(var T in p){var L=p[T];L!==void 0&&y.setAttribute(T,typeof L=="string"?L:String(L))}if(m)for(var F=0;F<m.length;F++)y.appendChild(m[F]);return y};c.text=function(w){return document.createTextNode(w)},c.block=function(w,f,p){var m=c(w,f,[p.html()]);return p.setDOM(m),z.linkElementByBlockNode(m,p),m},c.entityText=function(w){var f=l(w);return a("entity parses to a single text node",f instanceof DocumentFragment&&f.childNodes.length===1&&f.childNodes[0]instanceof Text),f.childNodes[0]};function d(w,f){var p,m;if(typeof(w==null?void 0:w.closest)=="function")return w.closest(f);if(!(w instanceof HTMLElement))return null;var y=Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,T=w;do{if(y.call(T,f))return T;T=(m=(p=T==null?void 0:T.parentElement)!==null&&p!==void 0?p:T==null?void 0:T.parentNode)!==null&&m!==void 0?m:null}while(T!==null&&T.nodeType===1);return null}var u="\xA0",h="\u200B",g="\u02D9",b="\u2211",C="\u220F",S="\u2210",k="\u222B";function I(w){return w.getClientRects().length?w.getBoundingClientRect():{top:0,left:0,height:0,width:0,x:0,y:0,bottom:0,right:0}}function M(){return window.pageXOffset!==void 0?window.pageXOffset:(document.documentElement||document.body.parentNode||document.body).scrollLeft}function E(){return window.pageYOffset!==void 0?window.pageYOffset:(document.documentElement||document.body.parentNode||document.body).scrollTop}var A=function(){var w,f;return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?(w=requestAnimationFrame,f=cancelAnimationFrame):(w=function(p){return setTimeout(p,13)},f=clearTimeout),function(p,m){var y=Date.now(),T,L=0;function F(){var ye=(Date.now()-y)/p;ye<=L?Z():L=ye,m(L,Z,N)}function N(){T!==void 0&&f(T),T=void 0}function Z(){N(),T=w(F)}m(p<=0?1:0,Z,N)}}(),V=function(){function w(f){this.span=c("span",{class:"dcg-mq-aria-alert","aria-live":"assertive","aria-atomic":"true"}),this.msg="",this.items=[],this.controller=f}return w.prototype.attach=function(){var f=this.controller.container;this.span.parentNode!==f&&P(f).prepend(P(this.span))},w.prototype.queue=function(f,p){p===void 0&&(p=!1);var m="";if(f instanceof we){var y=f.mathspeak({ignoreShorthand:!0});p&&(f.parent&&f.parent.ariaLabel&&f.ariaLabel==="block"?m=f.parent.ariaLabel+" "+y:f.ariaLabel&&(m=f.ariaLabel+" "+y)),m===""&&(m=y)}else m=f||"";return this.items.push(m),this},w.prototype.queueDirOf=function(f){return s(f),this.queue(f===r?"before":"after")},w.prototype.queueDirEndOf=function(f){return s(f),this.queue(f===r?"beginning of":"end of")},w.prototype.alert=function(f){return this.attach(),f&&this.queue(f),this.items.length&&(this.msg=this.items.join(" ").replace(/ +(?= )/g,"").trim(),this.controller.containerHasFocus()&&(this.controller.options.logAriaAlerts&&this.msg&&console.log(this.msg),this.span.textContent=this.msg)),this.clear()},w.prototype.clear=function(){return this.items.length=0,this},w}(),G=function(){function w(f,p){var m;arguments.length===1&&(p=f),!(!f||!p)&&(this.ends=(m={},m[r]=f,m[e]=p,m))}return w.create=function(f,p){arguments.length===1&&(p=f),a("No half-empty DOMFragments",!!f==!!p);var m=new w(f,p);return a("last is a forward sibling of first",m.isValid()),m},w.prototype.isEmpty=function(){return this.ends===void 0},w.prototype.isOneNode=function(){return!!(this.ends&&this.ends[r]===this.ends[e])},w.prototype.isValid=function(){if(!this.ends||this.ends[r]===this.ends[e])return!0;var f;return this.eachNode(function(p){return f=p}),f===this.ends[e]},w.prototype.firstNode=function(){return a("Fragment is not empty",this.ends),this.ends[r]},w.prototype.lastNode=function(){return a("Fragment is not empty",this.ends),this.ends[e]},w.prototype.children=function(){var f=this.oneNode(),p=f.firstChild,m=f.lastChild;return p&&m?new w(p,m):new w},w.prototype.join=function(f){if(!this.ends)return f;if(!f.ends)return this;for(var p=!1,m=this.ends[e].nextSibling;m;){if(m===f.ends[r]){p=!0;break}m=m.nextSibling}return a("sibling must be a forward DOM sibling of this fragment",p),new w(this.ends[r],f.ends[e])},w.prototype.oneNode=function(){return a("Fragment has a single node",this.ends&&this.ends[r]===this.ends[e]),this.ends[r]},w.prototype.oneElement=function(){var f=this.oneNode();return a("Node is an Element",f.nodeType===Node.ELEMENT_NODE),f},w.prototype.oneText=function(){var f=this.oneNode();return a("Node is Text",f.nodeType===Node.TEXT_NODE),f},w.prototype.eachNode=function(f){if(!this.ends)return this;for(var p=this.ends[e],m=this.ends[r],y=void 0;m&&(y=m.nextSibling,f(m),m!==p);m=y);return this},w.prototype.eachElement=function(f){return this.eachNode(function(p){p.nodeType===Node.ELEMENT_NODE&&f(p)}),this},w.prototype.text=function(){var f="";return this.eachNode(function(p){f+=p.textContent||""}),f},w.prototype.toNodeArray=function(){var f=[];return this.eachNode(function(p){return f.push(p)}),f},w.prototype.toElementArray=function(){var f=[];return this.eachElement(function(p){return f.push(p)}),f},w.prototype.toDocumentFragment=function(){var f=document.createDocumentFragment();return this.eachNode(function(p){return f.appendChild(p)}),f},w.prototype.insertBefore=function(f){return this.insDirOf(r,f)},w.prototype.insertAfter=function(f){return this.insDirOf(e,f)},w.prototype.append=function(f){return f.appendTo(this.oneElement()),this},w.prototype.prepend=function(f){return f.prependTo(this.oneElement()),this},w.prototype.appendTo=function(f){return this.insAtDirEnd(e,f)},w.prototype.prependTo=function(f){return this.insAtDirEnd(r,f)},w.prototype.parent=function(){if(!this.ends)return this;var f=this.ends[r].parentNode;return f?new w(f):new w},w.prototype.wrapAll=function(f){if(f.textContent="",!this.ends)return this;var p=this.ends[r].parentNode,m=this.ends[e].nextSibling;return this.appendTo(f),p&&p.insertBefore(f,m),this},w.prototype.replaceWith=function(f){var p,m=(p=this.ends)===null||p===void 0?void 0:p[e],y=m==null?void 0:m.parentNode,T=m==null?void 0:m.nextSibling;this.detach();var L=f.toDocumentFragment();return!m||!y?this:(y.insertBefore(L,T||null),this)},w.prototype.nthElement=function(f){if(this.ends&&!(f<0||f!==Math.floor(f)))for(var p=this.ends[r];p;){if(p.nodeType===Node.ELEMENT_NODE){if(f<=0)return p;f-=1}if(p===this.ends[e])return;p=p.nextSibling}},w.prototype.firstElement=function(){return this.nthElement(0)},w.prototype.lastElement=function(){if(this.ends)for(var f=this.ends[e];f;){if(f.nodeType===Node.ELEMENT_NODE)return f;if(f===this.ends[r])return;f=f.previousSibling}},w.prototype.first=function(){return new w(this.firstElement())},w.prototype.last=function(){return new w(this.lastElement())},w.prototype.eq=function(f){return new w(this.nthElement(f))},w.prototype.slice=function(f){if(!this.ends)return this;var p=this.nthElement(f);return p?new w(p,this.ends[e]):new w},w.prototype.next=function(){for(var f=this.oneNode();f;)if(f=f.nextSibling,f&&f.nodeType===Node.ELEMENT_NODE)return new w(f);return new w},w.prototype.prev=function(){for(var f=this.oneNode();f;)if(f=f.previousSibling,f&&f.nodeType===Node.ELEMENT_NODE)return new w(f);return new w},w.prototype.empty=function(){return this.eachElement(function(f){f.textContent=""}),this},w.prototype.remove=function(){return this.toDocumentFragment(),this},w.prototype.detach=function(){return this.remove()},w.prototype.insDirOf=function(f,p){var m;if(!this.ends)return this;var y=(m=p.ends)===null||m===void 0?void 0:m[f];return!y||!y.parentNode?this.detach():(O(f,y.parentNode,this.toDocumentFragment(),y),this)},w.prototype.insAtDirEnd=function(f,p){return this.ends?(R(f,this.toDocumentFragment(),p),this):this},w.prototype.hasClass=function(f){var p=!1;return this.eachElement(function(m){m.classList.contains(f)&&(p=!0)}),p},w.prototype.addClass=function(f){for(var p=function(F){if(!F)return"continue";m.eachElement(function(N){N.classList.add(F)})},m=this,y=0,T=f.split(/\s+/);y<T.length;y++){var L=T[y];p(L)}return this},w.prototype.removeClass=function(f){for(var p=function(F){if(!F)return"continue";m.eachElement(function(N){N.classList.remove(F)})},m=this,y=0,T=f.split(/\s+/);y<T.length;y++){var L=T[y];p(L)}return this},w.prototype.toggleClass=function(f,p){if(p===!0)return this.addClass(f);if(p===!1)return this.removeClass(f);for(var m=function(N){if(!N)return"continue";y.eachElement(function(Z){Z.classList.toggle(N)})},y=this,T=0,L=f.split(/\s+/);T<L.length;T++){var F=L[T];m(F)}return this},w}(),P=G.create;function O(w,f,p,m){f.insertBefore(p,w===r?m:m.nextSibling)}function R(w,f,p){w===r?p.insertBefore(f,p.firstChild):p.appendChild(f)}var q=function(){function w(f,p,m){this.init(f,p,m)}return w.prototype.init=function(f,p,m){this.parent=f,this[r]=p,this[e]=m},w.copy=function(f){return new w(f.parent,f[r],f[e])},w}();function J(w,f){var p=w[r];if(p){var m=w[e];if(m)for(m=m[e];p!==m;p=p[e]){var y=f(p);if(y===!1)break}}}function U(w,f,p){var m=w[r];if(!m)return f;var y=w[e];if(!y)return f;for(y=y[e];m!==y;m=m[e])f=p(f,m);return f}var z=function(){function w(){var m;this[f]=0,this[p]=0,this.parent=0,this.ends=(m={},m[r]=0,m[e]=0,m),this.id=w.uniqueNodeId()}w.uniqueNodeId=function(){return w.idCounter+=1},w.getNodeOfElement=function(m){if(m){if(!m.nodeType)throw new Error("must pass an Element to NodeBase.getNodeOfElement");var y=m;return y.mqBlockNode||y.mqCmdNode}},w.linkElementByBlockNode=function(m,y){m.mqBlockNode=y},w.linkElementByCmdNode=function(m,y){m.mqCmdNode=y},w.prototype.setEnds=function(m){this.ends=m,a("No half-empty node ends",!!this.ends[r]==!!this.ends[e])},w.prototype.getEnd=function(m){return this.ends[m]},w.prototype.toString=function(){return"{{ MathQuill Node #"+this.id+" }}"},w.prototype.setDOM=function(m){return m&&a("DOM is an element or a text node",m.nodeType===Node.ELEMENT_NODE||m.nodeType===Node.TEXT_NODE),this._el=m,this},w.prototype.domFrag=function(){return P(this._el)},w.prototype.createDir=function(m,y){s(m);var T=this;return T.html(),T.domFrag().insDirOf(m,y.domFrag()),y[m]=T.adopt(y.parent,y[r],y[e]),T},w.prototype.createLeftOf=function(m){this.createDir(r,m)},w.prototype.selectChildren=function(m,y){return new se(m,y)},w.prototype.bubble=function(m){for(var y=this.getSelfNode(),T=y;T;T=T.parent){var L=m(T);if(L===!1)break}return this},w.prototype.postOrder=function(m){var y=this.getSelfNode();return function T(L){return L?(L.eachChild(T),m(L),!0):!1}(y),y},w.prototype.isEmpty=function(){return this.ends[r]===0&&this.ends[e]===0},w.prototype.isQuietEmptyDelimiter=function(m){if(!this.isEmpty()||!m||!this.parent||this.parent.ctrlSeq===void 0)return!1;var y=this.parent.ctrlSeq.replace(/^\\(left|right)?/,"");return m.hasOwnProperty(y)},w.prototype.isStyleBlock=function(){return!1},w.prototype.isTextBlock=function(){return!1},w.prototype.children=function(){return new v(this.getEnd(r),this.getEnd(e))},w.prototype.eachChild=function(m){return J(this.ends,m),this},w.prototype.foldChildren=function(m,y){return U(this.ends,m,y)},w.prototype.withDirAdopt=function(m,y,T,L){var F=this.getSelfNode();return new v(F,F).withDirAdopt(m,y,T,L),this},w.prototype.adopt=function(m,y,T){var L=this.getSelfNode();return new v(L,L).adopt(m,y,T),this.getSelfNode()},w.prototype.disown=function(){var m=this.getSelfNode();return new v(m,m).disown(),this},w.prototype.remove=function(){return this.domFrag().remove(),this.disown()},w.prototype.shouldIgnoreSubstitutionInSimpleSubscript=function(m){return!(!m.disableAutoSubstitutionInSubscripts||!this.parent||!(this.parent.parent instanceof Ks)||!this.parent.domFrag().hasClass("dcg-mq-sub"))},w.prototype.getSelfNode=function(){return this},w.prototype.parser=function(){a("Abstract parser() method is never called",!1)},w.prototype.html=function(){throw new Error("html() unimplemented in NodeBase")},w.prototype.text=function(){return""},w.prototype.latex=function(){var m={latex:"",startIndex:-1,endIndex:-1};return this.latexRecursive(m),m.latex},w.prototype.latexRecursive=function(m){},w.prototype.checkCursorContextOpen=function(m){m.startSelectionBefore===this&&(m.startIndex=m.latex.length),m.endSelectionBefore===this&&(m.endIndex=m.latex.length)},w.prototype.checkCursorContextClose=function(m){m.startSelectionAfter===this&&(m.startIndex=m.latex.length),m.endSelectionAfter===this&&(m.endIndex=m.latex.length)},w.prototype.finalizeTree=function(m,y){},w.prototype.contactWeld=function(m,y){},w.prototype.blur=function(m){},w.prototype.focus=function(){},w.prototype.intentionalBlur=function(){},w.prototype.reflow=function(){},w.prototype.registerInnerField=function(m,y){},w.prototype.chToCmd=function(m,y){a("Abstract chToCmd() method is never called",!1)},w.prototype.mathspeak=function(m){return""},w.prototype.seek=function(m,y){},w.prototype.siblingDeleted=function(m,y){},w.prototype.siblingCreated=function(m,y){},w.prototype.finalizeInsert=function(m,y){},w.prototype.fixDigitGrouping=function(m){},w.prototype.writeLatex=function(m,y){},w.prototype.write=function(m,y){};var f,p;return f=r,p=e,w.idCounter=0,w}();function K(w,f,p){a("a parent is always present",w),a("leftward is properly set up",function(){return f?f[e]===p&&f.parent===w:w.getEnd(r)===p}(),{parent:w,leftward:f,leftwardL:f&&f[r],leftwardR:f&&f[e],rightwardL:p&&p[r],rightwardR:p&&p[e]}),a("rightward is properly set up",function(){return p?p[r]===f&&p.parent===w:w.getEnd(e)===f}(),{parent:w,rightward:p,leftwardL:f&&f[r],leftwardR:f&&f[e],rightwardL:p&&p[r],rightwardR:p&&p[e],rightwardParent:p&&p.parent})}var v=function(){function w(f,p,m){var y,T;if(this.disowned=!1,m===void 0&&(m=r),s(m),a("no half-empty fragments",!f==!p,{withDir:f,oppDir:p}),!f||!p){this.setEnds((y={},y[r]=0,y[e]=0,y));return}a("withDir is passed to Fragment",f instanceof we),a("oppDir is passed to Fragment",p instanceof we),a("withDir and oppDir have the same parent",f.parent===p.parent);var L=(T={},T[m]=f,T[-m]=p,T);this.setEnds(L);var F=0;this.each(function(N){F=N}),a("following direction siblings from start reaches end",F===L[e])}return w.prototype.getDOMFragFromEnds=function(){var f=this.ends[r],p=this.ends[e];return f===0||p===0?P():f===p?f.domFrag():f.domFrag().join(p.domFrag())},w.prototype.setEnds=function(f){this.ends=f},w.prototype.getEnd=function(f){return this.ends?this.ends[f]:0},w.prototype.domFrag=function(){return this.getDOMFragFromEnds()},w.prototype.withDirAdopt=function(f,p,m,y){return f===r?this.adopt(p,m,y):this.adopt(p,y,m)},w.prototype.adopt=function(f,p,m){var y;K(f,p,m);var T=this;this.disowned=!1;var L=T.ends[r];if(!L)return this;var F=T.ends[e];if(!F)return this;var N=(y={},y[r]=f.getEnd(r),y[e]=f.getEnd(e),y);return p||(N[r]=L),m?m[r]=F:N[e]=F,f.setEnds(N),F[e]=m,T.each(function(Z){return Z[r]=p,Z.parent=f,p&&(p[e]=Z),p=Z,!0}),T},w.prototype.disown=function(){var f,p=this,m=p.ends[r];if(!m||p.disowned)return p;this.disowned=!0;var y=p.ends[e];if(!y)return p;var T=m.parent;K(T,m[r],m),K(T,y,y[e]);var L=(f={},f[r]=T.getEnd(r),f[e]=T.getEnd(e),f);if(m[r]){var F=m[r];F[e]=y[e]}else L[r]=y[e];if(y[e]){var N=y[e];N[r]=m[r]}else L[e]=m[r];return L[r]&&L[e]?T.setEnds(L):T.ends=L,p},w.prototype.remove=function(){return this.domFrag().remove(),this.disown()},w.prototype.each=function(f){return J(this.ends,f),this},w.prototype.fold=function(f,p){return U(this.ends,f,p)},w}(),D={},_={};function te(w){return w&&w.prototype instanceof we}var Q=function(w){Ne(f,w);function f(p,m,y){var T=w.call(this,p,m,y)||this;return T.ancestors={},T}return f.fromCursor=function(p){return new f(p.parent,p[r],p[e])},f}(q),De=function(w){Ne(f,w);function f(p,m,y){var T=w.call(this,p,0,0)||this;return T.upDownCache={},T.cursorElement=c("span",{class:"dcg-mq-cursor"},[c.text(h)]),T._domFrag=P(),T.controller=y,T.options=m,T.setDOMFrag(P(T.cursorElement)),T.blink=function(){P(T.cursorElement).toggleClass("dcg-mq-blink")},T}return f.prototype.setDOMFrag=function(p){return this._domFrag=p,this},f.prototype.domFrag=function(){return this._domFrag},f.prototype.show=function(){if(P(this.cursorElement).removeClass("dcg-mq-blink"),this.setDOMFrag(P(this.cursorElement)),this.intervalId)clearInterval(this.intervalId);else{var p=this[e];if(p){var m=this.selection;m&&m.getEnd(r)[r]===this[r]?this.domFrag().insertBefore(m.domFrag()):this.domFrag().insertBefore(p.domFrag())}else this.domFrag().appendTo(this.parent.domFrag().oneElement());this.parent.focus()}return this.intervalId=setInterval(this.blink,500),this},f.prototype.hide=function(){return this.intervalId&&clearInterval(this.intervalId),this.intervalId=0,this.domFrag().detach(),this.setDOMFrag(P()),this},f.prototype.withDirInsertAt=function(p,m,y,T){var L=this.parent;this.parent=m,this[p]=y,this[-p]=T,L!==m&&L.blur&&L.blur(this)},f.prototype.insDirOf=function(p,m){return s(p),this.domFrag().insDirOf(p,m.domFrag()),this.withDirInsertAt(p,m.parent,m[p],m),this.parent.domFrag().addClass("dcg-mq-hasCursor"),this},f.prototype.insLeftOf=function(p){return this.insDirOf(r,p)},f.prototype.insRightOf=function(p){return this.insDirOf(e,p)},f.prototype.insAtDirEnd=function(p,m){return s(p),this.domFrag().insAtDirEnd(p,m.domFrag().oneElement()),this.withDirInsertAt(p,m,0,m.getEnd(p)),m.focus(),this},f.prototype.insAtLeftEnd=function(p){return this.insAtDirEnd(r,p)},f.prototype.insAtRightEnd=function(p){return this.insAtDirEnd(e,p)},f.prototype.jumpUpDown=function(p,m){var y=this;y.upDownCache[p.id]=q.copy(y);var T=y.upDownCache[m.id];if(T){var L=T[e];L?y.insLeftOf(L):y.insAtRightEnd(T.parent)}else{var F=y.getBoundingClientRectWithoutMargin().left;m.seek(F,y)}y.controller.aria.queue(m,!0)},f.prototype.getBoundingClientRectWithoutMargin=function(){var p=this.domFrag();p.removeClass("dcg-mq-cursor");var m=I(p.oneElement()),y=m.left,T=m.right;return p.addClass("dcg-mq-cursor"),{left:y,right:T}},f.prototype.unwrapGramp=function(){var p=this.parent.parent,m=p.parent,y=p[e],T=this,L=p[r];if(p.disown().eachChild(function(ae){return ae.isEmpty()||(ae.children().adopt(m,L,y).each(function(Te){return Te.domFrag().insertBefore(p.domFrag()),!0}),L=ae.getEnd(e)),!0}),!this[e]){var F=this[r];if(F)this[e]=F[e];else for(;!this[e];){var N=this.parent[e];if(N)this.parent=N,this[e]=N.getEnd(r);else{this[e]=p[e],this.parent=m;break}}}var Z=this[e];Z?this.insLeftOf(Z):this.insAtRightEnd(m),p.domFrag().remove();var ye=p[r],pe=p[e];ye&&ye.siblingDeleted(T.options,e),pe&&pe.siblingDeleted(T.options,r)},f.prototype.startSelection=function(){for(var p=this.anticursor=Q.fromCursor(this),m=p.ancestors,y=p;y.parent;y=y.parent)m[y.parent.id]=y},f.prototype.endSelection=function(){delete this.anticursor},f.prototype.select=function(){var p,m=this.anticursor;if(this[r]===m[r]&&this.parent===m.parent)return!1;for(var y=this;y.parent;y=y.parent)if(y.parent.id in m.ancestors){p=y.parent;break}a("cursor and anticursor in the same tree",p);var T=p,L=m.ancestors[T.id],F,N,Z=e;if(y[r]!==L){for(var ye=y;ye;ye=ye[e])if(ye[e]===L[e]){Z=r,F=y,N=L;break}}Z===e&&(F=L,N=y),F instanceof q&&(F=F[e]),N instanceof q&&(N=N[r]),this.hide().selection=T.selectChildren(F,N);var pe=this.selection.getEnd(Z);return this.insDirOf(Z,pe),this.selectionChanged(),!0},f.prototype.resetToEnd=function(p){this.clearSelection();var m=p.root;this[e]=0,this[r]=m.getEnd(e),this.parent=m},f.prototype.clearSelection=function(){return this.selection&&(this.selection.clear(),delete this.selection,this.selectionChanged()),this},f.prototype.deleteSelection=function(){var p=this.selection;p&&(this[r]=p.getEnd(r)[r],this[e]=p.getEnd(e)[e],p.remove(),this.selectionChanged(),delete this.selection)},f.prototype.replaceSelection=function(){var p=this.selection;return p&&(this[r]=p.getEnd(r)[r],this[e]=p.getEnd(e)[e],delete this.selection),p},f.prototype.depth=function(){for(var p=this,m=0;p=p.parent;)m+=p instanceof Ar?1:0;return m},f.prototype.isTooDeep=function(p){return this.options.maxDepth!==void 0?this.depth()+(p||0)>this.options.maxDepth:!1},f.prototype.selectionChanged=function(){},f}(q),se=function(w){Ne(f,w);function f(p,m,y){var T=w.call(this,p,m,y)||this;return T._el=c("span",{class:"dcg-mq-selection"}),T.getDOMFragFromEnds().wrapAll(T._el),T}return f.prototype.isCleared=function(){return this._el===void 0},f.prototype.domFrag=function(){return this.isCleared()?this.getDOMFragFromEnds():P(this._el)},f.prototype.setEnds=function(p){a("Selection ends are never empty",p[r]&&p[e]),this.ends=p},f.prototype.getEnd=function(p){return this.ends[p]},f.prototype.adopt=function(p,m,y){return this.clear(),w.prototype.adopt.call(this,p,m,y)},f.prototype.clear=function(){var p=this.getDOMFragFromEnds();return this.domFrag().replaceWith(p),this._el=void 0,this},f.prototype.join=function(p,m){return m===void 0&&(m=""),this.fold("",function(y,T){return y+m+T[p]()})},f}(v),re=function(){function w(f,p,m){this.textareaEventListeners={},this.id=f.id,this.data={},this.root=f,this.container=p,this.options=m,this.aria=new V(this.getControllerSelf()),this.ariaLabel="Math Input",this.ariaPostLabel="",f.controller=this.getControllerSelf(),this.cursor=f.cursor=new De(f,m,this.getControllerSelf())}return w.prototype.getControllerSelf=function(){return this},w.prototype.handle=function(f,p){var m,y=this.options.handlers,T=(m=this.options.handlers)===null||m===void 0?void 0:m.fns[f];if(T){var L=y==null?void 0:y.APIClasses[this.KIND_OF_MQ];a("APIClass is defined",L);var F=new L(this);p===r||p===e?T(p,F):T(F)}},w.onNotify=function(f){w.notifyees.push(f)},w.prototype.notify=function(f){for(var p=0;p<w.notifyees.length;p+=1)w.notifyees[p](this.cursor,f);return this},w.prototype.setAriaLabel=function(f){var p=this.getAriaLabel();return f&&typeof f=="string"&&f!==""?this.ariaLabel=f:this.editable?this.ariaLabel="Math Input":this.ariaLabel="",this.ariaLabel!==p&&!this.containerHasFocus()&&this.updateMathspeak(),this},w.prototype.getAriaLabel=function(){return this.ariaLabel!=="Math Input"?this.ariaLabel:this.editable?"Math Input":""},w.prototype.setAriaPostLabel=function(f,p){var m=this;return f&&typeof f=="string"&&f!==""?(f!==this.ariaPostLabel&&typeof p=="number"&&(this._ariaAlertTimeout&&clearTimeout(this._ariaAlertTimeout),this._ariaAlertTimeout=setTimeout(function(){m.containerHasFocus()?m.aria.alert(m.root.mathspeak().trim()+" "+f.trim()):m.updateMathspeak()},p)),this.ariaPostLabel=f):(this._ariaAlertTimeout&&clearTimeout(this._ariaAlertTimeout),this.ariaPostLabel=""),this},w.prototype.getAriaPostLabel=function(){return this.ariaPostLabel||""},w.prototype.containerHasFocus=function(){return document.activeElement&&this.container.contains(document.activeElement)},w.prototype.getTextareaOrThrow=function(){var f=this.textarea;if(!f)throw new Error("expected a textarea");return f},w.prototype.getTextareaSpanOrThrow=function(){var f=this.textareaSpan;if(!f)throw new Error("expected a textareaSpan");return f},w.prototype.addTextareaEventListeners=function(f){if(this.textarea)for(var p in f){var m=p;this.removeTextareaEventListener(m),this.textarea.addEventListener(m,f[m])}},w.prototype.removeTextareaEventListener=function(f){if(this.textarea){var p=this.textareaEventListeners[f];p&&this.textarea.removeEventListener(f,p)}},w.prototype.exportMathSpeak=function(){return this.root.mathspeak()},w.prototype.updateMathspeak=function(){},w.prototype.scrollHoriz=function(){},w.prototype.selectionChanged=function(){},w.prototype.setOverflowClasses=function(){},w.notifyees=[],w}(),j={},X={},fe={handlers:!0,autoCommands:!0,quietEmptyDelimiters:!0,autoParenthesizedFunctions:!0,autoOperatorNames:!0,infixOperatorNames:!0,leftRightIntoCmdGoes:!0,maxDepth:!0,interpretTildeAsSim:!0},be={},Me=function(){function w(f){this.version=f}return w.prototype.assertJquery=function(){return a("Interface versions > 2 do not depend on JQuery",this.version<=2),a("JQuery is set for interface v < 3",this.jQuery),this.jQuery},w}(),Be=function(){function w(){}return w}(),Xe=function(){window.console&&console.warn(`You are using the MathQuill API without specifying an interface version, which will fail in v1.0.0. Easiest fix is to do the following before doing anything else:
MathQuill = MathQuill.getInterface(1);
// now MathQuill.MathField() works like it used to
See also the "\`dev\` branch (2014\u20132015) \u2192 v0.10.0 Migration Guide" at
https://github.com/mathquill/mathquill/wiki/%60dev%60-branch-(2014%E2%80%932015)-%E2%86%92-v0.10.0-Migration-Guide`)},_t;function je(w){return Xe(),_t||(_t=xe(1)),_t(w)}je.prototype=Be.prototype,je.VERSION="vv1.9",je.interfaceVersion=function(w){if(w!==1)throw"Only interface version 1 supported. You specified: "+w;return Xe=function(){window.console&&console.warn(`You called MathQuill.interfaceVersion(1); to specify the interface version, which will fail in v1.0.0. You can fix this easily by doing this before doing anything else:
MathQuill = MathQuill.getInterface(1);
// now MathQuill.MathField() works like it used to
See also the "\`dev\` branch (2014\u20132015) \u2192 v0.10.0 Migration Guide" at
https://github.com/mathquill/mathquill/wiki/%60dev%60-branch-(2014%E2%80%932015)-%E2%86%92-v0.10.0-Migration-Guide`)},Xe(),je},je.getInterface=xe;var Kr=xe.MIN=1,Dt=xe.MAX=3;function xe(w){if(w!==1&&w!==2&&w!==3)throw"Only interface versions between "+Kr+" and "+Dt+" supported. You specified: "+w;var f=w;if(f<3){var p=window.jQuery;if(!p)throw"MathQuill interface version ".concat(f," requires jQuery 1.5.2+ to be loaded first");Me.prototype.jQuery=p}var m=qw(qw({},be),{handlers:function(pe){return{fns:pe||{},APIClasses:N}}});function y(pe,ae){for(var Te in ae)if(ae.hasOwnProperty(Te)){if(Te==="substituteKeyboardEvents"&&f>=3)throw new Error(["As of interface version 3, the 'substituteKeyboardEvents'","option is no longer supported. Use 'overrideTypedText' and","'overrideKeystroke' instead."].join(" "));var Ie=ae[Te],Oe=m[Te];pe[Te]=Oe?Oe(Ie):Ie}}var T=f<3?Me:function(pe){Ne(ae,pe);function ae(){return pe!==null&&pe.apply(this,arguments)||this}return ae}(Me),L=function(pe){Ne(ae,pe);function ae(Te){var Ie=pe.call(this)||this;return Ie.__controller=Te,Ie.__options=Te.options,Ie.id=Te.id,Ie.data=Te.data,Ie}return ae.prototype.mathquillify=function(Te){var Ie=this.__controller,Oe=Ie.root,ze=Ie.container;Ie.createTextarea();var rt=P(ze).addClass(Te).children().detach();Oe.setDOM(P(c("span",{class:"dcg-mq-root-block","aria-hidden":!0})).appendTo(ze).oneElement()),z.linkElementByBlockNode(Oe.domFrag().oneElement(),Oe),this.latex(rt.text()),this.revert=function(){return Ie.removeMouseEventListener(),P(ze).removeClass("dcg-mq-editable-field dcg-mq-math-mode dcg-mq-text-mode").empty().append(rt),f<3?this.__options.assertJquery()(ze):ze}},ae.prototype.setAriaLabel=function(Te){return this.__controller.setAriaLabel(Te),this},ae.prototype.getAriaLabel=function(){return this.__controller.getAriaLabel()},ae.prototype.config=function(Te){return y(this.__options,Te),this},ae.prototype.el=function(){return this.__controller.container},ae.prototype.text=function(){return this.__controller.exportText()},ae.prototype.mathspeak=function(){return this.__controller.exportMathSpeak()},ae.prototype.latex=function(Te){if(arguments.length>0){this.__controller.renderLatexMath(Te);var Ie=this.__controller.cursor;return this.__controller.blurred&&Ie.hide().parent.blur(Ie),this}return this.__controller.exportLatex()},ae.prototype.selection=function(){return this.__controller.exportLatexSelection()},ae.prototype.html=function(){return this.__controller.root.domFrag().oneElement().innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/ mathquill-(?:command|block)-id="?\d+"?/g,"").replace(/<span class="?dcg-mq-cursor( dcg-mq-blink)?"?>.?<\/span>/i,"").replace(/ dcg-mq-hasCursor|dcg-mq-hasCursor ?/,"").replace(/ class=(""|(?= |>))/g,"")},ae.prototype.reflow=function(){return this.__controller.root.postOrder(function(Te){Te.reflow()}),this},ae}(Be),F=function(pe){Ne(ae,pe);function ae(){return pe!==null&&pe.apply(this,arguments)||this}return ae.prototype.mathquillify=function(Te){return pe.prototype.mathquillify.call(this,Te),this.__controller.editable=!0,this.__controller.addMouseEventListener(),this.__controller.editablesTextareaEvents(),this},ae.prototype.focus=function(){return this.__controller.getTextareaOrThrow().focus(),this.__controller.scrollHoriz(),this},ae.prototype.blur=function(){return this.__controller.getTextareaOrThrow().blur(),this},ae.prototype.write=function(Te){this.__controller.writeLatex(Te),this.__controller.scrollHoriz();var Ie=this.__controller.cursor;return this.__controller.blurred&&Ie.hide().parent.blur(Ie),this},ae.prototype.empty=function(){var Te,Ie=this.__controller.root,Oe=this.__controller.cursor;return Ie.setEnds((Te={},Te[r]=0,Te[e]=0,Te)),Ie.domFrag().empty(),delete Oe.selection,Oe.insAtRightEnd(Ie),this},ae.prototype.cmd=function(Te){var Ie=this.__controller.notify(void 0),Oe=Ie.cursor;if(/^\\[a-z]+$/i.test(Te)&&!Oe.isTooDeep()){Te=Te.slice(1);var ze=D[Te],rt;ze&&(ze.constructor?rt=new ze(Te):rt=ze(Te),Oe.selection&&rt.replaces(Oe.replaceSelection()),rt.createLeftOf(Oe.show()))}else Oe.parent.write(Oe,Te);return Ie.scrollHoriz(),Ie.blurred&&Oe.hide().parent.blur(Oe),this},ae.prototype.select=function(){return this.__controller.selectAll(),this},ae.prototype.clearSelection=function(){return this.__controller.cursor.clearSelection(),this},ae.prototype.moveToDirEnd=function(Te){return this.__controller.notify("move").cursor.insAtDirEnd(Te,this.__controller.root),this},ae.prototype.moveToLeftEnd=function(){return this.moveToDirEnd(r)},ae.prototype.moveToRightEnd=function(){return this.moveToDirEnd(e)},ae.prototype.keystroke=function(Te,Ie){for(var Oe=Te.replace(/^\s+|\s+$/g,"").split(/\s+/),ze=0;ze<Oe.length;ze+=1)this.__controller.keystroke(Oe[ze],Ie);return this},ae.prototype.typedText=function(Te){for(var Ie=0;Ie<Te.length;Ie+=1)this.__controller.typedText(Te.charAt(Ie));return this},ae.prototype.dropEmbedded=function(Te,Ie,Oe){var ze=Te-M(),rt=Ie-E(),Zt=document.elementFromPoint(ze,rt);this.__controller.seek(Zt,ze,rt);var ki=new rG().setOptions(Oe);ki.createLeftOf(this.__controller.cursor)},ae.prototype.setAriaPostLabel=function(Te,Ie){return this.__controller.setAriaPostLabel(Te,Ie),this},ae.prototype.getAriaPostLabel=function(){return this.__controller.getAriaPostLabel()},ae.prototype.clickAt=function(Te,Ie,Oe){Oe=Oe||document.elementFromPoint(Te,Ie);var ze=this.__controller,rt=ze.root,Zt=rt.domFrag().oneElement();return Zt.contains(Oe)||(Oe=Zt),ze.seek(Oe,Te,Ie),ze.blurred&&this.focus(),this},ae.prototype.ignoreNextMousedown=function(Te){return this.__controller.cursor.options.ignoreNextMousedown=Te,this},ae}(L),N={AbstractMathQuill:L,EditableField:F};a("API.StaticMath defined",j.StaticMath),N.StaticMath=j.StaticMath(N),a("API.MathField defined",j.MathField),N.MathField=j.MathField(N),a("API.InnerMathField defined",j.InnerMathField),N.InnerMathField=j.InnerMathField(N),j.TextField&&(N.TextField=j.TextField(N));var Z=function(pe){if(!pe||!pe.nodeType)return null;for(var ae,Te=P(pe).children().toElementArray(),Ie=0,Oe=Te;Ie<Oe.length;Ie++){var ze=Oe[Ie];if(ze.classList.contains("dcg-mq-root-block")){ae=ze;break}}var rt=z.getNodeOfElement(ae),Zt=rt&&rt.controller,ki=Zt&&N[Zt.KIND_OF_MQ];return Zt&&ki?new ki(Zt):null};Z.L=r,Z.R=e,Z.config=function(pe){return y(T.prototype,pe),this},Z.registerEmbed=function(pe,ae){if(!/^[a-z][a-z0-9]*$/i.test(pe))throw"Embed name must start with letter and be only letters and digits";X[pe]=ae},Z.StaticMath=ye("StaticMath",N.StaticMath),Z.MathField=ye("MathField",N.MathField),Z.InnerMathField=ye("InnerMathField",N.InnerMathField),N.TextField&&(Z.TextField=ye("TextField",N.TextField)),Z.prototype=L.prototype,Z.EditableField=function(){throw"wtf don't call me, I'm 'abstract'"},Z.EditableField.prototype=F.prototype,f<3&&(Z.saneKeyboardEvents=nt);function ye(pe,ae){a(pe+" is defined",ae);function Te(Ie,Oe){if(!Ie||!Ie.nodeType)return null;var ze=Z(Ie);if(ze instanceof ae)return ze;var rt=new Un(new ae.RootBlock,Ie,new T(f));return rt.KIND_OF_MQ=pe,new ae(rt).__mathquillify(Oe||{},f)}return Te.prototype=ae.prototype,Te}return Z}je.noConflict=function(){return window.MathQuill=Io,je};var Io=window.MathQuill;window.MathQuill=je;function Zi(w){w.moveOutOf=function(f){a("controller is defined",this.controller),this.controller.handle("moveOutOf",f)},w.deleteOutOf=function(f){a("controller is defined",this.controller),this.controller.handle("deleteOutOf",f)},w.selectOutOf=function(f){a("controller is defined",this.controller),this.controller.handle("selectOutOf",f)},w.upOutOf=function(){a("controller is defined",this.controller),this.controller.handle("upOutOf")},w.downOutOf=function(){a("controller is defined",this.controller),this.controller.handle("downOutOf")},w.reflow=function(){a("controller is defined",this.controller),this.controller.handle("reflow"),this.controller.handle("edited"),this.controller.handle("edit")}}function Se(w,f){throw w?w="'"+w+"'":w="EOF","Parse Error: "+f+" at "+w}var tt=function(){function w(f){this._=f}return w.prototype.parse=function(f){return this.skip(w.eof)._(""+f,p,Se);function p(m,y){return y}},w.prototype.or=function(f){a("or is passed a parser",f instanceof w);var p=this;return new w(function(m,y,T){return p._(m,y,L);function L(F){return f._(m,y,T)}})},w.prototype.then=function(f){var p=this;return new w(function(m,y,T){return p._(m,L,T);function L(F,N){var Z=f instanceof w?f:f(N);return a("a parser is returned",Z instanceof w),Z._(F,y,T)}})},w.prototype.many=function(){var f=this;return new w(function(p,m,y){for(var T=[];f._(p,L,F););return m(p,T);function L(N,Z){return p=N,T.push(Z),!0}function F(){return!1}})},w.prototype.times=function(f,p){arguments.length<2&&(p=f);var m=this;return new w(function(y,T,L){for(var F=[],N=!0,Z,ye=0;ye<f;ye+=1)if(N=!!m._(y,pe,ae),!N)return L(y,Z);for(;ye<p&&N;ye+=1)m._(y,pe,Te);return T(y,F);function pe(Ie,Oe){return F.push(Oe),y=Ie,!0}function ae(Ie,Oe){return Z=Oe,y=Ie,!1}function Te(Ie,Oe){return!1}})},w.prototype.result=function(f){return this.then(w.succeed(f))},w.prototype.atMost=function(f){return this.times(0,f)},w.prototype.atLeast=function(f){var p=this;return p.times(f).then(function(m){return p.many().map(function(y){return m.concat(y)})})},w.prototype.map=function(f){return this.then(function(p){return w.succeed(f(p))})},w.prototype.skip=function(f){return this.then(function(p){return f.result(p)})},w.string=function(f){var p=f.length,m="expected '"+f+"'";return new w(function(y,T,L){var F=y.slice(0,p);return F===f?T(y.slice(p),F):L(y,m)})},w.regex=function(f){a("regexp parser is anchored",f.toString().charAt(1)==="^");var p="expected "+f;return new w(function(m,y,T){var L=f.exec(m);if(L){var F=L[0];return y(m.slice(F.length),F)}else return T(m,p)})},w.succeed=function(f){return new w(function(p,m){return m(p,f)})},w.fail=function(f){return new w(function(p,m,y){return y(p,f)})},w.letter=w.regex(/^[a-z]/i),w.letters=w.regex(/^[a-z]*/i),w.digit=w.regex(/^[0-9]/),w.digits=w.regex(/^[0-9]*/),w.whitespace=w.regex(/^\s+/),w.optWhitespace=w.regex(/^\s*/),w.any=new w(function(f,p,m){return f?p(f.slice(1),f.charAt(0)):m(f,"expected any character")}),w.all=new w(function(f,p,m){return p("",f)}),w.eof=new w(function(f,p,m){return f?m(f,"expected EOF"):p(f,f)}),w}(),Re=function(){function w(){this.fn=o}return w.prototype.listen=function(f){this.fn=f,clearTimeout(this.timeoutId),this.timeoutId=setTimeout(this.fn)},w.prototype.listenOnce=function(f){var p=this;this.listen(function(){for(var m=[],y=0;y<arguments.length;y++)m[y]=arguments[y];p.clearListener(),f.apply(void 0,m)})},w.prototype.clearListener=function(){this.fn=o,clearTimeout(this.timeoutId)},w.prototype.trigger=function(){for(var f=[],p=0;p<arguments.length;p++)f[p]=arguments[p];this.fn.apply(this,f)},w}(),Qe=function(){var w={8:"Backspace",9:"Tab",10:"Enter",13:"Enter",16:"Shift",17:"Control",18:"Alt",20:"CapsLock",27:"Esc",32:"Spacebar",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",45:"Insert",46:"Del",144:"NumLock"},f={ArrowRight:"Right",ArrowLeft:"Left",ArrowDown:"Down",ArrowUp:"Up",Delete:"Del",Escape:"Esc"," ":"Spacebar"};function p(L){switch(y(L)){case"Right":case"Left":case"Down":case"Up":return!0}return!1}function m(L){return L.length===1&&L>="a"&&L<="z"}function y(L){var F;if(L.key===void 0){var N=L.which||L.keyCode;return w[N]||String.fromCharCode(N)}return m(L.key)?L.key.toUpperCase():(F=f[L.key])!==null&&F!==void 0?F:L.key}function T(L){var F=y(L),N=[];return L.ctrlKey&&N.push("Ctrl"),L.metaKey&&N.push("Meta"),L.altKey&&N.push("Alt"),L.shiftKey&&N.push("Shift"),N.length?(F!=="Alt"&&F!=="Control"&&F!=="Meta"&&F!=="Shift"&&N.push(F),N.join("-")):F}return function(F,N){var Z=null,ye=null,pe=new Re;function ae(){try{F instanceof HTMLTextAreaElement&&F.select()}catch(sr){}}function Te(sr){pe.trigger(),pe.clearListener(),F instanceof HTMLTextAreaElement&&(F.value=sr),sr&&ae(),Ie=!!sr}var Ie=!1;function Oe(){return!("selectionStart"in F)||!(F instanceof HTMLTextAreaElement)?!1:F.selectionStart!==F.selectionEnd}function ze(){N.options&&N.options.overrideKeystroke?N.options.overrideKeystroke(T(Z),Z):N.keystroke(T(Z),Z)}function rt(sr){pe.trigger(sr),sr.target===F&&(Z=sr,ye=null,Ie&&pe.listenOnce(function(kd){kd&&kd.type==="focusout"||ae()}),ze())}function Zt(sr){pe.trigger(sr),sr.target===F&&(Z&&ye&&ze(),ye=sr,p(sr)?pe.listenOnce(Ki):pe.listen(ar))}function ki(sr){pe.trigger(sr),sr.target===F&&Z&&!ye&&(p(sr)?pe.listenOnce(Ki):pe.listen(ar))}function ar(){if(!Oe()&&F instanceof HTMLTextAreaElement){var sr=F.value;Z&&!Z.altKey&&Z.ctrlKey&&!Z.metaKey&&Z.shiftKey&&(Z.key==="U"||Z.key==="Unidentified"||Z.key==="Process")||(sr.length===1?(F.value="",N.options&&N.options.overrideTypedText?N.options.overrideTypedText(sr):N.typedText(sr)):Ki())}}function Ki(){F instanceof HTMLTextAreaElement&&F.value.length>1&&ae()}function Ga(){Z=null,ye=null,pe.clearListener(),F instanceof HTMLTextAreaElement&&(F.value="")}function is(sr){pe.trigger(),sr.target===F&&(document.activeElement!==F&&F.focus(),pe.listen(function(){if(F instanceof HTMLTextAreaElement){var Cl=F.value;F.value="",Cl&&N.paste(Cl)}}))}function Bp(sr){pe.trigger(sr)}return N.options&&N.options.disableCopyPaste?N.addTextareaEventListeners({keydown:rt,keypress:Zt,keyup:ki,focusout:Ga,copy:function(sr){sr.preventDefault()},cut:function(sr){sr.preventDefault()},paste:function(sr){pe.trigger(),sr.preventDefault()},input:Bp}):N.addTextareaEventListeners({keydown:rt,keypress:Zt,keyup:ki,focusout:Ga,cut:function(){pe.listenOnce(function(){N.cut()})},copy:function(){pe.listenOnce(function(){N.copy()})},paste:is,input:Bp}),{select:Te}}}(),Je=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.exportText=function(){return this.root.foldChildren("",function(p,m){return p+m.text()})},f}(re);re.onNotify(function(w,f){if(f==="edit"||f==="replace"||f===void 0){var p=w.controller;if(!p||!p.options.enableDigitGrouping||p.blurred!==!1)return;p.disableGroupingForSeconds(1)}});var le=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.handleTextareaFocusEditable=function(){var m=p.cursor;p.updateMathspeak(),p.blurred=!1,clearTimeout(p.blurTimeout),P(p.container).addClass("dcg-mq-focused"),m.parent||m.insAtRightEnd(p.root),m.selection?(m.selection.domFrag().removeClass("dcg-mq-blur"),p.selectionChanged()):m.show(),p.setOverflowClasses()},p.handleTextareaBlurEditable=function(){p.textareaSelectionTimeout&&(clearTimeout(p.textareaSelectionTimeout),p.textareaSelectionTimeout=0),p.disableGroupingForSeconds(0),p.blurred=!0,p.blurTimeout=setTimeout(function(){p.root.postOrder(function(m){m.intentionalBlur()}),p.cursor.clearSelection().endSelection(),p.blur(),p.updateMathspeak(),p.scrollHoriz()}),window.addEventListener("blur",p.handleWindowBlur)},p.handleTextareaFocusStatic=function(){p.blurred=!1},p.handleTextareaBlurStatic=function(){p.cursor.selection&&p.cursor.selection.clear(),setTimeout(function(){P(p.getTextareaSpanOrThrow()).detach(),p.blurred=!0})},p.handleWindowBlur=function(){clearTimeout(p.blurTimeout),p.cursor.selection&&p.cursor.selection.domFrag().addClass("dcg-mq-blur"),p.blurWithoutResettingCursor(),p.updateMathspeak()},p}return f.prototype.disableGroupingForSeconds=function(p){var m=this;clearTimeout(this.__disableGroupingTimeout),p===0?this.root.domFrag().removeClass("dcg-mq-suppress-grouping"):(this.root.domFrag().addClass("dcg-mq-suppress-grouping"),this.__disableGroupingTimeout=setTimeout(function(){m.root.domFrag().removeClass("dcg-mq-suppress-grouping")},p*1e3))},f.prototype.blur=function(){this.blurWithoutResettingCursor(),this.options&&this.options.resetCursorOnBlur&&this.cursor.resetToEnd(this)},f.prototype.blurWithoutResettingCursor=function(){this.cursor.hide().parent.blur(this.cursor),P(this.container).removeClass("dcg-mq-focused"),window.removeEventListener("blur",this.handleWindowBlur)},f.prototype.addEditableFocusBlurListeners=function(){var p=this,m=p.cursor;this.addTextareaEventListeners({focus:this.handleTextareaFocusEditable,blur:this.handleTextareaBlurEditable}),p.blurred=!0,m.hide().parent.blur(m)},f.prototype.addStaticFocusBlurListeners=function(){this.addTextareaEventListeners({focus:this.handleTextareaFocusStatic,blur:this.handleTextareaBlurStatic})},f}(Je),Ft=!1,we=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.keystroke=function(p,m,y){var T=y.cursor;switch(p){case"Ctrl-Shift-Backspace":case"Ctrl-Backspace":y.ctrlDeleteDir(r);break;case"Shift-Backspace":case"Backspace":y.backspace();break;case"Esc":case"Tab":y.escapeDir(e,p,m);return;case"Shift-Tab":case"Shift-Esc":y.escapeDir(r,p,m);return;case"End":y.notify("move").cursor.insAtRightEnd(T.parent),y.aria.queue("end of").queue(T.parent,!0);break;case"Ctrl-End":y.notify("move").cursor.insAtRightEnd(y.root),y.aria.queue("end of").queue(y.ariaLabel).queue(y.root).queue(y.ariaPostLabel);break;case"Shift-End":y.selectToBlockEndInDir(e);break;case"Ctrl-Shift-End":y.selectToRootEndInDir(e);break;case"Home":y.notify("move").cursor.insAtLeftEnd(T.parent),y.aria.queue("beginning of").queue(T.parent,!0);break;case"Ctrl-Home":y.notify("move").cursor.insAtLeftEnd(y.root),y.aria.queue("beginning of").queue(y.ariaLabel).queue(y.root).queue(y.ariaPostLabel);break;case"Shift-Home":y.selectToBlockEndInDir(r);break;case"Ctrl-Shift-Home":y.selectToRootEndInDir(r);break;case"Left":y.moveLeft();break;case"Shift-Left":y.selectLeft();break;case"Ctrl-Left":break;case"Right":y.moveRight();break;case"Shift-Right":y.selectRight();break;case"Ctrl-Right":break;case"Up":y.moveUp();break;case"Down":y.moveDown();break;case"Shift-Up":y.withIncrementalSelection(function(L){if(T[r])for(;T[r];)L(r);else L(r)});break;case"Shift-Down":y.withIncrementalSelection(function(L){if(T[e])for(;T[e];)L(e);else L(e)});break;case"Ctrl-Up":break;case"Ctrl-Down":break;case"Ctrl-Shift-Del":case"Ctrl-Del":y.ctrlDeleteDir(e);break;case"Shift-Del":case"Del":y.deleteForward();break;case"Meta-A":case"Ctrl-A":y.selectAll();break;case"Ctrl-Alt-Up":T.parent.parent&&T.parent.parent instanceof f?y.aria.queue(T.parent.parent):y.aria.queue("nothing above");break;case"Ctrl-Alt-Down":T.parent&&T.parent instanceof f?y.aria.queue(T.parent):y.aria.queue("block is empty");break;case"Ctrl-Alt-Left":T.parent.parent&&T.parent.parent.getEnd(r)?y.aria.queue(T.parent.parent.getEnd(r)):y.aria.queue("nothing to the left");break;case"Ctrl-Alt-Right":T.parent.parent&&T.parent.parent.getEnd(e)?y.aria.queue(T.parent.parent.getEnd(e)):y.aria.queue("nothing to the right");break;case"Ctrl-Alt-Shift-Down":T.selection?y.aria.queue(T.selection.join("mathspeak"," ").trim()+" selected"):y.aria.queue("nothing selected");break;case"Ctrl-Alt-=":case"Ctrl-Alt-Shift-Right":y.ariaPostLabel.length?y.aria.queue(y.ariaPostLabel):y.aria.queue("no answer");break;default:return}y.aria.alert(),m==null||m.preventDefault(),y.scrollHoriz()},f.prototype.moveOutOf=function(p,m,y){a("overridden or never called on this node",!1)},f.prototype.moveTowards=function(p,m,y){a("overridden or never called on this node",!1)},f.prototype.deleteOutOf=function(p,m){a("overridden or never called on this node",!1)},f.prototype.deleteTowards=function(p,m){a("overridden or never called on this node",!1)},f.prototype.unselectInto=function(p,m){a("overridden or never called on this node",!1)},f.prototype.selectOutOf=function(p,m){a("overridden or never called on this node",!1)},f.prototype.selectTowards=function(p,m){a("overridden or never called on this node",!1)},f}(z);re.onNotify(function(w,f){(f==="move"||f==="upDown")&&w.show().clearSelection()}),be.leftRightIntoCmdGoes=function(w){if(w&&w!=="up"&&w!=="down")throw'"up" or "down" required for leftRightIntoCmdGoes option, got "'+w+'"';return w},re.onNotify(function(w,f){f!=="upDown"&&(w.upDownCache={})}),re.onNotify(function(w,f){f==="edit"&&w.show().deleteSelection()}),re.onNotify(function(w,f){f!=="select"&&w.endSelection()});var Yr=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.keystroke=function(p,m){this.cursor.parent.keystroke(p,m,this.getControllerSelf())},f.prototype.escapeDir=function(p,m,y){s(p);var T=this.cursor;if(T.parent!==this.root&&(y==null||y.preventDefault()),T.parent!==this.root)return T.clearSelection(),T.parent.moveOutOf(p,T),T.controller.aria.alert(),this.notify("move")},f.prototype.moveDir=function(p){s(p);var m=this.cursor,y=m.options.leftRightIntoCmdGoes,T=m[p];return m.selection?m.insDirOf(p,m.selection.getEnd(p)):T?T.moveTowards(p,m,y):m.parent.moveOutOf(p,m,y),this.notify("move")},f.prototype.moveLeft=function(){return this.moveDir(r)},f.prototype.moveRight=function(){return this.moveDir(e)},f.prototype.moveUp=function(){return this.moveUpDown("up")},f.prototype.moveDown=function(){return this.moveUpDown("down")},f.prototype.moveUpDown=function(p){var m=this,y=m.notify("upDown").cursor,T,L;p==="up"?(T="upInto",L="upOutOf"):(T="downInto",L="downOutOf");var F=y[r],N=y[e],Z=N&&N[T],ye=F&&F[T];return Z?y.insAtLeftEnd(Z):ye?y.insAtRightEnd(ye):y.parent.bubble(function(pe){var ae=pe[L];if(ae&&(typeof ae=="function"&&(ae=ae.call(pe,y)),ae instanceof we&&y.jumpUpDown(pe,ae),ae!==!0))return!1}),m},f.prototype.deleteDir=function(p){s(p);var m=this.cursor,y=m[p],T=m.parent.parent,L=m.controller;if(y&&y instanceof we)y.sides?L.aria.queue(y.parent.chToCmd(y.sides[-p].ch).mathspeak({createdLeftOf:m})):!y.blocks&&y.parent.ctrlSeq!=="\\text"&&L.aria.queue(y);else if(T&&T instanceof we)if(T.sides)L.aria.queue(T.parent.chToCmd(T.sides[p].ch).mathspeak({createdLeftOf:m}));else if(T.blocks&&T.mathspeakTemplate)if(T.upInto&&T.downInto)L.aria.queue(T.mathspeakTemplate[1]);else{var F=T.mathspeakTemplate,N=p===r?F[0]:F[F.length-1];L.aria.queue(N)}else L.aria.queue(T);var Z=m.selection;if(this.notify("edit"),!Z){var ye=m[p];ye?ye.deleteTowards(p,m):m.parent.deleteOutOf(p,m)}var pe=m[r],ae=m[e];return pe.siblingDeleted&&pe.siblingDeleted(m.options,e),ae.siblingDeleted&&ae.siblingDeleted(m.options,r),m.parent.bubble(function(Te){Te.reflow()}),this},f.prototype.ctrlDeleteDir=function(p){s(p);var m=this.cursor;if(!m[p]||m.selection)return this.deleteDir(p);this.notify("edit");var y;p===r?y=new v(m.parent.getEnd(r),m[r]):y=new v(m[e],m.parent.getEnd(e)),m.controller.aria.queue(y),y.remove(),m.insAtDirEnd(p,m.parent);var T=m[r],L=m[e];return T&&T.siblingDeleted(m.options,e),L&&L.siblingDeleted(m.options,r),m.parent.bubble(function(F){F.reflow()}),this},f.prototype.backspace=function(){return this.deleteDir(r)},f.prototype.deleteForward=function(){return this.deleteDir(e)},f.prototype.startIncrementalSelection=function(){a("Multiple selections can't be simultaneously open",!Ft),Ft=!0,this.notify("select");var p=this.cursor;p.anticursor||p.startSelection()},f.prototype.selectDirIncremental=function(p){a("A selection is open",Ft),Ft=!0;var m=this.cursor,y=m.selection;s(p);var T=m[p];T?y&&y.getEnd(p)===T&&m.anticursor[-p]!==T?T.unselectInto(p,m):T.selectTowards(p,m):m.parent.selectOutOf(p,m)},f.prototype.finishIncrementalSelection=function(){a("A selection is open",Ft);var p=this.cursor;p.clearSelection(),p.select()||p.show();var m=p.selection;m&&p.controller.aria.clear().queue(m.join("mathspeak"," ").trim()+" selected"),Ft=!1},f.prototype.withIncrementalSelection=function(p){var m=this;try{this.startIncrementalSelection();try{p(function(y){return m.selectDirIncremental(y)})}finally{this.finishIncrementalSelection()}}finally{Ft=!1}},f.prototype.selectDir=function(p){this.withIncrementalSelection(function(m){return m(p)})},f.prototype.selectLeft=function(){return this.selectDir(r)},f.prototype.selectRight=function(){return this.selectDir(e)},f.prototype.selectAll=function(){this.notify("move");var p=this.cursor;p.insAtRightEnd(this.root),this.withIncrementalSelection(function(m){for(;p[r];)m(r)})},f.prototype.selectToBlockEndInDir=function(p){var m=this.cursor;this.withIncrementalSelection(function(y){for(;m[p];)y(p)})},f.prototype.selectToRootEndInDir=function(p){var m=this,y=this.cursor;this.withIncrementalSelection(function(T){for(;y[p]||y.parent!==m.root;)T(p)})},f}(le),he=function(w){Ne(f,w);function f(p){return w.call(this)||this}return f}(we),Ue=function(){function w(ar){var Ki=new Ar;return ar.adopt(Ki,0,0),Ki}function f(ar){for(var Ki=ar[0]||new Ar,Ga=1;Ga<ar.length;Ga+=1)ar[Ga].children().adopt(Ki,Ki.getEnd(e),0);return Ki}var p=tt.string,m=tt.regex,y=tt.letter,T=tt.digit,L=tt.any,F=tt.optWhitespace,N=tt.succeed,Z=tt.fail,ye=y.map(function(ar){return new Jr(ar)}),pe=T.map(function(ar){return new Aa(ar)}),ae=m(/^[^${}\\_^]/).map(function(ar){return new Ec(ar)}),Te=m(/^[^\\a-eg-zA-Z]/).or(p("\\").then(m(/^[a-z]+/i).or(m(/^\s+/).result(" ")).or(L))).then(function(ar){var Ki=D[ar];if(Ki)if(Ki.constructor){var Ga=Ki;return new Ga(ar).parser()}else{var is=Ki;return is(ar).parser()}else return Z("unknown command: \\"+ar)}),Ie=Te.or(ye).or(pe).or(ae),Oe=p("{").then(function(){return rt}).skip(p("}")),ze=F.then(Oe.or(Ie.map(w))),rt=ze.many().map(f).skip(F),Zt=p("[").then(ze.then(function(ar){return ar.join("latex")!=="]"?N(ar):Z("")}).many().map(f).skip(F)).skip(p("]")),ki=rt;return ki.block=ze,ki.optBlock=Zt,ki}();be.maxDepth=function(w){return typeof w=="number"?w:void 0};var at=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.cleanLatex=function(p){return p.replace(/(\\[a-z]+) (?![a-z])/gi,"$1")},f.prototype.exportLatex=function(){return this.cleanLatex(this.root.latex())},f.prototype.writeLatex=function(p){var m=this.notify("edit").cursor;return m.parent.writeLatex(m,p),this},f.prototype.exportLatexSelection=function(){var p={latex:"",startIndex:-1,endIndex:-1},m=this.cursor.selection;if(m)p.startSelectionBefore=m.getEnd(r),p.endSelectionAfter=m.getEnd(e);else{var y=this.cursor[r];y?p.startSelectionAfter=y:p.startSelectionBefore=this.cursor.parent;var T=this.cursor[e];T?p.endSelectionBefore=T:p.endSelectionAfter=this.cursor.parent}this.root.latexRecursive(p);for(var L=p.latex,F=this.cleanLatex(L),N=p.startIndex,Z=p.endIndex,ye=0,pe=0;pe<p.endIndex;pe++)L[pe]!==F[ye]?(pe<p.startIndex&&(N-=1),Z-=1):ye+=1;return{latex:F,startIndex:N,endIndex:Z}},f.prototype.classifyLatexForEfficientUpdate=function(p){if(typeof p=="string"){var m=p.match(/-?[0-9.]+$/g);if(m&&m.length===1)return{latex:p,prefix:p.substr(0,p.length-m[0].length),digits:m[0]}}},f.prototype.updateLatexMathEfficiently=function(p,m){var y,T,L,F,N=this.root,Z,ye=this.classifyLatexForEfficientUpdate(p);if(ye){if(Z=this.classifyLatexForEfficientUpdate(m),!Z||Z.prefix!==ye.prefix)return!1}else return!1;var pe=Z.digits,ae=ye.digits,Te=!1,Ie=!1;pe[0]==="-"&&(Te=!0,pe=pe.substr(1)),ae[0]==="-"&&(Ie=!0,ae=ae.substr(1));for(var Oe=this.root.getEnd(e),ze=[],rt=pe.length-1;rt>=0;rt--){if(!Oe||Oe.ctrlSeq!==pe[rt]||Oe.parent!==N)return!1;ze.unshift(Oe),Oe=Oe[r]}if(Te&&!Ie){var Zt=Oe;if(!Zt||Zt.ctrlSeq!=="-"||Zt[e]!==ze[0]||Zt.parent!==N)return!1;var ki=Zt[r];if(ki&&ki.parent!==N)return!1;ze[0][r]=Zt[r],N.getEnd(r)===Zt&&N.setEnds((y={},y[r]=ze[0],y[e]=N.getEnd(e),y)),ki&&(ki[e]=ze[0]),Zt.domFrag().remove()}if(!Te&&Ie){var ar=new Tf("-"),Ki=document.createElement("span");Ki.textContent="-",ar.setDOM(Ki);var Ga=ze[0][r];Ga&&(Ga[e]=ar),N.getEnd(r)===ze[0]&&N.setEnds((T={},T[r]=ar,T[e]=N.getEnd(e),T)),ar.parent=N,ar[r]=ze[0][r],ar[e]=ze[0],ze[0][r]=ar,ar.contactWeld(this.cursor),ar.domFrag().insertBefore(ze[0].domFrag())}var is=Math.min(pe.length,ae.length);for(rt=0;rt<is;rt++){var Bp=ae[rt];Oe=ze[rt],Oe.ctrlSeq!==Bp&&(Oe.ctrlSeq=Bp,Oe.domFrag().oneElement().textContent=Bp,Oe.mathspeakName=Bp)}if(pe.length>ae.length)for(Oe=ze[ae.length-1],N.setEnds((L={},L[r]=N.getEnd(r),L[e]=Oe,L)),Oe[e]=0,rt=pe.length-1;rt>=is;rt--)ze[rt].domFrag().remove();if(ae.length>pe.length){var sr=document.createDocumentFragment();for(rt=is;rt<ae.length;rt++){var kd=document.createElement("span");kd.className="dcg-mq-digit",kd.textContent=ae[rt];var Cl=new Aa(ae[rt]);Cl.parent=N,Cl.setDOM(kd),sr.appendChild(kd),Cl[r]=N.getEnd(e),Cl[e]=0;var OU=Cl[r];OU[e]=Cl,N.setEnds((F={},F[r]=N.getEnd(r),F[e]=Cl,F))}N.domFrag().oneElement().appendChild(sr)}var oG=this.exportLatex();if(oG!==p)return console.warn("tried updating latex efficiently but did not work. Attempted: "+p+" but wrote: "+oG),!1;var nG=N.getEnd(e);return nG&&nG.fixDigitGrouping(this.cursor.options),!0},f.prototype.renderLatexMathFromScratch=function(p){var m,y=this.root,T=this.cursor,L=tt.all,F=tt.eof,N=Ue.skip(F).or(L.result(!1)).parse(p);if(y.setEnds((m={},m[r]=0,m[e]=0,m)),N&&N.children().adopt(y,0,0),N){var Z=y.domFrag();Z.children().remove(),Z.oneElement().appendChild(N.html()),y.finalizeInsert(T.options,T)}else y.domFrag().empty()},f.prototype.renderLatexMath=function(p){var m=this.cursor,y=this.root;this.notify("replace"),m.clearSelection();var T=this.exportLatex();(!y.getEnd(r)||!y.getEnd(e)||T!==p)&&(this.updateLatexMathEfficiently(p,T)||this.renderLatexMathFromScratch(p),this.updateMathspeak()),m.insAtRightEnd(y)},f.prototype.renderLatexText=function(p){var m,y=this.root,T=this.cursor;y.domFrag().children().slice(1).remove(),y.setEnds((m={},m[r]=0,m[e]=0,m)),delete T.selection,T.show().insAtRightEnd(y);var L=tt.regex,F=tt.string,N=tt.eof,Z=tt.all,ye=F("$").then(Ue).skip(F("$").or(N)).map(function(ze){var rt=new RootMathCommand(T);rt.createBlocks();var Zt=rt.getEnd(r);return ze.children().adopt(Zt,0,0),rt}),pe=F("\\$").result("$"),ae=pe.or(L(/^[^$]/)).map(function(ze){return new Ec(ze)}),Te=ye.or(ae).many(),Ie=Te.skip(N).or(Z.result(!1)).parse(p);if(Ie){for(var Oe=0;Oe<Ie.length;Oe+=1)Ie[Oe].adopt(y,y.getEnd(e),0);P(y.html()).appendTo(y.domFrag().oneElement()),y.finalizeInsert(T.options,T)}},f}(Yr),de=function(w){return!1};Me.prototype.ignoreNextMousedown=de;var nr;(function(){re.onNotify(function(w,f){(f==="edit"||f==="replace")&&nr&&nr.cursor===w&&nr.cb()})})();var qe=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.handleMouseDown=function(m){var y=d(m.target,".dcg-mq-root-block"),T=y&&z.getNodeOfElement(y)||z.getNodeOfElement(p.root.domFrag().oneElement()),L=T.domFrag().firstNode().ownerDocument,F=T.controller,N=F.cursor,Z=N.blink,ye=F.getTextareaSpanOrThrow(),pe=F.getTextareaOrThrow();if(m.preventDefault(),m.target.unselectable=!0,N.options.ignoreNextMousedown(m)||d(m.target,".dcg-mq-ignore-mousedown"))return;var ae=null;function Te(ki){ae=ki.target}function Ie(ki){N.anticursor||N.startSelection(),F.seek(ae,ki.clientX,ki.clientY).cursor.select(),N.selection&&N.controller.aria.clear().queue(N.selection.join("mathspeak")+" selected").alert(),ae=null}function Oe(){y==null||y.removeEventListener("mousemove",Te),L==null||L.removeEventListener("mousemove",Ie),L==null||L.removeEventListener("mouseup",rt),nr=void 0}function ze(){F.editable?(N.show(),N.controller.aria.queue(N.parent).alert()):P(ye).detach()}function rt(){N.blink=Z,N.selection||ze(),Oe()}var Zt;nr={cursor:N,cb:function(){Zt=!0,N.blink=Z,N.clearSelection(),ze(),Oe()}},!(F.blurred&&(y&&!F.editable&&P(y).prepend(P(ye)),pe.focus(),Zt))&&(N.blink=o,F.seek(m.target,m.clientX,m.clientY).cursor.startSelection(),y==null||y.addEventListener("mousemove",Te),L==null||L.addEventListener("mousemove",Ie),L==null||L.addEventListener("mouseup",rt))},p}return f.prototype.addMouseEventListener=function(){this.container.addEventListener("mousedown",this.handleMouseDown)},f.prototype.removeMouseEventListener=function(){this.container.removeEventListener("mousedown",this.handleMouseDown)},f.prototype.seek=function(p,m,y){for(var T=this.notify("select").cursor,L;p&&(L=z.getNodeOfElement(p),!L);)p=p.parentElement;return L||(L=this.root),T.clearSelection().show(),L.seek(m,T),this.scrollHoriz(),this},f}(at),Cc=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.setOverflowClasses=function(){var p=this.root.domFrag().oneElement(),m=!1,y=!1;if(!this.blurred){var T=I(p).width,L=p.scrollWidth,F=p.scrollLeft;m=L>T+F,y=F>0}p.classList.contains("dcg-mq-editing-overflow-right")!==m&&p.classList.toggle("dcg-mq-editing-overflow-right"),p.classList.contains("dcg-mq-editing-overflow-left")!==y&&p.classList.toggle("dcg-mq-editing-overflow-left")},f.prototype.scrollHoriz=function(){var p=this,m=this.cursor,y=m.selection,T=I(this.root.domFrag().oneElement());if(m.domFrag().isEmpty()&&!y){this.cancelScrollHoriz&&(this.cancelScrollHoriz(),this.cancelScrollHoriz=void 0);var L=this.root.domFrag().oneElement(),F=L.scrollLeft;A(this.getScrollAnimationDuration(),function(ze,rt,Zt){ze>=1?(p.cancelScrollHoriz=void 0,L.scrollLeft=0,p.setOverflowClasses()):(p.cancelScrollHoriz=Zt,rt(),L.scrollLeft=Math.round((1-ze)*F))});return}else if(y){var ye=I(y.domFrag().oneElement()),pe=ye.left-(T.left+20),ae=ye.right-(T.right-20);if(y.getEnd(r)===m[e])if(pe<0)var Z=pe;else if(ae>0)if(ye.left-ae<T.left+20)var Z=pe;else var Z=ae;else return;else if(ae>0)var Z=ae;else if(pe<0)if(ye.right-pe>T.right-20)var Z=ae;else var Z=pe;else return}else{var N=I(m.domFrag().oneElement()).left;if(N>T.right-20)var Z=N-(T.right-20);else if(N<T.left+20)var Z=N-(T.left+20);else return}var Te=this.root.domFrag().oneElement();if(!(Z<0&&Te.scrollLeft===0)&&!(Z>0&&Te.scrollWidth<=Te.scrollLeft+T.width)){this.cancelScrollHoriz&&(this.cancelScrollHoriz(),this.cancelScrollHoriz=void 0);var Ie=this.root.domFrag().oneElement(),Oe=Ie.scrollLeft;A(this.getScrollAnimationDuration(),function(ze,rt,Zt){ze>=1?(p.cancelScrollHoriz=void 0,Ie.scrollLeft=Math.round(Oe+Z),p.setOverflowClasses()):(p.cancelScrollHoriz=Zt,rt(),Ie.scrollLeft=Math.round(Oe+ze*Z))})}},f.prototype.getScrollAnimationDuration=function(){var p;return(p=this.options.scrollAnimationDuration)!==null&&p!==void 0?p:100},f}(qe);Me.prototype.substituteTextarea=function(){return c("textarea",{autocapitalize:"off",autocomplete:"off",autocorrect:"off",spellcheck:!1,"x-palm-disable-ste-all":!0})};function nt(w,f){return Qe(w[0],f)}Me.prototype.substituteKeyboardEvents=nt;var Un=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.selectFn=o,p}return f.prototype.createTextarea=function(){this.textareaSpan=c("span",{class:"dcg-mq-textarea"});var p=this.options.substituteTextarea();if(!p.nodeType)throw"substituteTextarea() must return a DOM element, got "+p;this.textarea=P(p).appendTo(this.textareaSpan).oneElement();var m=this;m.cursor.selectionChanged=function(){m.selectionChanged()}},f.prototype.selectionChanged=function(){var p=this;p.textareaSelectionTimeout||(p.textareaSelectionTimeout=setTimeout(function(){p.setTextareaSelection()}))},f.prototype.setTextareaSelection=function(){this.textareaSelectionTimeout=0;var p="";this.cursor.selection&&(p=this.cleanLatex(this.cursor.selection.join("latex")),this.options.statelessClipboard&&(p="$"+p+"$")),this.selectFn(p)},f.prototype.staticMathTextareaEvents=function(){var p=this;this.removeTextareaEventListener("cut"),this.removeTextareaEventListener("paste"),p.options.disableCopyPaste?this.removeTextareaEventListener("copy"):this.addTextareaEventListeners({copy:function(){p.setTextareaSelection()}}),this.addStaticFocusBlurListeners(),p.selectFn=function(m){var y=p.getTextareaOrThrow();y instanceof HTMLTextAreaElement&&(y.value=m,m&&y.select())}},f.prototype.editablesTextareaEvents=function(){var p=this,m=p.getTextareaOrThrow(),y=p.getTextareaSpanOrThrow();if(this.options.version<3){var T=this.options.assertJquery(),L=this.options.substituteKeyboardEvents(T(m),this);this.selectFn=function(N){L.select(N)}}else{var F=Qe(m,this).select;this.selectFn=F}P(this.container).prepend(P(y)),this.addEditableFocusBlurListeners(),this.updateMathspeak()},f.prototype.unbindEditablesEvents=function(){var p=this,m=p.getTextareaOrThrow(),y=p.getTextareaSpanOrThrow();this.selectFn=function(T){m instanceof HTMLTextAreaElement&&(m.value=T,T&&m.select())},P(y).remove(),this.removeTextareaEventListener("focus"),this.removeTextareaEventListener("blur"),p.blurred=!0,this.removeTextareaEventListener("cut"),this.removeTextareaEventListener("paste")},f.prototype.typedText=function(p){if(p===`
`)return this.handle("enter");var m=this.notify(void 0).cursor;m.parent.write(m,p),this.scrollHoriz()},f.prototype.cut=function(){var p=this,m=p.cursor;m.selection&&setTimeout(function(){p.notify("edit"),m.parent.bubble(function(y){y.reflow()}),p.options&&p.options.onCut&&p.options.onCut()})},f.prototype.copy=function(){this.setTextareaSelection()},f.prototype.paste=function(p){this.options.statelessClipboard&&(p.slice(0,1)==="$"&&p.slice(-1)==="$"?p=p.slice(1,-1):p="\\text{"+p+"}"),this.writeLatex(p).cursor.show(),this.scrollHoriz(),this.options&&this.options.onPaste&&this.options.onPaste()},f.prototype.setupStaticField=function(){this.mathspeakSpan=c("span",{class:"dcg-mq-mathspeak"}),P(this.container).prepend(P(this.mathspeakSpan)),this.updateMathspeak(),this.blurred=!0,this.cursor.hide().parent.blur(this.cursor)},f.prototype.updateMathspeak=function(){var p=this,m=p.getAriaLabel(),y=/[A-Za-z0-9]$/.test(m)?m+":":m,T=p.root.mathspeak().trim();this.aria.clear();var L=p.getTextareaOrThrow();p.mathspeakSpan?(L.setAttribute("aria-label",""),p.mathspeakSpan.textContent=(y+" "+T).trim()):L.setAttribute("aria-label",(y+" "+T+" "+p.ariaPostLabel).trim())},f}(Cc),Sc=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.finalizeInsert=function(p,m){var y=this;y.postOrder(function(F){F.finalizeTree(p)}),y.postOrder(function(F){F.contactWeld(m)}),y.postOrder(function(F){F.blur(m)}),y.postOrder(function(F){F.reflow()});var T=y[e],L=y[r];T&&T.siblingCreated(p,r),L&&L.siblingCreated(p,e),y.bubble(function(F){F.reflow()})},f.prototype.prepareInsertionAt=function(p){var m=p.options.maxDepth;if(m!==void 0){var y=p.depth();if(y>m)return!1;this.removeNodesDeeperThan(m-y)}return!0},f.prototype.removeNodesDeeperThan=function(p){for(var m=0,y=[[this,m]],T;T=y.shift();){var L=T;L[0].children().each(function(F){var N=F instanceof Ar?1:0;m=L[1]+N,m<=p?y.push([F,m]):(N?F.children():F).remove()})}},f}(we),si=function(){function w(f,p){this.childCount=f,this.render=p}return w}(),Bi=function(w){Ne(f,w);function f(p,m,y){var T=w.call(this)||this;return T.textTemplate=[""],T.mathspeakTemplate=[""],T.setCtrlSeqHtmlAndText(p,m,y),T}return f.prototype.setEnds=function(p){a("MathCommand ends are never empty",p[r]&&p[e]),this.ends=p},f.prototype.getEnd=function(p){return this.ends[p]},f.prototype.setCtrlSeqHtmlAndText=function(p,m,y){this.ctrlSeq||(this.ctrlSeq=p),m&&(this.domView=m),y&&(this.textTemplate=y)},f.prototype.replaces=function(p){p.disown(),this.replacedFragment=p},f.prototype.isEmpty=function(){return this.foldChildren(!0,function(p,m){return p&&m.isEmpty()})},f.prototype.parser=function(){var p=this,m=Ue.block;return m.times(this.numBlocks()).map(function(y){p.blocks=y;for(var T=0;T<y.length;T+=1)y[T].adopt(p,p.getEnd(e),0);return p})},f.prototype.createLeftOf=function(p){var m=this,y=m.replacedFragment;if(m.createBlocks(),w.prototype.createLeftOf.call(this,p),y){var T=m.getEnd(r);y.adopt(T,0,0),y.domFrag().appendTo(T.domFrag().oneElement()),m.placeCursor(p),m.prepareInsertionAt(p)}m.finalizeInsert(p.options,p),m.placeCursor(p)},f.prototype.createBlocks=function(){for(var p=this,m=p.numBlocks(),y=p.blocks=Array(m),T=0;T<m;T+=1){var L=y[T]=new Ar;L.adopt(p,p.getEnd(e),0)}},f.prototype.placeCursor=function(p){p.insAtRightEnd(this.foldChildren(this.getEnd(r),function(m,y){return m.isEmpty()?m:y}))},f.prototype.moveTowards=function(p,m,y){var T;y==="up"?T=this.upInto:y==="down"&&(T=this.downInto);var L=T||this.getEnd(-p);m.insAtDirEnd(-p,L),m.controller.aria.queueDirEndOf(-p).queue(m.parent,!0)},f.prototype.deleteTowards=function(p,m){this.isEmpty()?m[p]=this.remove()[p]:this.moveTowards(p,m)},f.prototype.selectTowards=function(p,m){m[-p]=this,m[p]=this[p]},f.prototype.selectChildren=function(){return new se(this,this)},f.prototype.unselectInto=function(p,m){var y=m.anticursor,T=y.ancestors[this.id];m.insAtDirEnd(-p,T)},f.prototype.seek=function(p,m){function y(N){var Z,ye=N.domFrag().oneElement(),pe=I(ye).left,ae=pe+ye.offsetWidth;return Z={},Z[r]=pe,Z[e]=ae,Z}var T=this,L=y(T);if(p<L[r])return m.insLeftOf(T);if(p>L[e])return m.insRightOf(T);var F=L[r];T.eachChild(function(N){var Z=y(N);if(p<Z[r])return p-F<Z[r]-p?N[r]?m.insAtRightEnd(N[r]):m.insLeftOf(T):m.insAtLeftEnd(N),!1;if(p>Z[e]){N[e]?F=Z[e]:L[e]-p<p-Z[e]?m.insRightOf(T):m.insAtRightEnd(N);return}else return N.seek(p,m),!1})},f.prototype.numBlocks=function(){return this.domView.childCount},f.prototype.html=function(){var p=this.blocks;a("domView is defined",this.domView);var m=this.domView,y=m.render(p||[]);return this.setDOM(y),z.linkElementByCmdNode(y,this),y},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+=this.ctrlSeq||"",this.eachChild(function(m){p.latex+="{";var y=p.latex.length;m.latexRecursive(p);var T=p.latex.length;y===T&&(p.latex+=" "),p.latex+="}"}),this.checkCursorContextClose(p)},f.prototype.text=function(){var p=this,m=0;return p.foldChildren(p.textTemplate[m],function(y,T){m+=1;var L=T.text();return y&&p.textTemplate[m]==="("&&L[0]==="("&&L.slice(-1)===")"?y+L.slice(1,-1)+p.textTemplate[m]:y+L+(p.textTemplate[m]||"")})},f.prototype.mathspeak=function(){var p=this,m=0;return p.foldChildren(p.mathspeakTemplate[m]||"Start"+p.ctrlSeq+" ",function(y,T){return m+=1,y+" "+T.mathspeak()+" "+(p.mathspeakTemplate[m]+" "||"End"+p.ctrlSeq+" ")})},f}(Sc),Xo=function(w){Ne(f,w);function f(p,m,y,T){var L=w.call(this)||this;return L.setCtrlSeqHtmlTextAndMathspeak(p,m?new si(0,function(){return m.cloneNode(!0)}):void 0,y,T),L}return f.prototype.setCtrlSeqHtmlTextAndMathspeak=function(p,m,y,T){!y&&p&&(y=p.replace(/^\\/,"")),this.mathspeakName=T||y,w.prototype.setCtrlSeqHtmlAndText.call(this,p,m,[y||""])},f.prototype.parser=function(){return tt.succeed(this)},f.prototype.numBlocks=function(){return 0},f.prototype.replaces=function(p){p.remove()},f.prototype.createBlocks=function(){},f.prototype.moveTowards=function(p,m){m.domFrag().insDirOf(p,this.domFrag()),m[-p]=this,m[p]=this[p],m.controller.aria.queue(this)},f.prototype.deleteTowards=function(p,m){m[p]=this.remove()[p]},f.prototype.seek=function(p,m){var y=this.domFrag().oneElement(),T=I(y).left;return p-T<y.offsetWidth/2?m.insLeftOf(this):m.insRightOf(this),m},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+=this.ctrlSeq||"",this.checkCursorContextClose(p)},f.prototype.text=function(){return this.textTemplate.join("")},f.prototype.mathspeak=function(p){return this.mathspeakName||""},f.prototype.placeCursor=function(){},f.prototype.isEmpty=function(){return!0},f}(Bi),Ec=function(w){Ne(f,w);function f(p,m,y){return w.call(this,p,c("span",{},[m||c.text(p)]),void 0,y)||this}return f}(Xo);function xt(w,f,p){return function(){return new Ec(w,f?c.entityText(f):void 0,p)}}var bi=function(w){Ne(f,w);function f(p,m,y,T,L){var F=this;return L?F=w.call(this,p,c("span",{},[m||c.text(p||"")]),void 0,T)||this:F=w.call(this,p,c("span",{class:"dcg-mq-binary-operator"},m?[m]:[]),y,T)||this,F}return f}(Xo);function Dn(w,f,p,m){return function(){return new bi(w,f?c.entityText(f):void 0,p,m)}}var Ar=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ariaLabel="block",p}return f.prototype.join=function(p){return this.foldChildren("",function(m,y){return m+y[p]()})},f.prototype.html=function(){var p=document.createDocumentFragment();return this.eachChild(function(m){var y=m.html();p.appendChild(y)}),p},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),this.eachChild(function(m){return m.latexRecursive(p)}),this.checkCursorContextClose(p)},f.prototype.text=function(){var p=this.getEnd(r),m=this.getEnd(e);return p===m&&p!==0?p.text():this.join("text")},f.prototype.mathspeak=function(){var p="",m={};return this.controller&&(m=this.controller.options.autoOperatorNames),this.foldChildren([],function(y,T){if(T.isPartOfOperator)p+=T.mathspeak();else{if(p!==""){if(m._maxLength>0){var L=m[p.toLowerCase()];typeof L=="string"&&(p=L)}y.push(p+" "),p=""}var F=T.mathspeak(),N=T.ctrlSeq;isNaN(N)&&N!=="."&&(!T.parent||!T.parent.parent||!T.parent.parent.isTextBlock())&&(F=" "+F+" "),y.push(F)}return y}).join("").replace(/ +(?= )/g,"").replace(/(\.)([0-9]+)/g,function(y,T,L){return T+L.split("").join(" ").trim()})},f.prototype.keystroke=function(p,m,y){if(y.options.spaceBehavesLikeTab&&(p==="Spacebar"||p==="Shift-Spacebar")){m==null||m.preventDefault(),y.escapeDir(p==="Shift-Spacebar"?r:e,p,m);return}return w.prototype.keystroke.call(this,p,m,y)},f.prototype.moveOutOf=function(p,m,y){var T;if(y==="up"?T=this.parent.upInto:y==="down"&&(T=this.parent.downInto),!T&&this[p]){var L=-p;m.insAtDirEnd(L,this[p]),m.controller.aria.queueDirEndOf(L).queue(m.parent,!0)}else m.insDirOf(p,this.parent),m.controller.aria.queueDirOf(p).queue(this.parent)},f.prototype.selectOutOf=function(p,m){m.insDirOf(p,this.parent)},f.prototype.deleteOutOf=function(p,m){m.unwrapGramp()},f.prototype.seek=function(p,m){var y=this.getEnd(e);if(!y)return m.insAtRightEnd(this);var T=y.domFrag().oneElement(),L=I(T).left;if(L+T.offsetWidth<p)return m.insAtRightEnd(this);var F=this.getEnd(r);if(p<I(F.domFrag().oneElement()).left)return m.insAtLeftEnd(this);for(;p<I(y.domFrag().oneElement()).left;)y=y[r];return y.seek(p,m)},f.prototype.chToCmd=function(p,m){var y;return p.match(/^[a-eg-zA-Z]$/)?new Jr(p):/^\d$/.test(p)?new Aa(p):m&&m.typingSlashWritesDivisionSymbol&&p==="/"?D["\xF7"](p):m&&m.typingAsteriskWritesTimesSymbol&&p==="*"?D["\xD7"](p):m&&m.typingPercentWritesPercentOf&&p==="%"?D.percentof(p):(y=_[p]||D[p])?y.constructor?new y(p):y(p):new Ec(p)},f.prototype.write=function(p,m){var y=this.chToCmd(m,p.options);p.selection&&y.replaces(p.replaceSelection()),p.isTooDeep()||(y.createLeftOf(p.show()),m==="/"?p.controller.aria.alert("over"):p.controller.aria.alert(y.mathspeak({createdLeftOf:p})))},f.prototype.writeLatex=function(p,m){var y=tt.all,T=tt.eof,L=Ue.skip(T).or(y.result(!1)).parse(m);if(L&&!L.isEmpty()&&L.prepareInsertionAt(p)){L.children().adopt(p.parent,p[r],p[e]),P(L.html()).insertBefore(p.domFrag()),p[r]=L.getEnd(e),L.finalizeInsert(p.options,p);var F=L.getEnd(e),N=L.getEnd(r),Z=F[e],ye=N[r];Z&&Z.siblingCreated(p.options,r),ye&&ye.siblingCreated(p.options,e),p.parent.bubble(function(pe){pe.reflow()})}},f.prototype.focus=function(){return this.domFrag().addClass("dcg-mq-hasCursor"),this.domFrag().removeClass("dcg-mq-empty"),this},f.prototype.blur=function(p){return this.domFrag().removeClass("dcg-mq-hasCursor"),this.isEmpty()&&(this.domFrag().addClass("dcg-mq-empty"),p&&this.isQuietEmptyDelimiter(p.options.quietEmptyDelimiters)&&this.domFrag().addClass("dcg-mq-quiet-delimiter")),this},f}(Sc);Me.prototype.mouseEvents=!0,j.StaticMath=function(w){var f;return f=function(p){Ne(m,p);function m(y){var T=p.call(this,y)||this,L=T.innerFields=[];return T.__controller.root.postOrder(function(F){F.registerInnerField(L,w.InnerMathField)}),T}return m.prototype.__mathquillify=function(y,T){return this.config(y),p.prototype.mathquillify.call(this,"dcg-mq-math-mode"),this.__controller.setupStaticField(),this.__options.mouseEvents&&(this.__controller.addMouseEventListener(),this.__controller.staticMathTextareaEvents()),this},m.prototype.latex=function(y){var T=p.prototype.latex.apply(this,arguments);if(arguments.length>0){var L=this.innerFields=[];this.__controller.root.postOrder(function(F){F.registerInnerField(L,w.InnerMathField)}),this.__controller.updateMathspeak()}return T},m.prototype.setAriaLabel=function(y){return this.__controller.setAriaLabel(y),this},m.prototype.getAriaLabel=function(){return this.__controller.getAriaLabel()},m}(w.AbstractMathQuill),f.RootBlock=Ar,f};var kf=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f}(Ar);Zi(kf.prototype),j.MathField=function(w){var f;return f=function(p){Ne(m,p);function m(){return p!==null&&p.apply(this,arguments)||this}return m.prototype.__mathquillify=function(y,T){return this.config(y),T>1&&(this.__controller.root.reflow=o),p.prototype.mathquillify.call(this,"dcg-mq-editable-field dcg-mq-math-mode"),delete this.__controller.root.reflow,this},m}(w.EditableField),f.RootBlock=kf,f},j.InnerMathField=function(w){return a("MathField class is defined",w.MathField),function(f){Ne(p,f);function p(){return f!==null&&f.apply(this,arguments)||this}return p.prototype.makeStatic=function(){this.__controller.editable=!1,this.__controller.root.blur(),this.__controller.unbindEditablesEvents(),P(this.__controller.container).removeClass("dcg-mq-editable-field")},p.prototype.makeEditable=function(){this.__controller.editable=!0,this.__controller.editablesTextareaEvents(),this.__controller.cursor.insAtRightEnd(this.__controller.root),P(this.__controller.container).addClass("dcg-mq-editable-field")},p}(w.MathField)};var Cd=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.finalizeTree=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.siblingDeleted=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.siblingCreated=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.sharedSiblingMethod=function(p,m){m!==r&&this[e]instanceof f||this.fixDigitGrouping(p)},f.prototype.fixDigitGrouping=function(p){if(p.enableDigitGrouping){var m=this,y=this,T=0,L=[],F="\\ ",N=".",Z=m;do if(/^[0-9]$/.test(Z.ctrlSeq))m=Z;else if(Z.ctrlSeq===F)m=Z,T+=1;else if(Z.ctrlSeq===N)m=Z,L.push(Z);else break;while(Z=m[r]);for(;Z=y[e];)if(/^[0-9]$/.test(Z.ctrlSeq))y=Z;else if(Z.ctrlSeq===F)y=Z,T+=1;else if(Z.ctrlSeq===N)y=Z,L.push(Z);else break;for(;y!==m&&m&&m.ctrlSeq===F;)m=m[e],T-=1;for(;y!==m&&y&&y.ctrlSeq===F;)y=y[r],T-=1;if(!(m===y&&m&&m.ctrlSeq===F)){var ye=T>0||L.length>1;ye?this.removeGroupingBetween(m,y):L[0]?(L[0]!==m&&this.addGroupingBetween(L[0][r],m),L[0]!==y&&this.removeGroupingBetween(L[0][e],y)):this.addGroupingBetween(y,m)}}},f.prototype.removeGroupingBetween=function(p,m){var y=p;do if(y instanceof f&&y.setGroupingClass(void 0),!y||y===m)break;while(y=y[e])},f.prototype.addGroupingBetween=function(p,m){for(var F=p,y=0,T=0,F=p;F&&(T+=1,F!==m);)F=F[r];var L=T%3;L===0&&(L=3);for(var F=p;F;){y+=1;var N=void 0;if(T>=4&&(y===T?N="dcg-mq-group-leading-"+L:y%3===0&&y!==T&&(N="dcg-mq-group-start"),N||(N="dcg-mq-group-other")),F instanceof f&&F.setGroupingClass(N),F===m)break;F=F[r]}},f.prototype.setGroupingClass=function(p){this._groupingClass!==p&&(this._groupingClass&&this.domFrag().removeClass(this._groupingClass),p&&this.domFrag().addClass(p),this._groupingClass=p)},f}(Xo),Aa=function(w){Ne(f,w);function f(p,m){return w.call(this,p,c("span",{class:"dcg-mq-digit"},[c.text(p)]),void 0,m)||this}return f.prototype.createLeftOf=function(p){var m=p[r],y=m&&m[r],T=p.parent.parent instanceof Ks?p.parent.parent.sub:void 0;p.options.autoSubscriptNumerals&&p.parent!==T&&(m instanceof jr&&m.isItalic!==!1||m instanceof Ks&&y instanceof jr&&y.isItalic!==!1)?(new Y1().createLeftOf(p),w.prototype.createLeftOf.call(this,p),p.insRightOf(p.parent.parent)):w.prototype.createLeftOf.call(this,p)},f.prototype.mathspeak=function(p){if(p&&p.createdLeftOf){var m=p.createdLeftOf,y=m[r],T=y&&y[r],L=m.parent.parent instanceof Ks?m.parent.parent.sub:void 0;if(m.options.autoSubscriptNumerals&&m.parent!==L&&(y instanceof jr&&y.isItalic!==!1||m[r]instanceof Ks&&T instanceof jr&&T.isItalic!==!1))return"Subscript "+w.prototype.mathspeak.call(this)+" Baseline"}return w.prototype.mathspeak.call(this)},f}(Cd),jr=function(w){Ne(f,w);function f(p,m){return w.call(this,p,c("var",{},[m||c.text(p)]))||this}return f.prototype.text=function(){var p=this.ctrlSeq||"";return this.isPartOfOperator?p[0]=="\\"?p=p.slice(1,p.length):p[p.length-1]==" "&&(p=p.slice(0,-1)):(this[r]&&!(this[r]instanceof f)&&!(this[r]instanceof bi)&&this[r].ctrlSeq!=="\\ "&&(p="*"+p),this[e]&&!(this[e]instanceof bi)&&!(this[e]instanceof Ks)&&(p+="*")),p},f.prototype.mathspeak=function(){var p=this.ctrlSeq||"";return this.isPartOfOperator||p.length>1||this.parent&&this.parent.parent&&this.parent.parent.isTextBlock()?w.prototype.mathspeak.call(this):'"'+p+'"'},f}(Xo);function li(w,f,p){return function(){return new jr(w,c.entityText(f))}}Me.prototype.autoCommands={_maxLength:0},be.autoCommands=function(w){if(typeof w!="string"||!/^[a-z]+(?: [a-z]+)*$/i.test(w))throw'"'+w+'" not a space-delimited list of only letters';for(var f=w.split(" "),p={},m=0,y=0;y<f.length;y+=1){var T=f[y];if(T.length<2)throw'autocommand "'+T+'" not minimum length of 2';if(D[T]===Rp)throw'"'+T+'" is a built-in operator name';p[T]=1,m=i(m,T.length)}return p._maxLength=m,p},Me.prototype.quietEmptyDelimiters={},be.quietEmptyDelimiters=function(w){w===void 0&&(w="");for(var f=w.split(" "),p={},m=0;m<f.length;m+=1){var y=f[m];p[y]=1}return p},Me.prototype.autoParenthesizedFunctions={_maxLength:0},be.autoParenthesizedFunctions=function(w){if(typeof w!="string"||!/^[a-z]+(?: [a-z]+)*$/i.test(w))throw'"'+w+'" not a space-delimited list of only letters';for(var f=w.split(" "),p={},m=0,y=0;y<f.length;y+=1){var T=f[y];if(T.length<2)throw'autocommand "'+T+'" not minimum length of 2';p[T]=1,m=i(m,T.length)}return p._maxLength=m,p};function ts(w,f){for(var p="",m=0;w instanceof Jr&&w.ctrlSeq===w.letter&&m<f;)p=w.letter+p,w=w[r],m+=1;return p}var Jr=function(w){Ne(f,w);function f(p){var m=w.call(this,p)||this;return m.letter=p,m}return f.prototype.checkAutoCmds=function(p){var m;if(!this.shouldIgnoreSubstitutionInSimpleSubscript(p.options)){var y=p.options.autoCommands,T=y._maxLength||0;if(T>0)for(var L=(m=ts(this,T))!==null&&m!==void 0?m:"";L.length;){if(y.hasOwnProperty(L)){for(var F=this,N=1;F&&N<L.length;N+=1,F=F[r]);new v(F,this).remove(),p[r]=F[r];var Z=D[L],ye;return te(Z)?ye=new Z(L):ye=Z(L),ye.createLeftOf(p)}L=L.slice(1)}}},f.prototype.autoParenthesize=function(p){var m=p.parent.getEnd(e);if(!(m&&m instanceof Us&&m.ctrlSeq==="\\left(")&&!this.shouldIgnoreSubstitutionInSimpleSubscript(p.options)){for(var y="",T=this,L=0,F=p.options.autoParenthesizedFunctions,N=F._maxLength||0,Z=p.options.autoOperatorNames;T instanceof f&&L<N;)y=T.letter+y,T=T[r],L+=1;for(;y.length;){if(F.hasOwnProperty(y)&&Z.hasOwnProperty(y))return p.parent.write(p,"(");y=y.slice(1)}}},f.prototype.createLeftOf=function(p){w.prototype.createLeftOf.call(this,p),this.checkAutoCmds(p),this.autoParenthesize(p)},f.prototype.italicize=function(p){return this.isItalic=p,this.isPartOfOperator=!p,p&&delete this.endsWord,this.domFrag().toggleClass("dcg-mq-operator-name",!p),this},f.prototype.finalizeTree=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.siblingDeleted=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.siblingCreated=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.sharedSiblingMethod=function(p,m){m!==r&&this[e]instanceof f||this.autoUnItalicize(p)},f.prototype.autoUnItalicize=function(p){var m=p.autoOperatorNames;if(m._maxLength!==0&&!this.shouldIgnoreSubstitutionInSimpleSubscript(p)){for(var y=this.letter,T=this[r];T instanceof f;T=T[r])y=T.letter+y;for(var L=this[e];L instanceof f;L=L[e])y+=L.letter;var F=T&&T[e],N=L&&L[r];new v(F||this.parent.getEnd(r),N||this.parent.getEnd(e)).each(function(is){is instanceof f&&(is.italicize(!0).domFrag().removeClass("dcg-mq-first dcg-mq-last dcg-mq-followed-by-supsub"),is.ctrlSeq=is.letter)});var Z=m._maxLength||0;e:for(var ye=0,pe=T[e]||this.parent.getEnd(r);pe&&ye<y.length;ye+=1,pe=pe[e])for(var ae=t(Z,y.length-ye);ae>0;ae-=1){var Te=y.slice(ye,ye+ae),Ie=void 0;if(m.hasOwnProperty(Te)){for(var Oe=0,ze=pe;Oe<ae;Oe+=1,ze=ze[e])ze instanceof f&&(ze.italicize(!1),Ie=ze);var rt=Sd.hasOwnProperty(Te);if(pe.ctrlSeq=(rt?"\\":"\\operatorname{")+pe.ctrlSeq,Ie.ctrlSeq+=rt?" ":"}",Ie.endsWord=Te,kn.hasOwnProperty(Te)){var Zt=Ie[r],ki=Zt&&Zt[r],ar=ki&&ki[r];ar.domFrag().addClass("dcg-mq-last")}if(this.shouldOmitPadding(pe[r])||pe.domFrag().addClass("dcg-mq-first"),!this.shouldOmitPadding(Ie[e]))if(Ie[e]instanceof Ks){var Ki=Ie[e],Ga=Ki.siblingCreated=Ki.siblingDeleted=function(){Ki.domFrag().toggleClass("dcg-mq-after-operator-name",!(Ki[e]instanceof Us))};Ga()}else Ie.domFrag().toggleClass("dcg-mq-last",!(Ie[e]instanceof Us));ye+=ae-1,pe=Ie;continue e}}}},f.prototype.shouldOmitPadding=function(p){return!p||p.ctrlSeq==="."||p instanceof bi||p instanceof Np},f}(jr),Sd={};Me.prototype.autoOperatorNames=Ed();var kn={limsup:1,liminf:1,projlim:1,injlim:1};function Ed(){for(var w={_maxLength:9},f="arg deg det dim exp gcd hom inf ker lg lim ln log max min sup limsup liminf injlim projlim Pr".split(" "),p=0;p<f.length;p+=1)Sd[f[p]]=w[f[p]]=1;for(var m="sin cos tan arcsin arccos arctan sinh cosh tanh sec csc cot coth".split(" "),p=0;p<m.length;p+=1)Sd[m[p]]=1;for(var y="sin cos tan sec cosec csc cotan cot ctg".split(" "),p=0;p<y.length;p+=1)w[y[p]]=w["arc"+y[p]]=w[y[p]+"h"]=w["ar"+y[p]+"h"]=w["arc"+y[p]+"h"]=1;for(var T="gcf hcf lcm proj span".split(" "),p=0;p<T.length;p+=1)w[T[p]]=1;return w}be.autoOperatorNames=function(w){if(typeof w!="string")throw'"'+w+'" not a space-delimited list';if(!/^[a-z\|\-]+(?: [a-z\|\-]+)*$/i.test(w))throw'"'+w+'" not a space-delimited list of letters or "|"';for(var f=w.split(" "),p={},m=0,y=0;y<f.length;y+=1){var T=f[y];if(T.length<2)throw'"'+T+'" not minimum length of 2';if(T.indexOf("|")<0)p[T]=T,m=i(m,T.length);else{var L=T.split("|");if(L.length>2)throw'"'+T+'" has more than 1 mathspeak delimiter';if(L[0].length<2)throw'"'+T[0]+'" not minimum length of 2';p[L[0]]=L[1].replace(/-/g," "),m=i(m,L[0].length)}}return p._maxLength=m,p},Me.prototype.infixOperatorNames={},be.infixOperatorNames=function(w){if(typeof w!="string")throw'"'+w+'" not a space-delimited list';if(!/^[a-z]+(?: [a-z]+)*$/i.test(w))throw'"'+w+'" not a space-delimited list of letters';for(var f=w.split(" "),p={},m=0;m<f.length;m+=1){var y=f[m];if(y.length<2)throw'"'+y+'" not minimum length of 2';p[y]=!0}return p};var Rp=function(w){Ne(f,w);function f(p){return w.call(this,p||"")||this}return f.prototype.createLeftOf=function(p){for(var m=this.ctrlSeq,y=0;y<m.length;y+=1)new Jr(m.charAt(y)).createLeftOf(p)},f.prototype.parser=function(){for(var p=this.ctrlSeq,m=new Ar,y=0;y<p.length;y+=1)new Jr(p.charAt(y)).adopt(m,m.getEnd(e),0);return tt.succeed(m.children())},f}(Xo);for(var rs in Me.prototype.autoOperatorNames)Me.prototype.autoOperatorNames.hasOwnProperty(rs)&&(D[rs]=Rp);D.operatorname=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.createLeftOf=function(){},f.prototype.numBlocks=function(){return 1},f.prototype.parser=function(){return Ue.block.map(function(p){var m=!0,y="",T=p.children();return T.each(function(L){L instanceof Jr?y+=L.letter:m=!1}),m&&y==="ans"?J1():T})},f}(Bi),D.f=function(w){Ne(f,w);function f(){var p=this,m="f";return p=w.call(this,m)||this,p.letter=m,p.domView=new si(0,function(){return c("var",{class:"dcg-mq-f"},[c.text("f")])}),p}return f.prototype.italicize=function(p){return this.domFrag().eachElement(function(m){return m.textContent="f"}),this.domFrag().toggleClass("dcg-mq-f",p),w.prototype.italicize.call(this,p)},f}(Jr),D[" "]=D.space=function(){return new Cd("\\ ",c("span",{},[c.text(u)])," ")},D["."]=function(){return new Cd(".",c("span",{class:"dcg-mq-digit"},[c.text(".")]),".")},D["'"]=D.prime=xt("'","&prime;","prime"),D["\u2033"]=D.dprime=xt("\u2033","&Prime;","double prime"),D.backslash=xt("\\backslash ","\\","backslash"),_["\\"]||(_["\\"]=D.backslash),D.$=xt("\\$","$","dollar"),D.square=xt("\\square ","\u25A1","square"),D.mid=xt("\\mid ","\u2223","mid");var Dd=function(w){Ne(f,w);function f(p,m,y){return w.call(this,p,c("span",{class:"dcg-mq-nonSymbola"},[m||c.text(p)]))||this}return f}(Xo);D["@"]=function(){return new Dd("@")},D["&"]=function(){return new Dd("\\&",c.entityText("&amp;"),"and")},D["%"]=function(w){Ne(f,w);function f(){return w.call(this,"\\%",c.text("%"),"percent")||this}return f.prototype.parser=function(){var p=tt.optWhitespace,m=tt.string;return p.then(m("\\operatorname{of}").map(function(){return X1()})).or(w.prototype.parser.call(this))},f}(Dd),D["\u2225"]=D.parallel=xt("\\parallel ","&#x2225;","parallel"),D["\u2226"]=D.nparallel=xt("\\nparallel ","&#x2226;","not parallel"),D["\u27C2"]=D.perp=xt("\\perp ","&#x27C2;","perpendicular");function zi(w){return li("\\"+w+" ","&"+w+";",w)}D.\u03B1=D.alpha=zi("alpha"),D.\u03B2=D.beta=zi("beta"),D.\u03B3=D.gamma=zi("gamma"),D.\u03B4=D.delta=zi("delta"),D.\u03B6=D.zeta=zi("zeta"),D.\u03B7=D.eta=zi("eta"),D.\u03B8=D.theta=zi("theta"),D.\u03B9=D.iota=zi("iota"),D.\u03BA=D.kappa=zi("kappa"),D.\u03BC=D.mu=zi("mu"),D.\u03BD=D.nu=zi("nu"),D.\u03BE=D.xi=zi("xi"),D.\u03C1=D.rho=zi("rho"),D.\u03C3=D.sigma=zi("sigma"),D.\u03C4=D.tau=zi("tau"),D.\u03C7=D.chi=zi("chi"),D.\u03C8=D.psi=zi("psi"),D.\u03C9=D.omega=zi("omega"),D.\u03D5=D.phi=li("\\phi ","&#981;","phi"),D.\u03C6=D.phiv=D.varphi=li("\\varphi ","&phi;","phi"),D["\u03F5"]=D.epsilon=li("\\epsilon ","&#1013;","epsilon"),D.\u03B5=D.epsiv=D.varepsilon=li("\\varepsilon ","&epsilon;","epsilon"),D.\u03D6=D.piv=D.varpi=li("\\varpi ","&piv;","piv"),D.\u03C2=D.sigmaf=D.sigmav=D.varsigma=li("\\varsigma ","&sigmaf;","sigma"),D.\u03D1=D.thetav=D.vartheta=D.thetasym=li("\\vartheta ","&thetasym;","theta"),D.\u03C5=D.upsilon=D.upsi=li("\\upsilon ","&upsilon;","upsilon"),D.\u03DC=D.gammad=D.Gammad=D.digamma=li("\\digamma ","&#989;","gamma"),D.\u03F0=D.kappav=D.varkappa=li("\\varkappa ","&#1008;","kappa"),D.\u03F1=D.rhov=D.varrho=li("\\varrho ","&#1009;","rho"),D.pi=D.\u03C0=function(){return new Dd("\\pi ",c.entityText("&pi;"),"pi")},D.\u03BB=D.lambda=function(){return new Dd("\\lambda ",c.entityText("&lambda;"),"lambda")},D.\u03A5=D.Upsilon=D.Upsi=D.upsih=D.Upsih=function(){return new Xo("\\Upsilon ",c("var",{style:"font-family: serif"},[c.entityText("&upsih;")]),"capital upsilon")};function qn(w){return function(){return new Ec("\\"+w+" ",c.entityText("&"+w+";"))}}D.\u0393=D.Gamma=qn("Gamma"),D.\u0394=D.Delta=qn("Delta"),D.\u0398=D.Theta=qn("Theta"),D.\u039B=D.Lambda=qn("Lambda"),D.\u039E=D.Xi=qn("Xi"),D.\u03A0=D.Pi=qn("Pi"),D.\u03A3=D.Sigma=qn("Sigma"),D.\u03A6=D.Phi=qn("Phi"),D.\u03A8=D.Psi=qn("Psi"),D.\u03A9=D.Omega=qn("Omega"),D["\u2200"]=D.forall=qn("forall");var yi=function(w){Ne(f,w);function f(p){var m=w.call(this)||this;return m.latexStr=p,m}return f.prototype.createLeftOf=function(p){var m=Ue.parse(this.latexStr);m.children().adopt(p.parent,p[r],p[e]),p[r]=m.getEnd(e),P(m.html()).insertBefore(p.domFrag()),m.finalizeInsert(p.options,p);var y=m.getEnd(e),T=y&&y[e];T&&T.siblingCreated(p.options,r);var L=m.getEnd(r),F=L&&L[r];F&&F.siblingCreated(p.options,e),p.parent.bubble(function(N){N.reflow()})},f.prototype.mathspeak=function(){return Ue.parse(this.latexStr).mathspeak()},f.prototype.parser=function(){var p=Ue.parse(this.latexStr).children();return tt.succeed(p)},f}(Bi);D["\u2070"]=function(){return new yi("^0")},D["\xB9"]=function(){return new yi("^1")},D["\xB2"]=function(){return new yi("^2")},D["\xB3"]=function(){return new yi("^3")},D["\u2074"]=function(){return new yi("^4")},D["\u2075"]=function(){return new yi("^5")},D["\u2076"]=function(){return new yi("^6")},D["\u2077"]=function(){return new yi("^7")},D["\u2078"]=function(){return new yi("^8")},D["\u2079"]=function(){return new yi("^9")},D["\xBC"]=function(){return new yi("\\frac14")},D["\xBD"]=function(){return new yi("\\frac12")},D["\xBE"]=function(){return new yi("\\frac34")},D["\u221A"]=function(){return new yi("\\sqrt{}")};function mw(w){if(!w)return!1;var f=w[r];if(f){if(f instanceof bi||/^(\\ )|[,;:\(\[]$/.test(f.ctrlSeq))return!1}else return w.parent&&w.parent.parent&&w.parent.parent.isStyleBlock()?mw(w.parent.parent):!1;return!0}var Tf=function(w){Ne(f,w);function f(p,m,y){return w.call(this,p,m,void 0,y,!0)||this}return f.prototype.contactWeld=function(p,m){this.sharedSiblingMethod(p.options,m)},f.prototype.siblingCreated=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.siblingDeleted=function(p,m){this.sharedSiblingMethod(p,m)},f.prototype.sharedSiblingMethod=function(p,m){if(m!==e)return this.domFrag().oneElement().className=mw(this)?"dcg-mq-binary-operator":"",this},f}(bi);D["+"]=function(w){Ne(f,w);function f(){return w.call(this,"+",c.text("+"))||this}return f.prototype.mathspeak=function(){return mw(this)?"plus":"positive"},f}(Tf);var z1=function(w){Ne(f,w);function f(){return w.call(this,"-",c.entityText("&minus;"))||this}return f.prototype.mathspeak=function(){return mw(this)?"minus":"negative"},f}(Tf);D["\u2212"]=D["\u2014"]=D["\u2013"]=D["-"]=z1,D["\xB1"]=D.pm=D.plusmn=D.plusminus=function(){return new Tf("\\pm ",c.entityText("&plusmn;"),"plus-or-minus")},D.mp=D.mnplus=D.minusplus=function(){return new Tf("\\mp ",c.entityText("&#8723;"),"minus-or-plus")},_["*"]=D.sdot=D.cdot=Dn("\\cdot ","&middot;","*","times");var K1=function(w){Ne(f,w);function f(){return w.call(this,"\\to ",c.entityText("&rarr;"),"to")||this}return f.prototype.deleteTowards=function(p,m){if(p===r){var y=m[r];new v(y,this).remove(),m[r]=y[r],new z1().createLeftOf(m),m[r].bubble(function(T){T.reflow()});return}w.prototype.deleteTowards.call(this,p,m)},f}(bi);D["\u2192"]=D.to=K1;var If=function(w){Ne(f,w);function f(p,m){var y=this,T=m?"Strict":"";return y=w.call(this,p["ctrlSeq".concat(T)],c.entityText(p["htmlEntity".concat(T)]),p["text".concat(T)],p["mathspeak".concat(T)])||this,y.data=p,y.strict=m,y}return f.prototype.swap=function(p){this.strict=p;var m=p?"Strict":"";this.ctrlSeq=this.data["ctrlSeq".concat(m)],this.domFrag().children().replaceWith(P(c.entityText(this.data["htmlEntity".concat(m)]))),this.textTemplate=[this.data["text".concat(m)]],this.mathspeakName=this.data["mathspeak".concat(m)]},f.prototype.deleteTowards=function(p,m){if(p===r&&!this.strict){this.swap(!0),this.bubble(function(y){y.reflow()});return}w.prototype.deleteTowards.call(this,p,m)},f}(bi),U1={ctrlSeq:"\\le ",htmlEntity:"&le;",text:"\u2264",mathspeak:"less than or equal to",ctrlSeqStrict:"<",htmlEntityStrict:"&lt;",textStrict:"<",mathspeakStrict:"less than"},q1={ctrlSeq:"\\ge ",htmlEntity:"&ge;",text:"\u2265",mathspeak:"greater than or equal to",ctrlSeqStrict:">",htmlEntityStrict:"&gt;",textStrict:">",mathspeakStrict:"greater than"},AU=function(w){Ne(f,w);function f(){return w.call(this,q1,!0)||this}return f.prototype.createLeftOf=function(p){var m=p[r];if(m instanceof bi&&m.ctrlSeq==="-"){var y=m;p[r]=y[r],y.remove(),new K1().createLeftOf(p),p[r].bubble(function(T){T.reflow()});return}w.prototype.createLeftOf.call(this,p)},f}(If);D["<"]=D.lt=function(){return new If(U1,!0)},D[">"]=D.gt=AU,D["\u2264"]=D.le=D.leq=function(){return new If(U1,!1)},D["\u2265"]=D.ge=D.geq=function(){return new If(q1,!1)},D["\u221E"]=D.infty=D.infin=D.infinity=xt("\\infty ","&infin;","infinity"),D["\u2260"]=D.ne=D.neq=Dn("\\ne ","&ne;","not equal");var H1=function(w){Ne(f,w);function f(){return w.call(this,"=",c.text("="),"=","equals")||this}return f.prototype.createLeftOf=function(p){var m=p[r];if(m instanceof If&&m.strict){m.swap(!1),m.bubble(function(y){y.reflow()});return}w.prototype.createLeftOf.call(this,p)},f}(bi);D["="]=H1,D["\xD7"]=D.times=D.cross=Dn("\\times ","&times;","[x]","times"),D["\xF7"]=D.div=D.divide=D.divides=Dn("\\div ","&divide;","[/]","over");var W1=function(w){Ne(f,w);function f(){return w.call(this,"\\sim ",c.text("~"),"~","tilde")||this}return f.prototype.createLeftOf=function(p){if(p[r]instanceof f){var m=p[r];p[r]=m[r],m.remove(),new $1().createLeftOf(p),p[r].bubble(function(y){y.reflow()});return}w.prototype.createLeftOf.call(this,p)},f}(bi),$1=function(w){Ne(f,w);function f(){return w.call(this,"\\approx ",c.entityText("&approx;"),"\u2248","approximately equal")||this}return f.prototype.deleteTowards=function(p,m){if(p===r){var y=m[r];new v(y,this).remove(),m[r]=y[r],new W1().createLeftOf(m),m[r].bubble(function(T){T.reflow()});return}w.prototype.deleteTowards.call(this,p,m)},f}(bi);D.tildeNbsp=xt("~",u," "),D.sim=W1,D["\u2248"]=D.approx=$1,_["~"]=D.sim,D["~"]=D.tildeNbsp,be.interpretTildeAsSim=function(w){var f=!!w;return f?D["~"]=D.sim:D["~"]=D.tildeNbsp,f};var Mf={sqrt:{width:"",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 32 54"},[c("path",{d:"M0 33 L7 27 L12.5 47 L13 47 L30 0 L32 0 L13 54 L11 54 L4.5 31 L0 33"})])}},"|":{width:".4em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 10 54"},[c("path",{d:"M4.4 0 L4.4 54 L5.6 54 L5.6 0"})])}},"[":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 11 24"},[c("path",{d:"M8 0 L3 0 L3 24 L8 24 L8 23 L4 23 L4 1 L8 1"})])}},"]":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 11 24"},[c("path",{d:"M3 0 L8 0 L8 24 L3 24 L3 23 L7 23 L7 1 L3 1"})])}},"(":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"3 0 106 186"},[c("path",{d:"M85 0 A61 101 0 0 0 85 186 L75 186 A75 101 0 0 1 75 0"})])}},")":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"3 0 106 186"},[c("path",{d:"M24 0 A61 101 0 0 1 24 186 L34 186 A75 101 0 0 0 34 0"})])}},"{":{width:".7em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"10 0 210 350"},[c("path",{d:"M170 0 L170 6 A47 52 0 0 0 123 60 L123 127 A35 48 0 0 1 88 175 A35 48 0 0 1 123 223 L123 290 A47 52 0 0 0 170 344 L170 350 L160 350 A58 49 0 0 1 102 301 L103 220 A45 40 0 0 0 58 180 L58 170 A45 40 0 0 0 103 130 L103 49 A58 49 0 0 1 161 0"})])}},"}":{width:".7em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"10 0 210 350"},[c("path",{d:"M60 0 L60 6 A47 52 0 0 1 107 60 L107 127 A35 48 0 0 0 142 175 A35 48 0 0 0 107 223 L107 290 A47 52 0 0 1 60 344 L60 350 L70 350 A58 49 0 0 0 128 301 L127 220 A45 40 0 0 1 172 180 L172 170 A45 40 0 0 1 127 130 L127 49 A58 49 0 0 0 70 0"})])}},"&#8741;":{width:".7em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 10 54"},[c("path",{d:"M3.2 0 L3.2 54 L4 54 L4 0 M6.8 0 L6.8 54 L6 54 L6 0"})])}},"&lang;":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 10 54"},[c("path",{d:"M6.8 0 L3.2 27 L6.8 54 L7.8 54 L4.2 27 L7.8 0"})])}},"&rang;":{width:".55em",html:function(){return c("svg",{preserveAspectRatio:"none",viewBox:"0 0 10 54"},[c("path",{d:"M3.2 0 L6.8 27 L3.2 54 L2.2 54 L5.8 27 L2.2 0"})])}}},zs=function(w){Ne(f,w);function f(p,m,y,T,L){var F=w.call(this,p,new si(1,function(N){return c.block(m,y,N[0])}))||this;return F.ariaLabel=T||p.replace(/^\\/,""),F.mathspeakTemplate=["Start"+F.ariaLabel+",","End"+F.ariaLabel],F.shouldNotSpeakDelimiters=L&&L.shouldNotSpeakDelimiters,F}return f.prototype.mathspeak=function(p){return!this.shouldNotSpeakDelimiters||p&&p.ignoreShorthand?w.prototype.mathspeak.call(this):this.foldChildren("",function(m,y){return m+" "+y.mathspeak(p)}).trim()},f}(Bi);D.mathrm=function(w){Ne(f,w);function f(){return w.call(this,"\\mathrm","span",{class:"dcg-mq-roman dcg-mq-font"},"Roman Font",{shouldNotSpeakDelimiters:!0})||this}return f.prototype.isTextBlock=function(){return!0},f}(zs),D.mathit=function(){return new zs("\\mathit","i",{class:"dcg-mq-font"},"Italic Font")},D.mathbf=function(){return new zs("\\mathbf","b",{class:"dcg-mq-font"},"Bold Font")},D.mathsf=function(){return new zs("\\mathsf","span",{class:"dcg-mq-sans-serif dcg-mq-font"},"Serif Font")},D.mathtt=function(){return new zs("\\mathtt","span",{class:"dcg-mq-monospace dcg-mq-font"},"Math Text")},D.underline=function(){return new zs("\\underline","span",{class:"dcg-mq-non-leaf dcg-mq-underline"},"Underline")},D.overline=D.bar=function(){return new zs("\\overline","span",{class:"dcg-mq-non-leaf dcg-mq-overline"},"Overline")},D.overrightarrow=function(){return new zs("\\overrightarrow","span",{class:"dcg-mq-non-leaf dcg-mq-overarrow dcg-mq-arrow-right"},"Over Right Arrow")},D.overleftarrow=function(){return new zs("\\overleftarrow","span",{class:"dcg-mq-non-leaf dcg-mq-overarrow dcg-mq-arrow-left"},"Over Left Arrow")},D.overleftrightarrow=function(){return new zs("\\overleftrightarrow ","span",{class:"dcg-mq-non-leaf dcg-mq-overarrow dcg-mq-arrow-leftright"},"Over Left and Right Arrow")},D.overarc=function(){return new zs("\\overarc","span",{class:"dcg-mq-non-leaf dcg-mq-overarc"},"Over Arc")},D.dot=function(){return new Bi("\\dot",new si(1,function(w){return c("span",{class:"dcg-mq-non-leaf"},[c("span",{class:"dcg-mq-dot-recurring-inner"},[c("span",{class:"dcg-mq-dot-recurring"},[c.text(g)]),c.block("span",{class:"dcg-mq-empty-box"},w[0])])])}))},D.textcolor=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.setColor=function(p){this.color=p,this.domView=new si(1,function(m){return c.block("span",{class:"dcg-mq-textcolor",style:"color:"+p},m[0])}),this.ariaLabel=p.replace(/^\\/,""),this.mathspeakTemplate=["Start "+this.ariaLabel+",","End "+this.ariaLabel]},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p);var m=this.blocks[0];p.latex+="\\textcolor{"+this.color+"}{",m.latexRecursive(p),p.latex+="}",this.checkCursorContextClose(p)},f.prototype.parser=function(){var p=this,m=tt.optWhitespace,y=tt.string,T=tt.regex;return m.then(y("{")).then(T(/^[#\w\s.,()%-]*/)).skip(y("}")).then(function(L){return p.setColor(L),w.prototype.parser.call(p)})},f.prototype.isStyleBlock=function(){return!0},f}(Bi);var aQ=D.class=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.parser=function(){var p=this,m=tt.string,y=tt.regex;return tt.optWhitespace.then(m("{")).then(y(/^[-\w\s\\\xA0-\xFF]*/)).skip(m("}")).then(function(T){return p.cls=T||"",p.domView=new si(1,function(L){return c.block("span",{class:"dcg-mq-class ".concat(T)},L[0])}),p.ariaLabel=T+" class",p.mathspeakTemplate=["Start "+p.ariaLabel+",","End "+p.ariaLabel],w.prototype.parser.call(p)})},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p);var m=this.blocks[0];p.latex+="\\class{"+this.cls+"}{",m.latexRecursive(p),p.latex+="}",this.checkCursorContextClose(p)},f.prototype.isStyleBlock=function(){return!0},f}(Bi),fw=/^[\+\-]?[\d]+$/;function fk(w){if(!w)return"";var f="";return w.eachChild(function(p){p.ctrlSeq!==void 0&&(f+=p.ctrlSeq)}),f}Me.prototype.charsThatBreakOutOfSupSub="";var Ks=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="_{...}^{...}",p}return f.prototype.setEnds=function(p){a("SupSub ends must be MathBlocks",p[r]instanceof Ar&&p[e]instanceof Ar),this.ends=p},f.prototype.getEnd=function(p){return this.ends[p]},f.prototype.createLeftOf=function(p){if(!(!this.replacedFragment&&!p[r]&&p.options.supSubsRequireOperand))return w.prototype.createLeftOf.call(this,p)},f.prototype.contactWeld=function(p){for(var m=r;m;m=m===r?e:!1){var y=this[m],T=void 0;if(y instanceof f){for(var L="sub";L;L=L==="sub"?"sup":!1){var F=this[L],N=y[L];if(F){if(!N)y.addBlock(F.disown());else if(F.isEmpty())T=new q(N,0,N.getEnd(r));else{F.domFrag().children().insAtDirEnd(-m,N.domFrag().oneElement());var Z=F.children().disown();T=new q(N,Z.getEnd(e),N.getEnd(r)),m===r?Z.adopt(N,N.getEnd(e),0):Z.adopt(N,0,N.getEnd(r))}this.placeCursor=function(ye,pe){return function(ae){ae.insAtDirEnd(-m,ye||pe)}}(N,F)}}this.remove(),p&&p[r]===this&&(m===e&&T?T[r]?p.insRightOf(T[r]):p.insAtLeftEnd(T.parent):p.insRightOf(y));break}}},f.prototype.finalizeTree=function(){var p=this.getEnd(r);p.write=function(m,y){if(m.options.autoSubscriptNumerals&&this===this.parent.sub&&"0123456789".indexOf(y)>=0){var T=this.chToCmd(y,m.options);T instanceof Xo?m.deleteSelection():m.clearSelection().insRightOf(this.parent),T.createLeftOf(m.show()),m.controller.aria.queue("Baseline").alert(T.mathspeak({createdLeftOf:m}));return}m[r]&&!m[e]&&!m.selection&&m.options.charsThatBreakOutOfSupSub.indexOf(y)>-1&&(m.insRightOf(this.parent),m.controller.aria.queue("Baseline")),Ar.prototype.write.call(this,m,y)}},f.prototype.moveTowards=function(p,m,y){m.options.autoSubscriptNumerals&&!this.sup?m.insDirOf(p,this):w.prototype.moveTowards.call(this,p,m,y)},f.prototype.deleteTowards=function(p,m){if(m.options.autoSubscriptNumerals&&this.sub){var y=this.sub.getEnd(-p);y instanceof Xo?y.remove():y&&y.deleteTowards(p,m.insAtDirEnd(-p,this.sub)),this.sub.isEmpty()&&(this.sub.deleteOutOf(r,m.insAtLeftEnd(this.sub)),this.sup&&m.insDirOf(-p,this))}else w.prototype.deleteTowards.call(this,p,m)},f.prototype.latexRecursive=function(p){if(this.checkCursorContextOpen(p),this.sub){p.latex+="_{";var m=p.latex.length;this.sub.latexRecursive(p);var y=p.latex.length;m===y&&(p.latex+=" "),p.latex+="}"}if(this.sup){p.latex+="^{";var m=p.latex.length;this.sup.latexRecursive(p);var y=p.latex.length;m===y&&(p.latex+=" "),p.latex+="}"}this.checkCursorContextClose(p)},f.prototype.text=function(){function p(m,y){var T=y&&y.text()||"";return y?m+(T.length===1?T:"("+(T||" ")+")"):""}return p("_",this.sub)+p("^",this.sup)},f.prototype.addBlock=function(p){this.supsub==="sub"?(this.sup=this.upInto=this.sub.upOutOf=p,p.adopt(this,this.sub,0).downOutOf=this.sub,p.setDOM(P(c("span",{class:"dcg-mq-sup"})).append(p.domFrag().children()).prependTo(this.domFrag().oneElement()).oneElement()),z.linkElementByBlockNode(p.domFrag().oneElement(),p)):(this.sub=this.downInto=this.sup.downOutOf=p,p.adopt(this,0,this.sup).upOutOf=this.sup,this.domFrag().removeClass("dcg-mq-sup-only"),p.setDOM(P(c("span",{class:"dcg-mq-sub"})).append(p.domFrag().children()).appendTo(this.domFrag().oneElement()).oneElement()),z.linkElementByBlockNode(p.domFrag().oneElement(),p),this.domFrag().append(P(c("span",{style:"display:inline-block;width:0"},[c.text(h)]))));for(var m=0;m<2;m+=1)(function(y,T,L,F){var N=y[T];N.deleteOutOf=function(Z,ye){if(ye.insDirOf(this[Z]?-Z:Z,this.parent),!this.isEmpty()){var pe=this.getEnd(Z);this.children().disown().withDirAdopt(Z,ye.parent,ye[Z],ye[-Z]).domFrag().insDirOf(-Z,ye.domFrag()),ye[-Z]=pe}y.supsub=L,delete y[T],delete y["".concat(F,"Into")];var ae=y[L];ae["".concat(F,"OutOf")]=bk,delete ae.deleteOutOf,T==="sub"&&y.domFrag().addClass("dcg-mq-sup-only").children().last().remove(),this.remove()}})(this,"sub sup".split(" ")[m],"sup sub".split(" ")[m],"down up".split(" ")[m])},f}(Bi);function bk(w){var f=this.parent,p=w;do{if(p[e])return w.insLeftOf(f);p=p.parent.parent}while(p!==f);w.insRightOf(f)}var Y1=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.supsub="sub",p.domView=new si(1,function(m){return c("span",{class:"dcg-mq-supsub dcg-mq-non-leaf"},[c.block("span",{class:"dcg-mq-sub"},m[0]),c("span",{style:"display:inline-block;width:0"},[c.text(h)])])}),p.textTemplate=["_"],p.mathspeakTemplate=["Subscript,",", Baseline"],p.ariaLabel="subscript",p}return f.prototype.finalizeTree=function(){this.downInto=this.sub=this.getEnd(r),this.sub.upOutOf=bk,w.prototype.finalizeTree.call(this)},f}(Ks);D.subscript=D._=Y1,D.superscript=D.supscript=D["^"]=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.supsub="sup",p.domView=new si(1,function(m){return c("span",{class:"dcg-mq-supsub dcg-mq-non-leaf dcg-mq-sup-only"},[c.block("span",{class:"dcg-mq-sup"},m[0])])}),p.textTemplate=["^(",")"],p.ariaLabel="superscript",p.mathspeakTemplate=["Superscript,",", Baseline"],p}return f.prototype.mathspeak=function(p){var m=this.upInto;if(m!==void 0){var y=fk(m);if((!p||!p.ignoreShorthand)&&fw.test(y)){if(y==="0")return"to the 0 power";if(y==="2")return"squared";if(y==="3")return"cubed";var T="";/^[+-]?\d{1,3}$/.test(y)&&(/(11|12|13|4|5|6|7|8|9|0)$/.test(y)?T="th":/1$/.test(y)?T="st":/2$/.test(y)?T="nd":/3$/.test(y)&&(T="rd"));var L=typeof m=="object"?m.mathspeak():y;return"to the "+L+T+" power"}}return w.prototype.mathspeak.call(this)},f.prototype.finalizeTree=function(){this.upInto=this.sup=this.getEnd(e),this.sup.downOutOf=bk,w.prototype.finalizeTree.call(this)},f}(Ks);var Np=function(w){Ne(f,w);function f(p,m,y){var T=w.call(this)||this;T.ariaLabel=y||p.replace(/^\\/,"");var L=new si(2,function(F){return c("span",{class:"dcg-mq-large-operator dcg-mq-non-leaf"},[c("span",{class:"dcg-mq-to"},[c.block("span",{},F[1])]),c("big",{},[c.text(m)]),c("span",{class:"dcg-mq-from"},[c.block("span",{},F[0])])])});return Xo.prototype.setCtrlSeqHtmlTextAndMathspeak.call(T,p,L),T}return f.prototype.createLeftOf=function(p){w.prototype.createLeftOf.call(this,p),p.options.sumStartsWithNEquals&&(new Jr("n").createLeftOf(p),new H1().createLeftOf(p))},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+=this.ctrlSeq+"_{";var m=p.latex.length;this.getEnd(r).latexRecursive(p);var y=p.latex.length;y===m&&(p.latex+=" "),p.latex+="}^{",m=p.latex.length,this.getEnd(e).latexRecursive(p),y=p.latex.length,m===y&&(p.latex+=" "),p.latex+="}",this.checkCursorContextClose(p)},f.prototype.mathspeak=function(){return"Start "+this.ariaLabel+" from "+this.getEnd(r).mathspeak()+" to "+this.getEnd(e).mathspeak()+", end "+this.ariaLabel+", "},f.prototype.parser=function(){for(var p=tt.string,m=tt.optWhitespace,y=tt.succeed,T=Ue.block,L=this,F=L.blocks=[new Ar,new Ar],N=0;N<F.length;N+=1)F[N].adopt(L,L.getEnd(e),0);return m.then(p("_").or(p("^"))).then(function(Z){var ye=F[Z==="_"?0:1];return T.then(function(pe){return pe.children().adopt(ye,ye.getEnd(e),0),y(L)})}).many().result(L)},f.prototype.finalizeTree=function(){var p=this.getEnd(r),m=this.getEnd(e);p.ariaLabel="lower bound",m.ariaLabel="upper bound",this.downInto=p,this.upInto=m,p.upOutOf=m,m.downOutOf=p},f}(Bi);D["\u2211"]=D.sum=D.summation=function(){return new Np("\\sum ",b,"sum")},D["\u220F"]=D.prod=D.product=function(){return new Np("\\prod ",C,"product")},D.coprod=D.coproduct=function(){return new Np("\\coprod ",S,"co product")},D["\u222B"]=D.int=D.integral=function(w){Ne(f,w);function f(){var p=w.call(this,"\\int ","","integral")||this;return p.ariaLabel="integral",p.domView=new si(2,function(m){return c("span",{class:"dcg-mq-int dcg-mq-non-leaf"},[c("big",{},[c.text(k)]),c("span",{class:"dcg-mq-supsub dcg-mq-non-leaf"},[c("span",{class:"dcg-mq-sup"},[c.block("span",{class:"dcg-mq-sup-inner"},m[1])]),c.block("span",{class:"dcg-mq-sub"},m[0]),c("span",{style:"display:inline-block;width:0"},[c.text(h)])])])}),p}return f.prototype.createLeftOf=function(p){Bi.prototype.createLeftOf.call(this,p)},f}(Np);var j1=D.frac=D.dfrac=D.cfrac=D.fraction=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="\\frac",p.domView=new si(2,function(m){return c("span",{class:"dcg-mq-fraction dcg-mq-non-leaf"},[c.block("span",{class:"dcg-mq-numerator"},m[0]),c.block("span",{class:"dcg-mq-denominator"},m[1]),c("span",{style:"display:inline-block;width:0"},[c.text(h)])])}),p.textTemplate=["(",")/(",")"],p}return f.prototype.finalizeTree=function(){var p=this.getEnd(r),m=this.getEnd(e);this.upInto=m.upOutOf=p,this.downInto=p.downOutOf=m,p.ariaLabel="numerator",m.ariaLabel="denominator",this.getFracDepth()>1?this.mathspeakTemplate=["StartNestedFraction,","NestedOver",", EndNestedFraction"]:this.mathspeakTemplate=["StartFraction,","Over",", EndFraction"]},f.prototype.mathspeak=function(p){if(p&&p.createdLeftOf){var m=p.createdLeftOf;return m.parent.mathspeak()}var y=fk(this.getEnd(r)),T=fk(this.getEnd(e));if((!p||!p.ignoreShorthand)&&fw.test(y)&&fw.test(T)){var L=y==="1"||y==="-1",F="";if(T==="2"?F=L?"half":"halves":T==="3"?F=L?"third":"thirds":T==="4"?F=L?"quarter":"quarters":T==="5"?F=L?"fifth":"fifths":T==="6"?F=L?"sixth":"sixths":T==="7"?F=L?"seventh":"sevenths":T==="8"?F=L?"eighth":"eighths":T==="9"&&(F=L?"ninth":"ninths"),F!==""){for(var N="",Z=!1,ye=this[r];ye&&ye[r]!==void 0;ye=ye[r])if(ye.ctrlSeq!=="\\ ")if(fw.test(ye.ctrlSeq||""))Z=!0;else{Z=!1;break}return Z&&(N+="and "),N+=this.getEnd(r).mathspeak()+" "+F,N}}return w.prototype.mathspeak.call(this)},f.prototype.getFracDepth=function(){var p=0,m=function(y,T){return y instanceof we&&y.ctrlSeq&&y.ctrlSeq.toLowerCase().search("frac")>=0&&(T+=1),y&&y.parent?m(y.parent,T):T};return m(this,p)},f}(Bi),GU=D.over=_["/"]=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.createLeftOf=function(p){if(!this.replacedFragment){var m=p[r],y=p.options.typingSlashCreatesNewFraction&&this instanceof j1;if(!y)for(;m&&!(m instanceof bi||m instanceof Jr&&m.endsWord&&p.options.infixOperatorNames[m.endsWord]||m instanceof(D.text||o)||m instanceof Np||m.ctrlSeq==="\\ "||/^[,;:]$/.test(m.ctrlSeq));)m=m[r];if(m instanceof Np&&m[e]instanceof Ks){m=m[e];var T=m[e];T instanceof Ks&&T.ctrlSeq!=m.ctrlSeq&&(m=m[e])}if(m!==p[r]&&!p.isTooDeep(1)){var T=m[e],L=p[r];this.replaces(new v(T||p.parent.getEnd(r),L)),p[r]=m}}w.prototype.createLeftOf.call(this,p)},f}(j1),J1=function(){return new Xo("\\operatorname{ans}",c("span",{class:"dcg-mq-ans"},[c.text("ans")]),"ans")};D.ans=J1;var X1=function(){return new Xo("\\%\\operatorname{of}",c("span",{class:"dcg-mq-nonSymbola dcg-mq-operator-name"},[c.text("% of ")]),"percent of")};D.percent=D.percentof=X1;var VU=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.tokenId="",p.ctrlSeq="\\token",p.textTemplate=["token(",")"],p.mathspeakTemplate=["StartToken,",", EndToken"],p.ariaLabel="token",p}return f.prototype.html=function(){var p=c("span",{class:"dcg-mq-token dcg-mq-ignore-mousedown","data-dcg-mq-token":this.tokenId});return this.setDOM(p),z.linkElementByCmdNode(p,this),p},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+="\\token{"+this.tokenId+"}",this.checkCursorContextClose(p)},f.prototype.mathspeak=function(){var p=[];return this.domFrag().children().eachElement(function(m){var y=m.getAttribute("aria-label");typeof y=="string"&&y!==""&&p.push(y)}),p.length>0?p.join(" ").trim():"token "+this.tokenId},f.prototype.parser=function(){var p=this;return Ue.block.map(function(m){var y=m.getEnd(r);if(y)for(p.tokenId+=y.ctrlSeq;y=y[e];)p.tokenId+=y.ctrlSeq;return p})},f}(Xo);D.token=VU;var Q1=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="\\sqrt",p.domView=new si(1,function(m){return c("span",{class:"dcg-mq-non-leaf dcg-mq-sqrt-container"},[c("span",{class:"dcg-mq-scaled dcg-mq-sqrt-prefix"},[Mf.sqrt.html()]),c.block("span",{class:"dcg-mq-non-leaf dcg-mq-sqrt-stem"},m[0])])}),p.textTemplate=["sqrt(",")"],p.mathspeakTemplate=["StartRoot,",", EndRoot"],p.ariaLabel="root",p}return f.prototype.parser=function(){return Ue.optBlock.then(function(p){return Ue.block.map(function(m){var y=new yk;return y.blocks=[p,m],p.adopt(y,0,0),m.adopt(y,p,0),y})}).or(w.prototype.parser.call(this))},f.prototype.deleteTowards=function(p,m){if(!this.isEmpty()&&p===1){this.moveTowards(e,m),m.parent.deleteOutOf(r,m);return}w.prototype.deleteTowards.call(this,p,m)},f}(Bi);D.sqrt=Q1,D.hat=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="\\hat",p.domView=new si(1,function(m){return c("span",{class:"dcg-mq-non-leaf"},[c("span",{class:"dcg-mq-hat-prefix"},[c.text("^")]),c.block("span",{class:"dcg-mq-hat-stem"},m[0])])}),p.textTemplate=["hat(",")"],p}return f}(Bi);var yk=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.domView=new si(2,function(m){return c("span",{class:"dcg-mq-nthroot-container dcg-mq-non-leaf"},[c.block("sup",{class:"dcg-mq-nthroot dcg-mq-non-leaf"},m[0]),c("span",{class:"dcg-mq-scaled dcg-mq-sqrt-container"},[c("span",{class:"dcg-mq-sqrt-prefix dcg-mq-scaled"},[Mf.sqrt.html()]),c.block("span",{class:"dcg-mq-sqrt-stem dcg-mq-non-leaf"},m[1])])])}),p.textTemplate=["sqrt[","](",")"],p}return f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+="\\sqrt[",this.getEnd(r).latexRecursive(p),p.latex+="]{",this.getEnd(e).latexRecursive(p),p.latex+="}",this.checkCursorContextClose(p)},f.prototype.mathspeak=function(){var p=this.getEnd(r).mathspeak(),m=this.getEnd(e).mathspeak();return this.getEnd(r).ariaLabel="Index",this.getEnd(e).ariaLabel="Radicand",p==="3"?"Start Cube Root, "+m+", End Cube Root":"Root Index "+p+", Start Root, "+m+", End Root"},f.prototype.deleteTowards=function(p,m){Bi.prototype.deleteTowards.call(this,p,m)},f}(Q1);D.nthroot=yk,D.cbrt=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.createLeftOf=function(p){w.prototype.createLeftOf.call(this,p),new Aa("3").createLeftOf(p),p.controller.moveRight()},f}(yk);var Z1=function(w){Ne(f,w);function f(p,m,y){var T=new si(1,function(L){return c("span",{class:"dcg-mq-non-leaf"},[c("span",{class:"dcg-mq-diacritic-above"},[m]),c.block("span",{class:"dcg-mq-diacritic-stem"},L[0])])});return w.call(this,p,T,y)||this}return f}(Bi);D.vec=function(){return new Z1("\\vec",c.entityText("&rarr;"),["vec(",")"])},D.tilde=function(){return new Z1("\\tilde",c.text("~"),["tilde(",")"])};var eG=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.setDOM=function(p){var m;w.prototype.setDOM.call(this,p);var y=this.domFrag().children();return y.isEmpty()||(this.delimFrags=(m={},m[r]=y.first(),m[e]=y.last(),m)),this},f}(Bi),Us=function(w){Ne(f,w);function f(p,m,y,T,L){var F,N=w.call(this,"\\left"+T,void 0,[m,y])||this;return N.side=p,N.sides=(F={},F[r]={ch:m,ctrlSeq:T},F[e]={ch:y,ctrlSeq:L},F),N}return f.prototype.numBlocks=function(){return 1},f.prototype.html=function(){var p=this,m=this.getSymbol(r),y=this.getSymbol(e);return this.domView=new si(1,function(T){return c("span",{class:"dcg-mq-non-leaf dcg-mq-bracket-container"},[c("span",{style:"width:"+m.width,class:"dcg-mq-scaled dcg-mq-bracket-l dcg-mq-paren"+(p.side===e?" dcg-mq-ghost":"")},[m.html()]),c.block("span",{style:"margin-left:"+m.width+";margin-right:"+y.width,class:"dcg-mq-bracket-middle dcg-mq-non-leaf"},T[0]),c("span",{style:"width:"+y.width,class:"dcg-mq-scaled dcg-mq-bracket-r dcg-mq-paren"+(p.side===r?" dcg-mq-ghost":"")},[y.html()])])}),w.prototype.html.call(this)},f.prototype.getSymbol=function(p){var m=this.sides[p||e].ch;return Mf[m]||{width:"0",html:""}},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+="\\left"+this.sides[r].ctrlSeq,this.getEnd(r).latexRecursive(p),p.latex+="\\right"+this.sides[e].ctrlSeq,this.checkCursorContextClose(p)},f.prototype.mathspeak=function(p){var m=this.sides[r].ch,y=this.sides[e].ch;if(m==="|"&&y==="|")this.mathspeakTemplate=["StartAbsoluteValue,",", EndAbsoluteValue"],this.ariaLabel="absolute value";else if(p&&p.createdLeftOf&&this.side){var T="";return this.side===r?T=this.textTemplate[0]:this.side===e&&(T=this.textTemplate[1]),(this.side===r?"left ":"right ")+Eh[T]}else this.mathspeakTemplate=["left "+Eh[m]+",",", right "+Eh[y]],this.ariaLabel=Eh[m]+" block";return w.prototype.mathspeak.call(this)},f.prototype.matchBrack=function(p,m,y){return y instanceof f&&y.side&&y.side!==-m&&(!p.restrictMismatchedBrackets||Af[this.sides[this.side].ch]===y.sides[y.side].ch||p.restrictMismatchedBrackets!=="none"&&{"(":"]","[":")"}[this.sides[r].ch]===y.sides[e].ch)&&y},f.prototype.closeOpposing=function(p){p.side=0,p.sides[this.side]=this.sides[this.side];var m=p.delimFrags[this.side===r?r:e].removeClass("dcg-mq-ghost");this.replaceBracket(m,this.side)},f.prototype.createLeftOf=function(p){var m;if(!this.replacedFragment){var y=p.options;this.sides[r].ch==="|"?m=this.matchBrack(y,e,p[e])||this.matchBrack(y,r,p[r])||this.matchBrack(y,0,p.parent.parent):m=this.matchBrack(y,-this.side,p[-this.side])||this.matchBrack(y,-this.side,p.parent.parent)}if(m){var T=this.side=-m.side;this.closeOpposing(m),m===p.parent.parent&&p[T]&&new v(p[T],p.parent.getEnd(T),-T).disown().withDirAdopt(-T,m.parent,m,m[T]).domFrag().insDirOf(T,m.domFrag()),m.bubble(function(L){L.reflow()})}else m=this,T=m.side,m.replacedFragment?m.side=0:p[-T]&&(m.replaces(new v(p[-T],p.parent.getEnd(-T),T)),p[-T]=0),w.prototype.createLeftOf.call(this,p);T===r?p.insAtLeftEnd(m.getEnd(r)):p.insRightOf(m)},f.prototype.placeCursor=function(){},f.prototype.unwrap=function(){this.getEnd(r).children().disown().adopt(this.parent,this,this[e]).domFrag().insertAfter(this.domFrag()),this.remove()},f.prototype.deleteSide=function(p,m,y){var T=this.parent,L=this[p],F=T.getEnd(p);if(p===this.side){this.unwrap(),L?y.insDirOf(-p,L):y.insAtDirEnd(p,T);return}var N=y.options,Z=!this.side;if(this.side=-p,this.matchBrack(N,p,this.getEnd(r).getEnd(this.side))){this.closeOpposing(this.getEnd(r).getEnd(this.side));var ye=this.getEnd(r).getEnd(p);this.unwrap(),ye&&ye.siblingCreated(y.options,p),L?y.insDirOf(-p,L):y.insAtDirEnd(p,T)}else{if(this.matchBrack(N,p,this.parent.parent))this.parent.parent.closeOpposing(this),this.parent.parent.unwrap();else if(m&&Z){this.unwrap(),L?y.insDirOf(-p,L):y.insAtDirEnd(p,T);return}else{this.sides[p]=PU(this),this.delimFrags[r].removeClass("dcg-mq-ghost"),this.delimFrags[e].removeClass("dcg-mq-ghost");var pe=this.delimFrags[p].addClass("dcg-mq-ghost");this.replaceBracket(pe,p)}if(L){var ae=this.getEnd(r),ye=ae.getEnd(p);ae.domFrag().removeClass("dcg-mq-empty"),new v(L,F,-p).disown().withDirAdopt(-p,ae,ye,0).domFrag().insAtDirEnd(p,ae.domFrag().oneElement()),ye&&ye.siblingCreated(y.options,p),y.insDirOf(-p,L)}else m?y.insDirOf(p,this):y.insAtDirEnd(p,this.getEnd(r))}},f.prototype.replaceBracket=function(p,m){var y=this.getSymbol(m);if(p.children().replaceWith(P(y.html())),p.oneElement().style.width=y.width,m===r){var T=p.next();T.isEmpty()||(T.oneElement().style.marginLeft=y.width)}else{var L=p.prev();L.isEmpty()||(L.oneElement().style.marginRight=y.width)}},f.prototype.deleteTowards=function(p,m){this.deleteSide(-p,!1,m)},f.prototype.finalizeTree=function(){this.getEnd(r).deleteOutOf=function(p,m){this.parent.deleteSide(p,!0,m)},this.finalizeTree=this.intentionalBlur=function(){this.delimFrags[this.side===r?e:r].removeClass("dcg-mq-ghost"),this.side=0}},f.prototype.siblingCreated=function(p,m){m===-this.side&&this.finalizeTree()},f}(eG);function PU(w){var f=w.side,p=w.sides[f];return{ch:Af[p.ch],ctrlSeq:Af[p.ctrlSeq]}}var Af={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{","\\{":"\\}","\\}":"\\{","&lang;":"&rang;","&rang;":"&lang;","\\langle ":"\\rangle ","\\rangle ":"\\langle ","|":"|","\\lVert ":"\\rVert ","\\rVert ":"\\lVert "},Eh={"&lang;":"angle-bracket","&rang;":"angle-bracket","|":"pipe"};function xk(w,m,p){var m=m||w,y=Af[w],T=Af[m];_[w]=function(){return new Us(r,w,y,m,T)},_[y]=function(){return new Us(e,w,y,m,T)},Eh[w]=Eh[y]=p}xk("(","","parenthesis"),xk("[","","bracket"),xk("{","\\{","brace"),D.langle=function(){return new Us(r,"&lang;","&rang;","\\langle ","\\rangle ")},D.rangle=function(){return new Us(e,"&lang;","&rang;","\\langle ","\\rangle ")},_["|"]=function(){return new Us(r,"|","|","|","|")},D.lVert=function(){return new Us(r,"&#8741;","&#8741;","\\lVert ","\\rVert ")},D.rVert=function(){return new Us(e,"&#8741;","&#8741;","\\lVert ","\\rVert ")},D.left=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.parser=function(){var p=tt.regex,m=tt.string,y=tt.optWhitespace;return y.then(p(/^(?:[([|]|\\\{|\\langle(?![a-zA-Z])|\\lVert(?![a-zA-Z]))/)).then(function(T){var L=T.replace(/^\\/,"");return T=="\\langle"&&(L="&lang;",T=T+" "),T=="\\lVert"&&(L="&#8741;",T=T+" "),Ue.then(function(F){return m("\\right").skip(y).then(p(/^(?:[\])|]|\\\}|\\rangle(?![a-zA-Z])|\\rVert(?![a-zA-Z]))/)).map(function(N){var Z=N.replace(/^\\/,"");N=="\\rangle"&&(Z="&rang;",N=N+" "),N=="\\rVert"&&(Z="&#8741;",N=N+" ");var ye=new Us(0,L,Z,T,N);return ye.blocks=[F],F.adopt(ye,0,0),ye})})})},f}(Bi),D.right=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.parser=function(){return tt.fail("unmatched \\right")},f}(Bi);var wk=Mf["("],vk=Mf[")"],tG=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="\\binom",p.domView=new si(2,function(m){return c("span",{class:"dcg-mq-non-leaf dcg-mq-bracket-container"},[c("span",{style:"width:"+wk.width,class:"dcg-mq-paren dcg-mq-bracket-l dcg-mq-scaled"},[wk.html()]),c("span",{style:"margin-left:"+wk.width+"; margin-right:"+vk.width,class:"dcg-mq-non-leaf dcg-mq-bracket-middle"},[c("span",{class:"dcg-mq-array dcg-mq-non-leaf"},[c.block("span",{},m[0]),c.block("span",{},m[1])])]),c("span",{style:"width:"+vk.width,class:"dcg-mq-paren dcg-mq-bracket-r dcg-mq-scaled"},[vk.html()])])}),p.textTemplate=["choose(",",",")"],p.mathspeakTemplate=["StartBinomial,","Choose",", EndBinomial"],p.ariaLabel="binomial",p}return f.prototype.finalizeTree=function(){var p=this.getEnd(r),m=this.getEnd(e);this.upInto=m.upOutOf=p,this.downInto=p.downOutOf=m,p.ariaLabel="upper index",m.ariaLabel="lower index"},f}(eG);D.binom=D.binomial=tG,D.choose=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.createLeftOf=function(p){GU.prototype.createLeftOf.call(this,p)},f}(tG);var LU=function(w){Ne(f,w);function f(){var p=w!==null&&w.apply(this,arguments)||this;return p.ctrlSeq="\\MathQuillMathField",p.domView=new si(1,function(m){return c("span",{class:"dcg-mq-editable-field"},[c.block("span",{class:"dcg-mq-root-block","aria-hidden":"true"},m[0])])}),p}return f.prototype.parser=function(){var p=this,m=tt.string,y=tt.regex,T=tt.succeed;return m("[").then(y(/^[a-z][a-z0-9]*/i)).skip(m("]")).map(function(L){p.name=L}).or(T(void 0)).then(w.prototype.parser.call(this))},f.prototype.finalizeTree=function(p){var m=new Un(this.getEnd(r),this.domFrag().oneElement(),p);m.KIND_OF_MQ="MathField",m.editable=!0,m.createTextarea(),m.editablesTextareaEvents(),m.cursor.insAtRightEnd(m.root),Zi(m.root);function y(T){if(T.parentNode&&!P(T).hasClass("dcg-mq-root-block")&&y(T.parentNode),T.nodeType===Node.ELEMENT_NODE){var L=T;L.getAttribute("aria-hidden")==="true"&&(L.removeAttribute("aria-hidden"),P(T).children().eachElement(function(F){F.setAttribute("aria-hidden","true")}))}}y(this.domFrag().parent().oneElement()),this.domFrag().oneElement().removeAttribute("aria-hidden")},f.prototype.registerInnerField=function(p,m){var y=this.getEnd(r).controller,T=new m(y);p[this.name]=T,p.push(T)},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),this.getEnd(r).latexRecursive(p),this.checkCursorContextClose(p)},f.prototype.text=function(){return this.getEnd(r).text()},f}(Bi);D.editable=D.MathQuillMathField=LU;var rG=function(w){Ne(f,w);function f(){return w!==null&&w.apply(this,arguments)||this}return f.prototype.setOptions=function(p){function m(){return""}return this.text=p.text||m,this.domView=new si(0,function(){return c("span",{},[l(p.htmlString||"")])}),this.latex=p.latex||m,this},f.prototype.latexRecursive=function(p){this.checkCursorContextOpen(p),p.latex+=this.latex(),this.checkCursorContextClose(p)},f.prototype.parser=function(){var p=this,m=tt.string,y=tt.regex,T=tt.succeed;return m("{").then(y(/^[a-z][a-z0-9]*/i)).skip(m("}")).then(function(L){return m("[").then(y(/^[-\w\s]*/)).skip(m("]")).or(T(void 0)).map(function(F){return p.setOptions(X[L](F))})})},f}(Xo);if(D.embed=rG,window.jQuery){_t=xe(1);for(var iG in _t)(function(w,f){typeof f=="function"?(je[w]=function(){return Xe(),f.apply(this,arguments)},je[w].prototype=f.prototype):je[w]=f})(iG,_t[iG])}})()});var Ao,Pc=__dcg_shared_module_exports__['b'](()=>{Ao=()=>(typeof location!="undefined"?location.search.slice(1):"").split("&").reduce((e,t)=>{let[i,o]=t.split("=");return e[i]=o?decodeURIComponent(o):!0,e},{})});function ev(r){return r==null?r+"":typeof r=="object"||typeof r=="function"?Zw[hP.call(r)]||"object":typeof r}function Fk(r){var e=!!r&&"length"in r&&r.length,t=ev(r);return Rc(r)||Uh(r)?!1:t==="array"||e===0||typeof e=="number"&&e>0&&e-1 in r}function Nh(r,e){return r.nodeName&&r.nodeName.toLowerCase()===e.toLowerCase()}function HU(r,e){return e.toUpperCase()}function Oc(r){return r.replace(UU,"ms-").replace(qU,HU)}function $f(){this.expando=Y.expando+$f.uid++}function YU(r){return r==="true"?!0:r==="false"?!1:r==="null"?null:r===+r+""?+r:WU.test(r)?JSON.parse(r):r}function rP(r,e,t){var i;if(t===void 0&&r.nodeType===1)if(i="data-"+e.replace($U,"-$&").toLowerCase(),t=r.getAttribute(i),typeof t=="string"){try{t=YU(t)}catch(o){}_c.set(r,e,t)}else t=void 0;return t}function JU(r,e,t,i){var o,n,a=20,s=i?function(){return i.cur()}:function(){return Y.css(r,e,"")},l=s(),c=t&&t[3]||(Y.cssNumber[e]?"":"px"),d=r.nodeType&&(Y.cssNumber[e]||c!=="px"&&+l)&&tv.exec(Y.css(r,e));if(d&&d[3]!==c){for(l=l/2,c=c||d[3],d=+l||1;a--;)Y.style(r,e,d+c),(1-n)*(1-(n=s()/l||.5))<=0&&(a=0),d=d/n;d=d*2,Y.style(r,e,d+c),t=t||[]}return t&&(d=+d||+l||0,o=t[1]?d+(t[1]+1)*t[2]:+t[2],i&&(i.unit=c,i.start=d,i.end=o)),o}function zh(){return!0}function Kh(){return!1}function XU(r,e){return r===QU()==(e==="focus")}function QU(){try{return Go.activeElement}catch(r){}}function Bk(r,e,t,i,o,n){var a,s;if(typeof e=="object"){typeof t!="string"&&(i=i||t,t=void 0);for(s in e)Bk(r,s,t,i,e[s],n);return r}if(i==null&&o==null?(o=t,i=t=void 0):o==null&&(typeof t=="string"?(o=i,i=void 0):(o=i,i=t,t=void 0)),o===!1)o=Kh;else if(!o)return r;return n===1&&(a=o,o=function(l){return Y().off(l),a.apply(this,arguments)},o.guid=a.guid||(a.guid=Y.guid++)),r.each(function(){Y.event.add(this,e,o,i,t)})}function Qw(r,e,t){if(!t){wi.get(r,e)===void 0&&Y.event.add(r,e,zh);return}wi.set(r,e,!1),Y.event.add(r,e,{namespace:!1,handler:function(i){var o,n,a=wi.get(this,e);if(i.isTrigger&1&&this[e]){if(a.length)(Y.event.special[e]||{}).delegateType&&i.stopPropagation();else if(a=jw.call(arguments),wi.set(this,e,a),o=t(this,e),this[e](),n=wi.get(this,e),a!==n||o?wi.set(this,e,!1):n={},a!==n)return i.stopImmediatePropagation(),i.preventDefault(),n&&n.value}else a.length&&(wi.set(this,e,{value:Y.event.trigger(Y.extend(a[0],Y.Event.prototype),a.slice(1),this)}),i.stopImmediatePropagation())}})}function Hf(r,e,t){var i,o,n,a,s=r.style;return t=t||rv(r),t&&(a=t.getPropertyValue(e)||t[e],a===""&&!yP(r)&&(a=Y.style(r,e)),!Vo.pixelBoxStyles()&&Uk.test(a)&&ZU.test(e)&&(i=s.width,o=s.minWidth,n=s.maxWidth,s.minWidth=s.maxWidth=s.width=a,a=t.width,s.width=i,s.minWidth=o,s.maxWidth=n)),a!==void 0?a+"":a}function wP(r,e){return{get:function(){if(r()){delete this.get;return}return(this.get=e).apply(this,arguments)}}}function e4(r){for(var e=r[0].toUpperCase()+r.slice(1),t=oP.length;t--;)if(r=oP[t]+e,r in vP)return r}function aP(r){var e=Y.cssProps[r]||nP[r];return e||(r in vP?r:nP[r]=e4(r)||r)}function CP(r,e,t){var i=tv.exec(e);return i?Math.max(0,i[2]-(t||0))+(i[3]||"px"):e}function zk(r,e,t,i,o,n){var a=e==="width"?1:0,s=0,l=0;if(t===(i?"border":"content"))return 0;for(;a<4;a+=2)t==="margin"&&(l+=Y.css(r,t+Vd[a],!0,o)),i?(t==="content"&&(l-=Y.css(r,"padding"+Vd[a],!0,o)),t!=="margin"&&(l-=Y.css(r,"border"+Vd[a]+"Width",!0,o))):(l+=Y.css(r,"padding"+Vd[a],!0,o),t!=="padding"?l+=Y.css(r,"border"+Vd[a]+"Width",!0,o):s+=Y.css(r,"border"+Vd[a]+"Width",!0,o));return!i&&n>=0&&(l+=Math.max(0,Math.ceil(r["offset"+e[0].toUpperCase()+e.slice(1)]-n-l-s-.5))||0),l}function cP(r,e,t){var i=rv(r),o=!Vo.boxSizingReliable()||t,n=o&&Y.css(r,"boxSizing",!1,i)==="border-box",a=n,s=Hf(r,e,i),l="offset"+e[0].toUpperCase()+e.slice(1);if(Uk.test(s)){if(!t)return s;s="auto"}return(!Vo.boxSizingReliable()&&n||!Vo.reliableTrDimensions()&&Nh(r,"tr")||s==="auto"||!parseFloat(s)&&Y.css(r,"display",!1,i)==="inline")&&r.getClientRects().length&&(n=Y.css(r,"boxSizing",!1,i)==="border-box",a=l in r,a&&(s=r[l])),s=parseFloat(s)||0,s+zk(r,e,t||(n?"border":"content"),a,i,s)+"px"}function Kk(r,e,t,i){var o;if(Array.isArray(e))Y.each(e,function(n,a){t||i4.test(r)?i(r,a):Kk(r+"["+(typeof a=="object"&&a!=null?n:"")+"]",a,t,i)});else if(!t&&ev(e)==="object")for(o in e)Kk(r+"["+o+"]",e[o],t,i);else i(r,e)}var Fc,FU,jw,RU,uP,NU,Zw,hP,Jw,gP,BU,Vo,Rc,Uh,Go,mP,Y,zU,fP,KU,Nk,Wf,UU,qU,Xw,wi,_c,WU,$U,bP,tv,Vd,Bh,yP,jU,Rk,iP,Uk,rv,xP,ZU,oP,vP,nP,t4,sP,r4,lP,dP,pP,i4,o4,n4,a4,W,kt=__dcg_shared_module_exports__['b'](()=>{"use strict";Fc=[],FU=Object.getPrototypeOf,jw=Fc.slice,RU=Fc.flat?function(r){return Fc.flat.call(r)}:function(r){return Fc.concat.apply([],r)},uP=Fc.push,NU=Fc.indexOf,Zw={},hP=Zw.toString,Jw=Zw.hasOwnProperty,gP=Jw.toString,BU=gP.call(Object),Vo={},Rc=function(e){return typeof e=="function"&&typeof e.nodeType!="number"&&typeof e.item!="function"},Uh=function(e){return e!=null&&e===e.window},Go=window.document;mP="3.6.0",Y=function(r,e){return new Y.fn.init(r,e)};Y.fn=Y.prototype={jquery:mP,constructor:Y,length:0,toArray:function(){return jw.call(this)},get:function(r){return r==null?jw.call(this):r<0?this[r+this.length]:this[r]},pushStack:function(r){var e=Y.merge(this.constructor(),r);return e.prevObject=this,e},each:function(r){return Y.each(this,r)},map:function(r){return this.pushStack(Y.map(this,function(e,t){return r.call(e,t,e)}))},slice:function(){return this.pushStack(jw.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},even:function(){return this.pushStack(Y.grep(this,function(r,e){return(e+1)%2}))},odd:function(){return this.pushStack(Y.grep(this,function(r,e){return e%2}))},eq:function(r){var e=this.length,t=+r+(r<0?e:0);return this.pushStack(t>=0&&t<e?[this[t]]:[])},end:function(){return this.prevObject||this.constructor()},push:uP,sort:Fc.sort,splice:Fc.splice};Y.extend=Y.fn.extend=function(){var r,e,t,i,o,n,a=arguments[0]||{},s=1,l=arguments.length,c=!1;for(typeof a=="boolean"&&(c=a,a=arguments[s]||{},s++),typeof a!="object"&&!Rc(a)&&(a={}),s===l&&(a=this,s--);s<l;s++)if((r=arguments[s])!=null)for(e in r)i=r[e],!(e==="__proto__"||a===i)&&(c&&i&&(Y.isPlainObject(i)||(o=Array.isArray(i)))?(t=a[e],o&&!Array.isArray(t)?n=[]:!o&&!Y.isPlainObject(t)?n={}:n=t,o=!1,a[e]=Y.extend(c,n,i)):i!==void 0&&(a[e]=i));return a};Y.extend({expando:"jQuery"+(mP+Math.random()).replace(/\D/g,""),isReady:!0,error:function(r){throw new Error(r)},noop:function(){},isPlainObject:function(r){var e,t;return!r||hP.call(r)!=="[object Object]"?!1:(e=FU(r),e?(t=Jw.call(e,"constructor")&&e.constructor,typeof t=="function"&&gP.call(t)===BU):!0)},isEmptyObject:function(r){var e;for(e in r)return!1;return!0},each:function(r,e){var t,i=0;if(Fk(r))for(t=r.length;i<t&&e.call(r[i],i,r[i])!==!1;i++);else for(i in r)if(e.call(r[i],i,r[i])===!1)break;return r},makeArray:function(r,e){var t=e||[];return r!=null&&(Fk(Object(r))?Y.merge(t,typeof r=="string"?[r]:r):uP.call(t,r)),t},inArray:function(r,e,t){return e==null?-1:NU.call(e,r,t)},merge:function(r,e){for(var t=+e.length,i=0,o=r.length;i<t;i++)r[o++]=e[i];return r.length=o,r},grep:function(r,e,t){for(var i,o=[],n=0,a=r.length,s=!t;n<a;n++)i=!e(r[n],n),i!==s&&o.push(r[n]);return o},map:function(r,e,t){var i,o,n=0,a=[];if(Fk(r))for(i=r.length;n<i;n++)o=e(r[n],n,t),o!=null&&a.push(o);else for(n in r)o=e(r[n],n,t),o!=null&&a.push(o);return RU(a)},guid:1,support:Vo});typeof Symbol=="function"&&(Y.fn[Symbol.iterator]=Fc[Symbol.iterator]);Y.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(r,e){Zw["[object "+e+"]"]=e.toLowerCase()});zU=function(r){var e,t,i,o,n,a,s,l=r.document,c=[],d=c.push,u=c.push,h=c.slice,g=/HTML$/i,b=/^[^{]+\{\s*\[native \w/,C=function(){i()};try{u.apply(c=h.call(l.childNodes),l.childNodes),c[l.childNodes.length].nodeType}catch(I){u={apply:c.length?function(M,E){d.apply(M,h.call(E))}:function(M,E){for(var A=M.length,V=0;M[A++]=E[V++];);M.length=A-1}}}function S(){}function k(I){var M=o.createElement("fieldset");try{return!!I(M)}catch(E){return!1}finally{M.parentNode&&M.parentNode.removeChild(M),M=null}}return e=S.support={},t=S.isXML=function(I){var M=I&&I.namespaceURI,E=I&&(I.ownerDocument||I).documentElement;return!g.test(M||E&&E.nodeName||"HTML")},i=S.setDocument=function(I){var M,E,A=I?I.ownerDocument||I:l;return A==o||A.nodeType!==9||!A.documentElement||(o=A,n=o.documentElement,a=!t(o),l!=o&&(E=o.defaultView)&&E.top!==E&&(E.addEventListener?E.addEventListener("unload",C,!1):E.attachEvent&&E.attachEvent("onunload",C)),e.attributes=k(function(V){return V.className="i",!V.getAttribute("className")}),e.getElementsByTagName=k(function(V){return V.appendChild(o.createComment("")),!V.getElementsByTagName("*").length}),M=b.test(n.compareDocumentPosition),s=M||b.test(n.contains)?function(V,G){var P=V.nodeType===9?V.documentElement:V,O=G&&G.parentNode;return V===O||!!(O&&O.nodeType===1&&(P.contains?P.contains(O):V.compareDocumentPosition&&V.compareDocumentPosition(O)&16))}:function(V,G){if(G){for(;G=G.parentNode;)if(G===V)return!0}return!1}),o},S.contains=function(I,M){return(I.ownerDocument||I)!=o&&i(I),s(I,M)},i(),e.sortDetached=k(function(I){return I.compareDocumentPosition(o.createElement("fieldset"))&1}),S}(window);Y.contains=zU.contains;KU=Y.fn.init=function(r,e,t){if(!r)return this;if(t=t||fP,typeof r=="string")throw new Error("$(string) implementation has been removed");if(r.nodeType)return this[0]=r,this.length=1,this;if(Rc(r))throw new Error("$(function) implementation has been removed");return Y.makeArray(r,this)};KU.prototype=Y.fn;fP=Y(Go);Nk=/[^\x20\t\r\n\f]+/g,Wf=function(r,e,t,i,o,n,a){var s=0,l=r.length,c=t==null;if(ev(t)==="object"){o=!0;for(s in t)Wf(r,e,s,t[s],!0,n,a)}else if(i!==void 0&&(o=!0,Rc(i)||(a=!0),c&&(a?(e.call(r,i),e=null):(c=e,e=function(d,u,h){return c.call(Y(d),h)})),e))for(;s<l;s++)e(r[s],t,a?i:i.call(r[s],s,e(r[s],t)));return o?r:c?e.call(r):l?e(r[0],t):n},UU=/^-ms-/,qU=/-([a-z])/g;Xw=function(r){return r.nodeType===1||r.nodeType===9||!+r.nodeType};$f.uid=1;$f.prototype={cache:function(r){var e=r[this.expando];return e||(e={},Xw(r)&&(r.nodeType?r[this.expando]=e:Object.defineProperty(r,this.expando,{value:e,configurable:!0}))),e},set:function(r,e,t){var i,o=this.cache(r);if(typeof e=="string")o[Oc(e)]=t;else for(i in e)o[Oc(i)]=e[i];return o},get:function(r,e){return e===void 0?this.cache(r):r[this.expando]&&r[this.expando][Oc(e)]},access:function(r,e,t){return e===void 0||e&&typeof e=="string"&&t===void 0?this.get(r,e):(this.set(r,e,t),t!==void 0?t:e)},remove:function(r,e){var t,i=r[this.expando];if(i!==void 0){if(e!==void 0)for(Array.isArray(e)?e=e.map(Oc):(e=Oc(e),e=e in i?[e]:e.match(Nk)||[]),t=e.length;t--;)delete i[e[t]];(e===void 0||Y.isEmptyObject(i))&&(r.nodeType?r[this.expando]=void 0:delete r[this.expando])}},hasData:function(r){var e=r[this.expando];return e!==void 0&&!Y.isEmptyObject(e)}};wi=new $f,_c=new $f,WU=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,$U=/[A-Z]/g;Y.extend({hasData:function(r){return _c.hasData(r)||wi.hasData(r)},data:function(r,e,t){return _c.access(r,e,t)},removeData:function(r,e){_c.remove(r,e)},_data:function(r,e,t){return wi.access(r,e,t)},_removeData:function(r,e){wi.remove(r,e)}});Y.fn.extend({data:function(r,e){var t,i,o,n=this[0],a=n&&n.attributes;if(r===void 0){if(this.length&&(o=_c.get(n),n.nodeType===1&&!wi.get(n,"hasDataAttrs"))){for(t=a.length;t--;)a[t]&&(i=a[t].name,i.indexOf("data-")===0&&(i=Oc(i.slice(5)),rP(n,i,o[i])));wi.set(n,"hasDataAttrs",!0)}return o}return typeof r=="object"?this.each(function(){_c.set(this,r)}):Wf(this,function(s){var l;if(n&&s===void 0)return l=_c.get(n,r),l!==void 0||(l=rP(n,r),l!==void 0)?l:void 0;this.each(function(){_c.set(this,r,s)})},null,e,arguments.length>1,null,!0)},removeData:function(r){return this.each(function(){_c.remove(this,r)})}});bP=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,tv=new RegExp("^(?:([+-])=|)("+bP+")([a-z%]*)$","i"),Vd=["Top","Right","Bottom","Left"],Bh=Go.documentElement,yP=function(r){return Y.contains(r.ownerDocument,r)},jU={composed:!0};Bh.getRootNode&&(yP=function(r){return Y.contains(r.ownerDocument,r)||r.getRootNode(jU)===r.ownerDocument});Rk=/^(?:checkbox|radio)$/i;(function(){var r=Go.createDocumentFragment(),e=r.appendChild(Go.createElement("div")),t=Go.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),Vo.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="<textarea>x</textarea>",Vo.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue,e.innerHTML="<option></option>",Vo.option=!!e.lastChild})();iP=/^([^.]*)(?:\.(.+)|)/;Y.event={global:{},add:function(r,e,t,i,o){var n,a,s,l,c,d,u,h,g,b,C,S=wi.get(r);if(Xw(r)){if(t.handler&&(n=t,t=n.handler,o=n.selector),o)throw new Error("Support for event delegation has been removed");for(t.guid||(t.guid=Y.guid++),(l=S.events)||(l=S.events=Object.create(null)),(a=S.handle)||(a=S.handle=function(k){return typeof Y!="undefined"&&Y.event.triggered!==k.type?Y.event.dispatch.apply(r,arguments):void 0}),e=(e||"").match(Nk)||[""],c=e.length;c--;)if(s=iP.exec(e[c])||[],g=C=s[1],b=(s[2]||"").split(".").sort(),!!g){if(u=Y.event.special[g]||{},g=(o?u.delegateType:u.bindType)||g,u=Y.event.special[g]||{},d=Y.extend({type:g,origType:C,data:i,handler:t,guid:t.guid,selector:o,namespace:b.join(".")},n),(h=l[g])||(h=l[g]=[],h.delegateCount=0,(!u.setup||u.setup.call(r,i,b,a)===!1)&&r.addEventListener&&r.addEventListener(g,a)),u.add&&(u.add.call(r,d),d.handler.guid||(d.handler.guid=t.guid)),o)throw new Error("Support for event delegation has been removed");h.push(d),Y.event.global[g]=!0}}},remove:function(r,e,t,i,o){var n,a,s,l,c,d,u,h,g,b,C,S=wi.hasData(r)&&wi.get(r);if(!(!S||!(l=S.events))){for(e=(e||"").match(Nk)||[""],c=e.length;c--;){if(s=iP.exec(e[c])||[],g=C=s[1],b=(s[2]||"").split(".").sort(),!g){for(g in l)Y.event.remove(r,g+e[c],t,i,!0);continue}for(u=Y.event.special[g]||{},g=(i?u.delegateType:u.bindType)||g,h=l[g]||[],s=s[2]&&new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=n=h.length;n--;)d=h[n],(o||C===d.origType)&&(!t||t.guid===d.guid)&&(!s||s.test(d.namespace))&&(!i||i===d.selector||i==="**"&&d.selector)&&(h.splice(n,1),d.selector&&h.delegateCount--,u.remove&&u.remove.call(r,d));a&&!h.length&&((!u.teardown||u.teardown.call(r,b,S.handle)===!1)&&Y.removeEvent(r,g,S.handle),delete l[g])}Y.isEmptyObject(l)&&wi.remove(r,"handle events")}},dispatch:function(r){var e,t,i,o,n,a,s=new Array(arguments.length),l=Y.event.fix(r),c=(wi.get(this,"events")||Object.create(null))[l.type]||[],d=Y.event.special[l.type]||{};for(s[0]=l,e=1;e<arguments.length;e++)s[e]=arguments[e];if(l.delegateTarget=this,!(d.preDispatch&&d.preDispatch.call(this,l)===!1)){for(a=Y.event.handlers.call(this,l,c),e=0;(o=a[e++])&&!l.isPropagationStopped();)for(l.currentTarget=o.elem,t=0;(n=o.handlers[t++])&&!l.isImmediatePropagationStopped();)(!l.rnamespace||n.namespace===!1||l.rnamespace.test(n.namespace))&&(l.handleObj=n,l.data=n.data,i=((Y.event.special[n.origType]||{}).handle||n.handler).apply(o.elem,s),i!==void 0&&(l.result=i)===!1&&(l.preventDefault(),l.stopPropagation()));return d.postDispatch&&d.postDispatch.call(this,l),l.result}},handlers:function(r,e){var t=[],i=e.delegateCount,o=r.target;if(i)throw new Error("Support for event delegtaion has been removed");return o=this,i<e.length&&t.push({elem:o,handlers:e.slice(i)}),t},addProp:function(r,e){Object.defineProperty(Y.Event.prototype,r,{enumerable:!0,configurable:!0,get:Rc(e)?function(){if(this.originalEvent)return e(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[r]},set:function(t){Object.defineProperty(this,r,{enumerable:!0,configurable:!0,writable:!0,value:t})}})},fix:function(r){return r[Y.expando]?r:new Y.Event(r)},special:{load:{noBubble:!0},click:{setup:function(r){var e=this||r;return Rk.test(e.type)&&e.click&&Nh(e,"input")&&Qw(e,"click",zh),!1},trigger:function(r){var e=this||r;return Rk.test(e.type)&&e.click&&Nh(e,"input")&&Qw(e,"click"),!0},_default:function(r){var e=r.target;return Rk.test(e.type)&&e.click&&Nh(e,"input")&&wi.get(e,"click")||Nh(e,"a")}},beforeunload:{postDispatch:function(r){r.result!==void 0&&r.originalEvent&&(r.originalEvent.returnValue=r.result)}}}};Y.removeEvent=function(r,e,t){r.removeEventListener&&r.removeEventListener(e,t)};Y.Event=function(r,e){if(!(this instanceof Y.Event))return new Y.Event(r,e);r&&r.type?(this.originalEvent=r,this.type=r.type,this.isDefaultPrevented=r.defaultPrevented||r.defaultPrevented===void 0&&r.returnValue===!1?zh:Kh,this.target=r.target&&r.target.nodeType===3?r.target.parentNode:r.target,this.currentTarget=r.currentTarget,this.relatedTarget=r.relatedTarget):this.type=r,e&&Y.extend(this,e),this.timeStamp=r&&r.timeStamp||Date.now(),this[Y.expando]=!0};Y.Event.prototype={constructor:Y.Event,isDefaultPrevented:Kh,isPropagationStopped:Kh,isImmediatePropagationStopped:Kh,isSimulated:!1,preventDefault:function(){var r=this.originalEvent;this.isDefaultPrevented=zh,r&&!this.isSimulated&&r.preventDefault()},stopPropagation:function(){var r=this.originalEvent;this.isPropagationStopped=zh,r&&!this.isSimulated&&r.stopPropagation()},stopImmediatePropagation:function(){var r=this.originalEvent;this.isImmediatePropagationStopped=zh,r&&!this.isSimulated&&r.stopImmediatePropagation(),this.stopPropagation()}};Y.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,code:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:!0},Y.event.addProp);Y.each({focus:"focusin",blur:"focusout"},function(r,e){Y.event.special[r]={setup:function(){return Qw(this,r,XU),!1},trigger:function(){return Qw(this,r),!0},_default:function(){return!0},delegateType:e}});Y.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(r,e){Y.event.special[r]={delegateType:e,bindType:e,handle:function(t){var i,o=this,n=t.relatedTarget,a=t.handleObj;return(!n||n!==o&&!Y.contains(o,n))&&(t.type=a.origType,i=a.handler.apply(this,arguments),t.type=e),i}}});Y.fn.extend({on:function(r,e,t,i){return Bk(this,r,e,t,i)},one:function(r,e,t,i){return Bk(this,r,e,t,i,1)},off:function(r,e,t){var i,o;if(r&&r.preventDefault&&r.handleObj)return i=r.handleObj,Y(r.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof r=="object"){for(o in r)this.off(o,e,r[o]);return this}return(e===!1||typeof e=="function")&&(t=e,e=void 0),t===!1&&(t=Kh),this.each(function(){Y.event.remove(this,r,t,e)})}});Uk=new RegExp("^("+bP+")(?!px)[a-z%]+$","i"),rv=function(r){var e=r.ownerDocument.defaultView;return(!e||!e.opener)&&(e=window),e.getComputedStyle(r)},xP=function(r,e,t){var i,o,n={};for(o in e)n[o]=r.style[o],r.style[o]=e[o];i=t.call(r);for(o in e)r.style[o]=n[o];return i},ZU=new RegExp(Vd.join("|"),"i");(function(){function r(){if(c){l.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",c.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",Bh.appendChild(l).appendChild(c);var d=window.getComputedStyle(c);t=d.top!=="1%",s=e(d.marginLeft)===12,c.style.right="60%",n=e(d.right)===36,i=e(d.width)===36,c.style.position="absolute",o=e(c.offsetWidth/3)===12,Bh.removeChild(l),c=null}}function e(d){return Math.round(parseFloat(d))}var t,i,o,n,a,s,l=Go.createElement("div"),c=Go.createElement("div");c.style&&(c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",Vo.clearCloneStyle=c.style.backgroundClip==="content-box",Y.extend(Vo,{boxSizingReliable:function(){return r(),i},pixelBoxStyles:function(){return r(),n},pixelPosition:function(){return r(),t},reliableMarginLeft:function(){return r(),s},scrollboxSize:function(){return r(),o},reliableTrDimensions:function(){var d,u,h,g;return a==null&&(d=Go.createElement("table"),u=Go.createElement("tr"),h=Go.createElement("div"),d.style.cssText="position:absolute;left:-11111px;border-collapse:separate",u.style.cssText="border:1px solid",u.style.height="1px",h.style.height="9px",h.style.display="block",Bh.appendChild(d).appendChild(u).appendChild(h),g=window.getComputedStyle(u),a=parseInt(g.height,10)+parseInt(g.borderTopWidth,10)+parseInt(g.borderBottomWidth,10)===u.offsetHeight,Bh.removeChild(d)),a}}))})();oP=["Webkit","Moz","ms"],vP=Go.createElement("div").style,nP={};t4=/^(none|table(?!-c[ea]).+)/,sP=/^--/,r4={position:"absolute",visibility:"hidden",display:"block"},lP={letterSpacing:"0",fontWeight:"400"};Y.extend({cssHooks:{opacity:{get:function(r,e){if(e){var t=Hf(r,"opacity");return t===""?"1":t}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,gridArea:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnStart:!0,gridRow:!0,gridRowEnd:!0,gridRowStart:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(r,e,t,i){if(!(!r||r.nodeType===3||r.nodeType===8||!r.style)){var o,n,a,s=Oc(e),l=sP.test(e),c=r.style;if(l||(e=aP(s)),a=Y.cssHooks[e]||Y.cssHooks[s],t!==void 0){if(n=typeof t,n==="string"&&(o=tv.exec(t))&&o[1]&&(t=JU(r,e,o),n="number"),t==null||t!==t)return;n==="number"&&!l&&(t+=o&&o[3]||(Y.cssNumber[s]?"":"px")),!Vo.clearCloneStyle&&t===""&&e.indexOf("background")===0&&(c[e]="inherit"),(!a||!("set"in a)||(t=a.set(r,t,i))!==void 0)&&(l?c.setProperty(e,t):c[e]=t)}else return a&&"get"in a&&(o=a.get(r,!1,i))!==void 0?o:c[e]}},css:function(r,e,t,i){var o,n,a,s=Oc(e),l=sP.test(e);return l||(e=aP(s)),a=Y.cssHooks[e]||Y.cssHooks[s],a&&"get"in a&&(o=a.get(r,!0,t)),o===void 0&&(o=Hf(r,e,i)),o==="normal"&&e in lP&&(o=lP[e]),t===""||t?(n=parseFloat(o),t===!0||isFinite(n)?n||0:o):o}});Y.each(["height","width"],function(r,e){Y.cssHooks[e]={get:function(t,i,o){if(i)return t4.test(Y.css(t,"display"))&&(!t.getClientRects().length||!t.getBoundingClientRect().width)?xP(t,r4,function(){return cP(t,e,o)}):cP(t,e,o)},set:function(t,i,o){var n,a=rv(t),s=!Vo.scrollboxSize()&&a.position==="absolute",l=s||o,c=l&&Y.css(t,"boxSizing",!1,a)==="border-box",d=o?zk(t,e,o,c,a):0;return c&&s&&(d-=Math.ceil(t["offset"+e[0].toUpperCase()+e.slice(1)]-parseFloat(a[e])-zk(t,e,"border",!1,a)-.5)),d&&(n=tv.exec(i))&&(n[3]||"px")!=="px"&&(t.style[e]=i,i=Y.css(t,e)),CP(t,i,d)}}});Y.cssHooks.marginLeft=wP(Vo.reliableMarginLeft,function(r,e){if(e)return(parseFloat(Hf(r,"marginLeft"))||r.getBoundingClientRect().left-xP(r,{marginLeft:0},function(){return r.getBoundingClientRect().left}))+"px"});Y.each({margin:"",padding:"",border:"Width"},function(r,e){Y.cssHooks[r+e]={expand:function(t){for(var i=0,o={},n=typeof t=="string"?t.split(" "):[t];i<4;i++)o[r+Vd[i]+e]=n[i]||n[i-2]||n[0];return o}},r!=="margin"&&(Y.cssHooks[r+e].set=CP)});Y.fn.extend({css:function(r,e){return Wf(this,function(t,i,o){var n,a,s={},l=0;if(Array.isArray(i)){for(n=rv(t),a=i.length;l<a;l++)s[i[l]]=Y.css(t,i[l],!1,n);return s}return o!==void 0?Y.style(t,i,o):Y.css(t,i)},r,e,arguments.length>1)}});(function(){var r=Go.createElement("input"),e=Go.createElement("select"),t=e.appendChild(Go.createElement("option"));r.type="checkbox",Vo.checkOn=r.value!=="",Vo.optSelected=t.selected,r=Go.createElement("input"),r.value="t",r.type="radio",Vo.radioValue=r.value==="t"})();Vo.focusin="onfocusin"in window;dP=/^(?:focusinfocus|focusoutblur)$/,pP=function(r){r.stopPropagation()};Y.extend(Y.event,{trigger:function(r,e,t,i){var o,n,a,s,l,c,d,u,h=[t||Go],g=Jw.call(r,"type")?r.type:r,b=Jw.call(r,"namespace")?r.namespace.split("."):[];if(n=u=a=t=t||Go,!(t.nodeType===3||t.nodeType===8)&&!dP.test(g+Y.event.triggered)&&(g.indexOf(".")>-1&&(b=g.split("."),g=b.shift(),b.sort()),l=g.indexOf(":")<0&&"on"+g,r=r[Y.expando]?r:new Y.Event(g,typeof r=="object"&&r),r.isTrigger=i?2:3,r.namespace=b.join("."),r.rnamespace=r.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,r.result=void 0,r.target||(r.target=t),e=e==null?[r]:Y.makeArray(e,[r]),d=Y.event.special[g]||{},!(!i&&d.trigger&&d.trigger.apply(t,e)===!1))){if(!i&&!d.noBubble&&!Uh(t)){for(s=d.delegateType||g,dP.test(s+g)||(n=n.parentNode);n;n=n.parentNode)h.push(n),a=n;a===(t.ownerDocument||Go)&&h.push(a.defaultView||a.parentWindow||window)}for(o=0;(n=h[o++])&&!r.isPropagationStopped();)u=n,r.type=o>1?s:d.bindType||g,c=(wi.get(n,"events")||Object.create(null))[r.type]&&wi.get(n,"handle"),c&&c.apply(n,e),c=l&&n[l],c&&c.apply&&Xw(n)&&(r.result=c.apply(n,e),r.result===!1&&r.preventDefault());return r.type=g,!i&&!r.isDefaultPrevented()&&(!d._default||d._default.apply(h.pop(),e)===!1)&&Xw(t)&&l&&Rc(t[g])&&!Uh(t)&&(a=t[l],a&&(t[l]=null),Y.event.triggered=g,r.isPropagationStopped()&&u.addEventListener(g,pP),t[g](),r.isPropagationStopped()&&u.removeEventListener(g,pP),Y.event.triggered=void 0,a&&(t[l]=a)),r.result}},simulate:function(r,e,t){var i=Y.extend(new Y.Event,t,{type:r,isSimulated:!0});Y.event.trigger(i,null,e)}});Y.fn.extend({trigger:function(r,e){return this.each(function(){Y.event.trigger(r,e,this)})},triggerHandler:function(r,e){var t=this[0];if(t)return Y.event.trigger(r,e,t,!0)}});Vo.focusin||Y.each({focus:"focusin",blur:"focusout"},function(r,e){var t=function(i){Y.event.simulate(e,i.target,Y.event.fix(i))};Y.event.special[e]={setup:function(){var i=this.ownerDocument||this.document||this,o=wi.access(i,e);o||i.addEventListener(r,t,!0),wi.access(i,e,(o||0)+1)},teardown:function(){var i=this.ownerDocument||this.document||this,o=wi.access(i,e)-1;o?wi.access(i,e,o):(i.removeEventListener(r,t,!0),wi.remove(i,e))}}});i4=/\[\]$/;Y.param=function(r,e){var t,i=[],o=function(n,a){var s=Rc(a)?a():a;i[i.length]=encodeURIComponent(n)+"="+encodeURIComponent(s==null?"":s)};if(r==null)return"";if(Array.isArray(r)||r.jquery&&!Y.isPlainObject(r))Y.each(r,function(){o(this.name,this.value)});else for(t in r)Kk(t,r[t],e,o);return i.join("&")};Y.offset={setOffset:function(r,e,t){var i,o,n,a,s,l,c,d=Y.css(r,"position"),u=Y(r),h={};d==="static"&&(r.style.position="relative"),s=u.offset(),n=Y.css(r,"top"),l=Y.css(r,"left"),c=(d==="absolute"||d==="fixed")&&(n+l).indexOf("auto")>-1,c?(i=u.position(),a=i.top,o=i.left):(a=parseFloat(n)||0,o=parseFloat(l)||0),Rc(e)&&(e=e.call(r,t,Y.extend({},s))),e.top!=null&&(h.top=e.top-s.top+a),e.left!=null&&(h.left=e.left-s.left+o),"using"in e?e.using.call(r,h):u.css(h)}};Y.fn.extend({offset:function(r){if(arguments.length)return r===void 0?this:this.each(function(o){Y.offset.setOffset(this,r,o)});var e,t,i=this[0];if(i)return i.getClientRects().length?(e=i.getBoundingClientRect(),t=i.ownerDocument.defaultView,{top:e.top+t.pageYOffset,left:e.left+t.pageXOffset}):{top:0,left:0}},position:function(){if(this[0]){var r,e,t,i=this[0],o={top:0,left:0};if(Y.css(i,"position")==="fixed")e=i.getBoundingClientRect();else{for(e=this.offset(),t=i.ownerDocument,r=i.offsetParent||t.documentElement;r&&(r===t.body||r===t.documentElement)&&Y.css(r,"position")==="static";)r=r.parentNode;r&&r!==i&&r.nodeType===1&&(o=Y(r).offset(),o.top+=Y.css(r,"borderTopWidth",!0),o.left+=Y.css(r,"borderLeftWidth",!0))}return{top:e.top-o.top-Y.css(i,"marginTop",!0),left:e.left-o.left-Y.css(i,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var r=this.offsetParent;r&&Y.css(r,"position")==="static";)r=r.offsetParent;return r||Bh})}});Y.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(r,e){var t=e==="pageYOffset";Y.fn[r]=function(i){return Wf(this,function(o,n,a){var s;if(Uh(o)?s=o:o.nodeType===9&&(s=o.defaultView),a===void 0)return s?s[e]:o[n];s?s.scrollTo(t?s.pageXOffset:a,t?a:s.pageYOffset):o[n]=a},r,i,arguments.length)}});Y.each(["top","left"],function(r,e){Y.cssHooks[e]=wP(Vo.pixelPosition,function(t,i){if(i)return i=Hf(t,e),Uk.test(i)?Y(t).position()[e]+"px":i})});Y.each({Height:"height",Width:"width"},function(r,e){Y.each({padding:"inner"+r,content:e,"":"outer"+r},function(t,i){Y.fn[i]=function(o,n){var a=arguments.length&&(t||typeof o!="boolean"),s=t||(o===!0||n===!0?"margin":"border");return Wf(this,function(l,c,d){var u;return Uh(l)?i.indexOf("outer")===0?l["inner"+r]:l.document.documentElement["client"+r]:l.nodeType===9?(u=l.documentElement,Math.max(l.body["scroll"+r],u["scroll"+r],l.body["offset"+r],u["offset"+r],u["client"+r])):d===void 0?Y.css(l,c,s):Y.style(l,c,d,s)},e,a?o:void 0,a)}})});Y.fn.extend({bind:function(r,e,t){return this.on(r,null,e,t)},unbind:function(r,e){return this.off(r,null,e)},delegate:function(r,e,t,i){return this.on(e,r,t,i)},undelegate:function(r,e,t){return arguments.length===1?this.off(r,"**"):this.off(e,r||"**",t)},hover:function(r,e){return this.mouseenter(r).mouseleave(e||r)}});Y.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(r,e){Y.fn[e]=function(t,i){return arguments.length>0?this.on(e,null,t,i):this.trigger(e)}});o4=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;Y.isArray=Array.isArray;Y.parseJSON=JSON.parse;Y.nodeName=Nh;Y.isFunction=Rc;Y.isWindow=Uh;Y.camelCase=Oc;Y.type=ev;Y.now=Date.now;Y.isNumeric=function(r){var e=Y.type(r);return(e==="number"||e==="string")&&!isNaN(r-parseFloat(r))};Y.trim=function(r){return r==null?"":(r+"").replace(o4,"")};n4=window.jQuery,a4=window.$;Y.noConflict=function(r){return window.$===Y&&(window.$=a4),r&&window.jQuery===Y&&(window.jQuery=n4),Y};typeof noGlobal=="undefined"&&(window.jQuery=window.$=Y);W=Y});function Mi(r,e){wg==null||wg.notify(r,e)}function bb(r,e,t){wg==null||wg.leaveBreadcrumb(r,e,t)}var wg,Fa=__dcg_shared_module_exports__['b'](()=>{});function DF(r,e){if(e!=null){if(typeof r!="string")throw new Error("Must pass a string for an EventHandler name");if(typeof e!="function")throw new Error("Must pass a function for an EventHandler callback");return{bindings:{onMount:t=>{t[r.toLowerCase()]=(i,...o)=>{i&&e.apply(t,[i,...o])}}}}}}var kF=__dcg_shared_module_exports__['b'](()=>{});function nS(r){let e=()=>r;return e.isDCGViewConst=!0,e}function tn(r){return typeof r=="function"&&r.isDCGViewConst}var js=__dcg_shared_module_exports__['b'](()=>{});function aS(r,e,t){return t===void 0?r.removeAttribute(e):r.setAttribute(e,`${t}`)}var kI=__dcg_shared_module_exports__['b'](()=>{});function TF(r,e){let t=e(),i;return tn(e)||(i={onUpdate:o=>{let n=e();n!==t&&(t=n,aS(o,r,n))}}),{value:t,bindings:i}}var IF=__dcg_shared_module_exports__['b'](()=>{js();kI()});function MF(r){return r.startsWith("on")&&r[2]===r[2].toUpperCase()}var AF=__dcg_shared_module_exports__['b'](()=>{});function GF(r,e){TI[r]=e}function VF(r){return TI.hasOwnProperty(r)}function PF(r,e){let t=TI[r];return t(e)}var TI,II=__dcg_shared_module_exports__['b'](()=>{TI={}});function sS(r,e,t){let i=r._bindings[e];r._bindings[e]=i?[...i,t]:[t]}function Js(r,e){var i;((i=r._bindings[e])!=null?i:[]).forEach(o=>o())}var Ob=__dcg_shared_module_exports__['b'](()=>{});function LF(r){_b.push(r)}function OF(r){let e=_b.filter(t=>t!==r);_b.length=0,_b.push(...e)}function jd(r,e){try{if(e&&e._isDCGView){r+=` [${e._viewName}]`;let t=e.traceViewHierarchy();t.ancestors.length>0&&(r+=`
View Hierarchy:
${t.formatted}`)}throw new Error(r)}catch(t){console.warn(t),_b.forEach(i=>i(t))}}var _b,Fb=__dcg_shared_module_exports__['b'](()=>{_b=[]});function J6(r,e,t){let i=!1;return(...o)=>{if(i){jd(`${r} is a one-time binding but was called multiple times`,t);return}i=!0,e(...o)}}function X6(r,e,t){let{bindings:i}=t;i&&Object.keys(i).forEach(o=>{let n=i[o];Y6[o]&&(n=n.bind(null,e)),j6[o]&&(n=J6(o,n,r)),sS(r,o,n)})}function Q6(r,e){if(typeof e!="function")throw new Error(`The "${r}" attr must be a function. It is: ${JSON.stringify(e)}`);return VF(r)?PF(r,e):MF(r)?DF(r,e):TF(r,e)}function _F(r,e,t){e&&Object.keys(e).forEach(i=>{let o=Q6(i,e[i]);if(!o)return;let{value:n}=o;n!==void 0&&t.setAttribute(i,n),o.bindings&&X6(r,t,o)})}var Y6,j6,FF=__dcg_shared_module_exports__['b'](()=>{kF();IF();AF();II();Ob();Fb();Y6={onMount:!0,didMount:!0,willUnmount:!0,willUpdate:!0,onUpdate:!0,didUpdate:!0},j6={willMount:!0,onMount:!0,didMount:!0,willUnmount:!0,onUnmount:!0,didUnmount:!0}});function NF(){RF=!0}function BF(r,e,t){var n;if(typeof t!="function")throw new Error("bindText expects a function");let i=(n=t())!=null?n:"",o=document.createTextNode(i);if(RF){let a=document.createElement("span");a.appendChild(o),e.appendChild(a)}else e.appendChild(o);sS(r,"onUpdate",()=>{var s;let a=(s=t())!=null?s:"";i!==a&&(o.nodeValue=a,i=a)})}var RF,MI=__dcg_shared_module_exports__['b'](()=>{Ob();RF=!1});var zF,lS,KF=__dcg_shared_module_exports__['b'](()=>{FF();MI();js();Fb();zF=(r,e)=>{let t=document.createTextNode(e);r.appendChild(t)},lS=class{constructor(e,t,i){this._isDCGElement=!0,this.tagName=e,this.attrs=t,this.children=i,Array.isArray(this.children)&&this.children.forEach(o=>{let n=typeof o;(n==="object"||n==="function")&&(o._parentElement=this)})}renderToDocFrag(e,t){if(this._domNode)throw new Error("Cannot remount a DCGElement");let i=document.createElement(this.tagName);this._domNode=i,_F(t,this.attrs,i),e.appendChild(i),this.children.forEach(o=>{o._isDCGElement?o.renderToDocFrag(i,t):tn(o)?zF(i,o()):typeof o=="function"?BF(t,i,o):(jd("Text should be a const or a getter: "+JSON.stringify(o),t),zF(i,o))})}}});function UF(r,e){r!=null&&(Array.isArray(r)?r.forEach(t=>UF(t,e)):e.push(r))}function va(r,e,...t){let i=[];if(t.forEach(o=>UF(o,i)),typeof r=="string")return new lS(r,e,i);if(r&&r._isDCGViewClass)return new r(e,i)._construct();throw new Error("createElement expects a String or DCGViewClass")}var Ng=__dcg_shared_module_exports__['b'](()=>{KF()});function qF(){let r=this._element;for(;r._isDCGView;)r=r._element;return r._domNode}function HF(r,e){if(e&&e._childViews.push(this),this.__generatedHTMLBefore)throw new Error("Cannot remount a DCGView");this.__generatedHTMLBefore=!0,this._element.renderToDocFrag(r,this),Array.isArray(this._siblingElements)&&this._siblingElements.forEach(t=>t.renderToDocFrag(r,this))}function WF(r,e,t){if(!r||!r._isDCGViewClass)throw new Error("Must pass a DCGView class to be mounted");if(!e||e.nodeType!==1)throw new Error("Must pass an HTMLElement for the node");if(e._mountedDCGView)throw new Error("This node is already mounted by a view");let i=new r(t)._construct(),o=document.createDocumentFragment();return i.renderToDocFrag(o),e.innerHTML="",fs(i),e._mountedDCGView=i,e.appendChild(o),bs(i),ys(i),i}function $F(r){let e=r._mountedDCGView;if(!e)throw new Error("This node is not mounted by a DCGView");xs(e),r.innerHTML="",delete r._mountedDCGView,ws(e),vs(e)}function fs(r){r.willMount&&r.willMount(),Js(r,"willMount"),r._childViews.forEach(fs)}function bs(r){r._isMounted=!0,r.onMount&&r.onMount(),Js(r,"onMount"),r._childViews.forEach(bs)}function ys(r){r.didMount&&r.didMount(),Js(r,"didMount"),r._childViews.forEach(ys)}function xs(r){r.willUnmount&&r.willUnmount(),Js(r,"willUnmount"),r._childViews.forEach(xs)}function ws(r){r._isMounted=!1,r._childViews.forEach(ws),Js(r,"onUnmount"),r.onUnmount&&r.onUnmount()}function vs(r){r._childViews.forEach(vs),Js(r,"didUnmount"),r.didUnmount&&r.didUnmount()}function Wl(r,e){let t=document.createDocumentFragment();return r.renderToDocFrag(t,e),t.firstChild}var Jd=__dcg_shared_module_exports__['b'](()=>{Ob()});function YF(){if(!this._isMounted)return jd("Trying to update view that is not mounted. Ignoring update.",this);this.shouldUpdate&&!this.shouldUpdate()||(this.willUpdate&&this.willUpdate(),Js(this,"willUpdate"),Js(this,"onUpdate"),this.onUpdate&&this.onUpdate(),this.overrideChildUpdates?this.overrideChildUpdates():this._childViews.forEach(r=>r.update()),Js(this,"didUpdate"),this.didUpdate&&this.didUpdate())}var jF=__dcg_shared_module_exports__['b'](()=>{Ob();Fb()});var cS,AI=__dcg_shared_module_exports__['b'](()=>{cS=(r,...e)=>Object.assign(r,...e)});function Hr(r){if(!r)throw new Error("must pass a spec to DCGView.createClass");if(typeof r.template!="function")throw new Error("must pass a template function to DCGView.createClass");function e(t,i){var o,n;this._isDCGView=!0,this._isDCGElement=!0,this._viewName=r.viewName||((n=(o=this.constructor)==null?void 0:o.name)!=null?n:"Anonymous DCGView"),Object.entries(t!=null?t:{}).forEach(([a,s])=>{if(typeof s!="function"&&s!==void 0)throw new Error(`The "${a}" prop must be a function. It is: ${JSON.stringify(s)}`)}),this.props=t!=null?t:{},this.children=i,this._childViews=[],this._bindings={}}e.prototype._construct=function(){var t;if((t=this.init)==null||t.call(this),this._element=this.template(),!this._element||!this._element._isDCGElement)throw new Error("template() must return a DCGElement");return this._element._parentElement=this,this},e.prototype.bindFn=function(t){return t.bind(this)},e.prototype.bindIfMounted=function(t){return this.bindFn(function(...i){if(this._isMounted)return t.apply(this,i)})},e.prototype.traceViewHierarchy=function(){let t=[],i=this._parentElement;for(;i;)t.unshift(i),i=i._parentElement;let o=a=>a._isDCGView&&!(a._isDCGSwitch&&a._parentElement&&a._parentElement._isDCGIf)&&!a._isDCGIfDefinedWrapper&&!a._isDCGSwitchWrapper&&!a._isDCGSwitchUnionWrapper,n=[...t,this].filter(o).map((a,s)=>" ".repeat(s)+"<"+a._viewName+">").join(`
`);return{ancestors:t,formatted:n}},e.prototype.findRootNode=qF,e.prototype.renderToDocFrag=HF,e.prototype.const=nS,e.prototype.spread=cS,e.prototype.createElement=va,e.prototype.update=YF;for(let t in r)if(r.hasOwnProperty(t)){if(e.prototype.hasOwnProperty(t))throw new Error("Cannot override the "+t+"() method");e.prototype[t]=r[t]}return e._isDCGViewClass=!0,e}var Cs=__dcg_shared_module_exports__['b'](()=>{Ng();Jd();jF();js();AI()});function JF(r){let e=r(),t=typeof e;if(t==="string")return e;if(!t||t!=="object")throw new Error(`Unsupported type returned from style getter: ${t}`);return Object.entries(e).filter(([i,o])=>e.hasOwnProperty(i)&&o!==null&&o!==void 0).map(([i,o])=>`${i}:${o}`).join(";")}function XF(r){let e=JF(r),t=tn(r)?void 0:{onUpdate:i=>{let o=JF(r);e!==o&&(aS(i,"style",o),e=o)}};return{value:e,bindings:t}}var QF=__dcg_shared_module_exports__['b'](()=>{js();kI()});function ZF(r){let e=r(),t=typeof e;if(t==="string")return e;if(!t||t!=="object")throw new Error(`Unsupported type returned from class getter: ${t}`);return Object.keys(e).filter(i=>e.hasOwnProperty(i)&&e[i]).join(" ")}function Z6(r,e,t){let i=r.className.replace(eR,"").split(tR),n=e.replace(eR,"").split(tR).reduce((s,l)=>(s[l]=!0,s),{}),a=i.filter(s=>!n.hasOwnProperty(s));return t?`${t} ${a.join(" ")}`.trim():a.join(" ")}function rR(r){let e=ZF(r),t=tn(r)?void 0:{onUpdate:i=>{let o=ZF(r);e!==o&&(i.className=i.className===e?o:Z6(i,e,o),e=o)}};return{value:e,bindings:t}}var eR,tR,iR=__dcg_shared_module_exports__['b'](()=>{js();eR=/^\s+|\s+$/g,tR=/\s+/});function oR(r){return e=>{if(typeof e!="function")throw new Error(`The ${r} attribute expects a function for the value`);if(tn(e))throw new Error(`The ${r} attribute does not expect a const for the value`);return{bindings:{[r]:e}}}}var nR=__dcg_shared_module_exports__['b'](()=>{js()});var aR,sR=__dcg_shared_module_exports__['b'](()=>{aR=r=>{let e=r.length,t=new Array(e),i=new Array(e+1),o=0,n;for(let l=0;l<e;l++){if(r[i[o]]<r[l])n=o+1;else{let c=1,d=o-1;for(;c<=d;){let u=Math.ceil((c+d)/2);r[i[u]]<r[l]?c=u+1:d=u-1}n=c}t[l]=i[n-1],i[n]=l,n>o&&(o=n)}let a=new Array(o),s=i[o];for(let l=o-1;l>=0;l--)a[l]=r[s],s=t[s];return a}});function dS(r,e){let t=e.reduce((l,c,d)=>(l[c]=d,l),{}),i=r.filter(l=>t[l]===void 0),o=r.map(l=>t[l]).filter(l=>l!==void 0),a=aR(o).reduce((l,c)=>(l[e[c]]=!0,l),{}),s=e.reduceRight((l,c,d)=>(a[c]||l.push({key:c,beforeKey:e[d+1]}),l),[]);return{removes:i,inserts:s}}var GI=__dcg_shared_module_exports__['b'](()=>{sR()});function lR(r,e){return va(rH,{items:r,keyFunction:e.key,viewFunction:e.item})}var eH,tH,rH,cR=__dcg_shared_module_exports__['b'](()=>{Cs();GI();Ng();Jd();eH=Hr({viewName:"EachPlaceholder",_isDCGEachPlaceholder:!0,template(){return this.createElement("div",{style:this.const("display: none")})}}),tH=Hr({viewName:"EachWrapper",_isDCGEachWrapper:!0,template(){return this.children[0]}}),rH=Hr({viewName:"Each",_isDCGEach:!0,getKeys(){this._keyToItem={};let r=this.props.items(),e=this.props.keyFunction?r.map(this.props.keyFunction):[...r];if(!this._chosenKeyType&&e.length&&(this._chosenKeyType=typeof e[0],this._chosenKeyType!=="string"&&this._chosenKeyType!=="number"))throw new Error(`The key: ${JSON.stringify(e[0])} is not a string or number`);return e.forEach((t,i)=>{if(typeof t!==this._chosenKeyType)throw new Error(`Keys must be the same type. ${JSON.stringify(t)} is not a ${this._chosenKeyType}`);if(this._keyToItem[t])throw new Error(`The key: ${JSON.stringify(t)} is not unique`);this._keyToItem[t]=r[i]}),e},createViewForKey(r){let e=this._keyToItem[r],t=this.props.viewFunction(e,r),i=t;return i._isDCGView||(i=va(tH,null,t)),this._keyToView[r]=i,i},template(){return this._keyToView={},this._keys=this.getKeys(),this._element=va(eH,null),this._siblingElements=this._keys.map(r=>{let e=this.createViewForKey(r);return e._parentElement=this._element._parentElement,e}),this._element},detachAllRemovedViews(){let r=this._childViews,e=0;for(let t=0;t<r.length;t++){let i=r[t];i._will_be_unmounted_?e++:r[t-e]=i}r.splice(r.length-e,e)},overrideChildUpdates(){let r=this._keys,e=this.getKeys();this._keys=e;let t=this._element.findRootNode().parentNode,i=dS(r,e),o=[];for(let a=i.removes.length-1;a>=0;a--){let s=i.removes[a],l=this._keyToView[s];xs(l),delete this._keyToView[s],l._will_be_unmounted_=!0,t.removeChild(l.findRootNode()),o.push(l)}o.length>0&&(this.detachAllRemovedViews(),o.forEach(ws),o.forEach(vs));let n=[];for(let a=i.inserts.length-1;a>=0;a--){let s=i.inserts[a].key;if(s in this._keyToView)continue;let l=this.createViewForKey(s);Wl(l,this),n.push(l)}n.forEach(fs),i.inserts.forEach(a=>{let s=this._keyToView[a.key].findRootNode(),l=a.beforeKey!==void 0?this._keyToView[a.beforeKey].findRootNode():null;t.insertBefore(s,l)}),n.forEach(bs),n.forEach(ys);for(let a=0;a<this._childViews.length-n.length;a++)this._childViews[a].update()}})});var iH,dR,pR=__dcg_shared_module_exports__['b'](()=>{Cs();GI();js();Jd();iH=Hr({viewName:"ForWrapper",template:function(){return this.children[0]}}),dR=Hr({viewName:"For",_isDCGFor:!0,getKeys(){this._keyToItem={};let r=this.props.each();if(!Array.isArray(r))throw new Error("<For each={}> must return an array");let e=this.props.key?r.map(this.props.key):[...r];if(!this._chosenKeyType&&e.length&&(this._chosenKeyType=typeof e[0],this._chosenKeyType!=="string"&&this._chosenKeyType!=="number"))throw new Error(`The key: ${JSON.stringify(e[0])} is not a string or number`);return e.forEach((t,i)=>{if(typeof t!==this._chosenKeyType)throw new Error(`Keys must be the same type. ${JSON.stringify(t)} is not a ${this._chosenKeyType}`);if(t in this._keyToItem)throw new Error(`The key: ${JSON.stringify(t)} is not unique`);this._keyToItem[t]=r[i]}),e},createViewForKey(r){let e=this._keyToItem[r],t=this._viewFunction.call(this,e,r),i=t;return i._isDCGView||(i=this.createElement(iH,null,t)),this._keyToView[r]=i,i},template(){if(this._keyToView={},typeof this.props.each!="function")throw new Error("<For each={}> must be a function");if(this.children.length!==1)throw new Error(`<For> expects a single child. You passed ${this.children.length}`);let r=this.children[0];if(!r||!r._isDCGElement)throw new Error(`<For> expects the root node to be a DCGElement. You passed ${JSON.stringify(r)}`);if(r._isDCGView)throw new Error("<For> expects the root node to not be a DCGView. Pass in something like <div> or <span>");if(r.children.length!==1)throw new Error(`<For> expects a root node with a single child. You passed ${r.children.length}`);if(this._viewFunction=r.children[0],this._viewFunction&&this._viewFunction._isDCGElement)throw new Error("<For> expects a function that constructs a DCGElement. You passed a DCGElement directly");if(typeof this._viewFunction!="function"){let t=JSON.stringify(this._viewFunction);throw new Error(`<For> expects a function that constructs a DCGElement. You passed ${t}`)}if(tn(this._viewFunction))throw new Error("<For> expects a function that constructs a DCGElement. You passed a constant");this._keys=this.getKeys();let e=this._keys.map(t=>{let i=this.createViewForKey(t);return i._parentElement=this,i});return r.children=e,r},detachAllRemovedViews(){let r=this._childViews,e=0;for(let t=0;t<r.length;t++){let i=r[t];i._will_be_unmounted_?e++:r[t-e]=i}r.splice(r.length-e,e)},overrideChildUpdates(){let r=this._keys,e=this.getKeys();this._keys=e;let t=this.findRootNode(),i=dS(r,e),o=[];for(let a=i.removes.length-1;a>=0;a--){let s=i.removes[a],l=this._keyToView[s];xs(l),delete this._keyToView[s],l._will_be_unmounted_=!0,t.removeChild(l.findRootNode()),o.push(l)}o.length>0&&(this.detachAllRemovedViews(),o.forEach(ws),o.forEach(vs));let n=[];for(let a=i.inserts.length-1;a>=0;a--){let s=i.inserts[a].key;if(s in this._keyToView)continue;let l=this.createViewForKey(s);Wl(l,this),n.push(l)}n.forEach(fs),i.inserts.forEach(a=>{let s=this._keyToView[a.key].findRootNode(),l=a.beforeKey!==void 0?this._keyToView[a.beforeKey].findRootNode():null;t.insertBefore(s,l)}),n.forEach(bs),n.forEach(ys);for(let a=0;a<this._childViews.length-n.length;a++)this._childViews[a].update()}})});var oH,pS,VI=__dcg_shared_module_exports__['b'](()=>{Cs();js();Jd();oH=Hr({viewName:"SwitchWrapper",_isDCGSwitchWrapper:!0,template(){return this.children[0]}}),pS=Hr({viewName:"Switch",_isDCGSwitch:!0,updateKey(){this._key=this.props.key()},createView(){let r=this._viewFunction(this._key);r=r!=null?r:this.createElement("div",{style:this.const("display: none")});let e=this.createElement(oH,null,r);return e._parentElement=this,e},template(){if(this._key=void 0,typeof this.props.key!="function")throw new Error("<Switch key={}> must be a function");if(this.children.length!==1)throw new Error("<Switch> expects a single child. You passed "+this.children.length);if(this._viewFunction=this.children[0],this._viewFunction&&this._viewFunction._isDCGElement)throw new Error("<Switch> expects a function that constructs a DCGElement. You passed a DCGElement directly");if(typeof this._viewFunction!="function"){let r=JSON.stringify(this._viewFunction);throw new Error("<Switch> expects a function that constructs a DCGElement. You passed "+r)}if(tn(this._viewFunction))throw new Error("<Switch> expects a function that constructs a DCGElement. You passed a constant");return this.updateKey(),this.createView()},overrideChildUpdates(){let r=this._key;this.updateKey();let e=this._key;if(r===e){this._element.update();return}let t=this.findRootNode(),i=document.createTextNode("");t.parentNode.insertBefore(i,t),xs(this._element),this._childViews=[],t.parentNode.removeChild(t),ws(this._element),vs(this._element),this._element=this.createView();let o=Wl(this._element,this);fs(this._element),i.parentNode.insertBefore(o,i),i.parentNode.removeChild(i),bs(this._element),ys(this._element)}})});function uS(r,e){return typeof r=="string"?uR.bind(this,r,e):uR(void 0,r,e)}var nH,aH,uR,PI=__dcg_shared_module_exports__['b'](()=>{Cs();Jd();Ng();nH=Hr({viewName:"SwitchUnionWrapper",_isDCGSwitchUnionWrapper:!0,template(){return this.children[0]}}),aH=Hr({viewName:"SwitchUnion",_isDCGSwitchUnion:!0,updateCase(){this._case=this.props.getCase()},createView(){let r=this.props.buildChildView(this._case);r=r!=null?r:va("div",{style:this.const("display: none")});let e=va(nH,null,r);return e._parentElement=this,e},template(){return this._case=void 0,this.updateCase(),this.createView()},overrideChildUpdates(){let r=this._case;this.updateCase();let e=this._case;if(r===e){this._element.update();return}let t=this.findRootNode(),i=document.createTextNode("");t.parentNode.insertBefore(i,t),xs(this._element),this._childViews=[],t.parentNode.removeChild(t),ws(this._element),vs(this._element),this._element=this.createView();let o=Wl(this._element,this);fs(this._element),i.parentNode.insertBefore(o,i),i.parentNode.removeChild(i),bs(this._element),ys(this._element)}}),uR=(r,e,t)=>va(aH,{getCase(){let i=e();return r?i&&i[r]:i},buildChildView(i){let o=t[i];return o?o(e):void 0}})});var hR,gR=__dcg_shared_module_exports__['b'](()=>{Cs();js();VI();hR=Hr({viewName:"If",_isDCGIf:!0,template(){let{predicate:r}=this.props;if(typeof r!="function")throw new Error("<If predicate={}> must be a function");if(this.children.length!==1)throw new Error(`<If> expects a single child. You passed ${this.children.length}`);let e=this.children[0];if(e&&e._isDCGElement)throw new Error("<If> expects a function that constructs a DCGElement. You passed a DCGElement directly");if(typeof e!="function"){let o=JSON.stringify(e);throw new Error(`<If> expects a function that constructs a DCGElement. You passed ${o}`)}if(tn(e))throw new Error("<If> expects a function that constructs a DCGElement. You passed a constant");let t=()=>!!r(),i=o=>o?e():void 0;return this.createElement(pS,{key:t},i)}})});function mR(r,e){return va(lH,{isDefined(){let t=r();return t!=null},buildChildView(){return e(r)}})}var sH,lH,fR=__dcg_shared_module_exports__['b'](()=>{Cs();Jd();Ng();sH=Hr({viewName:"IfDefinedWrapper",_isDCGIfDefinedWrapper:!0,template(){return this.children[0]}}),lH=Hr({viewName:"IfDefined",_isDCGIfDefined:!0,updateIsDefined(){this._isDefined=this.props.isDefined()},createView(){let r=this._isDefined?this.props.buildChildView():null;r=r!=null?r:this.createElement("div",{style:this.const("display: none")});let e=this.createElement(sH,null,r);return e._parentElement=this,e},template(){return this._isDefined=void 0,this.updateIsDefined(),this.createView()},overrideChildUpdates(){let r=this._isDefined;this.updateIsDefined();let e=this._isDefined;if(r===e){this._element.update();return}let t=this.findRootNode(),i=document.createTextNode("");t.parentNode.insertBefore(i,t),xs(this._element),this._childViews=[],t.parentNode.removeChild(t),ws(this._element),vs(this._element),this._element=this.createView();let o=Wl(this._element,this);fs(this._element),i.parentNode.insertBefore(o,i),i.parentNode.removeChild(i),bs(this._element),ys(this._element)}})});function bR(r,e){let t=uS(()=>r()?"true":"false",e);return t._viewName="IfElse",t}var yR=__dcg_shared_module_exports__['b'](()=>{PI()});var xR,wR=__dcg_shared_module_exports__['b'](()=>{Cs();xR=Hr({viewName:"Textarea",computeValue(){let r=this.props.value();return r==null?"":`${r}`},template(){let{value:r,onInput:e,disabled:t}=this.props;if(!r)throw new Error('<Textarea> expects a "value={}" prop');if(!e)throw new Error('<Textarea> expects an "onInput={}" prop');let i={...this.props,onInput:(o=>{this.props.onInput(o.target.value),this._isMounted&&this.update()}).bind(this)};return t&&(i.disabled=()=>t()?!0:void 0),delete i.value,this.createElement("textarea",i,this.const(this.computeValue()))},didUpdate(){this.rootDOM||(this.rootDOM=this.findRootNode());let r=this.computeValue();this.rootDOM.value!==r&&(this.rootDOM.value=r)}})});var vR,CR=__dcg_shared_module_exports__['b'](()=>{Cs();vR=Hr({viewName:"Input",computeValue(){let r=this.props.value();return r==null?"":`${r}`},template(){let{value:r,onInput:e,onEnterPressed:t,disabled:i}=this.props;if(!r)throw new Error('<Input> expects a "value={}" prop');if(!e)throw new Error('<Input> expects an "onInput={}" prop');let o={...this.props,value:this.const(this.computeValue()),onInput:(n=>{e(n.target.value),this._isMounted&&this.update()}).bind(this)};return t&&(o.onKeypress=n=>{n.which===13&&t()}),i&&(o.disabled=()=>i()?!0:void 0),o.hasOwnProperty("tabindex")||(o.tabindex=()=>i&&i()?"-1":"0"),this.createElement("input",o)},didUpdate(){this.rootDOM||(this.rootDOM=this.findRootNode());var r=this.computeValue();this.rootDOM.value!==r&&(this.rootDOM.value=r)}})});var SR,ER=__dcg_shared_module_exports__['b'](()=>{Cs();SR=Hr({viewName:"Checkbox",computeChecked(){return!!this.props.checked()},template(){if(!this.props.checked)throw new Error('<Checkbox> expects a "checked={}" prop');if(!this.props.onChange)throw new Error('<Checkbox> expects an "onChange={}" prop');let r={...this.props,type:this.const("checkbox"),checked:this.const(this.computeChecked()?"checked":void 0),onChange:(e=>{this.props.onChange(e.target.checked),this._isMounted&&this.update()}).bind(this)};return this.createElement("input",r)},didUpdate(){this.rootDOM||(this.rootDOM=this.findRootNode());let r=this.computeChecked();this.rootDOM.checked!==r&&(this.rootDOM.checked=r)}})});var LI={};__dcg_shared_module_exports__['d'](LI,{Checkbox:()=>SR,Each:()=>lR,For:()=>dR,If:()=>hR,IfDefined:()=>mR,IfElse:()=>bR,Input:()=>vR,Switch:()=>pS,SwitchUnion:()=>uS,Textarea:()=>xR});var DR=__dcg_shared_module_exports__['b'](()=>{cR();pR();VI();PI();gR();fR();yR();wR();CR();ER()});var kR,TR=__dcg_shared_module_exports__['b'](()=>{Cs();kR=Hr({template(){}})});var hS,Xs,IR=__dcg_shared_module_exports__['b'](()=>{Ng();Cs();Jd();AI();js();II();QF();iR();nR();DR();Fb();MI();TR();hS={createElement:va,createClass:Hr,mountToNode:WF,unmountFromNode:$F,spread:cS,const:nS,isConst:tn,addCustomAttribute:GF,Components:LI,addWarningHandler:LF,removeWarningHandler:OF,_warn:jd,enableSpanWrapping:NF,Class:kR};hS.addCustomAttribute("style",XF);hS.addCustomAttribute("class",rR);["willMount","onMount","didMount","willUnmount","onUnmount","didUnmount","willUpdate","onUpdate","didUpdate"].forEach(r=>hS.addCustomAttribute(r,oR(r)));Xs=hS});function Rb(r,e){let i=new RegExp("[?|&]"+e+"=([^&;]+?)(&|#|;|$)").exec(r);return i?decodeURIComponent(i[1].replace(/\+/g,"%20")):null}function cH(r,e){return new RegExp("[?|&]"+e+"(=|&|;|$)").test(r)}function dH(r,e,t){if(e!==encodeURIComponent(e))throw new Error("Programming error: parameter name should be URL-safe without encoding.");let i=encodeURIComponent(t);if(r.length){let o=r.split("#"),n=/\?/.test(r)?`${o[0]}&${e}=${i}`:`${o[0]}?${e}=${i}`;return o[1]!==void 0?`${n}#${o[1]}`:n}else return`?${e}=${i}`}function pH(r,e,t){let o=new RegExp("([?|&])"+e+"=([^&;]+?)(&|#|;|$)").exec(r);if(!o)return r;let n=o[1],a=o[2],s=`${n}${e}=${a}`,l=encodeURIComponent(t),c=`${n}${e}=${l}`;return r.replace(s,c)}function MR(r,e,t){return cH(r,e)?pH(r,e,t):dH(r,e,t)}var gS=__dcg_shared_module_exports__['b'](()=>{});function bH(r){let e=mH.exec(r);if(e){let t=e[1];return!fH.test(t)}return!1}function mS(r,e){let t=Ao(),i="";return e!==void 0?i=e:i=t.lang?""+t.lang:"",r===""||i===""||hH.test(r)||gH.test(r)||bH(r)?r:MR(r,"lang",i)}var hH,gH,mH,fH,AR=__dcg_shared_module_exports__['b'](()=>{Pc();gS();hH=/lang=[A-Za-z]+/,gH=/(cl|learn|help).desmos.com/,mH=/^(?:https?:)?(?:\/\/)?([^\s\/\?]+)/i,fH=/(^desmos\.com$)|(\.desmos.com$)/});var GR=__dcg_shared_module_exports__['b'](()=>{});var $=__dcg_shared_module_exports__['c']((fne,VR)=>{IR();kt();Fa();AR();GR();Xs.addWarningHandler(r=>Mi(r));Xs.addCustomAttribute("href",function(r){let e=mS(r()),t={value:`${mS(r())}`,bindings:{onMount(i){if(!i.matches("a")&&!i.matches("use"))throw new Error("Cannot have an href on a non-link element.")}}};return t.bindings.onUpdate=function(i){let o=mS(r());e!==o&&(e=o,i.setAttribute("href",o))},t});Xs.addCustomAttribute("onTap",r=>({value:"",bindings:{onMount(e){W(e).on("dcg-tap",r)}}}));Xs.addCustomAttribute("ignoreRealClick",r=>({bindings:{onMount(e){W(e).on("click",function(t){r()&&t.preventDefault()})}}}));Xs.addCustomAttribute("onTapStart",r=>({bindings:{onMount(e){W(e).on("dcg-tapstart",r)}}}));Xs.addCustomAttribute("onTapMove",r=>({bindings:{onMount(e){W(e).on("dcg-tapmove",r)}}}));Xs.addCustomAttribute("onTapEnd",r=>({bindings:{onMount(e){W(e).on("dcg-tapend",r)}}}));Xs.addCustomAttribute("onLongHold",r=>({bindings:{onMount(e){W(e).on("dcg-longhold",r)}}}));Xs.addCustomAttribute("manageFocus",function(r){return r()===void 0?{}:{bindings:{onMount(e){r().shouldBeFocused()&&e.focus(),e.onfocus=function(t){r().shouldBeFocused()||r().onFocusedChanged(!0,t)},e.onblur=function(t){r().shouldBeFocused()&&r().onFocusedChanged(!1,t)}},onUpdate(e){let t=r().shouldBeFocused(),i=document.activeElement===e;t&&!i?e.focus():i&&!t&&e.blur()},willUnmount(e){e.onfocus=null,e.onblur=null}}}});VR.exports=Xs});var xK=__dcg_shared_module_exports__['c']((vPe,yK)=>{yK.exports={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0}});var vK=__dcg_shared_module_exports__['c']((CPe,wK)=>{var MJ=/([\w-]+)|=|(['"])([.\s\S]*?)\2/g,AJ=xK();wK.exports=function(r){var e=0,t,i=!0,o={type:"tag",name:"",voidElement:!1,attrs:{},children:[]};return r.replace(MJ,function(n){if(n==="="){i=!0,e++;return}i?e===0?((AJ[n]||r.charAt(r.length-2)==="/")&&(o.voidElement=!0),o.name=n):(o.attrs[t]=n.replace(/^['"]|['"]$/g,""),t=void 0):(t&&(o.attrs[t]=t),t=n),e++,i=!1}),o}});var SK=__dcg_shared_module_exports__['c']((SPe,CK)=>{var GJ=/(?:<!--[\S\s]*?-->|<(?:"[^"]*"['"]*|'[^']*'['"]*|[^'">])+>)/g,VJ=vK(),PJ=Object.create?Object.create(null):{};function y1(r,e,t,i,o){var n=e.indexOf("<",i),a=e.slice(i,n===-1?void 0:n);/^\s*$/.test(a)&&(a=" "),(!o&&n>-1&&t+r.length>=0||a!==" ")&&r.push({type:"text",content:a})}CK.exports=function(e,t){t||(t={}),t.components||(t.components=PJ);var i=[],o,n=-1,a=[],s={},l=!1;return e.replace(GJ,function(c,d){if(l){if(c!=="</"+o.name+">")return;l=!1}var u=c.charAt(1)!=="/",h=c.indexOf("<!--")===0,g=d+c.length,b=e.charAt(g),C;u&&!h&&(n++,o=VJ(c),o.type==="tag"&&t.components[o.name]&&(o.type="component",l=!0),!o.voidElement&&!l&&b&&b!=="<"&&y1(o.children,e,n,g,t.ignoreWhitespace),s[o.tagName]=o,n===0&&i.push(o),C=a[n-1],C&&C.children.push(o),a[n]=o),(h||!u||o.voidElement)&&(h||n--,!l&&b!=="<"&&b&&(C=n===-1?i:a[n].children,y1(C,e,n,g,t.ignoreWhitespace)))}),!i.length&&e.length&&y1(i,e,0,0,t.ignoreWhitespace),i}});var kK=__dcg_shared_module_exports__['c']((EPe,DK)=>{function LJ(r){var e=[];for(var t in r)e.push(t+'="'+r[t]+'"');return e.length?" "+e.join(" "):""}function EK(r,e){switch(e.type){case"text":return r+e.content;case"tag":return r+="<"+e.name+(e.attrs?LJ(e.attrs):"")+(e.voidElement?"/>":">"),e.voidElement?r:r+e.children.reduce(EK,"")+"</"+e.name+">"}}DK.exports=function(r){return r.reduce(function(e,t){return e+EK("",t)},"")}});var IK=__dcg_shared_module_exports__['c']((DPe,TK)=>{TK.exports={parse:SK(),stringify:kK()}});var $V;function _U(r){$V=r(__dcg_shared_module_exports__['a'])}_U(function(r){function e(){window.consoleOverride=!0;var i=window.console.log;window.console.log=function(){for(var o=[],n=0;n<arguments.length;n++)o.push(arguments[n]);i.apply(window.console,[].concat([o.join(" ")],o))}}var t={ready:function(){try{window.TestBridge=t,parent.USING_SELENIUM&&e()}catch(i){}}};return t});var{ready:cQ}=$V;var OQ=__dcg_shared_module_exports__['e'](YV());Pc();var xQ=navigator.userAgent.match(/MSIE 8.0/i)!==null,wQ=navigator.userAgent.match(/MSIE 9.0/i)!==null,JV=navigator.userAgent.match(/MSIE/i)!==null||navigator.userAgent.match(/Trident/i)!==null&&navigator.userAgent.match(/rv:11/i)!==null,vQ=navigator.userAgent.match(/Edge/i)!==null,La=navigator.userAgent.match(/iPad/i)!==null,_k=navigator.userAgent.match(/Mobile|Android/i)!==null,qf=navigator.userAgent.match(/Android/i)!==null,Ml=navigator.userAgent.match(/(iPad|iPhone|iPod)/i)!==null||navigator.platform==="MacIntel"&&navigator.maxTouchPoints>1,CQ=navigator.userAgent.match(/Chrome/i)!==null,Hw=navigator.userAgent.match(/Firefox/i)!==null,XV=navigator.userAgent.match(/^((?!chrome|android).)*safari/i)!==null,xi=navigator.platform.match(/(Mac|iPhone|iPod|iPad)/i)!==null,QV=navigator.platform.match(/(Win32)/i)!==null,ZV=navigator.userAgent.match(/Touch/i)!==null,SQ=navigator.userAgent.match(/Kindle/i)!==null||navigator.userAgent.match(/Silk/i)!==null,EQ=navigator.userAgent.match(/KeyWeb/i)!==null,Lc=window.parent!==window;var Ww=Ml||qf||navigator.userAgent.match(/webOS/i)||navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/Windows Phone/i)||Ao().hasOwnProperty("forceTouchDevice");var tu=(()=>{let r=navigator.appVersion.match(/OS (\d+)_(\d+)_?(\d+)?/);return r?[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3]||"0",10)]:null})(),DQ=(()=>{let r=navigator.appVersion.match(/OS X (\d+)_(\d+)_?(\d+)?/);return r?[parseInt(r[1],10),parseInt(r[2],10),parseInt(r[3]||"0",10)]:null})(),kQ=(()=>{let r=navigator.appVersion.match(/Chrom(e|ium)\/([0-9]+)\.([0-9]+)\.?([0-9]+)?/);return r?[parseInt(r[2],10),parseInt(r[3],10),parseInt(r[4]||"0",10)]:null})(),$w=!(!("inputMode"in document.createElement("textarea"))||Ml&&tu&&tu[0]<15),TQ=(()=>{let r=document.createElement("canvas");return!!(r.getContext&&r.getContext("2d"))})(),eP=window.matchMedia("(prefers-reduced-motion: reduce)").matches||document.location.search.indexOf("prefersReducedMotion")>=0,tP=()=>document.createElement("video"),IQ=(()=>{let r=tP();return r.canPlayType&&!!r.canPlayType('video/webm; codecs="vp8, vorbis"')})(),MQ=(async()=>{let r=Ao().autoplay;if(r===!0||r==="true")return!0;if(r==="false")return!1;let e=tP();e.src="data:video/mp4;base64,AAAAIGZ0eXBpc29tAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAAAu1tZGF0AAACrQYF//+p3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE1NSByMjkwMSA3ZDBmZjIyIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxOCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTMgbG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRlcmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJfcHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD00MCByYz1jcmYgbWJ0cmVlPTEgY3JmPTI4LjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IGlwX3JhdGlvPTEuNDAgYXE9MToxLjAwAIAAAAAwZYiEAD//8m+P5OXfBeLGOfKE3xkODvFZuBflHv/+VwJIta6cbpIo4ABLoKBaYTkTAAAC7m1vb3YAAABsbXZoZAAAAAAAAAAAAAAAAAAAA+gAAAPoAAEAAAEAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIYdHJhawAAAFx0a2hkAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAPoAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAQAAAAACgAAAAWgAAAAAAJGVkdHMAAAAcZWxzdAAAAAAAAAABAAAD6AAAAAAAAQAAAAABkG1kaWEAAAAgbWRoZAAAAAAAAAAAAAAAAAAAQAAAAEAAVcQAAAAAAC1oZGxyAAAAAAAAAAB2aWRlAAAAAAAAAAAAAAAAVmlkZW9IYW5kbGVyAAAAATttaW5mAAAAFHZtaGQAAAABAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAAD7c3RibAAAAJdzdHNkAAAAAAAAAAEAAACHYXZjMQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAACgAFoASAAAAEgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj//wAAADFhdmNDAWQACv/hABhnZAAKrNlCjfkhAAADAAEAAAMAAg8SJZYBAAZo6+JLIsAAAAAYc3R0cwAAAAAAAAABAAAAAQAAQAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAEAAAABAAAAFHN0c3oAAAAAAAAC5QAAAAEAAAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1kaXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTguMTIuMTAw",e.muted=!0,e.playsInline=!0,e.style.display="none";let t=await new Promise(i=>{document.readyState!=="loading"?i(document.body):document.addEventListener("DOMContentLoaded",()=>i(document.body))});t.appendChild(e);try{await e.play()}catch(i){return!1}finally{t.removeChild(e)}return!0})(),jV,Yw=(jV=window.matchMedia("(forced-colors: active)"))==null?void 0:jV.matches;kt();var SP=["exp|exponent ln|natural-log log","total length count mean median quantile quartile nCr nPr stats","stdev|standard-deviation stddev|standard-deviation","stdDev|standard-deviation stdevp|standard-deviation-population","stddevp|standard-deviation-population stdDevP|standard-deviation-population mad var|variance","varp|variance-population variance cov|co-variance covp|co-variance-population corr|correlation spearman","lcm mcm gcd mcd gcf mod ceil|ceiling floor round abs|absolute-value min max sign|signum signum sgn","sin|sine cos|cosine tan|tangent csc|co-secant sec|secant cot|co-tangent","sinh|hyperbolic-sine cosh|hyperbolic-cosine tanh|hyperbolic-tangent csch|hyperbolic-co-secant","sech|hyperbolic-secant coth|hyperbolic-co-tangent","arcsin|arc-sine arccos|arc-cosine arctan|arc-tangent arccsc|arc-co-secant arcsec|arc-secant","arccot|arc-co-tangent","arcsinh|hyperbolic-arc-sine arccosh|hyperbolic-arc-cosine arctanh|hyperbolic-arc-co-tangent","arccsch|hyperbolic-arc-co-secant arcsech|hyperbolic-arc-secant","arccoth|hyperbolic-arc-co-tangent","arsinh|hyperbolic-ar-sine arcosh|hyperbolic-ar-cosine artanh|hyperbolic-ar-co-tangent","arcsch|hyperbolic-ar-co-secant arsech|hyperbolic-ar-secant","arcoth|hyperbolic-ar-co-tangent","polygon","distance midpoint","sort shuffle join unique","erf|error-function","TTest|t-test ttest|t-test TScore|t-score tscore|t-score","iTTest|independent-t-test ittest|independent-t-test IndependentTTest","TScore|t-score Tscore|t-score tscore|t-score","normaldist|normal-distribution tdist|t-distribution poissondist|poisson-distribution","binomialdist|binomial-distribution","uniformdist|uniform-distribution","pdf cdf random inverseCdf inversecdf","histogram dotplot boxplot","pdf cdf","rgb hsv","for","width height","with"].join(" "),s4=["det|determinant","inv|inverse","transpose","rref|reduced-row-echelon-form","trace"].join(" ");SP+=" "+s4;var l4="alpha beta sqrt theta phi rho pi tau nthroot cbrt sum prod integral percent infinity infty cross";function Al(r){r||(r={});let e=[l4];return r.disallowAns||e.push("ans"),r.disallowFrac||e.push("frac"),r.additionalCommands&&(e=e.concat(r.additionalCommands)),e.join(" ")}function Gl(r){r||(r={});let e=SP;return r.additionalOperators&&r.additionalOperators.length&&(e=`${e} ${r.additionalOperators.join(" ")}`),r.includeGeometryFunctions&&(e+=" "+Object.keys(__dcg_shared_module_exports__['g']).join(" ")),r.include3DFunctions&&(e+=" "+Object.keys(__dcg_shared_module_exports__['h']).join(" ")),e}function qh(){return"for with"}var Vl=function(r){if(!r)return;let e=r.getBoundingClientRect();return{top:e.top+window.scrollY,left:e.left+window.scrollX}},Wn=function(r,e){Object.assign(r.style,e)};function ru(r){return!!(r&&(r.offsetWidth||r.offsetHeight||r.getClientRects().length))}function EP(r){if(document.readyState!=="loading")r();else{var e=function(){document.removeEventListener("DOMContentLoaded",e),r()};document.addEventListener("DOMContentLoaded",e)}}var DP=window.MathQuill.noConflict().getInterface(3);DP.config({leftRightIntoCmdGoes:"up",sumStartsWithNEquals:!0,supSubsRequireOperand:!0,charsThatBreakOutOfSupSub:"+-=<>*",autoCommands:Al(),autoSubscriptNumerals:!0,restrictMismatchedBrackets:!0,typingPercentWritesPercentOf:!0,substituteTextarea:function(){if(!$w&&(Ml||qf)){let e=document.createElement("span");return e.classList.add("dcg-mathquill-input-span"),e.setAttribute("tabindex","0"),e.setAttribute("role","textbox"),Wn(e,{display:"inline-block",height:"1px",width:"1px"}),e}if(QV&&ZV){let e=document.createElement("textarea");return e.setAttribute("readonly",""),e.setAttribute("inputmode","none"),e.setAttribute("autocorrect","off"),e.setAttribute("autocapitalize","none"),e.setAttribute("spellcheck","false"),e.setAttribute("autocomplete","off"),W(e).on("keydown",function(){this.readOnly=!1,this.select()}).on("blur",function(){this.readOnly=!0}),e}let r=document.createElement("textarea");return r.setAttribute("inputmode","none"),r.setAttribute("autocorrect","off"),r.setAttribute("autocapitalize","none"),r.setAttribute("spellcheck","false"),r.setAttribute("autocomplete","off"),r},autoOperatorNames:Gl(),infixOperatorNames:qh(),quietEmptyDelimiters:"( [",resetCursorOnBlur:!0,enableDigitGrouping:!0,disableAutoSubstitutionInSubscripts:!0,interpretTildeAsSim:!0});var Pl=DP;Pc();var co={},ma=Ao();if(typeof Desmos!="undefined"&&Desmos.config)for(iv in Desmos.config)Desmos.config.hasOwnProperty(iv)&&(ma[iv]=Desmos.config[iv]);var iv,Hs=function(r){return ma.hasOwnProperty(r)},Tt=function(r){co[r]=Hs(r)},qr=function(r){co[r]=!Hs("no"+r)};Tt("testing");Tt("maintenance");Tt("disableScrollFix");Tt("nativeOnscreenKeypad");Tt("hidden");Tt("disableMouseInteractions");Tt("advancedStyling");Tt("outofdom");Tt("beta3d");ma.lang&&(co.language=ma.lang);ma.fontSize&&(co.fontSize=ma.fontSize);ma.backgroundColor&&(co.backgroundColor="#"+ma.backgroundColor);ma.textColor&&(co.textColor="#"+ma.textColor);co.no_navigation_warning=Hs("noconcat")||Hs("testing");co.previewMessage="You're previewing some new accessibility features.";co.previewFeedbackUrl="mailto:feedback@desmos.com";var d4=location&&location.hostname==="preview.desmos.com";co.previewMode=Hs("previewMode")||d4;Tt("lockViewport");Tt("authorFeatures");Tt("degreeMode");Tt("clearIntoDegreeMode");Tt("plaidMode");Tt("wireframe");Tt("editOnWeb");Tt("crossOriginSaveTest");Tt("showResetButtonOnGraphpaper");Tt("transparentBackground");Tt("forceLogModeRegressions");Tt("defaultLogModeRegressions");qr("links");qr("trace");qr("zoomFit");Tt("expressionsCollapsed");Tt("invertedColors");Tt("projectorMode");qr("images");qr("folders");qr("settingsMenu");qr("expressionsTopbar");qr("zoomButtons");qr("keypad");qr("graphpaper");qr("expressions");qr("branding");qr("pointsOfInterest");qr("plotSingleVariableImplicitEquations");qr("plotImplicits");qr("plotInequalities");qr("notes");qr("sliders");Tt("pauseWhenOffscreen");Tt("worksheetSVG");qr("brailleControls");Tt("audioTraceKeypad");Tt("audioTraceSimult");qr("audio");Tt("sciKeypad");Tt("4fnKeypad");Tt("ans");Hs("braille")&&(co.braille=!0);qr("qwertyKeyboard");Tt("restrictedFunctions");Tt("forceEnableGeometryFunctions");qr("functionDefinition");Tt("singleExpression");Tt("restrictedEditing");Tt("replaceCommaWith10Exp");Tt("replaceRoundWithReciprocal");Hs("typingAsteriskWritesTimesSymbol")&&(co.typingAsteriskWritesTimesSymbol=!0);qr("substitutions");qr("intervalComprehensions");Tt("recursion");qr("logScales");qr("labels");qr("distributions");co["4fnKeypad"]?Tt("decimalToFraction"):qr("decimalToFraction");Tt("translucentSurfaces");Tt("3d");Tt("disableWorkerOnZoom");Tt("disableLighting");Tt("showPerformanceMeter");Hs("exponentButtonForSquareRoot")?co.additionalFunctions=["exponent"]:ma.additionalFunctions&&typeof ma.additionalFunctions=="string"&&(co.additionalFunctions=ma.additionalFunctions.split(","));ma.disableParentheses&&(co.disableParentheses=!0);Hs("actions")?co.actions=!0:Hs("noactions")?co.actions=!1:Hs("clickableObjects")&&(co.actions=!0);function Hi(r){return co[r]}function kP(){return __dcg_shared_module_exports__['i'](co)}function xr(r,e){var t=/^\s*(\-|\+)?([0-9]+(\.[0-9]+)?)\s*$/;if(t.test(r))return parseFloat(r);var i=Object.create(__dcg_shared_module_exports__['gb']);return i.trigAngleMultiplier=new __dcg_shared_module_exports__['qa'](e?Math.PI/180:1),+__dcg_shared_module_exports__['nc'](r).tryGetConcreteTree(__dcg_shared_module_exports__['hb'],i).asValue()}function Sr(r,e){if(!isFinite(r))return r;if(!isFinite(e))return e;var t=__dcg_shared_module_exports__['ja'](r,e);if(r>0!=e>0||r===0||e===0)return 0;var i=r>0?1:-1,o=Math.abs(r).toExponential().split("e"),n=Math.abs(e).toExponential().split("e"),a=o[0],s=n[0],l=o[1],c=n[1];if(c!==l)return i*Math.pow(10,Math.max(parseFloat(l),parseFloat(c)));if(a[0]!==s[0])return parseFloat(t.toPrecision(1));for(var d=1,u=2;u<Math.min(a.length,s.length)&&(d++,a[u]===s[u]);u++);return parseFloat(t.toPrecision(d))}var TP={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};function Hk(r){let e=[],t=r.toLowerCase();if(t.slice(0,3)==="rgb")try{e=t.replace(/[^\d,]/g,"").split(",").slice(0,3).map(function(o){return parseInt(o,10)})}catch(o){qk(r)}else if(t[0]==="#"){var i=/^#?([a-f\d])([a-f\d])([a-f\d])$/;t=t.replace(i,function(o,n,a,s){return n+n+a+a+s+s});try{e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/.exec(t).slice(1).map(function(o){return parseInt(o,16)})}catch(o){qk(r)}}else e=TP[t];return p4(e)||qk(r),{R:e[0],G:e[1],B:e[2]}}function p4(r){return!__dcg_shared_module_exports__['Qa'](r)||r.length!==3?!1:__dcg_shared_module_exports__['ua'](r,function(e){return Number.isInteger(e)&&e>=0&&e<=255})}function qk(r){throw new Error("Invalid color string: "+r)}function IP(r){var e=r.R/255,t=r.G/255,i=r.B/255,o=[];return o[0]=.49*e+.31*t+.2*i,o[1]=.17697*e+.8124*t+.01063*i,o[2]=.01*t+.99*i,o=__dcg_shared_module_exports__['sa'](o,function(n){return n/.17697}),{X:o[0],Y:o[1],Z:o[2]}}function MP(r){var e=95.047,t=100,i=108.883,o=r.X,n=r.Y,a=r.Z,s=[];return s[0]=116*Yf(n/t)-16,s[1]=500*(Yf(o/e)-Yf(n/t)),s[2]=200*(Yf(n/t)-Yf(a/i)),{L:s[0],a:s[1],b:s[2]}}function Yf(r){var e=.20689655172413793;return r>Math.pow(e,3)?Math.pow(r,1/3):r/(3*e*e)+4/29}function u4(r,e){var t=1,i=.045,o=.015,n=1,a=1,s=1,l=r.L,c=r.a,d=r.b,u=e.L,h=e.a,g=e.b,b=l-u,C=Math.sqrt(c*c+d*d),S=Math.sqrt(h*h+g*g),k=C-S,I=c-h,M=d-g,E=Math.sqrt(I*I+M*M-k*k),A=1+i*C,V=1+o*C,G=b/(t*s),P=k/(n*A),O=E/(a*V);return Math.sqrt(G*G+P*P+O*O)}function h4(r,e){var t=MP(IP(Hk(r))),i=MP(IP(Hk(e)));return u4(t,i)}function AP(r,e){var t=__dcg_shared_module_exports__['sa'](e,function(o){return h4(r,o)}),i=__dcg_shared_module_exports__['za'](t);return e[t.indexOf(i)]}function g4({R:r,G:e,B:t}){return .2126729*(r/255)**2.4+.7151522*(e/255)**2.4+.072175*(t/255)**2.4}var Wk=.342;function $k(r,e=!1,t=Wk){if(typeof r!="string"||!r)return!1;try{let i=Hk(r);return g4(i)>t?!e:e}catch(i){return!1}}function ov(r,e){var t=r.cachedViewState;return e.stripDefaults?__dcg_shared_module_exports__['Qc'](t):t}function m4(r){r.cachedViewState={type:r.type,id:r.id,title:r.title,hidden:r.hidden,readonly:r.readonly,collapsed:r.collapsed,secret:r.secret}}function f4(r){r.cachedUndoRedoDiffState=r.cachedViewState,r.cachedUndoRedoFullState=r.cachedViewState}function VP(r,e){return{...__dcg_shared_module_exports__['i'](__dcg_shared_module_exports__['Pc'](r)),...Ll(e),cachedUndoRedoDiffState:{},cachedUndoRedoFullState:{},cachedViewState:{}}}function PP(r){b4(r),Ol(r),m4(r),f4(r)}function b4(r){var e=r.controller,t=e.getAllSelectedItems();r.collapsedChildIsSelected=r.collapsed&&__dcg_shared_module_exports__['va'](t,i=>i.type!=="folder"&&i.folderId===r.id)}var y4={id:!1,type:!1,hidden:!0,secret:!0,collapsed:!0,title:!0,readonly:!0,disableGraphInteractions:!0};function LP(r,e){__dcg_shared_module_exports__['Kc']({from:e,to:r,props:y4})}function Hh(r,e){r.collapsed=e}function OP(r,e){r.title=e}function _P(r,e){r.hidden=e}function RP(r,e){var t=__dcg_shared_module_exports__['vb'](r),i=__dcg_shared_module_exports__['vb'](e);if(__dcg_shared_module_exports__['oa'](t.n/t.d,r)&&__dcg_shared_module_exports__['oa'](i.n/i.d,e)){var o=__dcg_shared_module_exports__['xb'](t.d,i.d),n=t.n*(o/t.d),a=i.n*(o/i.d),s=a-n;return{nstart:n,nstep:s,lcm:o}}}var NP={folderId:"",secret:!1,readonly:!1},nu={latex:"",color:"",hidden:!1,values:[],points:!0,lines:!1,dragMode:"NONE",pointStyle:"POINT",lineStyle:"SOLID",colorLatex:"",lineOpacity:"",lineWidth:"",pointOpacity:"",pointSize:"",disableGraphInteractions:!1};function nv(r){let e=(r.columns||[]).map(function(t){return{...nu,...t}});return{...NP,...r,columns:e}}function BP(r){return r={...r,columns:r.columns.map(function(e){return __dcg_shared_module_exports__['Hc'](nu,e)})},__dcg_shared_module_exports__['Hc'](NP,r)}function av(r){return{type:"table",id:r.id,columns:r.columns.map(function(e){return{...e,tableId:r.id}})}}function w4(r){return __dcg_shared_module_exports__['ob'](r)!==null}var Yh=w4;function v4(r){return isFinite(r)?__dcg_shared_module_exports__['ab'](r,{digits:8,bigCutoff:1e6,smallCutoff:.001}):"\\mathrm{undefined}"}function C4(r,e,t){let i=r.columnModels[e];i.error=t.error,i.discrete=t.discrete,i.disabled=t.dependent,i.draggable=!t.error&&!t.dependent,i.packedErrors=[],i.computedValues=[];let o=t.values;for(let n=o.length-1;n>=0;n--){let a=o[n];typeof a=="number"?i.computedValues[n]=v4(a):(i.computedValues[n]="",i.packedErrors[n]=a)}}function KP(r){let e=Mn(r);if(!e)return;let t=au(r);if(!t){r.isExpanded||jh(r,!0);return}e.row>=t.min&&e.row<t.max&&jh(r,!0)}function au(r){if(r.isExpanded)return;let e=ls(r);if(!(e<30))return{min:8,max:e-4}}function UP(r,e){let t=r.columnModels[e];return{values:t.values.slice(),dragMode:t.dragMode,hidden:t.hidden,id:t.id,color:t.color,points:t.points,lines:t.lines,pointStyle:t.pointStyle,lineStyle:t.lineStyle,latex:t.latex,colorLatex:t.colorLatex,lineOpacity:t.lineOpacity,lineWidth:t.lineWidth,pointSize:t.pointSize,pointOpacity:t.pointOpacity,disableGraphInteractions:t.disableGraphInteractions}}var S4=0;function E4(){return"table_guid_"+S4++}function D4(r,e,t){r.columnModels[e].values.splice(t,0,"")}function k4(r,e,t){r.columnModels[e].values.splice(t,1)}function qP(r,e,t){let{color:i}=t;(!i||!Yh(i))&&(i=r.controller.getNextColor());let o={...t,type:"table-column",guid:E4(),index:e,error:void 0,table:r,color:i,packedErrors:[],computedValues:[],discrete:void 0,shouldGraph:void 0,disabled:void 0,draggable:void 0};return e===0&&(o.hidden=!0),o}function Xf(r,e){var t=r.table.formula;if(!t)return!1;var i=t.column_data[r.index];return i?!!i[e]:!1}function HP(r){return Xf(r,"color_latex_valid")}function WP(r){return Xf(r,"line_opacity_valid")}function $P(r){return Xf(r,"line_width_valid")}function YP(r){return Xf(r,"point_size_valid")}function jP(r){return Xf(r,"point_opacity_valid")}function JP(r){var e=r.table.formula;if(e){var t=e.column_data[r.index];if(t)return t.color_latex_value}}function XP(r){r.draggingOnGraphpaper?r.preTransientState||(r.preTransientState={columns:Jh(r,{stripDefaults:!1}).columns}):delete r.preTransientState,Ol(r);let e=Yn(r);var t=e&&e.hidden;__dcg_shared_module_exports__['ra'](r.columnModels,function(i){i.shouldGraph=!t&&!i.hidden&&!r.controller.is3dProduct()}),I4(r),M4(r),T4(r)}function ls(r){let e=2,t,i=Mn(r);return i&&i.row>e&&(e=i.row),r.columnModels.forEach(o=>{t=o.disabled?o.computedValues.length:o.values.length+1,t>e&&(e=t)}),e}function Qf(r){return r.columnModels.length}function QP(r,e){r.formula=e;for(let i=0;i<e.column_data.length&&i<Qf(r);i++){let o=e.column_data[i];C4(r,i,o)}let t=r.columnModels[r.columnModels.length-1];t.disabled=!0,t.error=void 0}function Yk(r,e){for(let t=0;t<r.columnModels.length;t++)D4(r,t,e)}function ZP(r,e){let t=au(r);t&&e===t.max-1&&jh(r,!0);for(var i=0;i<r.columnModels.length;i++)k4(r,i,e),i>0&&fL(r.columnModels[i])}function sv(r,e){let t={id:r.controller.generateId(),latex:e?e.latex:"",color:r.controller.getNextColor()},i=e?e.columnIndex:r.columnModels.length,o={...nu,...t,values:[]};var n=qP(r,i,o);r.columnModels.splice(i,0,n);for(var a=i+1;a<r.columnModels.length;a++)r.columnModels[a].index=a}function eL(r,e){r.columnModels.splice(e,1);for(var t=e;t<r.columnModels.length;t++)r.columnModels[t].index=t}function tL(r,e){var t,i=r.columnModels.length,o=[];for(t=0;t<i;t++)o.push("");var n=r.columnModels[0].values;if(e>1){var a=r.controller.isDegreeMode(),s=xr(n[0],a),l=xr(n[1],a);if(isFinite(s)&&isFinite(l)){var c=RP(s,l);if(c){var d=c.nstart,u=d/c.lcm;for(t=0;t<e;t++){var h=xr(n[t],a);if(!__dcg_shared_module_exports__['oa'](h,u))return o;d+=c.nstep,u=d/c.lcm}(""+s).length<8&&(""+l).length<8?o[0]=""+u:o[0]="\\frac{"+d+"}{"+c.lcm+"}"}}}return o}function Zf(r,e,t){for(let n=0;n<r.columnModels.length;n++){let a=r.columnModels[n],s={cellLocation:{column:n,row:0}};if(e(a.latex,"tableHeader",s),!(t!=null&&t.headersOnly)){e(a.colorLatex,"tableColumnColorLatex",s),e(a.pointSize,"tableColumnPointSize",s),e(a.pointOpacity,"tableColumnPointOpacity",s),e(a.lineWidth,"tableColumnLineWidth",s),e(a.lineOpacity,"tableColumnLineOpacity",s);for(var i=r.columnModels[n],o=0;o<i.values.length;o++)i.values[o]&&e(i.values[o],"tableCellValue",{cellLocation:{column:n,row:o+1}})}}}function T4(r){let e=av({type:"table",id:r.id,secret:r.secret,readonly:r.readonly,folderId:r.folderId,columns:r.columnModels.map(function(i){return UP(r,i.index)})});for(var t=0;t<e.columns.length;t++)e.columns[t].hidden=!r.columnModels[t].shouldGraph;r.cachedParsableState=e}function rL(r){return r.slice(0,r.length-1)}function Jh(r,e){let t={...r.cachedViewState,columns:rL(r.cachedViewState.columns)};return e.stripDefaults?BP(t):t}function I4(r){var e=r.columnModels.map(function(t,i){return UP(r,i)});r.cachedViewState={id:r.id,type:r.type,folderId:r.folderId,columns:e,secret:r.secret,readonly:r.readonly}}function jk(r,e){r.draggingOnGraphpaper=e}function M4(r){let e={...r.cachedViewState,columns:rL(r.cachedViewState.columns)};r.cachedUndoRedoFullState=e,r.preTransientState&&(e={...e,...r.preTransientState}),r.cachedUndoRedoDiffState=e}var A4={id:!1,type:!1,columns:!1,folderId:!0,secret:!0,readonly:!0,disableGraphInteractions:!0};function iL(r,e){__dcg_shared_module_exports__['Kc']({from:e,to:r,props:A4}),nL(r,e.columns)}function oL(r,e){let t=__dcg_shared_module_exports__['i'](nv(r)),i={...t,...Ll(e),columnModels:void 0,formula:void 0,draggingOnGraphpaper:!1,cachedViewState:{},cachedParsableState:{},cachedUndoRedoDiffState:{},cachedUndoRedoFullState:{},isExpanded:!1};return nL(i,t.columns),i}function nL(r,e){r.columnModels=e.map(function(t,i){return qP(r,i,t)}),sv(r)}var zP=["x","y","z","u","v","w"];function Jk(r,e,t){for(var i=[],o=Math.min(e.length,zP.length),n=0;n<o;n++)i.push({id:t.generateId(),latex:__dcg_shared_module_exports__['bb'](zP[n]+"_"+r),values:e[n],color:t.getNextColor(),hidden:!1,points:!0,lines:!1,dragMode:"NONE",pointStyle:"POINT",lineStyle:"SOLID",colorLatex:"",lineWidth:"",lineOpacity:"",pointOpacity:"",pointSize:"",disableGraphInteractions:!1});return{id:t.generateId(),type:"table",folderId:"",secret:!1,readonly:!1,columns:i}}function aL(r,e){let t=Jh(r,{stripDefaults:!1});if(!t.columns||!e.columns)return e;for(var i=0;i<e.columns.length;i++){var o=t.columns[i],n=e.columns[i];if(o)for(var a in o)o.hasOwnProperty(a)&&(n.hasOwnProperty(a)||(n[a]=o[a]))}return e}function Mn(r){if(!r)return;let e=r.controller.getFocusLocation();if(e&&e.type==="table"&&e.id===r.id)return e.location}function ro(r,e){for(var t=0;t<r.columnModels.length;t++){let i=r.columnModels[t];if(i.id===e)return i}}function Xk(r,e,t){let i=ro(r,e);i&&(i.points=t,t||(i.dragMode="NONE"))}function sL(r,e,t){let i=ro(r,e);i&&(i.pointStyle=t)}function lL(r,e,t){let i=ro(r,e);i&&(i.lines=t)}function cL(r,e,t){let i=ro(r,e);i&&(i.lineStyle=t)}function lv(r,e,t){let i=ro(r,e);i&&(i.lineWidth=t)}function cv(r,e,t){let i=ro(r,e);i&&(i.lineOpacity=t)}function dv(r,e,t){let i=ro(r,e);i&&(i.pointSize=t)}function pv(r,e,t){let i=ro(r,e);i&&(i.pointOpacity=t)}function dL(r,e,t){let i=ro(r,e);if(i)if(t.type==="inert")i.disableGraphInteractions=t.disableGraphInteractions,t.disableGraphInteractions&&(i.dragMode="NONE");else{let o=t.dragMode;i.dragMode=o,o!=="NONE"&&!i.points&&(i.points=!0),o!=="NONE"&&(i.disableGraphInteractions=!1)}}function pL(r,e,t){dL(r,e,{type:"draggable",dragMode:t})}function uL(r,e,t){let i=ro(r,e);!i||!Yh(t)||(i.color=t,i.colorLatex="")}function uv(r,e,t){let i=ro(r,e);i&&(i.colorLatex=t)}function jh(r,e){r.isExpanded=e}function hL(r,e,t){let i=ro(r,e);i&&(i.hidden=t,t&&mL(r))}function gL(r,e,t){let i=ro(r,e);i&&(i.boundingBoxes=t,mL(r))}function mL(r){let e=[];r.columnModels.forEach(t=>{t.boundingBoxes&&!t.hidden&&(e=e.concat(t.boundingBoxes))}),r.boundingBoxes=e}function hv(r,e){let t=ro(r,e);return t?!t.points&&!t.lines:!0}function Bc(r,e,t){if(e.row===0){let n=r.columnModels[e.column].id,a=ro(r,n);if(!a)return;a.latex=t,e.column>=r.columnModels.length-1&&sv(r);return}for(var i=r.columnModels[e.column],o=i.values.length;o<e.row-1;o++)i.values[o]="";r.columnModels[i.index].values[e.row-1]=t,e.column>0&&fL(r.columnModels[i.index])}function fL(r){for(;r.values.length>0&&!r.values[r.values.length-1];)r.values.pop()}function bL(r,e){return!!r.columnModels[e.column]&&e.row>=0}function yL(r){let e;if(r.values){for(e of r.values)if(e!=="")return!1}if(r.computedValues){for(e of r.computedValues)if(e!=="")return!1}return!0}function xL(r,e){dL(r.table,r.id,{type:"inert",disableGraphInteractions:e})}function gv(r,e,t){let i=r.columnModels[t];return i.disabled?i.computedValues[e]||"":i.values[e]||""}function wL(r){let e=ls(r),t=Qf(r);for(let i=0;i<t;i++)if(gv(r,e-1,i)!=="")return!1;return!0}var vL={folderId:"",text:"",secret:!1,readonly:!1};function CL(r){return{...vL,...r}}function SL(r){return __dcg_shared_module_exports__['Hc'](vL,r)}function Qk(r,e){r.text=e}function EL(r,e){return{...__dcg_shared_module_exports__['i'](CL(r)),...Ll(e),cachedUndoRedoDiffState:{},cachedUndoRedoFullState:{},cachedViewState:{}}}function DL(r){Ol(r),V4(r),P4(r)}var G4={id:!1,type:!1,folderId:!0,text:!0,secret:!0,readonly:!0};function kL(r,e){__dcg_shared_module_exports__['Kc']({from:e,to:r,props:G4})}function mv(r,e){var t=r.cachedViewState;return e.stripDefaults?SL(t):t}function V4(r){r.cachedViewState={type:r.type,id:r.id,folderId:r.folderId,text:r.text,secret:r.secret,readonly:r.readonly}}function P4(r){r.cachedUndoRedoDiffState=r.cachedViewState,r.cachedUndoRedoFullState=r.cachedViewState}var L4=0;function O4(){return"helper_item_"+L4++}function IL(r){return{...r,formula:__dcg_shared_module_exports__['nd'](),guid:O4(),cachedParsableState:{type:"statement",id:r.id,latex:r.latex,shouldGraph:!1}}}function ML(r,e,t){var l;e.formula=t;let i=e.proxy,o={numericValue:i.numericValue,listValue:i.listValue},{constant_value:n,zero_values:a}=t,s=n!=null?n:(l=(a||[])[0])==null?void 0:l.val;i.numericValue=__dcg_shared_module_exports__['Sa'](s)?s:NaN,i.listValue=__dcg_shared_module_exports__['Qa'](s)&&__dcg_shared_module_exports__['ua'](s,__dcg_shared_module_exports__['Sa'])?s.slice(0):void 0,__dcg_shared_module_exports__['Oa'](i.numericValue,o.numericValue)||r.runAfterDispatch(()=>{i.notifyPropertyChange("numericValue")}),__dcg_shared_module_exports__['Oa'](i.listValue,o.listValue)||r.runAfterDispatch(()=>{i.notifyPropertyChange("listValue")})}kt();var Zk={enabled:!1,latex:"",hoveredImage:"",depressedImage:""},fv={center:"\\left(0,0\\right)",angle:"0",width:"10",height:"10",opacity:"1",clickableInfo:Zk,description:"",draggable:!1},AL={folderId:"",hidden:!1,secret:!1,readonly:!1,disableGraphInteractions:!1,foreground:!1,name:"",...fv};function bv(r){return{...AL,...r,clickableInfo:{...Zk,...r.clickableInfo}}}function GL(r){var e=__dcg_shared_module_exports__['Hc'](AL,r),t=__dcg_shared_module_exports__['Ic'](Zk,r.clickableInfo);return t===void 0?delete e.clickableInfo:e.clickableInfo=t,e}function eT(r){return __dcg_shared_module_exports__['Mc'](r,fv)}function yv(r){return{type:"image",id:r.id,...eT(r),guid:"",index:0,color:"",shouldGraph:r.hidden,showPoints:!1}}function VL(r,e){r.hidden=e}function fa(r,e,t){r[e]=t}function PL(r,e){return r[e]}function LL(r,e){r.description=e}function OL(r,e){r.name=e}function wv(r,e){e.type==="inert"?(r.disableGraphInteractions=e.disableGraphInteractions,e.disableGraphInteractions&&(r.draggable=!1,r.clickableInfo={...r.clickableInfo,enabled:!1})):e.type==="draggable"?(r.draggable=e.draggable,e.draggable&&(r.disableGraphInteractions=!1)):e.type==="clickable"&&(r.clickableInfo=e.clickableInfo,e.clickableInfo.enabled&&(r.disableGraphInteractions=!1))}function tT(r,e){wv(r,{type:"draggable",draggable:e})}function Xh(r){if(r.formula){var e=r.formula.center_reference_id,t=r.formula.center_reference_symbol;if(!(!e||!t)){var i=r.controller.getItemModel(e);if(!(!i||i.type!=="expression")&&i.formula.assignment===t&&Gn(i))return i}}}function R4(r){var e=Xh(r);if(!e)return!1;var t=Zr(e);return!(!t||t==="NONE")}function Ws(r){return!r.draggable||ba(r)?!1:R4(r)}function _L(r){if(!r.formula||!r.formula.center_is_point_literal)return!1;var e=r.formula.move_strategy;if(!e)return!1;var t=e[2],i=e[3],o=t&&t.type!=="none",n=i&&i.type!=="none";return!!(o||n)}function FL(r,e){r.opacity=e}function rT(r,e){r.foreground=e}function RL(r,e){r.image_url=e}function vv(r,e){e(r.opacity,"imageOpacity"),e(r.center,"imageCenter"),e(r.height,"imageHeight"),e(r.width,"imageWidth"),e(r.angle,"imageAngle")}function N4(r){let e=yv(r);e.color=r.color,e.index=r.index,e.guid=r.guid,e.shouldGraph=r.shouldGraph,e.showPoints=r.showPoints,r.cachedParsableState=e}function NL(r){r.draggingOnGraphpaper?r.preTransientState||(r.preTransientState={center:r.center,width:r.width,height:r.height}):delete r.preTransientState,Ol(r);let e=Yn(r);r.shouldGraph=e&&e.hidden?!1:!r.hidden,r.showPoints=r.shouldGraph&&An(r)&&r.loadStatus==="loaded"&&!Ws(r)&&r.controller.isTraceEnabled(),z4(r),K4(r),N4(r)}function BL(r,e){r.formula=e,r.error=B4(r)}function Cv(r){return r.formula?r.formula.variables.map(t=>__dcg_shared_module_exports__['bb'](t))||[]:[]}function B4(r){var e={scale:r.controller.s("graphing-calculator-error-log-axes-image"),center:r.controller.s("graphing-calculator-error-image-invalid-center"),angle:r.controller.s("graphing-calculator-error-image-invalid-angle"),width:r.controller.s("graphing-calculator-error-image-invalid-width"),height:r.controller.s("graphing-calculator-error-image-invalid-height"),opacity:r.controller.s("graphing-calculator-error-image-invalid-opacity")};for(var t in r.formula.errorMap){var i=r.formula.errorMap[t];if(i)return e[t]}}function zL(r,e){return!r.formula||!r.formula.errorMap?!1:!!r.formula.errorMap[e]}function Sv(r,e){var t=r.cachedViewState;return e.stripDefaults?GL(t):t}function z4(r){var e=r.cachedViewState.clickableInfo,t=!0,i=!0;if(e&&(e.depressedImage===r.clickableInfo.depressedImage&&(i=!1),e.hoveredImage===r.clickableInfo.hoveredImage&&(t=!1)),t&&(r.hoveredImageObj&&(W(r.hoveredImageObj).off("load"),delete r.hoveredImageObj),r.clickableInfo.hoveredImage)){r.hoveredImageObj=new Image;var o=function(){r.controller.requestRedrawGraph()},n=function(){};xv(r.hoveredImageObj,r.clickableInfo.hoveredImage,o,n)}if(i&&(r.depressedImageObj&&(W(r.depressedImageObj).off("load"),delete r.depressedImageObj),r.clickableInfo.depressedImage)){r.depressedImageObj=new Image;var o=function(){r.controller.requestRedrawGraph()},n=function(){};xv(r.depressedImageObj,r.clickableInfo.depressedImage,o,n)}if(r.cachedViewState.image_url!==r.image_url){W(r.imageObj).off("load"),r.imageObj=new Image;let a=function(){r.controller.dispatch({type:"image-load-success",id:r.id})},s=function(){r.controller.dispatch({type:"image-load-error",id:r.id})},c=r.controller.getGraphSettings().config.cacheRenderedSvgs?{fetchMimeType:{imageModel:r}}:void 0;xv(r.imageObj,r.image_url,a,s,c)}r.cachedViewState={type:r.type,id:r.id,folderId:r.folderId,image_url:r.image_url,name:r.name,hidden:r.hidden,foreground:r.foreground,secret:r.secret,readonly:r.readonly,disableGraphInteractions:r.disableGraphInteractions,...eT(r)}}function iT(r,e){r.draggingOnGraphpaper=e}function K4(r){var e=r.cachedViewState;r.cachedUndoRedoFullState=r.cachedViewState,r.preTransientState&&(e={...e,...r.preTransientState}),r.cachedUndoRedoDiffState=e}function U4(r){var e=document.createElement("canvas");e.width=2,e.height=2;var t=e.getContext("2d");return t.drawImage(r,0,0,2,2),e.toDataURL()}function xv(r,e,t,i,o={}){W(r).on("load.initial-image-load",function(){var s=r.width,l=r.height;s===1&&l===1?(W(r).off(".initial-image-load"),W(r).on("load",t),r.src=U4(r)):t()}).on("error",i);let n=/^data:/.test(e);n||(r.crossOrigin="anonymous");let{fetchMimeType:a}=o;a?n?(r.src=e,a.imageModel.mimeType=e.substring(5,e.indexOf(";"))):fetch(e).then(s=>{let l=s.headers.get("Content-type");return l&&(a.imageModel.mimeType=l),s.blob()}).then(s=>{let l=URL.createObjectURL(s);r.src=l}):r.src=e}function KL(r,e){return{...__dcg_shared_module_exports__['i'](bv(r)),...Ll(e),color:__dcg_shared_module_exports__['hd'].BLUE,loadStatus:"loading",failures:0,imageObj:new Image,hoveredImageObj:void 0,depressedImageObj:void 0,mimeType:void 0,shouldGraph:void 0,showPoints:void 0,error:void 0,formula:void 0,draggingOnGraphpaper:!1,cachedViewState:{},cachedParsableState:{},cachedUndoRedoDiffState:{},cachedUndoRedoFullState:{}}}var q4={id:!1,type:!1,image_url:!0,name:!0,folderId:!0,hidden:!0,secret:!0,readonly:!0,disableGraphInteractions:!0,foreground:!0,...__dcg_shared_module_exports__['Nc'](fv)};function UL(r,e){__dcg_shared_module_exports__['Kc']({from:e,to:r,props:q4})}function qL(r){let{controller:e,files:t,id:i}=r,o={errors:[],tokens:[]};for(let n=0;n<t.length;n++){let a=t[n];if(!a.type.match("image/*")){o.errors.push(e.s("graphing-calculator-error-image-invalid-file",{file:a.name}));continue}o.tokens.push(W4({controller:e,file:a,id:i}))}return o}var H4=0;function W4(r){let{controller:e,file:t,id:i}=r,o=""+H4++;return e.getGraphSettings().config.imageUploadCallback(t,(n,a)=>{setTimeout(()=>{if(n)e.dispatch({type:"image-upload-error",token:o,error:n});else{let s=new Image;xv(s,a,function(){var d=s.width,u=s.height,h=Math.max(d,u)/Math.min(d,u);d<u?(u=10,d=Math.round(10*u/h)/10):(d=10,u=Math.round(10*d/h)/10),e.dispatch({type:"image-upload-success",token:o,url:a,width:d+"",height:u+"",name:t.name,id:i})},function(){e.dispatch({type:"image-upload-error",token:o,error:!0})})}})}),o}function Ev(r,e){r.loadStatus=e,e==="loaded"&&(r.failures=0),e==="failed"&&(r.failures+=1)}function oT(r){r.imageObj.src=r.imageObj.src,Ev(r,"loading")}function Dv(r,e,t){wv(r,{type:"clickable",clickableInfo:{...r.clickableInfo,[e]:t}})}function HL(r,e){wv(r,{type:"clickable",clickableInfo:{...r.clickableInfo,latex:e}})}function su(r){var e;return!!(r.clickableInfo.enabled&&r.formula&&((e=r.formula.click_handler)==null?void 0:e.status)==="maybe-valid")}function nT(r,e){wv(r,{type:"inert",disableGraphInteractions:e})}var Zh={handlerLatex:"",minStepLatex:"",open:!1,playing:!1};function kv(r){return{type:"ticker",id:r.id,handlerLatex:r.handlerLatex,minStepLatex:r.minStepLatex,shouldGraph:!1}}function WL(r){return __dcg_shared_module_exports__['Ic'](Zh,r)}function Tv(r){return{...Zh,...r}}var $L="dcg_ticker_guid_internal",Y4=$L;function YL(){return aT(Zh)}function j4(r){r.cachedParsableState=kv(r)}function jL(r,e){return e.stripDefaults?WL(r.cachedViewState):r.cachedViewState}function JL(r){return r.cachedUndoRedoDiffState}function XL(r){return r.cachedUndoRedoFullState}function J4(r){r.cachedViewState={handlerLatex:r.handlerLatex,minStepLatex:r.minStepLatex,playing:r.playing,open:r.open}}function X4(r){var e=r.cachedViewState;r.cachedUndoRedoDiffState=e,r.cachedUndoRedoFullState=e}function aT(r){return{...Tv(r),type:"ticker",guid:$L,id:Y4,avgDelta:0,lastTickTime:void 0,cachedViewState:{},cachedParsableState:{},cachedUndoRedoDiffState:{},cachedUndoRedoFullState:{},filteredBySearch:!1}}function QL(r,e){__dcg_shared_module_exports__['Lc'](e,r)}function ZL(r,e){r.formula=e}function eO(r){J4(r),X4(r),j4(r)}function tO(r,{currentFrameTime:e,previousFrameTime:t}){var a,s;if(!r.playing||((a=r.formula)==null?void 0:a.handler.status)!=="maybe-valid")return!1;if(r.lastTickTime==null||t==null)return!0;if(((s=r.formula)==null?void 0:s.minStep.status)!=="valid")return!1;let i=r.formula.minStep.value,o=r.lastTickTime+i;if(e>=o)return!0;let n=e-t;return o-e<n/2}function rO(r,e){r.lastTickTime=e}function iO(r){if(r.formula)return r.formula.handler.status==="error"?r.formula.handler.error:void 0}function oO(r){if(r.formula)return r.formula.minStep.status==="error"?r.formula.minStep.error:void 0}function eb(r){var e;return(((e=r.formula)==null?void 0:e.variables)||[]).map(t=>__dcg_shared_module_exports__['bb'](t))}function Iv(r,e){e(r.handlerLatex,"tickerHandler"),e(r.minStepLatex,"tickerMinStep")}function Q4(r){switch(r.type){case"TokenNode":case"Letter":return!0;case"OperatorName":{for(let e of r.arg.args)if(e.type!=="Letter")return!1;return!0}case"Cmd":return __dcg_shared_module_exports__['jc'](r.val);default:return!1}}function sT(r){let e;try{e=__dcg_shared_module_exports__['fc'](r)}catch(o){return}if(e.args.length===0||e.args.length>2)return;let t=e.args[0];if(!Q4(t))return;let i;if(e.args.length>1){let o=e.args[1];if(o.type!=="SupSub")return;let{sup:n,sub:a}=o;if(n!==void 0||a===void 0)return;for(let s of a.args)if(s.type!=="Letter"&&s.type!=="Digit")return;i=a}return{base:t,subscript:i}}function jn(r){return sT(r)!==void 0}function lO(r){let e=__dcg_shared_module_exports__['fc'](r),t=__dcg_shared_module_exports__['mc'](e);switch(t.type){case"Letter":return t.val;case"Cmd":return t.val;default:return}}function nO(r){return r.replace(/^(\\? )+|(\\? )+$/g,"")}function cO(r){try{let e=__dcg_shared_module_exports__['fc'](r),t=__dcg_shared_module_exports__['mc'](e);if(t.type==="Comparator"&&t.symbol==="="&&(t=t.args[1]),t.type==="Call"){let i=t.args[1];return i.type==="Seq"?i.args:[i]}return}catch(e){return}}function tb(r){let e=r.indexOf("=");if(e===-1)return;let t=nO(r.slice(0,e));if(jn(t))return t;try{let i=__dcg_shared_module_exports__['fc'](`${t}=0`),o=__dcg_shared_module_exports__['mc'](i);if(o.type==="Comparator"&&o.symbol==="="&&__dcg_shared_module_exports__['lc'](o.args[0])){let n=r.indexOf("\\left(");if(n===-1&&(n=r.indexOf("(")),n===-1)return;let a=nO(r.slice(0,n));if(jn(a))return a}}catch(i){}}function Av(r,e){let t=sT(e);if(t===void 0)return[];let i=[],o;try{o=__dcg_shared_module_exports__['fc'](r)}catch(n){return i}return eg(o,t,i,{wrapInBraces:!1}),i}function cs(r,e){return Av(r,e).length!==0}function Gv(r,e,t){return sT(t)===void 0?r:lT(r,e,t)}function lT(r,e,t){let i=Av(r,e);if(i.length===0)return r;let o="",n=0;for(let a of i){if(o+=r.slice(n,a.base.start),a.wrapInBraces&&(o+="{"),o+=t,n=a.base.end,a.subscript){let s=0,l=0;for(let c=a.subscript.start;c>=0;c--)if(r[c]==="{"&&(s+=1),r[c]==="_"){l=c;break}o+=r.slice(n,l),n=a.subscript.end;for(let c=a.subscript.end;c<r.length&&!(s<=0);c++)r[c]==="}"&&(s-=1,n=c+1)}a.wrapInBraces&&(o+="}")}return o+=r.slice(n,r.length),o}function aO(r,e){if(r.args.length!==e.args.length)return!1;for(let t=0;t<r.args.length;t++){let i=r.args[t],o=e.args[t];if(!(i.type==="Letter"&&o.type==="Letter"&&i.val===o.val)&&!(i.type==="Digit"&&o.type==="Digit"&&i.val===o.val))return!1}return!0}function Z4(r,e,t){let i=r.arg.args,o=e.arg.args;if(i.length===o.length){for(let n=0;n<i.length;n++){let a=i[n],s=o[n];if(a.type!=="Digit"||a.type!==s.type||a.val!==s.val)return}t.push({base:e.span,wrapInBraces:!1})}}function eg(r,e,t,{wrapInBraces:i}){let{base:o,subscript:n}=e;for(let a=0;a<r.args.length;a++){let s=a-1>=0?r.args[a-1]:void 0,l=r.args[a],c;if(a+1<r.args.length){let d=r.args[a+1];d.type==="SupSub"&&d.sub!==void 0&&(c=d.sub)}switch(l.type){case"Letter":case"Cmd":if(o.type!==l.type||o.val!==l.val)break;if(n&&c&&aO(n,c))t.push({base:l.span,subscript:c.span,wrapInBraces:i});else if(!n&&!c){if((s==null?void 0:s.type)==="Symbol"&&s.val==="."&&l.type==="Letter"&&(o.val==="x"||o.val==="y"||o.val==="z"))break;t.push({base:l.span,wrapInBraces:i})}break;case"OperatorName":{if(o.type!==l.type||o.arg.args.length!==l.arg.args.length)break;let d=!0;for(let u=0;u<o.arg.args.length;u++){let h=o.arg.args[u],g=l.arg.args[u];if(h.type!=="Letter"||g.type!=="Letter"||h.val!==g.val){d=!1;break}}if(!d)break;n&&c&&aO(n,c)?t.push({base:l.span,subscript:c.span,wrapInBraces:i}):!n&&!c&&t.push({base:l.span,wrapInBraces:i});break}case"Digit":case"Symbol":case"EscapedSymbol":break;case"LeftRight":case"Sqrt":eg(l.arg,e,t,{wrapInBraces:!1});break;case"Frac":eg(l.num,e,t,{wrapInBraces:!1}),eg(l.den,e,t,{wrapInBraces:!1});break;case"SupSub":(s==null?void 0:s.type)==="Cmd"&&__dcg_shared_module_exports__['kc'](s.val)&&l.sub&&eg(l.sub,e,t,{wrapInBraces:!sO(l.sub,"_")}),l.sup&&eg(l.sup,e,t,{wrapInBraces:!sO(l.sup,"^")});break;case"TokenNode":{if(o.type!==l.type)break;Z4(o,l,t)}break;default:{let d=l;throw new Error("Unexpected token type: "+d.type)}}}}function sO(r,e){for(let t=r.span.start;t>=0;t--){let i=r.span.input[t];if(i===e)break;if(i==="{")return!0}return!1}function eq(r){return r.replace(new RegExp("(?<!\\\\left|\\\\sqrt)(\\[|\\(|\\\\\\{)","g"),"\\left$1").replace(new RegExp("(?<!\\\\right)(\\]|\\)|\\\\\\})(?!{)","g"),"\\right$1")}function tq(r){return eq(__dcg_shared_module_exports__['eb'](r))}function Vv(r){if(!r||r.args.length===0)return;let e=r.args[r.args.length-1];switch(e.isTrailing=!0,e.type){case"Sqrt":case"LeftRight":Vv(e.arg);break;case"Frac":Vv(e.num),Vv(e.den);break;case"TokenNode":case"SupSub":case"Other":break;default:}}function cT(r){return{type:"Other",originalType:r.type,val:r.val}}function rq(r){switch(r.type){case"Cmd":{if(!__dcg_shared_module_exports__['jc'](r.val))return cT(r);let e=r.val.match(/^\\([a-zA-Z]+)/);if(!e)return cT(r);let t=e[1],i=[];for(let o of t)i.push({type:"Other",originalType:"Letter",val:o});return i}case"OperatorName":return Fl(r.arg).args;case"EscapedSymbol":case"Letter":case"Digit":case"Symbol":return cT(r);case"Sqrt":return{type:"Sqrt",optArg:r.optArg&&Fl(r.optArg),arg:Fl(r.arg)};case"Frac":return{type:"Frac",num:Fl(r.num),den:Fl(r.den)};case"TokenNode":return{type:"TokenNode",arg:Fl(r.arg)};case"SupSub":return{type:"SupSub",sup:r.sup&&Fl(r.sup),sub:r.sub&&Fl(r.sub),nprimes:r.nprimes};case"LeftRight":return{type:"LeftRight",left:r.left,right:r.right,arg:Fl(r.arg)};default:throw new Error(`Programming Error: Invalid atom type ${r.type}`)}}function Fl(r){let e=[];for(let t of r.args){let i=rq(t);Array.isArray(i)?e.push(...i):e.push(i)}return{type:"Group",args:e}}function dO(r){try{return Fl(__dcg_shared_module_exports__['fc'](tq(r)))}catch(e){return}}function uO(r){let e=dO(r);if(e===void 0)return()=>!1;let t=e;Vv(t);function i(o){let n=dO(o);return n===void 0?!1:Ld(t,n)}return i}function Ld(r,e){if(!e)return!1;for(let t=0;t<e.args.length;t++)if(hO(r,e,t)||iq(r,e.args[t]))return!0;return!1}function iq(r,e){switch(e.type){case"Sqrt":return Ld(r,e.arg)||Ld(r,e.optArg);case"Frac":return Ld(r,e.num)||Ld(r,e.den);case"SupSub":return Ld(r,e.sup)||Ld(r,e.sub);case"LeftRight":return Ld(r,e.arg);case"TokenNode":return!1;case"Other":return!1;default:throw new Error(`Programming Error: Invalid atom type ${e.type}`)}}function hO(r,e,t){if(r.args.length>e.args.length-t)return!1;for(let i=0;i<r.args.length;i++)if(!oq(r.args[i],e.args[i+t]))return!1;return!0}function Pd(r,e,t){return!r&&!e?!0:!r||!e?!1:r.args.length===0?!0:r.args.length>e.args.length||!(t!=null&&t.allowPrefix)&&r.args.length<e.args.length?!1:hO(r,e,0)}function oq(r,e){let t=!!r.isTrailing;switch(r.type){case"Sqrt":return e.type==="Sqrt"&&Pd(r.optArg,e.optArg)&&Pd(r.arg,e.arg);case"Frac":return e.type==="Frac"&&Pd(r.num,e.num)&&Pd(r.den,e.den);case"SupSub":return e.type==="SupSub"&&r.nprimes===e.nprimes&&Pd(r.sup,e.sup)&&Pd(r.sub,e.sub,{allowPrefix:t});case"LeftRight":return e.type==="LeftRight"&&pO(r.left,e.left)&&pO(r.right,e.right)&&Pd(r.arg,e.arg,{allowPrefix:t});case"TokenNode":return e.type==="TokenNode"&&Pd(r.arg,e.arg);case"Other":return r.type===e.type&&r.val===e.val}}function pO(r,e){return r.type===e.type&&r.val===e.val}var tg="dcg_geometry_toolbar_",gO={selection:{visible:!0},"box-selection":{visible:!0},"expression-edit":{visible:!0},point:{visible:!1},line:{visible:!1},segment:{visible:!1},ray:{visible:!1},vector:{visible:!1},circle:{visible:!1},arc:{visible:!1},parallel:{visible:!1},perpendicular:{visible:!1},midpoint:{visible:!1},polygon:{visible:!1},compass:{visible:!1},angle:{visible:!1},directedangle:{visible:!1},reflect:{visible:!1},translate:{visible:!1},rotate:{visible:!1},dilate:{visible:!1}};function mO(r){if(r.toolbar!=="all"){if(r.toolbar==="custom"){let e=__dcg_shared_module_exports__['Ic'](gO,r.toolbarState),t={toolbar:"custom"};return e!==void 0&&(t.toolbarState=e),t}return r}}function fO(r){return r===void 0?{toolbar:"all"}:r.toolbar==="custom"?{toolbar:"custom",toolbarState:__dcg_shared_module_exports__['Jc'](gO,r.toolbarState)}:r}function bO(r,e){return e.stripDefaults?mO(r.cachedViewState):r.cachedViewState}function dT(r){return r.cachedUndoRedoDiffState}function nq(r){r.toolbar==="custom"?r.cachedViewState={toolbar:"custom",toolbarState:__dcg_shared_module_exports__['i'](r.toolbarState)}:r.cachedViewState={toolbar:r.toolbar}}function yO(r){nq(r),aq(r),r.__cachedToolbarState=void 0}function xO(r){let e=[];for(let t in r.toolbarState){let i=t,o=r.toolbarState[i];o.visible&&o.disabledLatex&&e.push({type:"geometry-toolbar-predicate",id:`${tg}${i}`,latex:o.disabledLatex})}return e}function wO(r,e){if(!r.toolbarState[e].disabledLatex)return;let t=r.formulas[e];if(t!=null&&t.error)return{key:"shared-calculator-error-custom-toolbar-not-condition",vars:{}}}function vO(r,e,t){let i=e.replace(tg,"");i in r.toolbarState&&(r.formulas[i]=t)}function aq(r){var e=r.cachedViewState;r.cachedUndoRedoDiffState=e,r.cachedUndoRedoFullState=e}function Pv(r){let e=fO(r);return{toolbar:e.toolbar,toolbarState:e.toolbar==="custom"?e.toolbarState:sq(),formulas:{},selectedToolForGroup:{},__cachedToolbarState:void 0,cachedViewState:e,cachedUndoRedoDiffState:e,cachedUndoRedoFullState:e}}function CO(){return Pv(void 0)}function sq(){return{selection:{visible:!0},"box-selection":{visible:!0},"expression-edit":{visible:!0},point:{visible:!0},line:{visible:!0},segment:{visible:!0},ray:{visible:!0},vector:{visible:!1},circle:{visible:!0},arc:{visible:!1},parallel:{visible:!1},perpendicular:{visible:!1},midpoint:{visible:!1},polygon:{visible:!1},compass:{visible:!1},angle:{visible:!1},directedangle:{visible:!1},reflect:{visible:!1},translate:{visible:!1},rotate:{visible:!1},dilate:{visible:!1}}}function SO(r,e){r.toolbar=e,r.__cachedToolbarState=void 0}function EO(r,e,t){let{groups:i,items:o}=Ov(r,t);for(let n of i){let a=o[n];a!=null&&a.dropdown&&a.dropdown.indexOf(e)!==-1?r.selectedToolForGroup[a.group]=e:a!=null&&a.dropdown&&lq(a.current)&&(r.selectedToolForGroup[a.group]=a.dropdown[0])}r.__cachedToolbarState=void 0}function Lv(r,e,t){r.toolbarState[e]={visible:t.visible,disabledLatex:t.disabledLatex},r.__cachedToolbarState=void 0}function lu(r,e){return r.toolbar==="all"?!0:r.toolbar==="none"?!1:r.toolbarState[e].visible}function rg(r,e){if(r.toolbar==="all")return!0;let t=lu(r,e);if(t&&r.formulas[e]){let i=r.formulas[e],o=i==null?void 0:i.constant_value;return typeof o=="number"?!o:!0}return t||e==="selection"}function Ov(r,e){var o;if(((o=r.__cachedToolbarState)==null?void 0:o.authorMode)===e)return r.__cachedToolbarState.state;let t={};for(let n of pT())if(n.dropdown){let a=n.dropdown.filter(s=>e||lu(r,s));if(a.sort((s,l)=>{let c=rg(r,s),d=rg(r,l),u=lu(r,s),h=lu(r,l);return(c?0:u?1:2)-(d?0:h?1:2)}),a.length>0){let s=r.selectedToolForGroup[n.group];(!s||a.indexOf(s)===-1)&&(s=a[0]),!e&&!rg(r,s)&&(s=a.find(l=>rg(r,l))||a[0]),t[n.group]={group:n.group,current:s,dropdown:a.length>1?a:void 0}}}else(e||lu(r,n.current))&&(t[n.group]=n);let i=Object.keys(t);r.__cachedToolbarState={authorMode:e,state:{groups:i,items:t}};for(let n of i){let a=t[n];r.selectedToolForGroup[n]=a==null?void 0:a.current}return{groups:i,items:t}}function pT(){return[{group:"selection",current:"selection",dropdown:["selection","box-selection"]},{group:"point",current:"point",dropdown:["point","midpoint"]},{group:"line",current:"segment",dropdown:["segment","line","ray","vector","parallel","perpendicular"]},{group:"circle",current:"circle",dropdown:["circle","compass","arc"]},{group:"angle",current:"angle",dropdown:["angle","directedangle"]},{group:"polygon",current:"polygon"}]}function lq(r){switch(r){case"box-selection":case"midpoint":case"parallel":case"perpendicular":case"compass":case"arc":return!0;default:return!1}}var ng="**dcg_geo_expression_edit_tool_preview**";function DO(r){return{controller:r,__itemModelArray:[],__itemIdToModel:{},__helperIdToModel:{},__toolPreviewIdToModel:{},__anyDependsOnRandomSeed:!1,__anyUnmutedTones:!1,__anyTones:!1,__anyIsAction:!1,selectedItemMap:{},drawOrder:[],colorIdx:0,expressionAnalysis:{},nextDisplayIndex:1,ticker:YL()}}function kO(r){for(var e=0;e<r.__itemModelArray.length;e++){var t=r.__itemModelArray[e];if(t.type==="image"&&t.loadStatus==="loading")return!0}return!1}function TO(r){var e=__dcg_shared_module_exports__['ta'](__dcg_shared_module_exports__['Ma'](r.controller.getColors()),i=>i!=__dcg_shared_module_exports__['hd'].ORANGE),t=e[r.colorIdx];return r.colorIdx=(r.colorIdx+1)%e.length,t}function ag(r,e){return r.__itemModelArray[e]}function sg(r){for(let e=0;e<r.__itemModelArray.length;e++){let t=r.__itemModelArray[e];if(lg(t))return t}}function Fv(r){for(let e=r.__itemModelArray.length-1;e>=0;e--){let t=r.__itemModelArray[e];if(lg(t))return t}}function cu(r,e){var t;do{if(e--,e===-1)return;t=ag(r,e)}while(t&&!lg(t));return t}function du(r,e){var t,i=ob(r);do{if(e++,e===i)return;t=ag(r,e)}while(t&&!lg(t));return t}function Yn(r){if(r.type!=="folder"&&r.folderId){let e=r.controller.getListModel(),t=Rl(e,r.folderId);if(t&&t.type==="folder")return t}}function IO(r,e){let t=Rl(r,e);if(!t||t.type!=="folder")return 0;let i=0,o=r.__itemModelArray.length;for(var n=t.index+1;n<o;n++){let a=r.__itemModelArray[n];if(a.type==="folder"||a.folderId!==e)break;i+=1}return i}function MO(r,e){let t=Rl(r,e);if(!t||t.type!=="folder")return[];let i=[],o=r.__itemModelArray.length;for(var n=t.index+1;n<o;n++){let a=r.__itemModelArray[n];if(a.type==="folder"||a.folderId!==e)break;i.push(a.id)}return i}function AO(r,e){let t=[],i=Rl(r,e);if(!i||i.type!=="folder")return t;let o=r.__itemModelArray.length;for(let n=i.index+1;n<o;n++){let a=r.__itemModelArray[n];if(a.type==="folder"||a.folderId!==e)break;t.push(a)}return t}function GO(r){return!!(r&&r.readonly)}function rb(r){if(!r)return!1;if(r.secret)return!0;let e=Yn(r);return!!(e&&e.secret&&e.id!==__dcg_shared_module_exports__['Rc'])}function lg(r){return!gT(r)}function VO(r){return r.id===__dcg_shared_module_exports__['Rc']||r.type!=="folder"&&r.folderId===__dcg_shared_module_exports__['Rc']}function gT(r){if(!r||r.filteredBySearch||VO(r))return!0;if(r.controller.isItemBeingDragged(r.id))return!!r.controller.shouldRenderDraggedItemAsToken();if(!r.controller.shouldShowAuthorFeatures()&&rb(r))return!0;let t=Yn(r);return!!(t&&t.collapsed&&!r.controller.getExpressionSearchStr())}function mT(r){return r.__itemModelArray}function PO(r){return __dcg_shared_module_exports__['Ma'](r.__helperIdToModel)}function cg(r){return __dcg_shared_module_exports__['Ma'](r.__toolPreviewIdToModel)}function dg(r,e){for(var t=0;t<r.__itemModelArray.length;t++){var i=r.__itemModelArray[t];ig(i,e)}for(var o in r.__toolPreviewIdToModel)ig(r.__toolPreviewIdToModel[o],e);if(r.ticker.open&&(e(r.ticker.handlerLatex,{type:"item",location:"tickerHandler",item:r.ticker}),e(r.ticker.minStepLatex,{type:"item",location:"tickerMinStep",item:r.ticker})),r.controller.isGeometry()){let a=r.controller.getGeometryToolbarModel().toolbarState;for(let s in a){let l=s,c=a[l];c.visible&&c.disabledLatex&&e(c.disabledLatex,{type:"geometry-toolbar",tool:l})}}}function ig(r,e){switch(r.type){case"expression":$v(r,(i,o)=>e(i,{type:"item",location:o,item:r}));break;case"table":Zf(r,(i,o,n)=>e(i,{type:"item",location:o,item:r,...n}));break;case"image":vv(r,(i,o)=>e(i,{type:"item",location:o,item:r}));break;case"ticker":Iv(r,(i,o)=>e(i,{type:"item",location:o,item:r}));break;case"folder":case"text":break;default:return r}}function LO(r,e){if(!jn(e))return!1;let i=!1;return dg(r,o=>{cs(o,e)&&(i=!0)}),i}function OO(r,e){let t=!1;for(let i of r.__itemModelArray)if(i.type==="table"&&(Zf(i,o=>{cs(o,e)&&(t=!0)},{headersOnly:!0}),t))return!0;return!1}function _O(r,e){let t=0,i=jn(e);r.ticker.filteredBySearch=r.ticker.open&&!cs(r.ticker.handlerLatex,e)&&!cs(r.ticker.minStepLatex,e);for(let o of r.__itemModelArray){if(!i){o.filteredBySearch=!1,t++;continue}switch(o.filteredBySearch=!0,o.type){case"expression":$v(o,s=>{cs(s,e)&&(o.filteredBySearch=!1,t++)});let n=$s(o);o.label&&n&&o.label.match(_v(e))&&(o.filteredBySearch=!1,t++);break;case"table":Zf(o,s=>{cs(s,e)&&(o.filteredBySearch=!1,t++)});break;case"image":vv(o,s=>{cs(s,e)&&(o.filteredBySearch=!1,t++)});break;case"folder":case"text":break;default:return o}!o.filteredBySearch&&o.type!=="folder"&&o.folderId&&(r.__itemIdToModel[o.folderId].filteredBySearch=!1,t++)}return t}function FO(r,e){let t=0,i=uO(e);r.ticker.filteredBySearch=!!e&&r.ticker.open&&!i(r.ticker.handlerLatex)&&!i(r.ticker.minStepLatex);for(var o=0;o<r.__itemModelArray.length;o++){if(!e){r.__itemModelArray[o].filteredBySearch=!1;continue}var n=r.__itemModelArray[o];switch(n.filteredBySearch=!0,n.type){case"expression":$v(n,l=>{i(l)&&(n.filteredBySearch=!1,t++)});let a=$s(n);Jv(n)&&(n.label||a)&&(e==="\\operatorname{label}"||e.length>1&&"label".indexOf(e)===0||i(n.label))&&(n.filteredBySearch=!1,t++);break;case"table":Zf(n,l=>{i(l)&&(n.filteredBySearch=!1,t++)});break;case"image":e==="\\operatorname{image}"||e.length>1&&"image".indexOf(e)===0?(n.filteredBySearch=!1,t++):vv(n,l=>{i(l)&&(n.filteredBySearch=!1,t++)});break;case"folder":n.title&&n.title.indexOf(e)>=0&&(n.filteredBySearch=!1,t++);break;case"text":n.text.indexOf(e)>=0&&(n.filteredBySearch=!1,t++);break;default:return n}!n.filteredBySearch&&n.type!=="folder"&&n.folderId&&(r.__itemIdToModel[n.folderId].filteredBySearch=!1,t++)}return t}function _v(r,e){return new RegExp("\\$\\{"+r.replace("{","\\{?").replace("}","\\}?").replace("_","\\_?")+"\\}",e)}function fT(r,e,t){let i=0;for(var o=0;o<r.__itemModelArray.length;o++){var n=r.__itemModelArray[o];if(n.type!=="expression"||t&&n.folderId!==t)continue;if($s(n)&&n.label){let s=n.label.match(_v(e,"g"));s&&(i+=s.length)}}return dg(r,(a,s)=>{t&&(s.type!=="item"||s.item.type==="ticker"||s.item.type==="folder"||s.item.folderId!==t)||(i+=Av(a,e).length)}),i}function _d(r,e,t,i){t=t.trim().replace(/_\{([a-zA-Z0-9])\}/g,"_$1");for(var o=0;o<r.__itemModelArray.length;o++){let n=r.__itemModelArray[o];if(n.type==="expression"){let a=$s(n);n.label&&a&&n.label.match(_v(e))&&zc(n,n.label.replace(_v(e,"g"),"${"+t.trim()+"}"))}}dg(r,(n,a)=>{if(i&&i.limitToItem!==void 0&&(a.type!=="item"||i.limitToItem!==a.item.id)||i&&i.limitToFolder!==void 0&&(a.type!=="item"||a.item.type==="ticker"||a.item.type==="folder"||i.limitToFolder!==a.item.folderId))return;let s=Gv(n,e,t);if(a.type==="geometry-toolbar"){let c=r.controller.getGeometryToolbarModel();Lv(c,a.tool,{visible:!0,disabledLatex:s});return}let l=a.item;if(s!==n){let c;switch(a.cellLocation!==void 0&&l.columnModels&&(c=l.columnModels[a.cellLocation.column].id),a.location){case"latex":{Qn(l,s);break}case"cdfMin":{Xv(l,s);break}case"cdfMax":{Qv(l,s);break}case"colorLatex":{ub(l,s);break}case"lineWidth":{yg(l,s);break}case"resolution":{Yv(l,s);break}case"clickableInfoLatex":{qv(l,s);break}case"fillOpacity":{cb(l,s);break}case"lineOpacity":{bg(l,s);break}case"pointOpacity":{db(l,s);break}case"pointSize":case"movablePointSize":pb(l,s);break;case"labelAngle":{jv(l,s);break}case"labelSize":{hb(l,s);break}case"polarDomainMin":{Jn(l,s,"theta");break}case"polarDomainMax":{Xn(l,s,"theta");break}case"parametricDomainMin":{Jn(l,s,"t");break}case"parametricDomainMax":{Xn(l,s,"t");break}case"parametricDomain3DuMin":{Jn(l,s,"u");break}case"parametricDomain3DuMax":{Xn(l,s,"u");break}case"parametricDomain3DvMin":{Jn(l,s,"v");break}case"parametricDomain3DvMax":{Xn(l,s,"v");break}case"parametricDomain3DrMin":{Jn(l,s,"r");break}case"parametricDomain3DrMax":{Xn(l,s,"r");break}case"parametricDomain3DphiMin":{Jn(l,s,"phi");break}case"parametricDomain3DphiMax":{Xn(l,s,"phi");break}case"sliderMin":{mg(l,s);break}case"sliderMax":{fg(l,s);break}case"sliderStep":{lb(l,s);break}case"imageOpacity":{fa(l,"opacity",s);break}case"imageCenter":{fa(l,"center",s);break}case"imageHeight":{fa(l,"height",s);break}case"imageWidth":{fa(l,"width",s);break}case"imageAngle":{fa(l,"angle",s);break}case"tickerHandler":{l.handlerLatex=s;break}case"tickerMinStep":{l.minStepLatex=s;break}case"tableHeader":case"tableCellValue":if(!a.cellLocation||l.type!=="table")break;Bc(l,a.cellLocation,s);break;case"tableColumnColorLatex":{c&&uv(l,c,s);break}case"tableColumnPointSize":{c&&dv(l,c,s);break}case"tableColumnPointOpacity":{c&&pv(l,c,s);break}case"tableColumnLineWidth":{c&&lv(l,c,s);break}case"tableColumnLineOpacity":{c&&cv(l,c,s);break}case"residualVariable":break;default:{let d=a.location;throw new Error(`Unexpected latex location ${d}`)}}}})}function Rv(r){var e=[];dg(r,function(o){if(!(o.indexOf("~")!==-1||o.indexOf("\\sim")!==-1))for(var n=/_(\d)|_\{(?:\s|\\space)*(\d+)(?:\s|\\space)*\}/g;;){var a=n.exec(o);if(!a)break;e.push(parseInt(a[1]||a[2],10))}}),e.sort(function(o,n){return o-n});for(var t=1,i=0;i<e.length;i++)e[i]===t&&t++;return t}function RO(r){var e=0;return dg(r,function(t){for(var i=/\\token\{(\d+)\}/g;;){var o=i.exec(t);if(!o)break;var n=parseInt(o[1],10);n>e&&(e=n)}}),e}function NO(r){var e={};return dg(r,function(t){if(!(t.indexOf("~")!==-1||t.indexOf("\\sim")!==-1))for(var i=/(\\?[a-zA-Z]+)_(\d)|(\\?[a-zA-Z]+)_\{(?:\s|\\space)*(\d+)(?:\s|\\space)*\}/g;;){var o=i.exec(t);if(!o)break;var n=o[1]||o[3],a=o[2]||o[4];n[0]!=="\\"&&(n=n[n.length-1]);var s=parseInt(a,10);e[n]||(e[n]=0),s>e[n]&&(e[n]=s)}}),e}function BO(r,e){var t=[],i={points:[],angles:[],polygons:[],other:[]};function o(n){if(!(pq(r,n.id)&&e!=="actual")&&!(n.id===ng&&e!=="preview")){if(n.type==="expression"&&n.folderId===__dcg_shared_module_exports__['Rc']){Bl(n)?i.points.push(n.id):Nd(n)?i.angles.push(n.id):Rd(n)?i.polygons.push(n.id):i.other.push(n.id);return}n.type==="table"?__dcg_shared_module_exports__['ra'](n.columnModels,function(a){t.push(a.id)}):t.push(n.id)}}r.__itemModelArray.forEach(o),cg(r).forEach(o),t.push.apply(t,i.polygons),t.push.apply(t,i.other),t.push.apply(t,i.angles),t.push.apply(t,i.points),r.drawOrder=t}function Rl(r,e,t){let i=r.__itemIdToModel[e];if(i)return i;if(t&&t.includePreviewItems)return r.__toolPreviewIdToModel[e]}function zO(r,e){return!!r.__toolPreviewIdToModel[e]}function pu(r,e){var n;for(var t=[],i=0;i<r.__itemModelArray.length;i++){var o=r.__itemModelArray[i];o.type==="expression"&&((n=Ii(o))==null?void 0:n.identifier)===e&&t.push(o)}return t}function cq(r,e){return r.__helperIdToModel[e]}function KO(r,e){var t=IL(e);r.__helperIdToModel[t.id]=t}function ib(r){r.__anyUnmutedTones=r.__itemModelArray.some(e=>sb(e)),r.__anyTones=r.__anyUnmutedTones||r.__itemModelArray.some(e=>ya(e))}function bT(r){r.__anyDependsOnRandomSeed=!1;for(var e=0;e<r.__itemModelArray.length;e++){var t=r.__itemModelArray[e];if(t&&"formula"in t&&t.formula&&t.formula.depends_on_random_seed){r.__anyDependsOnRandomSeed=!0;return}}}function UO(r){r.__anyIsAction=!1}function Nv(r){if(!r.__anyIsAction){if(r.ticker.open){r.__anyIsAction=!0;return}for(var e=0;e<r.__itemModelArray.length;e++){var t=r.__itemModelArray[e];if(t&&"formula"in t&&t.formula){if(t.type!=="expression"&&t.type!=="image")continue;let{formula:i}=t;if(i.hasOwnProperty("action_value")||i.hasOwnProperty("click_handler")){r.__anyIsAction=!0;return}}}}}function uu(r){for(var e=!r.controller.shouldShowAuthorFeatures(),t=1,i=1,o=0;o<r.__itemModelArray.length;o++){var n=r.__itemModelArray[o];n.index=o,n.displayIndex=t,rb(n)&&(n.secretIndex=i,i+=1),!VO(n)&&(!e||!rb(n))&&(t+=1)}for(var a in r.selectedItemMap)r.__itemIdToModel[a]||delete r.selectedItemMap[a];r.nextDisplayIndex=t}function dq(r){r.__itemModelArray=[],r.__itemIdToModel={},r.__helperIdToModel={},r.__toolPreviewIdToModel={},r.__anyDependsOnRandomSeed=!1,r.__anyUnmutedTones=!1,r.__anyTones=!1}function ob(r){return r.__itemModelArray.length}function qO(r){return r.__itemModelArray.filter(e=>e.type==="expression"&&e.folderId===__dcg_shared_module_exports__['Rc']&&!!Zo(e)).length}function HO(r){return r.nextDisplayIndex===1}function WO(r){for(var e=[],t=0;t<r.__itemModelArray.length;t++){var i=r.__itemModelArray[t];i.type==="expression"&&i.sliderExists&&e.push(i)}return e}function pg(r){var e;for(var t in r.selectedItemMap){if(e!==void 0)return;e=t}if(e!==void 0)return r.__itemIdToModel[e]}function pq(r,e){return!!r.selectedItemMap[e]}function $O(r){return{...r.selectedItemMap}}function Bv(r){var e=[];for(var t in r.selectedItemMap)e.push(r.__itemIdToModel[t]);return e}function YO(r){return{list:r.__itemModelArray.map(function(e){return e.cachedUndoRedoDiffState}),ticker:JL(r.ticker)}}function yT(r){return{list:r.__itemModelArray.map(function(e){return e.cachedUndoRedoFullState}),ticker:XL(r.ticker)}}function jO(r,e){let t={list:r.__itemModelArray.map(function(o){switch(o.type){case"expression":return Hv(o,e);case"image":return Sv(o,e);case"table":return Jh(o,e);case"folder":return ov(o,e);case"text":return mv(o,e);default:return o}})},i=jL(r.ticker,e);return i&&(t.ticker=i),t}function JO(r){let e=0,t=/^[0-9]+$/;for(var i=r.list.length-1;i>=0;i--){var o=r.list[i];let n=o.id;if(t.test(n)){let a=parseInt(n,10);a>e&&(e=a)}if(o.type==="table"&&o.columns){for(let a=o.columns.length-1;a>=0;a--)if(n=o.columns[a].id,t.test(n)){let s=parseInt(n,10);s>e&&(e=s)}}}return e}function XO(r,e,t){t||(t={});var i,o;for(r.colorIdx=0,dq(r),r.expressionAnalysis={},i=0;i<e.list.length;i++){if(o=og(r,e.list[i]),t.remapColors&&"color"in o&&o.color){var n=__dcg_shared_module_exports__['Ma'](r.controller.getColors());__dcg_shared_module_exports__['wa'](n,o.color)||(o.color=AP(o.color,n))}r.__itemModelArray.push(o),r.__itemIdToModel[o.id]=o}if(r.ticker=aT(e.ticker),uu(r),r.nextDisplayIndex===1){var a=og(r,{type:"expression",id:r.controller.generateId(),color:r.controller.getNextColor()});_a(r,a,r.__itemModelArray.length)}}function og(r,e){switch(e.type){case"expression":return Wv(e,r.controller);case"table":return oL(e,r.controller);case"image":return KL(e,r.controller);case"folder":return VP(e,r.controller);case"text":return EL(e,r.controller);default:return e}}function QO(r,e){var t,i;let o=r.__itemIdToModel;for(r.__itemModelArray=[],r.__itemIdToModel={},t=0;t<e.list.length;t++){var n=e.list[t];if(i=o[n.id],i&&i.type===n.type)switch(i.type){case"expression":if(n.type!==i.type)throw new Error("invalid restoration");n2(i,n);break;case"table":if(n.type!==i.type)throw new Error("invalid restoration");iL(i,n);break;case"image":if(n.type!==i.type)throw new Error("invalid restoration");UL(i,n);break;case"folder":{if(n.type!==i.type)throw new Error("invalid restoration");LP(i,n)}break;case"text":if(n.type!==i.type)throw new Error("invalid restoration");kL(i,n);break;default:return i}else i=og(r,n);r.__itemModelArray.push(i),r.__itemIdToModel[i.id]=i}e.ticker&&QL(r.ticker,e.ticker),bT(r),Nv(r),ib(r),uu(r)}function ZO(r,e,t){let i=t[0]&&t[0].tableId,o=Rl(r,i||e);if(!o)return;let n;switch(o.type){case"expression":let a=!1,s=!1;o.__workerNeedsDotplotXMode=!1;for(let d=0;d<t.length;d++){let u=t[d];if("recursionTerminationStatus"in u&&u.recursionTerminationStatus===1&&(s=!0),u.graphMode===15){o.error=u.error;continue}"resolved"in u&&!u.resolved&&(a=!0),"boundingBox"in u&&u.boundingBox&&(n||(n=[]),n.push(u.boundingBox)),u.needsDotplotXMode&&(o.__workerNeedsDotplotXMode=!0)}o.unresolved=a,o.boundingBoxes=n,o.recursiveDepthPlottingError=s;let l=1/0,c=-1/0;for(let d of t){if(d.graphMode!==6)continue;let u=d.sampledDomain;u&&(l=Math.min(l,u.min),c=Math.max(c,u.max))}isFinite(l)&&(o.__workerSampledDomainMin=l),isFinite(c)&&(o.__workerSampledDomainMax=c);return;case"table":for(let d=0;d<t.length;d++){let u=t[d];"boundingBox"in u&&u.boundingBox&&(n||(n=[]),n.push(u.boundingBox))}n&&gL(o,e,n);return;default:return}}function e2(r,e){var t,i,o,n=__dcg_shared_module_exports__['i'](r.expressionAnalysis);for(t in e){if(!e.hasOwnProperty(t))continue;o=e[t],i=Rl(r,t);let a={isGraphable:!!o.is_graphable,isError:!!o.error,errorMessage:o.error?r.controller.unpack(o.error):void 0};if(i)switch(i.type){case"expression":if(hT(i,o),o.zero_values&&o.zero_values.length===1){let c=o.zero_values[0].val;__dcg_shared_module_exports__['Sa'](c)&&(a.evaluation={type:"Number",value:c},a.evaluationDisplayed=!0),__dcg_shared_module_exports__['Qa'](c)&&c.every(__dcg_shared_module_exports__['Sa'])&&(a.evaluation={type:"ListOfNumber",value:c.slice()},a.evaluationDisplayed=!0)}else o.hasOwnProperty("constant_value")&&__dcg_shared_module_exports__['Sa'](o.constant_value)&&(a.evaluation={type:"Number",value:o.constant_value},a.evaluationDisplayed=!1);break;case"image":BL(i,o);break;case"table":QP(i,o);break;case"folder":case"text":break;default:return i}else t===r.ticker.id&&ZL(r.ticker,o);let s=cq(r,t);if(s)ML(r.controller,s,o);else{let l=r.__toolPreviewIdToModel[t];l&&hT(l,o)}t.startsWith(tg)&&vO(r.controller.getGeometryToolbarModel(),t,o),t!==r.ticker.id&&!t.startsWith(tg)&&(n[t]=a)}bT(r),ib(r),Nv(r),r.expressionAnalysis=n}function lr(r,e){r.selectedItemMap={},e&&(r.selectedItemMap[e.id]=!0)}function xT(r,e){r.selectedItemMap[e]?delete r.selectedItemMap[e]:r.selectedItemMap[e]=!0}function wT(r,e){r.selectedItemMap={...e}}function Fd(r,e,t,i){if(e===t)return;let o=r.__itemModelArray.splice(e,i);e<t&&(t=t-i+1),r.__itemModelArray.splice.apply(r.__itemModelArray,[t,0,...o]),uu(r)}function _a(r,e,t){var i=String(e.id);if(r.__itemIdToModel.hasOwnProperty(i))throw Error("Item with id '"+i+"' is already in list");r.__itemIdToModel[i]=e,r.__itemModelArray.splice(t,0,e),uu(r)}function ds(r,e){_a(r,e,ob(r))}function ug(r,e){let t=[];var i=r.__itemModelArray[e];if(i.type==="folder"){let n=0,a=e+1;for(let s=a;s<r.__itemModelArray.length;s++){var o=r.__itemModelArray[s];if(o.type==="folder"||o.folderId!==i.id)break;An(o)&&lr(r,void 0),o.readonly?(s>a&&(r.__itemModelArray[s]=r.__itemModelArray[a],r.__itemModelArray[a]=o),Po(o,""),a+=1):(delete r.__itemIdToModel[o.id],delete r.expressionAnalysis[i.id],n+=1)}n>0&&t.push(...r.__itemModelArray.splice(a,n))}return An(i)&&lr(r,void 0),t.push(...r.__itemModelArray.splice(e,1)),delete r.__itemIdToModel[i.id],delete r.expressionAnalysis[i.id],bT(r),t.some(n=>ya(n))&&ib(r),uu(r),t}function t2(r){return r.__anyDependsOnRandomSeed}function r2(r){return r.__anyIsAction}function i2(r){return r.__anyUnmutedTones}function hg(r,e){let t=Rl(r,e);return t?ug(r,t.index):[]}function zv(r){let e=pg(r);if(!e)return!1;let t=cu(r,e.index);return t?(lr(r,t),t.index===ob(r)-1&&e.type==="expression"&&Nl(e)&&ug(r,t.index),!0):!1}function Kv(r){let e=pg(r);if(!e)return!1;let t=du(r,e.index);return t?(lr(r,t),!0):!1}function An(r){return!!r.controller.getListModel().selectedItemMap[r.id]}function nb(r,e){r.dragState=e}function ab(r){switch(r.type){case"expression":return Uv(r);case"image":return Cv(r);case"table":return[];case"text":return[];case"folder":return[];default:return r}}function o2(r,e){for(let t of mT(r))t.type==="folder"&&Hh(t,e)}function gg(r){return r?r.type==="image"&&su(r)||r.type==="expression"&&fn(r):!1}var uq=30,hq=10,Zv=__dcg_shared_module_exports__['hd'].RED,eC=__dcg_shared_module_exports__['hd'].BLUE,tC=__dcg_shared_module_exports__['hd'].GREEN,rC=__dcg_shared_module_exports__['hd'].PURPLE,iC=__dcg_shared_module_exports__['hd'].ORANGE,oC=__dcg_shared_module_exports__['hd'].BLACK;function hu(r,e){switch(e){case __dcg_shared_module_exports__['hd'].RED:return r.s("graphing-calculator-text-color-red");case __dcg_shared_module_exports__['hd'].BLUE:return r.s("graphing-calculator-text-color-blue");case __dcg_shared_module_exports__['hd'].GREEN:return r.s("graphing-calculator-text-color-green");case __dcg_shared_module_exports__['hd'].PURPLE:return r.s("graphing-calculator-text-color-purple");case __dcg_shared_module_exports__['hd'].ORANGE:return r.s("graphing-calculator-text-color-orange");case __dcg_shared_module_exports__['hd'].BLACK:return r.s("graphing-calculator-text-color-black");case __dcg_shared_module_exports__['hd'].GRAY:return r.s("graphing-calculator-text-color-gray");default:return r.s("graphing-calculator-text-color-unknown")}}var vT=r=>{if(!Array.isArray(r))return[r];let e=Array(Math.min(r.length,hq));for(let t=0;t<e.length;t++)e[t]=r[Math.round(t*r.length/e.length)];return e};function a2(r,e){switch(r.type){case"single-color":case"color-array":return vT(r.value).every(i=>$k(i,e));case"shader":case"image":return!1;default:let t=r;throw new Error("Unexpected ColorSwatchSpec type: "+t.type)}}function nC(r,e,t=Wk){switch(r.type){case"single-color":case"color-array":return vT(r.value).some(o=>$k(o,e,t));case"shader":case"image":return!0;default:let i=r;throw new Error("Unexpected ColorSwatchSpec type: "+i.type)}}var xg=r=>{switch(r.type){case"single-color":return r.value;case"color-array":let e=vT(r.value);if(e.length===0)return __dcg_shared_module_exports__['hd'].BLACK;if(e.length===1)return r.value[0];let t=uq/e.length;return`linear-gradient(to right${e.reduce((o,n,a)=>`${o}, ${n} ${a*t}px, ${n} ${(a+1)*t}px`,"")})`;case"shader":return"#808080";case"image":return'url("'+r.value+'")';default:let i=r;throw new Error("Unexpected ColorSwatchSpec type: "+i.type)}};var gq=0;function mq(){return"abstract_item_"+gq++}function Ll(r){return{guid:mq(),controller:r,index:-1,displayIndex:-1,secretIndex:-1,isHiddenFromUI:!0,renderShell:!0}}function aC(r,e){r.secret=e}function gb(r,e){r.readonly=e}function Po(r,e){r.type!=="folder"&&(r.folderId=e)}function Ol(r){r.isHiddenFromUI=gT(r)}function l2(r){return r.isHiddenFromUI||r.filteredBySearch?"none":r.renderShell?"shell":"render"}function Kc(r){let e=mb(r),t=e.type==="color-array"?{type:"single-color",value:e.value[0]}:e;return xg(t)}function mb(r){if(!r.colorLatex)return{type:"single-color",value:r.color};if(/^data:image/.test(r.colorLatex))return{type:"image",value:r.colorLatex};let e,t;return r.type==="expression"?(e=d2(r),t=c2(r)):r.type==="table-column"&&(e=JP(r),t=HP(r)),t&&e?Array.isArray(e)?{type:"color-array",value:e}:{type:"single-color",value:e}:{type:"single-color",value:r.color}}function ba(r){return r.type==="expression"||r.type==="image"||r.type==="table-column"?!!r.disableGraphInteractions:!1}function fb(r){let e=__dcg_shared_module_exports__['nc'](r);if(e.type!=="Assignment")return NaN;if(e._expression.type!=="Constant")return NaN;if(!new __dcg_shared_module_exports__['md']({enableGeometry:!1,enable3d:!1,beta3d:!1,scales:void 0}).validLHS(e._symbol))return NaN;if(__dcg_shared_module_exports__['gb'][e._symbol])return NaN;let i=e._expression.asValue();return typeof i=="number"?i:NaN}Fa();var vg=class{suspend(){return new Promise((e,t)=>{if(this.audioContext)this.audioContext.suspend().then(()=>{e()}).catch(i=>{Mi(i),t(i)});else{e();return}})}getResumedAudioContext(){return new Promise((e,t)=>{if(!this.audioContext){let i=window.AudioContext||window.webkitAudioContext;if(!i){t();return}try{this.audioContext=new i({latencyHint:"interactive",sampleRate:44100})}catch(o){t(o)}}this.audioContext&&(this.audioContext.state!=="running"?this.audioContext.resume().then(()=>{e({audioContext:this.audioContext,poiBuffer:this.poiBuffer})}).catch(i=>{Mi(i),t(i)}):this.audioContext.resume().then(()=>{e({audioContext:this.audioContext,poiBuffer:this.poiBuffer})}).catch(i=>{Mi(i),t(i)}))})}};Pc();var sC=class{constructor(e,t){this.cb=e;this.document=t;this.observedAriaLiveElements=new WeakMap;this.destroyed=!1;this.onAriaLabelFocus=e=>{let t=e.target;if(this.isElement(t)){let i=t.getAttribute("aria-label");i&&this.cb(i,"label")}};this.document.documentElement.addEventListener("focus",this.onAriaLabelFocus,!0),this.ariaLiveContentObserver=new MutationObserver(i=>this.handleAriaLiveContentMutations(i)),t.documentElement.querySelectorAll('[aria-live="assertive"]').forEach(i=>this.startObservingAriaLiveElement(i)),this.treeObserver=new MutationObserver(i=>this.handleDocumentTreeMutations(i)),this.treeObserver.observe(t.documentElement,{childList:!0,subtree:!0,attributeFilter:["aria-live"]})}destroy(){this.destroyed=!0,this.document.documentElement.removeEventListener("focus",this.onAriaLabelFocus,!0),this.ariaLiveContentObserver.disconnect()}isObservingElement(e){return!!this.observedAriaLiveElements.get(e)}handleAriaLiveContentMutations(e){var i;let t=new Map;for(let o of e){if(!this.observedAriaLiveElements.get(o.target))continue;let n=t.get(o.target);n||(n=[],t.set(o.target,n)),n.push(o)}for(let[o,n]of t){let a=o.cloneNode(!0),s=[a.textContent||""];for(let l=n.length-1;l>=0;l--){let c=n[l];switch(c.type){case"attributes":{c.attributeName!==null&&a.setAttribute(c.attributeName,c.oldValue||""),s.push(a.textContent||"");break}case"characterData":{c.oldValue!==null&&(a.textContent=c.oldValue),a.textContent&&a.textContent!==s[s.length-1]&&s.push(a.textContent);break}case"childList":{if(c.addedNodes.length>1||c.removedNodes.length>1)throw new Error(`Expected at most one removed node and one added node, but got ${c.removedNodes.length} removed nodes and ${c.addedNodes.length} added nodes`);c.addedNodes.length===1&&((i=a.firstChild)==null||i.remove()),c.removedNodes.length===1&&c.removedNodes.forEach(d=>a.appendChild(d.cloneNode(!0))),a.textContent&&a.textContent!==s[s.length-1]&&s.push(a.textContent);break}}}for(let l of s.reverse())this.cb(l,"alert")}}startObservingAriaLiveElement(e){this.destroyed||e.getAttribute("aria-live")==="assertive"&&(this.observedAriaLiveElements.get(e)||(this.observedAriaLiveElements.set(e,!0),e.textContent&&this.cb(e.textContent,"alert"),this.ariaLiveContentObserver.observe(e,{attributes:!0,characterData:!0,childList:!0,attributeOldValue:!0,characterDataOldValue:!0})))}stopObservingAriaLiveElement(e){this.observedAriaLiveElements.set(e,!1)}handleDocumentTreeMutations(e){for(let t of e)t.addedNodes.forEach(i=>{this.isElement(i)&&i.getAttribute("aria-live")==="assertive"&&this.startObservingAriaLiveElement(i)}),this.isElement(t.target)&&t.attributeName==="aria-live"&&(t.target.getAttribute("aria-live")==="assertive"?this.startObservingAriaLiveElement(t.target):this.stopObservingAriaLiveElement(t.target)),t.removedNodes.forEach(i=>{this.isElement(i)&&(this.stopObservingAriaLiveElement(i),i.querySelectorAll('[aria-live="assertive"]').forEach(o=>this.stopObservingAriaLiveElement(o)))})}isElement(e){var i;let t=(i=this.document.defaultView)==null?void 0:i.Element;return t?e instanceof t:!1}};var zl,lC=[],p2="",fq;function Wi(){zl&&(zl.textContent="")}function Ye(r){lC.push(r)}function ie(r){if(r!==void 0&&Ye(r),zl&&lC.length>0){let e=lC.join(" ").replace(/ +(?= )/g,"");zl.setAttribute("aria-relevant",p2===e&&xi?"all":"additions text"),zl.textContent=e,p2=e}lC.length=0}function bq(){zl=document.createElement("p"),zl.setAttribute("aria-live","assertive"),zl.setAttribute("aria-atomic","true"),zl.classList.add("dcg-aria-alert"),document.body.appendChild(zl),Ao().logAria&&(fq=new sC((e,t)=>__dcg_shared_module_exports__['pd'].log(`[aria ${t}] ${e}`),document))}EP(bq);var yq=.25;function u2(r,e){return yq*__dcg_shared_module_exports__['rb'](r,0,xq(e))}function xq(r){return r<=0||!isFinite(r)?0:__dcg_shared_module_exports__['rb'](660/r,0,10)}var en,wq="data:audio/mpeg;base64,//uQx"+"A".repeat(23)+"WGluZwAAAA8AAAACAAACcQCA"+"gICA".repeat(16)+"/".repeat(66)+"8AAABhTEFNRTMuMTAwA8MAAAAAAAAAABQgJAUHQQAB9AAAAnGMHkkI"+"A".repeat(320)+"//sQxAADgnABGiAAQBCqgCRMAAgEAH"+"/".repeat(15)+"7+n/9FTuQsQH//////2NG0jWUGlio5gLQTOtIoeR2WX////X4s9Atb/JRVCbBUpeRUq"+"/".repeat(18)+"9RUi0f2jn/+xDECgPCjAEQAABN4AAANIAAAAQVTEFNRTMuMTAw"+"V".repeat(97)+"Q==";function vq(){en&&(en.src="about:blank",en.load(),en=void 0)}function cC(){if(!(!La&&!Ml)){if(!en){let r=document.createElement("div");en=document.createElement("audio"),r.appendChild(en),en.setAttribute("x-webkit-airplay","deny"),en.controls=!1,en.disableRemotePlayback=!0,en.preload="auto",en.loop=!0,en.src=wq,en.load()}en.paused&&en.play().catch(vq)}}function dC(){en&&en.pause()}var h2=44100,Kl=Hw?.02:0,yb=class{constructor(e){this.expressionSynthMap=new Map;this.useOfflineContext=!1;this.globalUnmuteState=!1;this.hasEverInteractedWithMute=!1;this.maxGain=.5;this.handleVisibilityChange=()=>{!this.audioContext||this.isGlobalMuted()||document.visibilityState==="hidden"&&this.controller.dispatch({type:"mute-global"})};this.handleBeforeUnload=()=>{if(!this.audioContext||this.isGlobalMuted())return;let e=this.audioContext;e instanceof AudioContext&&setTimeout(()=>{if(e.state!=="closed")try{e.close()}catch(t){}},100),this.controller.dispatch({type:"mute-global"}),this.controller.runAfterDispatch(()=>this.clearAudioContext())};this.audioContextManager=new vg,this.controller=e,document.addEventListener("visibilitychange",this.handleVisibilityChange),window.addEventListener("beforeunload",this.handleBeforeUnload)}unload(){this.handleBeforeUnload()}setOfflineAudio(){this.useOfflineContext=!0}prepareToRenderAudio(e){this.useOfflineContext&&(this.offlineBuffer=void 0,this.audioContext=new OfflineAudioContext(1,e*h2,h2),this.audioContext.addEventListener("complete",async t=>{this.offlineBuffer=t.renderedBuffer,this.clearAudioContext()}),this.createMainNodes(),this.recomputeAudio())}getHasEverInteractedWithMute(){return this.hasEverInteractedWithMute}registerMuteInteraction(){this.hasEverInteractedWithMute=!0}async startRendering(){return this.audioContext.startRendering()}getRenderedBuffer(){return this.offlineBuffer}clearAudioContext(){for(let e of this.expressionSynthMap.values())e.tearDown();this.audioContext=void 0,this.expressionSynthMap=new Map}async spinUpAudioContext(){if(!this.useOfflineContext){if(this.audioContext)this.audioContext.state==="suspended"&&!this.useOfflineContext&&await this.audioContext.resume();else{let e=await this.audioContextManager.getResumedAudioContext();this.audioContext=e.audioContext}this.gainNode||this.createMainNodes()}}createMainNodes(){this.audioContext&&(this.gainNode=this.audioContext.createGain(),this.gainNode.gain.value=0,this.compressor=this.audioContext.createDynamicsCompressor(),this.compressor.threshold.value=-10,this.compressor.knee.value=4,this.compressor.ratio.value=20,this.compressor.attack.value=.01,this.compressor.release.value=.01,this.gainNode.connect(this.compressor),this.compressor.connect(this.audioContext.destination))}async _recomputeAudio(e){var t,i,o,n,a,s,l;if(e.length!==0&&!(this.nothingShouldSound()&&((t=this.audioContext)==null?void 0:t.state)!=="running")){if(this.useOfflineContext){if(!this.audioContext)return}else await this.spinUpAudioContext();if(this.nothingShouldSound()){if(this.expressionSynthMap.size>0){for(let c of this.expressionSynthMap.values())c.tearDown();this.expressionSynthMap.clear()}}else for(let c of e){let d=c.type==="expression"?c.formula.typed_constant_value:void 0,u=c.id;d&&!this.expressionSynthMap.has(u)&&this.expressionSynthMap.set(u,new pC(this,this.gainNode)),(i=this.expressionSynthMap.get(u))==null||i.updateFromValues(d),c.type==="remove"&&this.expressionSynthMap.has(u)?((o=this.expressionSynthMap.get(u))==null||o.tearDown(),this.expressionSynthMap.delete(u)):c.type==="expression"&&(xb(c)?(a=this.expressionSynthMap.get(u))==null||a.setGain(0):(n=this.expressionSynthMap.get(u))==null||n.setGain(this.maxGain))}this.audioContext&&(this.expressionSynthMap.size>0&&!this.isGlobalMuted()?(s=this.gainNode)==null||s.gain.setTargetAtTime(1,this.audioContext.currentTime+Kl,Uc):(l=this.gainNode)==null||l.gain.setTargetAtTime(0,this.audioContext.currentTime+Kl,Uc))}}nothingShouldSound(){return!this.globalUnmuteState||!this.hasAnyUnmutedTones()}recomputeAudio(){ib(this.controller.getListModel());let t=this.controller.getAllItemModels().filter(n=>sb(n)),i=[],o=new Set(t.map(n=>n.id));for(let n of this.expressionSynthMap.keys())o.has(n)||i.push({id:n,type:"remove"});this._recomputeAudio([...t,...i])}isGlobalMuted(){return!this.globalUnmuteState}someExpressionsShouldPlayTones(){var e,t;return(t=(e=this.controller)==null?void 0:e.getAllItemModels())==null?void 0:t.some(i=>sb(i))}hasAnyUnmutedTones(){return i2(this.controller.getListModel())}handleAction(e){var t,i,o,n;switch(e.type){case"mute-global":{dC(),this.globalUnmuteState=!1,(i=(t=this.controller).logEvent)==null||i.call(t,{category:"tone",action:"mute-global"});break}case"unmute-global":{cC(),this.globalUnmuteState=!0,this.hasEverInteractedWithMute=!0,(n=(o=this.controller).logEvent)==null||n.call(o,{category:"tone",action:"unmute-global"});break}default:return e}this.recomputeAudio()}handleMuteKeyShortcut(){this.controller.toneItemsExist()?this.isGlobalMuted()?(this.controller.dispatch({type:"unmute-global"}),Ye(this.controller.s("graphing-calculator-narration-unmuted")),this.someExpressionsShouldPlayTones()||Ye(this.controller.s("graphing-calculator-narration-no-playing-tones"))):(this.controller.dispatch({type:"mute-global"}),Ye(this.controller.s("graphing-calculator-narration-muted"))):Ye(this.controller.s("graphing-calculator-narration-no-tone-expressions")),ie()}};var Uc=.005,Cq=15e-5,Cg=20,Sg=2e4,CT=class{constructor(e,t){e.audioContext&&(this.audioContext=e.audioContext,this.oscillator=this.audioContext.createOscillator(),this.oscillator.type="sine",this.gain=this.audioContext.createGain(),this.gain.gain.value=0,this.oscillator.connect(this.gain),this.gain.connect(t),this.oscillator.start())}stop(e=0){this.gain.gain.setTargetAtTime(0,this.audioContext.currentTime+e+Kl,Uc),setTimeout(()=>{this.oscillator.stop()},1e3*(2*Uc+e+Kl)+1)}setFrequencyAndGain(e,t){(!isFinite(e)||!isFinite(t)||e>Sg||e<Cg)&&(t=0);let i=u2(t,e);i>0&&this.oscillator.frequency.setTargetAtTime(__dcg_shared_module_exports__['rb'](e,Cg,Sg),this.audioContext.currentTime+Kl,Cq),this.gain.gain.setTargetAtTime(i,this.audioContext.currentTime+Kl,Uc)}},pC=class{constructor(e,t){e.audioContext&&(this.audioContext=e.audioContext,this.gain=this.audioContext.createGain(),this.gain.gain.value=0,this.gain.connect(t),this.synthesizers=[])}updateFromValues(e){var t,i,o;if(e&&e.valueType===__dcg_shared_module_exports__['S'])this.synthesizers.length>1?(this.tearDownSynthesizers(this.synthesizers.slice(1)),this.synthesizers.length=1):this.synthesizers.length===0&&(this.synthesizers=[this.makeSynth()]),(t=this.synthesizers[0])==null||t.setFrequencyAndGain(e.value[0],e.value[1]);else if(e&&e.valueType===__dcg_shared_module_exports__['T']){if(this.synthesizers.length>e.value.length&&(this.tearDownSynthesizers(this.synthesizers.slice(e.value.length)),this.synthesizers.length=e.value.length),e.value.length>this.synthesizers.length)for(let n=this.synthesizers.length;n<e.value.length;n++)this.synthesizers.push(this.makeSynth());for(let n=0;n<e.value.length;n++)this.synthesizers[n].setFrequencyAndGain(e.value[n][0],e.value[n][1])}else this.tearDownSynthesizers(this.synthesizers),this.synthesizers=[];this.synthesizers.length>0?(i=this.gain)==null||i.gain.setTargetAtTime(1,this.audioContext.currentTime+Kl,Uc):(o=this.gain)==null||o.gain.setTargetAtTime(0,this.audioContext.currentTime+Kl,Uc)}makeSynth(){return new CT(this,this.gain)}tearDownSynthesizers(e){if(e)for(let t of e)t.stop()}setGain(e){this.gain.gain.setTargetAtTime(e,this.audioContext.currentTime+Kl,Uc)}tearDown(){this.tearDownSynthesizers(this.synthesizers),this.synthesizers=[]}};Fa();var ST=1e6;function uC(r){let e=gu(r);if(!e)return!1;switch(e){case"anonymous-function":case"function-reference":case"point-list-reference":case"recursive-function":return!0;case"point-list":return!1}}function gu(r){if(!r||r.type!=="expression")return;var e=r.formula;let t=r.formula.recursion,i=r.formula.function_definition,o=y2(r,i);if(t&&t.type==="iterative"&&t.signature.argTypes.length===1&&t.returnType===__dcg_shared_module_exports__['o']&&r.formula.function_definition&&o!==void 0&&isFinite(o)&&Math.abs(o)<ST)return"recursive-function";if(e.is_tableable&&e.table_info)return Bl(r)?e.table_info.by_reference?"point-list-reference":"point-list":e.table_info.by_reference?"function-reference":"anonymous-function"}function g2(r){let e=r.formula.table_info;if(!e)return;let t=[],i=[];if(e.values)for(let a=0;a<e.values.length;a++){var o=e.values[a][0];t.push(isNaN(o)?"":__dcg_shared_module_exports__['wc'](o));var n=e.values[a][1];i.push(isNaN(n)?"":__dcg_shared_module_exports__['wc'](n))}return{headers:[e.independent_variable,e.dependent_column],values:[t,i]}}function m2(r){let e=r.formula.table_info;if(e)return{headers:[e.dependent_column+".x",e.dependent_column+".y"],values:[[],[]]}}var f2=["-2","-1","0","1","2"];function b2(r){let e=r.formula.table_info;if(e)return{headers:[e.independent_variable,e.dependent_column],values:[f2,[]]}}function y2(r,e){var t,i,o;if(e)return(o=(i=(t=r.formula.recursion)==null?void 0:t.recursiveStructure)==null?void 0:i.baseCaseInfo[e])==null?void 0:o.min}function x2(r){let e=r.formula.function_definition,t=r.formula.recursion;if(!e||!t)return;let i=y2(r,e);if(i===void 0)return;let o=[];for(let n=i;n<=i+4;n++)o.push(`${n}`);return{headers:["x",`${__dcg_shared_module_exports__['bb'](e)}\\left(x\\right)`],values:[o,[]]}}function w2(r){let e=r.formula.function_definition;return e?{headers:["x",`${__dcg_shared_module_exports__['bb'](e)}\\left(x\\right)`],values:[f2,[]]}:void 0}var vb=4;function DT(r){return r===void 0?NaN:+r}function hs(r){return!!r&&r.type==="expression"&&!!r.formula&&!!r.formula.typed_constant_value&&!!r.formula.geometry}var S2={smallCutoff:1e-6,bigCutoff:1e9,digits:12};function E2(r){let e=r.formula;return e?r.controller.isDecimalToFractionEnabled()&&e.hasOwnProperty("constant_value")&&__dcg_shared_module_exports__['Za'](DT(e.constant_value)):!1}function hC(r){return!!(r.formula&&r.formula.is_graphable)}function kT(r){let e=r.formula;if(!e)return!1;let i=!(e.operator==="="&&r.controller.isThreeDMode()&&(e.assignment==="x"||e.assignment==="y"||e.assignment==="z"||e.assignment==="r"))&&e.is_evaluable&&e.zero_values&&e.zero_values.length>0&&typeof e.zero_values[0].val!="boolean"&&!(__dcg_shared_module_exports__['nc'](r.latex)instanceof __dcg_shared_module_exports__['lb']),o=E2(r)&&zd(r),n=!!e.rgb_value&&r.formula.assignment;return i||o||n}function mu(r){var a,s,l;let e=(a=r.formula)==null?void 0:a.recursion;if(!e||e.type==="iterative"||!e.recursiveStructure)return[];if(e.recursionGroup.length>1)return[];let{maxRecursiveCallOffsets:t,parameterSymbols:i,baseCaseInfo:o}=e.recursiveStructure,n=[];for(let c in t){if(((s=i[c])==null?void 0:s.length)!==1)continue;let d=o[c];if(d&&Math.abs(d.min)>ST)continue;let u=t[c],h,g;d?(h=d.min+u-1,g=d.min+d.consecutiveCount):(h=u,g=1);for(let b=g;b<=h;b++)if(!((l=d==null?void 0:d.additional)!=null&&l.includes(b))&&(n.push(`${__dcg_shared_module_exports__['bb'](c)}\\left(${b}\\right)`),n.length>vb))return[]}return n}function TT(r){let e=r.formula;return kT(r)?e.zero_values&&e.zero_values.length?e.zero_values[0].val:e.rgb_value?e.rgb_value:e.constant_value:E2(r)?r.formula.constant_value:NaN}function Cb(r){var e=r.formula.ttest_results;if(!(!e||!isFinite(e.lessThan)))return{lessThan:e.lessThan,greaterThan:e.greaterThan,notEqual:e.notEqual}}function Eg(r){var e=r.formula.stats_results;if(!(!e||!isFinite(e.min)))return{min:e.min,q1:e.q1,median:e.median,q3:e.q3,max:e.max}}function Bd(r,e){if(!isFinite(e))return r;let t=r.indexOf("=")+1;return xr(r.slice(t),!1)===e?r:r.slice(0,t)+__dcg_shared_module_exports__['xc'](e)}function Nl(r){var e=r.latex||"",t=r.label||"",i=e+t;return i.split(" ").join("")===""}function Zr(r,e={isReverseDrag:!1}){let t=r.dragMode==="AUTO"&&r.formula.default_drag_mode!==void 0?r.formula.default_drag_mode:r.dragMode;return r.controller.isThreeDMode()&&(t="NONE"),r.dragMode==="AUTO"&&!e.isReverseDrag&&Zo(r)&&(t="NONE"),__dcg_shared_module_exports__['j'](t,r.formula.move_strategy)}function kq(r){let e=Zr(r);r.interactiveLabel&&e!=="NONE"&&Db(r,!1)}function us(r,e,t){if(!r.sliderExists)return NaN;let i=Ra(r),o=Ys(r),n=gs(r);if(t&&t.overwriteStep!==void 0&&(n=t.overwriteStep),e=__dcg_shared_module_exports__['$b']({target:e,hardMin:r.slider.hardMin?i:void 0,hardMax:r.slider.hardMax?o:void 0,step:n}),!t||!t.ignoreSoftLimits){if(!r.slider.hardMin&&e<i)return i;if(!r.slider.hardMax&&e>o)return o}return e}function IT(r,e,t={}){if(!r.sliderExists)return NaN;let i=Na(r),o=Ra(r),n=Ys(r),a=gs(r);t.overwriteStep===void 0&&(t.overwriteStep=a||(n-o)/20);var s=0;switch(e){case"min":return us(r,o);case"max":return us(r,n);case"up":s=1;break;case"down":s=-1;break;case"bigup":s=5;break;case"bigdown":s=-5;break;default:return e}let l=i;for(var c=0;c<20;c++){let d=c/3*t.overwriteStep,u=i;if(s>0)i=us(r,l+d,t),i>u&&(s-=1);else if(s<0)i=us(r,l-d,t),i<u&&(s+=1);else break}return i}function gC(r,e){if(r.sliderExists){r.slider.isPlaying&&xa(r,!1);var t=us(r,e,{ignoreSoftLimits:!0});r.latex=Bd(r.latex,t)}}function D2(r,e,t){if(r.sliderExists){r.slider.isPlaying&&xa(r,!1),kg(r);var i=IT(r,e,t);r.latex=Bd(r.latex,i)}}function k2(r,e){if(r.sliderExists){r.slider.isPlaying&&xa(r,!1);var t=us(r,e);r.latex=Bd(r.latex,t)}}function T2(r,e){if(!r.sliderExists||r.resetSliderAnimationTargetValue)return;var t=r.sliderLastTickTime;if(r.sliderLastTickTime=e,t===void 0)return;var i=e-t;let o=Ra(r),n=Ys(r),a=gs(r),s=r.slider.animationPeriod,l=r.slider.loopMode;if(isNaN(r.sliderAnimationTargetValue)){var c=Na(r);isNaN(c)||(r.sliderAnimationTargetValue=c)}var d=a?a/2:0;if(l==="LOOP_FORWARD_REVERSE")r.sliderAnimationTargetValue>=n?Lo(r,{playDirection:-1}):r.sliderAnimationTargetValue<=o&&Lo(r,{playDirection:1});else if(l==="LOOP_FORWARD")Lo(r,{playDirection:1}),r.sliderAnimationTargetValue>=n+d&&(r.sliderAnimationTargetValue=o-d);else if(l==="PLAY_ONCE")Lo(r,{playDirection:1});else if(l==="PLAY_INDEFINITELY")Lo(r,{playDirection:1});else throw new Error("Unexpected slider loop mode: "+l);isFinite(i)||(i=0);var u,h;if(l==="PLAY_INDEFINITELY")u=i/(s/4),a&&(u*=a),r.sliderAnimationTargetValue+=u,h=r.sliderAnimationTargetValue,a||(h=Sr(h-u*.1,h+u*.1)),h=us(r,h,{ignoreSoftLimits:!0}),r.latex=Bd(r.latex,h);else{if(i=Math.min(i,s/10),u=(n-o)*i/s,r.sliderAnimationTargetValue+=u*r.slider.playDirection,r.sliderAnimationTargetValue=Math.max(o-d,Math.min(n+d,r.sliderAnimationTargetValue)),h=r.sliderAnimationTargetValue,!a){let g=u/i*16.666666666666668;h=Sr(h-g*.1,h+g*.1)}h=us(r,h),r.latex=Bd(r.latex,h)}}function Uv(r){let e=r.formula;return e?e.is_single_identifier?[]:e.variables.map(t=>__dcg_shared_module_exports__['bb'](t))||[]:[]}function hT(r,e){r.formula=e,r.error=e.error,r.unresolved=!1,r.recursiveDepthPlottingError=!1,e.is_slider?(!r.sliderExists||r.resetSliderAnimationTargetValue)&&(r.sliderAnimationTargetValue=Na(r),r.sliderDragging=!1,r.sliderExists=!0):r.sliderExists=!1,r.resetSliderAnimationTargetValue=!1;var t={};e.is_regression&&(t=e.regression.parameters,r.residualVariable=e.regression.residualVariable,r.controller.areLogModeRegressionsForced()&&(r.isLogModeRegression=!0)),__dcg_shared_module_exports__['Oa'](r.regressionParameters,t)||(r.regressionParameters=t)}function ya(r){var e,t;return r.type==="expression"&&(((e=r.formula.typed_constant_value)==null?void 0:e.valueType)===__dcg_shared_module_exports__['S']||((t=r.formula.typed_constant_value)==null?void 0:t.valueType)===__dcg_shared_module_exports__['T'])}function MT(r){var t,i,o,n;if(!ya(r)||((t=r.formula.typed_constant_value)==null?void 0:t.valueType)===__dcg_shared_module_exports__['T']||((i=r.formula.typed_constant_value)==null?void 0:i.valueType)===__dcg_shared_module_exports__['S']&&((o=r.formula.typed_constant_value)==null?void 0:o.value[0])>=Cg&&((n=r.formula.typed_constant_value)==null?void 0:n.value[0])<=Sg)return!1;let e=__dcg_shared_module_exports__['nc'](r.latex);return!!(e&&e._dependencies&&e._dependencies.length===1)}function xb(r){var e;return!!r.hidden||!!((e=Yn(r))!=null&&e.hidden)}function sb(r){return!ya(r)||xb(r)?!1:r.formula.typed_constant_value.valueType===__dcg_shared_module_exports__['S']?r.formula.typed_constant_value.value[1]>0:r.formula.typed_constant_value.valueType===__dcg_shared_module_exports__['T']?r.formula.typed_constant_value.value.some(e=>e[1]>0):!1}function Tq(r){if(r.shouldGraph=!Zo(r),r.folderId===__dcg_shared_module_exports__['Rc']){let e=r.controller.getExpressionIdForIdentifier(r.controller.getHoveredOrFocusedTokenIdentifier())===r.id,t=r.controller.isItemSelected(r.id);(e||t||r.controller.getGhostMode())&&(r.shouldGraph=!0)}}function Zo(r){var t;if(!r)return!1;if(r.hidden)return!0;if((t=r==null?void 0:r.formula)!=null&&t.expression_type&&Ig(r))return!0;let e=Yn(r);return!!(e&&e.hidden)}function Iq(r){let e=r.formula&&r.formula.raw_slider_latex;if(!r.sliderExists||r.latex!==e){r.cachedDisplayLatex={storedLatex:r.latex,valueLatex:r.latex};return}let{latex:t}=r;if(r.cachedDisplayLatex.storedLatex!==t){r.cachedDisplayLatex={storedLatex:r.latex,valueLatex:r.latex};return}let i=A2(r);if(isFinite(i)){let o=r.controller.getFocusLocation();o&&o.type==="expression"&&o.id===r.id||(r.cachedDisplayLatex.valueLatex=Bd(r.latex,i))}}function Sb(r){return r.cachedDisplayLatex.valueLatex}function I2(r,e){return __dcg_shared_module_exports__['Va'](r,e).latex}function mC(r,e){return r.slider.hardMin?r.slider.min:I2(Ra(r),e)}function M2(r,e){return r.slider.hardMax?r.slider.max:I2(Ys(r),e)}function Ra(r){if(r.slider.hardMin){let e=r.formula.slider_min_number;return isFinite(e)?e:NaN}else{let e=r.controller.isDegreeMode(),t=xr(r.slider.min,e),i=Na(r),o=gs(r),n=r.slider.hardMax?r.formula.slider_max_number:void 0,s=r.controller.is3dProduct()?__dcg_shared_module_exports__['Zb'].xmin:-10;if(t<s&&(s=t),i<s&&(s=i),n<s&&(s=n),o){let l=__dcg_shared_module_exports__['$b']({target:s,hardMin:void 0,hardMax:n,step:o});l<=s?s=l:s=l-o}return s}}function Ys(r){if(r.slider.hardMax){let e=r.formula.slider_max_number;return isFinite(e)?e:NaN}else{let e=r.controller.isDegreeMode(),t=xr(r.slider.max,e),i=Na(r),o=gs(r),n=r.slider.hardMin?r.formula.slider_min_number:void 0;return __dcg_shared_module_exports__['ac']({storedMax:t,sliderValue:i,step:o,hardMin:n,is3d:r.controller.is3dProduct()})}}function gs(r){return r.formula.slider_step_number}function A2(r){if(!r.formula||!r.formula.is_slider)return;let e=r.formula.constant_value;if(e!==void 0)return+e}function Na(r){let e=r.formula&&r.formula.raw_slider_latex;if(r.latex!==e)return fb(r.latex);let t=A2(r);return isFinite(t)?t:NaN}function AT(r){return r.slider.loopMode!=="PLAY_ONCE"?!1:Na(r)>=Ys(r)}function G2(r,e){return r.formula.viz_valids?!!r.formula.viz_valids[e]:!1}function qc(r,e){return r.vizProps[e]}function V2(r,e,t){r.vizProps={...r.vizProps,[e]:t}}function Dg(r,e){if(e.type==="inert")r.disableGraphInteractions=e.disableGraphInteractions,e.disableGraphInteractions&&(r.dragMode="NONE",r.clickableInfo={...r.clickableInfo,enabled:!1},r.editableLabelMode="NONE",r.interactiveLabel=!1);else if(e.type==="drag-mode"){let t=e.dragMode;r.dragMode=t,t!=="NONE"&&(r.disableGraphInteractions=!1),r.movablePointSize!==r.pointSize&&(t==="NONE"?r.pointSize=r.movablePointSize:r.movablePointSize=r.pointSize)}else e.type==="clickable"?(r.clickableInfo=e.clickableInfo,e.clickableInfo.enabled&&(r.disableGraphInteractions=!1)):e.type==="editable-label"?(r.editableLabelMode=e.editable,e.editable!=="NONE"&&(r.disableGraphInteractions=!1)):e.type==="interactive-label"&&(r.interactiveLabel=e.interactive,e.interactive&&(r.disableGraphInteractions=!1))}function P2(r,e,t){Dg(r,{type:"clickable",clickableInfo:{...r.clickableInfo,[e]:t}})}function qv(r,e){Dg(r,{type:"clickable",clickableInfo:{...r.clickableInfo,latex:e}})}function fn(r){var e;return!!(r.clickableInfo.enabled&&rI(r)&&((e=r.formula.click_handler)==null?void 0:e.status)==="maybe-valid")}function GT(r){return!!(r&&r.type==="expression"&&fn(r))}function L2(r){return!!r.__workerNeedsDotplotXMode}function fC(r){return!!(r.formula&&r.formula.slider_min_valid)}function bC(r){return!!(r.formula&&r.formula.slider_max_valid)}function yC(r){return!!(r.formula&&r.formula.slider_step_valid)}function xC(r,e){var t;if(!e)throw new Error("Programming Error in test. Pass domain variable");return(t=r.formula.domains)==null?void 0:t.find(i=>i.variable===e)}function O2(r,e){if(!r.formula)return NaN;if(Ag(r)&&isFinite(r.__workerSampledDomainMin))return r.__workerSampledDomainMin;let t=xC(r,e),i=t==null?void 0:t.minNumber;return i!==void 0&&isFinite(i)?i:NaN}function _2(r,e){if(!r.formula)return NaN;if(Ag(r)&&isFinite(r.__workerSampledDomainMax))return r.__workerSampledDomainMax;let t=xC(r,e),i=t==null?void 0:t.maxNumber;return i!==void 0&&isFinite(i)?i:NaN}function F2(r,e){let t=xC(r,e);return t?t.minValid:!1}function R2(r,e){let t=xC(r,e);return t?t.maxValid:!1}function Hv(r,e){let t=r.cachedViewState;if((!e.stripDefaults||r.parametricDomain.min!==""||r.parametricDomain.max!=="")&&(t={...t,domain:{min:r.parametricDomain.min===""?"0":r.parametricDomain.min,max:r.parametricDomain.max===""?"1":r.parametricDomain.max}}),e.stripDefaults)return __dcg_shared_module_exports__['Yc'](t,{is3d:r.controller.is3dProduct()});if(t.points===void 0||t.lines===void 0||t.fill===void 0){let i=__dcg_shared_module_exports__['i'](t);return i.points===void 0&&delete i.points,i.lines===void 0&&delete i.lines,i.fill===void 0&&delete i.fill,i}return t}function Mq(r){let e=r.cachedViewState;e&&__dcg_shared_module_exports__['_c'](e,r)&&e.folderId===r.folderId&&e.color===r.color&&e.latex===r.latex&&e.showLabel===r.showLabel&&e.showAngleLabel===r.showAngleLabel&&e.label===r.label&&e.hidden===r.hidden&&e.secret===r.secret&&e.readonly===r.readonly&&e.disableGraphInteractions===r.disableGraphInteractions&&e.fill===r.fill&&e.points===r.points&&e.lines===r.lines&&e.extendTo3D===r.extendTo3D&&e.lineStyle===r.lineStyle&&e.arrowMode===r.arrowMode&&e.pointStyle===r.pointStyle&&e.dragMode===r.dragMode&&e.labelSize===r.labelSize&&e.labelOrientation===r.labelOrientation&&e.suppressTextOutline===r.suppressTextOutline&&e.interactiveLabel===r.interactiveLabel&&e.editableLabelMode===r.editableLabelMode&&e.residualVariable===r.residualVariable&&e.regressionParameters===r.regressionParameters&&e.isLogModeRegression===r.isLogModeRegression&&e.displayEvaluationAsFraction===r.displayEvaluationAsFraction&&e.slider===r.slider&&e.strictIntersection===r.strictIntersection||(r.cachedViewState={type:r.type,id:r.id,folderId:r.folderId,color:r.color,latex:r.latex,showLabel:r.showLabel,showAngleLabel:r.showAngleLabel,label:r.label,hidden:r.hidden,secret:r.secret,readonly:r.readonly,disableGraphInteractions:r.disableGraphInteractions,points:r.points,lines:r.lines,extendTo3D:r.extendTo3D,lineStyle:r.lineStyle,arrowMode:r.arrowMode,pointStyle:r.pointStyle,fill:r.fill,dragMode:r.dragMode,labelSize:r.labelSize,labelOrientation:r.labelOrientation,suppressTextOutline:r.suppressTextOutline,interactiveLabel:r.interactiveLabel,editableLabelMode:r.editableLabelMode,residualVariable:r.residualVariable,regressionParameters:r.regressionParameters,isLogModeRegression:r.isLogModeRegression,displayEvaluationAsFraction:r.displayEvaluationAsFraction,slider:r.slider,strictIntersection:r.strictIntersection,...__dcg_shared_module_exports__['Zc'](r)})}function VT(r,e){e&&kg(r),r.draggingOnGraphpaper=e}function Aq(r){var e=r.memoizedUndoRedoStateParams,t=r.cachedViewState,i=r.preTransientState;if(r.cachedUndoRedoFullState=t,e&&e.viewState===t&&e.preTransientState===i)return;r.memoizedUndoRedoStateParams={viewState:t,preTransientState:i};let o;i?o={...t,latex:i.latex,slider:{...t.slider,...i.slider}}:o={...t},delete o.regressionParameters,delete o.residualVariable,r.cachedUndoRedoDiffState=o}function Wv(r,e){let t=__dcg_shared_module_exports__['i'](__dcg_shared_module_exports__['Xc'](r,{is3d:e.is3dProduct(),defaultLogModeRegressions:e.areLogModeRegressionsDefault()})),{color:i}=t;return(!i||!Yh(i))&&(i=e.getNextColor()),{...t,...Ll(e),labelDropdownOpen:!1,formula:{error:void 0,operator:"=",variables:[]},error:void 0,unresolved:!1,color:i,pointStyle:t.pointStyle,lineStyle:t.lineStyle,arrowMode:t.arrowMode,displayEvaluationAsFraction:t.displayEvaluationAsFraction,shouldGraph:void 0,sliderDragging:void 0,sliderAnimationTargetValue:void 0,resetSliderAnimationTargetValue:!1,sliderLastTickTime:void 0,draggingOnGraphpaper:!1,cachedUndoRedoDiffState:void 0,cachedUndoRedoFullState:void 0,cachedParsableState:void 0,cachedViewState:void 0,cachedDisplayLatex:{storedLatex:"",valueLatex:""}}}function Gq(r){let e=Yn(r),t=!!(e&&e.hidden),i=r.cachedViewState,o=r.index,n=r.showLabel&&!t,a=r.showAngleLabel,s=r.shouldGraph,l=r.memoizedParsableStateParams;if(l&&l.viewState===i&&l.index===o&&l.showLabel===n&&l.showAngleLabel===a&&l.shouldGraph===s)return;r.memoizedParsableStateParams={viewState:i,index:o,showLabel:n,showAngleLabel:a,shouldGraph:s};let c=__dcg_shared_module_exports__['$c'](i);c.index=o,c.showLabel=n,c.showAngleLabel=a,c.shouldGraph=s,c.isInConstructionsFolder=r.folderId===__dcg_shared_module_exports__['Rc'],r.cachedParsableState=c}function $v(r,e){e(r.latex,"latex"),e(r.clickableInfo.latex,"clickableInfoLatex"),e(r.lineWidth,"lineWidth"),e(r.fillOpacity,"fillOpacity"),e(r.lineOpacity,"lineOpacity"),e(r.pointOpacity,"pointOpacity"),e(r.pointSize,"pointSize"),e(r.movablePointSize,"movablePointSize"),e(r.labelSize,"labelSize"),e(r.labelAngle,"labelAngle"),e(r.colorLatex,"colorLatex"),yu(r)&&(e(r.parametricDomain.min,"parametricDomainMin"),e(r.parametricDomain.max,"parametricDomainMax")),(d_(r)||c_(r))&&(e(r.parametricDomain3Du.min,"parametricDomain3DuMin"),e(r.parametricDomain3Du.max,"parametricDomain3DuMax"),e(r.parametricDomain3Dv.min,"parametricDomain3DvMin"),e(r.parametricDomain3Dv.max,"parametricDomain3DvMax")),(Ag(r)||MC(r))&&(e(r.polarDomain.min,"polarDomainMin"),e(r.polarDomain.max,"polarDomainMax")),(HT(r)||qT(r))&&e(r.resolution,"resolution"),Wc(r)&&(e(r.cdf.min,"cdfMin"),e(r.cdf.max,"cdfMax")),r.sliderExists&&(e(r.slider.min,"sliderMin"),e(r.slider.max,"sliderMax"),e(r.slider.step,"sliderStep")),r.residualVariable&&e(r.residualVariable,"residualVariable")}function Oo(r){return r.formula&&r.formula.assignment}function PT(r){return r.formula&&r.formula.shader}function Ii(r){let e=r.cachedAssignmentOrFunctionName;if(e&&e.latex===r.latex)return e.result;let t=tb(r.latex),i=t?{latex:t,identifier:__dcg_shared_module_exports__['cb'](t)}:void 0;return r.cachedAssignmentOrFunctionName={latex:r.latex,result:i},i}function LT(r){let e=r.cachedFunctionCallArgumentsLatex;if(e&&e.latex===r.latex)return e.parsedArgs;let t=cO(r.latex);return r.cachedFunctionCallArgumentsLatex={latex:r.latex,parsedArgs:t},t}function N2(r){var t,i;let e=(i=(t=r.formula)==null?void 0:t.typed_constant_value)==null?void 0:i.valueType;return e==null?!1:__dcg_shared_module_exports__['Z'](e)}function OT(r){var i;let e=(i=Ii(r))==null?void 0:i.latex;var t=e==null?void 0:e.match(/^(\\token\{\d+\})$/);if(t)return t[1]}function B2(r){var i,o;let e=(o=(i=r.formula)==null?void 0:i.typed_constant_value)==null?void 0:o.valueType,t=!1;if(e&&__dcg_shared_module_exports__['Z'](e)&&(t=!0,e=__dcg_shared_module_exports__['_'](e)),e==null||!__dcg_shared_module_exports__['$'](e))return"U";switch(e){case __dcg_shared_module_exports__['p']:return t?"P":"p";case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['H']:case __dcg_shared_module_exports__['F']:return t?"L":"l";case __dcg_shared_module_exports__['P']:return t?"V":"v";case __dcg_shared_module_exports__['D']:case __dcg_shared_module_exports__['B']:return t?"C":"c";case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:return t?"A":"a";case __dcg_shared_module_exports__['x']:return"P";case __dcg_shared_module_exports__['N']:return"T";default:return e}}function Vq(r){var t,i;let e=(i=(t=r.formula)==null?void 0:t.typed_constant_value)==null?void 0:i.valueType;if(e==null||(__dcg_shared_module_exports__['Z'](e)&&(e=__dcg_shared_module_exports__['_'](e)),!__dcg_shared_module_exports__['$'](e)))return"unknown";switch(e){case __dcg_shared_module_exports__['p']:return"point";case __dcg_shared_module_exports__['z']:return"segment";case __dcg_shared_module_exports__['H']:return"ray";case __dcg_shared_module_exports__['F']:return"line";case __dcg_shared_module_exports__['P']:return"vector";case __dcg_shared_module_exports__['D']:return"arc";case __dcg_shared_module_exports__['B']:return"circle";case __dcg_shared_module_exports__['J']:return"angle";case __dcg_shared_module_exports__['L']:return"directedangle";case __dcg_shared_module_exports__['x']:return"polygon";case __dcg_shared_module_exports__['N']:return"transformation";default:return e}return"unknown"}function _T(r){var t,i;let e=(i=(t=r.formula)==null?void 0:t.typed_constant_value)==null?void 0:i.valueType;if(e==null||(__dcg_shared_module_exports__['Z'](e)&&(e=__dcg_shared_module_exports__['_'](e)),!__dcg_shared_module_exports__['$'](e)))return"unknown";switch(e){case __dcg_shared_module_exports__['p']:return"point";case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['H']:case __dcg_shared_module_exports__['F']:case __dcg_shared_module_exports__['P']:return"line";case __dcg_shared_module_exports__['D']:return"arc";case __dcg_shared_module_exports__['B']:return"circle";case __dcg_shared_module_exports__['J']:return"angle";case __dcg_shared_module_exports__['L']:return"directedangle";case __dcg_shared_module_exports__['x']:return"polygon";case __dcg_shared_module_exports__['N']:return"transformation";default:return e}return"unknown"}function z2(r){return r.indexOf("\\token{")!==-1}function K2(r){var i,o,n,a;let e=(o=(i=r.formula.geometry)==null?void 0:i.call)==null?void 0:o.symbol,t=(a=(n=r.formula)==null?void 0:n.typed_constant_value)==null?void 0:a.valueType;return!e||e==="apply"||__dcg_shared_module_exports__['bc'](e)&&t!==void 0&&!__dcg_shared_module_exports__['ca'](t,__dcg_shared_module_exports__['N'])?Vq(r):e}function Pq(r){return!!(r.sliderExists&&(r.slider.isPlaying||r.sliderDragging)||r.draggingOnGraphpaper)}function U2(r){return!!(r.sliderExists&&r.sliderDragging||r.draggingOnGraphpaper)}function FT(r){var e=Pq(r);e?r.preTransientState||(r.preTransientState={latex:r.latex,slider:{min:r.slider.min,max:r.slider.max,playDirection:r.slider.playDirection}}):delete r.preTransientState,(!r.sliderExists||!r.slider.isPlaying)&&(r.sliderLastTickTime=void 0),Ol(r),Tq(r),kq(r),Mq(r),Aq(r),Gq(r),Iq(r)}var Lq={id:!1,type:!1,color:!0,folderId:!0,latex:!0,showLabel:!0,showAngleLabel:!0,label:!0,hidden:!0,secret:!0,readonly:!0,disableGraphInteractions:!0,points:!0,lines:!0,lineStyle:!0,arrowMode:!0,pointStyle:!0,fill:!0,dragMode:!0,labelSize:!0,labelOrientation:!0,suppressTextOutline:!0,interactiveLabel:!0,editableLabelMode:!0,residualVariable:!0,regressionParameters:!0,isLogModeRegression:!0,displayEvaluationAsFraction:!0,slider:!0,strictIntersection:!0,angleType:!0,showAngleDirection:!0,extendTo3D:!1,...__dcg_shared_module_exports__['Nc'](__dcg_shared_module_exports__['Tc'])};function n2(r,e){__dcg_shared_module_exports__['Kc']({from:e,to:r,props:Lq}),r.resetSliderAnimationTargetValue=!0,r.sliderAnimationTargetValue=void 0}function mg(r,e){e?Lo(r,{hardMin:!0,min:e}):Lo(r,{hardMin:!1,min:r.controller.is3dProduct()?`${__dcg_shared_module_exports__['Zb'].xmin}`:"-10"})}function fg(r,e){e?Lo(r,{hardMax:!0,max:e}):Lo(r,{hardMax:!1,max:r.controller.is3dProduct()?`${__dcg_shared_module_exports__['Zb'].xmax}`:"10"})}function Lo(r,e){r.slider={...r.slider,...e}}function xa(r,e){!r||r.slider.isPlaying===e||(Lo(r,{isPlaying:e}),e&&(kg(r),r.sliderAnimationTargetValue=Na(r)))}function kg(r){if(!r.slider.hardMin){let e=__dcg_shared_module_exports__['wc'](Ra(r));e!==r.slider.min&&Lo(r,{min:e})}if(!r.slider.hardMax){let e=__dcg_shared_module_exports__['wc'](Ys(r));e!==r.slider.max&&Lo(r,{max:e})}}function Qn(r,e){var t=fb(e);if(isFinite(t)){let i=__dcg_shared_module_exports__['_b']({target:t,step:gs(r),hardMin:r.slider.hardMin?Ra(r):void 0,hardMax:r.slider.hardMax?Ys(r):void 0});i.min||Lo(r,{hardMin:!1,min:"-10"}),i.max||Lo(r,{hardMax:!1,max:"10"}),i.step||Lo(r,{step:""})}r.latex=e}function q2(r,e){Lo(r,{loopMode:e,playDirection:1}),e==="PLAY_INDEFINITELY"&&Lo(r,{hardMin:!1,hardMax:!1,min:"",max:""}),r.sliderAnimationTargetValue=Ra(r)}function Eb(r,e){e&&kg(r),r.sliderDragging=e}function lb(r,e){Lo(r,{step:e})}function H2(r,e){Lo(r,{animationPeriod:e})}function zd(r){return r.displayEvaluationAsFraction}function W2(r,e){r.displayEvaluationAsFraction=e}function zc(r,e){r.label=e}function fu(r,e){Nd(r)?r.showAngleLabel=e:r.showLabel=e}function $2(r,e){r.description=e}function Jn(r,e,t){switch(t){case"theta":r.polarDomain={...r.polarDomain,min:e};break;case"t":r.parametricDomain={...r.parametricDomain,min:e};break;case"u":r.parametricDomain3Du={...r.parametricDomain3Du,min:e};break;case"v":r.parametricDomain3Dv={...r.parametricDomain3Dv,min:e};break;case"r":r.parametricDomain3Dr={...r.parametricDomain3Dr,min:e};break;case"phi":r.parametricDomain3Dphi={...r.parametricDomain3Dphi,min:e};break;default:return t}}function Xn(r,e,t){switch(t){case"theta":r.polarDomain={...r.polarDomain,max:e};break;case"t":r.parametricDomain={...r.parametricDomain,max:e};break;case"u":r.parametricDomain3Du={...r.parametricDomain3Du,max:e};break;case"v":r.parametricDomain3Dv={...r.parametricDomain3Dv,max:e};break;case"r":r.parametricDomain3Dr={...r.parametricDomain3Dr,max:e};break;case"phi":r.parametricDomain3Dphi={...r.parametricDomain3Dphi,max:e};break;default:return t}}function RT(r,e){r.isLogModeRegression=e}function wC(r,e){Yh(e)&&(r.color=e,r.colorLatex="")}function NT(r,e){r.fill=e}function cb(r,e){r.fillOpacity!==e&&(r.fillOpacity=e)}function bg(r,e){r.lineOpacity!==e&&(r.lineOpacity=e)}function db(r,e){r.pointOpacity!==e&&(r.pointOpacity=e)}function pb(r,e){r.pointSize===e&&r.movablePointSize===e||(r.pointSize=e,r.movablePointSize=e)}function yg(r,e){r.lineWidth!==e&&(r.lineWidth=e)}function Yv(r,e){r.resolution!==e&&(r.resolution=e)}function ub(r,e){r.colorLatex!==e&&(r.colorLatex=e)}function Y2(r,e){r.labelDropdownOpen=e}function bu(r,e){Dg(r,{type:"drag-mode",dragMode:e})}function BT(r,e){r.points=e}function zT(r,e){r.pointStyle!==e&&(r.pointStyle=e,e!=="POINT"&&(r.dragMode="NONE"))}function KT(r,e){r.lines=e}function j2(r,e){r.extendTo3D=e}function vC(r,e){r.lineStyle!==e&&(r.lineStyle=e)}function J2(r,e){r.arrowMode=e===Oq(r)?"DEFAULT":e}function Oq(r){return"NONE"}function hb(r,e){r.labelSize=e}function jv(r,e){r.labelAngle=e}function UT(r,e){r.labelOrientation=e}function X2(r,e){r.suppressTextOutline=e}function Db(r,e){Dg(r,{type:"interactive-label",interactive:e})}function CC(r,e){Dg(r,{type:"editable-label",editable:e})}function Q2(r){return r.editableLabelMode}function Tg(r){let{editableLabelMode:e}=r;return e==="MATH"||e==="TEXT"}function Z2(r,e){r.strictIntersection=e}function e_(r){return!!(Zr(r)!=="NONE"&&Zo(r))}function t_(r,e){r.hidden=e,!e&&Ig(r)&&(r.lines=r.points=r.fill=void 0)}function Ig(r){if(Ul(r)&&!r.controller.isThreeDMode())return!1;let{points:e,lines:t,fill:i}=r,o=__dcg_shared_module_exports__['rc'](r.formula.expression_type,{points:e,lines:t,fill:i},n=>{Mi("getReconciledExpressionProps [Chrome Switch Bug]",{metaData:{method:"areAllVisibilityPropsOff",type:n}})});return!o.points&&!o.lines&&!o.fill}function SC(r){return r.formula.map_type!==void 0?!1:yu(r)||Ag(r)||MC(r)}function EC(r){return r.formula.map_type!==void 0?!1:d_(r)||c_(r)||WT(r)}function r_(r,e){switch(e){case"theta":return r.polarDomain.min;case"t":return r.parametricDomain.min;case"u":return r.parametricDomain3Du.min;case"v":return r.parametricDomain3Dv.min;case"r":return r.parametricDomain3Dr.min;case"phi":return r.parametricDomain3Dphi.min;default:return e}}function i_(r,e){switch(e){case"theta":return r.polarDomain.max;case"t":return r.parametricDomain.max;case"u":return r.parametricDomain3Du.max;case"v":return r.parametricDomain3Dv.max;case"r":return r.parametricDomain3Dr.max;case"phi":return r.parametricDomain3Dphi.max;default:return e}}function Mg(r){return!!r.formula.action_value&&Object.keys(r.formula.action_value).length>0}function o_(r){return!!r.sliderExists}function Rd(r){return r.formula.expression_type==="POLYGON"}function Ul(r){return!!r.formula.is_inequality}function DC(r){return!!r.formula.is_regression}function yu(r){return r.formula.expression_type==="PARAMETRIC"||r.formula.expression_type==="CURVE3D_xyz_t"&&!$T(r)&&!YT(r)}function kC(r){return r.formula.expression_type==="POINT3D"}function qT(r){return r.formula.expression_type==="CURVE3D_xyz_t"||r.formula.expression_type==="SLICE"||r.formula.expression_type==="SLICE_r\u03B8z_at_z"||r.formula.expression_type==="SLICE_zr\u03B8_at_r"||r.formula.expression_type==="SLICE_zr\u03B8_at_\u03B8"||r.formula.expression_type==="SLICE_zr\u03B8_at_xyz"||r.formula.expression_type==="SLICE_r\u03B8\u03C6_at_\u03B8"||r.formula.expression_type==="SLICE_r\u03B8\u03C6_at_\u03C6"||r.formula.expression_type==="SLICE_r\u03B8\u03C6_at_xyz"||r.formula.expression_type==="SLICE_xyz_uv"}function n_(r){return r.formula.expression_type==="SLICE_zr\u03B8_at_r"||r.formula.expression_type==="SLICE_r\u03B8\u03C6_at_\u03B8"}function a_(r){return r.formula.expression_type==="SLICE_zr\u03B8_at_\u03B8"||r.formula.expression_type==="SLICE_r\u03B8\u03C6_at_\u03C6"}function HT(r){switch(r.formula.expression_type){case"SURFACE_xyz_uv":case"SURFACE_z_r\u03B8":case"SURFACE_r_\u03B8z":case"SURFACE_r_\u03B8z_AMBIGUOUS":case"SURFACE_r_\u03B8\u03C6":case"SURFACE":case"SURFACE_AMBIGUOUS":case"SURFACE_CONSTANT_AMBIGUOUS":case"IMPLICIT_SURFACE":case"IMPLICIT_SURFACE_AMBIGUOUS":case"TRIANGLE3D":case"SPHERE3D":return!0;default:return!1}}function TC(r){return r.formula.expression_type==="TRIANGLE3D"}function s_(r){return r.formula.expression_type==="SPHERE3D"}function l_(r){return r.formula.expression_type==="IMPLICIT_SURFACE"||r.formula.expression_type==="IMPLICIT_SURFACE_AMBIGUOUS"}function IC(r){return(_q(r)||Fq(r))&&r.shouldGraph}function _q(r){return r.formula.expression_type==="X_OR_Y"||r.formula.expression_type==="IMPLICIT"||r.formula.expression_type==="SURFACE_AMBIGUOUS"||r.formula.expression_type==="SURFACE_CONSTANT_AMBIGUOUS"||r.formula.expression_type==="IMPLICIT_SURFACE_AMBIGUOUS"}function Fq(r){return!r.formula.is_inequality&&(r.formula.expression_type==="POLAR"||r.formula.expression_type==="SURFACE_r_\u03B8z_AMBIGUOUS")}function Ag(r){return r.formula.expression_type==="POLAR"}function MC(r){return __dcg_shared_module_exports__['vc'](r.formula.expression_type)}function WT(r){return __dcg_shared_module_exports__['uc'](r.formula.expression_type)}function c_(r){return __dcg_shared_module_exports__['tc'](r.formula.expression_type)}function d_(r){return r.formula.expression_type==="SURFACE_xyz_uv"||r.formula.expression_type==="SLICE_xyz_uv"}function Nd(r){let e=r.formula.typed_constant_value;if(!e)return!1;let t=e.valueType;return t===__dcg_shared_module_exports__['J']||t===__dcg_shared_module_exports__['K']||t===__dcg_shared_module_exports__['L']||t===__dcg_shared_module_exports__['M']}function $s(r){let e=Nd(r);return e&&r.showAngleLabel||!e&&r.showLabel}function Jv(r){if(Bl(r))return!0;let e=r.formula.typed_constant_value;if(!e)return!1;let t=e.valueType;return t===__dcg_shared_module_exports__['z']||t===__dcg_shared_module_exports__['A']||t===__dcg_shared_module_exports__['J']||t===__dcg_shared_module_exports__['K']||t===__dcg_shared_module_exports__['L']||t===__dcg_shared_module_exports__['M']}function $T(r){return r.formula.expression_type==="SEGMENT3D"}function YT(r){return r.formula.expression_type==="VECTOR3D"}function Gn(r){return r.formula.expression_type==="SINGLE_POINT"}function Gg(r){return r.formula.expression_type==="POINT_LIST"}function Bl(r){return r.formula.expression_type==="POINT_LIST"||r.formula.expression_type==="SINGLE_POINT"}function kb(r){return r.formula.expression_type==="POINT3D_LIST"}function Kd(r){let e=Ba(r);return!!(e&&e.type==="visualization"&&e.symbol==="boxplot")}function Hc(r){let e=Ba(r);return!!(e&&e.type==="visualization"&&e.symbol==="dotplot")}function xu(r){let e=Ba(r);return!!(e&&e.type==="visualization"&&e.symbol==="histogram")}function AC(r){var e=Kd(r)||Hc(r)||xu(r);return e}function jT(r){return r.formula.expression_type==="TTEST"}function p_(r){return r.formula.expression_type==="STATS"}function Ud(r){let e=Ba(r);return!!(e&&e.type==="distribution")}function u_(r){let{formula:e}=r;return e?!!e.is_discrete_distribution:!1}function Ba(r){if(r.controller.areDistributionsEnabled()&&r.latex)return(!r.cachedParseToplevelFunction||r.cachedParseToplevelFunction.latex!==r.latex)&&(r.cachedParseToplevelFunction={latex:r.latex,spec:__dcg_shared_module_exports__['qc'](r.latex)}),r.cachedParseToplevelFunction.spec}function JT(r){return Tb(r)&&Ud(r)}function Tb(r){return!!r.formula.expression_type}function XT(r){return!!r.formula.is_concrete_list}function Wc(r){return!JT(r)||XT(r)?!1:r.cdf.show}function GC(r){return r.cdf.min}function VC(r){return r.cdf.max}function h_(r){var e=DT(r.formula.cdf_min_default);return e===-1/0?"-\\infty":isFinite(e)?e+"":"-\\infty"}function g_(r){var e=DT(r.formula.cdf_max_default);return e===1/0?"\\infty":isFinite(e)?e+"":"\\infty"}function m_(r,e){r.cdf={...r.cdf,show:e}}function Xv(r,e){r.cdf={...r.cdf,min:e}}function Qv(r,e){r.cdf={...r.cdf,max:e}}function PC(r){return!!r.formula&&r.formula.cdf_min_valid!==!1}function LC(r){return!!r.formula&&r.formula.cdf_max_valid!==!1}function QT(r){return!!r.formula&&r.formula.fill_opacity_valid!==!1}function f_(r){return!!r.formula&&r.formula.line_opacity_valid!==!1}function b_(r){return!!r.formula&&r.formula.point_opacity_valid!==!1}function ZT(r){return!!r.formula&&r.formula.label_size_valid!==!1}function eI(r){return!!r.formula&&r.formula.label_angle_valid!==!1}function y_(r){return!!r.formula&&r.formula.movable_point_size_valid!==!1}function OC(r){return!!r.formula&&r.formula.point_size_valid!==!1}function _C(r){return!!r.formula&&r.formula.line_width_valid!==!1}function x_(r){return!!r.formula&&r.formula.resolution_valid!==!1}function c2(r){return!!r.formula&&r.formula.color_latex_valid!==!1}function d2(r){return r.formula&&r.formula.color_latex_value}function w_(r){return r.formula&&r.formula.label_angle_value}function tI(r){var e=r.formula&&r.formula.cdf_evaluation;return isFinite(e)?e:0}function rI(r){if(!r||!__dcg_shared_module_exports__['sc'](r.formula.expression_type))return!1;let e=Zr(r);return!(e&&e!=="NONE")}function v_(r){r.showLabel=__dcg_shared_module_exports__['Uc'].showLabel,r.showAngleLabel=__dcg_shared_module_exports__['Uc'].showAngleLabel,r.label=__dcg_shared_module_exports__['Uc'].label,r.hidden=__dcg_shared_module_exports__['Uc'].hidden,r.dragMode=__dcg_shared_module_exports__['Uc'].dragMode,r.fill=__dcg_shared_module_exports__['Uc'].fill,r.points=__dcg_shared_module_exports__['Uc'].points,r.pointStyle=__dcg_shared_module_exports__['Uc'].pointStyle,r.lines=__dcg_shared_module_exports__['Uc'].lines,r.lineStyle=__dcg_shared_module_exports__['Uc'].lineStyle,r.slider=r.controller.is3dProduct()?__dcg_shared_module_exports__['Wc']:__dcg_shared_module_exports__['Vc'],r.latex="",r.labelSize="",r.labelOrientation="default",r.displayEvaluationAsFraction=__dcg_shared_module_exports__['Uc'].displayEvaluationAsFraction,r.strictIntersection=__dcg_shared_module_exports__['Uc'].strictIntersection,r.suppressTextOutline=!1,r.interactiveLabel=!1,r.editableLabelMode=__dcg_shared_module_exports__['Uc'].editableLabelMode,__dcg_shared_module_exports__['Lc'](__dcg_shared_module_exports__['Tc'],r)}function FC(r){return!!r.formula.move_strategy}function iI(r,e){Dg(r,{type:"inert",disableGraphInteractions:e})}var C_=1,S_=2,E_=4,D_=8,BC=15,k_=12,T_=3,I_=1,M_=2,A_=3,G_=4,wu=5,Vg=6;function qd(r,e,t){let i=[],o=r.length;if(t===wu)for(let n=0;n<o;n+=2){let a=e.mapX(r[n]),s=e.mapY(r[n+1]);i.push(a,s)}else if(t===Vg)for(let n=0;n<o;n+=2){let a=e.mapX(r[n+1]),s=e.mapY(r[n]);i.push(a,s)}else if(t===I_)for(let n=0;n<r.length;n+=2){let a=r[n],s=r[n+1],l=e.mapX(s*Math.cos(a)),c=e.mapY(s*Math.sin(a));i.push(l,c)}else if(t===M_)for(let n=0;n<r.length;n+=2){let a=r[n],s=r[n+1];s<0&&(s=0);let l=e.mapX(s*Math.cos(a)),c=e.mapY(s*Math.sin(a));i.push(l,c)}else if(t===A_)for(let n=0;n<r.length;n+=2){let a=r[n]*Math.PI/180,s=r[n+1],l=e.mapX(s*Math.cos(a)),c=e.mapY(s*Math.sin(a));i.push(l,c)}else if(t===G_)for(let n=0;n<r.length;n+=2){let a=r[n]*Math.PI/180,s=r[n+1];s<0&&(s=0);let l=e.mapX(s*Math.cos(a)),c=e.mapY(s*Math.sin(a));i.push(l,c)}return i}function V_(r,e){return oI(r,e,BC,!0)}function P_(r,e){return Rq(r,e,BC,!0)}function RC(r,e,t,i){let o=[],n,a,s,l;i?(a=r[0],s=r[1],n=2,l=e(a,s),l&&o.push(a,s)):(a=r[r.length-2],s=r[r.length-1],n=0,l=e(a,s));for(let c=n;c<r.length;c+=2){let d=a,u=s,h=l;a=r[c],s=r[c+1],l=e(a,s),!(!l&&!h)&&(l&&h&&o.push(a,s),l&&!h&&(o.push(...t(a,s,d,u)),o.push(a,s)),!l&&h&&o.push(...t(d,u,a,s)))}return o}function NC(r,e,t,i){let o=[[]],n=0,a,s,l,c;i?(s=r[0],l=r[1],a=2,c=e(s,l),c&&o[n].push(s,l)):(s=r[r.length-2],l=r[r.length-1],a=0,c=e(s,l));for(let d=a;d<r.length;d+=2){let u=s,h=l,g=c;s=r[d],l=r[d+1],c=e(s,l),!(!c&&!g)&&(c&&g&&o[n].push(s,l),c&&!g&&(o[n].push(...t(s,l,u,h)),o[n].push(s,l)),!c&&g&&(o[n].push(...t(u,h,s,l)),n++,o[n]=[]))}return o.filter(d=>d.length>0)}var L_=r=>function(e,t){return e>=r},O_=r=>function(e,t){return e<=r},__=r=>function(e,t){return t>=r},F_=r=>function(e,t){return t<=r},R_=r=>function(e,t,i,o){let n=o-t;return[r,t+n*(r-e)/(i-e)]},N_=r=>function(e,t,i,o){let n=o-t;return[r,t+n*(r-e)/(i-e)]},B_=r=>function(e,t,i,o){let n=i-e;return[e+n*(r-t)/(o-t),r]},z_=r=>function(e,t,i,o){let n=i-e;return[e+n*(r-t)/(o-t),r]};function oI(r,e,t,i){let o=r;return t&E_&&(o=RC(r,L_(e.xmin),R_(e.xmin),i)),t&S_&&(o=RC(o,__(e.ymin),B_(e.ymin),i)),t&D_&&(o=RC(o,O_(e.xmax),N_(e.xmax),i)),t&C_&&(o=RC(o,F_(e.ymax),z_(e.ymax),i)),o}function Rq(r,e,t,i){let o=[r];return t&E_&&(o=__dcg_shared_module_exports__['Ea'](o.map(n=>NC(n,L_(e.xmin),R_(e.xmin),i)),!0)),t&S_&&(o=__dcg_shared_module_exports__['Ea'](o.map(n=>NC(n,__(e.ymin),B_(e.ymin),i)),!0)),t&D_&&(o=__dcg_shared_module_exports__['Ea'](o.map(n=>NC(n,O_(e.xmax),N_(e.xmax),i)),!0)),t&C_&&(o=__dcg_shared_module_exports__['Ea'](o.map(n=>NC(n,F_(e.ymax),z_(e.ymax),i)),!0)),o}function K_(r,e,t){let i=[],o=r[0],n=o+t,a=[];i.push(a);for(let s=0;s<r.length;s+=2){let l=r[s],c=r[s+1];if(c<0&&(c=0),l>=n){for(a=[],i.push(a),o=r[s-2],n=o;l>=n;)n+=t;s-=4}else a.push(l,c)}if(e===0)for(let s=0;s<i.length;s++)i[s].push(0,0);else{let s=t/16,l=e;for(let c=0;c<i.length;c++){let d=i[c];o=d[0],n=d[d.length-2];for(let u=n;u>o;u-=s)d.push(u,l);d.push(o,l)}}return i}function nI(r,e){return r=r.slice(),r.push(r[r.length-2],e),r.push(r[0],e),[r]}function Ib(r,e,t){switch(r){case 1:return Vg;case 8:case 5:case 2:return wu;case 6:return t.degreeMode?e?G_:A_:e?M_:I_}}function ei(r,e){let t=r;t._dcgSaveClassName&&t._dcgSaveClassName(e)}function Fr(r){let e=r;e._dcgRestoreClassName&&e._dcgRestoreClassName()}function U_(r,e){r.translate(e.left,e.top)}function Bq(r,e){var t=document.createRange();t.selectNode(r);var i=t.getBoundingClientRect(),o=i.width>0&&i.height>0;if(!o)return;var n=window.getComputedStyle(r.parentElement),a=r.nodeValue||"";if(!a)return;var s=parseFloat(n.fontSize);let l=-.228*s,c=n.fontStyle+" "+n.fontWeight+" "+n.fontSize+" "+n.fontFamily;return{type:"text",rect:{left:i.left-e.pointCenterX,right:i.right-e.pointCenterY,top:i.top-e.pointCenterY,bottom:i.bottom-e.pointCenterY},text:a,color:n.color||"#000",font:c,y:i.height+l,hasOutline:e.hasOutline}}function q_(r,e,t){r.save(),r.font=e.font,t?(r.strokeStyle="#FFF",r.lineWidth=3,r.miterLimit=2,r.strokeText(e.text,0,e.y)):(r.fillStyle=e.color,r.fillText(e.text,0,e.y)),r.restore()}function H_(r,e,t){r.save(),t?(r.strokeStyle="#FFF",r.lineWidth=3):(e.fillColor&&(r.fillStyle=e.fillColor),e.strokeColor&&(r.strokeStyle=e.strokeColor)),r.beginPath();for(let i of e.instructions)switch(i.type){case"moveTo":r.moveTo(i.x,i.y);break;case"lineTo":r.lineTo(i.x,i.y);break;case"arcTo":r.arcTo(i.cx,i.cy,i.x,i.y,i.radius);break;case"ellipse":r.ellipse(i.centerX,i.centerY,i.radiusX,i.radiusY,i.rotation,i.startAngle,i.endAngle,i.anticlockwise);break}r.closePath(),t?r.stroke():(e.strokeColor&&r.stroke(),e.fillColor&&r.fill()),r.restore()}function zq(r,e){var t=r.getBoundingClientRect(),i=t.width>0&&t.height>0;if(i){var o=5,n=3,a=-o,s=t.width+o,l=-o,c=t.height+o,d=[{type:"moveTo",x:a+n,y:l},{type:"lineTo",x:s-n,y:l},{type:"arcTo",cx:s,cy:l,x:s,y:l+n,radius:n},{type:"lineTo",x:s,y:c-n},{type:"arcTo",cx:s,cy:c,x:s-n,y:c,radius:n},{type:"lineTo",x:a+n,y:c},{type:"arcTo",cx:a,cy:c,x:a,y:c-n,radius:n},{type:"lineTo",x:a,y:l+n},{type:"arcTo",cx:a,cy:l,x:a+n,y:l,radius:n}];return{type:"path",disableGlow:!0,rect:{left:t.left-e.pointCenterX,right:t.right-e.pointCenterX,top:t.top-e.pointCenterY,bottom:t.bottom-e.pointCenterY},instructions:d,strokeColor:"#C2C2C2",fillColor:"rgba(255,255,255,.75)"}}}function Kq(r,e,t){var i=r.getBoundingClientRect(),o=i.width>0&&i.height>0;if(o){var n=i.width,a=parseFloat(e.borderTopWidth||"1px"),s=e.borderTopColor||"#000",l=[{type:"moveTo",x:0,y:0},{type:"lineTo",x:n,y:0},{type:"lineTo",x:n,y:a},{type:"lineTo",x:0,y:a}];return{type:"path",rect:{left:i.left-t.pointCenterX,right:i.right-t.pointCenterX,top:i.top-t.pointCenterY,bottom:i.bottom-t.pointCenterY},instructions:l,fillColor:s}}}function W_(r,e){var t=Math.sqrt(r[0]*r[0]+r[1]*r[1]),i=Math.sqrt(e[0]*e[0]+e[1]*e[1]),o=r[0]*e[0]+r[1]*e[1],n=Math.acos(o/(t*i));return r[0]*e[1]-r[1]*e[0]<0&&(n*=-1),n}function Uq(r,e,t,i,o,n,a,s,l){var c=Math.cos(o),d=Math.sin(o),u=(r-s)/2,h=(e-l)/2,g=c*u+d*h,b=-d*u+c*h,C=t*t,S=i*i,k=g*g,I=b*b,M=Math.sqrt((C*S-C*I-S*k)/(C*I+S*k));n===a&&(M*=-1);var E=M*t*b/i,A=-M*i*g/t,V=(r+s)/2,G=(e+l)/2,P=c*E-d*A+V,O=d*E+c*A+G,R=[1,0],q=[(g-E)/t,(b-A)/i],J=[(-g-E)/t,(-b-A)/i],U=W_(R,q),z=W_(R,J);return{centerX:P,centerY:O,radiusX:t,radiusY:i,startAngle:U,endAngle:z,rotation:o,anticlockwise:a===0}}var $_={};function qq(r,e){var t=r+"-"+e,i=$_[t];if(i)return i;i=[],$_[t]=i;var o=e.split(" ");if(o.length!==4)return i;var n=parseFloat(o[0]),a=parseFloat(o[2]),s=parseFloat(o[1]),l=parseFloat(o[3]),c=a-n,d=l-s;function u(V){return(V-n)/c}function h(V){return(V-s)/d}var g="[0-9-.]+",b="(M"+g+" "+g+")",C="(L"+g+" "+g+")",S="(A"+g+" "+g+" "+g+" "+g+" "+g+" "+g+" "+g+")",k=new RegExp(b+"|"+C+"|"+S,"g"),I=r.match(k);if(!I||!I.length)return i;var M=NaN,E=NaN;for(let V of I){var A=V.substr(1).split(" ").map(parseFloat);switch(V[0]){case"M":M=u(A[0]),E=h(A[1]),i.push({type:"moveTo",x:M,y:E});break;case"L":M=u(A[0]),E=h(A[1]),i.push({type:"lineTo",x:M,y:E});break;case"A":let G=A[0]/c,P=A[1]/d,O=A[2],R=A[3],q=A[4],J=u(A[5]),U=h(A[6]),z=Uq(M,E,G,P,O,R,q,J,U);M=J,E=U,i.push({type:"ellipse",...z});break}}return i}function Hq(r,e){var t=r.childNodes[0];if(!(!t||t.nodeName!=="path")){var i=r.getBoundingClientRect(),o=i.width>0&&i.height>0;if(o){var n=t.getAttribute("d")||"",a=r.getAttribute("viewBox")||"",s=qq(n,a),l=window.getComputedStyle(r),c=i.width,d=i.height;s=__dcg_shared_module_exports__['i'](s);for(let u of s)switch(u.type){case"moveTo":case"lineTo":u.x*=c,u.y*=d;break;case"arcTo":u.x*=c,u.y*=d,u.cx*=c,u.cy*=d,u.radius*=c;break;case"ellipse":u.centerX*=c,u.centerY*=d,u.radiusX*=c,u.radiusY*=d;break;default:return u}return{type:"path",rect:{left:i.left-e.pointCenterX,right:i.right-e.pointCenterX,top:i.top-e.pointCenterY,bottom:i.bottom-e.pointCenterY},fillColor:l.color||"#000",instructions:s}}}}function Y_(r,e,t){var i=window.getComputedStyle(r);if(i.borderTopWidth!=="0px"){let s=Kq(r,i,e);s&&t.push(s)}for(var o=r.childNodes,n=0;n<o.length;n++){var a=o[n];if(a.nodeType===3){let s=Bq(a,e);s&&t.push(s)}else if(a.nodeName==="svg"){let s=Hq(a,e);s&&t.push(s)}else a.nodeType===1&&Y_(a,e,t)}}function zC(r,e){let t=[];if(e.hasBorder){let i=zq(r,e);i&&t.push(i)}return Y_(r,e,t),t}function KC(r,e){ei(e,"dcg-svg-label"),e.save(),Fr(e);for(let t of r){switch(e.save(),U_(e,t.rect),t.type){case"path":t.disableGlow||H_(e,t,!0);break;case"text":t.hasOutline&&q_(e,t,!0);break;default:return t}e.restore()}for(let t of r){switch(e.save(),U_(e,t.rect),t.type){case"path":H_(e,t,!1);break;case"text":q_(e,t,!1);break;default:return t}e.restore()}e.restore()}Pc();function Wq(r){function e(t){requestAnimationFrame(e),r(t)}requestAnimationFrame(e)}function $q(r){function e(){setTimeout(e,Lg),r(Date.now())}setTimeout(e,Lg)}var j_=Ao().timeoutLoop,Lg=0;typeof j_=="string"&&(Lg=parseFloat(j_),isNaN(Lg)&&(Lg=1e3/60));var J_=Lg>0?$q:Wq;var Yq=0,jq="guid_"+Math.round(Math.random()*1e6)+"_"+new Date().getTime()+"_",aI=class{constructor(){this.__observers={},this.__eventObservers={},this.__oldProperties={},this.__propertyComparators={},this.guid=jq+ ++Yq}unobserveAll(){this.__observers={},this.__eventObservers={}}getProperty(e){return this[e]}getOldProperty(e){return this.__oldProperties[e]}setProperty(e,t){var i=this[e];this[e]=t;var o=this.__propertyComparators[e];if(o){if(o(i,t))return}else if(__dcg_shared_module_exports__['Oa'](i,t))return;this.__oldProperties[e]=i,this.notifyPropertyChange(e)}setProperties(e){for(var t in e)e.hasOwnProperty(t)&&this.setProperty(t,e[t])}setPropertyComparator(e,t){this.__propertyComparators[e]=t}notifyPropertyChange(e){this.__callObservers(this.__observers,e,this)}observe(e,t){this.__addObservers(this.__observers,e,t)}unobserve(e){this.__removeObservers(this.__observers,e)}observeAndSync(e,t){this.observe(e,t);for(var i=e.split(" "),o=0;o<i.length;o++){var n=i[o].split("."),a=n[0];this.hasOwnProperty(a)&&t(a,this)}}triggerEvent(e,t){this.__callObservers(this.__eventObservers,e,t)}observeEvent(e,t){this.__addObservers(this.__eventObservers,e,t)}unobserveEvent(e){this.__removeObservers(this.__eventObservers,e)}__callObservers(e,t,i){var o=e[t];if(o)for(var n=0;n<o.length;n++)o[n].callback(t,i)}__removeObservers(e,t){for(var i=t.split(" "),o=0;o<i.length;o++){var n=i[o].split("."),a=n[0],s=n[1];if(a&&s){var l=e[a],c=[];if(!l)continue;for(var d=0;d<l.length;d++){var u=l[d];u.namespace!==s&&c.push(u)}e[a]=c}else if(a)delete e[a];else if(s)for(a in e)e.hasOwnProperty(a)&&this.__removeObservers(e,a+"."+s)}}__addObservers(e,t,i){for(var o=t.split(" "),n=0;n<o.length;n++){var a=o[n].split("."),s=a[0];if(!s)throw"Must supply a property to observe";var l=a[1],c={namespace:l,callback:i},d=e[s];d?d.push(c):e[s]=[c]}}},ti=aI;var lI=new ti;J_(function(r){lI.triggerEvent("tick",r)});var sI=0;function $c(r){return sI+=1,lI.observeEvent("tick."+sI,function(e,t){r(t)}),sI}function vu(r){lI.unobserveEvent("tick."+r)}function qC(r){var e=[];for(let i of r)if(!(!i||typeof i!="string")){var t=i.split("-")[0];e.push(i),e.push(t);for(let o in Cu){let n=Cu[o];o.split("-")[0]===t&&n.useAsRoot&&e.push(o)}}return e}var Cu={en:{displayName:"English (US)",userGuideURL:"https://docs.google.com/document/d/1gV-WgDjgR9hKKb32ffeUpjwggNAgfqxl0Gsg6xocbok/preview",useAsRoot:!1},es:{displayName:"Espa\xF1ol (LATAM)",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_ES-ES.pdf",useAsRoot:!0},et:{displayName:"Eesti",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},ru:{displayName:"\u0420\u0443\u0441\u0441\u043A\u0438\u0439",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_RU.pdf",useAsRoot:!1},da:{displayName:"Dansk",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},de:{displayName:"Deutsch",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_DE.pdf",useAsRoot:!1},"pt-BR":{displayName:"Portugu\xEAs (Brasil)",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!0},"pt-PT":{displayName:"Portugu\xEAs (Portugal)",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},ca:{displayName:"Catal\xE0",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},fr:{displayName:"Fran\xE7ais",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_FR.pdf",useAsRoot:!0},"fr-CA":{displayName:"Fran\xE7ais (Canada)",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_FR.pdf",useAsRoot:!1},it:{displayName:"Italiano",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_IT.pdf",useAsRoot:!1},is:{displayName:"\xCDslenska",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},nl:{displayName:"Nederlands",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},no:{displayName:"Norsk",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},"sv-SE":{displayName:"Svenska",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!0},hu:{displayName:"Magyar",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},cs:{displayName:"\u010Ce\u0161tina",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},pl:{displayName:"Polski",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_PL.pdf",useAsRoot:!1},id:{displayName:"Bahasa Indonesia",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},vi:{displayName:"Ti\u1EBFng Vi\u1EC7t",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_VI.pdf",useAsRoot:!1},el:{displayName:"\u0395\u03BB\u03BB\u03B7\u03BD\u03B9\u03BA\u03AC",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_EL.pdf",useAsRoot:!1},uk:{displayName:"\u0423\u043A\u0440\u0430\u0457\u043D\u0441\u044C\u043A\u0430",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},ka:{displayName:"\u10E5\u10D0\u10E0\u10D7\u10E3\u10DA\u10D8",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},th:{displayName:"\u0E20\u0E32\u0E29\u0E32\u0E44\u0E17\u0E22",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},tr:{displayName:"T\xFCrk\xE7e",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_TR.pdf",useAsRoot:!1},"zh-CN":{displayName:"\u7B80\u4F53\u4E2D\u6587",useAsRoot:!0,userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_ZH-CN.pdf"},"zh-TW":{displayName:"\u7E41\u9AD4\u4E2D\u6587",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_ZH-TW.pdf",useAsRoot:!1},ko:{displayName:"\uD55C\uAD6D\uC5B4",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide.pdf",useAsRoot:!1},ja:{displayName:"\u65E5\u672C\u8A9E",userGuideURL:"https://desmos.s3.amazonaws.com/Desmos_User_Guide_JA.pdf",useAsRoot:!1}};var X_=`account-shell-button-cancel = Cancel
account-shell-button-mygraphs-cancel = Cancel
account-shell-label-art-contest-nudge-construction = Have a construction that you're proud of? We'd love to see it!
account-shell-label-art-contest-nudge-graph = Do you have a graph that you're proud of? We'd love to see it!
account-shell-label-join-contest = Join the contest
account-shell-label-math-art-contest = Global Math Art Contest
account-shell-link-help = Help
account-shell-link-read-blog = Read our blog
account-shell-link-try-a-quest = Try a quest
account-shell-text-3d-expression-list-notice = Please share any bugs, questions, or suggestions at: <1>feedback@desmos.com</1>
account-shell-text-welcome-to-3d = Welcome to Desmos 3D (Beta)
shared-button-close-dialog = Close Dialog
shared-button-close-message = Close Message
shared-calculator-button-braille-mode-nemeth = Nemeth
shared-calculator-button-braille-mode-ueb = UEB
shared-calculator-button-controlbar-functions = functions
shared-calculator-button-go = Go
shared-calculator-error-3d-bad-equality-slice = We don't support this type of equality restriction.
shared-calculator-error-3d-length-type-error = Function '{ $fn }' cannot be applied to { $arg } in the 3d calculator. Use '{ $alternativeFn }' to find the number of elements in a list.
shared-calculator-error-3d-mixed-restriction-equation = Cannot apply both an inequality restriction and an equality restriction to this expression.
shared-calculator-error-3d-multiple-equality-restrictions = Cannot apply more than one equality restriction.
shared-calculator-error-action-merge-free-variable = Cannot combine an action that depends on free variable '{ $symbol }'.
shared-calculator-error-add-arguments-to-definition-many = Try including '{ $symbols }' and '{ $lastSymbol }' as arguments by defining the function as '{ $newSignature }'.
shared-calculator-error-add-arguments-to-definition-one = Try including '{ $lastSymbol }' as an argument by defining the function as '{ $newSignature }'.
shared-calculator-error-add-type-error = Cannot add { $symbol1 } and { $symbol2 }.
shared-calculator-error-adjacent-mixed-number = Sorry, I don't know what to do with mixed number '{ $mixedNumber }'. Try using a '*' symbol around it.
shared-calculator-error-adjacent-numbers = Sorry, I don't know what to do with adjacent numbers '{ $left }' and '{ $right }'. Try using parentheses or a '*' symbol.
shared-calculator-error-ans-undefined = The previous expression didn't define any value for ans.
shared-calculator-error-assignments-unsupported = This calculator does not support defining variables.
shared-calculator-error-bad-for-input-list-dependency = A definition on the right-hand side of 'for' can't depend on input variable '{ $symbol }'.
shared-calculator-error-bad-for-interval-dependency = Parameter bounds on the right-hand side of 'for' can't depend on input variable '{ $symbol }'.
shared-calculator-error-bad-implicit-call = Use parentheses around the argument of '{ $symbol }'.
shared-calculator-error-bad-integral-bound-dependency = Integration bounds can't depend on integration variable '{ $symbol }'.
shared-calculator-error-bad-interval-comprehension-arity =
{ $count ->
[one] You can't use 'for' to parameterize { $type } using 1 parameter.
*[other] You can't use 'for' to parameterize { $type } using { $count } parameters.
}
shared-calculator-error-bad-log-exponent = Only { $form } is supported. Otherwise, use parens.
shared-calculator-error-bad-product-bound-dependency = Product bounds can't depend on product index '{ $symbol }'.
shared-calculator-error-bad-sample-size = Sample size must be a finite, non-negative number.
shared-calculator-error-bad-sum-bound-dependency = Summation bounds can't depend on summation index '{ $symbol }'.
shared-calculator-error-bad-symbol-context = You can't use '{ $symbol }' in this context.
shared-calculator-error-bad-trig-exponent = Only { $form1 } and { $form2 } are supported. Otherwise, use parens.
shared-calculator-error-bad-tuple-dimensions = Points may only have { $symbol } coordinates.
shared-calculator-error-binary-operator-missing-operand = You need something on both sides of the '{ $symbol }' symbol.
shared-calculator-error-blank-expression = You haven't written anything yet.
shared-calculator-error-boxplot-breadth-invalid = Invalid height. Try using any number.
shared-calculator-error-boxplot-offset-invalid = Invalid offset. Try using any number.
shared-calculator-error-cannot-assign-color = Cannot assign a color to '{ $variable }'.
shared-calculator-error-cannot-redefine = You can't redefine '{ $symbol }' because it's already defined.
shared-calculator-error-cannot-redefine-root = You can't define '{ $symbol }' because '{ $symbolRoot }' is already defined.
shared-calculator-error-cannot-restrict = Cannot create a restriction based on '{ $variable }' in this type of expression.
shared-calculator-error-cannot-restrict-with-equality = Cannot create an equality restriction based on '{ $variable }' in this type of expression.
shared-calculator-error-cannot-subscript = '{ $symbol }' cannot have a subscript.
shared-calculator-error-cant-combine-spherical-and-cylindrical = Can't combine spherical and cylindrical coordinates.
shared-calculator-error-cdf-max-invalid = Invalid cdf max. Try using any number.
shared-calculator-error-cdf-max-less-than-min = Invalid cdf limits. Min should be less than max.
shared-calculator-error-cdf-min-invalid = Invalid cdf min. Try using any number.
shared-calculator-error-cdf-too-many-arguments = 'cdf' should be called on a distribution with at most two numbers. { $recommendation }
shared-calculator-error-cdf-too-many-arguments-recommendation = For example, try typing: D.cdf(-1,1) where D=normaldist().
shared-calculator-error-cdf-wrong-arity = 'cdf' should be called on a distribution with at least one number. { $recommendation }
shared-calculator-error-cdf-wrong-arity-recommendation = For example, try typing: D.cdf(x) where D=normaldist().
shared-calculator-error-clickable-object-assignment-not-defined = "{ $symbol }" is not defined. Try using a different variable or adding a slider.
shared-calculator-error-clickable-object-assignment-not-identifier = Invalid symbol. Try using a single letter.
shared-calculator-error-clickable-object-invalid-expression = Can't evaluate this. Try a number or simple expression.
shared-calculator-error-colon-missing-condition = The left side of a ':' must be a condition, like 'x>1'.
shared-calculator-error-color-arity = '{ $symbol }' should be called with 3 arguments. { $recommendation }
shared-calculator-error-color-arity-recommendation = For example, try typing: { $recommendation }.
shared-calculator-error-color-not-assigned = To use a color, you must assign it to a variable.
shared-calculator-error-combine-type-error = Cannot combine { $symbol1 } and { $symbol2 }.
shared-calculator-error-comparator-type-error = Cannot compare { $symbol1 } to { $symbol2 }.
shared-calculator-error-complicated-double-inequality = We only support solved double inequalities. Try deleting one side of the inequality.
shared-calculator-error-complicated-polar-implicit = Polar equations must be linear in r.
shared-calculator-error-constant-unsupported = This calculator does not support the constant '{ $symbol }'.
shared-calculator-error-custom-toolbar-not-condition = Please write a valid condition and make sure every referenced variable is defined.
shared-calculator-error-deeply-nested = Definitions are nested too deeply.
shared-calculator-error-dependency-cycle = '{ $symbols }' and '{ $lastSymbol }' can't be defined in terms of each other.
shared-calculator-error-depends-on-deleted-geo-object = This depends on a geometric object that's no longer defined.
shared-calculator-error-derivative-missing-body = What do you want to take the derivative of?
shared-calculator-error-derivative-type-error = Cannot take the derivative of { $symbol }.
shared-calculator-error-derivative-variable-type-error = Cannot take derivative with respect to '{ $symbol1 }' because it is { $symbol2 }.
shared-calculator-error-differential-with-superscript = Integration variable cannot have a superscript.
shared-calculator-error-distribution-as-function = Cannot call distribution '{ $symbol }' as a function. Try '{ $symbol }.pdf(x)'.
shared-calculator-error-divide-type-error = Cannot divide { $symbol1 } by { $symbol2 }.
shared-calculator-error-domain-max-invalid = Invalid domain max. Try using any number.
shared-calculator-error-domain-max-less-than-min = Invalid domain limits. Min should be less than max.
shared-calculator-error-domain-min-invalid = Invalid domain min. Try using any number.
shared-calculator-error-dot-lhs-type-error = Cannot call '.{ $symbol }' on { $type }.
shared-calculator-error-duplicate-function-parameter = Cannot use '{ $dependency }' for multiple parameters of this function.
shared-calculator-error-duplicate-update-rules = An action cannot specify multiple update rules for '{ $symbol }'.
shared-calculator-error-empty-paren = Parentheses cannot be empty.
shared-calculator-error-empty-pipe = Absolute value symbol cannot be empty.
shared-calculator-error-empty-radical = Radical cannot be empty.
shared-calculator-error-empty-radical-index = Radical index cannot be empty.
shared-calculator-error-empty-square-bracket = Square brackets cannot be empty.
shared-calculator-error-empty-subscript = Subscripts cannot be empty.
shared-calculator-error-empty-superscript = Superscripts cannot be empty.
shared-calculator-error-equation-required = Try adding an equals sign to turn this into an equation.
shared-calculator-error-equation-required-symbol = Try adding '{ $lhs }' to the beginning of this equation.
shared-calculator-error-equations-unsupported = This calculator does not support this type of equation.
shared-calculator-error-event-handler-type-error = This should be an action. Try '{ $example }'.
shared-calculator-error-exponent-type-error = Cannot raise { $symbol1 } to { $symbol2 }.
shared-calculator-error-feature-unavailable = This feature is not available in the current calculator.
shared-calculator-error-fraction-empty = You need a numerator and denominator for your fraction.
shared-calculator-error-fraction-missing-denominator = You need a denominator for the bottom of your fraction.
shared-calculator-error-fraction-missing-numerator = You need a numerator for the top of your fraction.
shared-calculator-error-function-definition-unsupported = This calculator does not support function definitions.
shared-calculator-error-function-name-as-parameter = Cannot use function name '{ $dependency }' as a function parameter.
shared-calculator-error-function-not-defined = Function '{ $dependency }' is not defined.
shared-calculator-error-function-type-error-1 = Function '{ $fn }' cannot be applied to { $arg }.
shared-calculator-error-function-type-error-2 = Function '{ $fn }' cannot be applied to { $arg1 } and { $arg2 }.
shared-calculator-error-function-type-error-many = Function '{ $fn }' cannot be applied to these arguments.
shared-calculator-error-function-unsupported = This calculator does not support the '{ $symbol }' function.
shared-calculator-error-geometry-length-type-error = Function '{ $fn }' cannot be applied to { $arg } in the geometry calculator. Use '{ $alternativeFn }' to find the number of elements in a list.
shared-calculator-error-gpu-function-unsupported = Cannot use the '{ $symbol }' function here.
shared-calculator-error-gpu-integral-unsupported = Cannot use integrals here.
shared-calculator-error-gpu-long-product = Products may not have more than { $maxTermCount } terms here.
shared-calculator-error-gpu-long-sum = Sums may not have more than { $maxTermCount } terms here.
shared-calculator-error-gpu-max-list-size = Lists may not have more than { $maxListSize } elements here.
shared-calculator-error-gpu-variable-list-length = List length cannot depend on variable '{ $symbol }' here.
shared-calculator-error-gpu-variable-product = Product bound cannot depend on variable '{ $symbol }' here.
shared-calculator-error-gpu-variable-sum = Sum bound cannot depend on variable '{ $symbol }' here.
shared-calculator-error-heterogeneous-list = All elements of a list must have the same type.
shared-calculator-error-identifier-as-function = '{ $symbol }' is a function. Try using parentheses.
shared-calculator-error-identifier-is-not-function = '{ $symbol }' is not a function. Try defining it as '{ $symbol }(x) = x^2' instead.
shared-calculator-error-illegal-bin-width = The second argument to '{ $symbol }' must be a positive number.
shared-calculator-error-illegal-dot-call = Function '{ $symbol }' cannot be called with dot notation.
shared-calculator-error-implicits-disabled = Plotting implicit equations and inequalities is disabled.
shared-calculator-error-incorrect-list-comprehension-input = Definitions on the right-hand side of 'for' must set a variable equal to a list. Try i=[1...10].
shared-calculator-error-incorrect-product-lower-bound = Lower bound of a product must set a variable equal to a number. Try n=1.
shared-calculator-error-incorrect-sum-lower-bound = Lower bound of a sum must set a variable equal to a number. Try n=1.
shared-calculator-error-index-type-error = Cannot index { $symbol1 } with { $symbol2 }.
shared-calculator-error-inequalities-disabled = Plotting inequalities is disabled.
shared-calculator-error-inequalities-unsupported = This calculator does not support inequalities.
shared-calculator-error-integral-argument-type-error = Cannot take the integral of { $symbol }.
shared-calculator-error-integral-lower-bound-type-error = Lower bound of an integral cannot be { $symbol }.
shared-calculator-error-integral-missing-body = What do you want to take the integral of?
shared-calculator-error-integral-missing-bound = Integrals must have upper and lower bounds.
shared-calculator-error-integral-missing-differential = Integrand must end with an integration variable, like dx.
shared-calculator-error-integral-upper-bound-type-error = Upper bound of an integral cannot be { $symbol }.
shared-calculator-error-internal-error = [internal] { $msg }
shared-calculator-error-invalid-dependent-first-table-column = This column header can't be defined elsewhere in the calculator.
shared-calculator-error-invalid-double-equality-3d = Sorry, we only plot double equalities that contain z. Try adding 0*z to one side.
shared-calculator-error-invalid-double-inequality-3d = We only plot double inequalities of x, y, and z.
shared-calculator-error-invalid-double-inequality-variables = We only plot double inequalities of x and y.
shared-calculator-error-invalid-first-table-column = First column may not be { $most } or { $last }.
shared-calculator-error-invalid-half-empty-range = Range must have an upper and lower bound.
shared-calculator-error-invalid-implicit-variables = We only support implicit equations of x and y.
shared-calculator-error-invalid-implicit-variables-3d = We only support implicit equations of x, y, and z.
shared-calculator-error-invalid-inequality-variables = We only plot inequalities of x and y, or r and \u03B8.
shared-calculator-error-invalid-interval-comprehension-invalid-bound = Parameter bounds on the right-hand side of 'for' must be of the form '0<{ $identifier }<1'.
shared-calculator-error-invalid-interval-comprehension-return-type = You can't use 'for' to parameterize { $type }.
shared-calculator-error-invalid-lhs = Sorry, you can't graph { $symbol } as a function of anything yet.
shared-calculator-error-invalid-operator-name = Operator names may only contain letters.
shared-calculator-error-invalid-regression-parameter = '{ $symbol }' may not be used as a regression parameter. Try using a list.
shared-calculator-error-invalid-subscript = Subscripts may only contain letters and digits. '{ $symbol }' is not allowed.
shared-calculator-error-invalid-table-entry = Table entries must be simple expressions. { $supplement }
shared-calculator-error-invalid-table-header = Table headers must be simple expressions. { $supplement }
shared-calculator-error-list-comprehension-input-type-error = A definition on the right-hand side of 'for' must be a list, but { $identifier } is { $actual }. Try { $identifier }={ $example }.
shared-calculator-error-list-type-error = Cannot store { $symbol1 } in a list.
shared-calculator-error-log-scale-box-plot = Cannot plot a box plot on a log scale.
shared-calculator-error-log-scale-dot-plot = Cannot plot a dot plot on a log scale.
shared-calculator-error-log-scale-histogram = Cannot plot a histogram on a log scale.
shared-calculator-error-log-scale-type-error = Cannot plot { $symbol } on a log scale.
shared-calculator-error-logbase-unsupported = This calculator does not support specifying the base of a logarithm. Try 'log' or 'ln'.
shared-calculator-error-malformed-list = Lists are written like this: [1, 2, 3].
shared-calculator-error-malformed-point = Points are written like this: (1, 2).
shared-calculator-error-matrix-add-dimensions = Cannot add matrices with different dimensions.
shared-calculator-error-matrix-assignment = This calculator does not support this type of variable definition. Try using 'New Matrix'.
shared-calculator-error-matrix-element-type-error = Cannot use { $arg } as an element of a matrix.
shared-calculator-error-matrix-fractional-power = A matrix can only be raised to integer powers.
shared-calculator-error-matrix-invalid-variable = Cannot use '{ $symbol }' as a variable.
shared-calculator-error-matrix-multiply-dimensions = Cannot multiply matrices with incompatible dimensions.
shared-calculator-error-matrix-power-dimensions = Only square matrices can be raised to a power.
shared-calculator-error-matrix-subtract-dimensions = Cannot subtract matrices with different dimensions.
shared-calculator-error-max-list-size = Lists may not have more than { $maxListSize } elements.
shared-calculator-error-method-requires-list = '{ $symbol }' requires a list. For example, try typing: { $recommendation }.
shared-calculator-error-mismatched-braces = Expected '{ $symbol1 }' to match '{ $symbol2 }'.
shared-calculator-error-mismatched-double-inequality = Double inequalities must both go the same way, e.g. { $example }.
shared-calculator-error-mixed-comparator-chain = Cannot mix inequalities and equations in a chain of comparisons.
shared-calculator-error-multiply-defined = You've defined '{ $dependency }' in more than one place. Try deleting some of the definitions of '{ $dependency }'.
shared-calculator-error-multiply-type-error = Cannot multiply { $symbol1 } by { $symbol2 }.
shared-calculator-error-multiply-type-error-2d = Ambiguous multiplication of { $symbol1 } by { $symbol2 }. Try typing: (1, 2) * (2, 1).
shared-calculator-error-multiply-type-error-3d = Ambiguous multiplication of { $symbol1 } by { $symbol2 }. Try typing: (1, 2, 3) cross (2, 1, 0).
shared-calculator-error-multiply-type-error-cross = Cannot take the cross product of { $symbol1 } and { $symbol2 }.
shared-calculator-error-negative-type-error = Cannot negate { $symbol }.
shared-calculator-error-nested-interval-comprehension = You can't yet use 'for' to introduce a new parameter to an already parameterized point.
shared-calculator-error-non-arithmetic-range = Ranges must be arithmetic sequences.
shared-calculator-error-non-list-double-reducer = Both arguments of '{ $symbol }' must be lists. For example, try typing: { $recommendation }.
shared-calculator-error-non-list-parameterized-reducer = The first argument of '{ $symbol }' must be a list. For example, try typing: { $recommendation }.
shared-calculator-error-non-singular-inverse = Singular matrices do not have an inverse.
shared-calculator-error-non-square-determinant = Only square matrices have a determinant.
shared-calculator-error-non-square-inverse = Only square matrices have an inverse.
shared-calculator-error-non-square-trace = Only square matrices have a trace.
shared-calculator-error-operator-type-error = Cannot apply { $symbol } to { $symbol1 } and { $symbol2 }.
shared-calculator-error-optimization-error = We couldn't find any region where this model is defined.
shared-calculator-error-ordered-pair-access-type-error = Cannot access a coordinate of { $symbol }.
shared-calculator-error-parameter-already-defined = You can't use '{ $dependency }' as a parameter of this function because '{ $dependency }' is already defined.
shared-calculator-error-parse-error = Sorry, I don't understand this.
shared-calculator-error-pdf-wrong-arity = 'pdf' should be called on a distribution with a number. { $recommendation }
shared-calculator-error-pdf-wrong-arity-recommendation = For example, try typing: D.pdf(x) where D=normaldist().
shared-calculator-error-percent-missing-of = '%' must be used with 'of'. Try '25% of 12'.
shared-calculator-error-piecewise-branch-type-error = Cannot use { $symbol1 } and { $symbol2 } as the branches in a piecewise. Every branch must have the same type.
shared-calculator-error-piecewise-condition-type-error = The condition in a piecewise expression must be { $symbol1 } but was { $symbol2 }.
shared-calculator-error-piecewise-missing-condition = A piecewise expression must have at least one condition.
shared-calculator-error-piecewise-part-missing-condition = Every part of a piecewise expression must have a condition except the last.
shared-calculator-error-point-type-error = Cannot use { $symbol1 } as a coordinate of { $symbol2 }.
shared-calculator-error-points-unsupported = This calculator does not support points.
shared-calculator-error-polygon-unsupported-in-3d = This calculator does not support the 'polygon' function. Try 'triangle' instead.
shared-calculator-error-prime-without-paren = Primed function calls must use parentheses.
shared-calculator-error-primed-function-arity = Prime notation can only be used for functions of a single argument.
shared-calculator-error-product-argument-type-error = Cannot take the product of { $symbol }.
shared-calculator-error-product-infinite-bound-type-error = Product bounds must be finite numbers.
shared-calculator-error-product-lower-bound-type-error = Lower bound of a product cannot be { $symbol }.
shared-calculator-error-product-missing-body = What do you want to take the product of?
shared-calculator-error-product-missing-bound = Products must have upper and lower bounds.
shared-calculator-error-product-upper-bound-type-error = Upper bound of a product cannot be { $symbol }.
shared-calculator-error-random-arity = 'random' should be called with no arguments, or an optional number of samples. For example, try random() or random(10).
shared-calculator-error-random-from-broadcast-distribution = Cannot sample from a list of distributions
shared-calculator-error-recursion-argument-type = Expected argument { $index } to be { $expectedType } but found { $foundType }.
shared-calculator-error-recursion-base-case-argument-non-number = Base case arguments must be simple numbers. Try using piecewise syntax.
shared-calculator-error-recursion-base-case-free-variable = This recursion's base case can't depend on variable '{ $freeVariable }'.
shared-calculator-error-recursion-base-case-same-type = Base cases must all have the same return type.
shared-calculator-error-recursion-base-case-too-complicated = For a recursion with multiple parameters, try using piecewise syntax.
shared-calculator-error-recursion-depth-limit-exceeded = Recursive depth limit exceeded without reaching a base case.
shared-calculator-error-recursion-does-not-terminate = This recursion doesn't reach a base case.
shared-calculator-error-recursion-missing-base-case =
{ $count ->
[one] The definition of function '{ $lastSymbol }' depends on itself. If '{ $lastSymbol }' is meant to be a recursive function, try adding a valid base case.
*[other] The definitions of functions '{ $symbols }' and '{ $lastSymbol }' depend on each other. If they are meant to be mutually recursive functions, try adding a valid base case.
}
shared-calculator-error-recursion-wrong-arity =
{ $count ->
[one] Function '{ $fnSymbol }' requires 1 argument.
*[other] Function '{ $fnSymbol }' requires { $count } arguments.
}
shared-calculator-error-regression-type-error = Cannot regress { $symbol1 } against { $symbol2 }.
shared-calculator-error-regressions-unsupported = This calculator does not support regressions.
shared-calculator-error-self-referential-functions =
{ $count ->
[one] The definition of function '{ $lastSymbol }' depends on itself.
*[other] The definitions of functions '{ $symbols }' and '{ $lastSymbol }' depend on each other.
}
shared-calculator-error-shadowed-index = You can't use '{ $symbol }' as an index because it's already defined.
shared-calculator-error-shadowed-integration-variable = You can't use '{ $symbol }' as an integration variable because it's already defined.
shared-calculator-error-shadowed-list-comprehension-input = You can't define '{ $symbol }' more than once on the right-hand side of 'for'.
shared-calculator-error-single-variable-implicit-equations-disabled = Plotting single-variable implicit equations is disabled.
shared-calculator-error-slider-limit-references-export = Slider limits cannot depend on the slider variable '{ $symbol }'.
shared-calculator-error-slider-max-invalid = Invalid slider max. Try using any number.
shared-calculator-error-slider-max-less-than-min = Invalid slider limits. Min should be less than max.
shared-calculator-error-slider-min-invalid = Invalid slider min. Try using any number.
shared-calculator-error-slider-step-invalid = Invalid slider step. Try using any number.
shared-calculator-error-substitution-ambiguous-comma = Ambiguous use of ',' and '{ $operation }'. Add parentheses around the '{ $operation }' expression.
shared-calculator-error-substitution-body-action = The left hand side of a 'with' substitution cannot be an action.
shared-calculator-error-substitution-body-regression-parameter-dependency = Can't use '{ $operator }' to substitute for the existing variable '{ $globalVariable }' because the expression on the left-hand side depends on '{ $regressionParameter }', which is a regression parameter.
shared-calculator-error-substitution-duplicate-assignment = A 'with' expression cannot make multiple substitutions for '{ $symbol }'.
shared-calculator-error-substitution-function-lhs = Substituting for '{ $symbol }' is not allowed because it is a function.
shared-calculator-error-substitution-illegal-lhs = Substituting for '{ $symbol }' is not allowed.
shared-calculator-error-substitution-invalid-assignments = 'with' must be followed by one or more variable definitions.
shared-calculator-error-substitution-local-lhs = Substituting for variable '{ $symbol }' is not allowed because it is locally defined.
shared-calculator-error-substitution-nested = Using one 'with' expression inside another 'with' expression is not allowed.
shared-calculator-error-substitution-recursion-shadow = Cannot substitute for previously defined symbol '{ $symbol }' in a recursive function.
shared-calculator-error-substitution-type-error = Cannot substitute { $actual } for { $expected }.
shared-calculator-error-substitution-unsupported-interval = Intervals are not allowed on the right-hand side of 'with'. You might want to try using 'for' instead.
shared-calculator-error-subtract-type-error = Cannot subtract { $symbol2 } from { $symbol1 }.
shared-calculator-error-sum-argument-type-error = Cannot take the sum of { $symbol }.
shared-calculator-error-sum-infinite-bound-type-error = Summation bounds must be finite numbers.
shared-calculator-error-sum-lower-bound-type-error = Lower bound of a sum cannot be { $symbol }.
shared-calculator-error-sum-missing-body = What do you want to take the sum of?
shared-calculator-error-sum-missing-bound = Sums must have upper and lower bounds.
shared-calculator-error-sum-upper-bound-type-error = Upper bound of a sum cannot be { $symbol }.
shared-calculator-error-superscript-with-prime = Superscripts and primes cannot be combined.
shared-calculator-error-table-entry-type-error = Table entry cannot be { $symbol }.
shared-calculator-error-table-equation-supplement = Equations are not allowed.
shared-calculator-error-table-function-definition-supplement = Function definitions are not allowed.
shared-calculator-error-table-generic-supplement = This type of expression is not allowed.
shared-calculator-error-table-header-type-error = Table header cannot be { $symbol }.
shared-calculator-error-table-inequality-supplement = Inequalities are not allowed.
shared-calculator-error-table-list-supplement = Lists are not allowed.
shared-calculator-error-table-regression-supplement = Regressions are not allowed.
shared-calculator-error-tdist-wrong-arity = 'tdist' requires 1 argument. For example, try typing: tdist(1).
shared-calculator-error-ticker-min-step-nonnegative = Min step must evaluate to a non-negative number.
shared-calculator-error-token-with-subscript = Tokens may not have subscripts.
shared-calculator-error-too-many-arguments = '{ $symbol }' accepts at most { $max } arguments.
shared-calculator-error-too-many-variables-many-symbols = Too many variables. Try defining '{ $variables }' or '{ $lastVariable }'.
shared-calculator-error-too-many-variables-no-symbols = Too many variables, I don't know what to do with this.
shared-calculator-error-too-many-variables-one-symbol = Too many variables. Try defining '{ $variable }'.
shared-calculator-error-transformation-definition-expected-types-1 = Try using { $arg }.
shared-calculator-error-transformation-definition-expected-types-2 = Try using { $arg1 } and { $arg2 }.
shared-calculator-error-transformation-definition-expected-types-use-fewer-1 = Try using just { $arg }.
shared-calculator-error-transformation-definition-expected-types-use-fewer-2 = Try using just { $arg1 } and { $arg2 }.
shared-calculator-error-transformation-definition-type-error-1 = A { $fn } cannot be defined using { $arg }. { $expectedTypeMessage }
shared-calculator-error-transformation-definition-type-error-2 = A { $fn } cannot be defined using { $arg1 } and { $arg2 }. { $expectedTypeMessage }
shared-calculator-error-transformation-definition-type-error-many = A '{ $fn }' cannot be defined with these arguments.
shared-calculator-error-transformation-definition-type-error-use-more-1 = A { $fn } cannot be defined using just { $arg }. { $expectedTypeMessage }
shared-calculator-error-transformation-definition-type-error-use-more-2 = A { $fn } cannot be defined using just { $arg1 } and { $arg2 }. { $expectedTypeMessage }
shared-calculator-error-transformation-type-error-1 = Transformation '{ $fn }' cannot be applied to { $arg }.
shared-calculator-error-transformation-type-error-2 = Transformation '{ $fn }' cannot be applied to { $arg1 } and { $arg2 }.
shared-calculator-error-transformation-type-error-many = Transformation '{ $fn }' cannot be applied to these arguments.
shared-calculator-error-ttest-list-too-short = Lists for '{ $symbol }' must have at least 2 elements.
shared-calculator-error-two-numbers-error = Cannot make a polygon from two numbers.
shared-calculator-error-unary-operator-missing-left = You need something before the '{ $symbol }' symbol.
shared-calculator-error-unary-operator-missing-right = You need something after the '{ $symbol }' symbol.
shared-calculator-error-unexpected-equality = Cannot use an equality here.
shared-calculator-error-unexpected-inequality = Cannot use an inequality here.
shared-calculator-error-unexpected-prime = Sorry, I don't understand this use of prime notation.
shared-calculator-error-unexpected-subscript = Only functions and variables may have subscripts.
shared-calculator-error-unexpected-symbol = Sorry, I don't understand the way that '{ $symbol }' is used here.
shared-calculator-error-unplottable-chained-equality = This calculator cannot plot chained equations.
shared-calculator-error-unplottable-long-inequality-chain = This calculator cannot plot chains of more than 2 inequalities.
shared-calculator-error-unplottable-polar-function = We can't plot \u03B8 as a function of r. Try plotting r(\u03B8) instead.
shared-calculator-error-unrecognized-symbol = Sorry, I don't understand the '{ $symbol }' symbol.
shared-calculator-error-update-rule-function-lhs = '{ $symbol }' cannot be updated because it is a function.
shared-calculator-error-update-rule-illegal-lhs = Variable '{ $symbol }' cannot be updated.
shared-calculator-error-update-rule-local-lhs = Variable '{ $symbol }' cannot be updated because it is locally defined.
shared-calculator-error-update-rule-non-identifier-lhs = The left hand side of '{ $arrow }' should be a variable name like '{ $example }'.
shared-calculator-error-update-rule-type-error = Cannot update a variable to { $symbol }.
shared-calculator-error-update-rule-undefined-lhs = Variable '{ $symbol }' must be defined to be updated.
shared-calculator-error-use-r-for-cylindrical-coordinates = Can't combine '\u03C1' and 'z'. Try 'r' for cylindrical coordinates.
shared-calculator-error-use-rho-for-spherical-coordinates = Can't combine 'r' and '\u03C6'. Try '\u03C1' (rho) for spherical coordinates.
shared-calculator-error-variable-as-function = Variable '{ $dependency }' can't be used as a function.
shared-calculator-error-variable-function-free-variable = Function '{ $functionSymbol }' cannot depend on free variable '{ $variableSymbol }'.
shared-calculator-error-variable-invalid-function-name = This calculator can not use '{ $symbol }' as a function name.
shared-calculator-error-variable-length-distribution-list = The length of a list of distributions can't depend on free variable '{ $symbol }'.
shared-calculator-error-variable-length-integral-depends-on-integration-var = Can't integrate a list whose length depends on integration variable '{ $symbol }'.
shared-calculator-error-variable-length-product-body-depends-on-index = Can't take the product of a list whose length depends on product index '{ $symbol }'.
shared-calculator-error-variable-length-sum-body-depends-on-index = Can't sum a list whose length depends on summation index '{ $symbol }'.
shared-calculator-error-variable-length-top-level-list = Can't plot a list whose length depends on free variable '{ $symbol }'.
shared-calculator-error-variable-seed = Random seed cannot depend on free variable '{ $symbol }'.
shared-calculator-error-variable-unsupported = This calculator does not support the '{ $symbol }' variable.
shared-calculator-error-variables-unsupported = This calculator does not support variables like '{ $variable }'.
shared-calculator-error-write-integral = Type '{ $command }' for { $symbol }.
shared-calculator-error-wrong-arity-many-arg = Function '{ $dependency }' requires { $assignment_arity } arguments. { $supplement }
shared-calculator-error-wrong-arity-single-arg-too-few = Function '{ $dependency }' requires an argument. { $supplement }
shared-calculator-error-wrong-arity-single-arg-too-many = Function '{ $dependency }' requires only 1 argument. { $supplement }
shared-calculator-error-wrong-arity-supplement = For example, try typing: { $recommendation }.
shared-calculator-error-wrong-two-arg-arity = Function '{ $symbol }' requires 2 arguments. For example, try typing: { $recommendation }.
shared-calculator-error-zero-arg-reducer = Function '{ $symbol }' requires at least one argument. For example, try typing: { $symbol }(1, 2).
shared-calculator-label-hide-custom-colors = Hide custom colors from geo toolbar
shared-calculator-label-toast-learn-more = Learn more
shared-calculator-label-toast-undo = Undo
shared-calculator-label-value-type-action = an action
shared-calculator-label-value-type-angle = an angle
shared-calculator-label-value-type-any = an unknown object
shared-calculator-label-value-type-arc = an arc
shared-calculator-label-value-type-bool = a true/false value
shared-calculator-label-value-type-circle = a circle
shared-calculator-label-value-type-color = a color
shared-calculator-label-value-type-directed-angle = a directed angle
shared-calculator-label-value-type-distribution = a distribution
shared-calculator-label-value-type-empty-list = an empty list
shared-calculator-label-value-type-error = an error object
shared-calculator-label-value-type-lambda-point = a parameterized point
shared-calculator-label-value-type-lambda-point3d = a parameterized 3d point
shared-calculator-label-value-type-line = a line
shared-calculator-label-value-type-list-of-3d-points = a list of 3D points
shared-calculator-label-value-type-list-of-angles = a list of angles
shared-calculator-label-value-type-list-of-any = a list of unknown objects
shared-calculator-label-value-type-list-of-arcs = a list of arcs
shared-calculator-label-value-type-list-of-bool = a list of true/false values
shared-calculator-label-value-type-list-of-circles = a list of circles
shared-calculator-label-value-type-list-of-colors = a list of colors
shared-calculator-label-value-type-list-of-directed-angles = a list of directed angles
shared-calculator-label-value-type-list-of-distributions = a list of distributions
shared-calculator-label-value-type-list-of-lambda-point = a list of parameterized points
shared-calculator-label-value-type-list-of-lambda-point3d = a list of parameterized 3d points
shared-calculator-label-value-type-list-of-lines = a list of lines
shared-calculator-label-value-type-list-of-numbers = a list of numbers
shared-calculator-label-value-type-list-of-points = a list of points
shared-calculator-label-value-type-list-of-polygons = a list of polygons
shared-calculator-label-value-type-list-of-rays = a list of rays
shared-calculator-label-value-type-list-of-restrictions = a list of restrictions
shared-calculator-label-value-type-list-of-segment3d = a list of 3d segments
shared-calculator-label-value-type-list-of-segments = a list of segments
shared-calculator-label-value-type-list-of-sphere3d = a list of 3d sphere
shared-calculator-label-value-type-list-of-tone = a list of tones
shared-calculator-label-value-type-list-of-transformations = a list of transformations
shared-calculator-label-value-type-list-of-triangle3d = a list of 3d triangles
shared-calculator-label-value-type-list-of-vector3d = a list of 3d vectors
shared-calculator-label-value-type-list-of-vectors = a list of vectors
shared-calculator-label-value-type-number = a number
shared-calculator-label-value-type-point = a point
shared-calculator-label-value-type-point3d = a 3d point
shared-calculator-label-value-type-polygon = a polygon
shared-calculator-label-value-type-ray = a ray
shared-calculator-label-value-type-restriction = a restriction
shared-calculator-label-value-type-seed = a string
shared-calculator-label-value-type-segment = a segment
shared-calculator-label-value-type-segment3d = a 3d segment
shared-calculator-label-value-type-sphere3d = a 3d sphere
shared-calculator-label-value-type-tone = a tone
shared-calculator-label-value-type-transformation = a transformation
shared-calculator-label-value-type-triangle3d = a 3d triangle
shared-calculator-label-value-type-vector = a vector
shared-calculator-label-value-type-vector3d = a 3d vector
shared-calculator-narration-author-mode = Author Mode
shared-calculator-narration-author-mode-off = Author mode off
shared-calculator-narration-author-mode-on = Author mode on
shared-calculator-narration-braille-mode = Braille Mode
shared-calculator-narration-control-toggle-switch-to-default = { $toggled } selected. Press Enter to switch to { $default }.
shared-calculator-narration-control-toggle-switch-to-toggled = { $default } selected. Press Enter to switch to { $toggled }.
shared-calculator-narration-disable-tool = Disable { $tool } when this condition is true
shared-calculator-narration-display-as-decimal = Displaying as fraction. Press Enter to display as Decimal
shared-calculator-narration-display-as-fraction = Displaying as decimal. Press Enter to display as Fraction
shared-calculator-narration-expression-index = Expression { $index }
shared-calculator-narration-expression-list = Expression List
shared-calculator-narration-hotkey-braille-mode-nemeth = Braille mode Nemeth
shared-calculator-narration-hotkey-braille-mode-off = Braille mode off
shared-calculator-narration-hotkey-braille-mode-ueb = Braille mode UEB
shared-calculator-narration-input-error = input has an error
shared-calculator-narration-item-clickable = { $item } clickable
shared-calculator-narration-item-selected = { $item } selected
shared-calculator-narration-item-unknown = Unknown
shared-calculator-narration-item-unselected = { $item } unselected
shared-calculator-narration-keypad = keypad
shared-calculator-narration-keypad-controlbar = Control Bar
shared-calculator-narration-keypad-key-10-n = Times ten to the power of
shared-calculator-narration-keypad-key-abs = Absolute Value
shared-calculator-narration-keypad-key-action-to = Set Value To
shared-calculator-narration-keypad-key-action-with = Substitute With
shared-calculator-narration-keypad-key-alpha = Alpha
shared-calculator-narration-keypad-key-angle = Angle
shared-calculator-narration-keypad-key-angles = Angles
shared-calculator-narration-keypad-key-ans = Answer
shared-calculator-narration-keypad-key-arc = Arc
shared-calculator-narration-keypad-key-arccos = Inverse Cosine
shared-calculator-narration-keypad-key-arccot = Inverse Cotangent
shared-calculator-narration-keypad-key-arccsc = Inverse Cosecant
shared-calculator-narration-keypad-key-arcsec = Inverse Secant
shared-calculator-narration-keypad-key-arcsin = Inverse Sine
shared-calculator-narration-keypad-key-arctan = Inverse Tangent
shared-calculator-narration-keypad-key-area = Area
shared-calculator-narration-keypad-key-backspace = Backspace
shared-calculator-narration-keypad-key-beta = Beta
shared-calculator-narration-keypad-key-binomialdist = Binomial Distribution
shared-calculator-narration-keypad-key-boxplot = Box Plot
shared-calculator-narration-keypad-key-ceil = Ceiling
shared-calculator-narration-keypad-key-center = Center
shared-calculator-narration-keypad-key-circle = Circle
shared-calculator-narration-keypad-key-corr = Correlation
shared-calculator-narration-keypad-key-cos = Cosine
shared-calculator-narration-keypad-key-cosh = Hyperbolic Cosine
shared-calculator-narration-keypad-key-cot = Cotangent
shared-calculator-narration-keypad-key-coterminal = Coterminal
shared-calculator-narration-keypad-key-coth = Hyperbolic Cotangent
shared-calculator-narration-keypad-key-cov = Co Variance
shared-calculator-narration-keypad-key-covp = Population Co Variance
shared-calculator-narration-keypad-key-csc = Cosecant
shared-calculator-narration-keypad-key-csch = Hyperbolic Cosecant
shared-calculator-narration-keypad-key-cubed = Cubed
shared-calculator-narration-keypad-key-decimal = Decimal
shared-calculator-narration-keypad-key-dilate = Dilate
shared-calculator-narration-keypad-key-directed-angle = Directed Angle
shared-calculator-narration-keypad-key-directed-angles = Directed Angles
shared-calculator-narration-keypad-key-distance = Distance
shared-calculator-narration-keypad-key-divide = Divide
shared-calculator-narration-keypad-key-dotplot = Dot Plot
shared-calculator-narration-keypad-key-enter = Enter
shared-calculator-narration-keypad-key-erf = Error Function
shared-calculator-narration-keypad-key-exp = Exponent
shared-calculator-narration-keypad-key-factorial = Factorial
shared-calculator-narration-keypad-key-floor = Floor
shared-calculator-narration-keypad-key-fraction = A over B
shared-calculator-narration-keypad-key-glider = Glider
shared-calculator-narration-keypad-key-histogram = Histogram
shared-calculator-narration-keypad-key-int = Integral
shared-calculator-narration-keypad-key-intersection = Intersection
shared-calculator-narration-keypad-key-inversecdf = Inverse CDF function
shared-calculator-narration-keypad-key-ittest = Independent T Test
shared-calculator-narration-keypad-key-left-arrow = Left Arrow
shared-calculator-narration-keypad-key-left-bracket = Left Bracket
shared-calculator-narration-keypad-key-left-paren = Left Parenthesis
shared-calculator-narration-keypad-key-line = Line
shared-calculator-narration-keypad-key-ln = Natural Log
shared-calculator-narration-keypad-key-log = Log
shared-calculator-narration-keypad-key-loga = Log A
shared-calculator-narration-keypad-key-mean = Mean
shared-calculator-narration-keypad-key-median = Median
shared-calculator-narration-keypad-key-midpoint = Midpoint
shared-calculator-narration-keypad-key-minus = Minus
shared-calculator-narration-keypad-key-normaldist = Normal Distribution
shared-calculator-narration-keypad-key-nthroot = Nth Root
shared-calculator-narration-keypad-key-parallel = Parallel
shared-calculator-narration-keypad-key-pdf = Probability Density Function
shared-calculator-narration-keypad-key-percent-of = Percent Of
shared-calculator-narration-keypad-key-perimeter = Perimeter
shared-calculator-narration-keypad-key-perpendicular = Perpendicular
shared-calculator-narration-keypad-key-phi = Phi
shared-calculator-narration-keypad-key-pi = Pi
shared-calculator-narration-keypad-key-plus = Plus
shared-calculator-narration-keypad-key-poissondist = Poisson Distribution
shared-calculator-narration-keypad-key-polygon = Polygon
shared-calculator-narration-keypad-key-prime = Function derivative
shared-calculator-narration-keypad-key-product = Product
shared-calculator-narration-keypad-key-quantile = Quantile
shared-calculator-narration-keypad-key-quartile = Quartile
shared-calculator-narration-keypad-key-radius = Radius
shared-calculator-narration-keypad-key-random = Random Number
shared-calculator-narration-keypad-key-ray = Ray
shared-calculator-narration-keypad-key-reciprocal = Reciprocal
shared-calculator-narration-keypad-key-reflect = Reflect
shared-calculator-narration-keypad-key-rho = Rho
shared-calculator-narration-keypad-key-right-arrow = Right Arrow
shared-calculator-narration-keypad-key-right-bracket = Right Bracket
shared-calculator-narration-keypad-key-right-paren = Right Parenthesis
shared-calculator-narration-keypad-key-rotate = Rotate
shared-calculator-narration-keypad-key-round = Round
shared-calculator-narration-keypad-key-sec = Secant
shared-calculator-narration-keypad-key-segment = Segment
shared-calculator-narration-keypad-key-segments = Segments
shared-calculator-narration-keypad-key-shift = Shift
shared-calculator-narration-keypad-key-sin = Sine
shared-calculator-narration-keypad-key-sinh = Hyperbolic Sine
shared-calculator-narration-keypad-key-spearman = Spearman Rank Correlation
shared-calculator-narration-keypad-key-sphere = Sphere
shared-calculator-narration-keypad-key-sqrt = Square Root
shared-calculator-narration-keypad-key-squared = Squared
shared-calculator-narration-keypad-key-stats = Summary statistics
shared-calculator-narration-keypad-key-stdev = Standard Deviation
shared-calculator-narration-keypad-key-stdevp = Standard Deviation of Population
shared-calculator-narration-keypad-key-subscript = Subscript
shared-calculator-narration-keypad-key-sum = Sum
shared-calculator-narration-keypad-key-superscript = Superscript
shared-calculator-narration-keypad-key-supplement = Supplement
shared-calculator-narration-keypad-key-tan = Tangent
shared-calculator-narration-keypad-key-tanh = Hyperbolic Tangent
shared-calculator-narration-keypad-key-tau = Tau
shared-calculator-narration-keypad-key-tdist = Student-t Distribution
shared-calculator-narration-keypad-key-theta = Theta
shared-calculator-narration-keypad-key-times = Times
shared-calculator-narration-keypad-key-toggle-audio-trace = Toggle Audio Trace
shared-calculator-narration-keypad-key-toggle-letters = Toggle Letters
shared-calculator-narration-keypad-key-toggle-numbers = Toggle Numbers
shared-calculator-narration-keypad-key-tone = Tone
shared-calculator-narration-keypad-key-translate = Translate
shared-calculator-narration-keypad-key-triangle = Triangle
shared-calculator-narration-keypad-key-tscore = T Score
shared-calculator-narration-keypad-key-ttest = T Test
shared-calculator-narration-keypad-key-uniformdist = Uniform Distribution
shared-calculator-narration-keypad-key-vector = Vector
shared-calculator-narration-keypad-key-vertices = Vertices
shared-calculator-narration-keypad-key-ythroot = Yth Root
shared-calculator-narration-keypad-plus-minus = Plus-Minus
shared-calculator-narration-math-input-error-message = expression has error
shared-calculator-narration-settings-display-size = Display Size
shared-calculator-narration-settings-display-size-default = Display size: default
shared-calculator-narration-settings-display-size-large = Display size: large
shared-calculator-narration-show-as-decimal = Show as Decimal
shared-calculator-narration-show-as-fraction = Show as Fraction
shared-calculator-narration-six-key-mode-off = Six Key Braille Input off
shared-calculator-narration-six-key-mode-on = Six Key Braille Input on
shared-calculator-text-customize-toolbar = Customize the Toolbar
shared-calculator-text-search-results =
{ $count ->
[0] No results.
[one] 1 result.
*[other] { $count } results.
}
shared-label-to = to
basic-calculator-button-controlbar-abc = abc
basic-calculator-button-controlbar-clear = clear
basic-calculator-button-controlbar-clear-all = clear all
basic-calculator-button-controlbar-func = func
basic-calculator-button-controlbar-main = main
basic-calculator-button-turn-braille-mode-off = Turn { $mode } off
basic-calculator-error-fractions-unavailable = Fractions are not available in the current calculator.
basic-calculator-error-parentheses-unavailable = Parentheses are not available in this calculator.
basic-calculator-heading-braille-table-type-this = Type this
basic-calculator-heading-braille-table-typeset = Typeset
basic-calculator-label-answer-hint = Your answers show up on this side.
basic-calculator-label-controlbar-deg = deg
basic-calculator-label-controlbar-rad = rad
basic-calculator-label-convert-to-decimal = Convert to decimal.
basic-calculator-label-convert-to-fraction = Convert to fraction.
basic-calculator-label-reverse-contrast = Reverse Contrast
basic-calculator-link-download-braille-equations = Download Braille Equations
basic-calculator-link-view-braille-examples = View more examples
basic-calculator-narration-calc-description-fourfunction = Desmos Four-Function Calculator
basic-calculator-narration-calc-description-scientific = Desmos Scientific Calculator
basic-calculator-narration-controlbar-abc = A B C
basic-calculator-narration-controlbar-backspace = backspace
basic-calculator-narration-controlbar-clear = clear
basic-calculator-narration-controlbar-clear-all = clear all
basic-calculator-narration-controlbar-degrees = Degrees
basic-calculator-narration-controlbar-functions = Functions
basic-calculator-narration-controlbar-main = main
basic-calculator-narration-controlbar-radians = Radians
basic-calculator-narration-controlbar-redo = Redo
basic-calculator-narration-controlbar-settings = settings
basic-calculator-narration-controlbar-undo = Undo
basic-calculator-narration-convert-to-decimal = Displaying as fraction. Press Enter to display as Decimal
basic-calculator-narration-convert-to-fraction = Displaying as decimal. Press Enter to display as Fraction
basic-calculator-narration-hotkey-six-key-input-off = Six Key Braille Input off
basic-calculator-narration-hotkey-six-key-input-on = Six Key Braille Input on
basic-calculator-text-braille-mode-is-on = { $mode } is on!
basic-calculator-text-how-to-type-braille = Use a Refreshable Braille display, or just type Braille with a keyboard.
geometry-label-construct-instruction = Click down here to construct
geometry-label-pick-tool-instruction = Pick a tool to get started
graphing-calculator-button-audio-trace-hear-graph = Hear Graph
graphing-calculator-button-audio-trace-stop-graph = Stop Graph
graphing-calculator-button-change-image = Change Image
graphing-calculator-button-clear-graph = Delete All
graphing-calculator-button-done = Done
graphing-calculator-button-draggable = Draggable
graphing-calculator-button-edit-graph-on-desmos-logo = edit graph on
graphing-calculator-button-editable-math = Editable Math
graphing-calculator-button-editable-text = Editable Text
graphing-calculator-button-find-cdf = Find Cumulative Probability (CDF)
graphing-calculator-button-funcs = funcs
graphing-calculator-button-functions = functions
graphing-calculator-button-functions-menu-custom-colors = Custom Colors
graphing-calculator-button-functions-menu-number-theory = Number Theory
graphing-calculator-button-geometry-label-points-checkbox = Label Points
graphing-calculator-button-hide-folder-from-students-2 = Hide this folder from students.
graphing-calculator-button-keypad-audio-trace-off = Audio Trace Off
graphing-calculator-button-keypad-describe-axes = Describe Axes
graphing-calculator-button-keypad-describe-curve = Describe Curve
graphing-calculator-button-keypad-describe-curve-short = Curve
graphing-calculator-button-keypad-describe-point = Describe Point
graphing-calculator-button-keypad-describe-point-short = Point
graphing-calculator-button-label = Label
graphing-calculator-button-label-editable = Editable
graphing-calculator-button-label-show-on-hover = Show on hover
graphing-calculator-button-label-text-outline = Text outline
graphing-calculator-button-load-image-retry = Retry.
graphing-calculator-button-move-to-folder-action = Move
graphing-calculator-button-place-image-behind-graphs = Place behind graphs
graphing-calculator-button-regression-log-mode = Log Mode
graphing-calculator-button-regression-plot-residuals = plot
graphing-calculator-button-replace = Replace
graphing-calculator-button-reset-graph = Reset
graphing-calculator-button-settings-degrees = Degrees
graphing-calculator-button-settings-radians = Radians
graphing-calculator-button-settings-zoom-square = Zoom Square
graphing-calculator-button-show-all-table-rows = Show all
graphing-calculator-button-slider-add-all-variables = all
graphing-calculator-button-visual-parameters-binned = Binned
graphing-calculator-button-visual-parameters-center = Center
graphing-calculator-button-visual-parameters-count = Count
graphing-calculator-button-visual-parameters-density = Density
graphing-calculator-button-visual-parameters-exact = Exact
graphing-calculator-button-visual-parameters-exclude-outliers = Exclude Outliers
graphing-calculator-button-visual-parameters-left = Left
graphing-calculator-button-visual-parameters-relative = Relative
graphing-calculator-error-equation-contains-unresolved-details = This plot contains fine detail that has not been fully resolved.
graphing-calculator-error-expression-replacement = Replacement must be a valid function or variable name.
graphing-calculator-error-expression-search = Can only rename a valid function or variable name.
graphing-calculator-error-failed-to-load-image = Failed to load image.
graphing-calculator-error-image-invalid-angle = Invalid angle. Try using any number.
graphing-calculator-error-image-invalid-center = Invalid center. Try, for example, (0,0).
graphing-calculator-error-image-invalid-file = The file "{ $file }" is not an image
graphing-calculator-error-image-invalid-height = Invalid height. Try using any number.
graphing-calculator-error-image-invalid-opacity = Invalid opacity. Try using any number.
graphing-calculator-error-image-invalid-width = Invalid width. Try using any number.
graphing-calculator-error-log-axes-image = Cannot plot images on a log scale.
graphing-calculator-error-tone-frequency-out-of-range = Tones can only play for frequencies between { $min }Hz and { $max }Hz.
graphing-calculator-heading-advanced = Advanced
graphing-calculator-heading-audio-trace-describe = Describe
graphing-calculator-heading-audio-trace-navigation = Navigation
graphing-calculator-heading-audio-trace-screen-reader = Screen Reader
graphing-calculator-heading-calculus = Calculus
graphing-calculator-heading-clickable = Clickable
graphing-calculator-heading-dist-tab-distributions = Distributions
graphing-calculator-heading-dist-tab-visualizations = Visualizations
graphing-calculator-heading-drag = Drag
graphing-calculator-heading-fill = Fill
graphing-calculator-heading-functions-menu-advanced = Advanced
graphing-calculator-heading-functions-menu-polar = Polar Coordinates
graphing-calculator-heading-functions-menu-sound = Sound
graphing-calculator-heading-geometry = Geometry
graphing-calculator-heading-geometry-measurements = Properties & Measurements
graphing-calculator-heading-geometry-tools = Geometry Tools
graphing-calculator-heading-geometry-transformations = Transformations
graphing-calculator-heading-hyperbolic-trig = Hyperbolic Trig Functions
graphing-calculator-heading-image-opacity = Opacity
graphing-calculator-heading-inverse-trig = Inverse Trig Functions
graphing-calculator-heading-keypad-audio-trace-point-of-interest = <1>Point</1><2>of Interest</2>
graphing-calculator-heading-label = Label
graphing-calculator-heading-label-orientation = Orientation
graphing-calculator-heading-lines = Lines
graphing-calculator-heading-lists = List Operations
graphing-calculator-heading-points = Points
graphing-calculator-heading-regression-parameters = Parameters
graphing-calculator-heading-regression-residuals = Residuals
graphing-calculator-heading-regression-statistics = Statistics
graphing-calculator-heading-slider-animation-mode = Animation Mode
graphing-calculator-heading-slider-speed = Speed
graphing-calculator-heading-stat-tests = Statistical Tests
graphing-calculator-heading-stats = Statistics
graphing-calculator-heading-style = Style
graphing-calculator-heading-surfaces = Surfaces
graphing-calculator-heading-trig = Trig Functions
graphing-calculator-heading-visual-parameters-bar-heights = Bar Heights
graphing-calculator-heading-visual-parameters-bin-alignment = Bin Alignment
graphing-calculator-heading-visual-parameters-display-properties = Display Properties
graphing-calculator-heading-visual-parameters-x-values = X Values
graphing-calculator-label-add-base-case = add base case:
graphing-calculator-label-add-depressed-image-tooltip = Add Depressed Image
graphing-calculator-label-add-hovered-image-tooltip = Add Hovered Image
graphing-calculator-label-add-item-tooltip = Add Item
graphing-calculator-label-add-slider = add slider:
graphing-calculator-label-angle-tooltip = Angle
graphing-calculator-label-animation-properties-tooltip = Animation Properties
graphing-calculator-label-audio-trace-curve = Curve
graphing-calculator-label-audio-trace-need-screen-reader = Your Screen Reader needs to be on to hear these.
graphing-calculator-label-audio-trace-point = Point
graphing-calculator-label-audio-trace-speed = Speed
graphing-calculator-label-audio-trace-volume = Volume
graphing-calculator-label-axes = Axes
graphing-calculator-label-cdf-maximum = Max:
graphing-calculator-label-cdf-minimum = Min:
graphing-calculator-label-change-depressed-image-tooltip = Change Depressed Image
graphing-calculator-label-change-hovered-image-tooltip = Change Hovered Image
graphing-calculator-label-convert-to-table-tooltip = Convert to Table
graphing-calculator-label-create-table = Create Table
graphing-calculator-label-depressed = Depressed
graphing-calculator-label-disable-graph-interactions = Disable Graph Interactions
graphing-calculator-label-disable-zoom = Disable zooming
graphing-calculator-label-display-properties = Local Display Preferences
graphing-calculator-label-drop-image-here = Drop Image Here
graphing-calculator-label-duplicate-expression-tooltip = Duplicate
graphing-calculator-label-edit-graph-bounds = Graph Bounds
graphing-calculator-label-edit-list-tooltip = Edit List
graphing-calculator-label-evaluation-list = { $count } element list
graphing-calculator-label-expression-delete-tooltip = Delete
graphing-calculator-label-expression-lowercase = expression
graphing-calculator-label-extend-to-3d = Extend to 3D
graphing-calculator-label-folder-lowercase = folder
graphing-calculator-label-geometry-move-to-folder-placeholder = Folder name
graphing-calculator-label-geometry-tools = Geometry Tools
graphing-calculator-label-geometry-tools-dropdown-menu-angle = Angle tools
graphing-calculator-label-geometry-tools-dropdown-menu-circle = Circle tools
graphing-calculator-label-geometry-tools-dropdown-menu-line = Line tools
graphing-calculator-label-geometry-tools-dropdown-menu-point = Point tools
graphing-calculator-label-geometry-tools-dropdown-menu-polygon = Polygon tools
graphing-calculator-label-geometry-tools-dropdown-menu-selection = Selection tools
graphing-calculator-label-geometry-tools-dropdown-menu-transformation = Transformation tools
graphing-calculator-label-geometry-tools-open-dropdown-menu-transformation = Open { $item } menu
graphing-calculator-label-hide-expression-list-tooltip = Hide Expression List
graphing-calculator-label-hide-keypad = Hide Keypad
graphing-calculator-label-hovered = Hovered
graphing-calculator-label-image-angle = Angle:
graphing-calculator-label-image-center = Center:
graphing-calculator-label-image-height = Height:
graphing-calculator-label-image-lowercase = image
graphing-calculator-label-image-opacity = Opacity:
graphing-calculator-label-image-width = Width:
graphing-calculator-label-label-size-tooltip = Label Scale Factor
graphing-calculator-label-line-thickness-3d-tooltip = Line Thickness
graphing-calculator-label-line-thickness-tooltip = Line Thickness (px)
graphing-calculator-label-list-index = Use <1>index</1> to reference the clicked index in the list.
graphing-calculator-label-lock-expression-tooltip = Prevent Editing
graphing-calculator-label-more-viewport-options = More Options
graphing-calculator-label-new-transformation = New Transformation
graphing-calculator-label-note-lowercase = note
graphing-calculator-label-opacity-tooltip = Opacity (0 to 1)
graphing-calculator-label-open-graph-tooltip = Open Graph
graphing-calculator-label-open-graph-with-shortcut-tooltip = Open Graph (CTRL+O)
graphing-calculator-label-poi-unknown = unknown coordinates
graphing-calculator-label-point-size-3d-tooltip = Point Size
graphing-calculator-label-point-size-tooltip = Point Size (px)
graphing-calculator-label-powered-by = powered by
graphing-calculator-label-randomize-tooltip = Randomize
graphing-calculator-label-recent-transformations = Recent Transformations
graphing-calculator-label-recenter = Center Origin
graphing-calculator-label-redo-tooltip = Redo
graphing-calculator-label-redo-with-shortcut-tooltip = Redo (CTRL+Y)
graphing-calculator-label-reference-count =
{ $count ->
[one] (1 reference)
*[other] ({ $count } references)
}
graphing-calculator-label-reference-count-in-folder =
{ $count ->
[one] (1 reference in folder)
*[other] ({ $count } references in folder)
}
graphing-calculator-label-regression-log-mode-help-tooltip = Log mode help
graphing-calculator-label-regression-parameters-not-exact = Parameters might not be exact. Click to learn more.
graphing-calculator-label-regression-what-is-rmse-tooltip = What is RMSE? Click to learn more.
graphing-calculator-label-regression-why-is-negative-tooltip = Why is this negative? Click to learn more.
graphing-calculator-label-remove-depressed-image = Remove depressed image
graphing-calculator-label-remove-hovered-image = Remove hovered image
graphing-calculator-label-rename = rename
graphing-calculator-label-resolution-tooltip = 3D Grid Sample Resolution
graphing-calculator-label-search-expressions = Search this graph
graphing-calculator-label-settings-3d-perspective-distortion-ratio = Perspective Distortion Ratio
graphing-calculator-label-settings-3d-perspective-max = Most distortion (Perspective view)
graphing-calculator-label-settings-3d-perspective-min = No distortion (Orthographic view)
graphing-calculator-label-settings-all-axes = All axes:
graphing-calculator-label-settings-arrows = Arrows
graphing-calculator-label-settings-axis-labels-3d = Labels
graphing-calculator-label-settings-axis-numbers = Axis Numbers
graphing-calculator-label-settings-domain-plane = XY plane
graphing-calculator-label-settings-grid = Grid
graphing-calculator-label-settings-hidden-objects = Reveal { $count } hidden objects
graphing-calculator-label-settings-lock-viewport = Lock Viewport
graphing-calculator-label-settings-minor-gridlines = Minor Gridlines
graphing-calculator-label-settings-numbers-3d = Numbers
graphing-calculator-label-settings-one-quadrant = One Quadrant
graphing-calculator-label-settings-reverse-contrast = Reverse contrast
graphing-calculator-label-settings-six-key-braille = Six Key Braille Input
graphing-calculator-label-settings-step = Step:
graphing-calculator-label-settings-translucent-surfaces = Translucent surfaces
graphing-calculator-label-settings-x-axis = X-Axis
graphing-calculator-label-settings-y-axis = Y-Axis
graphing-calculator-label-show-keypad = Show Keypad
graphing-calculator-label-slider-disabled-while-ticker-playing = Sliders are disabled while the ticker is running.
graphing-calculator-label-slider-step = Step:
graphing-calculator-label-table-lowercase = table
graphing-calculator-label-ticker-close = cancel
graphing-calculator-label-ticker-help-tooltip = On slow computers, this might run slower. Use local variable "dt" to capture the actual update speed.
graphing-calculator-label-ticker-lowercase = ticker
graphing-calculator-label-ticker-min-step = Min Step Time
graphing-calculator-label-ticker-pause = pause
graphing-calculator-label-ticker-play = play
graphing-calculator-label-tooltip-geometry-settings = Geometry Settings
graphing-calculator-label-tooltip-graph-settings = Graph Settings
graphing-calculator-label-tooltip-open-graph = Open Graph
graphing-calculator-label-tooltip-reset = Reset
graphing-calculator-label-tooltip-show-list = Show List
graphing-calculator-label-tooltip-viewport-default = Default Viewport
graphing-calculator-label-tooltip-zoom-default-orientation = Default Orientation
graphing-calculator-label-tooltip-zoom-in = Zoom In
graphing-calculator-label-tooltip-zoom-out = Zoom Out
graphing-calculator-label-tooltip-zoom-xy-orientation = XY Orientation
graphing-calculator-label-undo-tooltip = Undo
graphing-calculator-label-undo-with-shortcut-tooltip = Undo (CTRL+Z)
graphing-calculator-label-unlock-expression-tooltip = Allow Editing
graphing-calculator-label-update-on-click = On click:
graphing-calculator-link-edit-on-desmos = edit graph on
graphing-calculator-link-learn-more = Learn more.
graphing-calculator-link-view-braille-examples = View examples
graphing-calculator-narration-3d-graphpaper-label = three-dimensional graph paper
graphing-calculator-narration-3d-orientation-options-label = Orientation
graphing-calculator-narration-add-base-case-prompt =
{ $count ->
[one] Add 1 base case
*[other] Add { $count } base cases
}
graphing-calculator-narration-add-expression = Add expression
graphing-calculator-narration-add-folder = Add folder
graphing-calculator-narration-add-image = Add image
graphing-calculator-narration-add-item-menu = Add Item Menu
graphing-calculator-narration-add-note = Add note
graphing-calculator-narration-add-slider-prompt = Add slider for { $vars }
graphing-calculator-narration-add-table = Add table
graphing-calculator-narration-add-ticker = Add Ticker
graphing-calculator-narration-all-folders-collapsed = all folders collapsed
graphing-calculator-narration-all-folders-expanded = all folders expanded
graphing-calculator-narration-audio-instructions-enter-audio-trace-mac = Press OPTION+T for audio trace.
graphing-calculator-narration-audio-instructions-enter-audio-trace-windows = Press ALT+T for audio trace.
graphing-calculator-narration-audio-trace-branch-not-found = Branch { $branch } does not exist.
graphing-calculator-narration-audio-trace-cannot-change-slider-value = Unable to adjust slider
graphing-calculator-narration-audio-trace-description-branch-count = Branches: { $branches }.
graphing-calculator-narration-audio-trace-description-color = Color: { $color }.
graphing-calculator-narration-audio-trace-description-multiple-extrema = { $count } extrema.
graphing-calculator-narration-audio-trace-description-multiple-intercepts = { $count } intercepts.
graphing-calculator-narration-audio-trace-description-multiple-intersections = { $count } intersections.
graphing-calculator-narration-audio-trace-description-multiple-labels = { $count } point labels.
graphing-calculator-narration-audio-trace-description-multiple-roots = { $count } zero crossings.
graphing-calculator-narration-audio-trace-description-no-curve-selected = No curve selected.
graphing-calculator-narration-audio-trace-description-one-extremum = 1 extremum.
graphing-calculator-narration-audio-trace-description-one-intercept = 1 intercept.
graphing-calculator-narration-audio-trace-description-one-intersection = 1 intersection.
graphing-calculator-narration-audio-trace-description-one-label = 1 point label.
graphing-calculator-narration-audio-trace-description-one-root = 1 zero crossing.
graphing-calculator-narration-audio-trace-description-shading-above = Shading above.
graphing-calculator-narration-audio-trace-description-shading-below = Shading below.
graphing-calculator-narration-audio-trace-description-shading-in-regions = Shading in regions.
graphing-calculator-narration-audio-trace-description-shading-left = Shading on the left.
graphing-calculator-narration-audio-trace-description-shading-right = Shading on the right.
graphing-calculator-narration-audio-trace-description-visible-grid = Grid lines are visible.
graphing-calculator-narration-audio-trace-description-visible-x-axis = X axis visible.
graphing-calculator-narration-audio-trace-description-visible-x-axis-and-label = X axis visible and is labeled { $label }.
graphing-calculator-narration-audio-trace-description-visible-x-axis-range = X axis visible from { $xmin } to { $xmax }.
graphing-calculator-narration-audio-trace-description-visible-x-axis-range-and-label = X axis visible from { $xmin } to { $xmax } and is labeled { $label }.
graphing-calculator-narration-audio-trace-description-visible-xyz-axis-range = X Y and Z axes visible from { $xmin } to { $xmax }.
graphing-calculator-narration-audio-trace-description-visible-y-axis = Y axis visible.
graphing-calculator-narration-audio-trace-description-visible-y-axis-and-label = Y axis visible and is labeled { $label }.
graphing-calculator-narration-audio-trace-description-visible-y-axis-range = Y axis visible from { $ymin } to { $ymax }.
graphing-calculator-narration-audio-trace-description-visible-y-axis-range-and-label = Y axis visible from { $ymin } to { $ymax } and is labeled { $label }.
graphing-calculator-narration-audio-trace-description-visible-z-axis = Z axis visible.
graphing-calculator-narration-audio-trace-description-visible-z-axis-and-label = Z axis visible and is labeled { $label }.
graphing-calculator-narration-audio-trace-description-visible-z-axis-range = Z axis visible from { $zmin } to { $zmax }.
graphing-calculator-narration-audio-trace-description-visible-z-axis-range-and-label = Z axis visible from { $zmin } to { $zmax } and is labeled { $label }.
graphing-calculator-narration-audio-trace-expression-with-column = Expression { $index } column { $column }
graphing-calculator-narration-audio-trace-first-point = First point
graphing-calculator-narration-audio-trace-first-slider = First slider.
graphing-calculator-narration-audio-trace-instructions-disable-mac = To disable audio trace, press OPTION+T.
graphing-calculator-narration-audio-trace-instructions-disable-windows = To disable audio trace, press ALT+T.
graphing-calculator-narration-audio-trace-instructions-expression-navigation-mac = To move between expressions, press COMMAND+Up-Arrow or COMMAND+Down-Arrow.
graphing-calculator-narration-audio-trace-instructions-expression-navigation-windows = To move between expressions, press ALT+Up-Arrow or ALT+Down-Arrow.
graphing-calculator-narration-audio-trace-instructions-hear-graph = To hear the graph, press H.
graphing-calculator-narration-audio-trace-instructions-use-arrow-keys = Use Arrow keys to navigate.
graphing-calculator-narration-audio-trace-last-point = Last point
graphing-calculator-narration-audio-trace-last-slider = Last slider.
graphing-calculator-narration-audio-trace-multiple-sliders-paused = { $sliders } animating sliders were paused.
graphing-calculator-narration-audio-trace-no-more-pois = No more points of interest
graphing-calculator-narration-audio-trace-no-sliders-paused = No animating sliders were paused.
graphing-calculator-narration-audio-trace-one-slider-paused = One animating slider was paused.
graphing-calculator-narration-audio-trace-playback-speed = Graph playback speed { $speed }
graphing-calculator-narration-audio-trace-poi-count = Points of interest, { $x }.
graphing-calculator-narration-audio-trace-point-type-definition = Definition
graphing-calculator-narration-audio-trace-point-type-extremum = Extremum
graphing-calculator-narration-audio-trace-point-type-intercept = Intercept
graphing-calculator-narration-audio-trace-point-type-intersection = Intersection
graphing-calculator-narration-audio-trace-point-type-intersection-with-curves = Intersection with { $curves }
graphing-calculator-narration-audio-trace-point-type-label = Label
graphing-calculator-narration-audio-trace-point-type-not-a-poi = Not a P O I
graphing-calculator-narration-audio-trace-point-type-root = Zero
graphing-calculator-narration-audio-trace-point-type-trace = Trace
graphing-calculator-narration-audio-trace-property-branch-number = Branch { $branch }.
graphing-calculator-narration-audio-trace-property-type-before-coordinates = { $type } at
graphing-calculator-narration-audio-trace-property-x = X: { $x }.
graphing-calculator-narration-audio-trace-property-y = Y: { $y }.
graphing-calculator-narration-audio-trace-slider-value-unknown = Unable to determine slider value
graphing-calculator-narration-audio-trace-sound-effects-disabled = Sound effects have been disabled.
graphing-calculator-narration-audio-trace-traceable-curves =
{ $sketchCount ->
[one] 1 audio traceable curve.
*[other] { $sketchCount } audio traceable curves.
}
graphing-calculator-narration-audio-trace-tracing-different-expression = Tracing { $expression }.
graphing-calculator-narration-audio-trace-unable-to-play = Unable to play audio.
graphing-calculator-narration-audio-trace-unable-to-trace-this-expression = Unable to audio trace this expression.
graphing-calculator-narration-audio-trace-unsupported-expression = { $expression } cannot be audio traced.
graphing-calculator-narration-audio-trace-volume = Volume { $volume } percent
graphing-calculator-narration-cdf-maximum = Max
graphing-calculator-narration-cdf-minimum = Min
graphing-calculator-narration-click-action = Click Action
graphing-calculator-narration-clickable-image-options = Clickable Image Options
graphing-calculator-narration-collapse = Collapse
graphing-calculator-narration-collapse-folder-index = Collapse Folder { $index }
graphing-calculator-narration-collapse-folder-title = Collapse { $folder } folder
graphing-calculator-narration-color-unknown = unknown
graphing-calculator-narration-computed-cell-role-description = computed cell
graphing-calculator-narration-configure-toolbar = Geometry Toolbar Configuration
graphing-calculator-narration-create-table = Create Table
graphing-calculator-narration-create-table-expression = Create Table from Expression { $index }
graphing-calculator-narration-create-table-secret-expression = Create Table from Secret Expression { $index }
graphing-calculator-narration-delete = Delete
graphing-calculator-narration-delete-expression = Delete Expression { $index }
graphing-calculator-narration-delete-folder-index = Delete Folder { $index }
graphing-calculator-narration-delete-folder-title = Delete { $folder } folder
graphing-calculator-narration-delete-image = Delete Image { $index }
graphing-calculator-narration-delete-secret-expression = Delete Secret Expression { $index }
graphing-calculator-narration-delete-table = Delete Table { $index }
graphing-calculator-narration-delete-text = Delete Note { $index }
graphing-calculator-narration-describe = Unknown object
graphing-calculator-narration-describe-expression = Expression { $index }
graphing-calculator-narration-describe-folder-index = Folder { $index }
graphing-calculator-narration-describe-folder-title = { $folder } folder
graphing-calculator-narration-describe-image = Image { $index }
graphing-calculator-narration-describe-secret-expression = Secret expression { $index }
graphing-calculator-narration-describe-table = Table { $index }
graphing-calculator-narration-describe-text = Note { $index }
graphing-calculator-narration-description-collapsed-folder = Collapsed Folder
graphing-calculator-narration-description-collapsed-readonly-folder = Collapsed Locked Folder
graphing-calculator-narration-description-collapsed-secret-folder = Collapsed Secret Folder
graphing-calculator-narration-description-collapsed-secret-readonly-folder = Collapsed Secret Locked Folder
graphing-calculator-narration-description-folder = Folder
graphing-calculator-narration-description-hidden-collapsed-folder = Hidden Collapsed Folder
graphing-calculator-narration-description-hidden-collapsed-readonly-folder = Hidden Collapsed Locked Folder
graphing-calculator-narration-description-hidden-collapsed-secret-folder = Hidden Collapsed Secret Folder
graphing-calculator-narration-description-hidden-collapsed-secret-readonly-folder = Hidden Collapsed Secret Locked Folder
graphing-calculator-narration-description-hidden-folder = Hidden Folder
graphing-calculator-narration-description-hidden-readonly-folder = Hidden Locked Folder
graphing-calculator-narration-description-hidden-secret-folder = Hidden Secret Folder
graphing-calculator-narration-description-hidden-secret-readonly-folder = Hidden Secret Locked Folder
graphing-calculator-narration-description-readonly-folder = Locked Folder
graphing-calculator-narration-description-secret-folder = Secret Folder
graphing-calculator-narration-description-secret-readonly-folder = Secret Locked Folder
graphing-calculator-narration-dist-tab-distributions = Distributions
graphing-calculator-narration-dist-tab-visualizations = Visualizations
graphing-calculator-narration-domain3d-maximum = domain { $term } Maximum:
graphing-calculator-narration-domain3d-minimum = domain { $term } Minimum:
graphing-calculator-narration-drag-mode-x = X
graphing-calculator-narration-drag-mode-xy = X and Y
graphing-calculator-narration-drag-mode-y = Y
graphing-calculator-narration-draggable-image-off-screen-prompt = { " " }not completely visible on screen
graphing-calculator-narration-duplicate = Duplicate
graphing-calculator-narration-duplicate-expression = Duplicate Expression { $index }
graphing-calculator-narration-duplicate-folder-index = Duplicate Folder { $index }
graphing-calculator-narration-duplicate-folder-title = Duplicate { $folder } folder
graphing-calculator-narration-duplicate-image = Duplicate Image { $index }
graphing-calculator-narration-duplicate-secret-expression = Duplicate Secret Expression { $index }
graphing-calculator-narration-duplicate-table = Duplicate Table { $index }
graphing-calculator-narration-duplicate-text = Duplicate Note { $index }
graphing-calculator-narration-edit-action = Edit Action
graphing-calculator-narration-edit-expression-list = Edit Expression List
graphing-calculator-narration-edit-folder-title = Edit Folder { $index } Title
graphing-calculator-narration-edit-graph-on-desmos = Edit graph on Desmos
graphing-calculator-narration-edit-image-title = Edit Image { $index } Title
graphing-calculator-narration-edit-list-mode-off = Edit list mode off.
graphing-calculator-narration-edit-list-mode-on = Edit list mode on.
graphing-calculator-narration-edit-on-desmos = Edit graph on Desmos
graphing-calculator-narration-edit-slider-variable-limits = Edit { $variable } Limits
graphing-calculator-narration-edit-text-title = Note { $index }
graphing-calculator-narration-edit-title = Edit Title
graphing-calculator-narration-editable-label-mode = Editable label mode
graphing-calculator-narration-editable-point-label-at-coordinates = Editable point label at { $coordinates }
graphing-calculator-narration-expand = Expand
graphing-calculator-narration-expand-folder-index = Expand Folder { $index }
graphing-calculator-narration-expand-folder-title = Expand { $folder } folder
graphing-calculator-narration-expression-audio-trace-mac = To audio trace, press OPTION+T.
graphing-calculator-narration-expression-audio-trace-windows = To audio trace, press ALT+T.
graphing-calculator-narration-expression-bar = Expression Bar
graphing-calculator-narration-expression-evaluation-has-graph = Has graph.
graphing-calculator-narration-expression-evaluation-has-graph-and-regression = Has graph and regression. To access statistics, press Tab.
graphing-calculator-narration-expression-evaluation-has-regression = Has regression. To access statistics, press Tab.
graphing-calculator-narration-expression-evaluation-is-distribution = is distribution.
graphing-calculator-narration-expression-evaluation-is-t-test = is T test. To access statistics, press Tab.
graphing-calculator-narration-expression-hidden-label = Hidden { $label }
graphing-calculator-narration-expression-index-table = Expression { $index } table
graphing-calculator-narration-expression-label = Label
graphing-calculator-narration-expression-tone-muted = Muted tone.
graphing-calculator-narration-expression-tone-unmuted = Unmuted tone.
graphing-calculator-narration-fill-opacity = Fill Opacity:
graphing-calculator-narration-fill-visible = Fill visible
graphing-calculator-narration-folder-collapsed = folder collapsed
graphing-calculator-narration-folder-expanded = folder expanded
graphing-calculator-narration-folder-has-items = { $folder } has { $count } items
graphing-calculator-narration-functions = Functions
graphing-calculator-narration-geometry-added-object-type = Added { $type }.
graphing-calculator-narration-geometry-added-object-type-and-point = Added { $type } and 1 point.
graphing-calculator-narration-geometry-added-object-type-and-points = Added { $type } and { $points } points.
graphing-calculator-narration-geometry-added-points = Added { $points } points.
graphing-calculator-narration-geometry-angle-of-polygon = { $itemDescription } of { $parent }
graphing-calculator-narration-geometry-angle-through-points = { $itemDescription } through { $parent1 }, { $parent2 }, and { $parent3 }
graphing-calculator-narration-geometry-arc-through-points = Arc { $index } starting at { $start }. Middle at { $middle }. End at { $end }.
graphing-calculator-narration-geometry-circle-with-center-and-radius = Circle { $index } with center at { $center } and radius { $radius }.
graphing-calculator-narration-geometry-construction-icon-label = Token Count
graphing-calculator-narration-geometry-construction-role-description = construction
graphing-calculator-narration-geometry-deselect-all = Deselect All
graphing-calculator-narration-geometry-dilated-item = dilated { $item }
graphing-calculator-narration-geometry-edge-of-polygon = Edge { $polygonEdge } of { $item }
graphing-calculator-narration-geometry-glider-on-item = { $gliderDescription } on { $item }
graphing-calculator-narration-geometry-glider-with-assignment = Glider { $assignment }
graphing-calculator-narration-geometry-hidden-construction-description = Hidden { $description }
graphing-calculator-narration-geometry-intersection-of-items = { $intersectionDescription } of { $item1 } and { $item2 }
graphing-calculator-narration-geometry-intersection-with-assignment = Intersection { $assignment }
graphing-calculator-narration-geometry-item-at-coordinates-to-coordinates = { $itemDescription } from { $x1 } { $y1 } to { $x2 } { $y2 }
graphing-calculator-narration-geometry-list-of-angles = List of { $count } angles
graphing-calculator-narration-geometry-list-of-any = List of { $count } unknown objects
graphing-calculator-narration-geometry-list-of-arcs = List of { $count } arcs
graphing-calculator-narration-geometry-list-of-circles = List of { $count } circles
graphing-calculator-narration-geometry-list-of-directed-angles = List of { $count } directed angles
graphing-calculator-narration-geometry-list-of-lines = List of { $count } lines
graphing-calculator-narration-geometry-list-of-points = List of { $count } points
graphing-calculator-narration-geometry-list-of-polygons = List of { $count } polygons
graphing-calculator-narration-geometry-list-of-rays = List of { $count } rays
graphing-calculator-narration-geometry-list-of-segments = List of { $count } segments
graphing-calculator-narration-geometry-midpoint-of-item = { $midpointDescription } of { $item }
graphing-calculator-narration-geometry-midpoint-with-assignment = Midpoint { $assignment }
graphing-calculator-narration-geometry-moved-to-coordinates = Moved to x: { $x }, y: { $y }.
graphing-calculator-narration-geometry-near-item = Near { $item }.
graphing-calculator-narration-geometry-no-tool-inputs = No inputs exist
graphing-calculator-narration-geometry-nothing-selected = Nothing selected.
graphing-calculator-narration-geometry-parallel-to-line-through-point = Parallel line { $index } to { $line }, passing through { $point }
graphing-calculator-narration-geometry-perpendicular-to-line-through-point = Perpedicular line { $index } to { $line }, passing through { $point }
graphing-calculator-narration-geometry-point-with-assignment = Point { $assignment }
graphing-calculator-narration-geometry-reflected-item = reflected { $item }
graphing-calculator-narration-geometry-rotated-item = rotated { $item }
graphing-calculator-narration-geometry-segment-with-assignment = Segment { $assignment }
graphing-calculator-narration-geometry-straight-from-item-to-item = { $straightType } from { $start } to { $end }
graphing-calculator-narration-geometry-straight-index-of-item = { $straightType } index { $index } of { $item }
graphing-calculator-narration-geometry-token-navigator-depth = Depth: { $depth }
graphing-calculator-narration-geometry-token-navigator-label = Token Navigator
graphing-calculator-narration-geometry-tool-cancelled = Cancelled.
graphing-calculator-narration-geometry-tool-disabled = The { $tool } tool is disabled.
graphing-calculator-narration-geometry-transformed-item = transformed { $item }
graphing-calculator-narration-geometry-translated-item = translated { $item }
graphing-calculator-narration-geometry-unable-to-move = Unable to move.
graphing-calculator-narration-geometry-unlabeled-angle = Angle { $index }
graphing-calculator-narration-geometry-unlabeled-angle-with-measurement = { $measurementText } Angle { $index }
graphing-calculator-narration-geometry-unlabeled-arc = Arc { $index }
graphing-calculator-narration-geometry-unlabeled-circle = Circle { $index }
graphing-calculator-narration-geometry-unlabeled-directed-angle = Directed Angle { $index }
graphing-calculator-narration-geometry-unlabeled-directed-angle-with-measurement = { $measurementText } Directed Angle { $index }
graphing-calculator-narration-geometry-unlabeled-glider = Glider { $index }
graphing-calculator-narration-geometry-unlabeled-intersection = Intersection { $index }
graphing-calculator-narration-geometry-unlabeled-line = Line { $index }
graphing-calculator-narration-geometry-unlabeled-midpoint = Midpoint { $index }
graphing-calculator-narration-geometry-unlabeled-parallel = Parallel line { $index }
graphing-calculator-narration-geometry-unlabeled-perpendicular = Perpendicular line { $index }
graphing-calculator-narration-geometry-unlabeled-point = Point { $index }
graphing-calculator-narration-geometry-unlabeled-polygon = Polygon { $index } with { $sideCount } sides
graphing-calculator-narration-geometry-unlabeled-quadrilateral = Quadrilateral { $index }
graphing-calculator-narration-geometry-unlabeled-ray = Ray { $index }
graphing-calculator-narration-geometry-unlabeled-segment = Segment { $index }
graphing-calculator-narration-geometry-unlabeled-triangle = Triangle { $index }
graphing-calculator-narration-geometry-unlabeled-vector = Vector { $index }
graphing-calculator-narration-graph-settings-controls = Graph Settings Controls
graphing-calculator-narration-graphpaper-label = graph paper
graphing-calculator-narration-hide = Hide
graphing-calculator-narration-hide-animation-properties = Hide Animation Properties
graphing-calculator-narration-hide-expression = Hide Expression { $index }
graphing-calculator-narration-hide-expression-list = Hide expression list
graphing-calculator-narration-hide-folder-index = Hide Folder { $index }
graphing-calculator-narration-hide-folder-title = Hide { $folder } folder
graphing-calculator-narration-hide-image = Hide Image { $index }
graphing-calculator-narration-hide-options = Hide Options
graphing-calculator-narration-hide-options-expression = Hide Options for Expression { $index }
graphing-calculator-narration-hide-options-image = Hide Options for Image { $index }
graphing-calculator-narration-hide-options-secret-expression = Hide Options for Secret Expression { $index }
graphing-calculator-narration-hide-secret-expression = Hide Secret Expression { $index }
graphing-calculator-narration-hide-table = Hide Table { $index }
graphing-calculator-narration-hide-table-column = Hide Column
graphing-calculator-narration-hide-text = Hide Note { $index }
graphing-calculator-narration-image-styles = Styles
graphing-calculator-narration-item-at-coordinates = { $itemDescription } at { $x } { $y }
graphing-calculator-narration-item-hidden = Item hidden.
graphing-calculator-narration-item-visible = Item visible.
graphing-calculator-narration-item-with-list-index = index { $listIndex } of { $item }
graphing-calculator-narration-items-deleted =
{ $count ->
[one] { $count } item deleted.
*[other] { $count } items deleted.
}
graphing-calculator-narration-keypad-hidden = Keypad hidden
graphing-calculator-narration-keypad-key-next-curve = Next Curve
graphing-calculator-narration-keypad-key-next-poi = Next Point of Interest
graphing-calculator-narration-keypad-key-next-point = Next Point
graphing-calculator-narration-keypad-key-previous-curve = Previous Curve
graphing-calculator-narration-keypad-key-previous-poi = Previous Point of Interest
graphing-calculator-narration-keypad-key-previous-point = Previous Point
graphing-calculator-narration-keypad-key-speed-down = Speed Down
graphing-calculator-narration-keypad-key-speed-up = Speed Up
graphing-calculator-narration-keypad-key-volume-down = Volume Down
graphing-calculator-narration-keypad-key-volume-up = Volume Up
graphing-calculator-narration-keypad-visible = Keypad visible
graphing-calculator-narration-label-angle = Label Angle:
graphing-calculator-narration-label-size = Label Size:
graphing-calculator-narration-label-text = Label Text
graphing-calculator-narration-label-visible = Label visible
graphing-calculator-narration-line-opacity = Line Opacity:
graphing-calculator-narration-line-style-dashed = Dashed
graphing-calculator-narration-line-style-dotted = Dotted
graphing-calculator-narration-line-style-solid = Solid
graphing-calculator-narration-lines-visible = Lines visible
graphing-calculator-narration-locked-items-not-deleted =
{ $count ->
[one] { $count } locked item could not be deleted.
*[other] { $count } locked items could not be deleted.
}
graphing-calculator-narration-main-desmos-geometry = Desmos Geometry
graphing-calculator-narration-main-desmos-graphing-calculator = Desmos Graphing Calculator
graphing-calculator-narration-make-clickable = make clickable
graphing-calculator-narration-menu-drag-enabled = Drag Enabled
graphing-calculator-narration-movable-point-off-screen-prompt = { " " }not visible on screen
graphing-calculator-narration-movable-point-prefix = Point
graphing-calculator-narration-movable-point-suffix-usage-instructions = { " " }is movable. Press Arrows or Shift+Arrows to adjust.
graphing-calculator-narration-mute = Mute
graphing-calculator-narration-mute-all = Mute all
graphing-calculator-narration-mute-expression = Mute Expression { $index }
graphing-calculator-narration-mute-secret-expression = Mute Secret Expression { $index }
graphing-calculator-narration-muted = Muted
graphing-calculator-narration-no-geometry-tools-available = No geometry tools available.
graphing-calculator-narration-no-playing-tones = No currently playing tones
graphing-calculator-narration-no-tone-expressions = No tones in this graph
graphing-calculator-narration-open-graph = Open Graph
graphing-calculator-narration-options-menu = Options Menu
graphing-calculator-narration-options-menu-closed = Options menu closed.
graphing-calculator-narration-options-menu-open = Options menu open.
graphing-calculator-narration-pause-variable-animation = Pause { $variable } Animation
graphing-calculator-narration-play-variable-animation = Play { $variable } Animation
graphing-calculator-narration-poi-graph-point = Point
graphing-calculator-narration-point-size = Point Size:
graphing-calculator-narration-point-style-cross = Cross
graphing-calculator-narration-point-style-open = Open
graphing-calculator-narration-point-style-point = Point
graphing-calculator-narration-points-visible = Points visible
graphing-calculator-narration-powered-by-desmos = Powered by Desmos
graphing-calculator-narration-redo = Redo
graphing-calculator-narration-rename = Rename
graphing-calculator-narration-rename-expression = Rename in Expression { $index }
graphing-calculator-narration-rename-secret-expression = Rename in Secret Expression { $index }
graphing-calculator-narration-rename-table = Rename in Table { $index }
graphing-calculator-narration-run-action-icon = Run Action
graphing-calculator-narration-settings-all-axes-max = Max for x, y, and z
graphing-calculator-narration-settings-all-axes-min = Min for x, y, and z
graphing-calculator-narration-settings-angle = Angle Settings
graphing-calculator-narration-settings-cartesian-grid = Cartesian Grid
graphing-calculator-narration-settings-polar-grid = Polar Grid
graphing-calculator-narration-settings-show-both = Show Both
graphing-calculator-narration-settings-show-positive = Show Positive
graphing-calculator-narration-settings-x-axis-label-placeholder = e.g. \u201Cx\u201D
graphing-calculator-narration-settings-x-axis-max = X Axis Maximum:{ " " }
graphing-calculator-narration-settings-x-axis-min = X Axis Minimum:{ " " }
graphing-calculator-narration-settings-x-axis-step = X Axis Step Size:{ " " }
graphing-calculator-narration-settings-y-axis-label-placeholder = e.g. \u201Cy\u201D
graphing-calculator-narration-settings-y-axis-max = Y Axis Maximum:{ " " }
graphing-calculator-narration-settings-y-axis-min = Y Axis Minimum:{ " " }
graphing-calculator-narration-settings-y-axis-step = Y Axis Step Size:{ " " }
graphing-calculator-narration-settings-z-axis-max = Z Axis Maximum:{ " " }
graphing-calculator-narration-settings-z-axis-min = Z Axis Minimum:{ " " }
graphing-calculator-narration-show = Show
graphing-calculator-narration-show-animation-properties = Show Animation Properties
graphing-calculator-narration-show-expression = Show Expression { $index }
graphing-calculator-narration-show-folder-index = Show Folder { $index }
graphing-calculator-narration-show-folder-title = Show { $folder } folder
graphing-calculator-narration-show-image = Show Image { $index }
graphing-calculator-narration-show-options = Show Options
graphing-calculator-narration-show-options-expression = Show Options for Expression { $index }
graphing-calculator-narration-show-options-image = Show Options for Image { $index }
graphing-calculator-narration-show-options-secret-expression = Show Options for Secret Expression { $index }
graphing-calculator-narration-show-secret-expression = Show Secret Expression { $index }
graphing-calculator-narration-show-table = Show Table { $index }
graphing-calculator-narration-show-table-column = Show Column
graphing-calculator-narration-show-text = Show Note { $index }
graphing-calculator-narration-slider-animate-faster = Animate Faster
graphing-calculator-narration-slider-animate-slower = Animate Slower
graphing-calculator-narration-slider-animating-at-speed = Animating at { $speed }x
graphing-calculator-narration-slider-loop-forwards-and-backwards = Loop forwards and backwards
graphing-calculator-narration-slider-maximum = Slider Maximum:
graphing-calculator-narration-slider-minimum = Slider Minimum:
graphing-calculator-narration-slider-play-indefinitely = Play indefinitely
graphing-calculator-narration-slider-play-once = Play once
graphing-calculator-narration-slider-repeat-one-direction = Repeat in one direction
graphing-calculator-narration-slider-step = Slider Step Size:
graphing-calculator-narration-slider-trace-no-sliders = No sliders to trace.
graphing-calculator-narration-slider-trace-off = Slider trace off.
graphing-calculator-narration-slider-trace-on = Slider trace on.
graphing-calculator-narration-slider-variable-paused = { $variable } paused
graphing-calculator-narration-slider-variable-playing = { $variable } playing
graphing-calculator-narration-slider-variable-restarted = { $variable } restarted
graphing-calculator-narration-surfaces-visible = Surfaces visible
graphing-calculator-narration-table-column-header = Column header { $column }
graphing-calculator-narration-table-no-column-header = No column header
graphing-calculator-narration-table-row-column = Row { $row } Col { $column }
graphing-calculator-narration-tick-action = Tick Action
graphing-calculator-narration-toggle-audio-trace = Toggle Audio Trace
graphing-calculator-narration-toggle-letters = Toggle Letters
graphing-calculator-narration-transformations-menu = Transformations Menu
graphing-calculator-narration-unable-to-add-expression = Unable to add expression
graphing-calculator-narration-unable-to-add-note = Unable to add note
graphing-calculator-narration-unable-to-add-table = Unable to add table
graphing-calculator-narration-undo = Undo
graphing-calculator-narration-unmute = Unmute
graphing-calculator-narration-unmute-all = Unmute all
graphing-calculator-narration-unmute-expression = Unmute Expression { $index }
graphing-calculator-narration-unmute-secret-expression = Unmute Secret Expression { $index }
graphing-calculator-narration-unmuted = Unmuted
graphing-calculator-narration-viewport-default = Graph viewport default
graphing-calculator-narration-viewport-updated = Graph viewport updated.
graphing-calculator-narration-viewport-zoom-in = Graph zoom in
graphing-calculator-narration-viewport-zoom-out = Graph zoom out
graphing-calculator-narration-viewport-zoom-square = Graph zoom square
graphing-calculator-narration-visual-parameters-height = Height
graphing-calculator-narration-visual-parameters-offset = Offset
graphing-calculator-narration-visual-parameters-width = Width
graphing-calculator-narration-x-percentage-coordinate = { $x } percent from left.
graphing-calculator-narration-y-percentage-coordinate = { $y } percent from top.
graphing-calculator-narration-zoom-options-label = Zoom
graphing-calculator-text-add-screen-reader-label-placeholder = Add screen reader label
graphing-calculator-text-arrow-mode-both = Both
graphing-calculator-text-arrow-mode-default = Default
graphing-calculator-text-arrow-mode-none = None
graphing-calculator-text-arrow-mode-positive = Positive
graphing-calculator-text-audio-trace-no-implicit-support = Sorry, but I can't trace implicit curves yet.
graphing-calculator-text-audio-trace-no-parametric-support = Sorry, but I can't trace parametric curves yet.
graphing-calculator-text-audio-trace-no-polar-support = Sorry, but I can't trace polar curves yet.
graphing-calculator-text-audio-trace-off = Audio trace off.
graphing-calculator-text-audio-trace-on = Audio trace on.
graphing-calculator-text-color-black = black
graphing-calculator-text-color-blue = blue
graphing-calculator-text-color-gray = gray
graphing-calculator-text-color-green = green
graphing-calculator-text-color-orange = orange
graphing-calculator-text-color-purple = purple
graphing-calculator-text-color-red = red
graphing-calculator-text-color-unknown = color unknown
graphing-calculator-text-copy-poi-aria = Copy coordinates to expression list
graphing-calculator-text-enter-pareneter = Enter the { $param }.
graphing-calculator-text-folder-placeholder = Untitled folder
graphing-calculator-text-geometry-arrow-mode = Arrow Mode: { $mode }
graphing-calculator-text-geometry-delete-selected-objects =
{ $count ->
[one] Delete 1 object
*[other] Delete { $count } objects
}
graphing-calculator-text-geometry-delete-selected-unlocked-objects =
{ $count ->
[one] Delete 1 unlocked object
*[other] Delete { $count } unlocked objects
}
graphing-calculator-text-geometry-glider = glider
graphing-calculator-text-geometry-hide-objects =
{ $count ->
[one] Hide
*[other] Hide all
}
graphing-calculator-text-geometry-intersection = intersection
graphing-calculator-text-geometry-move-to-folder-message =
{ $count ->
[one] Move to folder:
*[other] Move { $count } objects to folder:
}
graphing-calculator-text-geometry-multi-select-more-dropdown = More
graphing-calculator-text-geometry-multi-select-transform = Transform
graphing-calculator-text-geometry-no-constructed-objects = No constructed objects yet.
graphing-calculator-text-geometry-select-hint = Select a { $type }
graphing-calculator-text-geometry-selected-objects =
{ $count ->
[one] 1 object selected
*[other] { $count } objects selected
}
graphing-calculator-text-geometry-show-objects =
{ $count ->
[one] Show
*[other] Show all
}
graphing-calculator-text-geometry-tool-angle-display-name = Angle
graphing-calculator-text-geometry-tool-angle-hint-1 = Choose a starting point
graphing-calculator-text-geometry-tool-angle-hint-2 = Choose a vertex point
graphing-calculator-text-geometry-tool-angle-hint-3 = Choose an endpoint
graphing-calculator-text-geometry-tool-angles-hint-1 = Choose a starting point or a polygon
graphing-calculator-text-geometry-tool-arc-display-name = Arc
graphing-calculator-text-geometry-tool-arc-hint-1 = Choose a point (start)
graphing-calculator-text-geometry-tool-arc-hint-2 = Choose a point (middle)
graphing-calculator-text-geometry-tool-arc-hint-3 = Choose a point (end)
graphing-calculator-text-geometry-tool-box-selection-display-name = Box Select
graphing-calculator-text-geometry-tool-circle-display-name = Circle
graphing-calculator-text-geometry-tool-circle-hint-center = Choose a point (center)
graphing-calculator-text-geometry-tool-circle-hint-radius = Choose a point (radius)
graphing-calculator-text-geometry-tool-compass-display-name = Compass
graphing-calculator-text-geometry-tool-compass-hint-center = Choose a center point
graphing-calculator-text-geometry-tool-compass-hint-segment = Choose a segment to set the radius
graphing-calculator-text-geometry-tool-dilate-display-name = Dilate
graphing-calculator-text-geometry-tool-dilation-hint-center = Choose point (center)
graphing-calculator-text-geometry-tool-dilation-hint-scale-factor = Scale factor
graphing-calculator-text-geometry-tool-directed-angle-display-name = Directed Angle
graphing-calculator-text-geometry-tool-directedangle-display-name = Directed angle
graphing-calculator-text-geometry-tool-expression-edit-display-name = Insert into current expression.
graphing-calculator-text-geometry-tool-expression-edit-generic-hint-0 = No valid inputs
graphing-calculator-text-geometry-tool-expression-edit-generic-hint-1 = Choose { $type }
graphing-calculator-text-geometry-tool-expression-edit-generic-hint-2 = Choose { $type1 } or { $type2 }
graphing-calculator-text-geometry-tool-expression-edit-generic-hint-any-object = Choose any object
graphing-calculator-text-geometry-tool-expression-edit-generic-hint-many = Choose one of the following: { $types }
graphing-calculator-text-geometry-tool-line-display-name = Line
graphing-calculator-text-geometry-tool-line-hint-end = Choose a 2nd point
graphing-calculator-text-geometry-tool-line-hint-start = Choose a 1st point
graphing-calculator-text-geometry-tool-midpoint-display-name = Midpoint
graphing-calculator-text-geometry-tool-midpoint-hint = Choose a segment
graphing-calculator-text-geometry-tool-parallel-display-name = Parallel
graphing-calculator-text-geometry-tool-parallel-hint-point = Choose a point to pass through
graphing-calculator-text-geometry-tool-parallel-hint-straight-line = Choose a line to be parallel to
graphing-calculator-text-geometry-tool-perpendicular-display-name = Perpendicular
graphing-calculator-text-geometry-tool-perpendicular-hint-point = Choose a point to pass through
graphing-calculator-text-geometry-tool-perpendicular-hint-straight-line = Choose a line to be perpendicular to
graphing-calculator-text-geometry-tool-point-display-name = Point
graphing-calculator-text-geometry-tool-point-hint = Select or create a point
graphing-calculator-text-geometry-tool-polygon-display-name = Polygon
graphing-calculator-text-geometry-tool-polygon-hint-finish-point = Choose another point, or click an existing point to finish
graphing-calculator-text-geometry-tool-polygon-hint-first-point = Choose a point
graphing-calculator-text-geometry-tool-polygon-hint-next-point = Choose another point
graphing-calculator-text-geometry-tool-ray-display-name = Ray
graphing-calculator-text-geometry-tool-ray-hint-end = Choose a point (direction)
graphing-calculator-text-geometry-tool-ray-hint-start = Choose a point (vertex)
graphing-calculator-text-geometry-tool-reflect-display-name = Reflect
graphing-calculator-text-geometry-tool-reflection-hint-choose-line = Choose line of reflection
graphing-calculator-text-geometry-tool-rotate-display-name = Rotate
graphing-calculator-text-geometry-tool-rotation-hint-angle = Choose angle
graphing-calculator-text-geometry-tool-rotation-hint-angle-end = Choose angle end point
graphing-calculator-text-geometry-tool-rotation-hint-angle-start = Construct or choose an angle
graphing-calculator-text-geometry-tool-rotation-hint-angle-vertex = Complete angle: choose 2 more points
graphing-calculator-text-geometry-tool-rotation-hint-center = Choose point (center)
graphing-calculator-text-geometry-tool-segment-display-name = Segment
graphing-calculator-text-geometry-tool-segment-hint-end = Choose another point
graphing-calculator-text-geometry-tool-segment-hint-start = Choose a point
graphing-calculator-text-geometry-tool-selection-display-name = Select
graphing-calculator-text-geometry-tool-translate-display-name = Translate
graphing-calculator-text-geometry-tool-translation-hint-from-with-vector = Choose start point or a vector
graphing-calculator-text-geometry-tool-translation-hint-to = Choose end point
graphing-calculator-text-geometry-tool-vector-copy-display-name = Copy of Vector
graphing-calculator-text-geometry-tool-vector-copy-hint-end = Choose new start point for copy
graphing-calculator-text-geometry-tool-vector-display-name = Vector
graphing-calculator-text-geometry-tool-vector-end-point-display-name = Vector End Point
graphing-calculator-text-geometry-tool-vector-hint-end = Choose end point
graphing-calculator-text-geometry-tool-vector-hint-start = Choose start point or a vector to copy
graphing-calculator-text-geometry-tool-vector-start-point-display-name = Vector Start Point
graphing-calculator-text-image-placeholder = Unnamed image
graphing-calculator-text-label-orientation-above = Above
graphing-calculator-text-label-orientation-above-left = Above Left
graphing-calculator-text-label-orientation-above-right = Above Right
graphing-calculator-text-label-orientation-below = Below
graphing-calculator-text-label-orientation-below-left = Below Left
graphing-calculator-text-label-orientation-below-right = Below Right
graphing-calculator-text-label-orientation-default = Default
graphing-calculator-text-label-orientation-left = Left
graphing-calculator-text-label-orientation-right = Right
graphing-calculator-text-loading-image = Loading image...
graphing-calculator-text-note-placeholder = Empty note
graphing-calculator-text-parameter-name-binwidth = Bin Width
graphing-calculator-text-parameter-name-data = Data Set
graphing-calculator-text-parameter-name-dof = Degrees of Freedom
graphing-calculator-text-parameter-name-height = Height
graphing-calculator-text-parameter-name-max = Maximum
graphing-calculator-text-parameter-name-mean = Mean
graphing-calculator-text-parameter-name-min = Minimum
graphing-calculator-text-parameter-name-offset = Offset
graphing-calculator-text-parameter-name-probsuccess = Success Probability
graphing-calculator-text-parameter-name-stddev = Standard Deviation
graphing-calculator-text-parameter-name-trials = Trials
graphing-calculator-text-refreshable-braille-display-note = Use a refreshable Braille display, or just type Braille with a keyboard.
graphing-calculator-text-regression-potentially-inaccurate-parameters = Some parameters may be too large or small to represent accurately.
graphing-calculator-text-table-created = Table created.
graphing-calculator-text-table-creation-error = Error creating table.
graphing-calculator-text-table-more-rows = { $rowCount } more rows
graphing-calculator-text-toast-choose-one-file = You can only choose one file as a replacement
graphing-calculator-text-toast-error-importing-graph = Error importing graph. Check the URL?
graphing-calculator-text-toast-error-no-folders = Only graphs without folders can be inserted into a folder.
graphing-calculator-text-toast-expression-size-limit = Maximum expression size reached.
graphing-calculator-text-toast-graph-cleared = Graph cleared.
graphing-calculator-text-toast-graph-reset = Graph reset.
graphing-calculator-text-toast-image-upload-failed = Image upload failed.
graphing-calculator-text-toast-imported-graph = Graph imported!
graphing-calculator-text-toast-importing-graph = Importing graph...
graphing-calculator-text-toast-no-file-selected = You did not select a file
graphing-calculator-text-toast-uploading-images = Uploading images...
graphing-calculator-text-toast-zoom-to-fit = We zoomed to fit your data.
graphing-calculator-text-zoom-fit = Zoom Fit
matrix-calculator-narration-keypad-key-det = Determinant
matrix-calculator-narration-keypad-key-inverse = Inverse
matrix-calculator-narration-keypad-key-rref = Reduced row echelon form
matrix-calculator-narration-keypad-key-trace = Trace
matrix-calculator-narration-keypad-key-transpose = Transpose
frontpage-text-header-terms-update = We've updated our Terms of Service.
`;var Hd=class{constructor(e){this.value=e}valueOf(){return this.value}},pi=class extends Hd{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}},wa=class extends Hd{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.NumberFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),this.value.toString(10)}}},ql=class extends Hd{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.DateTimeFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),new Date(this.value).toISOString()}}};var Q_=100,Xq="\u2068",Qq="\u2069";function Zq(r,e,t){if(t===e||t instanceof wa&&e instanceof wa&&t.value===e.value)return!0;if(e instanceof wa&&typeof t=="string"){let i=r.memoizeIntlObject(Intl.PluralRules,e.opts).select(e.value);if(t===i)return!0}return!1}function Z_(r,e,t){return e[t]?Og(r,e[t].value):(r.reportError(new RangeError("No default")),new pi)}function cI(r,e){let t=[],i=Object.create(null);for(let o of e)o.type==="narg"?i[o.name]=Mb(r,o.value):t.push(Mb(r,o));return{positional:t,named:i}}function Mb(r,e){switch(e.type){case"str":return e.value;case"num":return new wa(e.value,{minimumFractionDigits:e.precision});case"var":return e6(r,e);case"mesg":return t6(r,e);case"term":return r6(r,e);case"func":return i6(r,e);case"select":return o6(r,e);default:return new pi}}function e6(r,{name:e}){let t;if(r.params)if(Object.prototype.hasOwnProperty.call(r.params,e))t=r.params[e];else return new pi(`$${e}`);else if(r.args&&Object.prototype.hasOwnProperty.call(r.args,e))t=r.args[e];else return r.reportError(new ReferenceError(`Unknown variable: $${e}`)),new pi(`$${e}`);if(t instanceof Hd)return t;switch(typeof t){case"string":return t;case"number":return new wa(t);case"object":if(t instanceof Date)return new ql(t.getTime());default:return r.reportError(new TypeError(`Variable type not supported: $${e}, ${typeof t}`)),new pi(`$${e}`)}}function t6(r,{name:e,attr:t}){let i=r.bundle._messages.get(e);if(!i)return r.reportError(new ReferenceError(`Unknown message: ${e}`)),new pi(e);if(t){let o=i.attributes[t];return o?Og(r,o):(r.reportError(new ReferenceError(`Unknown attribute: ${t}`)),new pi(`${e}.${t}`))}return i.value?Og(r,i.value):(r.reportError(new ReferenceError(`No value: ${e}`)),new pi(e))}function r6(r,{name:e,attr:t,args:i}){let o=`-${e}`,n=r.bundle._terms.get(o);if(!n)return r.reportError(new ReferenceError(`Unknown term: ${o}`)),new pi(o);if(t){let s=n.attributes[t];if(s){r.params=cI(r,i).named;let l=Og(r,s);return r.params=null,l}return r.reportError(new ReferenceError(`Unknown attribute: ${t}`)),new pi(`${o}.${t}`)}r.params=cI(r,i).named;let a=Og(r,n.value);return r.params=null,a}function i6(r,{name:e,args:t}){let i=r.bundle._functions[e];if(!i)return r.reportError(new ReferenceError(`Unknown function: ${e}()`)),new pi(`${e}()`);if(typeof i!="function")return r.reportError(new TypeError(`Function ${e}() is not callable`)),new pi(`${e}()`);try{let o=cI(r,t);return i(o.positional,o.named)}catch(o){return r.reportError(o),new pi(`${e}()`)}}function o6(r,{selector:e,variants:t,star:i}){let o=Mb(r,e);if(o instanceof pi)return Z_(r,t,i);for(let n of t){let a=Mb(r,n.key);if(Zq(r,o,a))return Og(r,n.value)}return Z_(r,t,i)}function dI(r,e){if(r.dirty.has(e))return r.reportError(new RangeError("Cyclic reference")),new pi;r.dirty.add(e);let t=[],i=r.bundle._useIsolating&&e.length>1;for(let o of e){if(typeof o=="string"){t.push(r.bundle._transform(o));continue}if(r.placeables++,r.placeables>Q_)throw r.dirty.delete(e),new RangeError(`Too many placeables expanded: ${r.placeables}, max allowed is ${Q_}`);i&&t.push(Xq),t.push(Mb(r,o).toString(r)),i&&t.push(Qq)}return r.dirty.delete(e),t.join("")}function Og(r,e){return typeof e=="string"?r.bundle._transform(e):dI(r,e)}var HC=class{constructor(e,t,i){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=e,this.errors=t,this.args=i}reportError(e){if(!this.errors||!(e instanceof Error))throw e;this.errors.push(e)}memoizeIntlObject(e,t){let i=this.bundle._intls.get(e);i||(i={},this.bundle._intls.set(e,i));let o=JSON.stringify(t);return i[o]||(i[o]=new e(this.bundle.locales,t)),i[o]}};function WC(r,e){let t=Object.create(null);for(let[i,o]of Object.entries(r))e.includes(i)&&(t[i]=o.valueOf());return t}var eF=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function rF(r,e){let t=r[0];if(t instanceof pi)return new pi(`NUMBER(${t.valueOf()})`);if(t instanceof wa)return new wa(t.valueOf(),{...t.opts,...WC(e,eF)});if(t instanceof ql)return new wa(t.valueOf(),{...WC(e,eF)});throw new TypeError("Invalid argument to NUMBER")}var tF=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function iF(r,e){let t=r[0];if(t instanceof pi)return new pi(`DATETIME(${t.valueOf()})`);if(t instanceof ql)return new ql(t.valueOf(),{...t.opts,...WC(e,tF)});if(t instanceof wa)return new ql(t.valueOf(),{...WC(e,tF)});throw new TypeError("Invalid argument to DATETIME")}var oF=new Map;function nF(r){let e=Array.isArray(r)?r.join(" "):r,t=oF.get(e);return t===void 0&&(t=new Map,oF.set(e,t)),t}var Ab=class{constructor(e,{functions:t,useIsolating:i=!0,transform:o=n=>n}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(e)?e:[e],this._functions={NUMBER:rF,DATETIME:iF,...t},this._useIsolating=i,this._transform=o,this._intls=nF(e)}hasMessage(e){return this._messages.has(e)}getMessage(e){return this._messages.get(e)}addResource(e,{allowOverrides:t=!1}={}){let i=[];for(let o=0;o<e.body.length;o++){let n=e.body[o];if(n.id.startsWith("-")){if(t===!1&&this._terms.has(n.id)){i.push(new Error(`Attempt to override an existing term: "${n.id}"`));continue}this._terms.set(n.id,n)}else{if(t===!1&&this._messages.has(n.id)){i.push(new Error(`Attempt to override an existing message: "${n.id}"`));continue}this._messages.set(n.id,n)}}return i}formatPattern(e,t=null,i=null){if(typeof e=="string")return this._transform(e);let o=new HC(this,i,t);try{return dI(o,e).toString(o)}catch(n){if(o.errors&&n instanceof Error)return o.errors.push(n),new pi().toString(o);throw n}}};var pI=/^(-?[a-zA-Z][\w-]*) *= */gm,aF=/\.([a-zA-Z][\w-]*) *= */y,n6=/\*?\[/y,uI=/(-?[0-9]+(?:\.([0-9]+))?)/y,a6=/([a-zA-Z][\w-]*)/y,sF=/([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y,s6=/^[A-Z][A-Z0-9_-]*$/,$C=/([^{}\n\r]+)/y,l6=/([^\\"\n\r]*)/y,lF=/\\([\\"])/y,cF=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y,c6=/^\n+/,dF=/ +$/,d6=/ *\r?\n/g,p6=/( *)$/,u6=/{\s*/y,pF=/\s*}/y,h6=/\[\s*/y,g6=/\s*] */y,m6=/\s*\(\s*/y,f6=/\s*->\s*/y,b6=/\s*:\s*/y,y6=/\s*,?\s*/y,x6=/\s+/y,_g=class{constructor(e){this.body=[],pI.lastIndex=0;let t=0;for(;;){let O=pI.exec(e);if(O===null)break;t=pI.lastIndex;try{this.body.push(l(O[1]))}catch(R){if(R instanceof SyntaxError)continue;throw R}}function i(O){return O.lastIndex=t,O.test(e)}function o(O,R){if(e[t]===O)return t++,!0;if(R)throw new R(`Expected ${O}`);return!1}function n(O,R){if(i(O))return t=O.lastIndex,!0;if(R)throw new R(`Expected ${O.toString()}`);return!1}function a(O){O.lastIndex=t;let R=O.exec(e);if(R===null)throw new SyntaxError(`Expected ${O.toString()}`);return t=O.lastIndex,R}function s(O){return a(O)[1]}function l(O){let R=d(),q=c();if(R===null&&Object.keys(q).length===0)throw new SyntaxError("Expected message value or attributes");return{id:O,value:R,attributes:q}}function c(){let O=Object.create(null);for(;i(aF);){let R=s(aF),q=d();if(q===null)throw new SyntaxError("Expected attribute value");O[R]=q}return O}function d(){let O;if(i($C)&&(O=s($C)),e[t]==="{"||e[t]==="}")return u(O?[O]:[],1/0);let R=V();return R?O?u([O,R],R.length):(R.value=G(R.value,c6),u([R],R.length)):O?G(O,dF):null}function u(O=[],R){for(;;){if(i($C)){O.push(s($C));continue}if(e[t]==="{"){O.push(h());continue}if(e[t]==="}")throw new SyntaxError("Unbalanced closing brace");let z=V();if(z){O.push(z),R=Math.min(R,z.length);continue}break}let q=O.length-1,J=O[q];typeof J=="string"&&(O[q]=G(J,dF));let U=[];for(let z of O)z instanceof YC&&(z=z.value.slice(0,z.value.length-R)),z&&U.push(z);return U}function h(){n(u6,SyntaxError);let O=g();if(n(pF))return O;if(n(f6)){let R=S();return n(pF,SyntaxError),{type:"select",selector:O,...R}}throw new SyntaxError("Unclosed placeable")}function g(){if(e[t]==="{")return h();if(i(sF)){let[,O,R,q=null]=a(sF);if(O==="$")return{type:"var",name:R};if(n(m6)){let J=b();if(O==="-")return{type:"term",name:R,attr:q,args:J};if(s6.test(R))return{type:"func",name:R,args:J};throw new SyntaxError("Function names must be all upper-case")}return O==="-"?{type:"term",name:R,attr:q,args:[]}:{type:"mesg",name:R,attr:q}}return I()}function b(){let O=[];for(;;){switch(e[t]){case")":return t++,O;case void 0:throw new SyntaxError("Unclosed argument list")}O.push(C()),n(y6)}}function C(){let O=g();return O.type!=="mesg"?O:n(b6)?{type:"narg",name:O.name,value:I()}:O}function S(){let O=[],R=0,q;for(;i(n6);){o("*")&&(q=R);let J=k(),U=d();if(U===null)throw new SyntaxError("Expected variant value");O[R++]={key:J,value:U}}if(R===0)return null;if(q===void 0)throw new SyntaxError("Expected default variant");return{variants:O,star:q}}function k(){n(h6,SyntaxError);let O;return i(uI)?O=M():O={type:"str",value:s(a6)},n(g6,SyntaxError),O}function I(){if(i(uI))return M();if(e[t]==='"')return E();throw new SyntaxError("Invalid expression")}function M(){let[,O,R=""]=a(uI),q=R.length;return{type:"num",value:parseFloat(O),precision:q}}function E(){o('"',SyntaxError);let O="";for(;;){if(O+=s(l6),e[t]==="\\"){O+=A();continue}if(o('"'))return{type:"str",value:O};throw new SyntaxError("Unclosed string literal")}}function A(){if(i(lF))return s(lF);if(i(cF)){let[,O,R]=a(cF),q=parseInt(O||R,16);return q<=55295||57344<=q?String.fromCodePoint(q):"\uFFFD"}throw new SyntaxError("Unknown escape sequence")}function V(){let O=t;switch(n(x6),e[t]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return P(e.slice(O,t))}return e[t-1]===" "?P(e.slice(O,t)):!1}function G(O,R){return O.replace(R,"")}function P(O){let R=O.replace(d6,`
`),q=p6.exec(O)[1].length;return new YC(R,q)}}},YC=class{constructor(e,t){this.value=e,this.length=t}};var v6=["ae","ar","arc","bcc","bqi","ckb","dv","fa","glk","he","ku","mzn","nqo","pnb","ps","sd","ug","ur","yi"],jC=class r{constructor(e,t){this.bundles=e;this.onError=t}static fromSources(e,t,i){let o=[];for(let{lang:n,source:a}of e){let s=n.split("-")[0],l=new Ab(n,{...i,useIsolating:v6.indexOf(s)>=0});l.addResource(new _g(a),{allowOverrides:!1}),l.addResource(new _g(`
l10n-internal-date-day-month-year = {DATETIME($d, month: "short", day: "numeric", year: "numeric")}
l10n-internal-date-day-month = {DATETIME($d, month: "short", day: "numeric")}
l10n-internal-time = {DATETIME($d, minute: "numeric", hour: "numeric")}
`),{allowOverrides:!1}),o.push(l)}return new r(o,t)}format(e,t){for(let i of this.bundles){if(!i.hasMessage(e))continue;let o=i.getMessage(e);if(!(o!=null&&o.value))return;let n=[],a=i.formatPattern(o.value,this.coerceNumericVariables(t),n);for(let s of n)this.onError(`Error formatting ${e} for locale ${i.locales.join(",")}: ${s}`);return a}this.onError(`Couldn't find message for key ${e} for locales ${this.getLocales().join(",")}`)}formatDate(e,t){return t.showYear?this.format("l10n-internal-date-day-month-year",{d:e}):this.format("l10n-internal-date-day-month",{d:e})}formatTime(e){let t=this.format("l10n-internal-time",{d:e});return this.getLocales()[0]==="en"?t==null?void 0:t.toLowerCase():t}hasTranslation(e,t){for(let i of this.bundles)if(i.locales.indexOf(t)>=0)return i.hasMessage(e);return!1}coerceNumericVariables(e){let t={};for(let i in e){let o=e[i];__dcg_shared_module_exports__['kb'](o)?t[i]=o.value:typeof o=="number"?t[i]=`${o}`:t[i]=o}return t}getLocales(){return this.bundles.reduce((e,t)=>e.concat(t.locales),[])}};var JC="",hI={},uF={},gI={},C6=["ar","hy-AM","hi","tr","xx-XX"];function XC(r){JC=r||""}function mI(r){for(let e in r)delete gI[e],uF[e]=r[e]}function fI(r,e){let t=e!=null?e:JC;return gF(t).hasTranslation(r,t)}function ms(r,e){if(e)for(var t in e)e.hasOwnProperty(t)&&(r=r.split("__"+t+"__").join(e[t]));return r}function Ka(r,e,t){return hF(r,e!=null?e:{},t!=null?t:JC)}function Hl(r){return function(t,i){return hF(t,i!=null?i:{},r())}}function S6(r){let e={};for(let t in r){let i=r[t];i!==void 0&&(e[t]=i)}return e}function hF(r,e,t){let o=gF(t).format(r,S6(e));return o==null?(__dcg_shared_module_exports__['pd'].warn(`Could not format string ${r}`),""):o}function gF(r){let e=gI[r];if(!e){hI[r]||(hI[r]=qC([r]));let t=[];for(let o of hI[r]){let n=uF[o];n&&t.push({lang:o,source:n})}let i={};r==="xx-XX"&&(i.transform=o=>o.replace(/[a-z]/gi,"\u2666")),e=gI[r]=jC.fromSources([...t,{lang:"en",source:X_}],o=>{__dcg_shared_module_exports__['pd'].warn(o)},i)}return e}function Gb(){return JC}function bI(r){return Cu.hasOwnProperty(r)||__dcg_shared_module_exports__['wa'](C6,r)}function Wd(r,e){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number")return""+r;let t=r.vars,i;if(t){i={};for(let o in t){if(!t.hasOwnProperty(o))continue;let n=t[o];__dcg_shared_module_exports__['kb'](n)?i[o]=n:i[o]=Wd(n,e)}}return Ka(r.key,i,e)}var QC={cb20221031:"1"};var Vb=typeof desmosLocaleData=="object"?desmosLocaleData:{};function E6(){for(var r=qC([Hi("language"),navigator.userLanguage,navigator.language]),e=0;e<r.length;e++){var t=r[e];if(bI(t))return t}return"en"}async function mF(r){if(Vb[r]||r==="en"||r==="xx-XX")return XC(r),!0;if(!bI(r)){let i=r.indexOf("-")!==-1?r.split("-")[0]:r;for(let o in Cu)if(i===o.split("-")[0]&&Cu[o].useAsRoot){r=o;break}}let e=await fetch(`/api/v1/calculator/language/${r}.ftl?${new URLSearchParams(QC)}`,{headers:{Accept:"application/json"}});if(!e.ok)throw e.status===404&&__dcg_shared_module_exports__['pd'].warn(r+" is not an available language."),void 0;let t=await e.json();return Vb[r]=t[r],mI(Vb),XC(r),!0}function ZC(r){return!!Vb[r]}mI(Vb);XC(E6());function Lb(r,e){for(var t in e)if(e.hasOwnProperty(t)&&e[t]===r)return!0;return!1}function yI(r){return Lb(r,wI)}function xI(r){return Lb(r,vI)}function bF(r){return Lb(r,CI)}function D6(r){return Lb(r,Pb)}function k6(r){return Lb(r,SI)}var wI={OPEN:"OPEN",CROSS:"CROSS",POINT:"POINT"},vI={SOLID:"SOLID",DASHED:"DASHED",DOTTED:"DOTTED"},CI={NONE:"NONE",AUTO:"AUTO",X:"X",Y:"Y",XY:"XY"},Pb={POINTS:"POINTS",LINES:"LINES",POINTS_AND_LINES:"POINTS_AND_LINES"},SI={DEFAULT:"default",CENTER:"center",CENTER_AUTO:"center_auto",AUTO_CENTER:"auto_center",ABOVE:"above",ABOVE_LEFT:"above_left",ABOVE_RIGHT:"above_right",ABOVE_AUTO:"above_auto",BELOW:"below",BELOW_LEFT:"below_left",BELOW_RIGHT:"below_right",BELOW_AUTO:"below_auto",LEFT:"left",AUTO_LEFT:"auto_left",RIGHT:"right",AUTO_RIGHT:"auto_right"};function T6(r){return{id:r.id,type:r.type,columns:r.columns.map(I6)}}function I6(r){return{id:r.id,latex:r.latex,color:r.color,hidden:r.hidden,pointStyle:r.pointStyle,pointSize:r.pointSize,pointOpacity:r.pointOpacity,lineStyle:r.lineStyle,lineWidth:r.lineWidth,lineOpacity:r.lineOpacity,points:r.points,lines:r.lines,dragMode:r.dragMode,values:r.values.slice()}}function M6(r){var e=["latex","color","lineStyle","lineWidth","lineOpacity","pointStyle","pointSize","movablePointSize","pointOpacity","points","lines","fill","fillOpacity","hidden","secret","dragMode","label","showLabel","labelSize","labelOrientation","interactiveLabel","readonly"],t={id:r.id,type:r.type};return e.forEach(function(i){r.hasOwnProperty(i)&&(t[i]=r[i])}),r.hasOwnProperty("parametricDomain")&&(t.parametricDomain={min:r.parametricDomain.min,max:r.parametricDomain.max}),r.hasOwnProperty("parametricDomain3Du")&&(t.parametricDomain3Du={min:r.parametricDomain3Du.min,max:r.parametricDomain3Du.max}),r.hasOwnProperty("parametricDomain3Dv")&&(t.parametricDomain3Dv={min:r.parametricDomain3Dv.min,max:r.parametricDomain3Dv.max}),r.hasOwnProperty("parametricDomain3Dr")&&(t.parametricDomain3Dr={min:r.parametricDomain3Dr.min,max:r.parametricDomain3Dr.max}),r.hasOwnProperty("parametricDomain3Dphi")&&(t.parametricDomain3Dphi={min:r.parametricDomain3Dphi.min,max:r.parametricDomain3Dphi.max}),r.hasOwnProperty("polarDomain")&&(t.polarDomain={min:r.polarDomain.min,max:r.polarDomain.max}),r.hasOwnProperty("domain")&&(t.domain={min:r.domain.min,max:r.domain.max}),r.slider&&(r.slider.hardMin&&(t.sliderBounds=t.sliderBounds||{},t.sliderBounds.min=r.slider.min),r.slider.hardMax&&(t.sliderBounds=t.sliderBounds||{},t.sliderBounds.max=r.slider.max),r.slider.step&&(t.sliderBounds=t.sliderBounds||{},t.sliderBounds.step=r.slider.step),t.playing=!!r.slider.isPlaying),t}function A6(r){return{id:r.id,type:r.type,hidden:r.hidden,secret:r.secret}}function G6(r){return{id:r.id,type:r.type,hidden:r.hidden,secret:r.secret}}function V6(r){return{id:r.id,type:r.type,secret:r.secret,text:r.text}}function eS(r){switch(r.type){case"expression":return M6(r);case"table":return T6(r);case"folder":return G6(r);case"image":return A6(r);case"text":return V6(r);default:return r}}function Su(r,e){return r.hasOwnProperty("id")?r.id+"":e.generateId()}function P6(r,e){var t={type:"expression",id:Su(r,e)};if(t.type="expression",t.id=Su(r,e),r.hasOwnProperty("latex")&&(t.latex=r.latex+""),r.hasOwnProperty("color")&&(t.color=r.color+""),r.hasOwnProperty("points")&&(t.points=!!r.points),r.hasOwnProperty("lines")&&(t.lines=!!r.lines),r.hasOwnProperty("style")&&(__dcg_shared_module_exports__['pd'].warn("As of API v1.1 the 'style' property is deprecated and has been split into 'pointStyle' and 'lineStyle'."),yI(r.style)?t.pointStyle=r.style:xI(r.style)?t.lineStyle=r.style:__dcg_shared_module_exports__['pd'].warn("Invalid style: '"+r.style+"'.")),r.hasOwnProperty("pointStyle")&&(yI(r.pointStyle)?t.pointStyle=r.pointStyle:__dcg_shared_module_exports__['pd'].warn("Invalid pointStyle: '"+r.pointStyle+"'.")),r.hasOwnProperty("pointSize")&&(t.pointSize=""+r.pointSize),r.hasOwnProperty("movablePointSize")&&(t.movablePointSize=""+r.movablePointSize),r.hasOwnProperty("pointOpacity")&&(t.pointOpacity=""+r.pointOpacity),r.hasOwnProperty("lineStyle")&&(xI(r.lineStyle)?t.lineStyle=r.lineStyle:__dcg_shared_module_exports__['pd'].warn("Invalid lineStyle: '"+r.lineStyle+"'.")),r.hasOwnProperty("lineWidth")&&(t.lineWidth=""+r.lineWidth),r.hasOwnProperty("lineOpacity")&&(t.lineOpacity=""+r.lineOpacity),r.hasOwnProperty("hidden")&&(t.hidden=!!r.hidden),r.hasOwnProperty("readonly")&&(t.readonly=!!r.readonly),r.hasOwnProperty("secret")&&(t.secret=!!r.secret),r.hasOwnProperty("sliderBounds")&&r.sliderBounds&&(t.slider={min:__dcg_shared_module_exports__['wc'](r.sliderBounds.min),max:__dcg_shared_module_exports__['wc'](r.sliderBounds.max),step:__dcg_shared_module_exports__['wc'](r.sliderBounds.step)},t.slider.min&&(t.slider.hardMin=!0),t.slider.max&&(t.slider.hardMax=!0)),r.hasOwnProperty("playing")){let{playing:i}=r;typeof i!="boolean"?__dcg_shared_module_exports__['pd'].warn(`Invalid value for 'playing'. Expected a boolean but got '${i}'.`):(t.slider||(t.slider={}),t.slider.isPlaying=i)}return r.hasOwnProperty("parametricDomain3Du")&&r.parametricDomain3Du&&(t.parametricDomain3Du={min:__dcg_shared_module_exports__['wc'](r.parametricDomain3Du.min),max:__dcg_shared_module_exports__['wc'](r.parametricDomain3Du.max)}),r.hasOwnProperty("parametricDomain3Dv")&&r.parametricDomain3Dv&&(t.parametricDomain3Dv={min:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dv.min),max:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dv.max)}),r.hasOwnProperty("parametricDomain3Dr")&&r.parametricDomain3Dr&&(t.parametricDomain3Dr={min:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dr.min),max:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dr.max)}),r.hasOwnProperty("parametricDomain3Dphi")&&r.parametricDomain3Dphi&&(t.parametricDomain3Dphi={min:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dphi.min),max:__dcg_shared_module_exports__['wc'](r.parametricDomain3Dphi.max)}),r.hasOwnProperty("parametricDomain")&&r.parametricDomain?(t.parametricDomain={min:__dcg_shared_module_exports__['wc'](r.parametricDomain.min),max:__dcg_shared_module_exports__['wc'](r.parametricDomain.max)},r.hasOwnProperty("domain")&&__dcg_shared_module_exports__['pd'].warn("Both 'parametricDomain' and the deprecated 'domain' property were specified. Using 'parametricDomain'.")):r.hasOwnProperty("domain")&&(__dcg_shared_module_exports__['pd'].warn("The 'domain' property is deprecated.Use 'parametricDomain' to specify the domain for parametric functions"),t.parametricDomain={min:__dcg_shared_module_exports__['wc'](r.domain.min),max:__dcg_shared_module_exports__['wc'](r.domain.max)}),r.hasOwnProperty("polarDomain")&&r.polarDomain&&(t.polarDomain={min:__dcg_shared_module_exports__['wc'](r.polarDomain.min),max:__dcg_shared_module_exports__['wc'](r.polarDomain.max)}),r.hasOwnProperty("dragMode")&&(bF(r.dragMode)?t.dragMode=r.dragMode:__dcg_shared_module_exports__['pd'].warn("Invalid dragMode: '"+r.dragMode+"'.")),r.hasOwnProperty("label")&&(t.label=r.label+""),r.hasOwnProperty("showLabel")&&(t.showLabel=!!r.showLabel),r.hasOwnProperty("showAngleLabel")&&(t.showAngleLabel=!!r.showAngleLabel),r.hasOwnProperty("labelSize")&&(typeof r.labelSize=="string"?t.labelSize=r.labelSize:__dcg_shared_module_exports__['pd'].warn("Invalid labelSize: "+r.labelSize)),r.hasOwnProperty("labelOrientation")&&(k6(r.labelOrientation)?t.labelOrientation=r.labelOrientation:__dcg_shared_module_exports__['pd'].warn("Invalid labelOrientation: "+r.labelOrientation)),r.hasOwnProperty("fill")&&(t.fill=!!r.fill),r.hasOwnProperty("fillOpacity")&&(t.fillOpacity=""+r.fillOpacity),t}function L6(r,e){var t={id:Su(r,e)};return r.hasOwnProperty("latex")&&(t.latex=r.latex+""),r.hasOwnProperty("color")&&(t.color=r.color+""),r.hasOwnProperty("hidden")&&(t.hidden=!!r.hidden),r.hasOwnProperty("points")&&(t.points=!!r.points),r.hasOwnProperty("lines")&&(t.lines=!!r.lines),r.hasOwnProperty("values")&&r.values&&(t.values=r.values.map(function(i){return i+""})),r.hasOwnProperty("pointStyle")&&(yI(r.pointStyle)?t.pointStyle=r.pointStyle:__dcg_shared_module_exports__['pd'].warn("Invalid pointStyle: '"+r.pointStyle+"'.")),r.hasOwnProperty("pointSize")&&(t.pointSize=""+r.pointSize),r.hasOwnProperty("pointOpacity")&&(t.pointOpacity=""+r.pointOpacity),r.hasOwnProperty("lineStyle")&&(xI(r.lineStyle)?t.lineStyle=r.lineStyle:__dcg_shared_module_exports__['pd'].warn("Invalid lineStyle: '"+r.lineStyle+"'.")),r.hasOwnProperty("lineWidth")&&(t.lineWidth=""+r.lineWidth),r.hasOwnProperty("lineOpacity")&&(t.lineOpacity=""+r.lineOpacity),r.hasOwnProperty("columnMode")&&(__dcg_shared_module_exports__['pd'].warn("As of API v1.1 the 'columnMode' property is deprecated and has been split into individual 'points' and 'lines' properties."),r.columnMode===Pb.POINTS_AND_LINES?(t.points=!0,t.lines=!0):r.columnMode===Pb.LINES?(t.points=!1,t.lines=!0):(t.points=!0,t.lines=!1),t.lines&&!t.points&&r.hasOwnProperty("dragMode")&&r.dragMode!=="NONE"&&(__dcg_shared_module_exports__['pd'].warn("A 'lines' value of true and 'points' value of false is only compatible with a dragMode of 'NONE'. Proceeding by setting 'points' to true."),t.points=!0),D6(r.columnMode)&&__dcg_shared_module_exports__['pd'].warn("Invalid columnMode: '"+r.columnMode+"'.")),r.hasOwnProperty("dragMode")&&(bF(r.dragMode)?t.dragMode=r.dragMode==="AUTO"?"NONE":r.dragMode:__dcg_shared_module_exports__['pd'].warn("Invalid dragMode: '"+r.dragMode+"'.")),t}function O6(r,e){var t={type:"table",id:Su(r,e)};return r.hasOwnProperty("columns")&&r.columns&&(t.columns=r.columns.map(function(i){return L6(i,e)})),t}function _6(r,e){var t={type:"folder",id:Su(r,e)};return r.hasOwnProperty("hidden")&&(t.hidden=!!r.hidden),t}function fF(r,e){var t={type:"text",id:Su(r,e)};return r.hasOwnProperty("text")&&(t.text=r.text),r.hasOwnProperty("secret")&&(t.secret=!!r.secret),r.hasOwnProperty("readonly")&&(t.readonly=!!r.readonly),t}function F6(r,e){var t={type:"image",id:Su(r,e)};return r.hasOwnProperty("hidden")&&(t.hidden=!!r.hidden),t}function tS(r,e,t){var i=r.type;if(e&&i&&i!==e){__dcg_shared_module_exports__['pd'].warn("Cannot change type of expression from '"+e+"' to '"+i+"'.");return}if(e==="text"&&i===void 0)return fF(r,t);switch(i){case void 0:case"expression":return P6(r,t);case"image":return F6(r,t);case"table":return O6(r,t);case"folder":return _6(r,t);case"text":return fF(r,t);default:if(e){__dcg_shared_module_exports__['pd'].warn("Cannot modify expressions of type: '"+e+"' through the API.");return}else{__dcg_shared_module_exports__['pd'].warn("Invalid expression type: '"+i+"'.");return}}}var rS={};__dcg_shared_module_exports__['d'](rS,{LARGE:()=>B6,MEDIUM:()=>EI,SMALL:()=>N6,VERY_LARGE:()=>z6,VERY_SMALL:()=>R6});var R6=9,N6=12,EI=16,B6=20,z6=24;var We=function(r,e,t){var i=document.createElement("img"),o,n;if(i.onerror=e,i.onload=function(){n&&!(t&&t.noRevoke)&&We.revokeObjectURL(n),e&&e(We.scale(i,t))},We.isInstanceOf("Blob",r)||We.isInstanceOf("File",r))o=n=We.createObjectURL(r),i._type=r.type;else if(typeof r=="string")o=r,t&&t.crossOrigin&&(i.crossOrigin=t.crossOrigin);else return!1;return o?(i.src=o,i):We.readFile(r,function(a){var s=a.target;s&&s.result?i.src=s.result:e&&e(a)})},iS=window.createObjectURL&&window||window.URL&&URL.revokeObjectURL&&URL||window.webkitURL&&webkitURL;We.isInstanceOf=function(r,e){return Object.prototype.toString.call(e)==="[object "+r+"]"};We.transformCoordinates=function(){};We.getTransformedOptions=function(r){return r};We.renderImageToCanvas=function(r,e,t,i,o,n,a,s,l,c){return r.getContext("2d").drawImage(e,t,i,o,n,a,s,l,c),r};We.hasCanvasOption=function(r){return r.canvas||r.crop};We.scale=function(r,e){e=e||{};var t=document.createElement("canvas"),i=r.getContext||We.hasCanvasOption(e)&&t.getContext,o=r.naturalWidth||r.width,n=r.naturalHeight||r.height,a=o,s=n,l,c,d,u,h,g,b,C,S,k=function(){var M=Math.max((d||a)/a,(u||s)/s);M>1&&(a=Math.ceil(a*M),s=Math.ceil(s*M))},I=function(){var M=Math.min((l||a)/a,(c||s)/s);M<1&&(a=Math.ceil(a*M),s=Math.ceil(s*M))};return i&&(e=We.getTransformedOptions(e),b=e.left||0,C=e.top||0,e.sourceWidth?(h=e.sourceWidth,e.right!==void 0&&e.left===void 0&&(b=o-h-e.right)):h=o-b-(e.right||0),e.sourceHeight?(g=e.sourceHeight,e.bottom!==void 0&&e.top===void 0&&(C=n-g-e.bottom)):g=n-C-(e.bottom||0),a=h,s=g),l=e.maxWidth,c=e.maxHeight,d=e.minWidth,u=e.minHeight,i&&l&&c&&e.crop?(a=l,s=c,S=h/g-l/c,S<0?(g=c*h/l,e.top===void 0&&e.bottom===void 0&&(C=(n-g)/2)):S>0&&(h=l*g/c,e.left===void 0&&e.right===void 0&&(b=(o-h)/2))):((e.contain||e.cover)&&(d=l=l||d,u=c=c||u),e.cover?(I(),k()):(k(),I())),i?(t.width=a,t.height=s,We.transformCoordinates(t,e),We.renderImageToCanvas(t,r,b,C,h,g,0,0,a,s)):(r.width=a,r.height=s,r)};We.createObjectURL=function(r){return iS?iS.createObjectURL(r):!1};We.revokeObjectURL=function(r){return iS?iS.revokeObjectURL(r):!1};We.readFile=function(r,e,t){if(window.FileReader){var i=new FileReader;if(i.onload=i.onerror=e,t=t||"readAsDataURL",i[t])return i[t](r),i}return!1};(!window.navigator||!window.navigator.platform||!/iP(hone|od|ad)/.test(window.navigator.platform))&&(yF=We.renderImageToCanvas,We.detectSubsampling=function(r){var e,t;return r.width*r.height>1024*1024?(e=document.createElement("canvas"),e.width=e.height=1,t=e.getContext("2d"),t.drawImage(r,-r.width+1,0),t.getImageData(0,0,1,1).data[3]===0):!1},We.detectVerticalSquash=function(r,e){var t=r.naturalHeight||r.height,i=document.createElement("canvas"),o=i.getContext("2d"),n,a,s,l,c;for(e&&(t/=2),i.width=1,i.height=t,o.drawImage(r,0,0),n=o.getImageData(0,0,1,t).data,a=0,s=t,l=t;l>a;)c=n[(l-1)*4+3],c===0?s=l:a=l,l=s+a>>1;return l/t||1},We.renderImageToCanvas=function(r,e,t,i,o,n,a,s,l,c){if(e._type==="image/jpeg"){var d=r.getContext("2d"),u=document.createElement("canvas"),h=1024,g=u.getContext("2d"),b,C,S,k;if(u.width=h,u.height=h,d.save(),b=We.detectSubsampling(e),b&&(t/=2,i/=2,o/=2,n/=2),C=We.detectVerticalSquash(e,b),b||C!==1){for(i*=C,l=Math.ceil(h*l/o),c=Math.ceil(h*c/n/C),s=0,k=0;k<n;){for(a=0,S=0;S<o;)g.clearRect(0,0,h,h),g.drawImage(e,t,i,o,n,-S,-k,o,n),d.drawImage(u,0,0,h,h,a,s,l,c),S+=h,a+=l;k+=h,s+=c}return d.restore(),r}}return yF(r,e,t,i,o,n,a,s,l,c)});var yF,K6=window.Blob&&(Blob.prototype.slice||Blob.prototype.webkitSlice||Blob.prototype.mozSlice);We.blobSlice=K6&&function(){var r=this.slice||this.webkitSlice||this.mozSlice;return r.apply(this,arguments)};We.metaDataParsers={jpeg:{65505:[]}};We.parseMetaData=function(r,e,t){t=t||{};var i=this,o=t.maxMetaDataSize||262144,n={},a=!(window.DataView&&r&&r.size>=12&&r.type==="image/jpeg"&&We.blobSlice);(a||!We.readFile(We.blobSlice.call(r,0,o),function(s){var l=s.target.result,c=new DataView(l),d=2,u=c.byteLength-4,h=d,g,b,C,S;if(c.getUint16(0)===65496){for(;d<u&&(g=c.getUint16(d),g>=65504&&g<=65519||g===65534);){if(b=c.getUint16(d+2)+2,d+b>c.byteLength){console.log("Invalid meta data: Invalid segment size.");break}if(C=We.metaDataParsers.jpeg[g],C)for(S=0;S<C.length;S+=1)C[S].call(i,c,d,b,n,t);d+=b,h=d}!t.disableImageHead&&h>6&&(l.slice?n.imageHead=l.slice(0,h):n.imageHead=new Uint8Array(l).subarray(0,h))}else console.log("Invalid JPEG file: Missing JPEG marker.");e(n)},"readAsArrayBuffer"))&&e(n)};var U6=We.hasCanvasOption;We.hasCanvasOption=function(r){return U6(r)||r.orientation};We.transformCoordinates=function(r,e){var t=r.getContext("2d"),i=r.width,o=r.height,n=e.orientation;if(n)switch(n>4&&(r.width=o,r.height=i),n){case 2:t.translate(i,0),t.scale(-1,1);break;case 3:t.translate(i,o),t.rotate(Math.PI);break;case 4:t.translate(0,o),t.scale(1,-1);break;case 5:t.rotate(.5*Math.PI),t.scale(1,-1);break;case 6:t.rotate(.5*Math.PI),t.translate(0,-o);break;case 7:t.rotate(.5*Math.PI),t.translate(i,-o),t.scale(-1,1);break;case 8:t.rotate(-.5*Math.PI),t.translate(-i,0);break}};We.getTransformedOptions=function(r){if(!r.orientation||r.orientation===1)return r;var e={},t;for(t in r)r.hasOwnProperty(t)&&(e[t]=r[t]);switch(r.orientation){case 2:e.left=r.right,e.right=r.left;break;case 3:e.left=r.right,e.top=r.bottom,e.right=r.left,e.bottom=r.top;break;case 4:e.top=r.bottom,e.bottom=r.top;break;case 5:e.left=r.top,e.top=r.left,e.right=r.bottom,e.bottom=r.right;break;case 6:e.left=r.top,e.top=r.right,e.right=r.bottom,e.bottom=r.left;break;case 7:e.left=r.bottom,e.top=r.right,e.right=r.top,e.bottom=r.left;break;case 8:e.left=r.bottom,e.top=r.left,e.right=r.top,e.bottom=r.right;break}return r.orientation>4&&(e.maxWidth=r.maxHeight,e.maxHeight=r.maxWidth,e.minWidth=r.minHeight,e.minHeight=r.minWidth,e.sourceWidth=r.sourceHeight,e.sourceHeight=r.sourceWidth),e};We.ExifMap=function(){return this};We.ExifMap.prototype.map={Orientation:274};We.ExifMap.prototype.get=function(r){return this[r]||this[this.map[r]]};We.getExifThumbnail=function(r,e,t){var i,o,n;if(!t||e+t>r.byteLength){console.log("Invalid Exif data: Invalid thumbnail data.");return}for(i=[],o=0;o<t;o+=1)n=r.getUint8(e+o),i.push((n<16?"0":"")+n.toString(16));return"data:image/jpeg,%"+i.join("%")};We.exifTagTypes={1:{getValue:function(r,e){return r.getUint8(e)},size:1},2:{getValue:function(r,e){return String.fromCharCode(r.getUint8(e))},size:1,ascii:!0},3:{getValue:function(r,e,t){return r.getUint16(e,t)},size:2},4:{getValue:function(r,e,t){return r.getUint32(e,t)},size:4},5:{getValue:function(r,e,t){return r.getUint32(e,t)/r.getUint32(e+4,t)},size:8},9:{getValue:function(r,e,t){return r.getInt32(e,t)},size:4},10:{getValue:function(r,e,t){return r.getInt32(e,t)/r.getInt32(e+4,t)},size:8}};We.exifTagTypes[7]=We.exifTagTypes[1];We.getExifValue=function(r,e,t,i,o,n){var a=We.exifTagTypes[i],s,l,c,d,u,h;if(!a){console.log("Invalid Exif data: Invalid tag type.");return}if(s=a.size*o,l=s>4?e+r.getUint32(t+8,n):t+8,l+s>r.byteLength){console.log("Invalid Exif data: Invalid data offset.");return}if(o===1)return a.getValue(r,l,n);for(c=[],d=0;d<o;d+=1)c[d]=a.getValue(r,l+d*a.size,n);if(a.ascii){for(u="",d=0;d<c.length&&(h=c[d],h!=="\0");d+=1)u+=h;return u}return c};We.parseExifTag=function(r,e,t,i,o){var n=r.getUint16(t,i);o.exif[n]=We.getExifValue(r,e,t,r.getUint16(t+2,i),r.getUint32(t+4,i),i)};We.parseExifTags=function(r,e,t,i,o){var n,a,s;if(t+6>r.byteLength){console.log("Invalid Exif data: Invalid directory offset.");return}if(n=r.getUint16(t,i),a=t+2+12*n,a+4>r.byteLength){console.log("Invalid Exif data: Invalid directory size.");return}for(s=0;s<n;s+=1)this.parseExifTag(r,e,t+2+12*s,i,o);return r.getUint32(a,i)};We.parseExifData=function(r,e,t,i,o){if(!o.disableExif){var n=e+10,a,s,l;if(r.getUint32(e+4)===1165519206){if(n+8>r.byteLength){console.log("Invalid Exif data: Invalid segment size.");return}if(r.getUint16(e+8)!==0){console.log("Invalid Exif data: Missing byte alignment offset.");return}switch(r.getUint16(n)){case 18761:a=!0;break;case 19789:a=!1;break;default:console.log("Invalid Exif data: Invalid byte alignment marker.");return}if(r.getUint16(n+2,a)!==42){console.log("Invalid Exif data: Missing TIFF marker.");return}s=r.getUint32(n+4,a),i.exif=new We.ExifMap,s=We.parseExifTags(r,n,n+s,a,i),s&&!o.disableExifThumbnail&&(l={exif:{}},s=We.parseExifTags(r,n,n+s,a,l),l.exif[513]&&(i.exif.Thumbnail=We.getExifThumbnail(r,n+l.exif[513],l.exif[514]))),i.exif[34665]&&!o.disableExifSub&&We.parseExifTags(r,n,n+i.exif[34665],a,i),i.exif[34853]&&!o.disableExifGps&&We.parseExifTags(r,n,n+i.exif[34853],a,i)}}};We.metaDataParsers.jpeg[65505].push(We.parseExifData);We.ExifMap.prototype.tags={256:"ImageWidth",257:"ImageHeight",34665:"ExifIFDPointer",34853:"GPSInfoIFDPointer",40965:"InteroperabilityIFDPointer",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",274:"Orientation",277:"SamplesPerPixel",284:"PlanarConfiguration",530:"YCbCrSubSampling",531:"YCbCrPositioning",282:"XResolution",283:"YResolution",296:"ResolutionUnit",273:"StripOffsets",278:"RowsPerStrip",279:"StripByteCounts",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",301:"TransferFunction",318:"WhitePoint",319:"PrimaryChromaticities",529:"YCbCrCoefficients",532:"ReferenceBlackWhite",306:"DateTime",270:"ImageDescription",271:"Make",272:"Model",305:"Software",315:"Artist",33432:"Copyright",36864:"ExifVersion",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",42240:"Gamma",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37500:"MakerNote",37510:"UserComment",40964:"RelatedSoundFile",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37520:"SubSecTime",37521:"SubSecTimeOriginal",37522:"SubSecTimeDigitized",33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"PhotographicSensitivity",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBias",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37396:"SubjectArea",37386:"FocalLength",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"};We.ExifMap.prototype.stringValues={ExposureProgram:{0:"Undefined",1:"Manual",2:"Normal program",3:"Aperture priority",4:"Shutter priority",5:"Creative program",6:"Action program",7:"Portrait mode",8:"Landscape mode"},MeteringMode:{0:"Unknown",1:"Average",2:"CenterWeightedAverage",3:"Spot",4:"MultiSpot",5:"Pattern",6:"Partial",255:"Other"},LightSource:{0:"Unknown",1:"Daylight",2:"Fluorescent",3:"Tungsten (incandescent light)",4:"Flash",9:"Fine weather",10:"Cloudy weather",11:"Shade",12:"Daylight fluorescent (D 5700 - 7100K)",13:"Day white fluorescent (N 4600 - 5400K)",14:"Cool white fluorescent (W 3900 - 4500K)",15:"White fluorescent (WW 3200 - 3700K)",17:"Standard light A",18:"Standard light B",19:"Standard light C",20:"D55",21:"D65",22:"D75",23:"D50",24:"ISO studio tungsten",255:"Other"},Flash:{0:"Flash did not fire",1:"Flash fired",5:"Strobe return light not detected",7:"Strobe return light detected",9:"Flash fired, compulsory flash mode",13:"Flash fired, compulsory flash mode, return light not detected",15:"Flash fired, compulsory flash mode, return light detected",16:"Flash did not fire, compulsory flash mode",24:"Flash did not fire, auto mode",25:"Flash fired, auto mode",29:"Flash fired, auto mode, return light not detected",31:"Flash fired, auto mode, return light detected",32:"No flash function",65:"Flash fired, red-eye reduction mode",69:"Flash fired, red-eye reduction mode, return light not detected",71:"Flash fired, red-eye reduction mode, return light detected",73:"Flash fired, compulsory flash mode, red-eye reduction mode",77:"Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected",79:"Flash fired, compulsory flash mode, red-eye reduction mode, return light detected",89:"Flash fired, auto mode, red-eye reduction mode",93:"Flash fired, auto mode, return light not detected, red-eye reduction mode",95:"Flash fired, auto mode, return light detected, red-eye reduction mode"},SensingMethod:{1:"Undefined",2:"One-chip color area sensor",3:"Two-chip color area sensor",4:"Three-chip color area sensor",5:"Color sequential area sensor",7:"Trilinear sensor",8:"Color sequential linear sensor"},SceneCaptureType:{0:"Standard",1:"Landscape",2:"Portrait",3:"Night scene"},SceneType:{1:"Directly photographed"},CustomRendered:{0:"Normal process",1:"Custom process"},WhiteBalance:{0:"Auto white balance",1:"Manual white balance"},GainControl:{0:"None",1:"Low gain up",2:"High gain up",3:"Low gain down",4:"High gain down"},Contrast:{0:"Normal",1:"Soft",2:"Hard"},Saturation:{0:"Normal",1:"Low saturation",2:"High saturation"},Sharpness:{0:"Normal",1:"Soft",2:"Hard"},SubjectDistanceRange:{0:"Unknown",1:"Macro",2:"Close view",3:"Distant view"},FileSource:{3:"DSC"},ComponentsConfiguration:{0:"",1:"Y",2:"Cb",3:"Cr",4:"R",5:"G",6:"B"},Orientation:{1:"top-left",2:"top-right",3:"bottom-right",4:"bottom-left",5:"left-top",6:"right-top",7:"right-bottom",8:"left-bottom"}};We.ExifMap.prototype.getText=function(r){var e=this.get(r);switch(r){case"LightSource":case"Flash":case"MeteringMode":case"ExposureProgram":case"SensingMethod":case"SceneCaptureType":case"SceneType":case"CustomRendered":case"WhiteBalance":case"GainControl":case"Contrast":case"Saturation":case"Sharpness":case"SubjectDistanceRange":case"FileSource":case"Orientation":return this.stringValues[r][e];case"ExifVersion":case"FlashpixVersion":return String.fromCharCode(e[0],e[1],e[2],e[3]);case"ComponentsConfiguration":return this.stringValues[r][e[0]]+this.stringValues[r][e[1]]+this.stringValues[r][e[2]]+this.stringValues[r][e[3]];case"GPSVersionID":return e[0]+"."+e[1]+"."+e[2]+"."+e[3]}return String(e)};(function(r){var e=r.tags,t=r.map,i;for(i in e)e.hasOwnProperty(i)&&(t[e[i]]=i)})(We.ExifMap.prototype);We.ExifMap.prototype.getAll=function(){var r={},e,t;for(e in this)this.hasOwnProperty(e)&&(t=this.tags[e],t&&(r[t]=this.getText(t)));return r};function xF(r,e){for(var t=[.92,.86,.8,.7,.6,.5,.4,.3,.2,.1],i,o=0;o<t.length;o++)if(i=r.toDataURL("image/jpeg",t[o]),i.length<e)return i;return i}function q6(r,e){for(var t=r.toDataURL().length,i=r.width,o=r.height,n=document.createElement("canvas"),a,s=0;s<2;s++){var l=Math.sqrt(e/t);i=Math.round(l*i),o=Math.round(l*o),n.height=o,n.width=i;var c=n.getContext("2d");if(c.drawImage(r,0,0,i,o),a=n.toDataURL(),t=a.length,t<e)return a}return a}function H6(r){for(var e=r.getContext("2d"),t=e.getImageData(0,0,r.width,r.height).data,i=3;i<t.length;i+=4)if(t[i]!==255)return!0;return!1}function oS(r,e){var t={orientation:!0,canvas:!0,maxWidth:1600,maxHeight:1600};We(r,function(i){if(!i.toDataURL){e(!0);return}var o=2e5,n;if(r.type==="image/jpeg")n=xF(i,o);else if(n=i.toDataURL(),n.length>o){var a=n.length>.75*i.width*i.height,s=a&&!H6(i);n=s?xF(i,o):q6(i,o)}e(null,n)},t)}var DI={showGrid:!0,showXAxis:!0,showYAxis:!0,xAxisStep:0,yAxisStep:0,xAxisScale:"linear",yAxisScale:"linear",xAxisMinorSubdivisions:0,yAxisMinorSubdivisions:0,xAxisArrowMode:"NONE",yAxisArrowMode:"NONE",xAxisLabel:"",yAxisLabel:"",xAxisNumbers:!0,yAxisNumbers:!0,polarMode:!1,polarNumbers:!0,degreeMode:!1,randomSeed:"",restrictGridToFirstQuadrant:!1,userLockedViewport:!1},wF={threeDMode:!1,worldRotation3D:[],axis3D:[0,0,1],speed3D:0,showPlane3D:!0,showNumbers3D:!0,plane3dOpacity:"",backgroundColor3d:"#FFF",showAxis3D:!0,showAxisLabels3D:!0,showBox3D:!0},W6={squareAxes:!0},$6={...wF,...W6,product:"graphing",hideCustomColors:!1};function vF(r){return r in wF}var $d={...DI,...$6},CF=Object.keys(DI);function SF(r){return r in DI}var Fg=r=>isFinite(r)&&(r>0||r===0);var Yc=class r extends ti{constructor(){super();this.highlightPropertyMultipliers={};this.stateProperties=[],this.cloneProperties=[],this.highlightPropertyMultipliers={},this.config=new ti;for(var t in $d)$d.hasOwnProperty(t)&&this.addStateProperty(t,$d[t]);this.labelHangingColor="rgba(150,150,150,1)",this.lastChangedAxis="x",this.addDynamicProperties()}addDynamicProperties(){var t=this;function i(n,a,s){t.cloneProperties.push(n);function l(){t.setProperty(n,t.config.projectorMode?s:a)}t.config.observe("projectorMode",l),l()}function o(n,a,s,l,c){t.cloneProperties.push(n);function d(){var h;t.config.projectorMode?h=t.highlight?c:l:h=t.highlight?s:a,t.setProperty(n,h)}var u=[a,s,l,c];t.highlightPropertyMultipliers[n]=u.map(function(h){return h/u[0]}),t.observe("highlight",d),t.config.observe("projectorMode",d),d()}i("labelSize",14,19),i("majorAxisOpacity",.4,1),i("minorAxisOpacity",.12,.25),i("axisOpacity",.9,.9),i("axisLineWidth",1.5,2),i("axisLineOffset",.25,0),i("pixelsPerLabel",80,120),o("curveOpacity",.7,1,.7,1),i("globalCurveColor",void 0,void 0),i("disableFill",!1,!1),o("graphLineWidth",2.5,3.5,5,7),o("pointLineWidth",8,8*1.2,8*1.3,8*1.2*1.3)}setController(t){this.controller=t,this.registerCallbacks()}getHighlightPropertyMultiplier(t,i){var o=i?1:0;return this.config.projectorMode?this.highlightPropertyMultipliers[t][2+o]:this.highlightPropertyMultipliers[t][o]}getFillOpacityMultiplier(){return this.highlight&&this.controller&&this.controller.isGeometry()?1.3:1}addStateProperty(t,i){this[t]=i,this.stateProperties.push(t),this.cloneProperties.push(t)}static fromObject(t){var i=new r;return i.cloneProperties.forEach(function(o){t.hasOwnProperty(o)&&i.setProperty(o,t[o])}),i}registerCallbacks(){var t=()=>{var i;(i=this.controller)==null||i.requestRedrawGraph()};this.stateProperties.forEach(i=>{this.observe(i,t)}),this.config.observe("backgroundColor",t),this.config.observe("textColor",t),this.config.observe("invertedColors",t),this.observe("backgroundColor",t),this.observe("textColor",t),this.config.observe("enableTabindex",t),this.config.observeAndSync("projectorMode",t)}_validateSetting(t,i){var o;switch(t){case"xAxisMinorSubdivisions":case"yAxisMinorSubdivisions":o=Math.round(Math.min(Math.max(0,i),5)),i!==o&&__dcg_shared_module_exports__['pd'].warn("minorSubdivisions must be an integer between 0 and 5. You provided "+i+", which we changed to "+o+".");break;case"degreeMode":case"projectorMode":case"showGrid":case"showXAxis":case"showYAxis":case"xAxisNumbers":case"yAxisNumbers":case"polarNumbers":case"enableTabindex":case"invertedColors":o=i==="false"?!1:!!i,i!==o&&__dcg_shared_module_exports__['pd'].warn(t+" must be a Boolean. You provided "+i+" ("+typeof i+"), which we changed to "+o+" ("+typeof o+").");break;case"xAxisStep":case"yAxisStep":o=parseFloat(i),isFinite(i)||(o=0,__dcg_shared_module_exports__['pd'].warn(t+" must be a number. You provided "+i+", which we changed to "+o+"."));break;case"xAxisScale":case"yAxisScale":o=i,!this.config.logScales&&i==="logarithmic"?(o="linear",__dcg_shared_module_exports__['pd'].warn("Must set logScales: true to set "+t+" to 'logarithmic'.")):i!=="linear"&&i!=="logarithmic"&&(o="linear",__dcg_shared_module_exports__['pd'].warn(t+' must be "linear" or "logarithmic". You provided '+i+", which we changed to "+o+"."));break;case"xAxisArrowMode":case"yAxisArrowMode":o=__dcg_shared_module_exports__['Oc'][i],o!==i&&(o="NONE",__dcg_shared_module_exports__['pd'].warn(`unknown AxisArrowMode. Allowed values are:
`+__dcg_shared_module_exports__['La'](__dcg_shared_module_exports__['Oc']).join(`
`)));break;case"xAxisLabel":case"yAxisLabel":o=i,typeof i!="string"&&(o="",__dcg_shared_module_exports__['pd'].warn(t+" must be a string. you provided a "+typeof i+"."));break;case"randomSeed":o=i,typeof i!="string"&&(o=""+i,__dcg_shared_module_exports__['pd'].warn("randomSeed must be a string. you provided a "+typeof i+"."));break;case"backgroundColor":o=i,typeof i!="string"&&(o="",__dcg_shared_module_exports__['pd'].warn(t+" must be a string. you provided a "+typeof i+".")),o||(o="#fff"),o[0]!=="#"&&(o="#"+o);break;case"textColor":o=i,typeof i!="string"&&(o="",__dcg_shared_module_exports__['pd'].warn(t+" must be a string. you provided a "+typeof i+".")),o||(o="#000"),o[0]!=="#"&&(o="#"+o);break;case"fontSize":o=i,typeof i!="number"&&(o=parseInt(o,10),__dcg_shared_module_exports__['pd'].warn("fontSize must be a number. Attempted to convert "+i+" to "+o+"."));break;case"language":o=i,typeof i!="string"&&(o="",__dcg_shared_module_exports__['pd'].warn(t+" must be a string. you provided a "+typeof i+".")),i!=="en"&&!ZC(i)&&(o="en",__dcg_shared_module_exports__['pd'].warn(i+" is not currently an available language."));break;default:o=i;break}return o}validateSettings(t){var i={},o=!1;for(var n in t)this.stateProperties.indexOf(n)>=0?i[n]=this._validateSetting(n,t[n]):(__dcg_shared_module_exports__['pd'].warn('Invalid graph setting "'+n+'".'),o=!0);return o&&__dcg_shared_module_exports__['pd'].warn(`Available graph settings are:
`+this.stateProperties.join(`
`)),i}getConfiguredBackgroundColor(){return __dcg_shared_module_exports__['ad'](this.config.backgroundColor||"#fff")}getBackgroundColor({invertWhite:t}={invertWhite:!1}){var i=this.getConfiguredBackgroundColor();return this.config.invertedColors&&t?__dcg_shared_module_exports__['dd'](i):i}getConfiguredTextColor(){return __dcg_shared_module_exports__['ad'](this.config.textColor||"#000")}getTextColor({invertBlack:t}={invertBlack:!1}){var i=this.getConfiguredTextColor();return this.config.invertedColors&&t?__dcg_shared_module_exports__['dd'](i):i}getPrecisionConfig(){return this.config.increaseLabelPrecision?__dcg_shared_module_exports__['Ya']:__dcg_shared_module_exports__['Xa']}};kt();var Xz=__dcg_shared_module_exports__['e']($());function fS(r){var e=r&&r.id;if(r&&r.type==="table"){var t=Mn(r);if(t){var i=r.columnModels[t.column];e=i?i.id:void 0}else e=void 0}return e}function PR(r,e,t){var i=r.getAllSelectedItems(),o={};for(var n of i){var a=fS(n);a!==void 0&&(o[a]=!0,t[a]||e.selectSketch(a))}for(let s in t)o[s]||e.deselectSketch(s);return o}var Qs=function(r,e,t){if(r===void 0||e===void 0)return!1;let i,o=e.getBoundingClientRect().height,n=r.getBoundingClientRect().height,a=Vl(r),s=Vl(e);if(!a||!s)return!1;let l=e.scrollTop,c=a.top+l-s.top,d=c-t,u=n+c+t-o;return d>=u?i=Math.min(Math.max(l,u),d):i=.5*(d+u),i!==l?(e.scrollTop=i,e.scrollTop!=l):!1};function Du(r,e,t,i=3){let[o,n,a,s]=r,{x:l,y:c}=e.mathToPixels.mapPoint({x:o,y:n}),{x:d,y:u}=e.mathToPixels.mapPoint({x:a,y:s}),h=Math.min(i,Math.max(e.screen.width,e.screen.height)),g={xmin:-h,ymin:-h,xmax:e.screen.width+h,ymax:e.screen.height+h},b=l-d,C=c-u,S=-b,k=-C,I=l-g.xmin,M=g.xmax-l,E=c-g.ymin,A=g.ymax-c,V=[],G=[];if(b!==0){let z=I/b,K=M/S;b<0?(V.push(z),G.push(K)):(V.push(K),G.push(z))}if(C!==0){let z=E/C,K=A/k;C<0?(V.push(z),G.push(K)):(V.push(K),G.push(z))}(t===17||t===24)&&(V.push(0),G.push(1)),t===19&&V.push(0);let P=Math.max(...V),O=Math.min(...G);if(P>O)return{mapped:[l,c,d,u],clipped:[]};let R=l+S*P,q=c+k*P,J=l+S*O,U=c+k*O;return R<g.xmin&&J<g.xmin||R>g.xmax&&J>g.xmax||q<g.ymin&&U<g.ymin||q>g.ymax&&U>g.ymax?{mapped:[l,c,d,u],clipped:[]}:{mapped:[l,c,d,u],clipped:[R,q,J,U]}}var bn=class{constructor(e,t,i){this.pattern=i,this.replen=this.pattern[0]+this.pattern[1],t/this.replen>1e3&&(this.pattern[0]=t*this.pattern[0]/this.replen/1e3,this.pattern[1]=t*this.pattern[1]/this.replen/1e3),this.pstate=0,this.dstaccum=0,this.px=null,this.py=null,this.ctx=e}static getDashedPattern(e,t){let i=e.lineWidth*11/(t?3.5:2.5),o=i*7/11;return[i,o]}static getDottedPattern(e,t,i){let o=.5*e.lineWidth*.1/(i?3.5:2.5),n=o*8/.1;return t&&(n*=2),[o,n]}static getTotalSegmentLength(e){if(e.length<4)return 0;let t=0,i=0,o=e[0],n=e[1];for(;isNaN(o)||isNaN(n);){if(i+=2,i>=e.length)return 0;o=e[i],n=e[i+1]}let a,s;for(i+=2;i<e.length;i+=2)a=e[i],s=e[i+1],!(isNaN(a)||isNaN(s))&&(t+=__dcg_shared_module_exports__['ia'](a-o,s-n),o=a,n=s);return t}start(e,t){this.px=e,this.py=t}next(e,t){if(this.px===null||this.py===null)throw new Error("Must call start before calling next");let i=this.pattern[this.pstate],o=Math.sqrt(Math.pow(e-this.px,2)+Math.pow(t-this.py,2));if(o>1e-5){for(;o+this.dstaccum>=i;){let n=e-this.px,a=t-this.py,s=i-this.dstaccum;n*=s/o,a*=s/o,this.pstate===0&&(this.ctx.moveTo(this.px,this.py),this.ctx.lineTo(this.px+n,this.py+a)),this.dstaccum=0,this.px+=n,this.py+=a,this.pstate=this.pstate===0?1:0,i=this.pattern[this.pstate],o-=s}this.pstate===0&&(this.ctx.moveTo(this.px,this.py),this.ctx.lineTo(e,t))}this.px=e,this.py=t,this.dstaccum+=o}close(){this.pstate=0,this.dstaccum=0,this.px=null,this.py=null}drawSegment(e){let t=0,i=e[0],o=e[1];for(;isNaN(i)||isNaN(o);){if(t+=2,t>=e.length)return;i=e[t],o=e[t+1]}this.start(i,o);let n,a;for(t+=2;t<e.length;t+=2)n=e[t],a=e[t+1],!(isNaN(n)||isNaN(a))&&this.next(n,a);this.close()}};var Xd=10,Qd=3;function bS(r,e){return r+1e-8*(e-r)>r&&e-r>1e-300&&e-r<1e300}function OR(r,e){return r>1e-300&&bS(r,e)}var Wr=class r{constructor(e=-10,t=10,i=-10,o=10,n=-2,a=2){this.xmin=e,this.xmax=t,this.ymin=i,this.ymax=o,this.zmin=n,this.zmax=a}static fromObject({xmin:e,xmax:t,ymin:i,ymax:o,zmin:n,zmax:a}){return new r(e,t,i,o,n,a)}toObject(){return{xmin:this.xmin,ymin:this.ymin,zmin:this.zmin,xmax:this.xmax,ymax:this.ymax,zmax:this.zmax}}equals(e){return!(this.xmin!==e.xmin||this.ymin!==e.ymin||this.zmin!==e.zmin||this.xmax!==e.xmax||this.ymax!==e.ymax||this.zmax!==e.zmax)}isXValid(e){return e==="linear"?bS(this.xmin,this.xmax):OR(this.xmin,this.xmax)}isYValid(e){return e==="linear"?bS(this.ymin,this.ymax):OR(this.ymin,this.ymax)}isZValid(){return this.zmin===void 0||this.zmax===void 0?!1:bS(this.zmin,this.zmax)}isValid(e){return this.isXValid(e.xAxisScale)&&this.isYValid(e.yAxisScale)}isSquare(e,t){return Math.abs(e.height-e.width*this.aspectRatio(t))<1}isSquare3D(){let{xmin:e,xmax:t,ymin:i,ymax:o,zmin:n,zmax:a}=this;if(n===void 0||a===void 0)return!1;let s=[t-e,o-i,a-n];return Math.min(...s)/Math.max(...s)>.99999}aspectRatio(e){let t=Xd/Qd,i=e.yAxisScale==="linear"?this.ymax-this.ymin:Math.log10(this.ymax/this.ymin)*t,o=e.xAxisScale==="linear"?this.xmax-this.xmin:Math.log10(this.xmax/this.xmin)*t;return i/o}getSquaredAxisLimits({axis:e,screen:t,settings:i}){let[o,n,a,s,l]=e==="y"?[{min:this.ymin,max:this.ymax},{min:this.xmin,max:this.xmax},t.height/t.width,i.yAxisScale,i.xAxisScale]:[{min:this.xmin,max:this.xmax},{min:this.ymin,max:this.ymax},t.width/t.height,i.xAxisScale,i.yAxisScale];if(s==="logarithmic"){let d=l==="logarithmic"?Math.log(n.max)-Math.log(n.min):(n.max-n.min)*Qd/(Xd*Math.LOG10E),{min:u,max:h}=_R({min:Math.log(o.min),max:Math.log(o.max)},a*d);return{min:Math.exp(u),max:Math.exp(h)}}let c=l==="logarithmic"?(Math.log10(n.max)-Math.log10(n.min))*Xd/Qd:n.max-n.min;return _R(o,c*a)}squareXAxis(e,t){let{min:i,max:o}=this.getSquaredAxisLimits({axis:"x",screen:e,settings:t}),n=new r(i,o,this.ymin,this.ymax);return n.isXValid(t.xAxisScale)?n:this}squareYAxis(e,t){let{min:i,max:o}=this.getSquaredAxisLimits({axis:"y",screen:e,settings:t}),n=new r(this.xmin,this.xmax,i,o);return n.isYValid(t.yAxisScale)?n:this}squareCrop(e,t){return this.aspectRatio({xAxisScale:t.xAxisScale,yAxisScale:t.yAxisScale})>e.height/e.width?this.squareYAxis(e,t):this.squareXAxis(e,t)}polarDiameter(){let e=Math.abs(this.xmax),t=Math.abs(this.xmin),i=Math.abs(this.ymax),o=Math.abs(this.ymin);return 1.5*Math.max(e,t,i,o)}largestR(){return Math.sqrt(Math.pow(Math.max(-this.xmin,this.xmax),2)+Math.pow(Math.max(-this.ymin,this.ymax),2))}smallestR(){return this.xmin<=0&&this.xmax>=0&&this.ymin<=0&&this.ymax>=0?0:this.xmin<=0&&this.xmax>=0?Math.min(Math.abs(this.ymin),Math.abs(this.ymax)):this.ymin<=0&&this.ymax>=0?Math.min(Math.abs(this.xmin),Math.abs(this.xmax)):Math.sqrt(Math.pow(Math.max(this.xmin,-this.xmax),2)+Math.pow(Math.max(this.ymin,-this.ymax),2))}};function _R(r,e){let t=.5*(r.min+r.max),[i,o]=[t-.5*e,t+.5*e];return Math.abs((o-i)/e-1)>.1?{min:-.5*e,max:.5*e}:{min:i,max:o}}var yS={IS_HOVERED:1.25,IS_PRESSED:1.125,IS_GHOSTED:.4},Nb={IS_HOVERED:.5,IS_DEPRESSED:.3},_I={IS_GHOSTED:.4},xS={IS_HOVERED:.3,IS_DEPRESSED:.5},wS={IS_GHOSTED:.4},Bb=1;var jc,ku=new Map,vS=0;function RR(r,e,t){let i=r.imageObj;if(jc&&jc.color===e&&jc.img===i)return jc.canvas;jc?(jc.color=e,jc.img=i):jc={color:e,img:i,canvas:document.createElement("canvas")};let o=jc.canvas,n=r.mimeType==="image/svg+xml";o.width=0,o.width=n?t.width:i.width,o.height=n?t.height:i.height;let a=o.getContext("2d");return a.drawImage(i,0,0,o.width,o.height),a.fillStyle=e,a.globalCompositeOperation="source-atop",a.fillRect(0,0,o.width,o.height),o}function yH(r,e){if(e.width*e.height>1e3*1e3*window.devicePixelRatio*window.devicePixelRatio)return r.imageObj;let t=r.image_url,i=ku.get(t),o;if(!i||e.width!==i.size.width||e.height!==i.size.height){i&&(ku.delete(t),vS-=i.canvas.width*i.canvas.height);let a=r.imageObj,s=document.createElement("canvas");s.width=e.width,s.height=e.height;var n=s.getContext("2d");n.drawImage(a,0,0,s.width,s.height);let l=20*1e3*1e3;if(s.width*s.height>l)return r.imageObj;for(vS+=s.width*s.height;vS>l;){let[c,d]=Array.from(ku)[0];ku.delete(c),vS-=d.canvas.width*d.canvas.height}ku.set(t,{canvas:s,size:e}),o=s}else ku.delete(t),ku.set(t,i),o=i.canvas;return o}function CS(r,e,t,i={cacheRenderedSvgs:!1}){let{ctx:o,projection:n}=r,a=e.formula;if(!a||!a.dimensions.x)return;let s=a.dimensions;for(let l=0;l<s.x.length;l++){let c=s.x[l],d=s.y[l],u=s.width[l],h=s.height[l],g=s.radianAngle[l];if(!isFinite(c)||!isFinite(d)||!isFinite(u)||!isFinite(h)||!isFinite(g))continue;ei(o,"dcg-svg-image"),o.save(),Fr(o),o.globalAlpha=s.opacity[l];let b=n.mapy(h)-n.mapy(0),C=n.mapx(u)-n.mapx(0),S=g===0?1:Math.abs(C/u*(h/b)),k=n.mapx(c),I=n.mapy(d),M=k-C/2,E=I+b*S/2,A=h<0?-1:1,V=u<0?-1:1,G=M*V,P=E*A,O=Math.abs(C),R=Math.abs(b);g!==0&&(o.translate(k,I),o.scale(1,1/S),o.rotate(g),o.translate(-k,-I)),o.scale(V,A);let q=t.shouldDrawHovered(r,e.id,l),J=t.shouldDrawPressed(e.id,l),U=i.currentKeyboardAttention&&i.currentKeyboardAttention.calcId===e.id&&(i.currentKeyboardAttention.listIndex===void 0||i.currentKeyboardAttention.listIndex===l),K=e.imageObj,v=window.devicePixelRatio*(n.screen.width/n.screen.height),D={width:Math.floor(O*v),height:Math.floor(R*v)};J?e.depressedImageObj?K=e.depressedImageObj:K=RR(e,"rgba(50,50,50,0.2)",D):q?e.hoveredImageObj?K=e.hoveredImageObj:K=RR(e,"rgba(200,200,200,0.2)",D):i.cacheRenderedSvgs&&e.mimeType==="image/svg+xml"&&(K=yH(e,D)),o.drawImage(K,G,P,O,R*S);let _=0,te=3;if(An(e)&&e.controller.isTraceEnabled()&&(o.beginPath(),o.rect(G-_,P-_,O+2*_,R*S+2*_),o.restore(),o.save(),o.strokeStyle="#6993C7",o.lineWidth=te,o.stroke()),U){let Q=o.globalAlpha;_=5,o.beginPath(),o.roundRect?o.roundRect(G-_,P-_,O+2*_,R*S+2*_,_):o.rect(G-_,P-_,O+2*_,R*S+2*_),o.restore(),o.save(),o.strokeStyle=__dcg_shared_module_exports__['hd'].FOCUS_OUTLINE,o.globalAlpha=1,o.lineWidth=te,o.stroke(),o.globalAlpha=Q}o.restore()}}function yn(r,e){let t=r;t._dcgStartNamedGroup&&t._dcgStartNamedGroup(e)}function zb(r,e){let t=r;t._dcgSetTitle&&t._dcgSetTitle(e)}function xn(r){let e=r;e._dcgEndNamedGroup&&e._dcgEndNamedGroup()}function NR(r){return r.uncommitted?"#ccc":!r.selected&&!r.hovered&&BR(r)===1?__dcg_shared_module_exports__['cd'](r.color,.2):r.color}function BR(r){let e=.6;return r.hidden?r.selected?e=.4:e=.25:r.selected||r.isPoint?e=1:r.hovered&&(e=.8),r.isTransparentObject&&(e*=.3),e}function xH(r){return r.hidden?r.isPoint?0:r.selected?.3:.2:r.selected||r.isPoint||r.hovered?1:.7}function zR(r,e){if(r=r.replace(/#/,""),r.length===3)var t=parseInt(r.slice(0,1)+r.slice(0,1),16),i=parseInt(r.slice(1,2)+r.slice(1,2),16),o=parseInt(r.slice(2,3)+r.slice(2,3),16);else if(r.length===6)var t=parseInt(r.slice(0,2),16),i=parseInt(r.slice(2,4),16),o=parseInt(r.slice(4,6),16);else var t=0,i=0,o=0;return`rgba(${t}, ${i}, ${o}, ${e})`}function Ub(r){return zR(NR(r),xH(r))}function SS(r){return zR(NR(r),BR(r))}function ES(r){return Math.abs(Math.abs(r)-Math.PI/2)<1e-6}var DS=1.4,UR=1.5,TS={};function YR(r={}){return Object.keys(r).length}function kS(r,e={}){return YR(e)===0?r:r.filter((t,i)=>!e[i])}function qR(r,e){let t=[];for(let i=0;i<r;i++)t.push(e);return t}function SH(){return!!Object.keys(TS).length}var jR=function(r,e){let t=3;return e&&(t+=e),new Wr(-t,r.width+t,-t,r.height+t)};function HR(r,e){let{displayAsRightAngle:t,rx:i,ry:o,startAngle:n,deltaAngle:a,yscreen:s,xscreen:l}=r;if(t){let c=i*Math.cos(-n),d=i*Math.cos(-n-a),u=o*Math.sin(-n),h=o*Math.sin(-n-a);e.moveTo(l+c,s+u),e.lineTo(l+c+d,s+u+h),e.lineTo(l+d,s+h)}else e.ellipse(l,s,i,o,0,-n,-n-a,a>0)}var Yl=class r{constructor(e,t,i){if(this.controller=e,this.getExpressionAriaLabel=i,t.config.plaidMode){let o=["RED","BLUE","GREEN","PURPLE","ORANGE","BLACK"];for(let n of o)TS[__dcg_shared_module_exports__['hd'][n]]=document.createElement("img"),TS[__dcg_shared_module_exports__['hd'][n]].setAttribute("src","/assets/img/april-fools/"+n.toLowerCase()+".png")}}redrawToCtx(e,t,i,o,n,a,s){let{ctx:l,projection:c}=e;yn(l,"expressions");let d=c.settings.highlight,u=this.controller.isGeometry();o.forEach(h=>{let g=t[h],b=i[h];g!==void 0&&(u&&c.settings.setProperty("highlight",g.showHighlight),yn(l,"sketch"),c.settings.takingScreenshot&&zb(l,this.getExpressionAriaLabel(h)),r.drawSketchToCtx({sketch:t[h],drawContext:e,poiLabelsLayer:n,clickableObjectsLayer:a,geometryContext:this.controller.getGeoModel(),showMovablePoints:s==null?void 0:s.showMovablePoints}),xn(l)),b&&b.shouldGraph&&b.foreground&&CS(e,b,a,{currentKeyboardAttention:this.controller.get2dPOIController().keyboardAttentionManager.getKeyboardAttention(),cacheRenderedSvgs:this.controller.getGraphSettings().config.cacheRenderedSvgs})}),xn(l),c.settings.setProperty("highlight",d)}static eachSegment(e,t){for(let i of e.branches)if(i.graphMode!==15)for(let o of i.segments)t(i,o)}static drawSketchToCtx({sketch:e,drawContext:t,poiLabelsLayer:i,clickableObjectsLayer:o,geometryContext:n}){var g,b,C,S,k;if(!e.branches||!e.branches.length)return;let{ctx:a,projection:s}=t,l=a.lineWidth,c=a.globalAlpha,d=s.settings.globalCurveColor?s.settings.globalCurveColor:e.color,u=TS[d],h;u&&u.complete&&u.naturalWidth>0?h=a.createPattern(u,"repeat"):h=d,a.lineJoin="round",a.lineCap="round";for(let I of e.branches){if(I.graphMode===3||I.graphMode===4||I.graphMode===15||I.graphMode===22)continue;let M=1;o.shouldDrawHovered(t,e.id,I.listIndex)&&(M=yS.IS_HOVERED),o.shouldDrawPressed(e.id,I.listIndex)&&(M=yS.IS_PRESSED),o.shouldDrawGhosted(e.id)&&(M=yS.IS_GHOSTED),M*=(g=n==null?void 0:n.getToolFadeOpacity(e.id))!=null?g:1,M*=s.settings.getFillOpacityMultiplier(),a.strokeStyle=d,a.fillStyle=I.color&&!s.settings.globalCurveColor&&!SH()?I.color:h,I.graphMode!==6&&(a.desmos_batching=!0,a.beginPath());let E=I.graphMode===6?.2:(b=I.fillOpacity)!=null?b:NaN;a.globalAlpha=r._clampedOpacity(E*M,.4);let A=RI(s,I);for(let V of A)r.fillPolygonFillToCtx(a,V);I.graphMode!==6&&(a.fill(),a.desmos_batching=!1),a.globalAlpha=1;for(let V of I.segments){let G=2;I.graphMode&&(G=I.graphMode);let P=V,O=I.lineWidth!==void 0,R=I.lineWidth,q=2.5,J=(C=I.arrowMode)!=null?C:"DEFAULT";if(a.strokeStyle=I.color,a.fillStyle=I.color,O&&(R<=0||!isFinite(R)))continue;a.lineWidth=O?R:q;let U=s.settings.graphLineWidth/q,z=1.3;s.settings.highlight&&(z*=5/7),e.tokenSelected?(U*=UR,z/=UR):e.tokenHovered&&(U*=DS,z/=DS),a.lineWidth*=U,a.globalAlpha*=s.settings.curveOpacity,a.globalAlpha=r._clampedOpacity(s.settings.curveOpacity===1?1:I.lineOpacity,1);let K=I.operator,v="default";K==="<"||K===">"||K==="!="?v="DASHED":K==="<="||K===">="?v="SOLID":e.style==="DASHED"||I.style==="DASHED"?v="DASHED":(e.style==="DOTTED"||I.style==="DOTTED")&&(v="DOTTED",O&&(a.lineWidth*=2)),a.globalAlpha*=(S=n==null?void 0:n.getToolFadeOpacity(e.id))!=null?S:1;let D=!I.isIntersectionExtension&&o.shouldDrawHovered(t,e.id,I.listIndex),_=!I.isIntersectionExtension&&o.shouldDrawPressed(e.id,I.listIndex),te=o.shouldDrawGhosted(e.id);te?a.globalAlpha*=_I.IS_GHOSTED:(_||D)&&(a.save(),a.lineWidth+=4.5,a.globalAlpha*=_?Nb.IS_DEPRESSED:Nb.IS_HOVERED,r.drawGraphStrokeToCtx(a,s,P,{type:v,graphMode:G,op:K,arrowMode:J,arrowHeadBaseWidth:(a.lineWidth-4.5)*z,opacityMultiplier:_?Nb.IS_DEPRESSED:Nb.IS_HOVERED}),a.restore()),r.drawGraphStrokeToCtx(a,s,P,{type:v,graphMode:G,op:K,arrowMode:J,arrowHeadBaseWidth:a.lineWidth*z,opacityMultiplier:((k=n==null?void 0:n.getToolFadeOpacity(e.id))!=null?k:1)*(te?_I.IS_GHOSTED:Bb)})}}a.lineWidth=l,a.globalAlpha=c,a.strokeStyle=d,r.eachSegment(e,(function(I,M){var E;if(I.graphMode===3&&I.showPoint){let A=M,V=[],G;if(I.interactiveLabel&&e.labels)for(let v=0,D=e.labels.length;v<D;v++){let _=e.labels[v];if(_.type==="poi"){let te=i.isOpenPOI(_.poi),Q=i.getHoveredPOI()===_.poi;V.push(te||Q),!te&&Q&&(G=v)}}let P=1;typeof I.pointSize=="number"?P=I.pointSize/8:Array.isArray(I.pointSize)&&(P=I.pointSize.map(function(v){return v/8}));let O;Array.isArray(I.color)&&(O=I.color);let R=o.getHoveredObjectById(e.id),q=o.shouldDrawHovered(t,e.id,void 0),J=o.getPressedObject(),U=o.shouldDrawPressed(e.id,J==null?void 0:J.listIndex),z=o.shouldDrawGhosted(e.id),K=I.droppedIndices;if((q||U)&&!z){let v=A.length;K&&(v+=YR(K));let D=qR(v,0),_=Array.isArray(P)?P.slice():qR(v,P);U&&J?J.listIndex===void 0?(D=D.map(()=>xS.IS_DEPRESSED),_=_.map(te=>te*1.5)):(D[J.listIndex]=xS.IS_DEPRESSED,_[J.listIndex]*=1.5):q&&R&&(D=D.map((te,Q)=>R.listIndexes===void 0||R.listIndexes[Q]?xS.IS_HOVERED:te),_=_.map((te,Q)=>R.listIndexes===void 0||R.listIndexes[Q]?te*1.5:te)),r.drawPointsToCtx({ctx:a,projection:s,segment:A,style:I.style,sizeOverrideIdxs:V,opacityOverrideIdx:G,sizeFactor:_,opacityFactor:D,colorOverrides:O,baseOpacity:I.pointOpacity,droppedIndices:K,sketch:e,isKeyboardFocused:o.isKeyboardFocused(e.id,void 0)}),a.restore()}r.drawPointsToCtx({ctx:a,projection:s,segment:A,style:I.style,sizeOverrideIdxs:V,opacityOverrideIdx:G,sizeFactor:P,opacityFactor:((E=n==null?void 0:n.getToolFadeOpacity(e.id))!=null?E:1)*(z?wS.IS_GHOSTED:Bb),colorOverrides:O,baseOpacity:I.pointOpacity,droppedIndices:K,sketch:e})}}).bind(this))}static drawGraphStrokeToCtx(e,t,i,o){let n={arrowHeadBaseWidth:e.lineWidth},{type:a,graphMode:s,op:l,arrowMode:c,arrowHeadBaseWidth:d}=Object.assign({},n,o);if(s===20||s===21){let[C,S,k]=i,I=t.mathToPixels.mapX(C),M=t.mathToPixels.mapY(S),E=t.mathToPixels.dangerouslyGetXScaleFactor(),A=t.mathToPixels.dangerouslyGetYScaleFactor(),V=Math.abs(k*E),G=Math.abs(k*A),P,O;if(s===21?(P=-i[3],O=-i[4]):(P=0,O=2*Math.PI),e.save(),ei(e,"dcg-svg-curve"),e.desmos_batching||e.beginPath(),a==="DASHED"){let R=bn.getDashedPattern(e,!!t.settings.highlight);e.setLineDash(R)}else if(a==="DOTTED"){let R=bn.getDottedPattern(e,!!t.settings.config.projectorMode,!!t.settings.highlight);e.setLineDash(R)}e.ellipse(I,M,V,G,0,P,O,P>O),e.desmos_batching||e.stroke(),Fr(e),e.restore();return}else if(s===23){let[C,S,k,I,M]=i,E=!M&&ES(I),A=Zd(I,t),V=t.mathToPixels.mapX(C),G=t.mathToPixels.mapY(S),P=t.mathToPixels.dangerouslyGetXScaleFactor(),O=t.mathToPixels.dangerouslyGetYScaleFactor(),R=P>O?P/O:1,q=P>O?1:O/P,J=Math.abs(R*A),U=Math.abs(q*A);if(e.save(),ei(e,"dcg-svg-curve"),e.globalAlpha=.4*o.opacityMultiplier,e.desmos_batching||e.beginPath(),e.moveTo(V,G),e.lineTo(V+J*Math.cos(-k),G+U*Math.sin(-k)),HR({displayAsRightAngle:E,rx:J,ry:U,startAngle:k,deltaAngle:I,yscreen:G,xscreen:V},e),e.lineTo(V,G),!e.desmos_batching&&!M&&e.fill(),e.globalAlpha=o.opacityMultiplier,e.desmos_batching||e.beginPath(),HR({displayAsRightAngle:E,rx:J,ry:U,startAngle:k,deltaAngle:I,yscreen:G,xscreen:V},e),M){let z=-k-I,K=V+J*Math.cos(z),v=G+U*Math.sin(z);NI(e,K,v,-k,-I,10,J)}e.globalAlpha=o.opacityMultiplier,e.desmos_batching||e.stroke(),e.lineWidth=1.5,e.globalAlpha=.2*o.opacityMultiplier,e.moveTo(V+1.5*J*Math.cos(-k),G+1.5*U*Math.sin(-k)),e.lineTo(V,G),e.lineTo(V+1.5*J*Math.cos(-k-I),G+1.5*U*Math.sin(-k-I)),e.stroke(),Fr(e),e.restore()}else if(s===17||s===18||s===19||s===24){let{clipped:C,mapped:S}=Du(i,t,s,e.lineWidth);if(C.length===0)return;let[k,I,M,E]=C,[A,V,G,P]=S;e.save(),ei(e,"dcg-svg-curve");let O;if(e.desmos_batching||e.beginPath(),a=="DASHED"?(O=new bn(e,bn.getTotalSegmentLength(C),bn.getDashedPattern(e,!!t.settings.highlight)),O.drawSegment(C)):a=="DOTTED"?(O=new bn(e,bn.getTotalSegmentLength(C),bn.getDottedPattern(e,!!t.settings.config.projectorMode,!!t.settings.highlight)),O.drawSegment(C)):(e.moveTo(k,I),e.lineTo(M,E)),s===17){let R=WR(a)*d,{startArrow:q,endArrow:J}=TH(kH(s,c));q&&el(e,G,P,A,V,R),J&&el(e,A,V,G,P,R)}else if(s===24&&(A!==G||V!==P)){let R=WR(a)*d;el(e,A,V,G,P,R)}e.desmos_batching||e.stroke(),Fr(e),e.restore();return}let u=Ib(s,l!=="=",t.settings),h=qd(i,t.mathToPixels,u),g=V_(h,jR(t.screen,e.lineWidth));if(g.length===0)return;e.save(),ei(e,"dcg-svg-curve");let b;if(e.desmos_batching||e.beginPath(),a=="DASHED")b=new bn(e,bn.getTotalSegmentLength(g),bn.getDashedPattern(e,!!t.settings.highlight)),b.drawSegment(g);else if(a=="DOTTED")b=new bn(e,bn.getTotalSegmentLength(g),bn.getDottedPattern(e,!!t.settings.config.projectorMode,!!t.settings.highlight)),b.drawSegment(g);else if((a==="SOLID"||a==="default")&&e.lineWidth===1)if(g.length>4||g[0]!==g[2]&&g[1]!==g[3]){e.moveTo(g[0],g[1]);for(let S=0;S<g.length;S+=2)e.lineTo(g[S],g[S+1])}else{e.moveTo(__dcg_shared_module_exports__['pa'](g[0]),__dcg_shared_module_exports__['pa'](g[1]));for(let S=0;S<g.length;S+=2)e.lineTo(__dcg_shared_module_exports__['pa'](g[S]),__dcg_shared_module_exports__['pa'](g[S+1]))}else{e.moveTo(g[0],g[1]);for(let C=0;C<g.length;C+=2)e.lineTo(g[C],g[C+1])}e.desmos_batching||e.stroke(),Fr(e),e.restore()}static mapPointToScreen(e,t,i){let n=e.mapx(t);if(n<-20||n>e.screen.width+20)return null;let a=e.mapy(i);return a<-20||a>e.screen.height+20?null:{x:n,y:a}}static drawPointToCtx(e){let{ctx:t,projection:i,sketch:o,x:n,y:a}=e,{sizeFactor:s}=e,l=t.lineWidth,c=t.fillStyle,d=t.strokeStyle,u=r.mapPointToScreen(i,n,a);if(!u||e.sizeFactor!==void 0&&(e.sizeFactor<=0||!isFinite(e.sizeFactor)))return!1;ei(t,"dcg-svg-point"),e.alpha!==void 0?t.globalAlpha=e.alpha:t.globalAlpha=.9,e.opacityFactor!==void 0&&(t.globalAlpha*=e.opacityFactor),t.desmos_batching||t.beginPath();let h=i.settings.pointLineWidth;if(e.overrideSize&&(h=i.settings.config.projectorMode?17:11,t.lineWidth=h),o.tokenSelected?s?s*=1.5:s=1.5:o.tokenHovered&&(s?s*=DS:s=DS),s!==void 0&&(h*=s,t.lineWidth=h),e.colorOverride&&(t.fillStyle=e.colorOverride,t.strokeStyle=e.colorOverride),e.finalHardcodedSize!==void 0&&(h=e.finalHardcodedSize,t.lineWidth=h),e.style==="CROSS"){let g=h*.4;t.moveTo(u.x-g,u.y-g),t.lineTo(u.x+g,u.y+g),t.moveTo(u.x+g,u.y-g),t.lineTo(u.x-g,u.y+g),t.lineWidth=h*.3}else if(e.style==="OPEN"){let g=h*.42;t.moveTo(u.x+g,u.y),t.arc(u.x,u.y,g,0,Math.PI*2,!0),t.closePath(),t.fillStyle="white",t.lineWidth=h*.25,t.fill()}else t.moveTo(u.x-.1,u.y-.1),t.lineTo(u.x-.1,u.y+.1),t.lineTo(u.x+.1,u.y+.1),t.lineTo(u.x+.1,u.y-.1);if(t.desmos_batching||t.stroke(),t.globalAlpha=1,e.isKeyboardFocused){let g=h/2+6;t.lineWidth=2,t.strokeStyle="#6A93D2",t.beginPath(),t.moveTo(u.x+g,u.y),t.arc(u.x,u.y,g,0,Math.PI*2,!0),t.stroke(),t.closePath()}return t.lineWidth=l,t.fillStyle=c,t.strokeStyle=d,Fr(t),!0}static drawPointsToCtx(e){let{ctx:t,projection:i,segment:o,style:n,sizeOverrideIdxs:a,opacityOverrideIdx:s,sizeFactor:l,opacityFactor:c,colorOverrides:d,baseOpacity:u,droppedIndices:h}=e,g=t.lineWidth;t.lineWidth=i.settings.pointLineWidth;let b;Array.isArray(u)?(b=u.map((function(C){return r._clampedOpacity(C,.9)}).bind(this)),b=kS(b,h)):b=r._clampedOpacity(u,.9),Array.isArray(l)&&(l=kS(l,h)),Array.isArray(c)&&(c=kS(c,h)),d&&(d=kS(d,h));for(let C=0;C<o.length;C++)r.drawPointToCtx({ctx:t,projection:i,sketch:e.sketch,x:o[C][0],y:o[C][1],alpha:s===C?.6:Array.isArray(b)?b[C]:b,style:n,overrideSize:a[C],sizeFactor:Array.isArray(l)?l[C]:l,opacityFactor:Array.isArray(c)?c[C]:c,colorOverride:d&&d[C],isKeyboardFocused:e.isKeyboardFocused});t.lineWidth=g}static fillPolygonFillToCtx(e,t){if(t.length>=6){ei(e,"dcg-svg-region"),e.desmos_batching||e.beginPath(),e.moveTo(t[0],t[1]);for(let i=2;i<t.length;i+=2)e.lineTo(t[i],t[i+1]);e.lineTo(t[0],t[1]),e.desmos_batching||e.fill(),Fr(e)}}static _clampedOpacity(e,t){return typeof e!="number"?t:e<0?0:e>1?1:isFinite(e)?e:t}};function*EH(r,e){let t=e.graphMode,i=e.operator,o=i=="<"||i==">"||i=="<="||i==">=",n=!r.settings.disableFill&&(t===7||o),a=i=="<="||i=="<";if(n)for(let s of e.segments)switch(t){case 6:{let l=a?0:r.viewport.polarDiameter(),c=r.settings.degreeMode?180:2*Math.PI;yield*K_(s,l,c);break}case 2:{let l=a?r.viewport.ymin:r.viewport.ymax;yield*nI(s,l);break}case 1:{let l=a?r.viewport.xmin:r.viewport.xmax;yield*nI(s,l);break}case 7:yield s}}function DH(r){switch(r){case 2:return T_;case 1:return k_;case 6:case 7:default:return BC}}function*RI(r,e){let t=e.graphMode;if(t!==1&&t!==2&&t!==6&&t!==7)return;let i=jR(r.screen);for(let o of EH(r,e)){let n=t===7?wu:Ib(t,!0,r.settings),a=qd(o,r.mathToPixels,n);yield oI(a,i,DH(e.graphMode),!1)}}function kH(r,e){return r===17?e==="DEFAULT"?"NONE":e:"NONE"}function TH(r){switch(r){case"NONE":return{startArrow:!1,endArrow:!1};case"POSITIVE":return{startArrow:!1,endArrow:!0};case"BOTH":return{startArrow:!0,endArrow:!0};default:let e=r;throw new Error("Unexpected arrowMode: "+e)}}function WR(r){switch(r){case"default":case"SOLID":case"DASHED":return 4;case"DOTTED":return 2;default:let e=r;throw new Error("Unexpected line style "+e)}}function el(r,e,t,i,o,n){let a=Math.atan2(o-t,i-e),s=i-n*Math.cos(a-Math.PI/9),l=o-n*Math.sin(a-Math.PI/9),c=i-n*Math.cos(a+Math.PI/9),d=o-n*Math.sin(a+Math.PI/9),u=i-(n-2)*Math.cos(a-Math.PI/18),h=o-(n-2)*Math.sin(a-Math.PI/18),g=i-(n-2)*Math.cos(a+Math.PI/18),b=o-(n-2)*Math.sin(a+Math.PI/18);r.moveTo(i,o),r.lineTo(s,l),r.lineTo(c,d),r.lineTo(i,o),r.lineTo(u,h),r.lineTo(g,b),r.lineTo(i,o)}function NI(r,e,t,i,o,n,a){let s=i+o,l=n*Math.min(1,Math.max(.5,Math.abs(o)/.8)),c=o<=0,d=Math.PI/2;a<25?d+=.25:d+=.1,c||(d*=-1);let u=e+Math.cos(s+d),h=t+Math.sin(s+d);el(r,u,h,e,t,l)}function Zd(r,e){let t=20;return e.settings.config.projectorMode&&(t*=1.4),t}var MS=class{constructor(e){this.savedPOI=[],this.controller=e}redrawToCtx(e,t,i,o,n){let{ctx:a,projection:s}=e,l=[];for(var c=0;c<n.length;c++){var d=n[c],u=t[d];if(u){u.showHighlight&&!this.controller.isGeometry()&&this.drawSketchHighlight({sketch:u,drawContext:e,poiLabelsLayer:i,clickableObjectsLayer:o,geometryContext:this.controller.getGeoModel()});var h=u.getPOI();(u.showPOI||h.length&&h[0].isAttachedToPlottedPoint())&&l.push.apply(l,this.drawPOIs(h,a,"#AAAAAA",s))}}this.savedPOI=l}getDrawnPOI(){return this.savedPOI}drawSketchHighlight(e){e.drawContext.projection.settings.setProperty("highlight",!0),Yl.drawSketchToCtx(e),e.drawContext.projection.settings.setProperty("highlight",!1)}drawPOIs(e,t,i,o){t.lineWidth=o.settings.pointLineWidth,t.strokeStyle=i||"#AAAAAA",t.fillStyle=i||"#AAAAAA",t.lineJoin="round",t.lineCap="round";var n=t.globalAlpha;t.globalAlpha=.01;var a=[],s,l=e.length,c;if(l&&e[0].isAttachedToPlottedPoint())for(s=0;s<l;s++)c=e[s],Yl.mapPointToScreen(o,c.x,c.y)&&a.push(c);else for(s=0;s<l;s++)c=e[s],Yl.drawPointToCtx({ctx:t,projection:o,...c})&&a.push(c);return t.globalAlpha=n,a}};var AS=class{redrawToCtx(e,t){let{ctx:i,projection:o}=e;if(t){i.save(),i.lineWidth=2,i.fillStyle="rgba(0,0,0,.15)",i.strokeStyle="rgba(0,0,0,.4)";var n=o.mapx(t.left),a=o.mapy(t.top),s=o.mapx(t.right),l=o.mapy(t.bottom),c=s-n,d=l-a;i.fillRect(n,a,c,d),i.strokeRect(n,a,c,d),i.restore()}}};var Jc=__dcg_shared_module_exports__['e']($());var{If:MH}=Jc.Components,GS=class extends Jc.Class{init(){this.controller=this.props.grapher().controller,this.poiController=this.props.grapher().poiController}template(){return Jc.createElement(MH,{predicate:this.bindFn(this.showCursor)},()=>Jc.createElement("div",{class:Jc.const("dcg-geo-keyboard-cursor"),style:()=>({top:`${this.getPosition().y}px`,left:`${this.getPosition().x}px`})}))}getPosition(){let e=this.poiController.getGeoKeyboardPt(),t=this.props.grapher().getProjection();return{x:t.mapx(e.x),y:t.mapy(e.y)}}showCursor(){return this.controller.isVirtualMouseAllowed()}};var Ug,$e,Hb,KI,zI;function Vn(r,e){var t=Object.keys(e),i;for(i=0;i<t.length;i++)r=r.replace(new RegExp("\\{"+t[i]+"\\}","gi"),e[t[i]]);return r}function VS(r){var e,t,i;if(!r)throw new Error("cannot create a random attribute name for an undefined object");e="ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz",t="";do for(t="",i=0;i<12;i++)t+=e[Math.floor(Math.random()*e.length)];while(r[t]);return t}function AH(r,e){var t,i,o={},n,a;for(r=r.split(","),e=e||10,t=0;t<r.length;t+=2)i="&"+r[t+1]+";",n=parseInt(r[t],e),o[i]="&#"+n+";";return o["\\xa0"]="&#160;",o}function GH(r){var e={left:"start",right:"end",center:"middle",start:"start",end:"end"};return e[r]||e.start}zI=AH("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);Ug={strokeStyle:{svgAttr:"stroke",canvas:"#000000",svg:"none",apply:"stroke"},fillStyle:{svgAttr:"fill",canvas:"#000000",svg:null,apply:"fill"},lineCap:{svgAttr:"stroke-linecap",canvas:"butt",svg:"butt",apply:"stroke"},lineJoin:{svgAttr:"stroke-linejoin",canvas:"miter",svg:"miter",apply:"stroke"},miterLimit:{svgAttr:"stroke-miterlimit",canvas:10,svg:4,apply:"stroke"},lineWidth:{svgAttr:"stroke-width",canvas:1,svg:1,apply:"stroke"},globalAlpha:{svgAttr:"opacity",canvas:1,svg:1,apply:"fill stroke"},font:{canvas:"10px sans-serif"},shadowColor:{canvas:"#000000"},shadowOffsetX:{canvas:0},shadowOffsetY:{canvas:0},shadowBlur:{canvas:0},textAlign:{canvas:"start"},textBaseline:{canvas:"alphabetic"},lineDash:{svgAttr:"stroke-dasharray",canvas:[],svg:null,apply:"stroke"}};Hb=function(r,e){this.__root=r,this.__ctx=e};Hb.prototype.addColorStop=function(r,e){var t=this.__ctx.__createElement("stop"),i,o;t.setAttribute("offset",r),e.indexOf("rgba")!==-1?(i=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi,o=i.exec(e),t.setAttribute("stop-color",Vn("rgb({r},{g},{b})",{r:o[1],g:o[2],b:o[3]})),t.setAttribute("stop-opacity",o[4])):t.setAttribute("stop-color",e),this.__root.appendChild(t)};KI=function(r,e){this.__root=r,this.__ctx=e};$e=function(r){var e={width:500,height:500,enableMirroring:!1},t;if(arguments.length>1?(t=e,t.width=arguments[0],t.height=arguments[1]):r?t=r:t=e,!(this instanceof $e))return new $e(t);this._randomPostfix="-"+function(){return"xxxxxxxx".replace(/x/g,function(o){return(Math.random()*16|0).toString(16)})}(),this._svgClassNames=[],this.width=t.width||e.width,this.height=t.height||e.height,this.enableMirroring=t.enableMirroring!==void 0?t.enableMirroring:e.enableMirroring,this.canvas=this,this.__document=t.document||document,t.ctx?this.__ctx=t.ctx:(this.__canvas=this.__document.createElement("canvas"),this.__ctx=this.__canvas.getContext("2d")),this.__setDefaultStyles(),this.__stack=[this.__getStyleState()],this.__groupStack=[],this.__root=this.__document.createElementNS("http://www.w3.org/2000/svg","svg"),this.__root.setAttribute("version",1.1),this.__root.setAttribute("xmlns","http://www.w3.org/2000/svg"),this.__root.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),this.__root.setAttribute("width",this.width),this.__root.setAttribute("height",this.height),this.__ids={},this.__defs=this.__document.createElementNS("http://www.w3.org/2000/svg","defs"),this.__root.appendChild(this.__defs),this.__currentElement=this.__document.createElementNS("http://www.w3.org/2000/svg","g"),this.__root.appendChild(this.__currentElement)};$e.prototype.__createElement=function(r,e,t){typeof e=="undefined"&&(e={});var i=this.__document.createElementNS("http://www.w3.org/2000/svg",r),o=Object.keys(e),n,a;for(t&&(i.setAttribute("fill","none"),i.setAttribute("stroke","none")),n=0;n<o.length;n++)a=o[n],i.setAttribute(a,e[a]);var s=this._svgClassNames&&this._svgClassNames[this._svgClassNames.length-1];return s&&i.setAttribute("class",s),i};$e.prototype.__setDefaultStyles=function(){var r=Object.keys(Ug),e,t;for(e=0;e<r.length;e++)t=r[e],this[t]=Ug[t].canvas};$e.prototype.__applyStyleState=function(r){var e=Object.keys(r),t,i;for(t=0;t<e.length;t++)i=e[t],this[i]=r[i]};$e.prototype.__getStyleState=function(){var r,e={},t=Object.keys(Ug),i;for(r=0;r<t.length;r++)i=t[r],e[i]=this[i];return e};$e.prototype.__applyStyleToCurrentElement=function(r){var e=this.__currentElement,t=this.__currentElementsToStyle;t&&(e.setAttribute(r,""),e=t.element,t.children.forEach(function(g){g.setAttribute(r,"")}));var i=Object.keys(Ug),o,n,a,s,l,c;for(o=0;o<i.length;o++)if(n=Ug[i[o]],a=this[i[o]],n.apply){if(a instanceof KI){if(a.__ctx)for(;a.__ctx.__defs.childNodes.length;)s=a.__ctx.__defs.childNodes[0].getAttribute("id"),this.__ids[s]=s,this.__defs.appendChild(a.__ctx.__defs.childNodes[0]);e.setAttribute(n.apply,Vn("url(#{id})",{id:a.__root.getAttribute("id")}))}else if(a instanceof Hb)e.setAttribute(n.apply,Vn("url(#{id})",{id:a.__root.getAttribute("id")}));else if(n.apply.indexOf(r)!==-1&&n.svg!==a)if((n.svgAttr==="stroke"||n.svgAttr==="fill")&&a.indexOf("rgba")!==-1){l=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d?\.?\d*)\s*\)/gi,c=l.exec(a),e.setAttribute(n.svgAttr,Vn("rgb({r},{g},{b})",{r:c[1],g:c[2],b:c[3]}));var d=c[4],u=this.globalAlpha;u!=null&&(d*=u),e.setAttribute(n.svgAttr+"-opacity",d)}else{var h=n.svgAttr;if(i[o]==="globalAlpha"&&(h=r+"-"+n.svgAttr,e.getAttribute(h)))continue;e.setAttribute(h,a)}}};$e.prototype.__closestGroupOrSvg=function(r){return r=r||this.__currentElement,r.nodeName==="g"||r.nodeName==="svg"?r:this.__closestGroupOrSvg(r.parentNode)};$e.prototype.getSerializedSvg=function(r){var e=new XMLSerializer().serializeToString(this.__root),t,i,o,n,a,s;if(s=/xmlns="http:\/\/www\.w3\.org\/2000\/svg".+xmlns="http:\/\/www\.w3\.org\/2000\/svg/gi,s.test(e)&&(e=e.replace('xmlns="http://www.w3.org/2000/svg','xmlns:xlink="http://www.w3.org/1999/xlink')),r)for(t=Object.keys(zI),i=0;i<t.length;i++)o=t[i],n=zI[o],a=new RegExp(o,"gi"),a.test(e)&&(e=e.replace(a,n));return e};$e.prototype.getSvg=function(){return this.__root};$e.prototype._dcgStartNamedGroup=function(r){var e=this.__createElement("g");e.setAttribute("id",r+this._randomPostfix);var t=this.__closestGroupOrSvg();this.__groupStack.push(t),t.appendChild(e),this.__currentElement=e};$e.prototype._dcgEndNamedGroup=function(){this.__currentElement=this.__groupStack.pop(),this.__currentElement||(this.__currentElement=this.__root.childNodes[1])};$e.prototype._dcgSaveClassName=function(r){this._svgClassNames.push(r),this.__currentElement&&this.__currentElement.tagName==="path"&&!this.__currentDefaultPath&&(this.__currentElement.getAttribute("class")||this.__currentElement.setAttribute("class",r))};$e.prototype._dcgRestoreClassName=function(){this._svgClassNames.pop()};$e.prototype.save=function(){var r=this.__createElement("g"),e=this.__closestGroupOrSvg();this.__groupStack.push(e),e.appendChild(r),this.__currentElement=r,this.__stack.push(this.__getStyleState())};$e.prototype.restore=function(){this.__currentElement=this.__groupStack.pop(),this.__currentElementsToStyle=null,this.__currentElement||(this.__currentElement=this.__root.childNodes[1]);var r=this.__stack.pop();this.__applyStyleState(r)};$e.prototype.__addTransform=function(r){var e=this.__closestGroupOrSvg();if(e.childNodes.length>0){this.__currentElement.nodeName==="path"&&(this.__currentElementsToStyle||(this.__currentElementsToStyle={element:e,children:[]}),this.__currentElementsToStyle.children.push(this.__currentElement),this.__applyCurrentDefaultPath());var t=this.__createElement("g");e.appendChild(t),this.__currentElement=t}var i=this.__currentElement.getAttribute("transform");i?i+=" ":i="",i+=r,this.__currentElement.setAttribute("transform",i)};$e.prototype.scale=function(r,e){e===void 0&&(e=r),this.__addTransform(Vn("scale({x},{y})",{x:r,y:e}))};$e.prototype.rotate=function(r){var e=r*180/Math.PI;this.__addTransform(Vn("rotate({angle},{cx},{cy})",{angle:e,cx:0,cy:0}))};$e.prototype.translate=function(r,e){this.__addTransform(Vn("translate({x},{y})",{x:r,y:e}))};$e.prototype.transform=function(r,e,t,i,o,n){this.__addTransform(Vn("matrix({a},{b},{c},{d},{e},{f})",{a:r,b:e,c:t,d:i,e:o,f:n}))};$e.prototype.beginPath=function(){var r,e;this.__currentDefaultPath="",this.__currentPosition={},r=this.__createElement("path",{},!0),e=this.__closestGroupOrSvg(),e.appendChild(r),this.__currentElement=r};$e.prototype.__applyCurrentDefaultPath=function(){var r=this.__currentElement;r.nodeName==="path"?r.setAttribute("d",this.__currentDefaultPath):console.error("Attempted to apply path command to node",r.nodeName)};$e.prototype.__addPathCommand=function(r){this.__currentDefaultPath+=" ",this.__currentDefaultPath+=r};$e.prototype.moveTo=function(r,e){this.__currentElement.nodeName!=="path"&&this.beginPath(),this.__currentPosition={x:r,y:e},this.__addPathCommand(Vn("M {x} {y}",{x:r,y:e}))};$e.prototype.closePath=function(){this.__currentDefaultPath&&this.__addPathCommand("Z")};$e.prototype.lineTo=function(r,e){this.__currentPosition={x:r,y:e},this.__currentDefaultPath.indexOf("M")>-1?this.__addPathCommand(Vn("L {x} {y}",{x:r,y:e})):this.__addPathCommand(Vn("M {x} {y}",{x:r,y:e}))};$e.prototype.bezierCurveTo=function(r,e,t,i,o,n){this.__currentPosition={x:o,y:n},this.__addPathCommand(Vn("C {cp1x} {cp1y} {cp2x} {cp2y} {x} {y}",{cp1x:r,cp1y:e,cp2x:t,cp2y:i,x:o,y:n}))};$e.prototype.quadraticCurveTo=function(r,e,t,i){this.__currentPosition={x:t,y:i},this.__addPathCommand(Vn("Q {cpx} {cpy} {x} {y}",{cpx:r,cpy:e,x:t,y:i}))};var BI=function(r){var e=Math.sqrt(r[0]*r[0]+r[1]*r[1]);return[r[0]/e,r[1]/e]};$e.prototype.arcTo=function(r,e,t,i,o){var n=this.__currentPosition&&this.__currentPosition.x,a=this.__currentPosition&&this.__currentPosition.y;if(!(typeof n=="undefined"||typeof a=="undefined")){if(o<0)throw new Error("IndexSizeError: The radius provided ("+o+") is negative.");if(n===r&&a===e||r===t&&e===i||o===0){this.lineTo(r,e);return}var s=BI([n-r,a-e]),l=BI([t-r,i-e]);if(s[0]*l[1]===s[1]*l[0]){this.lineTo(r,e);return}var c=s[0]*l[0]+s[1]*l[1],d=Math.acos(Math.abs(c)),u=BI([s[0]+l[0],s[1]+l[1]]),h=o/Math.sin(d/2),g=r+h*u[0],b=e+h*u[1],C=[-s[1],s[0]],S=[l[1],-l[0]],k=function(E){var A=E[0],V=E[1];return V>=0?Math.acos(A):-Math.acos(A)},I=k(C),M=k(S);this.lineTo(g+C[0]*o,b+C[1]*o),this.arc(g,b,o,I,M)}};$e.prototype.stroke=function(){this.__currentElement.nodeName==="path"&&this.__currentElement.setAttribute("paint-order","fill stroke markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("stroke")};$e.prototype.fill=function(){this.__currentElement.nodeName==="path"&&this.__currentElement.setAttribute("paint-order","stroke fill markers"),this.__applyCurrentDefaultPath(),this.__applyStyleToCurrentElement("fill")};$e.prototype.rect=function(r,e,t,i){this.__currentElement.nodeName!=="path"&&this.beginPath(),this.moveTo(r,e),this.lineTo(r+t,e),this.lineTo(r+t,e+i),this.lineTo(r,e+i),this.lineTo(r,e),this.closePath()};$e.prototype.fillRect=function(r,e,t,i){var o,n;o=this.__createElement("rect",{x:r,y:e,width:t,height:i},!0),n=this.__closestGroupOrSvg(),n.appendChild(o),this.__currentElement=o,this.__applyStyleToCurrentElement("fill")};$e.prototype.strokeRect=function(r,e,t,i){var o,n;o=this.__createElement("rect",{x:r,y:e,width:t,height:i},!0),n=this.__closestGroupOrSvg(),n.appendChild(o),this.__currentElement=o,this.__applyStyleToCurrentElement("stroke")};$e.prototype.__clearCanvas=function(){for(var r=this.__closestGroupOrSvg(),e=r.getAttribute("transform"),t=this.__root.childNodes[1],i=t.childNodes,o=i.length-1;o>=0;o--)i[o]&&t.removeChild(i[o]);this.__currentElement=t,this.__groupStack=[],e&&this.__addTransform(e)};$e.prototype.clearRect=function(r,e,t,i){if(r===0&&e===0&&t===this.width&&i===this.height){this.__clearCanvas();return}var o,n=this.__closestGroupOrSvg();o=this.__createElement("rect",{x:r,y:e,width:t,height:i,fill:"#FFFFFF"},!0),n.appendChild(o)};$e.prototype.createLinearGradient=function(r,e,t,i){var o=this.__createElement("linearGradient",{id:VS(this.__ids),x1:r+"px",x2:t+"px",y1:e+"px",y2:i+"px",gradientUnits:"userSpaceOnUse"},!1);return this.__defs.appendChild(o),new Hb(o,this)};$e.prototype.createRadialGradient=function(r,e,t,i,o,n){var a=this.__createElement("radialGradient",{id:VS(this.__ids),cx:i+"px",cy:o+"px",r:n+"px",fx:r+"px",fy:e+"px",gradientUnits:"userSpaceOnUse"},!1);return this.__defs.appendChild(a),new Hb(a,this)};$e.prototype.__parseFont=function(){var r=/^\s*(?=(?:(?:[-a-z]+\s*){0,2}(italic|oblique))?)(?=(?:(?:[-a-z]+\s*){0,2}(small-caps))?)(?=(?:(?:[-a-z]+\s*){0,2}(bold(?:er)?|lighter|[1-9]00))?)(?:(?:normal|\1|\2|\3)\s*){0,3}((?:xx?-)?(?:small|large)|medium|smaller|larger|[.\d]+(?:\%|in|[cem]m|ex|p[ctx]))(?:\s*\/\s*(normal|[.\d]+(?:\%|in|[cem]m|ex|p[ctx])))?\s*([-,\'\"\sa-z0-9]+?)\s*$/i,e=r.exec(this.font),t={style:e[1]||"normal",size:e[4]||"10px",family:e[6]||"sans-serif",weight:e[3]||"normal",decoration:e[2]||"normal",href:null};return this.__fontUnderline==="underline"&&(t.decoration="underline"),this.__fontHref&&(t.href=this.__fontHref),t};$e.prototype.__wrapTextLink=function(r,e){if(r.href){var t=this.__createElement("a");return t.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r.href),t.appendChild(e),t}return e};$e.prototype.__applyText=function(r,e,t,i){var o=this.__parseFont(),n=this.__closestGroupOrSvg(),a=this.__createElement("text",{"font-family":o.family,"font-size":o.size,"font-style":o.style,"font-weight":o.weight,"text-decoration":o.decoration,x:e,y:t,"text-anchor":GH(this.textAlign)},!0);a.appendChild(this.__document.createTextNode(r)),this.__currentElement=a,this.__applyStyleToCurrentElement(i),n.appendChild(this.__wrapTextLink(o,a))};$e.prototype.fillText=function(r,e,t){this.__applyText(r,e,t,"fill")};$e.prototype.strokeText=function(r,e,t){this.__applyText(r,e,t,"stroke")};$e.prototype.measureText=function(r){return this.__ctx.font=this.font,this.__ctx.measureText(r)};$e.prototype.arc=function(r,e,t,i,o,n){if(i!==o){i=i%(2*Math.PI),o=o%(2*Math.PI),i===o&&(o=(o+2*Math.PI-.001*(n?-1:1))%(2*Math.PI));var a=r+t*Math.cos(o),s=e+t*Math.sin(o),l=r+t*Math.cos(i),c=e+t*Math.sin(i),d=n?0:1,u=0,h=o-i;h<0&&(h+=2*Math.PI),n?u=h>Math.PI?0:1:u=h>Math.PI?1:0,this.lineTo(l,c),this.__addPathCommand(Vn("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:t,ry:t,xAxisRotation:0,largeArcFlag:u,sweepFlag:d,endX:a,endY:s})),this.__currentPosition={x:a,y:s}}};$e.prototype.clip=function(){var r=this.__closestGroupOrSvg(),e=this.__createElement("clipPath"),t=VS(this.__ids),i=this.__createElement("g");this.__applyCurrentDefaultPath(),r.removeChild(this.__currentElement),e.setAttribute("id",t),e.appendChild(this.__currentElement),this.__defs.appendChild(e),r.setAttribute("clip-path",Vn("url(#{id})",{id:t})),r.appendChild(i),this.__currentElement=i};$e.prototype.drawImage=function(){var r=Array.prototype.slice.call(arguments),e=r[0],t,i,o,n,a=0,s=0,l,c,d,u,h,g,b,C,S,k,I;if(r.length===3)t=r[1],i=r[2],l=e.width,c=e.height,o=l,n=c;else if(r.length===5)t=r[1],i=r[2],o=r[3],n=r[4],l=e.width,c=e.height;else if(r.length===9)a=r[1],s=r[2],l=r[3],c=r[4],t=r[5],i=r[6],o=r[7],n=r[8];else throw new Error("Invalid number of arguments passed to drawImage: "+arguments.length);d=this.__closestGroupOrSvg(),b=this.__currentElement;var M="translate("+t+", "+i+")";if(e instanceof $e){if(u=e.getSvg().cloneNode(!0),u.childNodes&&u.childNodes.length>1){for(h=u.childNodes[0];h.childNodes.length;)I=h.childNodes[0].getAttribute("id"),this.__ids[I]=I,this.__defs.appendChild(h.childNodes[0]);if(g=u.childNodes[1],g){var E=g.getAttribute("transform"),A;E?A=E+" "+M:A=M,g.setAttribute("transform",A),d.appendChild(g)}}}else(e.nodeName==="CANVAS"||e.nodeName==="IMG")&&(C=this.__createElement("image"),C.setAttribute("width",o),C.setAttribute("height",n),C.setAttribute("opacity",this.globalAlpha),C.setAttribute("preserveAspectRatio","none"),(a||s||l!==e.width||c!==e.height)&&(S=this.__document.createElement("canvas"),S.width=o,S.height=n,k=S.getContext("2d"),k.drawImage(e,a,s,l,c,0,0,o,n),e=S),C.setAttribute("transform",M),C.setAttribute("xlink:href",e.nodeName==="CANVAS"?e.toDataURL():e.getAttribute("src")),d.appendChild(C))};$e.prototype.createPattern=function(r,e){var t=this.__document.createElementNS("http://www.w3.org/2000/svg","pattern"),i=VS(this.__ids),o;return t.setAttribute("id",i),t.setAttribute("width",r.width),t.setAttribute("height",r.height),r.nodeName==="CANVAS"||r.nodeName==="IMG"?(o=this.__document.createElementNS("http://www.w3.org/2000/svg","image"),o.setAttribute("width",r.width),o.setAttribute("height",r.height),o.setAttributeNS("http://www.w3.org/1999/xlink","xlink:href",r.nodeName==="CANVAS"?r.toDataURL():r.getAttribute("src")),t.appendChild(o),this.__defs.appendChild(t)):r instanceof $e&&(t.appendChild(r.__root.childNodes[1]),this.__defs.appendChild(t)),new KI(t,this)};$e.prototype.setLineDash=function(r){r&&r.length>0?this.lineDash=r.join(","):this.lineDash=null};$e.prototype.ellipse=function(r,e,t,i,o,n,a,s){if(n!==a){n=n%(2*Math.PI),a=a%(2*Math.PI),n===a&&(a=(a+2*Math.PI-.001*(s?-1:1))%(2*Math.PI));var l=r+Math.cos(-o)*t*Math.cos(a)+Math.sin(-o)*i*Math.sin(a),c=e-Math.sin(-o)*t*Math.cos(a)+Math.cos(-o)*i*Math.sin(a),d=r+Math.cos(-o)*t*Math.cos(n)+Math.sin(-o)*i*Math.sin(n),u=e-Math.sin(-o)*t*Math.cos(n)+Math.cos(-o)*i*Math.sin(n),h=s?0:1,g=0,b=a-n;b<0&&(b+=2*Math.PI),s?g=b>Math.PI?0:1:g=b>Math.PI?1:0,this.lineTo(d,u),this.__addPathCommand(Vn("A {rx} {ry} {xAxisRotation} {largeArcFlag} {sweepFlag} {endX} {endY}",{rx:t,ry:i,xAxisRotation:o*(180/Math.PI),largeArcFlag:g,sweepFlag:h,endX:l,endY:c})),this.__currentPosition={x:l,y:c}}};$e.prototype._dcgSetTitle=function(r){var e=this.__currentElement,t=!1,i,o=e.getElementsByTagName("title");o.length>0?i=o[0]:(i=this.__document.createElementNS("http://www.w3.org/2000/svg","title"),t=!0),i.textContent=r,t&&e.appendChild(i)};$e.prototype.drawFocusRing=function(){};$e.prototype.createImageData=function(){};$e.prototype.getImageData=function(){};$e.prototype.putImageData=function(){};$e.prototype.globalCompositeOperation=function(){};$e.prototype.setTransform=function(){};var XR=$e;kt();var Xc=document.createElement("canvas").getContext("2d"),ta=class r{constructor(e,t){this._label=e,this._fontSize=t,this._layout=VH(e,t)}getRect(){return this.getRectWhenCenteredAt({x:0,y:0})}getRectWhenCenteredAt(e){return{left:this._layout.left+e.x,right:this._layout.right+e.x,top:this._layout.top+e.y,bottom:this._layout.bottom+e.y}}getBoundsWhenCenteredAt(e,t){switch(t){case"x":return{lower:this._layout.left+e,upper:this._layout.right+e};case"y":return{lower:this._layout.top+e,upper:this._layout.bottom+e};default:let i=t;throw new Error(`Unknown axis: ${i}`)}}getWidth(){return this._layout.right-this._layout.left}getHeight(){return this._layout.bottom-this._layout.top}getDimensionAlongAxis(e){switch(e){case"x":return this.getWidth();case"y":return this.getHeight();default:let t=e;throw new Error(`Unknown axis: ${t}`)}}clampBoundsWithinRect(e,t){let i,o;return e.x+this._layout.left<t.left?i=t.left-this._layout.left:e.x+this._layout.right>t.right?i=t.right-this._layout.right:i=e.x,e.y+this._layout.top<t.top?o=t.top-this._layout.top:e.y+this._layout.bottom>t.bottom?o=t.bottom-this._layout.bottom:o=e.y,{x:i,y:o}}getValue(){return this._label.value}getMinusWidth(){return this.getValue()<0?(r.setCtxFontSize(Xc,this._fontSize),Xc.measureText("-1").width-Xc.measureText("1").width):0}getString(){return this._label.superscript?this._label.mantissa+"^"+this._label.superscript:this._label.string}drawCenteredAt(e,t,i){let o=t.x,n=r.computeBaselineFromCenter(t.y,this._fontSize);i&&ei(e,i),e.save(),i&&Fr(e),r.setCtxFontSize(e,this._fontSize),this._label.superscript?(e.strokeText(this._label.mantissa,this._layout.mantissa_x+o,this._layout.mantissa_y+n),e.strokeText(this._label.superscript,this._layout.superscript_x+o,this._layout.superscript_y+n),e.fillText(this._label.mantissa,this._layout.mantissa_x+o,this._layout.mantissa_y+n),e.fillText(this._label.superscript,this._layout.superscript_x+o,this._layout.superscript_y+n)):(e.strokeText(this._label.string,this._layout.mantissa_x+o,this._layout.mantissa_y+n),e.fillText(this._label.string,this._layout.mantissa_x+o,this._layout.mantissa_y+n)),e.restore()}static computeBaselineFromCenter(e,t){return e+.272*t}static setCtxFontSize(e,t){e.font=t+"px Arial",e.textAlign="center"}};function VH(r,e){if(r.superscript){let t=e;ta.setCtxFontSize(Xc,t);let i=Xc.measureText(r.mantissa).width,o=Math.round(.8*e);ta.setCtxFontSize(Xc,o);let n=Xc.measureText(r.superscript).width,a=0,s=e/5,l=i/2+n/2,c=-e/4,d=c-o/2,u=s+t/2,h=a-i/2,g=l+n/2;return{top:d,bottom:u,left:h,right:g,mantissa_height:t,mantissa_width:i,mantissa_x:a,mantissa_y:s,superscript_height:o,superscript_width:n,superscript_x:l,superscript_y:c}}else{let t=e;ta.setCtxFontSize(Xc,e);let i=Xc.measureText(r.string).width,o=0,n=0,a=n-t/2,s=n+t/2,l=o-i/2,c=o+i/2;return{top:a,bottom:s,left:l,right:c,mantissa_height:t,mantissa_width:i,mantissa_x:o,mantissa_y:n}}}function PH(r,e,t,i){let o=Math.ceil(r/t),n=Math.floor(e/t),a=1/t;if(!(o>n)&&!(n-o>1e4))for(let s=o;s<=n;s++)i(s/a)}var UI={base:10,major:[1,2,5],minor:[5,4,5]},LH={base:10,major:[Math.PI,2*Math.PI,5*Math.PI],minor:[4,4,5]},OH={base:2,major:[Math.PI/3],minor:[3]};function _H(r){return r?{base:10,major:[r,2*r,5*r],minor:[4,4,5]}:UI}function qI(r,e){let{major:t,minor:i,base:o}=e,n=1/0,a=1/0;for(let s=0;s<t.length;s++){let l=t[s],c=Math.ceil(Math.log(r/l)/Math.log(o)),d=l*Math.pow(o,c);if(d<n){n=d;let u=i[s];a=n/u}}return{major:n,minor:a}}function FH(r,e,t){return 1+(e-r)/t}function QR(r){let e=r.screen.width,t=r.screen.height,i=r.viewport.xmax-r.viewport.xmin,o=r.viewport.ymax-r.viewport.ymin,n=r.settings.pixelsPerLabel;return{majorStepX:n/e*i,majorStepY:n/t*o}}function Qc(r){let e=l=>{let[c,d,u,h,g]=l==="x"?[r.viewport.xmin,r.viewport.xmax,r.settings.xAxisStep,r.settings.xAxisNumbers,r.settings.xAxisMinorSubdivisions]:[r.viewport.ymin,r.viewport.ymax,r.settings.yAxisStep,r.settings.yAxisNumbers,r.settings.yAxisMinorSubdivisions],b=d-c,C=Math.abs(u!=null?u:NaN),S=r.settings.getPrecisionConfig(),k=0,I=0;if(C&&C!==Math.PI){let M=FH(c,d,C);if(M>=3&&M<100){let E=0;if(h){let V=0;PH(c,d,C,function(G){let P=new ta(__dcg_shared_module_exports__['Va'](G,S,b),r.settings.labelSize);V=Math.max(P.getDimensionAlongAxis(l),V)}),E=V+10}else E=g===1?8:20;let A=l==="x"?"width":"height";M*E<=r.screen[A]&&(k=C,C===3||C===5?I=1:I=C/4)}}if(!k){let M=QR(r)[l==="x"?"majorStepX":"majorStepY"],E=qI(M,__dcg_shared_module_exports__['Va'](C,S,b).string.indexOf("\u03C0")>=0?M>=1?LH:OH:_H(C));k=E.major,I=E.minor}return{majorStep:k,minorStep:I}},t=()=>{var l,c;if(Math.abs((l=r.settings.xAxisStep)!=null?l:NaN)===Math.abs((c=r.settings.yAxisStep)!=null?c:NaN)){let{xmin:h,xmax:g,ymin:b,ymax:C}=r.viewport,S=r.screen.width/(g-h),k=r.screen.height/(C-b),I=S/k,M=.01;if(I>=1-M&&I<=2){let{majorStep:E,minorStep:A}=e("y");return{x:{majorStep:E,minorStep:A},y:{majorStep:E,minorStep:A}}}if(I<=1-M&&I>=.5){let{majorStep:E,minorStep:A}=e("x");return{x:{majorStep:E,minorStep:A},y:{majorStep:E,minorStep:A}}}}return{x:e("x"),y:e("y")}},i=()=>{let{xAxisScale:l,yAxisScale:c}=r.settings,d=l==="logarithmic",u=c==="logarithmic";return!d&&!u?t():{x:d?{majorStep:NaN,minorStep:NaN}:e("x"),y:u?{majorStep:NaN,minorStep:NaN}:e("y")}},{x:o,y:n}=i(),{xAxisMinorSubdivisions:a=0,yAxisMinorSubdivisions:s=0}=r.settings;return{majorStepX:o.majorStep,minorStepX:a>0?o.majorStep/a:o.minorStep,majorStepY:n.majorStep,minorStepY:s>0?n.majorStep/s:n.minorStep}}function ZR(r){let e=QR(r),t=qI(e.majorStepX,UI),i=qI(e.majorStepY,UI),o=t.major>i.major?t:i;return{majorStepR:o.major,minorStepR:o.minor}}kt();var tr={};__dcg_shared_module_exports__['d'](tr,{ALT:()=>UH,BACKSPACE:()=>Ss,CAPSLOCK:()=>qH,CONTROL:()=>KH,DELETE:()=>Yg,DOWN:()=>wn,END:()=>Wg,ENTER:()=>qa,ESCAPE:()=>_o,HOME:()=>$g,LEFT:()=>jl,PAGEDOWN:()=>Hg,PAGEUP:()=>qg,RIGHT:()=>Jl,SHIFT:()=>Yb,SPACEBAR:()=>ep,TAB:()=>il,UP:()=>rn,default:()=>RH,isBacktick:()=>BH,isHelp:()=>zH,isRedo:()=>$b,isSelectAll:()=>NH,isSwitchPanes:()=>HI,isUndo:()=>Wb,lookup:()=>ue,lookupChar:()=>Ai});var e3=function(){{var r=function(){for(var e={8:this.BACKSPACE="Backspace",9:this.TAB="Tab",13:this.ENTER="Enter",16:this.SHIFT="Shift",17:this.CONTROL="Control",18:this.ALT="Alt",20:this.CAPSLOCK="CapsLock",27:this.ESCAPE="Esc",32:this.SPACEBAR="Space",33:this.PAGEUP="PageUp",34:this.PAGEDOWN="PageDown",35:this.END="End",36:this.HOME="Home",37:this.LEFT="Left",38:this.UP="Up",39:this.RIGHT="Right",40:this.DOWN="Down",46:this.DELETE="Del"},t={Backspace:this.BACKSPACE,Tab:this.TAB,Enter:this.ENTER,Shift:this.SHIFT,Control:this.CONTROL,Alt:this.ALT,CapsLock:this.CAPSLOCK,Escape:this.ESCAPE," ":this.SPACEBAR,PageUp:this.PAGEUP,PageDown:this.PAGEDOWN,End:this.END,Home:this.HOME,ArrowLeft:this.LEFT,ArrowUp:this.UP,ArrowRight:this.RIGHT,ArrowDown:this.DOWN,Delete:this.DELETE},i={UIKeyInputUpArrow:this.UP,UIKeyInputDownArrow:this.DOWN,UIKeyInputLeftArrow:this.LEFT,UIKeyInputRightArrow:this.RIGHT,UIKeyInputEscape:this.ESCAPE,UIKeyInputPageUp:this.PAGEUP,UIKeyInputPageDown:this.PAGEDOWN},o=["0123456789abcdefghijklmnopqrstuvwxyz","\xBA\xA1\u2122\xA3\xA2\u221E\xA7\xB6\u2022\xAA\xE5\u222B\xE7\u2202 \u0192\xA9\u02D9 \u2206\u02DA\xAC\xB5 \xF8\u03C0\u0153\xAE\xDF\u2020 \u221A\u2211\u2248\xA5\u03A9","\u201A\u2044\u20AC\u2039\u203A\uFB01\uFB02\u2021\xB0\xB7\xC5\u0131\xC7\xCE\xB4\xCF\u02DD\xD3\u02C6\xD4\uF8FF\xD2\xC2\u02DC\xD8\u220F\u0152\u2030\xCD\u02C7\xA8\u25CA\u201E\u02DB\xC1\xB8"].map(function(h){return h.split("")}),n=o[0],a=o[1],s=o[2],l={},c={},d=0;d<n.length;d++){var u=n[d];a[d]!==" "&&(l[a[d]]=u.toUpperCase()),s[d]!==" "&&(c[s[d]]=u.toUpperCase())}this.isUndo=function(h){return!h.altKey&&!h.shiftKey&&(h.ctrlKey||h.metaKey)&&(h.key=="z"||h.which==90)},this.isRedo=function(h){return!h.altKey&&(h.ctrlKey||h.metaKey)&&(h.key==="y"||h.which==89||h.shiftKey&&(h.key==="Z"||h.key==="z"||h.which===90))},this.isSelectAll=function(h){return!h.altKey&&(h.ctrlKey||h.metaKey)&&(h.key==="a"||h.key==="A"||h.which==65)},this.isBacktick=function(h){return!h.altKey&&!h.ctrlKey&&!h.metaKey&&!h.shiftKey&&(h.key==="`"||h.which==192)},this.isHelp=function(h){return!h.altKey&&(h.ctrlKey||h.metaKey)&&(h.key==="/"||h.which==191)},this.isSwitchPanes=function(h){return h.key==="F6"||h.key==="f6"||h.which===117||h.keyCode===117},this.lookup=function(h){return t[h.key]||e[h.which]||i[h.key]},this.lookupChar=function(h){if(!h.key)return String.fromCharCode(h.which);if(xi&&h.altKey){var g=h.shiftKey?c:l;if(g[h.key])return g[h.key]}if(h.key.length===1)return h.key.toUpperCase();if(h.key==="Enter")return"\r";if(h.key==="Tab")return" "}};return new r}}(),RH=e3,{isUndo:Wb,isRedo:$b,isSelectAll:NH,isBacktick:BH,isHelp:zH,isSwitchPanes:HI,BACKSPACE:Ss,TAB:il,ENTER:qa,SHIFT:Yb,CONTROL:KH,ALT:UH,CAPSLOCK:qH,ESCAPE:_o,SPACEBAR:ep,PAGEUP:qg,PAGEDOWN:Hg,END:Wg,HOME:$g,LEFT:jl,UP:rn,RIGHT:Jl,DOWN:wn,DELETE:Yg,lookup:ue,lookupChar:Ai}=e3;var HH=document.location.href.indexOf("dcgDebugTouchTracking=dcgYES")!==-1,tp,jg;window._touchtracking_id_counter==null&&(window._touchtracking_id_counter=0);window._touchtracking_id_counter+=1;var Jb="touchtracking_id_"+window._touchtracking_id_counter,Gi=function(r){jg&&(jg.value="("+Date.now()+") "+r+`
`+jg.value)};function Iu(r){if(r.classList.add("dcg-tap-container",Jb),HH){tp&&tp.remove(),tp=document.createElement("div"),Wn(tp,{position:"absolute",bottom:"10px",right:"10px"});let e=document.createElement("textarea");e.setAttribute("rows","30"),e.setAttribute("cols","40"),tp.append(e);let t=document.createElement("div");t.id="dcg-touchtracking-debug-copy",t.classList.add("dcg-btn-blue"),t.innerText="COPY LOGS",tp.append(t),jg=tp.querySelector("textarea"),r.append(tp),t.addEventListener("mousedown",function(){jg&&(jg.select(),document.execCommand("copy"))},!0),Gi("monitor touches")}}var Qg=0,Es=1,Xb=2,Jg=3,ed=4,qt=Qg,WI={},ol={},Zc=[],$I=0,jb=null,OS=null,Tu=!1,LS=null,t3=Tu,rp=function(r){if(r.type.startsWith("key")){let t=r;!t.ctrlKey&&!t.altKey&&!t.metaKey&&(Tu=!0)}else r.type.startsWith("pointer")&&(Tu=!1);let e=document.activeElement;e&&!e.closest(".dcg-tap-container."+Jb)&&(e=null),e!==LS?(LS&&LS.classList.remove("dcg-focus-visible"),e&&Tu&&e.classList.add("dcg-focus-visible")):t3!==Tu&&e&&(Tu?e.classList.add("dcg-focus-visible"):e.classList.remove("dcg-focus-visible")),t3=Tu,LS=e};document.addEventListener("keydown",rp,{capture:!0});document.addEventListener("keydown",rp);document.addEventListener("pointerdown",rp);document.addEventListener("pointerdown",rp,{capture:!0});document.addEventListener("focusin",rp,{capture:!0});document.addEventListener("focusin",rp);document.addEventListener("focusout",rp,{capture:!0});document.addEventListener("focusout",rp);var r3,Ca=[],YI=function(r){if(!(r instanceof Element))return[];let e=r.closest(".dcg-tap-container."+Jb);if(!e)return[];let t=r,i=[];for(;t;){if(i.push(t),t===e)return i;t=t.parentNode}return[]},_S=function(r,e){OS=null,qt=r,Gi("beginMode:"+qt),qt===Es?Zc=YI(e.originalEvent.touches[0].target):Zc=YI(e.target),Zc.forEach(t=>{t.classList.add("dcg-depressed"),a3(t)&&t.classList.add("dcg-focus-by-tap")}),Zc.forEach(function(t){let i=W(t);i.data({originalScrollTop:i.scrollTop(),originalScrollLeft:i.scrollLeft()})}),ol={}};function ip(r){return r.matches('input, textarea, select, [role="textbox"]')||r.classList.contains("dcg-mathquill-input-span")||r.matches("[contenteditable=true]")}var Zg=function(r){if(!(r instanceof Element))return!1;let e=r.closest(".dcg-tap-container");return e?e.matches(".dcg-tap-container."+Jb):!1},a3=function(r){return qt!==Jg&&!ip(r)&&Zg(r)},em=function(r,e){OS=null;let t=!1;Gi("endMode:"+qt),document.querySelectorAll(".dcg-depressed").forEach(o=>{o.classList.remove("dcg-depressed")});let i=document.activeElement;if(!d3(r.target)&&i&&a3(i))try{i.blur()}catch(o){}if(document.querySelectorAll(".dcg-focus-by-tap").forEach(o=>o.classList.remove("dcg-focus-by-tap")),Zc.forEach(function(o){let n=W(o),a=n.data("originalScrollTop")-n.scrollTop(),s=n.data("originalScrollLeft")-n.scrollLeft();(a||s)&&(ol.scroll=!0)}),ol["dcg-tapstart"]===1&&ol["dcg-tapend"]===1&&!ol["dcg-tapcancel"]&&!ol.scroll){Gi("potential dcg-tap");let o=e.changedTouches[0].clientX,n=e.changedTouches[0].clientY;if(r&&!r.device&&o===0&&n===0){Gi("event appears to be simulated"),t=!0,qt=Jg;let l=r.target.getBoundingClientRect();o=(l.left+l.right)/2,n=(l.top+l.bottom)/2}Gi("potential dcg-tap coords:"+o+":"+n);let a=!1,s=!1;for(let l of Zc){if(a)break;let c;if(typeof l.getBoundingClientRect=="function"&&(c=l.getBoundingClientRect()),typeof l.getAttribute=="function"&&l.getAttribute("tapboundary")==="true"&&(a=!0),!(c&&(o<c.left||n<c.top||o>c.right||n>c.bottom))){OS=l,s=!0,ra("dcg-tap",r,{target:OS,touches:e.touches,changedTouches:e.changedTouches});break}}Gi("result of dcg-tap: did_dispatch="+s+" did_escape="+a)}qt===Es||qt===ed?jb=setTimeout(function(){jb=null,$I=new Date().getTime()},1e3):t&&(jb=setTimeout(function(){jb=null,$I=new Date().getTime()},100)),Zc=[],qt=Qg},Xg=function(){return jb||new Date().getTime()-$I<500},s3=function(r){return r.identifier!==void 0?r.identifier:r.pointerId},i3=function(r){let e=[];for(let t of r)e.push({identifier:s3(t),x:t.pageX,y:t.pageY,screenX:t.screenX,screenY:t.screenY,pageX:t.pageX,pageY:t.pageY,clientX:t.clientX,clientY:t.clientY});return e},ra=function(r,e,t){let i=s3(e),o=i3(t.touches),n=i3(t.changedTouches);if(Gi("dispatchEvent:"+r),r==="dcg-tapstart")WI[i]={type:r,pageX:n[0].pageX,pageY:n[0].pageY};else if(r==="dcg-tapmove"){let c=n[0],d=WI[i];if(d&&c.pageX===d.pageX&&c.pageY===d.pageY||(qt===Es||qt===ed)&&d&&d.type==="dcg-tapstart"&&Math.abs(d.pageX-c.pageX)+Math.abs(d.pageY-c.pageY)<2)return;WI[i]={type:r,pageX:n[0].pageX,pageY:n[0].pageY}}let a=r.toLowerCase();ol[a]===void 0?ol[a]=1:ol[a]+=1;let s=W.event.fix(e.originalEvent);s.type=r,s.device=qt===Es||qt===ed?"touch":qt===Jg?"keyboard":"mouse",s.touches=o,s.changedTouches=n,s.target=t.target?t.target:e.target;let l=s.device!=="keyboard"&&ol["dcg-longhold"]>0;s.wasLongheld=function(){return l},s.preventTap=function(){ol["dcg-tapcancel"]=1},clearTimeout(r3),s.type==="dcg-tapstart"&&s.device!=="keyboard"&&s.touches.length===1&&(r3=setTimeout(function(){ra("dcg-longhold",e,t)},500)),s.target&&s.target.nodeName&&s.target.nodeName.toLowerCase()==="a"&&s.type==="dcg-tap"&&s.device==="keyboard"&&s.target.click&&s.target.click(),Gi("trigger event:"+s.type),W(s.target).trigger(s)},FS=function(r){let e=Zc,t=!!Zc.length,i=document.querySelectorAll(".dcg-tap-container."+Jb+" .dcg-hovered"),o=Array.from(i).filter(Zg),n=[],a=[],s=[];r&&YI(r).forEach(function(l){(!t||e.indexOf(l)!==-1)&&(o.indexOf(l)===-1&&s.push(l),n.push(l))});for(let l of o)n.indexOf(l)===-1&&a.push(l);a.forEach(l=>{l&&l.classList.remove("dcg-hovered"),W(l).trigger("tipsyhide")}),s.forEach(l=>{l&&l.classList.add("dcg-hovered"),W(l).trigger("tipsyshow")})},RS=function(r){for(let e of Ca)if(e.pointerId===r)return!0;return!1},jI=function(r){for(let e=0;e<Ca.length;e++)if(Ca[e].pointerId===r){Ca.splice(e,1)[0];return}},l3=function(r){qt===Qg&&_S(ed,r),FS(null),Ca.push(r.originalEvent),ra("dcg-tapstart",r,{touches:Ca,changedTouches:[r.originalEvent]})},o3=function(r){jI(r.originalEvent.pointerId);let e={touches:Ca,changedTouches:[r.originalEvent]};ra("dcg-tapcancel",r,e),Ca.length===0&&em(r,e)},n3=function(r){jI(r.originalEvent.pointerId);let e={touches:Ca,changedTouches:[r.originalEvent]};ra("dcg-tapend",r,e),Ca.length===0&&em(r,e)},NS=function(r){return r.originalEvent.pointerType==="touch"},tm=function(r,e){r.trim().split(/\s+/).forEach(function(t){let i=WH?{passive:!1}:void 0;document.addEventListener(t,function(o){Gi("document.on:"+o.type),e(W.event.fix(o))},i)})};tm("pointerdown MSPointerDown",function(r){if(!(qt===Xb||qt===Es||!NS(r))){if(RS(r.originalEvent.pointerId)){Gi("exit. pointer id already exists: "+r.originalEvent.pointerId);return}l3(r)}});tm("pointermove MSPointerMove",function(r){qt===Xb||qt===Es||!NS(r)||(RS(r.originalEvent.pointerId)||(Gi("pointer id already exists: "+r.originalEvent.pointerId),l3(r)),jI(r.originalEvent.pointerId),Ca.push(r.originalEvent),ra("dcg-tapmove",r,{touches:Ca,changedTouches:[r.originalEvent]}))});W(document).on("pointercancel MSPointerCancel",function(r){if(Gi("document.on:"+r.type),qt!==ed||!NS(r)||!RS(r.originalEvent.pointerId))return;o3(r);let e;for(;e=Ca.pop();){let t=W.Event(e,{originalEvent:e});o3(t)}});W(document).on("pointerup MSPointerUp",function(r){if(Gi("document.on:"+r.type),qt!==ed||!NS(r)||!RS(r.originalEvent.pointerId))return;n3(r);let e;for(;e=Ca.pop();){let t=W.Event(e,{originalEvent:e});n3(t)}});var WH=function(){let r=!1;try{let e=Object.defineProperty({},"passive",{get:function(){r=!0}});window.addEventListener("test",function(){},e),window.removeEventListener("test",function(){},e)}catch(e){}return r}();tm("touchstart",function(r){qt===Xb||qt===ed||(qt===Qg&&_S(Es,r),FS(null),ra("dcg-tapstart",r,{touches:r.originalEvent.touches,changedTouches:r.originalEvent.changedTouches}))});tm("touchmove",function(r){qt===Es&&ra("dcg-tapmove",r,{touches:r.originalEvent.touches,changedTouches:r.originalEvent.changedTouches})});tm("touchcancel",function(r){if(qt!==Es)return;let e={touches:r.originalEvent.touches,changedTouches:r.originalEvent.changedTouches};ra("dcg-tapcancel",r,e),r.originalEvent.touches.length===0&&em(r,e)});tm("touchend",function(r){if(qt!==Es)return;let e={touches:r.originalEvent.touches,changedTouches:r.originalEvent.changedTouches};ra("dcg-tapend",r,e),r.originalEvent.touches.length===0&&em(r,e)});function c3(){return!!(qt===Es||qt===ed||Xg())}W(document).on("mousedown",function(r){if(Gi("document.on:"+r.type),!(r.button===1||r.button===2)){if(c3()){!r.target.matches("input, textarea, select")&&Zg(r.target)&&r.preventDefault(),Gi("abort mousedown: "+qt+":"+Xg());return}_S(Xb,r),ra("dcg-tapstart",r,{touches:[r],changedTouches:[r]})}});var d3=function(r){if(!(r instanceof Element))return!1;let e=!!r.closest(".dcg-do-not-blur"),t=!!r.closest(".dcg-do-blur");return!!(e&&!t&&Zg(r))};W(document).on("mousedown",function(r){if(Gi("document.on:"+r.type),!!d3(r.target)){r.preventDefault();try{let e=window.getSelection();if(e.rangeCount===1){let t=e.getRangeAt(0);t.startContainer===t.endContainer&&t.startContainer.closest(".dcg-text-selectable")&&e.removeAllRanges()}}catch(e){}}});W(document).on("mouseleave",function(r){if(Gi("document.on:"+r.type),qt===Qg){if(Xg()){Gi("abort mouseleave: "+qt+":"+Xg());return}FS(null)}});W(document).on("mousemove",function(r){if(Gi("document.on:"+r.type),!(r.button===1||r.button===2)&&!(qt===Es||qt===ed)){if(Xg()){Gi("abort mousemove: "+qt+":"+Xg());return}FS(r.target),ra("dcg-tapmove",r,{touches:[r],changedTouches:[r]})}});W(document).on("mouseup",function(r){if(Gi("document.on:"+r.type),r.button===1||r.button===2||qt!==Xb)return;let e={touches:[],changedTouches:[r]};ra("dcg-tapend",r,e),em(r,e)});W(document).on("keydown",function(r){if(Gi("document.on:"+r.type),!(ue(r)!==qa&&ue(r)!==ep||!Zg(r.target))&&qt!==Jg){if(r.target.matches('a:not([ontap]), button:not([ontap]), input, textarea, select, [role="textbox"], [contenteditable="true"], summary'))return;r.preventDefault(),_S(Jg,r),ra("dcg-tapstart",r,{touches:[r],changedTouches:[r]})}});W(document).on("keyup",function(r){if(Gi("document.on:"+r.type),ue(r)!==qa&&ue(r)!==ep||!Zg(r.target)||qt!==Jg)return;let e={touches:[],changedTouches:[r]};ra("dcg-tapend",r,e),em(r,e)});function JI(){return qt!==Qg}var p3={monitor:Iu,isTapActive:JI,elIsFocusable:ip,shouldIgnoreMouseDown:c3};kt();function Pr(){document.activeElement&&ip(document.activeElement)&&W(document.activeElement).trigger("blur")}var $H=/`[^`]*`/g,YH=/^[\+\-]?[\d]*(\.\d+)?$/,jH=r=>{if(r!=null){let e=r.match(/`/g);return(e!=null&&e.length||0)%2==0}return!0},JH=r=>{let e=[];if(r==null||r.length==0)return e;let t=0,i;for(;i=$H.exec(r);){let n=r.slice(t,i.index);n.length>0&&e.push({from:t,to:i.index,type:"text",text:n}),t=i.index+i[0].length,e.push({from:i.index,to:t,type:"math",text:i[0].slice(1,-1)})}let o=r.slice(t);return o.length>0&&e.push({from:t,to:r.length,type:"text",text:o}),e},u3=Pl.StaticMath(document.createElement("span"));function xo(r){let e="",t=[];jH(r)?t=JH(r):t=[{from:0,to:r.length,type:"text",text:r}];for(let i of t)e+=i.type==="text"?i.text:uo(i.text);return e}function uo(r){let e="";return YH.test(r)?(/^\+/.test(r)?(e="positive ",r=r.slice(1)):/^\-/.test(r)&&(e="negative ",r=r.slice(1)),e+=r.replace(/(\.)([0-9]+)/g,(t,i,o)=>i+o.split("").join(" ").trim())):(u3.latex(r),e=u3.mathspeak().trim()),e}function cr(r,e){if(!r)return"";let{controller:t}=r;if(r.type==="expression"){let i=t.isItemSecret(r.id);switch(e){case"describe":return i?t.s("graphing-calculator-narration-describe-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-describe-expression",{index:r.displayIndex});case"delete":return i?t.s("graphing-calculator-narration-delete-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-delete-expression",{index:r.displayIndex});case"duplicate":return i?t.s("graphing-calculator-narration-duplicate-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-duplicate-expression",{index:r.displayIndex});case"show":return i?t.s("graphing-calculator-narration-show-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-show-expression",{index:r.displayIndex});case"hide":return i?t.s("graphing-calculator-narration-hide-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-hide-expression",{index:r.displayIndex});case"show-options":return i?t.s("graphing-calculator-narration-show-options-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-show-options-expression",{index:r.displayIndex});case"hide-options":return i?t.s("graphing-calculator-narration-hide-options-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-hide-options-expression",{index:r.displayIndex});case"create_table":return i?t.s("graphing-calculator-narration-create-table-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-create-table-expression",{index:r.displayIndex});case"rename":return i?t.s("graphing-calculator-narration-rename-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-rename-expression",{index:r.displayIndex});case"mute":return i?t.s("graphing-calculator-narration-mute-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-mute-expression",{index:r.displayIndex});case"unmute":return i?t.s("graphing-calculator-narration-unmute-secret-expression",{index:r.secretIndex}):t.s("graphing-calculator-narration-unmute-expression",{index:r.displayIndex})}}if(r.type==="image")switch(e){case"describe":return t.s("graphing-calculator-narration-describe-image",{index:r.displayIndex});case"delete":return t.s("graphing-calculator-narration-delete-image",{index:r.displayIndex});case"duplicate":return t.s("graphing-calculator-narration-duplicate-image",{index:r.displayIndex});case"show":return t.s("graphing-calculator-narration-show-image",{index:r.displayIndex});case"hide":return t.s("graphing-calculator-narration-hide-image",{index:r.displayIndex});case"show-options":return t.s("graphing-calculator-narration-show-options-image",{index:r.displayIndex});case"hide-options":return t.s("graphing-calculator-narration-hide-options-image",{index:r.displayIndex});case"edit_title":return t.s("graphing-calculator-narration-edit-image-title",{index:r.displayIndex})}if(r.type==="text")switch(e){case"describe":return t.s("graphing-calculator-narration-describe-text",{index:r.displayIndex});case"delete":return t.s("graphing-calculator-narration-delete-text",{index:r.displayIndex});case"duplicate":return t.s("graphing-calculator-narration-duplicate-text",{index:r.displayIndex});case"show":return t.s("graphing-calculator-narration-show-text",{index:r.displayIndex});case"hide":return t.s("graphing-calculator-narration-hide-text",{index:r.displayIndex});case"edit_title":return t.s("graphing-calculator-narration-edit-text-title",{index:r.displayIndex})}if(r.type==="table")switch(e){case"describe":return t.s("graphing-calculator-narration-describe-table",{index:r.displayIndex});case"delete":return t.s("graphing-calculator-narration-delete-table",{index:r.displayIndex});case"duplicate":return t.s("graphing-calculator-narration-duplicate-table",{index:r.displayIndex});case"show":return t.s("graphing-calculator-narration-show-table",{index:r.displayIndex});case"hide":return t.s("graphing-calculator-narration-hide-table",{index:r.displayIndex});case"rename":return t.s("graphing-calculator-narration-rename-table",{index:r.displayIndex})}if(r.type==="folder"){let i=!!r.title;switch(e){case"describe":return i?t.s("graphing-calculator-narration-describe-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-describe-folder-index",{index:r.displayIndex});case"collapse":return i?t.s("graphing-calculator-narration-collapse-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-collapse-folder-index",{index:r.displayIndex});case"expand":return i?t.s("graphing-calculator-narration-expand-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-expand-folder-index",{index:r.displayIndex});case"show":return i?t.s("graphing-calculator-narration-show-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-show-folder-index",{index:r.displayIndex});case"hide":return i?t.s("graphing-calculator-narration-hide-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-hide-folder-index",{index:r.displayIndex});case"duplicate":return i?t.s("graphing-calculator-narration-duplicate-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-duplicate-folder-index",{index:r.displayIndex});case"delete":return i?t.s("graphing-calculator-narration-delete-folder-title",{folder:r.title}):t.s("graphing-calculator-narration-delete-folder-index",{index:r.displayIndex});case"edit_title":return t.s("graphing-calculator-narration-edit-folder-title",{index:r.displayIndex})}}switch(e){case"describe":return t.s("graphing-calculator-narration-describe");case"delete":return t.s("graphing-calculator-narration-delete");case"duplicate":return t.s("graphing-calculator-narration-duplicate");case"expand":return t.s("graphing-calculator-narration-expand");case"collapse":return t.s("graphing-calculator-narration-collapse");case"show":return t.s("graphing-calculator-narration-show");case"hide":return t.s("graphing-calculator-narration-hide");case"show-options":return t.s("graphing-calculator-narration-show-options");case"hide-options":return t.s("graphing-calculator-narration-hide-options");case"create_table":return t.s("graphing-calculator-narration-create-table");case"rename":return t.s("graphing-calculator-narration-rename");case"edit_title":return t.s("graphing-calculator-narration-edit-title");case"mute":return t.s("graphing-calculator-narration-mute");case"unmute":return t.s("graphing-calculator-narration-unmute");default:return e}}function vi(r,e,t={includeDetails:!0}){var a;if(!r)return e.s("graphing-calculator-narration-geometry-nothing-selected");let i=t.description?t.description:"";if(r.type!=="expression"){if(r.type==="image"){let s=i!==""?i:cr(r,"describe"),l=t.listIndex||0,{x:c,y:d}=r.formula.dimensions;c&&d&&typeof c[l]=="number"&&typeof d[l]=="number"?i=e.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:s,x:on(e,c[l]),y:nn(e,d[l])}):i=s}}else(!r.latex||!((a=r.formula)!=null&&a.typed_constant_value))&&(i=i!==""?i:cr(r,"describe"));let o=t.poi&&t.poi.sketch.showPOI&&t.poi.type==="static-labeled-point";!i&&hs(r)?(i=XH(r,e,t),i=ZH(i,r,e,t)):t.includeDetails&&t.poi&&!o&&(i=e.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:i,x:on(e,t.poi.x),y:nn(e,t.poi.y)}));let n=i;return t.includeSelectionState&&!gg(r)&&!o&&(n=XI(n,r,e)),gg(r)&&(n=e.s("shared-calculator-narration-item-clickable",{item:n})),n}function XH(r,e,t={includeDetails:!0}){var l;let{value:i,valueType:o}=op(r,t);if(!i)return e.s("shared-calculator-narration-item-unknown");let n=[];if(__dcg_shared_module_exports__['Z'](o))n=y3(r,e,t);else switch(o){case __dcg_shared_module_exports__['p']:n=BS(r,e,t);break;case __dcg_shared_module_exports__['B']:n=h3(r,e,t);break;case __dcg_shared_module_exports__['D']:n=g3(r,e,t);break;case __dcg_shared_module_exports__['x']:n=m3(r,e,t);break;case __dcg_shared_module_exports__['F']:case __dcg_shared_module_exports__['H']:case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['P']:n=f3(r,e,t);break;case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:n=b3(r,e,t);break;default:n.push(e.s("shared-calculator-narration-item-unknown"))}let a=n.join(" "),s=(l=r.formula.geometry)==null?void 0:l.call;return s&&(a=QH(a,s,e)),a}function QH(r,e,t){let i,o=e.parents;if(e.symbol==="apply"){let n=o[0],a=n?t.getItemsByIdentifier(n[0]):[];if(n&&n[0]&&a.length===0)i=n[0];else for(let s of a){if(s.type!=="expression")continue;let l=s.formula.geometry;if(!(!l||!l.call)){i=l.call.symbol;break}}}else if(__dcg_shared_module_exports__['bc'](e.symbol))i=e.symbol;else return r;switch(i){case"coterminal":case"supplement":return r;case"dilate":return t.s("graphing-calculator-narration-geometry-dilated-item",{item:r});case"rotate":return t.s("graphing-calculator-narration-geometry-rotated-item",{item:r});case"translate":return t.s("graphing-calculator-narration-geometry-translated-item",{item:r});case"reflect":return t.s("graphing-calculator-narration-geometry-reflected-item",{item:r});default:return t.s("graphing-calculator-narration-geometry-transformed-item",{item:r})}}function ZH(r,e,t,i){var o,n;return i.listIndex!==void 0&&((n=(o=e.formula)==null?void 0:o.geometry)!=null&&n.valueType)&&__dcg_shared_module_exports__['Z'](e.formula.geometry.valueType)?t.s("graphing-calculator-narration-item-with-list-index",{listIndex:i.listIndex+1,item:r}):i.polygonEdge!==void 0?t.s("graphing-calculator-narration-geometry-edge-of-polygon",{polygonEdge:i.polygonEdge+1,item:r}):r}function XI(r,e,t){return(e&&An(e)?t.s("shared-calculator-narration-item-selected",{item:r}):t.s("shared-calculator-narration-item-unselected",{item:r})).trim()}var Ha=1;function e8(r){let e=r.formula.geometry&&r.formula.geometry.call;return!e||!e.parents?[]:e.parents.map(t=>t===void 0?"":t[0])}function Zb(r,e){return e8(r).map(t=>{let i=e.getGeoTokenInfoFromIdentifier(t);if(i)return e.getItemModel(i.calcId)})}function op(r,e={}){let t=r.formula.typed_constant_value.value,i=r.formula.typed_constant_value.valueType;return e.listIndex!==void 0&&__dcg_shared_module_exports__['Z'](i)&&(i=__dcg_shared_module_exports__['_'](i),t=t[e.listIndex]),{value:t,valueType:i}}function BS(r,e,t){var C,S;let i=t.depth?t.depth:0,o,n=[],a=(C=r.formula.geometry.call)==null?void 0:C.symbol,s=Zb(r,e),l=s[0],c=s[1],{value:d}=op(r,t),u=d[0],h=d[1],g=(S=t.poi)==null?void 0:S.ariaLabel,b=g!==void 0&&g!==""?g:r.label;switch(a){case"intersection":b?o=e.s("graphing-calculator-narration-geometry-intersection-with-assignment",{assignment:xo(b)}):o=e.s("graphing-calculator-narration-geometry-unlabeled-intersection",{index:r.id}),i<Ha&&l!==void 0&&c!==void 0?n.push(e.s("graphing-calculator-narration-geometry-intersection-of-items",{intersectionDescription:o,item1:vi(l,e,{includeDetails:!1,depth:i+1}),item2:vi(c,e,{includeDetails:!1,depth:i+1})})):n.push(o);break;case"midpoint":b?o=e.s("graphing-calculator-narration-geometry-midpoint-with-assignment",{assignment:xo(b)}):o=e.s("graphing-calculator-narration-geometry-unlabeled-midpoint",{index:r.id}),i<Ha&&l!==void 0?n.push(e.s("graphing-calculator-narration-geometry-midpoint-of-item",{midpointDescription:o,item:vi(l,e,{includeDetails:!1,depth:i+1})})):n.push(o);break;case"glider":b?o=e.s("graphing-calculator-narration-geometry-glider-with-assignment",{assignment:xo(b)}):o=e.s("graphing-calculator-narration-geometry-unlabeled-glider",{index:r.id}),i<Ha&&l!==void 0?n.push(e.s("graphing-calculator-narration-geometry-glider-on-item",{gliderDescription:o,item:vi(l,e,{includeDetails:!1,depth:i+1})})):n.push(o);break;default:b?o=e.s("graphing-calculator-narration-geometry-point-with-assignment",{assignment:xo(b)}):o=e.s("graphing-calculator-narration-geometry-unlabeled-point",{index:r.id}),t.includeDetails&&typeof u=="number"&&typeof h=="number"?n.push(e.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:o,x:on(e,u),y:nn(e,h)})):n.push(o)}return n}function h3(r,e,t){var u,h;let i=t.depth?t.depth:0,o=[],a=Zb(r,e)[0],{value:s}=op(r,t),l=s[1],c=e.get2dProjection(),d=c&&c.viewport;return i<Ha&&a!==void 0&&hs(a)&&!((h=(u=a.formula.geometry)==null?void 0:u.call)!=null&&h.symbol)&&typeof l=="number"&&d!==void 0?o.push(e.s("graphing-calculator-narration-geometry-circle-with-center-and-radius",{index:r.id,center:vi(a,e,{includeDetails:!1,depth:i+1}),radius:uo(__dcg_shared_module_exports__['Va'](l,e.getPrecisionConfig(),d.xmax-d.xmin).latex)})):o.push(e.s("graphing-calculator-narration-geometry-unlabeled-circle",{index:r.id})),o}function g3(r,e,t){let i=t.depth?t.depth:0,o=[],n=Zb(r,e),a=n[0],s=n[1],l=n[2];return i<Ha&&a!==void 0&&s!==void 0&&l!==void 0?o.push(e.s("graphing-calculator-narration-geometry-arc-through-points",{index:r.id,start:vi(a,e,{includeDetails:!1,depth:i+1}),middle:vi(s,e,{includeDetails:!1,depth:i+1}),end:vi(l,e,{includeDetails:!1,depth:i+1})})):o.push(e.s("graphing-calculator-narration-geometry-unlabeled-arc",{index:r.id})),o}function m3(r,e,t){var h,g,b,C;let i=t.depth?t.depth:0,{value:o}=op(r,t),n=o.length;if(t.polygonEdge!==void 0)if(t.polygonEdge>=0&&t.polygonEdge<o.length){let S=o[t.polygonEdge],k=o[(t.polygonEdge+1)%o.length];o=[S,k]}else return[e.s("shared-calculator-narration-item-unknown")];let a,s=[],l=(h=o[0])==null?void 0:h[0],c=(g=o[0])==null?void 0:g[1],d=(b=o[1])==null?void 0:b[0],u=(C=o[1])==null?void 0:C[1];return n===3?a=e.s("graphing-calculator-narration-geometry-unlabeled-triangle",{index:r.id}):n===4?a=e.s("graphing-calculator-narration-geometry-unlabeled-quadrilateral",{index:r.id}):a=e.s("graphing-calculator-narration-geometry-unlabeled-polygon",{index:r.id,sideCount:n}),t.polygonEdge!==void 0?t.includeDetails&&i<Ha&&typeof l=="number"&&typeof c=="number"&&typeof d=="number"&&typeof u=="number"?s.push(e.s("graphing-calculator-narration-geometry-item-at-coordinates-to-coordinates",{itemDescription:a,x1:on(e,l),y1:nn(e,c),x2:on(e,d),y2:nn(e,u)})):s.push(a):t.includeDetails&&i<Ha&&typeof l=="number"&&typeof c=="number"?s.push(e.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:a,x:on(e,l),y:nn(e,c)})):s.push(a),s}function f3(r,e,t){var g;let i=t.depth?t.depth:0,o="",n=[],a=(g=r.formula.geometry.call)==null?void 0:g.symbol,s=r.formula.geometry.listAccess,{valueType:l}=op(r,t),c=Zb(r,e),d=r.label,u=c[0],h=c[1];return a==="parallel"?i<Ha&&u!==void 0&&h!==void 0?n.push(e.s("graphing-calculator-narration-geometry-parallel-to-line-through-point",{index:r.id,line:vi(u,e,{includeDetails:!1,depth:i+1}),point:vi(h,e,{includeDetails:!1,depth:i+1})})):n.push(e.s("graphing-calculator-narration-geometry-unlabeled-parallel",{index:r.id})):a==="perpendicular"?i<Ha&&u!==void 0&&h!==void 0?n.push(e.s("graphing-calculator-narration-geometry-perpendicular-to-line-through-point",{index:r.id,line:vi(u,e,{includeDetails:!1,depth:i+1}),point:vi(h,e,{includeDetails:!1,depth:i+1})})):n.push(e.s("graphing-calculator-narration-geometry-unlabeled-perpendicular",{index:r.id})):l===__dcg_shared_module_exports__['F']?o=e.s("graphing-calculator-narration-geometry-unlabeled-line",{index:r.id}):l===__dcg_shared_module_exports__['H']?o=e.s("graphing-calculator-narration-geometry-unlabeled-ray",{index:r.id}):l===__dcg_shared_module_exports__['z']?d?o=e.s("graphing-calculator-narration-geometry-segment-with-assignment",{assignment:xo(d)}):o=e.s("graphing-calculator-narration-geometry-unlabeled-segment",{index:r.id}):l===__dcg_shared_module_exports__['P']&&(o=e.s("graphing-calculator-narration-geometry-unlabeled-vector",{index:r.id})),o!==""&&(i<Ha&&u!==void 0&&h!==void 0?n.push(e.s("graphing-calculator-narration-geometry-straight-from-item-to-item",{straightType:o,start:vi(u,e,{includeDetails:!1,depth:i+1}),end:vi(h,e,{includeDetails:!1,depth:i+1})})):i<Ha&&u!==void 0&&h===void 0&&s!==void 0?n.push(e.s("graphing-calculator-narration-geometry-straight-index-of-item",{straightType:o,index:s,item:vi(u,e,{includeDetails:!1,depth:i+1})})):n.push(o)),n}function b3(r,e,t){var g;let i=t.depth?t.depth:0,o="",n=[],{valueType:a}=op(r,t),s="",l=(g=e.getGrapher())==null?void 0:g.getGraphSketch(r.id);if(l&&"labels"in l){let b=l.labels;b.length>0&&"text"in b[0]&&(s=xo(b[0].text))}a===__dcg_shared_module_exports__['J']?s!==""?o=e.s("graphing-calculator-narration-geometry-unlabeled-angle-with-measurement",{index:r.id,measurementText:s}):o=e.s("graphing-calculator-narration-geometry-unlabeled-angle",{index:r.id}):a===__dcg_shared_module_exports__['L']&&(s!==""?o=e.s("graphing-calculator-narration-geometry-unlabeled-directed-angle-with-measurement",{index:r.id,measurementText:s}):o=e.s("graphing-calculator-narration-geometry-unlabeled-directed-angle",{index:r.id}));let c=Zb(r,e),d=c[0],u=c[1],h=c[2];return i<Ha&&d!==void 0&&u!==void 0&&h!==void 0?n.push(e.s("graphing-calculator-narration-geometry-angle-through-points",{itemDescription:o,parent1:vi(d,e,{includeDetails:!1,depth:i+1}),parent2:vi(u,e,{includeDetails:!1,depth:i+1}),parent3:vi(h,e,{includeDetails:!1,depth:i+1})})):i<Ha&&d!==void 0?n.push(e.s("graphing-calculator-narration-geometry-angle-of-polygon",{itemDescription:o,parent:vi(d,e,{includeDetails:!1,depth:i+1})})):n.push(o),n}function y3(r,e,t){let{value:i,valueType:o}=op(r,t),n=[],a=i.length;switch(__dcg_shared_module_exports__['_'](o)){case __dcg_shared_module_exports__['p']:n.push(e.s("graphing-calculator-narration-geometry-list-of-points",{count:a}));break;case __dcg_shared_module_exports__['B']:n.push(e.s("graphing-calculator-narration-geometry-list-of-circles",{count:a}));break;case __dcg_shared_module_exports__['D']:n.push(e.s("graphing-calculator-narration-geometry-list-of-arcs",{count:a}));break;case __dcg_shared_module_exports__['x']:n.push(e.s("graphing-calculator-narration-geometry-list-of-polygons",{count:a}));break;case __dcg_shared_module_exports__['F']:n.push(e.s("graphing-calculator-narration-geometry-list-of-lines",{count:a}));break;case __dcg_shared_module_exports__['H']:n.push(e.s("graphing-calculator-narration-geometry-list-of-rays",{count:a}));break;case __dcg_shared_module_exports__['z']:n.push(e.s("graphing-calculator-narration-geometry-list-of-segments",{count:a}));break;case __dcg_shared_module_exports__['J']:n.push(e.s("graphing-calculator-narration-geometry-list-of-angles",{count:a}));break;case __dcg_shared_module_exports__['L']:n.push(e.s("graphing-calculator-narration-geometry-list-of-directed-angles",{count:a}));break;default:n.push(e.s("graphing-calculator-narration-geometry-list-of-any",{count:a}));break}return n[0]=`${n[0]}.`,n}var Ut=__dcg_shared_module_exports__['e']($());var t8=1,rd=class{constructor(e,t,i,o,n,a,s){this.x=e,this.y=t,this.type=i,this.sketch=o,this.branch=n,this.pointIdxOnBranch=a,this.bareLabel=s===void 0?!1:s,this.id=t8++}getLabel(){let e=this.sketch&&this.sketch.branches[this.branch];return e&&"labels"in e&&e.labels&&e.labels[this.pointIdxOnBranch]||""}getGraphMode(){return this.sketch.branches[this.branch].graphMode}getCompiledFunction(){let e=this.sketch.branches[this.branch];if(!(!("compiled"in e)||!e.compiled))return e.compiled.fn}isAttachedToPlottedPoint(){return this.type===1006||this.type===1008}isMovable(){return this.getGraphMode()===4}isPersistent(){return this.type===1008}getLabelSize(){let e=this.sketch&&this.sketch.branches[this.branch];return this.type===1008&&e&&"labelSize"in e?e.labelSize===void 0?1:e.labelSize:1}getLabelRotation(){let e=this.sketch&&this.sketch.branches[this.branch];return this.type===1008&&e&&"labelAngle"in e?e.labelAngle===void 0?0:e.labelAngle:0}getPointOpacity(){let e=this.sketch&&this.sketch.branches[this.branch];if(e&&"pointOpacity"in e){let t=e.pointOpacity;if(t!==void 0){let i;return Array.isArray(t)?i=t[this.pointIdxOnBranch]:i=t,isFinite(i)?Math.max(0,Math.min(1,i)):1}}return 1}getPointSize(){let e=this.sketch&&this.sketch.branches[this.branch];if(e&&"pointSize"in e){let t=e.pointSize;if(t!==void 0){let i;Array.isArray(t)?i=t[this.pointIdxOnBranch]:i=t;let o=isFinite(i)?Math.max(0,i):8;return this.isMovable()?__dcg_shared_module_exports__['kd'](o):o}}return this.isMovable()?__dcg_shared_module_exports__['ld'](8):8}getTextOutline(){if(this.hasEditableLabel())return!1;let e=this.sketch&&this.sketch.branches[this.branch];return this.type===1008&&e&&"suppressTextOutline"in e?!e.suppressTextOutline:!0}hasInteractiveLabel(){let e=this.sketch&&this.sketch.branches[this.branch];return e&&"interactiveLabel"in e?!!e.interactiveLabel:!1}hasEditableLabel(){let e=this.sketch&&this.sketch.branches[this.branch];return e&&"editableLabel"in e?!!e.editableLabel:!1}isBareLabel(){return this.bareLabel}getMovablePoint(){return this.sketch.getMovablePointByIndex(this.pointIdxOnBranch)}isSelected(){return this.sketch.showHighlight}};function zS(r,e,t){return Math.max(e,Math.min(t,r))}var rm=class{constructor(e){let t=e.data,i=e.width,o=e.height;this.imageData=e;for(let l=1;l<i;l++)t[l]+=t[l-1];for(let l=1;l<o;l++)t[l*i]+=t[l*i-i];let n=i*o-i-o+1,a=i-1;for(var s=0;s<n;s++){let l=1+s%a,d=(1+Math.floor(s/a))*i,u=l-1+d,h=l+d-i,g=l-1+d-i;t[d+l]+=t[u]+t[h]-t[g]}}getSumForValidRect(e){let t=e.left-1,i=e.right-1,o=e.top-1,n=e.bottom-1,a=this.imageData.width,s=this.imageData.data,l=s[t+o*a],c=s[i+o*a],d=s[t+n*a],u=s[i+n*a];return t>=0&&o>=0?u-c-d+l:t>=0?u-d:o>=0?u-c:u}getSum(e){let t={left:zS(Math.floor(e.left),0,this.imageData.width),right:zS(Math.ceil(e.right),0,this.imageData.width),top:zS(Math.floor(e.top),0,this.imageData.height),bottom:zS(Math.ceil(e.bottom),0,this.imageData.height)};return t.left>=t.right||t.top>=t.bottom?0:this.getSumForValidRect(t)}};var ap=1/2,np=document.createElement("canvas"),ZI=[];function r8(r,e){if(!(e.width*e.height>0))return new rm({width:0,height:0,data:[]});np.width=0,np.width=Math.round(e.width*ap),np.height=Math.round(e.height*ap);let i=np.getContext("2d");i.save(),i.scale(np.width/r.canvas.width,np.height/r.canvas.height),i.drawImage(r.canvas,0,0),i.restore();var o=i.getImageData(0,0,np.width,np.height),n=o.data;n.length/4,ZI.length,ZI=new Array(n.length/4);for(var a=ZI,s=0;s<a.length;s++)a[s]=n[s*4+3];var l=new rm({width:o.width,height:o.height,data:a});return l}function x3(r){for(var e=0;e<r.length;e++){var t=i8(e,r);r[e]=[t]}return r.map(function(i){return i[0]})}function i8(r,e){var t=1/0,i=-1,o=e[r];if(o.length===1)return o[0];for(var n=0;n<o.length;n++){var a=e[r][n].staticScore,s=o8(r,n,e),l=a+s;(i===-1||l<t)&&(t=l,i=n)}return o[i]}function o8(r,e,t){for(var i=0,o=t[r][e],n=0;n<t.length;n++)if(n!==r){for(var a=0,s=t[n],l=s.length-1;l>=0;l--){var c=s[l],d=Math.max(0,Math.min(o.right,c.right)-Math.max(o.left,c.left)),u=Math.max(0,Math.min(o.bottom,c.bottom)-Math.max(o.top,c.top));a+=d*u}i+=a/s.length}return i}function n8(r,e){var t=e.getSum({left:r.left*ap,right:r.right*ap,top:r.top*ap,bottom:r.bottom*ap});return t/=200,t/=ap*ap,t}function a8(r,e){var t=0;return e.forEach(function(i){t+=w3(r,i)}),t}function s8(r,e){var t=w3(r,e);return 10*(r.width*r.height-t)}function w3(r,e){var t=Math.max(0,Math.min(r.right,e.right)-Math.max(r.left,e.left)),i=Math.max(0,Math.min(r.bottom,e.bottom)-Math.max(r.top,e.top));return t*i}function v3(r,e,t){let i;return()=>(i||(i={domObstructions:t,viewport:{left:0,right:e.width,top:0,bottom:e.height},integralImage:r8(r,e)}),i)}function KS(r,e){if(!(e.length<=1)){var t=r();for(var i of e)i.staticScore+=s8(i,t.viewport),i.staticScore+=a8(i,t.domObstructions),i.staticScore+=n8(i,t.integralImage)}}function C3(r,e){var t=e.nakedLabel?0:e.pt_radius,i=Math.round(t/Math.sqrt(2)),o=[],n=e.pt_x,a=e.pt_y,s=e.width,l=e.height,c=400;o.push({cx_s:0,cy_s:0,cx_a:0,cy_a:0,staticScore:c,orientation:"center",matches:{default:1,center:1,center_auto:1,auto_center:1}}),o.push({cx_s:.5,cx_a:t+3,cy_s:0,cy_a:0,staticScore:c,orientation:"right",matches:{default:1,right:1,center_auto:1,auto_right:1}}),o.push({cx_s:-.5,cx_a:-t-3,cy_s:0,cy_a:0,staticScore:c,orientation:"left",matches:{default:1,left:1,center_auto:1,auto_left:1}}),o.push({cx_s:0,cx_a:0,cy_s:-.5,cy_a:-t,staticScore:c,orientation:"above",matches:{default:1,above:1,auto_center:1,above_auto:1}}),o.push({cx_s:-.5,cx_a:-i,cy_s:-.5,cy_a:-i,staticScore:c,orientation:"tl",matches:{default:1,above_left:1,above_auto:1,auto_left:1}}),o.push({cx_s:.5,cx_a:i,cy_s:-.5,cy_a:-i,staticScore:c,orientation:"tr",matches:{default:1,above_right:1,above_auto:1,auto_right:1}}),o.push({cx_s:0,cx_a:0,cy_s:.5,cy_a:t,staticScore:c,orientation:"below",matches:{default:1,below:1,auto_center:1,below_auto:1}}),o.push({cx_s:-.5,cx_a:-i,cy_s:.5,cy_a:i,staticScore:c,orientation:"bl",matches:{default:1,below_left:1,below_auto:1,auto_left:1}}),o.push({cx_s:.5,cx_a:i,cy_s:.5,cy_a:i,staticScore:c,orientation:"br",matches:{default:1,below_right:1,below_auto:1,auto_right:1}});var d=Math.cos(e.rotation),u=Math.sin(e.rotation),h=o.map(function(g){var b=g.cx_s*s+g.cx_a,C=g.cy_s*l+g.cy_a;let S=b*d-C*u,k=C*d+b*u,I=`calc(${g.cx_s*100-50}% + ${g.cx_a}px)`,M=`calc(${g.cy_s*100-50}% + ${g.cy_a}px)`,E=-s/2,A=s/2,V=-l/2,G=l/2;if(e.rotation){let P=l8([{x:E*d-V*u,y:V*d+E*u},{x:E*d-G*u,y:G*d+E*u},{x:A*d-V*u,y:V*d+A*u},{x:A*d-G*u,y:G*d+A*u}]);E=P.left,A=P.right,V=P.top,G=P.bottom}return E=Math.round(n+S+E),A=Math.round(n+S+A),V=Math.round(a+k+V),G=Math.round(a+k+G),{pt_x:Math.round(n),pt_y:Math.round(a),left:E,right:A,top:V,bottom:G,width:A-E,height:G-V,transform:`translate(${I},${M})`,staticScore:e.priorOrientation===g.orientation?g.staticScore-20:g.staticScore,orientation:g.orientation,matches:g.matches}});return e.enforceOrientation&&e.enforceOrientation!=="default"?h=__dcg_shared_module_exports__['ta'](h,function(g){return!!g.matches[e.enforceOrientation]}):e.nakedLabel?h=__dcg_shared_module_exports__['ta'](h,function(g){return g.orientation==="center"}):e.keepOrientation&&e.priorOrientation?h=__dcg_shared_module_exports__['ta'](h,function(g){return g.orientation===e.priorOrientation}):h=__dcg_shared_module_exports__['ta'](h,function(g){return g.orientation!=="center"}),KS(r,h),h}function S3(r,e){var t=[],i=e.width,o=e.height,n=i/2,a=o/2,s=e.pt_x1,l=e.pt_y1,c=e.pt_x2,d=e.pt_y2,u=5,h=(d-l)/(c-s),g=Math.atan2(d-l,c-s)+Math.PI/2,b=u*Math.cos(g),C=u*Math.sin(g),S=Math.min(l,d)-Math.abs(C)-o,k=Math.max(l,d)+Math.abs(C),I=[.5,.4,.6,.2,.8],M=[0,20,20,40,40],E=[];for(let R of I)E.push({x:s*(1-R)+c*R,y:l*(1-R)+d*R});for(let R=0;R<E.length;R++){let q=E[R];var A,V,G,P;if(h>=2||h<=-2){G=P=q.y-a;let K=Math.abs((c-s)/(d-l)*a)+Math.abs(b);A=q.x+K,V=q.x-K-i}else if(h<=.05&&h>=-.05){A=V=q.x-n;let K=Math.abs(h*n)+Math.abs(C);G=q.y-K-o,P=q.y+K}else b>0?(A=q.x+b,V=q.x-b-i):(A=q.x+b-i,V=q.x-b),C>0?(G=q.y+C,P=q.y-C-o):(G=q.y+C-o,P=q.y-C);G<S?G=S:G>k&&(G=k),P<S?P=S:P>k&&(P=k);let J=(c-s)*(G-l)-(d-l)*(A-s)>0,U=R.toString()+(J?"-a":"-b");t.push({pt_x:q.x,pt_y:q.y,left:A,top:G,staticScore:M[R],orientation:U,matches:{[U]:1}});let z=R.toString()+(J?"-b":"-a");t.push({pt_x:q.x,pt_y:q.y,left:V,top:P,staticScore:M[R],orientation:z,matches:{[z]:1}})}var O=t.map(function(R){let q=Math.round(R.left),J=Math.round(R.left+i),U=Math.round(R.top),z=Math.round(R.top+o);return{pt_x:Math.round(R.pt_x),pt_y:Math.round(R.pt_y),transform:`translate(${R.left-R.pt_x}px,${R.top-R.pt_y}px)`,left:q,right:J,top:U,bottom:z,width:J-q,height:z-U,staticScore:e.priorOrientation===R.orientation?R.staticScore-20:R.staticScore,orientation:R.orientation,matches:R.matches}});return e.keepOrientation&&e.priorOrientation&&(O=__dcg_shared_module_exports__['ta'](O,function(R){return R.orientation===e.priorOrientation})),KS(r,O),O}function E3(r,e){var t=[],i=e.pt_x,o=e.pt_y,n=e.width,a=e.height;let s=-(e.startAngle+e.deltaAngle/2),l=e.isRightAngle?e.radius*Math.sqrt(2)-1:e.radius+4,c=l+Math.sqrt(e.width*e.width/4+e.height*e.height/4),d=[],u=c*Math.sin(s);u>l+1/2*a&&(u=l+1/2*a),u<-l-1/2*a&&(u=-l-1/2*a),d.push({x:i+c*Math.cos(s)-n/2,y:o+u-a/2});for(let g=0;g<d.length;g++){let b=d[g],C=g.toString()+"-a";t.push({pt_x:b.x,pt_y:b.y,left:b.x,top:b.y,staticScore:0,orientation:C,matches:{[C]:1}})}var h=t.map(function(g){let b=Math.round(g.left),C=Math.round(g.left+n),S=Math.round(g.top),k=Math.round(g.top+a);return{pt_x:Math.round(g.pt_x),pt_y:Math.round(g.pt_y),transform:`translate(${g.left-g.pt_x}px,${g.top-g.pt_y}px)`,left:b,right:C,top:S,bottom:k,width:C-b,height:k-S,staticScore:e.priorOrientation===g.orientation?g.staticScore-20:g.staticScore,orientation:g.orientation,matches:g.matches}});return e.keepOrientation&&e.priorOrientation&&(h=__dcg_shared_module_exports__['ta'](h,function(g){return g.orientation===e.priorOrientation})),KS(r,h),h}function D3(r,e){for(var t=[],i=e.width,o=e.height,n=10,a=Math.round(n/Math.sqrt(2)),s=0,l=50,c=0,d=0,u=0,h=0;h<e.path.length-2;h+=2)u+=1,c+=e.path[h],d+=e.path[h+1];var g=c/u,b=d/u;t.push({left:g-i/2,top:b-o/2,staticScore:s,orientation:"center",matches:{center:1}}),t.push({left:g+n+3,top:b-o/2,staticScore:l,orientation:"right",matches:{right:1}}),t.push({left:g-(n+i)-3,top:b-o/2,staticScore:l,orientation:"left",matches:{left:1}}),t.push({left:g-i/2,top:b-(o+n),staticScore:l,orientation:"top",matches:{top:1}}),t.push({left:g-(i+a),top:b-(o+a),staticScore:l,orientation:"tl",matches:{tl:1}}),t.push({left:g+a,top:b-(o+a),staticScore:l,orientation:"tr",matches:{tr:1}}),t.push({left:g-i/2,top:b+n,staticScore:l,orientation:"bottom",matches:{bottom:1}}),t.push({left:g-(i+a),top:b+a,staticScore:l,orientation:"bl",matches:{bl:1}}),t.push({left:g+a,top:b+a,staticScore:l,orientation:"br",matches:{br:1}});var C=t.map(function(S){let k=Math.round(S.left),I=Math.round(S.left+i),M=Math.round(S.top),E=Math.round(S.top+o);return{pt_x:Math.round(g),pt_y:Math.round(b),transform:`translate(${S.left-g}px,${S.top-b}px)`,left:k,right:I,top:M,bottom:E,width:I-k,height:E-M,staticScore:e.priorOrientation===S.orientation?S.staticScore-20:S.staticScore,orientation:S.orientation,matches:S.matches}});return e.keepOrientation&&e.priorOrientation&&(C=__dcg_shared_module_exports__['ta'](C,function(S){return S.orientation===e.priorOrientation})),KS(r,C),C}function l8(r){let e=r[0].x,t=r[0].x,i=r[0].y,o=r[0].y;for(var n=r.length-1;n>=1;n--){let{x:a,y:s}=r[n];a<e&&(e=a),a>t&&(t=a),s<i&&(i=s),s>o&&(o=s)}return{left:e,right:t,top:i,bottom:o}}var qS=__dcg_shared_module_exports__['e']($());var k3=__dcg_shared_module_exports__['e']($());var Fo=__dcg_shared_module_exports__['e']($());function Fe(r){return{shouldBeFocused:()=>Au(r),onFocusedChanged:e=>{eM(r,e)}}}function Au(r){let e=r.predicate;if(e&&!e())return!1;let t=r.controller.getFocusLocation();return t&&__dcg_shared_module_exports__['Oa'](t,r.location)}function eM(r,e){let t=r.predicate;t&&!t()||(e?r.controller.dispatch({type:"set-focus-location",location:r.location}):r.controller.dispatch({type:"blur-focus-location",location:r.location}))}var{If:US}=Fo.Components,Xl=class extends Fo.Class{init(){this.controller=this.props.controller()}template(){return Fo.createElement("span",{class:()=>{var t,i;let e=this.parentOrChildHovered();return{"dcg-geo-token-view":!0,"dcg-static-token":(i=(t=this.props).isStatic)==null?void 0:i.call(t),"dcg-selected-token":this.isTokenSelected(),"dcg-hidden-token":this.isHidden(),"dcg-token-has-label":this.hasLabel(),"dcg-child-of-hovered-token":e==="child","dcg-parent-of-hovered-token":e==="parent","dcg-assignment-token":!!this.getAssignment(),"dcg-graph-interactions-disabled":this.isGraphInteractionDisabled()}},style:()=>({color:this.getColor()}),role:this.bindFn(this.getAriaRole),"dcg-token-type":()=>this.getTokenInfo().iconType,"aria-roledescription":()=>this.props.insideGroup()?void 0:this.controller.s("graphing-calculator-narration-geometry-construction-role-description"),"aria-label":this.bindFn(this.getAriaLabel),"aria-selected":this.bindFn(this.isTokenSelected),tabindex:()=>this.props.putInTabOrder()?0:-1,manageFocus:()=>this.props.focusLocation?Fe({controller:this.controller,location:this.props.focusLocation()}):void 0,onTapStart:this.bindFn(this.onTapStart),onTap:this.bindFn(this.onTap),onPointerOver:this.bindFn(this.onPointerOver),onPointerOut:this.bindFn(this.onPointerOut)},Fo.createElement("span",{class:Fo.const("dcg-token-background")}),Fo.createElement("span",{class:()=>({"dcg-token-icon":!0,[this.getAdditionalTokenClass()]:this.getAdditionalTokenClass(),"dcg-token-is-list":this.getIsList()&&!this.getAssignment()}),style:()=>({"--dcg-icon-angle":this.getIconAngle()})},Fo.createElement(US,{predicate:()=>!!this.getIcon()},()=>Fo.createElement("i",{class:this.bindFn(this.getIcon)}))),Fo.createElement(US,{predicate:()=>!!this.getAssignment()},()=>Fo.createElement(ke,{latex:this.bindFn(this.getAssignment),config:this.const({})})),Fo.createElement(US,{predicate:()=>this.hasLabel()},()=>Fo.createElement("span",{class:()=>({"dcg-token-label":!0})},()=>this.getLabel())),Fo.createElement(US,{predicate:this.bindFn(this.isGraphInteractionDisabled)},()=>Fo.createElement("i",{class:Fo.const("dcg-icon-lock")})))}getIconAngle(){let e=this.controller.getItemsByIdentifier(this.props.identifier());if(!e||e.length!==1)return;let t=e[0];if(!t||!t.formula||!t.formula.typed_constant_value)return;let i;switch(this.getIconType()){case"vector":case"translate":if(t.formula.typed_constant_value.valueType!==__dcg_shared_module_exports__['P'])return;let[o,n]=t.formula.typed_constant_value.value[0];i=__dcg_shared_module_exports__['ha'](o,n);break;case"segment":{if(t.formula.typed_constant_value.valueType!==__dcg_shared_module_exports__['z'])return;let[[a,s],[l,c]]=t.formula.typed_constant_value.value;i=__dcg_shared_module_exports__['ha'](l-a,c-s);break}case"line":{if(t.formula.typed_constant_value.valueType!==__dcg_shared_module_exports__['F'])return;let[[a,s],[l,c]]=t.formula.typed_constant_value.value;i=__dcg_shared_module_exports__['ha'](l-a,c-s);break}case"ray":{if(t.formula.typed_constant_value.valueType!==__dcg_shared_module_exports__['H'])return;let[[a,s],[l,c]]=t.formula.typed_constant_value.value;i=__dcg_shared_module_exports__['ha'](l-a,c-s);break}}return i!==void 0?`${-Number(i).toFixed(2)}rad`:void 0}getAdditionalTokenClass(){if(this.getAssignment()||this.hasError())return"";switch(this.getIconType()){case"glider":return"dcg-token-glider";case"line":return"dcg-token-line";case"segment":return"dcg-token-segment";case"ray":return"dcg-token-ray";case"intersection":return"dcg-token-intersection";case"midpoint":return"dcg-token-midpoint";case"parallel":return"dcg-token-parallel";case"perpendicular":return"dcg-token-perpendicular";case"rotate":return"dcg-token-rotate";case"circle":return"dcg-token-circle";case"arc":return"dcg-token-arc";case"vector":return"dcg-token-vector";case"dilate":return"dcg-token-dilate";case"reflect":return"dcg-token-reflect";case"translate":return"dcg-token-translate";case"transformation":return"dcg-token-transformation";case"point":case"start":case"end":return"dcg-token-point";case"polygon":return"dcg-token-polygon";case"angle":return"dcg-token-angle";case"angles":return"dcg-token-angles";case"directedangle":case"directedangles":return"dcg-token-directedangle"}return""}getIdFromParentRef(e){if(e)return this.controller.getExpressionIdForIdentifier(e[0])}isGraphInteractionDisabled(){let e=this.props.controller().getExpressionIdForIdentifier(this.props.identifier())||"",t=this.controller.getItemModel(e);return!!t&&(t.type==="expression"||t.type==="image")&&!!t.disableGraphInteractions}parentOrChildHovered(){var c,d,u,h,g,b;if(!this.props.showParentChildrenHover||!this.props.showParentChildrenHover())return!1;let e=this.controller.getHoveredOrFocusedTokenIdentifier(),t=this.controller.getExpressionIdForIdentifier(e),i=this.props.identifier(),o=this.props.controller().getExpressionIdForIdentifier(i)||"";if(!t)return!1;let n=this.controller.getItemModel(t),a=this.controller.getItemModel(o);if(!n||n.type!=="expression"||!a||a.type!=="expression")return!1;let s=((u=(d=(c=n.formula)==null?void 0:c.geometry)==null?void 0:d.call)==null?void 0:u.parents)||[],l=((b=(g=(h=a.formula)==null?void 0:h.geometry)==null?void 0:g.call)==null?void 0:b.parents)||[];for(let C=0;C<s.length;C++)if(this.getIdFromParentRef(s[C])===o)return"parent";for(let C=0;C<l.length;C++)if(this.getIdFromParentRef(l[C])===t)return"child";return!1}willUnmount(){this.implicitMouseOut()}didUpdate(){let e=this.props.identifier();this.currentlyActiveIdentifier&&e!==this.currentlyActiveIdentifier&&this.implicitMouseOut()}implicitMouseOut(){this.currentlyActiveIdentifier&&this.controller.runAfterDispatch(()=>{let e=this.currentlyActiveIdentifier;e&&(this.currentlyActiveIdentifier=void 0,this.controller.dispatch({type:"unset-active-token",identifier:e,style:"hovered"}))})}isHidden(){return this.getTokenInfo().isHidden}hasError(){let e=this.getTokenInfo();return!e||e.hasError}getIcon(){if(this.getAssignment())return;let e=this.getTokenInfo();if(this.hasError())return"dcg-icon-error";switch(e.iconType){case"point":case"glider":case"intersection":case"strictintersection":case"midpoint":case"start":case"end":return"dcg-icon-point";case"translate":case"vector":return"dcg-icon-vector";case"dilate":return"dcg-icon-dilation";case"rotate":return"dcg-icon-rotation";case"reflect":return"dcg-icon-reflection";case"transformation":return"dcg-icon-title";case"angle":case"angles":case"directedangle":case"directedangles":return"dcg-icon-angle";case"polygon":return"dcg-icon-polygon-solid";case"apply":case"arc":case"circle":case"clockwise":case"counterclockwise":case"error":case"line":case"parallel":case"perpendicular":case"ray":case"reflex":case"segment":case"segments":case"unknown":case"vertices":return;default:return e.iconType}}hasLabel(){return!!this.getLabel()}getLabel(){if(this.getAssignment())return"";let e=this.getTokenInfo().label.trim();return e.length<=2?e:""}getAssignment(){let e=this.props.identifier();return e[0]!=="$"?__dcg_shared_module_exports__['bb'](e):""}getAriaLabel(){let e=this.getTokenInfo(),t=vi(this.controller.getItemModel(e==null?void 0:e.calcId),this.controller,{includeDetails:!1,depth:1});return this.isHidden()?this.controller.s("graphing-calculator-narration-geometry-hidden-construction-description",{description:t}):t}isTransformation(){var e;return((e=this.getTokenInfo())==null?void 0:e.groupType)==="transformation"}getColor(){if(this.getAssignment())return;let e=this.getTokenInfo();return this.hasError()?"#fa824c":this.isTransformation()||this.isHidden()?"#aaa":e.color}getIconType(){return this.getTokenInfo().iconType}getIsList(){return this.getTokenInfo().isList}getTokenInfo(){let e=this.props.identifier();return this.controller.getTokenRenderInfoByIdentifier(e)}onPointerOver(e){var t,i;(i=(t=this.props).isStatic)!=null&&i.call(t)||e.pointerType==="mouse"&&(this.currentlyActiveIdentifier=this.props.identifier(),this.controller.dispatch({type:"set-active-token",identifier:this.currentlyActiveIdentifier,style:"hovered"}))}onPointerOut(e){var t,i;(i=(t=this.props).isStatic)!=null&&i.call(t)||e.pointerType==="mouse"&&this.currentlyActiveIdentifier&&(this.controller.dispatch({type:"unset-active-token",identifier:this.currentlyActiveIdentifier,style:"hovered"}),this.currentlyActiveIdentifier=void 0)}onTapStart(e){var t,i;(i=(t=this.props).isStatic)!=null&&i.call(t)||e.handle()}onTap(e){var t,i;(i=(t=this.props).isStatic)!=null&&i.call(t)||(e.handle(),this.props.focusLocation&&this.controller.dispatch({type:"set-focus-location",location:this.props.focusLocation()}),this.controller.dispatch({type:"select-expression-that-defines-token",identifier:this.props.identifier(),toggle:this.isTokenSelected(),multiSelectMode:this.controller.isMultiSelectEnabled()&&!!e.shiftKey}))}isTokenSelected(){let e=this.getTokenInfo();return!!(e&&e.isSelected)}getAriaRole(){var e,t;if(!((t=(e=this.props).isStatic)!=null&&t.call(e)))return this.props.insideGroup()?"option":"button"}};var im=r=>{let e=function(){return r};return e.isDcgViewConst=!0,e},om=class{constructor(e,t,i){this.tokenController=e,this.mathNode=t,this.isStatic=i}updateTokens(e){if(!this.mathNode)return;if(!this.lastTokenInfo||this.lastTokenInfo.latex!==e)if(!this.tokenController.doesLatexContainToken(e))this.lastTokenInfo={latex:e,tokens:[]};else{let i=[];this.mathNode.querySelectorAll(".dcg-mq-token").forEach(o=>{i.push(o)}),this.lastTokenInfo={latex:e,tokens:i}}let t=this.lastTokenInfo.tokens;for(let i of t){let o=i.dcgTokenView;if(o)o.update();else{let n=i.getAttribute("data-dcg-mq-token")||"",a=k3.mountToNode(Xl,i,{controller:im(this.tokenController),identifier:im("$"+n),insideMQ:im(!0),insideGroup:im(!1),putInTabOrder:im(!1),isStatic:im(this.isStatic)});i.dcgTokenView=a}}}};var ke=class extends qS.Class{template(){return this.children.length===1?this.children[0]:qS.createElement("div",{onMount:e=>this.onMountMathquill(e)})}onMount(){this.children.length===1&&this.onMountMathquill(this.findRootNode())}onMountMathquill(e){this.props.tokenController&&(this.mathquillTokenHelper=new om(this.props.tokenController(),e,!0)),this.staticMath=Pl.StaticMath(e,{...this.props.config()}),e.classList.add("dcg-static-mathquill-view"),this.updateMathquill()}didUpdate(){this.updateMathquill()}updateMathquill(){var e;this.updateMathquillAria(),this.updateMathquillLatex(),(e=this.mathquillTokenHelper)==null||e.updateTokens(this.props.latex())}updateMathquillLatex(){if(!this.staticMath)return;let e=this.props.latex();this.lastLatex!==e&&(this.staticMath.latex(e),this.lastLatex=e,this.props.onReflow&&this.props.onReflow())}updateMathquillAria(){if(!this.staticMath||!this.props.getAriaLabel)return;let e=this.props.getAriaLabel();e!==this.staticMath.getAriaLabel()&&this.staticMath.setAriaLabel(e)}};kt();var Xae=function(){{var r="_*_";W.Event.prototype.wasHandled=function(e){e=e||r;var t=this.originalEvent,i=t&&t.handledBy;if(i&&i[e])return!0;if(e!==r)return!1;var o=this.target.closest("[handleEvent]");return o&&o!==this.currentTarget?o.getAttribute("handleEvent")!=="false":!1},W.Event.prototype.handle=function(e){e=e||r;var t=this.originalEvent;if(t){var i=t.handledBy;i||(i=t.handledBy={}),i[e]=!0}}}}();var Wa=__dcg_shared_module_exports__['e']($());kt();function nm(r){let e=__dcg_shared_module_exports__['cc'](r),t=0;for(;!__dcg_shared_module_exports__['ec'](e);)t+=1,e=__dcg_shared_module_exports__['dc'](e);return t}var{If:d8}=Wa.Components,am=500,p8=30,ve=class r extends Wa.Class{constructor(){super(...arguments),this.lastLatexProp="",this.wasFocusedLastUpdate=!1}template(){return Wa.createElement("div",{class:Wa.const("dcg-mq-container")},Wa.createElement(d8,{predicate:()=>this.getPlaceholder().trim().length>0},()=>Wa.createElement("span",{class:Wa.const("dcg-mq-placeholder")},Wa.createElement(ke,{config:()=>this.props.config(),latex:()=>this.getPlaceholder()}))),Wa.createElement("div",{class:()=>({"dcg-math-field":!0,"dcg-no-fadeout":this.props.noFadeout&&this.props.noFadeout(),"dcg-invalid":this.props.hasError(),"dcg-focus":this.props.isFocused()}),didMount:e=>this.didMountMathquill(e),"data-dcg-label":()=>this.props.dataLabelAttributeValue?this.props.dataLabelAttributeValue():void 0}))}didMount(){this.children.length===1&&this.didMountMathquill(this.findRootNode())}willUnmount(){this.$mathField.off(".view"),this.mathField=void 0}getPlaceholder(){return!this.props.placeholder||this.props.isFocused()||this.props.latex()?"":this.props.placeholder()}didMountMathquill(e){this.cachedConfig=this.getCacheableMQConfig();let t={...this.cachedConfig,restrictMismatchedBrackets:"none",handlers:{reflow:o=>{this.props.onReflow&&this.mathField&&this.props.onReflow(o)}},onCut:()=>{this.mathField&&this.props.onUserChangedLatex(this.mathField.latex())},onPaste:()=>{this.mathField&&this.props.onUserChangedLatex(this.mathField.latex())},overrideTypedText:o=>{this.mathField&&this.viewCanAcceptText(o)&&(this.props.onUserTypedText?this.props.onUserTypedText(o):(this.mathField.typedText(o),this.props.onUserChangedLatex(this.mathField.latex())))},overrideKeystroke:(o,n)=>{if(o==="Backspace"&&n.preventDefault(),!this.mathField)return;if(o==="Spacebar"&&this.props.disableSpace&&this.props.disableSpace())return n.preventDefault();let a=ue(n);if(a==="Up"||a==="Down"||a==="Left"||a==="Right"||a==="Esc"){let s=[];n.ctrlKey&&s.push("Ctrl"),n.metaKey&&s.push("Meta"),n.altKey&&s.push("Alt"),n.shiftKey&&s.push("Shift"),s.length?(s.push(a),o=s.join("-")):o=a}this.props.onUserPressedKey?this.props.onUserPressedKey(o,n):(this.mathField.keystroke(o,n),this.props.onUserChangedLatex(this.mathField.latex())),this.maybeTriggerOnSelectionChange()}};this.props.needsSystemKeypad&&this.props.needsSystemKeypad()&&(t.substituteTextarea=()=>{let o=document.createElement("textarea");return o.setAttribute("autocorrect","off"),o.setAttribute("autocapitalize","none"),o.setAttribute("spellcheck","false"),o.setAttribute("autocomplete","off"),o}),this.props.tokenController&&(this.mathquillTokenHelper=new om(this.props.tokenController(),e,!1)),this.$mathField=W(e);let i=Pl.MathField(e,t);this.mathField=i,e._mqMathFieldInstance=this.mathField,e._mqViewInstance=this,this.$mathField.on("focusin.view focusout.view",o=>this.onFocusEvent(o)).on("paste.view",o=>this.onPasteEvent(o)),!$w&&(Ml||qf)&&this.$mathField.on("keypress.view",o=>this.onKeypressEvent(o)),this.hookupMQTapTouch(i),this.updateMathquill()}getCacheableMQConfig(){let e={...this.props.config()};return this.props.capExpressionSize()&&(e.maxDepth=p8),e}didUpdate(){this.updateMathquill()}updateMathquill(){var e;this.updateMathquillConfig(),this.updateMathquillAria(),this.updateMathquillLatex(),this.updateMathquillFocused(),this.updateMathquillPostLabel(),(e=this.mathquillTokenHelper)==null||e.updateTokens(this.props.latex())}onFocusEvent(e){let t=this.isFocused();t!==this.shouldBeFocused()&&this.props.onFocusedChanged(t,e)}onPasteEvent(e){let t="",i=window.clipboardData,o=e.originalEvent;i&&i.getData?t=i.getData("Text"):o&&o.clipboardData&&o.clipboardData.getData&&(t=o.clipboardData.getData("text/plain"));var n=this.viewCanAcceptText(t);return!n&&this.props.onExpressionSizeExceeded&&this.props.onExpressionSizeExceeded(),n}viewCanAcceptText(e){return r.canAcceptText(this.mathField,this.props.capExpressionSize(),e)}static canAcceptText(e,t,i){if(!e)return!1;if(!t)return!0;let o=e.latex();return nm(o)+nm(i)<=am}onKeypressEvent(e){if(e.stopPropagation(),e.preventDefault(),!!this.mathField){var t=e.key&&e.key.length===1?e.key:void 0;t&&this.viewCanAcceptText(t)&&(this.props.onUserTypedText?this.props.onUserTypedText(t):(this.mathField.typedText(t),this.props.onUserChangedLatex(this.mathField.latex())))}}hookupMQTapTouch(e){this.$mathField.on("dcg-tapstart.view",()=>{let t="dcg-tapend.mathquill-selection-change";W(document).on(t,()=>{this.maybeTriggerOnSelectionChange(),W(document).off(t)})}),e.ignoreNextMousedown(function(){return p3.shouldIgnoreMouseDown()}),this.$mathField.on("dcg-tap.view",t=>{let i=t;if(i.device!=="touch"||i.target.closest(".dcg-mq-ignore-mousedown"))return;let o=i.changedTouches[0];e.clickAt(o.clientX,o.clientY,o.target),this.isFocused()||e.focus()})}updateMathquillConfig(){if(!this.mathField)return;let e=this.getCacheableMQConfig();__dcg_shared_module_exports__['Oa'](e,this.cachedConfig)||(this.cachedConfig=e,this.mathField.config(e))}updateMathquillAria(){if(!this.mathField)return;let e=this.props.getAriaLabel();e!==this.mathField.getAriaLabel()&&this.mathField.setAriaLabel(e)}updateMathquillPostLabel(){this.mathField&&this.mathField.setAriaPostLabel(this.props.getAriaPostLabel(),this.props.hasError()?5e3:1e3)}updateMathquillLatex(){let e=this.props.latex();this.mathField&&this.lastLatexProp!==e&&(this.props.capExpressionSize()&&nm(e)>am||(this.lastLatexProp=e,this.mathField.latex()!==e&&this.mathField.latex(e)))}updateMathquillFocused(){if(!this.mathField)return;let e=this.isFocused(),t=this.shouldBeFocused();t&&t!==this.wasFocusedLastUpdate&&this.props.selectOnFocus&&this.props.selectOnFocus()&&this.mathField.select(),this.wasFocusedLastUpdate=t,e!==t&&(t?this.mathField.focus():this.mathField.blur())}isFocused(){return!!(document.activeElement&&this.$mathField[0].contains(document.activeElement))}shouldBeFocused(){return this.props.isFocused()}maybeTriggerOnSelectionChange(){let e=this.props.onSelectionChanged;if(!e||!this.mathField)return;let t=this.mathField.selection();__dcg_shared_module_exports__['Oa'](t,this.lastSelection)||(this.lastSelection=t,e(t))}static getFocusedMathquill(){if(!document.activeElement)return;let e=document.activeElement.closest(".dcg-mq-editable-field");if(e)return e._mqMathFieldInstance}static getMQViewInstance(e){let t=e.el();if(t)return t._mqViewInstance}static applyArrowKeyAndReturnIfWasAtBounds(e,t,i){var o=e.selection();let n=o.startIndex===0&&o.endIndex===o.latex.length;if((t==="Up"||t==="Down")&&n)return e.keystroke(t,i),!0;e.keystroke(t,i);var a=e.selection(),s=a.latex!==o.latex||a.startIndex!==o.startIndex||a.endIndex!==o.endIndex;return!s}static simulateKeypress(e,t){var i=r.getMQViewInstance(e);if(i){if(i.props.onUserPressedKey)i.props.onUserPressedKey(t);else{e.keystroke(t);let o=e.latex();i.props.onUserChangedLatex(o)}i.maybeTriggerOnSelectionChange()}}static simulateUserChangedLatex(e){var t=r.getMQViewInstance(e);if(t&&t.mathField){let i=t.mathField.latex();t.props.onUserChangedLatex(i)}}static handleKeystrokeAndDecideIfSpecialEvent(e,t,i){return t==="Enter"||t==="Delete"&&e.latex()===""||t==="Backspace"&&e.latex()===""?!0:t==="Up"||t==="Down"||t==="Left"||t==="Right"?r.applyArrowKeyAndReturnIfWasAtBounds(e,t,i):(e.keystroke(t,i),!1)}};var{If:T3,Input:u8,For:I3,Switch:h8,IfElse:g8}=Ut.Components;function M3(r,e){return e?e.getPOIById(r):null}function Gu(r,e){return 1e3*(r.pixelsToMath.mapX(r.mathToPixels.mapX(e)+.5)-r.pixelsToMath.mapX(r.mathToPixels.mapX(e)-.5))}function WS(r,e){return 1e3*(r.pixelsToMath.mapY(r.mathToPixels.mapY(e)+.5)-r.pixelsToMath.mapY(r.mathToPixels.mapY(e)-.5))}function m8(r,{x:e,y:t}){let i=Gu(r,e),o=WS(r,t);return{xscale:i,yscale:o}}function A3(r,e){return e?[r[1],r[0]]:r}function f8(r,e){var t,i=!1;let o="",n="";if(r.type==="poi"){let d=r.poi,{xscale:u,yscale:h}=m8(e,d);t=d.getLabel();let g=d.getGraphMode(),b=e.settings.getPrecisionConfig(),C;var a=d.type===1007&&d.getCompiledFunction();if(a){var s=g===1,l=s?d.y:d.x;let[S,k]=A3([u,h],s);C=__dcg_shared_module_exports__['Wa'](l,S,k,a,b),C=A3(C,s)}else C=[__dcg_shared_module_exports__['Va'](d.x,b,u),__dcg_shared_module_exports__['Va'](d.y,b,h)];i=!isFinite(C[1].value),o=C[0].superscript?C[0].mantissa+"^{"+C[0].superscript+"}":C[0].latex,n=C[1].superscript?C[1].mantissa+"^{"+C[1].superscript+"}":C[1].latex,o==="undefined"&&(o="\\mathrm{undefined}"),n==="undefined"&&(n="\\mathrm{undefined}")}else t=r.text;var c=t&&__dcg_shared_module_exports__['qd'](t);return t?c==="latex"?{is_hole:i,type:"latex",text:t.substr(1,t.length-2)}:c==="text"?{is_hole:i,type:"text",text:t}:{is_hole:i,type:"mixed",text:t}:r.type==="poi"?r.poi.hasEditableLabel()?{is_hole:i,type:"text",text:""}:{is_hole:i,type:"latex",text:"\\left("+o+",\\space "+n+"\\right)"}:{is_hole:i,type:"text",text:"?"}}function G3(r,e,t){let i=r.s("graphing-calculator-label-poi-unknown"),o=e.getProjection();return!o||!o.viewport||t&&(i=$S(r,t.x,t.y)),i}var V3=4,tM=class extends Ut.Class{getClassName(){var e;return((e=this.props.point())==null?void 0:e.y)!==void 0?"dcg-audio-trace-line dcg-audio-trace-line--horizontal":"dcg-audio-trace-line"}getTraceCoord(){var o,n;let e=(o=this.props.point())==null?void 0:o.x,t=(n=this.props.point())==null?void 0:n.y,i=this.props.projection();if(e!==void 0)return`${Math.round(10*i.mapx(e))/10-V3/2}px`;if(t!==void 0)return`${Math.round(10*i.mapy(t))/10-V3/2}px`}getStyle(){var i;let e=this.getTraceCoord(),t=(i=this.props.point())==null?void 0:i.color;return{"--dcg-trace-coord":e,"--dcg-trace-color":t}}template(){return Ut.createElement("div",{class:this.bindFn(this.getClassName),style:this.bindFn(this.getStyle)})}},sm=class extends Ut.Class{constructor(){super(...arguments),this.labelsDirty=!1,this.traceLinePt=void 0}init(){this.grapher=this.props.grapher(),this.controller=this.grapher.controller,this.cachedLabelDict={},this.cachedLabelOrder=[],this.hoveredPOI=void 0,this.openedPOI2Sketch={},this.takingScreenshot=!1}template(){return Ut.createElement("div",{class:Ut.const("dcg-graph-outer"),style:this.const({"z-index":0}),didMount:this.bindFn(this.didMountRoot)},Ut.createElement(I3,{each:()=>this.cachedLabelOrder},Ut.createElement("div",null,e=>Ut.createElement("div",{class:()=>this.getLabelClasses(e),style:()=>this.getLabelStyles(e),didMount:t=>this.linkLabelContainerNode(e,t)},Ut.createElement("div",{class:Ut.const("dcg-pt"),style:()=>this.getDotStyles(e)}),Ut.createElement("div",{class:Ut.const("dcg-label"),didMount:t=>this.linkLabelDOMNode(e,t)},this.renderLabelContent(e),Ut.createElement(T3,{predicate:()=>this.showPOIbutton(e)},()=>Ut.createElement("button",{class:Ut.const("dcg-unstyled-button dcg-poi-copy-button"),onTap:()=>this.copyPOI(e),"aria-label":()=>this.controller.s("graphing-calculator-text-copy-poi-aria")},Ut.createElement("i",{class:Ut.const("dcg-icon-insert")}))))))),Ut.createElement(T3,{predicate:()=>!0},()=>Ut.createElement(tM,{point:()=>this.traceLinePt,projection:()=>this.grapher.getProjection()})))}copyPOI(e){delete this.openedPOI2Sketch[e],this.controller.dispatch({type:"add-poi-expression",latex:this.getLabelContent(e).text})}showPOIbutton(e){if(!Ww)return!1;var t=M3(e,this.grapher.graphSketches[this.openedPOI2Sketch[e]]);switch(t==null?void 0:t.type){case 1001:case 1002:case 1003:case 1004:return!0;default:return!1}}setTraceLine(e){__dcg_shared_module_exports__['Oa'](e,this.traceLinePt)||(this.traceLinePt=e,this.update())}renderLabelContent(e){return Ut.createElement(h8,{key:()=>this.getLabelContent(e).type},t=>t==="text"?Ut.createElement("span",{class:Ut.const("dcg-label-raw-text")},()=>this.getLabelContent(e).text):t==="latex"?Ut.createElement(ke,{latex:()=>this.getLabelContent(e).text,config:this.bindFn(this.getMQConfig)}):t==="mixed"?Ut.createElement(I3,{each:()=>__dcg_shared_module_exports__['rd'](this.getLabelContent(e).text),key:(i,o)=>`${i}${o}`},Ut.createElement("span",null,i=>g8(()=>__dcg_shared_module_exports__['qd'](i)==="latex",{true:()=>Ut.createElement(ke,{latex:()=>i.substr(1,i.length-2),config:this.bindFn(this.getMQConfig)}),false:()=>Ut.createElement("span",{class:Ut.const("dcg-label-raw-text")},()=>i)}))):t==="MATH"?Ut.createElement("div",{class:()=>({"dcg-editable-label-border":!0,"dcg-do-not-blur":!0,"dcg-focus":this.shouldEditableLabelBeFocused(e),"dcg-empty-label":this.getEditableLabelText(e).trim().length===0}),style:()=>({"border-color":__dcg_shared_module_exports__['cd'](this.getEditableLabelTextColor(e),.3)})},Ut.createElement(ve,{latex:()=>this.getEditableLabelText(e),placeholder:()=>"",isFocused:()=>this.shouldEditableLabelBeFocused(e),capExpressionSize:()=>!!this.controller.getGraphSettings().config.capExpressionSize,selectOnFocus:Ut.const(!1),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.controller.s("graphing-calculator-narration-editable-point-label-at-coordinates",{coordinates:G3(this.controller,this.grapher,this.cachedLabelDict[e])}),getAriaPostLabel:this.const(""),onUserChangedLatex:i=>this.onLabelInput(i,e),onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:i=>this.onEditableLabelFocusChange(i,e),hasError:this.const(!1),noFadeout:this.const(!0),needsSystemKeypad:()=>!this.controller.isKeypadEnabled()})):Ut.createElement("div",{class:()=>({"dcg-resizing-text-input-container":!0,"dcg-editable-label-border":!0,"dcg-focus":this.shouldEditableLabelBeFocused(e),"dcg-empty-label":this.getEditableLabelText(e).trim().length===0}),style:()=>({"border-color":__dcg_shared_module_exports__['cd'](this.getEditableLabelTextColor(e),.3)}),onScroll:i=>{i.target&&(i.target.scrollLeft=0)}},Ut.createElement(u8,{"aria-label":()=>this.controller.s("graphing-calculator-narration-editable-point-label-at-coordinates",{coordinates:G3(this.controller,this.grapher,this.cachedLabelDict[e])}),onInput:i=>this.onLabelInput(i,e),value:()=>this.getEditableLabelText(e),onFocus:()=>this.onEditableLabelFocusChange(!0,e),onBlur:()=>this.onEditableLabelFocusChange(!1,e)}),Ut.createElement("span",{class:Ut.const("dcg-text-input-content")},()=>this.getEditableLabelText(e)||" ")))}getSketchIdFromLabelId(e){var t=this.cachedLabelDict[e];if(t)return t.sketchId}getEditableLabelTextColor(e){let t=this.getSketchIdFromLabelId(e);if(!t)return"#000";let i=this.controller.getItemModel(t);return!i||i.type!=="expression"?"#000":Kc(i)}onEditableLabelFocusChange(e,t){let i=this.getSketchIdFromLabelId(t);i&&(e?this.controller.dispatch({type:"set-focus-location",location:{type:"editable-label",id:i}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"editable-label",id:i}}),this.update())}shouldEditableLabelBeFocused(e){let t=this.getSketchIdFromLabelId(e),i=this.controller.getFocusLocation();return!(!i||i.type!=="editable-label"||!t||i.id!==t)}onLabelInput(e,t){let i=this.getSketchIdFromLabelId(t);if(!i)return;let o=this.controller.getItemModel(i);if(!o||o.type!=="expression")return;let n=e;this.controller.getItemEditableLabelMode(i)==="MATH"&&n.length>0&&(n="`"+n+"`"),this.controller.dispatch({type:"set-item-label",id:i,label:n})}getEditableLabelText(e){let t=this.getSketchIdFromLabelId(e);if(!t)return"";let i=this.controller.getItemModel(t);return!i||i.type!=="expression"?"":this.controller.getItemEditableLabelMode(t)==="MATH"?i.label.substr(1,i.label.length-2):i.label}linkLabelDOMNode(e,t){var i=this.cachedLabelDict[e];i&&(i.labelDOM=t)}linkLabelContainerNode(e,t){var i=this.cachedLabelDict[e];i&&(i.containerDOM=t)}getLabelClasses(e){var t=this.cachedLabelDict[e];return t?t.classes:{}}getLabelStyles(e){var t=this.cachedLabelDict[e];return t?t.styles:{}}getDotStyles(e){var t=this.cachedLabelDict[e];return t?t.dotStyles:{}}getLabelContent(e){var t=this.cachedLabelDict[e];if(t){let i=this.getSketchIdFromLabelId(e);if(!i)return{is_hole:!1,type:"text",text:""};let o=this.controller.getItemEditableLabelMode(i);return t.classes["dcg-editable-label"]&&o!==void 0&&o!=="NONE"?{is_hole:!1,type:o,text:""}:t.content}return{is_hole:!1,type:"text",text:""}}didMountRoot(e){this.node=e}computeHoveredLabel(e,t){var i;this.hoveredPOI?this.isOpenPOI(this.hoveredPOI)?this.grapher.setLayerClass("hoveredPOI","dcg-mouse-over-opened-poi"):(i=this.computeLabel(e,{poi:this.hoveredPOI,type:"poi"},t,"hovered"),this.grapher.setLayerClass("hoveredPOI","dcg-mouse-over-closed-poi")):this.grapher.setLayerClass("hoveredPOI",void 0);var o=this.getHoveredInteractiveLabel();o&&!o.bareLabel?this.grapher.setLayerClass("interactiveLabel","dcg-mouse-over-opened-poi"):this.grapher.setLayerClass("interactiveLabel",void 0),i&&this.saveLabelToCache(i)}computeTraceLabel(e,t){if(this.traceInfo){var i=this.traceInfo.pt;if(i){var o=new rd(i.x,i.y,1007,this.traceInfo.branchInfo.sketch,this.traceInfo.branchInfo.branch,0),n=this.computeLabel(e,{poi:o,type:"poi"},t,"trace");n&&this.saveLabelToCache(n)}}}computeLabel(e,t,i,o){let{projection:n}=e,a=t.type==="poi"?t.poi.id+"":t.id;o==="trace"&&(a="*trace*");let s=t.poi,l=n.mapx(s.x),c=n.mapy(s.y),d=l,u=c;if(t.type!=="poi"&&(l=0,c=0),n.coordsAreOnscreen(l,c,20)){if(this.isHiddenInteractiveLabel(s))return;let h=!1,g,b=s.sketch,C=b&&b.branches[0];C&&(h=!!("nakedLabel"in C&&C.nakedLabel),g="labelOrientation"in C?C.labelOrientation:void 0);let S=b.id,k=this.controller.getItemModel(S);if(s.hasEditableLabel()&&k&&k.type==="expression"&&!Gn(k))return;let I=f8(t,n),M=s.pointIdxOnBranch,E=s.getLabelSize();this.grapher.settings.config.projectorMode&&(E*=1.2),Array.isArray(E)&&(E=E[M]);let A=s.getLabelRotation();Array.isArray(A)&&(A=A[M]);let V=s.getPointOpacity()*this.controller.getGeoModel().getToolFadeOpacity(S),G=!!s.getTextOutline(),P=s.isPersistent(),O=s.isAttachedToPlottedPoint(),R=s.hasInteractiveLabel(),q=s.hasEditableLabel()&&!this.takingScreenshot,J=!!(k&&k.type==="expression"&&fn(k)),U=this.grapher.clickableObjectsLayer.shouldDrawPressed(S,s.pointIdxOnBranch),z=this.grapher.clickableObjectsLayer.shouldDrawHovered(e,S,s.pointIdxOnBranch),K=this.grapher.clickableObjectsLayer.isKeyboardFocused(S,s.pointIdxOnBranch),v=b.color;if(U){let Be=__dcg_shared_module_exports__['pb'](v);Be.l>.2?Be.l-=.2:Be.l+=.1,v=Be.toString()}else if(z){let Be=__dcg_shared_module_exports__['pb'](v);Be.l>.2?Be.l-=.1:Be.l+=.2,v=Be.toString()}let D=!P,_=!!O;R&&(_=!0,D=!0),o==="trace"&&(_=!1,D=!0);let te=i[a],Q=te&&te.labelDOM,De=te&&te.containerDOM,se=te&&te.width,re=te&&te.height,j=te&&te.orientation,X={"dcg-poi-label":!0,"dcg-tracept":o==="trace","dcg-opened":o==="opened","dcg-hole":I.is_hole,"dcg-show-border":D,"dcg-hide-dot":_,"dcg-naked-label":h,"dcg-editable-label":q,"dcg-has-outline":G&&!D,"dcg-focus":K,"dcg-underlined-label":!!(J&&k&&k.type==="expression"&&k.hidden)};isFinite(E)||(E=1);let fe=Math.round(E*1100)/10,be={left:l+"px",top:c+"px","font-size":fe+"%"};A&&!this.takingScreenshot&&(be.transform=`rotate(${A}rad)`),P&&v&&(be.color=v),be.opacity=`${Math.min(.99,V)}`;let Me={};return o==="trace"&&(Me["background-color"]=v,Me["border-color"]=v),{id:a,sketchId:S,poi:s,x:s.x,y:s.y,screenX:l,screenY:c,top:u,left:d,width:se,height:re,labelDOM:Q,containerDOM:De,forcedOrientation:g,isNakedLabel:h,isClickable:J,orientation:j,rotation:A,classes:X,styles:be,dotStyles:Me,content:I,hasBorder:s.hasEditableLabel(),opacity:V,hasOutline:G||s.hasEditableLabel(),objectSpec:t.type!=="poi"?t.type==="angle"?{type:t.type,segments:[n.mapx(t.segments[0]),n.mapy(t.segments[1]),t.segments[2],t.segments[3]]}:{type:t.type,segments:n.map_xy_pairs(t.segments)}:void 0}}}computeAllLabels(e,t){var i={},o,n,a=this.grapher.graphSketches;this.grapher.getSketchOrder().forEach(c=>{var d=a[c];if(d){var u=d.labels;if(u.length)for(var h=0;h<u.length;h++){let g=u[h],b=this.computeLabel(e,g,t,"opened");b&&(Array.isArray(d.color)&&(b.styles.color=d.color[h]),this.saveLabelToCache(b))}}});var s={};for(o in this.openedPOI2Sketch){var l=M3(o,a[this.openedPOI2Sketch[o]]);l&&(s[o]=l.sketch.id,n=this.computeLabel(e,{poi:l,type:"poi"},t,"opened"),n&&this.saveLabelToCache(n))}return this.openedPOI2Sketch=s,i}saveLabelToCache(e){var t=e.id;this.cachedLabelDict[t]||this.cachedLabelOrder.push(t),this.cachedLabelDict[t]=e}markLabelsDirty(){this.labelsDirty=!0}getInteractiveLabelUnderPoint(e){let t;for(var i=this.cachedLabelOrder.length-1;i>=0;i--){let o=this.cachedLabelOrder[i],n=this.cachedLabelDict[o];if(!n||!n.width||!n.height)continue;let a=n.screenX,s=n.screenY,{left:l,top:c,width:d,height:u}=n;if(d>0&&u>0&&e.x>a+l&&e.x<a+l+d&&e.y>s+c&&e.y<s+c+u){let h=this.getSketchIdFromLabelId(o);if(h===void 0)continue;let g=this.controller.getItemModel(h);if(!g||g.type!=="expression")continue;if(Tg(g))return{type:"editable",model:g};!t&&e_(g)?t={type:"draggable",model:g,label:{x:n.x,y:n.y}}:!t&&n.isClickable&&(t={type:"clickable",model:g,poi:n.poi})}}return t}positionLabels(e,t,i,o,n){var a=!this.labelsDirty;this.labelsDirty=!1;var s=[];t.forEach(u=>{var h=i[u];if(!h||!h.labelDOM)return;let g,b,C=this.getSketchIdFromLabelId(u);if(C!==void 0){let G=this.grapher.getGraphSketch(C);G&&G.branches&&(g=G.branches[0].pointSize,b=G.branches[0].graphMode===4)}(g===void 0||typeof g!="number"||g<0)&&(g=8);let S=this.grapher.settings.config.projectorMode?1.3:1;b&&(g=__dcg_shared_module_exports__['kd'](g));let k=.5*g*S+3;var I=h.screenX,M=h.screenY,E=h.labelDOM.clientWidth,A=h.labelDOM.clientHeight;if(!(E>0&&A>0))return;let V=0;this.takingScreenshot&&h.hasBorder&&(V=5),s.push({renderedLabel:h,pt_x:I,pt_y:M,pt_radius:k+V,rotation:h.rotation,nakedLabel:h.isNakedLabel,width:E,height:A,keepOrientation:a,priorOrientation:h.orientation,enforceOrientation:h.forcedOrientation})});var l=v3(e,o,n),c=s.map(u=>{if(u.renderedLabel.objectSpec){if(u.renderedLabel.objectSpec.type==="segment")return S3(l,{pt_x1:u.renderedLabel.objectSpec.segments[0],pt_y1:u.renderedLabel.objectSpec.segments[1],pt_x2:u.renderedLabel.objectSpec.segments[2],pt_y2:u.renderedLabel.objectSpec.segments[3],pt_radius:10,width:u.width,height:u.height,keepOrientation:u.keepOrientation,priorOrientation:u.priorOrientation||""});if(u.renderedLabel.objectSpec.type==="polygon")return D3(l,{path:u.renderedLabel.objectSpec.segments,pt_radius:10,width:u.width,height:u.height,keepOrientation:u.keepOrientation,priorOrientation:u.priorOrientation||""});if(u.renderedLabel.objectSpec.type==="angle"){let h=u.renderedLabel.objectSpec.segments,g=this.grapher.settings.config.projectorMode?30:20;return E3(l,{pt_x:h[0],pt_y:h[1],startAngle:h[2],deltaAngle:h[3],isRightAngle:ES(h[3]),radius:g,pt_radius:10,width:u.width,height:u.height,keepOrientation:u.keepOrientation,priorOrientation:u.priorOrientation||""})}}else return C3(l,u);return[]}),d=x3(c);d.forEach(function(u,h){var g=s[h].renderedLabel;g.orientation=u.orientation;let b=u.left-u.pt_x,C=u.top-u.pt_y;g.left=b,g.top=C,g.width=u.width,g.height=u.height;var S=g.labelDOM;if(S){S.style.transform=u.transform,S.setAttribute("dcg-label-orientation",u.orientation);var k=g.containerDOM;k&&(k.style.left=u.pt_x+"px",k.style.top=u.pt_y+"px"),setTimeout(()=>S.classList.add("dcg-enable-transition"),1)}})}copyToCtx(e){yn(e,"labels");var t=this.node.getBoundingClientRect();this.cachedLabelOrder.forEach(i=>{var o=this.cachedLabelDict[i];if(!o)return;var n=o.labelDOM;if(!n)return;let a={pointCenterX:o.screenX,pointCenterY:o.screenY,hasOutline:!!o.hasOutline,hasBorder:!!o.hasBorder};var s=this.computeRotatedCenter(a.pointCenterX,a.pointCenterY,o.rotation);let l=zC(n,a);e.save(),e.globalAlpha=o.opacity,e.rotate(o.rotation),e.translate(s.x-t.left,s.y-t.top),KC(l,e),e.restore()}),xn(e)}computeRotatedCenter(e,t,i){var o=Math.cos(-i),n=Math.sin(-i),a=e*o-t*n,s=t*o+e*n;return{x:a,y:s}}drawForScreenshot(e,t,i,o){this.takingScreenshot=!0,this.redraw(e,i,o),this.takingScreenshot=!1,this.copyToCtx(t)}redraw(e,t,i){let{ctx:o}=e;var n=this.cachedLabelDict;this.cachedLabelDict={},this.cachedLabelOrder=[],this.computeAllLabels(e,n),this.computeHoveredLabel(e,n),this.computeTraceLabel(e,n),this.update(),this.positionLabels(o,this.cachedLabelOrder,this.cachedLabelDict,t,i)}clearOpenedPOI(){this.openedPOI2Sketch={}}closePOI(e){delete this.openedPOI2Sketch[e.id]}openPOI(e){this.openedPOI2Sketch[e.id]=e.sketch.id}isOpenPOI(e){return this.openedPOI2Sketch.hasOwnProperty(e.id)}isOpenInteractiveLabel(e){return this.isOpenPOI(e)?e.hasInteractiveLabel():!1}isHiddenInteractiveLabel(e){return!e||!e.hasInteractiveLabel()?!1:!this.isOpenPOI(e)&&this.getHoveredPOI()!==e}setHoveredPOI(e){this.hoveredPOI=e}getHoveredPOI(){return this.hoveredPOI}getHoveredInteractiveLabel(){var e=this.getHoveredPOI();if(e&&e.hasInteractiveLabel())return e}setTraceInfo(e){this.traceInfo=e}isTracing(){return!!this.traceInfo}getTraceInfo(){return this.traceInfo}getMQConfig(){return this.controller.getMathquillConfig({})}};function pm(r,e){let t=r[e];return Array.isArray(t)&&r.tableInfo?t[r.tableInfo.rowIndex]:t}var ty=class{constructor(e){this.grapher=e,this.renderedPointsIdOrder=[],this.renderedPoints={},this.speakThrottledAlert=__dcg_shared_module_exports__['Ja'](()=>{let t=this.getPOIUnderAttention();if(!t){this.lastAriaAlert=void 0;return}let i=this.getAriaAlert({id:t.id,lastAriaAlert:this.lastAriaAlert,includeUsageInstructions:!1});i!=null&&i.updated&&(ie(i.completeMessage),this.lastAriaAlert=i)},1e3,{leading:!1,trailing:!0})}redraw(e,t){let{ctx:i,projection:o}=e;var n=this.grapher.graphSketches,a=this.renderedPoints;this.renderedPoints={},this.renderedPointsIdOrder=[];let s=this.grapher.poiController.keyboardAttentionManager.getKeyboardAttention(),l=s==null?void 0:s.calcId,c=(s==null?void 0:s.listIndex)||0;var d=M=>{let E=!!s&&l===M.sketch.id&&c===M.listIndex;var A=this.processPOI(i,o,M,a[M.id],t,E);A&&(this.renderedPoints[M.id]=A,this.renderedPoints[M.id].poi=M,this.renderedPointsIdOrder.push(M.id))};this.grapher.getSketchOrder().forEach(M=>{var E=n[M];E&&(E.getMovablePoints().forEach(d),E.getStaticLabeledPoints().forEach(d))});var u=this.renderedPoints[this.hoveredPointId],h=this.renderedPoints[this.pressedPointId],g=u&&u.poi,b=h&&h.poi;g||this.setHoveredPointId(void 0),b||this.setPressedPointId(void 0);var C=b||g,S,k;if(C?(S=C.type==="movable-point"&&C.tableInfo&&C.tableInfo.dragX,k=C.type==="movable-point"&&C.tableInfo&&C.tableInfo.dragY,S&&k||!S&&!k?this.grapher.setLayerClass("movablePoints","dcg-mouse-over-movable-point"):S?this.grapher.setLayerClass("movablePoints","dcg-mouse-over-movable-point-ew"):this.grapher.setLayerClass("movablePoints","dcg-mouse-over-movable-point-ns")):this.grapher.setLayerClass("movablePoints",void 0),!this.getPOIUnderAttention()){this.lastAriaAlert=void 0;return}this.speakThrottledAlert()}_clampedOpacity(e){return e<0?0:e>1?1:__dcg_shared_module_exports__['Ta'](e)?e:1}getAllRenderedObjects(e){return this.renderedPointsIdOrder.filter(t=>e?this.renderedPoints[t].type===e:!0).map(t=>this.renderedPoints[t])}getOrderedTabTargets(e){let t=[];return this.renderedPointsIdOrder.forEach(i=>{let o=this.renderedPoints[i];if(e&&o.type!==e||this.getTabIndex(i)===-1)return;let n=o.poi;t.push({calcId:n.sketch.id,listIndex:n.listIndex,polygonEdge:void 0,description:this.getAriaLabel(i)})}),t}drawForScreenshot(e,t,i,o){var n=this.grapher.graphSketches;for(let d in n){var a=n[d],s=a.branches[0],l,c;s.graphMode===4&&(l=s.pointOpacity,c=s.pointSize!==void 0?s.pointSize:8),a.getMovablePoints().forEach(u=>{var h={screenX:t.mapx(u.x),screenY:t.mapy(u.y),color:u.color,pointOpacity:l,pointSize:c,animationPercent:0};o?this.drawMovablePointOnCtx(e,u.sketch,h,i):Yl.drawPointToCtx({ctx:e,projection:t,x:u.x,y:u.y,alpha:l,sketch:u.sketch,sizeFactor:1,opacityFactor:1,colorOverride:u.color,finalHardcodedSize:c})})}}processPOI(e,t,i,o,n,a){var s=i.id,l=i.x,c=i.y,d=t.mapx(l),u=t.mapy(c),h=t.coordsAreOnscreen(d,u,20);if(!h&&!a)return;var g=i.sketch?this.grapher.controller.getItemModel(i.sketch.id):void 0,b=!!(g&&An(g));if(!(g&&this.grapher.controller.shouldIgnoreGraphInteractions(g)))return o||(i.type==="movable-point"?o={type:"movable",id:s,pointOnScreen:h,poi:i,projection:t,screenX,screenY,color:pm(i,"color"),pointOpacity:pm(i,"pointOpacity"),pointSize:pm(i,"pointSize"),pointIsHovered:!1,pointIsPressed:!1,selected:b,lastHoverActionTime:0,animationPercent:0}:g&&g.type==="expression"&&g.label!==void 0&&g.showLabel&&Zr(g)!=="NONE"?o={type:"draggable-label",id:s,pointOnScreen:h,selected:b,poi:i,projection:t,screenX,screenY}:o={type:"static",id:s,pointOnScreen:h,poi:i,projection:t,screenX,screenY,selected:b}),o.pointOnScreen=h,o.poi=i,o.projection=t,o.screenX=d,o.screenY=u,o.type==="movable"&&(o.color=pm(o.poi,"color"),o.pointOpacity=pm(o.poi,"pointOpacity"),o.pointSize=pm(o.poi,"pointSize"),o.selected=b,this.updateMovablePointAnimation(o,a),this.drawMovablePointOnCtx(e,o.poi.sketch,o,n)),o}drawMovablePointOnCtx(e,t,i,o){var b;var n=i.pointSize/2*(this.grapher.settings.config.projectorMode?1.3:1);n<0&&(n=0),t.showHighlight&&(n*=1.15);var a=Array.isArray(i.color)?i.color[0]:i.color,s=i.screenX,l=i.screenY,c=i.animationPercent||0;o.push({left:s-n,right:s+n,top:l-n,bottom:l+n}),e.save();var d=e.globalAlpha;let u=this.shouldDrawGhosted(t.id)?wS.IS_GHOSTED:Bb;var h=this._clampedOpacity(u*i.pointOpacity);h*=(b=this.grapher.controller.getGeoModel().getToolFadeOpacity(t.id))!=null?b:1;let g=__dcg_shared_module_exports__['ld'](n);e.fillStyle=a,e.globalAlpha=.35*h,e.beginPath(),e.moveTo(s+g,l),e.arc(s,l,g,0,Math.PI*2,!0),e.closePath(),e.fill(),e.globalAlpha=h,t.tokenHovered&&(n=.7*n+.3*g),n=n+(g-n)*c,e.beginPath(),e.moveTo(s+n,l),e.arc(s,l,n,0,Math.PI*2,!0),e.closePath(),e.fill(),e.globalAlpha=d,e.restore()}updateMovablePointAnimation(e,t){var i=Date.now(),o=e.id,n=this.hoveredPointId===o||t,a=this.pressedPointId===o;e.pointIsPressed=a,n!==e.pointIsHovered&&(e.pointIsHovered=n,e.lastHoverActionTime=i);var s=e.animationPercent||0,l=i-e.lastHoverActionTime,c=.004*l;a?s=1:n?(s+=c,s>=1?s=1:this.requestRedrawNextFrame()):(s-=c,s<=0?s=0:this.requestRedrawNextFrame()),e.animationPercent=s}shouldDrawGhosted(e){if(!e)return!1;let t=this.grapher.controller.getItemModel(e);return!t||t.type!=="expression"?!1:Zo(t)}getTabIndex(e){if(this.grapher.controller.getActiveTool()!=="selection")return-1;let t=this.renderedPoints[e];if(!t)return-1;let i=t.poi,o=this.grapher.controller.getItemEditableLabelMode(i.sketch.id),n=this.grapher.controller.getItemModel(i.sketch.id),a=n&&n.type==="expression"&&!fn(n)&&(t.type==="movable"||o===void 0||o==="NONE");var s=this.grapher.settings;let l=s.config.graphpaper&&s.config.enableTabindex;return a&&l?0:-1}getAriaHidden(){var e=this.grapher.settings;return!e.config.graphpaper}getAriaLabel(e){var t=this.getAriaAlert({id:e,includeUsageInstructions:!1});return t&&t.completeMessage}speakAriaAlert(){var o;let e=(o=this.getPOIUnderAttention())==null?void 0:o.id;if(e){let n=this.renderedPoints[e];if(!n||n.type==="static")return this.lastAriaAlert=void 0,!1}let t=this.getAriaAlert({id:e,lastAriaAlert:this.lastAriaAlert,includeUsageInstructions:!0}),i=!this.lastAriaAlert||this.lastAriaAlert.id!==e||!!(t!=null&&t.updated);return this.lastAriaAlert=t,t!=null&&t.completeMessage?(i&&ie(t.completeMessage),!0):!1}getAriaAlert(e){let{id:t,lastAriaAlert:i,includeUsageInstructions:o}=e;if(!t)return;var n=this.renderedPoints[t];if(!n)return;let{controller:a}=this.grapher,s=n.poi.sketch?a.getItemModel(n.poi.sketch.id):void 0;if(!(!s||s.type!=="expression")){i&&i.id!==t&&(i=void 0);var l=n.poi,c=n.pointOnScreen,d=n.projection;if(!(!l||!d)){var u=d.viewport;if(u){var h=i==null?void 0:i.label,g=l.ariaLabel;a.isGeometry()&&hs(s)&&(g=BS(s,a,{poi:l,includeDetails:!1}).join(" "));var b=h!==g,C=!!(i!=null&&i.selected),S=n.selected,k=C!==S,I=i==null?void 0:i.coordX,M=i==null?void 0:i.coordY,E=l.x,A=l.y,V=E!==I||A!==M,G=i&&(b||k||V),P=on(a,E),O=nn(a,A),R=`${P} ${O}`,q=g||a.s("graphing-calculator-narration-movable-point-prefix"),J=!a.isGeometry()&&(n.type==="movable"||n.type==="draggable-label")&&o?a.s("graphing-calculator-narration-movable-point-suffix-usage-instructions"):"",U=c?"":a.s("graphing-calculator-narration-movable-point-off-screen-prompt"),z;if(i?b||!V&&k?z=q+U:V?z=R+U:k?z=q:z=i.completeMessage:z=a.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:q,x:P,y:O})+J+U,(!i||G)&&a.isGeometry()&&(n.type==="movable"||n.type==="draggable-label")){let K=a.getActiveTool();(K==="selection"||K==="box-selection")&&(z=XI(z||g||"",s,a))}return{id:t,coordX:E,coordY:A,label:g,selected:S,completeMessage:z,updated:G}}}}}setHoveredPointId(e){e!==this.hoveredPointId&&(this.hoveredPointId=e,this.requestRedrawNextFrame())}isMovingPoint(){return!!this.pressedPointId}setPressedPointId(e){e!==this.pressedPointId&&(this.pressedPointId=e,this.requestRedrawNextFrame())}getPOIUnderAttention(){let e=this.grapher.poiController.keyboardAttentionManager.getKeyboardAttention();if(!e)return;let t=e.listIndex||0;for(let i in this.renderedPoints){let n=this.renderedPoints[i].poi;if(n.sketch.id===e.calcId&&n.listIndex===t)return n}}requestRedrawNextFrame(){this.grapher.controller.requestRedrawGraph()}};function $S(r,e,t){return on(r,e)+" "+nn(r,t)}function on(r,e){let t=r.getGraphSettings().showXAxis,i=r.get2dProjection();if(!i)return"";let{width:o}=i.screen;return t?r.s("graphing-calculator-narration-audio-trace-property-x",{x:uo(__dcg_shared_module_exports__['Va'](e,r.getPrecisionConfig(),Gu(i,e)).latex)}):r.s("graphing-calculator-narration-x-percentage-coordinate",{x:Math.round(i.mathToPixels.mapX(e)/o*1e3)/10})}function nn(r,e){let t=r.getGraphSettings().showYAxis,i=r.get2dProjection();if(!i)return"";let{height:o}=i.screen;return t?r.s("graphing-calculator-narration-audio-trace-property-y",{y:uo(__dcg_shared_module_exports__['Va'](e,r.getPrecisionConfig(),Gu(i,e)).latex)}):r.s("graphing-calculator-narration-y-percentage-coordinate",{y:Math.round(i.mathToPixels.mapY(e)/o*1e3)/10})}var b8=Math.hypot&&Math.hypot(1/0,NaN)===1/0;function P3(r){return r===1/0||r===-1/0}var sp=b8?Math.hypot:function(r,e){if(P3(r)||P3(e))return 1/0;if(isNaN(r)||isNaN(e))return NaN;if(r===0&&e===0)return 0;if(Math.abs(r)>Math.abs(e)){let t=e/r;return Math.abs(r)*Math.sqrt(t*t+1)}else{let t=r/e;return Math.abs(e)*Math.sqrt(t*t+1)}};function um(r){let e=[[r.x0,r.y0],[r.x1,r.y1],[r.x2,r.y2]],[t,i]=__dcg_shared_module_exports__['zb'](e),o=__dcg_shared_module_exports__['ub'](r.x0-t,r.y0-i);return{x:t,y:i,radius:o}}function YS(r){let e=[[r.x0,r.y0],[r.x1,r.y1],[r.x2,r.y2]],[t,i]=__dcg_shared_module_exports__['zb'](e);return{startAngle:Math.atan2(r.y0-i,r.x0-t),deltaAngle:__dcg_shared_module_exports__['Ab'](e)}}var L3=(r,e)=>({x:r.x-e.x,y:r.y-e.y}),y8=(r,e)=>r.x*e.x+r.y*e.y;function JS(r,e){return sp(r.x-e.x,r.y-e.y)}function O3(r,e){let t={x:r.x1,y:r.y1},i={x:r.x2,y:r.y2},o=L3(e,t),n=L3(i,t),a=JS(t,i),s=a*a;return y8(o,n)/s}function oM(r){return[{x1:r.left,y1:r.top,x2:r.left,y2:r.bottom,extendStart:!1,extendEnd:!1},{x1:r.left,y1:r.top,x2:r.right,y2:r.top,extendStart:!1,extendEnd:!1},{x1:r.right,y1:r.top,x2:r.right,y2:r.bottom,extendStart:!1,extendEnd:!1},{x1:r.left,y1:r.bottom,x2:r.right,y2:r.bottom,extendStart:!1,extendEnd:!1}]}function x8(r){let{angle:e,width:t,height:i,center:o}=r,n=o.x,a=o.y,s=Math.cos(-e),l=Math.sin(-e),c=t/2,d=i/2,u={x:n+s*-c-l*-d,y:a+l*-c+s*-d},h={x:n+s*c-l*-d,y:a+l*c+s*-d},g={x:n+s*c-l*d,y:a+l*c+s*d},b={x:n+s*-c-l*d,y:a+l*-c+s*d};return[{x1:u.x,y1:u.y,x2:h.x,y2:h.y,extendStart:!1,extendEnd:!1},{x1:h.x,y1:h.y,x2:g.x,y2:g.y,extendStart:!1,extendEnd:!1},{x1:g.x,y1:g.y,x2:b.x,y2:b.y,extendStart:!1,extendEnd:!1},{x1:b.x,y1:b.y,x2:u.x,y2:u.y,extendStart:!1,extendEnd:!1}]}function w8(r,e){let t=oM(r);return!!(XS(e,t[0])||XS(e,t[1])||XS(e,t[2])||XS(e,t[3]))}function v8(r,e){let t=oM(r);return!!(Zl(e,t[0],!1)||Zl(e,t[1],!1)||Zl(e,t[2],!1)||Zl(e,t[3],!1)||Zl(e,t[0],!0)||Zl(e,t[1],!0)||Zl(e,t[2],!0)||Zl(e,t[3],!0))}function C8(r,e){let t=oM(r);return!!(lp(e,t[0],!1)||lp(e,t[1],!1)||lp(e,t[2],!1)||lp(e,t[3],!1)||lp(e,t[0],!0)||lp(e,t[1],!0)||lp(e,t[2],!0)||lp(e,t[3],!0))}function S8(r,e){return r.left<=e.left&&r.right>=e.right&&r.top<=e.top&&r.bottom>=e.bottom}function E8(r,e){return r.left<=e.x&&e.x<=r.right&&r.top<=e.y&&e.y<=r.bottom}function QS(r,e){if(!e.extendStart){let t=r.left<=e.x1&&e.x1<=r.right,i=r.top<=e.y1&&e.y1<=r.bottom;if(t&&i)return!0}return w8(r,e)}function z3(r,e){let t={x:e.x0,y:e.y0};return!!(E8(r,t)||C8(r,e))}function K3(r,e){let t={left:e.x-e.radius,right:e.x+e.radius,top:e.y-e.radius,bottom:e.y+e.radius};return!!(S8(r,t)||v8(r,e))}function D8(r,e){let t=r.x-e.center.x,i=r.y-e.center.y,o=Math.atan2(i,t),n=sp(t,i),a={x:n*Math.cos(o+e.angle),y:n*Math.sin(o+e.angle)};return Math.abs(a.x)<=e.width/2&&Math.abs(a.y)<=e.height/2}function U3(r,e){if(e.length<4)return!1;let t={x1:NaN,y1:NaN,x2:e[0],y2:e[1],extendStart:!1,extendEnd:!1};for(var i=2;i<e.length;i+=2)if(t.x1=t.x2,t.y1=t.y2,t.x2=e[i],t.y2=e[i+1],QS(r,t))return!0;return!1}function q3(r,e){var t=x8(e);for(let i of t)if(QS(r,i))return!0;return!!D8({x:r.left,y:r.top},e)}function k8(r,e,t){let i=e.x1-r.x,o=e.x2-r.x,n=e.y1-r.y,a=e.y2-r.y,s=r.radius,l=o-i,c=a-n,d=l*l+c*c,u=i*a-o*n,h=Math.sqrt(s*s*d-u*u);if(h<0)return;if(c>=0)var g=1;else var g=-1;let b=t?-1*g:1*g;return{x:r.x+(u*c+b*g*l*h)/d,y:r.y+(-u*l+b*Math.abs(c)*h)/d}}function T8(r,e){let t=r.y2-r.y1,i=r.x1-r.x2,o=e.y2-e.y1,n=e.x1-e.x2,a=t*r.x1+i*r.y1,s=o*e.x1+n*e.y1,l=t*n-o*i;if(l!==0)return{x:(n*a-i*s)/l,y:(t*s-o*a)/l}}function iM(r,e){let t=O3(e,r);return!(isNaN(t)||t<0&&!e.extendStart||t>1&&!e.extendEnd)}function I8(r,e){let{x:t,y:i}=um(e),{startAngle:o,deltaAngle:n}=YS(e),a=Math.atan2(r.y-i,r.x-t);return __dcg_shared_module_exports__['ga'](a,o,n)}function Zl(r,e,t){let i=k8(r,e,t);if(i!=null&&iM(i,e))return i}function lp(r,e,t){let i=Zl(um(r),e,!1)||F3,o=R3(t,N3(r,i),B3(e));if(o||(i=Zl(um(r),e,!0)||F3,o=R3(t,N3(r,i),B3(e))),o&&I8(i,r))return i}var F3={x:NaN,y:NaN};function XS(r,e){let t=T8(r,e);if(t!=null&&iM(t,r)&&iM(t,e))return t}function R3(r,e,t){let i=e.x*t.y-e.y*t.x;return i>0&&r||i<0&&!r}function N3(r,e){let{x:t,y:i}=um(r),{deltaAngle:o}=YS(r);return o>0?{x:i-e.y,y:e.x-t}:{x:e.y-i,y:t-e.x}}function B3(r){return{x:r.x2-r.x1,y:r.y2-r.y1}}var lt=__dcg_shared_module_exports__['e']($());var wo=__dcg_shared_module_exports__['e']($());kt();function ZS(r){return Array.from(r.querySelectorAll('input:enabled, button:enabled, select:enabled, textarea:enabled, [tabindex="0"], a[href]')).filter(e=>!e.getAttribute("aria-hidden")&&!e.getAttribute("aria-disabled")&&ru(e))}function H3(r){return function(t){if(ue(t)==il&&r){let i=ZS(r);if(i.length===0)return;let o=i[0],n=i[i.length-1];t.shiftKey&&document.activeElement===o?(t.preventDefault(),W(n).trigger("focus")):!t.shiftKey&&document.activeElement===n?(t.preventDefault(),W(o).trigger("focus")):document.activeElement&&!r.contains(document.activeElement)&&(t.preventDefault(),W(o).trigger("focus"))}}}kt();function cp(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(r){let e=Math.random()*16|0;return(r=="x"?e:e&3|8).toString(16)})}var{IfElse:A8}=wo.Components,G8=500,ec=5,ry=2,nM=class extends wo.Class{constructor(){super(...arguments),this.offsetLeft=0}init(){this.uuid=this.props.uuid()}gravity(){var e,t;return((t=(e=this.props).gravity)==null?void 0:t.call(e))||"s"}template(){return wo.createElement("div",{class:()=>{var e,t,i,o;return{"dcg-tooltip-positioning-container":!0,"dcg-tooltip-gravity-n-s":this.gravity()==="n"||this.gravity()==="s","dcg-tooltip-gravity-e-w":this.gravity()==="e"||this.gravity()==="w","dcg-tooltip-theme-light":((t=(e=this.props).theme)==null?void 0:t.call(e))==="light","dcg-tooltip-theme-dark":((o=(i=this.props).theme)==null?void 0:o.call(i))!=="light"}},style:()=>{var e,t,i,o;return{top:`${this.props.hitAreaRect().top+(((t=(e=this.props).offset)==null?void 0:t.call(e).top)||0)}px`,left:`${this.props.hitAreaRect().left+(((o=(i=this.props).offset)==null?void 0:o.call(i).left)||0)}px`,width:`${this.props.hitAreaRect().width}px`,height:`${this.props.hitAreaRect().height}px`}}},wo.createElement("div",{class:wo.const("dcg-tooltip-message-container"),style:this.bindFn(this.getMessageStyle)},wo.createElement("div",{role:wo.const("tooltip"),id:this.const(this.uuid),class:()=>({"dcg-tooltip-message":!0,"dcg-sticky-not-stuck":this.props.isStickyAndNotStuck()}),onMount:e=>this.tooltipMessage=e,style:()=>({left:`${Math.round(this.offsetLeft)}px`})},A8(()=>!!this.props.customTooltipView,{true:()=>this.props.customTooltipView(),false:()=>wo.createElement("span",null,this.props.tooltip)}))),wo.createElement("div",{class:()=>({"dcg-tooltip-arrow":!0,[this.getTooltipGravityClass()]:!0}),style:()=>{var e,t;return((t=(e=this.props).theme)==null?void 0:t.call(e))==="light"?this.getArrowWithBorderStyle():this.getSolidArrowStyle()}}))}updatePositionIfNecessary(){if(this.gravity()!=="s"&&this.gravity()!=="n")return;let e=this.tooltipMessage.getBoundingClientRect(),t=this.tooltipMessage.closest(".dcg-tap-container");if(!t)return;let i=t.getBoundingClientRect();e.right+ry>i.right?this.offsetLeft=i.right-e.right-ry:e.left-ry<i.left&&(this.offsetLeft=i.left-e.left+ry),this.offsetLeft!==0&&this.update()}didMount(){this.updatePositionIfNecessary()}getTooltipGravityClass(){switch(this.gravity()){case"n":return"dcg-tooltip-gravity-n";case"s":return"dcg-tooltip-gravity-s";case"e":return"dcg-tooltip-gravity-e";case"w":return"dcg-tooltip-gravity-w"}}getArrowWithBorderStyle(){let e=this.gravity(),t=this.getBackgroundColor(),i="#bbb",o="8px",n={width:o,height:o,border:`1px solid ${i}`,background:t};switch(e){case"s":return{...n,top:"100%",left:"50%","margin-top":"1px","border-right":"0","border-bottom":"0"};case"n":return{...n,bottom:"100%",left:"50%","margin-bottom":"1px","border-left":"0","border-top":"0"};case"e":return{...n,top:"50%",left:"100%","margin-left":"1px","border-right":"0","border-top":"0"};case"w":return{...n,top:"50%",right:"100%","margin-right":"1px","border-left":"0","border-bottom":"0"};default:return e}}getSolidArrowStyle(){let e=this.gravity(),t=this.getBackgroundColor(),i=`transparent transparent ${t} transparent`,o=`${t} transparent transparent transparent`,n=`transparent ${t} transparent transparent`,a=`transparent transparent transparent ${t}`,s=`-${ec}px`;switch(e){case"s":return{top:"100%",left:"50%",border:`${ec}px solid transparent`,"border-color":i,"margin-top":s,"margin-left":s};case"n":return{bottom:"100%",left:"50%",border:`${ec}px solid transparent`,"border-color":o,"margin-bottom":s,"margin-left":s};case"e":return{top:"50%",left:"100%",border:`${ec}px solid transparent`,"border-color":n,"margin-left":`-${ec}px`,"margin-top":s};case"w":return{top:"50%",right:"100%",border:`${ec}px solid transparent`,"border-color":a,"margin-right":s,"margin-top":s};default:return e}}getBackgroundColor(){var e,t;return((t=(e=this.props).theme)==null?void 0:t.call(e))==="light"?"#fff":this.props.isStickyAndNotStuck()?"#666":"#000"}getMessageStyle(){let e=this.props.hitAreaRect(),t=this.gravity(),i=this.props.maxWidth();switch(t){case"s":return{top:"100%",width:`${i}px`,transform:"translate(-50%, 0)",left:`${.5*e.width}px`,"margin-top":`${ec}px`,"text-align":"center"};case"n":return{bottom:"100%",width:`${i}px`,transform:"translate(-50%, 0)",left:`${.5*e.width}px`,"margin-bottom":`${ec}px`,"text-align":"center"};case"e":return{transform:"translate(0, -50%)",left:"100%",width:`${i}px`,top:`${.5*e.height}px`,"margin-left":`${ec}px`,"text-align":"left"};case"w":return{transform:"translate(0, -50%)",right:"100%",width:`${i}px`,top:`${.5*e.height}px`,"margin-right":`${ec}px`,"text-align":"right"};default:return t}}};function V8(){return document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement}var Ce=class extends wo.Class{init(){this.uuid=`dcg-tooltip-${cp()}`}template(){return wo.createElement("div",{class:()=>{var e,t;return{"dcg-tooltip-hit-area-container":!0,"dcg-display-block":(t=(e=this.props).displayBlock)==null?void 0:t.call(e),"dcg-tooltip-disabled":this.props.disabled&&this.props.disabled()}},handleevent:wo.const("true"),didMount:e=>{this.isMounted=!0,this.hitAreaNode=e,this.setupEventListeners(this.hitAreaNode)},onTap:()=>{if(this.shouldStickOnTargetClick())if(this.isStuck)this.clearTimeouts(),this.hideTooltip();else{if(this.props.disabled&&this.props.disabled())return;this.showTooltip(),this.stickTooltip()}else if(this.shouldShowOnTapstart()){if(this.props.disabled&&this.props.disabled())return;this.showTooltip(),this.setUpHideOnExternalMousedown()}else this.hideTooltipImmediately()}},this.children)}shouldShowOnTapstart(){return this.props.showOnTapstart&&this.props.showOnTapstart()}didUpdate(){this.updateTooltip()}updateTooltip(){if(!this.wrapperRef)return;if(!this.props.tooltip()){this.hideTooltip();return}let e=this.hitAreaNode.getBoundingClientRect(),t=this.wrapperRef.elt.getBoundingClientRect(),{originalTop:i,originalLeft:o}=this.wrapperRef,n=e.top-t.top,a=e.left-t.left;Math.abs(n-i)>3||Math.abs(a-o)>3?this.hideTooltip():this.wrapperRef.view.update()}handleShowEvent(e){if(this.props.disabled&&this.props.disabled())return;let t=this.props.delay?this.props.delay():G8;this.clearTimeouts(),this.showTooltipTimeout=setTimeout(e,t)}hideTooltipImmediately(){this.clearTimeouts(),this.hideTooltip()}handleHideEvent(){this.clearTimeouts(),this.hideTooltipTimeout=setTimeout(this.bindFn(this.hideTooltip),150)}setupEventListeners(e){W(e).on("tipsyshow",t=>{t.target===e&&this.handleShowEvent(()=>{this.showTooltip()})}).on("tipsyhide",t=>{t.target!==e||this.isStuck||this.handleHideEvent()})}willUnmount(){this.clearTimeouts(),this.isMounted=!1,this.hideTooltip()}setUpHideOnExternalMousedown(){W(document).on(`mousedown.dcg-tooltip-${this.uuid} touchstart.dcg-tooltip-${this.uuid} pointerdown.dcg-tooltip-${this.uuid}`,e=>{this.wrapperRef&&(this.hitAreaNode.contains(e.target)||this.wrapperRef.elt.contains(e.target)||this.hideTooltip())})}stickTooltip(){this.isMounted&&this.wrapperRef&&(this.isStuck||(this.setUpHideOnExternalMousedown(),this.isStuck=!0,this.updateTooltip()))}clearTimeouts(){clearTimeout(this.showTooltipTimeout),clearTimeout(this.hideTooltipTimeout)}showTooltip(){var g,b,C;if(!this.isMounted||this.wrapperRef||!this.props.tooltip())return;let e=this.hitAreaNode.getBoundingClientRect(),t=document.createElement("div");t.className="dcg-tooltip-mount-pt";let i=this.hitAreaNode.closest(".dcg-tap-container"),o=V8();(!!o&&o.contains(this.hitAreaNode)&&o.closest(".dcg-tap-container")?o:i).appendChild(t);let a=t.getBoundingClientRect(),s=e.left-a.left,l=e.top-a.top,c=200;if((b=(g=this.props).noWrap)!=null&&b.call(g)){let S=(C=t.closest(".dcg-tap-container"))==null?void 0:C.getBoundingClientRect();S&&(c=S.width-2*ry)}let d={...this.props,isStickyAndNotStuck:()=>this.shouldStickOnTargetClick()&&!this.isStuck,maxWidth:()=>c,hitAreaRect:()=>({top:l||0,left:s||0,width:e.width||0,height:e.height||0}),uuid:()=>this.uuid};this.setupEventListeners(t),W(t).on("dcg-tap",()=>{this.shouldStickOnTargetClick()&&this.stickTooltip()});let u=wo.mountToNode(nM,t,d);W(document).on(`keydown.dcg-tooltip-${this.uuid}`,S=>{ue(S)===_o&&this.hideTooltip()});let h=()=>this.updateTooltip();window.addEventListener("scroll",h,!0),this.wrapperRef={elt:t,view:u,originalLeft:s,originalTop:l,onScroll:h},this.assignAriaDescribedBy()}hideTooltip(){this.clearTimeouts(),this.wrapperRef&&(this.isStuck=!1,W(document).off(`.dcg-tooltip-${this.uuid}`),window.removeEventListener("scroll",this.wrapperRef.onScroll,!0),this.restoreAriaDescribedBy(),wo.unmountFromNode(this.wrapperRef.elt),this.wrapperRef.elt.parentNode&&this.wrapperRef.elt.parentNode.removeChild(this.wrapperRef.elt),this.wrapperRef=void 0)}assignAriaDescribedBy(){let e=ZS(this.hitAreaNode)[0]||this.hitAreaNode;this.originalDescribedBy=e.getAttribute("aria-describedby"),e.setAttribute("aria-describedby",this.uuid)}restoreAriaDescribedBy(){let e=ZS(this.hitAreaNode)[0]||this.hitAreaNode;this.originalDescribedBy?e.setAttribute("aria-describedby",this.originalDescribedBy):e.removeAttribute("aria-describedby")}shouldStickOnTargetClick(){return!!this.props.sticky&&this.props.sticky()}};var id=__dcg_shared_module_exports__['e']($());var eE=class extends id.Class{template(){return id.createElement("div",{class:id.const("dcg-dot-dot-dropdown")},id.createElement("span",null),id.createElement("span",null),id.createElement("span",null))}};var Sa=__dcg_shared_module_exports__['e']($());var hm=class extends Sa.Class{template(){return Sa.createElement("span",{class:Sa.const("dcg-navigate-back"),onTap:this.props.onBack,"aria-label":this.props.ariaLabel,role:Sa.const("button"),tabindex:Sa.const("0"),handleEvent:Sa.const("true"),manageFocus:this.const(Fe({controller:this.props.controller(),location:{type:"geo-header-back-link"}}))},Sa.createElement("i",{class:Sa.const("dcg-icon-chevron-left"),"aria-hidden":Sa.const("true")}),Sa.createElement("div",{class:Sa.const("dcg-navigate-back-message")},this.props.message))}};var pr=__dcg_shared_module_exports__['e']($());var $a=__dcg_shared_module_exports__['e']($());var He=class extends $a.Class{template(){return $a.createElement("div",{role:$a.const("checkbox"),tabindex:()=>this.props.disabled&&this.props.disabled()?-1:0,"aria-label":()=>{var e,t;return(t=(e=this.props).ariaLabel)==null?void 0:t.call(e)},"aria-labelledby":()=>{var e,t;return(t=(e=this.props).labelledBy)==null?void 0:t.call(e)},"aria-describedby":()=>{var e,t;return(t=(e=this.props).describedBy)==null?void 0:t.call(e)},"aria-disabled":()=>this.props.disabled&&this.props.disabled()?!0:void 0,"aria-checked":()=>this.props.checked(),"aria-required":()=>this.props.required?this.props.required():void 0,manageFocus:()=>{var e,t;return(t=(e=this.props).manageFocus)==null?void 0:t.call(e)},class:()=>({"dcg-component-checkbox":!0,"dcg-checked":this.props.checked(),"dcg-disabled":this.props.disabled&&this.props.disabled(),"dcg-small":this.props.small&&this.props.small(),[this.props.class===void 0?"":this.props.class()]:this.props.class!==void 0}),style:()=>this.props.style?this.props.style():{},onTap:this.bindFn(this.onChange)},$a.createElement("span",{class:$a.const("dcg-checkbox")},$a.createElement("i",{class:$a.const("dcg-icon-check"),"aria-hidden":$a.const("true")})),$a.createElement("span",{class:$a.const("dcg-checkbox-children")},this.children))}onChange(e){let t=e.target;t&&t.getAttribute("href")||this.props.disabled&&this.props.disabled()||this.props.onChange(!this.props.checked())}};var Ln=__dcg_shared_module_exports__['e']($());var{Input:P8,If:L8}=Ln.Components,tE=class extends Ln.Class{init(){this.controller=this.props.controller(),this.cacheFolderList(),this.newFolderTitle=""}willUpdate(){this.cacheFolderList()}template(){return Ln.createElement(L8,{predicate:()=>this.getMovableItemCount()>0},()=>Ln.createElement("div",{class:Ln.const("dcg-move-to-folder")},Ln.createElement("div",{class:Ln.const("dcg-move-to-folder-title")},this.bindFn(this.getMoveMessage)),Ln.createElement("div",{class:Ln.const("dcg-move-to-folder-flex")},Ln.createElement(P8,{"aria-label":this.bindFn(this.getMoveMessage),value:()=>this.newFolderTitle,onInput:e=>{this.newFolderTitle=e,this.update()},placeholder:()=>this.controller.s("graphing-calculator-label-geometry-move-to-folder-placeholder"),didMount:e=>{e.onkeydown=function(t){let i=ue(t);(i==="Backspace"||i==="Del")&&t.stopPropagation()}},onEnterPressed:this.bindFn(this.onEnterPressed)}),Ln.createElement("div",{class:()=>({"dcg-btn-blue":!0,"dcg-disabled":!this.newFolderTitle}),role:Ln.const("button"),tabindex:()=>this.newFolderTitle?0:-1,onTap:this.bindFn(this.createNewFolder)},()=>this.controller.s("graphing-calculator-button-move-to-folder-action")))))}getMovableItemCount(){return this.controller.getAllSelectedItems().filter(t=>!this.controller.isItemReadonly(t.id)).length}getMoveMessage(){return this.controller.s("graphing-calculator-text-geometry-move-to-folder-message",{count:__dcg_shared_module_exports__['jb'](this.getMovableItemCount())})}onEnterPressed(){let e=!1;this.folderList.forEach(t=>{t.title===this.newFolderTitle&&(e=!0,this.chooseFolder(t.id))}),e||this.createNewFolder()}chooseFolder(e){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"folderId",value:e}})}createNewFolder(){this.newFolderTitle&&this.controller.dispatch({type:"update-all-selected-items",update:{prop:"folderId",value:this.newFolderTitle,createFolder:!0}})}cacheFolderList(){this.folderList=[],this.controller.getAllItemModels().forEach(e=>{e.type==="folder"&&!this.controller.isGeoFolder(e)&&this.folderList.push(e)})}};var nE=__dcg_shared_module_exports__['e']($());var Yt=__dcg_shared_module_exports__['e']($());var rE=__dcg_shared_module_exports__['e']($());var O8=.9,Vu=class extends rE.Class{template(){return rE.createElement("div",{class:()=>{var e,t;return{"dcg-color-swatch":!0,"dcg-forced-color-none":!0,"dcg-color-evaluation":(t=(e=this.props).isEvaluation)==null?void 0:t.call(e),"dcg-light-color":nC(this.props.color(),this.props.invertSwatches(),O8)}},style:()=>({background:xg(this.props.color())})})}};var iy=__dcg_shared_module_exports__['e']($());var gm=class extends iy.Class{template(){return iy.createElement(Ce,{...this.props,customTooltipView:()=>iy.createElement(ke,{latex:this.props.tooltip,config:this.const({})}),theme:this.const("light"),noWrap:this.const(!0)},this.children)}};var{For:W3,If:iE}=Yt.Components,vo=class extends Yt.Class{init(){this.controller=this.props.controller()}template(){return Yt.createElement("div",{class:Yt.const("dcg-color-picker-container")},Yt.createElement(W3,{each:()=>this.getColorValues()},Yt.createElement("div",{class:Yt.const("dcg-color-picker-menu dcg-do-not-blur")},e=>Yt.createElement("div",{class:Yt.const("dcg-color-tile"),handleevent:Yt.const("true"),role:Yt.const("button"),tabindex:Yt.const("0"),"aria-label":()=>hu(this.controller,e),"aria-pressed":()=>this.isSelected(e),onTap:()=>this.props.onColorSelected(e)},Yt.createElement(Vu,{color:()=>({type:"single-color",value:e}),invertSwatches:()=>this.controller.invertSwatches()}),Yt.createElement(iE,{predicate:()=>this.isSelected(e)},()=>Yt.createElement("i",{class:Yt.const("dcg-icon-check"),"aria-hidden":Yt.const("true")}))))),Yt.createElement(iE,{predicate:()=>this.getUniqueCustomColors().length>0},()=>Yt.createElement(W3,{each:this.bindFn(this.getUniqueCustomColors),key:e=>e.assignmentLatex},Yt.createElement("div",{class:Yt.const("dcg-color-picker-menu dcg-do-not-blur")},e=>Yt.createElement(gm,{tooltip:()=>e.assignmentLatex},Yt.createElement("div",{class:Yt.const("dcg-color-tile"),handleevent:Yt.const("true"),role:Yt.const("button"),tabindex:Yt.const(0),"aria-label":()=>uo(e.assignmentLatex),"aria-pressed":()=>this.props.colorLatex()===e.assignmentLatex,onTap:()=>this.props.onCustomColorSelected(e.assignmentLatex)},Yt.createElement(Vu,{color:()=>this.getColorValue(e),invertSwatches:()=>this.controller.invertSwatches()}),Yt.createElement(iE,{predicate:()=>this.props.colorLatex()===e.assignmentLatex},()=>Yt.createElement("i",{class:()=>this.getCheckmarkClass(e),"aria-hidden":Yt.const("true")})),Yt.createElement(iE,{predicate:()=>{var t,i;return((i=(t=this.props).customColorVisibility)==null?void 0:i.call(t))==="suppressed"}},()=>Yt.createElement("i",{class:Yt.const("dcg-icon-lock")}))))))))}hideColorFunctions(){var e,t,i;return(i=(t=(e=this.props).hideColorFunctions)==null?void 0:t.call(e))!=null?i:!1}isSelected(e){var t=this.props.colorLatex();return t&&__dcg_shared_module_exports__['xa'](this.getUniqueCustomColors(),"assignmentLatex").indexOf(t)>=0?!1:this.props.selectedColor()===e}getColorValues(){return __dcg_shared_module_exports__['Ma'](this.controller.getColors())}getUniqueCustomColors(){if(this.props.customColorVisibility&&this.props.customColorVisibility()==="hidden")return[];let e=[];e.push(...this.controller.getAllColorAssignments()),this.hideColorFunctions()||e.push(...this.controller.getAllColorFunctionAssignments());let t=__dcg_shared_module_exports__['Ca'](e,i=>i.assignmentLatex);return e.filter(i=>t[i.assignmentLatex]===1)}getColorValue(e){switch(e.id){case"shader":return{type:e.id};default:let t=this.controller.getColorById(e.id);return Array.isArray(t)?{type:"color-array",value:t}:/^data:image/.test(t)?{type:"image",value:t}:{type:"single-color",value:t}}}getCheckmarkClass(e){return nC(this.getColorValue(e),!1)?`dcg-icon-check ${a2(this.getColorValue(e),!1)?"dcg-light-color":"dcg-mixed-color"}`:"dcg-icon-check"}};var oE=class extends nE.Class{init(){this.controller=this.props.controller(),this.cacheSelectedColor()}template(){return nE.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.colorLatex,selectedColor:()=>this.selectedColor,onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected),customColorVisibility:this.bindFn(this.getCustomColorVisibility)})}getCustomColorVisibility(){return this.controller.getGraphSettings().hideCustomColors?this.controller.shouldShowAuthorFeatures()?"suppressed":"hidden":"visible"}onCustomColorSelected(e){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"colorLatex",value:e}})}cacheSelectedColor(){let e=__dcg_shared_module_exports__['ta'](this.controller.getAllSelectedItems(),t=>t.type==="expression");if(e.length===0){this.selectedColor="",this.colorLatex="";return}this.selectedColor=Kc(e[0]),this.colorLatex=e[0].colorLatex;for(let t=1;t<e.length;t++)if(this.selectedColor!==Kc(e[t])||this.colorLatex!==e[t].colorLatex){this.selectedColor="",this.colorLatex="";return}}willUpdate(){this.cacheSelectedColor()}onColorSelected(e){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"color",value:e}})}getFirstSelectedExpression(){var e=this.controller.getAllSelectedItems();for(let t of e)if(t.type==="expression")return t}};var Ea=__dcg_shared_module_exports__['e']($());var an=__dcg_shared_module_exports__['e']($());var{For:_8,If:F8}=an.Components,ri=class extends an.Class{init(){this.config=this.props.staticConfig()}template(){return an.createElement(_8,{each:()=>this.config,key:e=>e.key},an.createElement("div",{class:an.const("dcg-segmented-control-container"),role:an.const("group"),"aria-label":this.props.ariaGroupLabel},e=>an.createElement("div",{class:()=>({"dcg-segmented-control-btn":!0,"dcg-selected":e.selected(),"dcg-theme-mini":this.getTheme()==="mini","dcg-theme-default":this.getTheme()==="default","dcg-disabled":this.isDisabled(),[e.class?e.class():""]:!!e.class}),role:an.const("button"),tabindex:an.const(0),"aria-label":()=>this.getAriaLabel(e),style:()=>({"min-width":this.props.minButtonWidth?this.props.minButtonWidth()+"px":void 0}),"aria-pressed":()=>e.selected(),onTap:()=>{this.isDisabled()||e.onSelect()},manageFocus:()=>{if(e.focusHelperOptions)return Fe(e.focusHelperOptions)}},an.createElement(Ce,{tooltip:()=>e.tooltip?e.tooltip():"",gravity:()=>e.tooltipGravity?e.tooltipGravity():"s",disabled:()=>!(e.tooltip&&e.tooltip())},an.createElement("div",{class:an.const("dcg-segmented-control-interior")},()=>e.label?e.label():"",an.createElement(F8,{predicate:()=>!!e.icon},()=>an.createElement("i",{class:()=>e.icon?e.icon():""})))))))}getAriaLabel(e){return e.ariaLabel?e.ariaLabel():e.label?e.label():e.tooltip?e.tooltip():""}isDisabled(){return this.props.disabled&&this.props.disabled()}getTheme(){return this.props.theme?this.props.theme():"default"}};var{Input:R8,IfElse:N8}=Ea.Components,Pu=class extends Ea.Class{template(){return this.controller=this.props.controller(),Ea.createElement("div",{class:()=>({"dcg-label-visible":this.getShowLabel(),"dcg-label-container":!0,"dcg-do-blur":!0}),tapboundary:Ea.const("true"),handleEvent:Ea.const("true")},Ea.createElement(He,{onChange:this.bindFn(this.onCheckboxInput),checked:this.bindFn(this.getShowLabel)},()=>this.controller.s("graphing-calculator-button-label")+(this.getIsDisabled()?"":":")),N8(this.bindFn(this.hasEditableLabel),{true:()=>Ea.createElement("div",{class:Ea.const("dcg-editable-mode-toggle")},Ea.createElement(ri,{theme:this.const("mini"),staticConfig:this.bindFn(this.getEditableLabelOptions),ariaGroupLabel:()=>this.controller.s("graphing-calculator-narration-editable-label-mode")})),false:()=>Ea.createElement(R8,{class:()=>({"dcg-label-input":!0,"dcg-disabled-input":this.getIsDisabled(),"dcg-disabled-editable-input":this.hasEditableLabel(),"dcg-readonly":this.getIsReadonly()}),disabled:this.bindFn(this.getIsReadonly),"aria-label":()=>this.controller.s("graphing-calculator-narration-label-text"),"aria-disabled":()=>this.getIsDisabled()||this.hasEditableLabel()||this.getIsReadonly(),value:this.bindFn(this.getLabel),onInput:this.bindFn(this.onLabelInput)})}))}getEditableLabelOptions(){return[{key:"math",label:()=>this.controller.s("graphing-calculator-button-editable-math"),selected:()=>this.model().editableLabelMode==="MATH",onSelect:()=>this.setEditableLabelMode("MATH")},{key:"text",label:()=>this.controller.s("graphing-calculator-button-editable-text"),selected:()=>this.model().editableLabelMode==="TEXT",onSelect:()=>this.setEditableLabelMode("TEXT")}]}setEditableLabelMode(e){this.controller.dispatch({type:"set-item-editable-label-mode",id:this.id(),editableLabelMode:e})}getIsReadonly(){return this.controller.isItemReadonly(this.model().id)}model(){return this.props.model()}id(){return this.model().id}getLabel(){return this.model().label||""}hasEditableLabel(){return Tg(this.model())}getShowLabel(){return $s(this.model())}getIsDisabled(){return this.getLabel().length===0&&!this.getShowLabel()}onLabelInput(e){var t=e;this.controller.dispatch({type:"set-item-label",id:this.id(),label:t}),this.controller.dispatch({type:"set-item-showlabel",id:this.id(),showLabel:!!t})}onCheckboxInput(){if(this.props.useSmartPointLabeling&&this.props.useSmartPointLabeling()){this.controller.dispatch({type:"toggle-label-for-all-selected-points"});return}this.controller.dispatch({type:"set-item-showlabel",id:this.id(),showLabel:!this.getShowLabel()})}};var{If:mm}=pr.Components,aE=class extends pr.Class{init(){this.controller=this.props.controller(),this.cacheSectionValues()}willUpdate(){this.cacheSectionValues()}isIconModelFocused(){return this.controller.isFocusLocationFocused({type:"multi-select-more-icon"})}template(){return pr.createElement("div",{class:()=>({"dcg-generic-options-menu":!0,"dcg-options-menu":!0,"dcg-multi-select-options-menu":!0}),role:pr.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-options-menu")},pr.createElement("div",{class:pr.const("dcg-options-menu-section")},pr.createElement("div",{class:pr.const("dcg-multi-select-color-picker")},pr.createElement(oE,{controller:this.props.controller})),pr.createElement(mm,{predicate:()=>this.sectionValues.showPointLabels!==void 0},()=>pr.createElement("div",{class:pr.const("dcg-checkbox-section")},pr.createElement(He,{checked:()=>!!this.sectionValues.showPointLabels,onChange:this.bindFn(this.onShowPointLabelChanged)},()=>this.controller.s("graphing-calculator-button-geometry-label-points-checkbox")))),pr.createElement(mm,{predicate:()=>this.sectionValues.singleLabelableExpressionModel!==void 0},()=>pr.createElement("div",{class:pr.const("dcg-checkbox-section")},pr.createElement(Pu,{controller:this.props.controller,model:()=>this.sectionValues.singleLabelableExpressionModel,useSmartPointLabeling:()=>this.sectionValues.draggableFreePoint!==void 0}))),pr.createElement(mm,{predicate:()=>this.sectionValues.draggableFreePoint!==void 0},()=>pr.createElement("div",{class:pr.const("dcg-checkbox-section")},pr.createElement(He,{checked:()=>!!this.sectionValues.draggableFreePoint,onChange:this.bindFn(this.onDraggableFreePointChanged)},()=>this.controller.s("graphing-calculator-button-draggable")))),pr.createElement(mm,{predicate:()=>this.sectionValues.arrowMode!==void 0},()=>pr.createElement("div",null,()=>this.controller.s("graphing-calculator-text-geometry-arrow-mode",{mode:this.getArrowModeDisplayName()}))),pr.createElement(mm,{predicate:()=>this.controller.getGraphSettings().config.expressions},()=>pr.createElement(tE,{controller:this.props.controller})),pr.createElement(mm,{predicate:()=>this.sectionValues.graphInteractionDisabled!==void 0&&this.props.controller().shouldShowAuthorFeatures()},()=>pr.createElement("div",{class:pr.const("dcg-checkbox-section dcg-disable-graph-interactions")},pr.createElement(He,{checked:()=>!!this.sectionValues.graphInteractionDisabled,onChange:()=>this.toggleGraphInteractionsDisabled(),ariaLabel:()=>this.controller.s("graphing-calculator-label-disable-graph-interactions")},()=>this.controller.s("graphing-calculator-label-disable-graph-interactions"))))))}toggleGraphInteractionsDisabled(){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"disableGraphInteractions",value:!this.sectionValues.graphInteractionDisabled}})}onShowPointLabelChanged(){this.controller.dispatch({type:"toggle-label-for-all-selected-points"})}onDraggableFreePointChanged(e){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"dragMode",value:e?"XY":"NONE"}})}cacheSectionValues(){this.sectionValues=this.computeSectionValues()}computeSectionValues(){var n;let e={showPointLabels:[],singleLabelableExpressionModel:[],draggableFreePoint:[],arrowMode:[],graphInteractionDisabled:[]},t=this.controller.getAllSelectedItems();for(let a of t){e.graphInteractionDisabled.push(ba(a));let s=a.type==="expression"?(n=a.formula.geometry)==null?void 0:n.valueType:void 0;if(__dcg_shared_module_exports__['Z'](s)&&(s=__dcg_shared_module_exports__['_'](s)),a.type==="expression"&&__dcg_shared_module_exports__['$'](s))switch(s){case __dcg_shared_module_exports__['p']:e.showPointLabels.push(a.showLabel),e.singleLabelableExpressionModel.push(a),a.formula.move_strategy&&e.draggableFreePoint.push(a.dragMode!=="NONE");break;case __dcg_shared_module_exports__['x']:break;case __dcg_shared_module_exports__['D']:e.arrowMode.push(a.arrowMode);break;case __dcg_shared_module_exports__['B']:break;case __dcg_shared_module_exports__['F']:break;case __dcg_shared_module_exports__['H']:break;case __dcg_shared_module_exports__['P']:break;case __dcg_shared_module_exports__['z']:e.singleLabelableExpressionModel.push(a),e.arrowMode.push(a.arrowMode);break;case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:e.singleLabelableExpressionModel.push(a);break;case __dcg_shared_module_exports__['N']:break;default:return s}}let i={},o=t.length;for(let a in e){let s=a;switch(s){case"singleLabelableExpressionModel":{let c=e[s];o===1&&c.length===1&&(i[s]=c[0])}break;case"showPointLabels":{let c=e[s];c.length>0&&o>1&&(i[s]=__dcg_shared_module_exports__['ua'](c,d=>!!d))}break;case"draggableFreePoint":{let c=e[s];c.length>0&&(i[s]=__dcg_shared_module_exports__['va'](c))}break;case"arrowMode":break;case"graphInteractionDisabled":{i[s]=e[s].every(c=>c);break}default:return s}}return i}getArrowModeDisplayName(){let e=this.sectionValues.arrowMode;if(!e)return"";switch(e){case"NONE":return this.controller.s("graphing-calculator-text-arrow-mode-none");case"DEFAULT":return this.controller.s("graphing-calculator-text-arrow-mode-default");case"POSITIVE":return this.controller.s("graphing-calculator-text-arrow-mode-positive");case"BOTH":return this.controller.s("graphing-calculator-text-arrow-mode-both")}}};var Rt=__dcg_shared_module_exports__['e']($());var fE={};__dcg_shared_module_exports__['d'](fE,{CLCalculator:()=>pN,Label:()=>__dcg_shared_module_exports__['fb'],applyDiff:()=>fN,applyLocalizationMap:()=>xN,blankGeometryCalculatorState:()=>w9,blankGraphingCalculatorState:()=>x9,builtInFrame:()=>f9,calculateDiff:()=>gN,colorHelpers:()=>__dcg_shared_module_exports__['jd'],context:()=>m9,expressionParser:()=>kM,extractLocalizationMap:()=>yN,formatLatex:()=>SN,migrateGeoStateToCalcState:()=>Ou,migrateToLatest:()=>nl,numberToDecimalString:()=>__dcg_shared_module_exports__['xc'],numberToLatex:()=>__dcg_shared_module_exports__['wc'],parseNodes:()=>VN,parser:()=>h9,policies:()=>y9,replaceIdentifierWithLatex:()=>lT,treeQueries:()=>g9,types:()=>b9});function aM(){return{type:"folder",id:__dcg_shared_module_exports__['Rc'],title:"geometry",secret:!0}}var fm={version:Ds,randomSeed:"",graph:{viewport:{xmin:-10,ymin:-13.25,xmax:10,ymax:13.25},showGrid:!1,product:"geometry-calculator",showXAxis:!1,showYAxis:!1,degreeMode:!0},expressions:{list:[aM(),{id:"1",type:"expression"}]}};function B8(r){typeof r.min=="number"&&(r.min=""+r.min),typeof r.max=="number"&&(r.max=""+r.max),typeof r.step=="number"&&(r.step=""+r.step)}function z8(r){r.slider&&B8(r.slider),typeof r.id!="string"&&(r.id=""+r.id)}function K8(r,e){let t=U8(r)+1,i={},o,n;for(let a of r)if(z8(a),a.type==="folder")o=a.id,i[a.id]&&(a.id=""+t,t+=1),n=a.id,i[a.id]=!0,a.hasOwnProperty("folderId")&&delete a.folderId;else{if(o!==void 0&&a.folderId===o?a.folderId=n:(a.folderId&&(a.folderId=""),o=void 0,n=void 0),a.type==="table"&&Array.isArray(a.columns))for(let s of a.columns)i[s.id]&&(s.id=""+t,t+=1),i[s.id]=!0;i[a.id]&&(a.id=""+t,t+=1),i[a.id]=!0}e==="geometry-calculator"&&!i[__dcg_shared_module_exports__['Rc']]&&r.push(aM())}function $3(r,e){let t=parseFloat(e);return t!==Math.floor(t)?r:Math.max(r,t)}function U8(r){let e=0;for(let t of r)if(e=$3(e,t.id),t.type==="table"&&Array.isArray(t.column))for(let i of t.columns)$3(e,i.id);return e}function sE(r){let e=__dcg_shared_module_exports__['i'](r),t=e.graph&&e.graph.product,i=e.expressions.list;return Array.isArray(i)&&K8(i,t),e}var sM={NONE:"NONE",POSITIVE:"POSITIVE",BOTH:"BOTH"},q8={expression:!0,table:!0,image:!0,folder:!0,text:!0};function H8(r){if(r.type){if(q8.hasOwnProperty(r.type))return r.type;throw new Error("Invalid item type: '"+r.type+"'.")}return r.text!==void 0?"text":r.columns!==void 0||r.headings!==void 0?"table":"expression"}function lE(r){return r.replace(/\\(total|length|mean|median|quantile|stdev|stddev|stdDev|stdevp|stddevp|stdDevP|var|variance|cov|corr|ceil|floor|round|abs|mod|lcm|mcm|mcd|nCr|nPr|signum|sign|arcsinh|arccosh|arctanh|arccsch|arcsech|arccoth|arccsc|arcsec|arccot)/g,"\\operatorname{$1}")}function W8(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="latex"?e[t]=lE(r[t]):t==="values"?e[t]=r[t].map(lE):e[t]=r[t]);return e}function $8(r){var e=H8(r),t={},i;switch(e){case"expression":for(i in r)r.hasOwnProperty(i)&&(i==="latex"?t[i]=lE(r[i]):t[i]=r[i]);return t.type=e,t;case"table":for(i in r)r.hasOwnProperty(i)&&(i==="columns"?t[i]=r[i].map(W8):t[i]=r[i]);return t.type=e,t;case"image":for(i in r)r.hasOwnProperty(i)&&(i==="width"||i==="height"||i==="x"||i==="y"?t[i]=lE(r[i]):t[i]=r[i]);return t.type=e,t;case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t.type=e,t}}var Y3={none:sM.NONE,both:sM.BOTH,positive:sM.POSITIVE};function Y8(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="xAxisArrows"||t==="yAxisArrows"||(e[t]=r[t]));return e.xAxisArrowMode=Y3[r.xAxisArrows||"none"],e.yAxisArrowMode=Y3[r.yAxisArrows||"none"],e}function j3(r){if(r.version)throw new Error("Unexpected version: "+r.version);var e={};return e.graph=Y8(r.graph),e.expressions={list:r.expressions.list.map($8)},e.version=0,e}var j8=1;function cE(r){return r.replace(/\\(sech|csch)/g,"\\operatorname{$1}")}function J8(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="latex"?e[t]=cE(r[t]):t==="values"?e[t]=r[t].map(cE):e[t]=r[t]);return e}function X8(r){var e=r.type,t={},i;switch(e){case"expression":for(i in r)r.hasOwnProperty(i)&&(i==="latex"?t[i]=cE(r[i]):t[i]=r[i]);return t;case"table":for(i in r)r.hasOwnProperty(i)&&(i==="columns"?t[i]=r[i].map(J8):t[i]=r[i]);return t;case"image":for(i in r)r.hasOwnProperty(i)&&(i==="width"||i==="height"||i==="x"||i==="y"?t[i]=cE(r[i]):t[i]=r[i]);return t;case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t;default:throw new Error("Unexpected expression type: "+e)}}function J3(r){if(r.version)throw new Error("Unexpected version: "+r.version);var e={};return e.graph=r.graph,e.expressions={list:r.expressions.list.map(X8)},e.version=j8,e}var Q8=2,Z8="#C0504D",e7="#4F81BD",t7="#9BBB59",r7="#8064A2",i7="#F79646",o7="#000000";function X3(r){switch(r){case Z8:return __dcg_shared_module_exports__['hd'].RED;case e7:return __dcg_shared_module_exports__['hd'].BLUE;case t7:return __dcg_shared_module_exports__['hd'].GREEN;case r7:return __dcg_shared_module_exports__['hd'].PURPLE;case i7:return __dcg_shared_module_exports__['hd'].ORANGE;case o7:return __dcg_shared_module_exports__['hd'].BLACK;default:return r}}function n7(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="color"?e[t]=X3(r[t]):e[t]=r[t]);return e}function a7(r){var e=r.type,t={},i;switch(e){case"expression":for(i in r)r.hasOwnProperty(i)&&(i==="color"?t[i]=X3(r[i]):t[i]=r[i]);return t;case"table":for(i in r)r.hasOwnProperty(i)&&(i==="columns"?t[i]=r[i].map(n7):t[i]=r[i]);return t;case"image":case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t;default:throw new Error("Unexpected expression type: "+e)}}function Q3(r){if(r.version>1)throw new Error("Unexpected version: "+r.version);var e={};return e.graph=r.graph,e.expressions={list:r.expressions.list.map(a7)},e.version=Q8,e}var s7=3;function lM(r){if(typeof r=="string")return r;if(r===void 0)return"";var e=r+"";return e=e.replace(/1e\+?([-\d]+)/,"10^{$1}"),e=e.replace(/([-\d\.]+)e\+?([-\d]+)/,"$1\\cdot 10^{$2}"),e}function l7(r){var e=r.type,t={},i;switch(e){case"expression":for(i in r)r.hasOwnProperty(i)&&(i==="sliderMax"||i==="sliderMin"||i==="sliderInterval"?t[i]=lM(r[i]):i==="domain"?t[i]={max:lM(r[i].max),min:lM(r[i].min)}:t[i]=r[i]);return t.hasOwnProperty("sliderMin")&&t.sliderInterval===void 0&&(t.sliderInterval=""),t;case"image":case"table":case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t;default:throw new Error("Unexpected expression type: "+e)}}function Z3(r){if(r.version>2)throw new Error("Unexpected version: "+r.version);var e={};return e.graph=r.graph,e.expressions={list:r.expressions.list.map(l7)},e.version=s7,e}var c7=4;function eN(r){switch(r){case"point":return"POINT";case"cross":return"CROSS";case"open":return"OPEN";case"normal":return"SOLID";case"dashed":return"DASHED";case"dotted":return"DOTTED";default:return r}}function d7(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="style"?e[t]=eN(r[t]):e[t]=r[t]);return e}function p7(r){var e=r.type,t={},i;switch(e){case"expression":for(i in r)r.hasOwnProperty(i)&&(i==="style"?t[i]=eN(r[i]):t[i]=r[i]);return t;case"table":for(i in r)r.hasOwnProperty(i)&&(i==="columns"?t[i]=r[i].map(d7):t[i]=r[i]);return t;case"image":case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t;default:throw new Error("Unexpected expression type: "+e)}}function tN(r){if(r.version!==3)throw new Error("Unexpected version: "+r.version);var e={};return e.graph=r.graph,e.expressions={list:r.expressions.list.map(p7)},e.version=c7,e}function u7(r){var e={},t;for(var i in r)if(r.hasOwnProperty(i))switch(t=r[i],i){case"showAxes":e.showXAxis=t,e.showYAxis=t;break;case"showLabels":e.xAxisNumbers=t,e.yAxisNumbers=t,e.polarNumbers=t;break;case"labelXMode":e.xAxisStep=t==="pi"?Math.PI:0;break;case"labelYMode":e.yAxisStep=t==="pi"?Math.PI:0;break;default:e[i]=t}return e}function h7(r){var e={};for(var t in r)r.hasOwnProperty(t)&&(t==="showPoints"||t==="showLine"||(e[t]=r[t]));return(r.showPoints!==void 0||r.showLine!==void 0)&&(r.showPoints&&r.showLine?e.columnMode="POINTS_AND_LINES":r.showPoints?e.columnMode="POINTS":r.showLine?e.columnMode="LINES":(e.hidden=!0,e.columnMode="POINTS")),e}function g7(r){var e=r.type,t={},i;switch(e){case"expression":r.hidden===void 0?r.hasOwnProperty("graphed")?t.hidden=!r.graphed:r.hasOwnProperty("userRequestedGraphing")?t.hidden=r.userRequestedGraphing==="never":t.hidden=!1:t.hidden=r.hidden;for(i in r)if(r.hasOwnProperty(i)&&!(i==="graphed"||i==="userRequestedGraphing"||i==="hidden")&&i!=="slider"){if(i==="color"){typeof r.color=="object"?t.color=r.color.value:t.color=r.color;continue}if(i==="style"){t.style=r.style==="normal"?"SOLID":r.style;continue}if(i==="sliderInterval"){t.sliderInterval=r.sliderInterval==="undefined"?"":r.sliderInterval;continue}t[i]=r[i]}return t;case"table":if(r.headings||r.columns){var o=r.headings?r.headings:r.columns;if(t.columns=o.map(h7),r.rows)for(var n=0;n<t.columns.length;n++){var a=t.columns[n];a.values=[];for(var s=0;s<r.rows.length;s++)a.values.push(r.rows[s][n])}}for(i in r)r.hasOwnProperty(i)&&(i==="rows"||i==="headings"||i==="columns"||(t[i]=r[i]));return t;case"image":case"text":case"folder":for(i in r)r.hasOwnProperty(i)&&(t[i]=r[i]);return t;default:throw new Error("Unexpected expression type: "+e)}}function rN(r){if(r.version!==4)throw new Error("Unexpected version: "+r.version);var e={version:5,graph:u7(r.graph),expressions:{list:r.expressions.list.map(g7)}};return e}var m7=6;function f7(r){return r.length<2?!1:r[0]==="`"&&r[r.length-1]==="`"}function b7(r){if(f7(r))return{raw:r,parts:[r]};for(var e=["[a-zA-Z][0-9]*","[a-zA-Z]_[a-zA-Z0-9]+","[a-zA-Z]_\\{[a-zA-Z0-9]+\\}"],t="({"+e.join("})|({")+"})",i=new RegExp(t,"g"),o=[],n=0,a=0,s;s=i.exec(r);){a=s.index,a>n&&o.push(r.substr(n,a-n));var l=s[0],c=l.replace(/[{}\$]/g,"").replace(/^([a-zA-Z])([0-9]+)$/,"$1_$2");o.push({symbol:c,str:l}),n=s.index+l.length}return n<r.length&&o.push(r.substr(n)),{raw:r,parts:o}}function y7(r){var e={};for(var t in r)if(r.hasOwnProperty(t)&&t!=="style")if(t==="values"&&(e[t]=r[t].map(function(i){return i?""+i:""})),t==="columnMode"&&!r.hasOwnProperty("points")&&!r.hasOwnProperty("lines"))switch(r[t]){case"LINES":e.points=!1,e.lines=!0;break;case"POINTS_AND_LINES":e.points=!0,e.lines=!0;break;default:e.points=!0,e.lines=!1}else e[t]=r[t];return e.hasOwnProperty("pointStyle")||(e.pointStyle="POINT"),e.hasOwnProperty("lineStyle")||(e.lineStyle="SOLID"),e.id=""+e.id,e}var iN={sliderMin:"min",sliderMax:"max",sliderInterval:"step",sliderHardMin:"hardMin",sliderHardMax:"hardMax",sliderAnimationPeriod:"animationPeriod",sliderLoopMode:"loopMode",sliderPlayDirection:"playDirection",sliderIsPlaying:"isPlaying"};function x7(r){var e=b7(r),t="";return __dcg_shared_module_exports__['ra'](e.parts,function(i){t+=typeof i=="object"&&i.str?"$"+i.str:i}),t}function w7(r,e){var t=r.latex.split("=");if(t.length===2){var i=xr(t[1],e);if(isFinite(i)){var o=r.slider.hardMin?xr(r.slider.min||"-10",e):void 0,n=r.slider.hardMax?xr(r.slider.max||"10",e):void 0,a=r.slider.step?xr(r.slider.step,e):void 0,s=__dcg_shared_module_exports__['_b']({target:i,step:a,hardMin:o,hardMax:n});s.min||(delete r.slider.hardMin,delete r.slider.min),s.max||(delete r.slider.hardMax,delete r.slider.max),s.step||delete r.slider.step}}}function v7(r,e,t,i){var o=r.type,n={},a;switch(o){case"folder":for(a in r)r.hasOwnProperty(a)&&(a==="memberIds"||(n[a]=r[a]));break;case"expression":for(a in r)if(r.hasOwnProperty(a)){if(a==="style"&&!r.hasOwnProperty("pointStyle")&&!r.hasOwnProperty("lineStyle")){var s=r[a];__dcg_shared_module_exports__['wa'](["POINT","OPEN","CROSS"],s)?(n.pointStyle=s,n.lineStyle="SOLID"):__dcg_shared_module_exports__['wa'](["SOLID","DASHED","DOTTED"],s)?(n.pointStyle="POINT",n.lineStyle=s):(n.pointStyle="POINT",n.lineStyle="SOLID");continue}iN.hasOwnProperty(a)?(n.slider=n.slider||{},n.slider[iN[a]]=r[a]):n[a]=r[a],r.label&&(n.label=x7(r.label))}n.latex&&n.slider&&!n.slider.isPlaying&&w7(n,i),n.hasOwnProperty("fillOpacity")||(n.fillOpacity=.4),n.label===!1&&(n.label=""),n.labelSize||(n.labelSize="medium"),n.labelOrientation||(n.labelOrientation="default"),n.verticalLabel||(n.verticalLabel=!1),n.interactiveLabel||(n.interactiveLabel=!1);break;case"image":for(a in r)!r.hasOwnProperty(a)||a==="x"||a==="y"||(n[a]=r[a]);n.center="\\left("+(r.x||"0")+","+(r.y||"0")+"\\right)",n.angle=r.angle||"0",n.foreground=!!n.foreground;break;case"text":for(a in r)r.hasOwnProperty(a)&&(n[a]=r[a]);break;case"table":for(a in r)r.hasOwnProperty(a)&&(a==="columns"?n[a]=r[a].map(y7):n[a]=r[a]);break;default:throw new Error("Unexpected expression type: "+o)}if(n.id=""+n.id,r.type==="folder")e.folderId=n.id,e.memberIds=r.memberIds,n.folderId="";else{var l=t[n.id];e.memberIds&&e.memberIds[l]?n.folderId=e.folderId:(n.folderId="",e.folderId=void 0,e.memberIds=void 0)}return n}function C7(r){for(var e=0,t=/^[0-9]+$/,i=r.length-1;i>=0;i--){var o=r[i],n=o.id,a;if(t.test(n)&&(a=parseInt(n,10),a>e&&(e=a)),o.type==="table"&&o.columns)for(var s=o.columns.length-1;s>=0;s--)n=o.columns[s].id,t.test(n)&&(a=parseInt(n,10),a>e&&(e=a))}return e+1}function oN(r){if(r.version!==5)throw new Error("Unexpected version: "+r.version);var e=!!(r.graph&&r.graph.degreeMode),t=r.expressions.list,i=-1,o={},n={},a={};return{version:m7,graph:r.graph,expressions:{list:t.map(function(l){return o[l.id]?(i===-1&&(i=C7(t)),n[i]=l.id,l=__dcg_shared_module_exports__['i'](l),l.id=i+"",i+=1):n[l.id]=l.id,o[l.id]=!0,v7(l,a,n,e)})}}}function cM(r){if(r.version!==6)throw new Error(`Unexpected version: ${r.version}`);let e=r.expressions.list.map(t=>{if(t.type==="expression"&&t.domain){let i={...t,parametricDomain:{min:t.domain.min,max:t.domain.max}};return delete i.domain,i}return t});return{version:7,randomSeed:r.randomSeed,graph:r.graph,expressions:{list:e}}}function S7(r){return r.length===1?`0${r}`:r}function tc(){let r=new Uint8Array(16);if(typeof crypto!="undefined")crypto.getRandomValues(r);else if(typeof msCrypto!="undefined")msCrypto.getRandomValues(r);else return __dcg_shared_module_exports__['nb'](Date.now().toString()+Math.random().toString());return Array.prototype.slice.call(r).map(t=>S7(t.toString(16))).join("")}function dM(r){let e=r.split("_");return e.length===2&&e[1]&&e[1].length===1?e[0]+"_{"+e[1]+"}":r}function nN(r){return r=__dcg_shared_module_exports__['i'](r),!r.rules&&(r.assignment||r.expression)&&(r.rules=[{id:"1",assignment:r.assignment||"",expression:r.expression||""}]),delete r.assignment,delete r.expression,r}function oy(r){let e=/\\operatorname(?:\{stdev\}p|\{stddev\}p|\{stdDev\}P|\{var\}iance)/g;return r.replace(e,t=>{switch(t){case"\\operatorname{stdev}p":return"\\operatorname{stdevp}";case"\\operatorname{stddev}p":return"\\operatorname{stddevp}";case"\\operatorname{stdDev}P":return"\\operatorname{stdDevP}";case"\\operatorname{var}iance":return"\\operatorname{variance}";default:return""}})}function E7(r){return r.columns?{...r,columns:r.columns.map(D7)}:r}function D7(r){let{latex:e,values:t}=r,i={...r};return e&&(i.latex=oy(e),i.latex=dM(i.latex)),t&&(i.values=t.map(function(o){return o?oy(o):""})),i}function pM(r){if(r.version!==7)throw new Error(`Unexpected version: ${r.version}`);let e=r.expressions.list.map(t=>{if(t.type==="image"){let i={...t,opacity:""};t.hasOwnProperty("stringOpacity")?i.opacity=t.stringOpacity:t.hasOwnProperty("opacity")?i.opacity=t.opacity+"":delete i.opacity,t.clickableInfo&&(i.clickableInfo=nN(t.clickableInfo)),delete i.stringOpacity;for(let o in t)if(o==="x"||o==="y"||o==="width"||o==="height"){let n=t[o];n&&(i[o]=oy(n))}return i}else if(t.type==="expression"){let i={...t,fillOpacity:"",lineStyle:"SOLID"};if(t.lineStyle==="SINGLE_PIXEL"?i.lineWidth="1":t.hasOwnProperty("lineStyle")?i.lineStyle=t.lineStyle:delete i.lineStyle,i.hasOwnProperty("lineWidth")||(i.lineWidth=""),i.hasOwnProperty("lineOpacity")||(i.lineOpacity=""),i.hasOwnProperty("pointOpacity")||(i.pointOpacity=""),i.hasOwnProperty("pointSize")||(i.pointSize=""),i.hasOwnProperty("colorLatex")||(i.colorLatex=""),typeof t.latex=="string"&&(i.latex=oy(t.latex)),t.latex&&(i.latex=oy(t.latex)),t.hasOwnProperty("stringFillOpacity")?i.fillOpacity=t.stringFillOpacity:t.hasOwnProperty("fillOpacity")?i.fillOpacity=t.fillOpacity+"":delete i.fillOpacity,i.slider&&t.slider&&t.slider.newLoopMode&&(i.slider=__dcg_shared_module_exports__['i'](i.slider),i.slider.loopMode=t.slider.newLoopMode,delete i.slider.newLoopMode),i.residualVariable&&(i.residualVariable=dM(i.residualVariable)),i.regressionParameters){i.regressionParameters={};for(let o in t.regressionParameters){let n=dM(o),a=t.regressionParameters[o];i.regressionParameters[n]=a}}return t.clickableInfo&&(i.clickableInfo=nN(t.clickableInfo)),i}else if(t.type==="table")return E7(t);return t});return{version:8,randomSeed:r.randomSeed||tc(),graph:r.graph,expressions:{list:e}}}function k7(r,e,t){if(r.verticalLabel)switch(delete e.verticalLabel,t?e.labelAngle="90":e.labelAngle="\\frac{\\pi}{2}",r.labelOrientation){case"above":e.labelOrientation="right";break;case"below":e.labelOrientation="left";break;case"left":e.labelOrientation="above";break;case"right":e.labelOrientation="below";break}r.extendedLabelOrientation&&(e.labelOrientation=r.extendedLabelOrientation,delete e.extendedLabelOrientation)}function T7(r,e){if(r.vizProps)switch(r.vizProps.dotplotSize){case"small":e.pointSize="9";break;case"large":e.pointSize="20";break}if(r.vizProps){let t={...r.vizProps};delete t.dotplotSize,Object.keys(t).length?e.vizProps=t:delete e.vizProps}}function uM(r){return r.filter(({assignment:e,expression:t})=>!!e&&!!t)}function hM(r){return r.map(({assignment:e,expression:t})=>`${e}\\to ${t}`).join(",")||""}function gM(r){let e=JSON.stringify(r),t=/_(\d)|_\{(\d+)\}/g,i,o={};for(;(i=t.exec(e))!==null;){let n=i[1]!==void 0?i[1]:i[2];o[n]=!0}return o}function mM(r,e){for(let t=e+1;;t++)if(!r[t])return t}function aN(r){let e=JSON.stringify(r),t=/"(\d+)"/g,i,o={};for(;(i=t.exec(e))!==null;){let n=i[1]!==void 0?i[1]:i[2];o[n]=!0}return o}function sN(r,e){for(let t=e+1;;t++)if(!r[t])return t}function I7(r){if(/^\d+$/.test(r)){let e=parseInt(r,10);return e===0?"\\infty":""+Math.round(1e3/e)}else return`\\frac{1000}{${r}}`}function M7(r,e){let t={handlerLatex:r,playing:!0,open:!0};return e!==void 0&&(t.minStepLatex=I7(e)),t}function fM(r){if(r.version!==8)throw new Error(`Unexpected version: ${r.version}`);var e=!1;r.graph&&r.graph.degreeMode&&(e=!0);let t=r.expressions.ticker||Zh,i=0,o,n=0,a,s=[];for(let l of r.expressions.list)switch(l.type){case"expression":{let c={...l};k7(l,c,e),T7(l,c);let d;if(l.clickableInfo&&l.clickableInfo.rules){let{rules:u,...h}=l.clickableInfo,g=h,b=uM(u),C=hM(b);if(b.length>1){o||(o=gM(r)),i=mM(o,i),a||(a=aN(r)),n=sN(a,n);let S=`A_{${i}}`;g.latex=S,d={type:"expression",id:""+n,latex:`${S}=${C}`},l.folderId!==void 0&&(d.folderId=l.folderId)}else g.latex=C;c.clickableInfo=g}c.clickableInfo&&c.clickableInfo.enabled&&c.hidden&&(c.clickableInfo.enabled=!1),s.push(c),d&&s.push(d);break}case"image":{if(l.clickableInfo&&l.clickableInfo.rules){let c={...l},{rules:d,...u}=l.clickableInfo,h=u,g=uM(d),b=hM(g),C;if(g.length>1){o||(o=gM(r)),i=mM(o,i),a||(a=aN(r)),n=sN(a,n);let S=`A_{${i}}`;h.latex=S,C={type:"expression",id:""+n,latex:`${S}=${b}`},l.folderId!==void 0&&(C.folderId=l.folderId)}else h.latex=b;c.clickableInfo=h,s.push(c),C&&s.push(C)}else s.push(l);break}case"simulation":{let c;if(l.clickableInfo&&l.clickableInfo.rules){let u=uM(l.clickableInfo.rules);c=hM(u)}else c="";if(l.isPlaying&&c!==""){o||(o=gM(r)),i=mM(o,i);let u=`A_{${i}}`;c=`${u}=${c}`,t=M7(u,l.fps)}let d={type:"expression",id:l.id,latex:c};l.folderId!==void 0&&(d.folderId=l.folderId),s.push(d);break}default:s.push(l);break}return{version:9,randomSeed:r.randomSeed||tc(),graph:r.graph,expressions:{list:s,ticker:t}}}function lN(r){r.clickableInfo&&(r.description===void 0&&r.clickableInfo.description!==void 0&&(r.description=r.clickableInfo.description),delete r.clickableInfo.description,Object.keys(r.clickableInfo).length===0&&delete r.clickableInfo)}function A7(r){switch(r.labelSize){case"small":r.labelSize="0.85";break;case"medium":r.labelSize="1";break;case"large":r.labelSize="1.35";break;default:break}}function G7(r){let e=0,t=/^[0-9]+$/;for(var i=r.length-1;i>=0;i--){var o=r[i];let n=o.id;if(t.test(n)){let a=parseInt(n,10);a>e&&(e=a)}if(o.type==="table"&&o.columns){for(let a=o.columns.length-1;a>=0;a--)if(n=o.columns[a].id,!!n&&t.test(n)){let s=parseInt(n,10);s>e&&(e=s)}}}return e}function bM(r){if(r.version!==9)throw new Error(`Unexpected version: ${r.version}`);let e=[],t={},i=G7(r.expressions.list);for(let n of r.expressions.list)switch(n.type){case"expression":{let l={...n};lN(l),A7(l),e.push(l);break}case"image":{let l={...n};lN(l);let c=l.description;(c===void 0||c==="")&&l.draggable&&l.center!==void 0&&l.center!==""&&(t[l.center]===void 0?t[l.center]=[l]:t[l.center].push(l)),e.push(l);break}case"table":let a={...n};if(!a.columns||!jn(a.columns[0].latex)){e.push(a);break}let s=a.columns[0].latex;for(let l=1;l<a.columns.length;l++){let c=a.columns[l];if(!c.lines||!cs(c.latex,s))continue;delete c.lines,i++;let d={type:"expression",latex:"y="+Gv(c.latex,s,"x"),id:`${i}`};c.color&&(d.color=c.color),c.lineStyle&&(d.lineStyle=c.lineStyle),c.lineWidth&&(d.lineWidth=c.lineWidth),c.lineOpacity&&(d.lineOpacity=c.lineOpacity),e.push(d)}e.push(a);break;default:e.push(n);break}for(let n of e){if(n.type!=="expression"||n.latex===void 0||n.latex===""||n.latex.indexOf("=")===-1||n.dragMode===void 0||n.dragMode==="NONE"||n.label===void 0||n.label==="")continue;let a=n.latex.slice(0,n.latex.indexOf("=")),s=t[a];if(s!==void 0)for(let l of s)l.description=n.label}return{...r,version:10,expressions:{...r.expressions,list:e}}}function V7(r){let e=/[ \\]*=[ \\]*\\operatorname\{(dilation|reflection|rotation|translation)\}\\left\(/g;return r.type!=="expression"||!r.latex||(r.latex=r.latex.replace(e,(t,i)=>{switch(i){case"dilation":return"\\left(x\\right)=\\operatorname{dilate}\\left(x,";case"rotation":return"\\left(x\\right)=\\operatorname{rotate}\\left(x,";case"reflection":return"\\left(x\\right)=\\operatorname{reflect}\\left(x,";case"translation":return"\\left(x\\right)=\\operatorname{translate}\\left(x,";default:return""}})),r}function P7(r,e){var t;if(r.type==="image"&&r.folderId&&!r.draggable&&!((t=r.clickableInfo)!=null&&t.enabled)&&e.has(r.folderId)&&r.disableGraphInteractions!==!1){let i={...r};return i.disableGraphInteractions=!0,i}else return r}function L7(r){var a;if(r.type!=="expression")return r;let e={...r};var t=(a=(r.latex||"").split("=")[0])==null?void 0:a.trim();let i=r.parametricDomain3Du,o=r.parametricDomain3Dv,n=r.parametricDomain;return t==="r"||(t==="z"?(i&&(e.parametricDomain3Dr={...i}),o&&(e.polarDomain={...o})):t==="\\rho"?(i&&(e.polarDomain={...i}),o&&(e.parametricDomain3Dphi={...o})):r.polarDomain||n&&(e.parametricDomain3Du={...n},e.parametricDomain3Dv={...n})),e}function yM(r){if(r.version!==10)throw new Error(`Unexpected version: ${r.version}`);let e={...r.graph};delete e.projectorMode;let t={...r.expressions},i=[],o=new Set;for(let n of t.list)n.type==="folder"&&n.collapsed&&o.add(n.id);for(let n of t.list)switch(n.type){case"expression":{if((e==null?void 0:e.product)==="geometry-calculator"){let a={...n};V7(a),i.push(a)}else if((e==null?void 0:e.product)==="graphing-3d"){let a=L7(n);i.push(a)}else i.push(n);break}case"image":{i.push(P7(n,o));break}default:i.push(n)}return t.list=i,{...r,version:11,graph:e,expressions:t}}function xM(r){if(r.version!==11)throw new Error(`Unexpected version: ${r.version}`);return{...r,version:12}}function cN(r){return{...r,version:11}}var wM=[j3,J3,Q3,Z3,tN,rN,oN,cM,pM,fM,bM,yM,xM];var Ds=12;function nl(r){if(r.version>Ds)return typeof console!="undefined"&&console.warn&&console.warn("Loading saved state with version "+r.version+" but last known version is "+Ds+". States saved in a newer version of the calculator may not load correctly in an older version of the calculator."),sE(r);if(r.hasOwnProperty("version")&&!wM[r.version])return typeof console!="undefined"&&console.warn&&console.warn("State has invalid version "+r.version+". If a version is present, it should be a non-negative integer less than or equal to "+Ds+"."),sE(r);for(r.hasOwnProperty("version")||(r=wM[0](r));r.version<Ds;)r=wM[r.version+1](r);return sE(r)}function O7(r){return cN(r)}function dN(r){return O7(nl(r))}function pN(r){let e=nl(r);var t={},i=e.graph.degreeMode,o=e.randomSeed;let n=e.graph.product==="graphing"?"graphing":"geometry";function a(l){switch(l.type){case void 0:case"expression":{let d=__dcg_shared_module_exports__['$c'](__dcg_shared_module_exports__['Xc'](l,{is3d:!1,defaultLogModeRegressions:!1}));t[d.id]=d}break;case"table":{let d=av(nv(l));t[d.id]=d}break;case"image":{let d=yv(bv(l));t[d.id]=d;break}case"folder":case"text":break;default:return l}}for(var s of e.expressions.list)a(s);if(e.version>=10&&e.expressions.ticker){let l="dcg_ticker_guid_internal",c={...Tv(e.expressions.ticker),id:l};t[l]=kv(c)}return{setExpression(l){a(l)},getChangeSet(){return{statements:t,isCompleteState:!0,degreeMode:i,globalRandomSeed:o,evaluationMode:n}}}}function dE(r,e){switch(r.type){case"Mul":case"DotMul":case"CrossMul":case"Div":case"Prime":case"Call":case"ImplicitCall":case"Dot":case"Pipes":case"Sqrt":case"Nthroot":case"Frac":case"Derivative":case"Integral":case"EmptyIntegral":case"Sum":case"Product":case"Piecewise":case"Paren":case"Juxt":case"Superscript":case"Bang":case"Index":case"Comparator":case"ComparatorChain":case"Tilde":case"Pos":case"Neg":case"Add":case"Sub":case"List":case"Seq":case"Colon":case"Ellipsis":case"PercentOf":case"RightArrow":case"For":case"With":{let i=0;for(let o of r.args)i+=dE(o,e);return i}case"Decimal":return e===void 0||parseFloat(r.val)===e?1:0;case"MixedNumber":{if(e===void 0)return 3;let i=0;return parseFloat(r.whole)===e&&(i+=1),parseFloat(r.num)===e&&(i+=1),parseFloat(r.den)===e&&(i+=1),i}case"Letter":case"EmptyPiecewise":case"Cmd":case"EmptyRangeEnd":return 0;case"Subscript":return dE(r.args[0],e);default:throw`Unexpected surface node ${r.type}.`}}function uN(r){let e=r.length,t=new Array(e),i=new Array(e+1),o=0;for(let s=0;s<e;s++){let l;if(r[i[o]]<r[s])l=o+1;else{let c=1,d=o-1;for(;c<=d;){let u=Math.ceil((c+d)/2);r[i[u]]<r[s]?c=u+1:d=u-1}l=c}t[s]=i[l-1],i[l]=s,l>o&&(o=l)}let n=new Array(o),a=i[o];for(let s=o-1;s>=0;s--)n[s]=r[a],a=t[a];return n}function gN(r,e){return pE(r,e,0)}function pE(r,e,t){let i={};for(let o in r){if(!r.hasOwnProperty(o))continue;if(!e.hasOwnProperty(o)){i[o]={d:1};continue}let n=r[o],a=e[o],s=_7(n,a,t,o);s&&(i[o]=s)}for(let o in e)e.hasOwnProperty(o)&&!r.hasOwnProperty(o)&&(i[o]={s:e[o]});return i}function _7(r,e,t,i){if(__dcg_shared_module_exports__['Qa'](r)&&__dcg_shared_module_exports__['Qa'](e)){if(t===1&&i==="list"||t===2&&i==="columns")return R7(r,e);if(!__dcg_shared_module_exports__['Oa'](r,e))return{s:e}}else if(__dcg_shared_module_exports__['Ra'](r)&&__dcg_shared_module_exports__['Ra'](e)){let o=pE(r,e,F7(t,i));if(!__dcg_shared_module_exports__['Pa'](o))return{e:o}}else if(!__dcg_shared_module_exports__['Oa'](r,e))return{s:e}}function F7(r,e){return r===0&&e==="expressions"?1:3}function R7(r,e){let t={},i={};for(let s=0;s<r.length;s++){if(i[r[s].id]!==void 0)return{s:e};i[r[s].id]=s}let o={};for(let s=0;s<e.length;s++){if(o[e[s].id]!==void 0)return{s:e};o[e[s].id]=s}let n=N7(r,e,i),a=0;for(let s=0;s<r.length;s++){let l=r[s];if(!n[l.id])t[s]={d:1};else{let c=o[l.id],d=e[c],u={};if(a!==c&&(u.a=e.slice(a,c).map(h=>hN(r,i,h))),!__dcg_shared_module_exports__['Oa'](l,d)){let h=l.type==="table"&&d.type==="table";u.e=pE(l,d,h?2:3)}__dcg_shared_module_exports__['Pa'](u)||(t[s]=u),a=c+1}}if(a<e.length&&(t[r.length]={a:e.slice(a,e.length).map(s=>hN(r,i,s))}),!__dcg_shared_module_exports__['Pa'](t))return{l:t}}function hN(r,e,t){if(e[t.id]){let i=r[e[t.id]],o={f:e[t.id]};return __dcg_shared_module_exports__['Oa'](i,t)||(o.e=pE(i,t,3)),{m:o}}return{s:t}}function N7(r,e,t){let i={},o=e.filter(a=>t[a.id]!==void 0).map(a=>t[a.id]),n=uN(o);for(let a of n)i[r[a].id]=!0;return i}function fN(r,e){let t=__dcg_shared_module_exports__['i'](r);return uE(t,e)}function uE(r,e){for(let t of __dcg_shared_module_exports__['La'](e)){let i=e[t];z7(i)?r[t]=i.s:K7(i)?delete r[t]:U7(i)?r[t]=B7(r[t],i.l):q7(i)&&(r[t]=uE(r[t],i.e))}return r}function B7(r,e){let t=[];for(let o=0;o<r.length;o++){let n=e[o];n&&n.a&&t.push(...mN(r,n.a)),n&&n.e?t.push(uE(r[o],n.e)):(!n||!n.d)&&t.push(r[o])}let i=e[r.length];return i&&i.a&&t.push(...mN(r,i.a)),t}function mN(r,e){let t=[];for(let i of e)if(H7(i))t.push(i.s);else if(W7(i)){let o=r[i.m.f];i.m.e?t.push(uE(o,i.m.e)):t.push(o)}return t}function z7(r){return r.hasOwnProperty("s")}function K7(r){return r.hasOwnProperty("d")}function U7(r){return r.hasOwnProperty("l")}function q7(r){return r.hasOwnProperty("e")}function H7(r){return r.hasOwnProperty("s")}function W7(r){return r.hasOwnProperty("m")}function bN(r){return r.location==="expression"||r.location==="object"?`${r.location}:${r.id}:${r.path}`:`${r.location}:${r.path}`}function vM(r){let e=()=>new Error(`Invalid key: ${r}`),t=r.split(":"),i=t[0];if(!i||i!="expression"&&i!="settings"&&i!="object")throw e();if(i=="settings"){if(t.length!=2)throw e();return{location:i,path:t[1]}}if(t.length!=3)throw e();return{location:i,id:t[1],path:t[2]}}function hE(r,e,t){if(!r)return;let i=e.split("."),o=r;for(let n=0;n<i.length;n++){let a=i[n];if(!o[a])break;n==i.length-1&&typeof o[a]=="string"?o[a]=t:o=o[a]}}function CM(r,e){return(t,i,o,n)=>{if(t){let a=bN({...e,path:i});r[a]={value:t,type:o,context:n}}}}function $7(r){var i,o;let e={},t=CM(e,{location:"expression",id:r.id});switch(r.type){case"expression":t(r.label,"label","interpolated-string","expression-list-expression-label"),t(r.description,"description","string","expression-list-expression-clickable-description");break;case"image":t(r.image_url,"image_url","image","expression-list-image-url"),t(r.description,"description","string","expression-list-image-clickable-description"),t((i=r.clickableInfo)==null?void 0:i.hoveredImage,"clickableInfo.hoveredImage","image","expression-list-image-clickable-hovered"),t((o=r.clickableInfo)==null?void 0:o.depressedImage,"clickableInfo.depressedImage","image","expression-list-image-clickable-depressed");break;case"text":t(r.text,"text","string","expression-list-note-text");break;case"folder":t(r.title,"title","string","expression-list-folder-title");break}return e}function Y7(r){let e={},t=CM(e,{location:"settings"});return t(r.graph.xAxisLabel,"xAxisLabel","string","settings-xaxis-label"),t(r.graph.yAxisLabel,"yAxisLabel","string","settings-yaxis-label"),e}function j7(r){let e={},t=CM(e,{location:"object",id:r.id});return t(r.label,"label","string","geometry-object-label"),r.type==="image"&&t(r.url,"url","image","geometry-object-image-url"),e}function yN(r){let e={};if(r.type=="graph"){let t=r.graphState.expressions.list;for(let o of t){let n=$7(o);for(let a in n)e[a]=n[a]}let i=Y7(r.graphState);for(let o in i)e[o]=i[o]}else{let t=r.geometryState.objects;for(let i in t){let o=j7(t[i]);for(let n in o)e[n]=o[n]}}return e}function xN(r,e,t){var o;let i=__dcg_shared_module_exports__['i'](r);if(t==="graph"){let n={},a=(o=i.expressions)==null?void 0:o.list,s=Array.isArray(a)?a:[];for(let l of s)n[l.id]=l;for(let l in e){let c=vM(l);c.location=="expression"?hE(n[c.id],c.path,e[l].value):hE(i.graph,c.path,e[l].value)}}else if(i.objects)for(let n in e){let a=vM(n);a.location=="object"&&hE(i.objects[a.id],a.path,e[n].value)}return i}function wN(r){return r==="<="?"\\le ":r===">="?"\\ge ":r}function rr(r){switch(r.type){case"Comparator":return Ro(r.args,wN(r.symbol));case"ComparatorChain":{let n="";for(let a=0;a<r.symbols.length;a++)n+=rr(r.args[a])+wN(r.symbols[a]);return n+=rr(r.args[r.args.length-1]),n}case"Tilde":return Ro(r.args,"~");case"Pos":return"+"+rr(r.args[0]);case"Neg":return"-"+rr(r.args[0]);case"Add":return Ro(r.args,"+");case"Sub":return Ro(r.args,"-");case"Mul":return Ro(r.args,"*");case"DotMul":return Ro(r.args,"\\cdot ");case"CrossMul":return Ro(r.args,"\\times ");case"Div":return Ro(r.args,"/");case"Bang":return rr(r.args[0])+"!";case"Call":let e=EM(r.args);return e?e.script+"\\left("+e.arg+"\\right)":rr(r.args[0])+"\\left("+rr(r.args[1])+"\\right)";case"Paren":return"\\left("+rr(r.args[0])+"\\right)";case"List":return"\\left["+r.args.map(rr).join(",")+"\\right]";case"Pipes":return"\\left|"+rr(r.args[0])+"\\right|";case"Index":return rr(r.args[0])+"\\left["+rr(r.args[1])+"\\right]";case"Subscript":return Ro(r.args,"_",!0);case"Superscript":return Ro(r.args,"^",!0);case"Prime":if(r.args[0].type==="Call"){let n=EM(r.args[0].args);return n?n.script+SM(r.nprimes)+"\\left("+n.arg+"\\right)":rr(r.args[0].args[0])+SM(r.nprimes)+"\\left("+rr(r.args[0].args[1])+"\\right)"}return rr(r.args[0])+SM(r.nprimes);case"Seq":return r.args.map(rr).join(",");case"Sqrt":return"\\sqrt"+ny(rr(r.args[0]));case"Nthroot":return"\\sqrt["+rr(r.args[0])+"]"+ny(rr(r.args[1]));case"Frac":return"\\frac{"+rr(r.args[0])+"}{"+rr(r.args[1])+"}";case"Derivative":return"\\frac{d}{d"+rr(r.args[0])+"}"+rr(r.args[1]);case"Integral":case"EmptyIntegral":if(r.args[0].type!=="Cmd")throw new Error("Expected first argument of an integral to be the variable");let t="d"+r.args[0].val;if(r.args.length===3)return ay("int",r.args[1],r.args[2])+t;let i=rr(r.args[3]);return ay("int",r.args[1],r.args[2])+i+t;case"Sum":return vN(r.args,"sum");case"Product":return vN(r.args,"prod");case"Piecewise":return"\\{"+rr(r.args[0])+"\\}";case"EmptyPiecewise":return"\\{\\}";case"Colon":return Ro(r.args,":");case"Ellipsis":return Ro(r.args,"...");case"For":return Ro(r.args,"\\for ");case"With":return Ro(r.args,"\\with ");case"Dot":return Ro(r.args,".");case"PercentOf":return Ro(r.args,"\\% \\of ");case"RightArrow":return Ro(r.args,"->");case"Juxt":return Ro(r.args,r.args[0].type==="Cmd"?" ":"");case"ImplicitCall":{let n=EM(r.args);return n?n.script+n.arg:Ro(r.args,"")}case"MixedNumber":return r.whole+"\\frac{"+r.num+"}{"+r.den+"}";case"Letter":case"Decimal":case"Alphanumeric":return r.val;case"Cmd":return"\\"+r.val;case"EmptyRangeEnd":return"EmptyRangeEnd";case"Err":throw r.error;default:return r}}function ny(r){return r.length>1?"{"+r+"}":r}function ay(r,e,t){let i=ny(rr(e));if(t){let o=ny(rr(t));return`\\${r}_${i}^${o}`}return`\\${r}_${i}`}function Ro(r,e,t=!1){let i=rr(r[0]),o=t?ny(rr(r[1])):rr(r[1]);return i+e+o}function vN(r,e){let t=rr(r[0]);return ay(e,r[1],r[2])+t}function SM(r){let e="";for(let t=0;t<r;t++)e+="'";return e}function CN(r){return r.type==="Cmd"&&r.val==="logbase"}function EM(r){let e=r[1],t;if(r[1].type==="Seq"&&r[1].args.length===2&&(e=r[1].args[1],t=r[1].args[0]),r[0].type==="Superscript"&&CN(r[0].args[0]))return{script:ay("log",e,r[0].args[1]),arg:t?rr(t):""};if(CN(r[0]))return{script:ay("log",e),arg:t?rr(t):""}}function SN(r){let e=kM.parse(r.latex);if(e.type=="Err")return;let t=Co(e);for(;t.type==="Paren";)t=t.args[0];return rc(t)?{latex:r.latex}:{latex:rr(t)}}function J7(r){return r.isPseudoSurfaceNode}function rc(r){switch(r.type){case"Letter":case"Decimal":case"Cmd":return r.val==="0";case"Paren":return rc(r.args[0]);default:return!1}}function dp(r){switch(r.type){case"Letter":case"Decimal":case"Cmd":return r.val==="1";case"Paren":return dp(r.args[0]);default:return!1}}function EN(r){return r.type==="Neg"?dp(r.args[0]):r.type==="Paren"?EN(r.args[0]):!1}function gE(r){return{isPseudoSurfaceNode:!0,type:"Decimal",span:r,val:"0"}}function DM(r,e){return{isPseudoSurfaceNode:!0,type:"Neg",span:e,args:[r]}}function X7(r,e){return{isPseudoSurfaceNode:!0,type:"Paren",span:e,args:[r]}}function Da(r,e){return{...r,span:e}}function Co(r,e){let t;switch(r.type){case"Add":{let n=Co(r.args[0]),a=Co(r.args[1]);if(rc(n))return Da(a,r.span);if(rc(a))return Da(n,r.span);let s;if(a.type==="Neg"?s=Co(a.args[0]):a.type==="Paren"&&a.args[0].type==="Neg"&&(s=Co(a.args[0].args[0])),s!==void 0)return{isPseudoSurfaceNode:!0,type:"Sub",span:r.span,args:[n,s]};t=[n,a];break}case"Sub":{let n=Co(r.args[0]),a=Co(r.args[1]);if(rc(n))return DM(a,r.span);if(rc(a))return Da(n,r.span);let s;if(a.type==="Neg"?s=a.args[0]:a.type==="Paren"&&a.args[0].type==="Neg"&&(s=a.args[0].args[0]),s)return{isPseudoSurfaceNode:!0,type:"Add",span:r.span,args:[n,s]};t=[n,a];break}case"Mul":{let n=Co(r.args[0]),a=Co(r.args[1]);if(dp(n))return Da(a,r.span);if(dp(a))return Da(n,r.span);if(rc(n)||rc(a))return gE(r.span);t=[n,a];break}case"Juxt":{let n=Co(r.args[0],r),a=Co(r.args[1],r);if(dp(n))return Da(a,r.span);if(dp(a))return Da(n,r.span);if(EN(n))return DM(a,r.span);if(rc(n)||rc(a))return gE(r.span);if(n.type==="Neg"){let s={...r,type:"Juxt",isPseudoSurfaceNode:!0,args:[n.args[0],a]};return DM(s,r.span)}t=[n,a];break}case"Frac":case"Div":{let n=Co(r.args[0]),a=Co(r.args[1]);if(dp(a))return Da(n,r.span);t=[n,a];break}case"Superscript":let i=Co(r.args[0]),o=Co(r.args[1]);if(dp(o))return Da(i,r.span);(e==null?void 0:e.type)==="Juxt"&&e.args[0].type==="Decimal"&&i.type==="Decimal"&&(i=X7(i,i.span)),t=[i,o];break;case"Paren":{let n=Co(r.args[0]);if((e==null?void 0:e.type)!=="Juxt"){if(__dcg_shared_module_exports__['gc'](n))return Da(n,r.span);let a="args"in n?n.args:void 0;if((!a||a.length<=1)&&n.type!=="Neg")return Da(n,r.span)}t=[n];break}case"Pos":{let n=Co(r.args[0]);return Da(n,r.span)}case"Neg":{let n=Co(r.args[0]),a="args"in n?n.args[0]:void 0;if(n.type==="Paren"&&a&&a.type==="Neg"&&a.args[0])return Da(Co(a.args[0]),r.span);if(n.type==="Neg"&&a)return Da(a,r.span);t=[n];break}case"Cmd":case"Letter":case"Decimal":case"MixedNumber":case"EmptyRangeEnd":case"EmptyPiecewise":case"ComparatorChain":return{...r,isPseudoSurfaceNode:!0};default:t=r.args.map(n=>J7(n)?n:n.type==="Alphanumeric"?{...n,isPseudoSurfaceNode:!0}:Co(n))}return{...r,isPseudoSurfaceNode:!0,args:t}}var Q7={version:Ds,randomSeed:"",graph:{viewport:{xmin:-10,ymin:-13.25,xmax:10,ymax:13.25}},expressions:{list:[{id:"1",type:"expression"}]}},pp=Q7;function Z7(r){return{...r,version:"0"}}var DN=Z7;var e9={centerX:0,centerY:0,size:15},t9={scale:1,unit:"",visible:!1,showLegend:!1};function r9(r){let e=r.objects||{},t=__dcg_shared_module_exports__['i'](e);for(let i in t){let o=t[i];o.label&&(o.showLabel=!0)}return{version:"1",objects:t,viewport:r.viewport||e9,customTools:r.customTools||{},grid:r.grid||t9}}var kN=r9;function i9(r){return(r.type==="point"||r.type==="glider")&&!r.draggable}function o9(r){let e=r.objects||{},t=__dcg_shared_module_exports__['i'](e),i=__dcg_shared_module_exports__['i'](r.grid);for(let o in t){let n=t[o];i9(n)&&(n.draggable=!0),n.type==="angle"&&n.showLabel&&!n.label&&(n.label="{angle}"),n.type==="segment"&&n.showLabel&&!n.label&&(n.label="{length}")}return i.unit="",i.scale=1,{version:"2",objects:t,viewport:r.viewport,customTools:r.customTools||{},grid:i}}var TN=o9;function TM(r){return r&&(r.type==="circle"||r.type==="compass")}function n9(r){let e=__dcg_shared_module_exports__['i'](r.objects||{});for(let t in e){let i=e[t];if(i.type==="point")i.y=-i.y;else if(i.type==="glider"){let o=e[i.parents.host];TM(o)&&(i.t=-i.t)}else if(i.type==="intersection"){let o=e[i.parents.host1],n=e[i.parents.host2];TM(o)&&TM(n)&&(i.negRoot=!i.negRoot)}}return{version:"3",objects:e,viewport:r.viewport,customTools:r.customTools||{},graphSettings:{showGrid:!!(r.grid||{}).visible,showAxes:!1,showAxisNumbers:!1}}}var IN=n9;function a9(r){let e=__dcg_shared_module_exports__['i'](r.objects||{});for(let t in e){let i=e[t];i.draggable===!1&&(i.locked=!0),delete i.draggable}return{...r,version:"4",objects:e}}var MN=a9;var mE=[DN,kN,TN,IN,MN],s9="4";function IM(r){let e=parseInt(s9,10),t=parseInt(r.version||"0",10);for(t>e&&typeof console!="undefined"&&console.warn&&console.warn(`Loading saved state with version ${t}, but last known version is ${e}. States saved in a newer version of the geometry tool may not load correctly in older versions of the tool.`),mE[t]||typeof console!="undefined"&&console.warn&&console.warn(`State has invalid version: ${t}. If a version is present, it should be a non-negative integer less than or equal to ${e}.`),t===0&&(r=mE[0](r));t<e;)t+=1,mE[t]&&(r=mE[t](r));return r}var l9=!1;function Lu(r,e){var t=e[r];return t.type==="transformed-object"?Lu(t.parents.object,e):t.type}function AN(r){switch(r){case"circle":case"compass":case"arc":return!0}return!1}function c9(r,e,t){var i=Lu(e,t);if(i==="circle"||i==="compass"){let o=r/(2*Math.PI);return o<0?o+1:o}return r}function GN(r){switch(r){case"scaled-rotation":case"vector":return!0}return!1}function d9(r){switch(r){case"point":case"midpoint":case"glider":case"intersection":case"polygon":return"P";case"line":case"segment":case"ray":case"vector":case"parallel":case"perpendicular":return"L";case"circle":case"compass":return"C";case"arc":case"angle":return"A";case"image":return"I";case"dilation":case"rotation":case"translation":case"reflection":case"scaled-rotation":return"T";case"transformed-object":return"T";default:return r}}function Ou(r){let e=!l9,t=IM(r),i={},o={},n=M=>{if(o.hasOwnProperty(M))return o[M];let E=Lu(M,t.objects);if(e&&!GN(E)){let P=i.token||1;i.token=P+1;let O="\\token{"+P+"}";return o[M]=O,O}let A=d9(E),V=i[A]||1;i[A]=V+1;let G=A+"_{"+V+"}";return o[M]=G,G};function a(M){let E=i[M]||1;return i[M]=E+1,M+"_{"+E+"}"}let s=(M,E,A)=>n(M)+"=\\operatorname{"+E+"}\\left("+A.map(n).join(",")+"\\right)",l=M=>`\\operatorname{segment}\\left(${M}.\\operatorname{start},${M}.\\operatorname{end}\\right)`,{centerX:c,centerY:d,size:u}=t.viewport;u*=1.25;let h=1,g=u/(1+h),b=g*h,C={version:11,randomSeed:"",expressions:{list:[]},graph:{product:"geometry-calculator",viewport:{xmin:c-g,xmax:c+g,ymin:d-b,ymax:d+b},showGrid:!1,showXAxis:!1,showYAxis:!1,squareAxes:!0,degreeMode:!0}};t.graphSettings.showGrid&&(C.graph.showGrid=!0,C.graph.xAxisMinorSubdivisions=1,C.graph.yAxisMinorSubdivisions=1,C.graph.xAxisStep=1,C.graph.yAxisStep=1);let S=C.expressions.list,k=[],I=[];for(let M in t.objects){let E=t.objects[M],A=Lu(E.id,t.objects),V={id:E.id,type:"expression",color:E.color,hidden:!!E.hidden};if(e&&!GN(A)&&(V.folderId=__dcg_shared_module_exports__['Rc']),E.locked&&(V.dragMode="NONE"),!E.hidden&&E.label&&E.showLabel){if(V.label=E.label,V.showLabel=!0,A==="segment"&&E.label.indexOf("{length}")!==-1)if(E.label==="{length}")V.label="";else{let G=a("l"),P=G+"=\\operatorname{round}\\left(\\operatorname{length}\\left("+n(E.id)+"\\right),2\\right)";I.push({id:"len-"+V.id,type:"expression",latex:P}),V.label=V.label.replace(/\{length\}/g,"${"+G+"}")}if(A==="angle"&&E.label.indexOf("{angle}")!==-1)if(E.label==="{angle}")V.label="";else{let G=a("a"),P=G+"=\\operatorname{round}\\left("+n(E.id)+"\\right)";I.push({id:"angle-"+V.id,type:"expression",latex:P}),V.label=V.label.replace(/\{angle}/g,"${"+G+"}\xB0")}if(A==="polygon"&&E.label.indexOf("{area}")!==-1)if(E.label==="{area}")V.label="";else{let G=a("a"),P=G+"=\\operatorname{round}\\left(\\operatorname{area}\\left("+n(E.id)+"\\right),2\\right)";I.push({id:"area-"+V.id,type:"expression",latex:P}),V.label=V.label.replace(/\{area\}/g,"${"+G+"}")}if(A==="polygon"&&E.label.indexOf("{perimeter}")!==-1){let G=a("p"),P=G+"=\\operatorname{round}\\left(\\operatorname{perimeter}\\left("+n(E.id)+"\\right),2\\right)";I.push({id:"perim-"+V.id,type:"expression",latex:P}),V.label=V.label.replace(/\{perimeter\}/g,"${"+G+"}")}}switch(E.type){case"point":{let D=E.x===null?0:E.x,_=E.y===null?0:E.y;V.latex=n(E.id)+"=\\left("+__dcg_shared_module_exports__['xc'](D)+","+__dcg_shared_module_exports__['xc'](_)+"\\right)";break}case"glider":{let D=Lu(E.parents.host,t.objects),_=n(E.parents.host);D==="vector"&&(_=l(_)),V.latex=n(E.id)+"=\\operatorname{glider}\\left("+_+","+__dcg_shared_module_exports__['xc'](c9(E.t,E.parents.host,t.objects))+"\\right)";break}case"intersection":let G=Lu(E.parents.host1,t.objects),P=Lu(E.parents.host2,t.objects),O=n(E.parents.host1),R=n(E.parents.host2);G==="vector"&&(O=l(O)),P==="vector"&&(R=l(R));let q=E.negRoot;(AN(G)&&!AN(P)||P==="arc")&&(q=!q);let J=q?[O,R]:[R,O];V.latex=n(M)+"=\\operatorname{intersection}\\left("+J.join(",")+"\\right)";break;case"midpoint":V.latex=s(E.id,E.type,[E.parents.straight]);break;case"circle":V.latex=s(E.id,E.type,[E.parents.point1,E.parents.point2]);break;case"arc":V.latex=s(E.id,E.type,[E.parents.point1,E.parents.point2,E.parents.point3]);break;case"compass":V.latex=s(E.id,"circle",[E.parents.center,E.parents.straight]);break;case"line":case"segment":case"ray":case"vector":V.latex=s(E.id,E.type,[E.parents.point1,E.parents.point2]);break;case"parallel":case"perpendicular":V.latex=s(E.id,E.type,[E.parents.straight,E.parents.point]);break;case"polygon":V.latex=s(E.id,E.type,E.parents.points);break;case"angle":V.latex=s(E.id,E.type,[E.parents.point1,E.parents.point2,E.parents.point3]);break;case"transformed-object":V.latex=n(E.id)+"="+n(E.parents.transformation)+"\\left("+n(E.parents.object)+"\\right)";break;case"dilation":V.latex=n(E.id)+"\\left(x\\right)=\\operatorname{dilate}\\left(x,"+n(E.parents.center)+","+(E.scaleFactor||"0/0")+"\\right)";break;case"reflection":V.latex=n(E.id)+"\\left(x\\right)=\\operatorname{reflect}\\left(x,"+n(E.parents.straight)+"\\right)";break;case"translation":V.latex=n(E.id)+"\\left(x\\right)=\\operatorname{translate}\\left(x,"+n(E.parents.from)+","+n(E.parents.to)+"\\right)";break;case"rotation":V.latex=n(E.id)+"\\left(x\\right)=\\operatorname{rotate}\\left(x,"+n(E.parents.center)+","+(E.angle||"0/0")+"\\right)";break;case"scaled-rotation":let U=n(E.parents.center),z=n(E.parents.from),K=n(E.parents.to);V.latex=n(E.id)+`\\left(x\\right)=\\operatorname{rotate}\\left(\\operatorname{dilate}\\left(x,${U},\\frac{\\left|${K}-${U}\\right|}{\\left|${z}-${U}\\right|}\\right),${U},\\operatorname{directedangle}\\left(${z},${U},${K}\\right)\\right)`;break;case"image":break;default:return E}V.latex&&(V.folderId===__dcg_shared_module_exports__['Rc']?k.push(V):I.push(V))}return S.push({type:"folder",id:__dcg_shared_module_exports__['Rc'],title:"geometry",secret:!0}),S.push.apply(S,k),S.push.apply(S,I),C}function p9(r,e){return r==null&&(r=""),__dcg_shared_module_exports__['nc'](r,e)}function u9(r){if(r!=null)try{let e=__dcg_shared_module_exports__['fc'](r);return __dcg_shared_module_exports__['mc'](e)}catch(e){let t=e instanceof VN.Base?e.getInputSpan():void 0;t||(t=__dcg_shared_module_exports__['l'](r,0,r.length));let i={...__dcg_shared_module_exports__['ic'](),originalError:e};return __dcg_shared_module_exports__['hc'](t,i)}}var h9={parse:p9},kM={parse:u9},g9={countNumbers:dE},m9=__dcg_shared_module_exports__['ud'],f9=__dcg_shared_module_exports__['gb'],b9=__dcg_shared_module_exports__['ea'],VN=__dcg_shared_module_exports__['Yb'],y9={graphing:new __dcg_shared_module_exports__['md']({enableGeometry:!1,enable3d:!1,beta3d:!1,scales:void 0}),scientific:new __dcg_shared_module_exports__['td']({singleExpression:!1}),fourFunction:new __dcg_shared_module_exports__['sd']({singleExpression:!1})},x9=pp,w9=fm;var{Switch:PN}=Rt.Components,ic=class extends Rt.Class{template(){return Rt.createElement(PN,{key:()=>this.getLatex().indexOf("\\token")>=0},e=>e?Rt.createElement(Xl,{identifier:()=>this.getIdentifier(),insideMQ:()=>!1,controller:()=>this.props.controller(),insideGroup:()=>!1,putInTabOrder:()=>!1}):Rt.createElement("span",null,Rt.createElement(ke,{config:this.const({}),latex:()=>this.getLatex()})))}getLatex(){return this.props.latex()||"unknown"}getIdentifier(){let e=this.props.latex();return e?__dcg_shared_module_exports__['fb'].latexToIdentifier(e):""}},bE=class extends Rt.Class{init(){this.controller=this.props.controller()}template(){return Rt.createElement(PN,{key:this.bindFn(this.getTransformationType)},e=>{switch(e){case"translate":return this.getParents().length===1?Rt.createElement("div",null,Rt.const("Translate by"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[0]})):Rt.createElement("div",null,Rt.const("Translate from"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[0]}),Rt.const(" "),Rt.const("to"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[1]}));case"reflect":return Rt.createElement("div",null,Rt.const("Reflect over"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[0]}));case"dilate":return Rt.createElement("div",null,Rt.const("Dilate at"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[0]}),Rt.const(" by "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getRawParentLatex(2)}));case"rotate":return Rt.createElement("div",null,Rt.const("Rotate around"),Rt.const(" "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getParents()[0]}),Rt.const(" by "),Rt.createElement(ic,{controller:this.props.controller,latex:()=>this.getRawParentLatex(2)+(this.controller.getGraphSettings().degreeMode?"\xB0":"")}));case void 0:return Rt.createElement("span",null)}})}getParents(){let e=this.getGeometry();return!e||!e.call?[]:e&&e.call?e.call.parents.map(t=>__dcg_shared_module_exports__['fb'].geoParentToLatex(t)):[]}getRawParentLatex(e){var a;var t=(a=this.props.model())==null?void 0:a.latex;if(!t)return"";let o=__dcg_shared_module_exports__['nc'](t)._expression;if(!o)return"";let n=o.args[e];return!n||!n.getInputString?"":n.getInputString()||""}getGeometry(){var e;return(e=this.props.model())==null?void 0:e.formula.geometry}getTransformationType(){var i;let e=this.getGeometry(),t=(i=e==null?void 0:e.call)==null?void 0:i.symbol;switch(t){case"translate":case"dilate":case"reflect":case"rotate":return t}}};var LN={translate:!0,reflect:!0,dilate:!0,rotate:!0},Epe={selection:!0,point:!0,line:!0,segment:!0,ray:!0,vector:!0,circle:!0,arc:!0,parallel:!0,perpendicular:!0,midpoint:!0,polygon:!0,compass:!0,angle:!0,directedangle:!0,"box-selection":!0,"expression-edit":!0,...LN},ym=Object.keys(LN);var ui=__dcg_shared_module_exports__['e']($());var{Each:ON,If:v9}=ui.Components,yE=class extends ui.Class{init(){this.controller=this.props.controller(),this.focusOrder=this.getTransformationFocusLocations(),this.cacheExistingTransformations()}willUpdate(){this.cacheExistingTransformations()}handleTap(e,t){e.handle(),e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"select-geo-tool",tool:t,focusGraphPaper:e.device==="keyboard"})}template(){return ui.createElement("div",{class:()=>({"dcg-generic-options-menu":!0,"dcg-options-menu":!0,"dcg-multi-select-transformations-menu":!0}),role:ui.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-transformations-menu")},ui.createElement("div",{onKeydown:this.bindFn(this.handleKeydown),class:ui.const("dcg-new-transformations-container"),role:ui.const("menu"),"aria-orientation":ui.const("horizontal"),"aria-label":()=>this.controller.s("graphing-calculator-label-new-transformation")},ON(()=>this.getTransformations(),{item:e=>ui.createElement("button",{class:()=>({"dcg-new-transformation":!0,"dcg-disabled":!this.controller.isGeoToolEnabled(e),"dcg-will-be-hidden-or-disabled":this.controller.toolWillBeHiddenOrDisabled(e)}),tabindex:()=>this.getTransformations().indexOf(e)===0?0:-1,role:ui.const("menuitemradio"),manageFocus:()=>Fe({controller:this.controller,location:{type:"geo-basic-tool",tool:e}}),"dcg-geo-tool":this.const(e),onTap:t=>this.handleTap(t,e)},ui.createElement("i",{class:()=>this.getTransformationIcon(e)}),()=>this.getTransformationName(e))})),ui.createElement(v9,{predicate:()=>this.cachedExistingTransformations.length>0},()=>ui.createElement("div",{class:ui.const("dcg-transformation-header")},()=>this.controller.s("graphing-calculator-label-recent-transformations"))),ui.createElement("div",{role:ui.const("group"),class:ui.const("dcg-existing-transformations-container"),"aria-label":()=>this.controller.s("graphing-calculator-label-recent-transformations")},ON(()=>this.cachedExistingTransformations,{item:e=>ui.createElement("div",{class:ui.const("dcg-existing-transformation"),role:ui.const("button"),tabindex:ui.const("0"),onTap:()=>this.applyTransformation(e),onPointerOut:t=>this.onPointerOut(t,e),onPointerOver:t=>this.onPointerOver(t,e),willUnmount:()=>this.onImplicitMouseOut(e)},ui.createElement(bE,{controller:this.props.controller,model:()=>e})),key:e=>e.id})))}handleKeydown(e){let t=ue(e);if(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||t!=="Left"&&t!=="Right"&&t!=="Home"&&t!=="End")return;let i=this.controller.getFocusLocation();if(!i)return;let o=__dcg_shared_module_exports__['Ga'](this.focusOrder,i);if(o===-1)return;e.preventDefault(),e.stopPropagation();let n=o;t==="Left"?n=Math.max(0,o-1):t==="Right"?n=Math.min(this.focusOrder.length-1,o+1):t==="Home"?n=0:t==="End"&&(n=this.focusOrder.length-1),n!==o&&this.controller.dispatch({type:"set-focus-location",location:this.focusOrder[n]})}computeExistingTransformations(){var t,i;let e=[];for(let o of this.controller.getAllItemModels()){if(o.type!=="expression"||!this.controller.isItemInGeoFolder(o.id))continue;let n=(t=o.formula.geometry)==null?void 0:t.call;if(!n||!__dcg_shared_module_exports__['bc'](n.symbol))continue;let a=(i=o.formula.typed_constant_value)==null?void 0:i.valueType;a!==void 0&&__dcg_shared_module_exports__['ca'](a,__dcg_shared_module_exports__['N'])&&e.push(o)}return e.reverse()}cacheExistingTransformations(){this.cachedExistingTransformations=this.computeExistingTransformations()}getTransformations(){return ym.filter(e=>this.controller.isGeoToolVisible(e))}getTransformationIcon(e){switch(e){case"dilate":return"dcg-icon-dilation";case"reflect":return"dcg-icon-reflection";case"rotate":return"dcg-icon-rotation";case"translate":return"dcg-icon-vector"}}getTransformationName(e){switch(e){case"dilate":return this.controller.s("graphing-calculator-text-geometry-tool-dilate-display-name");case"reflect":return this.controller.s("graphing-calculator-text-geometry-tool-reflect-display-name");case"rotate":return this.controller.s("graphing-calculator-text-geometry-tool-rotate-display-name");case"translate":return this.controller.s("graphing-calculator-text-geometry-tool-translate-display-name")}}getTransformationFocusLocations(){let e=[];return this.getTransformations().forEach(t=>{e.push({type:"geo-basic-tool",tool:t})}),e}onPointerOver(e,t){var o;if(e.pointerType!=="mouse")return;let i=(o=Ii(t))==null?void 0:o.identifier;i&&(this.currentlyActiveTokenIdentifier=i,this.controller.dispatch({type:"set-active-token",identifier:this.currentlyActiveTokenIdentifier,style:"hovered"}))}onPointerOut(e,t){var o;if(e.pointerType!=="mouse")return;let i=(o=Ii(t))==null?void 0:o.identifier;i&&this.currentlyActiveTokenIdentifier&&this.currentlyActiveTokenIdentifier===i&&(this.controller.dispatch({type:"unset-active-token",identifier:this.currentlyActiveTokenIdentifier,style:"hovered"}),this.currentlyActiveTokenIdentifier=void 0)}onImplicitMouseOut(e){var i;let t=(i=Ii(e))==null?void 0:i.identifier;t&&this.currentlyActiveTokenIdentifier&&this.currentlyActiveTokenIdentifier===t&&this.controller.runAfterDispatch(()=>{let o=this.currentlyActiveTokenIdentifier;o&&(this.currentlyActiveTokenIdentifier=void 0,this.controller.dispatch({type:"unset-active-token",identifier:o,style:"hovered"}))})}applyTransformation(e){var i;if(!((i=e.formula.geometry)!=null&&i.identifier))return;let t=__dcg_shared_module_exports__['bb'](e.formula.geometry.identifier);this.controller.dispatch({type:"apply-transformation-to-selected",assignmentLatex:t})}};var xm=__dcg_shared_module_exports__['e']($());kt();var _N='a, input, button:not([disabled]), textarea, select [role="textbox"], [tabindex="0"], [role="button"], [role="link"], summary',xE=class{constructor({closeMenu:e,focusIcon:t,getIconSelector:i,getContainerEl:o,isIconFocused:n}){this.globalKeyDownListener=e=>{let t=ue(e);if(t===_o){e.preventDefault(),e.stopPropagation(),this.focusIcon(),this.closeMenu();return}if(t==="Tab"&&!e.altKey&&!e.ctrlKey&&!e.metaKey){if(this.isIconFocused()){e.shiftKey?this.focusLastOption():this.focusFirstOption(),e.preventDefault(),e.stopPropagation();return}if(this.isLastOptionViewFocused()&&!e.shiftKey){this.focusIcon(),e.preventDefault(),e.stopPropagation();return}if(this.isFirstOptionViewFocused()&&e.shiftKey){this.focusIcon(),e.preventDefault(),e.stopPropagation();return}}};this.tapListener=e=>{let t=this.getContainerEl();if(!t)return;let{target:i}=e,o=this.getIconSelector();if(o&&i.closest(o))return;if(t.contains(i)){if(!i.matches(_N))return;let{first:a,last:s}=this.getDOMTabStops();a===i?this.focusFirstOption():s===i&&this.focusLastOption();return}Array.from(document.querySelectorAll(".dcg-keypad,.dcg-show-keypad-container")).some(a=>a.contains(i))||this.closeMenu()};this.closeMenu=e,this.getContainerEl=o,this.getIconSelector=i,this.isIconFocused=n,this.focusIcon=t}isFirstOptionViewFocused(){let{first:e}=this.getDOMTabStops();return e!==void 0&&e.matches(":focus")}focusFirstOption(){let{first:e}=this.getDOMTabStops();e!==void 0&&e.focus()}focusLastOption(){let{last:e}=this.getDOMTabStops();e!==void 0&&e.focus()}isLastOptionViewFocused(){let{last:e}=this.getDOMTabStops();return e!==void 0&&e.matches(":focus")}getDOMTabStops(){let e=this.getContainerEl();if(e===void 0)return{};let t=Array.from(e.querySelectorAll(_N));return{first:t.find(i=>ru(i)),last:[...t.reverse()].find(i=>ru(i))}}};var ks=class extends xm.Class{init(){this.controller=this.props.controller()}template(){return xm.createElement("div",{class:xm.const("dcg-options-menu-container"),didMount:this.bindFn(this.didMountView),didUnmount:this.bindFn(this.didUnmountView)},this.children)}didMount(){this.props.openAriaAlert&&ie(this.props.openAriaAlert())}willUnmount(){this.props.closeAriaAlert&&ie(this.props.closeAriaAlert())}didMountView(e){this.focusHelper=new xE({isIconFocused:()=>this.isIconModelFocused(),focusIcon:()=>this.focusIcon(),getContainerEl:()=>this.openView,closeMenu:()=>this.hideOptions(),getIconSelector:()=>{var t;return`[dcg-open-menu-guid="${(t=this.controller.getOpenItemMenu())==null?void 0:t.guid}"]`}}),this.guid=__dcg_shared_module_exports__['Ua']("dcg-dropdown-menu"),this.openView=e,this.positionMenu(),this.moveFocusIfAppropriate(),this.attachKeyDownListeners(),this.attachTapListener()}isIconModelFocused(){let e=this.controller.getFocusLocation();return __dcg_shared_module_exports__['Oa'](e,this.props.menuButtonFocusLocation())}attachKeyDownListeners(){this.props.shouldHandleTabAndEscape()&&document.addEventListener("keydown",this.focusHelper.globalKeyDownListener)}attachTapListener(){W(document.body).on(`dcg-tapstart.${this.guid}`,this.focusHelper.tapListener)}didUnmountView(){document.removeEventListener("keydown",this.focusHelper.globalKeyDownListener),W(document.body).off(`.${this.guid}`),this.openView=void 0}moveFocusIfAppropriate(){this.shouldMoveFocusToFirstOption()?this.focusHelper.focusFirstOption():this.shouldMoveFocusToLastOption()&&this.focusHelper.focusLastOption()}hideOptions(){this.controller.dispatch({type:"close-item-settings-menu"})}getRootEl(){return this.controller.findEl(this.props.rootElSelector())}positionMenu(){let e=this.controller.getOpenMenuIcon();if(!e||!this.openView)return;let t=this.getRootEl();if(!t)return;let i=t.getBoundingClientRect(),o=e.getBoundingClientRect(),n={top:o.top-i.top,left:o.left-i.left};Wn(this.openView,{top:n.top+"px",left:n.left+"px",display:"block"})}focusIcon(){this.controller.focusOpenMenuIcon()}shouldMoveFocusToFirstOption(){if(this.props.focusOnOpen)return this.props.focusOnOpen()==="first";if(this.openView&&this.openView.matches(":focus-within"))return!1;let e=this.controller.getOpenItemMenu();return(e==null?void 0:e.type)===this.props.menuType()&&!!(e!=null&&e.focusFirstOption)}shouldMoveFocusToLastOption(){return this.props.focusOnOpen?this.props.focusOnOpen()==="last":!1}};var{If:sy,Switch:C9}=lt.Components,wE=class extends lt.Class{init(){this.controller=this.props.controller(),this.focusOrder=[{type:"geo-header-back-link"},{type:"multi-select-delete-icon"},{type:"multi-select-show-hide-icon"},{type:"multi-select-transformations-icon"},{type:"multi-select-more-icon"}]}template(){return lt.createElement("div",{class:lt.const("dcg-multi-select-header dcg-animate-in-after-initial-load"),onKeydown:this.bindFn(this.handleKeydown),role:lt.const("toolbar"),"aria-label":this.bindFn(this.getSelectedCountString)},lt.createElement(hm,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-geometry-deselect-all"),controller:this.props.controller,message:this.bindFn(this.getSelectedCountString),onBack:this.bindFn(this.onDone)}),lt.createElement(sy,{predicate:()=>this.hasSelectedAndEditableItems()},()=>lt.createElement(Ce,{tooltip:this.bindFn(this.getDeleteItemString)},lt.createElement("span",{"aria-label":this.bindFn(this.getDeleteItemString),role:lt.const("button"),tabindex:lt.const("-1"),handleEvent:lt.const("true"),class:lt.const("dcg-multi-select-icon-button dcg-delete-btn"),onTap:this.bindFn(this.deleteSelected),manageFocus:this.const(Fe({controller:this.controller,location:{type:"multi-select-delete-icon"}}))},lt.createElement("i",{class:lt.const("dcg-icon-trashcan"),"aria-hidden":lt.const("true")})))),lt.createElement(C9,{key:this.bindFn(this.getSelectedItemsKey)},()=>lt.createElement(sy,{predicate:()=>this.hasSelectedAndEditableItems()},()=>lt.createElement("div",{class:()=>({"dcg-btn-outline":!0,"dcg-show-hide-btn":!0,"dcg-any-visible-objects":this.anyVisible()}),handleEvent:lt.const("true"),tabindex:lt.const("-1"),role:lt.const("button"),onTap:this.bindFn(this.toggleItemsVisible),manageFocus:this.const(Fe({controller:this.controller,location:{type:"multi-select-show-hide-icon"}}))},lt.createElement("div",{"aria-hidden":()=>!this.anyVisible()},()=>this.controller.s("graphing-calculator-text-geometry-hide-objects",{count:__dcg_shared_module_exports__['jb'](this.getSelectedCount())})),lt.createElement("div",{"aria-hidden":this.bindFn(this.anyVisible)},()=>this.controller.s("graphing-calculator-text-geometry-show-objects",{count:__dcg_shared_module_exports__['jb'](this.getSelectedCount())}))))),lt.createElement(sy,{predicate:()=>this.controller.isSomeTransformToolVisible()},()=>lt.createElement("div",{class:()=>({"dcg-btn-outline":!0,"dcg-transformations-button":!0,"dcg-transformations-open":this.isTransformationsMenuOpen()}),handleEvent:lt.const("true"),tabindex:lt.const("-1"),role:lt.const("button"),"dcg-open-menu-guid":()=>ly(),onTap:this.bindFn(this.toggleTransformationsMenu),manageFocus:this.const(Fe({controller:this.controller,location:{type:"multi-select-transformations-icon"}}))},this.bindFn(this.getTransformationsString),lt.createElement("i",{class:lt.const("dcg-icon-caret-down"),"aria-hidden":lt.const("true")}))),lt.createElement(Ce,{tooltip:this.bindFn(this.getMoreString)},lt.createElement("span",{"aria-label":this.bindFn(this.getMoreString),role:lt.const("button"),tabindex:lt.const("-1"),handleEvent:lt.const("true"),"aria-expanded":this.bindFn(this.isMoreMenuOpen),class:lt.const("dcg-multi-select-icon-button dcg-more-options"),"dcg-open-menu-guid":()=>_u(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"multi-select-more-icon"}})),onTap:this.bindFn(this.toggleMoreMenu)},lt.createElement(eE,null))),lt.createElement(sy,{predicate:this.bindFn(this.isTransformationsMenuOpen)},()=>lt.createElement(ks,{controller:this.props.controller,shouldHandleTabAndEscape:this.const(!0),menuType:this.const("multi-select-transformations"),menuButtonFocusLocation:this.const({type:"multi-select-transformations-icon"}),rootElSelector:this.const(".dcg-multi-select-header")},lt.createElement(yE,{controller:this.props.controller}))),lt.createElement(sy,{predicate:this.bindFn(this.isMoreMenuOpen)},()=>lt.createElement(ks,{controller:this.props.controller,shouldHandleTabAndEscape:this.const(!0),menuType:this.const("multi-select-more"),menuButtonFocusLocation:this.const({type:"multi-select-more-icon"}),rootElSelector:this.const(".dcg-multi-select-header")},lt.createElement(aE,{controller:this.props.controller}))))}handleKeydown(e){let t=ue(e);if(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey||t!=="Left"&&t!=="Right"&&t!=="Home"&&t!=="End")return;let i=this.controller.getFocusLocation();if(!i)return;let o=__dcg_shared_module_exports__['Ga'](this.focusOrder,i);if(o===-1)return;e.preventDefault(),e.stopPropagation();let n=o;t==="Left"?n=Math.max(0,o-1):t==="Right"?n=Math.min(this.focusOrder.length-1,o+1):t==="Home"?n=0:t==="End"&&(n=this.focusOrder.length-1),n!==o&&this.controller.dispatch({type:"set-focus-location",location:this.focusOrder[n]})}getSelectedCountString(){return this.controller.getGrapherDimensions().width<450?"":this.controller.s("graphing-calculator-text-geometry-selected-objects",{count:__dcg_shared_module_exports__['jb'](this.getSelectedCount())})}getSelectedAndEditableItems(){return this.controller.getAllSelectedItems().filter(t=>!this.controller.isItemReadonly(t.id))}hasSelectedAndEditableItems(){return this.getSelectedAndEditableItems().length>0}getDeleteItemString(){let e=this.getSelectedCount(),t=this.getSelectedAndEditableItems().length;return e-t>0?this.controller.s("graphing-calculator-text-geometry-delete-selected-unlocked-objects",{count:__dcg_shared_module_exports__['jb'](t)}):this.controller.s("graphing-calculator-text-geometry-delete-selected-objects",{count:__dcg_shared_module_exports__['jb'](t)})}getMoreString(){return this.controller.s("graphing-calculator-text-geometry-multi-select-more-dropdown")}getTransformationsString(){return this.controller.s("graphing-calculator-text-geometry-multi-select-transform")}getSelectedItemsKey(){let e=this.controller.getAllSelectedItems();return __dcg_shared_module_exports__['xa'](e,"id").join("-")}toggleItemsVisible(){this.anyVisible()?this.hideSelected():this.showSelected()}anyVisible(){let e=this.controller.getAllSelectedItems();return __dcg_shared_module_exports__['va'](e,t=>!Zo(t))}isFolderMenuOpen(){return this.controller.isItemSettingsMenuOpen(S9())}isMoreMenuOpen(){return this.controller.isItemSettingsMenuOpen(_u())}isTransformationsMenuOpen(){return this.controller.isItemSettingsMenuOpen(ly())}toggleMoreMenu(){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"multi-select-more",guid:_u(),focusFirstOption:!0}})}toggleTransformationsMenu(){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"multi-select-transformations",guid:ly(),focusFirstOption:!0}})}getSelectedCount(){return this.controller.getAllSelectedItems().length}hideSelected(){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"visible",value:!1}})}showSelected(){this.controller.dispatch({type:"update-all-selected-items",update:{prop:"visible",value:!0}})}onDone(){this.controller.dispatch({type:"set-none-selected"})}deleteSelected(){this.controller.dispatch({type:"delete-all-selected-items"})}};function S9(){return"**multi-select-folder**"}function _u(){return"**multi-select-more**"}function ly(){return"**multi-select-transformations**"}var Fu=class{constructor(){this.displayName="graphing-calculator-text-geometry-tool-box-selection-display-name";this.toolType="selection";this.icon=[{type:"stroked-path",color:"#aaa",path:[35,35,51,35,51,51,35,51,35,35]},{type:"filled-polygon",color:"#000",path:[50,50,63.5,62,58.25,62.75,62,72.5,59.75,74,55.25,64.25,50.75,68,50,50]}]}getNumberInputLatex(){return""}clearTentativeOutputs(){}canNextInputBePoint(){return!1}getAllValidNextInputTypes(){return __dcg_shared_module_exports__['W'].filter(e=>this.isValidNextInputType(e))}isValidNextInputType(e){return e!==__dcg_shared_module_exports__['N']}getNonPointInputType(){}getHint(){return""}getExpressionEditHint(e){return this.getHint()}onNumberInput(e){}onMove(e){return!0}onFocus(e){}tryCommitResults(){return{committed:void 0}}shouldUseJitEdges(){return!1}shouldHighlightRelevantObjects(){return!1}};function FN(r,e){return r===void 0?e===void 0:!(e===void 0||r.calcId!==e.calcId||r.listIndex!==e.listIndex||r.polygonEdge!==e.polygonEdge)}var vE=class{constructor(e){this.poiController=e,this.controller=e.controller,this.grapher=e.manager}getKeyboardAttention(){return this.objectUnderAttention}setKeyboardAttention(e){this.objectUnderAttention=e}findNonGeometryTabTargetsInGraph(){let e=this.controller.getGrapher3d();if(e)return e.getOrderedTabTargets();let t=this.grapher.imageLayer.getOrderedTabTargets(),i=this.grapher.clickableObjectsLayer.getOrderedTabTargets(),o=this.grapher.movablePointsLayer.getOrderedTabTargets();return t.concat(i).concat(o)}findTabbableObjectsForCurrentTool(e){let t=e==null?void 0:e.calcId,i={};this.controller.isGeometry()&&this.controller.getGeoModel().getAllChoosableDefsUnordered({mode:"tab"}).forEach(h=>{var b;i[h.calcId]||(i[h.calcId]=[]);let g={calcId:h.calcId,listIndex:h.listIndex,polygonEdge:(b=h.polygonEdgeInfo)==null?void 0:b.edgeNumber,geoDef:{...h}};i[h.calcId].push(g)});let o=this.controller.getGeoModel().getCurrentTool();(!this.controller.isGeometry()||o.isValidNextInputType(__dcg_shared_module_exports__['n']))&&this.findNonGeometryTabTargetsInGraph().filter(u=>!(o instanceof Fu&&this.controller.isClickableId(u.calcId))).forEach(u=>{var g;let h=(g=u.listIndex)!=null?g:0;if(!i[u.calcId])i[u.calcId]=[];else if(h&&!(!this.controller.isGeometry()||this.controller.canExpandListForItem(u.calcId)))return;i[u.calcId][h]?i[u.calcId][h].description=u.description:i[u.calcId].push(u)});let n=[],a=-1,s=!1,l=this.controller.getGrapher3d(),c=l?l.getSketchOrder():this.grapher.getSketchOrder();for(let d=0;d<c.length;d++){let u=c[d];u===t&&(a=n.length);let h=i[u];if(h){h.sort((g,b)=>g.listIndex!==b.listIndex?g.listIndex===void 0?-1:b.listIndex===void 0?1:g.listIndex-b.listIndex:g.polygonEdge!==b.polygonEdge?g.polygonEdge===void 0?-1:b.polygonEdge===void 0?1:g.polygonEdge-b.polygonEdge:0);for(let g of h)u===t&&(s||(a=n.length),FN(g,e)&&(s=!0)),n.push(g)}}return{targets:n,currentTabIndex:a,currentIsTabbable:s}}findNextObjFromKeyboard(e,t){let{targets:i,currentIsTabbable:o,currentTabIndex:n}=this.findTabbableObjectsForCurrentTool(t);if(!i.length)return;if(n===-1)return e==="next"?{wrapped:!1,target:i[0]}:{wrapped:!1,target:i[i.length-1]};let a=!1,s=n;return e==="prev"?s-=1:o&&(s+=1),s===-1?(a=!0,s=i.length-1):s>=i.length&&(a=!0,s=0),{wrapped:a,target:i[s]}}focusNextObjFromKeyboard(e={}){let t={allowWrapping:!0,selectNonClickables:!1,direction:"next"},{direction:i,allowWrapping:o,selectNonClickables:n}={...t,...e},a=this.findNextObjFromKeyboard(i,this.getKeyboardAttention());return!a||!o&&a.wrapped?(n&&this.controller.dispatch({type:"set-none-selected"}),!1):(a.wrapped&&this.controller.isVirtualMouseAllowed()?this.resetBackToGeoKeyboardPt():(n&&(this.controller.isClickableId(a.target.calcId)||!this.controller.isGeoItem(a.target.calcId)?this.controller.dispatch({type:"set-none-selected"}):this.controller.dispatch({type:"set-selected-id",id:a.target.calcId})),this.updateKeyboardAttention(a.target,{describe:!0})),!0)}updateKeyboardAttention(e,t){let i=this.getKeyboardAttention();FN(e,i)||(this.setKeyboardAttention(e),this.controller.isGeometry()&&this.controller.getGeoModel().onFocus(e==null?void 0:e.geoDef),this.poiController.moveGeoKeyboardPtToFocusedItem(t),t.describe&&this.poiController.describeFocusedItem({includeDetails:!0}))}clearAttentionIfNotTabbable(){let{currentIsTabbable:e}=this.findTabbableObjectsForCurrentTool(this.getKeyboardAttention());e||this.updateKeyboardAttention(void 0,{describe:!1})}handleGrapherGainedFocus(){if(this.controller.getGeoModel().speakCurrentGeoToolHint(),this.controller.isVirtualMouseAllowed())this.resetBackToGeoKeyboardPt();else{let t=this.findTabbableObjectsForCurrentTool(void 0).targets;t.length?(this.setKeyboardAttention(void 0),this.updateKeyboardAttention(t[0],{describe:!0})):ie(this.controller.s("graphing-calculator-narration-geometry-no-tool-inputs"))}}resetBackToGeoKeyboardPt(){this.updateKeyboardAttention(void 0,{describe:!0}),this.poiController.geoKeyboardPt.x=this.poiController.geoKeyboardPt.lastArrowedX,this.poiController.geoKeyboardPt.y=this.poiController.geoKeyboardPt.lastArrowedY,this.poiController.handleGeoKeyboardPtMove()}};function MM(r,e){if(r.indexOf("\\idref_{")===0){let t=r.indexOf("}"),i=r.slice(8,t);return e(i)+r.slice(t+1)}else return r}function AM(r,e,t){var a;let i=s=>t?s.map(l=>MM(l,t)):s;switch(r.type){case"point-reference":return{latex:`${r.id}=${r.parents[0]}`,color:r.color};case"point":var{x:o,y:n}=r;return{latex:r.id+"=\\left("+__dcg_shared_module_exports__['wc'](o)+","+__dcg_shared_module_exports__['wc'](n)+"\\right)",color:r.color};case"glider":return{latex:r.id+"=\\operatorname{glider}\\left("+i(r.parents)[0]+","+__dcg_shared_module_exports__['wc'](r.t)+"\\right)",color:r.color};case"polygon":{let d="";return!e&&r.connectBorder&&(d=","+r.parents[0]),{latex:r.id+"=\\operatorname{"+r.type+"}\\left("+i(r.parents).join(",")+d+"\\right)",color:r.color}}case"circle":case"arc":case"compass":case"segment":case"line":case"ray":case"parallel":case"perpendicular":case"intersection":case"midpoint":return{latex:r.id+"=\\operatorname{"+r.type+"}\\left("+i(r.parents).join(",")+"\\right)",color:r.color};case"vector-copy":{let[d,u]=i(r.parents);return{latex:`${r.id}=\\operatorname{translate}\\left(${d},${d}.\\operatorname{start},${u}\\right)`,color:r.color}}case"vector":return{latex:r.id+"=\\operatorname{"+r.type+"}\\left("+i(r.parents).join(",")+"\\right)",color:r.color};case"vector-endpoint":return{latex:`${r.id}=${i(r.parents)[0]}.\\operatorname{${r.location}}`,color:r.color};case"translate":case"reflect":case"dilate":case"rotate":{let d=r.type==="dilate"||r.type==="rotate"?[...i([r.parents[0]]),r.parents[1]]:i(r.parents);return{latex:`${r.id}\\left(x\\right)=\\operatorname{${r.type}}\\left(x,${d.join(",")}\\right)`,color:r.color}}case"angle":case"directedangle":return{showAngleLabel:(a=r.showAngleLabel)!=null?a:!0,latex:r.id+"=\\operatorname{"+r.type+"}\\left("+i(r.parents).join(",")+"\\right)",color:r.color};case"angles":case"directedangles":return{showAngleLabel:e,latex:r.id+"=\\operatorname{"+r.type+"}\\left("+i(r.parents).join(",")+"\\right)"+(r.listAccess!==void 0?"\\left["+r.listAccess+"\\right]":""),color:r.color};case"polygon-segment":return{latex:r.id+"="+i(r.parents)[0]+(r.listAccess!==void 0?"\\left["+r.listAccess+"\\right]":"")+".\\operatorname{segments}\\left["+(r.edgeNumber+1)+"\\right]",color:r.color};case"slider":return{latex:r.latex,color:r.color,sliderInfo:r.sliderInfo};case"expression-edit-preview-latex":return r.rhsLatex===""?void 0:{showAngleLabel:r.rhsLatex.trim().startsWith("\\operatorname{angle}\\left("),latex:r.id+"="+r.rhsLatex,color:r.color};default:return r}}function GM(r,e){__dcg_shared_module_exports__['Z'](r.valueType)?r.value.forEach((t,i)=>{let o=__dcg_shared_module_exports__['_'](r.valueType);if(__dcg_shared_module_exports__['da'](o))throw new Error("Programming error: unexpected lambda type");e({valueType:o,value:t},i+1)}):e(r,void 0)}function Ru(r,e){let{controller:t,expandLists:i=!0}=r;t.getAllItemModels().concat(t.getAllToolPreviewItems()).forEach(n=>{var u;if(!hs(n))return;let a=n.formula.typed_constant_value,s=n.formula.geometry,l=s.identifier,c=l?__dcg_shared_module_exports__['bb'](l):"\\idref_{"+n.id+"}",d=!t.getItemModel(n.id);i&&t.canExpandListForItem(n.id)?GM(a,(h,g)=>{var S;let b=c+(g===void 0?"":"\\left["+g+"\\right]"),C={calcId:n.id,data:s,hidden:!n.shouldGraph,isGraphableAndInteractive:!!((S=n.formula)!=null&&S.is_graphable)&&!r.controller.shouldIgnoreGraphInteractions(n),assignment:c,listIndex:g!==void 0?g-1:void 0,typedRuntimeValue:h,referenceLatex:b};e(C,d)}):e({calcId:n.id,data:s,hidden:!n.shouldGraph,isGraphableAndInteractive:!!((u=n.formula)!=null&&u.is_graphable)&&!r.controller.shouldIgnoreGraphInteractions(n),assignment:c,listIndex:void 0,typedRuntimeValue:a,referenceLatex:c},d)})}function E9(r,e){switch(r.valueType){case __dcg_shared_module_exports__['t']:return{valueType:__dcg_shared_module_exports__['p'],value:r.value[e]};case __dcg_shared_module_exports__['C']:return{valueType:__dcg_shared_module_exports__['B'],value:r.value[e]};case __dcg_shared_module_exports__['A']:return{valueType:__dcg_shared_module_exports__['z'],value:r.value[e]};case __dcg_shared_module_exports__['I']:return{valueType:__dcg_shared_module_exports__['H'],value:r.value[e]};case __dcg_shared_module_exports__['Q']:return{valueType:__dcg_shared_module_exports__['P'],value:r.value[e]};case __dcg_shared_module_exports__['G']:return{valueType:__dcg_shared_module_exports__['F'],value:r.value[e]};case __dcg_shared_module_exports__['y']:return{valueType:__dcg_shared_module_exports__['x'],value:r.value[e]};case __dcg_shared_module_exports__['E']:return{valueType:__dcg_shared_module_exports__['D'],value:r.value[e]};case __dcg_shared_module_exports__['K']:return{valueType:__dcg_shared_module_exports__['J'],value:r.value[e]};case __dcg_shared_module_exports__['M']:return{valueType:__dcg_shared_module_exports__['L'],value:r.value[e]};case __dcg_shared_module_exports__['v']:case __dcg_shared_module_exports__['r']:case __dcg_shared_module_exports__['q']:case __dcg_shared_module_exports__['O']:case __dcg_shared_module_exports__['s']:case __dcg_shared_module_exports__['R']:case __dcg_shared_module_exports__['w']:case __dcg_shared_module_exports__['u']:case __dcg_shared_module_exports__['T']:throw new Error("Programming Error: unexpected type "+__dcg_shared_module_exports__['Y'](r.valueType));default:throw r.valueType,new Error("Programming Error: expected a list type but found "+__dcg_shared_module_exports__['Y'](r.valueType))}}function VM(r,e){return{...r,referenceLatex:r.assignment+"\\left["+e+"\\right]",typedRuntimeValue:E9(r.typedRuntimeValue,e),listIndex:e}}function CE(r){switch(r){case __dcg_shared_module_exports__['p']:return"Point";case __dcg_shared_module_exports__['B']:return"Circle";case __dcg_shared_module_exports__['D']:return"Arc";case __dcg_shared_module_exports__['x']:return"Polygon";case __dcg_shared_module_exports__['F']:return"Line";case __dcg_shared_module_exports__['z']:return"Segment";case __dcg_shared_module_exports__['H']:return"Ray";case __dcg_shared_module_exports__['P']:return"Vector";case __dcg_shared_module_exports__['J']:return"Angle";case __dcg_shared_module_exports__['L']:return"Angle"}}function RN(r){if(!r)return;let e=r.typedRuntimeValue;return CE(e.valueType)}function SE(r){if(!r)return 0;if(r.type==="image"&&r.listIndex)return r.listIndex;if("poi"in r)return r.poi.pointIdxOnBranch;if("branchInfo"in r&&r.branchInfo.sketch){let e=r.branchInfo.branch,t=r.branchInfo.sketch.branches[e];return"listIndex"in t&&t.listIndex||0}return 0}var k9=0,EE=class r{constructor(e,t){this.geoKeyboardPt={x:NaN,y:NaN,lastArrowedX:NaN,lastArrowedY:NaN};this.grapherIsPressed=!1;this.canceledGeoToolplayWhilePressed=!1;this.manager=e,this.controller=e.controller,this.keyboardAttentionManager=new vE(this),this.graphSettings=t,this.elt=this.manager.elt,this.id=k9++,!(!this.graphSettings.config.graphpaper||this.graphSettings.config.disableMouseInteractions)&&(this.addTouchEventHandlers(),this.addHoverEventHandler(),this.addKeydownEventHandler(),this.addManualUnhoverListener(),this.addGeoEventHandlers())}remove(){this.removeAllGlobalMouseListeners(),this.removeManualUnhoverListener(),this.removeAllGeoListeners(),this.removeHoverEventHandler()}addGlobalMouseListener(e,t){let i=e.split(" ");for(let o of i){let n=o+".dcg-poiController-"+this.id;W(document).on(n,t)}}removeAllGeoListeners(){W(document).off(".dcg-poiController-geo-"+this.id)}removeAllGlobalMouseListeners(){W(document).off(".dcg-poiController-"+this.id)}getToleranceByDevice(e){return e==="touch"?20:10}addGeoEventHandlers(){let e="keydown.dcg-poiController-geo-"+this.id,t="keyup.dcg-poiController-geo-"+this.id,i=e+" "+t;W(document).on(i,o=>{this.controller.isGeoToolActive()&&this.handleGeoShiftKeyChange(o.shiftKey)}),W(document).on("mouseleave.dcg-poiController-geo-"+this.id,()=>{if(this.controller.isGeoToolActive()&&!this.grapherIsPressed){let o=this.controller.getGeoModel();o.onMouseAction("move",{pt:{x:NaN,y:NaN},shift:!1,tolerance:0}),o.onPreviewChange()}}),W(document).on("dcg-tapend.dcg-poiController-geo-"+this.id,o=>{this.controller.isGeoToolActive()&&this.handleGeoTapEnd(o)})}removeHoverEventHandler(){W(document).off(".dcg-poiController-global-hover-"+this.id)}addHoverEventHandler(){let e="dcg-tapmove.dcg-poiController-global-hover-"+this.id;W(document).on(e,t=>{var M;let i=t;if(this.controller.isGeoToolActive()&&this.handleGeoTapMove(i)||(this.lastGeoMouseEvent=void 0,i.device==="touch"))return;let o=document.elementFromPoint(i.clientX,i.clientY),n=!!o&&!!o.closest(".dcg-grapher"),a=(M=this.controller.getGrapher3d())==null?void 0:M.webglLayer,s=this.manager.poiLabelsLayer,l=this.getMouseRelativeToGrapher(i),c=this.getToleranceByDevice(i.device);a&&(a==null||a.setMouse(n?l:void 0));let d;n&&(d=this.getFeatureUnderPoint(l,c)),!!((i==null?void 0:i.originalEvent)||i).buttons&&(d=void 0);let u;if(d&&d.type==="movable-point"){let E=d.poi,A=E&&E.getMovablePoint();u=A&&A.id}let h,g=0;d&&d.isClickable&&!this.isBoxSelectActive(i)&&!this.manager.movablePointsLayer.isMovingPoint()&&!this.manager.traceLayer.isTracing()&&(h=d.model,g=SE(d));let b=this.manager.clickableObjectsLayer,C={};h&&(C[h.id]={listIndexes:g===void 0?void 0:{[g]:!0}}),b.setHoveredObjects(C);let S;d&&"poi"in d&&d.poi&&(!d.poi.isAttachedToPlottedPoint()||d.poi.hasInteractiveLabel())&&(S=d.poi),S!==s.getHoveredPOI()&&(this.controller.isTraceEnabled()?s.setHoveredPOI(S):s.setHoveredPOI(void 0),this.controller.requestRedrawGraph());let k=!1;if(d&&d.type==="image"){let E=Ws(d.model),A=d.isClickable;k=E&&!A}let I=!1;d&&d.type==="draggable-label"&&(I=!0),k||I?this.manager.setLayerClass("extraMoveCursor","dcg-mouse-over-movable-point"):this.manager.setLayerClass("extraMoveCursor",""),this.manager.movablePointsLayer.setHoveredPointId(u)})}addManualUnhoverListener(){let e=()=>{let t=this.manager;t.poiLabelsLayer.setHoveredPOI(void 0),t.clickableObjectsLayer.setHoveredObjects({}),this.controller.requestRedrawGraph()};W(window).on("blur.dcg-poiController-"+this.id,e),W(this.elt).on("mouseleave",e)}removeManualUnhoverListener(){W(window).off(".dcg-poiController-"+this.id)}getPickResults(e,t){let i=t.webglLayer,{x:o,y:n}=this.getMouseRelativeToGrapher(e);return i.setMouse({x:o,y:n}),i.pickAtMouseAndReadResults(),i.getPickResult()}isClickable(e){let t=this.controller.getItemModel(e);return GT(t)}add3DTouchEventHandlers(e){let t=e.elt;if(!t)return;let i=e.webglLayer;W(t).on("dcg-tapstart",o=>{if(o.touches.length>1)return;let n=this.getPickResults(o,e);if(n!=null&&n.id){let{id:a,index:s}=n;this.isClickable(a)?(i.setPressedAction({id:a,index:s}),o.stopPropagation(),o.preventDefault()):this.controller.dispatch({type:"set-selected-id",id:a})}}),W(t).on("dcg-tapend dcg-tapcancel",()=>{let o=i.getPressedAction();o&&(i.setPressedAction(void 0),this.controller.dispatch({type:"clickable-item-clicked",id:o.id,listIndex:o.index})),i.isTrackingPressedAction=!1}),W(t).on("dcg-tapmove",o=>{if(i.isTrackingPressedAction){let n=this.getPickResults(o,e);if(n!=null&&n.id){let{id:a,index:s}=n;this.isClickable(a)?i.setPressedAction({id:a,index:s}):i.setPressedAction(void 0)}else i.setPressedAction(void 0)}})}addTouchEventHandlers(){W(this.elt).on("touchstart",e=>{let t=e;if(!this.isViewportLocked()){t.target.matches("input, textarea")||t.preventDefault();return}let i=this.getMouseRelativeToGrapher(t),o=this.getToleranceByDevice(t.device),n=this.getFeatureUnderPoint(i,o);n&&(n.type==="image"&&!An(n.model)&&!Ws(n.model)||n.type==="sketch-branch"&&this.graphSettings.config.onlyTraceSelected&&!n.sketch.selected||t.target.matches("input, textarea")||t.preventDefault())}),W(this.elt).on("dcg-tapstart",e=>{let t=e;if(this.controller.isGeoToolActive()&&this.handleGeoTapStart(t)){t.handle();return}let i=this.getMouseRelativeToGrapher(t),o=this.getToleranceByDevice(t.device),n=this.getFeatureUnderPoint(i,o);if(e.target.closest(".dcg-label")&&!n){t.handle("do-not-clear-poi-labels");return}if(!n){this.isBoxSelectActive(t)||this.controller.dispatch({type:"set-none-selected"}),this.isBoxSelectActive(t)?this.startBoxSelect(t):this.manager.viewportController.beginPanning(t);return}if(n.isClickable&&!this.isBoxSelectActive(t)){let l="model"in n&&n.model;l?this.manager.clickableObjectsLayer.setPressedObject({id:l.id,listIndex:SE(n)}):this.manager.clickableObjectsLayer.setPressedObject(void 0)}else this.manager.clickableObjectsLayer.setPressedObject(void 0);if(n.type==="editable-label"){t.handle();return}else Pr();if(n.type==="draggable-label"){this.startMovingPoints({poiUnderMouse:void 0,evt:t,points:[{type:"draggable-label",label:n.label,model:n.model,startScreenPt:i}]}),t.handle();return}if(n.type==="clickable-label"&&t.handle(),n.type==="image"&&Ws(n.model)&&!this.isBoxSelectActive(t)){let l=!!n.isClickable;if(this.startMovingPoints({poiUnderMouse:void 0,evt:t,points:[{type:"image",image:n.model,startScreenPt:i,shouldDelayUntilRealMove:l}]}),!l){t.handle();return}}let a=!1,s=n.model;if(this.controller.isGeometry()&&s&&s.type==="expression"&&s.formula.geometry){!this.isBoxSelectActive(t)&&!this.controller.isItemSelected(s.id)&&this.controller.dispatch({type:"set-none-selected"});let l;"poi"in n&&(l=n.poi),a=this.startReverseDrag(s.id,t,l),a&&n.type!=="static-point"&&this.manager.clickableObjectsLayer.setPressedObject({id:s.id,listIndex:SE(n)})}if(n.type==="movable-point"&&(t.handle(),t.handle("do-not-clear-poi-labels"),!a)){this.startMovingPoints({poiUnderMouse:n.poi,evt:t,points:[{type:"poi",poi:n.poi,startScreenPt:i}]});return}if(n.type==="static-point"&&!n.isClickable){let l=n.poi;if(this.controller.isGeometry()){if(l&&l.hasInteractiveLabel()){this._togglePOIUnderPoint(i,o)&&t.handle("do-not-clear-poi-labels");return}}else if(l){this._togglePOIUnderPoint(i,o)&&t.handle("do-not-clear-poi-labels");return}(!n.sketch.selected||this.isBoxSelectActive(t))&&n.model&&this.selectItemIfNotSecret(n.model.id,this.isBoxSelectActive(t));return}if(!a&&this._togglePOIUnderPoint(i,o)){t.handle(),t.handle("do-not-clear-poi-labels");return}if(!a&&n.type==="sketch-branch"&&!n.isClickable){let l=!this.controller.isTraceEnabled();if(this.graphSettings.config.onlyTraceSelected){if(t.handle("do-not-clear-poi-labels"),!l&&n.sketch.selected&&!this.isBoxSelectActive(t)){this.startTracingBranch(n,i),t.handle();return}}else{let c=!this.controller.isListEnabled();if(l&&c||(this.selectItemIfNotSecret(n.sketch.id,this.isBoxSelectActive(t)),l))return;this.startTracingBranch(n,i),t.handle(),t.handle("do-not-clear-poi-labels");return}}this.addGlobalMouseListener("dcg-tapmove",l=>{this.manager.clickableObjectsLayer.isAnObjectPressed()?i=this.getMouseRelativeToGrapher(l):(this.removeAllGlobalMouseListeners(),this.manager.viewportController.beginPanning(l))}),this.addGlobalMouseListener("dcg-tapend dcg-tapcancel",l=>{this.removeAllGlobalMouseListeners();let c=this.manager.clickableObjectsLayer.getPressedObject(),d=c&&c.id;this.manager.clickableObjectsLayer.setPressedObject(void 0);let u=this.getFeatureUnderPoint(i,o);if(u&&u.isClickable){let h="model"in u&&u.model;h&&h.id===d&&!l.wasHandled("dragged-clickable-object")&&!this.isBoxSelectActive(l)&&this.controller.dispatch({type:"clickable-item-clicked",id:h.id,listIndex:SE(u)});return}if(!a){if(u&&u.type==="sketch-branch"&&(!u.sketch.selected||this.isBoxSelectActive(l))){this.selectItemIfNotSecret(u.model.id,this.isBoxSelectActive(l));return}if(u&&(u.type==="movable-point"||u.type==="static-point")){(!u.sketch.selected||this.isBoxSelectActive(l))&&u.model&&this.selectItemIfNotSecret(u.model.id,this.isBoxSelectActive(l));return}if(u&&u.type==="image"){this.selectItemIfNotSecret(u.model.id,this.isBoxSelectActive(l));return}}})})}isBoxSelectActive(e){if(!this.controller.isMultiSelectEnabled())return!1;let t=this.controller.getActiveTool();return t==="selection"&&e.shiftKey||t==="box-selection"}isViewportLocked(){return this.graphSettings.config.lockViewport||this.graphSettings.userLockedViewport}addKeydownEventHandler(){W(this.elt).on("keydown",e=>{var s,l,c;let t=e;if(this.manager.getAudioTrace().getAudioTraceActive())return;let i=this.manager.movablePointsLayer.getPOIUnderAttention(),o=this.manager.imageLayer.getFocusedImage(),n=ue(t),a=Ai(t);if((n==="Up"||n==="Down"||n==="Left"||n==="Right")&&this.controller.isGraphPaperFocused()){t.stopPropagation(),t.preventDefault();let d=this.keyboardAttentionManager.getKeyboardAttention();if(d&&this.controller.shouldAllowMovingPointsWithKeyboard()){let u=o?o.centerId:d.calcId;if(!u)return;let h=this.getDraggablePointOrAncestors(u);this.movePointsFromKeyboard(h,t),this.controller.getEvaluator().notifyWhenSynced(()=>{this.describeFocusedItem({includeDetails:!0})})}else this.controller.isVirtualMouseAllowed()&&(this.keyboardAttentionManager.updateKeyboardAttention(void 0,{describe:!1}),this.moveGeoPointFromKeyboard(t))}else if(n==="Tab"&&this.controller.isGraphPaperFocused()){let d=t.shiftKey?"prev":"next",u=this.keyboardAttentionManager.getKeyboardAttention();if(!(this.controller.getActiveTool()!=="selection")&&!u&&d==="prev")return;this.handleTabEvent(d,t)}else if((n==="Enter"||n==="Space")&&this.controller.isGraphPaperFocused()&&this.controller.getActiveTool()==="selection"){let d=this.keyboardAttentionManager.getKeyboardAttention();if(d){let u=this.controller.getItemModel(d.calcId);if(u&&!this.isBoxSelectActive(t)){let h=u.type==="expression"&&fn(u),g=u.type==="image"&&su(u);(h||g)&&this.controller.dispatch({type:"clickable-item-clicked",id:d.calcId,listIndex:d.listIndex})}}t.preventDefault(),t.stopPropagation();return}else if(this.controller.isGeometry()&&this.controller.isGraphPaperFocused()){let d=!1;if(t.ctrlKey&&t.shiftKey&&!t.altKey&&!t.metaKey){let u;if(a==="O"?u={type:"multi-select-more",guid:_u(),focusFirstOption:!0,previousFocusLocation:{type:"graph-paper"}}:a==="A"&&(u={type:"multi-select-transformations",guid:ly(),focusFirstOption:!0,previousFocusLocation:{type:"graph-paper"}}),u){t.preventDefault(),t.stopPropagation();let h=this.keyboardAttentionManager.getKeyboardAttention();this.controller.getActiveTool()!=="box-selection"&&h&&this.controller.getItemModel(h.calcId)&&this.controller.dispatch({type:"set-selected-id",id:h.calcId}),this.controller.dispatch({type:"toggle-item-settings-menu",menu:u})}}else if(!t.altKey&&!t.ctrlKey&&!t.metaKey){if(n==="Enter"||n==="Space")if(t.preventDefault(),this.controller.getActiveTool()!=="selection"&&t.stopPropagation(),this.controller.getActiveTool()==="box-selection"){let u=((s=this.keyboardAttentionManager.getKeyboardAttention())==null?void 0:s.calcId)||"";this.controller.isClickableId(u)&&(u=""),this.selectItemIfNotSecret(u,!0),this.describeFocusedItem({includeDetails:!1})}else{let u=this.keyboardAttentionManager.getKeyboardAttention();u!=null&&u.geoDef?this.tapGeoObjectFromKeyboard(u.geoDef,t):this.tapGeoPointFromKeyboard(t)}else if(a==="?")t.preventDefault(),t.stopPropagation(),this.controller.getGeoModel().speakCurrentGeoToolHint();else if(a==="D")t.preventDefault(),t.stopPropagation(),this.describeFocusedItem({includeDetails:!0});else if(n==="Backspace"||n==="Del"){t.preventDefault(),t.stopPropagation();let u=this.keyboardAttentionManager.getKeyboardAttention();this.controller.getActiveTool()!=="box-selection"&&u&&this.controller.getItemModel(u.calcId)&&this.controller.dispatch({type:"set-selected-id",id:u.calcId}),this.controller.dispatch({type:"delete-all-selected-items"}),d=!0}else if(a==="-"||a==="="){t.preventDefault(),t.stopPropagation();let u=this.controller.getAllVisibleGeoToolbarItems(),h=u.findIndex(g=>(g==null?void 0:g.current)===this.controller.getActiveTool());for(let g=1;g<u.length;g++){let b=h+(a==="-"?-g:g);b<0&&(b=u.length+b),b>u.length-1&&(b=b-u.length);let C=(l=u[b])==null?void 0:l.current;if(this.selectGeoTool(C)){d=!0;break}}}else if(a==="["||a==="]"){t.preventDefault(),t.stopPropagation();let h=this.controller.getAllVisibleGeoToolbarItems().find(C=>(C==null?void 0:C.current)===this.controller.getActiveTool());if(!h)return;let g=h.dropdown||[h.current];if(g.length===0)return;let b=g.indexOf(h.current);for(let C=1;C<g.length;C++){let S=b+(a==="["?-C:C);S<0&&(S=g.length+S),S>g.length-1&&(S=S-g.length);let k=g[S];if(this.selectGeoTool(k)){d=!0;break}}}else if(!t.shiftKey&&a!==void 0&&a>="0"&&a<="9"){let u=(c=this.controller.getAllVisibleGeoToolbarItems()[t.which-49])==null?void 0:c.current;d=this.selectGeoTool(u)}}d&&this.handleGeoKeyboardPtMove()}else i&&(a==="X"||a==="Y"||a==="L"||a==="C")?this.speakPoint(i,a):o&&(a==="X"||a==="Y"||a==="L")&&this.manager.imageLayer.speakImageAttribute(o,a)})}selectGeoTool(e){return e?this.controller.isGeoToolEnabled(e)?(this.controller.dispatch({type:"select-geo-tool",tool:e}),!0):(ie(this.controller.s("graphing-calculator-narration-geometry-tool-disabled",{tool:this.controller.getGeoModel().getDisplayNameForTool(e)})),!1):!1}getMouseRelativeToGrapher(e){let t=this.elt.getBoundingClientRect(),i=e.touches?e.touches[0]:e,o=i.clientX-t.left,n=i.clientY-t.top;return{x:o,y:n}}_getStyledPointRadiusAdjustments(){return{radiusMultiplier:this.graphSettings.getHighlightPropertyMultiplier("pointLineWidth",!1),selectedRadiusMultiplier:this.graphSettings.getHighlightPropertyMultiplier("pointLineWidth",!0)}}_getStyledPointRadiusForPOI(e,t){let i=e.getPointSize()/2,o=e.isSelected()?t.selectedRadiusMultiplier:t.radiusMultiplier;return i*o}handleTabEvent(e,t){let i=this.controller.getActiveTool()!=="selection";if(this.keyboardAttentionManager.focusNextObjFromKeyboard({direction:e,allowWrapping:i,selectNonClickables:this.controller.getActiveTool()==="selection"})){t==null||t.preventDefault(),t==null||t.stopPropagation();return}else if(!i){this.keyboardAttentionManager.updateKeyboardAttention(void 0,{describe:!1}),e==="prev"&&(t==null||t.preventDefault(),t==null||t.stopPropagation(),this.manager.speakGrapherFocusAriaLabel());return}}_getDistanceFromStyledPOI(e,t){let i=this._getStyledPointRadiusForPOI(e,t.adjustments),o=Math.max(0,t.tolerance-i),n=t.projection.map_pt(e),a=__dcg_shared_module_exports__['ia'](n.x-t.screenPt.x,n.y-t.screenPt.y),s=Math.max(0,a-i);if(s<=o)return s}_getClosestPoint(e,t,i){let o=1/0,n,a={projection:this.manager.getProjection(),adjustments:this._getStyledPointRadiusAdjustments(),screenPt:t,tolerance:i};for(let s of e){let l=this._getDistanceFromStyledPOI(s,a);l!==void 0&&l<=o&&(o=l,n=s)}return n}findIdsThatIntersectBox(e){let t={},i=this.manager.getSketchOrder();for(let o=i.length-1;o>=0;o--){let n=i[o],a=this.controller.getItemModel(n);if(a&&!this.controller.shouldIgnoreGraphInteractions(a)){if(a.type==="expression"){let s=this.manager.getGraphSketch(n);if(!s||fn(a)||this.controller.isItemNotSelectableBecauseItsSecret(n))continue;let l=s.branches;if(!l||!l.length)continue;for(let c=0;c<l.length;c++)if(this.doesBoxIntersectBranch(l[c],e)){t[a.id]=!0;break}}else if(a.type==="image"){let s=this.manager.getGraphImage(n);if(!s)continue;r.doesBoxIntersectAnyImage(s,e)&&(t[a.id]=!0)}}}return this.manager.poiDotsLayer.getDrawnPOI().forEach(o=>{let n=o.sketch.id,a=this.controller.getItemModel(n);a&&this.controller.shouldIgnoreGraphInteractions(a)||a&&a.type==="expression"&&fn(a)||this.controller.isItemNotSelectableBecauseItsSecret(n)||o.isBareLabel()||(o.isMovable()||o.isAttachedToPlottedPoint())&&r.doesBoxIntersectPOI(o,e)&&(t[n]=!0)}),t}_getStyledLineAdjustments(){return{thicknessMultiplier:this.graphSettings.getHighlightPropertyMultiplier("graphLineWidth",!1),selectedThicknessMultiplier:this.graphSettings.getHighlightPropertyMultiplier("graphLineWidth",!0)}}_getStyledLineThicknessForBranch(e,t,i){let o=Math.max(0,"lineWidth"in e&&e.lineWidth||0)/2;return t?o*i.selectedThicknessMultiplier:o*i.thicknessMultiplier}_getDistanceFromStyledBranch(e,t,i,o){let n=this._getStyledLineThicknessForBranch(e,t,o.adjustments),a=this.calculateDistanceFromBranch(e,o.screenPt,o.projection,i),s=Math.max(0,a-n),l=Math.max(0,o.tolerance-n);if(s<=l)return s}getFeatureUnderPoint(e,t){var M;let i=this.manager.poiLabelsLayer,o=this.manager.getProjection();if(this.manager.scaleAxis)return;let n=i.getInteractiveLabelUnderPoint(e);if(n&&!this.controller.shouldIgnoreGraphInteractions(n.model))switch(n.type){case"editable":return{type:"editable-label",model:n.model,isClickable:void 0};case"draggable":return{type:"draggable-label",label:n.label,model:n.model,isClickable:void 0};case"clickable":return{type:"clickable-label",model:n.model,poi:n.poi,isClickable:!0}}let a=this.manager.getSketchOrder(),s={},l=1,c,d={adjustments:this._getStyledLineAdjustments(),projection:o,screenPt:e,tolerance:t};for(let E=a.length-1;E>=0;E--){let A=a[E],V=this.controller.getItemModel(A),G=l;if(s[A]=G,!!V&&!this.controller.shouldIgnoreGraphInteractions(V)){if(V.type==="expression"){let P=this.manager.getGraphSketch(A);if(!P)continue;let O=P.branches;if(!O||!O.length)continue;if(P.showHighlight&&!this.controller.isGeometry()&&(G=-1/0,s[A]=G),!c||c.stackingContext>=G){let R=fn(V);for(let q=0;q<O.length;q++){let J=O[q],U=this._getDistanceFromStyledBranch(J,P.showHighlight,R,d);if(U!==void 0){let z=!1;c?(G<c.stackingContext||G===c.stackingContext&&U<c.distance-3.5)&&(z=!0):z=!0,z&&(c={type:"sketch-branch",model:V,sketch:P,distance:U,stackingContext:G,branchInfo:{id:P.id,branch:q,sketch:P}})}}}}else if(V.type==="image"){let P=this.manager.getGraphImage(A);if(!P)continue;let O=this.getImageInfoUnderMouse(P,o.pixelsToMath.mapPoint(e),t);if(!O)continue;P.foreground?(l+=1,G=l,s[A]=G,l+=1):(G=1/0,s[A]=G),(!c||c.stackingContext>G)&&(c={type:"image",model:P,distance:0,stackingContext:G,listIndex:O.listIndex})}}}let u=[],h=[],g=[],b=[],C=c?c.stackingContext:1/0;this.manager.poiDotsLayer.getDrawnPOI().forEach(E=>{var G;if(E.isBareLabel())return;let A=E.sketch.id,V=this.controller.getItemModel(A);if(!(V&&this.controller.shouldIgnoreGraphInteractions(V))){if(!V&&E.sketch.branches.length>0){let P=E.sketch.branches[0].tableId,O=P!==void 0?this.controller.getItemModel(P):void 0,R=(O==null?void 0:O.type)==="table"&&ro(O,A);if(R&&this.controller.shouldIgnoreGraphInteractions(R))return}if(E.isMovable()){let P=V&&V.type==="expression"&&((G=V.formula.geometry)==null?void 0:G.call);P&&P.symbol==="glider"?u.push(E):h.push(E)}else E.isAttachedToPlottedPoint()?s[E.sketch.id]<=C&&g.push(E):b.push(E)}});let S=this._getClosestPoint(u,e,t);if(S||(S=this._getClosestPoint(h,e,t)),S)return{type:"movable-point",poi:S,isClickable:void 0,sketch:S.sketch,model:this.controller.getItemModel(S.sketch.id)};let k=this._getClosestPoint(b,e,t);if(k)return{type:"poi",poi:k,isClickable:!1,model:void 0};let I=this._getClosestPoint(g,e,t);if(I){let E=this.controller.getItemModel(I.sketch.id);return E&&E.type==="expression"&&fn(E)?{type:"static-point",poi:I,sketch:I.sketch,isClickable:!0,model:E}:{type:"static-point",poi:I,isClickable:!1,sketch:I.sketch,model:E}}if(c){if(c.type==="sketch-branch"){let E=(M=c.model.formula.typed_constant_value)==null?void 0:M.valueType;return{type:"sketch-branch",branchInfo:c.branchInfo,sketch:c.sketch,model:c.model,isClickable:fn(c.model),isTraceable:!(this.controller.isGeometry()&&E&&__dcg_shared_module_exports__['$'](E)),isSelected:this.controller.isItemSelected(c.sketch.id),selectionId:this.controller.isItemSelectable(c.model.id)?c.model.id:void 0}}else if(c.type==="image")return{type:"image",model:c.model,isClickable:su(c.model),listIndex:c.listIndex,isSelected:this.controller.isItemSelected(c.model.id),selectionId:this.controller.isItemSelectable(c.model.id)?c.model.id:void 0}}}_togglePOIUnderPoint(e,t){if(!this.controller.isTraceEnabled())return;let i=this.getFeatureUnderPoint(e,t);if(!i||i.isClickable)return!1;let o="poi"in i&&i.poi;return!o||o.isBareLabel()?!1:(this.manager.poiLabelsLayer.isOpenPOI(o)?(this.manager.poiLabelsLayer.closePOI(o),this.manager.poiLabelsLayer.setHoveredPOI(void 0)):(this.manager.poiLabelsLayer.openPOI(o),this.speakPoint(o)),this.controller.requestRedrawGraph(),!0)}getImageInfoUnderMouse(e,t,i){if(!e)return;let o=e.formula;if(!o)return;let n=o.dimensions;if(!(!n.x||!n.y||!n.width||!n.height||!n.radianAngle||!e.shouldGraph))for(let a=n.x.length-1;a>=0;a--){let s=n.x[a],l=n.y[a],c=n.radianAngle[a],d=s+Math.cos(c)*(t.x-s)-Math.sin(c)*(t.y-l),u=l+Math.sin(c)*(t.x-s)+Math.cos(c)*(t.y-l),h=.5*Math.abs(n.width[a]),g=.5*Math.abs(n.height[a]);if(d>s-h&&d<s+h&&u>l-g&&u<l+g)return{listIndex:a}}}doesBoxIntersectBranch(e,t){let i=!1,o=!1;switch(e.graphMode){case 5:case 8:case 2:break;case 6:i=!0;break;case 1:o=!0;break;case 18:case 17:case 19:case 24:return QS(t,{x1:e.segments[0][0],y1:e.segments[0][1],x2:e.segments[0][2],y2:e.segments[0][3],extendStart:e.graphMode===18,extendEnd:e.graphMode!==17});case 20:return K3(t,{x:e.segments[0][0],y:e.segments[0][1],radius:e.segments[0][2]});case 21:case 23:{let[a,s]=e.segments[0],[l,c,d]=e.graphMode===21?this.getBoxIntersectArgsForArc(e):this.getBoxIntersectArgsForAngleMarker(e),u=(d-c)/2+c;return z3(t,{x0:a+l*Math.cos(c),y0:s+l*Math.sin(c),x1:a+l*Math.cos(u),y1:s+l*Math.sin(u),x2:a+l*Math.cos(d),y2:s+l*Math.sin(d)})}default:return!1}let n=e.segments;for(let a=0;a<n.length;a++){let s=n[a];if(i){let l=s;s=[];for(let c=0;c<l.length;c+=2){let d=l[c],u=l[c+1];s.push(u*Math.cos(d),u*Math.sin(d))}}else if(o){let l=s;s=[];for(let c=0;c<l.length;c+=2)s.push(l[c+1],l[c])}if(U3(t,s))return!0}return!1}getBoxIntersectArgsForArc(e){return[e.segments[0][2],e.segments[0][3],e.segments[0][4]]}getBoxIntersectArgsForAngleMarker(e){let t=e.segments[0][3],i=this.manager.getProjection(),o=Zd(t,i),n=i.pixelsToMath.dangerouslyGetXScaleFactor(),a=i.pixelsToMath.dangerouslyGetYScaleFactor();return[Math.abs(Math.min(n,a))*o,e.segments[0][2],e.segments[0][2]+t]}static doesBoxIntersectAnyImage(e,t){let i=e.formula;if(!i)return;let o=i.dimensions;if(!(!o.x||!o.y||!o.width||!o.height||!o.radianAngle||!e.shouldGraph)){for(let n=o.x.length-1;n>=0;n--)if(q3(t,{width:o.width[n],height:o.height[n],angle:o.radianAngle[n],center:{x:o.x[n],y:o.y[n]}}))return!0;return!1}}static doesBoxIntersectPOI(e,t){return t.left<=e.x&&e.x<=t.right&&t.top<=e.y&&e.y<=t.bottom}calculateDistanceFromBranch(e,t,i,o){let n=this.controller.isGeometry()&&e.graphMode===7;if(o||n){let l=[t.x,t.y],c=RI(i,e);for(let d of c)if(__dcg_shared_module_exports__['tb'](d,l))return 0}if(e.graphMode===7)return 1/0;let s=r.getBranchesDistanceInfo(e,t,i,o,this.controller.isGeometry());return s?s.minDistance:1/0}static getBranchesDistanceInfo(e,t,i,o,n){let a=t.x,s=t.y,{mathToPixels:l,pixelsToMath:c}=i;switch(e.graphMode){case 5:if(!n&&!o)return;break;case 8:if(!o)return;break;case 6:if(!o)return;break;case 2:case 1:break;case 23:{let[k,I,M,E]=e.segments[0],A=l.dangerouslyGetXScaleFactor(),V=l.dangerouslyGetYScaleFactor(),[G,P]=c.mapCoordinatePair([a,s]),O=Zd(E,i),R=O/A,q=1/0,J=P-I,U=G-k,z=Math.atan2(J,U);if(__dcg_shared_module_exports__['ga'](z,M,E))__dcg_shared_module_exports__['ia'](J*V,U*A)<=O+7&&(q=0);else{let K=__dcg_shared_module_exports__['la'](G,P,k+R*Math.cos(M),I+R*Math.sin(M),k,I),v=__dcg_shared_module_exports__['la'](G,P,k+R*Math.cos(M+E),I+R*Math.sin(M+E),k,I),D=__dcg_shared_module_exports__['ia'](A*(K[0]-G),V*(K[1]-P)),_=__dcg_shared_module_exports__['ia'](A*(v[0]-G),V*(v[1]-P));q=Math.min(D,_)}return{closestPoint:{x:a,y:s},minDistance:q,secondDistance:q}}break;case 18:case 17:case 19:case 24:{if(!e.segments.length)return null;let k=l.mapX(e.segments[0][0]),I=l.mapY(e.segments[0][1]),M=l.mapX(e.segments[0][2]),E=l.mapY(e.segments[0][3]),A=e.graphMode===18,V=e.graphMode===18||e.graphMode===19,G=__dcg_shared_module_exports__['ma'](a,s,k,I,M,E,A,V);if(!G)return null;let P=__dcg_shared_module_exports__['ia'](G[0]-a,G[1]-s);return{closestPoint:{x:G[0],y:G[1]},minDistance:P,secondDistance:P}}case 21:case 20:{let k=e.segments[0][0],I=e.segments[0][1],M=e.segments[0][2],E=e.graphMode===21?e.segments[0][3]:0,A=e.graphMode===21?e.segments[0][4]:Math.PI*2,V=__dcg_shared_module_exports__['na'](c.mapX(a),c.mapY(s),k,I,M,E,A);if(!V)return null;let G=l.mapCoordinatePair(V),P=__dcg_shared_module_exports__['ia'](G[0]-a,G[1]-s);return{closestPoint:{x:G[0],y:G[1]},minDistance:P,secondDistance:P}}default:return}let d=1/0,u=1/0,h,g;for(let k=0;k<e.segments.length;k++){let I=e.segments[k];for(let M=0;M<I.length-3;M+=2){let E=I[M],A=I[M+1],V=I[M+2],G=I[M+3];if(e.graphMode===6){let K=A,v=E;E=K*Math.cos(v),A=K*Math.sin(v);let D=G,_=V;V=D*Math.cos(_),G=D*Math.sin(_)}e.graphMode===1&&([E,A]=[A,E],[V,G]=[G,V]);let[P,O]=l.mapCoordinatePair([E,A]),[R,q]=l.mapCoordinatePair([V,G]),J=__dcg_shared_module_exports__['la'](0,0,P-a,O-s,R-a,q-s),U=__dcg_shared_module_exports__['ia'](J[0],J[1]);J[e.graphMode===1?1:0]<0?U<d&&(d=U,h=J):U<u&&(u=U,g=J)}}let b=d<u?h:g;if(!b)return;let C=b[0]+a,S=b[1]+s;return{closestPoint:{x:C,y:S},minDistance:Math.min(d,u),secondDistance:Math.max(d,u)}}static getBranchesTracePoint(e,t,i,o){let n,a=i.pixelsToMath.mapPoint(t);switch(e.graphMode){case 20:case 21:{let O=e.graphMode===21?e.segments[0][3]:0,R=e.graphMode===21?e.segments[0][4]:Math.PI*2;n=__dcg_shared_module_exports__['na'](a.x,a.y,e.segments[0][0],e.segments[0][1],e.segments[0][2],O,R);break}case 18:case 19:case 17:n=__dcg_shared_module_exports__['ma'](a.x,a.y,e.segments[0][0],e.segments[0][1],e.segments[0][2],e.segments[0][3],e.graphMode===18,e.graphMode!==17);break}if(n)return{x:n[0],y:n[1]};if(!e)return;let s="compiled"in e&&e.compiled,l=s&&s.fn;if(!l)return;let c=this.getBranchesDistanceInfo(e,t,i,!1,o);if(!c)return;let{mathToPixels:d,pixelsToMath:u}=i,h,g;e.graphMode===2?(g="x",h="y"):(g="y",h="x",d=new __dcg_shared_module_exports__['Gc'](d.yScale,d.xScale),u=d.inverse());let b=Math.pow(c.minDistance/c.secondDistance,2),C=c.closestPoint[g]*(1-b)+t[g]*b,S=.5,k=.5,I=d.mapY(l(u.mapX(C-S))),M=d.mapY(l(u.mapX(C))),E=d.mapY(l(u.mapX(C+S))),A=S*Math.min(1,k/Math.abs(I-M)),V=S*Math.min(1,k/Math.abs(E-M));isFinite(A)||(A=S),isFinite(V)||(V=S);let G=Sr(u.mapX(C-A),u.mapX(C+V)),P=l(G);if(!isFinite(d.mapY(P))){let O=d.mapX(G)-S,R=d.mapX(G)+S,q=u.mapX(O),J=u.mapX(R),U=l(q),z=l(J),K=d.mapY(U),v=d.mapY(z);Math.abs(K-t[h])<Math.abs(v-t[h])?P=U:P=z}return{x:e.graphMode===2?G:P,y:e.graphMode===2?P:G}}getPointInfo(e){switch(e.type){case"movable-point":case"static-labeled-point":return BN(e);case"poi":return BN(e.poi.getMovablePoint());case"movable-point-parent":return{calcId:e.id,isReverseDrag:!0};case"image":return{calcId:e.image.formula.center_reference_id,isReverseDrag:!1};case"draggable-label":return{calcId:e.model.id,isReverseDrag:!1};default:return e}}getDraggablePointOrAncestors(e){var s,l;if(!this.controller.isGeometry()){let c=this.controller.getItemModel(e);return c&&c.type==="expression"&&FC(c)&&((l=(s=c.formula)==null?void 0:s.typed_constant_value)==null?void 0:l.valueType)===__dcg_shared_module_exports__['p']&&Zr(c)!=="NONE"?[{type:"movable-point-parent",id:e,x:c.formula.typed_constant_value.value[0],y:c.formula.typed_constant_value.value[1],shouldDelayUntilRealMove:!0}]:[]}let t=[e].concat(this.controller.getAllSelectedItems().map(c=>c.id).filter(c=>c!==e)),i=!1,o={},n=[];Ru({controller:this.controller},(c,d)=>{if(!d&&c.typedRuntimeValue.valueType===__dcg_shared_module_exports__['p']&&c.data.isMovablePoint){let[u,h]=c.typedRuntimeValue.value;o[c.calcId]={id:c.calcId,value:{x:u,y:h}}}});let a=this.controller.getGeoModel().getComputedBoard().computeReversibilityLineages(t);for(let c in a){let d=o[c];if(!d){i=!0;break}n.push({type:"movable-point-parent",id:c,x:d.value.x,y:d.value.y,shouldDelayUntilRealMove:!0,transformations:a[c]})}return i?[]:n}getFeatureCenterMathPoint(e){switch(e.type){case"poi":return e.poi;case"movable-point-parent":let t={x:e.x,y:e.y};if(e.transformations){let i=__dcg_shared_module_exports__['Ub'](e.transformations.forward,[t.x,t.y]);t={x:i[0],y:i[1]}}return t;case"image":return{x:e.image.formula.dimensions.x[0],y:e.image.formula.dimensions.y[0]};case"draggable-label":return{x:e.label.x,y:e.label.y}}}startReverseDrag(e,t,i){let o=this.getMouseRelativeToGrapher(t),n=this.getDraggablePointOrAncestors(e).map(a=>({...a,startScreenPt:o}));return n.length>0?(this.startMovingPoints({poiUnderMouse:i,evt:t,points:n}),!0):!1}startMovingPoints(e){let t=e.evt,i=e.points,o=!1,n=!1,a=i.map(this.getPointInfo),s=this.controller;function l(){n=!0,s.dispatch({type:"start-moving-points",points:a})}let c=!1;for(let b of i)if(b.shouldDelayUntilRealMove){c=!0;break}c||l();let d;e.poiUnderMouse&&e.poiUnderMouse.isMovable()&&(d=e.poiUnderMouse.getMovablePoint().id),this.manager.movablePointsLayer.setPressedPointId(d);let u=i.map(b=>{let C=this.manager.getProjection().map_pt(this.getFeatureCenterMathPoint(b));return{x:b.startScreenPt.x-C.x,y:b.startScreenPt.y-C.y}}),h,g=()=>{if(!h)return;o=!0,n||l();let b=this.manager.getProjection(),C=this.getMouseRelativeToGrapher(h);h=void 0,this.controller.dispatch({type:"on-move-points",points:i.map(this.getPointInfo),screenPts:u.map(function(S){return{x:C.x-S.x,y:C.y-S.y}}),transform:i.map(S=>S.type==="movable-point-parent"?S.transformations:void 0),previousScreenPts:i.map(S=>S.startScreenPt),projection:b})};this.manager.registerMovablePointListener(g),this.addGlobalMouseListener("dcg-tapmove",b=>{h=b}),this.addGlobalMouseListener("dcg-tapend dcg-tapcancel",b=>{if(g(),this.manager.deregisterMovablePointListener(),this.removeAllGlobalMouseListeners(),this.manager.movablePointsLayer.setPressedPointId(void 0),n&&(b.handle("dragged-clickable-object"),this.controller.dispatch({type:"stop-moving-points",points:i.map(this.getPointInfo)})),!o){let C=this.getMouseRelativeToGrapher(t),S=this.getToleranceByDevice(t.device),k=this.getFeatureUnderPoint(C,S);if(k&&k.type==="movable-point")if(this.controller.isGeometry())(!k.sketch.selected||this.isBoxSelectActive(b))&&k.model&&this.selectItemIfNotSecret(k.model.id,this.isBoxSelectActive(b));else return;else if(k&&k.type==="sketch-branch"){let I=k.model;I&&I.formula.geometry&&!k.isClickable&&(!k.sketch.selected||this.isBoxSelectActive(b))&&this.selectItemIfNotSecret(k.model.id,this.isBoxSelectActive(b))}}})}startTracingBranch(e,t){if(!e.isTraceable)return;let i=e.branchInfo;this.manager.markLabelsDirty(),this.lastScreenPt=t;let o=this.manager.getProjection(),a=i.sketch.branches[i.branch],s=r.getBranchesTracePoint(a,t,o,this.controller.isGeometry());s&&this.speakPoint(s),this.manager.traceLayer.setTraceInfo({pt:s,branchInfo:i}),this.controller.requestRedrawGraph(),this.addGlobalMouseListener("dcg-tapmove",this.handleTraceUpdate.bind(this)),this.addGlobalMouseListener("dcg-tapend dcg-tapcancel",this.stopTracingBranch.bind(this))}stopTracingBranch(e){this.manager.markLabelsDirty();let t=this.manager.poiLabelsLayer.getHoveredPOI();t&&!this.manager.poiLabelsLayer.isOpenPOI(t)&&(this.manager.poiLabelsLayer.openPOI(t),this.speakPoint(t),this.controller.requestRedrawGraph()),this.lastScreenPt=void 0,this.manager.traceLayer.setTraceInfo(void 0),this.controller.requestRedrawGraph(),this.removeAllGlobalMouseListeners()}handleTraceUpdate(e){if(!this.manager.traceLayer.traceInfo)return;let t=this.manager.getProjection(),i;if(e)i=this.getMouseRelativeToGrapher(e),this.lastScreenPt=i,this.manager.markLabelsDirty();else if(this.lastScreenPt)i=this.lastScreenPt;else return;let o=1/0,n=-1,a=this.manager.traceLayer.traceInfo,s=this.manager.graphSketches[a.branchInfo.sketch.id];if(!s)return;a.branchInfo.sketch=s;let l=a.branchInfo.sketch.branches;for(let u=0;u<l.length;u++){let h=this.calculateDistanceFromBranch(l[u],i,t,!1);h<o&&(n=u,o=h)}let c=l[n],d=c?r.getBranchesTracePoint(c,i,t,this.controller.isGeometry()):void 0;d&&this.speakPoint(d),this.manager.traceLayer.traceInfo.branchInfo.branch=n,this.manager.traceLayer.traceInfo.pt=d,this.controller.requestRedrawGraph()}hasNonlinearMoveStrategy(e){if(!e||e.type!=="movable-point-parent")return!1;let t=this.controller.getItemModel(e.id);if(!t||t.type!=="expression"||!t.formula)return!1;let i=t.formula.move_strategy;return!i||!i[0]?!1:i[0].type==="updateSliderNonlinear"}movePointsFromKeyboard(e,t){if(!t)return;let i=this.manager.getProjection(),o=e.map(g=>{let{x:b,y:C}=i.map_pt(this.getFeatureCenterMathPoint(g));return{x:b,y:C}}),n=0,a=0,s=ue(t),l=(i.pixelCoordinates.right-i.pixelCoordinates.left)/40,c=(i.pixelCoordinates.bottom-i.pixelCoordinates.top)/40,d=s==="Up"||s==="Down"?c:l;d=t.shiftKey?d*5:d;let u,h;if(s==="Up"?(h="y",a-=d,u=t.shiftKey?"bigup":"up"):s==="Down"?(h="y",a+=d,u=t.shiftKey?"bigdown":"down"):s==="Left"?(h="x",n-=d,u=t.shiftKey?"bigdown":"down"):s==="Right"&&(h="x",n+=d,u=t.shiftKey?"bigup":"up"),u){let g=o.map(({x:C,y:S})=>({x:C+n,y:S+a})),b;h==="x"||e.some(C=>this.hasNonlinearMoveStrategy(C))?b={x:u}:h==="y"&&(b={y:u}),this.controller.dispatch({type:"on-move-points",points:e.map(C=>this.getPointInfo(C)),screenPts:g,previousScreenPts:o,transform:e.map(C=>C.type==="movable-point-parent"?C.transformations:void 0),projection:i,keyboardDirection:b})}}getGeoKeyboardPt(){return this.initGeoKeyboardPt(),this.geoKeyboardPt}setGeoKeyboardPt(e){this.geoKeyboardPt={...this.geoKeyboardPt,x:e.x,y:e.y},e.fromArrowKeys&&(this.geoKeyboardPt.lastArrowedX=e.x,this.geoKeyboardPt.lastArrowedY=e.y),this.controller.requestRedrawGraph()}initGeoKeyboardPt(){if(!isNaN(this.geoKeyboardPt.x)&&!isNaN(this.geoKeyboardPt.y))return;let e=this.manager.getProjection();if(!e)return;let t=e.viewport,i=Qc(e),o=i.minorStepX,n=i.minorStepY,a=Math.round((t.xmin+t.xmax)/2/o)*o,s=Math.round((t.ymin+t.ymax)/2/n)*n;this.setGeoKeyboardPt({x:a,y:s})}moveGeoPointFromKeyboard(e){if(!e)return;this.initGeoKeyboardPt();let t=this.manager.getProjection();if(!t)return;let i=t.viewport,o=Qc(t),n=o.minorStepX/4,a=o.minorStepY/4,s=this.geoKeyboardPt.x,l=this.geoKeyboardPt.y,c=ue(e);if(c==="Down"?e.ctrlKey?l=i.ymin:l=Math.max(Math.round((l-a)/a)*a,i.ymin):c==="Up"?e.ctrlKey?l=i.ymax:l=Math.min(Math.round((l+a)/a)*a,i.ymax):c==="Left"?e.ctrlKey?s=i.xmin:s=Math.max(Math.round((s-n)/n)*n,i.xmin):c==="Right"&&(e.ctrlKey?s=i.xmax:s=Math.min(Math.round((s+n)/n)*n,i.xmax)),s!==this.geoKeyboardPt.x||l!==this.geoKeyboardPt.y){this.setGeoKeyboardPt({x:s,y:l,fromArrowKeys:!0}),this.handleGeoKeyboardPtMove(e),Ye($S(this.controller,this.geoKeyboardPt.x,this.geoKeyboardPt.y));let d=this.manager.clickableObjectsLayer.getHoveredObjects();for(let u in d){let h=this.controller.getItemModel(u);h!==void 0&&Ye(this.controller.s("graphing-calculator-narration-geometry-near-item",{item:vi(h,this.controller,{includeDetails:!1,depth:1})}))}ie()}}handleGeoKeyboardPtMove(e){this.initGeoKeyboardPt();let t=this.controller.getGeoModel(),i=!!(e&&e.shiftKey);t.onMouseAction("move",{pt:this.geoKeyboardPt,shift:i,tolerance:this.getToleranceByDevice("keyboard")}),t.onPreviewChange()}tapGeoObjectFromKeyboard(e,t){var a;let i=this.controller.getGeoModel(),o=i.getCurrentTool();if(!o)return;o.onFocus(e);let n=o.tryCommitResults();n.committed&&this.controller.dispatch({type:"commit-geo-objects",shiftKey:t.shiftKey,...n}),i.updateNextObjectId(i.controller.findLastTokenNumber()+1),i.clearHoveredObjects(),i.onPreviewChange(),this.speakGeoReleaseAction(this.controller.getActiveTool(),(a=o.getSpec)==null?void 0:a.call(o),n.committed),this.keyboardAttentionManager.clearAttentionIfNotTabbable()}tapGeoPointFromKeyboard(e){var l;this.initGeoKeyboardPt();let t=this.controller.getGeoModel(),i=this.controller.getActiveTool(),o=t.getCurrentTool(),n=(l=o.getSpec)==null?void 0:l.call(o),a=!!e.shiftKey,s=t.onMouseAction("release",{pt:this.geoKeyboardPt,shift:a,tolerance:this.getToleranceByDevice("keyboard")});s.committed&&this.controller.dispatch({type:"commit-geo-objects",shiftKey:e.shiftKey,...s}),t.onMouseAction("move",{pt:this.geoKeyboardPt,shift:a,tolerance:this.getToleranceByDevice("keyboard")}),t.onPreviewChange(),this.speakGeoReleaseAction(i,n,s.committed),this.keyboardAttentionManager.clearAttentionIfNotTabbable()}speakGeoReleaseAction(e,t,i){var o;if(i!==void 0){let n=Object.keys(i);if(!n.length||!t)return;let a="";if(e==="point"||e==="expression-edit"){for(let s in i){let l=i[s];if(l){if(l.type==="point-reference"){a=this.controller.s("graphing-calculator-text-geometry-tool-point-display-name");break}else if(l.type==="intersection"){a=this.controller.s("graphing-calculator-text-geometry-intersection");break}else if(l.type==="glider"){a=this.controller.s("graphing-calculator-text-geometry-glider");break}else if(l.type==="vector-endpoint"){l.location==="start"?a=this.controller.s("graphing-calculator-text-geometry-tool-vector-start-point-display-name"):a=this.controller.s("graphing-calculator-text-geometry-tool-vector-end-point-display-name");break}}}a===""&&(a=this.controller.s("graphing-calculator-text-geometry-tool-point-display-name"))}else{let s=(o=t.outputs[0])==null?void 0:o.type;switch(s){case"arc":a=this.controller.s("graphing-calculator-text-geometry-tool-arc-display-name");break;case"circle":a=this.controller.s("graphing-calculator-text-geometry-tool-circle-display-name");break;case"line":a=this.controller.s("graphing-calculator-text-geometry-tool-line-display-name");break;case"segment":a=this.controller.s("graphing-calculator-text-geometry-tool-segment-display-name");break;case"ray":a=this.controller.s("graphing-calculator-text-geometry-tool-ray-display-name");break;case"vector-copy":a=this.controller.s("graphing-calculator-text-geometry-tool-vector-copy-display-name");break;case"vector":a=this.controller.s("graphing-calculator-text-geometry-tool-vector-display-name");break;case"parallel":a=this.controller.s("graphing-calculator-text-geometry-tool-parallel-display-name");break;case"perpendicular":a=this.controller.s("graphing-calculator-text-geometry-tool-perpendicular-display-name");break;case"midpoint":a=this.controller.s("graphing-calculator-text-geometry-tool-midpoint-display-name");break;case"polygon":a=this.controller.s("graphing-calculator-text-geometry-tool-polygon-display-name");break;case"angle":a=this.controller.s("graphing-calculator-text-geometry-tool-angle-display-name");break;case"directedangle":a=this.controller.s("graphing-calculator-text-geometry-tool-directed-angle-display-name");break;case"reflect":a=this.controller.s("graphing-calculator-text-geometry-tool-reflect-display-name");break;case"translate":a=this.controller.s("graphing-calculator-text-geometry-tool-translate-display-name");break;case"dilate":a=this.controller.s("graphing-calculator-text-geometry-tool-dilate-display-name");break;case"rotate":a=this.controller.s("graphing-calculator-text-geometry-tool-rotate-display-name");break;case"vector-endpoint":case"expression-edit-preview-latex":case"point":case"intersection":case"glider":case"slider":case"angles":case"directedangles":case"compass":case"polygon-segment":case"point-reference":case void 0:a=this.controller.s("shared-calculator-narration-item-unknown");break;default:let l=s;throw new Error("Exhaustive Check failed"+l)}}n.length===1?ie(this.controller.s("graphing-calculator-narration-geometry-added-object-type",{type:a})):a!=="graphing-calculator-text-geometry-point"?n.length===2?ie(this.controller.s("graphing-calculator-narration-geometry-added-object-type-and-point",{type:a})):ie(this.controller.s("graphing-calculator-narration-geometry-added-object-type-and-points",{type:a,points:n.length-1})):ie(this.controller.s("graphing-calculator-narration-geometry-added-points",{points:n.length}))}else this.controller.getGeoModel().speakCurrentGeoToolHint()}describeFocusedItem(e){let t=this.keyboardAttentionManager.getKeyboardAttention(),i=this.controller.getItemModel((t==null?void 0:t.calcId)||"");this.controller.getEvaluator().notifyWhenSynced(()=>{var o,n;if(!this.controller.isGeometry()&&i&&i.type==="image"&&((o=this.manager.imageLayer.getFocusedImage())==null?void 0:o.id)===i.id){this.manager.imageLayer.speakAriaAlert();return}i&&((n=this.manager.movablePointsLayer.getPOIUnderAttention())==null?void 0:n.sketch.id)===i.id&&this.manager.movablePointsLayer.speakAriaAlert()||ie(vi(i,this.controller,{includeDetails:e.includeDetails,description:t==null?void 0:t.description,poi:this.manager.movablePointsLayer.getPOIUnderAttention(),listIndex:t==null?void 0:t.listIndex,polygonEdge:t==null?void 0:t.polygonEdge,includeSelectionState:this.controller.isGeometry()&&(this.controller.getActiveTool()==="box-selection"||this.controller.getActiveTool()==="selection")}))})}getPointFromFocusedItem(){var d;let e=this.keyboardAttentionManager.getKeyboardAttention(),t=this.controller.getItemModel((e==null?void 0:e.calcId)||"");if(!t||t.type!=="expression"||!t.latex)return;let i=t.formula.typed_constant_value;if(!i||!this.manager.getProjection())return;let n=i.valueType,a=i.value;if(__dcg_shared_module_exports__['Z'](i.valueType)){let u=e==null?void 0:e.listIndex;u&&(n=__dcg_shared_module_exports__['_'](n),a=a[u])}let s=e==null?void 0:e.polygonEdge;if(n===__dcg_shared_module_exports__['x']&&s!==void 0&&s>=0&&a.length>s){let u=a[s],h=a[(s+1)%a.length];n=__dcg_shared_module_exports__['z'],a=[u,h]}let l=NaN,c=NaN;return n===__dcg_shared_module_exports__['p']?(l=a[0],c=a[1]):n===__dcg_shared_module_exports__['F']||n===__dcg_shared_module_exports__['H']||n===__dcg_shared_module_exports__['z']?(l=(a[0][0]+a[1][0])/2,c=(a[0][1]+a[1][1])/2):n===__dcg_shared_module_exports__['P']?(l=a[1][0]+a[0][0]/2,c=a[1][1]+a[0][1]/2):(d=a[0])!=null&&d.length&&(l=a[0][0],c=a[0][1]),{x:l,y:c}}moveGeoKeyboardPtToFocusedItem(e){let t=this.getPointFromFocusedItem();if(!t)return;let{x:i,y:o}=t,n=this.keyboardAttentionManager.getKeyboardAttention();this.controller.getGeoModel().setObjectHovered({calcId:(n==null?void 0:n.calcId)||"",listIndex:void 0}),!isNaN(i)&&!isNaN(o)?(this.setGeoKeyboardPt({x:i,y:o}),this.controller.isVirtualMouseAllowed()&&e.describe&&ie(this.controller.s("graphing-calculator-narration-geometry-moved-to-coordinates",{x:on(this.controller,i),y:nn(this.controller,o)}))):this.controller.isVirtualMouseAllowed()&&e.describe&&ie(this.controller.s("graphing-calculator-narration-geometry-unable-to-move"))}speakPoint(e,t){if(!(!e||!this.manager.getAudioTrace()||!this.manager.getProjection()))switch(t){case"X":ie(on(this.controller,e.x));break;case"Y":ie(nn(this.controller,e.y));break;case"L":"ariaLabel"in e&&e.ariaLabel?ie(e.ariaLabel):ie(this.controller.s("graphing-calculator-narration-poi-graph-point"));break;case"C":"sketch"in e&&ie(hu(this.controller,e.sketch.color))}}selectItemIfNotSecret(e,t){this.controller.isItemNotSelectableBecauseItsSecret(e)||(!this.controller.isMultiSelectEnabled()||!t?this.controller.dispatch({type:"set-selected-id",id:e}):this.controller.dispatch({type:"toggle-selected-with-multi-select",id:e}))}convertTouchEventToMathPoint(e){let{clientX:t,clientY:i}=e.changedTouches[0],o=this.manager.elt.getBoundingClientRect();return this.controller.getGeoModel().convertCanvasPixelsToPoint({x:t-o.left,y:i-o.top})}handleGeoTapStart(e){let t=this.controller.getGeoModel();this.grapherIsPressed=!0,this.canceledGeoToolplayWhilePressed=!1;let i=!!e.shiftKey,o=this.convertTouchEventToMathPoint(e);return this.lastGeoMouseEvent={...o,shift:i},t.onMouseAction("move",{pt:o,shift:i,tolerance:this.getToleranceByDevice(e.device)}).handled?(NN(e)?this.handleGeoTapMove(e):(t.onPreviewChange(),this.updateGeoHoveredObjects()),t.getToolMode()==="expression-edit"&&e.preventDefault(),!0):!1}handleGeoShiftKeyChange(e){let t=this.lastGeoMouseEvent;if(!t||t.shift===e)return;t.shift=e;let i=this.controller.getGeoModel();i.onMouseAction("move",{pt:{x:t.x,y:t.y},shift:t.shift,tolerance:this.getToleranceByDevice("mouse")}),i.onPreviewChange()}handleGeoTapMove(e){let t=this.controller.getGeoModel(),i;if(!(e.target&&e.target.closest(".dcg-geometry-toolbar-view"))&&(this.isEventWithinInstance(e)||this.grapherIsPressed)){let n=this.convertTouchEventToMathPoint(e),a=!!e.shiftKey;this.lastGeoMouseEvent={...n,shift:a},i=t.onMouseAction("move",{pt:n,shift:a,tolerance:this.getToleranceByDevice(e.device)}).handled}else this.lastGeoMouseEvent=void 0,t.onMouseAction("move",{pt:{x:NaN,y:NaN},shift:!1,tolerance:0}),i=!0;return t.onPreviewChange(),i}replayGeoTapMove(){let e=this.controller.getGeoModel(),t=this.lastGeoMouseEvent;t&&(e.onMouseAction("move",{pt:{x:t.x,y:t.y},shift:t.shift,tolerance:this.getToleranceByDevice("mouse")}),e.onPreviewChange())}handleGeoTapEnd(e){var s;if(!this.grapherIsPressed)return;let t=this.controller.getGeoModel();this.grapherIsPressed=!1,this.lastGeoMouseEvent=void 0;let i=this.canceledGeoToolplayWhilePressed?{committed:void 0}:t.onMouseAction("release",{pt:this.convertTouchEventToMathPoint(e),shift:!!e.shiftKey,tolerance:this.getToleranceByDevice(e.device)});this.canceledGeoToolplayWhilePressed=!1,i.committed&&this.controller.dispatch({type:"commit-geo-objects",shiftKey:e.shiftKey,...i}),this.isEventWithinInstance(e)&&NN(e)?this.handleGeoTapMove(e):t.onPreviewChange();let o=this.controller.getActiveTool(),n=t.getCurrentTool(),a=(s=n.getSpec)==null?void 0:s.call(n);this.speakGeoReleaseAction(o,a,i.committed),t.getToolMode()==="expression-edit"&&e.preventDefault()}isEventWithinInstance(e){return e.target?this.manager.elt.contains(e.target):!1}updateGeoHoveredObjects(){let e=this.controller.getGeoModel(),t={};e.getHoveredItems().forEach(i=>{let o;if("tokenId"in i){let n=this.controller.getGeoTokenInfoFromIdentifier(__dcg_shared_module_exports__['cb'](i.tokenId));o=n&&n.calcId}else o=i.calcId;if(o!==void 0){let n=t[o];n?i.listIndex===void 0?n.listIndexes=void 0:n.listIndexes!==void 0&&(n.listIndexes[i.listIndex]=!0):t[o]={listIndexes:i.listIndex===void 0?void 0:{[i.listIndex]:!0}}}}),this.manager.clickableObjectsLayer.setHoveredObjects(t)}cancelGeoToolplay(){this.canceledGeoToolplayWhilePressed=this.grapherIsPressed,this.updateGeoHoveredObjects()}startBoxSelect(e){let t={};this.controller.getAllSelectedItems().forEach(n=>t[n.id]=!0);let i=this.manager.getProjection().reverse_map_pt(this.getMouseRelativeToGrapher(e)),o;this.addGlobalMouseListener("dcg-tapmove",n=>{o=this.manager.getProjection().reverse_map_pt(this.getMouseRelativeToGrapher(n));let a={left:Math.min(i.x,o.x),top:Math.min(i.y,o.y),right:Math.max(i.x,o.x),bottom:Math.max(i.y,o.y)};this.manager.setBoxSelectRectangle(a);let s=this.findIdsThatIntersectBox(a);this.controller.dispatch({type:"set-all-selected-ids",ids:{...t,...s}})}),this.addGlobalMouseListener("dcg-tapend dcg-tapcancel",n=>{this.removeAllGlobalMouseListeners(),this.manager.setBoxSelectRectangle(void 0),o||this.controller.dispatch({type:"set-none-selected"})})}};function NN(r){return r.device==="mouse"}function BN(r){return{calcId:r.sketch.id,isReverseDrag:!1,scaleFactor:r.type==="movable-point"?r.scaleFactor:void 0,tableInfo:r.type==="movable-point"?r.tableInfo:void 0}}kt();var On=class On{constructor(e=0,t=0,i=1,o=i){this.tx=e,this.ty=t,this.sx=i,this.sy=o}toJSON(){return{tx:this.tx,ty:this.ty,sx:this.sx,sy:this.sy}}compose(e){return new On(this.sx*e.tx+this.tx,this.sy*e.ty+this.ty,this.sx*e.sx,this.sy*e.sy)}translate(e,t){let i=t===void 0?e.x:t.x-e.x,o=t===void 0?e.y:t.y-e.y;return new On(this.tx+i,this.ty+o,this.sx,this.sy)}scale(e,t){return On.scale(e,t).compose(this)}scaleAtPoint(e,t,i=t){return On.scaleAtPoint(e,t,i).compose(this)}mapX(e){return this.sx*e+this.tx}mapY(e){return this.sy*e+this.ty}mapPoint(e){return{x:this.mapX(e.x),y:this.mapY(e.y)}}mapRect(e){return{left:this.mapX(e.left),right:this.mapX(e.right),bottom:this.mapY(e.bottom),top:this.mapY(e.top)}}};On.scale=function(e,t=e){return new On(0,0,e,t)},On.translate=function(e,t){return new On().translate(e,t)},On.scaleAtPoint=function(e,t,i=t){return i===void 0&&(i=t),new On(e.x*(1-t),e.y*(1-i),t,i)},On.fromRects=function(e,t){let i=(t.right-t.left)/(e.right-e.left),o=(t.top-t.bottom)/(e.top-e.bottom);return new On(t.left-i*e.left,t.bottom-o*e.bottom,i,o)},On.fromJSON=function(e){return new On(e.tx,e.ty,e.sx,e.sy)};var up=On;var Ts=class{constructor(e,t,i){this.screen=e,this.viewport=t,this.settings=i,this.mathCoordinates=__dcg_shared_module_exports__['Fc'](t),this.pixelCoordinates=__dcg_shared_module_exports__['Ec'](e),this.updateScalePairs()}updateScalePairs(){let{xAxisScale:e,yAxisScale:t}=this.settings;this.mathToPixels=__dcg_shared_module_exports__['Gc'].fromRects(this.mathCoordinates,this.pixelCoordinates,{xAxisScale:e,yAxisScale:t}),this.pixelsToMath=this.mathToPixels.inverse()}mapx(e){return this.mathToPixels.mapX(e)}mapy(e){return this.mathToPixels.mapY(e)}reverse_mapx(e){return this.pixelsToMath.mapX(e)}reverse_mapy(e){return this.pixelsToMath.mapY(e)}mapAlongAxis(e,t){switch(t){case"x":return this.mapx(e);case"y":return this.mapy(e);default:{let i=t;throw new Error(`Unknown axis: ${i}`)}}}reverseMapAlongAxis(e,t){switch(t){case"x":return this.reverse_mapx(e);case"y":return this.reverse_mapy(e);default:{let i=t;throw new Error(`Unknown axis: ${i}`)}}}map_pt(e){return this.mathToPixels.mapPoint(e)}map_xy_pairs(e){for(var t=[],i=0;i<e.length;i+=2)t.push(this.mapx(e[i])),t.push(this.mapy(e[i+1]));return t}reverse_map_pt(e){return this.pixelsToMath.mapPoint(e)}coordsAreOnscreen(e,t,i=0){return e>-i&&t>-i&&e<this.screen.width+i&&t<this.screen.height+i}closestPointOnScreen(e){let t=this.pixelCoordinates;return{x:Math.min(Math.max(e.x,t.left),t.right),y:Math.min(Math.max(e.y,t.top),t.bottom)}}};var{log10:DE}=Math;function PM(r,e){var t=e.x-r.x,i=e.y-r.y,o=.5*(r.x+e.x),n=.5*(r.y+e.y),a=.5*__dcg_shared_module_exports__['ia'](t,i);return{center:al(o,n),radius:a}}function zN(r,e){var t={x:2*r.x-e.x,y:2*r.y-e.y};return PM(e,t)}function KN(r,e){for(var t=[],i=0;i<r.length;i++)t.push(al(r[i].pageX-e.left,r[i].pageY-e.top));return t}function al(r,e){return{x:r,y:e}}function UN(r){return al(.5*(r.left+r.right),.5*(r.bottom+r.top))}var M9=0,kE=class{constructor(e,t){this.s=Hl(()=>this.grapher.settings.config.language);this.grapher=e,this.elt=e.elt,this.id=M9++,this.controller=t,this.isScalingEnabled=!1,this.mousePt=al(0,0),this.lastScrollZoom=Date.now(),this.preventScrollZoom=!1,this.addMouseWheelEventHandler(),this.addTouchEventHandler()}remove(){W(window).off(".viewportcontroller-"+this.id)}getViewport(){return this.grapher.getProjection().viewport}getProjection(){return this.grapher.getProjection()}isViewportLocked(){var e=this.getProjection().settings;return e.config.lockViewport||e.userLockedViewport}updateMouse(e){var t=this.elt.getBoundingClientRect();this.mousePt=al(e.clientX-t.left,e.clientY-t.top)}updateScaleAxis(){this.isMouseInViewport()&&(this.isMouseNearYAxis()?this.grapher.scaleAxis="y":this.isMouseNearXAxis()?this.grapher.scaleAxis="x":this.grapher.scaleAxis="both"),this.updateCursor(),this.controller.requestRedrawGraph()}updateCursor(){this.elt.classList.toggle("dcg-scale-horizontal",this.grapher.scaleAxis==="x"),this.elt.classList.toggle("dcg-scale-vertical",this.grapher.scaleAxis==="y"),this.elt.classList.toggle("dcg-scale-both",this.grapher.scaleAxis==="both")}isMouseNearOrigin(){var e=this.getProjection(),t=e.mathToPixels.mapPoint(al(0,0));return Math.abs(this.mousePt.x-t.x)<50&&Math.abs(this.mousePt.y-t.y)<50}isMouseNearXAxis(){var e=this.getProjection(),t=e.pixelCoordinates,i=e.mathToPixels.mapY(0);return i=Math.min(Math.max(t.top,i),t.bottom),Math.abs(this.mousePt.y-i)<40&&e.settings.showXAxis}isMouseNearYAxis(){var e=this.getProjection(),t=e.pixelCoordinates,i=e.mathToPixels.mapX(0);return i=Math.min(Math.max(t.left,i),t.right),Math.abs(this.mousePt.x-i)<40&&e.settings.showYAxis}isMouseInViewport(){var e=this.getProjection(),t=e.mathCoordinates,i=e.pixelsToMath.mapPoint(this.mousePt);return i.x>=t.left&&i.x<=t.right&&i.y>=t.bottom&&i.y<=t.top}_setViewportWithoutCancellingAnimation(e){if(e.isValid(this.controller.getAxisScaleSettings())&&!e.equals(this.getViewport())){var i=this.getProjection();this.grapher._setProjection(new Ts(i.screen,e,i.settings))}}setViewport(e){this.cancelAnimation(),this._setViewportWithoutCancellingAnimation(e)}setScreen(e){var t=this.getProjection();let i=t.settings.squareAxes?t.viewport.squareYAxis(e,t.settings):t.viewport;var o=new Ts(e,i,t.settings);this.grapher._setProjection(o)}getTransformedViewport(e){let{pixelCoordinates:t,mathCoordinates:i,settings:o}=this.getProjection(),{xAxisScale:n,yAxisScale:a}=o,s=e.mapRect(t);var l=__dcg_shared_module_exports__['Gc'].fromRectsInverse(i,s,{xAxisScale:n,yAxisScale:a}).mapRect(t);return new Wr(l.left,l.right,l.bottom,l.top)}transformViewport(e){this.setViewport(this.getTransformedViewport(e)),(this.grapher.scaleAxis==="x"||this.grapher.scaleAxis==="y")&&this.controller.markSquareAxesAfterUserEditedViewport()}animateToViewport(e){this.cancelAnimation();let t=this.getProjection(),i=t.viewport,o=t.mathToPixels;var n=0,a,s=l=>{a||(a=l);var c=(l-a)/500;if(n+=c,n<1){this.__animationTimeout=requestAnimationFrame(s);let d=o.interpolateX(i.xmin,e.xmin,n),u=o.interpolateX(i.xmax,e.xmax,n),h=o.interpolateY(i.ymin,e.ymin,n),g=o.interpolateY(i.ymax,e.ymax,n);this._setViewportWithoutCancellingAnimation(new Wr(d,u,h,g)),this.grapher.debounceUserRequestedViewportChange()}else this.setViewport(Wr.fromObject(e)),this.grapher.debounceUserRequestedViewportChange(),this.controller.markSquareAxesAfterUserEditedViewport()};this.__animationTimeout=requestAnimationFrame(s)}cancelAnimation(){cancelAnimationFrame(this.__animationTimeout)}addMouseWheelEventHandler(){var e=!1,t,i;W(window).on("scroll.viewportcontroller-"+this.id,function(a){e=!0}),W(window).on("wheel.viewportcontroller-"+this.id,function(a){t=a.clientX,i=a.clientY}),W(window).on("mousemove.viewportcontroller-"+this.id,function(a){if(e){var s=a.clientX-t,l=a.clientY-i,c=s*s+l*l;c<100||(e=!1)}});var o=0,n=a=>{let s=a.originalEvent;if(s.deltaX===0&&s.deltaY===0)return;var l=Date.now();let c=l-this.lastScrollZoom;if(this.preventScrollZoom&&c>50&&(this.preventScrollZoom=!1),this.lastScrollZoom=l,this.preventScrollZoom)return;var d=this.getProjection();if(this.isViewportLocked())return;var u=d.mathToPixels;if(e)return;s.preventDefault(),this.updateMouse(s);var h=u.mapPoint(al(0,0));let b=(s.deltaY===0?-s.deltaX:-s.deltaY)>0?1:-1;var C=this.isMouseNearOrigin()&&b>0?h:this.mousePt;if(o>0)return;o+=1,requestAnimationFrame(function(){o--});let{xAxisScale:S,yAxisScale:k}=d.settings,I=.0625;(S==="logarithmic"||k==="logarithmic")&&c<25&&(I*=Math.max(10,c)/25);var M=b>0?1+I:1/(1+I),E=this.grapher.scaleAxis,A=E==="x"||E==="both"||!E?M:1,V=E==="y"||E==="both"||!E?M:1;let G=up.scaleAtPoint(C,A,V),P=this.getTransformedViewport(G);b==-1&&this.tooBig(P)||b==1&&this.tooSmall(P)||(this.transformViewport(G),this.grapher.debounceUserRequestedViewportChange())};W(this.elt).on("wheel",n)}applyPanTouchChanges(e,t){if(!this.isViewportLocked()&&!this.isScalingEnabled){var i=al(t[0].x-e[0].x,t[0].y-e[0].y);this.transformViewport(up.translate(i)),this.grapher.debounceUserRequestedViewportChange()}}chooseDragScaleCenter(){var e=this.getProjection(),t=e.pixelCoordinates,i=e.mathToPixels.mapX(0),o=e.mathToPixels.mapY(0);return i=Math.min(Math.max(t.left,i),t.right),o=Math.min(Math.max(t.top,o),t.bottom),al(i,o)}applyScaleTouchChanges(e,t){if(this.isViewportLocked())return;var i=this.grapher.scaleAxis,o,n;if(e.length===2&&t.length===2)o=PM(e[0],e[1]),n=PM(t[0],t[1]);else if(t.length===1){var a=this.chooseDragScaleCenter();o=zN(a,e[0]),n=zN(a,t[0])}else return;var s=n.radius/o.radius,l=i==="y"?1:s,c=i==="x"?1:s,d=up.scaleAtPoint(o.center,l,c).translate(o.center,n.center);let u=this.getTransformedViewport(d);s<1&&this.tooBig(u)||s>1&&this.tooSmall(u)||(this.transformViewport(d),this.grapher.debounceUserRequestedViewportChange())}addTouchEventHandler(){var e=[],t=!1,i=!0,o=!0,n=g=>{t||this.isViewportLocked()||(this.updateMouse(g.originalEvent),this.isScalingEnabled&&this.updateScaleAxis())};W(window).on("mousemove.viewportcontroller-"+this.id,n),this.beginPanning=g=>{var b=this.getProjection();if(!this.isViewportLocked()&&!t&&g.touches.length===g.changedTouches.length){t=!0,this.grapher.isDragging=!0,this.updateMouse(g);var C=b.mathToPixels.mapPoint(al(0,0)),S=this.grapher.scaleAxis;(S==="x"||S==="both")&&(i=this.mousePt.x>C.x),(S==="y"||S==="both")&&(o=this.mousePt.y>C.y),this.controller.dispatch({type:"grapher/drag-start"}),W(document).on("dcg-tapmove.graphdrag",u),W(document).on("dcg-tapstart.graphdrag dcg-tapend.graphdrag dcg-tapcancel.graphdrag",h)}};var a=g=>{if(!(g.length<2)){var b=this.grapher.getProjection(),C=b.pixelCoordinates,S=b.mathToPixels.mapX(0),k=b.mathToPixels.mapY(0),I=40;S=Math.min(Math.max(C.left,S),C.right),k=Math.min(Math.max(C.top,k),C.bottom);var M=g[1].x-g[0].x,E=g[1].y-g[0].y;return Math.abs(g[0].x-S)<I&&Math.abs(g[1].x-S)<I&&Math.abs(E)>3*Math.abs(M)&&b.settings.showYAxis?"y":Math.abs(g[0].y-k)<I&&Math.abs(g[1].y-k)<I&&Math.abs(M)>3*Math.abs(E)&&b.settings.showXAxis?"x":"both"}},s=g=>(this.grapher.scaleAxis||(this.grapher.scaleAxis=a(g)),this.grapher.scaleAxis),l=()=>{this.grapher.scaleAxis&&(this.grapher.scaleAxis=void 0,this.controller.requestRedrawGraph(),this.updateCursor())},c=()=>{this.isScalingEnabled=!1,this.preventScrollZoom=!0,l()},d=g=>g.altKey||g.ctrlKey||g.metaKey,u=g=>{let b=g;if(t&&!this.isViewportLocked()){var C=KN(b.touches,Vl(this.elt));if(e.length===2&&C.length===2)s(C),this.applyScaleTouchChanges(e,C);else if(e.length===1&&this.isScalingEnabled){this.updateMouse(b);var S=this.grapher.scaleAxis,k=this.getProjection(),I=k.mathToPixels.mapPoint(al(0,0)),M,E,A=5,V=i?1:-1,G=o?1:-1;if((S==="x"||S==="both")&&(M=this.mousePt.x>I.x+A*V),(S==="y"||S==="both")&&(E=this.mousePt.y>I.y+A*G),S==="x"&&i!==M||S==="y"&&o!==E||S==="both"&&i!==M&&o!==E)return;this.applyScaleTouchChanges(e,C)}else l();e.length===1&&this.applyPanTouchChanges(e,C),this.controller.dispatch({type:"grapher/drag-move"}),e=C}},h=g=>{let b=g;t&&(this.cancelAnimation(),e=KN(b.touches,Vl(this.elt)),b.touches.length===0&&(t=!1,this.grapher.isDragging=!1,W(document).off(".graphdrag"),this.grapher.debounceUserRequestedViewportChange(),this.controller.dispatch({type:"grapher/drag-end"})),(b.touches.length===0||b.touches.length===1&&!this.isScalingEnabled)&&l())};W(window).on("keydown.viewportcontroller-"+this.id,g=>{this.controller.isGeoToolActive()||this.isViewportLocked()||(ue(g)===Yb&&!d(g)&&this.shouldAllowShiftScaling()?(this.isScalingEnabled=!0,this.grapher.scaleAxis||this.updateScaleAxis()):c())}),W(window).on("keyup.viewportcontroller-"+this.id+" blur.viewportcontroller-"+this.id,c)}shouldAllowShiftScaling(){return!this.controller.isGeometry()}zoom(e){var t=this.getProjection().pixelCoordinates;if(e==="in"){let o=this.getTransformedViewport(up.scaleAtPoint(UN(t),2));this.tooSmall(o)||this.animateToViewport(o),ie(this.s("graphing-calculator-narration-viewport-zoom-in"))}else if(e==="out"){let o=this.getTransformedViewport(up.scaleAtPoint(UN(t),.5));this.tooBig(o)||this.animateToViewport(o),ie(this.s("graphing-calculator-narration-viewport-zoom-out"))}else if(e==="square"){var i=this.getSquareViewport();this.getProjection().settings.setProperty("squareAxes",!0),this.animateToViewport(i),ie(this.s("graphing-calculator-narration-viewport-zoom-square"))}else e==="default"&&this.setDefaultViewport()}tooBig(e){let t=this.getProjection(),{xAxisScale:i,yAxisScale:o}=t.settings,{xmin:n,xmax:a,ymin:s,ymax:l}=e;return i==="logarithmic"&&DE(a)-DE(n)>60||o==="logarithmic"&&DE(l)-DE(s)>60||this.controller.isGeometry()&&a-n>1e5}tooSmall(e){let{xmin:t,xmax:i}=e;return this.controller.isGeometry()&&i-t<1e-4}zoomSquareImmediately(){this.setViewport(this.getSquareViewport())}zoomCustom(e){this.animateToViewport(e),ie(this.s("graphing-calculator-narration-viewport-updated"))}setDefaultViewport(){let e=this.controller.getDefaultViewport();this.animateToViewport(e),ie(this.s("graphing-calculator-narration-viewport-default"))}isDefaultViewportRestored(){let e=this.getProjection(),{xAxisScale:t,yAxisScale:i}=e.settings,o=t==="linear",n=i==="linear",a=e.viewport,s=this.controller.getDefaultViewport(),l=o?a.xmax-a.xmin:Math.log(a.xmax/a.xmin),c=n?a.ymax-a.ymin:Math.log(a.ymax/a.ymin),d=o?a.xmin-s.xmin:Math.log(a.xmin/s.xmin),u=o?a.xmax-s.xmax:Math.log(a.xmax/s.xmax),h=n?a.ymin-s.ymin:Math.log(a.ymin/s.ymin),g=n?a.ymax-s.ymax:Math.log(a.ymax/s.ymax),b=.025;return Math.abs(d/l)<b&&Math.abs(u/l)<b&&Math.abs(h/c)<b&&Math.abs(g/c)<b}getSquareViewport(){let e=this.getProjection();return e.settings.lastChangedAxis==="y"?e.viewport.squareXAxis(e.screen,e.settings):e.viewport.squareYAxis(e.screen,e.settings)}};var Cy=__dcg_shared_module_exports__['e']($());kt();var oc=class{constructor(e,t){this.width=e,this.height=t}};var TE=class{constructor(e,t){this.is3d=!1;this.color="#000000",this.style="normal",this.showPOI=!1,this.showHighlight=!1,this.selected=!1,this.tokenHovered=!1,this.tokenSelected=!1,this.labels=[],this.id=e,this.branches=t!==void 0?t:[],this.getPOI().forEach(i=>{i.type===1008&&this.labels.push({type:"poi",poi:i})}),t.forEach((i,o)=>{if(i.graphMode===22){if(i.objectType===17){let n=new rd(0,0,1008,this,o,0,!1);this.labels.push({id:"label-"+e+"-"+(i.listIndex||0),type:"segment",poi:n,segments:i.segments[0],text:i.labels&&i.labels[0]||""})}else if(i.objectType===16){let n=new rd(0,0,1008,this,o,0,!1);this.labels.push({id:"label-"+e+"-"+(i.listIndex||0),type:"polygon",poi:n,segments:i.segments[0],text:i.labels&&i.labels[0]||""})}else if(i.objectType===23){let n=new rd(0,0,1008,this,o,0,!1);this.labels.push({id:"label-"+e+"-"+(i.listIndex||0),type:"angle",poi:n,segments:i.segments[0],text:i.labels&&i.labels[0]||""})}}})}getPOI(){if(this.__cachedPOI)return this.__cachedPOI;this.__cachedPOI=[],this.__cachedPOIIds={};for(let e=0;e<this.branches.length;e++){let t=this.branches[e];if(t.graphMode===1||t.graphMode===2){let i=t.poi;i.zeros&&this._pushPOI(i.zeros,e,1002),i.intercept&&this._pushPOI(i.intercept,e,1003),i.extrema&&this._pushPOI(i.extrema,e,1004),i.intersections&&this._pushPOI(i.intersections,e,1001)}else if(t.graphMode===3||t.graphMode===4){let i=t.poi,o=t.graphMode===3&&t.interactiveLabel===!0;if(t.showLabel===!0||o){let n=t.nakedLabel;i.defined&&this._pushPOI(i.defined,e,1008,n)}else i.defined&&this._pushPOI(i.defined,e,1006)}}return this.__cachedPOI}getBranchPOI(e){return this.getPOI().filter(t=>t.branch===e)}getMovablePoints(){if(this.__cachedMovablePoints)return this.__cachedMovablePoints;this.__cachedMovablePoints=[];let e=this.branches[0];if(e&&e.segments.length===1&&e.graphMode===4){let t=e.segments[0];for(let i=0;i<t.length;i++){let o;e.tableId&&(o={tableId:e.tableId,columnId:this.id,rowIndex:e.movablePointInfo[i].index,dragX:e.movablePointInfo[i].dragX,dragY:e.movablePointInfo[i].dragY});let n=e.scaleFactors?e.scaleFactors[0][i]:void 0,a=o?o.rowIndex:i,s=e.segments.length===1&&e.labels&&e.labels[i]?e.labels[i]:void 0,l=e.hasOwnProperty("pointOpacity")?e.pointOpacity:1,c=e.pointSize!==void 0?e.pointSize:8;this.__cachedMovablePoints.push({type:"movable-point",id:"movable:["+this.id+","+a+"]",listIndex:a,sketch:this,color:this.color,pointOpacity:l,pointSize:c,tableInfo:o,scaleFactor:n,x:t[i][0],y:t[i][1],label:s,ariaLabel:s&&xo(s)})}}return this.__cachedMovablePoints}getMovablePointByIndex(e){return this.getMovablePoints()[e]}getStaticLabeledPoints(){if(this.__cachedStaticLabeledPoints)return this.__cachedStaticLabeledPoints;let e=this.branches[0];return this.__cachedStaticLabeledPoints=[],this.getPOI().forEach(t=>{if(t.type!==1006&&t.type!==1008||e.graphMode!==3)return;var i=e.showLabel;let o=t.getLabel();!i&&o===""||this.__cachedStaticLabeledPoints.push({type:"static-labeled-point",id:"static["+this.id+","+t.id+"]",listIndex:t.pointIdxOnBranch,x:t.x,y:t.y,sketch:t.sketch,label:o,ariaLabel:o!==""?xo(o):void 0})}),this.__cachedStaticLabeledPoints}_pushPOI(e,t,i,o=!1){for(let n=0,a=e.x.length;n<a;n++){let s=new rd(e.x[n],e.y[n],i,this,t,n,o);e.intersects&&(s.intersects=e.intersects[n]),this.__cachedPOI.push(s),this.__cachedPOIIds[s.id]=s}}updateIntersections(e){for(let i=0,o=this.branches.length;i<o;i++){let n=this.branches[i];n.graphMode!==15&&n.graphMode!==22&&(n.poi.intersections=e[i])}let t=this.__cachedPOI;this.__cachedPOI=[],t.forEach(i=>{i.type!==1001?this.__cachedPOI.push(i):delete this.__cachedPOIIds[i.id]});for(let i=0;i<this.branches.length;i++){let o=this.branches[i];if(o.graphMode===1||o.graphMode===2){let n=o.poi;n.intersections&&this._pushPOI(n.intersections,i,1001)}}}getPOIById(e){return this.__cachedPOIIds[e]}updateFrom(e){if(!e)return;this.showPOI=e.showPOI,this.showHighlight=e.showHighlight,this.selected=e.selected,this.tokenSelected=e.tokenSelected,this.tokenHovered=e.tokenHovered;let t=this.branches[0].graphMode;if(t===3||t===4){let i=!0;for(let o=0;o<this.__cachedPOI.length;o++){let n=e.__cachedPOI[o],a=this.__cachedPOI[o];if(!n||n.type!==a.type){i=!1;break}}if(i)for(let o=0;o<this.__cachedPOI.length;o++){let n=e.__cachedPOI[o],a=this.__cachedPOI[o];delete this.__cachedPOIIds[a.id],this.__cachedPOIIds[n.id]=a,a.id=n.id}}}};function qN(r){return r.is3d}function Ya(r,e){if(qN(e)||r.isGeoUIActive()&&r.getAllToolPreviewItems().filter(i=>i.id===e.id).length>0)return!1;for(let t of e.branches)if(sl(t))return!0;return!1}function sl(r){if(r)switch(r.graphMode){case 8:case 5:case 6:return Hi("audioTraceSimult")&&r.segments.length>0;case 1:case 2:case 3:case 4:return r.segments.length>0;default:return!1}}function HN(r){for(let e=0;e<r.branches.length;e++)if(sl(r.branches[e]))return e;return 0}function cy(r,e){let t=0;for(let i=0;i<=e;i++)sl(r.branches[i])&&(t+=1);return t}function WN(r){switch(r.graphMode){case 1:case 2:case 3:case 4:return!0;default:return!1}}function $N(r,e){switch(e){case 2:case 8:case 5:case 6:case 3:case 4:return{independentMin:r.xmin,independentMax:r.xmax,dependentMin:r.ymin,dependentMax:r.ymax};case 1:return{independentMin:r.ymin,independentMax:r.ymax,dependentMin:r.xmin,dependentMax:r.xmax};default:throw LM(e)}}function LM(r){return`Unexpected graph mode. Received ${r}`}function OM(r){let e=Math.random()*2-1;return(r+.2*e)/1.02}function YN(r,e){if(r===1)return e.y;if(r===2||r===8||r===5||r===6)return e.x;throw LM(r)}function jN(r,e){let t=([i,o])=>{let n=e!=null&&e.degreeMode?i*Math.PI/180:i;return[o*Math.cos(n),o*Math.sin(n)]};return __dcg_shared_module_exports__['Ea'](__dcg_shared_module_exports__['Ia'](r,2).map(i=>t(i)),!0)}function _M(r,e,t){let i=qd(r,e.mathToPixels,t),o=P_(i,{xmin:0,xmax:e.screen.width,ymin:0,ymax:e.screen.height}),n=e.pixelsToMath;return t===Vg&&(n=new __dcg_shared_module_exports__['Gc'](n.yScale,n.xScale)),o.map(s=>qd(s,n,t))}function JN(r,e){return r[0]-e[0]}function XN(r){switch(r.graphMode){case 2:case 3:case 4:return{independent:r.x,dependent:r.y};case 1:return{independent:r.y,dependent:r.x};default:throw LM(r.graphMode)}}var G9=.1;function FM(r){return r<0?G9:0}function V9(r,e,t){return{x:r.x,y:r.y,branch:r.branch,reportedBranch:t,type:r.type,graphMode:e,intersects:r.intersects}}var wm=101,IE=class{constructor(e,t,i){this.grapher=i,this.controller=e,this.audiograph=t,this.reset()}reset(){this.currentPoint=void 0,this.resetToFirstBranch(),this.sampledPoints=[],this.pois=[],this.independent=0}resetToFirstBranch(){let e=this.getCurrentSketch();this.branch=e?HN(e):0}getBranchPoints(e){let t=[];if(e>=0)for(let i of this.getSampledPoints())i.branch===e&&t.push(i);return t}resetTracePoint(){this.grapher.traceLayer.setTraceInfo(void 0),this.grapher.traceLayer.setTraceLine(void 0),this.drawTracePoint(this.getCurrentPoint())}drawTracePoint(e){let t=this.getCurrentSketch();if(!e||!t)return;let i=t.branches[this.branch];if(!i||i.graphMode===3)return;let n={x:e.x,y:e.y},a={branchInfo:{branch:e.branch,id:t.id,sketch:t},pt:n};__dcg_shared_module_exports__['Oa'](a,this.grapher.traceLayer.getTraceInfo())||(this.grapher.traceLayer.setTraceInfo(a),this.controller.requestRedrawGraph())}drawTraceLine(e,t){if(e===void 0||!t)return;let i=this.getCurrentSketch();t===1?this.grapher.traceLayer.setTraceLine({x:void 0,y:e,color:i==null?void 0:i.color}):this.grapher.traceLayer.setTraceLine({x:e,y:void 0,color:i==null?void 0:i.color})}moveToOrigin(){let e=this.getCurrentSketch();if(!e||!Ya(this.controller,e))return;let t=e.branches[this.branch];if(!sl(t))return;let i=t.graphMode;if(i===2)this.setIndependent("x",0);else if(i===1)this.setIndependent("y",0);else if(i===3){let o=this.getSortedPOI()[0];this.setIndependent("x",o?o.x:0)}}getCurrentSketch(){let e,t=this.getSelectedItem();if(t){let i=this.audiograph.getFocusedCell();if(t.type==="table"){if(i&&(e=this.getGraphSketchForTableCell(t,i)),!e){for(let o of t.columnModels)if(e=this.grapher.getGraphSketch(o.id),e!==void 0)break}}else e=this.grapher.getGraphSketch(t.id)}return e}getFirstTraceableSketch(e){let t,i=this.controller.getItemCount(),o=this.controller.shouldAudioTraceReverseExpressions();for(let n=0;n<i;n++){let a=o?i-1-n:n,s=this.controller.getItemModelByIndex(a);if(s&&this.canTrace(s)){if(s.type==="table"){let l;l=this.audiograph.getFocusedCell(),l||(l=o?this.prevTableColumn(s):this.nextTableColumn(s)),l&&(this.audiograph.setFocusedCell(l),t=this.getGraphSketchForTableCell(s,l))}else t=this.grapher.getGraphSketch(s.id);if(t){e&&e.selectAssociatedExpression&&this.controller.dispatch({type:"set-selected-index",index:a});break}}}return t}canTrace(e){if(e.type==="image"||e.type==="text")return!1;let t;if(e.type==="expression"&&e.shouldGraph)t=this.grapher.getGraphSketch(e.id);else if(e.type==="table"){for(let i of e.columnModels)if(i.shouldGraph){t=this.grapher.getGraphSketch(i.id);break}}return t?Ya(this.controller,t):!1}getTraceableExpressionCount(){let e=0,t=this.controller.getItemCount();for(let i=0;i<t;i++){let o=this.controller.getItemModelByIndex(i);o&&this.canTrace(o)&&e++}return e}computeStepSizes(){let e=this.grapher.getProjection().viewport;if(!e)return;let t=e.xmin,i=e.xmax,o=e.ymin,n=e.ymax,a=this.getCurrentSketch();if(!a||!Ya(this.controller,a))return;let s=a.branches[this.branch];if(!sl(s))return;let l=s.graphMode;if(l===2)this.independent<t?this.independent=t:this.independent>i&&(this.independent=i);else if(l===1)this.independent<o?this.independent=o:this.independent>n&&(this.independent=n);else if(l===3){let c,d;this.independent<t?(d=this.getSortedPOI()[0],this.independent=d&&d.x!==void 0?d.x:0):this.independent>i&&(c=this.getSortedPOI(),d=c[c.length-1],this.independent=d&&d.x!==void 0?d.x:0)}}getPoint(e,t){let i,o=this.getCurrentSketch();if(!o||!Ya(this.controller,o))return i;let n,a,s,l=0,c=o.branches[e];if(!c)return;let d=cy(o,e);"compiled"in c&&c.compiled&&(s=c.compiled.fn),a=c.graphMode;let u=this.grapher.getProjection(),{mathToPixels:h,pixelsToMath:g,screen:b}=u;if(a===2||a===8){let C=g.mapX(h.mapX(t)+b.width/(wm-1));n=this.getInterveningPOIs(t,C,e,a)[0],(!n||n.x!==t||n.branch!==e)&&(n=void 0,l=s?s(t):0),n?i={x:n.x,y:n.y,type:n.type,typeChain:n.typeChain,branch:n.branch,reportedBranch:d,graphMode:a,intersects:n.intersects}:s&&(i={x:t,y:l,branch:e,reportedBranch:d,graphMode:a})}else if(a===1){let C=g.mapY(h.mapY(t)-b.height/(wm-1));n=this.getInterveningPOIs(t,C,e,a)[0],(!n||n.y!==t||n.branch!==e)&&(n=void 0,l=s?s(t):0),n?i={x:n.x,y:n.y,type:n.type,typeChain:n.typeChain,branch:n.branch,reportedBranch:d,graphMode:a,intersects:n.intersects}:s&&(i={y:t,x:l,branch:e,reportedBranch:d,graphMode:a})}else if(a===3){let C=g.mapX(h.mapX(t)+b.width/(wm-1));n=this.getInterveningPOIs(t,C,e,a)[0],n&&n.x===t&&n.branch===e?i={x:n.x,y:n.y,type:n.type,typeChain:n.typeChain,branch:n.branch,reportedBranch:d,graphMode:a,intersects:n.intersects}:i={x:t,y:NaN,branch:e,reportedBranch:d,graphMode:a}}return i}getSampledPoints(){return this.sampledPoints.length===0&&this.updateSampledPoints(),this.sampledPoints}updateSampledPoints(){let e=this.getCurrentSketch();if(!e||!Ya(this.controller,e))return;let t=[],i=this.grapher.getProjection(),o=i.viewport,n=this.controller.getPrecisionConfig();for(let a=0;a<e.branches.length;a++){let s=e.branches[a];if(!sl(s))continue;let l=s.graphMode,c=0,d=0,u=[],h;if(l===2||l===3)c=o.xmin,d=o.xmax,h=(g,b,C)=>i.mathToPixels.interpolateX(g,b,C);else if(l===1)c=o.ymin,d=o.ymax,h=(g,b,C)=>i.mathToPixels.interpolateY(g,b,C);else continue;for(let g=0;g<wm;g++){let b=h(c,d,g/(wm-1)),C=__dcg_shared_module_exports__['Va'](b,n).value,S=h(c,d,(g+1)/(wm-1)),k=__dcg_shared_module_exports__['Va'](S,n).value,I=this.getInterveningPOIs(C,k,a,l);if(I.length>0)u.push.apply(u,I);else{let M=this.getPoint(a,C);M&&u.push(M)}}t.push.apply(t,this.removeDuplicates(u,l))}this.sampledPoints=t}getCurrentPoint(){return this.currentPoint||this.updateCurrentPoint(),this.currentPoint}updateCurrentPoint(e){if(e){this.currentPoint=e;let t=e.graphMode;t===2||t===3?this.independent=e.x!==void 0?e.x:0:t===1&&(this.independent=e.y!==void 0?e.y:0),this.branch=e.branch}else this.currentPoint=this.getPoint(this.branch,this.independent)}prevPoint(){this.moveToPoint(-1)}nextPoint(){this.moveToPoint(1)}firstPoint(){let e=this.getSampledPoints();e.length>0&&this.updateCurrentPoint(e[0])}lastPoint(){let e=this.getSampledPoints();e.length>0&&this.updateCurrentPoint(e[e.length-1])}moveToPoint(e){let t=this.getCurrentPoint();if(!t)return;if(t.graphMode===3){this.moveToPOI(e);return}let i=this.getSampledPoints(),o=this.getClosestPointIndexOnSameBranch(i,t);if(o!==-1){let n=o+e;n<=0?(n=0,Ye(this.controller.s("graphing-calculator-narration-audio-trace-first-point"))):n>=i.length-1&&(n=i.length-1,Ye(this.controller.s("graphing-calculator-narration-audio-trace-last-point")));let a=i[n];this.updateCurrentPoint(a)}}canMoveToPrevPoint(){let e=this.getCurrentPoint();if(!e)return!1;if(e.graphMode===3)return this.canMoveToPrevPOI();let t=this.getSampledPoints(),i=this.getClosestPointIndexOnSameBranch(t,e);return i!==-1&&i>0}canMoveToNextPoint(){let e=this.getCurrentPoint();if(!e)return!1;if(e.graphMode===3)return this.canMoveToNextPOI();let t=this.getSampledPoints(),i=this.getClosestPointIndexOnSameBranch(t,e);return i!==-1&&i<t.length-1}prevPOI(){this.moveToPOI(-1)}nextPOI(){this.moveToPOI(1)}getSortedPOI(){return(!this.pois||this.pois.length===0)&&this.updatePOI(),this.pois}updatePOI(){let e=[],t,i=[],o=this.getCurrentSketch();if(!(!o||!Ya(this.controller,o))){for(let n=0;n<o.branches.length;n++){let a=o.branches[n];if(!a)continue;let s=cy(o,n),l=a.graphMode;if(i=[],t=o.getBranchPOI(n),t.length>0){l===2||l===3?i=__dcg_shared_module_exports__['Ba'](t,"x"):l===1&&(i=__dcg_shared_module_exports__['Ba'](t,"y"));let c=[];for(let d of i)c.push(V9(d,l,s));e.push.apply(e,this.removeDuplicates(c,l))}}this.pois=e}}removeDuplicates(e,t){let i=this.controller.getPrecisionConfig(),o=[];for(let n of e){if(n={...n},n.graphMode=t,o.length===0){o.push(n);continue}let a=o[o.length-1];__dcg_shared_module_exports__['Va'](a.x,i).value===__dcg_shared_module_exports__['Va'](n.x,i).value&&__dcg_shared_module_exports__['Va'](a.y,i).value===__dcg_shared_module_exports__['Va'](n.y,i).value&&a.branch===n.branch?(a.typeChain||(a.typeChain=a.type!==void 0?[a.type]:[]),n.type!==void 0&&a.typeChain.indexOf(n.type)===-1&&a.typeChain.push(n.type),n.type===1001&&n.intersects&&a.intersects===void 0&&(a.intersects=n.intersects)):o.push(n)}return o}getInterveningPOIs(e,t,i,o){let n=[],a=this.getSortedPOI(),s=NaN;for(let l of a)l&&((o===2||o===3)&&!isNaN(l.x)?s=l.x:o===1&&!isNaN(l.y)&&(s=l.y),l.branch===i&&!isNaN(s)&&(e<=s&&s<t||t<=s&&s<e)&&n.push(l));return e>t?n.reverse():n}setIndependent(e,t){let i=this.getSampledPoints();for(let n of i)if(n&&n.hasOwnProperty(e)&&n[e]===t){if(e==="x"){this.independent=n.x!==void 0?n.x:0,this.updateCurrentPoint();return}else if(e==="y"){this.independent=n.y!==void 0?n.y:0,this.updateCurrentPoint();return}}let o=!0;if(i.length>0){let n=Math.floor((i.length-1)/2),a=i[n];a&&(e==="x"?(this.independent=a.x!==void 0?a.x:0,o=!1):e==="y"&&(this.independent=a.y!==void 0?a.y:0,o=!1))}o&&(this.independent=0),this.resetToFirstBranch(),this.updateCurrentPoint()}moveToPOI(e){if(!this.getCurrentPoint())return;let i=this.getSampledPoints(),o=this.getPOIIndexByDirection(e);o===-1?Ye(this.controller.s("graphing-calculator-narration-audio-trace-no-more-pois")):this.updateCurrentPoint(i[o])}getPOIIndexByDirection(e){let t=this.getCurrentPoint();if(!t)return-1;let i=this.getSampledPoints(),o=this.getClosestPointIndexOnSameBranch(i,t),n=-1;if(o!==-1){let a=t.graphMode,s=e===1?i.length-1:0;for(let l=o;l!==s+e;l+=e){let c=i[l];if(((a===2||a===3)&&t.x!==c.x||a===1&&t.y!==c.y)&&c.type!==void 0){n=l;break}}}return n}canMoveToPrevPOI(){return this.getPOIIndexByDirection(-1)!==-1}canMoveToNextPOI(){return this.getPOIIndexByDirection(1)!==-1}getClosestPointIndexOnSameBranch(e,t){let i=-1,o=1/0;if(e.length>0&&t){let n=t.graphMode;for(let a=0;a<e.length;a++){let s=e[a];if(t.branch!==s.branch)continue;let l;n===2||n===3?l=Math.abs(s.x-t.x):l=Math.abs(s.y-t.y),l<o&&(i=a,o=l)}}return i}prevCurve(){this.controller.shouldAudioTraceReverseExpressions()?this.curveDown():this.curveUp()}nextCurve(){this.controller.shouldAudioTraceReverseExpressions()?this.curveUp():this.curveDown()}curveUp(){let e=this.getSelectedItem();if(!e)return;let t=this.prevTableColumn(e);if(t)this.audiograph.setFocusedCell(t);else{let i=e.index,o=this.findPrevTraceableIndex({index:i,focusTableCell:!0});if(o!==-1){let n=this.controller.getItemModelByIndex(o);n&&this.controller.dispatch({type:"set-selected-id",id:n.id})}}(t||this.getSelectedItem()!==e)&&this.audiograph.enterAudioTrace()}curveDown(){let e=this.getSelectedItem();if(!e)return;let t=this.nextTableColumn(e);if(t)this.audiograph.setFocusedCell(t);else{let i=e.index,o=this.findNextTraceableIndex({index:i,focusTableCell:!0});if(o!==-1){let n=this.controller.getItemModelByIndex(o);n&&this.controller.dispatch({type:"set-selected-id",id:n.id})}}(t||this.getSelectedItem()!==e)&&this.audiograph.enterAudioTrace()}canMoveToPrevCurve(){let e=this.getSelectedItem();return e?this.controller.shouldAudioTraceReverseExpressions()?this.findNextTraceableIndex({index:e.index,focusTableCell:!1})!==-1:this.findPrevTraceableIndex({index:e.index,focusTableCell:!1})!==-1:!1}canMoveToNextCurve(){let e=this.getSelectedItem();return e?this.controller.shouldAudioTraceReverseExpressions()?this.findPrevTraceableIndex({index:e.index,focusTableCell:!1})!==-1:this.findNextTraceableIndex({index:e.index,focusTableCell:!1})!==-1:!1}findPrevTraceableIndex(e){let t=e.index,i;do{t--,i=this.controller.getItemModelByIndex(t);let o=i&&this.prevTableColumn(i);if(o)return e.focusTableCell&&this.audiograph.setFocusedCell(o),t}while(i&&!this.canTrace(i));return i?t:-1}findNextTraceableIndex(e){let t=e.index,i;do{t++,i=this.controller.getItemModelByIndex(t);let o=i&&this.nextTableColumn(i);if(o)return e.focusTableCell&&this.audiograph.setFocusedCell(o),t}while(i&&!this.canTrace(i));return i?t:-1}prevTableColumn(e){return this.tableColumn(e,-1)}nextTableColumn(e){return this.tableColumn(e,1)}tableColumn(e,t){let i;if(e&&e.type==="table"){let o=this.audiograph.getFocusedCell(),n,a,s;t===-1?(n=o?Math.max(o.location.column-1,0):NaN,a=o&&o.tableId===e.id&&!isNaN(n)?n:e.columnModels.length-1,s=0):(n=o?Math.min(o.location.column+1,e.columnModels.length-1):NaN,a=o&&o.tableId===e.id&&!isNaN(n)?n:0,s=e.columnModels.length-1);let l=(s-a)/t;if(isFinite(l)&&l>=0)for(let c=a;c!==s;c+=t){let d=e.columnModels[c];if(d!=null&&d.shouldGraph&&this.grapher.getGraphSketch(d.id)){i={tableId:e.id,location:{column:c,row:0}};break}}}return i}getGraphSketchForTableCell(e,t){if(!e||e.type!=="table"||!t)return;let i=e.columnModels[t.location.column];if(i)return this.grapher.getGraphSketch(i.id)}getSelectedItemId(){let e=this.controller.getSelectedItem();return e&&e.type==="folder"?fS(e):e==null?void 0:e.id}getSelectedItem(){let e=this.controller.getSelectedItem();if(e&&e.type==="folder"){var t=fS(e);return t===void 0?void 0:this.controller.getItemModel(t)}return e}};kt();function dy(r){var V;let e=r.getGrapher();if(!e)return"";let t=e.viewportController.getViewport(),i=e.getProjection(),{showGrid:o,showXAxis:n,xAxisNumbers:a,showYAxis:s,yAxisNumbers:l,xAxisLabel:c,yAxisLabel:d}=e.settings,u=e.settings.getPrecisionConfig(),h=!1,g="",b=!1,C=[],S=uo(__dcg_shared_module_exports__['fb'].value(t.xmin,u,Gu(i,t.xmin)).latex),k=uo(__dcg_shared_module_exports__['fb'].value(t.xmax,u,Gu(i,t.xmax)).latex),I=uo(__dcg_shared_module_exports__['fb'].value(t.ymin,u,WS(i,t.ymin)).latex),M=uo(__dcg_shared_module_exports__['fb'].value(t.ymax,u,WS(i,t.ymax)).latex),E=t.zmin?uo(__dcg_shared_module_exports__['fb'].value(t.zmin,u).latex):"",A=t.zmax?uo(__dcg_shared_module_exports__['fb'].value(t.zmax,u).latex):"";if(r.is3dProduct()){let{xmin:G,xmax:P,ymin:O,ymax:R,zmin:q,zmax:J}=t,{showAxis3D:U,showNumbers3D:z,showPlane3D:K}=e.settings;G===O&&G===q&&P===R&&P===J&&U?(n=s=h=!1,C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-xyz-axis-range",{xmin:S,xmax:k}))):(n=s=h=U,c=d=g="",a=l=b=z,o=n&&K)}if(n&&(a&&c!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-x-axis-range-and-label",{xmin:S,xmax:k,label:c})):a&&c===""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-x-axis-range",{xmin:S,xmax:k})):!a&&c!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-x-axis-and-label",{label:c})):!a&&c===""&&C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-x-axis"))),s&&(l&&d!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-y-axis-range-and-label",{ymin:I,ymax:M,label:d})):l&&d===""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-y-axis-range",{ymin:I,ymax:M})):!l&&d!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-y-axis-and-label",{label:d})):!l&&d===""&&C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-y-axis"))),h&&(b&&g!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-z-axis-range-and-label",{zmin:E,zmax:A,label:g})):b&&g===""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-z-axis-range",{zmin:E,zmax:A})):!b&&g!==""?C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-z-axis-and-label",{label:g})):!b&&g===""&&C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-z-axis"))),o&&C.push(r.s("graphing-calculator-narration-audio-trace-description-visible-grid")),r.is3dProduct()&&C.push(P9(r)),!r.isGeometry()&&!r.is3dProduct()){let G=(V=r.getGrapher())==null?void 0:V.graphSketches,P=0;for(let O in G)Ya(r,G[O])&&(P+=1);C.push(r.s("graphing-calculator-narration-audio-trace-traceable-curves",{sketchCount:__dcg_shared_module_exports__['jb'](P)}))}return C.join(" ").trim()}function P9(r){return""}var QN=__dcg_shared_module_exports__['f']("//tQxAAAAAAAAAAAAAAAAAAAAAAASW5mbwAAAA8AAAAIAAAHVwAgICAgICAgICAgICBAQEBAQEBAQEBAQEBgYGBgYGBgYGBgYGBggICAgICAgICAgICAoKCgoKCgoKCgoKCgoMDAwMDAwMDAwMDAwODg4ODg4ODg4ODg4OD///////////////8AAAA5TEFNRTMuOThyAaUAAAAALmcAABRAJAiwQgAAQAAAB1cctrbdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/7UMQAAAjsKyK0YYABp52xtx8wAgAgBd34IAhAgnsECEe7QIAAgsPxACDgcBAEHQfD/g+D4PggCAIf///ghLny4Pg+D5+sHz/wf+XPwfB8H3iMHwfwffUCYPvz/Y7Hg/H4/H4/H4HAwADcoDwAP7XfuAFtXrhzjsjOXP8iCYM4IBVoH2DGAhQR2hm5vikA2IVEPX9nQaITi6IiLCKX/fxcg/DdGmS5BP7fIGQ0hw7DQi5Q//8midImXygdJ0tlz/1NAgXIANV6MA2Vy2y27jv/+1LEBIALOHOTvGGAMXWhbnTxGZ+LOa2FNMsDtj9/jUmPqqqARrNvlVjDDoGZqq0T11A0DVqeEnlQk8q4sVEp0FcqdxLoEJ0RPYWvIlQkbGA0Anw6VJJgqRKw1NJaAXkR4ag0/FwCCABbbdbJA0fzVgdvgvu5Px6Rwiv3VllZVDREqmWntLyBDka3sz951iTve+ddHP0/M3P/+ydU4zbqOZOeop5jfu1kwk8VezPeGc1hRMbWrJNv6SO/fH0Mc15KYvKqAAAAdrdsrbBDuBpp4v/7UsQGgguVE2ekjNP5aSBo6YSNgKAQUoCZEBJK8q73G/nhJFFmLY5dNc4b7gjBRyEs5yjJokY9TBoU/pXQBglyNjeiA87V8vkzaw019YTu2fxY0t6gteLMI37f9fYw7UVnWoE4NJOSpQBu3GfVAIVACgw+IikZZAnB7UKlLGnha4PDbIhsBhk4RYmlE2hYZ8NrQ5HnyEUvZxDyVG1hM33ZZH0OlrJV5///3/51qTGtJgxhREVLEfoO1w6686eRAAAAUicksbA1qegZCe2AuEgJ//tSxAkCDF0XSaw8ailyn+l1h4w1BvVY04S56fYY5nGkBZHMGLBjHDUMlORG4wcCT9R6RB+3vM8jVMU1hmlOoXIOMKqotE2HxWYNJq/7EZ2l63NJ+Z2aTA4Yq+7t0PhOxCz9WP1mA3DJZZGDkRfq+qFAGwhwHUAVqBfDiMUlypaMWApR1VoWLChfUpJzkBDMCTf85UZr6jyHa1psZnTS5iKatTVKcX/Ker9zMvM1T0okGyiQcreJbU1tc+Yj/ms3395FBIADkjlkjbAZNdiwgRD/+1LEBwAL8Tdbp6Rh+XmT6XWHjCx5U4sTCtlUidNtS9I7oUx7oxdIZlOghkIQYzB0vxtMs6QgCg4WMVakQMM5HRfrsdIEftM0yfOHnNGkiPRMoWCKSsxsChat8/vYw4c4t+CMMB5AAAAXZrftWiEVdbSgnURZoWvK2KhK9GfCkIGnQKxIqbYJ0JCNFJ3St1wuUNRLW4Kw5VhLVGrmgYKhhRe1qzzC7SqFFyjJlIqXcPD6gw//epZ9bwQFw+s+rdVAFtzl0AAAA3I3JK0QJxtCHv/7UsQGAApAM0WssGFpSCKqNYMMvgZph6CwIhKEt0yEiMwFKpnDBBajVc5jbTM7KayRt3I43h8Ag05kd9AtqO0bItmf/+Aevzf7dx28sK0hvP//3/izNwf1pfEAgANutuOJACSqWvuW+SKNLQSpOQKsrX3XxnZxy2Rus0Q1irPy9Mkg4kZGJFRQUax4R+jsACwavqYd2bmRX/6VnKrLk2Z2VGYwQNCIEasJh7/oBScAAMtBNgBWssKw0uCAgKkVpJirpZyBklUCwqaSIkW6BgIY//tSxBIDSYw3Km0kSoEzi9KAliSw9QNAydBqoFQVEQNBwiJYiBWdDqxiwVBUGqg6JgaBoGj3//////huVcFQsIRoPjBXLBGA8AkCwOhcD4KAmFAtEYcR6E8gD2OAXJ2N//uSJVZVJNRdh0gkLCwuKioqz4sLC3//////4sLC31ioqKpAoqKirOgFqkxBTUUzLjk4LjKqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqr/+1LEIwPAAAGkAAAAIAAANIAAAASqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqg==");Fa();var hp=.075,Er=.0015,ZN=.02,e5=125,t5=330,r5=2e3,O9=27.5,_9=4186,RM=.04,NM=.2,i5=25;function o5(r){return r<2e3?.002:.005}function F9(r){return{segments:r.clippedSegments.length,totalPoints:r.clippedSegments.map(e=>e.length).reduce((e,t)=>e+t,0),graphMode:r.graphMode,duration:r.duration,discrete:r.discrete}}var py=class{constructor(e,t){this.audioContext=e.audioContext,this.audioContext&&(this.oscillator=this.audioContext.createOscillator(),this.oscillator.setPeriodicWave(e.getBaseWaveform()),this.firstHarmonic=this.audioContext.createOscillator(),this.firstHarmonic.setPeriodicWave(e.getFirstHarmonicWaveform()),this.firstHarmonicGain=this.audioContext.createGain(),this.firstHarmonicGain.gain.value=0,this.pan=this.audioContext.createStereoPanner(),this.pan.pan.value=0,this.gain=this.audioContext.createGain(),this.gain.gain.value=0,this.oscillatorGain=this.audioContext.createGain(),this.oscillatorGain.gain.value=.5,this.oscillatorGain.connect(this.gain),this.oscillator.connect(this.oscillatorGain),this.firstHarmonic.connect(this.firstHarmonicGain),this.firstHarmonicGain.connect(this.gain),this.gain.connect(this.pan),this.pan.connect(t),this.oscillator.start(),this.firstHarmonic.start(),this.brownNoiseGain=this.audioContext.createGain(),this.brownNoiseGain.gain.value=0,this.brownNoiseSource=this.audioContext.createBufferSource(),this.brownNoiseSource.buffer=e.brownNoiseSample,this.brownNoiseSource.loop=!0,this.brownNoiseSource.start(),this.brownNoiseSource.connect(this.brownNoiseGain),this.brownNoiseGain.connect(this.pan))}stop(e){let t=Math.max(this.audioContext.currentTime,e);this.gain.gain.setTargetAtTime(0,t,Er),this.brownNoiseGain.gain.setTargetAtTime(0,t,Er),setTimeout(()=>{this.oscillator.stop(),this.firstHarmonic.stop(),this.brownNoiseSource.stop(),this.pan.disconnect()},1e3*(2*Er+Math.max(0,e-this.audioContext.currentTime))+1)}};function R9(r){if(r.length<=2)return[r];let e=__dcg_shared_module_exports__['Ia'](r,2),t=0,i=[[e[0]]],o=e[0][0]<e[1][0];for(let n=1;n<e.length;n++)i[t].push(e[n]),n<e.length-1&&o!==e[n][0]<e[n+1][0]&&(o=!o,t++,i[t]=[e[n]]);return i.map(n=>__dcg_shared_module_exports__['Ea'](n))}function N9(r){let e=__dcg_shared_module_exports__['Ia'](r,2);return e.sort((t,i)=>t[0]-i[0]),__dcg_shared_module_exports__['Ea'](e)}var ME=class{constructor({controller:e,agNavigator:t,audioEnabled:i}){this.isPlayingOneBranch=!1;this.FREQ_MIN=e5;this.FREQ_MAX=r5;this.FREQ_BASE=t5;e&&(this.controller=e),this.audioContextManager=new vg,this.audioGraphNavigator=t,this.audioEnabled=i,this.screenDuration=5,this.audioVolume=.5}getBaseWaveform(){var i;let e=new Float32Array([0,1,0,.25]),t=new Float32Array([1,0,.25,0]);return(i=this.audioContext)==null?void 0:i.createPeriodicWave(e,t)}getFirstHarmonicWaveform(){var i;let e=new Float32Array([0,0,0,.25,0,0,0,0]),t=new Float32Array([1,0,1,0,.25,0,.3,0]);return(i=this.audioContext)==null?void 0:i.createPeriodicWave(e,t)}async prepareSynthesizer(){if(!this.audioEnabled()||!this.audioContextManager||!this.audioGraphNavigator)return;try{this.audioContext=(await this.audioContextManager.getResumedAudioContext()).audioContext,this.playbackSupported=!0}catch(i){this.playbackSupported=!1;return}this.audioContext.destination.disconnect(),this.mainGainNode=this.audioContext.createGain(),this.mainGainNode.gain.value=this.audioVolume,this.mainGainNode.connect(this.audioContext.destination);let e=this.audioContext.sampleRate*this.screenDuration;this.brownNoiseSample=this.audioContext.createBuffer(1,e,this.audioContext.sampleRate);let t=OM(0);for(let i=0;i<e;i++)t=OM(t),this.brownNoiseSample.getChannelData(0)[i]=t;if(!this.poiBufferSample)try{this.poiBufferSample=await this.audioContext.decodeAudioData(QN.buffer.slice(0))}catch(i){Mi(i)}cC()}releaseAudio(){var e;this.stop(),(e=this.audioContextManager)==null||e.suspend()}synthesizePoint(e,t,i,o){let{gain:n,brownNoiseGain:a,oscillator:s,firstHarmonic:l,firstHarmonicGain:c,pan:d}=o,u=this.mapDependentToFrequency(t);if(!(!this.viewportBounds||!u)){if(t<this.viewportBounds.dependentMin||t>this.viewportBounds.dependentMax){a.gain.setTargetAtTime(RM,i,Er),a.gain.setTargetAtTime(0,i+hp,Er);return}s.frequency.setValueAtTime(u,i),l.frequency.setValueAtTime(u,i),n.gain.setTargetAtTime(1,i,Er),e>0&&c.gain.setTargetAtTime(.15,i,Er),a.gain.setTargetAtTime(FM(t),i,Er),d.pan.setTargetAtTime(this.getPanValueFromIndependent(e),i,Er),n.gain.setTargetAtTime(0,i+hp,Er),c.gain.setTargetAtTime(0,i+hp,Er),a.gain.setTargetAtTime(0,i+hp,Er)}}playPoint(e){!WN(e)||!this.audioContextManager||(this.setupScales(e.graphMode),this.prepareSynthesizer().then(()=>{let t=new py(this,this.mainGainNode);this.turnMainGainOn();let i=this.audioContext.currentTime,{independent:o,dependent:n}=XN(e);if(!this.mapDependentToFrequency(n)||!this.viewportBounds){t.stop(i);return}if(this.synthesizePoint(o,n,i,t),e.intersects){let a=this.audioContext.createBufferSource();a.connect(t.gain),a.buffer=this.poiBufferSample;try{a==null||a.start(this.audioContext.currentTime)}catch(s){}}t.stop(i+hp+Er)}))}playCurrentSketch(e="sequential"){this.audioContextManager&&this.prepareSynthesizer().then(()=>{this.isPlaying=!0,this.isPlayingOneBranch=!1,this.controller.runAfterDispatch(()=>this.controller.dispatch({type:"render"})),this.prepareToPlay(e),this.startPlayingTime=this.audioContext.currentTime+Er,this.currentPlayLoopStartTime=this.startPlayingTime,this.lagLoggingData||(this.lagLoggingData={startPlayingTime:this.startPlayingTime,branchCount:this.branches.length,branchInfo:this.branches.map(t=>F9(t)),branchIteratorStartTimes:[],branchIteratorRunTimes:[],branchIteratorCallCount:0,branchLags:[],screenDuration:this.screenDuration}),e==="sequential"?(this.currentPlayLoopBranchIndex=0,this.playBranchIterators=[this.playBranch(this.currentPlayLoopBranchIndex,this.currentPlayLoopStartTime)],this.lagLoggingData&&(this.lagLoggingData.proposedDuration=this.branches.reduce((t,i)=>{var o;return t+((o=i.duration)!=null?o:0)},0)),this.sequentialPlayLoop()):e==="simultaneous"&&(this.playBranchIterators=this.branches.map((t,i)=>this.playBranch(i,this.currentPlayLoopStartTime)),this.playBranchIterators.push(this.playBlankSpace(this.currentPlayLoopStartTime)),this.simultaneousPlayLoop())})}stop(){var o,n,a,s,l,c;dC(),clearTimeout(this.timeoutId),this.isPlaying=!1,this.startPlayingTime=void 0;let e=(o=this.audioContext)==null?void 0:o.currentTime;if(!e)return;this.lagLoggingData&&(this.lagLoggingData.actualDuration=e-this.lagLoggingData.startPlayingTime,this.lagLoggingData.stopPlayingTime=e,(a=(n=this.controller).logEvent)==null||a.call(n,{category:"audio-trace",action:"stop-graph"}),this.lagLoggingData=void 0);let t=(s=this.playBranchIterators)==null?void 0:s.map(d=>d.next()).filter(d=>!d.done);t==null||t.forEach(d=>{var u,h;return(h=(u=d.value).synthStopCallback)==null?void 0:h.call(u,e)}),this.playBranchIterators=[],(l=this.mainGainNode)==null||l.gain.cancelScheduledValues(e),(c=this.mainGainNode)==null||c.gain.setTargetAtTime(0,e,Er);let i=this.mainGainNode;setTimeout(()=>i.disconnect(),1e3*2*Er+1),this.controller.runAfterDispatch(()=>this.controller.dispatch({type:"render"}))}getGraphMode(){if(this.branches)return this.currentPlayLoopBranchIndex!==void 0?this.branches[this.currentPlayLoopBranchIndex].graphMode:this.branches[0].graphMode}playBranchByIndex(e){this.audioContext&&this.prepareSynthesizer().then(()=>{this.prepareToPlay("simultaneous"),this.isPlayingOneBranch=!0,this.isPlaying=!0,this.startPlayingTime=this.audioContext.currentTime+Er,this.currentPlayLoopStartTime=this.startPlayingTime,this.currentPlayLoopBranchIndex=e,this.branches[0].graphMode===8||this.branches[0].graphMode==5||this.branches[0].graphMode==6?(this.playBranchIterators=this.branches.map((t,i)=>this.playBranch(i,this.currentPlayLoopStartTime)),this.playBranchIterators.push(this.playBlankSpace(this.currentPlayLoopStartTime))):this.playBranchIterators=[this.playBranch(e,this.startPlayingTime)],this.simultaneousPlayLoop()})}getPlaybackSupported(){return this.playbackSupported}getIsPlaying(){return this.isPlaying}getAudioSpeed(){return this.screenDuration*10}setAudioSpeed(e){this.screenDuration=e/10}getAudioVolume(){return this.audioVolume}setAudioVolume(e){var t;this.audioVolume=e,(t=this.mainGainNode)==null||t.gain.setTargetAtTime(this.audioVolume,0,Er)}getCurrentIndependentValue(){var i,o;if(!this.getIsPlaying()||this.startPlayingTime===void 0)return;if(this.isPlayingOneBranch)return(o=(i=this.branches[this.currentPlayLoopBranchIndex]).mapTimeToIndependent)==null?void 0:o.call(i,this.audioContext.currentTime-this.startPlayingTime);let e=this.audioContext.currentTime-this.startPlayingTime,t=0;for(let n of this.branches)if(!(!n.duration||!n.mapIndependentToTime||!n.mapTimeToIndependent)){if(e-t>=n.duration){t+=n.duration;continue}return n.mapTimeToIndependent(e-t)}}getCurrentBranchIndex(){if(!this.getIsPlaying()||this.startPlayingTime===void 0)return;if(this.isPlayingOneBranch)return this.currentPlayLoopBranchIndex;let e=this.audioContext.currentTime-this.startPlayingTime,t=0;for(let i=0;i<this.branches.length;i++){let o=this.branches[i];if(o.duration){if(e-t>=o.duration){t+=o.duration;continue}return i}}}preprocessBranch(e,t){switch(e.graphMode){case 8:case 5:case 6:let i=[],o=e.segments;if(e.graphMode===6){let n=this.controller.getViewState();o=o.map(a=>jN(a,n))}for(let n of o){let s=_M(n,t,wu);i.push(...s.filter(l=>l.length>2))}return i=__dcg_shared_module_exports__['Ea'](i.map(n=>R9(n).map(a=>N9(a))),!0),i.sort((n,a)=>n[0]-a[0]),i.map(n=>({graphMode:e.graphMode,discrete:!1,poi:e.poi,clippedSegments:[n]})).filter(n=>n.clippedSegments.length>0);case 2:case 1:{let n=[];for(let a of e.segments){let s=e.graphMode===2?wu:Vg,l=_M(a,t,s);n.push(...l.filter(c=>c.length>2))}return n.sort((a,s)=>a[0]-s[0]),{graphMode:e.graphMode,discrete:!1,clippedSegments:n,poi:e.poi}}case 3:case 4:{let{viewport:n}=t,a=e.segments[0].slice();a.sort(JN);let s=[],l=[];for(let c of a)s.push(c[0],c[1]),c[0]>=n.xmin&&c[0]<=n.xmax&&c[1]>=n.ymin&&c[1]<=n.ymax&&l.push(c[0],c[1]);return{graphMode:2,discrete:!0,clippedSegments:[l],poi:void 0}}default:throw new Error(`Unimplemented graph mode: ${e.graphMode}`)}}turnMainGainOn(){var e,t;(e=this.mainGainNode)==null||e.gain.cancelScheduledValues(0),(t=this.mainGainNode)==null||t.gain.setTargetAtTime(this.audioVolume,0,Er)}getPanValueFromIndependent(e){if(!this.independentScale)return 0;let t=__dcg_shared_module_exports__['Cc'](this.independentScale,e)/this.screenDuration;return __dcg_shared_module_exports__['wb'](2*t-1,-1,1)}setupScales(e){this.projection=this.controller.get2dProjection(),this.viewportBounds=$N(this.projection.viewport,e);let t=e===1?this.projection.settings.yAxisScale:this.projection.settings.xAxisScale,i=e===1?this.projection.settings.xAxisScale:this.projection.settings.yAxisScale;this.independentScale=__dcg_shared_module_exports__['Bc'](t,[this.viewportBounds.independentMin,this.viewportBounds.independentMax],[0,this.screenDuration]),this.dependentScale=__dcg_shared_module_exports__['Bc'](i,[this.viewportBounds.dependentMin,this.viewportBounds.dependentMax],[0,1]),this.viewportBounds.dependentMax<=_9&&this.viewportBounds.dependentMin>=O9&&this.viewportBounds.dependentMax-this.viewportBounds.dependentMin>=1e3?(this.FREQ_MIN=this.viewportBounds.dependentMin,this.FREQ_MAX=this.viewportBounds.dependentMax,this.FREQ_BASE=void 0):(this.FREQ_MIN=e5,this.FREQ_MAX=r5,this.FREQ_BASE=t5)}densifyBranches(){this.branches.map(e=>{if(e.discrete)return e;let t=this.independentScale,i=this.dependentScale;return!t||!i||!e.clippedSegments||(e.clippedSegments=e.clippedSegments.map(o=>{let n=[];for(let a=0;a<o.length;a+=2){let s=this.mapDependentToFrequency(o[a+1]),l=this.mapDependentToFrequency(o[a+3]);if(n.push(o[a]),n.push(o[a+1]),s&&l&&isFinite(s)&&isFinite(l)&&Math.abs((l-s)/s)>=o5(Math.min(l,s))){let c=Math.ceil(Math.abs((l-s)/s)/o5(Math.min(l,s)));for(let d=1;d<c;d++)n.push(__dcg_shared_module_exports__['Dc'](t.type,o[a],o[a+2],d*1/c)),n.push(__dcg_shared_module_exports__['Dc'](i.type,o[a+1],o[a+3],d*1/c))}}return n})),e})}setupToPlayBranches(e){if(!this.audioGraphNavigator||!this.audioContext||!this.mainGainNode)return;let t=this.audioGraphNavigator.getCurrentSketch();if(!t)return;let i=this.controller.get2dProjection();if(this.branches=__dcg_shared_module_exports__['Ea'](t.branches.filter(o=>sl(o)).map(o=>this.preprocessBranch(o,i))).filter(o=>o.clippedSegments.length>0),!!this.branches.length)if(this.setupScales(this.branches[0].graphMode),this.densifyBranches(),e==="simultaneous"){let o=Math.min(...this.branches.map(c=>c.clippedSegments[0][0])),n=Math.max(...this.branches.map(c=>c.clippedSegments.slice(-1)[0].slice(-2)[0])),a=this.mapIndependentToTime(n)-this.mapIndependentToTime(o),s=__dcg_shared_module_exports__['Bc'](this.branches[0].graphMode===1?this.projection.settings.yAxisScale:this.projection.settings.xAxisScale,[o,n],[0,a]),l=__dcg_shared_module_exports__['Bc'](this.branches[0].graphMode===1?this.projection.settings.yAxisScale:this.projection.settings.xAxisScale,[0,a],[o,n]);this.branches.forEach(c=>{c.duration=c.discrete?a+hp:a,c.mapIndependentToTime=d=>__dcg_shared_module_exports__['Cc'](s,d),c.mapTimeToIndependent=d=>__dcg_shared_module_exports__['Cc'](l,d)})}else this.branches.forEach(o=>{let n=o.clippedSegments[0][0],a=o.clippedSegments.slice(-1)[0].slice(-2)[0];o.discrete?o.duration=o.clippedSegments.reduce((c,d)=>c+d.length/2,0)*(hp+ZN):o.duration=this.mapIndependentToTime(a)-this.mapIndependentToTime(n);let s=__dcg_shared_module_exports__['Bc'](this.branches[0].graphMode===1?this.projection.settings.yAxisScale:this.projection.settings.xAxisScale,[n,a],[0,o.duration]),l=__dcg_shared_module_exports__['Bc'](this.branches[0].graphMode===1?this.projection.settings.yAxisScale:this.projection.settings.xAxisScale,[0,o.duration],[n,a]);o.mapIndependentToTime=c=>__dcg_shared_module_exports__['Cc'](s,c),o.mapTimeToIndependent=c=>__dcg_shared_module_exports__['Cc'](l,c)})}prepareToPlay(e){this.setupToPlayBranches(e),this.turnMainGainOn(),clearInterval(this.timeoutId)}sequentialPlayLoop(){var i,o,n,a,s;let e=this.audioContext.currentTime,t=(i=this.playBranchIterators[0])==null?void 0:i.next();if(this.lagLoggingData&&(this.lagLoggingData.branchIteratorCallCount++,this.audioContext.currentTime-e>0&&(this.lagLoggingData.branchIteratorStartTimes.push(e),this.lagLoggingData.branchIteratorRunTimes.push(this.audioContext.currentTime-e))),!!t){if(t.done)if(((o=t.value)==null?void 0:o.duration)!==void 0&&(this.currentPlayLoopStartTime=((n=t.value.startTime)!=null?n:this.currentPlayLoopStartTime)+t.value.duration),this.currentPlayLoopBranchIndex<this.branches.length-1)this.currentPlayLoopBranchIndex++,this.playBranchIterators[0]=this.playBranch(this.currentPlayLoopBranchIndex,this.currentPlayLoopStartTime),this.sequentialPlayLoop();else{(a=this.mainGainNode)==null||a.gain.cancelScheduledValues(this.currentPlayLoopStartTime),(s=this.mainGainNode)==null||s.gain.setTargetAtTime(0,this.currentPlayLoopStartTime,Er),clearTimeout(this.timeoutId),this.timeoutId=setTimeout(()=>this.stop(),1e3*(Math.max(this.currentPlayLoopStartTime-this.audioContext.currentTime,0)+Er));return}this.timeoutId=setTimeout(()=>this.sequentialPlayLoop(),i5)}}simultaneousPlayLoop(){var t,i;let e=this.playBranchIterators.map(o=>o.next());if(e.every(o=>o.done)){let o=this.currentPlayLoopStartTime+Math.max(...e.map(n=>{var a;return(a=n.value)!=null&&a.duration&&isFinite(n.value.duration)?n.value.duration:0}));(t=this.mainGainNode)==null||t.gain.cancelScheduledValues(o),(i=this.mainGainNode)==null||i.gain.setTargetAtTime(0,o,Er),this.timeoutId=setTimeout(()=>this.stop(),1e3*(Math.max(o-this.audioContext.currentTime,0)+Er))}else this.timeoutId=setTimeout(()=>this.simultaneousPlayLoop(),i5)}*playBlankSpace(e){let t=Math.max(this.audioContext.currentTime,e),i=new py(this,this.mainGainNode),{oscillator:o,pan:n,brownNoiseGain:a,gain:s}=i;o.stop(),s.gain.setTargetAtTime(1,t,Er);let l=this.branches.map(u=>{if(u.mapIndependentToTime)return[u.clippedSegments[0][0],u.clippedSegments.slice(-1)[0].slice(-2)[0]]}).filter(u=>!!u),c=[];for(l.sort((u,h)=>u[0]-h[0]);l.length>0;){let u=l[0];l=l.filter(h=>h[1]>u[1]),l.filter(h=>h[0]<=u[1]).length===0&&c.push([u[1],Math.min(...l.map(h=>h[0]))])}c=c.filter(u=>isFinite(u[0])&&isFinite(u[1]));let d=u=>{i.stop(u)};for(let u of c){let h=t+this.mapIndependentToTime(u[0]),g=t+this.mapIndependentToTime(u[1]);for(;h>this.audioContext.currentTime+NM;)yield{synthStopCallback:d};a.gain.setTargetAtTime(RM,h,Er),a.gain.setTargetAtTime(0,g,Er),n.pan.setValueAtTime(this.getPanValueFromIndependent(u[0]),h),n.pan.linearRampToValueAtTime(this.getPanValueFromIndependent(u[1]),g)}return{duration:0}}mapDiscreteSegmentIndexToTime(e){return e/2*(hp+ZN)}*playBranch(e,t){var C,S,k,I;let i=this.branches[e];if(!(i!=null&&i.duration)||!(i!=null&&i.mapIndependentToTime))return{duration:0};let o=Math.max(this.audioContext.currentTime,t),n=new py(this,this.mainGainNode),a=i.clippedSegments,s=M=>{n.stop(M)},{oscillator:l,gain:c,firstHarmonic:d,firstHarmonicGain:u,pan:h,brownNoiseGain:g}=n;if(i.poi&&i.poi.intersections&&this.poiBufferSample){let M=YN(i.graphMode,i.poi.intersections);for(let E of M){let A=this.audioContext.createBufferSource();A.connect(c),A.buffer=this.poiBufferSample;try{A==null||A.start(o+i.mapIndependentToTime(E))}catch(V){}}}let b=o;for(let M=0;M<a.length;M++){let E=a[M];for(let A=0;A<E.length;A+=2){let V=A===0,G=A+2>=E.length,P=i.discrete?b+this.mapDiscreteSegmentIndexToTime(A):o+i.mapIndependentToTime(E[A]),O=this.mapDependentToFrequency(E[A+1]);for(;P>this.audioContext.currentTime+NM;)yield{synthStopCallback:s,duration:void 0};if(i.discrete){this.synthesizePoint(E[A],E[A+1],b+this.mapDiscreteSegmentIndexToTime(A),n);continue}if(P<this.audioContext.currentTime-NM&&this.lagLoggingData&&this.lagLoggingData.branchLags.push({branchIndex:e,segmentIndex:M,pos:A,nextTime:P,proposedStartTime:t,lagAmount:this.audioContext.currentTime-P,currentTime:this.audioContext.currentTime}),V&&(u.gain.cancelScheduledValues(P),g.gain.cancelScheduledValues(P),c.gain.setTargetAtTime(1,P,Er)),O!==void 0&&isFinite(O)){l.frequency.linearRampToValueAtTime(O,P),d.frequency.linearRampToValueAtTime(O,P);let R=P;if(A>=2&&E[A-2]<=0!=E[A]<=0){let z=E[A-2],K=E[A];R=o+i.mapIndependentToTime(__dcg_shared_module_exports__['Dc']((S=(C=this.independentScale)==null?void 0:C.type)!=null?S:"linear",z,K,Math.abs(K)/(Math.abs(K)+Math.abs(z))))}u.gain.setTargetAtTime(E[A]>0?.15:0,R,Er);let J=P;if(A>=2&&E[A+1]<=0!=E[A-1]<=0){let z=E[A-2],K=E[A],v=E[A-1],D=E[A+1];J=o+i.mapIndependentToTime(__dcg_shared_module_exports__['Dc']((I=(k=this.independentScale)==null?void 0:k.type)!=null?I:"linear",z,K,Math.abs(v)/(Math.abs(v)+Math.abs(D))))}g.gain.setTargetAtTime(FM(E[A+1]),J,Er)}G&&(c.gain.setTargetAtTime(0,P,Er),M<i.clippedSegments.length-1&&g.gain.setTargetAtTime(RM,P,Er)),A===0?h.pan.setValueAtTime(this.getPanValueFromIndependent(E[A]),P):h.pan.linearRampToValueAtTime(this.getPanValueFromIndependent(E[A]),P)}b+=this.mapDiscreteSegmentIndexToTime(E.length)}return i.duration=Math.max(0,i.duration,this.audioContext.currentTime-t),n.stop(o+i.duration),{duration:i.duration,startTime:o}}mapIndependentToTime(e){return this.independentScale?__dcg_shared_module_exports__['Cc'](this.independentScale,e):0}mapDependentToFrequency(e){if(!this.dependentScale)return;let t=__dcg_shared_module_exports__['Cc'](this.dependentScale,e);if(this.FREQ_BASE)return Math.min(Math.max(this.FREQ_BASE*Math.pow(2,t),this.FREQ_MIN),this.FREQ_MAX);{let i=this.FREQ_MAX-this.FREQ_MIN;return Math.min(Math.max(this.FREQ_MIN+i*t,this.FREQ_MIN),this.FREQ_MAX)}}};var uy=[{speed:1600,displayedSpeed:"1/32 x"},{speed:1200,displayedSpeed:"1/24 x"},{speed:800,displayedSpeed:"1/16 x"},{speed:400,displayedSpeed:"1/8 x"},{speed:200,displayedSpeed:"1/4 x"},{speed:100,displayedSpeed:"1/2 x"},{speed:50,displayedSpeed:"1 x"},{speed:25,displayedSpeed:"2 x"},{speed:12.5,displayedSpeed:"4 x"},{speed:6.25,displayedSpeed:"8 x"}],AE=class{constructor(e,t){this.grapher=t,this.controller=e,this.audioTraceActive=!1,this.wasFocusInExpressionsView=!1,this.focusedCell=void 0,this.sliderTraceActive=!1,this.sliderIndex=0,this.sliderArray=[],this.lastSpokenBranch=1,this.agNavigator=new IE(e,this,this.grapher),this.agSynthesizer=new ME({controller:e,agNavigator:this.agNavigator,audioEnabled:()=>this.controller.getAudio()}),this.audioSpeedIndex=6,this.agSynthesizer.releaseAudio()}remove(){}handleKeydown(e){let t=e.altKey&&!e.metaKey&&!e.ctrlKey&&!e.shiftKey;t&&Ai(e)==="S"?this.agNavigator.getSelectedItem()&&(this.audioTraceActive||this.isFocusInExpressionsView())&&(e.preventDefault(),e.stopPropagation(),this.describeCurve()):t&&Ai(e)==="G"?(this.audioTraceActive||this.isFocusInExpressionsView())&&(e.preventDefault(),e.stopPropagation(),this.describeAxes()):t&&Ai(e)==="T"?(e.preventDefault(),e.stopPropagation(),this.toggleAudioTrace()):this.audioTraceActive&&(this.sliderTraceActive?this.sliderTraceKeydown(e):(this.stopAnimations(),this.audioTraceKeydown(e)))}sliderTraceKeydown(e){let t=e.altKey||e.metaKey,i=!t&&!e.ctrlKey&&!e.shiftKey;i&&ue(e)===jl||Ai(e)==="J"?(e.preventDefault(),e.stopPropagation(),this.decrementSliderValue()):i&&ue(e)===Jl||Ai(e)==="L"?(e.preventDefault(),e.stopPropagation(),this.incrementSliderValue()):i&&ue(e)===Hg?(e.preventDefault(),e.stopPropagation(),this.decrementBigSliderValue()):i&&ue(e)===qg?(e.preventDefault(),e.stopPropagation(),this.incrementBigSliderValue()):!t&&(ue(e)===wn||!e.shiftKey&&ue(e)===il||Ai(e)==="K")?(e.preventDefault(),e.stopPropagation(),this.nextSlider()):!t&&(ue(e)===rn||e.shiftKey&&ue(e)===il||Ai(e)==="I")?(e.preventDefault(),e.stopPropagation(),this.prevSlider()):i&&ue(e)===$g||Ai(e)==="U"?(e.preventDefault(),e.stopPropagation(),this.sliderMin()):i&&ue(e)===Wg||Ai(e)==="N"?(e.preventDefault(),e.stopPropagation(),this.sliderMax()):this.audioTraceKeydown(e)}audioTraceKeydown(e){let t=e.altKey||e.metaKey,i=t&&!e.ctrlKey&&!e.shiftKey,o=!t&&!e.ctrlKey&&!e.shiftKey,n=Ai(e);if(ue(e)===rn&&i)e.preventDefault(),e.stopPropagation(),Wi(),this.agNavigator.prevCurve();else if(ue(e)===wn&&i)e.preventDefault(),e.stopPropagation(),Wi(),this.agNavigator.nextCurve();else if(o&&ue(e)===jl||ue(e)===rn||n==="J")e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"keypad/audio-trace",command:"previous-point"});else if(o&&ue(e)===Jl||ue(e)===wn||n==="L")e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"keypad/audio-trace",command:"next-point"});else if(!t&&(ue(e)===Hg||!e.shiftKey&&ue(e)===il||n==="I"))e.preventDefault(),e.stopPropagation(),this.reportAndMoveToNextPOI();else if(!t&&(ue(e)===qg||e.shiftKey&&ue(e)===il||n==="K"))e.preventDefault(),e.stopPropagation(),this.reportAndMoveToPrevPOI();else if(o&&ue(e)===$g||n==="U")e.preventDefault(),e.stopPropagation(),this.reportAndMoveToFirstPoint();else if(o&&ue(e)===Wg||n==="N")e.preventDefault(),e.stopPropagation(),this.reportAndMoveToLastPoint();else if(o&&n==="X")e.preventDefault(),e.stopPropagation(),this.reportX();else if(o&&n==="P")e.preventDefault(),e.stopPropagation(),this.reportPOICount();else if(o&&n==="Y")e.preventDefault(),e.stopPropagation(),this.reportY();else if(o&&n==="T")e.preventDefault(),e.stopPropagation(),this.reportType();else if(o&&n==="B")e.preventDefault(),e.stopPropagation(),this.reportBranch();else if(o&&n==="O")e.preventDefault(),e.stopPropagation(),this.reportAndMoveToOrigin();else if(o&&n==="H")e.preventDefault(),e.stopPropagation(),this.hearGraph();else if(o&&typeof n=="string"&&n>="0"&&n<="9"){if(e.preventDefault(),e.stopPropagation(),Wi(),!this.controller.getAudio()){ie(this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled"));return}this.agSynthesizer.stop();let a=this.agNavigator.getCurrentSketch();if(a){let s;e.which===48?s=9:s=e.which-49;let l=s,c=-1;for(let d=0;d<a.branches.length;d++)if(sl(a.branches[d])&&(l-=1),l<0){c=d;break}c>=0?this.agSynthesizer.getPlaybackSupported()?(this.agSynthesizer.playBranchByIndex(c),this.grapher.traceLayer.setTraceInfo(void 0),this.graphAnimationTimeoutId=requestAnimationFrame(()=>this.animateCurrentSketchLine())):ie(this.controller.s("graphing-calculator-narration-audio-trace-unable-to-play")):ie(this.controller.s("graphing-calculator-narration-audio-trace-branch-not-found",{branch:s+1}))}else ie(this.controller.s("graphing-calculator-narration-audio-trace-description-no-curve-selected"))}else t&&typeof n=="string"&&n>="1"&&n<="5"?(e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"set-audio-trace-speed",speed:parseInt(n,10)+3})):!e.altKey&&!e.ctrlKey&&!e.metaKey&&n==="V"?(e.preventDefault(),e.stopPropagation(),this.controller.getAudio()?e.shiftKey?this.controller.dispatch({type:"keypad/audio-trace",command:"volume-down"}):this.controller.dispatch({type:"keypad/audio-trace",command:"volume-up"}):ie(this.controller.s("graphing-calculator-narration-audio-trace-unable-to-play"))):o&&n==="A"?(e.preventDefault(),e.stopPropagation(),Wi(),this.queueAnimatingPoints(!0),ie()):o&&n==="S"&&this.controller.isListEnabled()?(e.preventDefault(),e.stopPropagation(),this.toggleSliderTrace()):o&&n==="C"?(e.preventDefault(),e.stopPropagation(),this.reportColor()):o&&this.exitAudioTrace();this.controller.dispatch({type:"render"})}describeCurve(){Wi();let e=this.agNavigator.getCurrentSketch();if(!e){ie(this.controller.s("graphing-calculator-narration-audio-trace-description-no-curve-selected"));return}Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-color",{color:hu(this.controller,e.color)}));let t=cy(e,e.branches.length-1);t>1&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-branch-count",{branches:t}));let i=!1,o=!1;for(let a of e.branches)if(t===1&&a.segments.length>0&&a.hasOwnProperty("operator")){if(a.graphMode===2){if(a.operator===">"||a.operator===">="){Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-shading-above"));break}else if(a.operator==="<"||a.operator==="<="){Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-shading-below"));break}}else if(a.graphMode===1){if(a.operator===">"||a.operator===">="){Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-shading-right"));break}else if(a.operator==="<"||a.operator==="<="){Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-shading-left"));break}}}else t>1&&(a.graphMode===2||a.graphMode===1?(a.operator==="<"||a.operator==="<="||a.operator===">"||a.operator===">=")&&(i=!0):a.graphMode===7&&(o=!0));i&&o&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-description-shading-in-regions"));let n=e.getPOI();if(n.length>0){let a=[];for(let s of n)a[s.type]===void 0?a[s.type]=1:a[s.type]+=1;a.forEach((s,l)=>{l===1001?Ye(s===1?this.controller.s("graphing-calculator-narration-audio-trace-description-one-intersection"):this.controller.s("graphing-calculator-narration-audio-trace-description-multiple-intersections",{count:s})):l===1002?Ye(s===1?this.controller.s("graphing-calculator-narration-audio-trace-description-one-root"):this.controller.s("graphing-calculator-narration-audio-trace-description-multiple-roots",{count:s})):l===1003?Ye(s===1?this.controller.s("graphing-calculator-narration-audio-trace-description-one-intercept"):this.controller.s("graphing-calculator-narration-audio-trace-description-multiple-intercepts",{count:s})):l===1004?Ye(s===1?this.controller.s("graphing-calculator-narration-audio-trace-description-one-extremum"):this.controller.s("graphing-calculator-narration-audio-trace-description-multiple-extrema",{count:s})):l===1008&&Ye(s===1?this.controller.s("graphing-calculator-narration-audio-trace-description-one-label"):this.controller.s("graphing-calculator-narration-audio-trace-description-multiple-labels",{count:s}))})}ie()}describeAxes(){Wi(),ie(dy(this.controller))}queueCoordinates(e,t,i=!1){if(!this.grapher.getProjection().viewport||!e)return;let n=this.agNavigator.getCurrentSketch();(e.hasOwnProperty("branch")&&n&&n.branches.length>1&&this.lastSpokenBranch!==e.reportedBranch||t==="branch")&&typeof e.reportedBranch=="number"&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-property-branch-number",{branch:e.reportedBranch})),this.lastSpokenBranch=e.reportedBranch?e.reportedBranch:e.branch+1,e.hasOwnProperty("type")&&!t?Ye(this.controller.s("graphing-calculator-narration-audio-trace-property-type-before-coordinates",{type:this.describePOI(e)})):t==="type"&&Ye(this.describePOI(e)),(!t||t==="x")&&Ye(on(this.controller,e.x)),(!t||t==="y")&&Ye(nn(this.controller,e.y)),i&&ie()}describePOI(e){if(e.typeChain){let t=[];for(let i=0;i<e.typeChain.length;i++)t.push(this.poiTypeToText(e,i));return t.join(", ")}else return this.poiTypeToText(e)}poiTypeToText(e,t){switch(t&&e.typeChain?e.typeChain[t]:e.type){case 1001:let o=this.getIntersectingCurves(e);return o!==""?this.controller.s("graphing-calculator-narration-audio-trace-point-type-intersection-with-curves",{curves:o}):this.controller.s("graphing-calculator-narration-audio-trace-point-type-intersection");case 1002:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-root");case 1003:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-intercept");case 1004:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-extremum");case 1006:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-definition");case 1007:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-trace");case 1008:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-label");default:return this.controller.s("graphing-calculator-narration-audio-trace-point-type-not-a-poi")}}getIntersectingCurves(e){return!e||!e.intersects?"":this.getExpressionAriaLabel(e.intersects)}getExpressionAriaLabel(e){let t=this.controller.getItemModel(e);return t?t.type==="expression"&&t.label?xo(t.label):t.type==="table"&&this.focusedCell?this.controller.s("graphing-calculator-narration-audio-trace-expression-with-column",{index:t.displayIndex,column:this.focusedCell.location.column+1}):cr(t,"describe"):""}exitAudioTrace(e){if(this.audioTraceActive){if(this.audioTraceActive=!1,this.controller.isKeypadEnabled()&&this.controller.dispatch({type:"keypad/123"}),e||(e=this.controller.s("graphing-calculator-text-audio-trace-off")),this.controller.dispatch({type:"toast/close"}),this.wasFocusInExpressionsView){let t=this.agNavigator.getSelectedItem();(!t||!this.controller.isItemSelectable(t.id))&&(t=this.controller.getFirstFullyVisibleItem()),t&&this.controller.isItemSelectable(t.id)&&this.controller.dispatch({type:"move-focus-to-item",id:t.id,where:t.type==="table"&&this.focusedCell!==void 0?{location:"cell",...this.focusedCell.location}:"end"})}this.wasFocusInExpressionsView=!1,this.focusedCell=void 0,this.stopAnimations(),this.sliderTraceActive=!1,this.sliderIndex=0,this.agSynthesizer.stop(),this.agSynthesizer.releaseAudio(),this.agNavigator.reset(),this.lastSpokenBranch=1,this.grapher.traceLayer.setTraceInfo(void 0),this.grapher.traceLayer.setTraceLine(void 0),this.controller.requestRedrawGraph(),ie(e),this.resumeAnimations()}}isFocusInExpressionsView(){return!!this.controller.getFocusedItem()}canAudioTraceCurrentExp(){let e=this.agNavigator.getSelectedItem();return e?e.type==="table"?!!this.agNavigator.getCurrentSketch():this.agNavigator.canTrace(e):!1}enterAudioTrace(e){var a;let t=this.agNavigator.getSelectedItem(),i=t&&t.type!=="table"&&!this.agNavigator.canTrace(t)?this.getExpressionAriaLabel(t.id):void 0,o=!1;this.audioTraceActive||(this.wasFocusInExpressionsView=this.isFocusInExpressionsView(),t&&i&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-unsupported-expression",{expression:i})),o=!!i||!this.wasFocusInExpressionsView);let n;if(o)n=this.agNavigator.getFirstTraceableSketch({selectAssociatedExpression:!0});else if(!i){if(t&&t.type==="expression"&&t.formula&&t.formula.error)return this.exitAudioTrace(),this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-narration-audio-trace-description-no-curve-selected")}});if(t&&t.type==="table"){let s=Mn(t);(!this.focusedCell||this.focusedCell.tableId!==t.id||s&&(s.column!==this.focusedCell.location.column||s.row!==this.focusedCell.location.row))&&(this.focusedCell=s!==void 0?{tableId:t.id,location:s}:void 0)}else this.focusedCell=void 0;n=this.agNavigator.getCurrentSketch()}if(!n){this.agNavigator.reset(),this.lastSpokenBranch=1,this.exitAudioTrace(),n=this.agNavigator.getCurrentSketch();let s=n==null?void 0:n.branches[0].graphMode;return s===8&&!Hi("audioTraceSimult")?(this.exitAudioTrace(),this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-text-audio-trace-no-implicit-support")}})):s===5&&!Hi("audioTraceSimult")?(this.exitAudioTrace(),this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-text-audio-trace-no-parametric-support")}})):s===6&&!Hi("audioTraceSimult")?(this.exitAudioTrace(),this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-text-audio-trace-no-polar-support")}})):this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-narration-audio-trace-description-no-curve-selected")}})}if((a=this.controller.toneController)==null||a.handleAction({type:"mute-global"}),this.agNavigator.reset(),this.agNavigator.computeStepSizes(),this.lastSpokenBranch=1,this.grapher.traceLayer.clearOpenedPOI(),this.controller.requestRedrawGraph(),!this.audioTraceActive&&(this.controller.isKeypadEnabled()||this.controller.dispatch({type:"toast/show",toast:{message:this.controller.s("graphing-calculator-text-audio-trace-on"),noAria:!0,onHide:()=>this.exitAudioTrace(),hideAfter:0}}),i&&n&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-tracing-different-expression",{expression:this.getExpressionAriaLabel(this.focusedCell?this.focusedCell.tableId:n.id)})),Ye(this.controller.s("graphing-calculator-text-audio-trace-on")),this.controller.getAudio()||Ye(this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled")),this.pauseAnimations(),this.queueAnimatingPoints(!1),this.agSynthesizer.prepareSynthesizer(),(!e||!e.fromKeypad)&&(Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-use-arrow-keys")),this.controller.getAudio()&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-hear-graph")),this.agNavigator.getTraceableExpressionCount()>1&&(xi?Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-expression-navigation-mac")):Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-expression-navigation-windows"))),xi?Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-disable-mac")):Ye(this.controller.s("graphing-calculator-narration-audio-trace-instructions-disable-windows"))),this.wasFocusInExpressionsView)){let s=this.controller.findEl(".dcg-graph-outer");s&&(W(s).one("focusin",()=>{setTimeout(()=>{ie()},0)}),this.controller.dispatch({type:"set-focus-location",location:{type:"graph-paper"}}))}this.agNavigator.moveToOrigin(),Ye(this.getExpressionAriaLabel(n.id)),this.reportAudioTrace({playSound:!1}),this.wasFocusInExpressionsView||ie(),this.audioTraceActive=!0,this.controller.isKeypadEnabled()&&this.controller.dispatch({type:"keypad/audio"})}checkIfSelectedItemChanged(e){this.lastSelectedId!==e&&(this.lastSelectedId=e,this.audioTraceActive&&(e?(Ye(this.getExpressionAriaLabel(e)),this.exitSliderTrace(),this.agNavigator.updatePOI(),this.agNavigator.moveToOrigin(),this.reportAudioTrace(),ie()):this.exitAudioTrace()))}pauseAnimations(){this.sliderArray.length=0,this.controller.getAllModelsWithSliders().forEach(t=>{t.slider.isPlaying&&(this.controller.dispatch({type:"set-slider-isplaying",id:t.id,isPlaying:!1}),this.sliderArray.push(t))})}resumeAnimations(){if(this.sliderArray.length!==0){for(let e=0;e<this.sliderArray.length;e++){let t=this.sliderArray[e];t.slider.isPlaying!==!0&&this.controller.dispatch({type:"set-slider-isplaying",id:t.id,isPlaying:!0})}this.sliderArray.length=0}}stopAnimations(){this.controller.getAllModelsWithSliders().forEach(t=>{t.slider.isPlaying&&this.controller.dispatch({type:"set-slider-isplaying",id:t.id,isPlaying:!1})})}getAnimatingVars(){let e=[];for(let t=0;t<this.sliderArray.length;t++)e.push('"'+Oo(this.sliderArray[t])+'"');return e}hasActiveSliders(){let e=this.controller.getAllModelsWithSliders();for(let t=0;t<e.length;t++)if(e[t].slider.isPlaying)return!0;return!1}queueAnimatingPoints(e){this.sliderArray.length===1?Ye(this.controller.s("graphing-calculator-narration-audio-trace-one-slider-paused")):this.sliderArray.length>1?Ye(this.controller.s("graphing-calculator-narration-audio-trace-multiple-sliders-paused",{sliders:this.sliderArray.length})):e&&Ye(this.controller.s("graphing-calculator-narration-audio-trace-no-sliders-paused"))}queueSliderLatex(){this.hasActiveSliders()||this.agSynthesizer.stop();let e=this.getSelectedSlider();e?Ye(e.latex):Ye(this.controller.s("graphing-calculator-narration-audio-trace-slider-value-unknown"))}getSelectedSlider(){let e=this.controller.getAllModelsWithSliders();return this.sliderIndex<=e.length-1?e[this.sliderIndex]:null}incrementSliderValue(){this.adjustSlider("up")}decrementSliderValue(){this.adjustSlider("down")}incrementBigSliderValue(){this.adjustSlider("bigup")}decrementBigSliderValue(){this.adjustSlider("bigdown")}nextSlider(){this.adjustSlider("next")}prevSlider(){this.adjustSlider("prev")}sliderMin(){this.adjustSlider("min")}sliderMax(){this.adjustSlider("max")}adjustSlider(e){let t=this.getSelectedSlider();if(!t){Ye(this.controller.s("graphing-calculator-narration-audio-trace-cannot-change-slider-value"));return}let i=t.latex,o=this.controller.getAllModelsWithSliders().length;switch(e){case"up":case"down":case"bigup":case"bigdown":case"min":case"max":this.controller.dispatch({type:"adjust-slider-by-keyboard",id:t.id,adjustment:e}),this.queueSliderLatex(),ie();break;case"next":this.sliderIndex++,this.sliderIndex>=o&&(Ye(this.controller.s("graphing-calculator-narration-audio-trace-last-slider")),this.sliderIndex=o-1),this.queueSliderLatex(),ie();return;case"prev":this.sliderIndex--,this.sliderIndex<0&&(Ye(this.controller.s("graphing-calculator-narration-audio-trace-first-slider")),this.sliderIndex=0),this.queueSliderLatex(),ie();return}!t.slider.isPlaying&&i!==t.latex&&(this.queueSliderLatex(),ie())}toggleAudioTrace(){this.audioTraceActive?this.exitAudioTrace():this.enterAudioTrace()}toggleSliderTrace(){this.sliderTraceActive?this.exitSliderTrace():this.enterSliderTrace()}enterSliderTrace(){if(this.sliderTraceActive)return;this.sliderIndex=0,this.controller.getAllModelsWithSliders().length!==0?(Ye(this.controller.s("graphing-calculator-narration-slider-trace-on")),this.queueSliderLatex(),this.sliderTraceActive=!0):(Ye(this.controller.s("graphing-calculator-narration-slider-trace-no-sliders")),this.sliderTraceActive=!1),ie()}exitSliderTrace(){this.sliderTraceActive&&(Ye(this.controller.s("graphing-calculator-narration-slider-trace-off")),this.sliderTraceActive=!1,this.sliderIndex=0,ie())}recomputePoints(){!this.audioTraceActive||this.agSynthesizer.getIsPlaying()||(this.agNavigator.updatePOI(),this.agNavigator.updateSampledPoints(),this.agNavigator.updateCurrentPoint(),this.agNavigator.resetTracePoint(),this.agNavigator.computeStepSizes())}reportAndMoveToPrevPoint(){Wi(),this.agNavigator.prevPoint(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToNextPoint(){Wi(),this.agNavigator.nextPoint(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToOrigin(){Wi(),this.agNavigator.moveToOrigin(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToPrevPOI(){Wi(),this.agNavigator.prevPOI(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToNextPOI(){Wi(),this.agNavigator.nextPOI(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToFirstPoint(){Wi(),this.agNavigator.firstPoint(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportAndMoveToLastPoint(){Wi(),this.agNavigator.lastPoint(),this.reportAudioTrace(),this.controller.dispatch({type:"render"})}reportX(){Wi(),this.reportAudioTrace({propToSpeak:"x",playSound:!1})}reportY(){Wi(),this.reportAudioTrace({propToSpeak:"y",playSound:!1})}reportColor(){Wi();let e=this.agNavigator.getCurrentSketch();e?Ye(hu(this.controller,e.color)):Ye(this.controller.s("graphing-calculator-narration-color-unknown")),ie()}reportPOICount(){Wi();let e=this.agNavigator.getCurrentSketch(),t=e?e.getPOI().length:0;ie(this.controller.s("graphing-calculator-narration-audio-trace-poi-count",{x:t}))}reportType(){Wi(),this.reportAudioTrace({propToSpeak:"type",playSound:!1})}reportBranch(){Wi(),this.reportAudioTrace({propToSpeak:"branch",playSound:!1})}describePoint(){Wi(),this.reportAudioTrace({playSound:!1}),ie()}playCurrentPoint(){let e=this.agNavigator.getCurrentPoint();e&&this.agSynthesizer.playPoint(e)}reportAudioTrace(e){let t=this.agNavigator.getCurrentPoint();if(!t)return;let i=e&&e.propToSpeak,o=this.controller.getAudio()&&this.agSynthesizer.getPlaybackSupported()&&(e&&e.playSound!==void 0?e.playSound:!0),n=e&&e.speakCoordinates!==void 0?e.speakCoordinates:!0;this.agSynthesizer.stop(),o&&this.playCurrentPoint(),n&&(this.queueCoordinates(t,i),setTimeout(function(){ie()},i?0:100))}adjustPlaybackSpeed(e){if(!this.controller.getAudio()){ie(this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled"));return}if(e<0||e>=uy.length)return;this.audioSpeedIndex=e;let t=uy[e];return this.agSynthesizer.setAudioSpeed(t.speed),ie(this.controller.s("graphing-calculator-narration-audio-trace-playback-speed",{speed:t.displayedSpeed}))}speedUp(){this.adjustPlaybackSpeed(this.audioSpeedIndex+1)}speedDown(){this.adjustPlaybackSpeed(this.audioSpeedIndex-1)}adjustVolume(e){if(Wi(),!this.controller.getAudio()){ie(this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled"));return}let t=this.agSynthesizer.getAudioVolume(),i=e==="up"?Math.min(100,Math.round((t+.1)*100)):Math.max(0,Math.round((t-.1)*100));this.agSynthesizer.setAudioVolume(i/100),this.playCurrentPoint(),ie(this.controller.s("graphing-calculator-narration-audio-trace-volume",{volume:i}))}getFocusedCell(){return this.focusedCell}setFocusedCell(e){this.focusedCell=e}getAudioTraceActive(){return this.audioTraceActive}isAudioTracing(){return!!this.agSynthesizer&&this.agSynthesizer.getIsPlaying()}handleEvaluatorChange(e){}hearGraph(){var e,t;if(Wi(),!this.controller.getAudio()){ie(this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled"));return}if(this.agSynthesizer.getPlaybackSupported()){this.agSynthesizer.stop();let i=this.agNavigator.getCurrentSketch();if((t=(e=this.controller).logEvent)==null||t.call(e,{category:"audio-trace",action:"hear-graph"}),i&&Ya(this.controller,i)){let o=Hi("audioTraceSimult")?"simultaneous":"sequential";this.agSynthesizer.playCurrentSketch(o),o==="simultaneous"?(this.grapher.traceLayer.setTraceInfo(void 0),requestAnimationFrame(()=>this.animateCurrentSketchLine())):(this.grapher.traceLayer.setTraceLine(void 0),requestAnimationFrame(()=>this.animateCurrentSketchPoint()))}else ie(this.controller.s("graphing-calculator-narration-audio-trace-unable-to-trace-this-expression"))}else ie(this.controller.s("graphing-calculator-narration-audio-trace-unable-to-play"))}animateCurrentSketchPoint(){if(this.graphAnimationTimeoutId&&cancelAnimationFrame(this.graphAnimationTimeoutId),this.graphAnimationTimeoutId=requestAnimationFrame(()=>this.animateCurrentSketchPoint()),!this.agSynthesizer.getIsPlaying())return;let e=this.agSynthesizer.getCurrentIndependentValue(),t=this.agSynthesizer.getCurrentBranchIndex();e!==void 0&&t!==void 0&&this.agNavigator.drawTracePoint(this.agNavigator.getPoint(t,e))}animateCurrentSketchLine(){if(this.graphAnimationTimeoutId&&cancelAnimationFrame(this.graphAnimationTimeoutId),this.graphAnimationTimeoutId=requestAnimationFrame(()=>this.animateCurrentSketchLine()),!this.agSynthesizer.getIsPlaying())return;let e=this.agSynthesizer.getCurrentIndependentValue();e!==void 0&&this.agNavigator.drawTraceLine(e,this.agSynthesizer.getGraphMode())}stopGraph(){this.agSynthesizer.stop(),this.graphAnimationTimeoutId&&cancelAnimationFrame(this.graphAnimationTimeoutId)}getAudioSpeedIndex(){return this.audioSpeedIndex}getAudioVolume(){var e;return(e=this.agSynthesizer.getAudioVolume())!=null?e:.5}};var sc={};__dcg_shared_module_exports__['d'](sc,{UnicodeBraille:()=>vn,latexToNemeth:()=>od,latexToUeb:()=>nd,nemethToLatex:()=>aA,uebToLatex:()=>sA,version:()=>k$});var x5=Object.defineProperty,B9=Object.getOwnPropertyNames,n5=Object.getOwnPropertySymbols,z9=Object.prototype.hasOwnProperty,K9=Object.prototype.propertyIsEnumerable,a5=(r,e,t)=>e in r?x5(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,vm=(r,e)=>{for(var t in e||(e={}))z9.call(e,t)&&a5(r,t,e[t]);if(n5)for(var t of n5(e))K9.call(e,t)&&a5(r,t,e[t]);return r},Cm=(r=>typeof __dcg_shared_module_exports__['a']!="undefined"?__dcg_shared_module_exports__['a']:typeof Proxy!="undefined"?new Proxy(r,{get:(e,t)=>(typeof __dcg_shared_module_exports__['a']!="undefined"?__dcg_shared_module_exports__['a']:e)[t]}):r)(function(r){if(typeof __dcg_shared_module_exports__['a']!="undefined")return __dcg_shared_module_exports__['a'].apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')}),jM=(r,e)=>function(){return e||(0,r[B9(r)[0]])((e={exports:{}}).exports,e),e.exports},JM=(r,e)=>{for(var t in e)x5(r,t,{get:e[t],enumerable:!0})},U9=jM({"generated/latex.jison.js"(r,e){"use strict";var t=function(){var i=function(J,U,z,K){for(z=z||{},K=J.length;K--;z[J[K]]=U);return z},o=[1,13],n=[1,14],a=[1,15],s=[1,16],l=[1,17],c=[1,21],d=[1,18],u=[1,19],h=[1,20],g=[1,22],b=[1,23],C=[1,28],S=[1,30],k=[1,31],I=[1,32],M=[1,33],E=[1,29],A=[5,21,27,38],V=[5,19,21,22,23,24,25,26,27,28,32,33,34,35,36,37,38],G=[5,10,12,13,14,19,21,22,23,24,25,26,27,28,32,33,34,35,36,37,38],P=[5,10,19,21,22,23,24,25,26,27,28,32,33,34,35,36,37,38],O={trace:function(){},yy:{},symbols_:{error:2,sentence:3,group:4,EOF:5,level:6,expression:7,subscript:8,superscript:9,_:10,atom:11,"^":12,"PRIMES^":13,PRIMES:14,delimited_group:15,typeform:16,frac:17,radical:18,LEFT:19,delimiter:20,RIGHT:21,FRAC:22,OPERATOR_NAME:23,MATHRM:24,TEXT:25,RADICAL_OPTARG:26,CLOSE_OPTARG:27,RADICAL:28,curly_group:29,greek:30,command:31,SYMBOL:32,DELIMITER:33,DELIMITER_COMMAND:34,GREEK:35,COMMAND:36,"{":37,"}":38,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",10:"_",12:"^",13:"PRIMES^",14:"PRIMES",19:"LEFT",21:"RIGHT",22:"FRAC",23:"OPERATOR_NAME",24:"MATHRM",25:"TEXT",26:"RADICAL_OPTARG",27:"CLOSE_OPTARG",28:"RADICAL",32:"SYMBOL",33:"DELIMITER",34:"DELIMITER_COMMAND",35:"GREEK",36:"COMMAND",37:"{",38:"}"},productions_:[0,[3,2],[3,1],[4,3],[4,2],[4,1],[4,2],[4,1],[6,2],[6,2],[6,1],[6,1],[8,2],[9,2],[9,2],[9,1],[7,1],[7,1],[7,1],[7,1],[7,1],[15,5],[15,4],[17,3],[16,2],[16,2],[16,2],[18,4],[18,3],[18,2],[18,2],[11,1],[11,1],[11,1],[11,1],[11,1],[20,1],[20,1],[30,1],[31,1],[29,3],[29,2]],performAction:function(U,z,K,v,D,_,te){var Q=_.length-1;switch(D){case 1:return _[Q-1];case 2:return v.group();case 3:this.$=v.group(_[Q-2],_[Q-1],_[Q]);break;case 4:case 6:this.$=v.group(_[Q-1],_[Q]);break;case 5:case 7:this.$=v.group(_[Q]);break;case 8:this.$=v.level({_:v.group(_[Q-1]),"^":v.group(_[Q])});break;case 9:this.$=v.level({_:v.group(_[Q]),"^":v.group(_[Q-1])});break;case 10:this.$=v.level({"^":v.group(_[Q])});break;case 11:this.$=v.level({_:v.group(_[Q])});break;case 12:case 13:this.$=_[Q];break;case 14:this.$=v.processPrimes(_[Q-1],_[Q]);break;case 15:this.$=v.processPrimes(_[Q],v.group());break;case 21:this.$=v.group(_[Q-3],_[Q-2],_[Q]);break;case 22:this.$=v.group(_[Q-2],_[Q]);break;case 23:this.$=v.fraction(v.group(_[Q-1]),v.group(_[Q]));break;case 24:this.$=v.typeform("operator_name",v.group(_[Q]));break;case 25:this.$=v.typeform("mathrm",v.group(_[Q]));break;case 26:this.$=v.typeform("text",v.group(_[Q]));break;case 27:this.$=v.radical(_[Q],v.group(_[Q-2]));break;case 28:this.$=v.radical(v.group(_[Q]),v.group());break;case 29:case 30:this.$=v.radical(v.group(_[Q]));break;case 35:case 36:this.$=v.terminal(_[Q]);break;case 37:case 39:this.$=v.command(_[Q]);break;case 38:this.$=v.greek(_[Q]);break;case 40:this.$=_[Q-1];break;case 41:this.$=v.group();break}},table:[{3:1,4:2,5:[1,3],6:4,7:5,8:6,9:7,10:o,11:12,12:n,13:a,14:s,15:8,16:9,17:10,18:11,19:l,20:25,22:c,23:d,24:u,25:h,26:g,28:b,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{1:[3]},{5:[1,34]},{1:[2,2]},i(A,[2,5],{15:8,16:9,17:10,18:11,11:12,29:24,20:25,30:26,31:27,7:35,19:l,22:c,23:d,24:u,25:h,26:g,28:b,32:C,33:S,34:k,35:I,36:M,37:E}),i(A,[2,7],{6:4,7:5,8:6,9:7,15:8,16:9,17:10,18:11,11:12,29:24,20:25,30:26,31:27,4:36,10:o,12:n,13:a,14:s,19:l,22:c,23:d,24:u,25:h,26:g,28:b,32:C,33:S,34:k,35:I,36:M,37:E}),i(V,[2,11],{9:37,12:n,13:a,14:s}),i(V,[2,10],{8:38,10:o}),i(G,[2,16]),i(G,[2,17]),i(G,[2,18]),i(G,[2,19]),i(G,[2,20]),{11:39,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:40,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:41,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},i(P,[2,15]),{20:42,33:S,34:k},{11:43,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:44,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:45,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:46,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{4:47,6:4,7:5,8:6,9:7,10:o,11:12,12:n,13:a,14:s,15:8,16:9,17:10,18:11,19:l,20:25,22:c,23:d,24:u,25:h,26:g,27:[1,48],28:b,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{11:49,17:50,20:25,22:c,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},i(G,[2,31]),i(G,[2,32]),i(G,[2,33]),i(G,[2,34]),i(G,[2,35]),{4:51,6:4,7:5,8:6,9:7,10:o,11:12,12:n,13:a,14:s,15:8,16:9,17:10,18:11,19:l,20:25,22:c,23:d,24:u,25:h,26:g,28:b,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E,38:[1,52]},i(G,[2,36]),i(G,[2,37]),i(G,[2,38]),i(G,[2,39]),{1:[2,1]},i(A,[2,4],{6:4,7:5,8:6,9:7,15:8,16:9,17:10,18:11,11:12,29:24,20:25,30:26,31:27,4:53,10:o,12:n,13:a,14:s,19:l,22:c,23:d,24:u,25:h,26:g,28:b,32:C,33:S,34:k,35:I,36:M,37:E}),i(A,[2,6]),i(V,[2,8]),i(V,[2,9]),i([5,12,13,14,19,21,22,23,24,25,26,27,28,32,33,34,35,36,37,38],[2,12]),i(P,[2,13]),i(P,[2,14]),{4:54,6:4,7:5,8:6,9:7,10:o,11:12,12:n,13:a,14:s,15:8,16:9,17:10,18:11,19:l,20:25,21:[1,55],22:c,23:d,24:u,25:h,26:g,28:b,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},i(G,[2,24]),i(G,[2,25]),i(G,[2,26]),{11:56,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},{27:[1,57]},{11:58,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},i(G,[2,29]),i(G,[2,30]),{38:[1,59]},i(G,[2,41]),i(A,[2,3]),{21:[1,60]},{20:61,33:S,34:k},i(G,[2,23]),{11:62,20:25,29:24,30:26,31:27,32:C,33:S,34:k,35:I,36:M,37:E},i(G,[2,28]),i(G,[2,40]),{20:63,33:S,34:k},i(G,[2,22]),i(G,[2,27]),i(G,[2,21])],defaultActions:{3:[2,2],34:[2,1]},parseError:function(U,z){if(z.recoverable)this.trace(U);else{var K=new Error(U);throw K.hash=z,K}},parse:function(U){var z=this,K=[0],v=[],D=[null],_=[],te=this.table,Q="",De=0,se=0,re=0,j=2,X=1,fe=_.slice.call(arguments,1),be=Object.create(this.lexer),Me={yy:{}};for(var Be in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Be)&&(Me.yy[Be]=this.yy[Be]);be.setInput(U,Me.yy),Me.yy.lexer=be,Me.yy.parser=this,typeof be.yylloc=="undefined"&&(be.yylloc={});var Xe=be.yylloc;_.push(Xe);var _t=be.options&&be.options.ranges;typeof Me.yy.parseError=="function"?this.parseError=Me.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function je(Yr){K.length=K.length-2*Yr,D.length=D.length-Yr,_.length=_.length-Yr}for(var Kr=function(){var Yr;return Yr=be.lex()||X,typeof Yr!="number"&&(Yr=z.symbols_[Yr]||Yr),Yr},Dt,xe,Io,Zi,Se,tt,Re={},Qe,Je,le,Ft;;){if(Io=K[K.length-1],this.defaultActions[Io]?Zi=this.defaultActions[Io]:((Dt===null||typeof Dt=="undefined")&&(Dt=Kr()),Zi=te[Io]&&te[Io][Dt]),typeof Zi=="undefined"||!Zi.length||!Zi[0]){var we="";Ft=[];for(Qe in te[Io])this.terminals_[Qe]&&Qe>j&&Ft.push("'"+this.terminals_[Qe]+"'");be.showPosition?we="Parse error on line "+(De+1)+`:
`+be.showPosition()+`
Expecting `+Ft.join(", ")+", got '"+(this.terminals_[Dt]||Dt)+"'":we="Parse error on line "+(De+1)+": Unexpected "+(Dt==X?"end of input":"'"+(this.terminals_[Dt]||Dt)+"'"),this.parseError(we,{text:be.match,token:this.terminals_[Dt]||Dt,line:be.yylineno,loc:Xe,expected:Ft})}if(Zi[0]instanceof Array&&Zi.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Io+", token: "+Dt);switch(Zi[0]){case 1:K.push(Dt),D.push(be.yytext),_.push(be.yylloc),K.push(Zi[1]),Dt=null,xe?(Dt=xe,xe=null):(se=be.yyleng,Q=be.yytext,De=be.yylineno,Xe=be.yylloc,re>0&&re--);break;case 2:if(Je=this.productions_[Zi[1]][1],Re.$=D[D.length-Je],Re._$={first_line:_[_.length-(Je||1)].first_line,last_line:_[_.length-1].last_line,first_column:_[_.length-(Je||1)].first_column,last_column:_[_.length-1].last_column},_t&&(Re._$.range=[_[_.length-(Je||1)].range[0],_[_.length-1].range[1]]),tt=this.performAction.apply(Re,[Q,se,De,Me.yy,Zi[1],D,_].concat(fe)),typeof tt!="undefined")return tt;Je&&(K=K.slice(0,-1*Je*2),D=D.slice(0,-1*Je),_=_.slice(0,-1*Je)),K.push(this.productions_[Zi[1]][0]),D.push(Re.$),_.push(Re._$),le=te[K[K.length-2]][K[K.length-1]],K.push(le);break;case 3:return!0}}return!0}},R=function(){var J={EOF:1,parseError:function(z,K){if(this.yy.parser)this.yy.parser.parseError(z,K);else throw new Error(z)},setInput:function(U,z){return this.yy=z||this.yy||{},this._input=U,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var U=this._input[0];this.yytext+=U,this.yyleng++,this.offset++,this.match+=U,this.matched+=U;var z=U.match(/(?:\r\n?|\n).*/g);return z?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),U},unput:function(U){var z=U.length,K=U.split(/(?:\r\n?|\n)/g);this._input=U+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-z),this.offset-=z;var v=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),K.length-1&&(this.yylineno-=K.length-1);var D=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:K?(K.length===v.length?this.yylloc.first_column:0)+v[v.length-K.length].length-K[0].length:this.yylloc.first_column-z},this.options.ranges&&(this.yylloc.range=[D[0],D[0]+this.yyleng-z]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(U){this.unput(this.match.slice(U))},pastInput:function(){var U=this.matched.substr(0,this.matched.length-this.match.length);return(U.length>20?"...":"")+U.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var U=this.match;return U.length<20&&(U+=this._input.substr(0,20-U.length)),(U.substr(0,20)+(U.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var U=this.pastInput(),z=new Array(U.length+1).join("-");return U+this.upcomingInput()+`
`+z+"^"},test_match:function(U,z){var K,v,D;if(this.options.backtrack_lexer&&(D={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(D.yylloc.range=this.yylloc.range.slice(0))),v=U[0].match(/(?:\r\n?|\n).*/g),v&&(this.yylineno+=v.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:v?v[v.length-1].length-v[v.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+U[0].length},this.yytext+=U[0],this.match+=U[0],this.matches=U,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(U[0].length),this.matched+=U[0],K=this.performAction.call(this,this.yy,this,z,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),K)return K;if(this._backtrack){for(var _ in D)this[_]=D[_];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var U,z,K,v;this._more||(this.yytext="",this.match="");for(var D=this._currentRules(),_=0;_<D.length;_++)if(K=this._input.match(this.rules[D[_]]),K&&(!z||K[0].length>z[0].length)){if(z=K,v=_,this.options.backtrack_lexer){if(U=this.test_match(K,D[_]),U!==!1)return U;if(this._backtrack){z=!1;continue}else return!1}else if(!this.options.flex)break}return z?(U=this.test_match(z,D[v]),U!==!1?U:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var z=this.next();return z||this.lex()},begin:function(z){this.conditionStack.push(z)},popState:function(){var z=this.conditionStack.length-1;return z>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(z){return z=this.conditionStack.length-1-Math.abs(z||0),z>=0?this.conditionStack[z]:"INITIAL"},pushState:function(z){this.begin(z)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(z,K,v,D){var _=D;switch(v){case 0:break;case 1:return this.begin("optarg"),26;break;case 2:return this.popState(),27;break;case 3:return 23;case 4:return 24;case 5:return 25;case 6:return 28;case 7:return 22;case 8:return 13;case 9:return 14;case 10:return 12;case 11:return 10;case 12:return 19;case 13:return 21;case 14:return 34;case 15:return 33;case 16:return 37;case 17:return 38;case 18:return 32;case 19:return 32;case 20:return 32;case 21:return 35;case 22:return 35;case 23:return 36;case 24:return 32;case 25:return 5}},rules:[/^(?:\s+)/,/^(?:(\\sqrt)\s*\[)/,/^(?:\])/,/^(?:(\\operatorname))/,/^(?:(\\mathrm))/,/^(?:(\\text))/,/^(?:(\\sqrt))/,/^(?:(\\frac))/,/^(?:'+\^)/,/^(?:'+)/,/^(?:\^)/,/^(?:[_])/,/^(?:(\\left))/,/^(?:(\\right))/,/^(?:(\\langle|\\rangle|\\vert|\\Vert))/,/^(?:\[|\]|\\\{|\\\}|\(|\)|\||\\\|)/,/^(?:\{)/,/^(?:\})/,/^(?:\\(infty))/,/^(?:\\(int))/,/^(?:!)/,/^(?:\\(alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|omicron|pi|rho|sigma|tau|xi|upsilon|phi|chi|psi|omega))/,/^(?:\\(Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|Mu|Nu|Omicron|Pi|Rho|Sigma|Tau|Xi|Upsilon|Phi|Chi|Psi|Omega))/,/^(?:\\[A-Za-z]+)/,/^(?:\\.|.)/,/^(?:$)/],conditions:{optarg:{rules:[0,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],inclusive:!0},INITIAL:{rules:[0,1,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25],inclusive:!0}}};return J}();O.lexer=R;function q(){this.yy={}}return q.prototype=O,O.Parser=q,new q}();typeof Cm!="undefined"&&typeof r!="undefined"&&(r.parser=t,r.Parser=t.Parser,r.parse=function(){return t.parse.apply(t,arguments)},r.main=function(){},typeof e!="undefined"&&Cm.main===e&&r.main(process.argv.slice(1)))}}),w5=jM({"generated/nemeth-to-latex.jison.js"(r,e){"use strict";var t=function(){var i=function(tt,Re,Qe,Je){for(Qe=Qe||{},Je=tt.length;Je--;Qe[tt[Je]]=Re);return Qe},o=[1,11],n=[1,12],a=[1,13],s=[1,71],l=[1,72],c=[1,70],d=[1,38],u=[1,39],h=[1,60],g=[1,61],b=[1,62],C=[1,63],S=[1,64],k=[1,65],I=[1,66],M=[1,67],E=[1,68],A=[1,69],V=[1,40],G=[1,34],P=[1,35],O=[1,36],R=[1,37],q=[1,41],J=[1,42],U=[1,43],z=[1,44],K=[1,45],v=[1,46],D=[1,47],_=[1,48],te=[1,49],Q=[1,50],De=[1,51],se=[1,52],re=[1,53],j=[1,54],X=[1,17],fe=[1,55],be=[1,56],Me=[1,57],Be=[1,58],Xe=[1,59],_t=[5,12,13,14,18,24,25],je=[5,11,12,13,14,15,17,18,20,21,23,24,25,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,83],Kr=[1,76],Dt=[5,11,12,13,14,15,17,18,20,21,23,24,25,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,78,79,80,81,83],xe=[5,11,12,13,14,15,17,18,20,21,23,24,25,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],Io={trace:function(){},yy:{},symbols_:{error:2,sentence:3,group:4,EOF:5,element:6,index_element:7,modified_expression:8,radical:9,primes:10,OPEN_MODEXP:11,MODEXP_UNDER:12,MODEXP_OVER:13,CLOSE_MODEXP:14,RADICAL_INDEX:15,index_group:16,OPEN_RADICAL:17,CLOSE_RADICAL:18,level:19,LEVEL:20,BASELINE:21,frac:22,OPEN_FRAC:23,SLASH:24,CLOSE_FRAC:25,subscript_head:26,number:27,atom:28,command:29,greek:30,letter:31,comma:32,period:33,space:34,operation:35,comparison:36,level_with_comparison:37,ellipsis:38,colon:39,infinity:40,integral:41,factorial:42,ampersand:43,question_mark:44,bracket:45,",":46,".":47,"[":48,"{":49,"(":50,"]":51,"}":52,")":53,LANGLE:54,RANGLE:55,PIPE:56,DOUBLE_PIPE:57,SPACE:58,COMMAND:59,GREEK:60,LETTER:61,CAPITAL_LETTER:62,"+":63,"-":64,CDOT:65,TIMES:66,"*":67,"/":68,DIV:69,PERCENT_OF:70,PERCENT:71,TO:72,COMPARISON:73,LEVEL_WITH_COMPARISON:74,ELLIPSIS:75,COLON:76,NUMBER:77,INFINITY:78,INTEGRAL:79,FACTORIAL:80,"&":81,PRIMES:82,"?":83,unknown:84,UNKNOWN:85,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",11:"OPEN_MODEXP",12:"MODEXP_UNDER",13:"MODEXP_OVER",14:"CLOSE_MODEXP",15:"RADICAL_INDEX",17:"OPEN_RADICAL",18:"CLOSE_RADICAL",20:"LEVEL",21:"BASELINE",23:"OPEN_FRAC",24:"SLASH",25:"CLOSE_FRAC",46:",",47:".",48:"[",49:"{",50:"(",51:"]",52:"}",53:")",54:"LANGLE",55:"RANGLE",56:"PIPE",57:"DOUBLE_PIPE",58:"SPACE",59:"COMMAND",60:"GREEK",61:"LETTER",62:"CAPITAL_LETTER",63:"+",64:"-",65:"CDOT",66:"TIMES",67:"*",68:"/",69:"DIV",70:"PERCENT_OF",71:"PERCENT",72:"TO",73:"COMPARISON",74:"LEVEL_WITH_COMPARISON",75:"ELLIPSIS",76:"COLON",77:"NUMBER",78:"INFINITY",79:"INTEGRAL",80:"FACTORIAL",81:"&",82:"PRIMES",83:"?",85:"UNKNOWN"},productions_:[0,[3,2],[3,1],[4,2],[4,1],[6,1],[6,1],[6,2],[6,1],[8,7],[8,6],[8,5],[8,6],[8,5],[8,5],[8,4],[8,4],[8,3],[8,4],[8,4],[8,4],[8,4],[8,3],[8,3],[8,2],[9,5],[9,4],[9,4],[9,3],[9,3],[9,2],[19,1],[19,1],[22,5],[22,4],[22,4],[22,3],[16,2],[16,1],[7,3],[7,2],[7,2],[7,3],[7,2],[7,2],[7,1],[7,1],[7,1],[26,1],[26,1],[26,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[28,1],[32,1],[33,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[45,1],[34,1],[29,1],[30,1],[31,1],[31,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[35,1],[36,1],[37,1],[38,1],[39,1],[27,1],[40,1],[41,1],[42,1],[43,1],[10,1],[44,1],[84,1]],performAction:function(Re,Qe,Je,le,Ft,we,Yr){var he=we.length-1;switch(Ft){case 1:return we[he-1];case 2:return le.group();case 3:case 37:case 41:case 43:case 44:this.$=le.group(we[he-1],we[he]);break;case 4:case 38:this.$=le.group(we[he]);break;case 7:this.$=le.group(we[he-1],we[he]);break;case 9:this.$=le.modified_expression(we[he-5],we[he-3],we[he-1]);break;case 10:this.$=le.modified_expression(we[he-4],we[he-2]);break;case 11:this.$=le.modified_expression(we[he-3],we[he-1]);break;case 12:this.$=le.modified_expression(we[he-4],le.group(),we[he-1]);break;case 13:this.$=le.modified_expression(we[he-3],le.group(),we[he-1]);break;case 14:this.$=le.modified_expression(we[he-3],le.group(),le.group());break;case 15:case 16:this.$=le.modified_expression(we[he-2],le.group());break;case 17:this.$=le.modified_expression(we[he-1]);break;case 18:case 19:case 22:case 23:case 24:this.$=le.modified_expression(le.group());break;case 20:case 21:le.warnOrError("Multi-level modified expressions are not supported."),this.$=le.modified_expression(le.group());break;case 25:this.$=le.radical(we[he-1],we[he-3]);break;case 26:this.$=le.radical(we[he-1],le.group());break;case 27:this.$=le.radical(le.group(),we[he-2]);break;case 28:this.$=le.radical(le.group(),le.group());break;case 29:this.$=le.radical(we[he-1]);break;case 30:this.$=le.radical(le.group());break;case 31:this.$=le.level(we[he]);break;case 32:this.$=le.baseline();break;case 33:this.$=le.fraction(we[he-3],we[he-1]);break;case 34:this.$=le.fraction(we[he-2],le.group());break;case 35:this.$=le.fraction(le.group(),we[he-1]);break;case 36:this.$=le.fraction(le.group(),le.group());break;case 39:this.$=le.group(le.simple_subscript(we[he-2],we[he]),we[he-1]);break;case 40:this.$=le.simple_subscript(we[he-1],we[he]);break;case 42:le.warnOrError("Illegal use of Nemeth primes"),this.$=le.group(le.simple_subscript(we[he-2],we[he-1]),we[he]);break;case 67:this.$=le.terminal(",");break;case 68:this.$=le.terminal(".");break;case 69:this.$=le.terminal("[");break;case 70:this.$=le.terminal("\\{");break;case 71:this.$=le.terminal("(");break;case 72:this.$=le.terminal("]");break;case 73:this.$=le.terminal("\\}");break;case 74:this.$=le.terminal(")");break;case 75:this.$=le.terminal("\\langle ");break;case 76:this.$=le.terminal("\\rangle ");break;case 77:this.$=le.terminal("|");break;case 78:this.$=le.terminal("\\|");break;case 79:this.$=le.terminal(" ");break;case 80:this.$=le.command(we[he].toLowerCase());break;case 81:this.$=le.terminal(le.greek(we[he]));break;case 82:this.$=le.terminal(we[he].toLowerCase());break;case 83:this.$=le.terminal(we[he].toUpperCase());break;case 84:this.$=le.terminal("+");break;case 85:this.$=le.terminal("-");break;case 86:this.$=le.terminal("\\cdot ");break;case 87:this.$=le.terminal("\\times ");break;case 88:this.$=le.terminal("*");break;case 89:this.$=le.terminal("/");break;case 90:this.$=le.terminal("\\div ");break;case 91:this.$=le.terminal("\\%\\operatorname{of}");break;case 92:this.$=le.terminal("\\%");break;case 93:this.$=le.terminal("\\to ");break;case 94:this.$=le.comparison(we[he].trim());break;case 95:this.$=le.level_with_comparison(we[he].trim());break;case 96:this.$=le.terminal("\\ldots ");break;case 97:this.$=le.terminal(":");break;case 98:this.$=le.terminal(we[he]);break;case 99:this.$=le.terminal("\\infty ");break;case 100:this.$=le.terminal("\\int ");break;case 101:this.$=le.terminal("!");break;case 102:this.$=le.terminal("\\&");break;case 103:this.$=le.primes(we[he]);break;case 104:this.$=le.terminal("?");break}},table:[{3:1,4:2,5:[1,3],6:4,7:5,8:6,9:7,11:o,15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{1:[3]},{5:[1,73]},{1:[2,2]},i(_t,[2,4],{6:4,7:5,8:6,9:7,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,22:32,19:33,4:74,11:o,15:n,17:a,20:s,21:l,23:c,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe}),i(je,[2,5]),i(je,[2,6]),i(je,[2,8],{10:75,82:Kr}),i(Dt,[2,45],{10:77,27:78,77:X,82:Kr}),i(je,[2,46],{10:79,82:Kr}),i(je,[2,47],{10:80,82:Kr}),{4:81,6:4,7:5,8:6,9:7,11:o,12:[1,83],13:[1,82],14:[1,84],15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{7:87,16:85,17:[1,86],19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{4:88,6:4,7:5,8:6,9:7,11:o,15:n,17:a,18:[1,89],19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(xe,[2,48]),i(xe,[2,49]),i(xe,[2,50]),i(xe,[2,98]),i(xe,[2,51]),i(xe,[2,52]),i(xe,[2,53]),i(xe,[2,54]),i(xe,[2,55]),i(xe,[2,56]),i(xe,[2,57]),i(xe,[2,58]),i(xe,[2,59]),i(xe,[2,60]),i(xe,[2,61]),i(xe,[2,62]),i(xe,[2,63]),i(xe,[2,64]),i(xe,[2,65]),i(xe,[2,66]),i(xe,[2,80]),i(xe,[2,81]),i(xe,[2,82]),i(xe,[2,83]),i(xe,[2,67]),i(xe,[2,68]),i(xe,[2,79]),i(xe,[2,84]),i(xe,[2,85]),i(xe,[2,86]),i(xe,[2,87]),i(xe,[2,88]),i(xe,[2,89]),i(xe,[2,90]),i(xe,[2,91]),i(xe,[2,92]),i(xe,[2,93]),i(xe,[2,94]),i(xe,[2,95]),i(xe,[2,96]),i(xe,[2,97]),i(xe,[2,99]),i(xe,[2,100]),i(xe,[2,101]),i(xe,[2,102]),i(xe,[2,104]),i(xe,[2,69]),i(xe,[2,70]),i(xe,[2,71]),i(xe,[2,72]),i(xe,[2,73]),i(xe,[2,74]),i(xe,[2,75]),i(xe,[2,76]),i(xe,[2,77]),i(xe,[2,78]),{4:90,6:4,7:5,8:6,9:7,11:o,15:n,17:a,19:33,20:s,21:l,22:32,23:c,24:[1,91],26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(xe,[2,31]),i(xe,[2,32]),{1:[2,1]},i(_t,[2,3]),i(je,[2,7]),i(je,[2,103]),i(Dt,[2,41],{27:92,77:X}),i(je,[2,40],{10:93,82:Kr}),i(je,[2,43]),i(je,[2,44]),{12:[1,94],13:[1,95],14:[1,96]},{12:[1,97],13:[1,98],14:[1,99]},{12:[1,101],13:[1,100],14:[1,102]},i(je,[2,24]),{17:[1,103]},{4:104,6:4,7:5,8:6,9:7,11:o,15:n,17:a,18:[1,105],19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{7:87,16:106,17:[2,38],19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{18:[1,107]},i(xe,[2,30]),{24:[1,108]},{4:109,6:4,7:5,8:6,9:7,11:o,15:n,17:a,19:33,20:s,21:l,22:32,23:c,25:[1,110],26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(je,[2,39]),i(je,[2,42]),{4:111,6:4,7:5,8:6,9:7,11:o,13:[1,112],14:[1,113],15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{4:114,6:4,7:5,8:6,9:7,11:o,14:[1,115],15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(je,[2,17]),{14:[1,116]},{14:[1,117]},i(je,[2,22]),{14:[1,118]},{14:[1,119]},i(je,[2,23]),{4:120,6:4,7:5,8:6,9:7,11:o,15:n,17:a,18:[1,121],19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{18:[1,122]},i(xe,[2,28]),{17:[2,37]},i(xe,[2,29]),{4:123,6:4,7:5,8:6,9:7,11:o,15:n,17:a,19:33,20:s,21:l,22:32,23:c,25:[1,124],26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},{25:[1,125]},i(xe,[2,36]),{13:[1,126],14:[1,127]},{4:128,6:4,7:5,8:6,9:7,11:o,14:[1,129],15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(je,[2,16]),{14:[1,130]},i(je,[2,15]),i(je,[2,18]),i(je,[2,20]),i(je,[2,19]),i(je,[2,21]),{18:[1,131]},i(xe,[2,27]),i(xe,[2,26]),{25:[1,132]},i(xe,[2,34]),i(xe,[2,35]),{4:133,6:4,7:5,8:6,9:7,11:o,14:[1,134],15:n,17:a,19:33,20:s,21:l,22:32,23:c,26:8,27:9,28:10,29:14,30:15,31:16,32:18,33:19,34:20,35:21,36:22,37:23,38:24,39:25,40:26,41:27,42:28,43:29,44:30,45:31,46:d,47:u,48:h,49:g,50:b,51:C,52:S,53:k,54:I,55:M,56:E,57:A,58:V,59:G,60:P,61:O,62:R,63:q,64:J,65:U,66:z,67:K,68:v,69:D,70:_,71:te,72:Q,73:De,74:se,75:re,76:j,77:X,78:fe,79:be,80:Me,81:Be,83:Xe},i(je,[2,11]),{14:[1,135]},i(je,[2,14]),i(je,[2,13]),i(xe,[2,25]),i(xe,[2,33]),{14:[1,136]},i(je,[2,10]),i(je,[2,12]),i(je,[2,9])],defaultActions:{3:[2,2],73:[2,1],106:[2,37]},parseError:function(Re,Qe){if(Qe.recoverable)this.trace(Re);else{var Je=new Error(Re);throw Je.hash=Qe,Je}},parse:function(Re){var Qe=this,Je=[0],le=[],Ft=[null],we=[],Yr=this.table,he="",Ue=0,at=0,de=0,nr=2,qe=1,Cc=we.slice.call(arguments,1),nt=Object.create(this.lexer),Un={yy:{}};for(var Sc in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Sc)&&(Un.yy[Sc]=this.yy[Sc]);nt.setInput(Re,Un.yy),Un.yy.lexer=nt,Un.yy.parser=this,typeof nt.yylloc=="undefined"&&(nt.yylloc={});var si=nt.yylloc;we.push(si);var Bi=nt.options&&nt.options.ranges;typeof Un.yy.parseError=="function"?this.parseError=Un.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Xo(kn){Je.length=Je.length-2*kn,Ft.length=Ft.length-kn,we.length=we.length-kn}for(var Ec=function(){var kn;return kn=nt.lex()||qe,typeof kn!="number"&&(kn=Qe.symbols_[kn]||kn),kn},xt,bi,Dn,Ar,kf,Cd,Aa={},jr,li,ts,Jr;;){if(Dn=Je[Je.length-1],this.defaultActions[Dn]?Ar=this.defaultActions[Dn]:((xt===null||typeof xt=="undefined")&&(xt=Ec()),Ar=Yr[Dn]&&Yr[Dn][xt]),typeof Ar=="undefined"||!Ar.length||!Ar[0]){var Sd="";Jr=[];for(jr in Yr[Dn])this.terminals_[jr]&&jr>nr&&Jr.push("'"+this.terminals_[jr]+"'");nt.showPosition?Sd="Parse error on line "+(Ue+1)+`:
`+nt.showPosition()+`
Expecting `+Jr.join(", ")+", got '"+(this.terminals_[xt]||xt)+"'":Sd="Parse error on line "+(Ue+1)+": Unexpected "+(xt==qe?"end of input":"'"+(this.terminals_[xt]||xt)+"'"),this.parseError(Sd,{text:nt.match,token:this.terminals_[xt]||xt,line:nt.yylineno,loc:si,expected:Jr})}if(Ar[0]instanceof Array&&Ar.length>1)throw new Error("Parse Error: multiple actions possible at state: "+Dn+", token: "+xt);switch(Ar[0]){case 1:Je.push(xt),Ft.push(nt.yytext),we.push(nt.yylloc),Je.push(Ar[1]),xt=null,bi?(xt=bi,bi=null):(at=nt.yyleng,he=nt.yytext,Ue=nt.yylineno,si=nt.yylloc,de>0&&de--);break;case 2:if(li=this.productions_[Ar[1]][1],Aa.$=Ft[Ft.length-li],Aa._$={first_line:we[we.length-(li||1)].first_line,last_line:we[we.length-1].last_line,first_column:we[we.length-(li||1)].first_column,last_column:we[we.length-1].last_column},Bi&&(Aa._$.range=[we[we.length-(li||1)].range[0],we[we.length-1].range[1]]),Cd=this.performAction.apply(Aa,[he,at,Ue,Un.yy,Ar[1],Ft,we].concat(Cc)),typeof Cd!="undefined")return Cd;li&&(Je=Je.slice(0,-1*li*2),Ft=Ft.slice(0,-1*li),we=we.slice(0,-1*li)),Je.push(this.productions_[Ar[1]][0]),Ft.push(Aa.$),we.push(Aa._$),ts=Yr[Je[Je.length-2]][Je[Je.length-1]],Je.push(ts);break;case 3:return!0}}return!0}},Zi=function(){var tt={EOF:1,parseError:function(Qe,Je){if(this.yy.parser)this.yy.parser.parseError(Qe,Je);else throw new Error(Qe)},setInput:function(Re,Qe){return this.yy=Qe||this.yy||{},this._input=Re,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var Re=this._input[0];this.yytext+=Re,this.yyleng++,this.offset++,this.match+=Re,this.matched+=Re;var Qe=Re.match(/(?:\r\n?|\n).*/g);return Qe?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),Re},unput:function(Re){var Qe=Re.length,Je=Re.split(/(?:\r\n?|\n)/g);this._input=Re+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Qe),this.offset-=Qe;var le=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),Je.length-1&&(this.yylineno-=Je.length-1);var Ft=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:Je?(Je.length===le.length?this.yylloc.first_column:0)+le[le.length-Je.length].length-Je[0].length:this.yylloc.first_column-Qe},this.options.ranges&&(this.yylloc.range=[Ft[0],Ft[0]+this.yyleng-Qe]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(Re){this.unput(this.match.slice(Re))},pastInput:function(){var Re=this.matched.substr(0,this.matched.length-this.match.length);return(Re.length>20?"...":"")+Re.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var Re=this.match;return Re.length<20&&(Re+=this._input.substr(0,20-Re.length)),(Re.substr(0,20)+(Re.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var Re=this.pastInput(),Qe=new Array(Re.length+1).join("-");return Re+this.upcomingInput()+`
`+Qe+"^"},test_match:function(Re,Qe){var Je,le,Ft;if(this.options.backtrack_lexer&&(Ft={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(Ft.yylloc.range=this.yylloc.range.slice(0))),le=Re[0].match(/(?:\r\n?|\n).*/g),le&&(this.yylineno+=le.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:le?le[le.length-1].length-le[le.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+Re[0].length},this.yytext+=Re[0],this.match+=Re[0],this.matches=Re,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(Re[0].length),this.matched+=Re[0],Je=this.performAction.call(this,this.yy,this,Qe,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),Je)return Je;if(this._backtrack){for(var we in Ft)this[we]=Ft[we];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var Re,Qe,Je,le;this._more||(this.yytext="",this.match="");for(var Ft=this._currentRules(),we=0;we<Ft.length;we++)if(Je=this._input.match(this.rules[Ft[we]]),Je&&(!Qe||Je[0].length>Qe[0].length)){if(Qe=Je,le=we,this.options.backtrack_lexer){if(Re=this.test_match(Je,Ft[we]),Re!==!1)return Re;if(this._backtrack){Qe=!1;continue}else return!1}else if(!this.options.flex)break}return Qe?(Re=this.test_match(Qe,Ft[le]),Re!==!1?Re:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Qe=this.next();return Qe||this.lex()},begin:function(Qe){this.conditionStack.push(Qe)},popState:function(){var Qe=this.conditionStack.length-1;return Qe>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Qe){return Qe=this.conditionStack.length-1-Math.abs(Qe||0),Qe>=0?this.conditionStack[Qe]:"INITIAL"},pushState:function(Qe){this.begin(Qe)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Qe,Je,le,Ft){var we=Ft;switch(le){case 0:return this.begin("modexp"),11;break;case 1:return 21;case 2:return this.begin("modexp"),11;break;case 3:return 12;case 4:return 13;case 5:return this.popState(),14;break;case 6:return 63;case 7:return 64;case 8:return 65;case 9:return 66;case 10:return 67;case 11:return 68;case 12:return 69;case 13:return 54;case 14:return 48;case 15:return 49;case 16:return 50;case 17:return 55;case 18:return 51;case 19:return 52;case 20:return 53;case 21:return 57;case 22:return 56;case 23:return 76;case 24:return 70;case 25:return 71;case 26:return 72;case 27:return 74;case 28:return 74;case 29:return 74;case 30:return 74;case 31:return 74;case 32:return 74;case 33:return 74;case 34:return 74;case 35:return 74;case 36:return 73;case 37:return 74;case 38:return 74;case 39:return 73;case 40:return 73;case 41:return 73;case 42:return 73;case 43:return 73;case 44:return 73;case 45:return 73;case 46:return 73;case 47:return 73;case 48:return 73;case 49:return 75;case 50:return 20;case 51:return 47;case 52:return 21;case 53:return 82;case 54:return 60;case 55:return 15;case 56:return this.begin("radical"),17;break;case 57:return this.popState(),18;break;case 58:return 18;case 59:return 79;case 60:return 81;case 61:return 80;case 62:return 59;case 63:return 59;case 64:return Je.yytext=this.matches[1],77;break;case 65:return 23;case 66:return 24;case 67:return 25;case 68:return Je.yytext=this.matches[1],62;break;case 69:return 61;case 70:return 78;case 71:return 83;case 72:return 46;case 73:return 47;case 74:return 58;case 75:return 5;case 76:return 85}},rules:[/^(?:"(?=[^>\]]+%))/,/^(?:")/,/^(?:"(?=[^>\]]+\]|[^>\]]+%))/,/^(?:%)/,/^(?:<)/,/^(?:\])/,/^(?:[+])/,/^(?:[-])/,/^(?:[*])/,/^(?:[@][*])/,/^(?:[@][\#])/,/^(?:[_][/])/,/^(?:[.][/])/,/^(?:[.][.][(])/,/^(?:[@][(])/,/^(?:[.][(])/,/^(?:[(])/,/^(?:[.][.][)])/,/^(?:[@][)])/,/^(?:[.][)])/,/^(?:[)])/,/^(?:[\\][\\])/,/^(?:[\\])/,/^(?:[_][3])/,/^(?:[@][0][O][F][ ]?)/,/^(?:[@][0])/,/^(?:[ ][$]O[ ])/,/^(?:[ ][\^;]+[.]K[ ])/,/^(?:[\^;]+[=])/,/^(?:[ ][\^;]+[/][.]K[ ])/,/^(?:[ ][\^;]+[@][:][@][:][ ])/,/^(?:[ ][\^;]+["]K[:][ ])/,/^(?:[ ][\^;]+[.]1[:][ ])/,/^(?:[ ][\^;]+["]K[ ])/,/^(?:[ ][\^;]+[.]1[ ])/,/^(?:[ ][\^;]+[/][$][L][ ])/,/^(?:[ ][.]K[ ])/,/^(?:[ ][\^;]+[/]?[$][L][ ])/,/^(?:[ ][\^;]+[$]P[ ])/,/^(?:[=])/,/^(?:[ ][/][.]K[ ])/,/^(?:[ ][@][:][@][:][ ])/,/^(?:[ ]["]K[:][ ])/,/^(?:[ ][.]1[:][ ])/,/^(?:[ ]["]K[ ])/,/^(?:[ ][.]1[ ])/,/^(?:[@][:])/,/^(?:[ ][/]?[$][L][ ])/,/^(?:[ ][$]P[ ])/,/^(?:[ ]['][']['][ ])/,/^(?:[\^;]+)/,/^(?:[.]["])/,/^(?:["])/,/^(?:[']+)/,/^(?:[.][,]?[ABGDEZ\?\:IKLMNXOPRSTUYF\&W])/,/^(?:[.]*[<])/,/^(?:[.]*[>])/,/^(?:[.]*\])/,/^(?:[.]*\])/,/^(?:!)/,/^(?:[_]&)/,/^(?:&)/,/^(?:(ARC)?(SIN|COS|TAN|CSC|SEC|COT)(H)?)/,/^(?:(ARG|DET|EXP|IM|INF|LIM|LN|LOG|MAX|MIN|MOD|RE|SUP))/,/^(?:#?(\d*\.?\d+))/,/^(?:[,]*[?])/,/^(?:[,]*[/])/,/^(?:[,]*#)/,/^(?:[,]([A-Z]))/,/^(?:[A-Z])/,/^(?:[,][=])/,/^(?:[_][8])/,/^(?:[,][ ]?)/,/^(?:[.])/,/^(?:[ ])/,/^(?:$)/,/^(?:.)/],conditions:{radical:{rules:[0,1,2,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],inclusive:!0},modexp:{rules:[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,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76],inclusive:!0},INITIAL:{rules:[2,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,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76],inclusive:!0}}};return tt}();Io.lexer=Zi;function Se(){this.yy={}}return Se.prototype=Io,Io.Parser=Se,new Se}();typeof Cm!="undefined"&&typeof r!="undefined"&&(r.parser=t,r.Parser=t.Parser,r.parse=function(){return t.parse.apply(t,arguments)},r.main=function(){},typeof e!="undefined"&&Cm.main===e&&r.main(process.argv.slice(1)))}}),v5=jM({"generated/ueb-to-latex.jison.js"(r,e){"use strict";var t=function(){var i=function(Yr,he,Ue,at){for(Ue=Ue||{},at=Yr.length;at--;Ue[Yr[at]]=he);return Ue},o=[1,15],n=[1,16],a=[1,17],s=[1,36],l=[1,18],c=[1,37],d=[1,38],u=[1,14],h=[1,46],g=[1,47],b=[1,39],C=[1,40],S=[1,41],k=[1,56],I=[1,42],M=[1,43],E=[1,44],A=[1,45],V=[1,54],G=[1,55],P=[1,57],O=[1,58],R=[1,59],q=[1,60],J=[1,61],U=[1,62],z=[1,63],K=[1,64],v=[1,65],D=[1,66],_=[1,67],te=[1,68],Q=[1,69],De=[1,70],se=[1,71],re=[1,72],j=[1,73],X=[1,74],fe=[1,75],be=[1,76],Me=[1,77],Be=[1,48],Xe=[1,49],_t=[1,50],je=[1,51],Kr=[1,52],Dt=[1,78],xe=[1,53],Io=[5,14,18,19,29,52,53,54],Zi=[5,10,13,14,15,18,19,29,52,53,54],Se=[5,10,13,14,15,17,18,19,21,23,24,28,29,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],tt=[1,86],Re=[1,87],Qe=[1,88],Je=[10,13,15,17,21,23,24,28,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],le={trace:function(){},yy:{},symbols_:{error:2,sentence:3,group:4,EOF:5,expression_group:6,delimited_expression:7,level:8,radical:9,LEVEL:10,basic_token:11,bracketed_expression:12,RADICAL_WITH_INDEX:13,CLOSE_RADICAL:14,RADICAL:15,frac:16,OPEN_FRAC:17,OVER:18,CLOSE_FRAC:19,simple_frac:20,NUMBER:21,NUMBER_FRAC_DENOMINATOR:22,NUMBER_FRAC_NUMERATOR_BAD:23,NUMBER_FRAC_DENOMINATOR_BAD:24,atom:25,lbracket:26,rbracket:27,OPEN_GROUP:28,CLOSE_GROUP:29,command:30,greek:31,letter:32,comma:33,period:34,colon:35,infinity:36,integral:37,factorial:38,ampersand:39,question_mark:40,bracket:41,space:42,operation:43,comparison:44,ellipsis:45,primes:46,",":47,".":48,"[":49,"{":50,"(":51,"]":52,"}":53,")":54,SPACE:55,COMMAND:56,GREEK:57,CAPITAL_LETTER:58,LETTER:59,PIPE:60,DOUBLE_PIPE:61,"+":62,"-":63,CDOT:64,TIMES:65,"*":66,DIV:67,SLASH:68,PERCENT_OF:69,PERCENT:70,TO:71,"=":72,NEQ:73,"<":74,">":75,LEQ:76,APPROX:77,GEQ:78,TILDE:79,PARALLEL:80,PERPENDICULAR:81,ELLIPSIS:82,COLON:83,INFINITY:84,INTEGRAL:85,FACTORIAL:86,"&":87,PRIMES:88,"?":89,unknown:90,UNKNOWN:91,$accept:0,$end:1},terminals_:{2:"error",5:"EOF",10:"LEVEL",13:"RADICAL_WITH_INDEX",14:"CLOSE_RADICAL",15:"RADICAL",17:"OPEN_FRAC",18:"OVER",19:"CLOSE_FRAC",21:"NUMBER",22:"NUMBER_FRAC_DENOMINATOR",23:"NUMBER_FRAC_NUMERATOR_BAD",24:"NUMBER_FRAC_DENOMINATOR_BAD",28:"OPEN_GROUP",29:"CLOSE_GROUP",47:",",48:".",49:"[",50:"{",51:"(",52:"]",53:"}",54:")",55:"SPACE",56:"COMMAND",57:"GREEK",58:"CAPITAL_LETTER",59:"LETTER",60:"PIPE",61:"DOUBLE_PIPE",62:"+",63:"-",64:"CDOT",65:"TIMES",66:"*",67:"DIV",68:"SLASH",69:"PERCENT_OF",70:"PERCENT",71:"TO",72:"=",73:"NEQ",74:"<",75:">",76:"LEQ",77:"APPROX",78:"GEQ",79:"TILDE",80:"PARALLEL",81:"PERPENDICULAR",82:"ELLIPSIS",83:"COLON",84:"INFINITY",85:"INTEGRAL",86:"FACTORIAL",87:"&",88:"PRIMES",89:"?",91:"UNKNOWN"},productions_:[0,[3,2],[3,1],[4,3],[4,2],[4,1],[4,2],[4,1],[7,1],[7,1],[8,2],[8,2],[8,2],[9,4],[9,3],[9,3],[9,2],[9,4],[9,3],[9,2],[16,5],[16,4],[16,4],[16,3],[16,2],[20,2],[20,1],[20,1],[11,1],[11,1],[11,1],[6,2],[6,2],[6,1],[6,1],[12,3],[12,2],[12,3],[12,2],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[25,1],[33,1],[34,1],[26,1],[26,1],[26,1],[27,1],[27,1],[27,1],[42,1],[30,1],[31,1],[32,1],[32,1],[41,1],[41,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[43,1],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[44,1],[45,1],[35,1],[36,1],[37,1],[38,1],[39,1],[46,1],[40,1],[90,1]],performAction:function(he,Ue,at,de,nr,qe,Cc){var nt=qe.length-1;switch(nr){case 1:return qe[nt-1];case 2:return de.group();case 3:case 35:this.$=de.group(qe[nt-2],qe[nt-1],qe[nt]);break;case 4:case 6:case 31:case 32:case 36:this.$=de.group(qe[nt-1],qe[nt]);break;case 5:case 7:case 33:case 34:this.$=de.group(qe[nt]);break;case 10:case 11:case 12:this.$=de.basic_level(qe[nt-1],de.group(qe[nt]));break;case 13:case 17:this.$=de.radical(qe[nt-1],de.group(qe[nt-2]));break;case 14:case 15:this.$=de.radical(de.group(),de.group(qe[nt-1]));break;case 16:this.$=de.radical(de.group(),de.group());break;case 18:this.$=de.radical(qe[nt-1]);break;case 19:this.$=de.radical(de.group());break;case 20:this.$=de.fraction(qe[nt-3],qe[nt-1]);break;case 21:this.$=de.fraction(qe[nt-2],de.group());break;case 22:this.$=de.fraction(de.group(),qe[nt-1]);break;case 23:case 24:this.$=de.fraction(de.group(),de.group());break;case 25:this.$=de.fraction(de.group(de.terminal(de.to_number(qe[nt-1]))),de.group(de.terminal(de.to_number(qe[nt]))));break;case 26:this.$=de.fraction(de.group(de.terminal(de.to_number(qe[nt]))),de.group());break;case 27:this.$=de.fraction(de.group(),de.group(de.terminal(de.to_number(qe[$01]))));break;case 37:this.$=de.group(qe[nt-1]);break;case 38:this.$=de.group();break;case 39:this.$=de.terminal(de.to_number(qe[nt]));break;case 57:this.$=de.terminal(",");break;case 58:this.$=de.terminal(".");break;case 59:this.$=de.terminal("[");break;case 60:this.$=de.terminal("\\{");break;case 61:this.$=de.terminal("(");break;case 62:this.$=de.terminal("]");break;case 63:this.$=de.terminal("\\}");break;case 64:this.$=de.terminal(")");break;case 65:this.$=de.terminal(" ");break;case 66:this.$=de.command("\\"+qe[nt].trim().toLowerCase());break;case 67:this.$=de.terminal(de.greek(qe[nt]));break;case 68:this.$=de.terminal(qe[nt].toUpperCase());break;case 69:this.$=de.terminal(qe[nt].toLowerCase());break;case 70:this.$=de.terminal("|");break;case 71:this.$=de.terminal("\\|");break;case 72:this.$=de.terminal("+");break;case 73:this.$=de.terminal("-");break;case 74:this.$=de.terminal("\\cdot ");break;case 75:this.$=de.terminal("\\times ");break;case 76:this.$=de.terminal("*");break;case 77:this.$=de.terminal("\\div ");break;case 78:this.$=de.terminal("/");break;case 79:this.$=de.terminal("\\%\\operatorname{of}");break;case 80:this.$=de.terminal("\\%");break;case 81:this.$=de.terminal("\\to ");break;case 82:this.$=de.terminal("=");break;case 83:this.$=de.terminal("\\neq ");break;case 84:this.$=de.terminal("<");break;case 85:this.$=de.terminal(">");break;case 86:this.$=de.terminal("\\leq ");break;case 87:this.$=de.terminal("\\approx ");break;case 88:this.$=de.terminal("\\geq ");break;case 89:this.$=de.terminal("\\sim ");break;case 90:this.$=de.terminal("\\parallel ");break;case 91:this.$=de.terminal("\\perp ");break;case 92:this.$=de.terminal("\\ldots ");break;case 93:this.$=de.terminal(":");break;case 94:this.$=de.terminal("\\infty ");break;case 95:this.$=de.terminal("\\int ");break;case 96:this.$=de.terminal("!");break;case 97:this.$=de.terminal("\\&");break;case 98:this.$=de.primes(qe[nt]);break;case 99:this.$=de.terminal("?");break}},table:[{3:1,4:2,5:[1,3],6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{1:[3]},{5:[1,79]},{1:[2,2]},i(Io,[2,5],{8:8,9:9,7:80,10:o,13:n,15:a}),i(Io,[2,7],{6:4,7:5,11:6,12:7,8:8,9:9,25:10,16:11,20:12,26:13,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,4:81,10:o,13:n,15:a,17:s,21:l,23:c,24:d,28:u,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe}),i(Zi,[2,33],{11:6,12:7,25:10,16:11,20:12,26:13,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,6:82,17:s,21:l,23:c,24:d,28:u,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe}),i(Zi,[2,34],{11:6,12:7,25:10,16:11,20:12,26:13,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,6:83,17:s,21:l,23:c,24:d,28:u,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe}),i(Se,[2,8]),i(Se,[2,9]),i(Se,[2,28]),i(Se,[2,29]),i(Se,[2,30]),{4:84,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,27:85,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,52:tt,53:Re,54:Qe,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{4:89,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,29:[1,90],30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{9:93,11:91,12:92,13:n,15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{11:94,12:95,14:[1,96],16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{4:97,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,14:[1,98],15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},i(Se,[2,39],{22:[1,99]}),i(Se,[2,40]),i(Se,[2,41]),i(Se,[2,42]),i(Se,[2,43]),i(Se,[2,44]),i(Se,[2,45]),i(Se,[2,46]),i(Se,[2,47]),i(Se,[2,48]),i(Se,[2,49]),i(Se,[2,50]),i(Se,[2,51]),i(Se,[2,52]),i(Se,[2,53]),i(Se,[2,54]),i(Se,[2,55]),i(Se,[2,56]),{4:100,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,18:[1,101],19:[1,102],20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},i(Se,[2,26]),i(Se,[2,27]),i(Je,[2,59]),i(Je,[2,60]),i(Je,[2,61]),i(Se,[2,66]),i(Se,[2,67]),i(Se,[2,68]),i(Se,[2,69]),i(Se,[2,57]),i(Se,[2,58]),i(Se,[2,93]),i(Se,[2,94]),i(Se,[2,95]),i(Se,[2,96]),i(Se,[2,97]),i(Se,[2,99]),i(Se,[2,70]),i(Se,[2,71]),i(Se,[2,65]),i(Se,[2,72]),i(Se,[2,73]),i(Se,[2,74]),i(Se,[2,75]),i(Se,[2,76]),i(Se,[2,77]),i(Se,[2,78]),i(Se,[2,79]),i(Se,[2,80]),i(Se,[2,81]),i(Se,[2,82]),i(Se,[2,83]),i(Se,[2,84]),i(Se,[2,85]),i(Se,[2,86]),i(Se,[2,87]),i(Se,[2,88]),i(Se,[2,89]),i(Se,[2,90]),i(Se,[2,91]),i(Se,[2,92]),i(Se,[2,98]),{1:[2,1]},i(Io,[2,4],{6:4,7:5,11:6,12:7,8:8,9:9,25:10,16:11,20:12,26:13,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,4:103,10:o,13:n,15:a,17:s,21:l,23:c,24:d,28:u,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe}),i(Io,[2,6]),i(Zi,[2,31]),i(Zi,[2,32]),{27:104,52:tt,53:Re,54:Qe},i(Se,[2,36]),i(Se,[2,62]),i(Se,[2,63]),i(Se,[2,64]),{29:[1,105]},i(Se,[2,38]),i(Se,[2,10]),i(Se,[2,11]),i(Se,[2,12]),{4:106,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,14:[1,107],15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{4:109,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,14:[1,108],15:a,16:11,17:s,20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},i(Se,[2,16]),{14:[1,110]},i(Se,[2,19]),i(Se,[2,25]),{18:[1,111]},{4:112,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,19:[1,113],20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},i(Se,[2,24]),i(Io,[2,3]),i(Se,[2,35]),i(Se,[2,37]),{14:[1,114]},i(Se,[2,15]),i(Se,[2,14]),{14:[1,115]},i(Se,[2,18]),{4:116,6:4,7:5,8:8,9:9,10:o,11:6,12:7,13:n,15:a,16:11,17:s,19:[1,117],20:12,21:l,23:c,24:d,25:10,26:13,28:u,30:19,31:20,32:21,33:22,34:23,35:24,36:25,37:26,38:27,39:28,40:29,41:30,42:31,43:32,44:33,45:34,46:35,47:h,48:g,49:b,50:C,51:S,55:k,56:I,57:M,58:E,59:A,60:V,61:G,62:P,63:O,64:R,65:q,66:J,67:U,68:z,69:K,70:v,71:D,72:_,73:te,74:Q,75:De,76:se,77:re,78:j,79:X,80:fe,81:be,82:Me,83:Be,84:Xe,85:_t,86:je,87:Kr,88:Dt,89:xe},{19:[1,118]},i(Se,[2,23]),i(Se,[2,13]),i(Se,[2,17]),{19:[1,119]},i(Se,[2,21]),i(Se,[2,22]),i(Se,[2,20])],defaultActions:{3:[2,2],79:[2,1]},parseError:function(he,Ue){if(Ue.recoverable)this.trace(he);else{var at=new Error(he);throw at.hash=Ue,at}},parse:function(he){var Ue=this,at=[0],de=[],nr=[null],qe=[],Cc=this.table,nt="",Un=0,Sc=0,si=0,Bi=2,Xo=1,Ec=qe.slice.call(arguments,1),xt=Object.create(this.lexer),bi={yy:{}};for(var Dn in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Dn)&&(bi.yy[Dn]=this.yy[Dn]);xt.setInput(he,bi.yy),bi.yy.lexer=xt,bi.yy.parser=this,typeof xt.yylloc=="undefined"&&(xt.yylloc={});var Ar=xt.yylloc;qe.push(Ar);var kf=xt.options&&xt.options.ranges;typeof bi.yy.parseError=="function"?this.parseError=bi.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function Cd(yi){at.length=at.length-2*yi,nr.length=nr.length-yi,qe.length=qe.length-yi}for(var Aa=function(){var yi;return yi=xt.lex()||Xo,typeof yi!="number"&&(yi=Ue.symbols_[yi]||yi),yi},jr,li,ts,Jr,Sd,kn,Ed={},Rp,rs,Dd,zi;;){if(ts=at[at.length-1],this.defaultActions[ts]?Jr=this.defaultActions[ts]:((jr===null||typeof jr=="undefined")&&(jr=Aa()),Jr=Cc[ts]&&Cc[ts][jr]),typeof Jr=="undefined"||!Jr.length||!Jr[0]){var qn="";zi=[];for(Rp in Cc[ts])this.terminals_[Rp]&&Rp>Bi&&zi.push("'"+this.terminals_[Rp]+"'");xt.showPosition?qn="Parse error on line "+(Un+1)+`:
`+xt.showPosition()+`
Expecting `+zi.join(", ")+", got '"+(this.terminals_[jr]||jr)+"'":qn="Parse error on line "+(Un+1)+": Unexpected "+(jr==Xo?"end of input":"'"+(this.terminals_[jr]||jr)+"'"),this.parseError(qn,{text:xt.match,token:this.terminals_[jr]||jr,line:xt.yylineno,loc:Ar,expected:zi})}if(Jr[0]instanceof Array&&Jr.length>1)throw new Error("Parse Error: multiple actions possible at state: "+ts+", token: "+jr);switch(Jr[0]){case 1:at.push(jr),nr.push(xt.yytext),qe.push(xt.yylloc),at.push(Jr[1]),jr=null,li?(jr=li,li=null):(Sc=xt.yyleng,nt=xt.yytext,Un=xt.yylineno,Ar=xt.yylloc,si>0&&si--);break;case 2:if(rs=this.productions_[Jr[1]][1],Ed.$=nr[nr.length-rs],Ed._$={first_line:qe[qe.length-(rs||1)].first_line,last_line:qe[qe.length-1].last_line,first_column:qe[qe.length-(rs||1)].first_column,last_column:qe[qe.length-1].last_column},kf&&(Ed._$.range=[qe[qe.length-(rs||1)].range[0],qe[qe.length-1].range[1]]),kn=this.performAction.apply(Ed,[nt,Sc,Un,bi.yy,Jr[1],nr,qe].concat(Ec)),typeof kn!="undefined")return kn;rs&&(at=at.slice(0,-1*rs*2),nr=nr.slice(0,-1*rs),qe=qe.slice(0,-1*rs)),at.push(this.productions_[Jr[1]][0]),nr.push(Ed.$),qe.push(Ed._$),Dd=Cc[at[at.length-2]][at[at.length-1]],at.push(Dd);break;case 3:return!0}}return!0}},Ft=function(){var Yr={EOF:1,parseError:function(Ue,at){if(this.yy.parser)this.yy.parser.parseError(Ue,at);else throw new Error(Ue)},setInput:function(he,Ue){return this.yy=Ue||this.yy||{},this._input=he,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var he=this._input[0];this.yytext+=he,this.yyleng++,this.offset++,this.match+=he,this.matched+=he;var Ue=he.match(/(?:\r\n?|\n).*/g);return Ue?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),he},unput:function(he){var Ue=he.length,at=he.split(/(?:\r\n?|\n)/g);this._input=he+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-Ue),this.offset-=Ue;var de=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),at.length-1&&(this.yylineno-=at.length-1);var nr=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:at?(at.length===de.length?this.yylloc.first_column:0)+de[de.length-at.length].length-at[0].length:this.yylloc.first_column-Ue},this.options.ranges&&(this.yylloc.range=[nr[0],nr[0]+this.yyleng-Ue]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},less:function(he){this.unput(this.match.slice(he))},pastInput:function(){var he=this.matched.substr(0,this.matched.length-this.match.length);return(he.length>20?"...":"")+he.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var he=this.match;return he.length<20&&(he+=this._input.substr(0,20-he.length)),(he.substr(0,20)+(he.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var he=this.pastInput(),Ue=new Array(he.length+1).join("-");return he+this.upcomingInput()+`
`+Ue+"^"},test_match:function(he,Ue){var at,de,nr;if(this.options.backtrack_lexer&&(nr={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(nr.yylloc.range=this.yylloc.range.slice(0))),de=he[0].match(/(?:\r\n?|\n).*/g),de&&(this.yylineno+=de.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:de?de[de.length-1].length-de[de.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+he[0].length},this.yytext+=he[0],this.match+=he[0],this.matches=he,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(he[0].length),this.matched+=he[0],at=this.performAction.call(this,this.yy,this,Ue,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),at)return at;if(this._backtrack){for(var qe in nr)this[qe]=nr[qe];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var he,Ue,at,de;this._more||(this.yytext="",this.match="");for(var nr=this._currentRules(),qe=0;qe<nr.length;qe++)if(at=this._input.match(this.rules[nr[qe]]),at&&(!Ue||at[0].length>Ue[0].length)){if(Ue=at,de=qe,this.options.backtrack_lexer){if(he=this.test_match(at,nr[qe]),he!==!1)return he;if(this._backtrack){Ue=!1;continue}else return!1}else if(!this.options.flex)break}return Ue?(he=this.test_match(Ue,nr[de]),he!==!1?he:!1):this._input===""?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+`. Unrecognized text.
`+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var Ue=this.next();return Ue||this.lex()},begin:function(Ue){this.conditionStack.push(Ue)},popState:function(){var Ue=this.conditionStack.length-1;return Ue>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(Ue){return Ue=this.conditionStack.length-1-Math.abs(Ue||0),Ue>=0?this.conditionStack[Ue]:"INITIAL"},pushState:function(Ue){this.begin(Ue)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(Ue,at,de,nr){var qe=nr;switch(de){case 0:this.begin("captext");return;case 1:return 58;case 2:return this.popState(),58;break;case 3:return 62;case 4:return 63;case 5:return 64;case 6:return 65;case 7:return 66;case 8:return 67;case 9:return 49;case 10:return 50;case 11:return 51;case 12:return 52;case 13:return 53;case 14:return 54;case 15:return 73;case 16:return 76;case 17:return 77;case 18:return 78;case 19:return 72;case 20:return 74;case 21:return 75;case 22:return 79;case 23:return 69;case 24:return 70;case 25:return 71;case 26:return 82;case 27:return 13;case 28:return 15;case 29:return 14;case 30:return 10;case 31:return 28;case 32:return 29;case 33:return 85;case 34:return 86;case 35:return 87;case 36:return 17;case 37:return 18;case 38:return 19;case 39:return 80;case 40:return 81;case 41:return 84;case 42:return at.yytext=this.matches[1],21;break;case 43:return at.yytext=this.matches[1],22;break;case 44:return at.yytext=this.matches[1],24;break;case 45:return 68;case 46:return 47;case 47:return 48;case 48:return 88;case 49:return 61;case 50:return 60;case 51:return 83;case 52:return 56;case 53:return 56;case 54:return 57;case 55:return at.yytext=this.matches[1],58;break;case 56:return 59;case 57:return;case 58:return 89;case 59:return;case 60:return 55;case 61:return 5;case 62:return 91}},rules:[/^(?:([,][,])(?=[A-Z]))/,/^(?:[A-Z](?=[A-Z]))/,/^(?:[A-Z])/,/^(?:["][6])/,/^(?:["][-])/,/^(?:["][4])/,/^(?:["][8])/,/^(?:["][9])/,/^(?:["][/])/,/^(?:[.][<])/,/^(?:[_][<])/,/^(?:["][<])/,/^(?:[.][>])/,/^(?:[_][>])/,/^(?:["][>])/,/^(?:["][7][@][:])/,/^(?:[_][@][<])/,/^(?:[\^][9])/,/^(?:[_][@][>])/,/^(?:["][7])/,/^(?:[@][<])/,/^(?:[@][>])/,/^(?:[@][9])/,/^(?:[.][0][O][F][ ]?)/,/^(?:[.][0])/,/^(?:[:][O])/,/^(?:[4][4][4])/,/^(?:[%][9])/,/^(?:[%])/,/^(?:[\+])/,/^(?:[95]+(?=.))/,/^(?:[<])/,/^(?:[>])/,/^(?:!)/,/^(?:[6])/,/^(?:[@]&)/,/^(?:[(])/,/^(?:[.][/])/,/^(?:[)])/,/^(?:#[L])/,/^(?:#-)/,/^(?:#=)/,/^(?:#([A-J4]+))/,/^(?:[/]([A-J4]+))/,/^(?:[#][/]([A-J4]+))/,/^(?:[_]?[/])/,/^(?:[1])/,/^(?:[4])/,/^(?:[7]+)/,/^(?:[_][\\][_][\\])/,/^(?:[_][\\])/,/^(?:[3])/,/^(?:(ARC)?(SIN|COS|TAN|CSC|SEC|COT)(H)?)/,/^(?:(ARG|DET|EXP|IM|INF|LIM|LN|LOG|MAX|MIN|MOD|RE|SUP))/,/^(?:[,]?[.][ABGDEZ\?\:IKLMNXOPRSTUYF\&W])/,/^(?:[,]([A-Z]))/,/^(?:[A-Z])/,/^(?:[,]['])/,/^(?:[8])/,/^(?:[;])/,/^(?:[ ])/,/^(?:$)/,/^(?:.)/],conditions:{captext:{rules:[0,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],inclusive:!0},INITIAL:{rules:[0,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],inclusive:!0}}};return Yr}();le.lexer=Ft;function we(){this.yy={}}return we.prototype=le,le.Parser=we,new we}();typeof Cm!="undefined"&&typeof r!="undefined"&&(r.parser=t,r.Parser=t.Parser,r.parse=function(){return t.parse.apply(t,arguments)},r.main=function(){},typeof e!="undefined"&&Cm.main===e&&r.main(process.argv.slice(1)))}}),XM=["abs","ans","arccosh","arccot","arccoth","arccsc","arccsch","arcsec","arcsech","arcsinh","arctanh","binomialdist","boxplot","cdf","ceil","corr","cov","csch","distance","dotplot","erf","floor","gcf","histogram","IndependentTTest","iTTest","ittest","lcm","length","mad","mcd","mcm","mean","median","midpoint","mod","nCr","normaldist","nPr","pdf","poissondist","polygon","quantile","quartile","random","round","sech","sign","signum","sgn","stdDev","stddev","stdDevP","stddevp","stdev","stdevp","tdist","total","TScore","TScore","Tscore","tscore","tscore","TTest","ttest","var","variance","varp"],NE=XM,q9=S5(XM),QM;function C5(r){let e=!1,t=0,i="",o="";for(let n of r)if(n.type==="terminal"&&/[A-Za-z]/.test(n.value))i+=n.value,t++;else break;return o=i.replace(QM,"\\operatorname{$1}"),e=t>0&&o!==i,{modified:e,terminalCount:t,value:o}}function ZM(r){return NE.indexOf(r.toLowerCase())!==-1}function BE(r){if(!Array.isArray(r))throw new Error("Operator names must be an array, got "+typeof r);for(let e of r)if(typeof e!="string")throw new Error("Operator names must be strings, found "+typeof e);NE=r,H9()}function zE(){NE=XM,QM=q9}function H9(){QM=S5(NE)}function S5(r){let e=r.sort((t,i)=>i.length-t.length||i.localeCompare(t)).join("|");return new RegExp("("+e+")","g")}var E5={};JM(E5,{command:()=>eA,fraction:()=>Y9,greek:()=>W9,group:()=>tA,level:()=>k5,processPrimes:()=>$9,radical:()=>j9,terminal:()=>D5,typeform:()=>T5});function D5(r){return{type:"terminal",value:r}}function eA(r){return{type:"command",value:r}}function W9(r){return{type:"greek",value:r}}function k5(r){return{subscript:r._,superscript:r["^"],type:"level"}}function $9(r,e){let t=[],i=r.match(/'+/);if(i!==null){let o=i[0].length;for(let n=0;n<o;n++)t.push(eA("\\prime"))}return tA(t,e)}function Y9(r,e){return{type:"fraction",numerator:r,denominator:e}}function T5(r,e){return{name:r,type:"typeform",value:e}}function j9(r,e){return{type:"radical",index:e,radicand:r}}function tA(...r){return Array.prototype.concat.apply([],r)}var GE={"~":"\\ ","\\,":"\\ ","\\:":"\\ ","\\;":"\\ ","\\!":"\\ "},s5={"\\Vert":"\\|","\\ge":"\\geq","\\le":"\\leq","\\vert":"|"},J9={"\\space":!0};function gp(r){let e=[];for(let t=0;t<r.length;t++){let i=r[t];switch(i.type){case"command":let o=i.value.slice(1).trim();s5.hasOwnProperty(i.value)?e.push(eA(s5[i.value])):ZM(o)?e.push(T5("operator_name",X9(o))):J9[i.value]||e.push(i);break;case"level":let n={subscript:i.subscript&&i.subscript.length>0?gp(i.subscript):void 0,superscript:i.superscript&&i.superscript.length>0?gp(i.superscript):void 0,type:i.type};(n.subscript||n.superscript)&&e.push(n);break;case"fraction":e.push({denominator:gp(i.denominator),numerator:gp(i.numerator),type:i.type});break;case"radical":e.push({index:i.index?gp(i.index):void 0,radicand:gp(i.radicand),type:i.type});break;case"terminal":Q9(r.slice(t))?(e.push({type:"command",value:"\\ldots"}),t+=2):e.push({type:i.type,value:GE.hasOwnProperty(i.value)?GE[i.value]:i.value});break;case"typeform":e.push(i);break;case"greek":e.push({type:i.type,value:GE.hasOwnProperty(i.value)?GE[i.value]:i.value});break;default:throw new Error(`Unexpected item:
`+JSON.stringify({group:r,item:i}))}}return e}function X9(r){let e=[];for(let t of r)e.push(D5(t));return e}function Q9(r){let e=0;for(let t=0;t<Math.min(3,r.length);t++){let i=r[t];i.type==="terminal"&&i.value==="."&&e++}return e===3}function rA(r){if(!r.hash)throw r;return{_diagnostic:{expected:r.hash.expected,message:r.message,text:r.hash.text,token:r.hash.token},location:r.hash.loc}}var I5=U9();I5.parser.yy=E5;function M5(r){try{return{isError:!1,value:I5.parser.parse(r)}}catch(e){return{isError:!0,error:rA(e)}}}function Z9(r){return r.isError}function eW(r,e){return Z9(r)?r:{isError:!1,value:e(r.value)}}function Sm(r,e){let t=eW(r,e);return r.warnings&&(t.warnings=r.warnings),t}function tW(r){return Sm(M5(r),e=>uW(gp(e)))}var l5={"!":"&","*":"@#",",":", ","/":"_/",":":"_3","<":' "K ',"=":" .K ",">":" .1 ","?":"_8","[":"@(","\\ ":" ","\\%":"@0","\\&":"_&","\\,":" ","\\infty":",=","\\int":"!","\\{":".(","\\|":"\\\\","\\}":".)","]":"@)","|":"\\"};function BM(r){return/^[a-z]$/.test(r.value)?r.value.toUpperCase():/^[A-Z]$/.test(r.value)?","+r.value:/^[0-9.]$/.test(r.value)||/^[+\-()]$/.test(r.value)?r.value:l5.hasOwnProperty(r.value)?l5[r.value]:"[terminal: "+r.value+"]"}var c5={"\\Vert":"\\\\","\\cdot":"*","\\div":"./","\\ge":" .1: ","\\geq":" .1: ","\\langle":"..(","\\ldots":" ''' ","\\le":' "K: ',"\\leq":' "K: ',"\\ne":" /.K ","\\neq":" /.K ","\\approx":" @:@: ","\\nparallel":" /$L ","\\parallel":" $L ","\\perp":" $P ","\\prime":"'","\\prod":".,P","\\rangle":"..)","\\sim":"@:","\\sum":".,S","\\times":"@*","\\to":" $O ","\\vert":"\\"},d5={"\\Alpha":".,A","\\Beta":".,B","\\Chi":".,&","\\Delta":".,D","\\Epsilon":".,E","\\Eta":".,:","\\Gamma":".,G","\\Iota":".,I","\\Kappa":".,K","\\Lambda":".,L","\\Mu":".,M","\\Nu":".,N","\\Omega":".,W","\\Omicron":".,O","\\Phi":".,F","\\Pi":".,P","\\Psi":".,Y","\\Rho":".,R","\\Sigma":".,S","\\Tau":".,T","\\Theta":".,?","\\Upsilon":".,U","\\Xi":".,X","\\Zeta":".,Z","\\alpha":".A","\\beta":".B","\\chi":".&","\\delta":".D","\\epsilon":".E","\\eta":".:","\\gamma":".G","\\iota":".I","\\kappa":".K","\\lambda":".L","\\mu":".M","\\nu":".N","\\omega":".W","\\omicron":".O","\\phi":".F","\\pi":".P","\\psi":".Y","\\rho":".R","\\sigma":".S","\\tau":".T","\\theta":".?","\\upsilon":".U","\\xi":".X","\\zeta":".Z"};function p5(r){return c5.hasOwnProperty(r.value)?c5[r.value]:r.value.slice(1).toUpperCase()+" "}function rW(r){return d5.hasOwnProperty(r.value)?d5[r.value]:r.value.slice(1).toUpperCase()+" "}function iW(r){return r.value==="\\space"}function oW(r,e){return r.isStartOfLine&&/^-?$/.test(e)||/\s-?$/.test(e)||r.wasFraction}function nW(r){return r.value==="\\sum"||r.value==="\\prod"}function aW(r,e){if(e>=r.length)return!1;let t=r[e];if(t.type==="terminal"){if(/^[0-9]$/.test(t.value))return!0;if(t.value!=="."||e+1>=r.length)return!1;if(t=r[e+1],t.type==="terminal")return/^[0-9]$/.test(t.value)}return!1}function fp(r,e){let t="",i=r.levelIndicator,o=0,n=!1;for(let a=0;a<e.length;a++){aW(e,a)&&(i===""&&/[A-Z]$/.test(t)?t+=nc(i):oW(r,t)&&(t+="#"));let s=e[a],l=a<e.length-1?e[a+1]:null;switch(s.type!=="level"&&i!==r.levelIndicator&&(zM(s)?i="":(r.wasModifiedExpression&&r.levelIndicator===""?r=ja(r,{wasModifiedExpression:!1}):t+=nc(r.levelIndicator),i=r.levelIndicator)),s.type){case"terminal":!r.wasModifiedExpression&&i!==""&&zM(s)?t+=" "+nc(i)+BM(s).trim()+" ":t+=BM(s),s.value==="."&&l&&(l.type==="terminal"&&/^[^_\d,]/.test(BM(l))||l.type==="greek")&&(t+='"'),r=ja(r,{wasFraction:!1,wasRomanCommand:!1});break;case"command":if(!iW(s)){let g=nW(s);g&&(t+='"'),!g&&i!==""&&zM(s)?t+=" "+nc(i)+p5(s).trim()+" ":t+=p5(s),r=ja(r,{wasFraction:!1,wasModifiedExpression:g,wasRomanCommand:!0})}break;case"greek":t+=rW(s),r=ja(r,{wasFraction:!1});break;case"fraction":let c=sW(r,s);t+=c.value,o=Math.max(o,c.fractionLevel),r=ja(r,{wasFraction:!0,wasRomanCommand:!1});break;case"radical":let d=lW(r,s);t+=d.value,o=Math.max(o,d.fractionLevel),r=ja(r,{wasFraction:!1,wasRomanCommand:!1});break;case"level":!r.wasModifiedExpression&&r.wasRomanCommand?(n=/\s$/.test(t),n&&(t=t.replace(/\s$/,""))):n=!1;let u=t.length>0&&/[A-Za-z]/.test(t[t.length-1])===!0,h=cW(r,u,n,s);t+=h.value,i=h.levelIndicator,r=ja(r,{wasFraction:!1,wasRomanCommand:!1});break;case"typeform":t+=fp(r,s.value).value,s.name==="operator_name"&&(t+=" "),r=ja(r,{wasFraction:!1,wasModifiedExpression:!1,wasRomanCommand:!1});break}}return{fractionLevel:o,levelIndicator:i,value:t}}function sW(r,e){r=ja(r,{isStartOfLine:!1});let t=fp(r,e.numerator),i=fp(r,e.denominator),o=Math.max(t.fractionLevel,i.fractionLevel),n="";for(let s=0;s<o;s++)n+=",";let a=n+"?"+t.value;return t.levelIndicator!==r.levelIndicator&&(a+=nc(r.levelIndicator)),/\.$/.test(t.value)&&(a+='"'),a+=n+"/"+i.value,i.levelIndicator!==r.levelIndicator&&(a+=nc(r.levelIndicator)),/\.$/.test(i.value)&&(a+='"'),a+=n+"#",{fractionLevel:o+1,value:a}}function lW(r,e){let t=r.radicalLevel,i="",o="";for(let a=0;a<t;a++)o+=".";if(e.index){i+=o+"<";let a=fp(ja(r,{isStartOfLine:!1}),e.index);i+=a.value,/\.$/.test(a.value)&&(i+='"'),a.levelIndicator!==r.levelIndicator&&(i+=nc(r.levelIndicator)),i+=">"}else i+=o+">";let n=fp(ja(r,{isStartOfLine:!1,radicalLevel:t+1}),e.radicand);return i+=n.value,/\.$/.test(n.value)&&(i+='"'),n.levelIndicator!==r.levelIndicator&&(i+=nc(r.levelIndicator)),i+=o+"]",{fractionLevel:n.fractionLevel,value:i}}function cW(r,e,t,i){let o=r.levelIndicator,n="",a=dW(i.superscript);if(n+=a,i.subscript){r.wasModifiedExpression&&(n+="%"),o=r.levelIndicator+";";let s=fp(ja(r,{isStartOfLine:!1,levelIndicator:o}),i.subscript);e&&/^[0-9]*(\.|\,)?[0-9]+$/.test(s.value)&&o.length<=1?o=r.levelIndicator:!r.wasModifiedExpression&&i.subscript[0]&&i.subscript[0].type!=="level"&&(n+=nc(o)),n+=s.value,/\.$/.test(s.value)&&(n+='"')}if(i.superscript){r.wasModifiedExpression&&(n+="<"),o=r.levelIndicator+"^";let s=fp(ja(r,{isStartOfLine:!1,levelIndicator:o}),i.superscript.slice(a.length));!r.wasModifiedExpression&&i.superscript[0]&&i.superscript[0].type!=="level"&&s.value!==""&&(n+=nc(o)),n+=s.value,/\.$/.test(s.value)&&(n+='"')}return r.wasModifiedExpression?n+="]":r.wasRomanCommand&&t&&(n+=" ",o=o.slice(0,o.length-1)),{levelIndicator:o,value:n}}function dW(r){let e="";if(r)for(let t of r)if(t.type==="command"&&t.value==="\\prime")e+="'";else break;return e}function nc(r){return r||'"'}function pW(){return{isStartOfLine:!0,levelIndicator:"",radicalLevel:0,wasFraction:!1,wasModifiedExpression:!1,wasRomanCommand:!1}}function ja(r,e){return vm(vm({},r),e)}function zM(r){return r.type==="terminal"||r.type==="command"?/^<|>|\=|\\leq?|\\geq?|\\neq?$/.test(r.value):!1}function uW(r){let e=pW();return fp(e,r).value}function hW(r){return Sm(M5(r),e=>DW(gp(e)))}var u5={"!":"6","(":'"<',")":'">',"*":'"9',"+":'"6',",":"1","-":'"-',".":"4","/":"_/",":":"3","<":"@<","=":'"7',">":"@>","?":"8","[":".<","\\ ":" ","\\%":".0","\\&":"@&","\\,":" ","\\infty":"#=","\\int":"!","\\{":"_<","\\|":"_\\_\\","\\}":"_>","]":".>","|":"_\\"};function gW(r,e,t){let i="",o=e.value,n=t&&t.type==="terminal"?t.value:"";return A5(o,r)&&(i+=";"),/^[\D]/.test(o)&&(r=ac(r,{wasNumber:!1})),/^[a-z]$/.test(o)?r.capsLock?(r=ac(r,{capsLock:!1}),i+=",'"+o.toUpperCase()):i+=o.toUpperCase():/^[A-Z]$/.test(o)?r.capsLock?i+=o:/[A-Z]/.test(n)?(r=ac(r,{capsLock:!0}),i+=",,"+o):i+=","+o:(r=ac(r,{capsLock:!1}),/^[0-9.]$/.test(o)?i+=xW(o):u5.hasOwnProperty(o)?i+=u5[o]:i+="[terminal: "+o+"]"),{value:i,ctx:r}}var h5={"\\Vert":"_\\_\\","\\cdot":'"4',"\\div":'"/',"\\ge":"_@>","\\geq":"_@>","\\langle":"@<","\\ldots":"444","\\le":"_@<","\\leq":"_@<","\\ne":'"7@:',"\\neq":'"7@:',"\\approx":"^9","\\parallel":"#L","\\perp":"#-","\\prime":"7","\\prod":",.P","\\rangle":"@>","\\sim":"@9","\\sum":",.S","\\times":'"8',"\\to":":O","\\vert":"_\\"},g5={"\\Alpha":",.A","\\Beta":",.B","\\Chi":",.&","\\Delta":",.D","\\Epsilon":",.E","\\Eta":",.:","\\Gamma":",.G","\\Iota":",.I","\\Kappa":",.K","\\Lambda":",.L","\\Mu":",.M","\\Nu":",.N","\\Omega":",.W","\\Omicron":",.O","\\Phi":",.F","\\Pi":",.P","\\Psi":",.Y","\\Rho":",.R","\\Sigma":",.S","\\Tau":",.T","\\Theta":",.?","\\Upsilon":",.U","\\Xi":",.X","\\Zeta":",.Z","\\alpha":".A","\\beta":".B","\\chi":".&","\\delta":".D","\\epsilon":".E","\\eta":".:","\\gamma":".G","\\iota":".I","\\kappa":".K","\\lambda":".L","\\mu":".M","\\nu":".N","\\omega":".W","\\omicron":".O","\\phi":".F","\\pi":".P","\\psi":".Y","\\rho":".R","\\sigma":".S","\\tau":".T","\\theta":".?","\\upsilon":".U","\\xi":".X","\\zeta":".Z"};function mW(r,e){let t;return h5.hasOwnProperty(r.value)?t=h5[r.value]:t=r.value.slice(1).toUpperCase()+" ",A5(t,e)&&(t=";"+t),/^[\D]/.test(t)&&(e=ac(e,{wasNumber:!1})),{value:t,ctx:e}}function fW(r){return g5.hasOwnProperty(r.value)?g5[r.value]:r.value.slice(1).toUpperCase()+" "}function bW(r){return r.value==="\\space"}function yW(r,e){if(e<r.length){let t=r[e];if(t.type==="terminal"){if(/^\d$/.test(t.value))return!0;if(t.value!=="."||e+1>=r.length)return!1;if(t=r[e+1],t.type==="terminal")return/^\d$/.test(t.value)}}return!1}function xW(r){let e="";for(let i of r)i===","?e+="1":i==="."?e+="4":i==="0"?e+="J":e+=String.fromCharCode(64+Number(i));return e}function bp(r,e){let t,i,o="",n=!0;for(let a=0;a<e.length;a++){yW(e,a)?(r=ac(r,{wasNumber:!0}),n&&(o+="#",n=!1)):n=!0;let s=e[a];switch(s.type){case"terminal":let l=a<e.length-1?e[a+1]:void 0;t=gW(r,s,l),r=t.ctx,o+=t.value,o[o.length-1]===" "&&(n=!0);break;case"command":bW(s)||(i=mW(s,r),r=i.ctx,o+=i.value,o[o.length-1]===" "&&(n=!0));break;case"greek":o+=fW(s),o[o.length-1]===" "&&(n=!0);break;case"fraction":let c=wW(r,s);o+=c.value,r=c.ctx,n=!1;break;case"radical":let d=vW(r,s);o+=d.value,n=!0;break;case"level":let u=CW(r,s);o+=u.value,r=u.ctx,n=!0;break;case"typeform":let h=bp(r,s.value).value;o+=h,/(ARC)?(SIN|COS|TAN|CSC|SEC|COT)(H)?/.test(h)&&(o+=" ");break}}return{ctx:r,value:o}}function A5(r,e){return e.wasNumber&&/^[A-Ja-j]/.test(r)}function wW(r,e){let t=bp(r,e.numerator),i=bp(r,e.denominator),o;return qM(t.value)&&qM(i.value)?(r=ac(r,{wasNumber:!0}),o=t.value+"/"+i.value.slice(1)):(r=ac(r,{wasNumber:!1}),o="("+t.value+"./"+i.value+")"),{ctx:r,value:o}}function qM(r){return/^\#[A-J41]+$/.test(r)}function vW(r,e){let t="%",i=bp(r,e.radicand);if(e.index){let o=bp(r,tA(k5({"^":e.index})));t+=o.value,/\#[A-J]$/.test(o.value)&&/^[A-J]/.test(i.value)&&(t+=";")}return t+=i.value+"+",{ctx:r,value:t}}function CW(r,e){let t="",i=SW(e.superscript);t+=i;let o;if(e.subscript){let n=bp(r,e.subscript);f5(e.subscript,n.value,0)?o="<"+m5(n.value)+">":o=n.value,r=ac(r,{wasNumber:n.ctx.wasNumber}),o!==""&&(t+="5"+o)}if(e.superscript){let n=bp(r,e.superscript.slice(i.length));f5(e.superscript,n.value,i.length)?o="<"+m5(n.value)+">":o=n.value,r=ac(r,{wasNumber:n.ctx.wasNumber}),(i===""||o!=="")&&(t+="9"+o)}return{ctx:r,value:t}}function m5(r){return/^;/.test(r)?r.slice(1):r}function SW(r){let e="";if(r)for(let t of r)if(t.type==="command"&&t.value==="\\prime")e+="7";else break;return e}function f5(r,e,t){let i=r[0],o=(e.match(/\</g)||[]).length,n=/^["|\.|_]?\</.test(e),a=(e.match(/\>/g)||[]).length,s=/["|\.|_]?\>$/.test(e);return!qM(e)&&r.length-t>1&&o===0&&a===0||o>0&&a>0&&(!n||!s)||o>1||a>1||i&&i.type==="typeform"}function EW(){return{capsLock:!1,wasNumber:!1}}function ac(r,e){return vm(vm({},r),e)}function DW(r){let e=EW();return bp(e,r).value}var HM={};JM(HM,{baseline:()=>AW,command:()=>TW,comparison:()=>MW,expression:()=>OW,fraction:()=>VW,greek:()=>FW,group:()=>RW,level:()=>iA,level_with_comparison:()=>IW,modified_expression:()=>PW,primes:()=>GW,radical:()=>LW,simple_subscript:()=>_W,terminal:()=>kW});function kW(r){return{type:"terminal",value:r}}function TW(r){return{type:"command",value:"\\"+r.trim()+" "}}var G5={'"K':"<",'"K:':"\\leq ",$L:"\\parallel ",$O:"\\to ",$P:"\\perp ",".1":">",".1:":"\\geq ",".K":"=","@:@:":"\\approx","/$L":"\\nparallel ","/.K":"\\neq ","=":"=","@:":"\\sim "};function IW(r){let e=/[\^;]+/.exec(r),t=e?e.toString():"",i=r.slice(iA.length);return{type:"level_with_comparison",level:t,value:G5[i]}}function MW(r){return{type:"comparison",value:G5[r]}}function iA(r){return{type:"level",value:r}}function AW(){return iA("")}function GW(r){return{type:"primes",value:r}}function VW(r,e){return{type:"fraction",numerator:r,denominator:e}}function PW(r,e,t){return{type:"modified_expression",expression:r,under:e,over:t}}function LW(r,e){return{type:"radical",value:r,index:e}}function OW(r){return{type:"expression",value:r}}function _W(r,e){return{type:"simple_subscript",base:r,subscript:e}}var b5={".&":"\\chi",".,&":"\\Chi",".,:":"\\Eta",".,?":"\\Theta",".,A":"\\Alpha",".,B":"\\Beta",".,D":"\\Delta",".,E":"\\Epsilon",".,F":"\\Phi",".,G":"\\Gamma",".,I":"\\Iota",".,K":"\\Kappa",".,L":"\\Lambda",".,M":"\\Mu",".,N":"\\Nu",".,O":"\\Omicron",".,P":"\\prod",".,R":"\\Rho",".,S":"\\sum",".,T":"\\Tau",".,U":"\\Upsilon",".,W":"\\Omega",".,X":"\\Xi",".,Y":"\\Psi",".,Z":"\\Zeta",".:":"\\eta",".?":"\\theta",".A":"\\alpha",".B":"\\beta",".D":"\\delta",".E":"\\epsilon",".F":"\\phi",".G":"\\gamma",".I":"\\iota",".K":"\\kappa",".L":"\\lambda",".M":"\\mu",".N":"\\nu",".O":"\\omicron",".P":"\\pi",".R":"\\rho",".S":"\\sigma",".T":"\\tau",".U":"\\upsilon",".W":"\\omega",".X":"\\xi",".Y":"\\psi",".Z":"\\zeta"};function FW(r){if(b5.hasOwnProperty(r))return b5[r]+" ";throw new Error("Unknown Greek letter")}function RW(...r){return Array.prototype.concat.apply([],r)}var oA=w5(),_E=oA.parser.lexer,Bu=Object.create(_E),NW=Bu,gy=oA.parser.terminals_,io=oA.parser.symbols_;Bu.setInput=function(r,e){this.delimiterStack=[],this.outputQueue=[],this.canAcceptPrimes=!1,_E.setInput.call(this,r,e)};Bu.lex=function(){let r=-1;if(!this)return r;if(this.outputQueue.length)return this.outputQueue.shift();let e=_E.lex.call(this);for(;gy[e]==="UNKNOWN"||!this.canAcceptPrimes&&gy[e]==="PRIMES";)this.warn(),e=_E.lex.call(this);this.canAcceptPrimes=!0;let t,i,o=this.delimiterStack?this.delimiterStack[this.delimiterStack.length-1]:-1;switch(gy[e]){case"OPEN_FRAC":case"OPEN_MODEXP":this.delimiterStack.push(e),this.canAcceptPrimes=!1;break;case"RADICAL_INDEX":o===io.RADICAL_INDEX&&(this.delimiterStack.pop(),this.pushCloseTokens(o)),this.delimiterStack.push(e),this.canAcceptPrimes=!1;break;case"OPEN_RADICAL":o===io.RADICAL_INDEX&&this.delimiterStack.pop(),this.delimiterStack.push(e),this.canAcceptPrimes=!1;break;case"SLASH":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===io.OPEN_FRAC){t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e),this.delimiterStack.push(e),this.canAcceptPrimes=!1;break;case"CLOSE_FRAC":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===io.SLASH){t=!0;break}else if(i===io.OPEN_FRAC){this.addMissingToken(io.SLASH),t=!0;break}else this.pushCloseTokens(i);if(!t)return this.warn(),this.canAcceptPrimes=!1,this.lex();break;case"CLOSE_RADICAL":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===io.OPEN_RADICAL){t=!0;break}else if(i===io.RADICAL_INDEX){t=!0,this.addMissingToken(io.OPEN_RADICAL);break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e);break;case"CLOSE_MODEXP":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===io.OPEN_MODEXP){t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e);break;case"EOF":for(;this.delimiterStack.length;)i=this.delimiterStack.pop()||-1,this.pushCloseTokens(i);break}return this.outputQueue.push(e),r=this.outputQueue.shift()||-1,r};Bu.warn=function(){this.yylloc&&this.yy.warnings.push({location:this.yylloc})};Bu.addMissingToken=function(r){this.outputQueue.push(r),this.warn()};Bu.pushCloseTokens=function(r){switch(gy[r]){case"OPEN_FRAC":this.addMissingToken(io.SLASH),this.addMissingToken(io.CLOSE_FRAC);break;case"SLASH":this.addMissingToken(io.CLOSE_FRAC);break;case"RADICAL_INDEX":this.addMissingToken(io.OPEN_RADICAL),this.addMissingToken(io.CLOSE_RADICAL);break;case"OPEN_RADICAL":this.addMissingToken(io.CLOSE_RADICAL);break;case"OPEN_MODEXP":this.addMissingToken(io.CLOSE_MODEXP);break}};Bu.pushOpenTokens=function(r){switch(gy[r]){case"SLASH":this.addMissingToken(io.OPEN_FRAC);break;case"CLOSE_FRAC":this.addMissingToken(io.OPEN_FRAC),this.addMissingToken(io.SLASH);break;case"CLOSE_RADICAL":this.addMissingToken(io.OPEN_RADICAL);break;case"CLOSE_MODEXP":this.addMissingToken(io.OPEN_MODEXP);break}};var BW=w5();function zW(r,e){e||(e={});let t=BW.parser,i=Object.create(t);i.yy=HM,i.yy.warnOrError=n=>{i.parseError(n,{recoverable:!1})};let o=Object.create(t);o.yy=vm({warnings:[]},HM),o.yy.warnOrError=n=>{o.yy.warnings.push(n)},o.lexer=NW,e.strict?t=i:t=o;try{return{isError:!1,value:t.parse(r),warnings:t.yy.warnings||[]}}catch(n){return{error:rA(n),isError:!0}}}function mp(r,e){let t="",i=e,o="",n=!1,a="",s="",l=KW(r);for(let c=0;c<r.length;c++){let d=r[c],u=c+1<r.length?r[c+1]:null;switch(d.type){case"terminal":let h=C5(r.slice(c));h.value!==""?(t+=h.value,c+=h.terminalCount-1,n=n||h.modified):d.value===" "?(n?(o=a,t+=hy(i,o),i=o):t+="\\ ",n=!1):(l[c]===LE?t+="\\left":l[c]===WM&&(t+="\\right"),t+=d.value);break;case"comparison":o="",t+=hy(i,o),i=o,n=!1,t+=d.value;break;case"level_with_comparison":t+=hy(i,d.level),i=d.level,n=!1,t+=d.value;break;case"command":let g=d.value.slice(1).trim();u&&u.type==="terminal"&&/[a-z]/.test(u.value)?(t+=g,n=!1):ZM(g)?(t+="\\operatorname{"+g+"}",n=!0):(t+=d.value,n=!0),a=i;break;case"expression":t+=d.value;break;case"fraction":t+=WW(d.numerator,d.denominator,i);break;case"modified_expression":t+=mp(d.expression,i)+" ",d.under&&(t+="_{"+mp(d.under,i)+"}"),d.over&&(t+="^{"+mp(d.over,i)+"}");break;case"radical":t+="\\sqrt",d.index&&(t+="["+mp(d.index,i)+"]"),t+="{"+mp(d.value,i)+"}";break;case"simple_subscript":i===""?(t+=d.base.value+"_{"+d.subscript.value+"}",d.base.type==="command"&&(n=!0,a=i)):t+=d.base.value+d.subscript.value;break;case"level":t+=hy(i,d.value,s),i=d.value,d.value==="^"&&s!==""&&(s="");break;case"primes":u&&u.type==="level"&&u.value===";"?s=d.value:i!==""?(t+=Array(d.value.length+1).join("\\prime "),s=""):(t+=d.value,s="");break}}return t+=hy(i,e)+s,t.replace(/([^\\])( )$/,"$1")}var LE=1,WM=-1,VE=0,KM=2;function KW(r){let e=[],t=[];for(let i=0;i<r.length;i++){let o=r[i];if(UW(o))e.push({direction:LE,index:i}),t.push(VE);else if(qW(o)){for(;e.length&&e[e.length-1].direction===KM;)e.pop();if(e.length){let n=e.pop();if(n){let a=n.index;t[a]=LE,t.push(WM)}}else t.push(VE)}else if(HW(o))if(e.length&&e[e.length-1].direction===KM){let n=e.pop();if(n){let a=n.index;t[a]=LE,t.push(WM)}}else e.push({direction:KM,index:i}),t.push(VE);else t.push(VE)}return t}function UW(r){return r.type==="terminal"?/^(\\langle |\[|\(|\\{)$/.test(r.value):!1}function qW(r){return r.type==="terminal"?/^(\\rangle |\]|\)|\\})$/.test(r.value):!1}function HW(r){return r.type==="terminal"?/^(\\\||\|)$/.test(r.value):!1}function WW(r,e,t){return"\\frac{"+mp(r,t)+"}{"+mp(e,t)+"}"}function hy(r,e,t){let i="",o,n,a,s=Math.max(r.length,e.length);for(o=0;o<s&&r[o]===e[o];o++);for(n=r.length-1;n>=o;n--)i+="}";for(a=o;a<e.length;a++)e[a]==="^"&&(t&&(i+=t),i+="^{"),e[a]===";"&&(i+="_{");return i}function $W(r){return mp(r,"")}function YW(r,e){return e&&e.operatorNames?BE(e.operatorNames):zE(),Sm(zW(r,e),$W)}var nA=v5(),FE=nA.parser.lexer,zu=Object.create(FE),jW=zu,RE=nA.parser.terminals_,No=nA.parser.symbols_;zu.setInput=function(r,e){this.delimiterStack=[],this.outputQueue=[],FE.setInput.call(this,r,e)};zu.lex=function(){let r=-1;if(this.outputQueue.length)return this.outputQueue.shift();let e=FE.lex.call(this);for(;RE[e]==="UNKNOWN";)this.warn(),e=FE.lex.call(this);let t,i,o=this.delimiterStack?this.delimiterStack[this.delimiterStack.length-1]:-1;switch(RE[e]){case"OPEN_FRAC":this.delimiterStack.push(e);break;case"OPEN_GROUP":this.delimiterStack.push(e);break;case"RADICAL_WITH_INDEX":o===No.RADICAL_WITH_INDEX&&(this.delimiterStack.pop(),this.pushCloseTokens(o)),this.delimiterStack.push(e);break;case"RADICAL":o===No.RADICAL_WITH_INDEX&&this.delimiterStack.pop(),this.delimiterStack.push(e);break;case"OVER":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===No.OPEN_FRAC){t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e),this.delimiterStack.push(e);break;case"CLOSE_FRAC":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===No.OVER){t=!0;break}else if(i===No.OPEN_FRAC){this.outputQueue.push(No.OVER),t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e);break;case"CLOSE_GROUP":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===No.OPEN_GROUP){t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e);break;case"CLOSE_RADICAL":for(t=!1;this.delimiterStack.length;)if(i=this.delimiterStack.pop()||-1,i===No.RADICAL||i===No.RADICAL_WITH_INDEX){t=!0;break}else this.pushCloseTokens(i);t||this.pushOpenTokens(e);break;case"EOF":for(;this.delimiterStack.length;)i=this.delimiterStack.pop()||-1,this.pushCloseTokens(i);break}return this.outputQueue.push(e),r=this.outputQueue.shift()||-1,r};zu.warn=function(){this.yylloc&&this.yy.warnings.push({location:this.yylloc})};zu.addMissingToken=function(r){this.outputQueue.push(r),this.warn()};zu.pushCloseTokens=function(r){switch(RE[r]){case"OPEN_FRAC":this.addMissingToken(No.OVER),this.addMissingToken(No.CLOSE_FRAC);break;case"OVER":this.addMissingToken(No.CLOSE_FRAC);break;case"OPEN_GROUP":this.addMissingToken(No.CLOSE_GROUP);break;case"RADICAL_WITH_INDEX":case"RADICAL":this.addMissingToken(No.CLOSE_RADICAL);break}};zu.pushOpenTokens=function(r){switch(RE[r]){case"OVER":this.addMissingToken(No.OPEN_FRAC);break;case"CLOSE_FRAC":this.addMissingToken(No.OPEN_FRAC),this.addMissingToken(No.OVER);break;case"CLOSE_GROUP":this.addMissingToken(No.OPEN_GROUP);break;case"CLOSE_RADICAL":this.addMissingToken(No.RADICAL);break}};var $M={};JM($M,{basic_level:()=>QW,bracketed_level:()=>ZW,command:()=>XW,expression:()=>i$,fraction:()=>t$,greek:()=>n$,group:()=>o$,primes:()=>e$,radical:()=>r$,terminal:()=>JW,to_number:()=>a$});function JW(r){return{type:"terminal",value:r}}function XW(r){return{type:"command",value:r}}function QW(r,e){return{type:"basic_level",level:r,value:e}}function ZW(r,e,t,i){return{type:"bracketed_level",level:r,lbrack:e,value:t,rbrack:i}}function e$(r){return{type:"primes",value:r.length>0?Array(r.length+1).join("'"):""}}function t$(r,e){return{type:"fraction",numerator:r,denominator:e}}function r$(r,e){return{type:"radical",value:r,index:e}}function i$(r){return{type:"expression",value:r}}function o$(...r){return Array.prototype.concat.apply([],r)}var y5={",.&":"\\Chi",",.:":"\\Eta",",.?":"\\Theta",",.A":"\\Alpha",",.B":"\\Beta",",.D":"\\Delta",",.E":"\\Epsilon",",.F":"\\Phi",",.G":"\\Gamma",",.I":"\\Iota",",.K":"\\Kappa",",.L":"\\Lambda",",.M":"\\Mu",",.N":"\\Nu",",.O":"\\Omicron",",.P":"\\prod",",.R":"\\Rho",",.S":"\\sum",",.T":"\\Tau",",.U":"\\Upsilon",",.W":"\\Omega",",.X":"\\Xi",",.Y":"\\Psi",",.Z":"\\Zeta",".&":"\\chi",".:":"\\eta",".?":"\\theta",".A":"\\alpha",".B":"\\beta",".D":"\\delta",".E":"\\epsilon",".F":"\\phi",".G":"\\gamma",".I":"\\iota",".K":"\\kappa",".L":"\\lambda",".M":"\\mu",".N":"\\nu",".O":"\\omicron",".P":"\\pi",".R":"\\rho",".S":"\\sigma",".T":"\\tau",".U":"\\upsilon",".W":"\\omega",".X":"\\xi",".Y":"\\psi",".Z":"\\zeta"};function n$(r){if(y5.hasOwnProperty(r))return y5[r]+" ";throw new Error("Unknown Greek letter")}function a$(r){let e="";for(let i of r)i==="4"?e+=".":i==="J"?e+="0":e+=i.charCodeAt(0)-64;return e}var s$=v5();function l$(r,e){e||(e={});let t=s$.parser,i=Object.create(t);i.yy=$M;let o=Object.create(t);o.yy=vm({warnings:[]},$M),o.lexer=jW,e.strict?t=i:t=o;try{return{isError:!1,value:t.parse(r),warnings:t.yy.warnings||[]}}catch(n){return{error:rA(n),isError:!0}}}function Nu(r,e){let t="",i=!1,o="",n=c$(r);for(let a=0;a<r.length;a++){let s=r[a],l=a+1<r.length?r[a+1]:null;switch(s.type){case"terminal":let c=C5(r.slice(a));c.value!==""?(t+=c.value,a+=c.terminalCount-1):s.value===" "&&!i?t+="\\ ":(n[a]===OE?t+="\\left":n[a]===YM&&(t+="\\right"),t+=s.value),i=!1;break;case"command":let d=s.value.slice(1).trim();l&&l.type==="terminal"&&/[a-z]/.test(l.value)?(t+=d,i=!1):ZM(d)?(t+="\\operatorname{"+d+"}",i=!0):(t+=s.value,i=!0);break;case"expression":t+=s.value;break;case"fraction":t+=h$(s.numerator,s.denominator);break;case"radical":t+="\\sqrt",s.index&&(t+="["+Nu(s.index)+"]"),t+="{"+Nu(s.value)+"}";break;case"basic_level":t+=g$(s.level,s.value,o),s.level==="9"&&(o="");break;case"bracketed_level":t+=m$(s.level,s.lbrack,s.value,s.rbrack,o),s.level==="9"&&(o="");break;case"primes":l&&(l.type==="basic_level"||l.type==="bracketed_level")&&l.level==="5"?o=s.value:e&&e!==""?(t+=Array(s.value.length+1).join("\\prime "),o=""):(t+=s.value,o="");break}}return t+=o,t.replace(/([^\\])( )$/,"$1")}var OE=1,YM=-1,PE=0,UM=2;function c$(r){let e=[],t=[];for(let i=0;i<r.length;i++){let o=r[i];if(d$(o))e.push({direction:OE,index:i}),t.push(PE);else if(p$(o)){for(;e.length&&e[e.length-1].direction===UM;)e.pop();if(e.length){let n=e.pop();if(n){let a=n.index;t[a]=OE,t.push(YM)}}else t.push(PE)}else if(u$(o))if(e.length&&e[e.length-1].direction===UM){let n=e.pop();if(n){let a=n.index;t[a]=OE,t.push(YM)}}else e.push({direction:UM,index:i}),t.push(PE);else t.push(PE)}return t}function d$(r){return r.type==="terminal"?/^(\\langle |\[|\(|\\{)$/.test(r.value):!1}function p$(r){return r.type==="terminal"?/^(\\rangle |\]|\)|\\})$/.test(r.value):!1}function u$(r){return r.type==="terminal"?/^(\\\||\|)$/.test(r.value):!1}function h$(r,e){return"\\frac{"+Nu(r)+"}{"+Nu(e)+"}"}function g$(r,e,t){let i="",o="{"+Nu(e,r)+"}";return r==="9"?i+=t+"^"+o:r==="5"&&(i+="_"+o),i}function m$(r,e,t,i,o){let n="",a="{"+e+Nu(t,r)+i+"}";return r==="9"?n+=o+"^"+a:r==="5"&&(n+="_"+a),n}var f$=Nu;function b$(r,e){return e&&e.operatorNames?BE(e.operatorNames):zE(),Sm(l$(r,e),t=>f$(t,""))}var V5=` A1B'K2L@CIF/MSP"E3H9O6R^DJG>NTQ,*5<-U8V.%[$+X!&;:4\\0Z7(_?W]#Y)=`,P5=10240;function y$(r){return String.fromCharCode(P5+r)}function x$(r){return r.charCodeAt(0)-P5}function w$(r){return V5[r]}function v$(r){return V5.indexOf(r)}function C$(r){let e="";for(let t of r)e+=y$(v$(t));return e}function L5(r){let e="";for(let t of r)e+=w$(x$(t));return e}function S$(r){return L5(r).replace(/[@-^]/g,e=>String.fromCharCode(e.charCodeAt(0)+32))}function E$(r){let e="";if(r)for(let t of r){let i=t.charCodeAt(0);96<=i&&i<=127&&(i-=32,t=String.fromCharCode(i)),32<=i&&i<=95&&(t=C$(t),i=t.charCodeAt(0)),10305<=i&&i<=10495&&(i=10240+(i-1024)%64,t=String.fromCharCode(i)),10240<=i&&i<=10304?e+=t:e+="\u2800"}return e}function D$(r){for(let e=0;e<r.length;e++){let t=r.charCodeAt(e);if(t<10240||t>10304)return!1}return!0}function O5(r){if(!D$(r))throw new Error("EncodingError: Expected input to be six-dot unicode braille characters.")}function aA(r,e){return O5(r),YW(vn.toBrailleAscii(r),e)}function od(r,e){return e&&e.operatorNames?BE(e.operatorNames):zE(),Sm(tW(r),vn.coerceToSixDotCells)}function sA(r,e){return O5(r),b$(vn.toBrailleAscii(r),e)}function nd(r,e){return e&&e.operatorNames?BE(e.operatorNames):zE(),Sm(hW(r),vn.coerceToSixDotCells)}var vn={coerceToSixDotCells:E$,toBrailleAscii:L5,toExpandedBrailleAscii:S$},k$="1.0.3";var T$=10240;function I$(r,e,t,i,o){let{dotSpacing:n}=r,a=1+n;var s=o.charCodeAt(0)-T$;s&1&&e.fillRect(t,i,1,1),s&2&&e.fillRect(t,i+a,1,1),s&4&&e.fillRect(t,i+2*a,1,1),s&8&&e.fillRect(t+a,i,1,1),s&16&&e.fillRect(t+a,i+a,1,1),s&32&&e.fillRect(t+a,i+2*a,1,1)}function qE(r,e){let{x:t,y:i,width:o,height:n}=e,a=r.getImageData(t,i,o,n).data;for(let s=3;s<a.length;s+=4)if(a[s]!==0)return!1;return!0}function M$(r,e){let{x:t,y:i,width:o,height:n}=e,a=r.getImageData(t,i,o,n).data;for(let s=3;s<a.length;s+=4)if(a[s]===0)return!1;return!0}function lA(r,e,t,i,o){return qE(e,WE(r,t,i,o))}function A$(r,e,t,i,o){let{dotSpacing:n}=r,a=3+2*n;for(var s=0;s<o.length;s++)I$(r,e,t+a*s,i,o[s])}function sd(r,e){let{dotSpacing:t}=r;return(2+t)*e.length+(1+t)*(e.length-1)}function HE(r,e){let{dotSpacing:t}=r;return 3+2*t}function WE(r,e,t,i){let{cellPadding:o}=r;return{x:e-o,y:t-o,width:sd(r,i)+2*o,height:HE(r,i)+2*o}}function KE(r,e){if(!r)return e;let t=Math.min(r.x,e.x),i=Math.min(r.y,e.y),o=Math.max(r.x+r.width,e.x+e.width)-t,n=Math.max(r.y+r.height,e.y+e.height)-i;return{x:t,y:i,width:o,height:n}}function _5(r,e,t){return Math.min(Math.max(r,e),t)}function my(r,e,t,i,o){return{x:_5(t,0,e.canvas.width-sd(r,o)),y:_5(i,0,e.canvas.height-HE(r,o))}}function fy(r,e,t,i,o){let n=e.fillStyle;e.fillStyle="white";let a=WE(r,t,i,o);e.fillRect(a.x,a.y,a.width,a.height),e.fillStyle="black",A$(r,e,t,i,o),e.fillStyle=n}function cA(r,e,t,i){let{cellPadding:o}=r;return{x:Math.round(e-(sd(r,i)+o)),y:t}}function G$(r){return r.replace(/\u283C(?!$)/g,"")}function ad(r,e){let t=e==="nemeth"?od(r):nd(r);return t.isError?"":G$(t.value)}function Dm(r,e){return e>=0?r*Math.pow(10,e):r/Math.pow(10,-e)}function R5(r,e,t,i){let[o,n]=t,a=Math.ceil(Math.log(n-o)/Math.LN10)-1,s=a,l=5,c=15;e:for(let u=a;a-u<4;u--)for(let h of[5,2,1]){let g=Dm(h,u),b=Math.floor(o/g)+1,C=Math.ceil(n/g)-1;var d=Math.abs(i(g)-i(0));let S=ad(String(Dm(b*h,u)),e),k=ad(String(Dm(C*h,u)),e);if(d<sd(r,S)+sd(r," ")||d<sd(r,k)+sd(r," ")||C-b>=c)break e;s=u,l=h}return{int:l,exp:s}}function N5(r,e,t){return R5(r,e,[t.viewport.xmin,t.viewport.xmax],i=>t.mapx(i))}function V$(r,e,t){return t.viewport.isSquare(t.screen,{xAxisScale:t.settings.xAxisScale,yAxisScale:t.settings.yAxisScale})?N5(r,e,t):R5(r,e,[t.viewport.ymin,t.viewport.ymax],i=>t.mapy(i))}function F5(r,e){let{int:t,exp:i}=r,[o,n]=e,a=Math.ceil(o/Dm(t,i)),s=Math.floor(n/Dm(t,i)),l=[];for(var c=a;c<=s;c++)l.push(Dm(c*t,i));return l}function P$(r,e,t){return{x:F5(N5(r,e,t),[t.viewport.xmin,t.viewport.xmax]),y:F5(V$(r,e,t),[t.viewport.ymin,t.viewport.ymax])}}function B5(r,e,t,i,o){if(t.margins===void 0||e===void 0)return;let n=L$(i),a=t.margins,s={...e.settings},l=s.showGrid&&O$(i),c=!!s.showXAxis,d=!!s.showYAxis,u=!!s.xAxisNumbers,h=s.xAxisArrowMode,g=!!s.yAxisNumbers,b=s.yAxisArrowMode,C=n.graphLineWidth,S={showGrid:!1,xAxisNumbers:!1,xAxisArrowMode:"NONE",yAxisNumbers:!1,yAxisArrowMode:"NONE",showXAxis:!1,showYAxis:!1,graphLineWidth:C,pointLineWidth:2.5,curveOpacity:1,globalCurveColor:"#000",disableFill:!0};for(let D in S)e.settings[D]=S[D];let k=r.width-a.right-a.left,I=r.height-a.top-a.bottom,M=new oc(k,I),E=e.getProjection().viewport;e.settings.squareAxes&&(E=E.squareCrop(M,e.settings));let A=new Ts(M,E,e.settings),V=r.getContext("2d"),G=document.createElement("canvas");G.width=k,G.height=I;let P=G.getContext("2d"),O=document.createElement("canvas");O.width=k,O.height=I;let R=O.getContext("2d"),q=document.createElement("canvas");q.width=k,q.height=I;let J=q.getContext("2d"),U=document.createElement("canvas");U.width=k,U.height=I;let z=U.getContext("2d"),K=document.createElement("canvas");K.width=k,K.height=I;let v=K.getContext("2d");if(V!==null&&z!==null&&P!==null&&J!==null&&v!==null&&R!==null){e.settings.disableFill=!0,e.screenshotToCanvas(U,{width:k,height:I,targetPixelRatio:1,transparentBackground:!0}),e.settings.disableFill=!1,e.screenshotToCanvas(G,{width:k,height:I,targetPixelRatio:1,transparentBackground:!0}),V.fillStyle="white",V.fillRect(0,0,r.width,r.height);let D=Math.round(A.mapx(0)),_=Math.round(A.mapy(0)),te=s.xAxisLabel!==""?s.xAxisLabel.replace(/ /g,"\\ "):"x",Q=s.yAxisLabel!==""?s.yAxisLabel.replace(/ /g,"\\ "):"y",De=1;if(c&&A.coordsAreOnscreen(k-6,_-8,0)){let j={...n,cellPadding:n.cellPadding+De},X=2+2*HE(j,te),fe=k-2,be=_-X,Me=ad(te,o);({x:fe,y:be}=cA(j,fe,be,Me)),{x:fe,y:be}=my(j,P,fe,be,Me),fy(j,v,fe,be,Me)}if(d&&A.coordsAreOnscreen(D+4,1,0)){let j={...n,cellPadding:n.cellPadding+De},X=D+4,fe=1,be=ad(Q,o);({x:X,y:fe}=my(j,P,X,fe,be)),fy(j,v,X,fe,be)}let{x:se,y:re}=P$(n,o,A);if(c){let j;for(let X of se){if(X===0&&d)continue;let fe=Math.round(A.mapx(X));if(!(fe<2||fe>A.screen.width-2)&&u){let be=sd(n,ad("-1",o))-sd(n,ad("1",o)),Me=X<0?be+1:1,Be=fe-Me,Xe=_+4,_t=ad(""+X,o);({x:Be,y:Xe}=my(n,v,Be,Xe,_t)),lA(n,z,Be,Xe,_t)&&(fy(n,v,Be,Xe,_t),j=KE(j,WE(n,Be,Xe,_t)))}}n.embossPatternInequalities&&j&&(j=KE(j,{x:0,y:_,width:k,height:0}),J.fillStyle="white",J.fillRect(j.x,j.y,j.width,j.height))}if(d){let j;for(let X of re){if(X===0&&c)continue;let fe=Math.round(A.mapy(X));if(fe<2||fe>A.screen.height-2)continue;let be=-Math.ceil(HE(n," ")/2);if(g){let Me=D-4,Be=fe+be,Xe=ad(""+X,o);({x:Me,y:Be}=cA(n,Me,Be,Xe)),{x:Me,y:Be}=my(n,v,Me,Be,Xe),lA(n,z,Me,Be,Xe)&&(fy(n,v,Me,Be,Xe),j=KE(j,WE(n,Me,Be,Xe)))}}n.embossPatternInequalities&&j&&(j=KE(j,{x:D,y:0,width:0,height:I}),J.fillStyle="white",J.fillRect(j.x,j.y,j.width,j.height))}if(c&&d){let j=D-2,X=_+2,fe=ad(u||g?"0":"o",o);({x:j,y:X}=cA(n,j,X,fe)),A.coordsAreOnscreen(j,X,0)&&({x:j,y:X}=my(n,v,j,X,fe),lA(n,z,j,X,fe)&&fy(n,v,j,X,fe))}for(let j of se){let X=Math.round(A.mapx(j));X<2||X>A.screen.width-2||d&&j===0||l&&by(J,"white",X-1,0,I,3)}for(let j of re){let X=Math.round(A.mapy(j));X<2||X>A.screen.height-2||c&&j===0||l&&yy(J,"white",X-1,0,k,3)}c&&yy(J,"white",_-3,0,k,7),d&&by(J,"white",D-3,0,I,7);for(let j of se){let X=Math.round(A.mapx(j));X<2||X>A.screen.width-2||d&&j===0||(l?by(J,UE(i),X,0,I):c&&by(J,UE(i),X,_-3,_+2))}for(let j of re){let X=Math.round(A.mapy(j));X<2||X>A.screen.height-2||c&&j===0||(l?yy(J,UE(i),X,0,k):d&&yy(J,UE(i),X,D-3,D+2))}if(c&&yy(J,Em(i),_,0,k),d&&by(J,Em(i),D,0,I),b!=="NONE"&&(N$(J,Em(i),D,0),b==="BOTH"&&R$(J,Em(i),D,I-1)),h!=="NONE"&&(_$(J,Em(i),k-1,_),h==="BOTH"&&F$(J,Em(i),0,_)),n.embossPatternInequalities)for(let j=0;j<k;j+=6)for(let X=0;X<I;X+=6){let fe={x:j,y:X,width:3,height:3};M$(P,fe)&&qE(J,fe)&&qE(z,fe)&&qE(v,fe)&&B$(R,"black",j,X)}n.embossPatternInequalities||V.drawImage(G,a.left,a.top),V.drawImage(q,a.left,a.top),V.drawImage(U,a.left,a.top),V.drawImage(K,a.left,a.top),n.embossPatternInequalities&&V.drawImage(O,a.left,a.top)}for(let D in S)e.settings[D]=s[D]}function L$(r){if(r==="etc8"||r==="etc11")return{dotSpacing:0,cellPadding:1,graphLineWidth:1.75,embossPatternInequalities:!0};if(r==="vpmax8"||r==="vpmax11")return{dotSpacing:1,cellPadding:2,graphLineWidth:1,embossPatternInequalities:!1};{let e=r;throw new Error(`Unexpected embosser model ${e}`)}}function O$(r){if(r==="etc8"||r==="etc11")return!1;if(r==="vpmax8"||r==="vpmax11")return!0;{let e=r;throw new Error(`Unexpected embosser model ${e}`)}}function Em(r){switch(r){case"vpmax8":case"vpmax11":return"rgb(145, 145, 145)";case"etc8":case"etc11":return"rgb(0, 0, 0)";default:let e=r;throw new Error("Unexpected embosser model: "+e)}}function UE(r){switch(r){case"vpmax8":case"vpmax11":return"rgb(219, 219, 219)";case"etc8":case"etc11":return"rgb(0, 0, 0)";default:let e=r;throw new Error("Unexpected embosser model: "+e)}}function by(r,e,t,i,o,n=1){let a=r.fillStyle;r.fillStyle=e,r.fillRect(t-1,i,n,o-i),r.fillStyle=a}function yy(r,e,t,i,o,n=1){let a=r.fillStyle;r.fillStyle=e,r.fillRect(i,t-1,o-i,n),r.fillStyle=a}function _$(r,e,t,i){let o=r.fillStyle;r.fillStyle=e;for(var n=-2;n<=2;n++)r.fillRect(t-Math.abs(n),i-1+n,1,1);r.fillStyle=o}function F$(r,e,t,i){let o=r.fillStyle;r.fillStyle=e;for(var n=-2;n<=2;n++)r.fillRect(t+Math.abs(n),i-1+n,1,1);r.fillStyle=o}function R$(r,e,t,i){let o=r.fillStyle;r.fillStyle=e;for(var n=-2;n<=2;n++)r.fillRect(t-1+n,i-Math.abs(n),1,1);r.fillStyle=o}function N$(r,e,t,i){let o=r.fillStyle;r.fillStyle=e;for(var n=-2;n<=2;n++)r.fillRect(t-1+n,i+Math.abs(n),1,1);r.fillStyle=o}function B$(r,e,t,i){let o=r.fillStyle;r.fillStyle=e,r.fillRect(t+1,i,1,1),r.fillRect(t,i+1,1,1),r.fillRect(t+1,i+1,1,1),r.fillRect(t+2,i+1,1,1),r.fillRect(t+1,i+2,1,1),r.fillStyle=o}var km={};km.vpmax8={width:170,height:220,margins:{left:5,top:15,right:5,bottom:50}};km.vpmax11={width:230,height:220,margins:{left:15,top:15,right:5,bottom:5}};km.etc8={width:96,height:96,margins:{left:5,top:15,right:0,bottom:0}};km.etc11={width:132,height:134,margins:{left:10,top:15,right:5,bottom:5}};var xy=class{constructor(e){this.grapher=e,this.controller=this.grapher.controller,this.renderedTabTargetOrder=[],this.renderedTabTargets={}}redrawToCtx(e,t,i){let{ctx:o,projection:n}=e;this.renderedTabTargets={},this.renderedTabTargetOrder=[],yn(o,"background-images"),(i===void 0||i.length<__dcg_shared_module_exports__['Da'](t))&&(i=__dcg_shared_module_exports__['La'](t));for(let s of i){let l=t[s];l&&l.shouldGraph&&!l.foreground&&CS(e,l,this.grapher.clickableObjectsLayer,{currentKeyboardAttention:this.controller.get2dPOIController().keyboardAttentionManager.getKeyboardAttention(),cacheRenderedSvgs:this.controller.getGraphSettings().config.cacheRenderedSvgs});var a=this.controller.getItemModel(s);if(a&&a.type==="image"&&a.shouldGraph&&Ws(a)){let c=a.formula.dimensions;if(!c||!c.x||!c.y||!c.width||!c.height||!c.radianAngle)continue;for(let d=0;d<c.x.length;d++)if(isFinite(c.x[d])&&isFinite(c.y[d])&&isFinite(c.width[d])&&isFinite(c.height[d])&&isFinite(c.radianAngle[d])){this.renderedTabTargetOrder.push(s),this.renderedTabTargets[s]={id:s,description:this.getComputedDescription(a,d),x:c.x[d],y:c.y[d],radianAngle:c.radianAngle[d],width:c.width[d],height:c.height[d],widthScale:Math.abs(n.mapx(1)-n.mapx(0)),heightScale:Math.abs(n.mapy(1)-n.mapy(0)),screenX:n.mapx(c.x[d]),screenY:n.mapy(c.y[d]),centerId:a.formula.center_reference_id,selected:An(a)};break}}}xn(o),this.speakAriaAlert()}getOrderedTabTargets(){return this.getTabIndex()===-1?[]:this.renderedTabTargetOrder.map(e=>{var i;let t=this.renderedTabTargets[e];return{calcId:t.id,listIndex:void 0,polygonEdge:void 0,description:this.controller.isGeometry()||(i=this.getAriaAlert({id:t.id,includeUsageInstructions:!0}))==null?void 0:i.completeMessage}})}getStyle(e){var t=this.renderedTabTargets[e];if(!t)return;let{screenX:i,screenY:o,radianAngle:n,width:a,height:s,widthScale:l,heightScale:c}=t,d=c/l,u=a*l,h=s*c/d,g=i-u/2,b=o-h/2;var C=`translate(${g}px, ${b}px)`,S=n?` rotate(${n}rad)`:"",k=d===1?"":` scale(1,${d})`;return{position:"absolute",top:0,left:0,transform:C+k+S,width:u+"px",height:h+"px"}}getTabIndex(){if(this.controller.getActiveTool()!=="selection")return-1;var e=this.grapher.settings;return e.config.graphpaper&&e.config.enableTabindex?0:-1}getAriaHidden(){var e=this.grapher.settings;return!e.config.graphpaper}getComputedDescription(e,t){let i=e.formula&&e.formula.computed_description&&e.formula.computed_description[t];return i&&i!==""?xo(i):this.grapher.getAudioTrace().getExpressionAriaLabel(e.id)}getAriaLabel(e){var t=this.getAriaAlert({id:e,includeUsageInstructions:!1});return t&&t.completeMessage}speakAriaAlert(){if(this.controller.isGeometry())return;let e=this.getFocusedImage();if(!e){this.lastAriaAlert=void 0;return}let t=e.id,i=this.getAriaAlert({id:t,lastAriaAlert:this.lastAriaAlert,includeUsageInstructions:!0});this.lastAriaAlert=i,i&&i.completeMessage&&ie(i.completeMessage)}getAriaAlert(e){let{id:t,lastAriaAlert:i,includeUsageInstructions:o}=e;if(t){var n=this.controller.getItemModel(t);if(!(!n||n.type!=="image")){var a=this.renderedTabTargets[t];if(a){i&&i.id!==t&&(i=void 0);var s=i==null?void 0:i.label,l=a.description,c=s!==l,d=!!(i!=null&&i.selected),u=a.selected,h=d!==u,g=i&&i.coordX,b=i&&i.coordY,C=a.x,S=a.y,k=C!==g||S!==b,I=this.grapher.getProjection(),M=on(this.controller,C),E=nn(this.controller,S),A=`${M} ${E}`,V=l,G=o?this.controller.s("graphing-calculator-narration-movable-point-suffix-usage-instructions"):"",P=this.isImageFullyVisible(n,I)?"":this.controller.s("graphing-calculator-narration-draggable-image-off-screen-prompt"),O;return i?c||!k&&h?O=V+P:k?O=A+P:O="":O=this.controller.s("graphing-calculator-narration-item-at-coordinates",{itemDescription:V,x:M,y:E})+G+P,{id:t,coordX:C,coordY:S,label:l,completeMessage:O}}}}}getFocusedImage(){let e=this.grapher.poiController.keyboardAttentionManager.getKeyboardAttention();return e?this.renderedTabTargets[e.calcId]:void 0}speakImageAttribute(e,t){if(e){var i=this.grapher.getAudioTrace();if(i){var o=this.grapher.getProjection();if(o)switch(t){case"X":ie(on(this.controller,e.x));break;case"Y":ie(nn(this.controller,e.y));break;case"L":ie(e.description);break}}}}hasNonlinearMoveStrategy(e){if(!e)return!1;var t=this.controller.getItemModel(e);if(!t||t.type!=="expression"||!t.formula)return!1;var i=t.formula.move_strategy;return!i||!i[0]?!1:i[0].type==="updateSliderNonlinear"}isImageFullyVisible(e,t){let i=e.formula.dimensions;if(!i||!i.x||!i.y)return!1;for(let o=0;o<i.x.length;o++)if(!t.coordsAreOnscreen(t.mapx(i.x[o]),t.mapy(i.y[o])))return!1;return!0}};function z5(r,e){return`${r}_dcg_delim_${e}`}var wy=class{constructor(e){this.hoveredObjects={},this.grapher=e,this.controller=this.grapher.controller,this.renderedTabTargetOrder=[],this.renderedTabTargets={}}getOrderedTabTargets(){return this.renderedTabTargetOrder.map(e=>{let t=this.renderedTabTargets[e];return{calcId:t.id,listIndex:t.listIndex,polygonEdge:void 0,description:t.description}})}redraw(){this.renderedTabTargets={},this.renderedTabTargetOrder=[];let e=this.grapher.getSketchOrder();for(let t of e){let i=this.controller.getItemModel(t);if(!i)continue;let o=this.grapher.getGraphSketch(t),n=this.grapher.getGraphImage(t);if(o&&i.type==="expression"&&fn(i))for(let a=0;a<o.branches.length;a++){let s=o.branches[a];if(!s.segments||s.segments.length===0)continue;let l=0;s.graphMode===3||s.graphMode===4?o.getBranchPOI(a).forEach(c=>{l=c.pointIdxOnBranch||0,isFinite(c.x)&&isFinite(c.y)&&this.addTabTarget(i,l)}):(l="listIndex"in s&&s.listIndex!==void 0?s.listIndex:0,s.segments.length>0&&this.addTabTarget(i,l))}else if(n&&n.shouldGraph&&i.type==="image"&&su(i)){let a=i.formula&&i.formula.dimensions;if(!a||!a.x||!a.y||!a.width||!a.height||!a.radianAngle)continue;for(let s=0;s<a.x.length;s++)isFinite(a.x[s])&&isFinite(a.y[s])&&isFinite(a.width[s])&&isFinite(a.height[s])&&isFinite(a.radianAngle[s])&&this.addTabTarget(i,s)}}Object.keys(this.hoveredObjects).length||this.pressedObject?this.grapher.setLayerClass("clickableObjects","dcg-mouse-over-clickable-object"):this.grapher.setLayerClass("clickableObjects",void 0)}addTabTarget(e,t){let i=z5(e.id,t);this.renderedTabTargetOrder.indexOf(i)!==-1||this.renderedTabTargets[i]!==void 0||(this.renderedTabTargetOrder.push(i),this.renderedTabTargets[i]={type:e.type,id:e.id,listIndex:t,description:this.getComputedDescription(e,t)})}getTabIndex(e){if(this.controller.getActiveTool()!=="selection"||!this.renderedTabTargets[e])return-1;let i=this.grapher.settings;return!i.config.graphpaper||!i.config.enableTabindex?-1:0}getAriaHidden(){return!this.grapher.settings.config.graphpaper}getCachedDescription(e){return this.renderedTabTargets[e].description}getComputedDescription(e,t){let i=e.formula&&e.formula.computed_description&&e.formula.computed_description[t];return i&&i!==""?xo(i):this.grapher.getAudioTrace().getExpressionAriaLabel(e.id)}getModelId(e){let t=this.renderedTabTargets[e];return t?t.id:""}getListIndex(e){let t=this.renderedTabTargets[e];if(t)return t.listIndex}isKeyboardFocused(e,t){if(!e)return!1;let i=this.grapher.poiController.keyboardAttentionManager.getKeyboardAttention(),o=i==null?void 0:i.calcId;return e===o&&(t===void 0||t===(i==null?void 0:i.listIndex))}shouldDrawHovered(e,t,i){if(!t)return!1;if(this.isKeyboardFocused(t,i))return!0;let{translationPreviewVectorParents:o,rotationPreviewAngleMarkerParents:n}=e.transformationPreviewParentData;if(o.has(t)||n.has(t)&&!this.controller.isToolPreviewItem(t))return!0;if(this.isAnObjectPressed()&&!this.isObjectPressed(t))return!1;let a=this.getHoveredObjectById(t);return a?a.listIndexes===void 0||i===void 0?!0:!!a.listIndexes[i]:!1}setHoveredObjects(e){__dcg_shared_module_exports__['Oa'](e,this.hoveredObjects)||(this.hoveredObjects=e,this.requestRedrawNextFrame())}getHoveredObjects(){let e=this.grapher.poiController.keyboardAttentionManager.getKeyboardAttention();if(e){let t=__dcg_shared_module_exports__['i'](this.hoveredObjects),i=t[e.calcId],o=e.listIndex||0;return i?i.listIndexes?i.listIndexes[o]=!0:i.listIndexes={[o]:!0}:(i={listIndexes:{[o]:!0}},t[e.calcId]=i),t}else return this.hoveredObjects}getHoveredObjectById(e){return this.getHoveredObjects()[e]}shouldDrawPressed(e,t){if(!e)return!1;let i=this.pressedObject;return!i||i.id!==e?!1:t===void 0?!0:i.listIndex===t}isObjectPressed(e){return e===void 0?!1:!!(this.pressedObject&&this.pressedObject.id===e)}setPressedObject(e){!e&&!this.pressedObject||e&&this.pressedObject&&e.id===this.pressedObject.id&&e.listIndex===this.pressedObject.listIndex||(this.pressedObject=e,this.requestRedrawNextFrame())}getPressedObject(){return this.pressedObject}isAnObjectPressed(){return!!this.pressedObject}requestRedrawNextFrame(){this.controller.requestRedrawGraph()}shouldDrawGhosted(e){if(!e)return!1;let t=this.controller.getItemModel(e);return!t||t.type!=="expression"?!1:Zo(t)}};Pc();var ir=class{constructor(e){this.model=e;this.s=e.s}createOutput(){return this.model.createCustomToolOutput(this.getSpec())}clearTentativeOutputs(){let e=this.getSpec();var t={},i=this.model.getNonObjectsState().ui.currentTool.idMap;for(let o in i){let n=i[o];!this.model.isObjectALockedToolInput(n)&&this.model.isObjectUncommitted(n)&&(t[o]=n)}this.model.deleteObjectsAndRememberReusableId(t),this.model.tentativelyMatchToolInput(e,""),this.createOutput()}didLockInput(e){var n;let{currentTool:t}=this.model.getNonObjectsState().ui,i=t.inputIndex,o=e.inputs[i];o&&(n=o.numberInputInfo)!=null&&n.defaultLatex&&!t.idMap[o.id]&&this.onNumberInput(o.numberInputInfo.defaultLatex)}shouldReferenceSpecificItemInList(e,t){return!t}getExpandedReferenceForDef(e,t){return this.shouldReferenceSpecificItemInList(e,t)?e.referenceLatex:e.assignment}getListIndexForHover(e,t){if(this.shouldReferenceSpecificItemInList(e,t))return e.listIndex}_getOrCreatePoint(e,t,i){var c,d;let o=this.model.getOrCreatePointNearMouse(e,i);if(o.type==="def")return{createdNew:!1,def:o.def,reference:this.getExpandedReferenceForDef(o.def,t),previewOnly:!1};let n=this.createPointDefinition(o.spec,t),a=o.spec.type==="point-reference"?o.spec.targetSpec.parentDefs:o.spec.parentDefs,s=0;for(let u=0;u<a.length;u++){let h=a[u];if(h.polygonEdgeInfo){let g=this.model.createToolInputDependency({type:"polygon-segment",parents:[(c=h.polygonEdgeInfo)==null?void 0:c.polygonDef.referenceLatex],edgeNumber:((d=h.polygonEdgeInfo)==null?void 0:d.edgeNumber)||0},this.getSpec(),s);n.parents[u]=g,s+=1,this.model.setObjectHovered({tokenId:g,listIndex:void 0})}else this.model.setObjectHovered({calcId:h.calcId,listIndex:this.getListIndexForHover(h,t)})}return{createdNew:!0,def:void 0,reference:this.model._createInputObject(n),previewOnly:n.type==="point"&&n.previewOnly}}_isReadyToCommit(){return this.model.getNonObjectsState().ui.currentTool.inputIndex>=this.getSpec().inputs.length}_getFirstMissingInput(){let{inputIndex:e}=this.model.getNonObjectsState().ui.currentTool;return this.getSpec().inputs[e]}canNextInputBePoint(){let e=this._getFirstMissingInput();return e&&e.type==="point"?!0:!!(e&&e.type==="union"&&e.valueTypes.indexOf(__dcg_shared_module_exports__['p'])!==-1)}getNonPointInputType(){let e=this._getFirstMissingInput();if(!(!e||e.type==="point"))return e.type==="union"?e:e.type}isValidNextInputType(e){if(this.canNextInputBePoint()&&__dcg_shared_module_exports__['aa'](e,__dcg_shared_module_exports__['p']))return!0;let t=this._getFirstMissingInput();if(!t)return!1;let i=[];if(t.type==="union")i=t.valueTypes;else{let o=t.type;switch(o){case"point":i=[__dcg_shared_module_exports__['p']];break;case"straight":i=[...__dcg_shared_module_exports__['ba']];break;case"angle":i=[__dcg_shared_module_exports__['J'],__dcg_shared_module_exports__['L']];break;case"arc":i=[__dcg_shared_module_exports__['D']];break;case"circle":i=[__dcg_shared_module_exports__['B']];break;case"polygon":i=[__dcg_shared_module_exports__['x']];break;case"segment":i=[__dcg_shared_module_exports__['z']];break;case"vector":i=[__dcg_shared_module_exports__['P']];break;default:return o}}return t.numberInputInfo&&i.push(__dcg_shared_module_exports__['o']),i.some(o=>__dcg_shared_module_exports__['aa'](e,o))}getAllValidNextInputTypes(){return __dcg_shared_module_exports__['W'].filter(e=>this.isValidNextInputType(e))}getHint(){let e=this._getFirstMissingInput();return e?e.hint!==void 0?this.s(e.hint):this.s("graphing-calculator-text-geometry-select-hint",{type:e.type}):""}getSpecIdToLockIn(e,t){let i=e.inputs[t];if(i)return i.id}tryCommitResults(){if(this.model.attemptLockToolInputIn(this.getSpec()),this._isReadyToCommit()){let e=this.model.getUncommittedObjects();for(let i in e)e[i].type==="expression-edit-preview-latex"&&delete e[i];let t={...this.model.getNonObjectsState().ui.currentTool.idMap};return this.model.commitObjects(),this.model.deselectAllObjects(),this.model.cancelToolplay(),{committed:e,toolIdToLatex:t}}return{committed:void 0}}tentativelyAddInput({target:e,pointInfo:t},i){var n,a;let o;if(e)if(e.polygonEdgeInfo){let s=this.model.createToolInputDependency({type:"polygon-segment",parents:[(n=e.polygonEdgeInfo)==null?void 0:n.polygonDef.referenceLatex],edgeNumber:((a=e.polygonEdgeInfo)==null?void 0:a.edgeNumber)||0},this.getSpec(),0);this.model.setObjectHovered({tokenId:s,listIndex:void 0}),o=s}else o=this.getExpandedReferenceForDef(e,i),this.model.setObjectHovered({calcId:e.calcId,listIndex:this.getListIndexForHover(e,i)});else t&&(o=t.reference,t!=null&&t.def&&!t.createdNew&&!t.previewOnly&&this.model.setObjectHovered({calcId:t.def.calcId,listIndex:this.getListIndexForHover(t.def,i)}));o&&this.model.tentativelyMatchToolInput(this.getSpec(),o)}onFocus(e){this.clearTentativeOutputs(),e&&this.tentativelyAddInput({target:e},!1),this.createOutput()}onMove(e){this.clearTentativeOutputs();let t=this.canNextInputBePoint(),i=this.getNonPointInputType(),o=!1;if(i){let n=this.model.getObjectDefUnderMouse(e.pt,e.tolerance);n&&this.model.objectIsInstanceOf(n,i)&&(this.tentativelyAddInput({target:n},e.shift),o=!0)}if(!o&&t){let n=this._getOrCreatePoint(e.pt,e.shift,e.tolerance);o=!n.previewOnly,this.isDegenerateInput(n.reference)?n.def&&this.model.setObjectHovered({calcId:n.def.calcId,listIndex:this.getListIndexForHover(n.def,e.shift)}):this.tentativelyAddInput({pointInfo:n},e.shift)}return this.createOutput(),o}isDegenerateInput(e){return!!this.model.getNonObjectsState().ui.currentTool.lockedIds[e]}getNumberInputLatex(){let e=this.getSpec(),{inputIndex:t,idMap:i}=this.model.getNonObjectsState().ui.currentTool,o=e.inputs[t];return o!=null&&o.numberInputInfo&&i[`${o.id}-number`]||""}onNumberInput(e){this.clearTentativeOutputs();let t=this.getSpec();this.model.storeNumberInputLatex(t,e),this.createOutput()}createPointDefinition(e,t){let i=e.parentDefs,o;switch(e.type){case"point-reference":{o={type:"point-reference",parents:[this.getExpandedReferenceForDef(i[0],t)]};break}default:{let n=i.map(a=>this.getExpandedReferenceForDef(a,t));o={...e,parents:n}}}return o}shouldUseJitEdges(){return!0}shouldHighlightRelevantObjects(){return!0}};function $E(r,e){if(typeof e=="object")return e.valueTypes.some(t=>__dcg_shared_module_exports__['aa'](r,t));switch(e){case"point":return r===__dcg_shared_module_exports__['p'];case"straight":return r===__dcg_shared_module_exports__['F']||r===__dcg_shared_module_exports__['H']||r===__dcg_shared_module_exports__['z']||r===__dcg_shared_module_exports__['P'];case"angle":return r===__dcg_shared_module_exports__['J']||r===__dcg_shared_module_exports__['L'];case"arc":return r===__dcg_shared_module_exports__['D'];case"circle":return r===__dcg_shared_module_exports__['B'];case"polygon":return r===__dcg_shared_module_exports__['x'];case"segment":return r===__dcg_shared_module_exports__['z'];case"vector":return r===__dcg_shared_module_exports__['P'];default:return e}}var dA="graphing-calculator-text-geometry-tool-vector-hint-start",K5="graphing-calculator-text-geometry-tool-vector-hint-end",U5="graphing-calculator-text-geometry-tool-vector-copy-hint-end",vy=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-vector-display-name",this.toolName="vector",this.toolType="simple",this.icon=[{type:"stroked-path",path:[32,68,65,35],lineWidth:"large",arrow:!0},{type:"point",x:32,y:68},{type:"point",x:68,y:32}]}getExpressionEditHint(t){return t===0?this.s(dA):this.firstInputIsVector()?this.s(U5):this.s(K5)}firstInputIsVector(){let{idMap:t}=this.model.getNonObjectsState().ui.currentTool,i=t[1],o=i&&this.model.findDefsForInputId(i)[0];return o&&o.typedRuntimeValue.valueType===__dcg_shared_module_exports__['P']}getSpec(){return this.firstInputIsVector()?{inputs:[{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['P']],id:"1",hint:dA},{type:"point",id:"2",hint:U5}],outputs:[{id:"3",type:"vector-copy",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}:{inputs:[{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['P']],id:"1",hint:dA},{type:"point",id:"2",hint:K5}],outputs:[{id:"3",type:"vector",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};function K$(r){return Array.isArray(r)&&r.length===2&&r.every(e=>Array.isArray(e)&&e.length===2&&e.every(t=>!Array.isArray(t)&&!isNaN(t)))}function Ku(r){if(!K$(r))return __dcg_shared_module_exports__['mb'](__dcg_shared_module_exports__['P']);let e=r[1][0],t=r[1][1],i=r[1][0]+r[0][0],o=r[1][1]+r[0][1];return[[e,t],[i,o]]}var ll=class extends ir{generateDefaultName(){return"does not matter"}};var q5="graphing-calculator-text-geometry-tool-rotation-hint-center",U$="graphing-calculator-text-geometry-tool-rotation-hint-angle",q$="graphing-calculator-text-geometry-tool-rotation-hint-angle-start",H$="graphing-calculator-text-geometry-tool-rotation-hint-angle-vertex",W$="graphing-calculator-text-geometry-tool-rotation-hint-angle-end",Uu=class extends ll{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-rotate-display-name",this.toolName="rotation",this.toolType="transformation"}getMode(){let{idMap:t}=this.model.getNonObjectsState().ui.currentTool;return t["2-number"]?"number":"directed-angle"}getExpressionEditHint(t){return t===0?this.s(q5):this.s(U$)}onNumberInput(t){super.onNumberInput(t),this.clearTentativeOutputs()}onMove(t){return this.getMode()==="number"&&this.model.getNonObjectsState().ui.currentTool.inputIndex===1?!1:super.onMove(t)}getSpecIdToLockIn(t,i){if(i===1){let o=t.inputs[i];return this.getMode()==="number"?`${o.id}-number`:o.id}return super.getSpecIdToLockIn(t,i)}isDegenerateInput(t){let{inputIndex:i,idMap:o}=this.model.getNonObjectsState().ui.currentTool;return this.getMode()==="directed-angle"&&i>0&&o[1]===t?o[1]===o[3]&&i===3:super.isDegenerateInput(t)}getPartialAnglePreviewInfo(){let{inputIndex:t,idMap:i}=this.model.getNonObjectsState().ui.currentTool;if(t>0){let o=this.model.findDefsForInputId(i[1])[0];if(!o)return;let n=[o.typedRuntimeValue],a=this.model.findDefsForInputId(i[2])[0],s=this.model.findDefsForInputId(i[3])[0];if(a&&s&&n.push(a.typedRuntimeValue,s.typedRuntimeValue),o)return{id:i["angle-output"],type:"rotation-with-incomplete-angle",args:n}}}getSpec(){let t={inputs:[{type:"point",id:"1",hint:q5},{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['L']],id:"2",hint:q$,numberInputInfo:{defaultLatex:"",sliderInfo:{value:this.model.controller.isDegreeMode()?"90":"1.57079632679",min:"0",max:this.model.controller.isDegreeMode()?"360":"2\\pi"}}}],outputs:[]},i={id:"number-output",type:"rotate",hidden:this.getMode()!=="number",name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2-number"}]};if(this.getMode()==="directed-angle"){let{idMap:o,inputIndex:n}=this.model.getNonObjectsState().ui.currentTool;n>1&&delete t.inputs[1].numberInputInfo;let a=o[2],s=!1,l=a&&this.model.findDefsForInputId(a)[0];s=!!(l&&l.typedRuntimeValue.valueType==__dcg_shared_module_exports__['p']),s?(t.inputs.push({type:"point",id:"3",hint:H$},{type:"point",id:"4",hint:W$}),t.outputs.push({id:"directed-angle",type:"directedangle",hidden:!1,showAngleLabel:!1,parents:[{type:"reference-input",id:"2"},{type:"reference-input",id:"3"},{type:"reference-input",id:"4"}]},{id:"angle-output",type:"rotate",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"directed-angle"}]})):t.outputs.push({id:"angle-output",type:"rotate",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]})}else t.outputs.push(i);return t}};var $$=Ao().reflectionArc,Y$=14,H5=2.5,j$=40,J$=15,X$=.75,Q$=1;function yp(r){return r.valueType===__dcg_shared_module_exports__['p']?r.value:r.valueType===__dcg_shared_module_exports__['t']?r.value[0]:void 0}function Z$(r){return r.valueType===__dcg_shared_module_exports__['P']?r.value:r.valueType===__dcg_shared_module_exports__['Q']?r.value[0]:void 0}function eY(r){return r.valueType===__dcg_shared_module_exports__['F']||r.valueType===__dcg_shared_module_exports__['H']||r.valueType===__dcg_shared_module_exports__['z']||r.valueType===__dcg_shared_module_exports__['P']?{segment:r.valueType===__dcg_shared_module_exports__['z'],value:r.value}:r.valueType===__dcg_shared_module_exports__['G']||r.valueType===__dcg_shared_module_exports__['I']||r.valueType===__dcg_shared_module_exports__['A']||r.valueType===__dcg_shared_module_exports__['Q']?{segment:r.valueType===__dcg_shared_module_exports__['A'],value:r.value[0]}:void 0}function W5(r){return r.valueType===__dcg_shared_module_exports__['o']?r.value:r.valueType===__dcg_shared_module_exports__['r']?r.value[0]:void 0}function $5(r){return r.valueType===__dcg_shared_module_exports__['L']?r.value:r.valueType===__dcg_shared_module_exports__['M']?r.value[0]:void 0}var YE=class{constructor(e){this.controller=e.controller}getTransformationPreviewInfoFromItem(e,t){var n;if(e.type!=="expression"||e.hidden)return;let{translationsWithVisibleVectorParent:i}=t.transformationPreviewParentData;if(i.has(e.id))return;let o=(n=e.formula.geometry)==null?void 0:n.transformation_preview_info;if(o)return{...o,id:e.id}}getInprogressTransformation(e){let t=this.controller.getAllToolPreviewItems();for(let o of t){let n=this.getTransformationPreviewInfoFromItem(o,e);if(n)return n}let i=this.controller.getGeoModel().getCurrentTool();if(i instanceof Uu)return i.getPartialAnglePreviewInfo()}getHoveredOrSelectedTransformations(e){let t=this.controller.getAllSelectedItems(),i=this.controller.getHoveredOrFocusedTokenIdentifier(),o=i?this.controller.getItemsByIdentifier(i)[0]:void 0;o&&!t.some(a=>a.id===o.id)&&t.push(o);let n=[];return t.forEach(a=>{if(a.type!=="expression")return;let s=this.getTransformationPreviewInfoFromItem(a,e);s&&n.push(s)}),n}drawTranslationPreview(e,t,i,o){let n=t.mapx(i[0]),a=t.mapy(i[1]),s=t.mapx(o[0]),l=t.mapy(o[1]);e.save(),e.beginPath(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=5,e.moveTo(n,a),e.lineTo(s,l),el(e,n,a,s,l,20),e.stroke(),e.restore()}drawReflectionPreview(e,t,i){let o=i.value,n=i.segment,[a,s,l,c]=Du([o[0][0],o[0][1],o[1][0],o[1][1]],t,18).clipped,d=(a+l)/2,u=(s+c)/2;if(n){let[I,M,E,A]=Du([o[0][0],o[0][1],o[1][0],o[1][1]],t,17).clipped;d=(I+E)/2,u=(M+A)/2}if(isNaN(d)&&isNaN(u))return;let h=40,g=h/__dcg_shared_module_exports__['ia'](a-l,s-c),b=d+(c-s)*g,C=u-(l-a)*g,S=d-(c-s)*g,k=u+(l-a)*g;if(e.save(),e.beginPath(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=4,e.moveTo(a,s),e.lineTo(l,c),$$){let I=Math.atan2(C-u,b-d),M=h,E=h*.7;e.moveTo(b,C),e.ellipse(d,u,M,E,I,0,Math.PI,!1);let A=.35,V=I+Math.PI/2+A,G=I+Math.PI/2-A;el(e,b+Math.cos(V),C+Math.sin(V),b,C,10),el(e,S+Math.cos(G),k+Math.sin(G),S,k,10)}else e.moveTo(b,C),e.lineTo(S,k),el(e,d,u,b,C,10),el(e,d,u,S,k,10);e.stroke(),e.restore()}drawDilationPreview(e,t,i,o){e.save(),e.beginPath(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=3;let n=o<.6||o>1.4&&o<2?6:10,a=t.pixelsToMath.mapX(25)-t.pixelsToMath.mapX(0);[[a,0],[0,a],[-a,0],[0,-a]].forEach(s=>{let l=[i[0]+s[0],i[1]+s[1]],c=__dcg_shared_module_exports__['Ub'](__dcg_shared_module_exports__['Rb'](i,o),l),[d,u]=t.map_xy_pairs(l),[h,g]=t.map_xy_pairs(c);e.moveTo(d,u),e.lineTo(h,g),el(e,d,u,h,g,n)}),e.stroke(),e.restore()}drawRotationPreview(e,t,i,o,n,a){if(this.drawRotationCenterPreview(e,t,i),!(n===void 0||!isFinite(n))){if(a!==void 0&&a!==0&&isFinite(a)){if(o&&o[0]===i[0]&&o[1]===i[1])return;this.drawFullRotationAngle(e,t,i,n,a,!1)}else if(o){this.drawPlaceholderRotationAngle(e,t,o,n);return}}}drawFullRotationAngle(e,t,i,o,n,a){e.save(),e.beginPath(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=H5;let s=j$,l=-o,c=-n,d,u;if(a){let k=Du([i[0],i[1],i[0]+Math.cos(o),i[1]+Math.sin(o)],t,19).clipped;d=k[0],u=k[1];let I=Du([i[0],i[1],i[0]+Math.cos(o+n),i[1]+Math.sin(o+n)],t,19).clipped;e.moveTo(d,u),e.lineTo(k[2],k[3]),e.moveTo(d,u),e.lineTo(I[2],I[3]);let M=s*Math.abs(c),E=.5*(1-X$)*M,A=Math.min(E,J$),V=(c>0?1:-1)*A/s;l+=V,c-=2*V}else[d,u]=t.map_xy_pairs(i);let h=c<=0,g=d+s*Math.cos(l),b=u+s*Math.sin(l),C=d+s*Math.cos(l+c),S=u+s*Math.sin(l+c);e.moveTo(g,b),e.arc(d,u,s,l,l+c,h),NI(e,C,S,l,c,10,s),e.stroke(),e.restore()}drawPlaceholderRotationAngle(e,t,i,o){e.save(),e.beginPath(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=Q$;let n=-o,[a,s]=t.map_xy_pairs(i);e.moveTo(a,s);let l=1.5*Zd(0,t);e.lineTo(a+l*Math.cos(n),s+l*Math.sin(n)),e.stroke(),e.restore()}drawRotationCenterPreview(e,t,i){let[o,n]=t.map_xy_pairs(i);e.save(),e.strokeStyle="rgba(0,0,0,.2)",e.lineWidth=H5,e.beginPath(),e.arc(o,n,Y$,0,2*Math.PI),e.stroke(),e.restore()}redrawToCtx(e){let{ctx:t,projection:i}=e,o=this.getInprogressTransformation(e),n=this.getHoveredOrSelectedTransformations(e);o&&n.push(o);for(let a=0;a<n.length;a++){let s=n[a],l=s.args;switch(s.type){case"translate":if(l.length===2){let c=yp(l[0]),d=yp(l[1]);c&&d&&this.drawTranslationPreview(t,i,c,d)}else if(l.length===1){let c=Z$(l[0]);if(c){let[d,u]=Ku(c);this.drawTranslationPreview(t,i,d,u)}}break;case"reflect":{let c=eY(l[0]);c&&this.drawReflectionPreview(t,i,c)}break;case"dilate":{let c=yp(l[0]),d=W5(l[1]);c&&d!==void 0&&isFinite(d)&&d!==1&&this.drawDilationPreview(t,i,c,d)}break;case"rotate":{let c=yp(l[0]);if(!c)return;let d=W5(l[1]),u=$5(l[1]),h,g;if(d!==void 0)g=this.controller.isDegreeMode()?d*Math.PI/180:d,h=0;else if(u)h=u[1],g=u[2],e.transformationPreviewParentData.rotationsWithVisibleAndCenteredAngle.has(s.id)&&(g=void 0);else return;this.drawRotationPreview(t,i,c,u?u[0]:void 0,h,g)}break;case"rotation-with-incomplete-angle":{let c=yp(l[0]);if(!c)return;let d,u;if(l.length>=3){let h=yp(l[1]);if(d=yp(l[2]),!c||!h||!d)return;let g=h[0]-d[0],b=h[1]-d[1];u=Math.atan2(b,g)}this.drawRotationPreview(t,i,c,d,u,void 0)}}}}};function Y5(r){var c,d,u,h,g,b,C,S,k,I;let e=new Set,t=new Set,i=new Set,o=new Set,n={},a={};for(let M of[...r.getAllItemModels(),...r.getAllToolPreviewItems()]){if(M.type!=="expression"||Zo(M))continue;let E=M.formula.typed_constant_value;if(!E)continue;if(__dcg_shared_module_exports__['ca'](E.valueType,__dcg_shared_module_exports__['P'])){let V=(c=Ii(M))==null?void 0:c.identifier;V&&(n[V]=M.id)}let A=$5(E);if(A){let V=(d=Ii(M))==null?void 0:d.identifier;V&&(a[V]={id:M.id,value:A})}}let s=r.getHoveredOrFocusedTokenIdentifier(),l=[...r.getAllItemModels().filter(M=>{var E;if(r.isItemSelected(M.id))return!0;if(M.type==="expression"&&s){let A=(E=Ii(M))==null?void 0:E.identifier;return s===A}return!1}),...r.getAllToolPreviewItems()];for(let M of l){if(M.type!=="expression")continue;let E=M.formula.geometry,A=E==null?void 0:E.transformation_preview_info;if(((u=E==null?void 0:E.call)==null?void 0:u.symbol)==="translate"&&(A==null?void 0:A.args.length)===1&&__dcg_shared_module_exports__['ca'](A.args[0].valueType,__dcg_shared_module_exports__['P'])){let V=(b=(g=(h=M.formula.geometry)==null?void 0:h.call)==null?void 0:g.parents)==null?void 0:b[0];if(!V)continue;let G=n[V[0]];G&&(e.add(M.id),t.add(G))}if(((C=E==null?void 0:E.call)==null?void 0:C.symbol)==="rotate"&&(A!=null&&A.args)&&(A==null?void 0:A.args.length)>1&&__dcg_shared_module_exports__['ca'](A.args[1].valueType,__dcg_shared_module_exports__['L'])){let V=(I=(k=(S=M.formula.geometry)==null?void 0:S.call)==null?void 0:k.parents)==null?void 0:I[1];if(!V)continue;let G=a[V[0]];if(!G)continue;o.add(G.id);let P=yp(A.args[0]);if(!P)continue;G.value[0][0]===P[0]&&G.value[0][1]===P[1]&&i.add(M.id)}}return{translationsWithVisibleVectorParent:e,translationPreviewVectorParents:t,rotationsWithVisibleAndCenteredAngle:i,rotationPreviewAngleMarkerParents:o}}var{floor:qu,ceil:Hu,round:tY,log10:jE,log2:j5,abs:wp}=Math,xp=r=>Yw?`rgba(255,255,255,${r})`:`rgba(0,0,0,${r})`,QE=class{redrawToCtx(e,t){let{ctx:i,projection:o}=e;yn(i,"graphpaper");let n=o.settings.showGrid&&!o.settings.threeDMode;if(o.settings.polarMode&&n){let a=ZR(o);yn(i,"grid"),this.drawPolarGrid(i,o,a),xn(i),yn(i,"axis"),this.drawAxes(i,o,t);let s=this.drawPolarStepNumbers(i,o,a);this.drawLabels(i,o,s),xn(i)}else{let a=Qc(o),s=pA(o);n&&(yn(i,"grid"),this.drawCartesianGrid(i,o,a,s),xn(i));let l=!n&&!o.settings.threeDMode;yn(i,"axis"),o.settings.threeDMode||this.drawAxes(i,o,t);let c=this.drawCartesianStepNumbers(i,o,a,l,s);this.drawLabels(i,o,c),xn(i)}xn(i)}addTextShadow(e,t){let{threeDMode:i,showPlane3D:o}=t.settings;e.strokeStyle=t.settings.getBackgroundColor({invertWhite:i}),e.lineWidth=3,i&&(!o||t.settings.invertedColors)&&(e.lineWidth=1.5),e.miterLimit=2}drawPolarGrid(e,t,i){e.save();let o=t.settings.minorAxisOpacity,a=1-(1-t.settings.majorAxisOpacity)/(1-o),s=__dcg_shared_module_exports__['pa'](t.mapx(0)),l=__dcg_shared_module_exports__['pa'](t.mapy(0)),c=t.screen.height/(t.viewport.ymax-t.viewport.ymin),d=t.screen.width/(t.viewport.xmax-t.viewport.xmin),u=c/d,h=d/c,g=l/u,b=t.viewport.smallestR(),C=t.viewport.largestR(),S=i.minorStepR*Math.max(1,Math.floor(b/i.minorStepR)),k=i.majorStepR*Math.max(1,Math.floor(b/i.majorStepR));e.lineWidth=1,e.strokeStyle=xp(o);for(let M of Is(S,C,i.minorStepR)){ei(e,"dcg-svg-minor-gridline"),e.beginPath(),Fr(e),e.scale(1,u);let E=t.mapx(M)-s;e.moveTo(s+E,g),e.arc(s,g,E,0,2*Math.PI),e.scale(1,h),e.stroke()}let I=b>0?5:15;for(let M of Is(0,359,I)){if((M===0||M===180)&&t.settings.showXAxis||(M===90||M===270)&&t.settings.showYAxis)continue;ei(e,"dcg-svg-minor-gridline"),e.beginPath(),Fr(e),e.moveTo(s,l);let E=t.mapx(C*Math.cos(M*Math.PI/180)),A=t.mapy(C*Math.sin(M*Math.PI/180));e.lineTo(__dcg_shared_module_exports__['pa'](E),__dcg_shared_module_exports__['pa'](A)),e.stroke()}e.lineWidth=1,e.strokeStyle=xp(a);for(let M of Is(k,C,i.majorStepR)){ei(e,"dcg-svg-major-gridline"),e.beginPath(),Fr(e),e.scale(1,u);let E=t.mapx(M)-s;e.moveTo(s+E,g),e.arc(s,g,E,0,2*Math.PI),e.scale(1,h),e.stroke()}e.restore()}drawCartesianGrid(e,t,i,o=pA(t)){e.save();let{xmin:n,xmax:a,ymin:s,ymax:l}=t.viewport,c=t.screen.width,d=t.screen.height,u=d,h=0;t.settings.restrictGridToFirstQuadrant&&(n=0,s=0,u=t.mapy(0),h=t.mapx(0));let g=t.settings.minorAxisOpacity*o.x.unitOpacity,b=t.settings.minorAxisOpacity*o.y.unitOpacity,C=t.settings.majorAxisOpacity;e.lineWidth=1;let S=z=>{if(z===0&&t.settings.showYAxis)return;let K=__dcg_shared_module_exports__['pa'](t.mapx(z));K===__dcg_shared_module_exports__['pa'](0)||K===__dcg_shared_module_exports__['pa'](c)||(e.beginPath(),e.moveTo(K,0),e.lineTo(K,u),e.stroke())},k=z=>{if(z===0&&t.settings.showXAxis)return;let K=__dcg_shared_module_exports__['pa'](t.mapy(z));K===__dcg_shared_module_exports__['pa'](0)||K===__dcg_shared_module_exports__['pa'](d)||(e.beginPath(),e.moveTo(h,K),e.lineTo(c,K),e.stroke())};ei(e,"dcg-svg-minor-gridline");let{majorStepX:I,majorStepY:M,minorStepX:E,minorStepY:A}=i,V=t.settings.xAxisScale==="logarithmic",G=t.settings.yAxisScale==="logarithmic",P=V?o.x.minor:Is(n,a,E),O=G?o.y.minor:Is(s,l,A);e.strokeStyle=xp(g);for(let z of P)S(z);e.strokeStyle=xp(b);for(let z of O)k(z);Fr(e);let R=1-(1-C)/(1-g),q=1-(1-C)/(1-b);ei(e,"dcg-svg-major-gridline");let J=V?o.x.major:Is(n,a,I),U=G?o.y.major:Is(s,l,M);e.strokeStyle=xp(R);for(let z of J)S(z);e.strokeStyle=xp(q);for(let z of U)k(z);Fr(e),e.restore()}drawAxes(e,t,i){let o=t.settings.axisLineOffset,n=t.settings.axisOpacity,a=`rgba(127,205,230,${n.toString()})`,s=xp(n),l=t.settings.xAxisArrowMode,c=t.settings.yAxisArrowMode,d=t.settings.showXAxis,u=t.settings.showYAxis,h=1,g=Math.round(t.mapx(0))-o,b=Math.round(t.mapy(0))-o,C=t.screen.height,S=t.screen.width;function k(E,A,V){e.save();let G=Math.PI/12,P=8*Math.max(e.lineWidth,1.5);e.lineJoin="round",e.fillStyle=s,e.strokeStyle=s,e.beginPath(),e.moveTo(E,A),e.lineTo(E+Math.cos(V-G)*P,A+Math.sin(V-G)*P),e.lineTo(E+Math.cos(V+G)*P,A+Math.sin(V+G)*P),e.lineTo(E,A),e.lineTo(E+Math.cos(V-G)*P,A+Math.sin(V-G)*P),e.stroke(),e.fill(),e.restore()}let I=C,M=0;t.settings.restrictGridToFirstQuadrant&&(I=b,M=g,l==="BOTH"&&(l="POSITIVE"),c==="BOTH"&&(c="POSITIVE")),u&&(yn(e,"yaxis"),t.settings.takingScreenshot&&zb(e,t.settings.yAxisLabel||"Y axis"),e.save(),ei(e,"dcg-svg-axis-line"),e.lineWidth=t.settings.axisLineWidth*(i==="y"?h:1),e.strokeStyle=i==="y"?a:s,c==="BOTH"?(e.beginPath(),e.moveTo(g,2*t.settings.axisLineWidth),e.lineTo(g,C-2*t.settings.axisLineWidth),e.stroke(),k(g,C-t.settings.axisLineWidth,3*Math.PI/2),k(g,t.settings.axisLineWidth,Math.PI/2)):c==="POSITIVE"?(e.beginPath(),e.moveTo(g,2*t.settings.axisLineWidth),e.lineTo(g,I),e.stroke(),k(g,t.settings.axisLineWidth,Math.PI/2)):(e.beginPath(),e.moveTo(g,0),e.lineTo(g,I),e.stroke()),Fr(e),e.restore(),xn(e)),d&&(yn(e,"xaxis"),t.settings.takingScreenshot&&zb(e,t.settings.xAxisLabel||"X axis"),e.save(),ei(e,"dcg-svg-axis-line"),e.lineWidth=t.settings.axisLineWidth*(i==="x"?h:1),e.strokeStyle=i==="x"?a:s,l==="BOTH"?(e.beginPath(),e.moveTo(2*t.settings.axisLineWidth,b),e.lineTo(S-2*t.settings.axisLineWidth,b),e.stroke(),k(t.settings.axisLineWidth,b,0),k(S-t.settings.axisLineWidth,b,Math.PI)):l==="POSITIVE"?(e.beginPath(),e.lineTo(M,b),e.lineTo(S-2*t.settings.axisLineWidth,b),e.stroke(),k(S-t.settings.axisLineWidth,b,Math.PI)):(e.beginPath(),e.lineTo(M,b),e.lineTo(S,b),e.stroke()),Fr(e),e.restore(),xn(e))}drawPolarStepNumbers(e,t,i){e.save();let o=t.settings.showGrid,n=t.settings.xAxisNumbers&&t.settings.showXAxis,a=t.settings.yAxisNumbers&&t.settings.showYAxis,s=o&&t.settings.polarNumbers,l=t.settings.getPrecisionConfig(),c=t.viewport.largestR(),d=t.viewport.smallestR(),u=t.viewport.xmin,h=t.viewport.xmax,g=t.viewport.ymin,b=t.viewport.ymax,C=t.screen.width,S=t.screen.height,k={left:3,right:C-3,top:3,bottom:S-3},I=t.settings.labelHangingColor,M=t.settings.getTextColor(),E=t.settings.labelSize,A=E;this.addTextShadow(e,t),e.fillStyle=M;function V(D,_,te){let Q=Math.sqrt(D*D-_*_);g<=Q&&Q<=b&&te.push({x:t.mapx(_),y:t.mapy(Q)}),g<=-Q&&-Q<=b&&te.push({x:t.mapx(_),y:t.mapy(-Q)})}function G(D,_,te){let Q=Math.sqrt(D*D-_*_);u<=Q&&Q<=h&&te.push({x:t.mapx(Q),y:t.mapy(_)}),u<=-Q&&-Q<=h&&te.push({x:t.mapx(-Q),y:t.mapy(_)})}let P=t.mapx(0),O=t.mapy(0),R=g<=0&&0<=b,q=u<=0&&0<=h,J=R&&n,U=q&&a,z="";if(!J&&!U&&o){let D=wp(P),_=wp(P-C),te=wp(O),Q=wp(O-S),De,se,re,j;D<=_?(De="left",re=D):(De="right",re=_),te<=Q?(se="top",j=te):(se="bottom",j=Q),n&&a?z=re<=j?De:se:a?z=De:n&&(z=se)}let K={left:0,right:C,top:O-1,bottom:O+1},v={left:P-1,right:P+1,top:0,bottom:S};for(let D of Is(0,c,i.majorStepR)){let _=[],te=[],Q=[],De=new ta(__dcg_shared_module_exports__['Va'](D,l,c),E),se=De.getRect();switch(D>0?(U&&g<=D&&D<=b&&te.push({x:P-se.right-5,y:t.mapy(D)}),U&&g<=-D&&-D<=b&&te.push({x:P-se.right-5,y:t.mapy(-D)}),J&&u<=D&&D<=h&&_.push({x:t.mapx(D),y:O-se.top+3}),J&&u<=-D&&-D<=h&&_.push({x:t.mapx(-D),y:O-se.top+3})):U&&!n&&g<=D&&D<=b?te.push({x:P-se.right-5,y:t.mapy(D)}):J&&!a&&u<=D&&D<=h&&_.push({x:t.mapx(D),y:O-se.top+3}),z){case"top":G(D,b,Q);break;case"bottom":G(D,g,Q);break;case"left":V(D,u,Q);break;case"right":V(D,h,Q);break}_.forEach(function(re){re=De.clampBoundsWithinRect(re,k),De.drawCenteredAt(e,re,"dcg-svg-axis-value"),JE(K,De.getRectWhenCenteredAt(re))}),te.forEach(function(re){re=De.clampBoundsWithinRect(re,k),De.drawCenteredAt(e,re,"dcg-svg-axis-value"),JE(v,De.getRectWhenCenteredAt(re))}),Q.forEach(function(re){re=De.clampBoundsWithinRect(re,k),De.drawCenteredAt(e,re,"dcg-svg-axis-value")})}if(s){let D=Math.ceil(d/i.majorStepR),_=Math.floor(c/i.majorStepR),Q=Math.ceil((D+_)/2)*i.majorStepR,De=d>0?15:30;for(let se of Is(0,359,De)){let re;t.settings.degreeMode?re=se.toString()+"\xB0":re=__dcg_shared_module_exports__['Va'](se*Math.PI/180,l,2*Math.PI).string;let j=e.measureText(re).width/2,X=Q/1.05,fe=X*Math.cos(se*Math.PI/180),be=X*Math.sin(se*Math.PI/180);if(fe<u||fe>h||be<g||be>b)continue;let Me=t.mapx(fe),Be=t.mapy(be);se===0||se===180?Be-=A:(se===90||se===270)&&(Me+=j+3);let Xe=__dcg_shared_module_exports__['wb'](Me,3+j,C-3-j),_t=__dcg_shared_module_exports__['wb'](Be,3+A,S-3-A);_t=ta.computeBaselineFromCenter(_t,E),ei(e,"dcg-svg-polar-axis-value"),e.save(),Fr(e),e.fillStyle=I,ta.setCtxFontSize(e,E),e.strokeText(re,Xe,_t),e.fillText(re,Xe,_t),e.restore()}}return e.restore(),{x:K,y:v}}drawLabels(e,t,i){let o=t.viewport.xmin,n=t.viewport.xmax,a=t.viewport.ymin,s=t.viewport.ymax,l=t.screen.width,c=t.screen.height,d=(n-o)/l,u=(s-a)/c,h=t.settings.getTextColor(),g=t.mapx(0),b=t.mapy(0),C=t.settings.labelSize,S=15,k=t.settings.showXAxis&&t.settings.xAxisLabel,I=t.settings.showYAxis&&t.settings.yAxisLabel,M=i.x,E=i.y;if(k&&M){ei(e,"dcg-svg-axis-label"),e.save(),Fr(e),e.fillStyle=h;let A;if(e.__xLabelOffset&&t.settings.isViewportTransient&&XE(e.__xLabelOffset.xscale,d)&&XE(e.__xLabelOffset.yscale,u)&&(A={x:e.__xLabelOffset.x+g,y:e.__xLabelOffset.y+b}),this._setAxisLabelFont(e,k,C,t),!A){let V=e.measureText(k).width,G=l-V-S,P=C;M.bottom+P<c?A={x:G,y:M.bottom+P}:A={x:G,y:M.top-P/2},e.__xLabelOffset={x:A.x-g,y:A.y-b,xscale:d,yscale:u}}e.strokeText(k,A.x,A.y),e.fillText(k,A.x,A.y),e.restore()}else e.__xLabelPosition=null;if(I&&E){ei(e,"dcg-svg-axis-label"),e.save(),Fr(e),e.fillStyle=h;let A;if(e.__yLabelOffset&&t.settings.isViewportTransient&&XE(e.__yLabelOffset.xscale,d)&&XE(e.__yLabelOffset.yscale,u)&&(A={x:e.__yLabelOffset.x+g,y:e.__yLabelOffset.y+b}),this._setAxisLabelFont(e,I,C,t),!A){let V=e.measureText(I).width,G=C,P=V+5;if(!this._isShortMathyLabel(I)){let R=V;V=G,G=R,P=V*.5}let O=0+S+G;E.left-V>0?A={x:E.left-P,y:O}:A={x:E.right+V,y:O},e.__yLabelOffset={x:A.x-g,y:A.y-b,xscale:d,yscale:u}}e.translate(A.x,A.y),this._isShortMathyLabel(I)||e.rotate(-Math.PI/2),e.strokeText(I,0,0),e.fillText(I,0,0),e.restore()}else e.__yLabelPosition=null}_isShortMathyLabel(e){return e.trim().match(/^([a-zA-Z]?)\(?([a-zA-Z]?)\)?$/)}_setAxisLabelFont(e,t,i,o){this.addTextShadow(e,o),this._isShortMathyLabel(t)?e.font="italic "+Math.round(i*1.4)+"px Times":e.font=Math.round(i*1.2)+"px Arial"}drawCartesianStepNumbers(e,t,i,o,n=pA(t)){e.save();let{showXAxis:a,showYAxis:s}=t.settings,l=a&&t.settings.xAxisNumbers,c=s&&t.settings.yAxisNumbers,d=t.settings.getPrecisionConfig(),{xmin:u,xmax:h,ymin:g,ymax:b}=t.viewport,C=t.screen.width,S=t.screen.height,k={left:3,top:3,right:C-3,bottom:S-3};t.settings.restrictGridToFirstQuadrant&&(u=0,g=0);let I=t.settings.getTextColor({invertBlack:t.settings.threeDMode}),M=t.settings.threeDMode?I:t.settings.labelHangingColor,E=t.mapx(0),A=t.mapy(0),V=t.settings.labelSize;this.addTextShadow(e,t);let G={left:0,right:C,top:A-1,bottom:A+1},P={left:E-1,right:E+1,top:0,bottom:S};if(t.settings.threeDMode&&!t.settings.showNumbers3D)return{x:G,y:P};let O=5,R=!1;if(a&&s&&(l||c)){R=!0,e.fillStyle=I;let K=new ta(__dcg_shared_module_exports__['Va'](0,d,1),V);K.drawCenteredAt(e,{x:E-K.getRect().right-O,y:A-K.getRect().top+O},"dcg-svg-axis-value")}let{majorStepX:q,majorStepY:J}=i,U=[],z=[];if(l){let K=t.settings.xAxisScale==="logarithmic",v=K?n.x.label:Is(u,h,q);for(let D of v){let _=K?void 0:h-u,te=__dcg_shared_module_exports__['Va'](D,d,_,K),Q=new ta(te,V);Q.getString()==="0"&&R||U.push(Q)}}if(c){let K=t.settings.yAxisScale==="logarithmic",v=K?n.y.label:Is(g,b,J);for(let D of v){let _=K?void 0:b-g,te=__dcg_shared_module_exports__['Va'](D,d,_,K),Q=new ta(te,V);Q.getString()==="0"&&R||z.push(Q)}}if(o){e.save(),ei(e,"dcg-svg-tickmark");let K=t.settings.axisLineOffset,v=t.settings.axisOpacity,D=xp(v);e.lineWidth=t.settings.axisLineWidth,e.strokeStyle=D;let _=Math.round(t.mapy(0))-K,te=Math.round(t.mapx(0))-K,Q=Math.round(2*e.lineWidth)-K;e.beginPath(),U.forEach(function(De){let se=Math.round(t.mapx(De.getValue()))-K;e.moveTo(se,_-Q),e.lineTo(se,_+Q)}),z.forEach(function(De){let se=Math.round(t.mapy(De.getValue()))-K;e.moveTo(te-Q,se),e.lineTo(te+Q,se)}),e.stroke(),Fr(e),e.restore()}return U.forEach(function(K){let v={x:t.mapx(K.getValue())-.5*K.getMinusWidth(),y:A-K.getRect().top+O},D=K.clampBoundsWithinRect(v,k);e.fillStyle=v.y===D.y||t.settings.yAxisScale==="logarithmic"?I:M;let _="dcg-svg-axis-value";v.x!==D.x&&(_+=" dcg-svg-offcenter-axis-value"),K.drawCenteredAt(e,D,_),JE(G,K.getRectWhenCenteredAt(D)),Fr(e)}),z.forEach(function(K){let v={x:E-O-K.getRect().right,y:t.mapy(K.getValue())},D=K.clampBoundsWithinRect(v,k);e.fillStyle=v.x===D.x||t.settings.xAxisScale==="logarithmic"?I:M;let _="dcg-svg-axis-value";v.y!==D.y&&(_+=" dcg-svg-offcenter-axis-value"),K.drawCenteredAt(e,D,_),JE(P,K.getRectWhenCenteredAt(D)),Fr(e)}),e.restore(),{x:G,y:P}}};function Is(r,e,t){let i=Math.ceil(r/t),o=Math.floor(e/t);if(!rY({nmin:i,nmax:o}))return[];let n=[];for(var a=i;a<=o;a++)n.push(a*t);return n}var rY=({nmin:r,nmax:e})=>isFinite(e-r)&&e-r<=1e4;function pA(r){return{x:J5("x",r),y:J5("y",r)}}function J5(r,e){let t=new Set,i=new Set,o=new Set,n=1;function a(re){return M?e.mapx(re):e.mapy(re)}function s(re,j){return wp(a(j)-a(re))}let l=(re,j)=>{let X=re*j,fe=(re+1)*j;if(X<E&&fe<E||X>A&&fe>A)return;let be=re>=5?s(7*j,8*j):re>=2?s(3*j,4*j):s(j,2*j),Me=be/s(X,fe);if(be<40)return;let Be={settings:{pixelsPerLabel:e.settings.pixelsPerLabel*Me,labelSize:e.settings.labelSize,xAxisNumber:e.settings.xAxisNumbers,yAxisNumber:e.settings.yAxisNumbers,getPrecisionConfig:()=>e.settings.getPrecisionConfig()},screen:{width:be,height:be},viewport:{xmin:X,ymin:X,xmax:fe,ymax:fe}},{minorStepX:Xe,majorStepX:_t}=Qc(Be),je=Math.max(X,E),Kr=Math.min(fe,A);for(let Dt=qu(je/Xe);Dt<Hu(Kr/Xe);Dt++)o.add(Dt*Xe);for(let Dt=qu(je/_t);Dt<Hu(Kr/_t);Dt++){let xe=Dt*_t;xe<=X||xe>=fe||(i.add(xe),t.add(xe))}},c={label:[],major:[],minor:[],unitOpacity:1},{xAxisScale:d,yAxisScale:u,pixelsPerLabel:h}=e.settings,{xmin:g,xmax:b,ymin:C,ymax:S}=e.viewport,{width:k,height:I}=e.screen,M=r==="x",[E,A]=M?[g,b]:[C,S],V=M?k:I,G=M?d:u,P=e.settings.xAxisMinorSubdivisions!==0;if(G!=="logarithmic")return c;let O=qu(jE(E)),R=Hu(jE(A)),q=Hu(jE(A)-jE(E)),J=s(10**O,10**(O+1)),U=15,z=100,K=J>U,v=[];J>6.25*h&&(v=[2,3,4,6,8]),J>12*h&&(v=[2,3,4,5,6,7,8]),J>14*h&&(v=[2,3,4,5,6,7,8,9]);let D=v.length!=0;if(U<=J&&J<=z&&(n=Math.sqrt((J-U)/(z-U))),!isFinite(q))return c;let _=qu(V/h),te=Math.max(1,2**tY(j5(q/_)));for(let re=Hu(O/te);re<=qu(R/te);re++)t.add(10**(re*te));i=new Set([...t]);let Q=qu(V/U),De=Math.max(1,2**Hu(j5(q/Q)));for(let re=Hu(O/De);re<=qu(R/De);re++)(K?i:o).add(10**(re*De));if(K)for(let re=O;re<R;re++){let j=10**re;for(let X of v)t.add(X*j);if(D){for(let X=2;X<=9;X++)i.add(X*j);for(let X=1;X<=9;X++)l(X,j)}else for(let X=2;X<=9;X++)o.add(X*j)}P&&(o=new Set);let se=M?e.reverse_mapx(a(E)+h/4):e.reverse_mapy(a(E)-2*e.settings.labelSize);return{label:[...t].filter(re=>se<=re&&re<=A),major:[...i].filter(re=>E<=re&&re<=A),minor:[...o].filter(re=>E<=re&&re<=A),unitOpacity:n}}function JE(r,e){e.left<r.left&&(r.left=e.left),e.right>r.right&&(r.right=e.right),e.top<r.top&&(r.top=e.top),e.bottom>r.bottom&&(r.bottom=e.bottom)}function XE(r,e){let t=wp(r),i=wp(e);return wp(t-i)<=(t<i?i:t)*1e-4}var lc=__dcg_shared_module_exports__['e']($()),ZE=class extends lc.Class{template(){return lc.createElement("div",{class:lc.const("dcg-calculator-api-container"),style:()=>({width:this.props.width(),height:this.props.height(),position:"fixed",left:"0px",top:"0px"})},lc.createElement("div",{class:lc.const("dcg-container")},lc.createElement("div",{class:lc.const("dcg-grapher"),style:()=>({"font-size":this.props.concreteFontSize()})})))}};var _n=__dcg_shared_module_exports__['e']($());var{If:iY}=_n.Components,e0=class extends _n.Class{init(){this.grapher=this.props.grapher(),this.controller=this.grapher.controller,this.width=0,this.height=0,this.pixelRatio=0}getDevicePixelRatio(){return window.devicePixelRatio||1}template(){return _n.createElement("div",{class:_n.const("dcg-graph-outer"),didMount:e=>this.rootNode=e,manageFocus:this.const(Fe({controller:this.controller,location:{type:"graph-paper"}}))},_n.createElement("div",{tabindex:()=>this.getShiftTabElementTabIndex(),onFocus:()=>{let e=this.rootNode.getAttribute("aria-label")||"";this.rootNode.setAttribute("aria-label",""),this.rootNode.focus(),this.rootNode.setAttribute("aria-label",e),this.controller.get2dPOIController().handleTabEvent("prev")}}),_n.createElement(iY,{predicate:()=>this.isIOSAndIframe()},()=>_n.createElement("div",{style:_n.const("width:1px; height:.5px; pointer-events:none; opacity: 0;"),"aria-hidden":_n.const("true")},_n.const("text"))),_n.createElement("canvas",{class:_n.const("dcg-graph-inner"),didMount:e=>{this.canvasNode=e,this.ctx=this.canvasNode.getContext("2d"),this.resize(0,0)},style:()=>({position:"relative",display:"block",outline:"none","-webkit-transform":this.isIOSAndIframe()?"translate3d(0,-.25px,0)":void 0})}))}getShiftTabElementTabIndex(){var t;return((t=this.rootNode)==null?void 0:t.getAttribute("tabindex"))!=="0"||this.controller.getActiveTool()!=="selection"||this.rootNode===document.activeElement?"-1":"0"}isIOSAndIframe(){return Ml&&Lc}resize(e,t,i){var o;i=i||this.getDevicePixelRatio(),!(e===this.width&&t===this.height&&i===this.pixelRatio)&&(this.width=e,this.height=t,this.canvasNode.style.width=e+"px",this.canvasNode.style.height=t+"px",this.canvasNode.setAttribute("width",""+e*i),this.canvasNode.setAttribute("height",""+t*i),this.pixelRatio=i,this.ctx=this.canvasNode.getContext("2d"),(o=this.ctx)==null||o.scale(i,i),this.update())}getAriaLabel(e){let t=[],{graphDescription:i}=this.grapher.settings.config;if(this.grapher.type==="3d"&&this.controller.is3dProduct())i!==void 0?t.push(i):(t.push(`${this.controller.s("graphing-calculator-narration-3d-graphpaper-label")}.`),t.push(dy(this.controller)));else if(this.grapher.type==="2d"&&!this.controller.is3dProduct()){let o=this.grapher.getAudioTrace();if(!o)return"";i!==void 0?t.push(i):(t.push(`${this.controller.s("graphing-calculator-narration-graphpaper-label")}.`),t.push(dy(this.controller)),e>0&&(o.getAudioTraceActive()||o.agNavigator.getFirstTraceableSketch({selectAssociatedExpression:!1})!==void 0&&(xi?t.push(this.controller.s("graphing-calculator-narration-audio-instructions-enter-audio-trace-mac")):t.push(this.controller.s("graphing-calculator-narration-audio-instructions-enter-audio-trace-windows")))))}if(t.length)return t.join(" ").trim()}updateAria(e,t){let i=this.getAriaLabel(t);i!==void 0?(this.rootNode.setAttribute("role","img"),this.rootNode.setAttribute("aria-roledescription",this.controller.s("graphing-calculator-narration-graphpaper-label")),this.rootNode.setAttribute("aria-label",i),this.rootNode.setAttribute("aria-hidden",!e||!this.grapher.settings.config.graphpaper?"true":"false"),this.rootNode.setAttribute("tabindex",e&&this.grapher.settings.config.graphpaper&&this.grapher.settings.config.enableTabindex?"0":"-1")):["role","aria-roledescription","aria-label","aria-hidden","tabindex"].forEach(n=>this.rootNode.removeAttribute(n)),this.update()}speakAriaLabelAgain(){let e=this.rootNode.getAttribute("aria-label");e&&ie(e)}};var X5=__dcg_shared_module_exports__['e']($());var uA=class{constructor(e){this._layerClasses={};this._classLayers={};this.elt=e.elt,this.settings=e.settings,this.controller=e.controller,this.evaluator=e.evaluator,this.elt.style.overflow="hidden"}classLayers(e){var t,i;return(i=(t=this._classLayers)[e])!=null?i:t[e]=new Set}setLayerClass(e,t){var i=this._layerClasses[e];if(this._layerClasses[e]=t,i!==t){if(i){let o=this.classLayers(i);o.delete(e),o.size===0&&this.elt.classList.remove(i)}t&&(this.classLayers(t).add(e),this.elt.classList.add(t))}}},hA=class extends uA{constructor(e){super(e),this.canvasLayer=X5.mountToNode(e0,this.elt,{grapher:()=>this}),this.elt.appendChild(this.canvasLayer.rootNode)}getImageData(e,t,i,o){var n;return(n=this.canvasLayer.ctx)==null?void 0:n.getImageData(e,t,i,o)}_setIsVisible(e){e!==this.isVisible&&(this.isVisible=e,e?this.controller.requestRedrawGraph():this.canvasLayer.resize(0,0))}getIsVisible(){return this.isVisible}},gA=class extends hA{setSketchOrder(e){__dcg_shared_module_exports__['Oa'](this.__sketchOrder,e)||(this.__sketchOrder=e,this.controller.requestRedrawGraph())}getSketchOrder(){return this.__sketchOrder}},mA=class extends gA{constructor(t){super(t);this.__redrawRequested=!1;this.events=new ti}redrawAllLayers(){this.__redrawRequested=!0}redrawAllLayersSynchronously(){return this._redrawAllLayers()}notifyAfterRedraw(t){if(!this.__redrawRequested)t();else{this.notifyAfterRedraw_i?this.notifyAfterRedraw_i++:this.notifyAfterRedraw_i=1;let i="redraw.notifyAfterRedraw"+this.notifyAfterRedraw_i;this.events.observeEvent(i,()=>{this.events.unobserveEvent(i),t()})}}},fA=class extends mA{getUserRequestedViewport(){return this._lastUserRequestedViewport}setUserRequestedViewport(e){this._lastUserRequestedViewportUpdateToken||(this._lastUserRequestedViewportUpdateToken=0),this._lastUserRequestedViewportUpdateToken+=1,this._lastUserRequestedViewport=__dcg_shared_module_exports__['i'](e),this._afterViewportChange()}getCurrentViewport(){return this.viewportController.getViewport().toObject()}debounceUserRequestedViewportChange(){this.__debouncedViewportCommit||(this.__debouncedViewportCommit=__dcg_shared_module_exports__['Ka']((i,o)=>{if(!this.isDragging&&this._lastUserRequestedViewportUpdateToken===o){if(this._lastUserRequestedViewport){var n=Wr.fromObject(this._lastUserRequestedViewport),a=this.computeConcreteViewport(n);if(a.equals(i))return}this.controller.dispatch({type:"commit-user-requested-viewport",viewport:i})}},1e3));let e=this.getCurrentViewport();this.__debouncedViewportCommit(e,this._lastUserRequestedViewportUpdateToken)}},bA=class extends fA{getState(e){let t={...this.getCurrentViewport()};this.controller.is3dProduct()||(delete t.zmin,delete t.zmax);let i={viewport:t};return this.settings.stateProperties.forEach(o=>{o!=="randomSeed"&&(!this.controller.is3dProduct()&&vF(o)||(i[o]=this.settings[o]))}),e.stripDefaults&&(i=__dcg_shared_module_exports__['Hc']($d,i)),i}getUndoRedoDiffState(){let e=this.getUndoRedoFullState();return e.speed3D!==0&&delete e.worldRotation3D,e}getUndoRedoFullState(){let e={};return this.settings.stateProperties.forEach(t=>{e[t]=this.settings[t]}),e.viewport=this.getUserRequestedViewport(),e}},t0=class extends bA{};function oY(){return new oc(1024,768)}function Q5(r){let{xAxisScale:e,yAxisScale:t}=r;return new Wr(...e==="linear"?[-Xd,Xd]:[10**-Qd,10**Qd],...t==="linear"?[-Xd,Xd]:[10**-Qd,10**Qd])}var Wu=class r extends t0{constructor(t,i,o,n){super({elt:t,settings:i,controller:o,evaluator:n});this.type="2d";this.__screenRequested3D=new oc(768,768);this.lastActiveToken={selected:void 0,hovered:void 0};let a=oY(),s=Q5(i).squareYAxis(a,i);this.setUserRequestedViewport(s),this.__projection=new Ts(a,s,i),this.markLabelsDirty=__dcg_shared_module_exports__['Ka'](()=>{this.evaluator.notifyWhenSynced(()=>{this.poiLabelsLayer.markLabelsDirty(),this.controller.requestRedrawGraph()})},300),this.poiController=new EE(this,i),this.viewportController=new kE(this,this.controller),this.showPOIDots=!0,this.graphSketches={},this.graphImages={},this.audioGraph=new AE(o,this),this.boxSelectLayer=new AS;var l=document.createElement("div");this.elt.appendChild(l),this.imageLayer=new xy(this),this.gridLayer=new QE,this.poiDotsLayer=new MS(this.controller),this.graphsLayer=new Yl(this.controller,this.settings,u=>this.audioGraph.getExpressionAriaLabel(u)),this.transformationPreviewLayer=new YE(this),this.clickableObjectsLayer=new wy(this),this.movablePointsLayer=new ty(this);var c=document.createElement("div");this.elt.appendChild(c),this.poiLabelsLayer=Cy.mountToNode(sm,c,{grapher:()=>this});var d=document.createElement("div");this.elt.appendChild(d),this.geoKeyboardCursorLayer=Cy.mountToNode(GS,d,{grapher:()=>this}),this.traceLayer=this.poiLabelsLayer,this.scaleAxis=void 0}privateGetGridLayer(){return this.gridLayer}static copyGraphProperties(t,i){t=__dcg_shared_module_exports__['Jc']($d,t);let o={...t};delete o.viewport;let n=i.validateSettings(o);for(let a in n)i.setProperty(a,n[a]);return t}remove(){this.elt.remove(),this.poiController.remove(),this.viewportController.remove(),this.audioGraph.remove()}tick(t){this.__redrawRequested&&this._redrawAllLayers(),this.__movablePointListener&&this.__movablePointListener()}registerMovablePointListener(t){this.__movablePointListener=t}deregisterMovablePointListener(){this.__movablePointListener=void 0}clear(){this.graphSketches={},this.graphImages={}}getGraphSketch(t){return this.graphSketches[t]}getGraphImage(t){return this.graphImages[t]}addGraphSketch(t){this.graphSketches[t.id]=t}removeGraphSketch(t){delete this.graphSketches[t]}addGraphImage(t){t.imageObj.width&&t.imageObj.height?(this.graphImages[t.id]=t,this.controller.requestRedrawGraph()):W(t.imageObj).on("load.calc_load",()=>this.addGraphImage(t))}removeGraphImage(t){let i=this.graphImages[t];i&&W(i.imageObj).off("load.calc_load"),delete this.graphImages[t],this.controller.requestRedrawGraph()}setBoxSelectRectangle(t){this.boxSelectRectangle=t,this.controller.requestRedrawGraph()}getProjection(){return this.__projection}_setProjection(t){this.__projection=t,this.controller.requestRedrawGraph()}getAudioTrace(){return this.audioGraph}getDefaultViewport(){let t=this.getProjection();return Q5(this.settings).squareYAxis(t.screen,this.settings)}_updateScreenSize(t,i){if(t<=0||i<=0)return;let n=this.getProjection().screen;if(n.width===t&&n.height===i)return;let a=new oc(t,i);this.viewportController.setScreen(a)}update(){let{top:t,left:i,width:o,height:n}=this.controller.computeMajorLayout().grapher,a=this.controller.isGraphPaperFocused()&&!this.poiController.keyboardAttentionManager.getKeyboardAttention()&&!this.controller.getSelectedGeoExpression()&&!this.geoKeyboardCursorLayer.showCursor()&&!this.controller.inAudioTraceMode();this.elt.classList.toggle("dcg-grapher-focused",a),this.controller.isThreeDMode()&&({width:o,height:n}=this.__screenRequested3D),o>0&&n>0?(this._setIsVisible(!0),this._updateScreenSize(o,n),Wn(this.elt,{position:"absolute",left:i+"px",top:t+"px",width:o+"px",height:n+"px"})):this._setIsVisible(!1)}setActiveToken(t,i){var o=this.lastActiveToken[i];this.lastActiveToken[i]=t;var n=t&&this.getGraphSketch(t),a=o&&this.getGraphSketch(o);a!==n&&(a&&(i==="selected"?a.tokenSelected=!1:i==="hovered"&&(a.tokenHovered=!1)),n&&(i==="selected"?n.tokenSelected=!0:i==="hovered"&&(n.tokenHovered=!0))),this.controller.requestRedrawGraph()}deselectSketch(t){let i=this.getGraphSketch(t);i&&(i.selected=!1,i.showPOI=!1,i.showHighlight=!1)}selectSketch(t){let i=this.getGraphSketch(t);i&&(i.selected=!0,i.showPOI=this.controller.isTraceEnabled(),i.showHighlight=!0)}updateSketch(t,i){let o=this.getGraphSketch(t);if(!i.length){this.removeGraphSketch(t);return}let n=new TE(t,i);i[0].graphMode!==15&&(n.color=i[0].color,i[0].style&&(n.style=i[0].style)),o&&n.updateFrom(o);let a=!!this.controller.getPropagatedSelectedIds()[t];n.selected=a,n.tokenHovered=t===String(this.lastActiveToken.hovered),n.tokenSelected=t===String(this.lastActiveToken.selected),n.showPOI=a&&this.controller.isTraceEnabled(),n.showHighlight=a,this.addGraphSketch(n)}updateIntersections(t,i){let o=this.getGraphSketch(t);o&&o.updateIntersections(i)}_clear(){let i=this.getProjection().screen;this.canvasLayer.resize(i.width,i.height),this.canvasLayer.ctx&&(this.canvasLayer.ctx.clearRect(0,0,i.width,i.height),this.controller.isThreeDMode()?this.controller.getInvertedColors()||(this.canvasLayer.ctx.fillStyle="rgba(255,255,255,0.001961)",this.canvasLayer.ctx.fillRect(0,0,i.width,i.height)):Yw&&(this.controller.getInvertedColors()||(this.canvasLayer.ctx.fillStyle="rgb(0,0,0)",this.canvasLayer.ctx.fillRect(0,0,i.width,i.height))))}isDrawingPlaneFor3dMode(){return this.controller.showPlane3D()||this.controller.showNumbers3D()}createDrawContext(){if(this.canvasLayer.ctx)return{ctx:this.canvasLayer.ctx,projection:this.getProjection(),transformationPreviewParentData:Y5(this.controller)}}_redrawAllLayers(){if(this.update(),!this.isVisible&&!this.isDrawingPlaneFor3dMode())return;this.__redrawRequested=!1;let t=Date.now();this._clear();let i=this.createDrawContext();this.audioGraph.recomputePoints(),this._recomputeClickableObjects(),this._redrawImageLayer(i),this._redrawGridLayer(i),this._redrawGraphsLayer(i),this._redrawPointsAndLabels(i),this._redrawTransformationPreviewLayer(i),this._redrawBoxSelectLayer(i),this._redrawGeoKeyboardCursorLayer(),this._updateCanvasLayerAria(),this.events.triggerEvent("redraw",Date.now()-t);let o=this.controller.getGrapher3d();this.isDrawingPlaneFor3dMode()&&o&&o.webglLayer.updatePlaneMap()}_redrawGridLayer(t){t&&this.gridLayer.redrawToCtx(t,this.scaleAxis)}_recomputeClickableObjects(){this.clickableObjectsLayer.redraw()}_redrawGraphsLayer(t){t&&this.graphsLayer.redrawToCtx(t,this.graphSketches,this.graphImages,this.__sketchOrder,this.poiLabelsLayer,this.clickableObjectsLayer)}_redrawTransformationPreviewLayer(t){t&&this.transformationPreviewLayer.redrawToCtx(t)}_redrawBoxSelectLayer(t){t&&this.boxSelectLayer.redrawToCtx(t,this.boxSelectRectangle)}_redrawGeoKeyboardCursorLayer(){this.geoKeyboardCursorLayer.update()}_updateCanvasLayerAria(){let t=0;for(let i in this.graphSketches)Ya(this.controller,this.graphSketches[i])&&(t+=1);this.canvasLayer.updateAria(this.isVisible,t)}_redrawPointsAndLabels(t){if(!t)return;let i=[];this.controller.isThreeDMode()||this.movablePointsLayer.redraw(t,i),this.showPOIDots&&!this.controller.isThreeDMode()&&this.poiDotsLayer.redrawToCtx(t,this.graphSketches,this.poiLabelsLayer,this.clickableObjectsLayer,this.__sketchOrder);let o=this.elt.getBoundingClientRect();if(this.controller.isThreeDMode())this.poiLabelsLayer.drawForScreenshot(t,t.ctx,this.size(),i);else{let n=this.controller.findEl(".dcg-overgraph-pillbox-elements"),a=this.controller.findEl(".dcg-graphpaper-branding");__dcg_shared_module_exports__['ra']([n,a],s=>{if(!s)return;let l=s.getBoundingClientRect();i.push({left:l.left-o.left,top:l.top-o.top,right:l.right-o.left,bottom:l.bottom-o.top})}),this.poiLabelsLayer.redraw(t,this.size(),i)}}size(){let t=this.canvasLayer.ctx;if(!t)return{width:0,height:0};let i=t.canvas.getBoundingClientRect();return{width:i.width,height:i.height}}_redrawImageLayer(t){t&&(this.controller.isThreeDMode()||this.imageLayer.redrawToCtx(t,this.graphImages,this.__sketchOrder))}_parseScreenshotOpts(t){return nY(t,this.settings,this.getProjection().screen)}_syncScreenshotReturnCanvas(t){var i=document.createElement("canvas");if(t&&t.braille){let{embosserModel:o,brailleMode:n}=t.braille,a=km[o];i.width=a.width,i.height=a.height,B5(i,this,a,o,n)}else{let o=this._parseScreenshotOpts(t);i.width=o.width*o.targetPixelRatio,i.height=o.height*o.targetPixelRatio,this.screenshotToCanvas(i,t)}return i}screenshot(t){let i=this._syncScreenshotReturnCanvas(t),o=[],n=i.getContext("2d"),a=this.makeScreenshotProjection(t);return this.movablePointsLayer.drawForScreenshot(n,a,o,!!(t&&t.showMovablePoints)),i.toDataURL("image/png")}asyncScreenshot(t,i){let o=!1;!t.transparentBackground&&t.showLabels&&(t=__dcg_shared_module_exports__['i'](t),t.transparentBackground=!0,o=!0);let n=this._syncScreenshotReturnCanvas(t),a=n.getContext("2d"),s=n,l=a;t&&t.format==="svg"&&(o=!1,t.transparentBackground&&(t=__dcg_shared_module_exports__['i'](t),t.transparentBackground=!1),l=new XR(n.width,n.height),s={getContext:()=>l,width:n.width,height:n.height},this.screenshotToCanvas(s,t));let c=this.makeScreenshotProjection(t),d=[];if(this.movablePointsLayer.drawForScreenshot(l,c,d,!!(t&&t.showMovablePoints)),t.showLabels){var u=c.screen.width,h=c.screen.height,g=c.settings.labelSize||15,b=1;(u<200||h<200)&&(b=.9);let C=g*b+"px",S=document.createElement("div");S.classList.add("dcg-calculator-screenshot-labels-container"),Cy.mountToNode(ZE,S,{concreteFontSize:()=>C,width:()=>`${c.screen.width}px`,height:()=>`${c.screen.height}px`}),document.body.append(S);let k=Cy.mountToNode(sm,S.querySelector(".dcg-grapher"),{grapher:()=>this}),I={width:c.screen.width,height:c.screen.height};k.drawForScreenshot({projection:c,ctx:a,transformationPreviewParentData:{translationPreviewVectorParents:new Set,translationsWithVisibleVectorParent:new Set,rotationPreviewAngleMarkerParents:new Set,rotationsWithVisibleAndCenteredAngle:new Set}},l,I,d),S.remove()}o&&(l.globalCompositeOperation="destination-over",l.fillStyle="#FFF",l.fillRect(0,0,s.width,s.height)),t&&t.format==="svg"?i(l.getSerializedSvg()):i(s.toDataURL("image/png"))}makeScreenshotProjection(t){let{width:i,height:o,settings:n}=this._parseScreenshotOpts(t),a=new oc(i,o),s=this.getProjection().viewport;return this.settings.squareAxes&&(s=s.squareCrop(a,this.settings)),new Ts(a,s,n)}screenshotToCanvas(t,i){let o=this._parseScreenshotOpts(i),{targetPixelRatio:n,transparentBackground:a}=o,s=t.getContext("2d");s.scale(n,n);let l=this.makeScreenshotProjection(i);l.settings.takingScreenshot=!0,yn(s,"background"),ei(s,"dcg-svg-background"),a?s.clearRect(0,0,l.screen.width,l.screen.height):(s.fillStyle="white",s.fillRect(0,0,l.screen.width,l.screen.height)),Fr(s),xn(s);let c={ctx:s,projection:l,transformationPreviewParentData:{translationPreviewVectorParents:new Set,translationsWithVisibleVectorParent:new Set,rotationPreviewAngleMarkerParents:new Set,rotationsWithVisibleAndCenteredAngle:new Set}};this.imageLayer.redrawToCtx(c,this.graphImages,this.__sketchOrder),this.gridLayer.redrawToCtx(c),this.graphsLayer.redrawToCtx(c,this.graphSketches,this.graphImages,this.__sketchOrder,this.poiLabelsLayer,this.clickableObjectsLayer,i)}speakGrapherFocusAriaLabel(){this.canvasLayer.speakAriaLabelAgain()}_afterViewportChange(){}setGrapherState(t,i){if((!i||!i.doNotClear)&&this.clear(),t=r.copyGraphProperties(t,this.settings),"viewport"in t){let o=Wr.fromObject(t.viewport);this.setUserRequestedViewport(o);let n=this.computeConcreteViewport(o);this.viewportController.setViewport(n)}this.controller.requestRedrawGraph()}computeConcreteViewport(t){let i=this.getProjection().screen;return this.settings.squareAxes&&!t.isSquare(i,this.controller.getAxisScaleSettings())?t.squareYAxis(i,this.settings):t}setCanvasSizeFor3D(t,i){this.__screenRequested3D=new oc(t,i)}getCanvasNode(){return this.canvasLayer.canvasNode}};function nY(r,e,t){let i,o,n,a,s,l;return r?(i=r.width||r.height||t.width,o=r.height||r.width||t.height,n=r.targetPixelRatio||1,n<1&&(n=1),a=(i<256||o<256)&&!r.preserveAxisNumbers,s=Yc.fromObject(r.settings||e),l=!!r.transparentBackground):(i=t.width,o=t.height,n=1,a=!1,s=Yc.fromObject(e),l=!1),a&&(s.setProperty("xAxisNumbers",!1),s.setProperty("yAxisNumbers",!1),s.setProperty("polarNumbers",!1)),{width:i,height:o,targetPixelRatio:n,settings:s,transparentBackground:l}}var Sy=class{constructor(){this.displayName="graphing-calculator-text-geometry-tool-selection-display-name";this.toolType="selection";this.icon=[{type:"filled-polygon",color:"#000",path:[40,30,58,46,51,47,56,60,53,62,47,49,41,54,40,30]}]}getNumberInputLatex(){return""}clearTentativeOutputs(){}canNextInputBePoint(){return!1}getAllValidNextInputTypes(){return __dcg_shared_module_exports__['W'].filter(e=>this.isValidNextInputType(e))}isValidNextInputType(e){return e!==__dcg_shared_module_exports__['N']}getNonPointInputType(){}getHint(){return""}getExpressionEditHint(e){return this.getHint()}onNumberInput(e){}onMove(e){return!0}onFocus(e){}tryCommitResults(){return{committed:void 0}}shouldUseJitEdges(){return!1}shouldHighlightRelevantObjects(){return!1}};var Z5="graphing-calculator-text-geometry-tool-point-hint",Ey=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-point-display-name",this.toolName="point",this.toolType="simple",this.icon=[{type:"point",x:50,y:50,size:"large"}]}getExpressionEditHint(t){return this.s(Z5)}getSpec(){return{inputs:[{type:"point",id:"1",hint:Z5}],outputs:[]}}};var eB="graphing-calculator-text-geometry-tool-line-hint-start",tB="graphing-calculator-text-geometry-tool-line-hint-end",Dy=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-line-display-name",this.toolType="simple",this.toolName="line",this.icon=[{type:"stroked-path",path:[78,22,22,78],lineWidth:"large"},{type:"point",x:68,y:32},{type:"point",x:32,y:68}]}getExpressionEditHint(t){return t===0?this.s(eB):this.s(tB)}getSpec(){return{inputs:[{type:"point",id:"1",hint:eB},{type:"point",id:"2",hint:tB}],outputs:[{id:"3",type:"line",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var rB="graphing-calculator-text-geometry-tool-segment-hint-start",iB="graphing-calculator-text-geometry-tool-segment-hint-end",ky=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-segment-display-name",this.toolName="segment",this.toolType="simple",this.icon=[{type:"stroked-path",path:[68,32,32,68],lineWidth:"large"},{type:"point",x:68,y:32},{type:"point",x:32,y:68}]}getExpressionEditHint(t){return t===0?this.s(rB):this.s(iB)}getSpec(){return{inputs:[{type:"point",id:"1",hint:rB},{type:"point",id:"2",hint:iB}],outputs:[{id:"3",type:"segment",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var oB="graphing-calculator-text-geometry-tool-ray-hint-start",nB="graphing-calculator-text-geometry-tool-ray-hint-end",Ty=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-ray-display-name",this.toolName="ray",this.toolType="simple",this.icon=[{type:"stroked-path",path:[78,22,32,68],lineWidth:"large"},{type:"point",x:68,y:32},{type:"point",x:32,y:68}]}getExpressionEditHint(t){return t===0?this.s(oB):this.s(nB)}getSpec(){return{inputs:[{type:"point",id:"1",hint:oB},{type:"point",id:"2",hint:nB}],outputs:[{id:"3",type:"ray",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var aB="graphing-calculator-text-geometry-tool-circle-hint-center",sB="graphing-calculator-text-geometry-tool-circle-hint-radius",Iy=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-circle-display-name",this.toolName="circle",this.toolType="simple",this.icon=[{type:"circle",x:50,y:50,radius:26},{type:"point",x:50,y:50},{type:"point",x:68,y:32}]}getExpressionEditHint(t){return t===0?this.s(aB):this.s(sB)}getSpec(){return{inputs:[{type:"point",id:"1",hint:aB},{type:"point",id:"2",hint:sB}],outputs:[{id:"3",type:"circle",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var lB="graphing-calculator-text-geometry-tool-arc-hint-1",cB="graphing-calculator-text-geometry-tool-arc-hint-2",dB="graphing-calculator-text-geometry-tool-arc-hint-3",My=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-arc-display-name",this.toolName="arc",this.toolType="complex";let i=50,o=80,n=80,a=-3,s=-2.6,l=-1.7;this.icon=[{type:"arc",x:o,y:n,radius:i,startAngle:a,endAngle:l},{type:"point",x:o+i*Math.cos(a),y:n+i*Math.sin(a)},{type:"point",x:o+i*Math.cos(s),y:n+i*Math.sin(s)},{type:"point",x:o+i*Math.cos(l),y:n+i*Math.sin(l)}]}getExpressionEditHint(t){return t===0?this.s(lB):t===1?this.s(cB):this.s(dB)}getSpec(){return{inputs:[{type:"point",id:"1",hint:lB},{type:"point",id:"2",hint:cB},{type:"point",id:"3",hint:dB}],outputs:[{id:"4",type:"arc",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"},{type:"reference-input",id:"3"}]}]}}};var pB="graphing-calculator-text-geometry-tool-parallel-hint-straight-line",uB="graphing-calculator-text-geometry-tool-parallel-hint-point",Ay=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-parallel-display-name",this.toolName="parallel",this.toolType="complex",this.icon=[{type:"stroked-path",color:"light",path:[25,50,75,30],lineWidth:"large"},{type:"stroked-path",path:[25,70,75,50],lineWidth:"large"},{type:"point",x:50,y:60,size:"medium"}]}getExpressionEditHint(t){return t===0?this.s(pB):this.s(uB)}getSpec(){return{inputs:[{type:"straight",id:"1",hint:pB},{type:"point",id:"2",hint:uB}],outputs:[{id:"3",type:"parallel",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var hB="graphing-calculator-text-geometry-tool-perpendicular-hint-straight-line",gB="graphing-calculator-text-geometry-tool-perpendicular-hint-point",Gy=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-perpendicular-display-name",this.toolName="perpendicular",this.toolType="complex",this.icon=[{type:"stroked-path",color:"light",path:[40,25,60,75],lineWidth:"large"},{type:"stroked-path",path:[25,60,75,40],lineWidth:"large"},{type:"point",x:50,y:50,size:"medium"}]}getExpressionEditHint(t){return t===0?this.s(hB):this.s(gB)}getSpec(){return{inputs:[{type:"straight",id:"1",hint:hB},{type:"point",id:"2",hint:gB}],outputs:[{id:"3",type:"perpendicular",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var yA="graphing-calculator-text-geometry-tool-midpoint-hint",Vy=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-midpoint-display-name",this.toolName="midpoint",this.toolType="simple",this.icon=[{type:"stroked-path",path:[32,32,68,68]},{type:"point",x:50,y:50,size:"large"},{type:"point",x:32,y:32,size:"medium"},{type:"point",x:68,y:68,size:"medium"}]}getExpressionEditHint(t){return this.getHint()}canNextInputBePoint(){return!0}getNonPointInputType(){let{inputIndex:t}=this.model.getNonObjectsState().ui.currentTool;if(t===0)return"segment"}getSpec(){let{idMap:t}=this.model.getNonObjectsState().ui.currentTool,i=this.model.getUncommittedObjects(),o=t[1],n=!1;if(i[o]&&aY(i[o]))n=!0;else{let a=o&&this.model.findDefsForInputId(o)[0];n=!!(a&&a.typedRuntimeValue.valueType==__dcg_shared_module_exports__['p'])}return n?{inputs:[{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['z']],id:"1",hint:yA},{type:"point",id:"2",hint:yA}],outputs:[{id:"midpoint-output",type:"midpoint",hidden:!1,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}:{inputs:[{type:"segment",id:"1",hint:yA}],outputs:[{id:"midpoint-output",type:"midpoint",hidden:!1,parents:[{type:"reference-input",id:"1"}]}]}}};function aY(r){switch(r.type){case"point":case"intersection":case"glider":case"point-reference":case"midpoint":case"vector-endpoint":return!0;case"polygon":case"circle":case"arc":case"compass":case"segment":case"line":case"ray":case"vector":case"vector-copy":case"parallel":case"perpendicular":case"translate":case"reflect":case"dilate":case"rotate":case"angle":case"directedangle":case"angles":case"directedangles":case"polygon-segment":case"slider":case"expression-edit-preview-latex":return!1;default:return r}}var sY="graphing-calculator-text-geometry-tool-polygon-hint-first-point",mB="graphing-calculator-text-geometry-tool-polygon-hint-next-point",lY="graphing-calculator-text-geometry-tool-polygon-hint-finish-point",Py=class extends ir{constructor(t){super(t);this.model=t;this.addExtraPoint=!1;this.mouseOverFirstPoint=!1;this.mouseOverLastPoint=!1;this.displayName="graphing-calculator-text-geometry-tool-polygon-display-name",this.toolName="polygon",this.toolType="complex",this.icon=[{type:"filled-polygon",path:[55,30,30,30,35,70,70,60,55,30]},{type:"stroked-path",path:[55,30,30,30,35,70,70,60,55,30]},{type:"point",x:55,y:30},{type:"point",x:30,y:30},{type:"point",x:35,y:70},{type:"point",x:70,y:60}]}clearTentativeOutputs(){let t=this.addExtraPoint;this.addExtraPoint=!0,super.clearTentativeOutputs(),this.addExtraPoint=t}getHint(){let t=this.model.getNonObjectsState().ui.currentTool.inputIndex;return t===0?this.s(sY):t<3?this.s(mB):this.s(lY)}getExpressionEditHint(t){return this.s(mB)}canNextInputBePoint(){return!0}isDegenerateInput(t){return!1}getSpec(){let{inputIndex:t}=this.model.getNonObjectsState().ui.currentTool,i=t;this.addExtraPoint&&(i+=1),i<2&&(i=2);let o={inputs:[],outputs:[]},n=[];for(let a=0;a<i;a++){let s=a.toString();n.push({type:"reference-input",id:s}),o.inputs.push({type:"point",id:s})}return o.outputs.push({id:"polygon",type:"polygon",hidden:!1,parents:n,connectBorder:this.mouseOverFirstPoint}),o}tryCommitResults(){let t=this.getSpec();if(this.model.attemptLockToolInputIn(t),this.addExtraPoint=!1,!this.mouseOverFirstPoint&&!this.mouseOverLastPoint)return{committed:void 0};if(this._isReadyToCommit()){this.mouseOverFirstPoint=!1,this.mouseOverLastPoint=!1;let i=this.model.getUncommittedObjects(),o={...this.model.getNonObjectsState().ui.currentTool.idMap};return this.model.commitObjects(),this.model.deselectAllObjects(),this.model.cancelToolplay(),{committed:i,toolIdToLatex:o}}return{committed:void 0}}tentativelyAddInput({target:t,pointInfo:i},o){this.mouseOverFirstPoint=!1,this.mouseOverLastPoint=!1,this.addExtraPoint=!1;let n=t?this.getExpandedReferenceForDef(t,o):i==null?void 0:i.reference,{idMap:a,inputIndex:s}=this.model.getNonObjectsState().ui.currentTool;if(this.mouseOverFirstPoint=a[0]===n,this.mouseOverLastPoint=a[s-1]===n,!this.mouseOverFirstPoint&&!this.mouseOverLastPoint)this.addExtraPoint=!0;else{t||(t=i==null?void 0:i.def),t&&this.model.setObjectHovered({calcId:t.calcId,listIndex:this.getListIndexForHover(t,o)});return}super.tentativelyAddInput({target:t,pointInfo:i},o)}onMove(t){let i=this.model.getObjectDefUnderMouse(t.pt,t.tolerance);if(i){let o=this.getExpandedReferenceForDef(i,t.shift),{idMap:n,inputIndex:a}=this.model.getNonObjectsState().ui.currentTool;this.mouseOverFirstPoint=n[0]===o,this.mouseOverLastPoint=n[a-1]===o}return this.addExtraPoint=!this.mouseOverFirstPoint&&!this.mouseOverLastPoint,super.onMove(t)}};var cY="graphing-calculator-text-geometry-tool-compass-hint-segment",dY="graphing-calculator-text-geometry-tool-compass-hint-center",Ly=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-compass-display-name",this.toolName="compass",this.toolType="complex",this.icon=[{type:"stroked-path",path:[50,50,75,50]},{type:"circle",x:50,y:50,radius:25}]}getExpressionEditHint(t){return this.getHint()}getSpec(){return{inputs:[{type:"segment",id:"1",hint:cY},{type:"point",id:"2",hint:dY}],outputs:[{id:"3",type:"circle",hidden:!1,parents:[{type:"reference-input",id:"2"},{type:"reference-input",id:"1"}]}]}}};var fB="graphing-calculator-text-geometry-tool-angle-hint-1",bB="graphing-calculator-text-geometry-tool-angle-hint-2",yB="graphing-calculator-text-geometry-tool-angle-hint-3",xB="graphing-calculator-text-geometry-tool-angles-hint-1",$u=class extends ir{constructor(t){super(t);this.model=t;this.toolType="complex",this.displayName="graphing-calculator-text-geometry-tool-angle-display-name",this.toolName="angle",this.angleType="angle",this.anglesType="angles",this.icon=[{type:"stroked-path",path:[40,30,30,70,70,70],color:"#CCC"},{type:"angle",x:30,y:70,radius:20,startAngle:-1.325817,deltaAngle:1.325817,isDirected:!1},{type:"point",x:30,y:70},{type:"point",x:40,y:30},{type:"point",x:70,y:70}]}canNextInputBePoint(){return!0}shouldReferenceSpecificItemInList(t,i){return __dcg_shared_module_exports__['ca'](t.typedRuntimeValue.valueType,__dcg_shared_module_exports__['x'])?!0:super.shouldReferenceSpecificItemInList(t,i)}getNonPointInputType(){let{inputIndex:t}=this.model.getNonObjectsState().ui.currentTool;if(t===0)return"polygon"}getExpressionEditHint(t){return t===0?this.s(fB):t===1?this.s(bB):this.s(yB)}getSpec(){let{inputIndex:t,idMap:i}=this.model.getNonObjectsState().ui.currentTool,o=i[1];if(!t&&!o)return{inputs:[{type:"polygon",id:"1",hint:xB}],outputs:[{id:"2",type:this.anglesType,listAccess:void 0,hidden:!1,parents:[{type:"reference-input",id:"1"}]}]};let n=[];if(o&&this.model.findDefsForInputId(o).forEach(s=>{let l=s.typedRuntimeValue;if(l.valueType===__dcg_shared_module_exports__['x']){let c=l.value.length;c>0&&n.push({referenceLatex:s.referenceLatex,sides:c})}}),n.length){let a=[],s=2;return n.forEach(l=>{for(var c=0;c<l.sides;c++)a.push({id:s+"",type:this.anglesType,listAccess:c+1,hidden:!1,parents:[{type:"hardcoded",id:l.referenceLatex}]}),s+=1}),{inputs:[{type:"polygon",id:"1",hint:xB}],outputs:a}}return{inputs:[{type:"point",id:"1",hint:fB},{type:"point",id:"2",hint:bB},{type:"point",id:"3",hint:yB}],outputs:[{id:"4",type:this.angleType,hidden:!1,showAngleLabel:!0,parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"},{type:"reference-input",id:"3"}]}]}}};var Oy=class extends $u{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-directedangle-display-name",this.toolName="directedangle",this.angleType="directedangle",this.anglesType="directedangles",this.icon=[{type:"stroked-path",path:[40,30,30,70,70,70],color:"#CCC"},{type:"angle",x:30,y:70,radius:20,isDirected:!0,startAngle:-1.325817,deltaAngle:1.325817},{type:"stroked-path",path:[35,50,41,50,37,55,35,50],color:"#000",lineWidth:"medium"},{type:"point",x:30,y:70},{type:"point",x:40,y:30},{type:"point",x:70,y:70}]}};var wB="graphing-calculator-text-geometry-tool-reflection-hint-choose-line",_y=class extends ll{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-reflect-display-name",this.toolName="reflection",this.toolType="transformation"}getExpressionEditHint(t){return this.s(wB)}getSpec(){return{inputs:[{type:"straight",id:"1",hint:wB}],outputs:[{id:"2",type:"reflect",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"}]}]}}};var xA="graphing-calculator-text-geometry-tool-translation-hint-from-with-vector",vB="graphing-calculator-text-geometry-tool-translation-hint-to",Fy=class extends ll{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-translate-display-name",this.toolName="translation",this.toolType="transformation"}getExpressionEditHint(t){return t===0?this.s(xA):this.s(vB)}firstInputIsVector(){let{idMap:t}=this.model.getNonObjectsState().ui.currentTool,i=t[1],o=i&&this.model.findDefsForInputId(i)[0];return o&&o.typedRuntimeValue.valueType===__dcg_shared_module_exports__['P']}getSpec(){return this.firstInputIsVector()?{inputs:[{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['P']],id:"1",hint:xA}],outputs:[{id:"3",type:"translate",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"}]}]}:{inputs:[{type:"union",valueTypes:[__dcg_shared_module_exports__['p'],__dcg_shared_module_exports__['P']],id:"1",hint:xA},{type:"point",id:"2",hint:vB}],outputs:[{id:"3",type:"translate",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2"}]}]}}};var CB="graphing-calculator-text-geometry-tool-dilation-hint-center",SB="graphing-calculator-text-geometry-tool-dilation-hint-scale-factor",Ry=class extends ll{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-dilate-display-name",this.toolName="dilation",this.toolType="transformation"}getExpressionEditHint(t){return t===0?this.s(CB):this.s(SB)}getSpecIdToLockIn(t,i){return i===1?"2-number":super.getSpecIdToLockIn(t,i)}getSpec(){return{inputs:[{type:"point",id:"1",hint:CB},{type:"union",valueTypes:[],id:"2",hint:SB,numberInputInfo:{defaultLatex:"2",sliderInfo:{value:"2",min:"0",max:"5"}}}],outputs:[{id:"3",type:"dilate",hidden:!1,name:this.generateDefaultName(),parents:[{type:"reference-input",id:"1"},{type:"reference-input",id:"2-number"}]}]}}};var vp=class extends ir{constructor(t){super(t);this.model=t;this.displayName="graphing-calculator-text-geometry-tool-expression-edit-display-name",this.toolType="custom",this.toolName="expression-edit"}getHint(){let t=this.model.controller.getValidCursorContext();if((t==null?void 0:t.type)!=="expression-arguments"||!t.functionSymbol)return this.getGenericHint();let i=this.model.getTool(t.functionSymbol);if(!i)return this.getGenericHint();let o=t.argIndex;return t.positionWithinArg==="end"&&(o+=1),i.getExpressionEditHint(o)}getGenericHint(){let t=this.getAllValidNextInputTypes();if(t.some(o=>o===__dcg_shared_module_exports__['n']||o===__dcg_shared_module_exports__['q']))return Ka("graphing-calculator-text-geometry-tool-expression-edit-generic-hint-any-object");let i=t.filter(o=>!(__dcg_shared_module_exports__['Z'](o)&&t.find(n=>__dcg_shared_module_exports__['_'](o)===n))).map(o=>Wd(__dcg_shared_module_exports__['Y'](o),Gb()));return i.length===0?Ka("graphing-calculator-text-geometry-tool-expression-edit-generic-hint-0"):i.length===1?Ka("graphing-calculator-text-geometry-tool-expression-edit-generic-hint-1",{type:i[0]}):i.length===2?Ka("graphing-calculator-text-geometry-tool-expression-edit-generic-hint-2",{type1:i[0],type2:i[1]}):Ka("graphing-calculator-text-geometry-tool-expression-edit-generic-hint-many",{types:i.join(", ")})}getExpressionEditHint(t){return this.getHint()}getSpec(){let t=this.model.controller.getSelectedItem(),i=wA(this.model.controller.getValidCursorContext());return!i||!t||t.type!=="expression"?{inputs:[],outputs:[]}:{inputs:[{type:"union",valueTypes:i,id:"1"}],outputs:[{type:"expression-edit-preview-latex",rhsLatex:this.buildPreviewLatex(),hidden:!1,color:t.color,id:"2",parents:[]}]}}onMove(t){super.onMove(t);let{idMap:i,inputIndex:o}=this.model.getNonObjectsState().ui.currentTool,n=this.getSpec().inputs[o];return!!(n&&i[n.id])}buildPreviewLatex(){let t="",i="",o=this.model.controller.getValidCursorContext();if((o==null?void 0:o.type)==="empty")return"";(o==null?void 0:o.type)==="expression-arguments"&&((o==null?void 0:o.positionWithinArg)==="end"?t=",":(o==null?void 0:o.positionWithinArg)==="start"&&(i=","));let n=this.model.getNonObjectsState().ui.currentTool.idMap,a=t+n[1]+i,s=this.model.controller.getSelectedItem();if((s==null?void 0:s.type)!=="expression")return"";let l=ve.getFocusedMathquill(),c=l==null?void 0:l.selection();if((c==null?void 0:c.latex)!==s.latex)return"";let d=s.latex.slice(0,c.startIndex)+a+s.latex.slice(c.endIndex);return Ii(s)?d.slice(s.latex.indexOf("=")+1):d}canNextInputBePoint(){let t=this.model.controller.getValidCursorContext();if((t==null?void 0:t.type)!=="expression-arguments"||t.expressionType!=="FunctionCall"&&t.expressionType!=="List")return!1;let i=wA(t);if(!i)return!1;let o=!1;for(let n of i){if(__dcg_shared_module_exports__['ca'](n,__dcg_shared_module_exports__['n']))return!1;__dcg_shared_module_exports__['ca'](n,__dcg_shared_module_exports__['p'])&&(o=!0)}return o}shouldHighlightRelevantObjects(){let t=this.model.controller.getValidCursorContext();if((t==null?void 0:t.type)==="empty")return!1;let i=wA(t);return!(!i||i.some(o=>__dcg_shared_module_exports__['ca'](o,__dcg_shared_module_exports__['n']))||i.every(o=>__dcg_shared_module_exports__['ca'](o,__dcg_shared_module_exports__['o'])||__dcg_shared_module_exports__['ca'](o,__dcg_shared_module_exports__['J'])||__dcg_shared_module_exports__['ca'](o,__dcg_shared_module_exports__['L'])))}};function wA(r){if((r==null?void 0:r.type)==="empty")return[__dcg_shared_module_exports__['J'],__dcg_shared_module_exports__['L'],__dcg_shared_module_exports__['K'],__dcg_shared_module_exports__['M'],__dcg_shared_module_exports__['P']];let e=(r==null?void 0:r.type)==="expression-arguments"?r.allowedTypesForInsertedArg:r==null?void 0:r.allowedTypes;return e==null?void 0:e.filter(t=>!__dcg_shared_module_exports__['ca'](t,__dcg_shared_module_exports__['U']))}var pY={selection:Sy,point:Ey,line:Dy,segment:ky,ray:Ty,vector:vy,circle:Iy,arc:My,parallel:Ay,perpendicular:Gy,midpoint:Vy,polygon:Py,compass:Ly,angle:$u,directedangle:Oy,reflect:_y,translate:Fy,rotate:Uu,dilate:Ry,"box-selection":Fu,"expression-edit":vp},vA=pY;function uY(r,e){var a;if(e.typedRuntimeValue.valueType===__dcg_shared_module_exports__['N']||e.typedRuntimeValue.valueType===__dcg_shared_module_exports__['O'])return[];let t=e.data.call;if(!t||!t.parents)return[];let i=t.symbol,o=t.parents.map(Tm),n;switch(i){case"circle":{let[s,l]=o,c=l&&((a=r[l])==null?void 0:a.typedRuntimeValue.valueType);c&&__dcg_shared_module_exports__['ca'](c,__dcg_shared_module_exports__['z'])?n=[s]:n=[s,l];break}case"apply":{n=[o[1]];break}case"parallel":case"perpendicular":{n=[o[1]];break}case"polygon":{n=o.every(s=>s!==void 0)?o:[];break}default:n=o}return n.filter(DB)}var hY=[[1,0],[0,0],!1],Ny=class Ny{constructor(e,t){let i=(e==null?void 0:e.list)||[];t&&(i=i.concat(t)),this.list=i;let o=(e==null?void 0:e.forward)||hY;t&&(o=__dcg_shared_module_exports__['Sb'](o,t.value)),this.forward=o,this.inverse=__dcg_shared_module_exports__['Tb'](o)}add(e){return new Ny(this,e)}equals(e){if(this.list.length!==e.list.length)return!1;for(let t=this.list.length-1;t>=0;t--){let i=this.list[t],o=e.list[t];if(!__dcg_shared_module_exports__['Oa'](i,o))return!1}return!0}isCompletelyRigid(){return this.list.length===0}};Ny.COMPLETELY_RIGID=new Ny(void 0);var r0=Ny;function gY(r){var i,o;let e={},t={};for(let n in r){let a=r[n];if(!a)continue;for(let l of((i=a.data.call)==null?void 0:i.parents)||[]){let c=Tm(l);c&&(e[c]||(e[c]=[]),(o=e[c])==null||o.push(a.assignment))}let s=uY(r,a);t[a.assignment]=s}return{parentToChildren:e,childToReversibilityParents:t}}function EB(r){let e=[],t={},i,o=1,n=2;function a(s){var l;t[s]!==n&&(t[s]=o,(l=r[s])==null||l.forEach(a),t[s]=n,e.unshift(s))}for(let s in r)t[s]===i&&a(s);return e}function CA(r,e){var u,h,g,b,C,S,k,I,M,E;let t={},i={},o={},n={},a={};for(let A of e)a[A]=!0,o[A]=r0.COMPLETELY_RIGID;let{parentToChildren:s,childToReversibilityParents:l}=gY(r);for(let A of EB(l)){let V=r[A];if(!V)continue;let G=(u=V.data.call)==null?void 0:u.symbol,P=(((h=V.data.call)==null?void 0:h.parents)||[]).map(Tm).filter(DB);if(o[V.assignment])if(V.typedRuntimeValue.valueType===__dcg_shared_module_exports__['p']&&!G)t[V.assignment]=o[V.assignment];else if(G==="glider"&&P.length&&!a[P[0]])i[V.assignment]=o[V.assignment];else{let O=o[V.assignment];if(G==="apply"){let q=(g=r[P[0]])==null?void 0:g.typedRuntimeValue;if((q==null?void 0:q.valueType)===__dcg_shared_module_exports__['O'])return{};if((q==null?void 0:q.valueType)!==__dcg_shared_module_exports__['N'])continue;O=O.add(q)}let R=(b=l[V.assignment])!=null?b:[];for(let q of R)o[q]?O.equals(o[q])||(o[q]=r0.COMPLETELY_RIGID,n[q]=!0):o[q]=O}}let c={};for(let A in o)c[A]=!0;for(let A of EB(s))if(c[A]){for(let V of s[A]||[])c[V]=!0;if(o[A]){let V=l[A]||[];for(let G of V)n[G]&&(n[A]=!0)}}for(let A in i){let G=(((S=(C=r[A])==null?void 0:C.data.call)==null?void 0:S.parents)||[]).map(Tm)[0];G&&c[G]&&(n[G]=!0)}for(let A in r){if(!c[A])continue;let V=r[A],G=(k=V==null?void 0:V.data.call)==null?void 0:k.symbol,P=(((I=V==null?void 0:V.data.call)==null?void 0:I.parents)||[]).map(Tm);if(G==="apply"&&o[A]){let O=P[1],R=P[0];if(!O||!R)continue;let q=(((E=(M=r[R])==null?void 0:M.data.call)==null?void 0:E.parents)||[]).map(Tm),J=q.some(z=>z&&c[z]);if(o[A].isCompletelyRigid()&&o[O].isCompletelyRigid()||J){n[O]=!0;for(let z of q)z&&(n[z]=!0)}}}let d=[];for(let A in n)a[A]||d.push(A);return d.length?CA(r,e.concat(d)):{...t,...i}}function Tm(r){return r?__dcg_shared_module_exports__['bb'](r[0]):void 0}function DB(r){return r!==void 0}var By=class{constructor(){this._nextId=0;this._defs={}}clear(){this._nextId=0,this._defs={}}add(e,t){let i;t?(i=e.assignment,e.listIndex!==void 0&&(i+="\\left["+e.listIndex+"\\right]")):i="**geo-internal-id-"+this._nextId++,this._defs[i]=e}computeReversibilityLineages(e){var s;let t=this.buildAssignmentMap(),i={};for(let l in t){let c=t[l];c&&(i[c.calcId]=c)}let o=[];for(let l of e){let c=i[l];if(!c)return{};o.push(c.assignment)}let n=CA(this.buildAssignmentMap(),o),a={};for(let l in n){let c=(s=t[l])==null?void 0:s.calcId;c&&(a[c]=n[l])}return a}buildAssignmentMap(){let e={};for(let t in this._defs){let i=this._defs[t];i&&(e[i.assignment]=i)}return e}getDepthValues(){var c,d;var e={},t={};let i=this.buildAssignmentMap();for(let u in i){let h=i[u];if(!h)continue;let g=__dcg_shared_module_exports__['cb'](h.assignment),b=[],C=[];(c=h.data.call)!=null&&c.parents?C=(d=h.data.call)==null?void 0:d.parents:h.data.assignmentRhsReference&&(C=[h.data.assignmentRhsReference]),C.forEach(S=>{let k=S&&S[0];k&&(b.push(k),t[k]||(t[k]=[]),t[k].push(__dcg_shared_module_exports__['cb'](g)))}),e[g]=b}let o=u=>{if(n[u]!==void 0)return n[u];var h=-1,g=e[u]||[];for(let C=0;C<g.length;C++){let S=o(g[C]);S>h&&(h=S)}let b=h+1;return n[u]=b,b};var n={};for(var a in e)n[a]=o(a);var s={},l={};for(var a in t){let h=n[a],g=1/0;t[a].forEach(b=>{let C=n[b];C>h&&(h=C),C<g&&(g=C)}),s[a]=h,l[a]=g}return{createdDepth:n,lastReferencedDepth:s,firstReferencedDepth:l}}};function kB(r,e,t){let o=.5/(2*t*e);return Sr(r-o,r+o)}function zy(r,e,t,i,o=0){let n=__dcg_shared_module_exports__['ka'](r.x,r.y,0,t[0],t[1],0,i[0],i[1],0);o&&(n+=o);let s=.5/(__dcg_shared_module_exports__['yb'](t,i)*e);return Sr(n-s,n+s)}function cl(r,e){for(let t of e)t&&(t.min!==void 0&&r<t.min?r=t.min:t.max!==void 0&&r>t.max&&(r=t.max));return r}function i0(r,e,t,i){if(!t)return 0;var o=r.mapx(1)-r.mapx(0);switch(t.valueType){case __dcg_shared_module_exports__['B']:{let a=e.x-t.value[0][0],s=e.y-t.value[0][1],l=Math.atan2(s,a)/(2*Math.PI);l<0&&(l+=1),l=kB(l,o,t.value[1]);let c=cl(0,[i]),d=cl(1,[i]);if(l>=c&&l<=d)return l;{let u=__dcg_shared_module_exports__['Eb'](t.value,c),h=__dcg_shared_module_exports__['Eb'](t.value,d),g=__dcg_shared_module_exports__['yb'](u,[e.x,e.y]),b=__dcg_shared_module_exports__['yb'](h,[e.x,e.y]);return g<=b?c:d}}case __dcg_shared_module_exports__['D']:{let a=__dcg_shared_module_exports__['Hb'](t.value);if(!a)return 0;if(a.type==="segment"){let s=zy(e,o,a.start,a.end);return cl(s,[{min:0,max:1},i])}else if(a.type==="rays"){let s=__dcg_shared_module_exports__['yb'](a.start1,[e.x,e.y]),l=__dcg_shared_module_exports__['yb'](a.start2,[e.x,e.y]),c=!i||i.min===void 0?-1/0:i.min,d=!i||i.max===void 0?1/0:i.max;return s<l?c>0?d>=1?1:c:cl(-zy(e,o,a.start1,a.end1),[{min:void 0,max:0},i]):d<1?c<=0?0:d:cl(zy(e,o,a.start2,a.end2,1),[{min:1,max:void 0},i])}else if(a.type=="arc"){let[s,l]=a.center,{radius:c,startAngle:d}=a,u=__dcg_shared_module_exports__['Ab'](t.value),h=e.x-s,g=e.y-l,b=__dcg_shared_module_exports__['fa'](Math.atan2(g,h),d,u);if(b>=0&&b<=1)b=kB(b,o,c);else{let k=JS(e,{x:s+c*Math.cos(d),y:l+c*Math.sin(d)}),I=JS(e,{x:s+c*Math.cos(d+u),y:l+c*Math.sin(d+u)});k<=I?b=0:b=1}let C=cl(0,[i]),S=cl(1,[i]);if(b>=C&&b<=S)return b;{let k=__dcg_shared_module_exports__['Fb'](t.value,C),I=__dcg_shared_module_exports__['Fb'](t.value,S),M=__dcg_shared_module_exports__['yb'](k,[e.x,e.y]),E=__dcg_shared_module_exports__['yb'](I,[e.x,e.y]);return M<=E?C:S}}return cl(0,[i])}case __dcg_shared_module_exports__['H']:case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['F']:{let a=zy(e,o,t.value[0],t.value[1]);return cl(a,[{min:t.valueType===__dcg_shared_module_exports__['F']?void 0:0,max:t.valueType!==__dcg_shared_module_exports__['z']?void 0:1},i])}case __dcg_shared_module_exports__['x']:{let a=t.value,s=1/0,l=cl(0,[i]),c=i&&i.min!==void 0?i.min:-1/0,d=i&&i.max!==void 0?i.max:1/0,u=Math.floor(Math.max(c,0)),h=Math.ceil(Math.min(d,a.length));for(let g=u;g<h;g++){let b=a[g],C=a[(g+1)%a.length],S=cl(zy(e,o,b,C,g),[{min:g,max:g+1},i]),k=__dcg_shared_module_exports__['Gb'](t.value,S),I=__dcg_shared_module_exports__['yb'](k,[e.x,e.y]);I<s&&(s=I,l=S)}return l}case __dcg_shared_module_exports__['p']:case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:case __dcg_shared_module_exports__['N']:case __dcg_shared_module_exports__['P']:return 0;default:return t}}function TB(r,e){switch(r.valueType){case __dcg_shared_module_exports__['B']:return __dcg_shared_module_exports__['Eb'](r.value,e);case __dcg_shared_module_exports__['D']:return __dcg_shared_module_exports__['Fb'](r.value,e);case __dcg_shared_module_exports__['H']:return __dcg_shared_module_exports__['Db'](r.value,e);case __dcg_shared_module_exports__['z']:return __dcg_shared_module_exports__['Cb'](r.value,e);case __dcg_shared_module_exports__['F']:return __dcg_shared_module_exports__['Bb'](r.value,e);case __dcg_shared_module_exports__['x']:return __dcg_shared_module_exports__['Gb'](r.value,e);case __dcg_shared_module_exports__['p']:case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:case __dcg_shared_module_exports__['N']:case __dcg_shared_module_exports__['P']:return[NaN,NaN];default:return r}}function mY(r,e){if(!e)return!1;let{left:t,right:i,top:o,bottom:n}=r.pixelCoordinates,{x:a,y:s}=e.mathPoint;if(e.transform){let l=e.model.formula.typed_constant_value;if((l==null?void 0:l.valueType)!==__dcg_shared_module_exports__['p'])throw new Error(`Expected movable point to be a Point but found ${l?__dcg_shared_module_exports__['X'](l.valueType):void 0} instead`);a=a!=null?a:l.value[0],s=s!=null?s:l.value[1],[a,s]=__dcg_shared_module_exports__['Ub'](e.transform.forward,[a,s])}if(a!==void 0){let l=r.mathToPixels.mapX(a);if(l<t-.5||l>i+.5)return!1}if(s!==void 0){let l=r.mathToPixels.mapY(s);if(l<o-.5||l>n+.5)return!1}return!0}function IB(r,e){if(e.length===1&&!mY(r,e[0]))return!1;let t=!1;for(let i of e){if(i.newPointLatex){let o=i.model.latex;Qn(i.model,i.newPointLatex),t=t||o!==i.model.latex}for(let o in i.sliderUpdates){let{value:n,model:a}=i.sliderUpdates[o];i.commitSliderSoftLimits&&kg(a);let s=a.latex;gC(a,n),t=t||s!==a.latex}}return t}function MB({projection:r,transform:e,controller:t,strategy:i,mode:o,clampToViewport:n}){var E;let a=t.getItemModel(i.id);if(!a||a.type!=="expression")throw new Error(`Programming error: updateSliderNonlinear move strategy should point to an expression item, but found ${a==null?void 0:a.type}`);let s=o==="up"||o==="bigup",l=((E=a.slider)==null?void 0:E.step)!==""&&(s&&!a.slider.hardMax||!s&&!a.slider.hardMin);i.compiled.fn||__dcg_shared_module_exports__['Xb'](i.compiled);let c=i.compiled.fn;e&&(c=A=>__dcg_shared_module_exports__['Ub'](e.forward,i.compiled.fn(A)));let d=A=>{let[V,G]=c(A);return{x:V,y:G}=r.mathToPixels.mapPoint({x:V,y:G}),[V,G]},u=Na(a),[h,g]=d(u),b=IT(a,o,{ignoreSoftLimits:l}),C=b,[S,k]=d(C),I=__dcg_shared_module_exports__['ia'](S-h,k-g);if(I<1){let A=__dcg_shared_module_exports__['sb'](d,[h+(S-h)/I,g+(k-g)/I],C,C>u?C:i.min,C<u?C:i.max,1);if(A){let V=Sr(A[0],A[1]);(o==="bigup"||o==="bigdown")&&(V=u+(V-u)*5);let G=us(a,__dcg_shared_module_exports__['rb'](V,i.min,i.max),{ignoreSoftLimits:l}),[P,O]=d(G);__dcg_shared_module_exports__['ia'](P-h,O-g)>I&&(b=G)}}n&&(b=GB(r,Na(a),b,c));let M=c(b);return{mathPoint:{x:M[0],y:M[1]},sliderUpdates:{[i.id]:{model:a,value:b}}}}function AB({controller:r,projection:e,transform:t,strategy:i,targetScreenPoint:o,clampToViewport:n}){let a={mathPoint:{},sliderUpdates:{}},s=r.getItemModel(i.id);if(!s||s.type!=="expression")throw new Error(`Programming error: updateSliderNonlinear move strategy should point to an expression item, but found ${s==null?void 0:s.type}`);i.compiled.fn||__dcg_shared_module_exports__['Xb'](i.compiled);let l=i.compiled.fn;t&&(l=M=>__dcg_shared_module_exports__['Ub'](t.forward,i.compiled.fn(M)));let c=M=>{let[E,A]=l(M);return{x:E,y:A}=e.mathToPixels.mapPoint({x:E,y:A}),[E,A]},d=i.initialValue,u=i.min,h=i.max,g=[o.x,o.y],b=__dcg_shared_module_exports__['sb'](c,g,d,u,h,1);if(!b)return a;let C=Sr(b[0],b[1]);u!==void 0&&C<u&&(C=u),h!==void 0&&C>h&&(C=h);let S=us(s,C,{ignoreSoftLimits:!0});n&&(S=GB(e,Na(s),S,l));let[k,I]=l(S);return a.mathPoint.x=k,a.mathPoint.y=I,a.sliderUpdates[s.id]={value:S,model:s},a}function EA({controller:r,projection:e,transform:t,strategy:i,targetScreenPoint:o}){let n=e.reverse_map_pt(o);if(t){let d=__dcg_shared_module_exports__['Ub'](t.inverse,[n.x,n.y]);n={x:d[0],y:d[1]}}let a=i.type==="updateSliderForGlider"?{min:i.min,max:i.max}:void 0,s=i0(e,n,i.movesOn,a);if(!isFinite(s))return;let l=TB(i.movesOn,s),c={mathPoint:{x:l[0],y:l[1]},newPointLatex:void 0,sliderUpdates:{}};if(i.type==="updateGliderParameter"){let d=i.span;c.newPointLatex=d.input.slice(0,d.start)+__dcg_shared_module_exports__['xc'](s)+d.input.slice(d.end)}else if(i.type==="updateSliderForGlider"){let d=r.getItemModel(i.id);d&&d.type==="expression"&&(c.sliderUpdates[d.id]={value:s,model:d})}return c}function GB(r,e,t,i){let o=d=>{let[u,h]=i(d);return r.mathToPixels.mapPoint({x:u,y:h})},n=({x:d,y:u})=>{let{left:h,right:g,top:b,bottom:C}=r.pixelCoordinates;return d>=h&&d<=g&&u>=b&&u<=C},a=e,s=o(e),l=t,c=o(t);if(n(c)||!n(s))return t;for(;;){let d=s.x-c.x,u=s.y-c.y;if(d*d+u*u<.5)break;let h=__dcg_shared_module_exports__['qb'](a,l);if(h===a||h===l){[a,l]=n(s)?[a,a]:[l,l];break}let g=o(h);n(g)!==n(s)?[l,c]=[h,g]:[a,s]=[h,g]}return Sr(a,l)}function DA({controller:r,projection:e,transform:t,formula:i,moveStrategy:o,dragMode:n,targetScreenPoint:a,clampToViewport:s}){if(t){let{x:g,y:b}=e.pixelsToMath.mapPoint(a),[C,S]=__dcg_shared_module_exports__['Ub'](t.inverse,[g,b]);a=e.mathToPixels.mapPoint({x:C,y:S})}var l=e.pixelsToMath.mapRect({left:a.x-.5,right:a.x+.5,top:a.y+.5,bottom:a.y-.5}),c=[{min:l.left,max:l.right},{min:l.top,max:l.bottom}];let d={mathPoint:{},sliderUpdates:{}},[u,h]=o;if(u.type==="updateCoordinate"||h.type==="updateCoordinate"){let g=fY(i,c,n);if(g){let{latex:b,x:C,y:S}=g;(C!==void 0||S!==void 0)&&(d.newPointLatex=b,d.mathPoint.x=C!=null?C:d.mathPoint.x,d.mathPoint.y=S!=null?S:d.mathPoint.y)}}for(let g of[0,1]){let b=o[g];if(SA(g,n)&&b.type==="updateSlider"){let C=r.getItemModel(b.id);if(!C||C.type!=="expression")continue;let[S,k]=b.coefficients,I=Sr(k*c[g].min+S,k*c[g].max+S),M=us(C,I,{ignoreSoftLimits:!0}),E=(M-S)/k;if(!s||t){d.mathPoint[g===0?"x":"y"]=E,d.sliderUpdates[C.id]={value:M,model:C};continue}let[A,V]=g===0?[e.mathCoordinates.left,e.mathCoordinates.right]:[e.mathCoordinates.bottom,e.mathCoordinates.top],G=E<A?A:E>V?V:void 0;G!==void 0&&gs(C)===void 0?(d.mathPoint[g===0?"x":"y"]=G,d.sliderUpdates[C.id]={value:k*G+S,model:C}):(d.mathPoint[g===0?"x":"y"]=E,d.sliderUpdates[C.id]={value:M,model:C})}}return d}function fY(r,e,t){if(!r.move_strategy)throw new Error("Programming error: expected move_strategy to be defined.");var i=Sr(e[0].min,e[0].max),o=Sr(e[1].min,e[1].max);let[n,a]=r.move_strategy,s=!1,l=!1,c,d="",u=0;if(n.type==="updateCoordinate"&&SA(0,t)&&(c=n.inputSpan.input,s=!0,d+=c.slice(u,n.inputSpan.start),d+=__dcg_shared_module_exports__['xc'](i),u=n.inputSpan.end),a.type==="updateCoordinate"&&SA(1,t)&&(c=a.inputSpan.input,l=!0,d+=c.slice(u,a.inputSpan.start),d+=__dcg_shared_module_exports__['xc'](o),u=a.inputSpan.end),c!==void 0)return d+=c.slice(u),{latex:d,x:s?i:void 0,y:l?o:void 0}}function SA(r,e){switch(e){case"X":return r===0;case"Y":return r===1;case"XY":return!0;default:return!1}}function VB(r,e,t){t.forEach(i=>{bY(r,e,i)})}function PB(r,e,t,i,o,n,a){var d;let s=!1,l=e.length===1,c=[];for(let u=0;u<e.length;u++){let h=e[u];if(h.tableInfo){xY(r,h,i[u],o),s=!0;continue}let g=r.getItemModel(h.calcId);if(g){if(g.type==="image")s=s||CY(r,g,h,i[u],o);else if(g.type==="expression"){let b=SY({controller:r,movedExpr:g,dragMode:(d=Zr(g,{isReverseDrag:h.isReverseDrag}))!=null?d:"NONE",currentScreenPoint:t[u],targetScreenPoint:i[u],projection:o,transform:n&&n[u],isOnlyPoint:l,keyboardDirection:a});b&&c.push(b)}}}return s=s||IB(o,c),s}function LB(r,e){e.forEach(t=>{yY(r,t)})}function bY(r,e,t){if(t.tableInfo){lr(e,void 0);let s=r.getItemModel(t.tableInfo.tableId);if(!s||s.type!=="table")return;jk(s,!0)}else{let s=r.getItemModel(t.calcId);if(!s||!(s.type==="expression"||s.type==="image")||!s.formula||!s.formula.move_strategy)return;for(var i=s.formula.move_strategy,o=0;o<i.length;o++){let l=i[o];if(i[o].type==="updateCoordinate"||i[o].type==="updateGliderParameter")s.type==="image"?iT(s,!0):s.type==="expression"&&VT(s,!0);else if(l.type==="updateSlider"||l.type==="updateSliderNonlinear"||l.type==="updateSliderForGlider"){var n=r.getItemModel(l.id);if(!n||n.type!=="expression")continue;var a;if(s.type==="expression"?a=Zr(s,{isReverseDrag:t.isReverseDrag}):a=void 0,a==="NONE"||o===0&&a==="Y"||o===1&&a==="X")continue;Eb(n,!0)}}}}function yY(r,e){for(let t of r.getAllItemModels())t.type==="table"?t.draggingOnGraphpaper&&jk(t,!1):t.type==="expression"?(t.sliderDragging&&Eb(t,!1),t.draggingOnGraphpaper&&VT(t,!1)):t.type==="image"&&t.draggingOnGraphpaper&&iT(t,!1)}function xY(r,e,t,i){var o=e.tableInfo.tableId,n=e.tableInfo.rowIndex,a=e.tableInfo.columnId,s=e.tableInfo.dragX,l=e.tableInfo.dragY,c=r.getItemModel(o);if(!(!c||c.type!=="table")){var d=ro(c,a);if(d){var u=i.closestPointOnScreen(t),h=i.pixelsToMath.mapRect(OB(u,.5)),g={x:__dcg_shared_module_exports__['wc'](Sr(h.left,h.right)),y:__dcg_shared_module_exports__['wc'](Sr(h.top,h.bottom))};if(s&&Bc(c,{row:n+1,column:0},g.x),l){let b=d.index;Bc(c,{row:n+1,column:b},g.y)}}}}function OB(r,e){return{left:r.x-e,right:r.x+e,top:r.y+e,bottom:r.y-e}}function wY(r,e,t){if(t[0]===0&&t[1]===0)return{x:e.x,y:e.y,width:r.width,height:r.height};let i=Math.cos(r.radianAngle),o=Math.sin(r.radianAngle),n=e.x-r.x,a=e.y-r.y;if(t[0]===0)return{x:r.x,y:r.y,width:r.width,height:2*t[1]*(i*a+o*n)};if(t[1]===0)return{x:r.x,y:r.y,width:2*t[0]*(i*n-o*a),height:r.height};var s=2*(r.width*t[0]*(i*n-o*a)+r.height*t[1]*(o*n+i*a))/(r.width*r.width+r.height*r.height);return{x:r.x,y:r.y,width:s*r.width,height:s*r.height}}function vY(r,e,t){let i=[{x:e.left,y:e.bottom},{x:e.left,y:e.top},{x:e.right,y:e.top},{x:e.right,y:e.bottom}],o=["x","y","width","height"],n={x:1/0,y:1/0,width:1/0,height:1/0},a={x:-1/0,y:-1/0,width:-1/0,height:-1/0};for(let s of i){let l=wY(r,s,t);for(let c of o)n[c]=Math.min(n[c],l[c]),a[c]=Math.max(a[c],l[c])}return{min:n,max:a}}function Ky(r){return r===void 0?NaN:r[0]}function CY(r,e,t,i,o){var _;var n=e.formula;if(!n||((_=n.move_strategy)==null?void 0:_.length)!==4)return!1;var a=n.dimensions,s={x:Ky(a.x),y:Ky(a.y),width:Ky(a.width),height:Ky(a.height),radianAngle:Ky(a.radianAngle)},l=t.scaleFactor||[0,0],c=l[0]!==0&&l[1]!==0,d=o.closestPointOnScreen(i),u=o.pixelsToMath.mapRect(OB(d,c?.05:.5)),h=vY(s,u,l),g=o.mathToPixels.mapRect({left:s.x-.5*s.width,right:s.x+.5*s.width,top:s.y-.5*s.height,bottom:s.y+.5*s.height}),b=Math.abs(g.right-g.left),C=Math.abs(g.bottom-g.top),S=o.mathToPixels.mapRect({left:h.min.x-.5*h.min.width,right:h.min.x+.5*h.min.width,top:h.min.y-.5*h.min.height,bottom:h.min.y+.5*h.min.height}),k=Math.abs(S.right-S.left),I=Math.abs(S.bottom-S.top);if(k<b&&k<1||I<C&&I<1)return!1;var M=["width","height","x","y"];let E=!1;for(var A=0;A<M.length;A++){var V=M[A],G=n.move_strategy[A];switch(G.type){case"updateCoordinate":var P=Sr(h.min[V],h.max[V]),O=G.inputSpan.input,R=__dcg_shared_module_exports__['wc'](P);switch(V){case"width":case"height":fa(e,V,R);break;case"x":if(n.move_strategy[3].type==="updateCoordinate"){let Q=n.move_strategy[3],De=Sr(h.min.y,h.max.y),se=__dcg_shared_module_exports__['wc'](De),re=O.slice(0,G.inputSpan.start)+R+O.slice(G.inputSpan.end,Q.inputSpan.start)+se+O.slice(Q.inputSpan.end);fa(e,"center",re)}else{let Q=O.slice(0,G.inputSpan.start)+R+O.slice(G.inputSpan.end);fa(e,"center",Q)}break;case"y":if(n.move_strategy[2].type!=="updateCoordinate"){let Q=O.slice(0,G.inputSpan.start)+R+O.slice(G.inputSpan.end);fa(e,"center",Q)}break;default:return V}E=!0;break;case"updateSlider":var q=r.getItemModel(G.id);if(!q||q.type!=="expression")continue;var J=G.coefficients[0],U=G.coefficients[1],z=U*h.min[V]+J,K=U*h.max[V]+J,v=Sr(z,K),D=q.latex;gC(q,v),q.latex!==D&&(E=!0);break}}return E}function SY({controller:r,movedExpr:e,dragMode:t,currentScreenPoint:i,targetScreenPoint:o,projection:n,transform:a,isOnlyPoint:s,keyboardDirection:l}){var b,C;let c=e.formula;if(!c||((b=c.move_strategy)==null?void 0:b.length)!==2)return;let[d,u]=c.move_strategy;if(s&&d.type==="updateCoordinate"&&u.type==="updateCoordinate"){let S=n.reverse_map_pt(o),k=kA(n,S);k&&(o=n.map_pt(k))}let h=s?n.closestPointOnScreen(o):o;if(!l){let S;switch(d.type){case"updateSliderNonlinear":S=AB({controller:r,projection:n,transform:a,strategy:d,targetScreenPoint:h,clampToViewport:s});break;case"updateGliderParameter":case"updateSliderForGlider":S=EA({controller:r,projection:n,transform:a,strategy:d,targetScreenPoint:h});break;default:S=DA({controller:r,projection:n,transform:a,formula:c,moveStrategy:c.move_strategy,dragMode:t,targetScreenPoint:h,clampToViewport:s})}return S&&{...S,commitSliderSoftLimits:!1,transform:a,model:e}}let g;if(d.type==="updateSliderNonlinear"){if(!(l!=null&&l.x))return;g=MB({projection:n,transform:a,controller:r,strategy:d,mode:l.x,clampToViewport:s})}else if(d.type==="updateGliderParameter"||d.type==="updateSliderForGlider")g=EA({controller:r,projection:n,transform:a,strategy:d,targetScreenPoint:h});else{let S=l.x?0:1,k=l.x?h.x-i.x:h.y-i.y,I=c.move_strategy[S];if(I.type==="updateSlider"){let M=r.getItemModel(I.id);if((M==null?void 0:M.type)!=="expression")throw new Error(`Programming error: updateSlider move strategy should point to an expression item, but found ${M==null?void 0:M.type}`);let E=gs(M);if(E){let A=n.mathToPixels.mapPoint({x:0,y:0}),V=I.coefficients[1],G=Math.abs(S===0?n.mathToPixels.mapX(E/V)-A.x:n.mathToPixels.mapY(E/V)-A.y),P=Math.ceil(1/G);k=G*P*(k>0?1:-1);let O=(C=l.x)!=null?C:l.y;(O==="bigup"||O==="bigdown")&&(k*=5)}}g=DA({controller:r,projection:n,transform:a,formula:c,moveStrategy:c.move_strategy,dragMode:t,targetScreenPoint:{x:i.x+(S===0?k:0),y:i.y+(S===1?k:0)},clampToViewport:s})}return g&&{...g,commitSliderSoftLimits:!0,transform:a,model:e}}function kA(r,e){if(!r.settings.showGrid)return;let t=Qc(r),i=t.minorStepX,o=t.minorStepY,n=r.map_pt(e),a=Math.round(e.x/i)*i,s=Math.round(e.y/o)*o,l=5,c={x:a,y:s},d=r.map_pt(c);if(__dcg_shared_module_exports__['ia'](d.x-n.x,d.y-n.y)<=l)return c}function RB(r,e){let t={i:0,x:NaN,y:NaN},i={i:1,x:NaN,y:NaN};if(!r||!e)return[t,i];let o=_B(r.typedRuntimeValue),n=_B(e.typedRuntimeValue);if(!o||!n)return[t,i];let a=FB(o,n);return t.x=a[0],t.y=a[1],a=FB(n,o),i.x=a[0],i.y=a[1],[t,i]}function _B(r){switch(r.valueType){case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['F']:case __dcg_shared_module_exports__['H']:return{type:"straight",def:r.value};case __dcg_shared_module_exports__['P']:return{type:"straight",def:Ku(r.value)};case __dcg_shared_module_exports__['B']:return{type:"circle",def:r.value};case __dcg_shared_module_exports__['D']:return{type:"arc",def:r.value}}}function FB(r,e){switch(r.type){case"straight":switch(e.type){case"straight":return __dcg_shared_module_exports__['Lb'](r.def,e.def);case"circle":return __dcg_shared_module_exports__['Jb'](r.def,e.def);case"arc":return __dcg_shared_module_exports__['Nb'](r.def,e.def)}case"circle":switch(e.type){case"straight":return __dcg_shared_module_exports__['Kb'](r.def,e.def);case"circle":return __dcg_shared_module_exports__['Ib'](r.def,e.def);case"arc":return __dcg_shared_module_exports__['Mb'](r.def,e.def)}case"arc":switch(e.type){case"straight":return __dcg_shared_module_exports__['Pb'](r.def,e.def);case"circle":return __dcg_shared_module_exports__['Ob'](r.def,e.def);case"arc":return __dcg_shared_module_exports__['Qb'](r.def,e.def)}}return[NaN,NaN]}var NB=[{key:"compass",objects:"Segment + Point"},{key:"midpoint",objects:"Segment"},{key:"parallel",objects:"Line + Point"},{key:"perpendicular",objects:"Line + Point"},{key:"image",objects:"2 Points"}];function dl(r){return __dcg_shared_module_exports__['Na'](r)}function pl(r){this.setState(r)}pl.prototype.setState=function(r){this.state=r};pl.prototype.getState=function(){return this.state};pl.prototype.set=function(r,e){if(arguments.length===1){this.state=r;return}else if(typeof r=="string"){this.state=dl(this.state),this.state[r]=e;return}var t=r.length-2,i=r[t+1],o;this.state=o=dl(this.state);for(var n=0;n<=t;n++){var a=r[n];o=o[a]=dl(o[a])}o[i]=e};pl.prototype.deepMutate=function(r,e){if(arguments.length===1){e=r,this.state=__dcg_shared_module_exports__['i'](this.state),e(this.state);return}else if(typeof r=="string"){this.state=dl(this.state),this.state[r]=__dcg_shared_module_exports__['i'](this.state[r]),e(this.state[r]);return}for(var t=r.length-2,i=r[t+1],o=this.state=dl(this.state),n=0;n<=t;n++){var a=r[n];o=o[a]=dl(o[a])}o=o[i]=__dcg_shared_module_exports__['i'](o[i]),e(o)};pl.prototype.shallowMutate=function(r,e){if(arguments.length===1){e=r,this.state=dl(this.state),e(this.state);return}else if(typeof r=="string"){this.state=dl(this.state),this.state[r]=dl(this.state[r]),e(this.state[r]);return}for(var t=r.length-1,i=this.state=dl(this.state),o=0;o<=t;o++){var n=r[o];i=i[n]=dl(i[n])}e(i)};pl.areShallowEqual=function(r,e){};pl.areDeepEqual=function(r,e){};function Yu(r){return r?!!(EY(r)&&r!=="Vector"||r==="Circle"||r==="Arc"||r==="Polygon"):!1}function EY(r){if(!r)return!1;switch(r){case"Line":case"Ray":case"Vector":case"Segment":return!0}return!1}Fa();var DY=!0,kY=!1,zB="**dcg_geo_tool_output_slider**";function TY(){return{point:__dcg_shared_module_exports__['hd'].PURPLE,line:__dcg_shared_module_exports__['hd'].BLUE,circle:__dcg_shared_module_exports__['hd'].GREEN,polygon:__dcg_shared_module_exports__['hd'].BLUE,angle:__dcg_shared_module_exports__['hd'].BLACK}}function IY(r,e){let t=[],i=r.parents;for(let o=0;o<i.length;o++){let n=i[o];n.type==="hardcoded"?t[o]=n.id:t[o]=e[n.id]}return t}var Uy=class{constructor(e){this._nextObjectId=0;this.clear(),this.controller=e,this.s=this.controller.s,this._tools={};for(let t in vA)this._tools[t]=new vA[t](this)}onPreviewChange(){var a;var e=this.controller.getToolPreviewJSONState(),t=this.getUncommittedObjects();if(this.getCurrentTool()instanceof vp&&!this.controller.getValidCursorContext()){t={...t};for(let s in e){let l=e[s];l.type==="expression-edit-preview-latex"&&(t[s]=l)}}for(var o in t){var n=t[o];n.type==="polygon"&&this.isObjectHovered(n.parents[0])&&n.parents.push(n.parents[0])}__dcg_shared_module_exports__['Oa'](e,t)?this.controller.dispatch({type:"render"}):this.controller.dispatch({type:"set-tool-preview-state",state:t}),(a=this.controller.get2dPOIController())==null||a.updateGeoHoveredObjects()}peekNextObjectId(){return"\\token{"+this._nextObjectId.toString()+"}"}generateObjectId(){let e=this.peekNextObjectId();return this._nextObjectId+=1,e}updateNextObjectId(e){e>this._nextObjectId&&(this._nextObjectId=e)}clear(){let e={objects:{},ui:{currentTool:{name:"selection",idMap:{},reusableInputIdMap:{},lockedIds:{},inputIndex:0,outputHistory:{}},colors:TY()},hoveredObjects:[],uncommittedIds:{},selectedIds:{},nextSelectionNumber:1,fadeAnimations:{},maxAnimationEndTime:0};this.store?this.store.set(e):this.store=new pl(e)}onFocus(e){this.clearHoveredObjects(),this.getCurrentTool().onFocus(e),this.onPreviewChange()}onMouseAction(e,t){let i=this.getCurrentTool();if(i instanceof vp&&!this.controller.getValidCursorContext())return{committed:void 0,handled:!1};switch(this.updateNextObjectId(this.controller.findLastTokenNumber()+1),this.clearHoveredObjects(),e){case"move":return{committed:void 0,handled:i.onMove(t)};case"release":i.onMove(t);let o=i.tryCommitResults();return o.committed?{...o,handled:!0}:{committed:void 0,handled:!1}}}getNonObjectsState(){return{...this.store.getState(),objects:void 0}}getCurrentTool(){return this.getTool(this.getToolMode())}getTool(e){return this._tools[e]}defaultColorForObject(e,t){switch(t.type){case"point":case"point-reference":case"midpoint":case"glider":case"intersection":case"vector-endpoint":return e.colors.point;case"line":case"segment":case"polygon-segment":case"ray":case"vector":case"vector-copy":case"perpendicular":case"parallel":return e.colors.line;case"circle":case"compass":case"arc":return e.colors.circle;case"polygon":return e.colors.polygon;case"angle":case"angles":case"directedangle":case"directedangles":return e.colors.angle;case"dilate":case"reflect":case"rotate":case"translate":return __dcg_shared_module_exports__['hd'].GRAY;case"slider":return __dcg_shared_module_exports__['hd'].BLACK;case"expression-edit-preview-latex":return t.color||__dcg_shared_module_exports__['hd'].BLACK;default:return t}}_deselectAll(){this.store.shallowMutate(e=>{e.nextSelectionNumber=1,e.selectedIds={}})}_modifySelection(e){let t=this.getNonObjectsState().nextSelectionNumber;this.store.shallowMutate("selectedIds",i=>{for(let o in e)e[o]?i[o]||(i[o]=t,t+=1):delete i[o]}),this.store.set("nextSelectionNumber",t)}_addObjects(e){this.store.shallowMutate("objects",t=>{for(let i of e)t[i.id]=i})}_deleteObjects(e){if(!e.length)return;let t={};this.store.shallowMutate("objects",i=>{for(let o of e)t[o]=kY,delete i[o]}),this._modifySelection(t),this.store.shallowMutate("uncommittedIds",i=>{for(let o of e)delete i[o]})}createCustomToolOutput(e){var n;this.generateIdsForNewToolOutputs(e);let{idMap:t}=this.getNonObjectsState().ui.currentTool,i=[],o=this.getNonObjectsState().ui;for(let a of e.outputs){let s={...a,id:t[a.id],color:this.defaultColorForObject(o,a),parents:IY(a,t)};i.push(s)}for(let a of e.inputs)if((n=a.numberInputInfo)!=null&&n.sliderInfo){let s=a.numberInputInfo.sliderInfo,l=t[`${a.id}-number`];if(jn(l)){let c=lO(l);if(c&&c in __dcg_shared_module_exports__['gb'])continue;this.controller.getItemsByIdentifier(__dcg_shared_module_exports__['cb'](l)).length||i.push({type:"slider",latex:l+"="+s.value,sliderInfo:s,id:zB,parents:[],hidden:!1,color:"#000"})}}this._shouldNewObjectsBeMarkedUncommitted()&&this.store.shallowMutate("uncommittedIds",a=>{for(let s of i)a[s.id]=!0}),this._addObjects(i)}_getReusableIdForCurrentInput(e){let t=this.getCurrentTool();if(!t.getSpec)return;let{inputIndex:i,reusableInputIdMap:o}=this.getNonObjectsState().ui.currentTool,a=t.getSpec().inputs[i];if(!a)return;let s=a.id;return e!==void 0&&(s+="-"+e),o[s]}_createInputObject(e,t){let i,o=this._shouldNewObjectsBeMarkedUncommitted();o?i=this._getReusableIdForCurrentInput(t)||this.generateObjectId():i=this.generateObjectId(),o&&this.store.set(["uncommittedIds",i],!0);let n=this.defaultColorForObject(this.getNonObjectsState().ui,e),a={hidden:e.type==="point"&&!!e.previewOnly,...e,id:i,color:n};return this._addObjects([a]),i}attemptLockToolInputIn(e){let{inputIndex:t,idMap:i}=this.getNonObjectsState().ui.currentTool,o=this.getCurrentTool();if(!(o instanceof ir))return;let n=o.getSpecIdToLockIn(e,t);if(!n)return;let a=i[n];if(!a){this.getCurrentTool().canNextInputBePoint()||this.controller.dispatch({type:"select-geo-tool",tool:"selection"});return}let s=a&&this.store.getState().objects[a];if(s&&s.type==="point"&&s.previewOnly){this.controller.dispatch({type:"select-geo-tool",tool:"selection"});return}this.store.set(["ui","currentTool","inputIndex"],t+1),this.store.set(["ui","currentTool","lockedIds",a],!0);for(var l=0;l<2;l++){let c=n+"-"+l,d=i[c];d&&this.store.set(["ui","currentTool","lockedIds",d],!0)}o.didLockInput(e),this.updateFadeAnimations()}generateIdsForNewToolOutputs(e){let{idMap:t}=this.getNonObjectsState().ui.currentTool,i=!1,o={};for(let n of e.outputs)t[n.id]||(i=!0,o[n.id]=this.generateObjectId());i&&this.store.set(["ui","currentTool","idMap"],{...t,...o})}tentativelyMatchToolInput(e,t){let{currentTool:i}=this.getNonObjectsState().ui,o=i.inputIndex,n=e.inputs[o];if(!n)return;let a=n.id;this.store.set(["ui","currentTool","idMap",a],t)}storeNumberInputLatex(e,t){let{currentTool:i}=this.getNonObjectsState().ui,o=i.inputIndex,n=e.inputs[o];if(!(n!=null&&n.numberInputInfo))return;let a=n.id;this.store.set(["ui","currentTool","idMap",`${a}-number`],t)}createToolInputDependency(e,t,i){let o=this._createInputObject(e,i),{currentTool:n}=this.getNonObjectsState().ui,a=n.inputIndex,s=t.inputs[a];if(!s)throw Mi("geo tool could not find input in spec",{metaData:{fnArgs:{objectDef:e,toolSpec:t,depIndex:i},localVars:{newObjectId:o,currentTool:n,inputIndex:a,input:s},toolState:this.store.getState()}}),new Error("programming error: could not find input "+a+" in spec");let l=s.id;return this.store.set(["ui","currentTool","idMap",l+"-"+i],o),o}isObjectALockedToolInput(e){return!!this.getNonObjectsState().ui.currentTool.lockedIds[e]}isDegenerateInput(e){let t=this.getCurrentTool();return t instanceof ir?t.isDegenerateInput(e):!1}getEnabledAdditionalTools(){return NB.filter(e=>!0)}getAdditionalTools(){return this.getEnabledAdditionalTools()}isAnyAdditionalToolEnabled(){return this.getAdditionalTools().length>0}setObjectSelected(e){let t={};t[e]=DY,this._modifySelection(t)}setObjectsSelected(e){__dcg_shared_module_exports__['ra'](e,t=>{this.setObjectSelected(t)})}deleteSelectedObjects(){let e=this.getSelectedObjectIdsUnsorted();this._deleteObjects(e)}isObjectHovered(e){let t=this.getNonObjectsState().hoveredObjects;for(let i of t)if("calcId"in i&&i.calcId===e)return!0;return!1}isObjectUncommitted(e){return!!this.getNonObjectsState().uncommittedIds[e]}getUncommittedObjectIds(){return Object.keys(this.getNonObjectsState().uncommittedIds)}getUncommittedObjects(){let e={},t=this.store.getState().objects,i=this.getUncommittedObjectIds();for(let o of i)e[o]=t[o];return e}isValidNextInputType(e){let t=this.getCurrentTool(),i=t.getNonPointInputType();return e&&__dcg_shared_module_exports__['Z'](e)&&(e=__dcg_shared_module_exports__['_'](e)),!!(i&&e&&$E(e,i)||t.canNextInputBePoint()&&e&&$E(e,"point"))}recordCommittedOutput(e){this.store.shallowMutate(["ui","currentTool","outputHistory"],t=>{t[e]=!0})}updateFadeAnimations(){let e=this.controller.getAllItemModels(),t=Date.now(),i=-1/0;this.store.shallowMutate(["fadeAnimations"],o=>{var s,l;if(this.getCurrentTool().shouldHighlightRelevantObjects())for(let c of e){if(c.type!=="expression"||!c.latex)continue;let d=c.id,u=(s=c.formula)==null?void 0:s.geometry,h,g=u==null?void 0:u.valueType;u!=null&&u.unconstructable||this.controller.shouldIgnoreGraphInteractions(c)?h="fade-out":this.isValidNextInputType(__dcg_shared_module_exports__['p'])&&(Yu(CE(g))||__dcg_shared_module_exports__['Z'](g)&&Yu(CE(__dcg_shared_module_exports__['_'](g))))||g&&__dcg_shared_module_exports__['ca'](g,__dcg_shared_module_exports__['x'])&&this.isValidNextInputType(__dcg_shared_module_exports__['z'])||this.isValidNextInputType(g)||this.store.getState().ui.currentTool.outputHistory[d]?h="fade-in":h="fade-out";let b=this.store.getState().fadeAnimations[d];if(b&&b.type!==h){let C=__dcg_shared_module_exports__['wb'](t-b.start,0,150),S=t+C-150;o[d]={type:h,start:S},i=Math.max(i,S)}else if(h==="fade-out"){let C=(l=b==null?void 0:b.start)!=null?l:t;o[d]={type:"fade-out",start:C},i=Math.max(i,C)}}else{for(let c in o)o[c]={type:"fade-in",start:t-150};i=t-150}}),isFinite(i)&&this.store.set("maxAnimationEndTime",i+150)}getToolFadeOpacity(e){let t=this.controller.getItemModel(e);if((t==null?void 0:t.type)!=="expression")return 1;let i=this.store.getState().fadeAnimations[t.id];if(!i)return 1;let o=Date.now(),n=__dcg_shared_module_exports__['wb']((o-i.start)/150,0,1),a=i.type==="fade-in"?.2:1,s=i.type==="fade-in"?1:.2;return a*(1-n)+s*n}isFading(){return Date.now()<=this.store.getState().maxAnimationEndTime}isObjectSelected(e){return!!this.getNonObjectsState().selectedIds[e]}getSelectedObjectIdsUnsorted(){return Object.keys(this.getNonObjectsState().selectedIds)}getSelectedObjectIdsSorted(){let e=this.getNonObjectsState().selectedIds,t=this.getSelectedObjectIdsUnsorted();return __dcg_shared_module_exports__['Ba'](t,o=>e[o])}deselectAllObjects(){this._deselectAll()}getToolMode(){return this.getNonObjectsState().ui.currentTool.name}setToolMode(e){let t=this.getToolMode();this.store.set(["ui","currentTool"],{name:e,idMap:{},reusableInputIdMap:{},lockedIds:{},inputIndex:0,outputHistory:e!==t?{}:this.store.getState().ui.currentTool.outputHistory}),this.updateFadeAnimations(),e!==t&&this.controller.isGraphPaperFocused()&&(Ye(this.getCurrentToolDisplayName()+"."),this.speakCurrentGeoToolHint())}resetToolMode(){this.setToolMode(this.getToolMode())}areAnyObjectsHovered(){return!!this.getNonObjectsState().hoveredObjects.length}setObjectHovered(e){this.store.deepMutate(t=>{t.hoveredObjects.push(e)})}objectIsInstanceOf(e,t){let i=e==null?void 0:e.typedRuntimeValue.valueType;if(i)return $E(i,t)}getSelectionBox(){return this.getTool("selection").getSelectionBox()}commitObjects(){this.store.set("uncommittedIds",{}),this.store.set("objects",{})}applyTransformation(e){}getProjection(){return this.controller.get2dProjection()}_getPixelsAwayFromDef(e,t,i){let o=i.typedRuntimeValue;switch(o.valueType){case __dcg_shared_module_exports__['p']:{let a=t.mapx(o.value[0]),s=t.mapy(o.value[1]);return __dcg_shared_module_exports__['ia'](e.x-a,e.y-s)-6}case __dcg_shared_module_exports__['F']:case __dcg_shared_module_exports__['z']:case __dcg_shared_module_exports__['H']:case __dcg_shared_module_exports__['P']:{let n,a,s,l;if(o.valueType===__dcg_shared_module_exports__['P']){let[[h,g],[b,C]]=Ku(o.value);n=t.mapx(h),s=t.mapy(g),a=t.mapx(b),l=t.mapy(C)}else n=t.mapx(o.value[0][0]),s=t.mapy(o.value[0][1]),a=t.mapx(o.value[1][0]),l=t.mapy(o.value[1][1]);let c=o.valueType===__dcg_shared_module_exports__['F'],d=o.valueType===__dcg_shared_module_exports__['F']||o.valueType===__dcg_shared_module_exports__['H'],u=__dcg_shared_module_exports__['ma'](e.x,e.y,n,s,a,l,c,d);return u?__dcg_shared_module_exports__['ia'](u[0]-e.x,u[1]-e.y):1/0}case __dcg_shared_module_exports__['B']:{let n=o.value[0][0],a=o.value[0][1],s=o.value[1],l=0,c=Math.PI*2,d=t.reverse_mapx(e.x),u=t.reverse_mapy(e.y),h=__dcg_shared_module_exports__['na'](d,u,n,a,s,l,c);return h?t.screen.width/(t.viewport.xmax-t.viewport.xmin)*__dcg_shared_module_exports__['ia'](h[0]-d,h[1]-u):1/0}case __dcg_shared_module_exports__['D']:{let n=__dcg_shared_module_exports__['Hb'](o.value);if(!n)return 1/0;let a=(s,l,c,d)=>{let u=t.mapx(s[0]),h=t.mapy(s[1]),g=t.mapx(l[0]),b=t.mapy(l[1]),C=__dcg_shared_module_exports__['ma'](e.x,e.y,u,h,g,b,c,d);return C?__dcg_shared_module_exports__['ia'](C[0]-e.x,C[1]-e.y):1/0};if(n.type==="arc"){let s=t.reverse_mapx(e.x),l=t.reverse_mapy(e.y),c=__dcg_shared_module_exports__['na'](s,l,n.center[0],n.center[1],n.radius,n.startAngle,n.endAngle);return c?t.screen.width/(t.viewport.xmax-t.viewport.xmin)*__dcg_shared_module_exports__['ia'](c[0]-s,c[1]-l):1/0}else return n.type==="segment"?a(n.start,n.end,!1,!1):Math.min(a(n.start1,n.end1,!1,!0),a(n.start2,n.end2,!1,!0))}case __dcg_shared_module_exports__['x']:{let n=[];return o.value.forEach(a=>{n.push(t.mapx(a[0]),t.mapy(a[1]))}),__dcg_shared_module_exports__['tb'](n,[e.x,e.y])?0:1/0}case __dcg_shared_module_exports__['J']:case __dcg_shared_module_exports__['L']:{let n=t.screen.width/(t.viewport.xmax-t.viewport.xmin),a=t.screen.height/(t.viewport.ymax-t.viewport.ymin),[[s,l],c,d]=o.value,u=Zd(d,t),h=u/n,g=t.reverse_mapx(e.x),b=t.reverse_mapy(e.y),C=1/0,S=b-l,k=g-s,I=Math.atan2(S,k);if(__dcg_shared_module_exports__['ga'](I,c,d))__dcg_shared_module_exports__['ia'](S*a,k*n)<=u+7&&(C=0);else{let M=__dcg_shared_module_exports__['la'](g,b,s+h*Math.cos(c),l+h*Math.sin(c),s,l),E=__dcg_shared_module_exports__['la'](g,b,s+h*Math.cos(c+d),l+h*Math.sin(c+d),s,l),A=__dcg_shared_module_exports__['ia'](n*(M[0]-g),a*(M[1]-b)),V=__dcg_shared_module_exports__['ia'](n*(E[0]-g),a*(E[1]-b));C=Math.min(A,V)}return C}case __dcg_shared_module_exports__['N']:return 1/0;default:return 1/0}}getAllChoosableDefsUnordered(e){var h;if(!this.controller.isGeometry())return[];let t=[],i=e.mode==="tab",o=e.mode==="mouse",n=i&&this.controller.getActiveTool()==="box-selection",a=!1,s=!1,l=this.getCurrentTool();(h=l.isValidNextInputType)!=null&&h.call(l,__dcg_shared_module_exports__['p'])&&(a=!0),l.shouldUseJitEdges()&&(l.isValidNextInputType(__dcg_shared_module_exports__['z'])||l.isValidNextInputType(__dcg_shared_module_exports__['F'])||l.isValidNextInputType(__dcg_shared_module_exports__['H']))&&(s=!0);let c=o&&a;c&&(s=!0);let{lockedIds:d,reusableInputIdMap:u}=this.store.getState().ui.currentTool;return Ru({controller:this.controller},(g,b)=>{var S,k;if(!g.isGraphableAndInteractive)return;let C=g.assignment;for(let I in u)if(u[I]===C&&!d[C])return;if(!g.hidden&&!g.data.unconstructable&&!(this.getToolMode()==="expression-edit"&&((S=g.data)!=null&&S.depends_on_selected))&&!(n&&this.controller.isClickableId(g.calcId))&&!(i&&this.isDegenerateInput(g==null?void 0:g.assignment))&&!(i&&b)){if(g.typedRuntimeValue.valueType===__dcg_shared_module_exports__['x'])if(g.typedRuntimeValue.value.length){if(s){let I=g;if(I.typedRuntimeValue.valueType===__dcg_shared_module_exports__['x']){let M=I.typedRuntimeValue.value;for(let E=0;E<M.length;E++){let A=M[E],V=M[(E+1)%M.length],G=I.referenceLatex+".\\operatorname{segments}\\left["+(E+1)+"\\right]",P={calcId:I.calcId,listIndex:I.listIndex,hidden:I.hidden,isGraphableAndInteractive:!1,assignment:G,referenceLatex:G,data:I.data,typedRuntimeValue:{valueType:__dcg_shared_module_exports__['z'],value:[A,V]},polygonEdgeInfo:{edgeNumber:E,polygonDef:I}};t.push(P)}}}}else return;if(c&&!__dcg_shared_module_exports__['ca'](g.typedRuntimeValue.valueType,__dcg_shared_module_exports__['x'])){t.push(g);return}if((k=l.isValidNextInputType)!=null&&k.call(l,g.typedRuntimeValue.valueType)){t.push(g);return}}}),t}_getObjectsUnderMouse(e,t){let i=this.getAllChoosableDefsUnordered({mode:"mouse"}),o=this.getProjection(),n=[];i.forEach(l=>{let c=this._getPixelsAwayFromDef(e,o,l),d=l.polygonEdgeInfo?-1:0;if(c<=t){let u={def:l,layerNumber:d,pixelsAway:c};n.push(u)}});let a=this.controller.get2dSketchOrder(),s={};for(let l=0;l<a.length;l++)s[a[l]]=l;return n.sort((l,c)=>{let d=c.layerNumber-l.layerNumber;if(d!==0)return d;let u=l.pixelsAway-c.pixelsAway;if(u!==0)return u;let h=s[l.def.calcId];return s[c.def.calcId]-h}),n}convertCanvasPixelsToPoint(e){return this.getProjection().reverse_map_pt(e)}convertPointToCanvasPixels(e){return this.getProjection().map_pt(e)}deleteObjectsAndRememberReusableId(e){for(let t in e)this._deleteObjects([e[t]]);this._deleteObjects([zB]),this.store.shallowMutate(["ui","currentTool"],t=>t.reusableInputIdMap=e)}getObjectDefUnderMouse(e,t){let i=this.convertPointToCanvasPixels(e),o=this._getObjectsUnderMouse(i,t)[0];return o&&o.def}getOrCreatePointNearMouse(e,t){let i=this.convertPointToCanvasPixels(e),o=this._getObjectsUnderMouse(i,t),n=[];for(let h of o){let g=h.def,b=RN(g);b==="Point"?n.push({def:g,type:b}):(Yu(b)||b==="Vector")&&n.push({def:g,type:b})}let{def:a,type:s}=n[0]||{},{def:l,type:c}=n[1]||{},d=this.controller.isGeoToolEnabled("point");if(s==="Point")return{type:"def",def:a};if(Yu(s)&&Yu(c)){let h=RB(a,l).map(g=>({x:g.x,y:g.y,i:g.i,pixelsFromPoint:KB(this.getProjection(),sp(g.x-e.x,g.y-e.y))}));if(h.sort((g,b)=>g.pixelsFromPoint-b.pixelsFromPoint),h=h.filter(g=>g.pixelsFromPoint<5),h[0]){let g=h[0].i===0?[a,l]:[l,a],b=this.findIncidentPointDef(a,l);if(b!=null&&b.hidden){let C=!1,S;if(GM(b.typedRuntimeValue,(k,I)=>{let[M,E]=k.value,A=this.getProjection().mathToPixels.mapPoint({x:M,y:E});sp(A.x-i.x,A.y-i.y)<t&&(C=!0,S=I)}),C)return S!==void 0&&(b=VM(b,S)),{type:"spec",spec:{type:"point-reference",targetSpec:{type:"intersection",parentDefs:g},parentDefs:[b]}}}return{type:"spec",spec:{type:"intersection",parentDefs:g}}}else if(d)return UB(this.getProjection(),e,a)}else{if(d&&Yu(s))return UB(this.getProjection(),e,a);if(s==="Vector"){let g=Ku(a.typedRuntimeValue.value).map((b,C)=>({index:C,point:{x:b[0],y:b[1]},pixelsFromPoint:KB(this.getProjection(),sp(b[0]-e.x,b[1]-e.y))})).sort((b,C)=>b.pixelsFromPoint-C.pixelsFromPoint).filter(b=>b.pixelsFromPoint<5);if(g.length>0)return AY(a,g[0].index===1?1:0)}}let u=MY(this.getProjection(),e);return{type:"spec",spec:{type:"point",x:u.x,y:u.y,parentDefs:[],previewOnly:!d}}}findIncidentPointDef(e,t){let i=e.typedRuntimeValue.valueType,o=t.typedRuntimeValue.valueType,n={};Ru({controller:this.controller,expandLists:!1},s=>{if(s.data.identifier&&__dcg_shared_module_exports__['ca'](s.typedRuntimeValue.valueType,__dcg_shared_module_exports__['p'])){let l=s.data.identifier;n[l]=s}});let a=__dcg_shared_module_exports__['oc']({getGeometryTree:s=>s.data.call,isPointOrListOfPoints:s=>__dcg_shared_module_exports__['ca'](s.typedRuntimeValue.valueType,__dcg_shared_module_exports__['p']),lookup:s=>n[s],resolvesTo:(s,l)=>s===l.data.identifier},e,i,t,o);if(a){let[s,l]=a,c=n[s];return l===void 0?c:VM(c,l)}}_shouldNewObjectsBeMarkedUncommitted(){return this.getToolMode()!=="selection"}clearHoveredObjects(){this.store.set("hoveredObjects",[])}getHoveredItems(){return this.store.getState().hoveredObjects}cancelToolplay(){this._deleteObjects(this.getUncommittedObjectIds()),this.clearHoveredObjects(),this.resetToolMode()}isToolplayActive(){return this.getNonObjectsState().ui.currentTool.inputIndex>0}getComputedBoard(){let e=new By;return Ru({controller:this.controller},(t,i)=>{e.add(t,i)}),e}findDefsForInputId(e){let t=[];return Ru({controller:this.controller},i=>{(i.assignment===e||i.referenceLatex===e)&&t.push(i)}),t}isCreatingNewTransform(){return this.getCurrentTool().toolType==="transformation"}getCurrentToolDisplayName(){return this.controller.s(this.getCurrentTool().displayName)}isCurrentToolComplex(){return this.getCurrentTool().toolType==="complex"}isCurrentToolSingleUse(){return this.getCurrentTool().toolType==="transformation"}getIconInstructionsForTool(e){let t=this.getTool(e);return t?t.icon:[]}getDisplayNameForTool(e){let t=this.getTool(e);return t?this.controller.s(t.displayName):""}speakCurrentGeoToolHint(){ie(this.getCurrentTool().getHint())}};function MY(r,e){var t=kA(r,e);t&&(e=t);var i=.5/qB(r);return{x:Sr(e.x-i,e.x+i),y:Sr(e.y-i,e.y+i)}}function qB(r){return r.mapx(1)-r.mapx(0)}function KB(r,e){return qB(r)*e-6}function UB(r,e,t){var i=i0(r,e,t.typedRuntimeValue);return{type:"spec",spec:{type:"glider",t:i,parentDefs:[t]}}}function AY(r,e){return{type:"spec",spec:{type:"vector-endpoint",location:e?"end":"start",parentDefs:[r]}}}function GY(r,e){if(!(r instanceof e))throw new TypeError("Cannot call a class as a function")}var VY="ID_",Cp=function(){function r(){GY(this,r),this._callbacks={},this._isDispatching=!1,this._isHandled={},this._isPending={},this._lastID=1}return r.prototype.register=function(t){var i=VY+this._lastID++;return this._callbacks[i]=t,i},r.prototype.unregister=function(t){this._callbacks[t]||qy(!1,"Dispatcher.unregister(...): `%s` does not map to a registered callback.",t),delete this._callbacks[t]},r.prototype.waitFor=function(t){this._isDispatching||qy(!1,"Dispatcher.waitFor(...): Must be invoked while dispatching.");for(var i=0;i<t.length;i++){var o=t[i];if(this._isPending[o]){this._isHandled[o]||qy(!1,"Dispatcher.waitFor(...): Circular dependency detected while waiting for `%s`.",o);continue}this._callbacks[o]||qy(!1,"Dispatcher.waitFor(...): `%s` does not map to a registered callback.",o),this._invokeCallback(o)}},r.prototype.dispatch=function(t){this._isDispatching&&qy(!1,"Dispatch.dispatch(...): Cannot dispatch in the middle of a dispatch."),this._startDispatching(t);try{for(var i in this._callbacks)this._isPending[i]||this._invokeCallback(i)}finally{this._stopDispatching()}},r.prototype.isDispatching=function(){return this._isDispatching},r.prototype._invokeCallback=function(t){this._isPending[t]=!0,this._callbacks[t](this._pendingPayload),this._isHandled[t]=!0},r.prototype._startDispatching=function(t){for(var i in this._callbacks)this._isPending[i]=!1,this._isHandled[i]=!1;this._pendingPayload=t,this._isDispatching=!0},r.prototype._stopDispatching=function(){delete this._pendingPayload,this._isDispatching=!1},r}();function qy(r,e,t,i,o,n,a,s){if(e===void 0)throw new Error("invariant requires an error message argument");if(!r){var l;if(e===void 0)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[t,i,o,n,a,s],d=0;l=new Error(e.replace(/%s/g,function(){return c[d++]})),l.name="Invariant Violation"}throw l.framesToPop=1,l}}var ld=class{constructor(e=100){this.clear(),this._sizeLimit=e}clear(){this._stack=[],this._stackPointer=-1}getState(){return this._stack[this._stackPointer]}serializeForBugsnag(){function e(t){try{return JSON.stringify(t,null,2)}catch(i){return"[[could not jsonify]]"}}return{currentState:e(this._stack[this._stackPointer]),undoState:e(this._stack[this._stackPointer-1]),redoState:e(this._stack[this._stackPointer+1])}}addState(e){this.canRedo()&&this._stack.splice(this._stackPointer+1),this._stack.push(e),this._stack.length>this._sizeLimit&&this._stack.shift(),this._stackPointer=this._stack.length-1}replaceState(e){this.canRedo()&&this._stack.splice(this._stackPointer+1),this.replaceInteriorState(e)}replaceInteriorState(e){this._stack.length===0?(this._stack.push(e),this._stackPointer=0):this._stack[this._stackPointer]=e}canUndo(){return this._stackPointer>0}canRedo(){return this._stackPointer<this._stack.length-1}undo(){this.canUndo()&&(this._stackPointer-=1)}redo(){this.canRedo()&&(this._stackPointer+=1)}};var TA=r=>({value:r.degreeMode?"30":"0.5",min:"0",max:r.degreeMode?"360":"2\\pi"}),HB={min:"0",max:"5",value:"1"},Mm=r=>({min:"0",max:"1",value:`${r}`}),LY={latex:void 0,polarDomainMin:void 0,polarDomainMax:void 0,parametricDomainMin:void 0,parametricDomainMax:void 0,parametricDomain3DuMin:void 0,parametricDomain3DuMax:void 0,parametricDomain3DvMin:void 0,parametricDomain3DvMax:void 0,parametricDomain3DrMin:void 0,parametricDomain3DrMax:void 0,parametricDomain3DphiMin:void 0,parametricDomain3DphiMax:void 0,clickableInfoLatex:void 0,colorLatex:void 0,tableColumnColorLatex:void 0,cdfMin:()=>({value:"0",min:"-10",max:"10"}),cdfMax:()=>({value:"0",min:"-10",max:"10"}),pointSize:()=>({value:8+"",min:"0",max:"20"}),movablePointSize:()=>({value:8+"",min:"0",max:"20"}),tableColumnPointSize:()=>({value:8+"",min:"0",max:"20"}),labelAngle:TA,labelSize:()=>({value:"1",min:"0",max:"5"}),lineWidth:()=>({value:2.5+"",min:"0",max:"10"}),resolution:()=>({value:"50",min:"2",max:"100",step:"1"}),tableColumnLineWidth:()=>({value:2.5+"",min:"0",max:"10"}),fillOpacity:()=>({value:.4+"",min:"0",max:"1"}),lineOpacity:()=>({value:1+"",min:"0",max:"1"}),tableColumnLineOpacity:()=>Mm(1),pointOpacity:()=>Mm(1),tableColumnPointOpacity:()=>Mm(1),sliderMin:void 0,sliderMax:void 0,sliderStep:void 0,residualVariable:void 0,tableHeader:void 0,tableCellValue:void 0,imageOpacity:()=>({value:"1",min:"0",max:"1"}),imageCenter:void 0,imageHeight:()=>({value:"10",min:"-10",max:"10"}),imageWidth:()=>({value:"10",min:"-10",max:"10"}),imageAngle:TA,tickerMinStep:()=>({value:"0",min:"0"}),tickerHandler:void 0},WB={tone:{paramBounds:r=>r===0?{value:"440",min:"110",max:"880"}:Mm(.5)},glider:{paramBounds:r=>{if(r!==0)return Mm(.5)}},dilate:{paramBounds:r=>{if(!(r<2))return{value:"2",min:"0",max:"5"}}},rotate:{paramBounds:(r,e)=>{if(!(r<2))return TA(e)}},circle:{paramBounds:r=>{if(r===1)return HB}},normaldist:{paramBounds:r=>{if(r===0)return{min:"-5",max:"5",value:"0"};if(r===1)return HB}},rgb:{paramBounds:r=>({value:"0",min:"0",max:"255",step:"1"})},hsv:{paramBounds:r=>r===0?{value:"0",min:"0",max:"360",step:"1"}:Mm(.5)}};function YB(r,e,t){var i=r.map(function(a){return{location:a.location,parsed:__dcg_shared_module_exports__['nc'](a.latex)}}),o={};for(let a of e)for(let s of i){var n=OY(a,s,t);n&&n.length&&(o[a]=n[0])}return o}function OY(r,{parsed:e,location:t},i){if(e.type==="Identifier"&&e._symbol===__dcg_shared_module_exports__['cb'](r)){let n=LY[t];return n?[n(i)]:void 0}e.type==="Assignment"&&(e=e._expression);let o=[];switch(e.type){case"FunctionCall":{let n=e._symbol;if(WB.hasOwnProperty(n)){let a=WB[n];e.args.forEach(function(s,l){if(s.type==="Identifier"&&s._symbol===r){var c=a.paramBounds(l,i);c&&o.push(c)}})}break}default:return}return o}function Yi(r,e,t){let i=FY(r,e,t);ur(r,i)}function ur(r,e){if(r.focusLocation=e,!e||(e.type==="ticker"&&(r.getListModel().ticker.playing=!1,lr(r.getListModel(),void 0)),e.type==="settings"||e.type==="generic-menu"||e.type==="editable-label"||e.type==="add-item-btn"||e.type==="add-expression-btn"||e.type==="add-note-btn"||e.type==="add-table-btn"||e.type==="add-folder-btn"||e.type==="add-ticker-btn"||e.type==="add-image-btn"||e.type==="edit-list-toggle"||e.type==="hide-expression-list-btn"||e.type==="show-expression-list-btn"||e.type==="zoom-in-btn"||e.type==="zoom-restore-btn"||e.type==="search-expressions"||e.type==="replace-expressions"||e.type==="ticker"||e.type==="geo-token"||e.type==="geo-show-constructions-icon"||e.type==="geo-basic-tool"||e.type==="geo-basic-tool-menu-item"||e.type==="multi-select-more-icon"||e.type==="multi-select-transformations-icon"||e.type==="geo-header-back-link"||e.type==="multi-select-delete-icon"||e.type==="multi-select-show-hide-icon"||e.type==="new-transformation-number"||e.type==="label-points-icon"||e.type==="graph-paper"||e.type==="quest"||e.type==="global-mute-button"))return;let t=r.getItemModel(e.id);if(e.type==="expression-menu"){lr(r.getListModel(),void 0);return}else lr(r.getListModel(),t);t&&t.type==="expression"&&xa(t,!1)}function FY(r,e,t){let i=r.getItemModel(e);if(!i)return;let o=r.isInEditListMode()||r.isItemReadonly(i.id);switch(i.type){case"expression":return{type:o?"readonly-expression":i.type,id:e};case"folder":case"text":return{type:i.type,id:e};case"table":{let a={row:1,column:0},s=!1;return t&&(t.location==="cell"?a={row:t.row,column:t.column}:t==="end"?a={row:ls(i),column:0}:t==="start"?a={row:0,column:0}:t==="container"&&(s=!0)),s?{type:"table-container",id:e}:{type:i.type,id:e,location:a}}case"image":return{type:i.type,id:e,location:"name"};default:return i}}function jB(r){var e=r.getSelectedItem();if(e&&e.type==="expression"&&!e.readonly){Yi(r,e.id);return}if(e&&e.type==="table"&&r.focusLocation&&!e.readonly)return;var t=r.getFirstFullyVisibleItem();let i=r.getListModel();for(;t&&(t.type!=="expression"||t.readonly);)t=du(i,t.index);if(t){Yi(r,t.id);return}let o=r.createItemModel({type:"expression",id:r.generateId(),color:r.getNextColor()});ds(r.getListModel(),o),Yi(r,o.id)}function JB(r){let e=r.focusLocation;if(e&&!(e.type==="settings"||e.type==="generic-menu"||e.type==="editable-label"||e.type==="add-item-btn"||e.type==="add-expression-btn"||e.type==="add-note-btn"||e.type==="add-table-btn"||e.type==="add-ticker-btn"||e.type==="add-folder-btn"||e.type==="add-image-btn"||e.type==="edit-list-toggle"||e.type==="hide-expression-list-btn"||e.type==="show-expression-list-btn"||e.type==="zoom-in-btn"||e.type==="zoom-restore-btn"||e.type==="search-expressions"||e.type==="replace-expressions"||e.type==="ticker"||e.type==="geo-token"||e.type==="geo-show-constructions-icon"||e.type==="geo-basic-tool"||e.type==="geo-basic-tool-menu-item"||e.type==="multi-select-more-icon"||e.type==="multi-select-transformations-icon"||e.type==="geo-header-back-link"||e.type==="multi-select-delete-icon"||e.type==="multi-select-show-hide-icon"||e.type==="new-transformation-number"||e.type==="label-points-icon"||e.type==="graph-paper"||e.type==="quest"||e.type==="global-mute-button"))return r.getItemModel(e.id)}function Am(r,e,t){ur(r,{type:"table",id:e,location:t})}function QB(r,e,t){var i=r.getItemModel(e);if(!i||i.type!=="table")return;let o=i;var n=Mn(o),a=n?n.row:-1,s=n?n.column:-1,l=o.columnModels,c=ls(o),d=l.length,u=(S,k)=>{S===-1?MA(r):S>c?AA(r):(k===-1?(k=d-1,S--):k===d&&(S++,k=0),Am(r,e,{row:S,column:k}))},h=S=>{c>2&&ZP(o,a-1),Am(r,e,{row:S,column:s})},g=S=>{s===0||d<=2||(eL(o,s),Am(r,e,{row:a,column:S}))};let b=!!o.columnModels[0].disabled;switch(t){case"Left":u(a,s-1);break;case"Right":u(a,s+1);break;case"Up":u(a-1,s);break;case"Down":u(a+1,s);break;case"Enter":if(a>=c)return PA(r);if(s>0||b)return u(a+1,s);if(a===c-1){let S=tL(o,a);Yk(o,a);for(var C=0;C<S.length;C++)Bc(o,{row:a+1,column:C},S[C]);Am(r,e,{row:a+1,column:s});return}Yk(o,a),Am(r,e,{row:a+1,column:s});break;case"Backspace":a===0?s===0?GA(r):s===d-1||s===1&&d===3?u(0,s-1):g(s-1):s!==0?u(a,s-1):a===c||b?u(a-1,s):h(a-1);break;case"Delete":a===0?s===0?VA(r):s<d-1&&g(s):a>=c||b||h(a);break}}function MA(r){if(r.inAudioTraceMode())return;let e=r.getFocusLocation();if((e==null?void 0:e.type)==="ticker"&&r.getExpressionSearchOpen())return ur(r,{type:"search-expressions"});var t=r.getSelectedItem();if(!t)return;if(zv(r.getListModel())){if(t=r.getSelectedItem(),!t)return;Yi(r,t.id,"end")}else r.getTickerVisible()?ur(r,{type:"ticker",location:"handler"}):r.getExpressionSearchOpen()&&ur(r,{type:"search-expressions"})}function AA(r){if(r.inAudioTraceMode())return;let e=r.getFocusLocation();if((e==null?void 0:e.type)==="search-expressions"&&r.getTickerVisible())return ur(r,{type:"ticker",location:"handler"});if((e==null?void 0:e.type)==="ticker"||(e==null?void 0:e.type)==="search-expressions"){let i=sg(r.getListModel());if(i)return Yi(r,i.id,"start")}if(!Kv(r.getListModel())&&!r.isInEditListMode()){let i=r.createItemModel({type:"expression",id:r.generateId(),color:r.getNextColor()});ds(r.getListModel(),i),lr(r.getListModel(),i)}var t=r.getSelectedItem();t&&Yi(r,t.id,"start")}function GA(r){if(r.isInEditListMode())return;var e=r.getSelectedItem();if(!e||r.getItemCount()===1&&e.type==="expression")return;var t=e.type==="text";let i=Yn(e);if(i){let o=r.getNumberOfItemsInFolder(i.id);if(e.index===i.index+o){Po(e,"");return}}if(LA(r,{moveSelection:!0}),t&&La&&Lc){lr(r.getListModel(),void 0);return}e=r.getSelectedItem(),e&&Yi(r,e.id,"end")}function VA(r){if(!r.isInEditListMode()){var e=r.getSelectedItem();e&&(r.getItemCount()===1&&e.type==="expression"||(OA(r,{moveSelection:!0}),e=r.getSelectedItem(),e&&Yi(r,e.id,"start")))}}function PA(r){if(r.isInEditListMode())return;var e=r.getSelectedItem();if(!e)return;if(e.type==="text"&&La&&Lc){Pr(),lr(r.getListModel(),void 0);return}if(e.type==="expression"&&mu(e).length>0)return r.createSlidersForItem(e.id,mu(e).concat(""));let t=ab(e);if(t.length>0&&t.length<=vb&&r.areSlidersEnabled())return r.createSlidersForItem(e.id,ab(e).concat(""));var i=r.createItemModel({type:"expression",id:r.generateId(),color:r.getNextColor()}),o=e.index+1;e.type==="folder"&&e.collapsed&&(o+=r.getNumberOfItemsInFolder(e.id)),_a(r.getListModel(),i,o),lr(r.getListModel(),i),e.type==="folder"&&!e.collapsed?Po(i,e.id):e.type!=="folder"&&e.folderId&&Po(i,e.folderId),e=r.getSelectedItem(),e&&Yi(r,e.id)}function LA(r,{moveSelection:e}){let t=r.getSelectedItem(),i=r.getListModel();if(!t||r.isItemReadonly(t.id))return;let o=cu(i,t.index);if(r._removeExpressionSynchronously(t),e){if(!o){let n=sg(i);n&&(o=n)}lr(i,o)}else lr(i,void 0)}function OA(r,{moveSelection:e}){let t=r.getSelectedItem(),i=r.getListModel();if(!t||r.isItemReadonly(t.id))return;let o=du(i,t.index);if(r._removeExpressionSynchronously(t),e){if(!o){let n=Fv(i);n&&(o=n)}lr(i,o)}else lr(i,void 0)}function NY(r){switch(r){case"histogram":case"dotplot":return 12;case"boxplot":return 40}return 1/0}function BY(r){return r==="boxplot"||r==="dotplot"||r=="histogram"}function zY(r){return r==="boxplot"?3:.5}function KY(r,e){if(r.type==="dotplot"||r.type==="histogram"){let o=Math.max(1,r.xmax-r.xmin)*80/(r.binWidth?r.binWidth:1),n=.5*(e.screen.width-o)/o;return Math.max(.2,n)}return .5}function UY(r,e,t){r=__dcg_shared_module_exports__['i'](r);let i=1.2;return e&&r.xmax<0&&r.xmin<0&&r.xmax/(r.xmin-r.xmax)<i&&(r.xmax=0),e&&r.xmax>0&&r.xmin>0&&r.xmin/(r.xmax-r.xmin)<i&&(r.xmin=0),t&&r.ymax<0&&r.ymin<0&&r.ymax/(r.ymin-r.ymax)<i&&(r.ymax=0),t&&r.ymax>0&&r.ymin>0&&r.ymin/(r.ymax-r.ymin)<i&&(r.ymin=0),r}function qY(r,e,t,i){let o=r.type,n=KY(r,e),a=zY(o),s,l,c,d;if(r.xmin===r.xmax&&(t?(r.xmin-=.5,r.xmax+=.5):(r.xmin*=.5,r.xmax/=.5)),r.ymin===r.ymax&&(i?(r.ymin-=.5,r.ymax+=.5):(r.ymin*=.5,r.ymax/=.5)),t){let u=(r.xmax-r.xmin)*n;s=r.xmin-u,l=r.xmax+u}else{let u=(r.xmax/r.xmin)**n;s=r.xmin/u,l=r.xmax*u}if(i){let u=(r.ymax-r.ymin)*a;c=r.ymin-u,d=r.ymax+u}else{let u=(r.ymax/r.ymin)**a;c=r.ymin/u,d=r.ymax*u}if(BY(o)){let u=e.screen.height/e.screen.width,h=(l-s)*u;if(h>r.ymax-r.ymin&&h<NY(o)*(r.ymax-r.ymin)){let g=.5*(r.ymax+r.ymin);d=g+.5*h,c=g-.5*h}}return{xmin:s,xmax:l,ymin:c,ymax:d}}function _A(r,e){var t=Hy(r,e);if(!t)return!1;let{xAxisScale:i,yAxisScale:o}=e.settings;if(!Wr.fromObject(t).isValid({xAxisScale:i,yAxisScale:o}))return!1;var a=e.mapx(t.xmin),s=e.mapx(t.xmax),l=e.mapy(t.ymin),c=e.mapy(t.ymax),d=10,u=Math.abs(a)<=d&&Math.abs(c)<=d&&Math.abs(s-e.screen.width)<=d&&Math.abs(l-e.screen.height)<=d;return!u}function Hy(r,e){let t=1/0,i=-1/0,o=1/0,n=-1/0,a=0,s=r.length,l=e.settings.xAxisScale==="linear",c=e.settings.yAxisScale==="linear";for(let d=0;d<s;d++){let u=UY(r[d],l,c);if(!isFinite(u.xmax-u.xmin)||!isFinite(u.ymax-u.ymin)){a+=1;continue}if(!l&&!(u.xmax>0&&u.xmin>0)||!c&&!(u.ymax>0&&u.ymin>0)){a+=1;continue}let h=qY(u,e,l,c);h.xmin<t&&(t=h.xmin),h.xmax>i&&(i=h.xmax),h.ymin<o&&(o=h.ymin),h.ymax>n&&(n=h.ymax)}if(a!==s)return{xmin:t,xmax:i,ymin:o,ymax:n}}function ZB(r){switch(r){case"letters":return"capitalLetters";case"noQwertyLetters":return"noQwertyCapitalLetters";case"noQwertyCapitalLetters":return"noQwertyLetters";default:return"letters"}}function ez(r){switch(r){case"mainNumbers":return"mainNumbers3D";default:return r}}function FA(r){return{keypadMinimized:!Ww,keypadLayout:"mainNumbers",keypadFunctionsOpen:!1,graphSettingsOpen:!1,addExpressionOpen:!1,expressionsVisible:!!r.expressions,inEditListMode:!1,isFileDraggedOver:!1,expressionsHiddenTime:void 0}}var rz={xmin:"",xmax:"",xstep:"",ymin:"",ymax:"",ystep:"",zmin:"",zmax:""};function iz(r){return r in rz}function HY(r){let e=r.split("\xD7");return(e.length>1&&e[0]==="1"?e.slice(1):e).join("\\cdot")}function ju(r,e,t){let i=__dcg_shared_module_exports__['Va'](r,e,t),o="";if(i.mantissa)o=HY(i.mantissa)+"^{"+i.superscript+"}";else{let n=i.string.split("/");n.length===2?n[0][0]==="-"?o="-\\frac{"+n[0].slice(1)+"}{"+n[1]+"}":o="\\frac{"+n[0]+"}{"+n[1]+"}":o=i.string}return o=o.replace(/π/,"\\pi"),o}function WY(r,e,t){let i=e.xAxisScale==="linear"?r.xmax-r.xmin:void 0,o=e.yAxisScale==="linear"?r.ymax-r.ymin:void 0,n={xmin:ju(r.xmin,t,i),xmax:ju(r.xmax,t,i),ymin:ju(r.ymin,t,o),ymax:ju(r.ymax,t,o)};return r.zmin!==void 0&&r.zmax!==void 0&&(n.zmin=ju(r.zmin,t,r.zmax-r.zmin),n.zmax=ju(r.zmax,t,r.zmax-r.zmin)),n}function tz(r,e,t){return r===0?"":ju(r,e,t)}function oz(r,e,t){return{...WY(r,e.scales,t),xstep:tz(e.steps.xAxisStep,t,r.xmax-r.xmin),ystep:tz(e.steps.yAxisStep,t,r.ymax-r.ymin)}}function RA(){return{limitLatex:{...rz}}}kt();Fa();function nz(r){let e=[],t=r.getAllItemModels();for(let i of t){let o=r.getItemRootNodeById(i.id);o&&e.push(o)}return e}function YY(r){let e=r.getAllItemModels();for(let t=e.length-1;t>=0;t--){let i=e[t];if(i.dcgView)return i.id}}function az(r,e){let t=nz(r),i=0,o=t.length-1;for(;i<=o;){let n=i+Math.floor((o-i)/2),a=t[n],s=a.getBoundingClientRect();if(s.top>e)o=n-1;else if(s.bottom<e)i=n+1;else return a}}function jY(r,e){let t=nz(r),i=0,o=t.length-1,n;for(;i<=o;){let a=i+Math.floor((o-i)/2),s=t[a];s.getBoundingClientRect().top>e?(o=a-1,n=s):i=a+1}return n}function sz(r,e){let t=$y(r);if(!t)return;if(e){let o=r.getItemRootNodeById(e);if(o){let n=o.getBoundingClientRect();if(n.height>0&&n.top<=t.top&&n.bottom>=t.top)return e}}let i=az(r,t.top);return i?i.getAttribute("expr-id"):NA(r)}function lz(r,e){let t=$y(r);if(!t)return;let i=YY(r);if(!i)return;if(e){let n=r.getItemRootNodeById(e);if(n){let a=n.getBoundingClientRect();if(a.height>0&&a.top<=t.bottom&&a.bottom>=t.bottom||e===i&&a.bottom<=t.bottom)return e}}let o=az(r,t.bottom);return o&&o.getAttribute("expr-id")||i}function NA(r){let e=$y(r);if(!e)return;let t=jY(r,e.top-2);if(t)return t.getAttribute("expr-id")}function Wy(r){return r.findEl(".dcg-exppanel")}function $y(r){let e=Wy(r);if(e)return e.getBoundingClientRect()}function cz(r){let e=r.findEl(".dcg-exppanel-container");if(!e)return;let t=e.getBoundingClientRect(),i=e.scrollTop;return t.top-i}function dz(r){let e=r.findEl(".dcg-expressionlist");if(!e)return;let t=e.getBoundingClientRect();return{width:t.width,height:t.height}}function pz(r){let e=Wy(r);if(!e)return;let t=e.querySelector(".dcg-drag-container > *");if(!t)return;let i=t.getBoundingClientRect();return{width:i.width,height:i.height}}kt();var Yy=class{constructor(e){this.active=!1,this.controller=e;let t=this.controller.getExppanelElt();t&&(this.exppanel=t)}startDragging(e){this.active=!0,this.mousePt=e,this.setupEventListeners()}applyDrag(){var M;let t=this.controller.getListModel().dragState;if(!t)return;this.scheduleUpdateScroll();let i=this.measureDOM(t);if(!i)return;let{floatingPreviewRect:o,dragState:n,visibleRects:a}=i,s=this.controller.getItemModel(n.firstItemId);if(!s)return;let l=s.index,c=a[0];if(c&&c.id!==s.id){let E=this.controller.getItemModel(c.id);E&&E.index>l&&(l=E.index-1)}let{cachedNamedAssignmentLatex:d,cachedTokenAssignmentLatex:u}=n;for(let{id:E,rect:A}of a){if(E===s.id)continue;let V=this.controller.getItemModel(E);if(!V)return;if(V.index<s.index){if(o.top<A.top+A.height/2){l=V.index;break}}else o.bottom>A.top+A.height/2&&(l=V.index,V.type==="folder"&&V.collapsed&&(l+=this.controller.getNumberOfItemsInFolder(V.id)))}let h,g;l>s.index?(h=l,g=l+1):l<s.index?(h=l-1,g=l):(h=l-1,g=l+1);let b=this.controller.getItemModelByIndex(h),C=this.controller.getItemModelByIndex(g),S="",k="";b&&(b.type==="folder"?S=b.id:S=b.folderId),C&&(C.type==="folder"?k=C.id:k=C.folderId);let I="";if(S&&(k===S?s.type==="folder"?l=s.index:I=S:s.type!=="folder"&&this.isPreviewTopContainedInFolder(i,S)&&(I=S)),s.type==="expression")if(n.renderType==="token"){if(t.renderType==="expression"&&(d=s.latex,this.controller.convertToTokenAssignment(s,u)),n.dragTarget.type==="token")l=n.dragTarget.originalIndex,I=((M=this.controller.getGeometryFolder())==null?void 0:M.id)||"";else if(n.dragTarget.type==="expression"){let E=this.controller.getGeometryFolder();if(E){let A=this.controller.getNumberOfItemsInFolder(E.id);s.type==="expression"&&s.folderId===E.id&&(A-=1),l=E.index+A+1,I=E.id}}}else n.renderType==="expression"&&t.renderType==="token"&&(u=s.latex,this.controller.convertToNamedAssignment(s,d));return{dragState:{...n,cachedNamedAssignmentLatex:d,cachedTokenAssignmentLatex:u},newIndex:l,folderId:I}}measureDOM(e){let t=cz(this.controller),i=dz(this.controller),o=pz(this.controller);if(t===void 0||!i||!o)return;let n=i.height,a=o.height,s=!1,l=this.controller.getExppanelElt(),c=l==null?void 0:l.querySelector(".dcg-template-expressioneach"),d=c==null?void 0:c.getBoundingClientRect();d&&d.top<=e.mousePt.y&&(s=!0);let u=!1,h=l==null?void 0:l.querySelector(".dcg-geo-show-constructions-pane"),g=h==null?void 0:h.getBoundingClientRect();g&&g.bottom>e.mousePt.y&&(u=!0);let b=!1;(e.dragTarget.type==="token"&&!s||e.dragTarget.type==="expression"&&u&&!s&&this.controller.canDraggedItemBeMovedIntoTokenPane())&&(b=!0);let C=e.grabOffset;b?C={x:o.width/2,y:o.height/2}:e.dragTarget.type==="token"&&(C={x:0,y:o.height/2});let S=e.mousePt.y-C.y+2,k=S-t;k=Math.max(k,-a/2),k=Math.min(k,n-a);let I=0;b&&(I=e.mousePt.x-C.x,I=Math.min(I,i.width-o.width-4),I=Math.max(I,0),k=Math.max(k,2));let M={left:I,top:S,bottom:S+a,height:a},E=this.controller.findFirstVisibleItem(),A=this.controller.findLastVisibleItem(),V=[];if(E&&A)for(var G=E.index;G<=A.index;G++){let P=this.controller.getItemModelByIndex(G);if(!P)continue;let O=this.controller.getItemRootNodeById(P.id);if(O&&P.id!==e.firstItemId){let R=O.getBoundingClientRect();V.push({id:P.id,rect:R})}}return{dragState:{...e,itemTop:k,itemLeft:I,renderType:b?"token":"expression"},floatingPreviewRect:M,visibleRects:V}}isPreviewTopContainedInFolder(e,t){let{visibleRects:i,floatingPreviewRect:o}=e;for(let{id:n,rect:a}of i)if(a.top<=o.top&&a.bottom>=o.top){let s=this.controller.getItemModel(n);if(!s)return!1;if(s.type==="folder"&&s.id===t||s.type!=="folder"&&s.folderId===t)return!0}return!1}scheduleUpdateScroll(){this.updateScrollScheduled||(this.updateScrollScheduled=!0,requestAnimationFrame(()=>{this.updateScroll(),this.updateScrollScheduled=!1}))}stop(){this.active=!1,this.tearDownEventListeners(),this.controller.dispatch({type:"stop-dragdrop"})}setupEventListeners(){W(document).on("dcg-tapmove.dragdrop",e=>{this.mousePt.x=e.changedTouches[0].clientX,this.mousePt.y=e.changedTouches[0].clientY,this.controller.dispatch({type:"update-dragdrop",mousePt:this.mousePt})}),W(document).on("dcg-tapend.dragdrop",e=>{this.stop(),e.handle("dragdrop")})}tearDownEventListeners(){W(document).off(".dragdrop")}updateScroll(){if(this.active){var e=this.exppanel.getBoundingClientRect(),t=0;t=Math.min(t,this.mousePt.y-e.top),t=Math.max(t,this.mousePt.y-e.bottom+30),t=t*e.height/900,t&&(this.exppanel.scrollTop=this.exppanel.scrollTop+t)}}};var JY={loga:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\log_{}\\left(\\right)")&&(r.write("\\log_{}"),r.typedText("("),r.keystroke("Left"),r.keystroke("Down"))},nthroot:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\sqrt[]{}")&&(r.write("\\sqrt[]{}"),r.keystroke("Left"),r.keystroke("Left"))},ddx:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\frac{d}{dx}")&&r.write("\\frac{d}{dx}")},arcsin:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\sin^{-1}\\left(\\right)")&&(r.write("sin^{-1}"),r.typedText("("))},arccos:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\cos^{-1}\\left(\\right)")&&(r.write("cos^{-1}"),r.typedText("("))},arctan:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\tan^{-1}\\left(\\right)")&&(r.write("tan^{-1}"),r.typedText("("))},arcsec:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\sec^{-1}\\left(\\right)")&&(r.write("sec^{-1}"),r.typedText("("))},arccsc:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\csc^{-1}\\left(\\right)")&&(r.write("csc^{-1}"),r.typedText("("))},arccot:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\cot^{-1}\\left(\\right)")&&(r.write("cot^{-1}"),r.typedText("("))},"A^T":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"^{T}")&&(r.typedText("^T"),r.keystroke("Right"))},"A^-1":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"^{-1}")&&(r.typedText("^-1"),r.keystroke("Right"))},"A^2":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"^{2}")&&(r.typedText("^2"),r.keystroke("Right"))},"a^2":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"^{2}")&&(r.typedText("^2"),r.keystroke("Right"))},"a^3":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"^{3}")&&(r.typedText("^3"),r.keystroke("Right"))},"a/b":(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\frac{}{}")&&(r.write("\\frac{}{}"),r.keystroke("Left"))},integral:(r,e)=>{ve.canAcceptText(r,e.capExpressionSize,"\\int_{}^{}")&&r.cmd("integral")}};function Gm(r,e,t){JY[e](r,t)}function uz(r){if(!r)return;let e=[];for(let t of r.split(" ")){let i=t.indexOf("|"),o=i!==-1?t.slice(0,i):t;e.push(o)}return e}function Vm(r,e,t){let i=uz(t);return e==="nemeth"?od(r,{operatorNames:i}):e==="ueb"?nd(r,{operatorNames:i}):{isError:!0,error:"Braille mode should be 'nemeth' or 'ueb'"}}function n0(r,e,t){let i=uz(t);return e==="nemeth"?aA(r,{operatorNames:i}):e==="ueb"?sA(r,{operatorNames:i}):{isError:!0,error:"Braille mode should be 'nemeth' or 'ueb'"}}var sn=__dcg_shared_module_exports__['e']($());var Pm=__dcg_shared_module_exports__['e']($());kt();var{Input:XY}=Pm.Components,Ju=class extends Pm.Class{init(){this.ASCIICharacters=` A1B'K2L@CIF/MSP"E3H9O6R^DJG>NTQ,*5<-U8V.%[$+X!&;:4\\0Z7(_?W]#Y)=`,this.ASCIITable=[],this.HomeRowCharacters="FDSJKL",this.charCodes=[],this.sixKeyModel={keysDown:0,stickyKeysDown:0};let e;for(e=0;e<this.ASCIICharacters.length;e++)this.ASCIITable.push(this.ASCIICharacters.charCodeAt(e));for(e=0;e<this.HomeRowCharacters.length;e++)this.charCodes.push(this.HomeRowCharacters.charCodeAt(e))}template(){return Pm.createElement(XY,{class:this.const("dcg-braille-input dcg-do-blur"),tabindex:()=>this.props.tabindex?this.props.tabindex():0,readonly:()=>this.props.isStatic()?"true":void 0,autocomplete:this.const("off"),autocorrect:this.const("off"),autocapitalize:this.const("off"),spellcheck:this.const("false"),onKeydown:this.bindFn(this.onKeydown),onKeyup:this.bindFn(this.onKeyup),onInput:this.bindFn(this.props.onInput),value:()=>this.props.value(),"aria-label":()=>this.props.ariaLabel()||ms(""),didMount:this.bindFn(this.didMount),didUnmount:this.bindFn(this.props.didUnmount),placeholder:()=>this.props.placeholder?this.props.placeholder():"",size:()=>this.props.size&&this.props.size()})}didMount(e){this.rootNode=e,W(this.rootNode).on("focus",t=>{this.props.shouldFocus()||this.props.onFocusedChanged(!0,t.originalEvent||t)}).on("blur",t=>{this.props.shouldFocus()&&this.props.onFocusedChanged(!1,t.originalEvent||t)}),this.props.didMount(e),this.updateFocus()}didUpdate(){this.updateFocus()}updateFocus(){this.rootNode&&(this.props.shouldFocus()&&document.activeElement!==this.rootNode&&this.rootNode.focus(),!this.props.shouldFocus()&&document.activeElement===this.rootNode&&this.rootNode.blur())}onKeydown(e){let t=this.charCodes.indexOf(e.which);!this.props.isStatic()&&this.isSixKeyInput()&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&t!==-1?(this.sixKeyModel={...this.sixKeyModel,keysDown:this.addKey(this.sixKeyModel.keysDown,t),stickyKeysDown:this.addKey(this.sixKeyModel.stickyKeysDown,t)},e.preventDefault()):this.props.onKeydown&&this.props.onKeydown(e)}onKeyup(e){let t=this.charCodes.indexOf(e.which),i=!1;return!this.props.isStatic()&&this.isSixKeyInput()&&!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&t!==-1?(this.sixKeyModel={...this.sixKeyModel,keysDown:this.removeKey(this.sixKeyModel.keysDown,t)},this.sixKeyModel.keysDown===0&&(this.addCharacter(this.bitsToASCII(this.sixKeyModel.stickyKeysDown)),this.sixKeyModel={...this.sixKeyModel,stickyKeysDown:0})):i=!0,i||e.preventDefault(),i}addKey(e,t){return e|1<<t}removeKey(e,t){return e&~(1<<t)}bitsToASCII(e){return String.fromCharCode(this.ASCIITable[e])}addCharacter(e){this.rootNode&&!this.props.isStatic()&&(this.rootNode.setRangeText(e,this.rootNode.selectionStart,this.rootNode.selectionEnd,"end"),this.props.onInput(this.rootNode.value))}isSixKeyInput(){return typeof this.props.sixKeyInput=="function"&&this.props.sixKeyInput()}};var{If:KA}=sn.Components,ii=class extends sn.Class{init(){this.currentBrailleValue=this.getBrailleFromLatex(this.props.latex()),this.currentBrailleMode=this.props.mode(),this.hasTranslationError=!1,this.currentLatex=this.props.latex()}isFocused(){return this.brailleInput!==void 0&&document.activeElement==this.brailleInput}getBrailleShouldFocus(){return this.props.mode()!=="none"&&this.props.brailleShouldFocus&&this.props.brailleShouldFocus()}isStatic(){return!!this.props.isStatic&&this.props.isStatic()}isInline(){return!!this.props.isInline&&this.props.isInline()}hasError(){return!!this.props.hasError&&this.props.hasError()}willUpdate(){let e=this.currentLatex!==this.props.latex(),t=this.props.mode(),i=t!==this.currentBrailleMode&&t!=="none";this.isFocused()&&!e&&!i||(this.currentLatex=this.props.latex(),(i||!this.hasTranslationError||e||this.isStatic())&&(this.currentBrailleValue=this.getBrailleFromLatex(this.props.latex()),this.hasTranslationError=!1),this.currentBrailleMode=t)}onBrailleInput(e){if(!this.props.onBrailleInput)return;let t=this.getLatexFromBraille(e);this.hasTranslationError=t.isError;let i=this.props.capExpressionSize&&this.props.capExpressionSize();if(!t.isError&&i&&i.exceedsLimit(t.value)){i.onExpressionSizeExceeded();return}this.currentBrailleValue=e,t.isError||(this.currentLatex=t.value,this.props.onBrailleInput(t.value))}getBrailleFromLatex(e,t=!1){let i=Vm(e,this.props.mode(),this.props.operatorNames&&this.props.operatorNames());return i.isError?"":t?i.value:vn.toExpandedBrailleAscii(i.value)}getLatexFromBraille(e){return n0(vn.coerceToSixDotCells(e),this.props.mode(),this.props.operatorNames&&this.props.operatorNames())}getBrailleLabel(e){return this.getBrailleFromLatex(e.replace(/\s/,"\\ "))}shouldShowBraille(){let e=this.props.mode();return e==="nemeth"||e==="ueb"}isOverflowingLeft(){return this.brailleInput?this.brailleInput.scrollLeft>0:!1}isOverflowingRight(){if(!this.brailleInput)return!1;let e=this.brailleInput.getBoundingClientRect().width,t=this.brailleInput.scrollWidth,i=this.brailleInput.scrollLeft;return t>e+i+2}didMountBrailleInput(e){this.brailleInput=e}didUnmountBrailleInput(){this.brailleInput=void 0}handleBrailleFocusChanged(e,t){this.props.onBrailleFocusedChanged&&this.props.onBrailleFocusedChanged(e,t),this.brailleInput&&(e&&this.props.selectOnFocus&&this.props.selectOnFocus()&&this.brailleInput.select(),this.isStatic()&&this.brailleInput.scrollTo(0,0))}getTooltipText(){let e=this.props.placeholder&&!this.isFocused()?this.props.placeholder():"";return ms(this.props.latex()||e)}template(){return sn.createElement("div",{class:sn.const("dcg-mathquill-wrapper")},sn.createElement(KA,{predicate:()=>this.shouldShowBraille()},()=>sn.createElement("div",{class:()=>({"dcg-mathquill-braille":!0,"dcg-focus":this.getBrailleShouldFocus(),"dcg-invalid":this.hasError(),"dcg-mathquill-static-braille":this.isStatic(),"dcg-mathquill-braille-overflow-left":this.isOverflowingLeft(),"dcg-mathquill-braille-overflow-right":this.isOverflowingRight()}),"data-dcg-label":()=>this.props.dataLabelAttributeValue?this.props.dataLabelAttributeValue():void 0},sn.createElement(gm,{tooltip:()=>this.getTooltipText(),gravity:this.const("s"),delay:this.const(0),showOnTapstart:this.const(!0)},sn.createElement(KA,{predicate:()=>this.isInline()},()=>sn.createElement("span",{class:sn.const("dcg-inline-braille")},()=>ms(this.getBrailleFromLatex(this.props.latex(),!0)))),sn.createElement(KA,{predicate:()=>!this.isInline()},()=>sn.createElement(Ju,{ariaLabel:()=>ms(this.props.ariaLabel?this.getBrailleLabel(this.props.ariaLabel()):""),didMount:this.bindFn(this.didMountBrailleInput),didUnmount:this.bindFn(this.didUnmountBrailleInput),onFocusedChanged:this.bindFn(this.handleBrailleFocusChanged),shouldFocus:this.bindFn(this.getBrailleShouldFocus),onKeydown:this.props.onBrailleKeydown,onInput:this.bindFn(this.onBrailleInput),sixKeyInput:this.props.sixKeyInput,value:()=>this.currentBrailleValue,placeholder:()=>ms(this.props.placeholder?this.getBrailleFromLatex(this.props.placeholder()):""),tabindex:()=>this.props.tabindex?this.props.tabindex():0,isStatic:this.bindFn(this.isStatic),size:()=>this.currentBrailleValue&&this.currentBrailleValue.length||1}))))),sn.createElement("div",{class:sn.const("dcg-typeset-math"),style:()=>({display:this.shouldShowBraille()&&!this.isInline()?"none":void 0}),"aria-hidden":()=>this.shouldShowBraille()},this.children))}};function ia(){if(!(!document.activeElement||!document.activeElement.classList.contains("dcg-braille-input")))return document.activeElement}function Lm(r){return!r||r.value===""}function QY(r){for(let e in r)return!1;return!0}function ZY(r){var i;if(r.type!=="expression")return;let e=r.formula.assignment;return e||((i=r.formula.geometry)==null?void 0:i.identifier)}function ej(r){var t,i;let e={lookupIdentifier:{},lookupCalcId:{}};for(let o of r){let n={calcId:o.id,identifier:ZY(o),referencesTheseIdentifiers:{},referencedByTheseCalcIds:{}};e.lookupCalcId[n.calcId]=n,n.identifier&&(e.lookupIdentifier[n.identifier]=n)}for(let o of r){let n=e.lookupCalcId[o.id];if(n){if(o.type==="expression"){o.folderId===__dcg_shared_module_exports__['Rc']&&(n.isGarbageCollectable=!o.readonly,(o.latex.indexOf("\\operatorname{segments}")!==-1||Bl(o))&&(n.deleteIfNotReferenced=!0));let a=(i=(t=o.formula.geometry)==null?void 0:t.call)==null?void 0:i.parents;a&&a.forEach(s=>{if(!s)return;let l=s[0];hz(e,n,l)})}ig(o,a=>{var s=a.match(/(\\token{[0-9]+})/g);if(s)for(let l of s){let c=__dcg_shared_module_exports__['cb'](l);c!==n.identifier&&hz(e,n,c)}})}}return e}function hz(r,e,t){e.referencesTheseIdentifiers[t]=!0;let i=r.lookupIdentifier[t];i&&(i.referencedByTheseCalcIds[e.calcId]=!0)}function tj(r,e,t){var c;let i=[];for(let d of e){let u=r.lookupCalcId[d];if(u){i.push(u);var o=u.referencesTheseIdentifiers;for(let h in o){let g=r.lookupIdentifier[h];g&&delete g.referencedByTheseCalcIds[u.calcId]}}}var n={};for(let d in t)for(let u of t[d]){let h=r.lookupIdentifier[u];h&&delete h.referencedByTheseCalcIds[d],n[u]=!0}var a={};for(let d of i){let u=d.referencesTheseIdentifiers;for(let g in u)n[g]=!0;let h=d.identifier;if(h){var s=(c=r.lookupIdentifier[h])==null?void 0:c.referencedByTheseCalcIds;if(s)for(let g in s){let b=r.lookupCalcId[g];b&&b.isGarbageCollectable&&(a[g]=!0)}}}for(let d in n){let u=r.lookupIdentifier[d];if(u&&u.deleteIfNotReferenced){var l=u.referencedByTheseCalcIds;u.calcId&&u.isGarbageCollectable&&QY(l)&&(a[u.calcId]=!0)}}for(let d of i)delete r.lookupCalcId[d.calcId],d.identifier&&delete r.lookupIdentifier[d.identifier];return Object.keys(a)}function gz(r,e,t){var c,d;let i=r.getAllItemModels(),o=e.map(u=>u.id),n=ej(i.concat(e));var a={};let s={};for(let u in t){let{nextLatex:h}=t[u],g=r.getItemModel(u);if((g==null?void 0:g.type)!=="expression")continue;let b={};for(let S of((d=(c=g.formula.geometry)==null?void 0:c.call)==null?void 0:d.parents)||[]){if(!S)continue;let[k]=S;b[k]=!0}for(let S in b)cs(h,__dcg_shared_module_exports__['bb'](S))&&delete b[S];let C=Object.keys(b);C.length&&(s[u]=C)}let l=Object.keys(s).length>0;for(;o.length||l;){l=!1,o=tj(n,o,s);for(let u of o)a[u]=!0}return Object.keys(a)}var mz={version:Ds,randomSeed:"",graph:{product:"graphing-3d",threeDMode:!0,viewport:{...__dcg_shared_module_exports__['Zb']}},expressions:{list:[{id:"1",type:"expression"}]}};function a0(r){return/^\s*(https?:\/\/)?([-a-zA-Z0-9]*\.)?desmos\.com(:[0-9]+)?\/calculator\/./.test(r)}function UA(r){return/^\s*(https?:\/\/)?([-a-zA-Z0-9]*\.)?desmos\.com(:[0-9]+)?\/(geometry|geometry-beta)\/./.test(r)}function qA(r){return/^\s*(https?:\/\/)?([-a-zA-Z0-9]*\.)?desmos\.com(:[0-9]+)?\/3d\/./.test(r)}function HA(r){return/^\s*(https?:\/\/)?([-a-zA-Z0-9]*\.)?desmos\.com(:[0-9]+)?\/geometry-legacy\/./.test(r)}function fz(r){return a0(r)?"graphing":UA(r)?"geometry-calculator":HA(r)?"geometry":qA(r)?"graphing-3d":void 0}var hi=__dcg_shared_module_exports__['e']($()),s0=class extends hi.Class{template(){return hi.createElement("form",{name:hi.const("open_graph_on_web"),target:hi.const("_blank"),method:hi.const("POST"),action:()=>this.props.saveURL(),style:()=>({display:"none"})},hi.createElement("input",{type:hi.const("text"),name:hi.const("is_open_on_web"),value:hi.const("true")}),hi.createElement("input",{type:hi.const("text"),name:hi.const("my_graphs"),value:hi.const("false")}),hi.createElement("input",{type:hi.const("text"),name:hi.const("is_update"),value:hi.const("false")}),hi.createElement("input",{type:hi.const("text"),name:hi.const("calc_state"),value:()=>this.props.stateData()}),hi.createElement("input",{type:hi.const("text"),name:hi.const("thumb_data"),value:()=>this.props.thumbData()}))}};var bz,yz=(bz=new URLSearchParams(window.location.search).get("translucent-opacity"))!=null?bz:"0.8";var mi=__dcg_shared_module_exports__['e']($());var Vi=__dcg_shared_module_exports__['e']($());kt();kt();var l0=class extends ti{constructor(){super(),this.dragging=!1,this.guid=__dcg_shared_module_exports__['Ua']("dragdrop-class")}_evt2pt(e){return{x:e.changedTouches[0].pageX-this._offsetPt.x,y:e.changedTouches[0].pageY-this._offsetPt.y}}_dispatch(e,t){if(this._destroyed)return;let i=this._evt2pt(t);this.triggerEvent(e,{x:i.x,y:i.y,dx:i.x-this._startPt.x,dy:i.y-this._startPt.y,evt:t})}destroy(){W(document).off(`.${this.guid}`),this._destroyed=!0}startDrag(e,t={}){if(!this.dragging)return W(document).on(`dcg-tapmove.${this.guid}`,i=>{(i.originalEvent||i).preventDefault(),cancelAnimationFrame(this.frameThrottle),this.frameThrottle=requestAnimationFrame(()=>this.doDrag(i))}),W(document).on(`dcg-tapend.${this.guid} dcg-tapcancel.${this.guid}`,i=>this.endDrag(i)),this._offsetPt={x:0,y:0},t.origin&&(this._offsetPt={x:this._evt2pt(e).x-t.origin.x,y:this._evt2pt(e).y-t.origin.y}),this._startPt=this._evt2pt(e),this.setProperty("dragging",!0),this._dispatch("onGrab",e)}doDrag(e){this.dragging&&this._dispatch("onDrag",e)}endDrag(e){this.dragging&&(W(document).off(`.${this.guid}`),this.doDrag(e),this.setProperty("dragging",!1),this._dispatch("onDrop",e))}};var{If:rj}=Vi.Components,Xu=class extends Vi.Class{template(){return Vi.createElement("div",{class:()=>({"dcg-slider-interior":!0,"dcg-disable-slider":this.shouldDisableSlider()}),didMount:this.bindFn(this.didMountRoot),onTapStart:this.bindFn(this.onStartDrag)},Vi.createElement("div",{class:Vi.const("dcg-track")},Vi.createElement("div",{class:Vi.const("dcg-ticks"),onMount:this.bindFn(this.didMountTickMarks)}),Vi.createElement("div",{class:Vi.const("dcg-graphic")})),Vi.createElement(rj,{predicate:this.bindFn(this.shouldShowZeroMarker)},()=>Vi.createElement("div",{class:Vi.const("dcg-zeroMarker"),style:()=>({left:this.getZeroMarkerPercent()+"%"})})),Vi.createElement("div",{class:()=>({"dcg-thumb":!0,"dcg-down":this.isDragging}),role:Vi.const("slider"),tabindex:Vi.const("0"),disablescroll:Vi.const("true"),style:()=>({left:this.getThumbPercent()+"%"}),onKeyDown:this.bindFn(this.onKeyDown),"aria-label":this.props.ariaLabel,"aria-valuemin":()=>{var e,t;return(t=(e=this.props).ariaPercent)!=null&&t.call(e)?0:this.props.min()},"aria-valuemax":()=>{var e,t;return(t=(e=this.props).ariaPercent)!=null&&t.call(e)?100:this.props.max()},"aria-valuenow":()=>{var e,t;return(t=(e=this.props).ariaPercent)!=null&&t.call(e)?void 0:this.props.value()},"aria-valuetext":()=>{var e,t;return(t=(e=this.props).ariaPercent)!=null&&t.call(e)?`${Math.floor(this.getThumbPercent())}%`:void 0},manageFocus:this.buildFocusManager()},Vi.createElement("div",{class:Vi.const("dcg-graphic")}),Vi.createElement("div",{class:Vi.const("dcg-center")})))}willUnmount(){this.dragDrop.destroy()}didMountRoot(e){this.rootNode=e,this.dragDrop=new l0,this.isMounted=!0,this.dragDrop.observeEvent("onDrop",()=>{this.isDragging=!1,this.update(),this.props.onDrop&&this.props.onDrop()}),this.dragDrop.observeEvent("onGrab",()=>{this.isDragging=!0,this.update(),this.props.onGrab&&this.props.onGrab()}),this.dragDrop.observeEvent("onDrag",(t,i)=>{this.props.onDragUpdate(this.valueFromPixels(i.x))})}didMountTickMarks(e){this.tickMarksNode=e,this.renderTickMarks()}didUpdate(){this.renderTickMarks()}shouldDisableSlider(){return this.props.min()===this.props.max()}renderTickMarks(){if(this.tickMarksNode){var e=this.props.step(),t=this.props.min(),i=this.props.max(),o;if(e===void 0?o=0:o=100*e/(i-t),o<3&&(o=0),o>100&&(o=0),isNaN(o)&&(o=0),this.lastTickMarksPercent!==o){this.lastTickMarksPercent=o;var n="";if(o>0&&o<100)for(var a=o;a<100;a+=o)n+='<div class="dcg-tick" style="left:'+a+'%"></div>';this.tickMarksNode.innerHTML=n}}}shouldShowZeroMarker(){return this.props.min()<=0&&this.props.max()>=0}getZeroMarkerPercent(){var e=this.props.min(),t=this.props.max();return 100*(0-e)/(t-e)}getThumbPercent(){return 100*this.percentFromValue(this.props.value())}valueFromPixels(e){if(!this.isMounted)return 0;let t=this.props.min(),i=this.props.max(),o=this.rootNode.getBoundingClientRect().width,n=__dcg_shared_module_exports__['wb'](e/o,0,1),a=t+(i-t)*n,s=(i-t)/o;return Sr(a-s,a+s)}percentFromValue(e){let t=this.props.min(),i=this.props.max();return __dcg_shared_module_exports__['wb']((e-t)/(i-t),0,1)}pixelsFromValue(e){if(!this.isMounted)return 0;let t=this.percentFromValue(e);return this.rootNode.getBoundingClientRect().width*t}onKeyDown(e){switch(ue(e)){case rn:this.props.onUpPress&&(this.props.onUpPress(),e.preventDefault());break;case wn:this.props.onDownPress&&(this.props.onDownPress(),e.preventDefault());break;case qa:this.props.onEnterPress&&(this.props.onEnterPress(),e.preventDefault());break;case _o:document.activeElement&&W(document.activeElement).trigger("blur");break;case jl:this.props.onKeyboardUpdate("down"),e.preventDefault();break;case Jl:this.props.onKeyboardUpdate("up"),e.preventDefault();break;case Hg:this.props.onKeyboardUpdate("bigdown"),e.preventDefault();break;case qg:this.props.onKeyboardUpdate("bigup"),e.preventDefault();break;case $g:this.props.onKeyboardUpdate("min"),e.preventDefault();break;case Wg:this.props.onKeyboardUpdate("max"),e.preventDefault();break}}onStartDrag(e){if(e.device==="keyboard"||!e.target)return;e.preventDefault(),Pr();let t={x:0,y:0};e.target.closest(".dcg-thumb")?t.x=this.pixelsFromValue(this.props.value()):t.x=e.changedTouches[0].clientX-this.rootNode.getBoundingClientRect().left,this.dragDrop.startDrag(e,{origin:t})}buildFocusManager(){return!this.props.onFocusedChanged||!this.props.isFocused?this.const(void 0):this.const({shouldBeFocused:this.props.isFocused,onFocusedChanged:this.props.onFocusedChanged})}};var WA=300;var $A=1e3,jy=1001,YA=1002;var xz=1006;var wz=1008;var vz=1009;var Cz=1015;var Sz=1023;var Ez="",Dz="srgb";var kz=35044;var Qu=2e3,jA=2001;var Rr=class r{constructor(e=0,t=0,i=0){this.x=e,this.y=t,this.z=i}set(e,t,i){return i===void 0&&(i=this.z),this.x=e,this.y=t,this.z=i,this}clone(){return new r(this.x,this.y,this.z)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this}add(e){return this.x+=e.x,this.y+=e.y,this.z+=e.z,this}addVectors(e,t){return this.x=e.x+t.x,this.y=e.y+t.y,this.z=e.z+t.z,this}sub(e){return this.x-=e.x,this.y-=e.y,this.z-=e.z,this}subScalar(e){return this.x-=e,this.y-=e,this.z-=e,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this.z=e.z-t.z,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this}applyMatrix3(e){let t=this.x,i=this.y,o=this.z,n=e.elements;return this.x=n[0]*t+n[3]*i+n[6]*o,this.y=n[1]*t+n[4]*i+n[7]*o,this.z=n[2]*t+n[5]*i+n[8]*o,this}applyNormalMatrix(e){return this.applyMatrix3(e).normalize()}applyMatrix4(e){let t=this.x,i=this.y,o=this.z,n=e.elements,a=1/(n[3]*t+n[7]*i+n[11]*o+n[15]);return this.x=(n[0]*t+n[4]*i+n[8]*o+n[12])*a,this.y=(n[1]*t+n[5]*i+n[9]*o+n[13])*a,this.z=(n[2]*t+n[6]*i+n[10]*o+n[14])*a,this}applyQuaternion(e){let t=this.x,i=this.y,o=this.z,n=e.x,a=e.y,s=e.z,l=e.w,c=l*t+a*o-s*i,d=l*i+s*t-n*o,u=l*o+n*i-a*t,h=-n*t-a*i-s*o;return this.x=c*l+h*-n+d*-s-u*-a,this.y=d*l+h*-a+u*-n-c*-s,this.z=u*l+h*-s+c*-a-d*-n,this}project(e){return this.applyMatrix4(e.matrixWorldInverse).applyMatrix4(e.projectionMatrix)}transformDirection(e){let t=this.x,i=this.y,o=this.z,n=e.elements;return this.x=n[0]*t+n[4]*i+n[8]*o,this.y=n[1]*t+n[5]*i+n[9]*o,this.z=n[2]*t+n[6]*i+n[10]*o,this.normalize()}min(e){return this.x=Math.min(this.x,e.x),this.y=Math.min(this.y,e.y),this.z=Math.min(this.z,e.z),this}max(e){return this.x=Math.max(this.x,e.x),this.y=Math.max(this.y,e.y),this.z=Math.max(this.z,e.z),this}negate(){return this.x=-this.x,this.y=-this.y,this.z=-this.z,this}dot(e){return this.x*e.x+this.y*e.y+this.z*e.z}lengthSq(){return this.x*this.x+this.y*this.y+this.z*this.z}length(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}normalize(){return this.multiplyScalar(1/(this.length()||1))}setLength(e){return this.normalize().multiplyScalar(e)}lerp(e,t){return this.x+=(e.x-this.x)*t,this.y+=(e.y-this.y)*t,this.z+=(e.z-this.z)*t,this}cross(e){return this.crossVectors(this,e)}crossVectors(e,t){let i=e.x,o=e.y,n=e.z,a=t.x,s=t.y,l=t.z;return this.x=o*l-n*s,this.y=n*a-i*l,this.z=i*s-o*a,this}distanceTo(e){return Math.sqrt(this.distanceToSquared(e))}distanceToSquared(e){let t=this.x-e.x,i=this.y-e.y,o=this.z-e.z;return t*t+i*i+o*o}setFromMatrixPosition(e){let t=e.elements;return this.x=t[12],this.y=t[13],this.z=t[14],this}setFromMatrixColumn(e,t){let i=t*4,o=e.elements;return this.x=o[i],this.y=o[i+1],this.z=o[i+2],this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z}toArray(e,t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this}};var ln=class r{constructor(e,t,i,o,n,a,s,l,c,d,u,h,g,b,C,S){this.isMatrix4=!0;this.elements=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],e!==void 0&&this.set(e,t,i,o,n,a,s,l,c,d,u,h,g,b,C,S)}set(e,t,i,o,n,a,s,l,c,d,u,h,g,b,C,S){let k=this.elements;return k[0]=e,k[4]=t,k[8]=i,k[12]=o,k[1]=n,k[5]=a,k[9]=s,k[13]=l,k[2]=c,k[6]=d,k[10]=u,k[14]=h,k[3]=g,k[7]=b,k[11]=C,k[15]=S,this}clone(){let e=new r,t=this.elements;for(let i=0;i<16;i++)e.elements[i]=t[i];return e}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],t[9]=i[9],t[10]=i[10],t[11]=i[11],t[12]=i[12],t[13]=i[13],t[14]=i[14],t[15]=i[15],this}setFromMatrix3(e){let t=e.elements;return this.set(t[0],t[3],t[6],0,t[1],t[4],t[7],0,t[2],t[5],t[8],0,0,0,0,1),this}extractRotation(e){let t=this.elements,i=e.elements,o=1/JA.setFromMatrixColumn(e,0).length(),n=1/JA.setFromMatrixColumn(e,1).length(),a=1/JA.setFromMatrixColumn(e,2).length();return t[0]=i[0]*o,t[1]=i[1]*o,t[2]=i[2]*o,t[3]=0,t[4]=i[4]*n,t[5]=i[5]*n,t[6]=i[6]*n,t[7]=0,t[8]=i[8]*a,t[9]=i[9]*a,t[10]=i[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromEuler(e){let t=this.elements,i=e.x,o=e.y,n=e.z,a=Math.cos(i),s=Math.sin(i),l=Math.cos(o),c=Math.sin(o),d=Math.cos(n),u=Math.sin(n);if(e.order==="XYZ"){let h=a*d,g=a*u,b=s*d,C=s*u;t[0]=l*d,t[4]=-l*u,t[8]=c,t[1]=g+b*c,t[5]=h-C*c,t[9]=-s*l,t[2]=C-h*c,t[6]=b+g*c,t[10]=a*l}else if(e.order==="YXZ"){let h=l*d,g=l*u,b=c*d,C=c*u;t[0]=h+C*s,t[4]=b*s-g,t[8]=a*c,t[1]=a*u,t[5]=a*d,t[9]=-s,t[2]=g*s-b,t[6]=C+h*s,t[10]=a*l}else if(e.order==="ZYX"){let h=a*d,g=a*u,b=s*d,C=s*u;t[0]=l*d,t[4]=b*c-g,t[8]=h*c+C,t[1]=l*u,t[5]=C*c+h,t[9]=g*c-b,t[2]=-c,t[6]=s*l,t[10]=a*l}return t[3]=0,t[7]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,this}makeRotationFromQuaternion(e){return this.compose(ij,e,oj)}lookAt(e,t,i){let o=this.elements;return Ja.subVectors(e,t),Ja.lengthSq()===0&&(Ja.z=1),Ja.normalize(),Sp.crossVectors(i,Ja),Sp.lengthSq()===0&&(Math.abs(i.z)===1?Ja.x+=1e-4:Ja.z+=1e-4,Ja.normalize(),Sp.crossVectors(i,Ja)),Sp.normalize(),c0.crossVectors(Ja,Sp),o[0]=Sp.x,o[4]=c0.x,o[8]=Ja.x,o[1]=Sp.y,o[5]=c0.y,o[9]=Ja.y,o[2]=Sp.z,o[6]=c0.z,o[10]=Ja.z,this}multiply(e){return this.multiplyMatrices(this,e)}multiplyMatrices(e,t){let i=e.elements,o=t.elements,n=this.elements,a=i[0],s=i[4],l=i[8],c=i[12],d=i[1],u=i[5],h=i[9],g=i[13],b=i[2],C=i[6],S=i[10],k=i[14],I=i[3],M=i[7],E=i[11],A=i[15],V=o[0],G=o[4],P=o[8],O=o[12],R=o[1],q=o[5],J=o[9],U=o[13],z=o[2],K=o[6],v=o[10],D=o[14],_=o[3],te=o[7],Q=o[11],De=o[15];return n[0]=a*V+s*R+l*z+c*_,n[4]=a*G+s*q+l*K+c*te,n[8]=a*P+s*J+l*v+c*Q,n[12]=a*O+s*U+l*D+c*De,n[1]=d*V+u*R+h*z+g*_,n[5]=d*G+u*q+h*K+g*te,n[9]=d*P+u*J+h*v+g*Q,n[13]=d*O+u*U+h*D+g*De,n[2]=b*V+C*R+S*z+k*_,n[6]=b*G+C*q+S*K+k*te,n[10]=b*P+C*J+S*v+k*Q,n[14]=b*O+C*U+S*D+k*De,n[3]=I*V+M*R+E*z+A*_,n[7]=I*G+M*q+E*K+A*te,n[11]=I*P+M*J+E*v+A*Q,n[15]=I*O+M*U+E*D+A*De,this}determinant(){let e=this.elements,t=e[0],i=e[4],o=e[8],n=e[12],a=e[1],s=e[5],l=e[9],c=e[13],d=e[2],u=e[6],h=e[10],g=e[14],b=e[3],C=e[7],S=e[11],k=e[15];return b*(+n*l*u-o*c*u-n*s*h+i*c*h+o*s*g-i*l*g)+C*(+t*l*g-t*c*h+n*a*h-o*a*g+o*c*d-n*l*d)+S*(+t*c*u-t*s*g-n*a*u+i*a*g+n*s*d-i*c*d)+k*(-o*s*d-t*l*u+t*s*h+o*a*u-i*a*h+i*l*d)}invert(){let e=this.elements,t=e[0],i=e[1],o=e[2],n=e[3],a=e[4],s=e[5],l=e[6],c=e[7],d=e[8],u=e[9],h=e[10],g=e[11],b=e[12],C=e[13],S=e[14],k=e[15],I=u*S*c-C*h*c+C*l*g-s*S*g-u*l*k+s*h*k,M=b*h*c-d*S*c-b*l*g+a*S*g+d*l*k-a*h*k,E=d*C*c-b*u*c+b*s*g-a*C*g-d*s*k+a*u*k,A=b*u*l-d*C*l-b*s*h+a*C*h+d*s*S-a*u*S,V=t*I+i*M+o*E+n*A;if(V===0)return this.set(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);let G=1/V;return e[0]=I*G,e[1]=(C*h*n-u*S*n-C*o*g+i*S*g+u*o*k-i*h*k)*G,e[2]=(s*S*n-C*l*n+C*o*c-i*S*c-s*o*k+i*l*k)*G,e[3]=(u*l*n-s*h*n-u*o*c+i*h*c+s*o*g-i*l*g)*G,e[4]=M*G,e[5]=(d*S*n-b*h*n+b*o*g-t*S*g-d*o*k+t*h*k)*G,e[6]=(b*l*n-a*S*n-b*o*c+t*S*c+a*o*k-t*l*k)*G,e[7]=(a*h*n-d*l*n+d*o*c-t*h*c-a*o*g+t*l*g)*G,e[8]=E*G,e[9]=(b*u*n-d*C*n-b*i*g+t*C*g+d*i*k-t*u*k)*G,e[10]=(a*C*n-b*s*n+b*i*c-t*C*c-a*i*k+t*s*k)*G,e[11]=(d*s*n-a*u*n-d*i*c+t*u*c+a*i*g-t*s*g)*G,e[12]=A*G,e[13]=(d*C*o-b*u*o+b*i*h-t*C*h-d*i*S+t*u*S)*G,e[14]=(b*s*o-a*C*o-b*i*l+t*C*l+a*i*S-t*s*S)*G,e[15]=(a*u*o-d*s*o+d*i*l-t*u*l-a*i*h+t*s*h)*G,this}getMaxScaleOnAxis(){let e=this.elements,t=e[0]*e[0]+e[1]*e[1]+e[2]*e[2],i=e[4]*e[4]+e[5]*e[5]+e[6]*e[6],o=e[8]*e[8]+e[9]*e[9]+e[10]*e[10];return Math.sqrt(Math.max(t,i,o))}makeTranslation(e,t,i){return this.set(1,0,0,e,0,1,0,t,0,0,1,i,0,0,0,1),this}makeRotationX(e){let t=Math.cos(e),i=Math.sin(e);return this.set(1,0,0,0,0,t,-i,0,0,i,t,0,0,0,0,1),this}makeRotationAxis(e,t){let i=Math.cos(t),o=Math.sin(t),n=1-i,a=e.x,s=e.y,l=e.z,c=n*a,d=n*s;return this.set(c*a+i,c*s-o*l,c*l+o*s,0,c*s+o*l,d*s+i,d*l-o*a,0,c*l-o*s,d*l+o*a,n*l*l+i,0,0,0,0,1),this}makeScale(e,t,i){return this.set(e,0,0,0,0,t,0,0,0,0,i,0,0,0,0,1),this}compose(e,t,i){let o=this.elements,n=t._x,a=t._y,s=t._z,l=t._w,c=n+n,d=a+a,u=s+s,h=n*c,g=n*d,b=n*u,C=a*d,S=a*u,k=s*u,I=l*c,M=l*d,E=l*u,A=i.x,V=i.y,G=i.z;return o[0]=(1-(C+k))*A,o[1]=(g+E)*A,o[2]=(b-M)*A,o[3]=0,o[4]=(g-E)*V,o[5]=(1-(h+k))*V,o[6]=(S+I)*V,o[7]=0,o[8]=(b+M)*G,o[9]=(S-I)*G,o[10]=(1-(h+C))*G,o[11]=0,o[12]=e.x,o[13]=e.y,o[14]=e.z,o[15]=1,this}makePerspective(e,t,i,o,n,a,s=Qu){let l=this.elements,c=2*n/(t-e),d=2*n/(i-o),u=(t+e)/(t-e),h=(i+o)/(i-o),g,b;if(s===Qu)g=-(a+n)/(a-n),b=-2*a*n/(a-n);else if(s===jA)g=-a/(a-n),b=-a*n/(a-n);else throw new Error("THREE.Matrix4.makePerspective(): Invalid coordinate system: "+s);return l[0]=c,l[4]=0,l[8]=u,l[12]=0,l[1]=0,l[5]=d,l[9]=h,l[13]=0,l[2]=0,l[6]=0,l[10]=g,l[14]=b,l[3]=0,l[7]=0,l[11]=-1,l[15]=0,this}makeOrthographic(e,t,i,o,n,a,s=Qu){let l=this.elements,c=1/(t-e),d=1/(i-o),u=1/(a-n),h=(t+e)*c,g=(i+o)*d,b,C;if(s===Qu)b=(a+n)*u,C=-2*u;else if(s===jA)b=n*u,C=-1*u;else throw new Error("THREE.Matrix4.makeOrthographic(): Invalid coordinate system: "+s);return l[0]=2*c,l[4]=0,l[8]=0,l[12]=-h,l[1]=0,l[5]=2*d,l[9]=0,l[13]=-g,l[2]=0,l[6]=0,l[10]=C,l[14]=-b,l[3]=0,l[7]=0,l[11]=0,l[15]=1,this}equals(e){let t=this.elements,i=e.elements;for(let o=0;o<16;o++)if(t[o]!==i[o])return!1;return!0}fromArray(e,t=0){for(let i=0;i<16;i++)this.elements[i]=e[i+t];return this}toArray(e,t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e[t+9]=i[9],e[t+10]=i[10],e[t+11]=i[11],e[t+12]=i[12],e[t+13]=i[13],e[t+14]=i[14],e[t+15]=i[15],e}},JA=new Rr,ij=new Rr(0,0,0),oj=new Rr(1,1,1),Sp=new Rr,c0=new Rr,Ja=new Rr;var Zu=class r{constructor(e=0,t=0,i=0,o=1){this.isQuaternion=!0;this._x=e,this._y=t,this._z=i,this._w=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get w(){return this._w}set w(e){this._w=e,this._onChangeCallback()}set(e,t,i,o){return this._x=e,this._y=t,this._z=i,this._w=o,this._onChangeCallback(),this}clone(){return new r(this._x,this._y,this._z,this._w)}copy(e){return this._x=e.x,this._y=e.y,this._z=e.z,this._w=e.w,this._onChangeCallback(),this}setFromEuler(e,t){let i=e._x,o=e._y,n=e._z,a=e._order,s=Math.cos,l=Math.sin,c=s(i/2),d=s(o/2),u=s(n/2),h=l(i/2),g=l(o/2),b=l(n/2);switch(a){case"XYZ":this._x=h*d*u+c*g*b,this._y=c*g*u-h*d*b,this._z=c*d*b+h*g*u,this._w=c*d*u-h*g*b;break;case"YXZ":this._x=h*d*u+c*g*b,this._y=c*g*u-h*d*b,this._z=c*d*b-h*g*u,this._w=c*d*u+h*g*b;break;case"ZYX":this._x=h*d*u-c*g*b,this._y=c*g*u+h*d*b,this._z=c*d*b-h*g*u,this._w=c*d*u+h*g*b;break;default:console.warn("THREE.Quaternion: .setFromEuler() encountered an unknown order: "+a)}return t!==!1&&this._onChangeCallback(),this}setFromRotationMatrix(e){let t=e.elements,i=t[0],o=t[4],n=t[8],a=t[1],s=t[5],l=t[9],c=t[2],d=t[6],u=t[10],h=i+s+u;if(h>0){let g=.5/Math.sqrt(h+1);this._w=.25/g,this._x=(d-l)*g,this._y=(n-c)*g,this._z=(a-o)*g}else if(i>s&&i>u){let g=2*Math.sqrt(1+i-s-u);this._w=(d-l)/g,this._x=.25*g,this._y=(o+a)/g,this._z=(n+c)/g}else if(s>u){let g=2*Math.sqrt(1+s-i-u);this._w=(n-c)/g,this._x=(o+a)/g,this._y=.25*g,this._z=(l+d)/g}else{let g=2*Math.sqrt(1+u-i-s);this._w=(a-o)/g,this._x=(n+c)/g,this._y=(l+d)/g,this._z=.25*g}return this._onChangeCallback(),this}invert(){return this.conjugate()}conjugate(){return this._x*=-1,this._y*=-1,this._z*=-1,this._onChangeCallback(),this}dot(e){return this._x*e._x+this._y*e._y+this._z*e._z+this._w*e._w}length(){return Math.sqrt(this._x*this._x+this._y*this._y+this._z*this._z+this._w*this._w)}normalize(){let e=this.length();return e===0?(this._x=0,this._y=0,this._z=0,this._w=1):(e=1/e,this._x=this._x*e,this._y=this._y*e,this._z=this._z*e,this._w=this._w*e),this._onChangeCallback(),this}multiply(e){return this.multiplyQuaternions(this,e)}premultiply(e){return this.multiplyQuaternions(e,this)}multiplyQuaternions(e,t){let i=e._x,o=e._y,n=e._z,a=e._w,s=t._x,l=t._y,c=t._z,d=t._w;return this._x=i*d+a*s+o*c-n*l,this._y=o*d+a*l+n*s-i*c,this._z=n*d+a*c+i*l-o*s,this._w=a*d-i*s-o*l-n*c,this._onChangeCallback(),this}slerp(e,t){if(t===0)return this;if(t===1)return this.copy(e);let i=this._x,o=this._y,n=this._z,a=this._w,s=a*e._w+i*e._x+o*e._y+n*e._z;if(s<0?(this._w=-e._w,this._x=-e._x,this._y=-e._y,this._z=-e._z,s=-s):this.copy(e),s>=1)return this._w=a,this._x=i,this._y=o,this._z=n,this;let l=1-s*s;if(l<=Number.EPSILON){let g=1-t;return this._w=g*a+t*this._w,this._x=g*i+t*this._x,this._y=g*o+t*this._y,this._z=g*n+t*this._z,this.normalize(),this._onChangeCallback(),this}let c=Math.sqrt(l),d=Math.atan2(c,s),u=Math.sin((1-t)*d)/c,h=Math.sin(t*d)/c;return this._w=a*u+this._w*h,this._x=i*u+this._x*h,this._y=o*u+this._y*h,this._z=n*u+this._z*h,this._onChangeCallback(),this}toArray(e,t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._w,e}fromBufferAttribute(e,t){return this._x=e.getX(t),this._y=e.getY(t),this._z=e.getZ(t),this._w=e.getW(t),this}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}};var Om=class{hasEventListener(e,t){if(this._listeners===void 0)return!1;let i=this._listeners;return i[e]!==void 0&&i[e].indexOf(t)!==-1}addEventListener(e,t){this._listeners===void 0&&(this._listeners={});let i=this._listeners;i[e]===void 0&&(i[e]=[]),i[e].indexOf(t)===-1&&i[e].push(t)}removeEventListener(e,t){if(this._listeners===void 0)return;let o=this._listeners[e];if(o!==void 0){let n=o.indexOf(t);n!==-1&&o.splice(n,1)}}dispatchEvent(e){if(this._listeners===void 0)return;let i=this._listeners[e.type];if(i!==void 0){e.target=this;let o=i.slice(0);for(let n=0,a=o.length;n<a;n++)o[n].call(this,e);e.target=null}}};var Fn=["00","01","02","03","04","05","06","07","08","09","0a","0b","0c","0d","0e","0f","10","11","12","13","14","15","16","17","18","19","1a","1b","1c","1d","1e","1f","20","21","22","23","24","25","26","27","28","29","2a","2b","2c","2d","2e","2f","30","31","32","33","34","35","36","37","38","39","3a","3b","3c","3d","3e","3f","40","41","42","43","44","45","46","47","48","49","4a","4b","4c","4d","4e","4f","50","51","52","53","54","55","56","57","58","59","5a","5b","5c","5d","5e","5f","60","61","62","63","64","65","66","67","68","69","6a","6b","6c","6d","6e","6f","70","71","72","73","74","75","76","77","78","79","7a","7b","7c","7d","7e","7f","80","81","82","83","84","85","86","87","88","89","8a","8b","8c","8d","8e","8f","90","91","92","93","94","95","96","97","98","99","9a","9b","9c","9d","9e","9f","a0","a1","a2","a3","a4","a5","a6","a7","a8","a9","aa","ab","ac","ad","ae","af","b0","b1","b2","b3","b4","b5","b6","b7","b8","b9","ba","bb","bc","bd","be","bf","c0","c1","c2","c3","c4","c5","c6","c7","c8","c9","ca","cb","cc","cd","ce","cf","d0","d1","d2","d3","d4","d5","d6","d7","d8","d9","da","db","dc","dd","de","df","e0","e1","e2","e3","e4","e5","e6","e7","e8","e9","ea","eb","ec","ed","ee","ef","f0","f1","f2","f3","f4","f5","f6","f7","f8","f9","fa","fb","fc","fd","fe","ff"];var iye=Math.PI/180,oye=180/Math.PI;function Ep(){let r=Math.random()*4294967295|0,e=Math.random()*4294967295|0,t=Math.random()*4294967295|0,i=Math.random()*4294967295|0;return(Fn[r&255]+Fn[r>>8&255]+Fn[r>>16&255]+Fn[r>>24&255]+"-"+Fn[e&255]+Fn[e>>8&255]+"-"+Fn[e>>16&15|64]+Fn[e>>24&255]+"-"+Fn[t&63|128]+Fn[t>>8&255]+"-"+Fn[t>>16&255]+Fn[t>>24&255]+Fn[i&255]+Fn[i>>8&255]+Fn[i>>16&255]+Fn[i>>24&255]).toLowerCase()}function eh(r,e,t){return Math.max(e,Math.min(t,r))}function Jy(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return r/4294967295;case Uint16Array:return r/65535;case Uint8Array:return r/255;case Int32Array:return Math.max(r/2147483647,-1);case Int16Array:return Math.max(r/32767,-1);case Int8Array:return Math.max(r/127,-1);default:throw new Error("Invalid component type.")}}function _m(r,e){switch(e.constructor){case Float32Array:return r;case Uint32Array:return Math.round(r*4294967295);case Uint16Array:return Math.round(r*65535);case Uint8Array:return Math.round(r*255);case Int32Array:return Math.round(r*2147483647);case Int16Array:return Math.round(r*32767);case Int8Array:return Math.round(r*127);default:throw new Error("Invalid component type.")}}var Tz=new ln,d0=class{constructor(e=0,t=0,i=0,o="XYZ"){this._x=e,this._y=t,this._z=i,this._order=o}get x(){return this._x}set x(e){this._x=e,this._onChangeCallback()}get y(){return this._y}set y(e){this._y=e,this._onChangeCallback()}get z(){return this._z}set z(e){this._z=e,this._onChangeCallback()}get order(){return this._order}set order(e){this._order=e,this._onChangeCallback()}set(e,t,i,o=this._order){return this._x=e,this._y=t,this._z=i,this._order=o,this._onChangeCallback(),this}setFromRotationMatrix(e,t=this._order,i=!0){let o=e.elements,n=o[0],a=o[4],s=o[8],l=o[1],c=o[5],d=o[9],u=o[2],h=o[6],g=o[10];switch(t){case"XYZ":this._y=Math.asin(eh(s,-1,1)),Math.abs(s)<.9999999?(this._x=Math.atan2(-d,g),this._z=Math.atan2(-a,n)):(this._x=Math.atan2(h,c),this._z=0);break;case"YXZ":this._x=Math.asin(-eh(d,-1,1)),Math.abs(d)<.9999999?(this._y=Math.atan2(s,g),this._z=Math.atan2(l,c)):(this._y=Math.atan2(-u,n),this._z=0);break;case"ZYX":this._y=Math.asin(-eh(u,-1,1)),Math.abs(u)<.9999999?(this._x=Math.atan2(h,g),this._z=Math.atan2(l,n)):(this._x=0,this._z=Math.atan2(-a,c));break;default:console.warn("THREE.Euler: .setFromRotationMatrix() encountered an unknown order: "+t)}return this._order=t,i===!0&&this._onChangeCallback(),this}setFromQuaternion(e,t,i){return Tz.makeRotationFromQuaternion(e),this.setFromRotationMatrix(Tz,t,i)}toArray(e=[],t=0){return e[t]=this._x,e[t+1]=this._y,e[t+2]=this._z,e[t+3]=this._order,e}_onChange(e){return this._onChangeCallback=e,this}_onChangeCallback(){}};var p0=class{constructor(){this.mask=1}enable(e){this.mask|=1<<e|0}disableAll(){this.mask=0}test(e){return(this.mask&e.mask)!==0}};var Dp=class r{constructor(e,t,i,o,n,a,s,l,c){this.elements=[1,0,0,0,1,0,0,0,1],e!==void 0&&this.set(e,t,i,o,n,a,s,l,c)}set(e,t,i,o,n,a,s,l,c){let d=this.elements;return d[0]=e,d[1]=o,d[2]=s,d[3]=t,d[4]=n,d[5]=l,d[6]=i,d[7]=a,d[8]=c,this}copy(e){let t=this.elements,i=e.elements;return t[0]=i[0],t[1]=i[1],t[2]=i[2],t[3]=i[3],t[4]=i[4],t[5]=i[5],t[6]=i[6],t[7]=i[7],t[8]=i[8],this}setFromMatrix4(e){let t=e.elements;return this.set(t[0],t[4],t[8],t[1],t[5],t[9],t[2],t[6],t[10]),this}multiply(e){return this.multiplyMatrices(this,e)}multiplyMatrices(e,t){let i=e.elements,o=t.elements,n=this.elements,a=i[0],s=i[3],l=i[6],c=i[1],d=i[4],u=i[7],h=i[2],g=i[5],b=i[8],C=o[0],S=o[3],k=o[6],I=o[1],M=o[4],E=o[7],A=o[2],V=o[5],G=o[8];return n[0]=a*C+s*I+l*A,n[3]=a*S+s*M+l*V,n[6]=a*k+s*E+l*G,n[1]=c*C+d*I+u*A,n[4]=c*S+d*M+u*V,n[7]=c*k+d*E+u*G,n[2]=h*C+g*I+b*A,n[5]=h*S+g*M+b*V,n[8]=h*k+g*E+b*G,this}invert(){let e=this.elements,t=e[0],i=e[1],o=e[2],n=e[3],a=e[4],s=e[5],l=e[6],c=e[7],d=e[8],u=d*a-s*c,h=s*l-d*n,g=c*n-a*l,b=t*u+i*h+o*g;if(b===0)return this.set(0,0,0,0,0,0,0,0,0);let C=1/b;return e[0]=u*C,e[1]=(o*c-d*i)*C,e[2]=(s*i-o*a)*C,e[3]=h*C,e[4]=(d*t-o*l)*C,e[5]=(o*n-s*t)*C,e[6]=g*C,e[7]=(i*l-c*t)*C,e[8]=(a*t-i*n)*C,this}transpose(){let e,t=this.elements;return e=t[1],t[1]=t[3],t[3]=e,e=t[2],t[2]=t[6],t[6]=e,e=t[5],t[5]=t[7],t[7]=e,this}getNormalMatrix(e){return this.setFromMatrix4(e).invert().transpose()}equals(e){let t=this.elements,i=e.elements;for(let o=0;o<9;o++)if(t[o]!==i[o])return!1;return!0}toArray(e,t=0){let i=this.elements;return e[t]=i[0],e[t+1]=i[1],e[t+2]=i[2],e[t+3]=i[3],e[t+4]=i[4],e[t+5]=i[5],e[t+6]=i[6],e[t+7]=i[7],e[t+8]=i[8],e}clone(){let e=new r,t=this.elements;for(let i=0;i<9;i++)e.elements[i]=t[i];return e}};var oa=new Rr,u0=class{constructor(e,t,i=!1){this.isBufferAttribute=!0;if(Array.isArray(e))throw new TypeError("THREE.BufferAttribute: array should be a Typed Array.");this.name="",this.array=e,this.itemSize=t,this.count=e!==void 0?e.length/t:0,this.normalized=i,this.usage=kz,this.updateRange={offset:0,count:-1},this.gpuType=Cz,this.version=0}onUploadCallback(){}set needsUpdate(e){e===!0&&this.version++}applyMatrix4(e){for(let t=0,i=this.count;t<i;t++)oa.fromBufferAttribute(this,t),oa.applyMatrix4(e),this.setXYZ(t,oa.x,oa.y,oa.z);return this}applyNormalMatrix(e){for(let t=0,i=this.count;t<i;t++)oa.fromBufferAttribute(this,t),oa.applyNormalMatrix(e),this.setXYZ(t,oa.x,oa.y,oa.z);return this}transformDirection(e){for(let t=0,i=this.count;t<i;t++)oa.fromBufferAttribute(this,t),oa.transformDirection(e),this.setXYZ(t,oa.x,oa.y,oa.z);return this}getX(e){let t=this.array[e*this.itemSize];return this.normalized&&(t=Jy(t,this.array)),t}getY(e){let t=this.array[e*this.itemSize+1];return this.normalized&&(t=Jy(t,this.array)),t}getZ(e){let t=this.array[e*this.itemSize+2];return this.normalized&&(t=Jy(t,this.array)),t}getW(e){let t=this.array[e*this.itemSize+3];return this.normalized&&(t=Jy(t,this.array)),t}setXY(e,t,i){return e*=this.itemSize,this.normalized&&(t=_m(t,this.array),i=_m(i,this.array)),this.array[e+0]=t,this.array[e+1]=i,this}setXYZ(e,t,i,o){return e*=this.itemSize,this.normalized&&(t=_m(t,this.array),i=_m(i,this.array),o=_m(o,this.array)),this.array[e+0]=t,this.array[e+1]=i,this.array[e+2]=o,this}};var nj=0,Iz=new Rr,Mz=new Zu,Qy=new ln,XA=new Rr,QA=new Rr,aj=new Rr(1,0,0),sj=new Rr(0,1,0),lj=new Rr(0,0,1),cj={type:"added"},dj={type:"removed"},kp=class kp extends Om{constructor(){super();this.isObject3D=!0;Object.defineProperty(this,"id",{value:nj++}),this.uuid=Ep(),this.name="",this.type="Object3D",this.parent=null,this.children=[],this.up=kp.DEFAULT_UP.clone();let t=new Rr,i=new d0,o=new Zu,n=new Rr(1,1,1);function a(){o.setFromEuler(i,!1)}function s(){i.setFromQuaternion(o,void 0,!1)}i._onChange(a),o._onChange(s),Object.defineProperties(this,{position:{configurable:!0,enumerable:!0,value:t},rotation:{configurable:!0,enumerable:!0,value:i},quaternion:{configurable:!0,enumerable:!0,value:o},scale:{configurable:!0,enumerable:!0,value:n},modelViewMatrix:{value:new ln},normalMatrix:{value:new Dp}}),this.matrix=new ln,this.matrixWorld=new ln,this.dcgModelMatrix=new ln,this.matrixAutoUpdate=kp.DEFAULT_MATRIX_AUTO_UPDATE,this.matrixWorldNeedsUpdate=!1,this.matrixWorldAutoUpdate=kp.DEFAULT_MATRIX_WORLD_AUTO_UPDATE,this.layers=new p0,this.visible=!0,this.frustumCulled=!0,this.renderOrder=0,this.userData={}}setPickingColorArray(t){this.pickingColorArray=t;let{repeatColorCounts:i,colors:o}=t,n=[];for(let a=0;a<i.length;a++){let s=o[a],l=i[a];for(let c=0;c<l;c++)n.push(...s)}this.geometry&&this.geometry.setAttribute("vertexPickingColor",new u0(new Float32Array(n),4))}setRotationFromEuler(t){this.quaternion.setFromEuler(t,!0)}setRotationFromMatrix(t){this.quaternion.setFromRotationMatrix(t)}translateOnAxis(t,i){return Iz.copy(t).applyQuaternion(this.quaternion),this.position.add(Iz.multiplyScalar(i)),this}translateX(t){return this.translateOnAxis(aj,t)}translateY(t){return this.translateOnAxis(sj,t)}translateZ(t){return this.translateOnAxis(lj,t)}lookAt(t){XA.copy(t);let i=this.parent;this.updateWorldMatrix(!0,!1),QA.setFromMatrixPosition(this.matrixWorld),this.isCamera||this.isLight?Qy.lookAt(QA,XA,this.up):Qy.lookAt(XA,QA,this.up),this.quaternion.setFromRotationMatrix(Qy),i&&(Qy.extractRotation(i.matrixWorld),Mz.setFromRotationMatrix(Qy),this.quaternion.premultiply(Mz.invert()))}add(t){if(arguments.length>1){for(let i=0;i<arguments.length;i++)this.add(arguments[i]);return this}return t===this?(console.error("THREE.Object3D.add: object can't be added as a child of itself.",t),this):(t&&t.isObject3D?(t.parent!==null&&t.parent.remove(t),t.parent=this,this.children.push(t),t.dispatchEvent(cj)):console.error("THREE.Object3D.add: object not an instance of THREE.Object3D.",t),this)}remove(t){if(arguments.length>1){for(let o=0;o<arguments.length;o++)this.remove(arguments[o]);return this}let i=this.children.indexOf(t);return i!==-1&&(t.parent=null,this.children.splice(i,1),t.dispatchEvent(dj)),this}getObjectByName(t){return this.getObjectByProperty("name",t)}getObjectByProperty(t,i){if(this[t]===i)return this;for(let o=0,n=this.children.length;o<n;o++){let s=this.children[o].getObjectByProperty(t,i);if(s!==void 0)return s}}getObjectsByProperty(t,i){let o=[];this[t]===i&&o.push(this);for(let n=0,a=this.children.length;n<a;n++){let s=this.children[n].getObjectsByProperty(t,i);s.length>0&&(o=o.concat(s))}return o}traverse(t){t(this);let i=this.children;for(let o=0,n=i.length;o<n;o++)i[o].traverse(t)}traverseVisible(t){if(this.visible===!1)return;t(this);let i=this.children;for(let o=0,n=i.length;o<n;o++)i[o].traverseVisible(t)}updateMatrix(){this.matrix.compose(this.position,this.quaternion,this.scale),this.matrixWorldNeedsUpdate=!0}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.matrixWorldNeedsUpdate||t)&&(this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),this.matrixWorldNeedsUpdate=!1,t=!0);let i=this.children;for(let o=0,n=i.length;o<n;o++){let a=i[o];(a.matrixWorldAutoUpdate===!0||t===!0)&&a.updateMatrixWorld(t)}}updateWorldMatrix(t,i){let o=this.parent;if(t===!0&&o!==null&&o.matrixWorldAutoUpdate===!0&&o.updateWorldMatrix(!0,!1),this.matrixAutoUpdate&&this.updateMatrix(),this.parent===null?this.matrixWorld.copy(this.matrix):this.matrixWorld.multiplyMatrices(this.parent.matrixWorld,this.matrix),i===!0){let n=this.children;for(let a=0,s=n.length;a<s;a++){let l=n[a];l.matrixWorldAutoUpdate===!0&&l.updateWorldMatrix(!1,!0)}}}};kp.DEFAULT_UP=new Rr(0,1,0),kp.DEFAULT_MATRIX_AUTO_UPDATE=!0,kp.DEFAULT_MATRIX_WORLD_AUTO_UPDATE=!0;var h0=kp;var g0=class extends h0{constructor(){super();this.isCamera=!0;this.isCamera=!0,this.type="Camera",this.matrixWorldInverse=new ln,this.projectionMatrix=new ln,this.projectionMatrixInverse=new ln,this.coordinateSystem=Qu}updateMatrixWorld(t){super.updateMatrixWorld(t),this.matrixWorldInverse.copy(this.matrixWorld).invert()}updateWorldMatrix(t,i){super.updateWorldMatrix(t,i),this.matrixWorldInverse.copy(this.matrixWorld).invert()}};var m0=class extends g0{constructor(e=-1,t=1,i=1,o=-1,n=.1,a=2e3){super(),this.type="OrthographicCamera",this.zoom=1,this.view=null,this.left=e,this.right=t,this.top=i,this.bottom=o,this.near=n,this.far=a,this.updateProjectionMatrix()}setViewOffset(e,t,i,o,n,a){this.view===null&&(this.view={enabled:!0,fullWidth:1,fullHeight:1,offsetX:0,offsetY:0,width:1,height:1}),this.view.enabled=!0,this.view.fullWidth=e,this.view.fullHeight=t,this.view.offsetX=i,this.view.offsetY=o,this.view.width=n,this.view.height=a,this.updateProjectionMatrix()}clearViewOffset(){this.view!==null&&(this.view.enabled=!1),this.updateProjectionMatrix()}updateProjectionMatrix(){let e=(this.right-this.left)/(2*this.zoom),t=(this.top-this.bottom)/(2*this.zoom),i=(this.right+this.left)/2,o=(this.top+this.bottom)/2,n=i-e,a=i+e,s=o+t,l=o-t;if(this.view!==null&&this.view.enabled){let c=(this.right-this.left)/this.view.fullWidth/this.zoom,d=(this.top-this.bottom)/this.view.fullHeight/this.zoom;n+=c*this.view.offsetX,a=n+c*this.view.width,s-=d*this.view.offsetY,l=s-d*this.view.height}this.projectionMatrix.makeOrthographic(n,a,s,l,this.near,this.far,this.coordinateSystem),this.projectionMatrixInverse.copy(this.projectionMatrix).invert()}};var gi=class r{constructor(e=0,t=0){this.x=e,this.y=t}set(e,t){return this.x=e,this.y=t,this}clone(){return new r(this.x,this.y)}copy(e){return this.x=e.x,this.y=e.y,this}add(e){return this.x+=e.x,this.y+=e.y,this}addScaledVector(e,t){return this.x+=e.x*t,this.y+=e.y*t,this}sub(e){return this.x-=e.x,this.y-=e.y,this}subVectors(e,t){return this.x=e.x-t.x,this.y=e.y-t.y,this}multiplyScalar(e){return this.x*=e,this.y*=e,this}applyMatrix3(e){let t=this.x,i=this.y,o=e.elements;return this.x=o[0]*t+o[3]*i+o[6],this.y=o[1]*t+o[4]*i+o[7],this}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}normalize(){return this.multiplyScalar(1/(this.length()||1))}distanceTo(e){let t=this.x-e.x,i=this.y-e.y,o=t*t+i*i;return Math.sqrt(o)}equals(e){return e.x===this.x&&e.y===this.y}toArray(e,t=0){return e[t]=this.x,e[t+1]=this.y,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this}};var pj=0,f0=class{constructor(e){this.data=e;this.isSource=!0;this.uuid=Ep();this.version=0;Object.defineProperty(this,"id",{value:pj++})}set needsUpdate(e){e===!0&&this.version++}};var uj=0,Fm=class Fm extends Om{constructor(e,t=Fm.DEFAULT_MAPPING,i=jy,o=jy,n=xz,a=wz,s=Sz,l=vz,c=Fm.DEFAULT_ANISOTROPY,d=Ez){super(),this.isTexture=!0,Object.defineProperty(this,"id",{value:uj++}),this.uuid=Ep(),this.name="",this.source=new f0(e),this.mipmaps=[],this.mapping=t,this.channel=0,this.wrapS=i,this.wrapT=o,this.magFilter=n,this.minFilter=a,this.anisotropy=c,this.format=s,this.internalFormat=null,this.type=l,this.offset=new gi(0,0),this.repeat=new gi(1,1),this.center=new gi(0,0),this.rotation=0,this.matrixAutoUpdate=!0,this.matrix=new Dp,this.generateMipmaps=!0,this.premultiplyAlpha=!1,this.flipY=!0,this.unpackAlignment=4,this.colorSpace=d,this.userData={},this.version=0,this.onUpdate=void 0,this.isRenderTargetTexture=!1,this.needsPMREMUpdate=!1}get image(){return this.source.data}set image(e){this.source.data=e}clone(){return new this.constructor().copy(this)}copy(e){return this.name=e.name,this.source=e.source,this.mipmaps=e.mipmaps.slice(0),this.mapping=e.mapping,this.channel=e.channel,this.wrapS=e.wrapS,this.wrapT=e.wrapT,this.magFilter=e.magFilter,this.minFilter=e.minFilter,this.anisotropy=e.anisotropy,this.format=e.format,this.internalFormat=e.internalFormat,this.type=e.type,this.offset.copy(e.offset),this.repeat.copy(e.repeat),this.center.copy(e.center),this.rotation=e.rotation,this.matrixAutoUpdate=e.matrixAutoUpdate,this.matrix.copy(e.matrix),this.generateMipmaps=e.generateMipmaps,this.premultiplyAlpha=e.premultiplyAlpha,this.flipY=e.flipY,this.unpackAlignment=e.unpackAlignment,this.colorSpace=e.colorSpace,this.userData=JSON.parse(JSON.stringify(e.userData)),this.needsUpdate=!0,this}dispose(){this.dispatchEvent({type:"dispose"})}transformUv(e){if(this.mapping!==WA)return e;if(e.applyMatrix3(this.matrix),e.x<0||e.x>1)switch(this.wrapS){case $A:e.x=e.x-Math.floor(e.x);break;case jy:e.x=e.x<0?0:1;break;case YA:Math.abs(Math.floor(e.x)%2)===1?e.x=Math.ceil(e.x)-e.x:e.x=e.x-Math.floor(e.x);break}if(e.y<0||e.y>1)switch(this.wrapT){case $A:e.y=e.y-Math.floor(e.y);break;case jy:e.y=e.y<0?0:1;break;case YA:Math.abs(Math.floor(e.y)%2)===1?e.y=Math.ceil(e.y)-e.y:e.y=e.y-Math.floor(e.y);break}return this.flipY&&(e.y=1-e.y),e}set needsUpdate(e){e===!0&&(this.version++,this.source.needsUpdate=!0)}};Fm.DEFAULT_ANISOTROPY=1,Fm.DEFAULT_MAPPING=WA;var b0=Fm;var y0=class r{constructor(e=0,t=0,i=0,o=1){this.x=e,this.y=t,this.z=i,this.w=o}set(e,t,i,o){return this.x=e,this.y=t,this.z=i,this.w=o,this}clone(){return new r(this.x,this.y,this.z,this.w)}copy(e){return this.x=e.x,this.y=e.y,this.z=e.z,this.w=e.w!==void 0?e.w:1,this}multiplyScalar(e){return this.x*=e,this.y*=e,this.z*=e,this.w*=e,this}floor(){return this.x=Math.floor(this.x),this.y=Math.floor(this.y),this.z=Math.floor(this.z),this.w=Math.floor(this.w),this}equals(e){return e.x===this.x&&e.y===this.y&&e.z===this.z&&e.w===this.w}fromArray(e,t=0){return this.x=e[t],this.y=e[t+1],this.z=e[t+2],this.w=e[t+3],this}toArray(e,t=0){return e[t]=this.x,e[t+1]=this.y,e[t+2]=this.z,e[t+3]=this.w,e}fromBufferAttribute(e,t){return this.x=e.getX(t),this.y=e.getY(t),this.z=e.getZ(t),this.w=e.getW(t),this}};var Tp=class{constructor(){this.arcLengthDivisions=200;this.needsUpdate=!1}getPointAt(e,t){let i=this.getUtoTmapping(e);return this.getPoint(i,t)}getPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPoint(i/e));return t}getSpacedPoints(e=5){let t=[];for(let i=0;i<=e;i++)t.push(this.getPointAt(i/e));return t}getLength(){let e=this.getLengths();return e[e.length-1]}getLengths(e=this.arcLengthDivisions){if(this.cacheArcLengths&&this.cacheArcLengths.length===e+1&&!this.needsUpdate)return this.cacheArcLengths;this.needsUpdate=!1;let t=[],i,o=this.getPoint(0),n=0;t.push(0);for(let a=1;a<=e;a++)i=this.getPoint(a/e),n+=i.distanceTo(o),t.push(n),o=i;return this.cacheArcLengths=t,t}updateArcLengths(){this.needsUpdate=!0,this.getLengths()}getUtoTmapping(e,t){let i=this.getLengths(),o=0,n=i.length,a;t?a=t:a=e*i[n-1];let s=0,l=n-1,c;for(;s<=l;)if(o=Math.floor(s+(l-s)/2),c=i[o]-a,c<0)s=o+1;else if(c>0)l=o-1;else{l=o;break}if(o=l,i[o]===a)return o/(n-1);let d=i[o],h=i[o+1]-d,g=(a-d)/h;return(o+g)/(n-1)}getTangent(e,t){let o=e-1e-4,n=e+1e-4;o<0&&(o=0),n>1&&(n=1);let a=this.getPoint(o),s=this.getPoint(n),l=t||new gi;return l.copy(s).sub(a).normalize(),l}getTangentAt(e,t){let i=this.getUtoTmapping(e);return this.getTangent(i,t)}computeFrenetFrames(e,t){let i=new Rr,o=[],n=[],a=[],s=new Rr,l=new ln;for(let h=0;h<=e;h++){let g=h/e,b=this.getTangentAt(g,new gi);o[h]=new Rr(b.x,b.y,0)}n[0]=new Rr,a[0]=new Rr;let c=Number.MAX_VALUE,d=Math.abs(o[0].x),u=Math.abs(o[0].y);d<=c&&(c=d,i.set(1,0,0)),u<=c&&(c=u,i.set(0,1,0)),s.crossVectors(o[0],i).normalize(),n[0].crossVectors(o[0],s),a[0].crossVectors(o[0],n[0]);for(let h=1;h<=e;h++){if(n[h]=n[h-1].clone(),a[h]=a[h-1].clone(),s.crossVectors(o[h-1],o[h]),s.length()>Number.EPSILON){s.normalize();let g=Math.acos(eh(o[h-1].dot(o[h]),-1,1));n[h].applyMatrix4(l.makeRotationAxis(s,g))}a[h].crossVectors(o[h],n[h])}if(t===!0){let h=Math.acos(eh(n[0].dot(n[e]),-1,1));h/=e,o[0].dot(s.crossVectors(n[0],n[e]))>0&&(h=-h);for(let g=1;g<=e;g++)n[g].applyMatrix4(l.makeRotationAxis(o[g],h*g)),a[g].crossVectors(o[g],n[g])}return{tangents:o,normals:n,binormals:a}}};var th=class extends Tp{constructor(e=new gi,t=new gi){super(),this.v1=e,this.v2=t}getPoint(e,t=new gi){let i=t;return e===1?i.copy(this.v2):(i.copy(this.v2).sub(this.v1),i.multiplyScalar(e).add(this.v1)),i}getPointAt(e,t){return this.getPoint(e,t)}getTangent(e,t=new gi){return t.subVectors(this.v2,this.v1).normalize()}getTangentAt(e,t){return this.getTangent(e,t)}};var x0=class extends Tp{constructor(){super(...arguments);this.curves=[];this.autoClose=!1}add(t){this.curves.push(t)}closePath(){let t=this.curves[0].getPoint(0),i=this.curves[this.curves.length-1].getPoint(1);t.equals(i)||this.curves.push(new th(i,t))}getPoint(t,i){let o=t*this.getLength(),n=this.getCurveLengths(),a=0;for(;a<n.length;){if(n[a]>=o){let s=n[a]-o,l=this.curves[a],c=l.getLength(),d=c===0?0:1-s/c;return l.getPointAt(d,i)}a++}}getLength(){let t=this.getCurveLengths();return t[t.length-1]}updateArcLengths(){this.needsUpdate=!0,this.cacheLengths=void 0,this.getCurveLengths()}getCurveLengths(){if(this.cacheLengths&&this.cacheLengths.length===this.curves.length)return this.cacheLengths;let t=[],i=0;for(let o=0,n=this.curves.length;o<n;o++)i+=this.curves[o].getLength(),t.push(i);return this.cacheLengths=t,t}getSpacedPoints(t=40){let i=[];for(let o=0;o<=t;o++)i.push(this.getPoint(o/t));return this.autoClose&&i.push(i[0]),i}getPoints(t=12){let i=[],o;for(let n=0,a=this.curves;n<a.length;n++){let s=a[n],l=s instanceof th?1:t,c=s.getPoints(l);for(let d=0;d<c.length;d++){let u=c[d];o&&o.equals(u)||(i.push(u),o=u)}}return this.autoClose&&i.length>1&&!i[i.length-1].equals(i[0])&&i.push(i[0]),i}};function hj(r,e){let t=1-r;return t*t*e}function gj(r,e){return 2*(1-r)*r*e}function mj(r,e){return r*r*e}function ZA(r,e,t,i){return hj(r,e)+gj(r,t)+mj(r,i)}var w0=class extends Tp{constructor(e=new gi,t=new gi,i=new gi){super(),this.v0=e,this.v1=t,this.v2=i}getPoint(e,t=new gi){let i=t,o=this.v0,n=this.v1,a=this.v2;return i.set(ZA(e,o.x,n.x,a.x),ZA(e,o.y,n.y,a.y)),i}};var rh=class extends x0{constructor(t){super();this.currentPoint=new gi;t&&this.setFromPoints(t)}setFromPoints(t){this.moveTo(t[0].x,t[0].y);for(let i=1,o=t.length;i<o;i++)this.lineTo(t[i].x,t[i].y);return this}moveTo(t,i){return this.currentPoint.set(t,i),this}lineTo(t,i){let o=new th(this.currentPoint.clone(),new gi(t,i));return this.curves.push(o),this.currentPoint.set(t,i),this}quadraticCurveTo(t,i,o,n){let a=new w0(this.currentPoint.clone(),new gi(t,i),new gi(o,n));return this.curves.push(a),this.currentPoint.set(o,n),this}};var Rm=class extends rh{constructor(){super(...arguments);this.uuid=Ep();this.holes=[]}getPointsHoles(t){let i=[];for(let o=0,n=this.holes.length;o<n;o++)i[o]=this.holes[o].getPoints(t);return i}extractPoints(t){return{shape:this.getPoints(t),holes:this.getPointsHoles(t)}}};var Ms=class r{constructor(e){this.isColor=!0;if(e instanceof r)this.copy(e);else if(typeof e=="number")this.setHex(e);else if(typeof e=="string"){let{r:t,g:i,b:o}=__dcg_shared_module_exports__['ed'](e);this.setRGB(t/255,i/255,o/255)}else this.r=1,this.g=1,this.b=1}setHex(e){return e=Math.floor(e),this.setRGB((e>>16&255)/255,(e>>8&255)/255,(e&255)/255),this}setRGB(e,t,i){return this.r=__dcg_shared_module_exports__['fd'](e),this.g=__dcg_shared_module_exports__['fd'](t),this.b=__dcg_shared_module_exports__['fd'](i),this}clone(){let e=new r;return e.r=this.r,e.g=this.g,e.b=this.b,e}copy(e){return this.r=e.r,this.g=e.g,this.b=e.b,this}getRGB(e,t){t===Dz?(e.r=__dcg_shared_module_exports__['gd'](this.r),e.g=__dcg_shared_module_exports__['gd'](this.g),e.b=__dcg_shared_module_exports__['gd'](this.b)):(e.r=this.r,e.g=this.g,e.b=this.b)}multiplyScalar(e){return this.r*=e,this.g*=e,this.b*=e,this}equals(e){return e.r===this.r&&e.g===this.g&&e.b===this.b}fromArray(e,t=0){return this.r=e[t],this.g=e[t+1],this.b=e[t+2],this}toArray(e=[],t=0){return e[t]=this.r,e[t+1]=this.g,e[t+2]=this.b,e}fromBufferAttribute(e,t){return this.r=e.getX(t),this.g=e.getY(t),this.b=e.getZ(t),this}};var Gz={triangulate:function(r,e,t=2){let i=e&&e.length,o=i?e[0]*t:r.length,n=fj(r,0,o,t,!0),a=[];if(!n||n.next===n.prev)return a;let s,l,c,d,u,h,g;if(i)throw new Error("EarCut does not support holes");if(r.length>80*t){s=c=r[0],l=d=r[1];for(let b=t;b<o;b+=t)u=r[b],h=r[b+1],u<s&&(s=u),h<l&&(l=h),u>c&&(c=u),h>d&&(d=h);g=Math.max(c-s,d-l),g=g!==0?32767/g:0}return bj(n,a,t,s,l,g,0),a}};function fj(r,e,t,i,o){let n,a;if(o===Sj(r,e,t,i)>0)for(n=e;n<t;n+=i)a=Az(n,r[n],r[n+1],a);else for(n=t-i;n>=e;n-=i)a=Az(n,r[n],r[n+1],a);return a&&Cj(a,a.next)&&(Vz(a),a=a.next),a}function bj(r,e,t,i,o,n,a){if(!r)return;!a&&n&&wj(r,i,o,n);let s=r,l,c;for(;r.prev!==r.next;){if(l=r.prev,c=r.next,n?xj(r,i,o,n):yj(r)){e.push(l.i/t|0),e.push(r.i/t|0),e.push(c.i/t|0),Vz(r),r=c.next,s=c.next;continue}if(r=c,r===s)throw new Error("EarCut does not expect ear === stop")}}function yj(r){let e=r.prev,t=r,i=r.next;if(ih(e,t,i)>=0)return!1;let o=e.x,n=t.x,a=i.x,s=e.y,l=t.y,c=i.y,d=o<n?o<a?o:a:n<a?n:a,u=s<l?s<c?s:c:l<c?l:c,h=o>n?o>a?o:a:n>a?n:a,g=s>l?s>c?s:c:l>c?l:c,b=i.next;for(;b!==e;){if(b.x>=d&&b.x<=h&&b.y>=u&&b.y<=g&&Zy(o,s,n,l,a,c,b.x,b.y)&&ih(b.prev,b,b.next)>=0)return!1;b=b.next}return!0}function xj(r,e,t,i){let o=r.prev,n=r,a=r.next;if(ih(o,n,a)>=0)return!1;let s=o.x,l=n.x,c=a.x,d=o.y,u=n.y,h=a.y,g=s<l?s<c?s:c:l<c?l:c,b=d<u?d<h?d:h:u<h?u:h,C=s>l?s>c?s:c:l>c?l:c,S=d>u?d>h?d:h:u>h?u:h,k=e1(g,b,e,t,i),I=e1(C,S,e,t,i),M=r.prevZ,E=r.nextZ;for(;M&&M.z>=k&&E&&E.z<=I;){if(M.x>=g&&M.x<=C&&M.y>=b&&M.y<=S&&M!==o&&M!==a&&Zy(s,d,l,u,c,h,M.x,M.y)&&ih(M.prev,M,M.next)>=0||(M=M.prevZ,E.x>=g&&E.x<=C&&E.y>=b&&E.y<=S&&E!==o&&E!==a&&Zy(s,d,l,u,c,h,E.x,E.y)&&ih(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;M&&M.z>=k;){if(M.x>=g&&M.x<=C&&M.y>=b&&M.y<=S&&M!==o&&M!==a&&Zy(s,d,l,u,c,h,M.x,M.y)&&ih(M.prev,M,M.next)>=0)return!1;M=M.prevZ}for(;E&&E.z<=I;){if(E.x>=g&&E.x<=C&&E.y>=b&&E.y<=S&&E!==o&&E!==a&&Zy(s,d,l,u,c,h,E.x,E.y)&&ih(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function wj(r,e,t,i){let o=r;do o.z===0&&(o.z=e1(o.x,o.y,e,t,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==r);o.prevZ.nextZ=void 0,o.prevZ=void 0,vj(o)}function vj(r){let e,t,i,o,n,a,s,l,c=1;do{for(t=r,r=void 0,n=void 0,a=0;t;){for(a++,i=t,s=0,e=0;e<c&&(s++,i=i.nextZ,!!i);e++);for(l=c;s>0||l>0&&i;)s!==0&&(l===0||!i||t.z<=i.z)?(o=t,t=t.nextZ,s--):(o=i,i=i.nextZ,l--),n?n.nextZ=o:r=o,o.prevZ=n,n=o;t=i}n.nextZ=void 0,c*=2}while(a>1);return r}function e1(r,e,t,i,o){return r=(r-t)*o|0,e=(e-i)*o|0,r=(r|r<<8)&16711935,r=(r|r<<4)&252645135,r=(r|r<<2)&858993459,r=(r|r<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,r|e<<1}function Zy(r,e,t,i,o,n,a,s){return(o-a)*(e-s)>=(r-a)*(n-s)&&(r-a)*(i-s)>=(t-a)*(e-s)&&(t-a)*(n-s)>=(o-a)*(i-s)}function ih(r,e,t){return(e.y-r.y)*(t.x-e.x)-(e.x-r.x)*(t.y-e.y)}function Cj(r,e){return r.x===e.x&&r.y===e.y}function Az(r,e,t,i){let o=new t1(r,e,t);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function Vz(r){r.next.prev=r.prev,r.prev.next=r.next,r.prevZ&&(r.prevZ.nextZ=r.nextZ),r.nextZ&&(r.nextZ.prevZ=r.prevZ)}var t1=class{constructor(e,t,i){this.i=e,this.x=t,this.y=i,this.z=0,this.prevZ=void 0,this.nextZ=void 0,this.steiner=!1}};function Sj(r,e,t,i){let o=0;for(let n=e,a=t-i;n<t;n+=i)o+=(r[a]-r[n])*(r[n+1]+r[a+1]),a=n;return o}var v0=class r{static area(e){let t=e.length,i=0;for(let o=t-1,n=0;n<t;o=n++)i+=e[o].x*e[n].y-e[n].x*e[o].y;return i*.5}static isClockWise(e){return r.area(e)<0}static triangulateShape(e,t){let i=[],o=[],n=[];Pz(e),Lz(i,e);let a=e.length;t.forEach(Pz);for(let l=0;l<t.length;l++)o.push(a),a+=t[l].length,Lz(i,t[l]);let s=Gz.triangulate(i,o);for(let l=0;l<s.length;l+=3)n.push(s.slice(l,l+3));return n}};function Pz(r){let e=r.length;e>2&&r[e-1].equals(r[0])&&r.pop()}function Lz(r,e){for(let t=0;t<e.length;t++)r.push(e[t].x),r.push(e[t].y)}var C0=class{constructor(){this.color=new Ms;this.subPaths=[];this.currentPath=new rh}moveTo(e,t){return this.currentPath=new rh,this.subPaths.push(this.currentPath),this.currentPath.moveTo(e,t),this}lineTo(e,t){return this.currentPath.lineTo(e,t),this}quadraticCurveTo(e,t,i,o){return this.currentPath.quadraticCurveTo(e,t,i,o),this}toShapes(e=!1){function t(k){let I=[];for(let M=0,E=k.length;M<E;M++){let A=k[M],V=new Rm;V.curves=A.curves,I.push(V)}return I}function i(k,I){let M=I.length,E=!1;for(let A=M-1,V=0;V<M;A=V++){let G=I[A],P=I[V],O=P.x-G.x,R=P.y-G.y;if(Math.abs(R)>Number.EPSILON){if(R<0&&(G=I[V],O=-O,P=I[A],R=-R),k.y<G.y||k.y>P.y)continue;if(k.y===G.y){if(k.x===G.x)return!0}else{let q=R*(k.x-G.x)-O*(k.y-G.y);if(q===0)return!0;if(q<0)continue;E=!E}}else{if(k.y!==G.y)continue;if(P.x<=k.x&&k.x<=G.x||G.x<=k.x&&k.x<=P.x)return!0}}return E}let o=v0.isClockWise,n=this.subPaths;if(n.length===0)return[];let a,s,l,c=[];if(n.length===1)return s=n[0],l=new Rm,l.curves=s.curves,c.push(l),c;let d=!o(n[0].getPoints());d=e?!d:d;let u=[],h=[],g=[],b=0,C;g[b]=[];for(let k=0,I=n.length;k<I;k++)if(s=n[k],C=s.getPoints(),a=o(C),a=e?!a:a,a){!d&&h[b]&&b++;let M={s:new Rm,p:C};M.s.curves=s.curves,h[b]=M,d&&b++,g[b]=[]}else g[b].push({h:s,p:C[0]});if(!h[0])return t(n);if(h.length>1){let k=!1,I=0;for(let M=0,E=h.length;M<E;M++)u[M]=[];for(let M=0,E=h.length;M<E;M++){let A=g[M];for(let V=0;V<A.length;V++){let G=A[V],P=!0;for(let O=0;O<h.length;O++)i(G.p,h[O].p)&&(M!==O&&I++,P?(P=!1,u[O].push(G)):k=!0);P&&u[M].push(G)}}I>0&&k===!1&&(g=u)}let S;for(let k=0,I=h.length;k<I;k++){l=h[k].s,c.push(l),S=g[k];for(let M=0,E=S.length;M<E;M++)l.holes.push(S[M].h)}return c}};function r1(r){let e={};for(let t in r){e[t]={};for(let i in r[t]){let o=r[t][i];o&&(o instanceof Ms||o instanceof Dp||o instanceof ln||o instanceof gi||o instanceof Rr||o instanceof y0||o instanceof b0||o instanceof Zu)?o.isRenderTargetTexture?(console.warn("UniformsUtils: Textures of render targets cannot be cloned via cloneUniforms() or mergeUniforms()."),e[t][i]=null):e[t][i]=o.clone():Array.isArray(o)?e[t][i]=o.slice():e[t][i]=o}}return e}var i1={common:{diffuse:{value:new Ms(16777215)},opacity:{value:1},map:{value:null},alphaTest:{value:0}},lights:{ambientLightColor:{value:[]},directionalLights:{value:[],properties:{direction:{},color:{}}}}};var ex=class{constructor(e){this.data=e}generateShapes(e,t=100){let i=[],o=Ej(e,t,this.data);for(let n=0,a=o.length;n<a;n++)i.push(...o[n].toShapes());return i}};function Ej(r,e,t){let i=Array.from(r),o=e/t.resolution,n=(t.boundingBox.yMax-t.boundingBox.yMin+t.underlineThickness)*o,a=[],s=0,l=0;for(let c=0;c<i.length;c++){let d=i[c];if(d===`
`)s=0,l-=n;else{let u=Dj(d,o,s,l,t);s+=u.offsetX,a.push(u.path)}}return a}function Dj(r,e,t,i,o){let n=o.glyphs[r]||o.glyphs["?"];if(!n)throw new Error('THREE.Font: character "'+r+'" does not exists in font family '+o.familyName+".");let a=new C0,s,l,c,d,u,h;if(n.o){let g=n._cachedOutline||(n._cachedOutline=n.o.split(" "));for(let b=0,C=g.length;b<C;){let S=g[b++];switch(S){case"m":s=g[b++]*e+t,l=g[b++]*e+i,a.moveTo(s,l);break;case"l":s=g[b++]*e+t,l=g[b++]*e+i,a.lineTo(s,l);break;case"q":c=g[b++]*e+t,d=g[b++]*e+i,u=g[b++]*e+t,h=g[b++]*e+i,a.quadraticCurveTo(u,h,c,d);break;default:if(S)throw new Error("unrecognized action: "+S)}}}return{offsetX:n.ha*e,path:a}}var _z=`// License: MIT License (c) 2014 Mikola Lysenko
// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl
#define FLOAT_MAX 1.70141184e38
#define FLOAT_MIN 1.17549435e-38
lowp vec4 encode_float(highp float v) {
highp float av = abs(v);
//Handle special cases
if(av < FLOAT_MIN) {
return vec4(0.0, 0.0, 0.0, 0.0);
} else if(v > FLOAT_MAX) {
return vec4(127.0, 128.0, 0.0, 0.0) / 255.0;
} else if(v < -FLOAT_MAX) {
return vec4(255.0, 128.0, 0.0, 0.0) / 255.0;
}
highp vec4 c = vec4(0,0,0,0);
//Compute exponent and mantissa
highp float e = floor(log2(av));
highp float m = av * pow(2.0, -e) - 1.0;
//Unpack mantissa
c[1] = floor(128.0 * m);
m -= c[1] / 128.0;
c[2] = floor(32768.0 * m);
m -= c[2] / 32768.0;
c[3] = floor(8388608.0 * m);
//Unpack exponent
highp float ebias = e + 127.0;
c[0] = floor(ebias / 2.0);
ebias -= c[0] * 2.0;
c[1] += floor(ebias) * 128.0;
//Unpack sign bit
c[0] += 128.0 * step(0.0, -v);
//Scale back to range
return c / 255.0;
}
`;var oh={Default:0,PickingObjectId:1,PickingX:2,PickingY:3,PickingZ:4,Depth:5};var Nz=`
#ifdef DCG_SUPPORTS_PICKING
uniform vec4 pickingColor;
${_z}
#endif
`,Bz=`#ifdef DCG_SUPPORTS_PICKING
if (dcgRenderMode == ${oh.PickingObjectId}) {
#if defined(USE_INSTANCING_PICKINGCOLOR) || defined(USE_VERTEX_PICKING_COLOR)
gl_FragColor = vPickingColor;
#else
gl_FragColor = pickingColor;
#endif
return;
} else if (dcgRenderMode == ${oh.PickingX}) {
gl_FragColor = encode_float(vPosition.x);
return;
} else if (dcgRenderMode == ${oh.PickingY}) {
gl_FragColor = encode_float(vPosition.y);
return;
} else if (dcgRenderMode == ${oh.PickingZ}) {
gl_FragColor = encode_float(vPosition.z);
return;
}
#endif
`,yve=` varying vec3 vPosition;
uniform bool clip_x;
uniform bool clip_y;
uniform bool clip_z;
uniform float xMin;
uniform float xMax;
uniform float yMin;
uniform float yMax;
uniform float zMin;
uniform float zMax;
uniform float zMinForAnimation;
uniform float zMaxForAnimation;
uniform vec2 uvMin;
uniform vec2 uvWidth;
uniform int dcgRenderMode;
${Nz}
`;var Ave=Hi("disableLighting");var qve={...r1(i1.common),...r1(i1.lights),roughness:{value:.4},metalness:{value:0},emissive:{value:new Ms(0)}};var Kz=`{
"glyphs": {
"x": {
"x_min": 0,
"x_max": 675,
"ha": 764,
"o": "m 675 0 l 525 0 l 331 286 l 144 0 l 0 0 l 256 379 l 12 738 l 157 737 l 336 473 l 516 738 l 661 738 l 412 380 l 675 0 "
},
"y": {
"x_min": 0,
"x_max": 684.78125,
"ha": 771,
"o": "m 684 738 l 388 -83 q 311 -216 356 -167 q 173 -279 252 -279 q 97 -266 133 -279 l 97 -149 q 132 -155 109 -151 q 168 -160 155 -160 q 240 -114 213 -160 q 274 -26 248 -98 l 0 738 l 137 737 l 341 139 l 548 737 l 684 738 "
},
"z": {
"x_min": -0.015625,
"x_max": 613.890625,
"ha": 697,
"o": "m 613 0 l 0 0 l 0 100 l 433 630 l 20 630 l 20 738 l 594 738 l 593 636 l 163 110 l 613 110 l 613 0 "
}
},
"cssFontWeight": "normal",
"ascender": 1189,
"underlinePosition": -100,
"cssFontStyle": "normal",
"boundingBox": { "yMin": -334, "xMin": -111, "yMax": 1189, "xMax": 1672 },
"resolution": 1000,
"original_font_information": {
"postscript_name": "Helvetiker-Regular",
"version_string": "Version 1.00 2004 initial release",
"vendor_url": "http://www.magenta.gr/",
"full_font_name": "Helvetiker",
"font_family_name": "Helvetiker",
"copyright": "Copyright (c) \u039Cagenta ltd, 2004",
"description": "",
"trademark": "",
"designer": "",
"designer_url": "",
"unique_font_identifier": "\u039Cagenta ltd:Helvetiker:22-10-104",
"license_url": "http://www.ellak.gr/fonts/MgOpen/license.html",
"license_description": "Copyright (c) 2004 by MAGENTA Ltd. All Rights Reserved.\\r\\n\\r\\nPermission is hereby granted, free of charge, to any person obtaining a copy of the fonts accompanying this license (\\"Fonts\\") and associated documentation files (the \\"Font Software\\"), to reproduce and distribute the Font Software, including without limitation the rights to use, copy, merge, publish, distribute, and/or sell copies of the Font Software, and to permit persons to whom the Font Software is furnished to do so, subject to the following conditions: \\r\\n\\r\\nThe above copyright and this permission notice shall be included in all copies of one or more of the Font Software typefaces.\\r\\n\\r\\nThe Font Software may be modified, altered, or added to, and in particular the designs of glyphs or characters in the Fonts may be modified and additional glyphs or characters may be added to the Fonts, only if the fonts are renamed to names not containing the word \\"MgOpen\\", or if the modifications are accepted for inclusion in the Font Software itself by the each appointed Administrator.\\r\\n\\r\\nThis License becomes null and void to the extent applicable to Fonts or Font Software that has been modified and is distributed under the \\"MgOpen\\" name.\\r\\n\\r\\nThe Font Software may be sold as part of a larger software package but no copy of one or more of the Font Software typefaces may be sold by itself. \\r\\n\\r\\nTHE FONT SOFTWARE IS PROVIDED \\"AS IS\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL MAGENTA OR PERSONS OR BODIES IN CHARGE OF ADMINISTRATION AND MAINTENANCE OF THE FONT SOFTWARE BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER DEALINGS IN THE FONT SOFTWARE.",
"manufacturer_name": "\u039Cagenta ltd",
"font_sub_family_name": "Regular"
},
"descender": -334,
"familyName": "Helvetiker",
"lineHeight": 1522,
"underlineThickness": 50
}
`;var{abs:TCe,min:ICe,max:MCe}=Math;var ACe=new ex(JSON.parse(Kz));var Gj=.02,GCe=7*Gj;var{abs:NCe,floor:BCe,sin:zCe,cos:KCe}=Math;var jCe=new m0(-1,1,1,-1,0,1);var Pj={name:"FillShader",defines:{},uniforms:{color:{value:new Ms(16777215)},opacity:{value:1}},vertexShader:`
void main() {
gl_Position = projectionMatrix * modelViewMatrix * vec4( position, 1.0 );
}`,fragmentShader:`
uniform vec3 color;
uniform float opacity;
void main() {
gl_FragColor = vec4( color, opacity );
}`};var Lj=new Uint8Array(4),iSe=new Float32Array(Lj.buffer);Fa();var a1=new URLSearchParams(window.location.search),bSe=a1.has("peel-float-texture"),ySe=a1.has("peel-upsample")?parseFloat(a1.get("peel-upsample")):void 0;Fa();var Fj=new Set;Fj.add("(0,0,0,0)");var{abs:SSe,PI:ESe}=Math;var{sin:DSe,cos:kSe}=Math;var Bj=new URLSearchParams(window.location.search),Hz=(r,e)=>{let t=Bj.get(r);return t===null?e:Number(t)},zj=Hz("scrollZoomRecenterAggressiveness",.2),OSe=Hz("buttonZoomRecenterAggressiveness",.1);kt();var{abs:iEe,min:oEe,acos:nEe,hypot:aEe,PI:sEe}=Math;var lEe=5*Math.PI/180;function Wz(r,e=.01*(r.xmax-r.xmin)){return e*=2,Math.abs(r.xmin+r.xmax)<=e&&Math.abs(r.ymin+r.ymax)<=e&&Math.abs(r.zmin+r.zmax)<=e}var{abs:V0e,min:P0e,max:L0e,sqrt:O0e,tan:_0e,atan:F0e,PI:R0e}=Math,l1=new URLSearchParams(window.location.search),j0e=l1.has("peel-layers")?parseInt(l1.get("peel-layers")):void 0,$z=l1.get("debug3dRender"),J0e=$z&&$z.includes("pick"),Yz=50;var ul=__dcg_shared_module_exports__['e']($());var cc=class extends ul.Class{template(){return ul.createElement(Ce,{tooltip:()=>this.props.controller().s("shared-calculator-label-toast-learn-more")},ul.createElement("a",{"aria-label":()=>this.props.controller().s("shared-calculator-label-toast-learn-more"),class:ul.const("dcg-learn-more-link"),href:this.props.href,target:ul.const("_blank")},ul.createElement("i",{class:ul.const("dcg-icon-question-sign"),"aria-hidden":ul.const("true")})))}};var{If:Kj}=mi.Components,c1=0,tx=Yz/8,S0=class extends mi.Class{init(){this.controller=this.props.controller()}template(){return mi.createElement("div",{class:mi.const("dcg-options-menu-section")},mi.createElement("div",{class:mi.const("dcg-options-menu-section-title dcg-local-display-preferences-title")},()=>this.controller.s("graphing-calculator-label-display-properties"),mi.createElement(cc,{href:this.const("https://help.desmos.com/hc/en-us/articles/20301369699981-3D-Graph-Settings#h_01HCFSXHM8S59ETFXB55Y8CZQ5\u2019"),controller:this.props.controller})),mi.createElement(He,{onChange:this.bindFn(this.toggleInvertedColors),checked:()=>this.controller.getInvertedColors(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"settings",location:"reverse-contrast"}}))},()=>this.controller.s("graphing-calculator-label-settings-reverse-contrast")),mi.createElement(Kj,{predicate:()=>!!Hi("beta3d")},()=>mi.createElement(He,{onChange:()=>{this.controller.dispatch({type:"set-graph-settings",showBox3D:!this.controller.getGraphSettings().showBox3D})},checked:()=>!!this.controller.getGraphSettings().showBox3D},()=>this.controller.raw("Clip to box"))),mi.createElement(He,{class:()=>"dcg-translucent-surfaces-checkbox",onChange:this.bindFn(this.toggleTranslucentSurfaces),checked:()=>this.controller.getTranslucentSurfaces(),ariaLabel:()=>this.controller.s("graphing-calculator-label-settings-translucent-surfaces"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"settings",location:"translucent-surfaces"}}))},()=>this.controller.s("graphing-calculator-label-settings-translucent-surfaces")),mi.createElement("div",{class:mi.const("dcg-perspective-slider")},mi.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-settings-3d-perspective-min"),sticky:this.const(!0),gravity:this.const("s")},mi.createElement("i",{class:mi.const("dcg-icon-3d-cube"),"aria-hidden":mi.const("true")})),mi.createElement(Xu,{min:()=>c1-1,max:()=>tx-1,step:()=>{},value:()=>this.getPerspectiveValue(),ariaLabel:()=>this.controller.s("graphing-calculator-label-settings-3d-perspective-distortion-ratio"),ariaPercent:this.const(!0),onDragUpdate:this.bindFn(this.onDragUpdate),onKeyboardUpdate:this.bindFn(this.onKeyboardUpdate)}),mi.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-settings-3d-perspective-max"),sticky:this.const(!0),gravity:this.const("s")},mi.createElement("i",{class:mi.const("dcg-icon-3d-perspective"),"aria-hidden":mi.const("true")}))))}toggleTranslucentSurfaces(){this.controller.dispatch({type:"set-translucent-surfaces",value:!this.controller.getTranslucentSurfaces()})}toggleInvertedColors(){this.controller.dispatch({type:"set-inverted-colors",value:!this.controller.getInvertedColors()})}getPerspectiveValue(){return this.controller.getPerspectiveDistortion()-1}onKeyboardUpdate(e){let i=this.getPerspectiveValue();switch(e){case"up":i+=.1;break;case"down":i-=.1;break;case"bigup":i+=.3;break;case"bigdown":i-=.3;break;case"min":i=c1-1;break;case"max":i=tx-1;break}i=__dcg_shared_module_exports__['wb'](i+1,c1,tx),this.controller.dispatch({type:"set-perspective-distortion",value:i})}onDragUpdate(e){this.controller.dispatch({type:"set-perspective-distortion",value:e+1})}};function Qz(r){switch(r){case"parallel":case"perpendicular":case"compass":return!0}return!1}function jz(r){var e;switch(r.type){case"tick":return!1;case"tick-ticker":return!1;case"on-evaluator-changes":return!!((e=r.eventUpdates)!=null&&e.userAction);default:return!0}}var nh=class{constructor(e){this.__nextItemId=0;this.__pendingImageUploads={};this.__lastSelectedIdsForPropagation={};this.nextSubscription=0;this.subscriptions={};this._queuedCallbacks=[];this._hasUnsavedChanges=!1;this.shouldScrollSelectedItemIntoViewAfterDispatch=!1;this.lastParsableObjects={};this.isExpressionSearchStrValidForReplace=!1;this.isExpressionReplaceStrValidForReplace=!1;this.expressionSearchCount=0;this.expressionSearchOpen=!1;this.geoUIActive=!1;this.showConstructionsOpen=!1;this.activeTool="selection";this.geometryGettingStartedMessageState="pick-a-tool";this.activeTokens={selected:void 0,hovered:void 0};this.apiMethodCallStackInfo={apiMethodCallDepth:0,withHistoryReplacementDepth:0};this.canShowKeyboardShortcuts=!1;this.toastData={};this.s=Hl(()=>this.graphSettings.config.language);this.raw=(e,t)=>ms(e,t);this.hasTranslation=e=>{let t=this.graphSettings.config.language;return fI(e,t)};this.unpack=e=>{let t=this.graphSettings.config.language;return Wd(e,t)};this.dispatch=e=>{if(e.type==="blur-focus-location"&&this.dispatcher.isDispatching()){this.runAfterDispatch(()=>{this.dispatch(e)});return}if(e.type==="set-focus-location"&&this.dispatcher.isDispatching()){this.runAfterDispatch(()=>{this.dispatch(e)});return}if(e.type==="tick"&&this.dispatcher.isDispatching()){this.runAfterDispatch(()=>{this.dispatch(e)});return}e.type==="tick"||bb("dispatch::"+this.bugsnagContext,{type:e.type}),this.dispatcher.isDispatching()&&bb("dispatch-in-dispatch::"+this.bugsnagContext,{type:e.type}),this.dispatcher.dispatch(e),this.onEventsEmitted&&this.onEventsEmitted(this.enqueuedEvents);let t;for(;t=this._queuedCallbacks.shift();)t()};this._requiresTickNextFrame=!1;this.cachedGeoTokenDepths={};this.cachedGeoTokenInfo={};this.toolPreviewJSONState={};this.updateViews=()=>{for(var e in this.subscriptions)this.subscriptions[e]()};this.bugsnagContext="";this.inPrintMode=!1;this.lastInfiniteScrollFirstDOM=void 0;this.lastInfiniteScrollLastDOM=void 0;this.hasDispatchSinceLastInfiniteScrollUpdate=!1;this.stateStack=new ld;this.isCurrentlyDoingSetState=!1;this.isCurrentlyDoingRestoreState=!1;this.getQuestIsActive=()=>!1;this.showQuestModal=()=>{};this.showContestDropdown=()=>{};this.logEvent=e=>{};var t,i;this.graphSettings=e,(i=(t=this.graphSettings).setController)==null||i.call(t,this),this.listModel=DO(this),this.layoutModel=FA(this.graphSettings.config),this.layoutMeasurements={width:0,height:0},this.settingsViewModel=RA(),this.geometryToolbarModel=CO(),this.imageRetryState={lastAttemptTime:0,attempts:0},this.makeGeoAPI(),this.setupDispatcher(),this.toneAllowed()&&(this.toneController=new yb(this)),this.graphSettings.config.observe("tone",()=>this._updateToneAvailability()),this.graphSettings.config.observe("audio",()=>this._updateToneAvailability())}hasUnsavedChanges(){return this._hasUnsavedChanges}getExpressionSearchOpen(){return this.expressionSearchOpen}getShowConstructionsOpen(){return this.showConstructionsOpen}getNoticeId(){if(!(this.isNarrow()&&(this.noticeId==="3d-art-contest"||this.noticeId==="art-contest"))&&!(Hi("maintenance")&&this.noticeId==="upcoming-maintenance"))return this.noticeId}getGeoToolbarSuppressedByAuthor(){return this.geometryToolbarModel.toolbar==="none"&&!this.shouldShowAuthorFeatures()}shouldShowGeoToolbar(){return this.isGeoUIActive()&&!this.getGeoToolbarSuppressedByAuthor()}isGeoUIActive(){return this.geoUIActive}isGeoToolActive(){return this.activeTool!=="selection"&&this.activeTool!=="box-selection"}getActiveTool(){return this.activeTool}canExpandListForItem(e){let t=this.getItemModel(e);return t?!this.isGeometry()||this.activeTool!=="selection"&&this.activeTool!=="box-selection"||this.isClickableId(e)||"label"in t&&t.label!=="":!1}getGeoModel(){return this.geoModel}getGeoToolbarGroupKeys(){return Ov(this.geometryToolbarModel,this.shouldShowAuthorFeatures()).groups}getGeoToolbarItemsForGroup(e){let{items:t}=Ov(this.geometryToolbarModel,this.shouldShowAuthorFeatures());return t[e]}getAllVisibleGeoToolbarItems(){let e=this.getGeoToolbarGroupKeys(),t=[];for(let i of e){let o=this.getGeoToolbarItemsForGroup(i);o&&t.push(o)}return t}getTickerOpen(){return this.areActionsEnabled()?this.listModel.ticker.open:!1}getTickerVisible(){return this.getTickerOpen()&&!this.getTicker().filteredBySearch}getTickerPlaying(){return this.areActionsEnabled()?this.listModel.ticker.playing:!1}hasVisibleToast(){return!__dcg_shared_module_exports__['Pa'](this.toastData)}hasVisibleAndUndoableToast(){return typeof this.toastData.undoCallback=="function"}toastUndo(){typeof this.toastData.undoCallback=="function"&&(this.toastData.undoCallback(),this.dispatch({type:"toast/close"}))}runAfterDispatch(e){this.dispatcher.isDispatching()?this._queuedCallbacks.push(e):e()}enqueueEvent(e,t){var n;let i=this.apiMethodCallStackInfo.apiMethodCallDepth>0,o=t&&!i&&jz(t)||!!((n=this.enqueuedEvents[e])!=null&&n.isUserInitiated)||e==="userMovedPoint";this.enqueuedEvents[e]={isUserInitiated:o}}pushWithHistoryReplacement(){this.apiMethodCallStackInfo.withHistoryReplacementDepth++}popWithHistoryReplacement(){if(this.apiMethodCallStackInfo.withHistoryReplacementDepth--,this.apiMethodCallStackInfo.withHistoryReplacementDepth<0)throw new Error("Programming Error: withHistoryReplacementDepth < 0")}pushAPIMethodCall(){this.apiMethodCallStackInfo.apiMethodCallDepth++}popAPIMethodCall(){this.apiMethodCallStackInfo.apiMethodCallDepth--}getGrapherDimensions(){let e=this.getGrapher();if(!e)return{width:0,height:0};let{width:t,height:i}=e.getProjection().screen;return{width:t,height:i}}setRandomSeed(e){this.graphSettings.setProperty("randomSeed",e)}getRandomSeed(){return this.graphSettings.randomSeed}shouldDispatchTickNextFrame(){return!!this._requiresTickNextFrame}markTickRequiredNextFrame(){this._requiresTickNextFrame=!0}handleTick(e){this.areActionsEnabled()&&tO(this.listModel.ticker,{currentFrameTime:e,previousFrameTime:this.lastFrameTime})?this.dispatch({type:"tick-ticker",time:e}):this.shouldDispatchTickNextFrame()&&this.dispatch({type:"tick",time:e}),this.getGeoModel().isFading()&&this.requestRedrawGraph(),this.lastFrameTime=e}setupDispatcher(){this.dispatcher=new Cp,this.dispatcher.register(e=>{var l;let t=this.getFirstSelectedItem(),i=this.getFocusLocation();this.shouldScrollSelectedItemIntoViewAfterDispatch=!1;let o;this.enqueuedEvents={change:void 0,graphReset:void 0,clearUnsavedChanges:void 0,openDrawer:void 0,showHotkeysModal:void 0,userMovedPoint:void 0,userClickedObject:void 0,userEditedLabel:void 0},e.type==="tick"&&(this._requiresTickNextFrame=!1),this.isCurrentlyDoingSetState=!1,this.isCurrentlyDoingRestoreState=!1,this.handleDispatchedAction(e),this.constrainMultiSelect(),this.updateTheComputedWorld();var n=this.getImageToRetry();(this.getPlayingSliders().length>0||this.isDragDropActive()||n)&&this.markTickRequiredNextFrame(),n&&this.retryLoadingFailedImage(n),this.updateGeometryGettingStartedMessageState(),e.type!=="undo"&&e.type!=="redo"&&!this.isDragDropActive()&&this.commitUndoRedoSynchronously(e),this.requestParseForAllItems(),this.isCurrentlyDoingSetState=!1,this.isCurrentlyDoingRestoreState=!1,this.enqueuedEvents.change&&((l=this.getGrapher2d())==null||l.markLabelsDirty()),this.enqueuedEvents.clearUnsavedChanges?this._hasUnsavedChanges=!1:this.enqueuedEvents.change&&(this._hasUnsavedChanges=!0);let a=this.getFirstSelectedItem();a?(!t||t.guid!==a.guid)&&(this.shouldScrollSelectedItemIntoViewAfterDispatch=!0):this.shouldScrollSelectedItemIntoViewAfterDispatch=!1;let s=this.getFocusLocation();s&&!__dcg_shared_module_exports__['Oa'](s,i)&&this.getFocusedItem()==a&&(this.shouldScrollSelectedItemIntoViewAfterDispatch=!0),i&&t&&t.type==="table"&&i.type==="table"&&(!s||s.type!=="table"||i.id!==s.id)&&t.isExpanded&&(jh(t,!1),s||(o=t)),s&&a&&a.type==="table"&&KP(a),(e.type==="adjust-slider-by-dragging-thumb"||e.type==="adjust-slider-by-keyboard")&&(o=this.getItemModel(e.id)),this.updateRenderShellsBeforePaint(),this.updateViews(),o?this.scrollItemIntoView(o):this.shouldScrollSelectedItemIntoViewAfterDispatch&&this.scrollSelectedItemIntoView(),this.updateDragDrop(),this.updateRenderShellsAfterDispatch()})}updateGeometryGettingStartedMessageState(){if(!this.isGeometry())return;let e=this.geometryGettingStartedMessageState,t=this.getActiveTool(),i=t==="selection"||t==="box-selection"||t==="expression-edit";if(e==="hidden")return;if(this.isGraphSettingsOpen()||this.getGraphSettings().showGrid||this.getGraphSettings().showYAxis){this.geometryGettingStartedMessageState="hidden";return}let o=this.getItemModelByIndex(1);if(this.getItemCount()>2||!o||o.type!=="expression"||o.latex!==""||this.geoModel.getNonObjectsState().ui.currentTool.inputIndex>0){this.geometryGettingStartedMessageState="hidden";return}i||(this.geometryGettingStartedMessageState="construct")}getGeometryGettingStartedMessageState(){return this.geometryGettingStartedMessageState}handleDispatchedAction(e){var d,u,h,g,b,C,S,k,I,M,E,A,V,G,P,O;switch(e.type){case"render":break;case"undo":this.isGeoToolActive()&&this.cancelGeoToolplay(),this.undo();break;case"redo":this.isGeoToolActive()&&this.cancelGeoToolplay(),this.redo();break;case"clear-undoredo-history":this.clearUndoRedoHistory();break;case"on-special-key-pressed":e.key==="Enter"?PA(this):e.key==="Up"?MA(this):e.key==="Down"?AA(this):e.key==="Backspace"?GA(this):e.key==="Delete"&&VA(this);break;case"select-previous-expression":zv(this.listModel);break;case"select-next-expression":Kv(this.listModel);break;case"toggle-label-for-all-selected-points":this.toggleLabelForAllSelectedObjects();break;case"update-all-selected-items":{let v=e.update;if(e.update.prop==="folderId"){let D;if(e.update.createFolder){D=this.generateId();let X=this.createItemModel({type:"folder",id:D,title:e.update.value}),fe=this.getItemCount()-1,be=ag(this.listModel,fe);be&&be.type==="expression"&&be.latex===""?this._toplevelReplaceItemAt(this.getItemCount()-1,X,!1):ds(this.listModel,X)}else D=e.update.value;let _=this.getItemModel(D);if(!_||_.type!=="folder")return;let te={},Q={};this.getAllSelectedItems().forEach(X=>{var fe;if(!(X.type==="folder"||X.folderId===D)&&!this.isItemReadonly(X.id)&&(te[X.id]=X,X.type==="expression")){let be=(fe=X.formula.geometry)==null?void 0:fe.call;if(be&&be.symbol==="apply"){let Me=be.parents[0]&&be.parents[0][0];Me&&(Q[Me]=!0)}}});for(let X in Q){let fe=pu(this.listModel,X);fe.length===1&&fe[0].folderId!==D&&(te[fe[0].id]=fe[0])}let De={},se=[];for(let X in te){let fe=te[X];se.push(fe)}se.forEach(X=>{if(X.type==="expression"){let fe=OT(X);fe&&(De[X.id]=fe)}}),se.sort((X,fe)=>X.index-fe.index);let re=this.findLastSubscriptForLetters();se.forEach(X=>{if(X.type==="expression"){var fe=De[X.id];if(fe){let be=this.getAutonameLatexForExpression(X,re);_d(this.listModel,fe,be)}}}),se.forEach(X=>{hg(this.listModel,X.id)});let j=_.index+this.getNumberOfItemsInFolder(D)+1;se.forEach(X=>{_a(this.listModel,X,j),j+=1}),se.forEach(X=>{Po(X,D)})}else if(v.prop==="visible")this.getAllSelectedItems().forEach(D=>{this.isItemReadonly(D.id)||(this._setItemHidden(D.id,!v.value),v.value===!1&&D.type==="expression"&&fu(D,!1))});else if(e.update.prop==="color"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&wC(_,D)})}else if(e.update.prop==="colorLatex"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&ub(_,D)})}else if(e.update.prop==="showLabel"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&fu(_,D)})}else if(e.update.prop==="label"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&zc(_,D)})}else if(e.update.prop==="dragMode"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&bu(_,D)})}else if(e.update.prop==="lineWidth"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&yg(_,D)})}else if(e.update.prop==="lineOpacity"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&bg(_,D)})}else if(e.update.prop==="lineStyle"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&vC(_,D)})}else if(e.update.prop==="strictIntersection"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"&&Z2(_,D)})}else if(e.update.prop==="disableGraphInteractions"){let D=e.update.value;this.getAllSelectedItems().forEach(_=>{_.type==="expression"?iI(_,D):_.type==="image"&&nT(_,D)})}}break;case"delete-all-selected-items":{let{deletedItems:v,readonlyItemsNotDeleted:D}=this.removeListOfItems(Object.keys(this.getSelectedExpressionIds()));this.garbageCollectGeo(v,{}),this.ensureAtLeastOneVisibleItem(),v.length>0&&Ye(this.s("graphing-calculator-narration-items-deleted",{count:__dcg_shared_module_exports__['jb'](v.length)})),D>0&&Ye(this.s("graphing-calculator-narration-locked-items-not-deleted",{count:__dcg_shared_module_exports__['jb'](D)})),ie();break}case"upward-delete-selected-expression":LA(this,{moveSelection:!1});break;case"downward-delete-selected-expression":OA(this,{moveSelection:!1});break;case"table-show-more-rows":{let v=this.getItemModel(e.id);if(!v||v.type!=="table")return;let D=au(v);if(!D)return;lr(this.listModel,v),jh(v,!0),ur(this,{type:"table",id:v.id,location:{row:D.min,column:0}})}break;case"navigate-table-by-key":QB(this,e.id,e.key);break;case"delete-item-and-animate-out":this._deleteItemAndAnimateOut(e.id,e.setFocusAfterDelete);break;case"finish-deleting-item-after-animation":this._finishDeletingItemAfterAnimation(e.id,e.setFocusAfterDelete);break;case"expression-zoom-fit":this._expressionZoomFit(e.id,e.focusAfterTap);break;case"set-expression-properties-from-api":this._setExpressionPropertiesFromAPI(e.id,e.properties);break;case"add-item-to-end-from-api":this._addItemToEndFromAPI(this.createItemModel(e.state));break;case"duplicate-expression":{let v=this.getItemModel(e.id);if(!v||v.type==="folder")return;this.copyExpressionToIndex(v,v.index+1)}break;case"duplicate-folder":{let{id:v}=e,D=this.getItemModel(v);if(!D||D.type!=="folder")return;let _=this.createItemModel({...ov(D,{stripDefaults:!1}),id:this.generateId()}),te=this.getNumberOfItemsInFolder(v),Q=te+1;this._toplevelInsertItemAt(D.index+Q,_,!1,void 0);let De=D.index+1,se=De+te;for(let re=De;re<=se;re++){let j=ag(this.listModel,re);if(!j||j.type==="folder")return;this.copyExpressionToIndex(j,re+Q,_.id)}}break;case"insert-item-at-index":{let v=this.createItemModel(e.state);this._toplevelInsertItemAt(e.index,v,e.focus,e.folderId)}break;case"new-expression-at-end":{this.setGeoTool("selection");let v=this.createItemModel({type:"expression",id:this.generateId(),color:this.getNextColor()});this.setEditListMode(!1),ds(this.listModel,v),Yi(this,v.id)}break;case"new-expression":{let v=this.createItemModel({type:"expression",id:this.generateId(),color:this.getNextColor()});this.setEditListMode(!1),this._toplevelNewItemAtSelection(v,{shouldFocus:!0}),this._closeAddExpression()}break;case"new-text":{let v=this.createItemModel({id:this.generateId(),type:"text"});this._toplevelNewItemAtSelection(v,{shouldFocus:!0}),this._closeAddExpression()}break;case"new-folder":{let v=this.createItemModel({type:"folder",id:this.generateId()});this._toplevelNewItemAtSelection(v,{shouldFocus:!0}),this._closeAddExpression()}break;case"new-images":this._uploadImagesAndWaitForThemToLoad({files:e.files}),this._closeAddExpression();break;case"change-image":this._uploadImagesAndWaitForThemToLoad({files:e.files,id:e.id});break;case"new-table":{let v=this._createTableItem();this._toplevelNewItemAtSelection(v,{shouldFocus:!0}),this._closeAddExpression()}break;case"paste-table":this._pasteTable(e.data);break;case"convert-or-create-table":this._convertOrCreateTable(e.index);break;case"insert-several-expressions":this.shouldScrollSelectedItemIntoViewAfterDispatch=!0,this._insertSeveralExpressions(e.expressions);break;case"append-number-list":this._appendNumberList(e.latex);break;case"remove-item-by-id":hg(this.listModel,e.id);break;case"replace-item-at-index":{let v=this.createItemModel(e.state);this._toplevelReplaceItemAt(e.index,v,e.focus)}break;case"create-sliders-for-item":this.createSlidersForItem(e.id,e.variables);break;case"create-sliders-for-ticker":this.createSlidersForTicker(e.variables);break;case"convert-image-to-draggable":this.convertImageToDraggable(e.id);break;case"start-dragdrop":{let v=this.getItemModel(e.dragTarget.calcId);if(!v)return;let D={x:0,y:0},_=this.getItemRootNodeById(v.id);if(_){let De=_.getBoundingClientRect();D.y=e.grabPt.y-De.top,D.x=e.grabPt.x-De.left}this.isItemSelected(v.id)?lr(this.listModel,v):lr(this.listModel,void 0);let te=!1,Q=1;v.type==="folder"&&(Q+=this.getNumberOfItemsInFolder(v.id),v.collapsed||(te=!0,Hh(v,!0))),nb(this.listModel,{firstItemId:v.id,numberOfItems:Q,expandFolder:te,grabOffset:D,mousePt:e.mousePt,dragTarget:e.dragTarget,renderType:e.dragTarget.type,itemTop:0,itemLeft:0}),this.dragdrop_expressions.startDragging(e.mousePt)}break;case"update-dragdrop":{let v=this.listModel.dragState;if(!v)return;nb(this.listModel,{...v,mousePt:e.mousePt})}break;case"stop-dragdrop":{let v=this.listModel.dragState;if(!v)return;let D=this.getItemModel(v.firstItemId);if(!D)return;D.type==="folder"&&v.expandFolder&&Hh(D,!1),nb(this.listModel,void 0),this.ensureAtLeastOneVisibleItem()}break;case"set-selected-id":{let v=this.getItemModel(e.id);lr(this.listModel,v)}break;case"set-all-selected-ids":wT(this.listModel,e.ids);break;case"toggle-selected-with-multi-select":xT(this.listModel,e.id);break;case"set-selected-index":{let v=this.getItemModelByIndex(e.index);lr(this.listModel,v)}break;case"set-none-selected":lr(this.listModel,void 0);break;case"set-focus-location":{let v=e.location?e.location.type:"";if(v==="expression"&&this.setGeoTool("selection"),v==="table"&&(this.layoutModel={...this.layoutModel,inEditListMode:!1}),v==="graph-paper"){this.setGraphPaperFocus({isFocused:!0});break}ur(this,e.location)}break;case"focus-first-expression":{this.focusFirstExpression();break}case"move-focus-to-item":Yi(this,e.id,e.where);break;case"blur-focus-location":this.isFocusLocationFocused(e.location)&&ur(this,void 0),((d=e.location)==null?void 0:d.type)==="graph-paper"&&this.setGraphPaperFocus({isFocused:!1});break;case"set-folder-collapsed":{let v=this.getItemModel(e.id);if(!v||v.type!=="folder")return;Hh(v,e.isCollapsed)}break;case"set-all-folders-collapsed":o2(this.listModel,e.isCollapsed);break;case"set-item-secret":{let v=this.getItemModel(e.id);if(!v)return;aC(v,e.isSecret)}break;case"set-item-readonly":{let{id:v,readonly:D}=e,_=this.getItemModel(v);if(!_)return;if(gb(_,D),_.type==="folder")for(let te of AO(this.listModel,v))gb(te,D)}break;case"set-item-disable-graph-interactions":{let{id:v,disableGraphInteractions:D}=e,_=this.getItemModel(v);if(!_)return;switch(_.type){case"expression":iI(_,D);break;case"image":nT(_,D);break}break}case"set-tablecolumn-disable-graph-interactions":{let{tableId:v,columnId:D,disableGraphInteractions:_}=e,te=this.getItemModel(v);if(!te||te.type!=="table")return;let Q=ro(te,D);if(!Q)return;xL(Q,_);break}case"set-tablecolumn-color":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;uL(v,e.columnId,e.color)}break;case"set-tablecolumn-colorlatex":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;uv(v,e.columnId,e.colorLatex)}break;case"dismiss-notice":this.noticeId=void 0,e.focusFirstExpression&&this.focusFirstExpression();break;case"set-show-cdf":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;m_(v,e.showCDF)}break;case"set-cdf-min":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Xv(v,e.latex)}break;case"set-cdf-max":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Qv(v,e.latex)}break;case"toggle-item-hidden":this._toggleItemHidden(e.id);break;case"toggle-tablecolumn-hidden":this._toggleTableColumnHidden(e.tableId,e.columnId);break;case"toggle-item-settings-menu":this.isItemSettingsMenuOpen(e.menu.guid)?this.closeItemSettingsMenu():(this.listModel.openItemMenu=e.menu,e.menu.focusFirstOption&&(e.menu.type==="geo-tool-dropdown"?ur(this,{type:"geo-basic-tool-menu-item",tool:e.menu.tools[0]}):e.menu.type==="multi-select-more"||e.menu.type==="multi-select-transformations"?ur(this,{type:"generic-menu",where:"start"}):ur(this,{type:"expression-menu",id:e.menu.model.id,location:"start"})));break;case"close-item-settings-menu":this.closeItemSettingsMenu();break;case"toggle-fraction-evaluation":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;let D=zd(v);W2(v,!D)}break;case"set-item-label":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;zc(v,e.label),this.enqueueEvent("userEditedLabel",e)}break;case"set-item-showlabel":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;fu(v,e.showLabel),!e.showLabel&&!Nd(v)&&(Db(v,!1),CC(v,"NONE"))}break;case"set-item-color":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;wC(v,e.color)}break;case"set-item-description":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression"&&v.type!=="image")return;v.type==="expression"?$2(v,e.description):v.type==="image"&&LL(v,e.description)}break;case"set-item-fill":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;NT(v,e.fill),this._setItemHidden(v.id,Ig(v))}break;case"set-image-opacity":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;FL(v,e.opacity),this._setItemHidden(v.id,!1)}break;case"set-image-in-foreground":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;rT(v,e.foreground)}break;case"image-upload-error":this.__pendingImageUploads[e.token]&&(delete this.__pendingImageUploads[e.token],this._showToast({message:this.s("graphing-calculator-text-toast-image-upload-failed")}));break;case"image-upload-success":{if(this.__pendingImageUploads[e.token])if(delete this.__pendingImageUploads[e.token],e.id){let v=this.getItemModel(e.id);v&&v.type==="image"&&RL(v,e.url)}else{let v=this.createItemModel({type:"image",id:this.generateId(),width:e.width,height:e.height,image_url:e.url,name:e.name});this._toplevelNewItemAtSelection(v,{shouldFocus:!1})}this.isUploadingImages()||(this.toastData={})}break;case"image-load-success":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;Ev(v,"loaded"),this.imageRetryState={lastAttemptTime:0,attempts:0}}break;case"image-load-error":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;Ev(v,"failed")}break;case"image-retry-loading":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;oT(v)}break;case"set-item-dragmode":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;bu(v,e.dragMode)}break;case"set-tablecolumn-dragmode":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;pL(v,e.columnId,e.dragMode),e.dragMode!=="NONE"&&this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-points":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;Xk(v,e.columnId,e.bool),this._setTableColumnHidden(e.tableId,e.columnId,hv(v,e.columnId))}break;case"set-tablecolumn-lines":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;lL(v,e.columnId,e.bool),this._setTableColumnHidden(e.tableId,e.columnId,hv(v,e.columnId))}break;case"set-tablecolumn-linestyle":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;cL(v,e.columnId,e.lineStyle),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-linewidth":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;lv(v,e.columnId,e.lineWidth),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-lineopacity":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;cv(v,e.columnId,e.lineOpacity),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-pointsize":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;dv(v,e.columnId,e.pointSize),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-pointopacity":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;pv(v,e.columnId,e.pointOpacity),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-tablecolumn-pointstyle":{let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;sL(v,e.columnId,e.pointStyle),this._setTableColumnHidden(e.tableId,e.columnId,!1)}break;case"set-item-points":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;BT(v,e.points),this._setItemHidden(e.id,Ig(v)),!e.points&&v.dragMode!=="NONE"&&bu(v,"NONE")}break;case"set-item-pointstyle":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;zT(v,e.pointStyle),this._setItemHidden(e.id,!1)}break;case"set-item-lines":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;KT(v,e.lines),this._setItemHidden(e.id,Ig(v))}break;case"set-item-extend-to-3D":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;j2(v,e.extendTo3D),this._setItemHidden(e.id,!1);let D=(u=this.grapher3d)==null?void 0:u.transition;D&&e.extendTo3D&&(D.objectIdExtendingTo3D&&((h=this.grapher3d)==null||h.webglLayer.setZboundsOnSurfaces(D.objectIdExtendingTo3D,-1/0,1/0)),D.objectIdExtendingTo3D=v.id,D.startTime=-1,D.duration=150)}break;case"set-item-linestyle":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;vC(v,e.lineStyle),this._setItemHidden(e.id,!1)}break;case"set-item-arrow-mode":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;J2(v,e.value),this._setItemHidden(e.id,!1);break}case"set-item-label-dropdown-open":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Y2(v,e.open)}break;case"set-item-fillopacity":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;cb(v,e.fillOpacity),this._setItemHidden(e.id,!1)}break;case"set-item-lineopacity":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;bg(v,e.lineOpacity),this._setItemHidden(e.id,!1)}break;case"set-item-pointopacity":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;db(v,e.pointOpacity),v.showLabel||this._setItemHidden(e.id,!1)}break;case"set-item-pointsize":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;pb(v,e.pointSize),this._setItemHidden(e.id,!1)}break;case"set-item-linewidth":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;yg(v,e.lineWidth),this._setItemHidden(e.id,!1)}break;case"set-item-resolution":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Yv(v,e.resolution),this._setItemHidden(e.id,!1)}break;case"set-item-colorlatex":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;ub(v,e.colorLatex)}break;case"set-item-labelSize":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;hb(v,e.labelSize)}break;case"set-item-labelangle":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;jv(v,e.labelAngle)}break;case"set-item-label-orientation":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;UT(v,e.labelOrientation)}break;case"set-suppress-text-outline":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;X2(v,e.suppressTextOutline)}break;case"set-item-interactive-label":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Db(v,e.interactiveLabel),e.interactiveLabel&&CC(v,"NONE")}break;case"set-item-editable-label-mode":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;v.editableLabelMode!=="NONE"&&e.editableLabelMode!=="NONE"&&v.editableLabelMode!==e.editableLabelMode&&zc(v,""),CC(v,e.editableLabelMode),e.editableLabelMode!=="NONE"&&Db(v,!1)}break;case"plot-residuals":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;var t=v.formula.regression;if(!t)return;var i=t.residualSuggestionId;if(!i)return;var o=this.getItemModel(i);if(!o)return;sv(o,{latex:__dcg_shared_module_exports__['bb'](t.residualVariable),columnIndex:o.columnModels.length-1})}break;case"toggle-logmode":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;var n=v.isLogModeRegression;RT(v,!n)}break;case"set-item-latex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;let D=e.latex,_=v.latex;if(this.garbageCollectGeo([],{[v.id]:{prevLatex:_,nextLatex:D}}),(D==='"'||D==="note")&&this.areNotesEnabled()){let te=this.createItemModel({id:this.generateId(),type:"text"});this._toplevelReplaceItemAt(v.index,te,!0)}else if(D==="")v_(v);else if(D==="ticker"&&this.canAddTicker())this.listModel.ticker.open=!0,this.focusLocation={type:"ticker",location:"handler"},this._removeExpressionSynchronously(v);else if(D==="folder"&&this.areFoldersEnabled()){let te=this.createItemModel({id:this.generateId(),type:"folder"});Yn(v)?(this._toplevelNewItemAtSelection(te,{shouldFocus:!0}),Qn(v,"")):this._toplevelReplaceItemAt(v.index,te,!0)}else if(D==="table"){let te=this._createTableItem();this._toplevelReplaceItemAt(v.index,te,!0)}else!this.isGeometry()&&(D==="betchacant"||D==="pride"||D==="teapot"&&this.is3dProduct())?this.runAfterDispatch(()=>{this.triggerEasterEgg&&this.triggerEasterEgg(D)}):Qn(v,D)}break;case"set-visualization-prop":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;V2(v,e.prop,e.value)}break;case"set-clickableinfo-prop":{let v=this.getItemModel(e.id);if(!v)return;v.type==="expression"?P2(v,e.prop,e.value):v.type==="image"&&Dv(v,e.prop,e.value)}break;case"set-clickableinfo-rule-latex":{let v=this.getItemModel(e.id);if(!v)return;v.type==="expression"?qv(v,e.latex):v.type==="image"&&HL(v,e.latex)}break;case"set-folder-title":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="folder")return;OP(v,e.title)}break;case"set-image-mq-attribute":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;fa(v,e.attribute,e.latex)}break;case"set-image-name":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;OL(v,e.name)}break;case"set-image-draggable":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;let D=Xh(v);if(!D)return;tT(v,e.draggable),e.draggable&&(Zr(D)==="NONE"||D.dragMode==="AUTO")&&bu(D,"XY")}break;case"set-graph-settings":{for(let v in e)v!=="type"&&(v==="xAxisScale"?this.switchAxisScale("xAxisScale",e.xAxisScale):v==="yAxisScale"?this.switchAxisScale("yAxisScale",e.yAxisScale):this.graphSettings.setProperty(v,e[v]));this.grapher3d&&this.isThreeDMode()&&(this.grapher2d.redrawAllLayersSynchronously(),"backgroundColor3d"in e&&this.grapher3d.webglLayer.setBackgroundColor(e.backgroundColor3d),this.apply3dProps(e))}break;case"set-polar-mode":if(this.graphSettings.setProperty("polarMode",e.polarMode),e.polarMode){let v=this.graphSettings.xAxisScale==="logarithmic"||this.graphSettings.yAxisScale==="logarithmic",D=this.getGrapher2d();v&&D&&(this.graphSettings.setProperty("xAxisScale","linear"),this.graphSettings.setProperty("yAxisScale","linear"),D.viewportController.setViewport(D.getDefaultViewport()),D.getProjection().updateScalePairs())}break;case"set-domain-minlatex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Jn(v,e.latex,e.variable)}break;case"set-domain-maxlatex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Xn(v,e.latex,e.variable)}break;case"set-note-text":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="text")return;Qk(v,e.text)}break;case"set-edit-list-mode":{let v=pg(this.listModel);if(this.setEditListMode(e.isEditListMode),e.focusExpressionList){if(v===void 0&&(v=this.getItemModelByIndex(0)),!v)return;Yi(this,v.id,v.type==="table"&&e.isEditListMode?"container":"start")}else lr(this.listModel,void 0),ur(this,void 0)}break;case"set-ghost-mode":this.getGraphSettings().config.setProperty("ghostMode",e.value);break;case"set-projector-mode":this.getGraphSettings().config.setProperty("projectorMode",e.value),this.isThreeDMode()&&this.grapher2d.redrawAllLayersSynchronously();break;case"set-inverted-colors":this.getGraphSettings().config.setProperty("invertedColors",e.value);break;case"set-tablecell-latex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.tableId);if(!v||v.type!=="table")return;Bc(v,e.cell,e.latex)}break;case"set-state":this.externalSetState(e.state,e.opts);break;case"set-blank":this.externalSetState(this.getBlankState({degreeMode:e.degreeMode}),e.opts);break;case"clear-unsaved-changes":this.enqueueEvent("clearUnsavedChanges",e);break;case"reset-graph":{let v=this.getState();this.externalSetState(this.graphSettings.defaultState,{allowUndo:!0}),this.graphSettings.config.expressions?this.focusFirstExpression():this.setGraphPaperFocus({isFocused:!0}),this._showToast({message:this.s("graphing-calculator-text-toast-graph-reset"),undoCallback:()=>this.dispatch({type:"set-state",state:v,opts:{allowUndo:!0}})}),this.enqueueEvent("graphReset",e)}break;case"clear-graph":{if(this.triggerClearGraph){this.runAfterDispatch(()=>this.triggerClearGraph());return}let v=this.getState();this.externalSetState(this.getBlankState(),{allowUndo:!0});let D=this.getItemModelByIndex(0);D&&Yi(this,D.id,"end"),this._showToast({message:this.s("graphing-calculator-text-toast-graph-cleared"),undoCallback:()=>this.dispatch({type:"set-state",state:v,opts:{allowUndo:!0}})}),this.enqueueEvent("graphReset",e)}break;case"on-evaluator-changes":{if(this.onEvaluatorChangesSpy&&this.onEvaluatorChangesSpy(e.changes,e.timingData,e.graphData,e.eventUpdates),e2(this.listModel,e.changes),(g=this.toneController)==null||g.recomputeAudio(),!e.graphData)break;for(let v in e.graphData.addedGraphs){let D=e.graphData.addedGraphs[v];if(__dcg_shared_module_exports__['Vb'](D)){let _=D.filter(Q=>!__dcg_shared_module_exports__['pc'](Q.graphMode)),te=D.filter(Q=>__dcg_shared_module_exports__['pc'](Q.graphMode));(b=this.grapher2d)==null||b.updateSketch(v,_),(C=this.grapher3d)==null||C.updateSketch(v,te),ZO(this.listModel,v,D)}}for(let v in e.graphData.removedGraphs)(S=this.grapher2d)==null||S.removeGraphSketch(v),(k=this.grapher3d)==null||k.removeGraphSketch(v);if(this.isThreeDMode())(I=this.grapher2d)==null||I.redrawAllLayersSynchronously();else{for(let v in e.graphData.intersections){let D=e.graphData.intersections[v];__dcg_shared_module_exports__['Vb'](D)&&((M=this.grapher2d)==null||M.updateIntersections(v,D))}(E=this.get2dPOIController())==null||E.handleTraceUpdate(),(A=this.getAudioGraph())==null||A.handleEvaluatorChange(e.graphData)}if(e.eventUpdates){let v=!1;for(let D in e.eventUpdates.updates)if(this.doesIdentifierBlockActionUpdate(D)){v=!0;break}if(!v){for(let D in e.eventUpdates.updates)this.updateLatexForIdentifier(D,e.eventUpdates.updates[D]);e.eventUpdates.objectClicked&&this.enqueueEvent("userClickedObject",e),this.onActionUpdatesAppliedSpy&&this.onActionUpdatesAppliedSpy(e.eventUpdates)}}}break;case"add-helper-expression":KO(this.listModel,e.state);break;case"tick":this._tickSliders(e.time);break;case"tick-ticker":this.tickTicker(e.time);break;case"adjust-slider-by-keyboard":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;D2(v,e.adjustment)}break;case"adjust-slider-by-dragging-thumb":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;k2(v,e.target)}break;case"set-slider-minlatex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;mg(v,e.latex)}break;case"set-slider-maxlatex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;fg(v,e.latex)}break;case"set-slider-steplatex":{this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;lb(v,e.latex)}break;case"set-slider-dragging":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;Eb(v,e.dragging)}break;case"play-slider-from-min":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;let D=Ra(v);if(isNaN(D))return;let _=Bd(v.latex,D);xa(v,!1),Qn(v,_),xa(v,!0)}break;case"set-slider-isplaying":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;xa(v,e.isPlaying)}break;case"set-slider-loopmode":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;q2(v,e.loopMode)}break;case"set-slider-animationperiod":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression")return;H2(v,e.animationPeriod)}break;case"show-expressions-list":this._showExpressions(e.focusHideIcon);break;case"hide-expressions-list":this._hideExpressions(e.focusShowIcon);break;case"open-drawer":this.enqueueEvent("openDrawer",e);break;case"re-randomize":this.setRandomSeed(tc());break;case"resize-exp-list":this._setExpListWidth(e.expListWidth);break;case"toast/show":this._showToast(e.toast);break;case"toast/close":this.closeToast();break;case"toast/undo":let R=this.toastData.undoCallback;R&&this.runAfterDispatch(R),this.toastData={};break;case"toast/learn-more":let q=this.toastData.learnMoreCallback;q&&this.runAfterDispatch(q),this.toastData={};break;case"start-moving-points":VB(this,this.listModel,e.points);break;case"stop-moving-points":LB(this,e.points);break;case"on-move-points":PB(this,e.points,e.previousScreenPts,e.screenPts,e.projection,e.transform,e.keyboardDirection)&&this.enqueueEvent("userMovedPoint",e);break;case"commit-user-requested-viewport":this._commitUserRequestedViewport(e.viewport);break;case"commit-user-requested-rotation":this.graphSettings.setProperty("worldRotation3D",e.worldRotation3D),this.graphSettings.setProperty("axis3D",e.axis3D),this.graphSettings.setProperty("speed3D",e.speed3D);break;case"toggle-lock-viewport":this.graphSettings.setProperty("userLockedViewport",!this.graphSettings.userLockedViewport);break;case"set-axis-limit-latex":this._setAxisLimitLatex(e.limit,e.latex),e.updateYZAlso&&(this._setAxisLimitLatex(e.limit==="xmin"?"ymin":"ymax",e.latex),this._setAxisLimitLatex(e.limit==="xmin"?"zmin":"zmax",e.latex)),this.lastDirectlyEditedViewport=(V=this.getGrapher())==null?void 0:V.getCurrentViewport();break;case"toggle-graph-settings":this.layoutModel={...this.layoutModel,graphSettingsOpen:!this.layoutModel.graphSettingsOpen},lr(this.listModel,void 0),e.focusOnOpen&&(this.layoutModel.graphSettingsOpen?this.is3dProduct()?ur(this,{type:"settings",location:"reverse-contrast"}):this.getGraphSettings().config.projectorMode?ur(this,{type:"settings",location:"large-size"}):ur(this,{type:"settings",location:"default-size"}):ur(this,{type:"settings",location:"icon"}));break;case"close-graph-settings":this.layoutModel={...this.layoutModel,graphSettingsOpen:!1},e.focusIconAfterClose&&ur(this,{type:"settings",location:"icon"});break;case"toggle-add-expression":this.layoutModel={...this.layoutModel,addExpressionOpen:!this.layoutModel.addExpressionOpen},e.focusOnOpen&&this.layoutModel.addExpressionOpen&&ur(this,{type:"add-expression-btn"});break;case"close-add-expression":this._closeAddExpression(),e.focusIconAfterClose&&ur(this,{type:"add-item-btn"});break;case"ui/container-resized":this.layoutMeasurements={width:e.size.width,height:e.size.height},this.shouldScrollSelectedItemIntoViewAfterDispatch=!0;break;case"enter-printmode":this.inPrintMode=!0;break;case"exit-printmode":this.inPrintMode=!1;break;case"expression-size-exceeded":this._showToast({message:this.s("graphing-calculator-text-toast-expression-size-limit")});break;case"keypad/set-layout":this.layoutModel={...this.layoutModel,keypadLayout:e.layout,keypadFunctionsOpen:!1};break;case"keypad/set-minimized":this.layoutModel={...this.layoutModel,keypadMinimized:e.minimized,keypadLayout:"mainNumbers"},this.shouldScrollSelectedItemIntoViewAfterDispatch=!0,this.needsFakeKeypad()||jB(this),ie(e.minimized?this.s("graphing-calculator-narration-keypad-hidden"):this.s("graphing-calculator-narration-keypad-visible"));break;case"keypad/type-text":this.layoutModel={...this.layoutModel,keypadFunctionsOpen:!1},this.runAfterDispatch(()=>{let v=ve.getFocusedMathquill();v&&ve.canAcceptText(v,this.getCapExpressionSize(),e.text)&&(v.typedText(e.text),ve.simulateUserChangedLatex(v))});break;case"keypad/press-key":this.layoutModel={...this.layoutModel,keypadFunctionsOpen:!1},this.runAfterDispatch(()=>{let v=ve.getFocusedMathquill();v&&ve.simulateKeypress(v,e.key)});break;case"keypad/audio-trace":this.handleAudioTraceCommand(e.command);break;case"set-audio-trace-speed":this.setAudioTraceSpeed(e.speed);break;case"keypad/custom-command":this.layoutModel={...this.layoutModel,keypadFunctionsOpen:!1},this.runAfterDispatch(()=>{let v=ve.getFocusedMathquill();v&&(Gm(v,e.command,{capExpressionSize:this.getCapExpressionSize()}),ve.simulateUserChangedLatex(v))});break;case"keypad/shift":this.layoutModel={...this.layoutModel,keypadLayout:ZB(this.getKeypadLayout()),keypadFunctionsOpen:!1};break;case"keypad/123":this.layoutModel={...this.layoutModel,keypadLayout:"mainNumbers",keypadFunctionsOpen:!1};break;case"keypad/abc":this.isQwertyKeyboardEnabled()?this.layoutModel={...this.layoutModel,keypadLayout:"letters",keypadFunctionsOpen:!1}:this.layoutModel={...this.layoutModel,keypadLayout:"noQwertyLetters",keypadFunctionsOpen:!1};break;case"keypad/audio":this.layoutModel={...this.layoutModel,keypadMinimized:!1,keypadLayout:"audio",keypadFunctionsOpen:!1};break;case"keypad/functions":this.layoutModel={...this.layoutModel,keypadFunctionsOpen:!this.isKeypadFunctionsPopoverOpen()};break;case"grapher/drag-start":break;case"grapher/drag-move":break;case"grapher/drag-end":break;case"open-on-web":this._openOnWeb();break;case"file-is-dragged-over":this.listModel.openItemMenu=void 0,this.layoutModel={...this.layoutModel,isFileDraggedOver:!0};break;case"file-is-not-dragged-over":this.layoutModel={...this.layoutModel,isFileDraggedOver:!1};break;case"zoom":(G=this.getGrapher())==null||G.viewportController.zoom(e.direction);break;case"set-hovered-image":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;Dv(v,"hoveredImage",e.url)}break;case"set-depressed-image":{let v=this.getItemModel(e.id);if(!v||v.type!=="image")return;Dv(v,"depressedImage",e.url)}break;case"clickable-item-clicked":this.handleClickableItemClicked(e.id,e.listIndex);break;case"action-single-step":{let v=this.getItemModel(e.id);if(!v||v.type!=="expression"||!v.formula.action_value)return;this.evaluator.addActionStepEvent(v.id)}break;case"update-expression-search-str":this.updateExpressionSearchStr(e.str);break;case"update-expression-replace-str":this.updateExpressionReplaceStr(e.str);break;case"rename-identifier-global":this.suggestedIdentifierRename=void 0,_d(this.listModel,e.search,e.replace);break;case"rename-identifier-in-item":this.suggestedIdentifierRename=void 0;let J=this.getItemModel(e.id);J&&J.type==="folder"?_d(this.listModel,e.search,e.replace,{limitToFolder:e.id}):_d(this.listModel,e.search,e.replace,{limitToItem:e.id});break;case"update-ticker-handlerlatex":this.updateTickerHandlerLatex(e.latex);break;case"update-ticker-minsteplatex":this.updateTickerMinStepLatex(e.latex);break;case"set-braille-mode":this.setBrailleMode(e.mode);break;case"set-six-key-input":this.setSixKeyInput(e.useSixKeyInput);break;case"set-show-constructions-open":if(this.showConstructionsOpen=e.open,e.setFocus)if(!e.open)ur(this,{type:"geo-show-constructions-icon"});else for(let v in this.cachedGeoTokenInfo){let{calcId:D}=this.cachedGeoTokenInfo[v];if(this.getItemModel(D)){ur(this,{type:"geo-token",identifier:v});break}}break;case"select-geo-tool":this.listModel.openItemMenu=void 0,this.setGeoTool(e.tool),__dcg_shared_module_exports__['bc'](e.tool)||e.tool==="selection"||lr(this.listModel,void 0),e.focusGraphPaper&&this.setGraphPaperFocus({isFocused:!0}),this.closeToast();break;case"cancel-geo-toolplay":this.cancelGeoToolplay();break;case"commit-geo-objects":{let v=[],D=[];var a=this.findLastSubscriptForLetters(),s={};let _=se=>{let re=s[se];if(re)return re.assignmentLatex;let j=this.getItemModel(se);if(!j||j.type!=="expression")return se;var X=this._autoNameExpression(j,a);return re=s[se]={model:j,assignmentLatex:X},re.assignmentLatex},te=[];for(let se in e.committed){var l=e.committed[se];__dcg_shared_module_exports__['bc'](l.type)&&te.push(se);var c=AM(l,!0,_);c&&(c.sliderInfo?D.push({latex:c.latex,color:c.color,sliderInfo:c.sliderInfo}):v.push({...c,tokenId:se}))}let Q=this.listModel.__toolPreviewIdToModel;if(v.length){let se=this.getGeometryFolder(),re=se?se.index+this.getNumberOfItemsInFolder(se.id)+1:0;v.forEach(j=>{var fe;let X;for(let be in Q){let Me=Q[be];if(((fe=Ii(Me))==null?void 0:fe.latex)===j.tokenId){X=Me;break}}X?(X.latex=j.latex,X.color=j.color,X.showLabel=!!j.showLabel,X.showAngleLabel=j.showAngleLabel!==!1,se&&(X.folderId=se.id)):X=this.createItemModel({id:this.generateId(),type:"expression",showLabel:j.showLabel,showAngleLabel:j.showAngleLabel,latex:j.latex,folderId:se&&se.id,color:j.color}),se?(_a(this.listModel,X,re),re+=1):ds(this.listModel,X),this.getGeoModel().recordCommittedOutput(X.id)})}D.forEach(se=>{let re;for(let j in Q){let X=Q[j];if(X.latex===se.latex){re=X;break}}re?(re.latex=se.latex,re.color=se.color,mg(re,se.sliderInfo.min),fg(re,se.sliderInfo.max)):re=this.createItemModel({id:this.generateId(),type:"expression",latex:se.latex,color:se.color,slider:{hardMin:!0,hardMax:!0,min:se.sliderInfo.min,max:se.sliderInfo.max}}),_a(this.listModel,re,0),this.getGeoModel().recordCommittedOutput(re.id)}),te.length===1&&this.transformAllSelectedItemsByAssignmentLatex(te[0]),this.geoModel.isCurrentToolSingleUse()&&this.setGeoTool("selection");let De=e.toolIdToLatex[1];if(this.geoModel.getToolMode()==="expression-edit"&&De){let se=MM(De,_);this.writeIdentifierIntoCurrentMathquill(se)}this.isGeometry()&&this.getGeoModel().updateFadeAnimations()}break;case"rename-identifier":{let v=e.from,D=e.to,_=__dcg_shared_module_exports__['cb'](v),te=this.getGeometryFolder();te&&this.getItemsByIdentifier(_).forEach(Q=>{e.geoFolder&&Q.folderId!==te.id?(Po(Q,te.id),Fd(this.listModel,Q.index,te.index+1,1)):!e.geoFolder&&Q.folderId===te.id&&(Fd(this.listModel,Q.index,te.index+this.getNumberOfItemsInFolder(te.id),1),Po(Q,""))}),_d(this.listModel,v,D)}break;case"set-active-token":this.activeTokens[e.style]=e.identifier;break;case"unset-active-token":this.activeTokens[e.style]===e.identifier&&(this.activeTokens[e.style]=void 0);break;case"select-expression-that-defines-token":{let v=this.getExpressionIdForIdentifier(e.identifier);if(!v||(this.setGeoTool("selection"),this.isItemNotSelectableBecauseItsSecret(v)))return;e.multiSelectMode||e.toggle?xT(this.listModel,v):this.tryInsertTokenIntoMathquill(v,void 0)||lr(this.listModel,this.getItemModel(v))}break;case"close-expression-search":this.closeExpressionsSearch();break;case"open-expression-search":this.expressionSearchOpen=!0,this.focusLocation={type:"search-expressions"};let U=e.latex;e.rename&&!jn(U)&&(U="");let z=e.rename?U?`\\operatorname{rename}\\ ${U}\\to`:"\\operatorname{rename}\\ ":U;this.updateExpressionSearchStr(z);break;case"open-ticker":this.listModel.ticker.open=!0,this.focusLocation={type:"ticker",location:"handler"},this._closeAddExpression();break;case"close-ticker":this.listModel.ticker.open=!1,this.listModel.ticker.playing=!1,this.listModel.ticker.minStepLatex="",this.listModel.ticker.handlerLatex="";break;case"toggle-ticker":this.listModel.ticker.playing=!this.listModel.ticker.playing,this.listModel.ticker.lastTickTime=void 0,this.pauseAllSliders();break;case"set-tool-preview-state":this.setToolPreviewState(e.state);break;case"apply-transformation-to-selected":this.transformAllSelectedItemsByAssignmentLatex(e.assignmentLatex),this.closeItemSettingsMenu();break;case"set-geometry-toolbar":{SO(this.geometryToolbarModel,e.toolbar);break}case"set-geometry-custom-toolbar-setting":{Lv(this.geometryToolbarModel,e.tool,e.value);break}case"set-author-mode":{this.setAuthorMode(e.enabled);break}case"set-translucent-surfaces":{this.getGraphSettings().config.setProperty("translucentSurfaces",e.value);break}case"set-perspective-distortion":{this.getGraphSettings().config.setProperty("perspectiveDistortion",e.value),(P=this.grapher3d)==null||P.redrawAllLayers();break}case"mute-global":case"unmute-global":{e.type==="unmute-global"&&this.runAfterDispatch(()=>{var v;(v=this.getAudioGraph())==null||v.exitAudioTrace()}),(O=this.toneController)==null||O.handleAction(e),this.getGraphSettings().config.setProperty("muted",e.type==="mute-global");break}case"add-poi-expression":{let v=this.createItemModel({type:"expression",id:this.generateId(),latex:e.latex,hidden:!0,color:this.getNextColor()});this.setEditListMode(!1),ds(this.listModel,v),Yi(this,v.id);break}default:return e}}switchAxisScale(e,t){var o;if(!t||t===this.graphSettings[e])return;this.graphSettings.setProperty("polarMode",!1);let i;this.getAllItemModels().forEach(n=>{if(this.isExpressionZoomFit(n)){if(!this.getBoundingBoxesForZoomFit(n))return;i=n.id}}),this.graphSettings.setProperty(e,t),(o=this.getGrapher2d())==null||o.getProjection().updateScalePairs(),!(i&&this._expressionZoomFit(i,!1,!0))&&this.enforceAxisLimitsForScale(e)}enforceAxisLimitsForScale(e){let t=this.getGrapher2d();if(!t)return;let i=t.getDefaultViewport();if(!i)return;e==="xAxisScale"?(this._setAxisLimitLatex("xmin",__dcg_shared_module_exports__['ab'](i.xmin)),this._setAxisLimitLatex("xmax",__dcg_shared_module_exports__['ab'](i.xmax))):(this._setAxisLimitLatex("ymin",__dcg_shared_module_exports__['ab'](i.ymin)),this._setAxisLimitLatex("ymax",__dcg_shared_module_exports__['ab'](i.ymax))),this.graphSettings.xAxisScale===this.graphSettings.yAxisScale&&(this.graphSettings.setProperty("lastChangedAxis",e==="xAxisScale"?"y":"x"),t.viewportController.zoomSquareImmediately(),this.markSquareAxesAfterUserEditedViewport());let o=t.viewportController.getViewport(),n=t.getProjection(),{xmin:a,xmax:s,ymin:l,ymax:c}=o,d=this.getGraphSettings().config.logScales;if(e==="xAxisScale"&&d){let u=n.mapx(a),h=n.mapx(s),g=Sr(n.reverse_mapx(u-.25),n.reverse_mapx(u+.25)),b=Sr(n.reverse_mapx(h-.25),n.reverse_mapx(h+.25));this._setAxisLimitLatex("xmin",__dcg_shared_module_exports__['ab'](g)),this._setAxisLimitLatex("xmax",__dcg_shared_module_exports__['ab'](b))}if(e==="yAxisScale"&&d){let u=n.mapy(l),h=n.mapy(c),g=Sr(n.reverse_mapy(u-.25),n.reverse_mapy(u+.25)),b=Sr(n.reverse_mapy(h-.25),n.reverse_mapy(h+.25));this._setAxisLimitLatex("ymin",__dcg_shared_module_exports__['ab'](g)),this._setAxisLimitLatex("ymax",__dcg_shared_module_exports__['ab'](b))}this.lastDirectlyEditedViewport=t.getCurrentViewport()}_convertOrCreateTable(e){let t=this.getItemModelByIndex(e),i=gu(t),o=uC(t);if((t==null?void 0:t.type)!=="expression")return;let n=this.isInEditListMode(),a;switch(i){case"point-list":a=g2(t);break;case"point-list-reference":a=m2(t);break;case"anonymous-function":a=b2(t);break;case"function-reference":a=w2(t);break;case"recursive-function":a=x2(t);break}if(n&&this.setEditListMode(!1),!i||!a){this._showToast({message:this.s("graphing-calculator-text-table-creation-error")}),Mi("Convert to table bug",{metaData:{latex:t.latex,type:i}});return}let s={id:this.generateId(),type:"table",readonly:t.readonly,columns:[{...nu,id:this.generateId(),latex:a.headers[0],values:a.values[0]},{...nu,id:this.generateId(),latex:a.headers[1],values:a.values[1],color:t.color,lines:!o&&!!t.lines}]},l=this.createItemModel(s);if(o){let d=t.index+1;if(i==="recursive-function"){let u=t.formula.function_definition;for(;this.isBaseCaseItem(d,u);)d++}this._toplevelInsertItemAt(d,l,!0,t.folderId)}else this._toplevelReplaceItemAt(t.index,l,!0);let c=()=>{this.dispatch({type:"undo"}),n&&this.dispatch({type:"set-edit-list-mode",isEditListMode:!0,focusExpressionList:!1})};this._showToast({message:this.s("graphing-calculator-text-table-created"),undoCallback:c}),this.logEvent({category:"convert-to-table",action:i})}isBaseCaseItem(e,t){var o;let i=this.getItemModelByIndex(e);return!i||i.type!=="expression"||!t?!1:((o=i.formula.recursion_base_case)==null?void 0:o.symbol)===t}hasTableHeaderWithIdentifier(e){return!!e&&OO(this.listModel,e)}updateGraphSettingsViewportLimitsLatex(e){this._setAxisLimitLatex("xmin",e.xmin+""),this._setAxisLimitLatex("xmax",e.xmax+""),this._setAxisLimitLatex("ymin",e.ymin+""),this._setAxisLimitLatex("ymax",e.ymax+""),this._setAxisLimitLatex("zmin",e.zmin+""),this._setAxisLimitLatex("zmax",e.zmax+"")}transformAllSelectedItemsByAssignmentLatex(e){var h,g;let t=Bv(this.listModel),i=this.findLastTokenNumber()+1,o=this.findLastSubscriptForLetters(),n=this.getGeometryFolder(),a=n?n.index+this.getNumberOfItemsInFolder(n.id)+1:0,s={};for(let b of t){if(b.type!=="expression")continue;var l=b.formula.geometry;if(!l)continue;var c=(h=b.formula.typed_constant_value)==null?void 0:h.valueType;if(!c||__dcg_shared_module_exports__['ca'](c,__dcg_shared_module_exports__['N']))continue;var d=(g=Ii(b))==null?void 0:g.latex;d||(d=this._autoNameExpression(b,o));let C=`\\token{${i}}`;i+=1;let S=`${C}=${e}\\left(${d}\\right)`,k=this.createItemModel({id:this.generateId(),type:"expression",showLabel:b.showLabel&&!b.label,showAngleLabel:b.showAngleLabel&&!b.label,latex:S,folderId:n&&n.id,color:b.color});s[k.id]=!0,n?(_a(this.listModel,k,a),a+=1):ds(this.listModel,k)}let u=Object.keys(s);if(u.length&&wT(this.listModel,s),u.length===1){let b=u[0];this.runAfterDispatch(()=>{this.getItemModel(b)&&this.get2dPOIController().keyboardAttentionManager.updateKeyboardAttention({calcId:b,listIndex:void 0,polygonEdge:void 0},{describe:!1})})}}convertToTokenAssignment(e,t=""){var n;let i=(n=Ii(e))==null?void 0:n.latex,o=t?tb(t)||"":"\\token{"+(this.findLastTokenNumber()+1)+"}";i?_d(this.listModel,i,o):Qn(e,o+"="+e.latex)}convertToNamedAssignment(e,t=""){let i=OT(e);if(!i)return;let o=t?tb(t):this.getAutonameLatexForExpression(e);o?_d(this.listModel,i,o):Qn(e,t)}getAutonameLatexForExpression(e,t){if(t||(t=this.findLastSubscriptForLetters()),_T(e)==="point"&&e.label&&jn(e.label)&&this.countGlobalIdentifierOccurences(e.label)===0)return e.label;var i=B2(e),o=(t[i]||0)+1;return t[i]=o,i+"_{"+o+"}"}_autoNameExpression(e,t){let i=this.getAutonameLatexForExpression(e,t);return Qn(e,i+"="+e.latex),i}isGeoToolVisible(e,{ignoreAuthorMode:t}={ignoreAuthorMode:!1}){return!t&&this.shouldShowAuthorFeatures()?!0:lu(this.geometryToolbarModel,e)}isGeoToolEnabled(e,{ignoreAuthorMode:t}={ignoreAuthorMode:!1}){return!t&&this.shouldShowAuthorFeatures()?!0:rg(this.geometryToolbarModel,e)}isSomeTransformToolVisible(){return ym.some(e=>this.isGeoToolVisible(e))}setGeoTool(e){if(!this.geoUIActive||this.activeTool===e||!this.isGeoToolEnabled(e))return;EO(this.geometryToolbarModel,e,this.shouldShowAuthorFeatures()),this.activeTool=e,this.getGeoModel().setToolMode(e),this.cancelGeoToolplay()}cancelGeoToolplay(){var t;let e=this.getGeoModel();e.cancelToolplay(),e.deselectAllObjects(),this.setToolPreviewState({}),(t=this.get2dPOIController())==null||t.cancelGeoToolplay()}setToolPreviewState(e){var i;this.toolPreviewJSONState=e;var t=this.listModel.__toolPreviewIdToModel;this.listModel.__toolPreviewIdToModel={};for(let o in e){let n=e[o],a=AM(n,!1);if(!a)continue;let s;for(let l in t){let c=t[n.type==="expression-edit-preview-latex"?ng:l];if(((i=Ii(c))==null?void 0:i.latex)===o){s=c;break}}s?(s.latex=a.latex,s.color=a.color,s.showAngleLabel=!!a.showAngleLabel,s.hidden=n.hidden):s=Wv({id:n.type==="expression-edit-preview-latex"?ng:this.generateId(),type:"expression",color:a.color,latex:a.latex,showAngleLabel:!!a.showAngleLabel,hidden:n.hidden},this),this.listModel.__toolPreviewIdToModel[s.id]=s}}isGeoItem(e){let t=this.getItemModel(e);return t&&t.type==="expression"&&t.formula&&t.formula.geometry&&!t.formula.error}getSelectedGeoExpression(){var e=this.getSelectedItem();if(e&&this.isGeoItem(e.id)&&e.type==="expression")return e}getGeometryFolder(){let e=this.getItemModel(__dcg_shared_module_exports__['Rc']);return e&&e.type==="folder"?e:void 0}isItemInGeoFolder(e){var t=this.getItemModel(e);return!t||t.type==="folder"?!1:t.folderId===__dcg_shared_module_exports__['Rc']}isGeoFolder(e){return e.id===__dcg_shared_module_exports__['Rc']}isItemNotSelectableBecauseItsSecret(e){return!(this.shouldShowAuthorFeatures()||this.isItemInGeoFolder(e)||!this.isItemSecret(e))}pauseAllSliders(){this.getPlayingSliders().forEach(e=>{xa(e,!1)})}countGlobalIdentifierOccurences(e){return fT(this.listModel,e)}handleClickableItemClicked(e,t){let i=this.getItemModel(e);gg(i)&&this.evaluator.addClickEvent(i.id,t)}canAddTicker(){return!this.getTickerOpen()}countIdentifierAssignments(e){return pu(this.listModel,e).length}countIdentifierAssignmentsInsideFolder(e,t){return pu(this.listModel,e).filter(i=>i.folderId===t).length}doesIdentifierBlockActionUpdate(e){var t=this.getFocusLocation(),i=pu(this.listModel,e);for(let o of i)if((t==null?void 0:t.type)==="expression"&&t.id===o.id||U2(o))return!0;return!1}getItemsByIdentifier(e){return pu(this.listModel,e)}isAtLeastOnePointSelected(){let e=this.getAllSelectedItems();for(var t=0;t<e.length;t++){let i=e[t];if(i.type==="expression"&&Bl(i))return!0}return!1}toggleLabelForAllSelectedObjects(){let e=[],t=[];this.getAllSelectedItems().forEach(o=>{o.type==="expression"&&Bl(o)&&(o.showLabel?t.push(o):e.push(o))});let i=/^([A-Z])([0-9]*)$/;if(e.length){let o=0;this.getAllItemModels().forEach(n=>{if(n.type!=="expression"||!n.showLabel||!n.label)return;let a=n.label.match(i);if(!a)return;let s=a[1].charCodeAt(0)-65;a[2]&&(s+=parseInt(a[2])*26),s>=o&&(o=s+1)}),e.forEach(n=>{if(!n.label){let a=o;o++;let s=String.fromCharCode(a%26+65),l=Math.floor(a/26),c=l>0?l+"":"";zc(n,s+c)}fu(n,!0)})}else t.length&&t.forEach(o=>{i.test(o.label)&&zc(o,""),fu(o,!1)})}updateLatexForIdentifier(e,t){var i=pu(this.listModel,e);if(i.length===1){var o=i[0];o.slider.isPlaying?(xa(o,!1),Qn(o,t),xa(o,!0)):Qn(o,t)}}updateExpressionSearchStr(e){this.rawExpressionSearchStr=e;let t="\\operatorname{rename}";if(e.indexOf(t)===0){let o=e.slice(t.length).replace(/\\ /g,"").split(/\\to(?![a-zA-Z])/);o.length===2?(this.expressionSearchStr=o[0],this.isExpressionSearchStrValidForReplace=jn(this.expressionSearchStr),this.updateExpressionReplaceStr(o[1])):(this.expressionSearchStr=o[0],this.isExpressionSearchStrValidForReplace=!1,this.updateExpressionReplaceStr(""));let n=_O(this.listModel,this.getExpressionSearchStr());this.expressionSearchCount=this.expressionSearchOpen?n:0}else this.expressionSearchStr=e.length>1&&"rename".indexOf(e)===0?"":e,this.isExpressionSearchStrValidForReplace=!1,this.updateExpressionReplaceStr(""),this.filterItemsBySearch()}closeExpressionsSearch(){var i;if(this.expressionSearchOpen=!1,this.updateExpressionSearchStr(""),((i=this.getFocusLocation())==null?void 0:i.type)==="ticker")return;let e=this.getFirstSelectedItem(),t=this.getItemModelByIndex(0);!e&&t&&Yi(this,t.id,"end"),e&&this.getSelectedItem()&&!this.getFocusedItem()&&Yi(this,e.id,"end"),(e||t)&&(this.shouldScrollSelectedItemIntoViewAfterDispatch=!0)}filterItemsBySearch(){if(!this.getExpressionReplaceStr()){let e=FO(this.listModel,this.getExpressionSearchStr());this.expressionSearchCount=this.expressionSearchOpen?e:0}}updateExpressionReplaceStr(e){this.expressionReplaceStr=e,this.isExpressionReplaceStrValidForReplace=jn(e)}getIsExpressionSearchStrValidForReplace(){return this.isExpressionSearchStrValidForReplace}getIsExpressionReplaceStrValidForReplace(){return this.isExpressionReplaceStrValidForReplace}isSearchReplaceValid(){return this.getIsExpressionSearchStrValidForReplace()&&this.getIsExpressionReplaceStrValidForReplace()}shouldShowReplaceIcon(){return this.isSearchReplaceValid()}updateTickerHandlerLatex(e){this.listModel.ticker.handlerLatex=e}updateTickerMinStepLatex(e){this.listModel.ticker.minStepLatex=e}getRawExpressionSearchStr(){return this.rawExpressionSearchStr||""}getExpressionSearchStr(){return this.expressionSearchStr||""}getExpressionReplaceStr(){return this.expressionReplaceStr||""}getExpressionSearchCount(){return this.expressionSearchCount||0}getTicker(){return this.listModel.ticker}getTickerHandlerLatex(){return this.listModel.ticker.handlerLatex||""}getTickerMinStepLatex(){return this.listModel.ticker.minStepLatex||""}getTickerAvgDelta(){return this.listModel.ticker.avgDelta}getBrailleMode(){return this.graphSettings.config.brailleMode}setBrailleMode(e){this.graphSettings.config.setProperty("brailleMode",e)}getSixKeyInput(){return this.graphSettings.config.sixKeyInput}setSixKeyInput(e){this.graphSettings.config.setProperty("sixKeyInput",e)}getBrailleControls(){return this.graphSettings.config.brailleControls}setBrailleControls(e){this.graphSettings.config.setProperty("brailleControls",e)}getAudio(){return this.graphSettings.config.audio}setAudio(e){this.graphSettings.config.setProperty("audio",e)}setEditListMode(e){this.layoutModel={...this.layoutModel,inEditListMode:e}}generateTableXSubscript(){return Rv(this.listModel)}findLastTokenNumber(){return RO(this.listModel)}findLastSubscriptForLetters(){return NO(this.listModel)}_createTableItem(){let e=this.generateTableXSubscript(),t=Jk(e,[[],[]],this);return this.createItemModel(t)}_populateSettingsViewLimitLatex(){let e=this.getGrapher();if(!e)return;let t=e.getCurrentViewport();this.isGraphSettingsOpen()&&__dcg_shared_module_exports__['Oa'](t,this.lastDirectlyEditedViewport)||(this.settingsViewModel={...this.settingsViewModel,limitLatex:oz(t,{steps:this.getAxisStepSettings(),scales:this.getAxisScaleSettings()},this.getPrecisionConfig())})}getAxisStepSettings(){return{xAxisStep:this.graphSettings.xAxisStep,yAxisStep:this.graphSettings.yAxisStep}}getAxisScaleSettings(){return{xAxisScale:this.graphSettings.xAxisScale,yAxisScale:this.graphSettings.yAxisScale}}getDefaultAxisScaleSettings(){var t,i;let{defaultState:e}=this.graphSettings;return{xAxisScale:((t=e==null?void 0:e.graph)==null?void 0:t.xAxisScale)||"linear",yAxisScale:((i=e==null?void 0:e.graph)==null?void 0:i.yAxisScale)||"linear"}}getSettingsViewModel(){return this.settingsViewModel}getListModel(){return this.listModel}getGeometryToolbarModel(){return this.geometryToolbarModel}hasBackgroundColor(){return this.getBackgroundColor()!=="#ffffff"}getBackgroundColor(){return this.getGraphSettings().getConfiguredBackgroundColor()}hasTextColor(){return this.getTextColor()!=="#000000"}getTextColor(){return this.getGraphSettings().getConfiguredTextColor()}getPillboxBackgroundColor(){return __dcg_shared_module_exports__['cd'](this.getBackgroundColor(),-.07)}subscribeToChanges(e){let t=this.nextSubscription;return this.nextSubscription+=1,this.subscriptions[t]=e,()=>{delete this.subscriptions[t]}}updateTheComputedWorld(){var d,u,h,g,b,C,S;uu(this.listModel);let t=this.getSelectedItem()&&this.activeTool==="expression-edit"&&this.listModel.__toolPreviewIdToModel[ng]&&((d=this.getGrapher())!=null&&d.graphSketches[ng])?"preview":"actual";BO(this.listModel,t),(u=this.grapher2d)==null||u.setSketchOrder(this.listModel.drawOrder),(h=this.grapher3d)==null||h.setSketchOrder(this.listModel.drawOrder);let i={},o=k=>{var M;let I=(M=Ii(k))==null?void 0:M.identifier;I&&(I[0]==="$"||k.formula.geometry)&&I&&(i[I]?i[I].multiple=!0:i[I]={model:k,multiple:!1})};for(let k of this.getAllToolPreviewItems())FT(k),o(k);for(let k of this.getAllItemModels())switch(k.type){case"expression":FT(k),o(k);break;case"image":NL(k);break;case"table":XP(k);break;case"folder":PP(k);break;case"text":DL(k);break;default:return k}this.geoUIActive=this.isGeometry()&&!this.getGraphSettings().config.hideGeoUI,this.cachedGeoTokenInfo={};for(let k in i){let{multiple:I,model:M}=i[k],E="blue",A="unknown",V="unknown",G=!1,P=!1,O=!1,R=Zo(M);!I&&M?(E=Kc(M),G=N2(M),V=K2(M),A=_T(M),M.error&&(P=!0,E="#")):(A="error",P=!0),A&&M?this.isItemSelected(M.id)&&(O=!0):P=!0;let q=(M==null?void 0:M.label)||"";this.cachedGeoTokenInfo[k]={groupType:A,iconType:V,isList:G,hasError:P,color:E,isSelected:O,isHidden:R,label:q,calcId:M&&M.id||""}}this.cachedGeoTokenDepths={};let{createdDepth:n,firstReferencedDepth:a}=this.geoModel.getComputedBoard().getDepthValues();for(let k in this.cachedGeoTokenInfo){let{calcId:I}=this.cachedGeoTokenInfo[k],M=this.getItemModel(I);if(!M)continue;let E=k;if(!(k in n)&&M.type==="expression"&&(I===this.getDraggedItemId()||M===this.getFocusedItem())){let R=M.formula.assignment;R&&R in n&&(E=R)}let A=n[E]||0,V=a[E];V=isFinite(V)?V:0;let G=Math.max(A,V-1)+"",P=this.cachedGeoTokenDepths[G];P||(P=[],this.cachedGeoTokenDepths[G]=P);let O=this.cachedGeoTokenInfo[k];P.push({color:O.color,groupType:O.groupType,identifier:k,calcId:I})}eO(this.listModel.ticker);let s=this.getFocusLocation();if(s&&s.type==="expression"&&s.isFakeGraphFocus&&(this.getValidCursorContext()||ur(this,{...s,isFakeGraphFocus:void 0})),this.isCurrentFocusLocationValid()||ur(this,void 0),this.listModel.openItemMenu){let k=this.getOpenMenuIcon();document.body&&k&&document.body.contains(k)||(this.listModel.openItemMenu=void 0)}let l=this.getSelectedItem();l&&!this.getItemModel(l.id)&&lr(this.listModel,void 0),this._populateSettingsViewLimitLatex(),this.propagateSelection(),this.propagateActiveTokens(),this.isKeypadOpen()||(this.layoutModel={...this.layoutModel,keypadFunctionsOpen:!1}),this.updateSuggestedIdentifierRenameInfo(),this.isGeometry()&&l&&l.type==="expression"?this.getValidCursorContext()?(this.setGeoTool("expression-edit"),this.geoModel.updateFadeAnimations()):this.geoModel.getToolMode()==="expression-edit"&&this.setGeoTool("selection"):this.geoModel.getToolMode()==="expression-edit"&&this.setGeoTool("selection");let c=this.getValidCursorContext();this.isGeometry()&&this.getGeoModel().getToolMode()==="expression-edit"&&!__dcg_shared_module_exports__['Oa'](c,this.lastCursorContext)&&this.runAfterDispatch(()=>{var k;(k=this.get2dPOIController())==null||k.replayGeoTapMove()}),this.lastCursorContext=c,(b=(g=this.grapher2d)==null?void 0:g.poiController)!=null&&b.keyboardAttentionManager.getKeyboardAttention()&&!this.isGraphPaperFocused()&&((S=(C=this.grapher2d)==null?void 0:C.poiController)==null||S.keyboardAttentionManager.setKeyboardAttention(void 0)),this.isGeometry()&&(yO(this.geometryToolbarModel),this.isGeoToolEnabled(this.getActiveTool())||this.setGeoTool("selection")),this.runAfterDispatch(()=>{var k,I;this.isThreeDMode()||((k=this.grapher2d)==null||k.audioGraph.checkIfSelectedItemChanged(l?l.id:void 0),this.focusLocation&&this.focusLocation.type!=="graph-paper"&&((I=this.grapher2d)==null||I.audioGraph.exitAudioTrace()))})}isGeoItemReadonlyOrInert(e){return e&&!this.isItemInGeoFolder(e.id)&&(e.readonly||ba(e))}getOpenMenuIconSelector(){let e=this.getOpenItemMenu();return e?`[dcg-open-menu-guid="${e.guid}"]`:void 0}getOpenMenuIcon(){let e=this.getOpenMenuIconSelector();return e?this.findEl(e):void 0}propagateSelection(){let e=this.getGrapher();e?this.__lastSelectedIdsForPropagation=PR(this,e,this.__lastSelectedIdsForPropagation):this.__lastSelectedIdsForPropagation={}}propagateActiveTokens(){var e,t;this.isThreeDMode()||((e=this.grapher2d)==null||e.setActiveToken(this.getExpressionIdForIdentifier(this.activeTokens.selected),"selected"),(t=this.grapher2d)==null||t.setActiveToken(this.getExpressionIdForIdentifier(this.activeTokens.hovered),"hovered"))}getHoveredOrFocusedTokenIdentifier(){if(this.activeTokens.hovered)return this.activeTokens.hovered;let e=this.getFocusLocation();if(e&&e.type==="geo-token")return e.identifier}doesLatexContainToken(e){return z2(e)}getToolPreviewJSONState(){return this.toolPreviewJSONState}removeListOfItems(e){let t={},i=[],o=new Set;return e.forEach(n=>{if(this.isItemReadonly(n))o.add(n);else{let a=hg(this.listModel,n);for(let s of a)t[s.id]||(t[s.id]=!0,i.push(s))}}),{deletedItems:i,readonlyItemsNotDeleted:o.size}}garbageCollectGeo(e,t){if(!this.isGeometry())return;let i=gz(this,e,t);i.length&&this.removeListOfItems(i)}ensureAtLeastOneVisibleItem(){if(HO(this.listModel)){let e=this.createItemModel({type:"expression",id:this.generateId(),color:this.getNextColor()});ds(this.listModel,e)}}getExpressionIdForIdentifier(e){if(e){var t=this.getItemsByIdentifier(e);if(t.length===1)return t[0].id}}getValidCursorContext(){var o;let e=this.getSelectedItem();if(!e||e.type!=="expression")return;let t=e.formula.cursor_context,i=(o=ve.getFocusedMathquill())==null?void 0:o.selection();if((t==null?void 0:t.type)==="expression-arguments"){let{argIndex:n,positionWithinArg:a}=t;if(!(n===t.argCount-1&&a==="end"||t.positionWithinArg==="start-to-end"&&(i==null?void 0:i.startIndex)!==void 0&&(i==null?void 0:i.startIndex)===(i==null?void 0:i.endIndex)))return}if((e==null?void 0:e.type)==="expression"&&e.latex===(t==null?void 0:t.selection.input)&&(i==null?void 0:i.startIndex)===(t==null?void 0:t.selection.start)&&(i==null?void 0:i.endIndex)===(t==null?void 0:t.selection.end)&&(i==null?void 0:i.latex)===(t==null?void 0:t.selection.input))return t}tryInsertTokenIntoMathquill(e,t){if(!this.isGeometry()||!e)return!1;var i=this.getItemModel(e);if(!i||i.type!=="expression")return!1;let o=i.formula.typed_constant_value;t===0&&(!o||!__dcg_shared_module_exports__['Z'](o.valueType))&&(t=void 0);var n,a,s=Oo(i);if(s?a=__dcg_shared_module_exports__['bb'](s):i.formula.geometry&&(a=this.getAutonameLatexForExpression(i),n=a),!a)return!1;t!==void 0&&(a+="\\left["+(t+1)+"\\right]");var l=this.getFocusLocation();if(!l||!this.seemsLikeInsertingTokenWillImproveThings(o==null?void 0:o.valueType))return!1;var c=l.type==="expression";return c?(n&&(Zr(i)==="NONE"&&i.dragMode==="AUTO"&&bu(i,"NONE"),Qn(i,n+"="+i.latex)),this.writeIdentifierIntoCurrentMathquill(a),!0):!1}seemsLikeInsertingTokenWillImproveThings(e){let t=this.getValidCursorContext();if(t){if(!e)return!1;let i=__dcg_shared_module_exports__['Z'](e)?__dcg_shared_module_exports__['_'](e):e;return(t.type==="expression-arguments"?t.allowedTypesForInsertedArg:t.allowedTypes).some(n=>__dcg_shared_module_exports__['aa'](i,n))}return!1}writeIdentifierIntoCurrentMathquill(e){this.runAfterDispatch(()=>{let t=this.getValidCursorContext(),i=ve.getFocusedMathquill();if(!i)return;let o="",n="";(t==null?void 0:t.type)==="expression-arguments"&&((t==null?void 0:t.positionWithinArg)==="end"?o=",":(t==null?void 0:t.positionWithinArg)==="start"&&(n=","));let a=`${o}${e}${n}`,s=!1;if((t==null?void 0:t.type)==="expression-arguments"&&t.polygonVertices){let{argIndex:l,polygonVertices:c,positionWithinArg:d}=t;(e===c.firstLatex||e===c.lastLatex)&&(d==="end"||d==="start-to-end")&&l===t.argCount-1&&(a="",s=!0)}else(t==null?void 0:t.type)==="expression-arguments"&&(s=t.isLastValidArg);ve.canAcceptText(i,this.getCapExpressionSize(),a)&&(i.write(a),ve.simulateUserChangedLatex(i),s&&i.keystroke("Right"))})}getSelectedExpressionIds(){return $O(this.listModel)}getPropagatedSelectedIds(){return this.__lastSelectedIdsForPropagation}areParsableObjectsEqual(e,t){return e===t?!0:__dcg_shared_module_exports__['Oa']({...e,regressionParameters:void 0},{...t,regressionParameters:void 0})}requestParseForAllItems(){var o,n,a;(this.isCurrentlyDoingSetState||this.isCurrentlyDoingRestoreState)&&(this.lastParsableObjects={},this.evaluator.clearStatementsAndStartCompleteState(),this.isCurrentlyDoingRestoreState&&this.evaluator.markUndoRedoState());var e={},t=this.lastParsableObjects;for(let s of this.getAllItemModels())switch(s.type){case"expression":case"image":case"table":e[s.guid]=s.cachedParsableState;break;case"folder":case"text":break;default:return s}for(let s of PO(this.listModel))e[s.guid]=s.cachedParsableState;for(let s of cg(this.listModel)){let l=this.getSelectedItem(),c=this.activeTool==="polygon";if(this.activeTool==="expression-edit"&&(l==null?void 0:l.type)==="expression"&&((n=(o=l.formula.geometry)==null?void 0:o.call)==null?void 0:n.symbol)==="polygon"&&((a=l.formula.cursor_context)==null?void 0:a.type)==="expression-arguments"){let{positionWithinArg:d,argIndex:u}=l.formula.cursor_context;c=(d==="end"||d==="start-to-end")&&u===l.formula.geometry.call.parents.length-1}e[s.guid]={...s.cachedParsableState,shouldOmitLastPolygonSegment:c}}let i=this.getFocusedItem();if((i==null?void 0:i.type)==="expression"){let s=ve.getFocusedMathquill(),l=s==null?void 0:s.selection();(l==null?void 0:l.latex)===i.latex&&this.shouldEvaluateSelection()&&(e[i.guid]={...i.cachedParsableState,latexSelection:{start:l.startIndex,end:l.endIndex}})}if(this.is3dProduct()&&this.getTranslucentSurfaces())for(let s in e){let l=e[s];l.type==="statement"&&(e[s]={...l,fillOpacity:yz})}this.listModel.ticker.cachedParsableState&&(e[this.listModel.ticker.guid]=this.listModel.ticker.cachedParsableState);for(let s of xO(this.geometryToolbarModel))e[s.id]=s;for(let s in t){let l=t[s],c=e[s];if(l.type==="image"&&(!c||c.type!==l.type||c.guid!==l.guid)&&this.grapher2d&&this.grapher2d.removeGraphImage(l.id),!c&&(this.evaluator.removeStatement(l.id),l.type==="table"))for(let d of l.columns)this.evaluator.removeStatement(d.id)}for(let s in e){let l=e[s],c=t[s];if(l.type==="image"&&(!c||l.type!==c.type||l.guid!==c.guid)&&this.grapher2d){let d=this.getItemModel(l.id);d&&d.type==="image"&&this.grapher2d.addGraphImage(d)}this.areParsableObjectsEqual(l,c)||(this.grapher2d&&l.type==="statement"&&l.latex===""&&this.grapher2d.removeGraphSketch(l.id),this.evaluator.addStatement(l))}this.lastParsableObjects=e}getViewState(){let e=this.getGrapher();if(e){let t=e.getProjection();return{viewport:t.viewport.toObject(),screen:t.screen,xAxisScale:t.settings.xAxisScale,yAxisScale:t.settings.yAxisScale,degreeMode:t.settings.degreeMode}}else return}getTokenRenderInfoByIdentifier(e){let t=this.cachedGeoTokenInfo[e];return t||(t={iconType:"unknown",isList:!1,hasError:!0,isSelected:!1,groupType:"unknown",color:"",isHidden:!1,label:"",calcId:""}),t}setEvaluator(e){this.evaluator=e}getEvaluator(){return this.evaluator}setGrapher2d(e){this.grapher2d=e}setGrapher3d(e){this.grapher3d=e,this.grapher2d.poiController.add3DTouchEventHandlers(e)}getGrapher(){return this.isThreeDMode()?this.grapher3d:this.grapher2d}getGrapher2d(){return this.grapher2d}getGrapher3d(){return this.grapher3d}get2dPOIController(){var e;return(e=this.grapher2d)==null?void 0:e.poiController}isDefaultViewportRestored(){var e;return!!((e=this.getGrapher())!=null&&e.viewportController.isDefaultViewportRestored())}requestRedrawGraph(){var e,t;(e=this.grapher2d)==null||e.redrawAllLayers(),this.isThreeDMode()&&((t=this.grapher3d)==null||t.redrawAllLayers())}get2dProjection(){var e;return(e=this.grapher2d)==null?void 0:e.getProjection()}get2dSketchOrder(){var e;return(e=this.grapher2d)==null?void 0:e.getSketchOrder()}getBoundingBoxesForZoomFit(e){if(!(!this.grapher2d&&!this.grapher3d)&&this.isZoomFitEnabled()&&!(e.type!=="expression"&&e.type!=="table")&&!(e.type==="expression"&&(e.error||!e.shouldGraph||!e.formula.is_graphable)))return e.boundingBoxes}isExpressionZoomFit(e){if(this.isThreeDMode())return!1;let t=this.getBoundingBoxesForZoomFit(e),i=this.get2dProjection();return!i||!t?!1:!_A(t,i)&&!!Hy(t,i)}viewportIsLocked(){return this.getLockViewportConfigSetting()||this.getLockViewportUserSetting()}showExpressionZoomFitButton(e){if(this.viewportIsLocked()||this.isGeometry()||this.is3dProduct())return!1;let t=this.getBoundingBoxesForZoomFit(e),i=this.get2dProjection();return!!(i&&t&&_A(t,i))}setBugsnagContext(e){this.bugsnagContext=e}getItemRootNodeById(e){let t=this.getItemModel(e);if(t&&t.dcgView)return t.dcgView.findRootNode()}getItemNodeById(e){return this.getItemRootNodeById(e)}generateId(){var e=this.__nextItemId;return this.__nextItemId+=1,e+""}getNextColor(){return TO(this.listModel)}getNextDisplayIndex(){return this.listModel.nextDisplayIndex}_clearPendingImageUploads(){this.__pendingImageUploads={}}isUploadingImages(){return Object.keys(this.__pendingImageUploads).length>0}getExpressionAnalysis(){return this.listModel.expressionAnalysis}createItemModel(e){return og(this.listModel,e)}getItemModel(e,t){return Rl(this.listModel,e,t)}getHiddenGeoItemCount(){return qO(this.listModel)}getColorById(e){let t=this.getItemModel(e);return!t||t.type!=="expression"?"":TT(t)}getAllColorAssignments(){let e=[];for(let t of this.getAllItemModels()){if(t.type!=="expression")continue;let i=Oo(t);if(!i)continue;let o=this.getEvaluationValueForItem(t.id);(typeof o=="string"||Array.isArray(o)&&typeof o[0]=="string")&&e.push({id:t.id,assignmentLatex:__dcg_shared_module_exports__['bb'](i)})}return e}getAllColorFunctionAssignments(){let e=[];if(!this.isBeta3DMode())return e;for(let t of this.getAllItemModels()){if(t.type!=="expression")continue;let i=Oo(t),o=PT(t);!i||!o||e.push({id:"shader",assignmentLatex:"shader:"+__dcg_shared_module_exports__['bb'](i)})}return e}getShader(e){for(let t of this.getAllItemModels()){if(t.type!=="expression")continue;let i=Oo(t);if(i&&__dcg_shared_module_exports__['bb'](i)===e){let o=PT(t);if(o)return o}}return{source:"",shaderFunctions:{},shaderUniforms:[]}}getItemModelByIndex(e){return ag(this.listModel,e)}getItemCount(){return ob(this.listModel)}getItemEditableLabelMode(e){let t=this.getItemModel(e);if(!(!t||t.type!=="expression"))return Q2(t)}isItemSecret(e){let t=this.getItemModel(e);return t?rb(t):!1}isItemMarkedReadonly(e){let t=this.getItemModel(e);return t?!this.isListEnabled()&&!this.isItemInGeoFolder(e)?!0:GO(t):!1}isItemReadonly(e){return this.isItemMarkedReadonly(e)&&!this.shouldShowAuthorFeatures()}isItemSelected(e){let t=this.getItemModel(e);return!!t&&An(t)}hasAnyItemsSelected(){return this.getAllSelectedItems().length>0}hasMultipleItemsSelected(){return this.getAllSelectedItems().length>1}isItemSelectable(e){let t=this.getItemModel(e);return t?lg(t):!1}anyItemDependsOnRandomSeed(){return t2(this.listModel)}areActionsEnabled(){return this.graphSettings.config.actions==="auto"?r2(this.listModel):!!this.graphSettings.config.actions}getAllItemModels(){return mT(this.listModel)}getAllToolPreviewItems(){return cg(this.listModel)}isToolPreviewItem(e){return zO(this.listModel,e)}getAllModelsWithSliders(){return WO(this.listModel)}getGraphSettings(){return this.graphSettings}getAudioGraph(){var e;if(!this.isThreeDMode())return(e=this.grapher2d)==null?void 0:e.audioGraph}inAudioTraceMode(){let e=this.getAudioGraph();return!!(e&&e.audioTraceActive)}canAudioTrace(){let e=this.getAudioGraph();return e?e.canAudioTraceCurrentExp():!1}isAudioTracing(){let e=this.getAudioGraph();return e?e.isAudioTracing():!1}expressionsAreFullWidth(){return this.isNarrow()||this.graphSettings.config.graphpaper===!1}getExpListWidthString(){return this.expressionsAreFullWidth()?"100%":this.rootElt?this._getExpListWidth()+"px":"0"}getExpListWidth(){return this.rootElt?this._getExpListWidth():0}findFirstVisibleItem(){let e=sz(this,this._previousFirstVisibleId);if(this._previousFirstVisibleId=e,e)return this.getItemModel(e)}findLastVisibleItem(){let e=lz(this,this._previousLastVisibleId);if(this._previousLastVisibleId=e,e)return this.getItemModel(e)}updateRenderShellsAfterDispatch(){if(!this.rootElt||!this.isListVisible())return;let e=this.findFirstVisibleItem(),t=this.findLastVisibleItem();var i=e&&this.getItemRootNodeById(e.id),o=t&&this.getItemRootNodeById(t.id);if(i===this.lastInfiniteScrollFirstDOM&&o===this.lastInfiniteScrollLastDOM&&!this.hasDispatchSinceLastInfiniteScrollUpdate)return;this.lastInfiniteScrollFirstDOM=i,this.lastInfiniteScrollLastDOM=o,this.hasDispatchSinceLastInfiniteScrollUpdate=!1;let n=!1,a=e?e.index:1/0,s=t?t.index:1/0,l=this.listModel.dragState&&this.listModel.dragState.firstItemId,c,d=this.getOpenItemMenu();d&&d.type!=="multi-select-more"&&d.type!=="multi-select-transformations"&&d.type!=="geo-tool-dropdown"&&(c=d.model.id);for(let h of this.getAllItemModels()){var u=(h.index<a||h.index>s||h.isHiddenFromUI)&&!(h.type==="expression"&&h.sliderDragging);if(l==h.id&&(u=!1),c===h.id&&(u=!1),h.renderShell!==u&&(h.renderShell=u,n=!0,u)){let g=this.getItemRootNodeById(h.id);if(g){let b=g.getBoundingClientRect().height;b>0&&(h.cachedRenderHeight=b)}}}n&&this.markTickRequiredNextFrame()}updateRenderShellsBeforePaint(){if(this.hasDispatchSinceLastInfiniteScrollUpdate=!0,this.inPrintMode){for(let t of this.getAllItemModels())t.renderShell=!1;return}for(let t of this.getAllItemModels())t.isHiddenFromUI&&(t.renderShell=!0),t.type==="expression"&&t.sliderDragging&&(t.renderShell=!1);let e=this.getSelectedItem();e&&!this.isGeoItem(e.id)&&(e.renderShell=!1)}updateDragDrop(){let e=this.listModel.dragState;if(!e)return;let t=this.getItemModel(e.firstItemId);if(!t)return;let i=this.dragdrop_expressions.applyDrag();i&&(nb(this.listModel,i.dragState),Po(t,i.folderId),t.index!==i.newIndex&&Fd(this.listModel,t.index,i.newIndex,e.numberOfItems))}_tickSliders(e){this.getPlayingSliders().forEach(function(t){T2(t,e)})}tickTicker(e){let t=this.listModel.ticker.lastTickTime===void 0;this.evaluator.addClockTickEvent(this.listModel.ticker.id,t),rO(this.listModel.ticker,e)}stopAllSliders(){for(let e of this.getAllItemModels())e.type==="expression"&&e.slider.isPlaying&&xa(e,!1)}getPlayingSliders(){var e=this.getAllItemModels(),t=[];for(let i of e)i.type==="expression"&&i.sliderExists&&i.slider.isPlaying&&t.push(i);return t}areAnyImagesLoading(){return kO(this.listModel)}_commitUserRequestedViewport(e){var t;(t=this.getGrapher())==null||t.setUserRequestedViewport(e)}_setAxisLimitLatex(e,t){this.settingsViewModel={...this.settingsViewModel,limitLatex:{...this.settingsViewModel.limitLatex,[e]:t}};let o=t===""&&(e==="xstep"||e==="ystep")?0:xr(t,this.graphSettings.degreeMode),n=this.getGrapher();switch(e){case"xstep":{if(!Fg(o))return;this.graphSettings.setProperty("xAxisStep",o)}break;case"ystep":{if(!Fg(o))return;this.graphSettings.setProperty("yAxisStep",o)}break;case"xmin":case"xmax":case"ymin":case"ymax":case"zmin":case"zmax":{if(!n)return;let a=n.viewportController.getViewport(),s="xmin";e==="xmin"&&(s="xmax"),e==="ymax"&&(s="ymin"),e==="ymin"&&(s="ymax"),e==="zmax"&&(s="zmin"),e==="zmin"&&(s="zmax");let l=xr(this.settingsViewModel.limitLatex[s]||"",this.graphSettings.degreeMode),c=Wr.fromObject({...a.toObject(),[e]:o,[s]:l});if(!c.isValid(this.getAxisScaleSettings()))return;n.viewportController.setViewport(c);let u;switch(e){case"xmin":case"xmax":u="x";break;case"ymin":case"ymax":u="y";break;case"zmin":case"zmax":u="z";break;default:let h=e;throw new Error(`Invalid limit: ${h}`)}this.graphSettings.setProperty("lastChangedAxis",u),this.markSquareAxesAfterUserEditedViewport()}break}if(n){let a=n.viewportController.getViewport().toObject();this._commitUserRequestedViewport(a)}}unmarkLastChangedAxis(){this.graphSettings.setProperty("lastChangedAxis",void 0)}markSquareAxesAfterUserEditedViewport(){let e=this.getGrapher();if(!e)return;let t=e.viewportController.getViewport(),i=this.isThreeDMode()?t.isSquare3D():t.isSquare(e.getProjection().screen,this.getAxisScaleSettings());this.graphSettings.setProperty("squareAxes",i)}getLockViewportConfigSetting(){return this.graphSettings.config.lockViewport}getLockViewportUserSetting(){return this.graphSettings.userLockedViewport}canUserAddExpressions(){return!!this.graphSettings.config.expressions}areNotesEnabled(){return!!this.graphSettings.config.notes}areSlidersEnabled(){return!!this.graphSettings.config.sliders}areLinksEnabled(){return!!this.graphSettings.config.links}areImagesEnabled(){let e=window.FileReader,t=La&&tu&&tu[0]===8&&tu[1]===0&&tu[2]===0;return!!(this.graphSettings.config.images&&e&&!t&&!this.is3dProduct())}areFoldersEnabled(){return!!this.graphSettings.config.folders}isDecimalToFractionEnabled(){return!!this.graphSettings.config.decimalToFraction}isTraceEnabled(){return!!this.graphSettings.config.trace}areFunctionsRestricted(){return!!this.graphSettings.config.restrictedFunctions}areGeometryFunctionsForceEnabled(){return!!this.graphSettings.config.forceEnableGeometryFunctions}isQwertyKeyboardEnabled(){return!!this.graphSettings.config.qwertyKeyboard}isZoomFitEnabled(){return!!this.graphSettings.config.zoomFit}canEditOnWeb(){return!!this.graphSettings.config.editOnWeb}hasTransparentBackground(){return!!this.graphSettings.config.transparentBackground}shouldAudioTraceReverseExpressions(){return!!this.graphSettings.config.audioTraceReverseExpressions}hasDefaultState(){return!!this.graphSettings.defaultState}getDefaultViewport(){var t;var e=this.graphSettings.defaultState;return e&&e.graph?e.graph.viewport:(t=this.getGrapher())==null?void 0:t.getDefaultViewport()}getColors(){return this.isThreeDMode()?__dcg_shared_module_exports__['id']:this.graphSettings.config.colors}getImageOpacities(){return["0.2","0.4","0.6","0.8","1"]}getUIDragModes(){return["X","Y","XY"]}getNumberOfItemsInFolder(e){return IO(this.listModel,e)}getEnabledDragModesForItem(e){let t=this.getItemModel(e);if(!t||t.type!=="expression")return[];let i=t.formula,o=[];if(!i.move_strategy)return o;let n=i.move_strategy[0].type!=="none",a=i.move_strategy[1].type!=="none",s=n&&a;return n&&o.push("X"),a&&o.push("Y"),s&&o.push("XY"),o}shouldShowEvaluationForItem(e){let t=this.getItemModel(e);return!t||t.type!=="expression"?!1:kT(t)}getEvaluationValueForItem(e){let t=this.getItemModel(e);return t?t.type!=="expression"?NaN:TT(t):NaN}canDisplayEvaluationForItemAsFraction(e){if(!this.isDecimalToFractionEnabled())return!1;let t=this.getItemModel(e);if(!t||t.type!=="expression"||hC(t))return!1;let i=this.getEvaluationValueForItem(e);return typeof i!="number"?!1:__dcg_shared_module_exports__['Za'](i)}shouldEvaluationForItemDisplayAsFraction(e){if(!this.isDecimalToFractionEnabled())return!1;let t=this.getItemModel(e);return!t||t.type!=="expression"?!1:zd(t)}getEvaluationLabelOptionsForItem(e){return{...S2,displayAsFraction:this.shouldEvaluationForItemDisplayAsFraction(e)}}isInEditListMode(){return this.layoutModel.inEditListMode}authorFeaturesAvailable(){return!!this.graphSettings.config.authorFeatures}shouldShowAuthorFeatures(){return this.authorFeaturesAvailable()&&!!this.graphSettings.config.authorMode}shouldIgnoreGraphInteractions(e){return this.shouldShowAuthorFeatures()?!1:ba(e)}toolWillBeHiddenOrDisabled(e){return this.shouldShowAuthorFeatures()&&(!this.isGeoToolVisible(e,{ignoreAuthorMode:!0})||!this.isGeoToolEnabled(e,{ignoreAuthorMode:!0}))}setAuthorMode(e){this.graphSettings.config.setProperty("authorMode",e)}getInvertedColors(){return!!this.graphSettings.config.invertedColors}invertSwatches(){return this.isThreeDMode()&&this.getInvertedColors()}canUseAdvancedStyling(){return this.graphSettings.config.advancedStyling}isDegreeMode(){return this.graphSettings.degreeMode}isThreeDMode(){return this.graphSettings.threeDMode}showPlane3D(){let{threeDMode:e,showAxis3D:t,showPlane3D:i}=this.graphSettings;return e&&t&&i}showNumbers3D(){let{threeDMode:e,showAxis3D:t,showNumbers3D:i}=this.graphSettings;return e&&t&&i}getTranslucentSurfaces(){return!!this.graphSettings.config.translucentSurfaces}getPerspectiveDistortion(){let e=this.graphSettings.config.perspectiveDistortion;return isNaN(e)?1:e<1e-4?0:__dcg_shared_module_exports__['wb'](e,0,tx)}isBeta3DMode(){return this.isThreeDMode()&&Hi("beta3d")}areLogModeRegressionsForced(){return this.graphSettings.config.forceLogModeRegressions}areLogModeRegressionsDefault(){return this.graphSettings.config.defaultLogModeRegressions}setAllRegressionsToLogMode(){for(let e of this.getAllItemModels())e.type==="expression"&&e.formula&&e.formula.is_regression&&RT(e,!0)}isGraphSettingsOpen(){return this.layoutModel.graphSettingsOpen}isAddExpressionOpen(){return this.layoutModel.addExpressionOpen}shouldRenderList(){if(this.layoutModel.expressionsVisible)return!0;var e=this.layoutModel.expressionsHiddenTime;return e===void 0?!1:Date.now()-e<=500}isListVisible(){return this.layoutModel.expressionsVisible}isGrapherEnabled(){return this.graphSettings.config.graphpaper!==!1}isListEnabled(){return this.graphSettings.config.expressions!==!1}areDistributionsEnabled(){return this.graphSettings.config.distributions===!0}isExpressionListFocused(){let e=this.getFocusLocation();if(!e)return!1;switch(e.type){case"settings":case"generic-menu":case"expression-menu":case"editable-label":case"geo-token":case"multi-select-more-icon":case"multi-select-transformations-icon":case"geo-header-back-link":case"multi-select-delete-icon":case"multi-select-show-hide-icon":case"new-transformation-number":case"label-points-icon":case"geo-show-constructions-icon":case"geo-basic-tool":case"geo-basic-tool-menu-item":case"regression-output":case"graph-paper":case"zoom-in-btn":case"zoom-restore-btn":case"quest":case"global-mute-button":return!1;case"distribution-param":case"cdf-limit":case"slider-limit":case"domain-limit":case"expression":case"visualization-prop":case"search-expressions":case"replace-expressions":case"ticker":case"table":case"image":case"readonly-expression":case"braille-output":case"table-container":case"text":case"folder":case"add-item-btn":case"add-expression-btn":case"add-note-btn":case"add-table-btn":case"add-folder-btn":case"add-ticker-btn":case"add-image-btn":case"change-image-btn":case"edit-list-toggle":case"expression-icon":case"image-icon":case"slider-icon":case"slider-animation-properties-icon":case"slider-thumb":case"table-icon":case"action-icon":case"hide-expression-list-btn":case"show-expression-list-btn":case"top-level-icon":return!0;default:return e}}needsFakeKeypad(){if(this.inAudioTraceMode()&&this.isKeypadEnabled())return!0;let e=this.getFocusLocation();if(!e||this.getBrailleMode()!=="none"&&ia())return!1;switch(e.type){case"settings":return iz(e.location);case"new-transformation-number":case"distribution-param":case"cdf-limit":case"slider-limit":case"domain-limit":case"expression":case"visualization-prop":case"search-expressions":case"replace-expressions":case"ticker":return!0;case"expression-menu":return e.location==="opacity"||e.location==="linewidth"||e.location==="lineopacity"||e.location==="pointopacity"||e.location==="pointsize"||e.location==="labelsize"||e.location==="labelangle"||e.location==="updaterule";case"table":{if(this.isInEditListMode())return!1;let o=e.location;if(o.row===0)return!0;var t=this.getItemModel(e.id);if(!t||t.type!=="table")return!1;let n=t.columnModels[o.column];return n?!n.disabled:!1}case"image":return e.location!=="name";case"readonly-expression":case"braille-output":case"regression-output":case"graph-paper":case"table-container":case"text":case"folder":case"add-item-btn":case"add-expression-btn":case"add-note-btn":case"add-table-btn":case"add-folder-btn":case"add-ticker-btn":case"add-image-btn":case"change-image-btn":case"edit-list-toggle":case"hide-expression-list-btn":case"show-expression-list-btn":case"geo-token":case"multi-select-more-icon":case"multi-select-transformations-icon":case"geo-header-back-link":case"multi-select-delete-icon":case"multi-select-show-hide-icon":case"label-points-icon":case"geo-show-constructions-icon":case"geo-basic-tool":case"geo-basic-tool-menu-item":case"generic-menu":case"zoom-in-btn":case"zoom-restore-btn":case"quest":case"global-mute-button":return!1;case"expression-icon":case"image-icon":case"slider-icon":case"action-icon":case"slider-animation-properties-icon":case"slider-thumb":case"table-icon":case"top-level-icon":return!1;case"editable-label":return this.getItemEditableLabelMode(e.id)==="MATH";default:return e}}isIdentifierRenameValid(e){return jn(e)?!LO(this.listModel,e):!1}getBrandingMode(){return this.getEditLink()?"static-edit-link":this.getGraphSettings().config.editOnWeb?"edit-link":"powered-by"}getEditLink(){return window.iframeEmbedBrandingLink}_expressionZoomFit(e,t,i=!1){let o=this.getItemModel(e);if(this.isThreeDMode()||!this.grapher2d||!this.isZoomFitEnabled()||!o||o.type!=="expression"&&o.type!=="table"||!o.boundingBoxes||!o.boundingBoxes.length)return!1;var n=this.grapher2d.viewportController;if(!("zoomCustom"in n))return!1;let a=Hy(o.boundingBoxes,n.getProjection());return a?(i?n.setViewport(Wr.fromObject(a)):n.zoomCustom(a),t&&ur(this,{type:"zoom-restore-btn"}),!0):!1}_deleteItemAndAnimateOut(e,t){let o=this.getItemNodeById(e);o&&(Wn(o,{transition:.2+"s",opacity:"0",transform:"scale(.1, .1)"}),setTimeout(()=>{this.dispatch({type:"finish-deleting-item-after-animation",id:e,setFocusAfterDelete:t})},1e3*.2))}_finishDeletingItemAfterAnimation(e,t){let i=this.getItemModel(e);if(!i)return;let o=this.getItemNodeById(e),n=o&&document.activeElement&&o.contains(document.activeElement),a=cu(this.listModel,i.index);if(this._removeExpressionSynchronously(i),!(!t||!n)){if(!a){let s=sg(this.listModel);s&&(a=s)}a&&Yi(this,a.id,"end")}}_removeExpressionSynchronously(e){let t=ug(this.listModel,e.index);this.garbageCollectGeo(t,{}),this.ensureAtLeastOneVisibleItem()}setRootElt(e){this.rootElt=e,this.dragdrop_expressions=new Yy(this)}getRootElt(){return this.rootElt}_hideExpressions(e){this.graphSettings.config.expressions&&(lr(this.listModel,void 0),this.layoutModel={...this.layoutModel,expressionsVisible:!1,expressionsHiddenTime:Date.now()},e?ur(this,{type:"show-expression-list-btn"}):Pr())}_showExpressions(e){this.graphSettings.config.expressions&&(this.layoutModel={...this.layoutModel,expressionsVisible:!0},e?ur(this,{type:"hide-expression-list-btn"}):Pr())}_showToast(e){this.toastData=e,clearTimeout(this._hideToastTimeout);let t=typeof e.hideAfter=="number"?e.hideAfter:6e3;t>0&&(this._hideToastTimeout=setTimeout(()=>{this.dispatch({type:"toast/close",onHide:this.toastData.onHide})},t))}_setExpressionPropertiesFromAPI(e,t){let i=this.getItemModel(e);if(i)if(i.type==="table"&&t.columns){t=__dcg_shared_module_exports__['i'](t);let a=aL(i,t);var o=og(this.listModel,a);this._toplevelReplaceItemAt(i.index,o,!1)}else if(i.type==="text"){let a=this.getItemModel(e);if(!a)return;for(let s in t)if(t.hasOwnProperty(s))switch(s){case"text":Qk(a,t.text);break;case"secret":aC(a,t.secret);break;case"readonly":gb(a,t.readonly);break}}else{let a=this.getItemModel(e);if(!a)return;for(var n in t)if(t.hasOwnProperty(n))switch(n){case"slider":{if(a.type!=="expression")continue;let s=t[n];s.hasOwnProperty("min")&&mg(a,s.min),s.hasOwnProperty("max")&&fg(a,s.max),s.hasOwnProperty("step")&&lb(a,s.step),s.hasOwnProperty("isPlaying")&&xa(a,s.isPlaying)}break;case"polarDomain":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.polarDomain.min),"theta"),Xn(a,__dcg_shared_module_exports__['wc'](t.polarDomain.max),"theta")}break;case"parametricDomain":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain.min),"t"),Xn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain.max),"t")}break;case"parametricDomain3Du":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Du.min),"u"),Xn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Du.max),"u")}break;case"parametricDomain3Dv":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dv.min),"v"),Xn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dv.max),"v")}break;case"parametricDomain3Dr":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dr.min),"r"),Xn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dr.max),"r")}break;case"parametricDomain3Dphi":{if(a.type!=="expression")continue;Jn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dphi.min),"phi"),Xn(a,__dcg_shared_module_exports__['wc'](t.parametricDomain3Dphi.max),"phi")}break;case"hidden":this._setItemHidden(e,t.hidden);break;case"secret":aC(a,t.secret);break;case"readonly":gb(a,t.readonly);break;case"color":{if(a.type!=="expression")continue;wC(a,t.color)}break;case"dragMode":{if(a.type!=="expression")continue;bu(a,t.dragMode)}break;case"label":{if(a.type!=="expression")continue;zc(a,t.label)}break;case"showLabel":{if(a.type!=="expression")continue;fu(a,t.showLabel)}break;case"labelSize":{if(a.type!=="expression")continue;hb(a,t.labelSize)}break;case"labelOrientation":{if(a.type!=="expression")continue;UT(a,t.labelOrientation)}break;case"latex":if(a.type!=="expression")continue;Qn(a,t.latex);break;case"points":if(a.type!=="expression")continue;BT(a,!!t.points);break;case"lines":if(a.type!=="expression")continue;KT(a,!!t.lines);break;case"pointStyle":if(a.type!=="expression")continue;zT(a,t.pointStyle);break;case"pointSize":case"movablePointSize":if(a.type!=="expression")continue;pb(a,t.pointSize);break;case"pointOpacity":if(a.type!=="expression")continue;db(a,t.pointOpacity);break;case"lineStyle":if(a.type!=="expression")continue;vC(a,t.lineStyle);break;case"lineWidth":if(a.type!=="expression")continue;yg(a,t.lineWidth);break;case"lineOpacity":if(a.type!=="expression")continue;bg(a,t.lineOpacity);break;case"fill":if(a.type!=="expression")continue;NT(a,t.fill);break;case"fillOpacity":if(a.type!=="expression")continue;cb(a,t.fillOpacity);break;case"id":case"type":case"domain":break;default:throw new Error("trying to call setProperty for: "+n)}}}_isParentFolderHidden(e){let t=this.getItemModel(e);if(!t)return!1;let i=Yn(t);return i?i.hidden:!1}_toggleItemHidden(e){var t;if(this._isParentFolderHidden(e))this._setItemHidden(e,!1);else{let i=this.getItemModel(e);if(!i)return;switch(i.type){case"expression":this._setItemHidden(e,!Zo(i));break;case"image":case"folder":this._setItemHidden(e,!i.hidden);break;case"table":case"text":break;default:return i}ya(i)&&(Zo(i)||this.logEvent({category:"tone",action:Zo(i)?"mute-local":"unmute-local"}),(t=this.toneController)==null||t.recomputeAudio())}}_toggleTableColumnHidden(e,t){if(this._isParentFolderHidden(e))this._setTableColumnHidden(e,t,!1);else{let i=this.getItemModel(e);if(!i||i.type!=="table")return;let o=ro(i,t);if(!o)return;this._setTableColumnHidden(e,t,!o.hidden)}}_setTableColumnHidden(e,t,i){let o=this.getItemModel(e);if(!o||o.type!=="table")return;let n=hv(o,t);!i&&this._isParentFolderHidden(e)&&this._setItemHidden(o.folderId,!1),hL(o,t,i),!i&&n&&Xk(o,t,!0)}_setItemHidden(e,t){let i=this.getItemModel(e);if(i)switch(!t&&i.type!=="folder"&&this._isParentFolderHidden(i.id)&&this._setItemHidden(i.folderId,!1),i.type){case"expression":t_(i,t);break;case"folder":_P(i,t);break;case"image":VL(i,t);break;case"table":case"text":break;default:return i}}_addItemToEndFromAPI(e){let t=Fv(this.listModel);!e.secret&&t&&t.type==="expression"&&t.latex===""&&ug(this.listModel,t.index),ds(this.listModel,e)}copyExpressionToIndex(e,t,i){let o={stripDefaults:!1},n;switch(e.type){case"expression":n=Hv(e,o);break;case"table":n=Jh(e,o),n.columns&&n.columns.forEach(s=>{s.id=this.generateId()});break;case"image":n=Sv(e,o);break;case"text":n=mv(e,o);break;default:return}let a=this.createItemModel({...n,id:this.generateId()});this._toplevelInsertItemAt(t,a,!1,i||e.folderId)}_toplevelInsertItemAt(e,t,i,o){let n=t;_a(this.listModel,n,e),o&&Po(n,o),i&&Yi(this,n.id)}_toplevelNewItemAtSelection(e,t){this.setGeoTool("selection");let i=this.getSelectedItem();if(i){let s=i.type==="expression"&&!i.latex;if(s&&!i.folderId&&(e.type!=="expression"||e.latex))return this._toplevelReplaceItemAt(i.index,e,t.shouldFocus);if(s&&i.folderId&&e.type!=="expression"&&e.type!=="folder")return this._toplevelReplaceItemAt(i.index,e,t.shouldFocus);if(i.type!=="folder"&&!i.folderId)return this._toplevelInsertItemAt(i.index+1,e,t.shouldFocus,void 0);if(i.type!=="folder"&&i.folderId&&e.type!=="folder")return this._toplevelInsertItemAt(i.index+1,e,t.shouldFocus,i.folderId);if(i.type==="folder"&&!i.collapsed&&e.type!=="folder")return this._toplevelInsertItemAt(i.index+1,e,t.shouldFocus,i.id)}let o=this.getFirstFullyVisibleItem();for(o&&o.type==="folder"&&(o=this.getItemModelByIndex(o.index+1));o&&o.type!=="folder"&&o.folderId;)o=this.getItemModelByIndex(o.index+1);let n=o?o.index:this.getItemCount();return this._toplevelInsertItemAt(n,e,t.shouldFocus,void 0)}getFirstFullyVisibleItem(){let e=NA(this);if(e)return Rl(this.listModel,e)}findEl(e){if(this.rootElt)return this.rootElt.querySelector(e)||void 0}getExppanelElt(){return Wy(this)}scrollItemIntoView(e){if(!this.rootElt||!this.isListVisible())return;let t=this.getItemNodeById(e.id),i=Wy(this);if(!(!t||!i)){if(e.type==="table"){let o=t.querySelector(".dcg-row .dcg-selected");if(o){Qs(o,i,60);return}}Qs(t,i,90)}}scrollSelectedItemIntoView(){let e=this.getFirstSelectedItem();if(e){if(e&&e.type!=="folder"&&e.folderId){let t=this.getItemModel(e.folderId);t&&t.type==="folder"&&t.collapsedChildIsSelected&&(e=t)}this.scrollItemIntoView(e)}}_pasteTable(e){let t=this.getGrapher();if(!t)return;let i=Rv(this.listModel),o=Jk(i,e,this),n=this.createItemModel(o);this._toplevelNewItemAtSelection(n,{shouldFocus:!0}),this._closeAddExpression();let a=t.getProjection(),s=a.viewport,l=__dcg_shared_module_exports__['sa'](e[0],function(u){return parseFloat(u)}),c=__dcg_shared_module_exports__['sa'](e[1],function(u){return parseFloat(u)});if(this.is3dProduct())return;let d={xmin:__dcg_shared_module_exports__['za'](l),xmax:__dcg_shared_module_exports__['ya'](l),ymin:__dcg_shared_module_exports__['za'](c),ymax:__dcg_shared_module_exports__['ya'](c),type:"table"};if(isFinite(d.xmin)&&isFinite(d.xmax)&&isFinite(d.ymin)&&isFinite(d.ymax)&&(d.xmax>s.xmax||d.xmin<s.xmin||d.ymax>s.ymax||d.ymin<s.ymin)){let u=Hy([d],a);if(u&&!this.viewportIsLocked()){let h=new Wr(u.xmin,u.xmax,u.ymin,u.ymax);t.viewportController.setViewport(h),this._showToast({message:this.s("graphing-calculator-text-toast-zoom-to-fit"),undoCallback:()=>{this.dispatch({type:"undo"})}}),this.markSquareAxesAfterUserEditedViewport()}}}_insertSeveralExpressions(e){for(var t=0;t<e.length;t++){let i;i=this.createItemModel(e[t]),this._toplevelNewItemAtSelection(i,{shouldFocus:!0})}}_appendNumberList(e){let t=this.getSelectedItem();if(t&&t.type==="expression"){let i=t.latex,o=this.createItemModel({type:"expression",id:this.generateId(),latex:i+e});return this._toplevelReplaceItemAt(t.index,o,!0)}}_openOnWeb(){this.runAfterDispatch(()=>{let e=this.getGrapher();if(!e)return;let t=JSON.stringify(this.getState()),i=e.screenshot({width:100,height:100}),a=(this.getGraphSettings().config.crossOriginSaveTest?"/":"https://www.desmos.com/")+"api/v1/calculator/cross_origin_save",s=document.createElement("div");Xz.mountToNode(s0,s,{stateData:()=>t,thumbData:()=>i,saveURL:()=>a}),this.rootElt.append(s);let l=s.querySelector("form[name=open_graph_on_web]");W(l).trigger("submit"),s.remove()})}notifyBugsnagAboutMissingSelectedItem(e,t){let i=pg(this.listModel);var o="";try{i?o=JSON.stringify(i.cachedUndoRedoFullState,null,2):o="undefined"}catch(s){o="[[could not stringify]]"}var n="";try{if(!i)n="undefined";else{let s={id:i.id,index:i.index,displayIndex:i.index,secretIndex:i.secretIndex,guid:i.guid,renderShell:i.renderShell,isHiddenFromUI:i.isHiddenFromUI,hasDCGView:!!i.dcgView,cachedRenderHeight:i.cachedRenderHeight};n=JSON.stringify(s,null,2)}}catch(s){n="[[could not stringify]]"}var a="";try{a=JSON.stringify(yT(this.listModel),null,2)}catch(s){a="[[could not stringify]]"}Mi("ReplaceItemAtError: no item at index",{metaData:{index:e,shouldFocus:t,selectedModelJSON:n,selectedItemJSON:o,listStateJSON:a}})}_toplevelReplaceItemAt(e,t,i){let o=t,n=this.getItemModelByIndex(e);n||this.notifyBugsnagAboutMissingSelectedItem(e,i);let a=n.type!=="folder"&&n.folderId;ug(this.listModel,e),_a(this.listModel,o,e),a&&Po(o,a),i&&Yi(this,o.id)}convertImageToDraggable(e){let t=this.getItemModel(e);if(!t||t.type!=="image")return;let i=t.folderId,o=t.index+1,n=t.center,a=Rv(this.listModel),s=__dcg_shared_module_exports__['bb']("C_"+a),l=this.createItemModel({id:this.generateId(),type:"expression",latex:s+"="+n,dragMode:"XY",hidden:!0});_a(this.listModel,l,o),i&&Po(l,i),fa(t,"center",s),tT(t,!0),rT(t,!0)}createSlidersForItem(e,t){let i=this.getItemModel(e);if(!i)return;let o=i.type!=="folder"&&i.folderId;return this.createSliders({model:i,folderId:o,index:i.index+1},t)}createSlidersForTicker(e){return this.createSliders({model:this.listModel.ticker,folderId:!1,index:0,doNotChangeFocus:!0},e)}createSliders({model:e,folderId:t,index:i,doNotChangeFocus:o},n){var a=[];e.type==="ticker"?Iv(e,(h,g)=>{a.push({latex:h,location:g})}):ig(e,(h,g)=>{a.push({latex:h,location:g.location})});var s=YB(a,n,{degreeMode:this.graphSettings.degreeMode});let l=e.formula?e.formula.action_value:void 0;for(var c=n.map(h=>{var g=s[h],b="1";g&&g.value!==void 0&&(b=g.value);var C;h===""?C="":l&&l.hasOwnProperty(h)?C=l[h]:C=h+"="+b;var S={type:"expression",id:this.generateId(),latex:C,color:this.getNextColor(),hidden:!!C};return g&&(g.min!==void 0&&(S.slider||(S.slider={}),S.slider.hardMin=!0,S.slider.min=g.min),g.max!==void 0&&(S.slider||(S.slider={}),S.slider.hardMax=!0,S.slider.max=g.max),g.step!==void 0&&(S.slider||(S.slider={}),S.slider.step=g.step)),S}),d=c.length-1;d>=0;d--){let h=this.createItemModel(c[d]);_a(this.listModel,h,i),t&&Po(h,t)}if(o)return;let u=c[c.length-1];u.latex===""?Yi(this,u.id):ur(this,void 0)}_uploadImagesAndWaitForThemToLoad(e){let{files:t,id:i}=e;if(!t||t.length===0){this._showToast({message:this.s("graphing-calculator-text-toast-no-file-selected")});return}if(i&&t.length>1){this._showToast({message:this.s("graphing-calculator-text-toast-choose-one-file")});return}let o=qL({controller:this,files:t,id:i}),n=o.errors[0];n&&this._showToast({message:n});for(let a of o.tokens)this.__pendingImageUploads[a]=!0;this.isUploadingImages()&&this._showToast({message:this.s("graphing-calculator-text-toast-uploading-images"),onHide:()=>{this._clearPendingImageUploads()}})}getImageToRetry(){let e;for(let t of this.getAllItemModels())t.type==="image"&&t.loadStatus==="failed"&&(!e||e.failures>t.failures)&&(e=t);return e}retryLoadingFailedImage(e){let t=Date.now(),i=t-this.imageRetryState.lastAttemptTime,o=1e3*Math.pow(2,this.imageRetryState.attempts);this.imageRetryState.attempts>0&&i<o||(oT(e),this.imageRetryState={lastAttemptTime:t,attempts:this.imageRetryState.attempts+1})}getSelectedItem(){return pg(this.listModel)}getFirstSelectedItem(){let e=this.getAllSelectedItems(),t=e[0];if(t){for(let i=1;i<e.length;i++){let o=e[i];o.index<t.index&&(t=o)}return t}}getAllSelectedItems(){return Bv(this.listModel)}getOpenItemMenu(){return this.listModel.openItemMenu}isItemSettingsMenuOpen(e){var t=this.listModel.openItemMenu;return t?t.guid===e:!1}closeItemSettingsMenu(){let e=this.getOpenItemMenu();e!==void 0&&(e.focusFirstOption&&(e.previousFocusLocation!==void 0?ur(this,e.previousFocusLocation):this.focusOpenMenuIcon()),this.listModel.openItemMenu=void 0)}focusOpenMenuIcon(){let e=this.getOpenItemMenu();e&&(e.type==="slider"?this.dispatch({type:"set-focus-location",location:{type:"slider-animation-properties-icon",id:e.model.id}}):e.type==="image"?this.dispatch({type:"set-focus-location",location:{type:"image-icon",id:e.model.id}}):e.type==="table-column"?this.dispatch({type:"set-focus-location",location:{type:"table-icon",id:e.model.table.id,columnId:e.model.id}}):e.type==="geo-tool-dropdown"?this.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:e.tools[0]}}):e.type==="multi-select-more"?this.dispatch({type:"set-focus-location",location:{type:"multi-select-more-icon"}}):e.type==="multi-select-transformations"?this.dispatch({type:"set-focus-location",location:{type:"multi-select-transformations-icon"}}):this.dispatch({type:"set-focus-location",location:{type:"expression-icon",id:e.model.id}}))}getFocusedItem(){return JB(this)}getFocusLocation(){return this.focusLocation}isFocusLocationFocused(e){let t=this.focusLocation,i=e;return!t||!i?!1:__dcg_shared_module_exports__['Oa'](t,i)}isCurrentFocusLocationValid(){var o;let e=this.focusLocation;if(!e)return!0;if(e.type==="settings")return e.location==="icon"||this.isGraphSettingsOpen();if(e.type==="add-item-btn"||e.type==="edit-list-toggle"||e.type==="hide-expression-list-btn"||e.type==="show-expression-list-btn")return this.isListEnabled();if(e.type==="add-expression-btn"||e.type==="add-table-btn")return this.layoutModel.addExpressionOpen;if(e.type==="add-note-btn")return this.layoutModel.addExpressionOpen&&this.areNotesEnabled();if(e.type==="add-folder-btn")return this.layoutModel.addExpressionOpen&&this.areFoldersEnabled();if(e.type==="add-ticker-btn")return this.layoutModel.addExpressionOpen&&this.areActionsEnabled();if(e.type==="add-image-btn")return this.layoutModel.addExpressionOpen&&this.areImagesEnabled();if(e.type==="zoom-in-btn"||e.type==="zoom-restore-btn")return!0;if(e.type==="search-expressions"||e.type==="replace-expressions")return this.expressionSearchOpen;if(e.type==="ticker")return this.listModel.ticker.open;if(e.type==="generic-menu")return!!this.getOpenItemMenu();if(e.type==="graph-paper"){let n=this.getGrapher();return!!(n&&n.getIsVisible()&&n.settings.config.graphpaper)}if(e.type==="geo-show-constructions-icon"||e.type==="geo-token"||e.type==="multi-select-more-icon"||e.type==="multi-select-transformations-icon"||e.type==="label-points-icon")return this.isGeoUIActive();if(e.type==="new-transformation-number"){let n=this.getGeoModel(),a=n.getCurrentTool(),s=n.getNonObjectsState().ui.currentTool.inputIndex,l=a.getSpec&&a.getSpec();return!!l&&!!l.inputs[s]&&!!l.inputs[s].numberInputInfo}if(e.type==="geo-header-back-link"||e.type==="multi-select-delete-icon"||e.type==="multi-select-show-hide-icon")return this.isGeoUIActive()&&this.hasAnyItemsSelected();if(e.type==="geo-basic-tool")return this.isGeoUIActive()&&e.tool!=="expression-edit";if(e.type==="regression-output")return!!this.getItemModel(e.id)&&e.parameter!=="";if(e.type==="quest")return this.getQuestIsActive();let t=this.getOpenItemMenu();if(e.type==="geo-basic-tool-menu-item")return this.isGeoUIActive()&&e.tool!==""&&t!==void 0&&t.type==="geo-tool-dropdown";if(e.type==="global-mute-button")return!!((o=this.toneController)!=null&&o.someExpressionsShouldPlayTones());let i;if(t&&t.type==="table-column"?i=t.model.table:i=this.getItemModel(e.id),!i)return!1;if(e.type==="change-image-btn")return this.listModel&&i.type==="image"&&this.areImagesEnabled();if(e.type==="expression-menu"){if(e.location==="start"||e.location==="end"||e.location==="updaterule"||e.location==="anywhere"||i.type==="table")return!0;if(i.type!=="expression")return!1;let{points:n,lines:a,fill:s}=i;Ul(i)&&(s=!0);let l=__dcg_shared_module_exports__['rc'](i.formula.expression_type,{points:n,lines:a,fill:s},c=>{Mi("getReconciledExpressionProps [Chrome Switch Bug]",{metaData:{method:"isCurrentFocusLocationValid",type:c}})});return!(!l.fill&&!l.points&&!l.lines&&!i.showLabel)}if(!this.isItemSelected(e.id)&&e.type!=="editable-label")return!1;switch(e.type){case"domain-limit":return!(i.type!=="expression"||!SC(i)&&!EC(i));case"expression-icon":case"top-level-icon":return!0;case"image-icon":return i.type==="image"&&i.loadStatus!=="loading"&&i.loadStatus!=="failed"&&!i.error;case"action-icon":return!(i.type!=="expression"||!Mg(i));case"slider-icon":case"slider-animation-properties-icon":case"slider-thumb":case"slider-limit":return!(i.type!=="expression"||!o_(i));case"table-icon":return i.type==="table"&&this.getGraphSettings().config.graphpaper;case"visualization-prop":return!(i.type!=="expression"||!AC(i));case"distribution-param":if(i.type!=="expression")return!1;let n=Ba(i);return n?e.location in n.values:!1;case"cdf-limit":return i.type!=="expression"?!1:Wc(i);case"image":return i.type==="image";case"folder":return i.type==="folder";case"text":return i.type==="text";case"expression":return!(i.type!=="expression"||this.isInEditListMode()||e.isFakeGraphFocus&&!this.getValidCursorContext());case"readonly-expression":return this.isItemReadonly(i.id)||i.type==="expression"&&this.isInEditListMode();case"braille-output":return i.type==="expression"&&this.getBrailleMode()!=="none";case"table":return i.type!=="table"?!1:bL(i,e.location);case"table-container":return i.type==="table"&&this.isInEditListMode();case"editable-label":return i.type!=="expression"?!1:Tg(i);default:return e}}shouldAllowMovingPointsWithKeyboard(){let e=this.getActiveTool();return e==="selection"||e==="box-selection"}isDragDropActive(){return!!this.listModel.dragState}isItemBeingDragged(e){let t=this.listModel.dragState;return!(!t||t.firstItemId!==e)}shouldRenderDraggedItemAsToken(){let e=this.listModel.dragState;return e?e.renderType==="token":!1}canDraggedItemBeMovedIntoTokenPane(){var n,a,s,l,c;let e=this.getDraggedItemId();if(!e)return!1;let t=this.getItemModel(e);if(!t||t.type!=="expression"||this.isItemMarkedReadonly(t.id))return!1;let i=(n=t.formula.geometry)==null?void 0:n.valueType;if(i===void 0)return!1;let o=(s=(a=t.formula.geometry)==null?void 0:a.call)==null?void 0:s.parents;if(o){let d=(c=(l=t.formula.geometry)==null?void 0:l.call)==null?void 0:c.symbol;for(let u=0;u<o.length;u++){let h=o[u];if(!(d==="rotate"&&u===1||d==="dilate"&&u===1)){if(d==="glider"&&u===1){let g=LT(t),b=g&&g[1];return b&&b.type==="Decimal"}if(d==="translate"&&u===1){let g=LT(t),b=g&&g[0],C=g&&g[1];if(b&&__dcg_shared_module_exports__['gc'](b)&&(C==null?void 0:C.type)==="Dot"&&C.args[1].type==="Cmd"&&C.args[1].val==="start"&&__dcg_shared_module_exports__['gc'](C.args[0])&&__dcg_shared_module_exports__['m'](b.span)===__dcg_shared_module_exports__['m'](C.args[0].span))return!0}if(!h)return!1}}return!(__dcg_shared_module_exports__['ca'](i,__dcg_shared_module_exports__['N'])&&!__dcg_shared_module_exports__['bc'](d))}if(__dcg_shared_module_exports__['ca'](i,__dcg_shared_module_exports__['p'])){let d=t.latex.slice(t.latex.indexOf("=")+1);if(/^ *(\\left)*\([0-9. ,-]+(\\right)*\) *$/.test(d))return!0}return!1}getDraggedItemId(){let e=this.listModel.dragState;return e&&e.firstItemId}getDraggedIdentifier(){var i;let e=this.getRawDragState();if(!e)return;let t=this.getItemModel(e.dragTarget.calcId);if(!(!t||t.type!=="expression"))return(i=Ii(t))==null?void 0:i.identifier}getRawDragState(){return this.listModel.dragState}initStateStack(){this.stateStack=new ld,this.stateStack.addState({diffState:this.getUndoRedoDiffState(),fullState:this.getUndoRedoFullState()})}getUndoRedoDiffState(){var e;return{randomSeed:this.getRandomSeed(),layoutModel:this.layoutModel,settingsViewModel:this.settingsViewModel,graph:(e=this.getGrapher())==null?void 0:e.getUndoRedoDiffState(),expressions:YO(this.listModel),geometryToolbar:dT(this.geometryToolbarModel),wasCompleteSetState:this.isCurrentlyDoingSetState}}getUndoRedoFullState(){var e;return{randomSeed:this.getRandomSeed(),layoutModel:this.layoutModel,settingsViewModel:this.settingsViewModel,graph:(e=this.getGrapher())==null?void 0:e.getUndoRedoFullState(),expressions:yT(this.listModel),geometryToolbar:dT(this.geometryToolbarModel),wasCompleteSetState:this.isCurrentlyDoingSetState}}getState(e){var n,a;let t={stripDefaults:!0};e&&e.hasOwnProperty("stripDefaults")&&(t.stripDefaults=!!e.stripDefaults);let i=(a=(n=this.getGrapher())==null?void 0:n.getState(t))!=null?a:{...this.getBlankState().graph,degreeMode:this.graphSettings.degreeMode};var o={version:Ds,randomSeed:this.getRandomSeed(),graph:i,expressions:jO(this.listModel,t)};if(this.isGeometry()){let s=bO(this.geometryToolbarModel,t);s&&(o.geometryToolbar=s)}return e&&e.avoidBackMigration?__dcg_shared_module_exports__['i'](o):dN(__dcg_shared_module_exports__['i'](o))}getProduct(){return this.graphSettings.config.product}isGeometry(){return this.getProduct()==="geometry-calculator"}is3dProduct(){return this.getProduct()==="graphing-3d"}isMultiSelectEnabled(){return this.isGeometry()}shouldEvaluateSelection(){return this.isGeometry()}canLoadPastedLink(e){return this.graphSettings.config.pasteGraphLink?this.isGeometry()?a0(e)||UA(e)||HA(e):this.is3dProduct()?qA(e):a0(e):!1}getBlankState(e){if(this.isGeometry())return fm;if(this.is3dProduct())return mz;let t;return(e==null?void 0:e.degreeMode)!==void 0?t=e.degreeMode:t=this.graphSettings.config.clearIntoDegreeMode,t?{...pp,graph:{...pp.graph,degreeMode:!0}}:pp}externalSetState(e,t){this._clearPendingImageUploads(),this.rootElt&&document.activeElement&&this.rootElt.contains(document.activeElement)&&W(document.activeElement).trigger("blur"),t||(t={}),e||(e=this.getBlankState()),typeof e=="string"&&(e=JSON.parse(e));let i=nl(e),o=this.graphSettings.config.product,n;if(!i.graph||i.graph.product===void 0?n="graphing":n=i.graph.product,n!==o)throw new Error(`Data Error: state appears to have been saved in the '${n}' product and cannot be opened in the '${o}' product.`);o==="geometry-calculator"&&(this.showConstructionsOpen=!1),eP&&o==="graphing-3d"&&i.graph.speed3D&&delete i.graph.speed3D;let a=this.layoutModel;this.setState(i,t),UO(this.listModel),Nv(this.listModel),this.layoutModel={...FA(this.graphSettings.config),keypadMinimized:a.keypadMinimized,keypadLayout:a.keypadLayout,keypadFunctionsOpen:a.keypadFunctionsOpen,expressionsVisible:!!this.graphSettings.config.expressions&&(this.isListVisible()||!!t.forceExpressionsOpen)},this.settingsViewModel=RA(),ur(this,void 0),t.forceUnsavedChanges?this.enqueueEvent("change"):this.enqueueEvent("clearUnsavedChanges")}setState(e,t){if(this.isCurrentlyDoingSetState=!0,this.suggestedIdentifierRename=void 0,"graph"in e&&e.graph!==void 0){if("threeDMode"in e.graph&&e.graph.threeDMode&&this.grapher3d){if("showBox3D"in e.graph&&this.grapher3d.webglLayer.showBox(e.graph.showBox3D),"showAxis3D"in e.graph&&this.grapher3d.webglLayer.showAxes(!!e.graph.showAxis3D),"showAxisLabels3D"in e.graph&&this.grapher3d.webglLayer.updateAxes(),"showPlane3D"in e.graph||"showAxis3D"in e.graph){let n=("showPlane3D"in e.graph?!!e.graph.showPlane3D:this.graphSettings.showPlane3D)&&("showAxis3D"in e.graph?!!e.graph.showAxis3D:this.graphSettings.showAxis3D);this.grapher3d.webglLayer.showPlane(n)}let o=this.grapher3d.baseplaneWidth();this.grapher2d.setCanvasSizeFor3D(o,o),this.grapher3d.webglLayer.setBackgroundColor(e.graph.backgroundColor3d)}let i=this.getGrapher();i?i.setGrapherState(e.graph):Wu.copyGraphProperties(e.graph,this.graphSettings),"threeDMode"in e.graph&&e.graph.threeDMode&&this.grapher3d&&this.grapher3d.controls.copyWorldRotationToWorld()}if("expressions"in e){lr(this.listModel,void 0);let i=JO(e.expressions);i>=this.__nextItemId&&(this.__nextItemId=i+1),XO(this.listModel,e.expressions,t||{})}if(e.layoutModel&&(this.layoutModel=e.layoutModel),e.settingsViewModel&&(this.settingsViewModel=e.settingsViewModel),(!t||!t.allowUndo)&&this.clearUndoRedoHistory(),this.setRandomSeed(e.randomSeed||tc()),"geometryToolbar"in e){let i=e.geometryToolbar;this.geometryToolbarModel=Pv(i)}}updateToState(e){if(this.isCurrentlyDoingRestoreState=!0,this.suggestedIdentifierRename=void 0,"graph"in e&&(e.graph.threeDMode?this.grapher3d&&this.grapher3d.setGrapherState(e.graph):this.grapher2d&&this.grapher2d.setGrapherState(e.graph,{doNotClear:!0})),"expressions"in e&&QO(this.listModel,e.expressions),e.layoutModel&&(this.layoutModel=e.layoutModel),e.settingsViewModel&&(this.settingsViewModel=e.settingsViewModel),"geometryToolbar"in e){let t=e.geometryToolbar;this.geometryToolbarModel=Pv(t)}}commitUndoRedoSynchronously(e){let t=this.stateStack.getState(),i=t&&t.diffState,o=this.getUndoRedoDiffState();if(Uj(i,o))return;let n=this.apiMethodCallStackInfo.withHistoryReplacementDepth>0,a={diffState:o,fullState:this.getUndoRedoFullState()};!n&&jz(e)?(this.stateStack.addState(a),this.enqueueEvent("change",e)):this.stateStack.replaceInteriorState(a)}undo(){if(!this.canUndo())return;this.closeToast(),this.stateStack.undo();let e=this.stateStack.getState().fullState;e.wasCompleteSetState?this.setState(e,{allowUndo:!0}):this.updateToState(e),this.enqueueEvent("change",{type:"undo"})}redo(){if(!this.canRedo())return;this.stateStack.redo();let e=this.stateStack.getState().fullState;e.wasCompleteSetState?this.setState(e,{allowUndo:!0}):this.updateToState(e),this.enqueueEvent("change",{type:"undo"})}clearUndoRedoHistory(){this.stateStack.clear()}canUndo(){return this.stateStack.canUndo()}canRedo(){return this.stateStack.canRedo()}closeToast(){let e=this.toastData.onHide;e&&this.runAfterDispatch(e),this.toastData={}}_closeAddExpression(){this.layoutModel={...this.layoutModel,addExpressionOpen:!1}}doesDOMHaveSize(){return this.layoutMeasurements.width>0&&this.layoutMeasurements.height>0}_getExpListWidth(){var e;if(this.userSpecifiedExpListWidth!==void 0){let o=this.isGeometry()?320:200,n=this.isGeometry()?320:280;e=Math.max(n,Math.min(this.layoutMeasurements.width-o,this.userSpecifiedExpListWidth))}else{if(e=this.layoutMeasurements.width,!e)return 356;var t=.2*e+160;e=Math.min(500,Math.max(280,t))}var i=this.layoutMeasurements.width-this.getGrapherHeight();return Math.abs(i-e)<=10?i:e}_setExpListWidth(e){this.userSpecifiedExpListWidth!==e&&(this.userSpecifiedExpListWidth=e)}getKeypadHeight(){return this.computeMajorLayout().keypad.height}isKeypadEnabled(){return!!this.graphSettings.config.keypad}isKeypadOpen(){if(!this.isKeypadEnabled())return!1;let e=this.layoutModel.keypadMinimized&&!this.isNarrow();return this.needsFakeKeypad()&&!e}isHideKeypadButtonVisible(){return this.getBrailleMode()==="none"&&this.isKeypadOpen()&&(!this.isNarrow()||this.inAudioTraceMode())}isKeypadFunctionsPopoverOpen(){return!!this.layoutModel.keypadFunctionsOpen}getKeypadLayout(){let e=this.layoutModel.keypadLayout;return this.isThreeDMode()?ez(e):e}isLetterKeypadOpen(){let e=this.getKeypadLayout();return this.isKeypadOpen()&&(e==="letters"||e==="noQwertyLetters"||e==="capitalLetters"||e==="noQwertyCapitalLetters")}isFileDraggedOver(){return this.layoutModel.isFileDraggedOver}getGeoToolbarHeight(){return this.shouldShowGeoToolbar()?48:0}isNarrowGeometryHeader(){return this.computeMajorLayout().grapher.width<450}shouldShowMultiSelectHeader(){return this.getSelectedGeoExpression()||this.hasMultipleItemsSelected()}getGrapherHeight(){return this.layoutMeasurements.height-this.getGeoToolbarHeight()}computeMajorLayout(){var e=this.layoutMeasurements.width,t=this.layoutMeasurements.height,i=this.isNarrow(),o=this.isListVisible(),n=this.isKeypadOpen(),a=!this.isGrapherEnabled(),s=!this.isListEnabled(),l=!!this.getGraphSettings().config.projectorMode,c={left:0,top:0,width:0,height:0},d={left:0,top:0,width:0,height:0,paddingTop:0},u={left:0,top:t,width:e,height:l?i?185:193:169};s?(d.width=e,d.height=t):a?(c.width=e,c.height=t):o?i?(c.width=e,c.height=Math.round(.58*t),c.top=t-c.height,d.width=e,d.height=t-c.height):(c.width=this.getExpListWidth(),c.height=t,d.left=c.width,d.width=e-d.left,d.height=t):o||(i?(c.width=e,c.height=Math.round(.58*t),c.top=t,d.width=e,d.height=t):(c.width=this.getExpListWidth(),c.height=t,c.left=-c.width,d.width=e,d.height=t)),n&&(u.top-=u.height,s||(c.height-=u.height));let h=this.getGeoToolbarHeight();return h&&(d.top+=h,d.height-=h),{list:c,grapher:d,keypad:u}}isNarrow(){return this.isGeometry()?this.layoutMeasurements.width<600:this.layoutMeasurements.width<450}getLayoutMeasurements(){return this.layoutMeasurements}getCapExpressionSize(){return!!this.getGraphSettings().config.capExpressionSize}handleAudioTraceCommand(e){let t=this.getAudioGraph();if(t===void 0)return;let i=t.agNavigator;switch(e){case"on":this.runAfterDispatch(()=>{t.enterAudioTrace({fromKeypad:!0})});break;case"off":this.runAfterDispatch(()=>{t.exitAudioTrace()});break;case"hear-graph":t.hearGraph();break;case"stop-graph":t.stopGraph();break;case"volume-down":t.adjustVolume("down");break;case"volume-up":t.adjustVolume("up");break;case"speed-down":t.speedDown();break;case"speed-up":t.speedUp();break;case"previous-point":this.runAfterDispatch(()=>{t.reportAndMoveToPrevPoint()});break;case"next-point":this.runAfterDispatch(()=>{t.reportAndMoveToNextPoint()});break;case"previous-poi":this.runAfterDispatch(()=>{t.reportAndMoveToPrevPOI()});break;case"next-poi":this.runAfterDispatch(()=>{t.reportAndMoveToNextPOI()});break;case"previous-curve":this.runAfterDispatch(()=>{i.prevCurve()});break;case"next-curve":this.runAfterDispatch(()=>{i.nextCurve()});break;case"describe-point":t.describePoint();break;case"describe-curve":t.describeCurve();break;case"describe-axes":t.describeAxes();break;case"keyboard-shortcuts":this.enqueueEvent("showHotkeysModal",{type:"keypad/audio-trace",command:e});break;default:return e}}setAudioTraceSpeed(e){let t=this.getAudioGraph();t&&t.adjustPlaybackSpeed(e)}setGraphPaperFocus(e){var t;ur(this,e.isFocused?{type:"graph-paper"}:void 0),(t=this.get2dPOIController())==null||t.keyboardAttentionManager.setKeyboardAttention(void 0),this.requestRedrawGraph(),e.isFocused&&this.isGeoToolActive()&&this.runAfterDispatch(()=>{var i;(i=this.get2dPOIController())==null||i.keyboardAttentionManager.handleGrapherGainedFocus()})}isGraphPaperFocused(){let e=this.getFocusLocation();return e?!!(e.type==="graph-paper"||e.type==="expression"&&e.isFakeGraphFocus):!1}isVirtualMouseAllowed(){return!(!this.isGeometry()||!this.isGraphPaperFocused()||!this.geoModel.getCurrentTool().canNextInputBePoint())}isClickableId(e){return gg(this.getItemModel(e))}setCanShowKeyboardShortcuts(e){this.canShowKeyboardShortcuts=e}getCanShowKeyboardShortcuts(){return this.canShowKeyboardShortcuts}apply3dProps(e){if(!this.isThreeDMode()||!this.grapher3d)return;let t=this.grapher3d.webglLayer;for(let i in e)switch(i){case"showPlane3D":t.showPlane(this.showPlane3D());break;case"showBox3D":t.showBox(!!e[i]);break;case"showAxis3D":t.showAxes(!!e[i]),t.showPlane(this.showPlane3D());break;case"showAxisLabels3D":t.updateAxes();break;default:break}}getGeometryTokenCount(){if(!this.cachedGeoTokenDepths)return 0;let e=0;return __dcg_shared_module_exports__['sa'](__dcg_shared_module_exports__['Ma'](this.cachedGeoTokenDepths),t=>{let i=0;return t&&t.forEach(o=>{if(!o)return;let{calcId:n}=o,a=this.getItemModel(n);this.isGeoItemReadonlyOrInert(a)||i++}),e+=i}),e}getAllGeometryConstructionIds(){return MO(this.listModel,__dcg_shared_module_exports__['Rc'])}makeGeoAPI(){this.geoModel=new Uy(this)}getGeoTokenInfoFromIdentifier(e){if(e)return this.cachedGeoTokenInfo[e]}getGhostMode(){return this.getGraphSettings().config.getProperty("ghostMode")}getshowKeyboardShortcutsInTooltips(){return!!this.getGraphSettings().config.showKeyboardShortcutsInTooltips}isDispatching(){return this.dispatcher.isDispatching()}getSuggestedIdentifierRenameInfo(e){if(this.suggestedIdentifierRename&&this.suggestedIdentifierRename.id===e)return this.suggestedIdentifierRename}updateSuggestedIdentifierRenameInfo(){if(!this.shouldShowAuthorFeatures())return;let e=this.getSelectedItem();if(!e||e.type!=="expression"){this.suggestedIdentifierRename=void 0;return}this.suggestedIdentifierRename&&this.suggestedIdentifierRename.id!==e.id&&(this.suggestedIdentifierRename=void 0),this.suggestedIdentifierRename&&this.countGlobalIdentifierOccurences(this.suggestedIdentifierRename.from)===0&&(this.suggestedIdentifierRename=void 0);var t=e.formula.assignment||e.formula.function_definition||"",i=t?__dcg_shared_module_exports__['bb'](t):"";if(!this.suggestedIdentifierRename){i&&(this.suggestedIdentifierRename={id:e.id,from:i,to:i,countOfChanges:0,folderId:void 0});return}if(i===this.suggestedIdentifierRename.to)return;if(this.suggestedIdentifierRename.to=i,this.suggestedIdentifierRename.from===this.suggestedIdentifierRename.to||!this.suggestedIdentifierRename.from||!this.suggestedIdentifierRename.to){this.suggestedIdentifierRename.countOfChanges=0;return}if(this.countIdentifierAssignments(t)>1){this.suggestedIdentifierRename.countOfChanges=0;return}let o=__dcg_shared_module_exports__['cb'](this.suggestedIdentifierRename.from);if(this.suggestedIdentifierRename.folderId=void 0,this.countIdentifierAssignments(o)>0){let a;if(e.folderId&&(a=this.countIdentifierAssignmentsInsideFolder(o,e.folderId))===0)this.suggestedIdentifierRename.folderId=e.folderId,this.suggestedIdentifierRename.countOfChanges=a;else{this.suggestedIdentifierRename.countOfChanges=0;return}}let n=fT(this.listModel,this.suggestedIdentifierRename.from,this.suggestedIdentifierRename.folderId);this.suggestedIdentifierRename.countOfChanges=n}getMathquillConfig(e){let t=e.additionalOperators||[];return this.toneAllowed()&&t.push("tone"),{autoOperatorNames:Gl({additionalOperators:t,includeGeometryFunctions:this.isGeometry(),include3DFunctions:this.is3dProduct()}),infixOperatorNames:qh(),autoCommands:Al({additionalCommands:this.isGeometry()?[]:["int"],disallowAns:this.isGeometry()})}}constrainMultiSelect(){if(this.isMultiSelectEnabled())return;let e=Bv(this.listModel);e.length>1&&lr(this.listModel,e[0])}focusFirstExpression(){if(!this.getGraphSettings().config.expressions)return;let e=sg(this.listModel);e&&Yi(this,e.id,"end")}_updateToneAvailability(){let e=this.toneAllowed();e&&!this.toneController?this.toneController=new yb(this):!e&&this.toneController&&(this.toneController=void 0)}toneItemsExist(){return this.toneEnabled()?this.getAllItemModels().some(e=>ya(e)):!1}toneAllowed(){return!!(this.graphSettings.config.audio&&this.graphSettings.config.tone)}getPrecisionConfig(){return this.graphSettings.getPrecisionConfig()}toneEnabled(){return!!this.toneController}setNotice(e){this.noticeId=e}};function Jz(r){return r&&{...r,wasCompleteSetState:void 0,layoutModel:void 0,settingsViewModel:void 0}}function Uj(r,e){return __dcg_shared_module_exports__['Oa'](Jz(r),Jz(e))}var cf=__dcg_shared_module_exports__['e']($());kt();var rx=class{constructor(e){this.previousPaneFocusLocations={main:void 0,quest:void 0};this.controller=e}markKeyDownAsHandled(e){e.stopPropagation(),e.preventDefault()}handleKeydown(e){var i,o,n,a,s;let t=Ai(e);if(Wb(e))this.markKeyDownAsHandled(e),this.controller.hasVisibleAndUndoableToast()?this.controller.toastUndo():this.controller.dispatch({type:"undo"});else if($b(e))this.markKeyDownAsHandled(e),this.controller.dispatch({type:"redo"});else if(e.altKey&&!e.ctrlKey&&!e.metaKey&&e.shiftKey&&t==="Z"){let l=this.controller.getSelectedItem();l&&l.id&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"expression-zoom-fit",id:l.id,focusAfterTap:!1}))}else if(e.altKey!==xi&&e.metaKey===xi&&!e.ctrlKey&&e.shiftKey&&t==="A"&&this.controller.isDecimalToFractionEnabled()){let l=this.controller.getSelectedItem();l&&l.type==="expression"&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"toggle-fraction-evaluation",id:l.id}),this.controller.runAfterDispatch(()=>{zd(l)?ie(this.controller.s("shared-calculator-narration-show-as-fraction")):ie(this.controller.s("shared-calculator-narration-show-as-decimal"))}))}else if(!e.altKey&&e.ctrlKey!==xi&&e.metaKey===xi&&t==="F"){if(this.controller.isExpressionListFocused()){let l=ve.getFocusedMathquill(),c="";try{c=l.__controller.cursor.selection.join("latex")||""}catch(d){}this.controller.dispatch({type:"open-expression-search",rename:!!e.shiftKey,latex:c}),this.markKeyDownAsHandled(e)}}else if((e.altKey||e.metaKey)&&!e.ctrlKey&&!e.shiftKey&&t===void 0){if(ue(e)===rn){let l=this.controller.getSelectedItem();l&&l.type==="folder"&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-folder-collapsed",id:l.id,isCollapsed:!0}),ie(this.controller.s("graphing-calculator-narration-folder-collapsed")))}else if(ue(e)===wn){let l=this.controller.getSelectedItem();l&&l.type==="folder"&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-folder-collapsed",id:l.id,isCollapsed:!1}),ie(this.controller.s("graphing-calculator-narration-folder-expanded")))}}else if(e.shiftKey&&(e.altKey||e.metaKey)&&!e.ctrlKey){if(ue(e)===rn)this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-all-folders-collapsed",isCollapsed:!0}),ie(this.controller.s("graphing-calculator-narration-all-folders-collapsed"));else if(ue(e)===wn)this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-all-folders-collapsed",isCollapsed:!1}),ie(this.controller.s("graphing-calculator-narration-all-folders-expanded"));else if(t==="H"){let l=this.controller.getSelectedItem();l&&"hidden"in l&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"toggle-item-hidden",id:l.id}),this.controller.runAfterDispatch(()=>{l.hidden?ie(this.controller.s("graphing-calculator-narration-item-hidden")):ie(this.controller.s("graphing-calculator-narration-item-visible"))}))}else if(t==="O"){if(!this.controller.authorFeaturesAvailable())return;this.controller.dispatch({type:"set-author-mode",enabled:!this.controller.shouldShowAuthorFeatures()}),ie(this.controller.shouldShowAuthorFeatures()?this.controller.s("shared-calculator-narration-author-mode-on"):this.controller.s("shared-calculator-narration-author-mode-off")),this.markKeyDownAsHandled(e)}else if(t==="E"){if(!this.controller.isListEnabled())return;this.controller.isListVisible()?(this.controller.dispatch({type:"hide-expressions-list",focusShowIcon:!1}),ie(this.controller.s("graphing-calculator-narration-hide-expression-list"))):(this.controller.dispatch({type:"show-expressions-list",focusHideIcon:!1}),this.focusExpressionList()),this.markKeyDownAsHandled(e)}}else if(e.ctrlKey&&(e.altKey||e.metaKey)&&!e.shiftKey){if(t==="E"){if(!this.controller.isListEnabled())return;this.markKeyDownAsHandled(e),this.focusExpressionList()}else if(t==="X"){if(!this.controller.isListEnabled())return;this.markKeyDownAsHandled(e),this.controller.canUserAddExpressions()?(ie(this.controller.s("graphing-calculator-narration-add-expression")),this.controller.dispatch({type:"new-expression"})):ie(this.controller.s("graphing-calculator-narration-unable-to-add-expression"))}else if(t==="O"){if(!this.controller.isListEnabled())return;this.markKeyDownAsHandled(e),this.controller.canUserAddExpressions()&&this.controller.areNotesEnabled()?(ie(this.controller.s("graphing-calculator-narration-add-note")),this.controller.dispatch({type:"new-text"})):ie(this.controller.s("graphing-calculator-narration-unable-to-add-note"))}else if(t==="F"&&this.controller.canUserAddExpressions()&&this.controller.areFoldersEnabled())this.markKeyDownAsHandled(e),ie(this.controller.s("graphing-calculator-narration-add-folder")),this.controller.dispatch({type:"new-folder"});else if(t==="I"&&this.controller.canUserAddExpressions()&&this.controller.areImagesEnabled())this.markKeyDownAsHandled(e),this.controller.dispatch({type:"toggle-add-expression",focusOnOpen:!1}),this.controller.runAfterDispatch(()=>{let l=this.controller.findEl(".dcg-add-expression-container input[type=file]");l&&(W(l).trigger("click"),ie(this.controller.s("graphing-calculator-narration-add-image")))});else if(t==="T")this.markKeyDownAsHandled(e),this.controller.canUserAddExpressions()?(ie(this.controller.s("graphing-calculator-narration-add-table")),this.controller.dispatch({type:"new-table"})):ie(this.controller.s("graphing-calculator-narration-unable-to-add-table"));else if(t==="M"&&this.controller.isGeoUIActive())if(this.markKeyDownAsHandled(e),this.controller.getGeoToolbarGroupKeys().length>0){let l=this.controller.getActiveTool();this.controller.shouldShowMultiSelectHeader()?this.controller.dispatch({type:"set-focus-location",location:{type:"geo-header-back-link"}}):(l==="expression-edit"&&(l="selection"),this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:l}}))}else ie(this.controller.s("graphing-calculator-narration-no-geometry-tools-available"));else if(t==="C"&&this.controller.isGeoUIActive())this.markKeyDownAsHandled(e),this.controller.getGeometryTokenCount()>0?this.controller.dispatch({type:"set-show-constructions-open",open:!0,setFocus:!0}):ie(this.controller.raw("Object navigator has no items."));else if(t==="G")this.markKeyDownAsHandled(e),this.controller.dispatch({type:"toggle-graph-settings",focusOnOpen:!0});else if(t==="P"){if(this.markKeyDownAsHandled(e),this.controller.isGeometry()){let l=this.controller.getFocusLocation(),c=this.controller.getValidCursorContext();if(l&&l.type==="expression"&&c&&c.type!=="empty"){this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:l.id,isFakeGraphFocus:!0}}),(o=(i=this.controller.getGrapher2d())==null?void 0:i.poiController)==null||o.keyboardAttentionManager.handleGrapherGainedFocus();return}}this.controller.dispatch({type:"set-focus-location",location:{type:"graph-paper"}})}else if(t==="Z"){let l=this.controller.getSelectedItem();l&&l.id&&this.controller.dispatch({type:"expression-zoom-fit",id:l.id,focusAfterTap:!1})}else if(t==="D"&&this.controller.canUserAddExpressions()){this.markKeyDownAsHandled(e);let l=!this.controller.isInEditListMode();this.controller.dispatch({type:"set-edit-list-mode",isEditListMode:l,focusExpressionList:!0})}}else if(HI(e)&&this.controller.getQuestIsActive()){((n=this.controller.focusLocation)==null?void 0:n.type)==="quest"?(this.previousPaneFocusLocations.quest=this.controller.focusLocation,this.previousPaneFocusLocations.main?this.controller.dispatch({type:"set-focus-location",location:this.previousPaneFocusLocations.main}):this.focusExpressionList()):(this.previousPaneFocusLocations.main=this.controller.focusLocation,this.controller.dispatch({type:"set-focus-location",location:(a=this.previousPaneFocusLocations.quest)!=null?a:{type:"quest",location:"quest-pane"}})),this.markKeyDownAsHandled(e);return}else if(!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey){if(ue(e)===Ss)(!document.activeElement||!ip(document.activeElement))&&e.preventDefault();else if(ue(e)===_o&&!this.controller.getOpenItemMenu()&&!this.controller.isGraphSettingsOpen()){if(this.controller.isGeoUIActive()){let l=!1,c=this.controller.getGeoModel();if(this.controller.hasAnyItemsSelected()&&(this.controller.dispatch({type:"set-none-selected"}),l=!0),c.isToolplayActive()&&(this.controller.dispatch({type:"cancel-geo-toolplay"}),ie(this.controller.s("graphing-calculator-narration-geometry-tool-cancelled")),l=!0),this.controller.isGraphPaperFocused()&&(this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:this.controller.getActiveTool()}}),l=!0),this.controller.getActiveTool()!=="selection"&&!l){this.controller.dispatch({type:"select-geo-tool",tool:"selection"});let d=this.controller.getFocusLocation();d&&d.type==="geo-basic-tool"&&this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:this.controller.getActiveTool()}}),l=!0}if(l){this.markKeyDownAsHandled(e);return}}this.controller.isInEditListMode()&&!this.controller.findEl(".dcg-options-menu")&&(this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-edit-list-mode",isEditListMode:!1,focusExpressionList:!0}))}}else if(!e.metaKey&&!e.shiftKey&&e.ctrlKey===xi&&e.altKey===!xi){if(t==="N"){if(!this.controller.getBrailleControls())return;this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-braille-mode",mode:"nemeth"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-nemeth"))}else if(t==="U"){if(!this.controller.getBrailleControls())return;this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-braille-mode",mode:"ueb"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-ueb"))}else if(t==="Q"||t==="X"){if(!this.controller.getBrailleControls())return;this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-braille-mode",mode:"none"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-off"))}else if(t==="6"){if(!this.controller.getBrailleControls())return;this.markKeyDownAsHandled(e);let l=!this.controller.getSixKeyInput();this.controller.dispatch({type:"set-six-key-input",useSixKeyInput:l}),ie(l?this.controller.s("shared-calculator-narration-six-key-mode-on"):this.controller.s("shared-calculator-narration-six-key-mode-off"))}else if(t==="D")this.markKeyDownAsHandled(e),this.controller.dispatch({type:"set-graph-settings",degreeMode:!this.controller.getGraphSettings().degreeMode}),ie(this.controller.getGraphSettings().degreeMode?this.controller.s("graphing-calculator-button-settings-degrees"):this.controller.s("graphing-calculator-button-settings-radians"));else if(t==="K"){if(!this.controller.isKeypadEnabled()||this.controller.inAudioTraceMode())return;this.markKeyDownAsHandled(e),this.controller.dispatch({type:"keypad/set-minimized",minimized:this.controller.isHideKeypadButtonVisible()})}else t==="M"&&((s=this.controller.toneController)==null||s.handleMuteKeyShortcut(),this.markKeyDownAsHandled(e));if(t==="+"||t==="="){this.zoom("in"),this.markKeyDownAsHandled(e);return}else if(t==="-"){this.zoom("out"),this.markKeyDownAsHandled(e);return}else if(t==="0"&&!e.shiftKey){this.setDefaultViewport(),this.markKeyDownAsHandled(e);return}}}focusExpressionList(){let e=this.controller.getSelectedItem();e?this.controller.dispatch({type:"move-focus-to-item",id:e.id}):this.controller.dispatch({type:"focus-first-expression"})}zoom(e){var t;(t=this.controller.getGrapher())==null||t.viewportController.zoom(e)}setDefaultViewport(){var e;(e=this.controller.getGrapher())==null||e.viewportController.setDefaultViewport()}};kt();var qj=function(){{var r=0,e=1,t=2,i=!1,o=function(){n(document),i=!0},n=function(a){i||W(a).bind("touchstart",function(s){var l=W(s.target),c=r,d=null;if(!l[0].closest("[disablescroll]"))for(;c===r&&l.length&&l[0].tagName!==void 0;){var u=getComputedStyle(l[0]).overflow,h=getComputedStyle(l[0]).overflowY;if(u!=="hidden"&&u!=="visible"&&h!=="hidden"&&h!=="hidden"){var g=l.scrollTop();g!==0&&(c=t),l.scrollTop(g+1),l.scrollTop()!==g&&(c=e|c,l.scrollTop(g))}l=W(l[0].parentElement)}if(c!==r){d=[];for(var b=s.originalEvent.touches,C=0;C<b.length;C++){var S={};for(var k in b[C])b[C].hasOwnProperty(k)&&(S[k]=b[C][k]);d.push(S)}}W(document).on("touchmove.scrollfix",function(I){if(d){var M=d[0],E=I.originalEvent.touches[0],A=E.screenY-M.screenY;(A>0&&!(c&t)||A<0&&!(c&e))&&(c=r),A&&(d=null)}c===r&&I.preventDefault()}),W(document).on("touchend.scrollfix",function(){W(document).off(".scrollfix")})})};return{limitScrollOnElement:n,limitScrollOnDocument:o}}}();var{limitScrollOnElement:E0,limitScrollOnDocument:Tke}=qj;var ht=__dcg_shared_module_exports__['e']($());kt();var Pe=__dcg_shared_module_exports__['e']($());kt();var eK=__dcg_shared_module_exports__['e']($());function Hj(r){let e=r.target;return e.classList.contains("dcg-exp-action-button")||e.classList.contains("dcg-icon-duplicate")||e.classList.contains("dcg-icon-remove")||e.classList.contains("dcg-icon-lock")||e.classList.contains("dcg-icon-pencil")}var na=class extends eK.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,this._isFirstRender=!0,this._isDragCopy=this.props.isDragCopy()}onItemViewMounted(){this._isDragCopy||(this.model.dcgView=this),this._isFirstRender=!1}onItemViewUnmounted(){this._isDragCopy||(this.model.dcgView=void 0)}isFirstRender(){return this._isFirstRender}onMouseSelect(e){if(this.controller.isInEditListMode()&&!Hj(e)){this.exitEditListMode();return}this.controller.isItemReadonly(this.id)||e.type==="dcg-tap"&&e.device==="mouse"||e.type==="dcg-tapstart"&&e.device==="touch"||e.wasHandled()||(e.handle(),this.controller.dispatch({type:"set-selected-id",id:this.id}))}onDragPending(e){this.controller.isItemReadonly(this.model.id)||this.props.onDragPending(e)}exitEditListMode(){this.controller.dispatch({type:"set-edit-list-mode",isEditListMode:!1,focusExpressionList:!0})}};var ho=__dcg_shared_module_exports__['e']($());var cd=__dcg_shared_module_exports__['e']($());var Bo=class extends cd.Class{template(){return cd.createElement(Ce,{tooltip:this.props.error,sticky:this.const(!0),gravity:this.props.gravity},cd.createElement("div",{class:()=>({"dcg-tooltipped-error":!0,"dcg-white":this.props.isWhite&&this.props.isWhite(),"dcg-small":this.props.size&&this.props.size()==="small"})},cd.createElement("i",{class:cd.const("dcg-icon-error"),"aria-hidden":cd.const("true")})))}};var zo=__dcg_shared_module_exports__['e']($());var Cn=__dcg_shared_module_exports__['e']($());var{If:D0}=Cn.Components,Pi=class extends Cn.Class{template(){return Cn.createElement("span",{class:()=>({"dcg-do-not-blur":!0,"dcg-forced-color-none":!0,"dcg-circular-icon":!0,"dcg-thick-outline":this.isThickOutline(),"dcg-white-icon":!!this.props.whiteIcon&&this.props.whiteIcon(),"dcg-hidden":this.isHidden(),"dcg-semi-transparent":this.props.semiTransparent&&this.props.semiTransparent(),"dcg-colored-icon":this.isColoredIcon(),"dcg-has-background-image":this.hasBackgroundImage(),[this.iconModifier()]:this.iconModifier().length>0}),style:this.bindFn(this.getIconStyle)},Cn.createElement(D0,{predicate:this.bindFn(this.hasBackgroundImage)},()=>Cn.createElement("span",{class:Cn.const("dcg-background-image"),style:()=>({"background-image":this.props.backgroundImage&&this.props.backgroundImage(),opacity:this.props.backgroundOpacity&&this.props.backgroundOpacity()})})),Cn.createElement(D0,{predicate:()=>!!this.backgroundIcon()},()=>Cn.createElement("i",{class:()=>({[this.backgroundIcon()]:!0,"dcg-layered-icon":!0}),style:()=>({opacity:this.backgroundOpacity()})})),Cn.createElement(D0,{predicate:()=>!!this.primaryIcon()},()=>Cn.createElement("i",{class:()=>({[this.primaryIcon()]:!0,"dcg-layered-icon":!0}),style:()=>({color:this.props.foregroundColor&&this.props.foregroundColor()})})),Cn.createElement(D0,{predicate:()=>this.props.iconType()==="loading"},()=>Cn.createElement("span",{class:Cn.const("dcg-spinner")})))}isColoredIcon(){return!this.isThickOutline()&&!this.isHidden()&&!this.hasBackgroundImage()&&this.props.iconType()!=="loading"}iconModifier(){if(!this.props.iconModifier)return"";switch(this.props.iconModifier()){case"medium":return"dcg-modifier-size-medium";case"large":return"dcg-modifier-size-large";case"small":return"dcg-modifier-size-small";case"rotated":return"dcg-modifier-rotated";case"none":return""}}getIconStyle(){let e=!this.isHidden()&&this.props.backgroundColor?xg(this.props.backgroundColor()):void 0;return e?{background:e}:{}}isHidden(){return this.props.iconType()==="hidden"}isThickOutline(){let e=this.props.iconType();return e==="folder"||e==="pause"||e==="play"||e==="fraction"||e==="action"||e==="metronome"||e==="sound"}hasBackgroundImage(){return!!this.props.backgroundImage&&!this.isHidden()&&!!this.props.backgroundImage()}primaryIcon(){let e=this.props.iconType();switch(e){case"sound":return"dcg-icon-sound-wave";case"folder":return"dcg-icon-folder";case"pause":return"dcg-icon-pause";case"play":return"dcg-icon-play";case"polygon-dashed":case"polygon-dashed-filled":return"dcg-icon-polygon-dashed";case"polygon-dotted":case"polygon-dotted-filled":return"dcg-icon-polygon-dotted";case"polygon-default":case"polygon-default-filled":return"dcg-icon-polygon-solid";case"graph-dashed":case"parametric-dashed-filled":return"dcg-icon-parametric-dashed";case"graph-dotted":case"parametric-dotted-filled":return"dcg-icon-parametric-dotted";case"graph-default":case"parametric-default-filled":return"dcg-icon-parametric-solid";case"movable-vertical":return"dcg-icon-move-vertical";case"movable-both":return"dcg-icon-move";case"movable-horizontal":return"dcg-icon-move-horizontal";case"point-open":return"dcg-icon-open";case"point-cross":return"dcg-icon-cross";case"point-default":return"dcg-icon-point";case"table-points":case"table-points-and-lines":return"dcg-icon-points";case"table-lines":return"dcg-icon-lines-solid";case"shaded-inequality":case"inequality":return"dcg-icon-shaded-inequality-dash";case"check":return"dcg-icon-check";case"none":case"background":case"hidden":case"polygon-none-filled":case"parametric-none-filled":case"loading":return"";case"fraction":return"dcg-icon-fraction";case"boxplot":return"dcg-icon-boxplot";case"dotplot-cross":return"dcg-icon-dotplot-cross";case"dotplot-default":return"dcg-icon-dotplot-default";case"dotplot-open":return"dcg-icon-dotplot-open";case"histogram":return"dcg-icon-histogram";case"unfilled-distribution":case"filled-distribution":return"dcg-icon-distribution";case"action":return"dcg-icon-chevron-right";case"metronome":return"dcg-icon-metronome-2";case"arrow-right":return"dcg-icon-arrow-right";default:return e}}backgroundOpacity(){let e=this.backgroundIcon();return e==="dcg-icon-polygon-filled"||e==="dcg-icon-parametric-filled"||e==="dcg-icon-shaded-inequality-shade2"||e==="dcg-icon-distribution-fill"||e==="dcg-icon-histogram-fill"?.5:1}backgroundIcon(){let e=this.props.iconType();return e==="filled-distribution"?"dcg-icon-distribution-fill":e==="histogram"?"dcg-icon-histogram-fill":e==="polygon-dashed-filled"||e==="polygon-dotted-filled"||e==="polygon-default-filled"||e==="polygon-none-filled"?"dcg-icon-polygon-filled":e==="parametric-dashed-filled"||e==="parametric-dotted-filled"||e==="parametric-default-filled"||e==="parametric-none-filled"?"dcg-icon-parametric-filled":e==="table-points-and-lines"?"dcg-icon-lines-solid":e==="shaded-inequality"?"dcg-icon-shaded-inequality-shade2":e==="action"?"dcg-icon-minus":""}};var k0=class extends zo.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return zo.createElement("div",{class:zo.const("dcg-play-pause-icon-view")},zo.createElement(Ce,{gravity:this.const("s"),tooltip:()=>this.controller.s("graphing-calculator-label-slider-disabled-while-ticker-playing"),disabled:()=>!this.controller.getTickerPlaying(),sticky:this.const(!0)},zo.createElement("div",{class:()=>({"dcg-circular-icon-container":!0,"dcg-disabled":this.controller.getTickerPlaying()}),"aria-label":this.bindFn(this.getAriaLabel),role:zo.const("button"),tabindex:zo.const("0"),onTap:e=>{e.wasHandled("dragdrop")||this.toggleSliderIsPlaying()},"dcg-open-menu-guid":()=>this.model.guid,manageFocus:this.const(Fe({controller:this.controller,location:{type:"slider-icon",id:this.model.id}}))},zo.createElement(Pi,{iconType:()=>this.getIconType(),whiteIcon:()=>!this.controller.isInEditListMode()&&this.controller.isItemSelected(this.model.id)||this.controller.isItemBeingDragged(this.model.id)}))),zo.createElement("div",{class:zo.const("dcg-slider-menu-container")},zo.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-animation-properties-tooltip"),gravity:this.const("e")},zo.createElement("div",{class:()=>({"dcg-slider-menu-opener":!0,"dcg-menu-open":this.myOptionsOpen()}),tabindex:zo.const(0),"dcg-open-menu-guid":()=>this.getMenuGUID(),role:zo.const("button"),"aria-label":()=>this.myOptionsOpen()?this.controller.s("graphing-calculator-narration-hide-animation-properties"):this.controller.s("graphing-calculator-narration-show-animation-properties"),onTap:e=>{e.wasHandled("dragdrop")||e.wasLongheld()||this.toggleOptions(e)},manageFocus:this.const(Fe({controller:this.controller,location:{type:"slider-animation-properties-icon",id:this.model.id}}))},zo.createElement("i",{class:this.bindFn(this.getIcon),"aria-hidden":zo.const("true")})))))}getIcon(){return __dcg_shared_module_exports__['k'](this.model.slider.loopMode)}getIconType(){return!this.model.slider.isPlaying||AT(this.model)?"play":"pause"}getMenuGUID(){return"slider-"+this.model.guid}myOptionsOpen(){return this.controller.isItemSettingsMenuOpen(this.getMenuGUID())}toggleOptions(e){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"slider",model:this.model,guid:this.getMenuGUID(),focusFirstOption:e.device==="keyboard"}})}getAriaLabel(){if(!this.model.sliderExists)return"";var e=Oo(this.model);return e?this.model.slider.isPlaying?this.controller.s("graphing-calculator-narration-pause-variable-animation",{variable:e}):this.controller.s("graphing-calculator-narration-play-variable-animation",{variable:e}):""}toggleSliderIsPlaying(){if(this.model.sliderExists){var e="",t=Oo(this.model);AT(this.model)?(typeof t=="string"&&(e=this.controller.s("graphing-calculator-narration-slider-variable-restarted",{variable:t})),this.controller.dispatch({type:"play-slider-from-min",id:this.model.id})):this.model.slider.isPlaying?(typeof t=="string"&&(e=this.controller.s("graphing-calculator-narration-slider-variable-paused",{variable:t})),this.controller.dispatch({type:"set-slider-isplaying",id:this.model.id,isPlaying:!1})):(typeof t=="string"&&(e=this.controller.s("graphing-calculator-narration-slider-variable-playing",{variable:t})),this.controller.dispatch({type:"set-slider-isplaying",id:this.model.id,isPlaying:!0})),e!==""&&ie(e)}}};var dc=__dcg_shared_module_exports__['e']($());var T0=class extends dc.Class{constructor(){super(...arguments),this.isAnimating=!1}init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return dc.createElement("div",{class:()=>({"dcg-action-icon-view":!0,"dcg-action-icon-view-animating":this.isAnimating})},dc.createElement("div",{class:dc.const("dcg-circular-icon-container"),"aria-label":()=>this.controller.s("graphing-calculator-narration-run-action-icon"),role:dc.const("button"),tabindex:dc.const("0"),onTap:e=>{e.wasHandled("dragdrop")||this.runActionOnce()},manageFocus:this.const(Fe({controller:this.props.controller(),location:{type:"action-icon",id:this.model.id}}))},dc.createElement(Pi,{iconType:this.const("action"),whiteIcon:()=>!this.controller.isInEditListMode()&&this.controller.isItemSelected(this.model.id)||this.controller.isItemBeingDragged(this.model.id)})))}runActionOnce(){this.isAnimating=!0,this.controller.dispatch({type:"action-single-step",id:this.model.id}),setTimeout(this.bindIfMounted(()=>{this.isAnimating=!1,this.update()}),150)}};var ix=__dcg_shared_module_exports__['e']($());var I0=class extends ix.Class{init(){this.model=this.props.model(),this.controller=this.props.controller()}toggleMuted(){this.controller.dispatch({type:"toggle-item-hidden",id:this.model.id})}showAsTurnedOff(){return xb(this.model)}template(){return ix.createElement("button",{class:()=>{var e;return{"dcg-unstyled-button":!0,"dcg-circular-icon-container":!0,"dcg-show-globally-muted":((e=this.controller.toneController)==null?void 0:e.isGlobalMuted())&&!this.showAsTurnedOff()}},onTap:e=>{e.wasHandled("dragdrop")||this.toggleMuted()},"aria-label":this.props.ariaLabel},ix.createElement(Pi,{iconType:()=>this.showAsTurnedOff()?"hidden":"sound",whiteIcon:()=>!this.controller.isInEditListMode()&&this.controller.isItemSelected(this.model.id)||this.controller.isItemBeingDragged(this.model.id)}))}};Fa();var{SwitchUnion:Wj,If:$j}=ho.Components,Yj="#6A93D2",tK="#000",rK="#fff",ox=class extends ho.Class{init(){this.model=this.props.model(),this.controller=this.props.controller()}template(){return ho.createElement("div",{class:ho.const("dcg-expression-icon-container")},Wj(this.bindFn(this.getIconMode),{error:()=>ho.createElement(Bo,{error:this.bindFn(this.getErrorMsg),isWhite:this.bindFn(this.isSelected),gravity:this.const("s")}),none:()=>ho.createElement("span",null),slider:()=>ho.createElement(k0,{controller:this.props.controller,model:this.props.model}),action:()=>ho.createElement(T0,{controller:this.props.controller,model:this.props.model}),icon:()=>ho.createElement("div",{class:ho.const("dcg-circular-icon-container"),role:ho.const("button"),tabindex:ho.const("0"),"dcg-open-menu-guid":()=>this.getMenuGUID(),"aria-label":this.bindFn(this.getIconAriaLabel),onTap:e=>{if(!e.wasHandled("dragdrop")&&!e.wasLongheld()){if(this.myOptionsOpen())return this.toggleOptions(e);if((this.controller.isInEditListMode()||e.shiftKey)&&!this.isFraction())return this.toggleOptions(e);if(this.isFraction())return this.onToggleFractionDisplay();this.toggleGraphShown()}},onLongHold:e=>{e.handle("dcg-longhold"),e.handle("dcg-tap"),!this.isFraction()&&this.toggleOptions(e)},manageFocus:this.const(Fe({controller:this.controller,location:{type:"expression-icon",id:this.model.id}}))},ho.createElement(Pi,{iconType:this.bindFn(this.getIconType),backgroundColor:this.bindFn(this.getBackgroundColor),whiteIcon:this.bindFn(this.isSelected),foregroundColor:this.bindFn(this.getForegroundColor),iconModifier:this.bindFn(this.getIconModifier),backgroundImage:this.bindFn(this.backgroundImage),backgroundOpacity:this.const(1)}),ho.createElement($j,{predicate:()=>this.model.disableGraphInteractions},()=>ho.createElement("i",{class:ho.const("dcg-graph-interaction-disabled dcg-icon-lock")}))),tone:()=>ho.createElement(I0,{controller:this.props.controller,model:this.props.model,ariaLabel:this.bindFn(this.getIconAriaLabel)})}))}backgroundImage(){let e=this.getBackgroundColor();return e.type==="image"?`url("${e.value}")`:""}getErrorMsg(){return this.colorError()?this.controller.s("shared-calculator-error-color-not-assigned"):this.controller.unpack(this.model.error)}getMenuGUID(){return this.model.guid}myOptionsOpen(){return this.controller.isItemSettingsMenuOpen(this.getMenuGUID())}toggleOptions(e){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"expression",model:this.model,guid:this.getMenuGUID(),focusFirstOption:e.device==="keyboard"}})}isSelected(){return this.controller.isItemSelected(this.model.id)||this.controller.isItemBeingDragged(this.model.id)}isFraction(){return this.controller.canDisplayEvaluationForItemAsFraction(this.model.id)}getIconMode(){return this.hasError()?"error":this.controller.getGraphSettings().config.graphpaper?hC(this.model)?"icon":this.hasSlider()?"slider":this.isFraction()?"icon":this.isNonemptyAction()?"action":this.isToneExpression()&&this.controller.toneEnabled()?"tone":"none":"none"}isToneExpression(){return ya(this.model)}toggleGraphShown(){this.controller.dispatch({type:"toggle-item-hidden",id:this.model.id})}colorError(){return!!this.model.formula.rgb_value&&!this.model.formula.assignment}hasError(){return this.colorError()?!0:!!this.model.error&&!Nl(this.model)&&this.controller.getBrailleMode()==="none"}hasSlider(){return!!this.model.sliderExists}isNonemptyAction(){return Mg(this.model)}getDisplayProps(){let{points:e,lines:t,fill:i}=this.model;return __dcg_shared_module_exports__['rc'](this.model.formula.expression_type,{points:e,lines:t,fill:i},o=>{Mi("getReconciledExpressionProps [Chrome Switch Bug]",{metaData:{method:"getDisplayProps",type:o}})})}getBackgroundColor(){if(!this.isFraction())return mb(this.model);let e=this.isSelected();return this.controller.shouldEvaluationForItemDisplayAsFraction(this.model.id)?{type:"single-color",value:e?rK:tK}:{type:"single-color",value:""}}getForegroundColor(){if(!this.isFraction())return"";let e=this.isSelected(),t=this.controller.shouldEvaluationForItemDisplayAsFraction(this.model.id);return e!==t?rK:e?Yj:tK}onToggleFractionDisplay(){this.controller.dispatch({type:"toggle-fraction-evaluation",id:this.model.id})}getIconModifier(){return Kd(this.model)&&qc(this.model,"alignedAxis")==="y"?"rotated":"none"}getIconType(){if(this.isFraction())return"fraction";if(!this.model.shouldGraph)return"hidden";if(this.controller.isInEditListMode())return"none";let e=this.model.pointStyle,t=this.model.lineStyle,i=this.getDisplayProps(),o=this.model.formula;if(Kd(this.model))return"boxplot";if(Hc(this.model)){if(this.model.pointStyle==="POINT")return"dotplot-default";if(this.model.pointStyle==="CROSS")return"dotplot-cross";if(this.model.pointStyle==="OPEN")return"dotplot-open"}if(xu(this.model))return"histogram";if(Ud(this.model))return Wc(this.model)?"filled-distribution":"unfilled-distribution";if(Zr(this.model)==="X")return"movable-horizontal";if(Zr(this.model)==="Y")return"movable-vertical";if(Zr(this.model)==="XY")return"movable-both";if(Gn(this.model))return e==="OPEN"?"point-open":e==="CROSS"?"point-cross":"point-default";if(kC(this.model))return"point-default";if(Gg(this.model)||kb(this.model))return i.lines&&i.points?"table-points-and-lines":i.lines?"table-lines":"table-points";if(TC(this.model))return"polygon-default-filled";let n=this.getDisplayProps().fill;if(Rd(this.model))return n?i.lines?t==="DASHED"?"polygon-dashed-filled":t==="DOTTED"?"polygon-dotted-filled":"polygon-default-filled":"polygon-none-filled":i.lines?t==="DASHED"?"polygon-dashed":t==="DOTTED"?"polygon-dotted":"polygon-default":"none";if(yu(this.model))return n?i.lines?t==="DASHED"?"parametric-dashed-filled":t==="DOTTED"?"parametric-dotted-filled":"parametric-default-filled":"parametric-none-filled":i.lines?t==="DASHED"?"graph-dashed":t==="DOTTED"?"graph-dotted":"graph-default":"none";var a=o.operator,s=__dcg_shared_module_exports__['ib'][a].direction!==0,l=__dcg_shared_module_exports__['ib'][a].inclusive===!1;return o.is_shade_between||!l&&s?"shaded-inequality":l&&!s?"inequality":l&&s?"shaded-inequality":t==="DASHED"?"graph-dashed":t==="DOTTED"?"graph-dotted":"graph-default"}getIconAriaLabel(){return this.isFraction()?zd(this.model)?this.controller.s("shared-calculator-narration-display-as-decimal"):this.controller.s("shared-calculator-narration-display-as-fraction"):this.myOptionsOpen()?cr(this.model,"hide-options"):this.controller.isInEditListMode()?cr(this.model,"show-options"):ya(this.model)?this.model.hidden?cr(this.model,"unmute"):cr(this.model,"mute"):this.model.hidden?cr(this.model,"show"):cr(this.model,"hide")}};var Nr=__dcg_shared_module_exports__['e']($());var{If:jj,SwitchUnion:Jj}=Nr.Components;function Xj(r,e){return __dcg_shared_module_exports__['_a'](r,e)}var ah=class extends Nr.Class{init(){this.controller=this.props.controller()}template(){return Nr.createElement("div",{class:Nr.const("dcg-evaluation-container")},Nr.createElement("div",{didMount:e=>this.containerNode=e,class:()=>({"dcg-evaluation":!0,"dcg-do-blur":!0,"dcg-hidden":this.props.controller().isInEditListMode()}),handleEvent:Nr.const("true"),tabindex:()=>this.props.focusable()&&this.controller.getBrailleMode()==="none"?"0":"-1",onFocus:()=>{this.controller.getBrailleMode()==="none"&&this.evaluationNode&&this.onSelectEvaluation()},onBlur:()=>{this.controller.getBrailleMode()==="none"&&this.evaluationNode&&this.onUnselectEvaluation()},onTap:()=>{var e;return(e=this.containerNode)==null?void 0:e.focus()}},Nr.createElement(ii,{latex:this.bindFn(this.getBrailleEvaluation),ariaLabel:this.const(""),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="braille-output"?!1:e.id===this.props.id()},onBrailleInput:()=>{},isStatic:this.const(!0),onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"braille-output",id:this.props.id()}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"braille-output",id:this.props.id()}})},...ji(this.controller)},Nr.createElement("div",{class:Nr.const("dcg-evaluation-label-container")},Nr.createElement(jj,{predicate:()=>!!this.props.dependent()},()=>Nr.createElement(ke,{latex:()=>__dcg_shared_module_exports__['bb'](this.props.dependent()),config:this.const({})})),Nr.createElement("span",{class:Nr.const("dcg-equals")},Nr.createElement(ke,{latex:this.const("="),config:this.const({})}))),Nr.createElement("span",{class:()=>({"dcg-text-selectable":this.getEvaluationType()!=="rgbcolor","dcg-evaluation-html":!0,"dcg-color-evaluation":this.getEvaluationType()==="rgbcolor"}),didMount:this.bindFn(this.didMountEvaluation)},Jj(()=>this.getEvaluationType(),{list:()=>Nr.createElement("span",{class:Nr.const("dcg-evaluation-list")},()=>this.controller.s("graphing-calculator-label-evaluation-list",{count:this.props.val().length})),fraction:()=>Nr.createElement(ke,{latex:()=>__dcg_shared_module_exports__['ab'](this.props.val(),this.getLabelOptions()),config:this.const({})}),undefined:()=>Nr.createElement("span",null,Nr.const("undefined")),scientific:()=>Nr.createElement(ke,{latex:()=>`${this.getNumberLabel().mantissa}\\times10^{${this.getNumberLabel().exponent}}`,config:this.const({})}),decimal:()=>Nr.createElement(ke,{latex:()=>this.getNumberLabel().value,config:this.const({})}),rgbcolor:()=>Nr.createElement(Vu,{color:()=>this.getColorValue(),isEvaluation:this.const(!0),invertSwatches:()=>this.controller.invertSwatches()})})))),Nr.createElement("div",{class:Nr.const("dcg-clear")}))}getColorValue(){let e=this.props.id(),t=this.controller.getColorById(e);return Array.isArray(t)?{type:"color-array",value:t}:{type:"single-color",value:t}}getNumberLabel(){return Xj(this.props.val(),this.getLabelOptions())}getEvaluationType(){let e=this.props.val();return typeof e=="string"?"rgbcolor":Array.isArray(e)?typeof e[0]=="string"?"rgbcolor":"list":this.getNumberLabel().type}getLabelOptions(){return this.props.controller().getEvaluationLabelOptionsForItem(this.props.id())}didMountEvaluation(e){this.evaluationNode=e}onSelectEvaluation(){let e=document.createRange();e.selectNodeContents(this.evaluationNode);let t=window.getSelection();t&&(t.removeAllRanges(),t=window.getSelection(),t&&t.addRange(e))}onUnselectEvaluation(){let e=window.getSelection();e&&e.removeAllRanges()}getBrailleEvaluation(){let e="";this.props.dependent()&&(e=__dcg_shared_module_exports__['bb'](this.props.dependent())),e+="=";let t=this.getEvaluationType();switch(t){case"list":e+=this.controller.s("graphing-calculator-label-evaluation-list",{count:this.props.val().length});break;case"fraction":e+=__dcg_shared_module_exports__['ab'](this.props.val(),this.getLabelOptions());break;case"undefined":e="undefined";break;case"scientific":e+=`${this.getNumberLabel().mantissa}\\times10^{${this.getNumberLabel().exponent}}`;break;case"decimal":e+=this.getNumberLabel().value;break;case"rgbcolor":e+=this.props.val();break;default:return t}return e}};var So=__dcg_shared_module_exports__['e']($());var{Switch:Qj}=So.Components,nx=class extends So.Class{template(){return this.controller=this.props.controller(),So.createElement("div",{class:So.const("dcg-expression-warning")},So.createElement("i",{class:So.const("dcg-icon-error"),"aria-hidden":So.const("true")}),So.createElement(Qj,{key:this.props.type},e=>{switch(e){case"unresolved":return So.createElement("span",null,()=>this.controller.s("graphing-calculator-error-equation-contains-unresolved-details"),So.createElement("a",{href:So.const("https://help.desmos.com/hc/en-us/articles/202529079-Unresolved-Detail-In-Plotted-Functions"),target:So.const("_blank")},()=>this.controller.s("graphing-calculator-link-learn-more")),So.const(")"));case"tone-out-of-range":return So.createElement("span",null,So.const(" "),()=>this.controller.s("graphing-calculator-error-tone-frequency-out-of-range",{min:Cg,max:Sg}));case"recursive-depth-plotting-error":return So.createElement("span",null,()=>this.controller.raw("Reached maximum recursion depth while plotting this expression."))}}))}};var Ko=__dcg_shared_module_exports__['e']($());var ka=__dcg_shared_module_exports__['e']($());var{SwitchUnion:Zj}=ka.Components,Vt=class extends ka.Class{init(){this.controller=this.props.controller()}template(){return ka.createElement("div",{class:this.bindFn(this.getContainerClass)},Zj(()=>String(this.props.readonly()),{true:()=>ka.createElement(ii,{latex:this.bindFn(this.getStaticLatex),operatorNames:()=>this.getMQConfig().autoOperatorNames,brailleShouldFocus:this.props.isFocused,isStatic:this.const(!0),onBrailleFocusedChanged:this.props.handleFocusChanged,ariaLabel:this.bindFn(this.getBrailleLabel),dataLabelAttributeValue:this.props.dataLabelAttributeValue,...ji(this.props.controller())},ka.createElement(ke,{latex:this.bindFn(this.getStaticLatex),config:this.bindFn(this.getMQConfig),getAriaLabel:this.props.ariaLabel},ka.createElement("span",{class:ka.const("dcg-math-field"),"data-dcg-label":()=>this.props.dataLabelAttributeValue?this.props.dataLabelAttributeValue():void 0,manageFocus:this.const({shouldBeFocused:()=>this.props.isFocused(),onFocusedChanged:(e,t)=>this.props.handleFocusChanged(e,t)}),tabindex:ka.const("0")}))),false:()=>ka.createElement(ii,{latex:this.props.latex,operatorNames:()=>this.getMQConfig().autoOperatorNames||"",brailleShouldFocus:this.props.isFocused,selectOnFocus:this.const(!0),onBrailleInput:this.props.handleLatexChanged,onBrailleFocusedChanged:this.props.handleFocusChanged,onBrailleKeydown:this.bindFn(this.onBrailleKeydown),hasError:this.props.hasError,placeholder:this.props.placeholder,ariaLabel:this.bindFn(this.getBrailleLabel),dataLabelAttributeValue:this.props.dataLabelAttributeValue,...ji(this.props.controller())},ka.createElement(ve,{latex:this.props.latex,getAriaPostLabel:()=>{var t,i;let e=((i=(t=this.props).ariaPostLabel)==null?void 0:i.call(t))||"";return this.props.hasError()&&e===""&&(e=this.controller.s("shared-calculator-narration-math-input-error-message")),e},isFocused:this.props.isFocused,placeholder:this.props.placeholder,capExpressionSize:()=>this.controller.getCapExpressionSize(),selectOnFocus:this.const(!0),config:this.bindFn(this.getMQConfig),getAriaLabel:this.props.ariaLabel,hasError:this.props.hasError,dataLabelAttributeValue:this.props.dataLabelAttributeValue,onUserPressedKey:this.props.handlePressedKey,onUserChangedLatex:this.props.handleLatexChanged,onSelectionChanged:this.props.handleSelectionChanged,onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:this.props.handleFocusChanged,needsSystemKeypad:()=>!this.controller.isKeypadEnabled()}))}))}getStaticLatex(){return this.props.latex()?this.props.latex():this.props.placeholder?this.props.placeholder():""}getContainerClass(){let e=this.props.containerClass?this.props.containerClass():{};return e["dcg-inline-math-input-view"]=!0,this.props.fullWidth&&this.props.fullWidth()&&(e["dcg-full-width-inline-math-input"]=!0),this.props.fontSize&&this.props.fontSize()==="large"&&(e["dcg-large-font-inline-math-input"]=!0),this.props.noBorder&&this.props.noBorder()&&(e["dcg-no-border-inline-math-input"]=!0),e}onBrailleKeydown(e){if(!this.props.handlePressedKey)return;let t=ue(e);t&&this.props.handlePressedKey(t,e)}getMQConfig(){return this.controller.getMathquillConfig({})}getBrailleLabel(){return this.props.brailleLabel?this.props.brailleLabel():this.props.ariaLabel()}};var{If:eJ}=Ko.Components,sh=class extends Ko.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return Ko.createElement("div",{class:Ko.const("dcg-domain dcg-do-blur"),handleEvent:Ko.const("true")},Ko.createElement("div",{class:Ko.const("dcg-display-domain dcg-do-blur"),handleEvent:Ko.const("true")},Ko.createElement(Vt,{readonly:()=>this.controller.isItemReadonly(this.id),latex:()=>this.getMinLatex(),isFocused:()=>this.getFocusedInput()==="min"+this.getDomainVariableString(),placeholder:()=>__dcg_shared_module_exports__['Va'](O2(this.model,this.getDomainVariable()),this.controller.getPrecisionConfig()).latex,ariaLabel:()=>this.controller.s("graphing-calculator-narration-domain3d-minimum",{term:this.getDomainVariableString()}),brailleLabel:()=>this.controller.raw("dmin"),handleFocusChanged:e=>this.handleFocusedChanged("min"+this.getDomainVariableString(),e),hasError:()=>!F2(this.model,this.getDomainVariable()),controller:this.props.controller,handlePressedKey:(e,t)=>this.handlePressedKey("min"+this.getDomainVariableString(),e,t),handleLatexChanged:e=>this.dispatchMinLatexIfChanged(e),dataLabelAttributeValue:this.const("domain-min")}),Ko.createElement("span",{class:Ko.const("dcg-interval-interior")},Ko.createElement(ke,{latex:()=>this.getDomainVariableDisplayLatex(),config:this.const({})})),Ko.createElement(Vt,{readonly:()=>this.controller.isItemReadonly(this.id),latex:()=>this.getMaxLatex(),isFocused:()=>this.getFocusedInput()==="max"+this.getDomainVariableString(),placeholder:()=>__dcg_shared_module_exports__['Va'](_2(this.model,this.getDomainVariable()),this.controller.getPrecisionConfig()).latex,ariaLabel:()=>this.controller.s("graphing-calculator-narration-domain3d-maximum",{term:this.getDomainVariableString()}),brailleLabel:()=>this.controller.raw("dmax"),handleFocusChanged:e=>this.handleFocusedChanged("max"+this.getDomainVariableString(),e),hasError:()=>!R2(this.model,this.getDomainVariable()),controller:this.props.controller,handlePressedKey:(e,t)=>this.handlePressedKey("max"+this.getDomainVariableString(),e,t),handleLatexChanged:e=>this.dispatchMaxLatexIfChanged(e),dataLabelAttributeValue:this.const("domain-max")}),Ko.createElement(eJ,{predicate:()=>this.getDomainVariableString()==="\\phi"},()=>Ko.createElement(cc,{href:this.const("https://help.desmos.com/hc/en-us/articles/15824510769805"),controller:this.props.controller}))))}handlePressedKey(e,t,i){if(!this.controller.isInEditListMode()){if(t==="Esc"){this.controller.dispatch({type:"set-focus-location",location:void 0});return}if(t==="Enter")return this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"})}let o=ve.getFocusedMathquill(),n=ia();if(t==="Left"||t==="Right"||t==="Down"||t==="Up"){var a;o?a=ve.applyArrowKeyAndReturnIfWasAtBounds(o,t,i):n&&(n.selectionStart===0&&t==="Left"||n.selectionStart===n.value.length&&t==="Right"||t==="Up"||t==="Down")?a=!0:a=!1,a&&(i&&i.preventDefault(),t==="Left"?e==="max"+this.getDomainVariableString()&&this.controller.dispatch({type:"set-focus-location",location:{type:"domain-limit",id:this.model.id,location:"min"+this.getDomainVariableString()}}):t==="Right"?e==="min"+this.getDomainVariableString()&&this.controller.dispatch({type:"set-focus-location",location:{type:"domain-limit",id:this.model.id,location:"max"+this.getDomainVariableString()}}):t==="Down"?this.controller.dispatch({type:"on-special-key-pressed",key:"Down"}):t==="Up"&&this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.model.id}}));return}o&&(o.keystroke(t,i),e==="min"+this.getDomainVariableString()?this.dispatchMinLatexIfChanged(o.latex()):e==="max"+this.getDomainVariableString()&&this.dispatchMaxLatexIfChanged(o.latex()))}getDomainVariable(){var i,o;let e=this.props.domainIndex(),t=(o=(i=this.model.formula.domains)==null?void 0:i[e])==null?void 0:o.variable;if(!t)throw new Error("Programming Error: could not find domain variable in index "+e);return t}handleFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"domain-limit",id:this.id,location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"domain-limit",id:this.id,location:e}})}dispatchMinLatexIfChanged(e){this.getMinLatex()!==e&&this.controller.dispatch({type:"set-domain-minlatex",variable:this.getDomainVariable(),id:this.id,latex:e})}dispatchMaxLatexIfChanged(e){this.getMaxLatex()!==e&&this.controller.dispatch({type:"set-domain-maxlatex",variable:this.getDomainVariable(),id:this.id,latex:e})}getFocusedInput(){let e=this.controller.getFocusLocation();if(!(!e||e.type!=="domain-limit"||e.id!==this.id))return e.location}getMinLatex(){return r_(this.model,this.getDomainVariable())}getMaxLatex(){return i_(this.model,this.getDomainVariable())}getDomainVariableString(){let e=this.getDomainVariable();return e==="theta"?e="\\theta":e==="phi"&&(e="\\phi"),e}getDomainVariableDisplayLatex(){return"\\le "+this.getDomainVariableString()+" \\le"}};var oe=__dcg_shared_module_exports__['e']($());var{If:As,For:tJ,IfElse:rJ}=oe.Components,ax=class extends oe.Class{template(){return this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,oe.createElement(As,{predicate:this.bindFn(this.hasRegression)},()=>oe.createElement("div",{class:oe.const("dcg-regression-container")},oe.createElement("div",{class:oe.const("dcg-handle-event"),handleEvent:oe.const("true")},oe.createElement(As,{predicate:this.bindFn(this.getShouldSuggestLogMode)},()=>oe.createElement("div",{class:oe.const("dcg-log-mode-toggle")},rJ(()=>this.areLogModeRegressionsForced(),{true:()=>oe.createElement("div",{class:oe.const("dcg-action-log-mode-toggle dcg-no-hover-styling")},()=>this.controller.s("graphing-calculator-button-regression-log-mode")),false:()=>oe.createElement("div",null,oe.createElement(He,{class:this.const("dcg-action-log-mode-toggle dcg-log-mode-checkbox"),onChange:this.bindFn(this.onTapLogMode),checked:()=>this.getIsLogModeRegression()},()=>this.controller.s("graphing-calculator-button-regression-log-mode")),oe.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-regression-log-mode-help-tooltip"),gravity:this.const("e")},oe.createElement("a",{"aria-label":()=>this.controller.s("graphing-calculator-label-regression-log-mode-help-tooltip"),class:oe.const("dcg-log-mode-toggle-help"),target:oe.const("_blank"),href:oe.const("https://help.desmos.com/hc/en-us/articles/204349605")},oe.createElement("i",{class:oe.const("dcg-icon-question-sign"),"aria-hidden":oe.const("true")}))))}))),oe.createElement("div",{class:oe.const("dcg-statistics"),role:oe.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-heading-regression-statistics")},oe.createElement("div",{class:oe.const("dcg-expression-footer-title")},()=>this.controller.s("graphing-calculator-heading-regression-statistics"),oe.createElement(As,{predicate:()=>this.getRegression().statistics.hasOwnProperty("RMSE")},()=>oe.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-regression-what-is-rmse-tooltip"),gravity:this.const("s")},oe.createElement("a",{class:oe.const("dcg-expression-footer-title-help"),target:oe.const("_blank"),href:oe.const("https://help.desmos.com/hc/en-us/articles/202529129-What-is-RMSE-"),"aria-label":()=>this.controller.s("graphing-calculator-label-regression-what-is-rmse-tooltip")},oe.createElement("i",{class:oe.const("dcg-icon-question-sign"),"aria-hidden":oe.const("true")})))),oe.createElement(As,{predicate:()=>this.getRegression().statistics.Rsquared<0},()=>oe.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-regression-why-is-negative-tooltip"),gravity:this.const("s")},oe.createElement("a",{"aria-label":()=>this.controller.s("graphing-calculator-label-regression-why-is-negative-tooltip"),class:oe.const("dcg-expression-footer-title-help"),target:oe.const("_blank"),href:oe.const("https://help.desmos.com/hc/en-us/articles/202529139-Why-am-I-seeing-a-negative-R-2-value-")},oe.createElement("i",{class:oe.const("dcg-icon-question-sign"),"aria-hidden":oe.const("true")}))))),oe.createElement("div",{class:oe.const("dcg-statistics-values")},oe.createElement(As,{predicate:()=>this.getRegression().statistics.hasOwnProperty("Rsquared")},()=>oe.createElement("div",null,oe.createElement(ii,{latex:()=>"R^2="+dd(this.getRegression(),"Rsquared"),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="regression-output"?!1:e.id===this.id&&e.parameter==="Rsquared"},onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:"Rsquared"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:"Rsquared"}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:()=>"R^2="+dd(this.getRegression(),"Rsquared"),config:this.const({})},oe.createElement("span",{tabindex:oe.const("0"),manageFocus:this.const(Fe({predicate:()=>this.controller.getBrailleMode()==="none",controller:this.controller,location:{type:"regression-output",id:this.id,parameter:"Rsquared"}}))}))))),oe.createElement(As,{predicate:()=>this.getRegression().statistics.hasOwnProperty("rsquared")},()=>oe.createElement("div",null,oe.createElement(ii,{latex:()=>"r^2="+dd(this.getRegression(),"rsquared"),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="regression-output"?!1:e.id===this.id&&e.parameter==="rsquared"},onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:"rsquared"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:"rsquared"}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:()=>"r^2="+dd(this.getRegression(),"rsquared"),config:this.const({})},oe.createElement("span",{tabindex:oe.const("0"),manageFocus:this.const(Fe({predicate:()=>this.controller.getBrailleMode()==="none",controller:this.controller,location:{type:"regression-output",id:this.id,parameter:"rsquared"}}))}))))),oe.createElement(As,{predicate:()=>this.getRegression().statistics.hasOwnProperty("r")},()=>oe.createElement("div",null,oe.createElement(ii,{latex:()=>"r="+dd(this.getRegression(),"r"),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="regression-output"?!1:e.id===this.id&&e.parameter==="r"},onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:"r"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:"r"}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:()=>"r="+dd(this.getRegression(),"r"),config:this.const({})},oe.createElement("span",{class:oe.const("dcg-r-value"),tabindex:oe.const("0"),manageFocus:this.const(Fe({predicate:()=>this.controller.getBrailleMode()==="none",controller:this.controller,location:{type:"regression-output",id:this.id,parameter:"r"}}))}))))),oe.createElement(As,{predicate:()=>this.getRegression().statistics.hasOwnProperty("RMSE")},()=>oe.createElement("div",null,oe.createElement(ii,{latex:()=>"\\operatorname{RMSE}="+dd(this.getRegression(),"RMSE"),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="regression-output"?!1:e.id===this.id&&e.parameter==="RMSE"},onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:"RMSE"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:"RMSE"}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:()=>"\\operatorname{RMSE}="+dd(this.getRegression(),"RMSE"),config:this.const({})},oe.createElement("span",{tabindex:oe.const("0"),manageFocus:this.const(Fe({predicate:()=>this.controller.getBrailleMode()==="none",controller:this.controller,location:{type:"regression-output",id:this.id,parameter:"RMSE"}}))}))))))),oe.createElement("div",{role:oe.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-heading-regression-residuals"),class:oe.const("dcg-residuals")},oe.createElement("div",{class:oe.const("dcg-expression-footer-title")},()=>this.controller.s("graphing-calculator-heading-regression-residuals")),oe.createElement(ii,{latex:this.bindFn(this.getResidualVariable),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="regression-output"?!1:e.id===this.id&&e.parameter===this.getResidualVariable()},onBrailleFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:this.getResidualVariable()}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:this.getResidualVariable()}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:this.bindFn(this.getResidualVariable),config:this.const({})},oe.createElement("span",{class:oe.const("dcg-residuals-variable"),tabindex:oe.const("0"),manageFocus:this.const(Fe({predicate:()=>this.controller.getBrailleMode()==="none",controller:this.controller,location:{type:"regression-output",id:this.id,parameter:this.getResidualVariable()}}))}))),oe.createElement(As,{predicate:this.bindFn(this.getResidualSuggestionVisible)},()=>oe.createElement("div",{class:oe.const("dcg-residual-suggestion dcg-action-plot-residual dcg-btn dcg-btn-light-gray"),role:oe.const("button"),onTap:this.bindFn(this.onTapResidualsSuggestion)},()=>this.controller.s("graphing-calculator-button-regression-plot-residuals")))),oe.createElement(As,{predicate:()=>Object.keys(this.getRegression().parameters).length>0},()=>oe.createElement("div",{class:oe.const("dcg-parameters-container")},oe.createElement("div",{class:oe.const("dcg-expression-footer-title")},()=>this.controller.s("graphing-calculator-heading-regression-parameters"),oe.createElement(As,{predicate:()=>this.isNonLinearRegression()},()=>oe.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-regression-parameters-not-exact"),gravity:this.const("s")},oe.createElement("a",{class:oe.const("dcg-expression-footer-title-help"),target:oe.const("_blank"),href:oe.const("https://help.desmos.com/hc/en-us/articles/360042428612"),"aria-label":()=>this.controller.s("graphing-calculator-label-regression-parameters-not-exact")},oe.createElement("i",{class:oe.const("dcg-icon-question-sign"),"aria-hidden":oe.const("true")}))))),oe.createElement(tJ,{each:()=>Object.keys(this.getRegression().parameters)},oe.createElement("div",{role:oe.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-heading-regression-parameters"),class:oe.const("dcg-parameters")},e=>oe.createElement(ii,{latex:()=>e+"="+d1(this.getRegression(),e),brailleShouldFocus:()=>{let t=this.controller.getFocusLocation();return!t||t.type!=="regression-output"?!1:t.id===this.id&&t.parameter===e},onBrailleFocusedChanged:t=>{t?this.controller.dispatch({type:"set-focus-location",location:{type:"regression-output",id:this.id,parameter:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"regression-output",id:this.id,parameter:e}})},ariaLabel:this.const(""),isStatic:this.const(!0),...ji(this.controller)},oe.createElement(ke,{latex:()=>e+"="+d1(this.getRegression(),e),config:this.const({})},oe.createElement("span",{class:oe.const("dcg-parameter"),tabindex:oe.const("0"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"regression-output",id:this.id,parameter:e}}))}))))))),oe.createElement("div",{class:oe.const("dcg-clear")}),oe.createElement(As,{predicate:()=>this.hasParameterWarning()},()=>oe.createElement("div",{class:oe.const("dcg-parameter-warning")},oe.createElement("i",{class:oe.const("dcg-icon-error"),"aria-hidden":oe.const("true")}),oe.const("\xA0"),()=>this.controller.s("graphing-calculator-text-regression-potentially-inaccurate-parameters"),oe.const("\xA0"),oe.createElement("a",{href:oe.const("https://help.desmos.com/hc/en-us/articles/360042942771"),target:oe.const("_blank")},()=>this.controller.s("graphing-calculator-link-learn-more")))))))}onTapResidualsSuggestion(){this.controller.dispatch({type:"plot-residuals",id:this.id})}onTapLogMode(){this.controller.dispatch({type:"toggle-logmode",id:this.id})}getRegression(){return this.model.formula.regression}hasRegression(){return!!this.model.formula.regression}isNonLinearRegression(){return!this.getRegression().isLinear}getResidualVariable(){return this.getRegression().residualVariable||""}getResidualSuggestionVisible(){return this.getRegression().residualSuggestionId!==void 0}areLogModeRegressionsForced(){return this.controller.areLogModeRegressionsForced()}getShouldSuggestLogMode(){return!!this.getRegression().shouldSuggestLogMode}hasParameterWarning(){return!!this.getRegression().parameterWarning}getIsLogModeRegression(){return!!this.model.isLogModeRegression}};function d1(r,e){return __dcg_shared_module_exports__['ab'](r.parameters[e],{digits:6,smallCutoff:1e-6,bigCutoff:1e9})}function dd(r,e){return __dcg_shared_module_exports__['ab'](r.statistics[e],{zeroCutoff:1e-15,digits:4,smallCutoff:1e-6,bigCutoff:1e9})}var fi=__dcg_shared_module_exports__['e']($());var Li=__dcg_shared_module_exports__['e']($());var{If:iJ}=Li.Components,sx=class extends Li.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return Li.createElement("div",{class:Li.const("dcg-slider_menu dcg-do-blur"),handleEvent:Li.const("true"),didMount:e=>this.node=e},Li.createElement("div",{class:Li.const("dcg-editable-mathquill-container")},Li.createElement(iJ,{predicate:()=>!this.shouldOnlyShowStep()},()=>Li.createElement("span",null,Li.createElement(Vt,{readonly:()=>this.controller.isItemReadonly(this.id),latex:()=>this.model.slider.hardMin?this.model.slider.min:"",isFocused:()=>this.getFocusedInput()==="min",ariaLabel:()=>this.controller.s("graphing-calculator-narration-slider-minimum"),brailleLabel:()=>this.controller.raw("sldrmin"),handleFocusChanged:(e,t)=>this.handleFocusedChanged("min",e,t),hasError:()=>!fC(this.model),controller:this.props.controller,handlePressedKey:(e,t)=>this.handlePressedKey("min",e,t),handleLatexChanged:e=>this.handleLatexChanged("min",e),dataLabelAttributeValue:this.const("slidermin")}),Li.createElement("span",{class:Li.const("dcg-interval-interior")},Li.createElement(ke,{latex:this.bindFn(this.getDependentLatex),config:this.const({})},Li.createElement("span",null))),Li.createElement(Vt,{readonly:()=>this.controller.isItemReadonly(this.id),latex:()=>this.model.slider.hardMax?this.model.slider.max:"",isFocused:()=>this.getFocusedInput()==="max",ariaLabel:()=>this.controller.s("graphing-calculator-narration-slider-maximum"),brailleLabel:()=>this.controller.raw("sldrmax"),handleFocusChanged:(e,t)=>this.handleFocusedChanged("max",e,t),hasError:()=>!bC(this.model),controller:this.props.controller,handlePressedKey:(e,t)=>this.handlePressedKey("max",e,t),handleLatexChanged:e=>this.handleLatexChanged("max",e),dataLabelAttributeValue:this.const("slidermax")}))),Li.createElement("span",{class:()=>({"dcg-slider-step-container":!this.shouldOnlyShowStep()})},Li.createElement("span",{class:Li.const("dcg-slider-step-label"),"aria-hidden":Li.const("true")},()=>this.controller.s("graphing-calculator-label-slider-step")),Li.createElement(Vt,{readonly:()=>this.controller.isItemReadonly(this.id),latex:()=>this.model.slider.step,isFocused:()=>this.getFocusedInput()==="step",ariaLabel:()=>this.controller.s("graphing-calculator-narration-slider-step"),brailleLabel:()=>this.controller.raw("sldrstep"),handleFocusChanged:(e,t)=>this.handleFocusedChanged("step",e,t),hasError:()=>!yC(this.model),controller:this.props.controller,handlePressedKey:(e,t)=>this.handlePressedKey("step",e,t),handleLatexChanged:e=>this.handleLatexChanged("step",e),dataLabelAttributeValue:this.const("sliderstep")}))))}handlePressedKey(e,t,i){if(!this.controller.isInEditListMode()&&!this.shouldOnlyShowStep()&&(t==="Esc"||t==="Enter")){this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.id}});return}let o=ve.getFocusedMathquill(),n=ia();if(t==="Left"||t==="Right"||t==="Down"||t==="Up"){var a;o?a=ve.applyArrowKeyAndReturnIfWasAtBounds(o,t,i):n&&(n.selectionStart===0&&t==="Left"||n.selectionStart===n.value.length&&t==="Right"||t==="Up"||t==="Down")?a=!0:a=!1,a&&(i&&i.preventDefault(),t==="Left"&&!this.shouldOnlyShowStep()?e==="max"?this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:"min"}}):e==="step"&&this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:"max"}}):t==="Right"&&!this.shouldOnlyShowStep()?e==="min"?this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:"max"}}):e==="max"&&this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:"step"}}):t==="Down"?this.controller.dispatch({type:"on-special-key-pressed",key:"Down"}):t==="Up"&&this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.id}}));return}o&&(o.keystroke(t,i),this.handleLatexChanged(e,o.latex()))}shouldOnlyShowStep(){return this.model.slider.loopMode==="PLAY_INDEFINITELY"}handleLatexChanged(e,t){e==="min"?this.dispatchMinLatexIfChanged(t):e==="max"?this.dispatchMaxLatexIfChanged(t):e==="step"&&this.dispatchStepLatexIfChanged(t)}handleFocusedChanged(e,t,i){t&&this.getFocusedInput()!==e?this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:e}}):this.getFocusedInput()===e&&this.controller.getBrailleMode()==="none"&&(!i.relatedTarget||!this.node.contains(i.relatedTarget))&&this.controller.dispatch({type:"blur-focus-location",location:{type:"slider-limit",id:this.id,location:e}})}dispatchMinLatexIfChanged(e){this.model.slider.min!==e&&this.controller.dispatch({type:"set-slider-minlatex",id:this.id,latex:e})}dispatchMaxLatexIfChanged(e){this.model.slider.max!==e&&this.controller.dispatch({type:"set-slider-maxlatex",id:this.id,latex:e})}dispatchStepLatexIfChanged(e){this.model.slider.step!==e&&this.controller.dispatch({type:"set-slider-steplatex",id:this.id,latex:e})}getDependentLatex(){var e=Oo(this.model)||"";return" \\le "+__dcg_shared_module_exports__['bb'](e)+" \\le "}getFocusedInput(){let e=this.controller.getFocusLocation();if(!(!e||e.type!=="slider-limit"||e.id!==this.id))return e.location}};var{If:iK}=fi.Components,lx=class extends fi.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return fi.createElement("span",{class:fi.const("dcg-slider-container"),tapboundary:fi.const("true"),onKeydown:e=>{if(ue(e)==="Tab"&&!e.altKey&&!e.metaKey&&!e.ctrlKey)if(e.shiftKey)if(this.isSliderMinFocused()&&this.controller.isInEditListMode()){if(e.target){let t=e.target.closest(".dcg-expressionitem");if(t){let i=Array.from(t.querySelectorAll('[tabindex="0"]')).filter(ru)[0];i==null||i.focus()}}e.preventDefault(),e.stopPropagation()}else this.isSliderThumbFocused()&&(this.controller.isItemReadonly(this.model.id)||(this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:"step"}}),e.preventDefault(),e.stopPropagation()));else!e.shiftKey&&this.isSliderStepFocused()&&(this.controller.isInEditListMode()?this.controller.dispatch({type:"set-focus-location",location:{type:"slider-icon",id:this.id}}):this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.id}}),e.preventDefault(),e.stopPropagation())}},fi.createElement(iK,{predicate:this.bindFn(this.shouldShowSlider)},()=>fi.createElement("div",{class:fi.const("dcg-do-blur dcg-slider"),handleEvent:fi.const("true")},fi.createElement("div",{class:fi.const("dcg-minLabel dcg-template-minlabelhtml"),role:fi.const("button"),tabindex:fi.const("0"),"aria-label":this.bindFn(this.getMinAriaLabel),onTap:()=>this.onEditLimit("min")},fi.createElement(ke,{latex:()=>mC(this.model,this.controller.getPrecisionConfig()),config:this.const({})})),fi.createElement(Xu,{min:()=>Ra(this.model),max:()=>Ys(this.model),step:()=>gs(this.model),value:()=>Na(this.model),ariaLabel:()=>this.controller.getBrailleMode()==="none"?'"'+Oo(this.model)+'"':""+Oo(this.model),onGrab:this.bindFn(this.onGrab),onDrop:this.bindFn(this.onDrop),onDragUpdate:this.bindFn(this.onDragUpdate),onKeyboardUpdate:this.bindFn(this.onKeyboardUpdate),onUpPress:()=>this.controller.dispatch({type:"on-special-key-pressed",key:"Up"}),onDownPress:()=>this.controller.dispatch({type:"on-special-key-pressed",key:"Down"}),onEnterPress:()=>this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"}),isFocused:this.bindFn(this.isSliderThumbFocused),onFocusedChanged:e=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.id}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"slider-thumb",id:this.id}})}}),fi.createElement("div",{class:fi.const("dcg-maxLabel dcg-template-maxlabelhtml"),onTap:()=>this.onEditLimit("max"),role:fi.const("button"),tabindex:fi.const("0"),"aria-label":()=>this.controller.s("graphing-calculator-narration-slider-maximum")+" "+xo(mC(this.model,this.controller.getPrecisionConfig()))},fi.createElement(ke,{latex:()=>M2(this.model,this.controller.getPrecisionConfig()),config:this.const({})})))),fi.createElement(iK,{predicate:this.bindFn(this.shouldShowLimitInputs)},()=>fi.createElement(sx,{model:this.props.model,controller:this.props.controller})))}getMinAriaLabel(){return this.controller.isItemReadonly(this.model.id)?this.controller.s("graphing-calculator-narration-slider-minimum")+" "+xo(mC(this.model,this.controller.getPrecisionConfig())):this.controller.s("graphing-calculator-narration-edit-slider-variable-limits",{variable:this.controller.getBrailleMode()==="none"?'"'+Oo(this.model)+'"':""+Oo(this.model)})}onGrab(){this.dispatchIsDraggingIfChanged(!0)}onDrop(){this.controller.dispatch({type:"set-none-selected"}),this.dispatchIsPlayingIfChanged(!1),this.dispatchIsDraggingIfChanged(!1)}onKeyboardUpdate(e){this.controller.dispatch({type:"adjust-slider-by-keyboard",id:this.id,adjustment:e})}onDragUpdate(e){this.controller.dispatch({type:"adjust-slider-by-dragging-thumb",id:this.model.id,target:e})}onEditLimit(e){this.controller.dispatch({type:"set-focus-location",location:{type:"slider-limit",id:this.id,location:e}})}dispatchIsPlayingIfChanged(e){this.model.slider.isPlaying!==e&&this.controller.dispatch({type:"set-slider-isplaying",id:this.id,isPlaying:e})}dispatchIsDraggingIfChanged(e){this.model.sliderDragging!==e&&this.controller.dispatch({type:"set-slider-dragging",id:this.id,dragging:e})}shouldShowLimitInputs(){if(this.controller.isInEditListMode())return!0;if(this.controller.isItemReadonly(this.model.id))return!1;if(!fC(this.model)||!bC(this.model)||!yC(this.model)||this.model.slider.loopMode==="PLAY_INDEFINITELY")return!0;let e=this.controller.getFocusLocation();return!!(e&&(e.type==="slider-limit"||e.type==="expression"||e.type==="top-level-icon"||e.type==="readonly-expression")&&e.id===this.id)}shouldShowSlider(){return!this.shouldShowLimitInputs()}isSliderThumbFocused(){let e=this.controller.getFocusLocation();return!!(e&&e.type==="slider-thumb"&&e.id===this.id)}isSliderMinFocused(){let e=this.controller.getFocusLocation();return!!(e&&e.type==="slider-limit"&&e.id===this.id&&e.location==="min")}isSliderStepFocused(){let e=this.controller.getFocusLocation();return!!(e&&e.type==="slider-limit"&&e.id===this.id&&e.location==="step")}};kt();var Br=__dcg_shared_module_exports__['e']($());var{For:oJ,If:nJ}=Br.Components,hl=class extends Br.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.promptGroupId=`prompt-slider-${cp()}`}template(){return Br.createElement("div",{class:Br.const("dcg-create-sliders"),handleEvent:Br.const("true"),role:Br.const("group"),"aria-labelledby":this.const(this.promptGroupId)},Br.createElement("span",{class:Br.const("dcg-msg"),id:this.const(this.promptGroupId)},this.bindFn(this.getPromptMsg)),Br.createElement("span",{class:Br.const("btns")},Br.createElement(oJ,{each:this.bindFn(this.getMissingVariables)},Br.createElement("span",null,e=>Br.createElement("div",{class:Br.const("dcg-slider-btn-container"),onTap:t=>this.onCreateSlider(t,[e])},Br.createElement("div",{role:Br.const("button"),tabindex:Br.const("0"),class:()=>({"dcg-btn-slider":!0,"dcg-btn-blue":this.getMissingVariables().length===1,"dcg-base-case-btn":this.getMissingBaseCases().length>0,"dcg-btn-light-gray":this.getMissingVariables().length!==1})},Br.createElement(ke,{config:this.const({}),latex:()=>e}))))),Br.createElement(nJ,{predicate:()=>this.getMissingVariables().length>1},()=>Br.createElement("div",{class:Br.const("dcg-slider-btn-container dcg-all")},Br.createElement("div",{role:Br.const("button"),tabindex:Br.const("0"),class:Br.const("dcg-btn-slider dcg-btn-blue"),onTap:e=>this.onCreateSlider(e,this.getMissingVariables())},()=>this.controller.s("graphing-calculator-button-slider-add-all-variables"))))))}getPromptMsg(){return this.getMissingBaseCases().length>0?this.controller.s("graphing-calculator-label-add-base-case"):this.controller.s("graphing-calculator-label-add-slider")}onCreateSlider(e,t){if(this.controller.dispatch({type:"set-none-selected"}),this.model.type==="ticker"?this.controller.dispatch({type:"create-sliders-for-ticker",variables:t}):this.controller.dispatch({type:"create-sliders-for-item",id:this.model.id,variables:t}),e.device==="keyboard"){let i=this.model.id,o=this.props.controller().getItemNodeById(i);if(!o)return;t.length>1?this.controller.dispatch({type:"move-focus-to-item",id:i}):W(o.querySelector(".dcg-btn-blue")).trigger("focus")}}getMissingBaseCases(){return this.model.type!=="expression"?[]:mu(this.model)}getMissingVariables(){let e=this.getMissingBaseCases();return e.length>0?e:(this.model.type==="ticker"?eb(this.model):ab(this.model)).slice(0,vb)}didMount(){this.promptAlertTimeout&&clearTimeout(this.promptAlertTimeout),this.promptAlertTimeout=setTimeout(this.bindIfMounted(()=>{for(var e=[],t=this.getMissingVariables(),i=0;i<t.length;i++)e.push(uo(t[i]));let o=this.getMissingBaseCases().length;o>0?ie(this.controller.s("graphing-calculator-narration-add-base-case-prompt",{count:__dcg_shared_module_exports__['jb'](o)})):ie(this.controller.s("graphing-calculator-narration-add-slider-prompt",{vars:e.join(",")})),this.promptAlertTimeout=0}),2e3)}didUnmount(){this.promptAlertTimeout&&clearTimeout(this.promptAlertTimeout)}};var Rn=__dcg_shared_module_exports__['e']($());var cx=class extends Rn.Class{template(){return Rn.createElement("div",{class:Rn.const("dcg-prompt-rename"),handleEvent:Rn.const("true")},()=>Ka("graphing-calculator-label-rename"),Rn.createElement("span",{class:Rn.const("dcg-btn-light-gray"),onTap:this.props.handleRename,tabindex:Rn.const(0),role:Rn.const("button")},Rn.createElement(ke,{latex:()=>this.props.from()+" \\to "+this.props.to(),config:this.const({})},Rn.createElement("span",{style:Rn.const("pointer-events:none")}))),Rn.createElement("span",{class:Rn.const("dcg-reference-count")},()=>Ka(this.props.inFolder()?"graphing-calculator-label-reference-count-in-folder":"graphing-calculator-label-reference-count",{count:__dcg_shared_module_exports__['jb'](this.props.count())})))}};var Xa=__dcg_shared_module_exports__['e']($());var Ji=__dcg_shared_module_exports__['e']($());var{If:oK}=Ji.Components,dx=class extends Ji.Class{constructor(){super(...arguments),this.focusedValues={}}template(){return this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,Ji.createElement("div",{class:Ji.const("dcg-cdf-footer-container dcg-do-blur"),tapboundary:Ji.const("true"),handleEvent:Ji.const("true")},Ji.createElement(He,{checked:()=>Wc(this.model),disabled:()=>XT(this.model)||this.controller.isItemReadonly(this.model.id),onChange:e=>{this.controller.dispatch({type:"set-show-cdf",id:this.model.id,showCDF:e})}},()=>this.controller.s("graphing-calculator-button-find-cdf")),Ji.createElement(oK,{predicate:()=>Wc(this.model)},()=>Ji.createElement("div",null,Ji.createElement("span",{class:Ji.const("dcg-cdf-limit-name")},()=>this.controller.s("graphing-calculator-label-cdf-minimum")),Ji.createElement(Vt,{handleFocusChanged:e=>this.handleFocusedChanged("min",e),latex:()=>GC(this.model),hasError:()=>!PC(this.model),isFocused:()=>this.isInputFocused("min"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-cdf-minimum"),placeholder:()=>h_(this.model),handlePressedKey:(e,t)=>this.handlePressedKey(e,t,"min"),controller:this.props.controller,handleLatexChanged:this.bindFn(this.updateCDFMin),readonly:()=>this.controller.isItemReadonly(this.model.id)}),Ji.createElement("span",{class:Ji.const("dcg-cdf-limit-name")},()=>this.controller.s("graphing-calculator-label-cdf-maximum")),Ji.createElement(Vt,{handleFocusChanged:e=>this.handleFocusedChanged("max",e),latex:()=>VC(this.model),hasError:()=>!LC(this.model),isFocused:()=>this.isInputFocused("max"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-cdf-maximum"),placeholder:()=>g_(this.model),handlePressedKey:(e,t)=>this.handlePressedKey(e,t,"max"),controller:this.props.controller,handleLatexChanged:this.bindFn(this.updateCDFMax),readonly:()=>this.controller.isItemReadonly(this.model.id)}),Ji.createElement(oK,{predicate:this.bindFn(this.showEvaluation)},()=>Ji.createElement("div",{class:Ji.const("dcg-cdf-evaluation-container")},Ji.createElement(ah,{val:()=>tI(this.model),controller:this.props.controller,dependent:this.const(""),id:()=>this.model.id,focusable:this.const(!0)}))))))}handlePressedKey(e,t,i){if(e==="Esc"){this.controller.dispatch({type:"set-focus-location",location:void 0});return}if(e==="Enter")return this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"});var o=ve.getFocusedMathquill();o&&(o.keystroke(e,t),i==="min"&&GC(this.model)!==o.latex()&&this.updateCDFMin(o.latex()),i==="max"&&VC(this.model)!==o.latex()&&this.updateCDFMax(o.latex()))}updateCDFMax(e){this.controller.dispatch({type:"set-cdf-max",id:this.model.id,latex:e})}updateCDFMin(e){this.controller.dispatch({type:"set-cdf-min",id:this.model.id,latex:e})}showEvaluation(){return!(!LC(this.model)||!PC(this.model))}isInputFocused(e){let t=this.controller.getFocusLocation();return!t||t.type!=="cdf-limit"||t.id!==this.id?!1:t.location===e}handleFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"cdf-limit",id:this.id,location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"cdf-limit",id:this.id,location:e}})}};var Uo=__dcg_shared_module_exports__['e']($());var{If:aJ,For:nK,SwitchUnion:sJ}=Uo.Components,Nm=class extends Uo.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return sJ(this.bindFn(this.getSuggestionType),{list:()=>Uo.createElement(nK,{each:this.bindFn(this.getListOfParameters)},Uo.createElement("div",{class:()=>({"dcg-parameter-suggestion-container":!0,"dcg-parameter-suggestion-braille":this.controller.getBrailleMode()!=="none"})},e=>Uo.createElement("span",{class:Uo.const("dcg-parameter-name")},()=>this.getParamName(e)))),listWithDefault:()=>Uo.createElement(nK,{each:this.bindFn(this.getListOfParameters)},Uo.createElement("div",{class:()=>({"dcg-parameter-suggestion-container":!0,"dcg-parameter-suggestion-braille":this.controller.getBrailleMode()!=="none"}),onTap:this.bindFn(this.fillInDefaults)},e=>Uo.createElement("span",{class:Uo.const("dcg-parameter-name")},()=>this.getParamName(e),Uo.createElement(aJ,{predicate:()=>this.shouldShowDefaultValue(e)},()=>Uo.createElement("span",{class:Uo.const("dcg-default-marker")},Uo.const("= "),()=>this.getDefaultValue(e)))))),individual:()=>Uo.createElement("div",{class:()=>({"dcg-parameter-suggestion-container":!0,"dcg-parameter-suggestion-braille":this.controller.getBrailleMode()!=="none"})},this.bindFn(this.getMissingRequiredParamText)),none:()=>{}})}getExtractedAndDefaultArgString(e){let{params:t,values:i,defaults:o}=e;return t.map((a,s)=>{let l=i[a],c=o[s];return l||c||""}).join(",")}fillInDefaults(){let e=Ba(this.model);if(!e)return;let{symbol:t,span:i}=e,{input:o,start:n,end:a}=i,s=this.getExtractedAndDefaultArgString(e),l=`\\operatorname{${t}}\\left(${s}\\right)`,c=`${o.slice(0,n)}${l}${o.slice(a)}`;this.controller.dispatch({type:"set-item-latex",id:this.id,latex:c}),this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.id}}),this.controller.dispatch({type:"keypad/press-key",key:"Left"})}isMissingDefault(){if(!Tb(this.model))return!1;let e=Ba(this.model);if(!e)return!1;for(var t=0;t<e.params.length;t++)if(this.shouldShowDefaultValue(e.params[t]))return!0;return!1}getSuggestionType(){return this.getListOfParameters().length>1?this.isMissingDefault()?"listWithDefault":"list":this.missingRequiredParam()?"individual":"none"}missingRequiredParam(){let e=Ba(this.model);if(e&&e.params.length===1){var t=e.params[0];if(!this.getDefaultValue(t)&&!this.getParameterExtractedValue(t))return t}}getMissingRequiredParamText(){var e=this.missingRequiredParam();return e?this.controller.s("graphing-calculator-text-enter-pareneter",{param:this.getParamName(e)}):""}getDefaultValue(e){let t=Ba(this.model);if(!t||!t.params)return"";for(let i=0;i<t.params.length;i++)if(t.params[i]===e)return t.defaults[i]||"";return""}getParameterExtractedValue(e){let t=Ba(this.model);return t&&t.values[e]||""}shouldShowDefaultValue(e){return!this.getParameterExtractedValue(e)&&!!this.getDefaultValue(e)}getListOfParameters(){let e=Ba(this.model);return e?e.params:[]}getParamName(e){switch(e){case"mean":return this.controller.s("graphing-calculator-text-parameter-name-mean");case"stdev":return this.controller.s("graphing-calculator-text-parameter-name-stddev");case"dof":return this.controller.s("graphing-calculator-text-parameter-name-dof");case"probsuccess":return this.controller.s("graphing-calculator-text-parameter-name-probsuccess");case"trials":return this.controller.s("graphing-calculator-text-parameter-name-trials");case"data":return this.controller.s("graphing-calculator-text-parameter-name-data");case"binwidth":return this.controller.s("graphing-calculator-text-parameter-name-binwidth");case"min":return this.controller.s("graphing-calculator-text-parameter-name-min");case"max":return this.controller.s("graphing-calculator-text-parameter-name-max");case"height":return this.controller.s("graphing-calculator-text-parameter-name-height");case"offset":return this.controller.s("graphing-calculator-text-parameter-name-offset");default:return e}}};var{If:lJ}=Xa.Components,px=class extends Xa.Class{template(){return this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,Xa.createElement("div",{class:Xa.const("dcg-distribution-parameters-container dcg-do-blur"),tapboundary:Xa.const("true"),handleEvent:Xa.const("true")},Xa.createElement(Nm,{model:this.props.model,controller:this.props.controller}),Xa.createElement(lJ,{predicate:()=>JT(this.model)},()=>Xa.createElement(dx,{model:this.props.model,controller:this.props.controller})))}};var mt=__dcg_shared_module_exports__['e']($());var{SwitchUnion:cJ,If:aK}=mt.Components,Bm=class extends mt.Class{template(){return mt.createElement("div",{class:mt.const("dcg-toggle-container")},mt.createElement("div",{class:mt.const("dcg-expression-footer-title")},this.props.title,mt.createElement(aK,{predicate:()=>!!this.props.helpLink},()=>mt.createElement("a",{"aria-label":()=>this.props.controller().s("account-shell-link-help"),class:mt.const("dcg-expression-footer-title-help"),target:mt.const("_blank"),href:this.props.helpLink},mt.createElement("i",{class:mt.const("dcg-icon-question-sign"),"aria-hidden":mt.const("true")})))),mt.createElement(ri,{staticConfig:this.bindFn(this.getSegmentedControlOptions),ariaGroupLabel:this.props.title,disabled:this.bindFn(this.isReadonly),theme:this.const("mini"),minButtonWidth:this.const(65)}))}isReadonly(){return this.props.controller().isItemReadonly(this.props.model().id)}getSegmentedControlOptions(){return this.props.options().map(e=>({key:e.name,label:()=>e.displayName,selected:()=>this.isSelected(e.name),onSelect:()=>{this.props.controller().dispatch({type:"set-visualization-prop",id:this.props.model().id,prop:this.props.vizProp(),value:e.name})}}))}isSelected(e){return qc(this.props.model(),this.props.vizProp())===e}},ux=class extends mt.Class{template(){return this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,mt.createElement("div",{class:mt.const("dcg-visualization-parameters-container dcg-do-blur"),tapboundary:mt.const("true"),handleEvent:mt.const("true")},mt.createElement(Nm,{...this.props}),mt.createElement("div",{class:mt.const("dcg-smaller-font")},cJ(()=>this.getVisualizationType(),{boxplot:()=>mt.createElement("div",null,mt.createElement("div",{class:mt.const("dcg-expression-footer-title")},()=>this.controller.s("graphing-calculator-heading-visual-parameters-display-properties")),this.makeMQInput({prop:"axisOffset",siblingProps:["breadth"],default:"1",name:()=>this.controller.s("graphing-calculator-narration-visual-parameters-offset")}),this.makeMQInput({prop:"breadth",siblingProps:["axisOffset"],default:"1",name:()=>qc(this.model,"alignedAxis")==="y"?this.controller.s("graphing-calculator-narration-visual-parameters-width"):this.controller.s("graphing-calculator-narration-visual-parameters-height")}),mt.createElement(He,{checked:()=>!!qc(this.model,"showBoxplotOutliers"),disabled:()=>this.controller.isItemReadonly(this.model.id),onChange:this.bindFn(this.onToggleOutliers)},mt.createElement("span",{class:mt.const("dcg-parameter-name")},()=>this.controller.s("graphing-calculator-button-visual-parameters-exclude-outliers")))),dotplot:()=>mt.createElement(aK,{predicate:()=>L2(this.model)},()=>mt.createElement("div",{class:mt.const("dcg-toggles-container")},mt.createElement(Bm,{...this.props,vizProp:()=>"dotplotXMode",options:()=>[{name:"exact",displayName:this.controller.s("graphing-calculator-button-visual-parameters-exact")},{name:"bin",displayName:this.controller.s("graphing-calculator-button-visual-parameters-binned")}],title:()=>this.controller.s("graphing-calculator-heading-visual-parameters-x-values")}),mt.createElement(Bm,{...this.props,vizProp:()=>"binAlignment",options:()=>[{name:"center",displayName:this.controller.s("graphing-calculator-button-visual-parameters-center")},{name:"left",displayName:this.controller.s("graphing-calculator-button-visual-parameters-left")}],title:()=>this.controller.s("graphing-calculator-heading-visual-parameters-bin-alignment")}))),histogram:()=>mt.createElement("div",{class:mt.const("dcg-toggles-container")},mt.createElement(Bm,{...this.props,vizProp:()=>"histogramMode",options:()=>[{name:"",displayName:this.controller.s("graphing-calculator-button-visual-parameters-count")},{name:"relative",displayName:this.controller.s("graphing-calculator-button-visual-parameters-relative")},{name:"density",displayName:this.controller.s("graphing-calculator-button-visual-parameters-density")}],title:()=>this.controller.s("graphing-calculator-heading-visual-parameters-bar-heights"),helpLink:this.const("https://help.desmos.com/hc/en-us/articles/360022405991")}),mt.createElement(Bm,{...this.props,vizProp:()=>"binAlignment",options:()=>[{name:"center",displayName:this.controller.s("graphing-calculator-button-visual-parameters-center")},{name:"left",displayName:this.controller.s("graphing-calculator-button-visual-parameters-left")}],title:()=>this.controller.s("graphing-calculator-heading-visual-parameters-bin-alignment")})),none:()=>mt.createElement("span",null)})))}makeMQInput(e){return mt.createElement("span",null,mt.createElement("span",{class:mt.const("dcg-parameter-name")},e.name,mt.const(":")),mt.createElement(Vt,{latex:()=>this.getPropLatex(e),ariaLabel:e.name,placeholder:()=>e.default,isFocused:()=>this.isInputFocused(e.prop),hasError:()=>!G2(this.model,e.prop),handleFocusChanged:t=>this.handleFocusedChanged(e.prop,t),handlePressedKey:(t,i)=>this.handlePressedKey(t,i,e.prop),handleLatexChanged:t=>this.handleLatexChanged(e.prop,t),readonly:()=>this.controller.isItemReadonly(this.model.id),controller:this.props.controller}))}handlePressedKey(e,t,i){if(e==="Esc"){this.controller.dispatch({type:"set-focus-location",location:void 0});return}if(e==="Enter")return this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"});var o=ve.getFocusedMathquill();o&&(o.keystroke(e,t),this.handleLatexChanged(i,o.latex()))}isInputFocused(e){let t=this.controller.getFocusLocation();return!t||t.type!=="visualization-prop"||t.id!==this.id?!1:t.location===e}handleFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"visualization-prop",id:this.id,location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"visualization-prop",id:this.id,location:e}})}getPropLatex({prop:e}){let t=qc(this.model,e);return typeof t=="string"?t:""}handleLatexChanged(e,t){qc(this.model,e)!==t&&this.controller.dispatch({type:"set-visualization-prop",id:this.id,prop:e,value:t})}onToggleOutliers(){var e=qc(this.model,"showBoxplotOutliers");this.controller.dispatch({type:"set-visualization-prop",id:this.id,prop:"showBoxplotOutliers",value:!e})}getVisualizationType(){return Tb(this.model)?Kd(this.model)?"boxplot":Hc(this.model)?"dotplot":xu(this.model)?"histogram":"none":"none"}};var ft=__dcg_shared_module_exports__['e']($());var hx=class extends ft.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return ft.createElement("div",{class:ft.const("dcg-ttest-footer-container dcg-do-blur"),handleEvent:ft.const("true")},ft.createElement("table",null,ft.createElement("tr",null,ft.createElement("td",null,ft.createElement("div",{class:ft.const("dcg-value"),role:ft.const("textbox"),"aria-readonly":ft.const("true"),tabindex:ft.const("0"),"aria-label":()=>"Less than: "+this.getLessThan()},ft.createElement("span",{class:ft.const("dcg-operator")},ft.createElement(ke,{config:this.const({}),latex:this.const("<")})),ft.createElement("span",{class:ft.const("dcg-evaluation")},ft.createElement(ke,{config:this.const({}),latex:()=>this.getLessThan()}))))),ft.createElement("tr",null,ft.createElement("td",null,ft.createElement("div",{class:ft.const("dcg-value"),role:ft.const("textbox"),"aria-readonly":ft.const("true"),tabindex:ft.const("0"),"aria-label":()=>"Greater than: "+this.getGreaterThan()},ft.createElement("span",{class:ft.const("dcg-operator")},ft.createElement(ke,{config:this.const({}),latex:this.const(">")})),ft.createElement("span",{class:ft.const("dcg-evaluation")},ft.createElement(ke,{config:this.const({}),latex:()=>this.getGreaterThan()}))))),ft.createElement("tr",null,ft.createElement("td",null,ft.createElement("div",{class:ft.const("dcg-value"),role:ft.const("textbox"),"aria-readonly":ft.const("true"),tabindex:ft.const("0"),"aria-label":()=>"Not equal: "+this.getNotEqual()},ft.createElement("span",{class:ft.const("dcg-operator")},ft.createElement(ke,{config:this.const({}),latex:this.const("\u2260")})),ft.createElement("span",{class:ft.const("dcg-evaluation")},ft.createElement(ke,{config:this.const({}),latex:()=>this.getNotEqual()})))))))}getLessThan(){var e=Cb(this.model);return e?__dcg_shared_module_exports__['yc'](e.lessThan,5):""}getGreaterThan(){var e=Cb(this.model);return e?__dcg_shared_module_exports__['yc'](e.greaterThan,5):""}getNotEqual(){var e=Cb(this.model);return e?__dcg_shared_module_exports__['yc'](e.notEqual,5):""}};var Le=__dcg_shared_module_exports__['e']($());var gx=class extends Le.Class{template(){return this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id,Le.createElement("div",{class:Le.const("dcg-stats-footer-container dcg-do-blur"),handleEvent:Le.const("true")},Le.createElement("table",null,Le.createElement("tr",null,Le.createElement("td",null,Le.createElement("div",{class:Le.const("dcg-value"),role:Le.const("textbox"),"aria-readonly":Le.const("true"),tabindex:Le.const("0"),"aria-label":()=>"Min: "+this.getMin()},Le.createElement("span",{class:Le.const("dcg-row-header")},Le.const("Min")),Le.createElement("span",{class:Le.const("dcg-evaluation")},Le.createElement(ke,{config:this.const({}),latex:this.bindFn(this.getMin)}))))),Le.createElement("tr",null,Le.createElement("td",null,Le.createElement("div",{class:Le.const("dcg-value"),role:Le.const("textbox"),"aria-readonly":Le.const("true"),tabindex:Le.const("0"),"aria-label":()=>"Q1: "+this.getQ1()},Le.createElement("span",{class:Le.const("dcg-row-header")},Le.const("Q1")),Le.createElement("span",{class:Le.const("dcg-evaluation")},Le.createElement(ke,{config:this.const({}),latex:this.bindFn(this.getQ1)}))))),Le.createElement("tr",null,Le.createElement("td",null,Le.createElement("div",{class:Le.const("dcg-value"),role:Le.const("textbox"),"aria-readonly":Le.const("true"),tabindex:Le.const("0"),"aria-label":()=>"Median: "+this.getMedian()},Le.createElement("span",{class:Le.const("dcg-row-header")},Le.const("Median")),Le.createElement("span",{class:Le.const("dcg-evaluation")},Le.createElement(ke,{config:this.const({}),latex:this.bindFn(this.getMedian)}))))),Le.createElement("tr",null,Le.createElement("td",null,Le.createElement("div",{class:Le.const("dcg-value"),role:Le.const("textbox"),"aria-readonly":Le.const("true"),tabindex:Le.const("0"),"aria-label":()=>"Q3: "+this.getQ3()},Le.createElement("span",{class:Le.const("dcg-row-header")},Le.const("Q3")),Le.createElement("span",{class:Le.const("dcg-evaluation")},Le.createElement(ke,{config:this.const({}),latex:this.bindFn(this.getQ3)}))))),Le.createElement("tr",null,Le.createElement("td",null,Le.createElement("div",{class:Le.const("dcg-value"),role:Le.const("textbox"),"aria-readonly":Le.const("true"),tabindex:Le.const("0"),"aria-label":()=>"Max: "+this.getMax()},Le.createElement("span",{class:Le.const("dcg-row-header")},Le.const("Max")),Le.createElement("span",{class:Le.const("dcg-evaluation")},Le.createElement(ke,{config:this.const({}),latex:this.bindFn(this.getMax)})))))))}getMin(){let e=Eg(this.model);return e?__dcg_shared_module_exports__['xc'](e.min):""}getQ1(){let e=Eg(this.model);return e?__dcg_shared_module_exports__['xc'](e.q1):""}getMedian(){let e=Eg(this.model);return e?__dcg_shared_module_exports__['xc'](e.median):""}getQ3(){let e=Eg(this.model);return e?__dcg_shared_module_exports__['xc'](e.q3):""}getMax(){let e=Eg(this.model);return e?__dcg_shared_module_exports__['xc'](e.max):""}};var Oi=__dcg_shared_module_exports__['e']($());var{If:dJ}=Oi.Components,lh=class extends Oi.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return Oi.createElement("div",{class:Oi.const("dcg-action-info"),handleEvent:Oi.const("true")},Oi.createElement("span",{class:Oi.const("dcg-action-label")},Oi.const("Run ")),Oi.createElement(ke,{latex:()=>this.model.clickableInfo.latex,config:this.bindFn(this.getMQConfig)}),Oi.createElement("span",{class:Oi.const("dcg-action-label")},Oi.const(" on click")),Oi.createElement(dJ,{predicate:()=>!this.controller.isItemReadonly(this.model.id)},()=>Oi.createElement("span",{class:Oi.const("dcg-click-edit"),role:Oi.const("button"),tabindex:Oi.const("0"),"aria-label":()=>this.controller.s("graphing-calculator-narration-edit-action"),onTap:this.bindFn(this.editAction)},Oi.createElement("i",{class:Oi.const("dcg-icon-pencil"),"aria-hidden":Oi.const("true")}))))}editAction(){this.model.type==="expression"?this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"expression",model:this.model,guid:this.getMenuGUID(),focusFirstOption:!1}}):this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"image",model:this.model,guid:this.getMenuGUID(),focusFirstOption:!1}}),this.controller.dispatch({type:"set-focus-location",location:{type:"expression-menu",id:this.model.id,location:"updaterule"}})}getMenuGUID(){return this.model.guid}getMQConfig(){return{autoOperatorNames:Gl({additionalOperators:["index"]}),autoCommands:Al()}}};var ut=__dcg_shared_module_exports__['e']($());var{If:p1}=ut.Components,Gs=class extends ut.Class{init(){this.controller=this.props.controller()}template(){return ut.createElement(p1,{predicate:this.bindFn(this.shouldShowOptions)},()=>ut.createElement("span",{class:()=>({"dcg-expression-edit-actions":!0,"dcg-limited-height":this.limitedHeight()}),didMount:()=>{this.controller.isInEditListMode()&&ie(this.controller.s("graphing-calculator-narration-edit-list-mode-on"))},didUnmount:()=>{this.controller.isInEditListMode()||ie(this.controller.s("graphing-calculator-narration-edit-list-mode-off"))}},ut.createElement("span",{class:ut.const("dcg-graphic"),handleEvent:ut.const("true ")}),ut.createElement(p1,{predicate:()=>gu(this.model())!==void 0},()=>ut.createElement(Ce,{tooltip:this.bindFn(this.getConvertTooltip),gravity:this.const("s")},ut.createElement("span",{class:ut.const("dcg-action-createtable dcg-exp-action-button"),handleEvent:ut.const("true"),role:ut.const("button"),tabindex:ut.const("0"),"aria-label":()=>cr(this.model(),"create_table"),onTap:this.bindFn(this.onCreateTable)},ut.createElement("i",{class:ut.const("dcg-icon-table"),"aria-hidden":ut.const("true")})))),ut.createElement(p1,{predicate:()=>this.controller.shouldShowAuthorFeatures()},()=>ut.createElement(Ce,{tooltip:this.bindFn(this.getReadonlyToggleLabel),gravity:this.const("s")},ut.createElement("span",{class:()=>({"dcg-action-lock":!0,"dcg-exp-action-button":!0,"dcg-selected":this.isReadonly()}),handleEvent:ut.const("true"),role:ut.const("button"),tabindex:ut.const("0"),"aria-label":this.bindFn(this.getReadonlyToggleLabel),onTap:this.bindFn(this.onToggleReadonly)},ut.createElement("i",{class:ut.const("dcg-icon-lock"),"aria-hidden":ut.const("true")})))),ut.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-duplicate-expression-tooltip"),gravity:this.const("s")},ut.createElement("span",{class:ut.const("dcg-duplicate-btn dcg-exp-action-button"),handleEvent:ut.const("true"),role:ut.const("button"),tabindex:ut.const("0"),"aria-label":()=>cr(this.model(),"duplicate"),onTap:this.bindFn(this.onDuplicateWithoutFocus)},ut.createElement("i",{class:ut.const("dcg-icon-duplicate"),"aria-hidden":ut.const("true")}))),ut.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-expression-delete-tooltip"),gravity:this.const("s")},ut.createElement("span",{class:ut.const("dcg-delete-btn dcg-exp-action-button"),handleEvent:ut.const("true"),role:ut.const("button"),tabindex:ut.const("0"),"aria-label":()=>cr(this.model(),"delete"),onTap:this.bindFn(this.onDelete)},ut.createElement("i",{class:ut.const("dcg-icon-remove"),"aria-hidden":ut.const("true")})))))}shouldShowOptions(){return this.controller.isInEditListMode()&&(this.controller.shouldShowAuthorFeatures()||!this.controller.isItemReadonly(this.props.id()))}model(){return this.controller.getItemModel(this.props.id())}getConvertTooltip(){return uC(this.model())?this.controller.s("graphing-calculator-label-create-table"):this.controller.s("graphing-calculator-label-convert-to-table-tooltip")}limitedHeight(){let e=this.model();return e&&(e.type==="image"||this.isSlider())}isSlider(){let e=this.model();return e&&e.type==="expression"&&e.sliderExists}onCreateTable(){let e=this.model();e&&this.controller.dispatch({type:"convert-or-create-table",index:e.index})}onDelete(e){this.controller.dispatch({type:"delete-item-and-animate-out",id:this.props.id(),setFocusAfterDelete:e.device==="keyboard"})}onDuplicateWithoutFocus(){let e=this.model();e&&(e.type==="folder"?this.controller.dispatch({type:"duplicate-folder",id:this.props.id()}):this.controller.dispatch({type:"duplicate-expression",id:this.props.id()}))}isReadonly(){return this.controller.isItemMarkedReadonly(this.props.id())}onToggleReadonly(){let e=this.model();e&&this.controller.dispatch({type:"set-item-readonly",id:this.props.id(),readonly:!e.readonly})}getReadonlyIcon(){return this.isReadonly()?"dcg-icon-lock":"dcg-icon-pencil"}getReadonlyToggleLabel(){return this.isReadonly()?this.controller.s("graphing-calculator-label-unlock-expression-tooltip"):this.controller.s("graphing-calculator-label-lock-expression-tooltip")}};var aa=__dcg_shared_module_exports__['e']($());var{If:pJ}=aa.Components,zm=class extends aa.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return aa.createElement(pJ,{predicate:()=>this.controller.showExpressionZoomFitButton(this.model)},()=>aa.createElement("div",{class:aa.const("dcg-suggested-zoom-view dcg-do-blur"),handleEvent:aa.const(!0)},aa.createElement(Ce,{tooltip:this.bindFn(this.getZoomText),gravity:()=>"e"},aa.createElement("i",{onTap:this.bindFn(this.onZoom),role:aa.const("button"),tabindex:aa.const("0"),"aria-label":this.bindFn(this.getZoomText),class:aa.const("dcg-icon-zoom-fit")}))))}getZoomText(){return this.controller.s("graphing-calculator-text-zoom-fit")}onZoom(e){this.controller.dispatch({type:"expression-zoom-fit",id:this.model.id,focusAfterTap:e.device==="keyboard"})}};var sa=__dcg_shared_module_exports__['e']($());var{If:uJ}=sa.Components,M0=class extends sa.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return sa.createElement(uJ,{predicate:this.bindFn(this.shouldShow)},()=>sa.createElement("div",{class:sa.const("dcg-generate-table-view dcg-do-blur"),handleEvent:sa.const(!0)},sa.createElement(Ce,{tooltip:this.bindFn(this.getTooltip),gravity:()=>"s"},sa.createElement("i",{onTap:()=>this.controller.dispatch({type:"convert-or-create-table",index:this.model.index}),role:sa.const("button"),tabindex:sa.const("0"),"aria-label":()=>cr(this.model,"create_table"),class:sa.const("dcg-icon-create-table")}))))}shouldShow(){return gu(this.model)!=="recursive-function"||!this.model||this.model.type!=="expression"?!1:!this.controller.hasTableHeaderWithIdentifier(this.model.formula.function_definition)}getTooltip(){return this.controller.s("graphing-calculator-label-create-table")}};var Ke=__dcg_shared_module_exports__['e']($());var go=__dcg_shared_module_exports__['e']($());var{If:hJ}=go.Components,{Switch:gJ}=go.Components,Vs=class extends go.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}iconType(){return this.controller.shouldShowReplaceIcon()?"rename":this.controller.isItemMarkedReadonly(this.model.id)?"lock":"delete"}getAriaLabel(){switch(this.iconType()){case"none":case"lock":return;case"rename":return cr(this.model,"rename");case"delete":return cr(this.model,"delete")}}onIconTap(){this.iconType()==="delete"?this.controller.dispatch({type:"delete-item-and-animate-out",id:this.model.id,setFocusAfterDelete:!this.controller.isInEditListMode()}):this.iconType()==="rename"&&this.controller.dispatch({type:"rename-identifier-in-item",search:this.controller.getExpressionSearchStr(),replace:this.controller.getExpressionReplaceStr(),id:this.model.id})}isIconTappable(){let e=this.iconType();return e!=="none"&&e!=="lock"}template(){return go.createElement(hJ,{predicate:()=>!this.controller.isInEditListMode()},()=>go.createElement("div",{class:()=>({"dcg-top-level-icon":!0,"dcg-tappable":this.isIconTappable()}),tabIndex:()=>this.isIconTappable()?0:-1,"aria-label":this.bindFn(this.getAriaLabel),handleEvent:this.bindFn(this.isIconTappable),onTap:this.bindFn(this.onIconTap),role:go.const("button"),manageFocus:this.const({shouldBeFocused:()=>Au({controller:this.controller,location:{type:"top-level-icon",id:this.model.id}}),onFocusedChanged:(e,t)=>{var i;e?this.controller.dispatch({type:"set-focus-location",location:{type:"top-level-icon",id:this.model.id}}):t.relatedTarget&&!((i=t.relatedTarget)!=null&&i.closest("[data-dcg-label]"))&&this.controller.dispatch({type:"blur-focus-location",location:{type:"top-level-icon",id:this.model.id}})}})},go.createElement(gJ,{key:()=>this.iconType()},e=>{switch(e){case"delete":return go.createElement("i",{class:go.const("dcg-icon-remove dcg-top-level-delete"),"aria-hidden":go.const("true")});case"lock":return go.createElement("i",{class:go.const("dcg-icon-lock dcg-lock-indicator"),"aria-hidden":go.const("true")});case"rename":return go.createElement("i",{class:go.const("dcg-icon-replace"),"aria-hidden":go.const("true")});case"none":return go.createElement("span",null)}})))}};var{If:pc,SwitchUnion:mJ}=Ke.Components,ch=class extends na{didMount(){this.onItemViewMounted(),this.lastBrailleMode=this.controller.getBrailleMode()}didMountRootNode(e){this.rootNode=e}willUnmount(){this.onItemViewUnmounted()}template(){return Ke.createElement("div",{class:()=>({"dcg-do-not-blur":!0,"dcg-expressionitem":!0,"dcg-mathitem":!0,"dcg-inFolder":!!this.model.folderId,"dcg-readonly":this.controller.isItemReadonly(this.id),"dcg-selected":this.controller.isItemSelected(this.id)&&!this.controller.isInEditListMode(),"dcg-dragging":!!this.controller.isItemBeingDragged(this.id),"dcg-hasSlider":this.hasSlider(),"dcg-hasEvaluation":this.controller.shouldShowEvaluationForItem(this.id),"dcg-hasRegression":this.hasRegression(),"dcg-hasDomain":this.hasDomain()||this.hasDomain3d()}),"expr-id":()=>this.model.id,didMount:this.bindFn(this.didMountRootNode)},Ke.createElement("div",{class:Ke.const("dcg-fade-container"),onTapStart:this.bindFn(this.onMouseSelect),onTap:this.bindFn(this.onMouseSelect)},Ke.createElement("div",{class:Ke.const("dcg-main")},Ke.createElement(pc,{predicate:()=>!this.controller.isInEditListMode()&&!this.isReadonly()},()=>Ke.createElement(ii,{latex:()=>Sb(this.model),operatorNames:()=>this.getMQConfig().autoOperatorNames,ariaLabel:()=>this.getAriaLabel("braille"),brailleShouldFocus:()=>this.isFocused(),onBrailleInput:e=>this.handleLatexChanged(e),onBrailleFocusedChanged:(e,t)=>this.handleMQFocusedChanged(e,t),onBrailleKeydown:this.bindFn(this.handleBraillePressedKey),...ji(this.controller)},Ke.createElement(ve,{latex:()=>Sb(this.model),getAriaLabel:()=>this.getAriaLabel("speech"),getAriaPostLabel:this.bindFn(this.getFormulaAria),isFocused:()=>this.isFocused(),noFadeout:()=>this.controller.isItemMarkedReadonly(this.model.id),tokenController:this.props.controller,capExpressionSize:()=>this.controller.getCapExpressionSize(),config:this.bindFn(this.getMQConfig),hasError:this.const(!1),onUserPressedKey:(e,t)=>this.handlePressedKey(e,t),onUserChangedLatex:e=>this.handleLatexChanged(e),onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:(e,t)=>this.handleMQFocusedChanged(e,t),onSelectionChanged:()=>{this.controller.runAfterDispatch(()=>{this.controller.dispatch({type:"render"})})},needsSystemKeypad:()=>!this.controller.isKeypadEnabled()}))),Ke.createElement(pc,{predicate:()=>this.controller.isInEditListMode()||this.isReadonly()},()=>Ke.createElement("div",{class:Ke.const("dcg-edit-list-mathquill"),tabindex:()=>this.controller.getBrailleMode()==="none"?"0":"-1",onTap:()=>this.controller.isInEditListMode()?this.exitEditListMode():{},onKeydown:this.bindFn(this.handleReadonlyPressedKey),manageFocus:this.const({shouldBeFocused:()=>this.controller.getBrailleMode()!=="none"?!1:Au({controller:this.controller,location:{type:"readonly-expression",id:this.model.id}}),onFocusedChanged:(e,t)=>{this.controller.getBrailleMode()==="none"&&(e?this.controller.dispatch({type:"set-focus-location",location:{type:"readonly-expression",id:this.model.id}}):this.doesNodeBelongToSliderLimit(t.relatedTarget)||this.controller.dispatch({type:"blur-focus-location",location:{type:"readonly-expression",id:this.model.id}}))}})},Ke.createElement(ii,{latex:()=>Sb(this.model),operatorNames:()=>this.getMQConfig().autoOperatorNames,ariaLabel:()=>this.getAriaLabel("braille"),isStatic:this.const(!0),brailleShouldFocus:()=>{let e=this.controller.getFocusLocation();return!e||e.type!=="readonly-expression"?!1:e.id===this.id},onBrailleFocusedChanged:(e,t)=>{e?this.controller.dispatch({type:"set-focus-location",location:{type:"readonly-expression",id:this.model.id}}):this.doesNodeBelongToSliderLimit(t.relatedTarget)||this.controller.dispatch({type:"blur-focus-location",location:{type:"readonly-expression",id:this.model.id}})},...ji(this.controller)},Ke.createElement(ke,{latex:()=>Sb(this.model),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.getAriaLabel("speech"),tokenController:this.props.controller}))))),Ke.createElement(Vs,{controller:this.props.controller,model:this.props.model}),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowFooter)},()=>Ke.createElement("div",{class:this.getFooterClass()},mJ(()=>this.getFooterType(),{none:()=>{},regression:()=>Ke.createElement(ax,{model:this.props.model,controller:this.props.controller}),label:()=>Ke.createElement(Pu,{model:this.props.model,controller:this.props.controller}),slider:()=>Ke.createElement(lx,{model:this.props.model,controller:this.props.controller}),domain:()=>Ke.createElement(sh,{model:this.props.model,controller:this.props.controller,domainIndex:()=>0}),domain3d:()=>Ke.createElement("div",null,Ke.createElement(pc,{predicate:()=>!n_(this.model)},()=>Ke.createElement(sh,{model:this.props.model,controller:this.props.controller,domainIndex:()=>0})),Ke.createElement(pc,{predicate:()=>!a_(this.model)},()=>Ke.createElement(sh,{model:this.props.model,controller:this.props.controller,domainIndex:()=>1}))),evaluation:()=>Ke.createElement(ah,{id:()=>this.props.model().id,dependent:()=>Oo(this.model)||"",val:()=>this.controller.getEvaluationValueForItem(this.id),controller:this.props.controller,focusable:this.const(!0)}),distribution:()=>Ke.createElement(px,{model:this.props.model,controller:this.props.controller}),visualization:()=>Ke.createElement(ux,{model:this.props.model,controller:this.props.controller}),ttest:()=>Ke.createElement(hx,{model:this.props.model,controller:this.props.controller}),stats:()=>Ke.createElement(gx,{model:this.props.model,controller:this.props.controller}),warning:()=>Ke.createElement(nx,{controller:this.props.controller,type:this.bindFn(this.getFooterWarningType)})}),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowBrailleError)},()=>Ke.createElement("div",{tabindex:Ke.const(0),class:Ke.const("dcg-expression-braille-error"),role:Ke.const("button"),"aria-roledescription":Ke.const("error"),"aria-label":()=>this.controller.unpack(this.model.error)},Ke.createElement("i",{class:Ke.const("dcg-icon-error"),"aria-hidden":Ke.const("true")}),()=>this.controller.unpack(this.model.error))),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowSliderPrompt)},()=>Ke.createElement(hl,{model:this.props.model,controller:this.props.controller})),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowRenamePrompt)},()=>Ke.createElement(cx,{from:this.bindFn(this.getRenameIdentifierFrom),to:this.bindFn(this.getRenameIdentifierTo),count:this.bindFn(this.getRenameCountOfChanges),inFolder:()=>this.getRenameIdentifierFolderId()!==void 0,handleRename:this.bindFn(this.handleRename)})))),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowActionInfo)},()=>Ke.createElement("div",{class:this.getFooterClass()},Ke.createElement(lh,{model:this.props.model,controller:this.props.controller}))),Ke.createElement(pc,{predicate:this.bindFn(this.shouldShowExtendTo3D)},()=>Ke.createElement("div",{class:this.getFooterClass("dcg-extend-to-3d"),handleEvent:Ke.const("true")},Ke.createElement(He,{onChange:e=>{this.controller.dispatch({type:"set-item-extend-to-3D",id:this.model.id,extendTo3D:e})},checked:()=>this.model.extendTo3D,class:this.const("dcg-expression-footer-checkbox")},()=>this.controller.s("graphing-calculator-label-extend-to-3d"))))),Ke.createElement("span",{class:Ke.const("dcg-tab dcg-action-drag dcg-action-icon-touch"),handleevent:Ke.const("true"),tapboundary:Ke.const("true"),disablescroll:Ke.const("true"),onTapStart:this.bindFn(this.onDragPending)},Ke.createElement("span",{class:Ke.const("dcg-num")},()=>this.model.displayIndex),Ke.createElement("div",{class:Ke.const("dcg-tab-interior dcg-action-icon-mouse")},Ke.createElement(ox,{model:this.props.model,controller:this.props.controller})),Ke.createElement(zm,{model:this.props.model,controller:this.props.controller}),Ke.createElement(M0,{model:this.props.model,controller:this.props.controller})),Ke.createElement(Gs,{controller:this.props.controller,id:()=>this.model.id}))}shouldShowExtendTo3D(){return this.controller.isThreeDMode()?IC(this.model):!1}getRenameIdentifierFrom(){let e=this.controller.getSuggestedIdentifierRenameInfo(this.id);return e&&e.from||""}getRenameIdentifierTo(){let e=this.controller.getSuggestedIdentifierRenameInfo(this.id);return e&&e.to||""}getRenameCountOfChanges(){let e=this.controller.getSuggestedIdentifierRenameInfo(this.id);return e&&e.countOfChanges||0}getRenameIdentifierFolderId(){let e=this.controller.getSuggestedIdentifierRenameInfo(this.id);return e==null?void 0:e.folderId}handleRename(){let e={search:this.getRenameIdentifierFrom(),replace:this.getRenameIdentifierTo()},t=this.getRenameIdentifierFolderId();t===void 0?this.controller.dispatch({type:"rename-identifier-global",...e}):this.controller.dispatch({type:"rename-identifier-in-item",id:t,...e})}didUpdate(){this.lastBrailleMode=this.controller.getBrailleMode()}shouldShowFooter(){return this.shouldShowBrailleError()||this.shouldShowSliderPrompt()||this.shouldShowRenamePrompt()?!0:this.getFooterType()!=="none"}getFooterType(){return this.hasRegression()?"regression":this.shouldShowLabelView()?"label":this.hasSlider()?"slider":this.hasDomain()?"domain":this.hasDomain3d()?"domain3d":this.isTTest()?"ttest":this.isStats()?"stats":this.controller.shouldShowEvaluationForItem(this.id)?"evaluation":this.model.unresolved?"warning":this.isToplevelDistribution()?"distribution":this.isVisualization()?"visualization":MT(this.model)||this.model.recursiveDepthPlottingError?"warning":"none"}getFooterWarningType(){if(this.model.unresolved)return"unresolved";if(MT(this.model))return"tone-out-of-range";if(this.model.recursiveDepthPlottingError)return"recursive-depth-plotting-error"}getFooterClass(e){return this.const({"dcg-expression-bottom":!0,"dcg-indent-in-folder":!0,"dcg-fadein-bottom":!this.isFirstRender(),[e||""]:!!e})}onCreateSliders(e){this.controller.dispatch({type:"create-sliders-for-item",id:this.id,variables:e})}shouldShowLabelView(){return Hi("labels")&&Jv(this.model)&&!this.controller.isThreeDMode()}shouldShowSliderPrompt(){let e=mu(this.model);return e.length>0&&e.length<=4?!0:this.controller.areSlidersEnabled()?Uv(this.model).length>0:!1}shouldShowRenamePrompt(){return this.getRenameCountOfChanges()>0}shouldShowActionInfo(){return!!(this.controller.areActionsEnabled()&&this.model.clickableInfo&&this.model.clickableInfo.enabled&&this.model.clickableInfo.latex)}shouldShowBrailleError(){return this.controller.getBrailleMode()!=="none"&&this.hasError()}hasRegression(){return!!(this.model.formula&&this.model.formula.is_regression)}hasDomain(){return SC(this.model)}hasDomain3d(){return EC(this.model)}isToplevelDistribution(){return Ud(this.model)}isVisualization(){return AC(this.model)}isTTest(){return jT(this.model)}isStats(){return p_(this.model)}hasSlider(){return!!this.model.sliderExists}getLabelOptions(){return this.controller.getEvaluationLabelOptionsForItem(this.model.id)}getAriaLabel(e){if(this.shouldShowLabelView()){var t;this.model.label&&this.model.label!==""?t=this.model.label:e==="speech"?t=this.controller.s("graphing-calculator-narration-expression-label"):t=this.controller.raw("lbl");var i;return $s(this.model)?i=t:e==="speech"?i=this.controller.s("graphing-calculator-narration-expression-hidden-label",{label:t}):i=this.controller.raw("h __label__",{label:t}),i}return e==="speech"?this.controller.s("shared-calculator-narration-expression-index",{index:this.model.displayIndex}):this.controller.raw("eq__index__",{index:this.model.displayIndex})}getFormulaAria(){let e=this.model.formula,t="";if(!e||Nl(this.model))return t;if(this.controller.shouldShowEvaluationForItem(this.id)){t="equals ";let i=e.zero_values&&e.zero_values.length?e.zero_values[0].val:e.constant_value;Array.isArray(i)?t+=this.controller.s("graphing-calculator-label-evaluation-list",{count:i.length}):i!==void 0&&(t+=uo(__dcg_shared_module_exports__['ab'](+i,this.getLabelOptions())))}else e.error&&!this.shouldShowSliderPrompt()?t=this.controller.unpack(e.error):Ud(this.model)?t=this.controller.s("graphing-calculator-narration-expression-evaluation-is-distribution"):this.isTTest()&&(t=this.controller.s("graphing-calculator-narration-expression-evaluation-is-t-test"));if(this.model.shouldGraph&&(e.is_graphable||e.is_regression)){e.is_graphable&&e.is_regression?t+=" "+this.controller.s("graphing-calculator-narration-expression-evaluation-has-graph-and-regression"):e.is_regression?t+=" "+this.controller.s("graphing-calculator-narration-expression-evaluation-has-regression"):t+=" "+this.controller.s("graphing-calculator-narration-expression-evaluation-has-graph");let i=this.controller.getAudioGraph();i&&i.agNavigator.canTrace(this.model)&&(xi?t+=" "+this.controller.s("graphing-calculator-narration-expression-audio-trace-mac"):t+=" "+this.controller.s("graphing-calculator-narration-expression-audio-trace-windows"))}return this.controller.toneEnabled()&&ya(this.model)&&(this.model.hidden?t+=" "+this.controller.s("graphing-calculator-narration-expression-tone-muted"):t+=" "+this.controller.s("graphing-calculator-narration-expression-tone-unmuted")),t}handleBraillePressedKey(e){let t=ue(e);if(t){if(t==="Esc")Pr(),this.hasSlider()&&this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.model.id}});else if(t==="Up"||t==="Down"||t==="Enter")this.controller.dispatch({type:"on-special-key-pressed",key:t});else if(t==="Del"||t==="Backspace"){let i=ia();Nl(this.model)&&Lm(i)&&(this.controller.dispatch({type:"on-special-key-pressed",key:t==="Del"?"Delete":t}),e.preventDefault(),e.stopPropagation())}}}handleReadonlyPressedKey(e){if(this.controller.isInEditListMode())return;let t=ue(e);!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&(t==="Esc"?(e.preventDefault(),e.stopPropagation(),Pr(),this.hasSlider()&&this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.model.id}})):(t==="Up"||t==="Down"||t==="Enter")&&(e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"on-special-key-pressed",key:t})))}handlePressedKey(e,t){var n;var i=ve.getFocusedMathquill();if(i){if(t&&this.controller.isGraphPaperFocused()){let a=(n=this.controller.getGrapher2d())==null?void 0:n.poiController;if(!a)return;let s=a.keyboardAttentionManager;if(e==="Tab"||e==="Shift-Tab"){t.stopPropagation(),t.preventDefault(),s.focusNextObjFromKeyboard({direction:t.shiftKey?"prev":"next"});return}else if(e==="Left"||e==="Right"||e==="Up"||e==="Down"||e==="Shift-Left"||e==="Shift-Right"||e==="Shift-Up"||e==="Shift-Down"){t.stopPropagation(),t.preventDefault(),t&&a.moveGeoPointFromKeyboard(t);return}else if(e==="Enter"){t.stopPropagation(),t.preventDefault();let l=s.getKeyboardAttention();a.tapGeoPointFromKeyboard(t),this.controller.getEvaluator().notifyWhenSynced(()=>{let c=this.controller.getValidCursorContext(),d=this.model.formula.cursor_context;if(c&&c===d){let u=this.controller.getFocusLocation();if(u&&u.type==="expression"&&u.id===this.model.id&&!u.isFakeGraphFocus&&this.controller.dispatch({type:"set-focus-location",location:{...u,isFakeGraphFocus:!0}}),l){let h=s.findTabbableObjectsForCurrentTool(l);h.currentIsTabbable&&s.updateKeyboardAttention(h.targets[h.currentTabIndex],{describe:!1})}}});return}else if(e==="Esc"){t.stopPropagation(),t.preventDefault(),this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.model.id}});return}}if(e==="Esc"){Pr(),this.hasSlider()&&this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:this.model.id}});return}else if(e==="Up"||e==="Down"){var o=ve.applyArrowKeyAndReturnIfWasAtBounds(i,e,t);return o?this.controller.dispatch({type:"on-special-key-pressed",key:e}):void 0}else if(e==="Delete"||e==="Backspace"){if(Nl(this.model))return this.controller.dispatch({type:"on-special-key-pressed",key:e})}else if(e==="Enter")return t&&(t.preventDefault(),t.stopPropagation()),this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"});i.keystroke(e,t),this.handleLatexChanged(i.latex())}}handleLatexChanged(e){e!==this.model.latex&&this.controller.dispatch({type:"set-item-latex",id:this.id,latex:e})}doesNodeBelongToSliderLimit(e){return!e||!this.rootNode.contains(e)?!1:!!e.closest("[data-dcg-label]")}handleMQFocusedChanged(e,t){e?this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.id}}):!this.doesNodeBelongToSliderLimit(t.relatedTarget)&&this.lastBrailleMode===this.controller.getBrailleMode()&&this.controller.dispatch({type:"blur-focus-location",location:{type:"expression",id:this.id}})}onMouseSelect(e){this.isReadonly()||e.device!=="keyboard"&&(e.type==="dcg-tap"&&e.device==="mouse"||e.type==="dcg-tapstart"&&e.device==="touch"||e.wasHandled()||(e.handle(),this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:this.id}})))}isReadonly(){return this.controller.isItemReadonly(this.id)}isFocused(){let e=this.controller.getFocusLocation();return!e||e.type!=="expression"?!1:e.id===this.id}isSliderThumbFocused(){let e=this.controller.getFocusLocation();return!e||e.type!=="slider-thumb"?!1:e.id===this.id}hasError(){return!!this.model.error&&!Nl(this.model)}getMQConfig(){return this.controller.getMathquillConfig({})}};function ji(r){return{sixKeyInput:()=>r.getSixKeyInput(),mode:()=>r.getBrailleMode(),capExpressionSize:()=>r.getCapExpressionSize()?{exceedsLimit:e=>e.length>am,onExpressionSizeExceeded:()=>r.dispatch({type:"expression-size-exceeded"})}:void 0}}var gl=__dcg_shared_module_exports__['e']($());kt();var{Textarea:fJ}=gl.Components,pd=class extends gl.Class{template(){return gl.createElement("div",{class:gl.const("dcg-smart-textarea-container")},gl.createElement("div",{class:gl.const("dcg-displayTextarea dcg-fixed-width-element"),didMount:this.bindFn(this.didMountDisplay)}),gl.createElement(fJ,{class:()=>({"dcg-do-blur":!0,"dcg-fixed-width-element":!0,"dcg-smart-textarea":!0,"dcg-empty":!this.props.text()}),"aria-label":()=>{var e,t;return(t=(e=this.props).ariaLabel)==null?void 0:t.call(e)},placeholder:this.bindFn(this.getPlaceholder),readonly:()=>this.props.readonly()?!0:void 0,value:this.props.text,onInput:this.props.onInput,didMount:this.bindFn(this.didMountTextarea),onKeydown:this.bindFn(this.onKeydownEvent)}))}getDisplayTextHTML(){let e=this.props.text()||"",t=(n,a)=>e.slice(n,a).replace(/</g,"&lt;").replace(/>/g,"&gt;"),i=0,o="";if(this.props.showLinks()){let n=/(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gi,a=null;for(;(a=n.exec(e))!==null;){let[s]=a;o+=t(i,a.index),o+=`<a rel='nofollow ugc' href='${s}' target ='_blank'>${s}</a>`,i=n.lastIndex}}return o+=t(i),o}willUnmount(){this.textareaNode=void 0}didMountDisplay(e){this.displayNode=e,W(e).on("touchend",function(t){t.preventDefault()}),W(e).on("dcg-tap dcg-tapstart",function(t){t.target.closest("a")&&t.handle()}),this.renderDisplayText()}didMountTextarea(e){this.textareaNode=e,W(e).on("dcg-tapstart",t=>{t.handle()}),W(e).on("focusin focusout",()=>this.onFocusEvent()),this.updateFocused()}didUpdate(){this.updateFocused(),this.renderDisplayText()}onFocusEvent(){if(this.textareaNode){var e=document.activeElement===this.textareaNode;this.shouldBeFocused()!==e&&this.props.onFocusChange(e)}}renderDisplayText(){if(!this.displayNode)return;let e=this.getDisplayTextHTML();this.lastDisplayTextHTML!==e&&(this.lastDisplayTextHTML=e,this.displayNode.innerHTML=e)}isFocused(){return document.activeElement===this.textareaNode}shouldBeFocused(){return this.props.shouldFocus()}updateFocused(){if(!this.textareaNode)return;let e=this.isFocused(),t=this.shouldBeFocused();if(e!==t)if(!t)this.textareaNode.blur();else{if(La&&Lc)return;this.textareaNode.focus(),this.textareaNode.selectionStart=this.textareaNode.selectionEnd=this.textareaNode.value.length}}onKeydownEvent(e){var t=this.textareaNode;if(!t)return;var i=ue(e);let o=this.props.readonly(),n=this.props.readonlyAction&&this.props.readonlyAction();if(o&&n!==void 0&&n.predicate()){!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&(i===qa||i===ep)&&(e.preventDefault(),n.action());return}i===qa&&!e.metaKey?(e.preventDefault(),this.props.onSpecialKey("Enter")):i===_o?Pr():i===rn?(o||t.selectionStart===0&&t.selectionEnd===0)&&!(e.altKey||e.metaKey)&&(e.preventDefault(),this.props.onSpecialKey("Up")):i===wn?(o||t.selectionStart===t.value.length&&t.selectionEnd===t.value.length)&&!(e.altKey||e.metaKey)&&(e.preventDefault(),this.props.onSpecialKey("Down")):i===Ss&&!(o&&n!==void 0&&n.predicate())?t.value.length===0&&(e.preventDefault(),this.props.onSpecialKey("Backspace")):i===Yg&&!(o&&n!==void 0&&n.predicate())&&t.value.length===0&&(e.preventDefault(),this.props.onSpecialKey("Delete")),this.props.onKeydown&&this.props.onKeydown(e)}getPlaceholder(){var e,t;if(!this.props.text())return(t=(e=this.props).placeholder)==null?void 0:t.call(e)}};var oo=__dcg_shared_module_exports__['e']($());var mx=class extends na{didMount(){this.onItemViewMounted()}willUnmount(){this.onItemViewUnmounted()}template(){return oo.createElement("div",{class:()=>({"dcg-do-not-blur":!0,"dcg-expressionitem":!0,"dcg-readonly":this.controller.isItemReadonly(this.id),"dcg-expressiontext":!0,"dcg-inFolder":!!this.model.folderId,"dcg-selected":!!this.controller.isItemSelected(this.id),"dcg-dragging":!!this.controller.isItemBeingDragged(this.id)}),"expr-id":()=>this.model.id,onTapStart:this.bindFn(this.onMouseSelect),onTap:this.bindFn(this.onMouseSelect)},oo.createElement("div",{class:oo.const("dcg-fade-container")},oo.createElement("div",{class:oo.const("dcg-main")},oo.createElement(pd,{shouldFocus:this.bindFn(this.isFocused),text:()=>this.model.text,showLinks:()=>this.controller.areLinksEnabled(),onInput:this.bindFn(this.onInput),onFocusChange:this.bindFn(this.onFocusChange),onSpecialKey:this.bindFn(this.onSpecialKey),readonly:()=>this.controller.isInEditListMode()||this.controller.isItemReadonly(this.id),readonlyAction:this.const({predicate:()=>this.controller.isInEditListMode(),action:()=>this.exitEditListMode()}),ariaLabel:()=>cr(this.model,"edit_title"),placeholder:()=>this.controller.s("graphing-calculator-text-note-placeholder")})),oo.createElement(Vs,{controller:this.props.controller,model:this.props.model})),oo.createElement("span",{class:oo.const("dcg-tab dcg-action-drag"),handleevent:oo.const("true"),tapboundary:oo.const("true"),disablescroll:oo.const("true"),onTapStart:this.bindFn(this.onDragPending)},oo.createElement("span",{class:oo.const("dcg-num")},()=>this.model.displayIndex),oo.createElement("div",{class:oo.const("dcg-tab-interior")}),oo.createElement("i",{class:oo.const("dcg-icon-text"),"aria-hidden":oo.const("true")})),oo.createElement(Gs,{controller:this.props.controller,id:()=>this.model.id}))}onInput(e){this.controller.dispatch({type:"set-note-text",id:this.id,text:e})}onFocusChange(e){e?this.controller.dispatch({type:"set-focus-location",location:{type:"text",id:this.id}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"text",id:this.id}})}onSpecialKey(e){return this.controller.dispatch({type:"on-special-key-pressed",key:e})}isFocused(){let e=this.controller.getFocusLocation();return!(!e||e.type!=="text"||e.id!==this.id)}};var st=__dcg_shared_module_exports__['e']($());kt();var hr=__dcg_shared_module_exports__['e']($());var qo=__dcg_shared_module_exports__['e']($());var{SwitchUnion:bJ,If:yJ}=qo.Components,fx=class extends qo.Class{init(){this.model=this.props.model(),this.controller=this.props.controller()}template(){return qo.createElement("div",{class:qo.const("dcg-table-icon-container")},bJ(this.bindFn(this.typeOfIcon),{error:()=>qo.createElement(Bo,{error:()=>this.controller.unpack(this.model.error),gravity:this.const("s")}),none:()=>qo.createElement("span",null),icon:()=>qo.createElement("div",{class:qo.const("dcg-circular-icon-container"),role:qo.const("button"),tabindex:qo.const("0"),"aria-label":this.bindFn(this.getIconAriaLabel),handleevent:qo.const("true"),"dcg-open-menu-guid":()=>this.getMenuGUID(),onTap:e=>{if(!e.wasHandled("dragdrop")&&!e.wasLongheld()){if(this.myOptionsOpen())return this.toggleOptions();if(this.controller.isInEditListMode()||e.shiftKey)return this.toggleOptions();this.toggleGraphShown()}},onLongHold:e=>{e.handle("dcg-longhold"),e.handle("dcg-tap"),this.toggleOptions()},manageFocus:this.const(Fe({controller:this.controller,location:{type:"table-icon",id:this.model.table.id,columnId:this.model.id}}))},qo.createElement(Pi,{iconType:this.bindFn(this.getIcon),backgroundColor:this.bindFn(this.getModelColor)}),qo.createElement(yJ,{predicate:()=>this.model.disableGraphInteractions},()=>qo.createElement("i",{class:qo.const("dcg-graph-interaction-disabled dcg-icon-lock")})))}))}getModelColor(){return mb(this.model)}getMenuGUID(){return this.model.guid}myOptionsOpen(){return this.controller.isItemSettingsMenuOpen(this.getMenuGUID())}toggleOptions(){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"table-column",model:this.model,guid:this.getMenuGUID(),focusFirstOption:!1}})}toggleGraphShown(){this.controller.dispatch({type:"toggle-tablecolumn-hidden",tableId:this.model.table.id,columnId:this.model.id})}hasError(){return!!this.model.error}getIcon(){return this.model.shouldGraph?this.controller.isInEditListMode()?"none":this.model.points&&this.model.lines?"table-points-and-lines":this.model.points&&!this.model.lines?"table-points":!this.model.points&&this.model.lines?"table-lines":"none":"hidden"}typeOfIcon(){return this.model.latex===""||!this.controller.getGraphSettings().config.graphpaper?"none":this.model.error?"error":this.model.index===0?"none":"icon"}getIconAriaLabel(){return this.myOptionsOpen()?this.controller.s("graphing-calculator-narration-hide-options"):this.controller.isInEditListMode()?this.controller.s("graphing-calculator-narration-show-options"):this.model.shouldGraph?this.controller.s("graphing-calculator-narration-hide-table-column"):this.controller.s("graphing-calculator-narration-show-table-column")}};var{If:bx}=hr.Components,yx=class extends hr.Class{init(){this.model=this.props.model(),this.controller=this.props.controller(),this.table=this.model.table}isRightSide(){return this.lookupCellPosition().column>=this.table.columnModels.length-1}template(){return hr.createElement("div",{class:()=>({"dcg-cell":!0,"dcg-table-header":!0,"dcg-do-not-blur":!0,"dcg-left":this.model.index===0,"dcg-right":this.isRightSide(),"dcg-selected":this.shouldFocus()&&!this.table.readonly,"dcg-error":!!this.model.error,"dcg-leave-space-for-icon":this.leaveSpaceForIcon(),"dcg-leave-space-for-drag-icon":this.hasDragIcon()}),index:()=>this.model.index,onTapStart:this.bindFn(this.focusThisCell)},hr.createElement("div",{class:hr.const("dcg-inner-border")}),hr.createElement(bx,{predicate:()=>!this.isRightSide()&&(!this.controller.is3dProduct()||!!this.model.error)},()=>hr.createElement(fx,{model:this.props.model,controller:this.props.controller})),hr.createElement("div",{role:hr.const("columnheader")},hr.createElement(bx,{predicate:()=>!this.controller.isInEditListMode()&&!this.controller.isItemReadonly(this.table.id)},()=>hr.createElement(ii,{latex:()=>this.model.latex||"",operatorNames:()=>this.getMQConfig().autoOperatorNames,brailleShouldFocus:this.bindFn(this.shouldFocus),ariaLabel:()=>this.getAriaLabel("braille"),onBrailleInput:e=>this.handleLatexChanged(e),onBrailleFocusedChanged:this.bindFn(this.handleMQFocusedChanged),selectOnFocus:this.const(!0),onBrailleKeydown:this.bindFn(this.handleKeydownOnBrailleInput),...ji(this.props.controller())},hr.createElement(ve,{latex:()=>this.model.latex||"",isFocused:this.bindFn(this.shouldFocus),capExpressionSize:()=>this.controller.getCapExpressionSize(),noFadeout:this.const(!0),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.getAriaLabel("speech"),getAriaPostLabel:this.bindFn(this.getAriaPostLabel),hasError:this.const(!1),onUserPressedKey:(e,t)=>this.handlePressedKey(e,t),onUserChangedLatex:e=>this.handleLatexChanged(e),onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:this.bindFn(this.handleMQFocusedChanged),selectOnFocus:this.const(!0),needsSystemKeypad:()=>!this.controller.isKeypadEnabled()}))),hr.createElement(bx,{predicate:()=>this.controller.isInEditListMode()||this.controller.isItemReadonly(this.table.id)},()=>hr.createElement(ii,{latex:()=>this.model.latex||"",operatorNames:()=>this.getMQConfig().autoOperatorNames,ariaLabel:()=>this.getAriaLabel("braille"),onBrailleInput:e=>this.handleLatexChanged(e),tabindex:this.const(-1),isStatic:this.const(!0),brailleShouldFocus:this.bindFn(this.shouldFocusReadonlyCell),onBrailleFocusedChanged:this.bindFn(this.handleMQFocusedChanged),...ji(this.props.controller())},hr.createElement(ke,{latex:()=>this.model.latex||"",config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.getAriaLabel("speech")},hr.createElement("span",{class:hr.const("dcg-math-field dcg-cell-math-content"),role:hr.const("textbox"),"aria-readonly":hr.const("true"),tabindex:()=>this.controller.isInEditListMode()?-1:0,onKeyDown:this.bindFn(this.handleKeydownOnReadonlyCell),manageFocus:this.const({shouldBeFocused:this.bindFn(this.shouldFocusReadonlyCell),onFocusedChanged:this.bindFn(this.handleFocusedChanged)})})))),hr.createElement(bx,{predicate:this.bindFn(this.hasDragIcon)},()=>hr.createElement("span",{class:hr.const("dcg-drag-icon"),"dcg-drag-mode":()=>this.model.dragMode,style:()=>({color:this.model.color})},hr.createElement("i",{class:()=>({"dcg-icon-move":this.model.dragMode==="XY","dcg-icon-move-horizontal":this.model.dragMode==="X","dcg-icon-move-vertical":this.model.dragMode==="Y"}),"aria-hidden":hr.const("true")})))),hr.createElement("div",{class:hr.const("dcg-empty-line")}),hr.createElement(bx,{predicate:()=>this.isRightSide()},()=>hr.createElement("span",{class:hr.const("dcg-fade-right")})))}hasDragIcon(){return this.model.dragMode!=="NONE"&&!this.model.error}leaveSpaceForIcon(){if(this.model.error||this.controller.is3dProduct())return!1;let{column:e}=this.lookupCellPosition(),t=Qf(this.table);return e>0&&e<t-1}focusThisCell(e){e.wasHandled()||(e.handle(),!this.controller.isItemReadonly(this.table.id)&&(this.shouldFocus()||this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}})))}handleFocusedChanged(e,t){e?this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}}):this.isNodeWithinTableCell(t.relatedTarget)||this.controller.dispatch({type:"blur-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}})}lookupCellPosition(){return{row:0,column:this.model.index}}getAriaLabel(e){var t=this.lookupCellPosition();return e==="speech"?this.controller.s("graphing-calculator-narration-table-column-header",{column:t.column+1}):this.controller.raw("h__column__",{column:t.column+1})}getAriaPostLabel(){let e="",t=this.model;return t.shouldGraph&&(t.points||t.lines)&&!yL(t)&&(e=this.controller.s("graphing-calculator-narration-expression-evaluation-has-graph"),xi?e+=" "+this.controller.s("graphing-calculator-narration-expression-audio-trace-mac"):e+=" "+this.controller.s("graphing-calculator-narration-expression-audio-trace-windows")),e}handlePressedKey(e,t){var i=ve.getFocusedMathquill();i&&(ve.handleKeystrokeAndDecideIfSpecialEvent(i,e,t)?this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:e}):this.handleLatexChanged(i.latex()))}handleKeydownOnBrailleInput(e){let t=ue(e);if(!t)return;let i=t==="Enter"||t==="Up"||t==="Down",o=ia(),n=o&&t==="Left"&&o.selectionStart===0||t==="Right"&&o.selectionStart===o.value.length,a=this.model.latex.length===0&&Lm(o);(i||n||(t==="Del"||t==="Backspace")&&a)&&(this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:t==="Del"?"Delete":t}),e.preventDefault())}handleKeydownOnReadonlyCell(e){let t=ue(e);t!=="Tab"&&(e.preventDefault(),t==="Esc"&&Pr(),t&&this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:t}))}handleLatexChanged(e){var t=this.model.latex;t!==e&&this.controller.dispatch({type:"set-tablecell-latex",tableId:this.table.id,cell:this.lookupCellPosition(),latex:e})}shouldFocus(){return!this.controller.isInEditListMode()&&__dcg_shared_module_exports__['Oa'](this.lookupCellPosition(),Mn(this.table))}shouldFocusReadonlyCell(){return __dcg_shared_module_exports__['Oa'](this.lookupCellPosition(),Mn(this.table))}isNodeWithinTableCell(e){if(!e||!e.closest(".dcg-cell"))return!1;var t=this.controller.getItemRootNodeById(this.table.id);return t?W.contains(t,e):!1}handleMQFocusedChanged(e,t){e?this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}}):this.isNodeWithinTableCell(t.relatedTarget)||this.controller.dispatch({type:"blur-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}})}getMQConfig(){return this.controller.getMathquillConfig({})}};var oi=__dcg_shared_module_exports__['e']($());kt();var{If:u1}=oi.Components,xx=class extends oi.Class{init(){this.column=this.props.column(),this.controller=this.props.controller(),this.table=this.column.table}template(){return oi.createElement("div",{class:()=>({"dcg-cell":!0,"dcg-do-not-blur":!0,"dcg-empty":this.isEmpty(),"dcg-non-editable":!!this.column.disabled,"dcg-error":!!this.hasError(),"dcg-selected":this.shouldFocus()&&!this.controller.isItemReadonly(this.table.id)}),onTapStart:this.bindFn(this.focusThisCell)},oi.createElement("div",{class:oi.const("dcg-inner-border")}),oi.createElement("div",{role:oi.const("gridcell")},oi.createElement(u1,{predicate:this.bindFn(this.hasError)},()=>oi.createElement("span",{class:oi.const("dcg-table-icon-error-container")},oi.createElement(Bo,{error:this.bindFn(this.getErrorMessage),gravity:this.const("s"),size:this.const("small")}))),oi.createElement(u1,{predicate:()=>!this.isColumnEditable()},()=>oi.createElement(ii,{latex:()=>this.getValue(),operatorNames:()=>this.getMQConfig().autoOperatorNames,brailleShouldFocus:this.bindFn(this.shouldFocusReadonlyCell),ariaLabel:()=>this.getAriaLabel("braille"),tabindex:()=>this.controller.isInEditListMode()?-1:0,isStatic:this.const(!0),onBrailleFocusedChanged:this.bindFn(this.handleFocusedChanged),onBrailleKeydown:e=>(this.handleKeydownOnReadonlyCell(e),!0),...ji(this.props.controller())},oi.createElement(ke,{getAriaLabel:()=>this.getAriaLabel("speech"),latex:()=>this.getValue(),config:this.bindFn(this.getMQConfig)},oi.createElement("span",{class:oi.const("dcg-math-field dcg-cell-math-content dcg-mathquill-input-span"),role:oi.const("textbox"),"aria-roledescription":()=>this.column.disabled?this.controller.s("graphing-calculator-narration-computed-cell-role-description"):void 0,"aria-readonly":oi.const("true"),tabindex:()=>!this.controller.isInEditListMode()&&(!this.isEmpty()||!this.column.disabled)?0:-1,onKeyDown:this.bindFn(this.handleKeydownOnReadonlyCell),manageFocus:this.const({shouldBeFocused:this.bindFn(this.shouldFocusReadonlyCell),onFocusedChanged:this.bindFn(this.handleFocusedChanged)})})))),oi.createElement(u1,{predicate:this.bindFn(this.isColumnEditable)},()=>oi.createElement(ii,{latex:()=>this.getValue(),operatorNames:()=>this.getMQConfig().autoOperatorNames,brailleShouldFocus:this.bindFn(this.shouldFocusEditableCell),ariaLabel:()=>this.getAriaLabel("braille"),onBrailleInput:e=>this.handleLatexChanged(e),onBrailleFocusedChanged:this.bindFn(this.handleFocusedChanged),onBrailleKeydown:this.bindFn(this.handleKeydownOnBrailleInput),selectOnFocus:this.const(!0),...ji(this.props.controller())},oi.createElement(ve,{latex:()=>this.getValue(),isFocused:this.bindFn(this.shouldFocusEditableCell),capExpressionSize:()=>this.controller.getCapExpressionSize(),noFadeout:this.const(!0),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.getAriaLabel("speech"),getAriaPostLabel:this.bindFn(this.getErrorMessage),hasError:this.const(!1),onUserPressedKey:(e,t)=>this.handlePressedKey(e,t),onUserChangedLatex:e=>this.handleLatexChanged(e),onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:this.bindFn(this.handleFocusedChanged),selectOnFocus:this.const(!0),needsSystemKeypad:()=>!this.controller.isKeypadEnabled()})))),oi.createElement("div",{class:oi.const("dcg-empty-line")}))}focusThisCell(e){e.wasHandled()||this.controller.isItemReadonly(this.table.id)||(e.handle(),!this.shouldFocus()&&this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}}))}handlePressedKey(e,t){var i=ve.getFocusedMathquill();if(i){let o=ve.handleKeystrokeAndDecideIfSpecialEvent(i,e,t);e===_o&&Pr(),o?this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:e}):this.handleLatexChanged(i.latex())}}handleKeydownOnBrailleInput(e){let t=ue(e);if(!t)return;t===_o&&Pr();let i=t==="Enter"||t==="Up"||t==="Down",o=ia(),n=o&&t==="Left"&&o.selectionStart===0||t==="Right"&&o.selectionStart===o.value.length;(i||n||(t==="Del"||t==="Backspace")&&this.getValue().length===0)&&(this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:t==="Del"?"Delete":t}),e.preventDefault())}handleKeydownOnReadonlyCell(e){let t=ue(e);t!=="Tab"&&(e.preventDefault(),t==="Esc"&&Pr(),t&&this.controller.dispatch({type:"navigate-table-by-key",id:this.table.id,key:t}))}handleLatexChanged(e){var t=this.getValue();t!==e&&this.controller.dispatch({type:"set-tablecell-latex",tableId:this.table.id,cell:this.lookupCellPosition(),latex:e})}shouldFocus(){return __dcg_shared_module_exports__['Oa'](this.lookupCellPosition(),Mn(this.table))}shouldFocusReadonlyCell(){return!this.controller.isInEditListMode()&&(this.controller.isItemReadonly(this.table.id)||!!this.column.disabled)&&this.shouldFocus()}shouldFocusEditableCell(){return!this.column.disabled&&this.shouldFocus()}isNodeWithinTableCell(e){if(!e||!e.closest(".dcg-cell"))return!1;var t=this.controller.getItemRootNodeById(this.table.id);return t?W.contains(t,e):!1}handleFocusedChanged(e,t){e?this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}}):this.isNodeWithinTableCell(t.relatedTarget)||this.controller.dispatch({type:"blur-focus-location",location:{type:"table",id:this.table.id,location:this.lookupCellPosition()}})}lookupCellPosition(){return{row:this.props.rowIdx(),column:this.column.index}}getPackedError(){return this.column.packedErrors[this.props.rowIdx()-1]}hasError(){return!!this.getPackedError()}getErrorMessage(){let e=this.getPackedError();return e?this.controller.unpack(e):""}getValue(){let e=this.props.rowIdx()-1,t=this.column.index;return gv(this.table,e,t)}isEmpty(){let e=ia();return this.getValue()===""&&Lm(e)}getAriaLabel(e){var t=this.lookupCellPosition(),i=t.row,o=t.column+1;return e==="speech"?this.controller.s("graphing-calculator-narration-table-row-column",{row:i.toString(),column:o.toString()}):this.controller.raw("r__row__c__column__",{row:i.toString(),column:o.toString()})}isColumnEditable(){return!this.column.disabled&&!this.controller.isItemReadonly(this.table.id)&&!this.controller.isInEditListMode()}getMQConfig(){return this.controller.getMathquillConfig({})}};kt();var{For:h1}=st.Components,wx=class extends na{didMount(){this.onItemViewMounted()}willUnmount(){this.onItemViewUnmounted()}template(){return st.createElement("div",{class:()=>({"dcg-expressionitem":!0,"dcg-expressiontable":!0,"dcg-readonly":this.controller.isItemReadonly(this.id),"dcg-inFolder":!!this.model.folderId,"dcg-selected":!!this.controller.isItemSelected(this.id),"dcg-dragging":!!this.controller.isItemBeingDragged(this.id),"dcg-faded-h":this.shouldFadeLastColumn(),"dcg-faded-v":this.shouldFadeLastRow()}),"expr-id":()=>this.model.id,didMount:this.bindFn(this.didMountContainer),onKeydown:this.bindFn(this.onKeydown)},st.createElement("div",{class:st.const("dcg-fade-container dcg-disable-horizontal-scroll-to-cursor")},st.createElement("div",{class:st.const("dcg-main")},st.createElement("div",{class:st.const("dcg-table-container"),tabindex:()=>this.controller.isInEditListMode()?0:-1,"aria-label":()=>this.controller.getBrailleMode()==="none"?this.controller.s("graphing-calculator-narration-expression-index-table",{index:this.model.displayIndex}):this.controller.s("graphing-calculator-narration-expression-index-table",{index:this.model.displayIndex}),didMount:this.bindFn(this.didMountContainer),manageFocus:this.const({shouldBeFocused:this.shouldBeFocused.bind(this),onFocusedChanged:this.onFocusedChanged.bind(this)})},st.createElement("div",{class:st.const("dcg-table-sliding-container"),style:()=>({transform:`translateX(${this.computeScrolledX()}px)`})},st.createElement(h1,{each:()=>this.getVisibleRows(),key:e=>this.getRowGUID(e)},st.createElement("div",{role:st.const("grid"),class:st.const("dcg-tabledata")},e=>e.type==="show-more"?st.createElement("tr",{role:st.const("row"),class:st.const("dcg-show-more-row")},st.createElement("td",{colspan:this.bindFn(this.getColSpan)},this.bindFn(this.missingRowMessage),st.createElement("div",{tabindex:st.const(0),role:st.const("button"),class:st.const("dcg-show-more"),onTap:()=>this.controller.dispatch({type:"table-show-more-rows",id:this.id})},()=>this.controller.s("graphing-calculator-button-show-all-table-rows")))):e.type==="spacer-row"?st.createElement("tr",{role:st.const("row"),class:st.const("dcg-blank-row")},st.createElement("td",{colspan:this.bindFn(this.getColSpan),style:()=>({height:(e.endIdx-e.startIdx+1)*this.getRowHeight()+"px"})})):e.type==="header"?st.createElement(h1,{each:()=>this.model.columnModels,key:t=>t.guid},st.createElement("tr",{role:st.const("row"),"aria-rowindex":st.const(0),class:()=>({"dcg-row":e,"dcg-braille-row":this.controller.getBrailleMode()!=="none"})},t=>st.createElement(yx,{controller:this.props.controller,model:this.const(t)}))):st.createElement(h1,{each:()=>this.model.columnModels,key:t=>t.guid},st.createElement("tr",{role:st.const("row"),"aria-rowindex":()=>e.index,class:()=>({"dcg-row":e,"dcg-braille-row":this.controller.getBrailleMode()!=="none"})},t=>st.createElement(xx,{controller:this.props.controller,column:this.const(t),rowIdx:()=>e.index})))))))),st.createElement(Vs,{controller:this.props.controller,model:this.props.model})),st.createElement("span",{class:st.const("dcg-tab dcg-action-drag"),handleevent:st.const("true"),tapboundary:st.const("true"),disablescroll:st.const("true"),onTapStart:this.bindFn(this.onDragPending)},st.createElement("span",{class:st.const("dcg-num")},()=>this.model.displayIndex),st.createElement("div",{class:st.const("dcg-tab-interior")}),st.createElement(zm,{model:this.props.model,controller:this.props.controller})),st.createElement(Gs,{controller:this.props.controller,id:()=>this.model.id}))}getRowGUID(e){switch(e.type){case"header":return"header";case"show-more":return"show-more";case"spacer-row":return`spacer-${e.startIdx}-${e.endIdx}`;case"standard-row":return`row-${e.index}`}}getColSpan(){return this.model.columnModels.length-1}getRowHeight(){return this.controller.getGraphSettings().config.projectorMode?38:33}getVisibleRows(){var g,b,C;let e=[{type:"header"}],t=ls(this.model)+1;if(t<=25){for(let S=1;S<t;S++)e.push({type:"standard-row",index:S});return e}let i=au(this.model);if(i!==void 0){for(let S=1;S<i.min;S++)e.push({type:"standard-row",index:S});e.push({type:"show-more"});for(let S=i.max;S<t;S++)e.push({type:"standard-row",index:S});return e}let o=$y(this.controller),n=o?o.height:0,a=W(this.node).offset(),s=(a?a.top:0)-(o?o.top:0),l=(C=(b=(g=this.node)==null?void 0:g.querySelector(".dcg-row"))==null?void 0:b.getBoundingClientRect().height)!=null?C:0,c=this.getRowHeight();if(n/c>t){for(let S=1;S<t;S++)e.push({type:"standard-row",index:S});return e}let d=(-s-l)/c,u=(n-s)/c;for(var h=1;h<t;h++){let S=Mn(this.model);if(h===t-2||S&&S.row===h)e.push({type:"standard-row",index:h});else if(h>u||h<d){let k=e[e.length-1];k&&k.type==="spacer-row"?k.endIdx=h:e.push({type:"spacer-row",startIdx:h,endIdx:h})}else e.push({type:"standard-row",index:h})}return e}missingRowMessage(){let e=au(this.model);return e===void 0?"":this.controller.s("graphing-calculator-text-table-more-rows",{rowCount:e.max-e.min})}didMountContainer(e){this.node=e,W(e).on("scroll",()=>e.scrollLeft=0)}getSelectedCell(){return Mn(this.model)}computeScrolledX(){if(!this.getSelectedCell()||!this.node)return 0;let e=this.node.children[0],t=this.node.querySelector(".dcg-selected");if(e===null||t===null)return 0;let i=this.node.getBoundingClientRect(),o=t.getBoundingClientRect(),n=o.left-e.getBoundingClientRect().left,a=i.width-n-o.width-80,s=Math.min(0,i.width-e.scrollWidth-30);return a=Math.max(a,s),Math.min(0,a)}shouldFadeLastRow(){return wL(this.model)&&!this.isBottomFocused()}shouldFadeLastColumn(){return!this.isRightFocused()}isBottomFocused(){let e=this.getSelectedCell();return!!e&&e.row===ls(this.model)}isRightFocused(){let e=this.getSelectedCell();return!!e&&e.column===this.model.columnModels.length-1}isReadonly(){return this.controller.isItemReadonly(this.id)}isFocused(){return!!this.getSelectedCell()}onKeydown(e){this.controller.isInEditListMode()||e.ctrlKey&&!e.shiftKey&&!e.altKey&&!e.metaKey&&(ue(e)==="Up"?(e.preventDefault(),e.stopPropagation(),this.moveToFirstCellInColumn()):ue(e)==="Down"?(e.preventDefault(),e.stopPropagation(),this.moveToLastCellInColumn()):ue(e)==="Left"?(e.preventDefault(),e.stopPropagation(),this.moveToFirstCellInRow()):ue(e)==="Right"?(e.preventDefault(),e.stopPropagation(),this.moveToLastCellInRow()):Ai(e)==="H"&&(e.preventDefault(),e.stopPropagation(),this.speakColumnHeader()))}moveToFirstCellInColumn(){let e=this.getSelectedCell();e&&this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.id,location:{row:0,column:e.column}}})}moveToLastCellInColumn(){let e=this.getSelectedCell();e&&this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.id,location:{row:ls(this.model),column:e.column}}})}moveToFirstCellInRow(){let e=this.getSelectedCell();e&&this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.id,location:{row:e.row,column:0}}})}moveToLastCellInRow(){let e=this.getSelectedCell();e&&this.controller.dispatch({type:"set-focus-location",location:{type:"table",id:this.id,location:{row:e.row,column:ls(this.model)-1}}})}speakColumnHeader(){let e=this.controller.s("graphing-calculator-narration-table-no-column-header"),t=this.getSelectedCell();if(t){let i=this.model.columnModels[t.column].latex;i&&(e=Pl.StaticMath(document.createElement("span")).latex(i).mathspeak())}ie(e)}focusHelperOptions(){return{controller:this.controller,location:{type:"table-container",id:this.model.id}}}shouldBeFocused(){return Au(this.focusHelperOptions())}onFocusedChanged(e){if(this.controller.isInEditListMode())return eM(this.focusHelperOptions(),e)}};var or=__dcg_shared_module_exports__['e']($());var vx=class extends na{didMount(){this.onItemViewMounted()}willUnmount(){this.onItemViewUnmounted()}template(){return or.createElement("div",{class:()=>({"dcg-do-not-blur":!0,"dcg-expressionitem":!0,"dcg-readonly":this.controller.isItemReadonly(this.id),"dcg-expressionfolder":!0,"dcg-inFolder":!1,"dcg-selected":this.renderAsSelected(),"dcg-dragging":!!this.controller.isItemBeingDragged(this.id),"dcg-collapsed":!!this.model.collapsed,"dcg-hidden":!!this.model.hidden,"dcg-has-items":this.controller.getNumberOfItemsInFolder(this.id)>0,"dcg-secretFolder":this.model.secret&&!this.controller.shouldShowAuthorFeatures()}),"expr-id":()=>this.model.id,onTapStart:this.bindFn(this.onMouseSelect),onTap:this.bindFn(this.onMouseSelect)},or.createElement("div",{class:or.const("dcg-fade-container")},or.createElement("div",{class:or.const("dcg-main")},or.createElement("div",{role:or.const("button"),tabindex:or.const("0"),"aria-pressed":()=>this.model.collapsed,"aria-label":()=>this.model.collapsed?cr(this.model,"expand"):cr(this.model,"collapse"),class:or.const("dcg-caret-container dcg-action-toggle-folder-collapsed dcg-do-not-blur"),handleEvent:or.const("true"),onTap:this.bindFn(this.toggleCollapsed)},or.createElement("i",{class:or.const("dcg-icon-caret-down"),"aria-hidden":or.const("true")})),or.createElement(pd,{shouldFocus:this.bindFn(this.isFocused),text:()=>this.model.title,showLinks:()=>this.controller.areLinksEnabled(),onInput:this.bindFn(this.onInput),onFocusChange:this.bindFn(this.onFocusChange),onSpecialKey:this.bindFn(this.onSpecialKey),ariaLabel:this.bindFn(this.getAriaLabel),readonly:()=>this.controller.isInEditListMode()||this.controller.isItemReadonly(this.id),readonlyAction:this.const({predicate:()=>this.controller.isInEditListMode(),action:()=>this.exitEditListMode()}),placeholder:()=>this.controller.s("graphing-calculator-text-folder-placeholder")}),or.createElement(He,{checked:()=>this.model.secret,class:this.const("dcg-action-toggle-secret-folder dcg-do-not-blur"),style:()=>({display:this.controller.shouldShowAuthorFeatures()?void 0:"none"}),onChange:this.bindFn(this.toggleSecret)},or.createElement("span",{class:or.const("dcg-checkbox-label")},()=>this.controller.s("graphing-calculator-button-hide-folder-from-students-2")))),or.createElement(Vs,{controller:this.props.controller,model:this.props.model})),or.createElement("span",{class:or.const("dcg-tab dcg-action-drag"),handleevent:or.const("true"),tapboundary:or.const("true"),disablescroll:or.const("true"),onTapStart:this.bindFn(this.onDragPending)},or.createElement("span",{class:or.const("dcg-num")},()=>this.model.displayIndex),or.createElement("div",{class:or.const("dcg-tab-interior")},or.createElement("span",{role:or.const("button"),tabindex:or.const("0"),"aria-pressed":()=>!!this.model.hidden,"aria-label":()=>this.model.hidden?cr(this.model,"show"):cr(this.model,"hide"),class:or.const("dcg-circular-icon-container dcg-expression-icon-container"),onTap:this.bindFn(this.toggleHidden)},or.createElement(Pi,{iconType:()=>this.model.hidden?"hidden":"folder",whiteIcon:()=>this.renderAsSelected()||this.controller.isItemBeingDragged(this.model.id)})))),or.createElement(Gs,{controller:this.props.controller,id:()=>this.model.id}))}renderAsSelected(){return this.controller.isItemSelected(this.model.id)||this.model.collapsedChildIsSelected}toggleHidden(){this.controller.dispatch({type:"toggle-item-hidden",id:this.id})}toggleSecret(){this.controller.dispatch({type:"set-item-secret",id:this.id,isSecret:!this.model.secret})}toggleCollapsed(){this.controller.dispatch({type:"set-folder-collapsed",id:this.id,isCollapsed:!this.model.collapsed})}onInput(e){this.controller.dispatch({type:"set-folder-title",id:this.id,title:e})}onFocusChange(e){e?this.controller.dispatch({type:"set-focus-location",location:{type:"folder",id:this.id}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"folder",id:this.id}})}onSpecialKey(e){return this.controller.dispatch({type:"on-special-key-pressed",key:e})}isFocused(){let e=this.controller.getFocusLocation();return!(!e||e.type!=="folder"||e.id!==this.id)}getAriaLabel(){let e="",t="";switch((this.model.hidden?1:0)+(this.model.collapsed?16:0)+(this.model.secret?256:0)+(this.model.readonly?4096:0)){case 0:t=this.controller.s("graphing-calculator-narration-description-folder");break;case 1:t=this.controller.s("graphing-calculator-narration-description-hidden-folder");break;case 16:t=this.controller.s("graphing-calculator-narration-description-collapsed-folder");break;case 256:t=this.controller.s("graphing-calculator-narration-description-secret-folder");break;case 4096:t=this.controller.s("graphing-calculator-narration-description-readonly-folder");break;case 17:t=this.controller.s("graphing-calculator-narration-description-hidden-collapsed-folder");break;case 257:t=this.controller.s("graphing-calculator-narration-description-hidden-secret-folder");break;case 4097:t=this.controller.s("graphing-calculator-narration-description-hidden-readonly-folder");break;case 272:t=this.controller.s("graphing-calculator-narration-description-collapsed-secret-folder");break;case 4352:t=this.controller.s("graphing-calculator-narration-description-secret-readonly-folder");break;case 4112:t=this.controller.s("graphing-calculator-narration-description-collapsed-readonly-folder");break;case 273:t=this.controller.s("graphing-calculator-narration-description-hidden-collapsed-secret-folder");break;case 4113:t=this.controller.s("graphing-calculator-narration-description-hidden-collapsed-readonly-folder");break;case 4353:t=this.controller.s("graphing-calculator-narration-description-hidden-secret-readonly-folder");break;case 4368:t=this.controller.s("graphing-calculator-narration-description-collapsed-secret-readonly-folder");break;case 4369:t=this.controller.s("graphing-calculator-narration-description-hidden-collapsed-secret-readonly-folder");break}let c=this.controller.getNumberOfItemsInFolder(this.id);return c>0?e=this.controller.s("graphing-calculator-narration-folder-has-items",{folder:t,count:c}):e=t,e}};var Ae=__dcg_shared_module_exports__['e']($());function A0(r){let e=document.createElement("a");return e.href=r,e.href}var Ho=__dcg_shared_module_exports__['e']($());var{SwitchUnion:xJ,If:wJ}=Ho.Components,dh=class extends Ho.Class{init(){this.model=this.props.model(),this.controller=this.props.controller()}template(){return Ho.createElement("div",{class:Ho.const("dcg-expression-icon-container dcg-image-icon-container")},xJ(this.bindFn(this.typeOfIcon),{error:()=>Ho.createElement(Bo,{error:()=>this.controller.unpack(this.model.error),isWhite:this.bindFn(this.isSelected),gravity:this.const("s")}),failed:()=>Ho.createElement("span",null),loading:()=>Ho.createElement(Pi,{iconType:this.const("loading")}),hidden:()=>this.buildIconView(),image:()=>this.buildIconView()}))}buildIconView(){return Ho.createElement("div",{class:Ho.const("dcg-circular-icon-container"),role:Ho.const("button"),tabindex:Ho.const("0"),"dcg-open-menu-guid":()=>this.getMenuGUID(),"aria-label":this.bindFn(this.getIconAriaLabel),onTap:e=>{if(!e.wasHandled("dragdrop")&&!e.wasLongheld()){if(this.myOptionsOpen())return this.toggleOptions(e);if(this.controller.isInEditListMode()||e.shiftKey)return this.toggleOptions(e);this.toggleImageShown()}},onLongHold:e=>{e.handle("dcg-longhold"),e.handle("dcg-tap"),this.toggleOptions(e)},manageFocus:this.const(Fe({controller:this.controller,location:{type:"image-icon",id:this.model.id}}))},Ho.createElement(Pi,{iconType:()=>this.typeOfIcon()==="hidden"?"hidden":"background",backgroundImage:this.bindFn(this.getBackgroundImage),backgroundOpacity:this.const(1),whiteIcon:this.bindFn(this.isSelected)}),Ho.createElement(wJ,{predicate:()=>this.model.disableGraphInteractions},()=>Ho.createElement("i",{class:Ho.const("dcg-graph-interaction-disabled dcg-icon-lock")})))}isSelected(){return this.controller.isItemSelected(this.model.id)||this.controller.isItemBeingDragged(this.model.id)}typeOfIcon(){return this.model.loadStatus==="loading"?"loading":this.model.loadStatus==="failed"?"failed":this.hasError()?"error":this.model.shouldGraph?"image":"hidden"}getMenuGUID(){return this.model.guid}myOptionsOpen(){return this.controller.isItemSettingsMenuOpen(this.getMenuGUID())}toggleOptions(e){this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"image",model:this.model,guid:this.getMenuGUID(),focusFirstOption:e.device==="keyboard"}})}hasError(){return!!this.model.error&&this.controller.getBrailleMode()==="none"}getBackgroundImage(){return this.model.image_url===this.lastURL?this.lastEncodedURL:(this.lastURL=this.model.image_url,this.lastEncodedURL='url("'+A0(this.model.image_url)+'")',this.lastEncodedURL)}toggleImageShown(){this.controller.dispatch({type:"toggle-item-hidden",id:this.model.id}),this.controller.dispatch({type:"set-focus-location",location:{type:"image-icon",id:this.model.id}})}getIconAriaLabel(){return this.myOptionsOpen()?cr(this.model,"hide-options"):this.controller.isInEditListMode()?cr(this.model,"show-options"):this.model.hidden?cr(this.model,"show"):cr(this.model,"hide")}};var Ps=__dcg_shared_module_exports__['e']($());kt();var ud=class extends Ps.Class{init(){this.controller=this.props.controller()}template(){return Ps.createElement("div",{class:Ps.const("dcg-do-not-blur"),onTap:this.bindFn(this.newImage),handleEvent:Ps.const("true"),role:Ps.const("button"),tabindex:()=>this.props.readonly()?-1:0,"aria-label":this.props.ariaLabel,"aria-disabled":()=>this.props.readonly(),manageFocus:this.const(this.props.location?Fe({controller:this.controller,location:this.props.location()}):void 0)},this.children,Ps.createElement("input",{type:Ps.const("file"),accept:Ps.const("image/*"),style:Ps.const("display: none"),didMount:this.bindFn(this.didMountFileInput)}))}didMountFileInput(e){this.fileInputNode=e,W(e).on("change",()=>{this.props.onFileChange(e.files),e.value=""})}newImage(){this.props.readonly()||this.fileInputNode.click()}};var{If:Cx,SwitchUnion:vJ}=Ae.Components,ph=class extends Ae.Class{init(){this.model=this.props.model(),this.controller=this.props.controller()}template(){return Ae.createElement(Vt,{containerClass:()=>({"dcg-image-input-mathquill":!0,"dcg-suffix-degree":this.props.name()==="angle"&&this.props.controller().getGraphSettings().degreeMode,"dcg-suffix-radian":this.props.name()==="angle"&&!this.props.controller().getGraphSettings().degreeMode}),fontSize:this.const("large"),fullWidth:this.const(!0),readonly:this.props.readonly,latex:()=>this.model[this.props.name()],isFocused:()=>this.props.focusedInput()===this.props.name(),ariaLabel:()=>this.controller.raw(this.props.name()),handleFocusChanged:this.bindFn(this.handleMQFocusedChanged),hasError:()=>zL(this.model,this.props.name()),controller:this.props.controller,handlePressedKey:this.bindFn(this.handlePressedKey),handleLatexChanged:this.bindFn(this.handleLatexChanged),noBorder:()=>!this.props.focusedInput()})}getInputs(){return["center","width","angle","height","opacity"]}handlePressedKey(e,t){let i=this.props.name();var o=ve.getFocusedMathquill();let n=this.getInputs(),a=n.indexOf(i);if(!this.controller.isInEditListMode()){if(e==="Enter")return this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"});if(e==="Esc"){Pr();return}}let s=-1;e==="Up"&&(s=a===1?4:a-2),e==="Down"&&(s=a===4?1:a+2),e==="Left"&&(s=a-1),e==="Right"&&(s=a+1);let l=e;if(s>=0&&s<n.length){let c=!1;if(o)c=ve.applyArrowKeyAndReturnIfWasAtBounds(o,l,t);else if(e==="Up"||e==="Down")c=!0;else{let d=ia();c=d&&(e==="Left"&&d.selectionStart===0||e==="Right"&&d.selectionStart===d.value.length)}c&&(this.focusInput(n[s]),t&&t.preventDefault());return}o&&(o.keystroke(e,t),this.handleLatexChanged(o.latex()))}focusInput(e){this.controller.dispatch({type:"set-focus-location",location:{type:"image",id:this.model.id,location:e}})}handleLatexChanged(e){let t=this.props.name();this.model.draggingOnGraphpaper||PL(this.model,t)!==e&&this.controller.dispatch({type:"set-image-mq-attribute",id:this.model.id,attribute:t,latex:e})}handleMQFocusedChanged(e){let t=this.props.name();e?this.props.focusedInput()!==t&&this.controller.dispatch({type:"set-focus-location",location:{type:"image",id:this.model.id,location:t}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"image",id:this.model.id,location:t}})}},Sx=class extends na{didMount(){this.onItemViewMounted()}willUnmount(){this.onItemViewUnmounted()}template(){return Ae.createElement("div",{class:()=>({"dcg-do-not-blur":!0,"dcg-expressionitem":!0,"dcg-readonly":this.controller.isItemMarkedReadonly(this.id),"dcg-expressionimage":!0,"dcg-inFolder":!!this.model.folderId,"dcg-selected":this.controller.isItemSelected(this.id),"dcg-dragging":!!this.controller.isItemBeingDragged(this.id),"dcg-input-focused":this.getFocusedInput()&&this.getFocusedInput()!=="name"}),"expr-id":()=>this.model.id,onTapStart:this.bindFn(this.onMouseSelect),onTap:this.bindFn(this.onMouseSelect)},Ae.createElement("div",{class:Ae.const("dcg-fade-container")},Ae.createElement("div",{class:Ae.const("dcg-main")},vJ(()=>this.model.loadStatus,{failed:()=>Ae.createElement("div",null,Ae.createElement("div",{class:Ae.const("dcg-image-failed")},()=>this.controller.s("graphing-calculator-error-failed-to-load-image")),Ae.createElement("div",{role:Ae.const("button"),tabindex:Ae.const(0),class:Ae.const("dcg-retry-loading-image"),onTap:this.bindFn(this.onRetryLoad)},()=>this.controller.s("graphing-calculator-button-load-image-retry"))),loading:()=>Ae.createElement("div",null,Ae.createElement("div",{class:Ae.const("dcg-image-loading")},()=>this.controller.s("graphing-calculator-text-loading-image")),Ae.createElement("div",{role:Ae.const("button"),tabindex:Ae.const(0),class:Ae.const("dcg-retry-loading-image"),onTap:this.bindFn(this.onRetryLoad)},()=>this.controller.s("graphing-calculator-button-load-image-retry"))),loaded:()=>Ae.createElement("div",{class:Ae.const("dcg-image-loaded")},Ae.createElement("div",{class:Ae.const("dcg-image-title-row")},Ae.createElement(pd,{shouldFocus:()=>this.getFocusedInput()==="name",text:()=>this.model.name,ariaLabel:()=>cr(this.model,"edit_title"),placeholder:()=>this.controller.s("graphing-calculator-text-image-placeholder"),showLinks:()=>this.controller.areLinksEnabled(),onInput:this.bindFn(this.onNameInput),onFocusChange:this.bindFn(this.onNameFocusChange),onSpecialKey:this.bindFn(this.onNameSpecialKey),readonly:()=>this.controller.isInEditListMode()||this.isReadonly()}),Ae.createElement(Cx,{predicate:()=>this.controller.areImagesEnabled()},()=>Ae.createElement(ud,{controller:()=>this.controller,ariaLabel:()=>this.controller.s("graphing-calculator-button-change-image"),onFileChange:e=>this.insertFiles(e),location:this.const({type:"change-image-btn",id:this.id}),readonly:this.bindFn(this.isReadonly)},Ae.createElement(Cx,{predicate:()=>!this.isReadonly()},()=>Ae.createElement("div",{class:Ae.const("dcg-action-changeimage")},()=>this.controller.s("graphing-calculator-button-change-image")))))),Ae.createElement("div",{class:()=>({"dcg-do-blur":!0,"dcg-image-input-grid":!0}),handleEvent:Ae.const("true")},Ae.createElement("div",{class:Ae.const("dcg-image-input-name")},()=>this.controller.s("graphing-calculator-label-image-center")),Ae.createElement(ph,{name:this.const("center"),controller:()=>this.controller,model:()=>this.model,focusedInput:this.bindFn(this.getFocusedInput),readonly:this.bindFn(this.isReadonly)}),Ae.createElement("div",{class:Ae.const("dcg-image-input-name")},()=>this.controller.s("graphing-calculator-label-image-width")),Ae.createElement(ph,{name:this.const("width"),controller:()=>this.controller,model:()=>this.model,focusedInput:this.bindFn(this.getFocusedInput),readonly:this.bindFn(this.isReadonly)}),Ae.createElement("div",{class:Ae.const("dcg-image-input-name")},()=>this.controller.s("graphing-calculator-label-image-angle")),Ae.createElement(ph,{name:this.const("angle"),controller:()=>this.controller,model:()=>this.model,focusedInput:this.bindFn(this.getFocusedInput),readonly:this.bindFn(this.isReadonly)}),Ae.createElement("div",{class:Ae.const("dcg-image-input-name")},()=>this.controller.s("graphing-calculator-label-image-height")),Ae.createElement(ph,{name:this.const("height"),controller:()=>this.controller,model:()=>this.model,focusedInput:this.bindFn(this.getFocusedInput),readonly:this.bindFn(this.isReadonly)}),Ae.createElement("div",{class:Ae.const("dcg-image-input-name")},()=>this.controller.s("graphing-calculator-label-image-opacity")),Ae.createElement(ph,{name:this.const("opacity"),controller:()=>this.controller,model:()=>this.model,focusedInput:this.bindFn(this.getFocusedInput),readonly:this.bindFn(this.isReadonly)})))})),Ae.createElement("span",{class:Ae.const("dcg-fadeout")}),Ae.createElement(Vs,{controller:this.props.controller,model:this.props.model}),Ae.createElement(Cx,{predicate:this.bindFn(this.shouldShowBrailleError)},()=>Ae.createElement("div",{class:this.getFooterClass()},Ae.createElement("div",{tabindex:Ae.const(0),class:Ae.const("dcg-expression-braille-error"),"aria-roledescription":Ae.const("error"),"aria-label":()=>this.controller.unpack(this.model.error)},Ae.createElement("i",{class:Ae.const("dcg-icon-error"),"aria-hidden":Ae.const("true")}),()=>this.controller.unpack(this.model.error)))),Ae.createElement(Cx,{predicate:()=>Cv(this.model).length>0&&this.controller.areSlidersEnabled()},()=>Ae.createElement("div",{class:this.getFooterClass()},Ae.createElement(hl,{model:this.props.model,controller:this.props.controller}))),Ae.createElement(Cx,{predicate:this.bindFn(this.shouldShowActionInfo)},()=>Ae.createElement("div",{class:this.getFooterClass()},Ae.createElement(lh,{model:this.props.model,controller:this.props.controller})))),Ae.createElement("span",{class:Ae.const("dcg-tab dcg-action-drag dcg-action-icon-touch"),handleevent:Ae.const("true"),tapboundary:Ae.const("true"),disablescroll:Ae.const("true"),onTapStart:this.bindFn(this.onDragPending)},Ae.createElement("span",{class:Ae.const("dcg-num")},()=>this.model.displayIndex),Ae.createElement("div",{class:Ae.const("dcg-tab-interior dcg-action-icon-mouse")},Ae.createElement(dh,{model:this.props.model,controller:this.props.controller}))),Ae.createElement(Gs,{controller:this.props.controller,id:()=>this.model.id}))}isReadonly(){return this.controller.isItemReadonly(this.id)}shouldShowActionInfo(){return!!(this.model.clickableInfo&&this.model.clickableInfo.enabled&&this.model.clickableInfo.latex)}getFooterClass(){return this.isFirstRender()?this.const("dcg-expression-bottom dcg-indent-in-folder"):this.const("dcg-expression-bottom dcg-fadein-bottom dcg-indent-in-folder")}onNameInput(e){this.controller.dispatch({type:"set-image-name",id:this.id,name:e})}onNameFocusChange(e){e?this.controller.dispatch({type:"set-focus-location",location:{type:"image",id:this.id,location:"name"}}):this.getFocusedInput()==="name"&&this.controller.dispatch({type:"blur-focus-location",location:{type:"image",id:this.id,location:"name"}})}onNameSpecialKey(e){return this.controller.dispatch({type:"on-special-key-pressed",key:e})}getFocusedInput(){let e=this.controller.getFocusLocation();if(e&&e.type==="image"&&e.id===this.model.id)return e.location}onRetryLoad(){this.controller.dispatch({type:"image-retry-loading",id:this.id})}shouldShowBrailleError(){return this.controller.getBrailleMode()!=="none"&&!!this.model.error}insertFiles(e){this.controller.dispatch({type:"change-image",files:e,id:this.id})}onMouseSelect(e){e.type==="dcg-tap"&&e.device==="mouse"||e.type==="dcg-tapstart"&&e.device==="touch"||e.wasHandled()||(e.handle(),this.controller.dispatch({type:"set-selected-id",id:this.id}))}};var Ex=__dcg_shared_module_exports__['e']($());var Dx=class extends na{didMount(){this.onItemViewMounted()}willUnmount(){this.onItemViewUnmounted()}template(){let e="";return this.model.cachedRenderHeight&&(e="height:"+this.model.cachedRenderHeight+"px"),Ex.createElement("div",{class:Ex.const("dcg-do-not-blur dcg-expressionitem dcg-shell"),"expr-id":this.const(this.model.id),onTap:this.bindFn(this.onMouseSelect),style:Ex.const(e)})}};var Km=__dcg_shared_module_exports__['e']($()),kx=class extends Km.Class{init(){this.controller=this.props.controller()}template(){return Km.createElement("div",{class:Km.const("dcg-drag-container"),style:()=>({top:this.getTopPx(),left:this.getLeftPx()})},this.children)}getTopPx(){let e=this.controller.getRawDragState();if(e)return e.itemTop+"px"}getLeftPx(){let e=this.controller.getRawDragState();if(e)return e.itemLeft+"px"}};var uc={delimiter:"",header:!1,dynamicTyping:!1,preview:0,step:void 0,encoding:"",comments:!1,complete:void 0,error:void 0,download:!1,chunk:void 0,keepEmptyRows:!1},Wo={};Wo.parse=CJ;Wo.RECORD_SEP="";Wo.UNIT_SEP="";Wo.BYTE_ORDER_MARK="\uFEFF";Wo.BAD_DELIMITERS=["\r",`
`,'"',Wo.BYTE_ORDER_MARK];Wo.LocalChunkSize=1024*1024*10;Wo.RemoteChunkSize=1024*1024*5;Wo.DefaultDelimiter=",";Wo.Parser=G0;Wo.ParserHandle=sK;function CJ(r,e){var t=SJ(e),i=new sK(t),o=i.parse(r);return o}function sK(r){var e=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,t=this,i,o,n=!1,a,s=[],l={data:[],errors:[],meta:{}};r=g1(r),this.parse=function(S){if(a=!1,!r.delimiter){var k=g(S);k.successful?r.delimiter=k.bestDelimiter:(a=!0,r.delimiter=Wo.DefaultDelimiter),l.meta.delimiter=r.delimiter}if(Um(r.step)){var I=r.step;r.step=function(M){l=M,d()?c():I(c(),t)}}return r.preview&&r.header&&r.preview++,i=S,o=new G0(r),l=o.parse(i),c(),Um(r.complete)&&!n&&r.complete(l),n?{meta:{paused:!0}}:l},this.pause=function(){n=!0,o.abort(),i=i.substr(o.getCharIndex())},this.resume=function(){n=!1,o=new G0(r),o.parse(i),Um(r.complete)&&!n&&r.complete(l)},this.abort=function(){o.abort(),Um(r.complete)&&r.complete(l),i=""};function c(){return l&&a&&(C("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+Wo.DefaultDelimiter+"'"),a=!1),d()&&u(),h()}function d(){return r.header&&s.length==0}function u(){if(l){for(var S=0;d()&&S<l.data.length;S++)for(var k=0;k<l.data[S].length;k++)s.push(l.data[S][k]);l.data.splice(0,1)}}function h(){if(!l||!r.header&&!r.dynamicTyping)return l;for(var S=0;S<l.data.length;S++){for(var k={},I=0;I<l.data[S].length;I++){if(r.dynamicTyping){var M=l.data[S][I];M=="true"?l.data[S][I]=!0:M=="false"?l.data[S][I]=!1:l.data[S][I]=b(M)}r.header&&(I>=s.length?(k.__parsed_extra||(k.__parsed_extra=[]),k.__parsed_extra.push(l.data[S][I])):k[s[I]]=l.data[S][I])}r.header&&(l.data[S]=k,I>s.length?C("FieldMismatch","TooManyFields","Too many fields: expected "+s.length+" fields but parsed "+I,S):I<s.length&&C("FieldMismatch","TooFewFields","Too few fields: expected "+s.length+" fields but parsed "+I,S))}return r.header&&l.meta&&(l.meta.fields=s),l}function g(S){for(var k=[","," ","|",";",Wo.RECORD_SEP,Wo.UNIT_SEP],I,M,E,A=0;A<k.length;A++){var V=k[A],G=0,P=0;E=void 0;for(var O=new G0({delimiter:V,preview:10}).parse(S),R=0;R<O.data.length;R++){var q=O.data[R].length;if(P+=q,typeof E=="undefined"){E=q;continue}else q>1&&(G+=Math.abs(q-E),E=q)}P/=O.data.length,(typeof M=="undefined"||G<M)&&P>1.99&&(M=G,I=V)}return r.delimiter=I,{successful:!!I,bestDelimiter:I}}function b(S){var k=e.test(S);return k?parseFloat(S):S}function C(S,k,I,M){l.errors.push({type:S,code:k,message:I,row:M})}}function G0(r){var e=/^\s*$/,t,i,o,n,a,s,l,c,d,u,h,g,b,C,S,k=!1;r=r||{},i=r.delimiter,o=r.comments,n=r.step,s=r.preview,(typeof i!="string"||i.length!=1||Wo.BAD_DELIMITERS.indexOf(i)>-1)&&(i=","),o===!0?o="#":(typeof o!="string"||o.length!=1||Wo.BAD_DELIMITERS.indexOf(o)>-1||o==i)&&(o=!1),this.parse=function(j){if(typeof j!="string")throw"Input must be a string";return De(j),I()},this.abort=function(){k=!0},this.getCharIndex=function(){return c};function I(){for(;c<t.length&&!(k||s>0&&S>=s);)l=='"'?A():d?V():G(),M();return E()}function M(){c++,l=t[c]}function E(){if(k&&Q("Abort","ParseAbort","Parsing was aborted by the user's step function"),d&&Q("Quotes","MissingQuotes","Unescaped or mismatched quotes"),U(),!Um(n))return re()}function A(){_()&&!D()?d=!d:(R(),d&&D()?c++:Q("Quotes","UnexpectedQuotes","Unexpected quotes"))}function V(){(K(c)||v(c))&&u++,R()}function G(){l==i?q():K(c)?(J(),M()):v(c)?J():P()?O():R()}function P(){if(!o)return!1;var j=c==0||v(c-1)||K(c-2);return j&&t[c]===o}function O(){for(;!K(c)&&!v(c)&&c<t.length;)M()}function R(){h[b][C]+=l}function q(){h[b].push(""),C=h[b].length-1}function J(){U(),u++,S++,h.push([]),b=h.length-1,q()}function U(){z(),Um(n)&&(h[b]&&n(re()),se())}function z(){h[b].length==1&&e.test(h[b][0])&&(r.keepEmptyRows?h[b].splice(0,1):h.splice(b,1),b=h.length-1)}function K(j){return j<t.length-1&&(t[j]=="\r"&&t[j+1]==`
`||t[j]==`
`&&t[j+1]=="\r")}function v(j){return t[j]=="\r"||t[j]==`
`}function D(){return!_()&&c<t.length-1&&t[c+1]=='"'}function _(){return!d&&te(c-1)||te(c+1)}function te(j){typeof j!="number"&&(j=c);var X=t[j];return j<=-1||j>=t.length||X==i||X=="\r"||X==`
`}function Q(j,X,fe){g.push({type:j,code:X,message:fe,line:u,row:b,index:c})}function De(j){t=j,d=!1,c=0,S=0,u=1,se(),h=[[""]],l=t[c]}function se(){h=[],g=[],b=0,C=0}function re(){return{data:h,errors:g,meta:{lines:u,delimiter:i,aborted:k,truncated:s>0&&c<t.length}}}}function SJ(r){typeof r!="object"&&(r={});var e=g1(r);return(typeof e.delimiter!="string"||e.delimiter.length!=1||Wo.BAD_DELIMITERS.indexOf(e.delimiter)>-1)&&(e.delimiter=uc.delimiter),typeof e.header!="boolean"&&(e.header=uc.header),typeof e.dynamicTyping!="boolean"&&(e.dynamicTyping=uc.dynamicTyping),typeof e.preview!="number"&&(e.preview=uc.preview),typeof e.step!="function"&&(e.step=uc.step),typeof e.complete!="function"&&(e.complete=uc.complete),typeof e.error!="function"&&(e.error=uc.error),typeof e.encoding!="string"&&(e.encoding=uc.encoding),typeof e.download!="boolean"&&(e.download=uc.download),typeof e.keepEmptyRows!="boolean"&&(e.keepEmptyRows=uc.keepEmptyRows),e}function g1(r){if(typeof r!="object")return r;var e=r instanceof Array?[]:{};for(var t in r)e[t]=g1(r[t]);return e}function Um(r){return typeof r=="function"}var{parse:lK}=Wo;Fa();function m1(r){var e;if(typeof r=="number")e=r+"";else if(typeof r=="string")e=r;else return!1;return e.trim().match(/^-?[0-9]*\.?[0-9]*$/)}function cK(r){let e=r.split(/\r?\n/),t=[],i=!1;if(!(e.length<2)){for(let o=0;o<e.length;o++){let n=e[o];if(!n.trim())continue;o>0&&!m1(n.replace(/,(\d{3})/g,"$1"))&&(i=!0);let a={content:n};t.push(a)}if(!i){let o=__dcg_shared_module_exports__['xa'](t,"content").map(n=>n.replace(/,(\d{3})/g,"$1"));return m1(o[0])||(o=o.slice(1)),[{content:"\\left["+o.join(",")+"\\right]",numberList:!0}]}return t}}function dK(r){if(/^\s*$/.test(r))return;let e=lK(r,{preview:1e4}),t=e.data,i=[];if(e.errors.length&&!e.data.length){Mi("PapaParse.parse returned errors.",{metaData:{input:r,output:e.errors}});return}if(!(!e.data.length||e.data.length<2)){var o=t[0].length;for(let n=0;n<o;n++)i.push([]);for(let n=0;n<e.data.length;n++)if(!(n===0&&isNaN(parseFloat(t[n][0])))){if(t[n].length<2)return;if(!(!t[n][0]&&!t[n][1]))for(let a=0;a<o;a++){let s=(t[n][a]||"").replace(/,(\d{3})/g,"$1");if(s&&isNaN(parseFloat(s)))return;i[a].push(s)}}if(!(i[0].length<2))return i}}var Nn=__dcg_shared_module_exports__['e']($()),Tx=class extends Nn.Class{template(){return this.controller=this.props.controller(),Nn.createElement("div",{class:Nn.const("dcg-expressionitem dcg-new-expression dcg-opened")},Nn.createElement("div",{class:Nn.const("dcg-new-math-div dcg-do-not-blur dcg-action-newmath"),onTap:this.bindFn(this.newMath)},Nn.createElement("div",{class:Nn.const("dcg-new-expression-fade")})),Nn.createElement("span",{class:Nn.const("dcg-tab")},Nn.createElement("span",{class:Nn.const("dcg-num dcg-variable-index")},this.bindFn(this.getIndex)),Nn.createElement("div",{class:Nn.const("dcg-tab-interior")})))}getIndex(){return this.controller.getNextDisplayIndex()}newMath(){this.controller.dispatch({type:"new-expression-at-end"})}};var _e=__dcg_shared_module_exports__['e']($());kt();var{If:Ix}=_e.Components,Mx=class extends _e.Class{init(){this.controller=this.props.controller()}template(){return _e.createElement("div",{class:_e.const("dcg-add-expression-container")},_e.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-add-item-tooltip"),gravity:this.const("s")},_e.createElement("button",{class:()=>({"dcg-unstyled-button":!0,"dcg-icon-btn":!0,"dcg-add-expression-btn":!0,"dcg-action-add-expression":!0,"dcg-do-blur":!0,"dcg-active":this.controller.isAddExpressionOpen()}),handleEvent:_e.const("true"),"aria-haspopup":_e.const("true"),"aria-expanded":()=>this.controller.isAddExpressionOpen(),"aria-label":()=>this.controller.s("graphing-calculator-label-add-item-tooltip"),didMount:e=>{this.toggleButtonNode=e},onTap:this.bindFn(this.toggleAddExpression),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-item-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-plus"),"aria-hidden":_e.const("true")}))),_e.createElement(Ix,{predicate:()=>this.controller.isAddExpressionOpen()},()=>_e.createElement("div",{class:()=>({"dcg-add-expression-dropdown":!0,"dcg-popover":!0,"dcg-bottom":!this.controller.isNarrow(),"dcg-right":this.controller.isNarrow()}),role:_e.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-item-menu"),didMount:this.bindFn(this.didMountPopover),didUnmount:this.bindFn(this.didUnmountPopover)},_e.createElement("div",{class:_e.const("dcg-popover-interior")},_e.createElement("div",{class:_e.const("dcg-new-item dcg-do-not-blur dcg-action-newexpression"),role:_e.const("button"),tabindex:_e.const(0),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-expression"),onTap:this.bindFn(this.newExpression),handleEvent:_e.const("true"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-expression-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-new-expression dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-expression-lowercase")),_e.createElement(Ix,{predicate:()=>this.controller.areNotesEnabled()},()=>_e.createElement("div",{class:_e.const("dcg-new-item dcg-do-not-blur dcg-action-newtext"),role:_e.const("button"),tabindex:_e.const(0),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-note"),onTap:this.bindFn(this.newText),handleEvent:_e.const("true"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-note-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-new-text dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-note-lowercase"))),_e.createElement("div",{class:_e.const("dcg-new-item dcg-do-not-blur dcg-action-newtable"),role:_e.const("button"),tabindex:_e.const(0),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-table"),onTap:this.bindFn(this.newTable),handleEvent:_e.const("true"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-table-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-table dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-table-lowercase")),_e.createElement(Ix,{predicate:()=>this.controller.areFoldersEnabled()},()=>_e.createElement("div",{class:_e.const("dcg-new-item dcg-do-not-blur dcg-action-newfolder"),role:_e.const("button"),tabindex:_e.const(0),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-folder"),onTap:this.bindFn(this.newFolder),handleEvent:_e.const("true"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-folder-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-new-folder dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-folder-lowercase"))),_e.createElement(Ix,{predicate:()=>this.controller.areImagesEnabled()},()=>_e.createElement(ud,{controller:()=>this.controller,ariaLabel:()=>this.controller.s("graphing-calculator-narration-add-image"),onFileChange:e=>this.insertFiles(e),location:this.const({type:"add-image-btn"}),readonly:this.const(!1)},_e.createElement("div",{class:_e.const("dcg-new-item dcg-action-newimage")},_e.createElement("i",{class:_e.const("dcg-icon-new-image dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-image-lowercase")))),_e.createElement(Ix,{predicate:this.bindFn(this.showAddTicker)},()=>_e.createElement("div",{class:_e.const("dcg-new-item dcg-do-not-blur dcg-action-ticker"),role:_e.const("button"),tabindex:_e.const(0),"aria-label":()=>this.controller.s("graphing-calculator-narration-add-ticker"),onTap:this.bindFn(this.addTicker),handleEvent:_e.const("true"),manageFocus:this.const(Fe({controller:this.controller,location:{type:"add-ticker-btn"}}))},_e.createElement("i",{class:_e.const("dcg-icon-metronome dcg-expression-icon"),"aria-hidden":_e.const("true")}),()=>this.controller.s("graphing-calculator-label-ticker-lowercase")))),_e.createElement("span",{class:_e.const("dcg-arrow")}))))}showAddTicker(){return this.controller.areActionsEnabled()&&!this.controller.getTickerOpen()}didMountPopover(e){this.popoverNode=e,W(document).on("dcg-tapstart.add-expression-view wheel.add-expression-view",t=>{this.eventShouldClosePopover(t)&&this.controller.dispatch({type:"close-add-expression",focusIconAfterClose:t.device==="keyboard"})}),W(document).on("keydown.add-expression-view",t=>{if(ue(t)==="Esc"&&this.controller.dispatch({type:"close-add-expression",focusIconAfterClose:!0}),ue(t)==="Tab"&&!t.altKey&&!t.metaKey&&!t.ctrlKey){let i=this.controller.getFocusLocation();if(!i)return;let o;this.showAddTicker()?o={type:"add-ticker-btn"}:this.controller.areImagesEnabled()?o={type:"add-image-btn"}:this.controller.areFoldersEnabled()?o={type:"add-folder-btn"}:o={type:"add-table-btn"},!t.shiftKey&&i.type===o.type?(this.controller.dispatch({type:"set-focus-location",location:{type:"add-item-btn"}}),t.preventDefault(),t.stopPropagation()):t.shiftKey&&i.type==="add-item-btn"&&(this.controller.dispatch({type:"set-focus-location",location:o}),t.preventDefault(),t.stopPropagation())}}),La&&Lc&&W(e).on("dcg-tapstart",t=>t.preventDefault()),W(e.querySelector(".dcg-new-item")).on("touchstart",t=>t.preventDefault())}didUnmountPopover(){W(document).off(".add-expression-view")}toggleAddExpression(e){this.controller.dispatch({type:"toggle-add-expression",focusOnOpen:e.device==="keyboard"})}newExpression(){this.controller.dispatch({type:"new-expression"})}newText(){this.controller.dispatch({type:"new-text"})}newFolder(){this.controller.dispatch({type:"new-folder"})}addTicker(){this.controller.dispatch({type:"open-ticker"})}newTable(){this.controller.dispatch({type:"new-table"})}insertFiles(e){this.controller.dispatch({type:"new-images",files:e})}eventShouldClosePopover(e){let t=!!this.popoverNode.contains(e.target),i=!!this.toggleButtonNode.contains(e.target);return!(t||i)}};var et=__dcg_shared_module_exports__['e']($());var hc=__dcg_shared_module_exports__['e']($());var V0=class extends hc.Class{init(){this.controller=this.props.controller()}template(){return hc.createElement("button",{class:()=>({"dcg-unstyled-button":!0,"dcg-constructions-count-link":!0,"dcg-icon-btn":!0,"dcg-active":this.controller.getShowConstructionsOpen(),"dcg-do-not-blur":!0}),handleEvent:hc.const("true"),"aria-expanded":()=>this.controller.getShowConstructionsOpen(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"geo-show-constructions-icon"}})),onTap:this.bindFn(this.showAllConstructions)},hc.createElement("i",{class:hc.const("dcg-icon-geometry"),"aria-label":()=>this.controller.s("graphing-calculator-narration-geometry-construction-icon-label")}),hc.createElement("span",{class:hc.const("dcg-construction-count")},()=>this.controller.getGeometryTokenCount()))}showAllConstructions(){this.controller.dispatch({type:"set-show-constructions-open",open:!this.controller.getShowConstructionsOpen(),setFocus:!1})}};var la=__dcg_shared_module_exports__['e']($());var qm=class extends la.Class{init(){this.controller=this.props.controller()}template(){return la.createElement("div",{class:()=>({"dcg-btn-flat-gray":this.props.isPillbox(),"dcg-btn-flat-gray-group":this.props.isPillbox(),"dcg-group-horizontal":this.props.isPillbox()})},la.createElement(Ce,{tooltip:()=>this.controller.getshowKeyboardShortcutsInTooltips()?this.controller.s("graphing-calculator-label-undo-with-shortcut-tooltip"):this.controller.s("graphing-calculator-label-undo-tooltip"),gravity:this.const("s"),disabled:()=>!this.controller.canUndo(),displayBlock:this.props.isPillbox},la.createElement("button",{class:()=>({"dcg-unstyled-button":!0,"dcg-action-undo":!0,"dcg-icon-btn":!0,"dcg-pillbox-btn-interior":this.props.isPillbox(),"dcg-disabled":!this.controller.canUndo()}),tabindex:()=>this.controller.canUndo()?0:-1,"aria-label":()=>this.controller.s("graphing-calculator-narration-undo"),onTap:this.bindFn(this.undo),"aria-disabled":()=>!this.controller.canUndo()},la.createElement("i",{class:la.const("dcg-icon-undo"),"aria-hidden":la.const("true")}))),la.createElement(Ce,{tooltip:()=>this.controller.getshowKeyboardShortcutsInTooltips()?this.controller.s("graphing-calculator-label-redo-with-shortcut-tooltip"):this.controller.s("graphing-calculator-label-redo-tooltip"),gravity:this.const("s"),disabled:()=>!this.controller.canRedo(),displayBlock:this.props.isPillbox},la.createElement("button",{class:()=>({"dcg-unstyled-button":!0,"dcg-action-redo":!0,"dcg-icon-btn":!0,"dcg-pillbox-btn-interior":this.props.isPillbox(),"dcg-disabled":!this.controller.canRedo()}),tabindex:()=>this.controller.canRedo()?0:-1,"aria-label":()=>this.controller.s("graphing-calculator-narration-redo"),onTap:()=>this.controller.dispatch({type:"redo"}),"aria-disabled":()=>!this.controller.canRedo()},la.createElement("i",{class:la.const("dcg-icon-redo"),"aria-hidden":la.const("true")}))))}undo(){this.controller.hasVisibleAndUndoableToast()?this.controller.toastUndo():this.controller.dispatch({type:"undo"})}};var gc=__dcg_shared_module_exports__['e']($());kt();var P0=class extends gc.Class{init(){this.controller=this.props.controller()}toggleMuted(){var e;(e=this.controller.toneController)!=null&&e.isGlobalMuted()?this.controller.dispatch({type:"unmute-global"}):this.controller.dispatch({type:"mute-global"})}getMutedState(){return!this.controller.toneController||this.controller.toneController.isGlobalMuted()?"muted":"playing"}getAriaLabel(){switch(this.getMutedState()){case"playing":return this.controller.s("graphing-calculator-narration-mute-all");case"muted":return this.controller.s("graphing-calculator-narration-unmute-all")}}template(){return gc.createElement(Ce,{gravity:this.const("s"),tooltip:this.bindFn(this.getAriaLabel)},gc.createElement("button",{class:()=>{var e;return{"dcg-global-mute-button":!0,"dcg-unstyled-button":!0,"dcg-icon-btn":!0,"dcg-is-muted":this.getMutedState()==="muted","dcg-has-never-interacted":!((e=this.controller.toneController)!=null&&e.getHasEverInteractedWithMute())}},didMount:e=>W(e).on("tipsyshow",()=>{var t;(t=this.controller.toneController)==null||t.registerMuteInteraction(),this.update()}),onTap:()=>this.toggleMuted(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"global-mute-button"}})),"aria-label":this.bindFn(this.getAriaLabel)},gc.createElement("span",{class:gc.const("dcg-first-time-animation")}),gc.createElement("i",{class:gc.const("dcg-icon-volume")})))}};var{If:mc}=et.Components,Ax=class extends et.Class{init(){this.controller=this.props.controller()}template(){return et.createElement("div",{class:()=>({"dcg-expression-top-bar":!0,"dcg-expressions-scrolled":this.showShadow()}),role:et.const("toolbar"),"aria-label":()=>this.controller.s("graphing-calculator-narration-expression-bar"),didMount:e=>{this.node=e},onTapStart:this.bindFn(this.clearSelectionOnMobile)},et.createElement(mc,{predicate:this.bindFn(this.showHamburger)},()=>et.createElement("button",{class:et.const("dcg-unstyled-button dcg-action-opendrawer dcg-tooltip dcg-icon-btn dcg-in-api-action-opendrawer"),handleEvent:et.const("true"),tooltip:()=>this.controller.getshowKeyboardShortcutsInTooltips()?this.controller.s("graphing-calculator-label-open-graph-with-shortcut-tooltip"):this.controller.s("graphing-calculator-label-open-graph-tooltip"),"aria-label":()=>this.controller.s("graphing-calculator-narration-open-graph"),onTap:()=>this.controller.dispatch({type:"open-drawer"})},et.createElement("i",{class:et.const("dcg-icon-hamburger"),"aria-hidden":et.const("true")}))),et.createElement(mc,{predicate:()=>!this.controller.isInEditListMode()},()=>et.createElement(Mx,{controller:()=>this.props.controller()})),et.createElement(mc,{predicate:()=>this.controller.isGeoUIActive()&&!this.controller.isInEditListMode()},()=>et.createElement(V0,{controller:this.props.controller})),et.createElement(mc,{predicate:this.bindFn(this.showMuteButton)},()=>et.createElement(P0,{controller:this.props.controller})),et.createElement(mc,{predicate:this.bindFn(this.showRerandomize)},()=>et.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-randomize-tooltip"),gravity:this.const("s")},et.createElement("button",{class:et.const("dcg-unstyled-button dcg-icon-btn"),handleEvent:et.const("true"),"aria-label":()=>this.controller.s("graphing-calculator-label-randomize-tooltip"),onTap:()=>this.controller.dispatch({type:"re-randomize"})},et.createElement("i",{class:et.const("dcg-icon-randomize"),"aria-hidden":et.const("true")})))),et.createElement(mc,{predicate:()=>this.controller.isInEditListMode()&&!this.controller.hasDefaultState()},()=>et.createElement("button",{class:et.const("dcg-btn-red dcg-action-clearall"),onTap:()=>this.controller.dispatch({type:"clear-graph"})},()=>this.controller.s("graphing-calculator-button-clear-graph"))),et.createElement(mc,{predicate:()=>this.controller.isInEditListMode()&&this.controller.hasDefaultState()},()=>et.createElement("button",{class:et.const("dcg-btn-red dcg-action-reset"),onTap:()=>this.controller.dispatch({type:"reset-graph"})},()=>this.controller.s("graphing-calculator-button-reset-graph"))),et.createElement("div",{class:et.const("dcg-center-buttons")},et.createElement(qm,{...this.props,isPillbox:this.const(!1)})),et.createElement(mc,{predicate:()=>!this.controller.isInEditListMode()},()=>et.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-edit-list-tooltip"),gravity:this.const("s")},et.createElement("button",{class:et.const("dcg-unstyled-button dcg-icon-btn dcg-action-toggle-edit"),handleEvent:et.const("true"),"aria-label":()=>this.controller.s("graphing-calculator-narration-edit-expression-list"),onTap:this.bindFn(this.toggleEditListMode),manageFocus:this.const(Fe({controller:this.controller,location:{type:"edit-list-toggle"}}))},et.createElement("i",{class:et.const("dcg-icon-settings"),"aria-hidden":et.const("true")})))),et.createElement(mc,{predicate:()=>this.controller.isInEditListMode()},()=>et.createElement("button",{class:et.const("dcg-btn-primary dcg-action-toggle-edit dcg-do-not-blur"),handleEvent:et.const("true"),onTap:this.bindFn(this.toggleEditListMode),manageFocus:this.const(Fe({controller:this.controller,location:{type:"edit-list-toggle"}}))},()=>this.controller.s("graphing-calculator-button-done"))),et.createElement(mc,{predicate:()=>!this.controller.isInEditListMode()&&this.controller.getGraphSettings().config.graphpaper},()=>et.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-hide-expression-list-tooltip"),gravity:this.const("s")},et.const(" "),et.createElement("button",{class:()=>({"dcg-unstyled-button":!0,"dcg-resize-list-btn":!0,"dcg-action-hideexpressions":!0,"dcg-icon-btn":!0,"dcg-rotated":this.controller.isNarrow()}),"aria-label":()=>this.controller.s("graphing-calculator-label-hide-expression-list-tooltip"),onTap:e=>{this.controller.dispatch({type:"hide-expressions-list",focusShowIcon:e.device==="keyboard"})},manageFocus:this.const(Fe({controller:this.controller,location:{type:"hide-expression-list-btn"}}))},et.createElement("i",{class:et.const("dcg-icon-hide"),"aria-hidden":et.const("true")})))))}showShadow(){return this.controller.getTickerOpen()||this.controller.getExpressionSearchOpen()?!1:this.props.expsScrolled()}showRerandomize(){return this.controller.isInEditListMode()?!1:this.controller.anyItemDependsOnRandomSeed()}showHamburger(){return!this.controller.getGraphSettings().config.showHamburger||this.controller.isInEditListMode()?!1:!this.controller.isNarrow()}clearSelectionOnMobile(e){e.wasHandled()||this.controller.dispatch({type:"set-none-selected"})}toggleEditListMode(e){this.controller.dispatch({type:"set-edit-list-mode",isEditListMode:!this.controller.isInEditListMode(),focusExpressionList:!1}),e.device==="keyboard"&&this.controller.dispatch({type:"set-focus-location",location:{type:"edit-list-toggle"}})}showMuteButton(){return this.controller.isInEditListMode()?!1:this.controller.toneItemsExist()}};function pK(r){let e=__dcg_shared_module_exports__['i'](nl(r));return e.graph.product="geometry-calculator",e}async function L0(r,e,t){let i=!1;r.dispatch({type:"toast/show",toast:{message:r.s("graphing-calculator-text-toast-importing-graph"),hideAfter:0,toastStyle:"cover",onHide:()=>{i=!0}}});let o=()=>{i||r.dispatch({type:"toast/show",toast:{message:r.s("graphing-calculator-text-toast-error-importing-graph"),toastStyle:"error",hideAfter:12e3}})},n=()=>{r.dispatch({type:"toast/show",toast:{message:r.s("graphing-calculator-text-toast-error-no-folders"),toastStyle:"error",hideAfter:12e3}})},a=(l,c)=>{r.dispatch({type:"set-state",state:l}),r.dispatch({type:"toast/show",toast:{message:r.s("graphing-calculator-text-toast-imported-graph"),undoCallback:()=>{r.dispatch({type:"set-state",state:c})}}})},s=(l,c,d)=>{if(i)return;let u=r.getSelectedItem();if(!u)return;let h=u.type==="folder",g=u.type!=="folder"&&!!u.folderId,b=h||g,C={},S=r.getState(),k=S.expressions.list;if(k.length===1&&!h&&!r.isGeometry()){a(l,S);return}if(r.isGeometry()&&d!=="graphing"){a(l,S);return}let I=l.expressions.list;d==="graphing"&&Array.isArray(I)&&(I=I.filter(G=>G.id!==__dcg_shared_module_exports__['Rc']));for(let G=0;G<I.length;G++){let P=r.generateId(),O=I[G];if(O.type==="folder")if(b){n();return}else{C[O.id]=P,O.id=P;continue}O.folderId?O.folderId=C[O.folderId]:h?O.folderId=u.id:g&&(O.folderId=u.folderId),O.id=P}let M=__dcg_shared_module_exports__['i'](S),E=0;for(;E<k.length;){if(k[E].id===u.id){h&&(k[E].title=c);break}E+=1}let A=h?E+1:E,V=h?0:1;k.splice(A,V,...I),a(S,M)};try{let l=await fetch(`${e}?${new URLSearchParams(QC)}`,{headers:{Accept:"application/json"}});if(!l.ok)throw void 0;let c=await l.json(),d=c.state,u=fz(e);r.isGeometry()&&(u==="geometry"?d=Ou(d):u==="graphing"&&(d=pK(d))),d=nl(d),t(d,(h,g)=>{h||!g||!u?o():s(g,c.title||"",u)})}catch(l){o()}}function uK(r){if(window.clipboardData&&window.clipboardData.getData)return window.clipboardData.getData("Text");if(r&&r.clipboardData&&r.clipboardData.getData)return r.clipboardData.getData("text/plain")}var hd=__dcg_shared_module_exports__['e']($());kt();var{If:DJ}=hd.Components,O0=class extends hd.Class{init(){this.guid=__dcg_shared_module_exports__['Ua']("dcg-exp-list-resize")}template(){return hd.createElement(DJ,{predicate:this.bindFn(this.isVisible)},()=>hd.createElement("div",{class:hd.const("dcg-exp-list-resizer"),onTapStart:this.bindFn(this.onTapStart)}))}isVisible(){return this.props.controller().expressionsAreFullWidth()?!1:this.props.controller().isListVisible()}onTapStart(e){this.initialWidth=this.props.controller().getExpListWidth(),this.initialLeft=e.changedTouches[0].clientX,W(document).on(`dcg-tapmove.${this.guid}`,t=>{if(this.initialLeft===void 0||this.initialWidth===void 0)return;let i=t.changedTouches[0].clientX-this.initialLeft+this.initialWidth;this.props.controller().dispatch({type:"resize-exp-list",expListWidth:i})}),W(document).on(`dcg-tapend.${this.guid}`,this.bindFn(this.onTapEnd)),W(document).on(`dcg-tapcancel.${this.guid}`,this.bindFn(this.onTapEnd))}onTapEnd(){W(document).off(`.${this.guid}`),this.initialLeft=void 0,this.initialWidth=void 0}};var It=__dcg_shared_module_exports__['e']($());var{If:Gx}=It.Components,_0=class extends It.Class{constructor(){super(...arguments),this.justGlobalReplaced=!1}init(){this.controller=this.props.controller()}template(){return It.createElement("div",{class:()=>({"dcg-expression-search-bar":!0,"dcg-expressions-scrolled":this.props.expsScrolled()&&!this.controller.getTickerOpen()}),role:It.const("search")},It.createElement("div",{class:It.const("dcg-search-row")},It.createElement("div",{class:It.const("dcg-search-mathquill-container")},It.createElement(ve,{hasError:this.const(!1),getAriaLabel:()=>this.controller.s("graphing-calculator-label-search-expressions"),getAriaPostLabel:()=>this.controller.getExpressionSearchStr().length===0?this.controller.raw(""):this.shouldShowReplaceError()?this.controller.s("graphing-calculator-error-expression-replacement"):this.shouldShowSearchError()?this.controller.s("graphing-calculator-error-expression-search"):this.controller.s("shared-calculator-text-search-results",{count:__dcg_shared_module_exports__['jb'](this.controller.getExpressionSearchCount())}),capExpressionSize:this.const(!1),onUserChangedLatex:this.bindFn(this.onSearchChange),latex:()=>this.controller.getRawExpressionSearchStr(),isFocused:this.bindFn(this.isSearchFocused),config:this.bindFn(this.getMQConfig),onFocusedChanged:this.bindFn(this.onSearchFocusChanged),noFadeout:this.const(!0),onUserPressedKey:(e,t)=>{if(e==="Esc")t&&t.preventDefault(),this.closeSearch();else if(e==="Enter")t&&t.preventDefault(),this.onEnter();else if(e==="Down"){let o=ve.getFocusedMathquill();return!o||!ve.applyArrowKeyAndReturnIfWasAtBounds(o,e,t)?void 0:this.controller.dispatch({type:"on-special-key-pressed",key:e})}else{var i=ve.getFocusedMathquill();if(!i)return;i.keystroke(e,t),this.controller.getRawExpressionSearchStr()!==i.latex()&&(this.justGlobalReplaced=!1,this.onSearchChange(i.latex()))}}}),It.createElement("i",{class:It.const("dcg-icon-search"),"aria-hidden":It.const("true")}),It.createElement(Gx,{predicate:()=>this.controller.getRawExpressionSearchStr().length===0},()=>It.createElement("span",{class:It.const("dcg-search-placeholder")},()=>this.controller.s("graphing-calculator-label-search-expressions"))),It.createElement(Gx,{predicate:()=>this.shouldShowSearchError()},()=>It.createElement("span",{class:It.const("dcg-search-replace-icon-container")},It.createElement(Bo,{error:()=>this.controller.s("graphing-calculator-error-expression-search"),gravity:this.const("s"),size:this.const("small")}))),It.createElement(Gx,{predicate:()=>this.controller.isSearchReplaceValid()&&!this.justGlobalReplaced},()=>It.createElement("span",{class:It.const("dcg-search-replace-icon-container")},It.createElement("i",{class:It.const("dcg-icon-replace"),role:It.const("button"),tabindex:It.const("0"),"aria-label":()=>this.controller.s("graphing-calculator-button-replace"),onTap:this.bindFn(this.onGlobalReplace)}))),It.createElement(Gx,{predicate:()=>this.justGlobalReplaced},()=>It.createElement("span",{class:It.const("dcg-search-replace-icon-container")},It.createElement("i",{class:It.const("dcg-icon-check"),"aria-hidden":It.const("true")}))),It.createElement(Gx,{predicate:()=>this.shouldShowReplaceError()},()=>It.createElement("span",{class:It.const("dcg-search-replace-icon-container")},It.createElement(Bo,{error:()=>this.controller.s("graphing-calculator-error-expression-replacement"),gravity:this.const("s"),size:this.const("small")})))),It.createElement("i",{onTap:()=>this.closeSearch(),tabindex:It.const("0"),"aria-label":()=>this.controller.s("account-shell-button-cancel"),role:It.const("button"),class:It.const("dcg-icon-remove dcg-do-not-blur")})))}onGlobalReplace(){this.justGlobalReplaced=!0,setTimeout(this.bindIfMounted(()=>{this.justGlobalReplaced=!1,this.update()}),1500),this.controller.dispatch({type:"rename-identifier-global",search:this.controller.getExpressionSearchStr(),replace:this.controller.getExpressionReplaceStr()})}onEnter(){this.controller.isSearchReplaceValid()?this.onGlobalReplace():this.controller.dispatch({type:"update-expression-search-str",str:this.controller.getRawExpressionSearchStr()})}shouldShowSearchError(){return!this.controller.getIsExpressionSearchStrValidForReplace()&&this.controller.getExpressionReplaceStr().length>0}shouldShowReplaceError(){return!this.shouldShowSearchError()&&!this.controller.getIsExpressionReplaceStrValidForReplace()&&this.controller.getExpressionReplaceStr().length>0}closeSearch(){this.controller.dispatch({type:"close-expression-search"})}onSearchChange(e){this.controller.dispatch({type:"update-expression-search-str",str:e})}onSearchFocusChanged(e){e?this.controller.dispatch({type:"set-focus-location",location:{type:"search-expressions"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"search-expressions"}})}isSearchFocused(){let e=this.controller.getFocusLocation();return!!e&&e.type==="search-expressions"}onReplaceChange(e){this.controller.dispatch({type:"update-expression-replace-str",str:e})}onReplaceFocusChanged(e){e?this.controller.dispatch({type:"set-focus-location",location:{type:"replace-expressions"}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"replace-expressions"}})}isReplaceFocused(){let e=this.controller.getFocusLocation();return!!e&&e.type==="replace-expressions"}getMQConfig(){return this.controller.getMathquillConfig({additionalOperators:["label","rename","image"]})}};var Ct=__dcg_shared_module_exports__['e']($());var{If:hK,IfDefined:kJ}=Ct.Components,F0=class extends Ct.Class{init(){this.controller=this.props.controller()}template(){return Ct.createElement("div",{class:()=>({"dcg-ticker":!0,"dcg-expressions-scrolled":this.props.expsScrolled()})},Ct.createElement("div",{class:Ct.const("dcg-ticker-settings-container")},Ct.createElement("div",{class:Ct.const("dcg-ticker-settings-internal")},Ct.createElement("div",{class:Ct.const("dcg-editable-mathquill-container dcg-action-definition")},Ct.createElement("span",{class:Ct.const("dcg-ticker-label")},()=>this.controller.raw("Run")),Ct.createElement(ve,{hasError:()=>!!this.getHandlerErrorString(),getAriaPostLabel:()=>{let e=this.getHandlerErrorString();return e?this.controller.unpack(e):""},capExpressionSize:this.const(!1),onUserChangedLatex:e=>this.dispatchHandlerLatexIfChanged(e),latex:()=>this.getHandlerLatex(),getAriaLabel:()=>this.controller.s("graphing-calculator-narration-tick-action"),isFocused:()=>this.getFocusedInput()==="handler",config:()=>this.getMQConfig(),onFocusedChanged:e=>this.handleFocusedChanged("handler",e),selectOnFocus:this.const(!0),noFadeout:this.const(!0),onUserPressedKey:(e,t)=>{this.handlePressedKey("handler",e,t)}}),kJ(()=>this.getHandlerErrorString(),e=>Ct.createElement("span",{class:Ct.const("dcg-clickable-info-error-container")},Ct.createElement(Bo,{error:()=>this.controller.unpack(e()),gravity:this.const("s"),size:this.const("small")})))),Ct.createElement("div",{class:Ct.const("dcg-editable-mathquill-container dcg-action-frequency")},Ct.createElement("span",{class:Ct.const("dcg-ticker-label")},()=>this.controller.raw("every")),Ct.createElement(ve,{hasError:()=>!!this.getMinStepErrorString(),getAriaPostLabel:()=>{let e=this.getMinStepErrorString();return e?this.controller.unpack(e):""},capExpressionSize:this.const(!1),onUserChangedLatex:e=>this.dispatchMinStepLatexIfChanged(e),latex:()=>this.getMinStepLatex(),getAriaLabel:()=>this.controller.s("graphing-calculator-label-ticker-min-step"),isFocused:()=>this.getFocusedInput()==="minstep",config:this.bindFn(this.getMQConfig),onFocusedChanged:e=>this.handleFocusedChanged("minstep",e),selectOnFocus:this.const(!0),placeholder:this.const("0"),noFadeout:this.const(!0),onUserPressedKey:(e,t)=>{this.handlePressedKey("minstep",e,t)}}),()=>this.controller.raw("ms"),Ct.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-ticker-help-tooltip"),gravity:this.const("s")},Ct.createElement("a",{"aria-label":()=>this.controller.s("graphing-calculator-label-ticker-help-tooltip"),class:Ct.const("dcg-ticker-toggle-help"),target:Ct.const("_blank"),href:Ct.const("https://help.desmos.com/hc/en-us/articles/4407725009165#h_01FB2RZQRYM62C3EB94H2TRRAX")},Ct.createElement("i",{class:Ct.const("dcg-icon-question-sign"),"aria-hidden":Ct.const("true")})))),Ct.createElement(hK,{predicate:this.bindFn(this.shouldShowSliderPrompt)},()=>Ct.createElement(hl,{model:()=>this.props.controller().getTicker(),controller:this.props.controller}))),Ct.createElement("div",{class:()=>({"dcg-circular-icon-container":!0,"dcg-disabled":this.iconDisabled()}),"aria-label":this.bindFn(this.getIconAriaLabel),role:Ct.const("button"),tabindex:()=>this.iconDisabled()?-1:0,"aria-disabled":this.bindFn(this.iconDisabled),"aria-pressed":()=>this.controller.getTickerPlaying()&&!this.iconDisabled(),onTap:this.bindFn(this.toggleTicker),onTapStart:()=>{Pr()}},Ct.createElement(Pi,{iconType:this.const("metronome")}),Ct.createElement("div",{class:()=>({"dcg-metronome-bar":!0,"dcg-metronome-playing":this.controller.getTickerPlaying()&&!this.iconDisabled()})}),Ct.createElement(hK,{predicate:()=>!this.iconDisabled()},()=>Ct.createElement("div",{class:Ct.const("dcg-mini-play-pause")},Ct.createElement(Pi,{iconType:this.bindFn(this.getPlayIcon)}))))),Ct.createElement("i",{onTap:this.bindFn(this.closeTicker),tabindex:()=>this.controller.isInEditListMode()?0:-1,"aria-label":()=>this.controller.s("graphing-calculator-label-ticker-close"),role:Ct.const("link"),class:Ct.const("dcg-icon-remove dcg-do-not-blur")}))}iconDisabled(){return!!(this.getMinStepErrorString()||this.getHandlerErrorString()||!this.isHandlerMaybeValid())}isHandlerMaybeValid(){var t;return((t=this.controller.getTicker().formula)==null?void 0:t.handler.status)==="maybe-valid"}closeTicker(){this.controller.dispatch({type:"close-ticker"})}toggleTicker(){this.iconDisabled()||this.controller.dispatch({type:"toggle-ticker"})}getPlayIcon(){return this.controller.getTickerPlaying()?"pause":"play"}getIconAriaLabel(){return this.controller.getTickerPlaying()?this.controller.s("graphing-calculator-label-ticker-pause"):this.controller.s("graphing-calculator-label-ticker-play")}getFocusedInput(){let e=this.controller.getFocusLocation();if(!(!e||e.type!=="ticker"))return e.location}handlePressedKey(e,t,i){let o=ve.getFocusedMathquill();if(o){if(t==="Enter"&&this.shouldShowSliderPrompt()&&this.controller.dispatch({type:"create-sliders-for-ticker",variables:eb(this.props.controller().getTicker())}),t==="Esc"&&this.controller.getExpressionSearchOpen()&&this.controller.dispatch({type:"close-expression-search"}),t==="Right"&&e==="handler"||t==="Left"&&e==="minstep"||t==="Down"||t==="Up"){var n=ve.applyArrowKeyAndReturnIfWasAtBounds(o,t,i);if(!n)return;if(t==="Down"||t==="Up")return this.controller.dispatch({type:"on-special-key-pressed",key:t});if(t==="Right"){this.handleFocusedChanged("minstep",!0);return}else if(t==="Left"){this.handleFocusedChanged("handler",!0);return}}o.keystroke(t,i),e==="handler"?this.dispatchHandlerLatexIfChanged(o.latex()):e==="minstep"&&this.dispatchMinStepLatexIfChanged(o.latex())}}handleFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"ticker",location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"ticker",location:e}})}dispatchHandlerLatexIfChanged(e){this.getHandlerLatex()!==e&&this.controller.dispatch({type:"update-ticker-handlerlatex",latex:e})}dispatchMinStepLatexIfChanged(e){this.getMinStepLatex()!==e&&this.controller.dispatch({type:"update-ticker-minsteplatex",latex:e})}getHandlerLatex(){return this.controller.getTickerHandlerLatex()}getMinStepLatex(){return this.controller.getTickerMinStepLatex()}getMQConfig(){return this.controller.getMathquillConfig({additionalOperators:["dt"]})}getHandlerErrorString(){return this.getHandlerLatex()?iO(this.controller.getTicker()):void 0}getMinStepErrorString(){return oO(this.controller.getTicker())}shouldShowSliderPrompt(){return this.controller.areSlidersEnabled()?eb(this.controller.getTicker()).length>0:!1}};var Eo=__dcg_shared_module_exports__['e']($());var{For:gK,If:TJ}=Eo.Components,R0=class extends Eo.Class{init(){this.controller=this.props.controller(),this.currentlyInspectedDepth=1/0,this.cachedTokenDepths={depths:{},isInvalid:!1},this.updateCachedTokenDepthInfo()}willUpdate(){this.updateCachedTokenDepthInfo()}updateCachedTokenDepthInfo(){let e="",t=!1,i=this.controller.getFocusLocation();if(i&&i.type==="expression"){let n=this.controller.getFocusedItem();(n==null?void 0:n.type)==="expression"&&(e=n.id,t=!!n.error&&n.latex!==""||!!n.formula.variables.length)}if(this.cachedTokenDepths.focusedExpressionBeforeError==e&&t){this.cachedTokenDepths.isInvalid=!0;return}this.cachedTokenDepths={depths:this.controller.cachedGeoTokenDepths,isInvalid:!1,focusedExpressionBeforeError:t?void 0:e}}template(){return Eo.createElement("div",{class:()=>({"dcg-geo-show-constructions-pane":!0,"dcg-transient-error":this.cachedTokenDepths.isInvalid,"dcg-cant-drag-item":!!this.controller.getDraggedItemId()&&!this.controller.canDraggedItemBeMovedIntoTokenPane()}),"aria-label":()=>this.controller.s("graphing-calculator-narration-geometry-token-navigator-label"),role:Eo.const("region"),didUnmount:()=>this.lastFocusedIdentifier=void 0,onKeydown:this.bindFn(this.handleKeydown)},Eo.createElement(TJ,{predicate:()=>this.controller.getGeometryTokenCount()===0},()=>Eo.createElement("div",{class:Eo.const("dcg-empty-constructions")},()=>this.controller.s("graphing-calculator-text-geometry-no-constructed-objects"))),Eo.createElement(gK,{each:this.bindFn(this.getObjectDepths)},Eo.createElement("div",{class:Eo.const("dcg-displayed-sections-container")},e=>Eo.createElement("div",{class:()=>({"dcg-displayed-section-level":!0,"dcg-selected-level":parseInt(e)===this.getCurrentlyInspectedDepth(),"dcg-below-the-line":parseInt(e)>this.getCurrentlyInspectedDepth()})},Eo.createElement(gK,{each:()=>this.getTokensForDepth(e),key:(t,i)=>i},Eo.createElement("span",{role:Eo.const("listbox"),"aria-label":()=>this.controller.s("graphing-calculator-narration-geometry-token-navigator-depth",{depth:e})},(t,i)=>Eo.createElement("span",{class:()=>({"dcg-token-being-dragged-container":this.isTokenBeingDragged(e,i)}),onTapStart:o=>{let n=this.getCalcIdForDepth(e,i),a=this.controller.getItemModel(n);!a||a.type!=="expression"||this.controller.isItemInGeoFolder(a.id)&&this.props.onDragPending(o,{type:"token",calcId:n,originalIndex:a.index})}},Eo.createElement(Xl,{showParentChildrenHover:this.const(!0),controller:this.props.controller,identifier:()=>this.getIdentifierForDepth(e,i),insideMQ:this.const(!1),insideGroup:this.const(!0),focusLocation:()=>({type:"geo-token",identifier:this.getIdentifierForDepth(e,i)}),putInTabOrder:()=>{if(this.lastFocusedIdentifier===void 0){let o=this.getObjectDepths();this.lastFocusedIdentifier=this.getIdentifierForDepth(o[0],0)}return this.lastFocusedIdentifier===this.getIdentifierForDepth(e,i)}}))))))))}isTokenBeingDragged(e,t){let i=this.controller.getDraggedItemId();if(!i)return!1;if(this.controller.isItemInGeoFolder(i))return i==this.getCalcIdForDepth(e,t)}getCurrentlyInspectedDepth(){return Math.min(this.currentlyInspectedDepth,this.getObjectDepths().length-1)}getIdentifierForDepth(e,t){var i=this.getTokensForDepth(e)[t];return i?i.identifier:""}getCalcIdForDepth(e,t){var i=this.getTokensForDepth(e)[t];return i?i.calcId:""}getTokensForDepth(e){let{depths:t}=this.cachedTokenDepths;var i=t[e];return i?i.filter(o=>{let{calcId:n}=o,a=this.controller.getItemModel(n);return!this.controller.isGeoItemReadonlyOrInert(a)}):[]}getObjectDepths(){let e=Object.keys(this.cachedTokenDepths.depths);return e.sort((t,i)=>{let o=parseInt(t),n=parseInt(i);return isFinite(o)?isFinite(n)?o-n:1:-1}),e}selectItemIfNecessary(){if(this.controller.hasAnyItemsSelected())return;let e=this.controller.getFocusLocation();if((e==null?void 0:e.type)!=="geo-token")return;let{calcId:t}=this.controller.cachedGeoTokenInfo[e.identifier];!t||!this.controller.getItemModel(t)||this.controller.dispatch({type:"set-selected-id",id:t})}handleKeydown(e){let t=this.controller.getFocusLocation(),i=ue(e),o=Ai(e);if(e.ctrlKey&&e.shiftKey&&!e.altKey&&!e.metaKey&&o==="O"){e.preventDefault(),e.stopPropagation(),this.selectItemIfNecessary(),this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"multi-select-more",guid:_u(),focusFirstOption:!0,previousFocusLocation:t}});return}if(e.altKey&&!e.ctrlKey&&!e.metaKey&&e.shiftKey&&o==="T"){if(e.preventDefault(),e.stopPropagation(),(t==null?void 0:t.type)!=="geo-token")return;let{calcId:h}=this.controller.cachedGeoTokenInfo[t.identifier];if(!h)return;let g=this.controller.getItemModel(h);if(!hs(g))return;this.controller.convertToNamedAssignment(g),Po(g,""),this.controller.dispatch({type:"set-none-selected"}),this.controller.dispatch({type:"set-focus-location",location:{type:"expression",id:g.id}});return}if(e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;if(i==="Esc"){e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"set-show-constructions-open",open:!1,setFocus:!0});return}if(i!=="Up"&&i!=="Down"&&i!=="Left"&&i!=="Right")return;e.preventDefault(),e.stopPropagation();let n=this.getObjectDepths();if(n.length===0)return;let a="";if(t&&t.type==="geo-token")a=t.identifier;else{let h=this.getTokensForDepth(n[0])[0];if(!h)return;a=h.identifier}if(a==="")return;let s,l=-1,c=[];for(s=0;s<n.length;s++){let h=n[s];if(c=this.getTokensForDepth(h),!!c&&(l=__dcg_shared_module_exports__['Ga'](c,{identifier:a}),l!==-1))break}if(s===-1||l===-1)return;i==="Up"?s=Math.max(s-1,0):i==="Down"?s=Math.min(s+1,n.length-1):i==="Left"?l=Math.max(l-1,0):i==="Right"&&(l=Math.min(l+1,c.length-1));let d=this.getTokensForDepth(n[s]);if(!d)return;l=Math.min(l,d.length-1);let u=d[l].identifier;this.controller.dispatch({type:"set-focus-location",location:{type:"geo-token",identifier:u}}),this.lastFocusedIdentifier=u}};var Fi=__dcg_shared_module_exports__['e']($());var mK=__dcg_shared_module_exports__['e']($());var _i=class extends mK.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}getFocusedInput(){let e=this.controller.getFocusLocation(),t=this.model.type==="table-column"?this.model.table.id:this.id;if(!(!e||e.type!=="expression-menu"||e.id!==t))return e.location}handleFocusedChanged(e,t){let i=this.model.type==="table-column"?this.model.table.id:this.id;e?this.controller.dispatch({type:"set-focus-location",location:{type:"expression-menu",id:i,location:t}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"expression-menu",id:i,location:t}})}onColorSelected(e){this.model.type!=="image"&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-color",id:this.id,color:e}):this.controller.dispatch({type:"set-tablecolumn-color",color:e,tableId:this.model.table.id,columnId:this.id}))}onCustomColorSelected(e){this.model.type!=="image"&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-colorlatex",id:this.id,colorLatex:e}):this.controller.dispatch({type:"set-tablecolumn-colorlatex",tableId:this.model.table.id,columnId:this.model.id,colorLatex:e}))}getModelColor(){return this.model.type==="image"?"":Kc(this.model)}};var Xt=__dcg_shared_module_exports__['e']($());var gd=__dcg_shared_module_exports__['e']($()),zr=class extends gd.Class{template(){return gd.createElement("div",{class:()=>({"dcg-toggle-view":!0,"dcg-toggled":this.props.toggled()}),"aria-label":()=>this.props.ariaLabel(),role:gd.const("checkbox"),tabindex:gd.const("0"),"aria-checked":()=>this.props.toggled(),toggled:()=>this.props.toggled(),onTap:this.bindFn(this.props.onChange)},gd.createElement("div",{class:gd.const("dcg-toggle-switch")}))}};var{If:f1}=Xt.Components,Hm=class extends _i{template(){return Xt.createElement("div",{class:Xt.const("dcg-options-menu-section")},Xt.createElement("div",{class:Xt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-lines"),Xt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-lines-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleLinesVisible)})),Xt.createElement(f1,{predicate:()=>this.props.isOpen()},()=>Xt.createElement("div",{class:Xt.const("dcg-options-menu-content")},Xt.createElement("div",{class:Xt.const("dcg-options-flex-container")},Xt.createElement("div",{class:Xt.const("dcg-options-left-side")},Xt.createElement("div",{class:Xt.const("dcg-iconed-mathquill-row dcg-line-opacity-row")},Xt.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-opacity-tooltip"),sticky:this.const(!0),gravity:this.const("s")},Xt.createElement("i",{class:Xt.const("dcg-icon-opacity"),"aria-hidden":Xt.const("true")})),Xt.createElement(Vt,{latex:()=>this.model.lineOpacity,placeholder:this.bindFn(this.getLineOpacity),isFocused:()=>this.getFocusedInput()==="lineopacity",ariaPostLabel:()=>this.isLineOpacityValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-line-opacity"),hasError:()=>!this.isLineOpacityValid(),handleLatexChanged:this.bindFn(this.dispatchLineOpacityLatexIfChanged),dataLabelAttributeValue:this.const("line-opacity"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"lineopacity")})),Xt.createElement("div",{class:Xt.const("dcg-iconed-mathquill-row dcg-line-thickness-row")},Xt.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-line-thickness-tooltip"),sticky:this.const(!0),gravity:this.const("s")},Xt.createElement("i",{class:Xt.const("dcg-icon-line-thickness"),"aria-hidden":Xt.const("true")})),Xt.createElement(Vt,{latex:()=>this.model.lineWidth,placeholder:this.bindFn(this.getLineWidth),isFocused:()=>this.getFocusedInput()==="linewidth",ariaPostLabel:()=>this.isLineWidthValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-label-line-thickness-tooltip"),hasError:()=>!this.isLineWidthValid(),handleLatexChanged:this.bindFn(this.dispatchLineWidthLatexIfChanged),dataLabelAttributeValue:this.const("line-width"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"linewidth")}))),Xt.createElement("div",{class:Xt.const("dcg-options-right-side")},Xt.createElement(f1,{predicate:this.bindFn(this.shouldShowLineStyles)},()=>Xt.createElement(ri,{staticConfig:this.bindFn(this.getPointStyleOptions),ariaGroupLabel:()=>this.controller.s("graphing-calculator-heading-style"),theme:this.const("mini")})))),Xt.createElement(f1,{predicate:this.props.isFirstOpenSection},()=>Xt.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)})))))}getLineWidth(){return this.isGeometryPolygon()?""+1.5:""+2.5}getLineOpacity(){return""+1}isGeometryPolygon(){return this.controller.isGeometry()&&this.model.type==="expression"&&Rd(this.model)}getPointStyleOptions(){return["SOLID","DASHED","DOTTED"].map(t=>({key:t,icon:()=>this.getStyleIcon(t),ariaLabel:()=>this.getStyleAria(t),selected:()=>this.model.lineStyle===t,class:()=>"dcg-line-segmented-option",onSelect:()=>{this.onLineStyleSelected(t)}}))}getStyleIcon(e){switch(e){case"SOLID":return"dcg-icon-line-solid";case"DASHED":return"dcg-icon-line-dashed";case"DOTTED":return"dcg-icon-line-dotted"}}getStyleAria(e){let t=this.controller.s;switch(e){case"SOLID":return t("graphing-calculator-narration-line-style-solid");case"DASHED":return t("graphing-calculator-narration-line-style-dashed");case"DOTTED":return t("graphing-calculator-narration-line-style-dotted")}}isLineOpacityValid(){return this.model.type==="expression"?f_(this.model):this.model.type==="table-column"?WP(this.model):!1}isLineWidthValid(){return this.model.type==="expression"?_C(this.model):this.model.type==="table-column"?$P(this.model):!1}dispatchLineOpacityLatexIfChanged(e){this.model.lineOpacity!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-lineopacity",id:this.id,lineOpacity:e}):this.controller.dispatch({type:"set-tablecolumn-lineopacity",tableId:this.model.table.id,columnId:this.model.id,lineOpacity:e}))}shouldShowLineStyles(){return!(this.model.type==="expression"&&Ul(this.model))}onLineStyleSelected(e){this.model.lineStyle!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-linestyle",id:this.id,lineStyle:e}):this.controller.dispatch({type:"set-tablecolumn-linestyle",tableId:this.model.table.id,columnId:this.model.id,lineStyle:e}))}dispatchLineWidthLatexIfChanged(e){this.model.lineWidth!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-linewidth",id:this.id,lineWidth:e}):this.controller.dispatch({type:"set-tablecolumn-linewidth",tableId:this.model.table.id,columnId:this.model.id,lineWidth:e}))}toggleLinesVisible(){this.model.type==="expression"?this.controller.dispatch({type:"set-item-lines",id:this.id,lines:!this.props.isOpen()}):this.controller.dispatch({type:"set-tablecolumn-lines",tableId:this.model.table.id,columnId:this.model.id,bool:!this.props.isOpen()})}};var Vx=__dcg_shared_module_exports__['e']($());var N0=class extends _i{template(){return Vx.createElement("div",{class:Vx.const("dcg-options-menu-section")},Vx.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected),customColorVisibility:()=>this.model.type==="expression"&&DC(this.model)?"hidden":"visible"}))}};var no=__dcg_shared_module_exports__['e']($());var{If:b1}=no.Components,B0=class extends _i{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return no.createElement("div",{class:no.const("dcg-options-menu-section")},no.createElement("div",{class:no.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-fill"),no.createElement(b1,{predicate:()=>!this.isInequality()},()=>no.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-fill-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleFillVisible)}))),no.createElement(b1,{predicate:this.props.isOpen},()=>no.createElement("div",{class:no.const("dcg-options-menu-content")},no.createElement("div",{class:no.const("dcg-iconed-mathquill-row dcg-fill-opacity-row")},no.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-opacity-tooltip"),sticky:this.const(!0),gravity:this.const("s")},no.createElement("i",{class:no.const("dcg-icon-opacity"),"aria-hidden":no.const("true")})),no.createElement(Vt,{latex:()=>this.model.fillOpacity,placeholder:this.bindFn(this.getFillOpacity),isFocused:()=>this.getFocusedInput()==="opacity",ariaPostLabel:()=>QT(this.model)?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-fill-opacity"),hasError:()=>!QT(this.model),handleLatexChanged:this.bindFn(this.dispatchOpacityLatexIfChanged),dataLabelAttributeValue:this.const("fill-opacity"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"opacity")})),no.createElement(b1,{predicate:this.props.isFirstOpenSection},()=>no.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)})))))}getFillOpacity(){return""+.4}isInequality(){return Ul(this.model)}toggleFillVisible(){this.controller.dispatch({type:"set-item-fill",id:this.id,fill:!this.props.isOpen()})}dispatchOpacityLatexIfChanged(e){this.model.fillOpacity!==e&&this.controller.dispatch({type:"set-item-fillopacity",id:this.id,fillOpacity:e})}};var Qt=__dcg_shared_module_exports__['e']($());var bt=__dcg_shared_module_exports__['e']($());var{If:fK,Switch:bK}=bt.Components,z0=class extends bt.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return bt.createElement("div",{class:bt.const("dcg-clickable-image-info-view"),role:bt.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-clickable-image-options")},bt.createElement("div",{class:bt.const("dcg-clickable-image-state-container")},bt.createElement(Ce,{tooltip:()=>this.tooltip("hovered"),gravity:this.const("s")},bt.createElement(ud,{controller:()=>this.controller,ariaLabel:()=>this.tooltip("hovered"),onFileChange:e=>this.updateImage("hovered",e),readonly:()=>this.controller.isItemReadonly(this.id)},bt.createElement(bK,{key:this.bindFn(this.hoveredStatus)},()=>bt.createElement("div",{class:bt.const("dcg-clickable-image-state"),style:()=>this.getStyleForState("hovered")})))),bt.createElement(fK,{predicate:()=>!!this.model.clickableInfo.hoveredImage},()=>bt.createElement("div",{class:bt.const("dcg-clickable-image-state-close"),onTap:()=>this.removeImageState("hovered"),ariaLabel:()=>this.controller.s("graphing-calculator-label-remove-hovered-image"),role:bt.const("button"),tabIndex:bt.const(0)},bt.createElement("i",{class:bt.const("dcg-icon-remove"),"aria-hidden":bt.const("true")}))),bt.createElement("div",{role:bt.const("heading"),"aria-level":bt.const("2"),class:bt.const("dcg-clickable-image-label")},()=>this.controller.s("graphing-calculator-label-hovered"))),bt.createElement("div",{class:bt.const("dcg-clickable-image-state-container")},bt.createElement(Ce,{tooltip:()=>this.tooltip("depressed"),gravity:this.const("s")},bt.createElement(ud,{controller:()=>this.controller,ariaLabel:()=>this.tooltip("depressed"),onFileChange:e=>this.updateImage("depressed",e),readonly:()=>this.controller.isItemReadonly(this.id)},bt.createElement(bK,{key:this.bindFn(this.depressedStatus)},()=>bt.createElement("div",{class:bt.const("dcg-clickable-image-state"),style:()=>this.getStyleForState("depressed")})))),bt.createElement(fK,{predicate:()=>!!this.model.clickableInfo.depressedImage},()=>bt.createElement("div",{class:bt.const("dcg-clickable-image-state-close"),onTap:()=>this.removeImageState("depressed"),ariaLabel:()=>this.controller.s("graphing-calculator-label-remove-depressed-image"),role:bt.const("button"),tabIndex:bt.const(0)},bt.createElement("i",{class:bt.const("dcg-icon-remove"),"aria-hidden":bt.const("true")}))),bt.createElement("div",{role:bt.const("heading"),"aria-level":bt.const("2"),class:bt.const("dcg-clickable-image-label")},()=>this.controller.s("graphing-calculator-label-depressed"))))}hoveredStatus(){return this.hoveredUploading?"loading":"background"}depressedStatus(){return this.depressedUploading?"loading":"background"}tooltip(e){return(e==="hovered"?this.model.clickableInfo.hoveredImage:this.model.clickableInfo.depressedImage)?e==="depressed"?this.controller.s("graphing-calculator-label-change-depressed-image-tooltip"):this.controller.s("graphing-calculator-label-change-hovered-image-tooltip"):e==="depressed"?this.controller.s("graphing-calculator-label-add-depressed-image-tooltip"):this.controller.s("graphing-calculator-label-add-hovered-image-tooltip")}getImageURLForState(e){let t;if(e==="hovered"){if(this.hoveredStatus()!=="background")return"";t="hoveredImage"}else{if(this.depressedStatus()!=="background")return"";t="depressedImage"}let i=this.model.clickableInfo[t];return i?`url(${i})`:`url(${this.model.image_url})`}getStyleForState(e){let t={"background-image":this.getImageURLForState(e),opacity:1};return e==="hovered"&&!this.model.clickableInfo.hoveredImage&&(t.opacity=.5),t}removeImageState(e){e==="hovered"?this.controller.dispatch({type:"set-hovered-image",id:this.model.id,url:""}):this.controller.dispatch({type:"set-depressed-image",id:this.model.id,url:""})}updateImage(e,t){if(!t||!t[0])return;let i=t[0];e==="hovered"&&(this.hoveredUploading=!0),e==="depressed"&&(this.depressedUploading=!0),this.controller.getGraphSettings().config.imageUploadCallback(i,(o,n)=>{e==="hovered"&&(this.hoveredUploading=!1),e==="depressed"&&(this.depressedUploading=!1),!o&&n&&(e==="hovered"?this.controller.dispatch({type:"set-hovered-image",id:this.model.id,url:n}):this.controller.dispatch({type:"set-depressed-image",id:this.model.id,url:n}))})}};var Ls=__dcg_shared_module_exports__['e']($()),K0=__dcg_shared_module_exports__['e'](IK());var x1=/\{\$([a-zA-Z0-9\-]+([a-zA-Z0-9\-]+_)*[a-zA-Z0-9\-]+)\}/;function MK(r,e){let t=0,i=0,o={},n={},a=s(r);if(!/^<0>/.test(a)||!/<\/0>$/.test(a))throw new Error("Expected template string to start and end with <0> and </0>, but found "+JSON.stringify(a));return a.slice(3,-4).trim();function s(c){if(e.isConst(c))return _J(e.getConstValue(c));if(e.isNamedBinding(c)){let d=l(o,e.getBindingName(c)),u=`{$${d}}`;if(!x1.test(u))throw new Error(`Invalid <Localize> variable: ${u}.`);return e.addBinding&&e.addBinding(d,c),o[d]=!0,u}else if(c!==r&&e.isView(c)){let d=l(n,e.getViewName(c));if(!/[a-zA-Z0-9\-_]/.test(d))throw new Error(`Invalid <Localize> subview identifier: ${d}.`);return e.addView&&e.addView(d,c),n[d]=!0,`<${d}/>`}else if(e.isBinding(c)){let d=l(o,`v${t++}`),u=`{$${d}}`;return e.addBinding&&e.addBinding(d,c),o[d]=!0,u}else{let d=`${i++}`;e.addElement&&e.addElement(d,c);let u=[];return e.forEachChild(c,h=>{u.push(s(h))}),n[d]=!0,u.length>0?`<${d}>${u.join("")}</${d}>`:`<${d}/>`}}function l(c,d){let u=0,h=d;for(;c[h];)h=`${d}-${++u}`;return h}}var OJ=!0;function _J(r){return OJ?r:r.replace(/\{|\}/g,e=>`{"${e}"}`).replace(/(^|[\s\n]+)(\[|\]|\.)/g,(e,t,i)=>`${t}{"${i}"}`)}function FJ(r){return r.__DCGViewLocalizeBindingName}function RJ(r){return typeof r=="function"&&r.__DCGViewLocalizeViewName}var Ip=class extends Ls.Class{init(){this.viewMap={},this.elementMap={},this.bindingMap={},this.i18n=this.props.i18n(),this.templateString=this.serializeToTemplateString(Ls.createElement("div",null,this.children))}template(){return Ls.createElement(Ls.Components.If,{predicate:()=>this.shouldShow()},()=>Ls.createElement(Ls.Components.Switch,{key:()=>w1(this.translatedString())},e=>this.renderDeserializedTemplateNode(this.parseAndValidate(e))))}shouldShow(){let e=this.props.options&&this.props.options();return e&&e.hideUntranslatedView&&this.i18n.hasTranslation?this.i18n.hasTranslation(this.props.key()):!0}translatedString(){let e={};for(let t in this.bindingMap)e[t]=ms(`{$${t}}`);return this.i18n.s(this.props.key(),e)}static variable(e,t){let i=()=>t();return i.__DCGViewLocalizeBindingName=e,i}static subview(e,t){let i=()=>t();return i.__DCGViewLocalizeViewName=e,i}parseAndValidate(e){let t=(0,K0.parse)(e),i={},o={};n(t);for(let a in this.elementMap)if(!o[a])return(0,K0.parse)(w1(this.templateString));for(let a in this.bindingMap)if(!i[a])return(0,K0.parse)(w1(this.templateString));return t;function n(a){if(Array.isArray(a)){for(let s of a)n(s);return}a.name==="token"?i[a.attrs.id]=!0:a.type!=="text"&&(o[a.name]=!0,n(a.children))}}renderDeserializedTemplateNode(e){if(Array.isArray(e))return e.map(t=>this.renderDeserializedTemplateNode(t));if(e.type==="text")return Ls.const(e.content||"");if(e.name==="token"){let t=this.bindingMap[e.attrs.id];return t||(()=>"")}else if(this.elementMap[e.name]){let t=this.elementMap[e.name],i=e.children.map(o=>this.renderDeserializedTemplateNode(o));return GK(t.type,t.attrs,i)}else return this.viewMap[e.name]?this.viewMap[e.name]():GK("span",{},[])}serializeToTemplateString(e){return MK(e,{isView:RJ,isConst:AK,isBinding:t=>typeof t=="function",isNamedBinding:FJ,getConstValue:t=>t(),getBindingName:t=>t.__DCGViewLocalizeBindingName,getViewName:t=>t.__DCGViewLocalizeViewName,addBinding:(t,i)=>{this.bindingMap[t]=i},addElement:(t,i)=>{this.elementMap[t]={type:i.tagName,attrs:i.attrs}},addView:(t,i)=>{if(this.viewMap[t])throw new Error(`Unexpected duplicate view ${t}.`);this.viewMap[t]=i},forEachChild:(t,i)=>{for(let o of t.children){if(!AK(o)&&typeof o!="function"&&o._isDCGView)throw new Error("Bare DCGViews are not allowed inside <Localize>. Use Localize.subview().");i(o)}}})}};function AK(r){return typeof r=="function"&&r.isDCGViewConst}function GK(r,e,t){return Ls.createElement(r,e,t)}function w1(r){return`<0>${r}</0>`.replace(new RegExp(x1.source,"g"),(t,i)=>`<token id="${i}"/>`)}var{If:U0,IfDefined:NJ,Textarea:BJ}=Qt.Components,Wm=class extends _i{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return Qt.createElement("div",{class:Qt.const("dcg-options-menu-section dcg-clickable-section")},Qt.createElement("div",{class:Qt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-clickable"),Qt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-make-clickable"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleClickable)})),Qt.createElement(U0,{predicate:this.props.isOpen},()=>Qt.createElement("div",{class:Qt.const("dcg-options-menu-content")},Qt.createElement("div",{class:Qt.const("dcg-clickable-menu-row")},Qt.createElement("span",{class:Qt.const("dcg-input-label")},()=>this.controller.s("graphing-calculator-label-update-on-click")),Qt.createElement(ve,{latex:()=>this.model.clickableInfo.latex,placeholder:this.const(""),isFocused:()=>this.getFocusedInput()==="updaterule",capExpressionSize:()=>!!this.controller.getGraphSettings().config.capExpressionSize,selectOnFocus:this.const(!0),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.controller.s("graphing-calculator-narration-click-action"),getAriaPostLabel:this.const(""),hasError:()=>this.hasError(),onUserChangedLatex:e=>this.dispatchUpdateRuleLatexIfChanged(e),onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:e=>this.handleFocusedChanged(e,"updaterule"),dataLabelAttributeValue:this.const("click-handler"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled()}),NJ(()=>this.packedError(),e=>Qt.createElement("span",{class:Qt.const("dcg-clickable-info-error-container")},Qt.createElement(Bo,{error:()=>this.controller.unpack(e()),gravity:this.const("s"),size:this.const("small")})))),Qt.createElement(U0,{predicate:this.bindFn(this.isList)},()=>Qt.createElement("div",{class:Qt.const("dcg-clickable-list-index-notice")},Qt.createElement(Ip,{i18n:this.const(this.controller),key:this.const("graphing-calculator-label-list-index")},Qt.const("Use"),Qt.const(" "),Qt.createElement("span",{class:()=>({"dcg-index-variable-marker":!0,"dcg-btn":!0,"dcg-btn-light-gray":!0,"dcg-mathquill-has-focus":this.getFocusedInput()==="updaterule","dcg-do-not-blur":!0}),onTap:this.bindFn(this.insertIndex)},Qt.const("index")),Qt.const(" "),Qt.const("to reference the clicked index in the list.")))),Qt.createElement(U0,{predicate:()=>this.model.type!=="image"},()=>Qt.createElement(BJ,{placeholder:()=>this.controller.s("graphing-calculator-text-add-screen-reader-label-placeholder"),value:()=>this.model.description,onInput:e=>this.controller.dispatch({type:"set-item-description",id:this.model.id,description:e})})),Qt.createElement(U0,{predicate:()=>this.model.type==="image"},()=>Qt.createElement("div",{class:Qt.const("dcg-clickable-menu-row")},Qt.createElement(z0,{controller:()=>this.controller,model:()=>this.model}))))))}insertIndex(){this.controller.dispatch({type:"keypad/type-text",text:"index"})}isList(){return this.model.formula?!!this.model.formula.is_concrete_list:!1}hasError(){return this.packedError()!==void 0}packedError(){if(this.model.formula.click_handler&&this.model.formula.click_handler.status==="error")return this.model.formula.click_handler.error}toggleClickable(){this.controller.dispatch({type:"set-clickableinfo-prop",id:this.model.id,prop:"enabled",value:!this.model.clickableInfo.enabled}),this.model.clickableInfo.enabled&&this.handleFocusedChanged(!0,"updaterule")}dispatchUpdateRuleLatexIfChanged(e){this.model.clickableInfo.latex!==e&&this.controller.dispatch({type:"set-clickableinfo-rule-latex",id:this.id,latex:e})}getMQConfig(){return this.controller.getMathquillConfig({additionalOperators:["index"]})}};var Dr=__dcg_shared_module_exports__['e']($());var md=__dcg_shared_module_exports__['e']($());var $m=class extends _i{template(){return md.createElement("div",{class:md.const("dcg-iconed-mathquill-row dcg-point-opacity-row")},md.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-opacity-tooltip"),sticky:this.const(!0),gravity:this.const("s")},md.createElement("i",{class:md.const("dcg-icon-opacity"),"aria-hidden":md.const("true")})),md.createElement(Vt,{latex:()=>this.model.pointOpacity,placeholder:this.bindFn(this.getPointOpacityPlaceholder),isFocused:()=>this.getFocusedInput()==="pointopacity",ariaPostLabel:()=>this.isPointOpacityValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-line-opacity"),hasError:()=>!this.isPointOpacityValid(),handleLatexChanged:this.bindFn(this.dispatchPointOpacityLatexIfChanged),dataLabelAttributeValue:this.const("point-opacity"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"pointopacity")}))}isPointOpacityValid(){return this.model.type==="expression"?b_(this.model):this.model.type==="table-column"?jP(this.model):!1}dispatchPointOpacityLatexIfChanged(e){this.model.pointOpacity!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-pointopacity",id:this.id,pointOpacity:e}):this.controller.dispatch({type:"set-tablecolumn-pointopacity",columnId:this.model.id,tableId:this.model.table.id,pointOpacity:e}))}getPointOpacityPlaceholder(){return`${1}`}};var{If:q0}=Dr.Components,Ym=class extends _i{template(){return Dr.createElement("div",{class:Dr.const("dcg-options-menu-section")},Dr.createElement("div",{class:Dr.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-points"),Dr.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-points-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.togglePointsVisible)})),Dr.createElement(q0,{predicate:this.props.isOpen},()=>Dr.createElement("div",{class:Dr.const("dcg-options-menu-content")},Dr.createElement("div",{class:Dr.const("dcg-options-flex-container")},Dr.createElement("div",{class:Dr.const("dcg-options-left-side")},Dr.createElement($m,{...this.props}),Dr.createElement(q0,{predicate:()=>this.model.type==="expression"||!this.isDraggable()},()=>Dr.createElement("div",{class:Dr.const("dcg-iconed-mathquill-row dcg-point-size-row")},Dr.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-point-size-tooltip"),gravity:this.const("s"),sticky:this.const(!0)},Dr.createElement("i",{class:Dr.const("dcg-icon-line-thickness"),"aria-hidden":Dr.const("true")})),Dr.createElement(Vt,{latex:this.bindFn(this.getPointSize),placeholder:this.bindFn(this.getDefaultPointSize),isFocused:()=>this.getFocusedInput()==="pointsize",ariaPostLabel:()=>this.isPointSizeValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-point-size"),hasError:()=>!this.isPointSizeValid(),handleLatexChanged:e=>this.dispatchPointSizeLatexIfChanged(e),dataLabelAttributeValue:this.const("point-size"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"pointsize")})))),Dr.createElement("div",{class:Dr.const("dcg-options-right-side")},Dr.createElement(q0,{predicate:()=>!this.isDraggable()},()=>Dr.createElement(ri,{staticConfig:this.bindFn(this.getPointStyleOptions),ariaGroupLabel:()=>this.controller.s("graphing-calculator-heading-style"),theme:this.const("mini")})))),Dr.createElement(q0,{predicate:this.props.isFirstOpenSection},()=>Dr.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)})))))}getPointSize(){return this.isDraggable()&&this.model.type==="expression"?this.model.movablePointSize:this.model.pointSize}getPointStyleOptions(){return["POINT","OPEN","CROSS"].map(t=>({key:t,icon:()=>this.getStyleIcon(t),ariaLabel:()=>this.getStyleAria(t),selected:()=>this.model.pointStyle===t,class:()=>"dcg-point-segmented-option",onSelect:()=>{this.onPointStyleSelected(t)}}))}getStyleIcon(e){switch(e){case"POINT":return"dcg-icon-point";case"OPEN":return"dcg-icon-open";case"CROSS":return"dcg-icon-cross"}}getStyleAria(e){let t=this.controller.s;switch(e){case"POINT":return t("graphing-calculator-narration-point-style-point");case"OPEN":return t("graphing-calculator-narration-point-style-open");case"CROSS":return t("graphing-calculator-narration-point-style-cross")}}isPointSizeValid(){return this.model.type==="expression"?this.isDraggable()?y_(this.model):OC(this.model):this.model.type==="table-column"?YP(this.model):!1}onPointStyleSelected(e){this.model.pointStyle!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-pointstyle",id:this.id,pointStyle:e}):this.controller.dispatch({type:"set-tablecolumn-pointstyle",columnId:this.model.id,tableId:this.model.table.id,pointStyle:e}))}dispatchPointSizeLatexIfChanged(e){this.getPointSize()!==e&&(this.model.type==="expression"?this.controller.dispatch({type:"set-item-pointsize",id:this.id,pointSize:e}):this.controller.dispatch({type:"set-tablecolumn-pointsize",columnId:this.model.id,tableId:this.model.table.id,pointSize:e}))}isDraggable(){return this.getDragMode()!=="NONE"}togglePointsVisible(){this.model.type==="expression"&&Gn(this.model)?this.controller.dispatch({type:"toggle-item-hidden",id:this.model.id}):this.model.type==="expression"?this.controller.dispatch({type:"set-item-points",id:this.id,points:!this.props.isOpen()}):this.controller.dispatch({type:"set-tablecolumn-points",columnId:this.model.id,tableId:this.model.table.id,bool:!this.props.isOpen()})}getDragMode(){return this.model.type==="expression"?Zr(this.model)||this.model.dragMode:this.model.dragMode}getDefaultPointSize(){return this.model.type==="expression"&&Hc(this.model)?`${14}`:`${8}`}};var wt=__dcg_shared_module_exports__['e']($());var cn=__dcg_shared_module_exports__['e']($());var{For:KJ}=cn.Components,UJ=[{orientation:"default",cssClass:"dcg-label-orientation-center",description:"graphing-calculator-text-label-orientation-default"},{orientation:"above",cssClass:"dcg-label-orientation-above",description:"graphing-calculator-text-label-orientation-above"},{orientation:"above_right",cssClass:"dcg-label-orientation-above-right",description:"graphing-calculator-text-label-orientation-above-right"},{orientation:"right",cssClass:"dcg-label-orientation-right",description:"graphing-calculator-text-label-orientation-right"},{orientation:"below_right",cssClass:"dcg-label-orientation-below-right",description:"graphing-calculator-text-label-orientation-below-right"},{orientation:"below",cssClass:"dcg-label-orientation-below",description:"graphing-calculator-text-label-orientation-below"},{orientation:"below_left",cssClass:"dcg-label-orientation-below-left",description:"graphing-calculator-text-label-orientation-below-left"},{orientation:"left",cssClass:"dcg-label-orientation-left",description:"graphing-calculator-text-label-orientation-left"},{orientation:"above_left",cssClass:"dcg-label-orientation-above-left",description:"graphing-calculator-text-label-orientation-above-left"}],H0=class extends cn.Class{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return cn.createElement("div",{class:cn.const("dcg-label-orientation-view"),style:()=>`transform: rotate(${this.getCSSRotationValue()});`},cn.createElement("span",{class:cn.const("dcg-vertical-orientation-indicator")}),cn.createElement(KJ,{each:()=>UJ,key:e=>e.orientation},cn.createElement("div",{class:cn.const("dcg-label-orientations"),role:cn.const("radiogroup"),"aria-label":()=>this.controller.s("graphing-calculator-heading-label-orientation")},e=>cn.createElement("div",{class:()=>({[e.cssClass]:!0,"dcg-orientation-option":!0,"dcg-selected":this.isSelected(e.orientation),"dcg-orientation-disabled":this.isDisabled(e.orientation)}),role:cn.const("radio"),tabindex:cn.const("0"),"aria-label":()=>this.controller.s(e.description),"aria-checked":()=>this.getOrientation()===e.orientation,onTap:()=>this.onTapOrientation(e.orientation)},cn.createElement("i",{class:()=>({"dcg-icon-chevron-left":e.orientation!=="default"})})))))}isDisabled(e){return e!=="default"?!1:this.isPointVisible()?!0:this.model.labelOrientation==="default"}isSelected(e){return e==="default"&&e===this.model.labelOrientation?!this.isPointVisible():e===this.model.labelOrientation}isPointVisible(){return this.model.hidden?!1:Gn(this.model)?!this.model.hidden:this.model.points}getCSSRotationValue(){let e=w_(this.model);return`${Array.isArray(e)?0:e}rad`}getOrientation(){return this.props.model().labelOrientation}onTapOrientation(e){e===this.getOrientation()&&(e="default"),this.controller.dispatch({type:"set-item-label-orientation",id:this.id,labelOrientation:e})}};var{If:jm}=wt.Components,W0=class extends _i{init(){this.controller=this.props.controller(),this.model=this.props.model(),this.id=this.model.id}template(){return wt.createElement("div",{class:wt.const("dcg-options-menu-section")},wt.createElement("div",{class:wt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-label"),wt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-label-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleLabelVisible)})),wt.createElement(jm,{predicate:this.props.isOpen},()=>wt.createElement("div",{class:wt.const("dcg-options-menu-content")},wt.createElement("div",{class:wt.const("dcg-options-flex-container")},wt.createElement("div",{class:wt.const("dcg-options-left-side")},wt.createElement(jm,{predicate:this.props.isFirstOpenSection},()=>wt.createElement($m,{...this.props})),wt.createElement("div",{class:wt.const("dcg-iconed-mathquill-row dcg-label-size-row")},wt.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-label-size-tooltip"),sticky:this.const(!0),gravity:this.const("s")},wt.createElement("span",{class:wt.const("dcg-font-size")},wt.const("A"))),wt.createElement(Vt,{latex:()=>this.model.labelSize,placeholder:()=>"1",isFocused:()=>this.getFocusedInput()==="labelsize",ariaPostLabel:()=>ZT(this.model)?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-label-size"),hasError:()=>!ZT(this.model),handleLatexChanged:this.bindFn(this.dispatchLabelSizeIfChanged),dataLabelAttributeValue:this.const("label-size"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"labelsize")})),wt.createElement("div",{class:()=>({"dcg-iconed-mathquill-row":!0,"dcg-label-angle-row":!0,"dcg-suffix-degree":this.props.controller().getGraphSettings().degreeMode,"dcg-suffix-radian":!this.props.controller().getGraphSettings().degreeMode})},wt.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-angle-tooltip"),sticky:this.const(!0)},wt.createElement("i",{class:wt.const("dcg-icon-angle"),"aria-hidden":wt.const("true")})),wt.createElement(Vt,{latex:()=>this.model.labelAngle,placeholder:()=>"0",isFocused:()=>this.getFocusedInput()==="labelangle",ariaPostLabel:()=>eI(this.model)?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-label-angle"),hasError:()=>!eI(this.model),handleLatexChanged:this.bindFn(this.dispatchLabelAngleIfChanged),dataLabelAttributeValue:this.const("label-angle"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"labelangle")}))),wt.createElement("div",{class:wt.const("dcg-options-right-side")},wt.createElement(H0,{controller:()=>this.controller,model:()=>this.model}))),wt.createElement(jm,{predicate:this.props.isFirstOpenSection},()=>wt.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)})),wt.createElement(jm,{predicate:()=>this.controller.canUseAdvancedStyling()},()=>wt.createElement("div",{class:wt.const("dcg-label-advanced")},wt.createElement(He,{checked:this.bindFn(this.getWhiteTextOutline),onChange:this.bindFn(this.setWhiteTextOutline),disabled:()=>this.getEditable()},()=>this.controller.s("graphing-calculator-button-label-text-outline")),wt.createElement("div",{role:wt.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-heading-advanced")},wt.createElement(jm,{predicate:()=>this.shouldShowHoverLabelCheckbox()},()=>wt.createElement(He,{checked:this.bindFn(this.getInteractiveLabel),onChange:this.bindFn(this.setInteractiveLabel)},()=>this.controller.s("graphing-calculator-button-label-show-on-hover"))),wt.createElement(jm,{predicate:this.bindFn(this.shouldShowEditableLabelToggle)},()=>wt.createElement(He,{checked:this.bindFn(this.getEditable),onChange:this.bindFn(this.setEditable)},()=>this.controller.s("graphing-calculator-button-label-editable")))))))))}getWhiteTextOutline(){return this.getEditable()?!1:!this.model.suppressTextOutline}setWhiteTextOutline(e){this.controller.dispatch({type:"set-suppress-text-outline",id:this.id,suppressTextOutline:!e})}setInteractiveLabel(e){this.controller.dispatch({type:"set-item-interactive-label",id:this.id,interactiveLabel:e})}getInteractiveLabel(){return!!this.model.interactiveLabel}setEditable(e){if(e){let t=__dcg_shared_module_exports__['qd'](this.model.label)==="latex"?"MATH":"TEXT";this.controller.dispatch({type:"set-item-editable-label-mode",id:this.id,editableLabelMode:t})}else this.controller.dispatch({type:"set-item-editable-label-mode",id:this.id,editableLabelMode:"NONE"})}getEditable(){return this.model.editableLabelMode!=="NONE"}shouldShowEditableLabelToggle(){return Gn(this.model)}shouldShowHoverLabelCheckbox(){return Zr(this.model)==="NONE"}dispatchLabelAngleIfChanged(e){this.model.labelAngle!==e&&this.controller.dispatch({type:"set-item-labelangle",id:this.id,labelAngle:e})}dispatchLabelSizeIfChanged(e){this.model.labelSize!==e&&this.controller.dispatch({type:"set-item-labelSize",id:this.id,labelSize:e})}toggleLabelVisible(){this.controller.dispatch({type:"set-item-showlabel",id:this.id,showLabel:!this.props.isOpen()})}};var $o=__dcg_shared_module_exports__['e']($());var{If:qJ,For:HJ}=$o.Components,Jm=class extends _i{template(){return $o.createElement("div",{class:$o.const("dcg-options-menu-section")},$o.createElement("div",{class:$o.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-drag"),$o.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-menu-drag-enabled"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleDragEnabled)})),$o.createElement(qJ,{predicate:this.props.isOpen},()=>$o.createElement("div",{class:$o.const("dcg-options-menu-content")},$o.createElement(HJ,{each:()=>["X","Y","XY"]},$o.createElement("div",{class:$o.const("dcg-style-icons"),role:$o.const("radiogroup")},e=>$o.createElement("div",{class:()=>({"dcg-style-icon-container":!0,"dcg-disabled":this.isDisabled(e)}),onTap:()=>this.onDragModeSelected(e),role:$o.const("radio"),tabindex:()=>this.isDisabled(e)?-1:0,"aria-label":()=>e==="X"?this.controller.s("graphing-calculator-narration-drag-mode-x"):e==="Y"?this.controller.s("graphing-calculator-narration-drag-mode-y"):e==="XY"?this.controller.s("graphing-calculator-narration-drag-mode-xy"):this.controller.raw(""),"aria-checked":()=>this.getDragMode()===e},$o.createElement(Pi,{backgroundColor:()=>({type:"single-color",value:"#000"}),semiTransparent:()=>this.getDragMode()!==e,iconType:()=>e==="X"?"movable-horizontal":e==="Y"?"movable-vertical":"movable-both"})))))))}isDisabled(e){let t=this.controller.getEnabledDragModesForItem(this.id);return!__dcg_shared_module_exports__['wa'](t,e)}onDragModeSelected(e){if(this.model.type==="expression"){if(this.isDisabled(e))return;this.controller.dispatch({type:"set-item-dragmode",id:this.id,dragMode:e})}else{let t=this.model.id,i=this.model.table.id;this.controller.dispatch({type:"set-tablecolumn-dragmode",tableId:i,columnId:t,dragMode:e})}}getDragMode(){return this.model.type==="expression"?Zr(this.model)||this.model.dragMode:this.model.dragMode}toggleDragEnabled(){let e=this.getDragMode()!=="NONE"?"NONE":"XY";this.model.type==="expression"?this.controller.dispatch({type:"set-item-dragmode",id:this.id,dragMode:e}):this.onDragModeSelected(e)}};var Do=__dcg_shared_module_exports__['e']($());var{If:$J}=Do.Components,$0=class extends _i{template(){return Do.createElement("div",{class:Do.const("dcg-options-menu-section")},Do.createElement("div",{class:Do.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-points"),Do.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-points-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.togglePointsVisible)})),Do.createElement($J,{predicate:()=>this.props.isOpen()},()=>Do.createElement("div",{class:Do.const("dcg-options-menu-content")},Do.createElement("div",{class:Do.const("dcg-iconed-mathquill-row dcg-line-thickness-row-3d")},Do.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-point-size-3d-tooltip"),gravity:this.const("s"),sticky:this.const(!0)},Do.createElement("i",{class:Do.const("dcg-icon-line-thickness"),"aria-hidden":Do.const("true")})),Do.createElement(Vt,{latex:()=>this.model.pointSize,placeholder:this.bindFn(this.getDefaultPointSize),isFocused:()=>this.getFocusedInput()==="pointsize",ariaPostLabel:()=>this.isPointSizeValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-point-size"),hasError:()=>!this.isPointSizeValid(),handleLatexChanged:e=>this.dispatchPointSizeLatexIfChanged(e),dataLabelAttributeValue:this.const("point-size"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"pointsize")})),Do.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected),hideColorFunctions:()=>!0}))))}togglePointsVisible(){this.controller.dispatch({type:"set-item-points",id:this.id,points:!this.props.isOpen()})}isPointSizeValid(){return this.model.type==="expression"?OC(this.model):!1}dispatchPointSizeLatexIfChanged(e){this.model.pointSize!==e&&this.model.type==="expression"&&this.controller.dispatch({type:"set-item-pointsize",id:this.id,pointSize:e})}getDefaultPointSize(){return`${3}`}};var mo=__dcg_shared_module_exports__['e']($());var{If:VK}=mo.Components,Y0=class extends _i{template(){return mo.createElement("div",{class:mo.const("dcg-options-menu-section")},mo.createElement("div",{class:mo.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-lines"),mo.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-lines-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleLinesVisible)})),mo.createElement(VK,{predicate:()=>this.props.isOpen()},()=>mo.createElement("div",{class:mo.const("dcg-options-menu-content")},mo.createElement("div",{class:mo.const("dcg-iconed-mathquill-row dcg-line-thickness-row-3d")},mo.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-line-thickness-3d-tooltip"),sticky:this.const(!0),gravity:this.const("s")},mo.createElement("i",{class:mo.const("dcg-icon-line-thickness"),"aria-hidden":mo.const("true")})),mo.createElement(Vt,{latex:()=>this.model.lineWidth,placeholder:()=>`${1}`,isFocused:()=>this.getFocusedInput()==="linewidth",ariaPostLabel:()=>this.isLineWidthValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-label-line-thickness-3d-tooltip"),hasError:()=>!this.isLineWidthValid(),handleLatexChanged:this.bindFn(this.dispatchLineWidthLatexIfChanged),dataLabelAttributeValue:this.const("line-width"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"linewidth")})),mo.createElement(VK,{predicate:this.props.isFirstOpenSection},()=>mo.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)})))))}toggleLinesVisible(){this.controller.dispatch({type:"set-item-lines",id:this.id,lines:!this.props.isOpen()})}isLineWidthValid(){return this.model.type==="expression"?_C(this.model):!1}dispatchLineWidthLatexIfChanged(e){this.model.lineWidth!==e&&this.model.type==="expression"&&this.controller.dispatch({type:"set-item-linewidth",id:this.id,lineWidth:e})}};var fo=__dcg_shared_module_exports__['e']($());var{If:v1}=fo.Components,j0=class extends _i{template(){return fo.createElement("div",{class:fo.const("dcg-options-menu-section")},fo.createElement("div",{class:fo.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-surfaces"),fo.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-narration-surfaces-visible"),toggled:this.props.isOpen,onChange:this.bindFn(this.toggleSurfacesVisible)})),fo.createElement(v1,{predicate:()=>this.props.isOpen()},()=>fo.createElement("div",{style:fo.const("font-size:85%; margin-top:8px")},fo.createElement(v1,{predicate:()=>this.usesResolution()&&!!Hi("beta3d")},()=>fo.createElement("div",null,fo.const("Resolution:"),fo.createElement(Vt,{latex:()=>this.model.resolution,placeholder:()=>this.getDefaultResolution(),isFocused:()=>this.getFocusedInput()==="resolution",ariaPostLabel:()=>this.isResolutionValid()?this.controller.raw(""):this.controller.s("shared-calculator-narration-input-error"),ariaLabel:()=>this.controller.s("graphing-calculator-label-resolution-tooltip"),hasError:()=>!this.isResolutionValid(),handleLatexChanged:this.bindFn(this.dispatchResolutionLatexIfChanged),dataLabelAttributeValue:this.const("resolution"),controller:this.props.controller,readonly:()=>this.controller.isItemReadonly(this.model.id),handleFocusChanged:e=>this.handleFocusedChanged(e,"resolution")}))),fo.createElement(v1,{predicate:this.props.isFirstOpenSection},()=>fo.createElement("div",{class:fo.const("dcg-options-menu-content"),style:fo.const("margin-top:8px")},fo.createElement(vo,{controller:this.props.controller,colorLatex:()=>this.model.colorLatex,selectedColor:this.bindFn(this.getModelColor),onColorSelected:this.bindFn(this.onColorSelected),onCustomColorSelected:this.bindFn(this.onCustomColorSelected)}))))))}toggleSurfacesVisible(){this.controller.dispatch({type:"set-item-lines",id:this.id,lines:!this.props.isOpen()})}usesResolution(){return!TC(this.model)&&!s_(this.model)}dispatchResolutionLatexIfChanged(e){this.model.resolution!==e&&this.model.type==="expression"&&this.controller.dispatch({type:"set-item-resolution",id:this.id,resolution:e})}isResolutionValid(){return this.model.type==="expression"?x_(this.model):!1}getDefaultResolution(){return this.model.type==="expression"&&l_(this.model)?`${__dcg_shared_module_exports__['zc']}`:`${__dcg_shared_module_exports__['Ac']}`}};kt();var Os=__dcg_shared_module_exports__['e']($());var{If:jJ}=Os.Components,Mp=class extends Os.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return Os.createElement(jJ,{predicate:()=>this.isVisible()},()=>Os.createElement("div",{class:Os.const("dcg-options-menu-section dcg-interactivity-section dcg-section-without-title")},Os.createElement("div",{class:Os.const("dcg-options-menu-content")},Os.createElement(He,{checked:()=>ba(this.model),onChange:()=>this.toggleGraphInteractionsDisabled(),ariaLabel:()=>this.controller.s("graphing-calculator-label-disable-graph-interactions")},()=>this.controller.s("graphing-calculator-label-disable-graph-interactions")))))}isVisible(){return this.controller.shouldShowAuthorFeatures()}toggleGraphInteractionsDisabled(){this.model.type==="table-column"?this.controller.dispatch({type:"set-tablecolumn-disable-graph-interactions",tableId:this.model.table.id,columnId:this.model.id,disableGraphInteractions:!ba(this.model)}):this.controller.dispatch({type:"set-item-disable-graph-interactions",id:this.model.id,disableGraphInteractions:!ba(this.model)})}};Fa();var{For:JJ,If:XJ}=Fi.Components;function ml(r,e){if(!r)return;let t=r.closest(".dcg-options-menu-container"),i=e.findEl(".dcg-container"),o=e.getOpenMenuIcon(),n=!!r.closest(".dcg-table-column-menu");if(!t||!i||!o)return;let a=e.computeMajorLayout(),s=a.list.top+a.list.height,l=a.keypad.top,c=Math.min(s,l),d=i.getBoundingClientRect(),u=o.getBoundingClientRect(),h=c+d.top-u.top,g=t.offsetHeight,b=0;g>h&&(b=+h-g);let C=n?!b:-b<g-38;t.style.marginTop=`${n&&b<0?b-34:b}px`,r.style.marginTop=`${-b}px`,r.style.display=C?"":"none"}function uh(r,e){requestAnimationFrame(()=>{let t=e.getExppanelElt(),i=e.getOpenMenuIcon();r&&t&&i&&t.contains(i)&&W(t).on(`scroll.${r}`,()=>{W(t).off(`scroll.${r}`);let o=e.getFocusLocation(),n=e.getOpenItemMenu();o&&n&&o.type==="expression-menu"&&"model"in n&&o.id===n.model.id&&e.dispatch({type:"blur-focus-location",location:o}),e.dispatch({type:"close-item-settings-menu"})})})}function hh(r,e){let t=e.getExppanelElt();t&&r&&W(t).off(`scroll.${r}`)}var Xm=class extends Fi.Class{init(){var e;this.controller=this.props.controller(),this.guid=(e=this.controller.getOpenItemMenu())==null?void 0:e.guid}didMount(){uh(this.guid,this.controller)}willUnmount(){hh(this.guid,this.controller)}didUpdate(){ml(this.arrowElt,this.controller)}template(){let e=this.props.model();return Fi.createElement("div",{class:()=>({"dcg-expressions-options-menu":!0,"dcg-options-menu":!0}),role:Fi.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-options-menu")},Fi.createElement(JJ,{each:this.bindFn(this.getSections)},Fi.createElement("div",null,t=>{switch(t){case"points":return Fi.createElement(Ym,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("points"),isFirstOpenSection:()=>this.isFirstOpenSection("points")});case"label":return Fi.createElement(W0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("label"),isFirstOpenSection:()=>this.isFirstOpenSection("label")});case"drag":return Fi.createElement(Jm,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("drag"),isFirstOpenSection:()=>this.isFirstOpenSection("drag")});case"lines":return Fi.createElement(Hm,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("lines"),isFirstOpenSection:()=>this.isFirstOpenSection("lines")});case"fill":return Fi.createElement(B0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("fill"),isFirstOpenSection:()=>this.isFirstOpenSection("fill")});case"colors-only":return Fi.createElement(N0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:this.const(!0),isFirstOpenSection:this.const(!0)});case"points3d":return Fi.createElement($0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("points3d"),isFirstOpenSection:()=>this.isFirstOpenSection("points3d")});case"lines3d":return Fi.createElement(Y0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("lines3d"),isFirstOpenSection:()=>this.isFirstOpenSection("lines3d")});case"surfaces":return Fi.createElement(j0,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>this.isSectionOpen("surfaces"),isFirstOpenSection:()=>this.isFirstOpenSection("surfaces")})}})),Fi.createElement(XJ,{predicate:this.bindFn(this.shouldShowClickableSection)},()=>Fi.createElement(Wm,{model:()=>e,controller:this.bindFn(this.props.controller),isOpen:()=>!!e.clickableInfo.enabled,isFirstOpenSection:this.const(!1)})),Fi.createElement(Mp,{model:()=>e,controller:()=>this.props.controller()}),Fi.createElement("div",{class:Fi.const("dcg-triangle"),didMount:this.bindFn(this.didMountArrow),didUnmount:()=>this.arrowElt=void 0}))}didMountArrow(e){this.arrowElt=e,ml(this.arrowElt,this.controller)}shouldShowClickableSection(){let e=this.props.model();return this.controller.areActionsEnabled()&&rI(e)&&!this.controller.isItemReadonly(e.id)&&(this.controller.shouldShowAuthorFeatures()||!ba(e))}shouldShowDragSection(){let e=this.props.model();return this.controller.shouldShowAuthorFeatures()||!ba(e)}getSections(){let e=this.props.model();if(this.controller.isThreeDMode()){if(IC(e))return e.extendTo3D?["surfaces"]:["lines3d"];if(HT(e))return["surfaces"];if(yu(e)||qT(e)||$T(e)||YT(e))return["lines3d"];if(Gn(e)||kC(e))return["points3d"];if(Gg(e)||kb(e))return["points3d","lines3d"]}return xu(e)||Kd(e)||DC(e)||u_(e)||Nd(e)?["colors-only"]:Ud(e)?["lines"]:Hc(e)?["points"]:Gg(e)?["points","label","lines"]:Gn(e)?e.formula.move_strategy&&this.shouldShowDragSection()?["points","label","drag"]:["points","label"]:yu(e)||Rd(e)?["lines","fill"]:Ul(e)?Ag(e)||MC(e)||WT(e)?["lines"]:["lines","fill"]:["lines"]}isFirstOpenSection(e){return this.getSections().find(t=>this.isSectionOpen(t))===e}isSectionOpen(e){let t=this.props.model(),{points:i,lines:o,fill:n}=t,a=__dcg_shared_module_exports__['rc'](t.formula.expression_type,{points:i,lines:o,fill:n},s=>{Mi("getReconciledExpressionProps [Chrome Switch Bug]",{metaData:{method:"isSectionOpen",type:s}})});switch(e){case"lines":return t.hidden?!1:a.lines;case"label":return $s(t);case"fill":return t.hidden?!1:Ul(t)?!0:a.fill;case"points":return t.hidden?!1:Gn(t)?!t.hidden:a.points;case"drag":return Zr(t)!=="NONE";case"colors-only":return!0;case"points3d":return t.hidden?!1:a.points;case"lines3d":case"surfaces":return t.hidden?!1:a.lines}}};var yt=__dcg_shared_module_exports__['e']($());var{For:QJ,If:J0,Textarea:ZJ}=yt.Components,X0=class extends yt.Class{template(){return yt.createElement("div",{class:yt.const("dcg-image-aria-container")},yt.createElement(ZJ,{placeholder:()=>this.props.controller().s("graphing-calculator-text-add-screen-reader-label-placeholder"),value:()=>this.props.model().description,onInput:e=>this.props.controller().dispatch({type:"set-item-description",id:this.props.model().id,description:e})}))}},Q0=class extends yt.Class{init(){var e;this.controller=this.props.controller(),this.model=this.props.model(),this.guid=(e=this.controller.getOpenItemMenu())==null?void 0:e.guid}didMountArrow(e){this.arrowElt=e,ml(this.arrowElt,this.controller)}didMount(){uh(this.guid,this.controller)}willUnmount(){hh(this.guid,this.controller)}didUpdate(){ml(this.arrowElt,this.controller)}template(){let e=this.model;return yt.createElement("div",{class:yt.const("dcg-image-options-menu dcg-options-menu")},yt.createElement("div",{class:yt.const("dcg-opacities-menu dcg-options-menu-section")},yt.createElement("div",{role:yt.const("heading"),"aria-level":yt.const("2"),class:yt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-heading-image-opacity")),yt.createElement(QJ,{each:()=>this.controller.getImageOpacities()},yt.createElement("div",{class:yt.const("dcg-opacities-menu-flex"),role:yt.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-heading-image-opacity")},t=>yt.createElement("span",{class:yt.const("dcg-opacity-option"),role:yt.const("button"),tabindex:yt.const(0),"aria-label":()=>`opacity: ${t}`,"aria-pressed":()=>this.isOpacitySelected(t),handleevent:yt.const("true"),onTap:()=>this.onSelectOpacity(t)},yt.createElement(Pi,{backgroundImage:this.bindFn(this.getBackgroundImage),iconType:()=>this.isOpacitySelected(t)?"check":"none",backgroundOpacity:()=>parseFloat(t)}))))),yt.createElement("div",{class:yt.const("dcg-styles-div dcg-options-menu-section dcg-section-without-title")},yt.createElement("div",{class:yt.const("dcg-styles-menu"),role:yt.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-narration-image-styles")},yt.createElement(He,{checked:()=>!e.foreground,onChange:this.bindFn(this.onToggleForeground)},()=>this.controller.s("graphing-calculator-button-place-image-behind-graphs"))),yt.createElement(J0,{predicate:()=>this.shouldShowDraggableCheckbox()},()=>yt.createElement("div",{class:yt.const("dcg-draggable-checkbox-container")},yt.createElement(He,{checked:()=>Ws(e),onChange:this.bindFn(this.onToggleDraggable)},()=>this.controller.s("graphing-calculator-button-draggable"))))),yt.createElement(J0,{predicate:()=>Ws(e)},()=>yt.createElement(X0,{...this.props})),yt.createElement(J0,{predicate:this.bindFn(this.shouldShowClickable)},()=>yt.createElement(Wm,{controller:this.props.controller,model:()=>e,isOpen:()=>!!e.clickableInfo.enabled,isFirstOpenSection:this.const(!1)})),yt.createElement(J0,{predicate:()=>!!e.clickableInfo.enabled&&!Ws(e)},()=>yt.createElement(X0,{...this.props})),yt.createElement(Mp,{model:()=>e,controller:()=>this.props.controller()}),yt.createElement("div",{class:yt.const("dcg-triangle"),didMount:this.bindFn(this.didMountArrow),didUnmount:()=>this.arrowElt=void 0}))}onToggleDraggable(){Xh(this.model)?this.controller.dispatch({type:"set-image-draggable",id:this.model.id,draggable:!this.model.draggable}):this.makeDraggable()}onToggleForeground(e){this.controller.dispatch({type:"set-image-in-foreground",id:this.model.id,foreground:!e})}onSelectOpacity(e){this.controller.dispatch({type:"set-image-opacity",id:this.model.id,opacity:e})}isOpacitySelected(e){return this.model.opacity===e}getBackgroundImage(){return this.model.image_url===this.lastURL?this.lastEncodedURL:(this.lastURL=this.model.image_url,this.lastEncodedURL='url("'+A0(this.model.image_url)+'")',this.lastEncodedURL)}shouldShowClickable(){return this.controller.shouldIgnoreGraphInteractions(this.model)?!1:this.controller.areActionsEnabled()}makeDraggable(){this.controller.dispatch({type:"convert-image-to-draggable",id:this.model.id})}shouldShowDraggableCheckbox(){if(this.controller.isThreeDMode()||this.controller.shouldIgnoreGraphInteractions(this.model))return!1;let e=Xh(this.model);return e?FC(e):_L(this.model)}};var ni=__dcg_shared_module_exports__['e']($());var ko=__dcg_shared_module_exports__['e']($());var Z0=[.05,.1,.15,.2,.35,.5,.75,1,1.5,2,3.5,5,7.5,10,15,20],eX=__dcg_shared_module_exports__['za'](Z0),tX=__dcg_shared_module_exports__['ya'](Z0),Px=class extends ko.Class{init(){this.controller=this.props.controller(),this.model=this.props.model()}template(){return ko.createElement("div",{class:ko.const("dcg-slider-speed-container dcg-do-not-blur"),handleEvent:ko.const("true")},ko.createElement("span",{class:()=>({"dcg-action-slower":!0,"dcg-disabled":this.isSlowerDisabled()}),onTap:()=>this.animateSlower(),role:ko.const("button"),"aria-label":()=>this.getSlowerAriaLabel(),tabindex:()=>this.isSlowerDisabled()?-1:0,"aria-disabled":()=>this.isSlowerDisabled()},ko.createElement("i",{class:ko.const("dcg-icon-show"),"aria-hidden":ko.const("true")})),ko.createElement("span",{class:ko.const("dcg-variable-speed")},this.bindFn(this.computeSpeed),ko.const("x")),ko.createElement("span",{class:()=>({"dcg-action-faster":!0,"dcg-disabled":this.isFasterDisabled()}),onTap:()=>this.animateFaster(),role:ko.const("button"),"aria-label":()=>this.getFasterAriaLabel(),tabindex:()=>this.isFasterDisabled()?-1:0,"aria-disabled":()=>this.isFasterDisabled()},ko.createElement("i",{class:ko.const("dcg-icon-show"),"aria-hidden":ko.const("true")})))}computeSpeed(){var e=__dcg_shared_module_exports__['Sc']/this.model.slider.animationPeriod;return e=Number(e.toFixed(3)),e}isSlowerDisabled(){return eX>=this.computeSpeed()}isFasterDisabled(){return tX<=this.computeSpeed()}animateSlower(){var e=this.computeSpeed(),t=__dcg_shared_module_exports__['ta'](Z0,function(i){return i<e});t.length!==0&&this.setPeriodFromSpeed(__dcg_shared_module_exports__['ya'](t))}animateFaster(){var e=this.computeSpeed(),t=__dcg_shared_module_exports__['ta'](Z0,function(i){return i>e});t.length!==0&&this.setPeriodFromSpeed(__dcg_shared_module_exports__['za'](t))}setPeriodFromSpeed(e){var t=__dcg_shared_module_exports__['Sc']/e;this.controller.dispatch({type:"set-slider-animationperiod",id:this.model.id,animationPeriod:t}),ie(this.controller.s("graphing-calculator-narration-slider-animating-at-speed",{speed:e+""}))}getSlowerAriaLabel(){return this.controller.s("graphing-calculator-narration-slider-animate-slower")}getFasterAriaLabel(){return this.controller.s("graphing-calculator-narration-slider-animate-faster")}};var eD=class extends ni.Class{init(){var e;this.controller=this.props.controller(),this.model=this.props.model(),this.guid=(e=this.controller.getOpenItemMenu())==null?void 0:e.guid}didMount(){uh(this.guid,this.controller)}willUnmount(){hh(this.guid,this.controller)}didMountArrow(e){this.arrowElt=e,ml(this.arrowElt,this.controller)}didUpdate(){ml(this.arrowElt,this.controller)}template(){let e=this.model;return ni.createElement("div",{class:ni.const("dcg-slider-options-view dcg-options-menu")},ni.createElement("div",{class:ni.const("dcg-triangle"),didMount:this.bindFn(this.didMountArrow),didUnmount:()=>this.arrowElt=void 0}),ni.createElement("div",{class:ni.const("dcg-slider-menu")},ni.createElement("div",{role:ni.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-heading-slider-animation-mode")},ni.createElement("div",{role:ni.const("heading"),"aria-level":ni.const("2"),class:ni.const("dcg-title")},()=>this.controller.s("graphing-calculator-heading-slider-animation-mode")),ni.createElement(ri,{ariaGroupLabel:()=>this.controller.s("graphing-calculator-heading-slider-animation-mode"),staticConfig:this.bindFn(this.getAnimationOptions),theme:this.const("mini")}))),ni.createElement("div",{class:ni.const("dcg-slider-menu dcg-slider-speed-menu"),role:ni.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-heading-slider-speed")},ni.createElement("div",{role:ni.const("heading"),"aria-level":ni.const("2"),class:ni.const("dcg-title")},()=>this.controller.s("graphing-calculator-heading-slider-speed")),ni.createElement("div",{class:ni.const("dcg-slider-speed-container")},ni.createElement(Px,{model:()=>e,controller:this.props.controller}))))}getAnimationOptions(){let e=this.model;return["LOOP_FORWARD_REVERSE","LOOP_FORWARD","PLAY_ONCE","PLAY_INDEFINITELY"].map(i=>({key:i,icon:()=>__dcg_shared_module_exports__['k'](i),tooltip:()=>this.getTooltip(i),tooltipGravity:this.const("s"),selected:()=>this.isSelected(i),onSelect:()=>{this.controller.dispatch({type:"set-slider-loopmode",id:e.id,loopMode:i})}}))}getTooltip(e){let t=this.controller.s;switch(e){case"LOOP_FORWARD_REVERSE":return t("graphing-calculator-narration-slider-loop-forwards-and-backwards");case"LOOP_FORWARD":return t("graphing-calculator-narration-slider-repeat-one-direction");case"PLAY_ONCE":return t("graphing-calculator-narration-slider-play-once");case"PLAY_INDEFINITELY":return t("graphing-calculator-narration-slider-play-indefinitely")}}isSelected(e){return this.model.slider.loopMode===e}};var Bn=__dcg_shared_module_exports__['e']($());var{For:rX}=Bn.Components,tD=class extends Bn.Class{init(){var e;this.controller=this.props.controller(),this.model=this.props.model(),this.guid=(e=this.controller.getOpenItemMenu())==null?void 0:e.guid}didMount(){uh(this.guid,this.controller)}willUnmount(){hh(this.guid,this.controller)}didMountArrow(e){this.arrowElt=e,ml(this.arrowElt,this.controller)}didUpdate(){ml(this.arrowElt,this.controller)}template(){let e=this.model;return Bn.createElement("div",{class:()=>({"dcg-table-column-menu":!0,"dcg-options-menu":!0}),role:Bn.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-narration-options-menu")},Bn.createElement(rX,{each:this.bindFn(this.getSections)},Bn.createElement("div",null,t=>{switch(t){case"points":return Bn.createElement(Ym,{model:()=>e,controller:this.props.controller,isOpen:()=>this.isSectionOpen("points"),isFirstOpenSection:()=>this.isFirstOpenSection("points")});case"drag":return Bn.createElement(Jm,{model:()=>e,controller:this.props.controller,isOpen:()=>this.isSectionOpen("drag"),isFirstOpenSection:()=>this.isFirstOpenSection("drag")});case"lines":return Bn.createElement(Hm,{model:()=>e,controller:this.props.controller,isOpen:()=>this.isSectionOpen("lines"),isFirstOpenSection:()=>this.isFirstOpenSection("lines")})}})),Bn.createElement(Mp,{model:()=>e,controller:()=>this.props.controller()}),Bn.createElement("div",{class:Bn.const("dcg-triangle"),didMount:this.bindFn(this.didMountArrow),didUnmount:()=>this.arrowElt=void 0}))}getSections(){return this.model.draggable&&!this.controller.isThreeDMode()&&!this.controller.shouldIgnoreGraphInteractions(this.model)?["points","lines","drag"]:["points","lines"]}isFirstOpenSection(e){let t=this.getSections();for(let i of t){if(i===e)return this.isSectionOpen(e);if(this.isSectionOpen(i))return!1}return!1}isSectionOpen(e){switch(e){case"drag":return this.model.dragMode!=="NONE";case"lines":return!!this.model.lines;case"points":return!!this.model.points}}};var Za=__dcg_shared_module_exports__['e']($());var $r=__dcg_shared_module_exports__['e']($());var gh=__dcg_shared_module_exports__['e']($());var fc=class extends gh.Class{hide({device:e}){this.props.controller().dispatch({type:"dismiss-notice",focusFirstExpression:e==="keyboard"})}template(){return gh.createElement("i",{class:()=>({"dcg-icon-remove":!0,"dcg-close-notice-icon":!0,"dcg-theme-dark":this.props.theme()==="dark","dcg-theme-light":this.props.theme()==="light"}),role:gh.const("button"),tabindex:gh.const("0"),"aria-label":()=>Ka("shared-button-close-message"),onTap:this.bindFn(this.hide)})}};var rD=class extends $r.Class{init(){this.controller=this.props.controller(),this.s=this.controller.s}template(){return $r.createElement("aside",{class:$r.const("dcg-notice dcg-notice--3d")},$r.createElement(fc,{controller:this.props.controller,theme:this.const("dark")}),$r.createElement("h2",{class:$r.const("dcg-notice__title")},()=>this.s("account-shell-text-welcome-to-3d")),$r.createElement("div",{class:$r.const("dcg-notice__message")},$r.createElement(Ip,{i18n:this.props.controller,key:this.const("account-shell-text-3d-expression-list-notice")},$r.const("Please share any bugs, questions, or suggestions at:"),$r.const(" "),$r.createElement("a",{class:$r.const(""),href:$r.const("mailto:feedback@desmos.com")},$r.const("feedback@desmos.com")))),$r.createElement("div",{class:$r.const("dcg-notice__actions")},$r.createElement("a",{class:$r.const("dcg-btn-white-outline dcg-unstyled-button dcg-flexed-notice-btn"),href:$r.const("//blog.desmos.com/articles/beta-3d-release/"),target:$r.const("_blank")},()=>this.s("account-shell-link-read-blog"),$r.createElement("span",{class:$r.const("dcg-sr-only")},()=>this.s("account-shell-link-read-blog"))),$r.createElement("button",{class:$r.const("dcg-unstyled-button dcg-notice__action--primary dcg-flexed-notice-btn"),onTap:()=>{var e,t;return(t=(e=this.controller).showQuestModal)==null?void 0:t.call(e)}},()=>this.s("account-shell-link-try-a-quest"))))}};var ca=__dcg_shared_module_exports__['e']($());var iD=class extends ca.Class{init(){this.controller=this.props.controller()}template(){return ca.createElement("aside",{class:ca.const("dcg-notice dcg-notice--terms")},ca.createElement(fc,{controller:this.props.controller,theme:this.const("light")}),ca.createElement("div",{class:ca.const("dcg-notice__message")},()=>this.controller.s("frontpage-text-header-terms-update")),ca.createElement("div",{class:ca.const("dcg-notice__actions")},ca.createElement("a",{href:ca.const("//blog.desmos.com/articles/desmos-studio-terms-update//"),target:ca.const("_blank"),class:ca.const("dcg-notice__action dcg-btn-gray-outline")},()=>this.controller.s("account-shell-link-read-blog"))))}};var Qa=__dcg_shared_module_exports__['e']($());var oD=class extends Qa.Class{init(){this.controller=this.props.controller()}template(){return Qa.createElement("aside",{class:Qa.const("dcg-notice dcg-notice--art-contest")},Qa.createElement(fc,{controller:this.props.controller,theme:this.const("light")}),Qa.createElement("h2",{class:Qa.const("dcg-notice__title")},()=>this.controller.s("account-shell-label-math-art-contest")),Qa.createElement("div",{class:Qa.const("dcg-notice__message")},()=>this.controller.isGeometry()?this.controller.s("account-shell-label-art-contest-nudge-construction"):this.controller.s("account-shell-label-art-contest-nudge-graph")),Qa.createElement("button",{onTap:()=>{this.controller.showContestDropdown(),this.controller.dispatch({type:"dismiss-notice"})},class:Qa.const("dcg-btn-gray-outline")},()=>this.controller.s("account-shell-label-join-contest")))}};var fd=__dcg_shared_module_exports__['e']($());var nD=class extends fd.Class{init(){this.controller=this.props.controller()}template(){return fd.createElement("aside",{class:fd.const("dcg-notice dcg-notice--upcoming-maintenance")},fd.createElement(fc,{controller:this.props.controller,theme:this.const("light")}),fd.createElement("div",{class:fd.const("dcg-notice__message")},()=>this.controller.raw("Desmos will be undergoing scheduled maintenance starting around 2PM ET on Saturday, April 6th.")))}};var{Switch:iX}=Za.Components,aD=class extends Za.Class{template(){return Za.createElement("div",{class:Za.const("dcg-notice-wrapper")},Za.createElement(iX,{key:this.props.id},e=>{switch(e){case"3d-art-contest":return Za.createElement(rD,{controller:this.props.controller});case"art-contest":return Za.createElement(oD,{controller:this.props.controller});case"terms":return Za.createElement(iD,{controller:this.props.controller});case"upcoming-maintenance":return Za.createElement(nD,{controller:this.props.controller})}}))}};var{If:_s,IfDefined:sD,For:oX,Switch:PK,SwitchUnion:nX,IfElse:aX}=Pe.Components,Lx=class extends Pe.Class{constructor(){super(...arguments),this.guid=__dcg_shared_module_exports__['Ua']("listView")}init(){this.controller=this.props.controller()}template(){return Pe.createElement("div",{didMount:this.bindFn(this.didMountContainer)},Pe.createElement("div",{class:Pe.const("dcg-exppanel-outer"),onDrop:this.bindFn(this.onDrop),style:()=>this.computeExppanelOuterStyle()},Pe.createElement(_s,{predicate:()=>this.controller.isFileDraggedOver()},()=>Pe.createElement("div",{class:Pe.const("dcg-drop-image")},Pe.createElement("span",null,()=>this.controller.s("graphing-calculator-label-drop-image-here")))),Pe.createElement("div",{class:()=>{var e;return{"dcg-exppanel-container":!0,"dcg-add-shadow":this.controller.shouldRenderList(),"dcg-global-mute-on":!!((e=this.controller.toneController)!=null&&e.isGlobalMuted())}},style:()=>({transform:this.controller.isListVisible()?void 0:this.controller.isNarrow()?"translate(0, 100%)":"translate(-100%, 0)"})},Pe.createElement(_s,{predicate:()=>this.controller.shouldRenderList()},()=>Pe.createElement(Ax,{controller:this.props.controller,expsScrolled:()=>!!this.exppanel&&this.exppanel.scrollTop>0})),Pe.createElement(_s,{predicate:()=>this.controller.getExpressionSearchOpen()},()=>Pe.createElement(_0,{controller:this.props.controller,expsScrolled:()=>!!this.exppanel&&this.exppanel.scrollTop>0})),Pe.createElement(_s,{predicate:()=>this.controller.getTickerVisible()},()=>Pe.createElement(F0,{controller:this.props.controller,expsScrolled:()=>!!this.exppanel&&this.exppanel.scrollTop>0})),Pe.createElement(_s,{predicate:()=>this.controller.shouldRenderList()},()=>Pe.createElement("div",{class:()=>({"dcg-exppanel":!0,"dcg-disable-horizontal-scroll-to-cursor":!0,"dcg-isDragging":this.controller.isDragDropActive(),"dcg-has-background-color":this.controller.hasBackgroundColor(),"dcg-edit-list-mode":this.controller.isInEditListMode()}),onPaste:this.bindFn(this.onPaste),onTapStart:this.bindFn(this.onExppanelTapstart),didMount:this.bindFn(this.didMountExppanel)},Pe.createElement("div",{class:Pe.const("dcg-expressionlist"),role:Pe.const("region"),"aria-label":()=>this.controller.s("shared-calculator-narration-expression-list")},Pe.createElement(_s,{predicate:()=>this.controller.getShowConstructionsOpen()},()=>Pe.createElement(R0,{controller:this.props.controller,onDragPending:(e,t)=>this.onDragPending(e,t)})),Pe.createElement(oX,{each:()=>this.controller.getAllItemModels(),key:e=>e.guid},Pe.createElement("span",{class:Pe.const("dcg-template-expressioneach")},e=>nX(()=>l2(e),{shell:()=>this.makeShellViewForModel(e),render:()=>this.makeViewForModel(e),none:()=>{}}))),Pe.createElement(Tx,{controller:()=>this.props.controller()}),Pe.createElement(PK,{key:()=>this.controller.getDraggedItemId()},e=>{if(e){let t=this.controller.getItemModel(e);return Pe.createElement(kx,{controller:this.props.controller},this.makeDragCopyViewForModel(t))}else return}),Pe.createElement("span",{style:Pe.const("flex:1")}),Pe.createElement(_s,{predicate:()=>!!this.controller.getNoticeId()&&!this.controller.isKeypadOpen()},()=>Pe.createElement(aD,{controller:this.const(this.controller),id:()=>this.controller.getNoticeId()})),Pe.createElement(_s,{predicate:()=>!this.controller.isKeypadOpen()},()=>Pe.createElement("div",{class:Pe.const("dcg-expressions-branding")},aX(()=>this.controller.canEditOnWeb(),{true:()=>Pe.createElement("span",{role:Pe.const("link"),tabindex:Pe.const(0),class:Pe.const("dcg-edit-branding"),onTap:()=>this.controller.dispatch({type:"open-on-web"})},Pe.createElement("div",{class:Pe.const("dcg-powered-by"),"aria-label":()=>this.controller.s("graphing-calculator-narration-edit-graph-on-desmos")},()=>this.controller.s("graphing-calculator-button-edit-graph-on-desmos-logo")),Pe.createElement("i",{class:Pe.const("dcg-icon-desmos"),"aria-hidden":Pe.const("true")})),false:()=>Pe.createElement("div",null,Pe.createElement("div",{class:Pe.const("dcg-powered-by"),"aria-label":()=>this.controller.s("graphing-calculator-narration-powered-by-desmos")},()=>this.controller.s("graphing-calculator-label-powered-by")),Pe.createElement("i",{class:Pe.const("dcg-icon-desmos"),"aria-hidden":Pe.const("true")}))}))))))),Pe.createElement(O0,{controller:this.props.controller})),Pe.createElement(_s,{predicate:()=>this.isOptionsViewOpen("expression")},()=>Pe.createElement(ks,{menuType:this.const("expression"),menuButtonFocusLocation:()=>{let e=this.getActiveExpressionModelForOptionsView();return e?{type:"expression-icon",id:e.id}:void 0},...this.getSharedDropdownWrapperProps()},sD(this.bindFn(this.getActiveExpressionModelForOptionsView),e=>Pe.createElement(Xm,{controller:this.props.controller,model:e})))),Pe.createElement(_s,{predicate:()=>this.isOptionsViewOpen("image")},()=>Pe.createElement(ks,{menuType:this.const("image"),menuButtonFocusLocation:()=>{let e=this.getActiveImageModelForOptionsView();return e?{type:"image-icon",id:e.id}:void 0},...this.getSharedDropdownWrapperProps()},sD(this.bindFn(this.getActiveImageModelForOptionsView),e=>Pe.createElement(Q0,{controller:this.props.controller,model:e})))),Pe.createElement(_s,{predicate:()=>this.isOptionsViewOpen("slider")},()=>Pe.createElement(ks,{menuType:this.const("slider"),menuButtonFocusLocation:()=>{let e=this.getActiveSliderModelForOptionsView();return e?{type:"slider-icon",id:e.id}:void 0},...this.getSharedDropdownWrapperProps()},sD(this.bindFn(this.getActiveSliderModelForOptionsView),e=>Pe.createElement(eD,{controller:this.props.controller,model:e})))),Pe.createElement(_s,{predicate:()=>this.isOptionsViewOpen("table-column")},()=>Pe.createElement(ks,{menuType:this.const("table-column"),menuButtonFocusLocation:()=>{let e=this.getActiveColumnModelForOptionsView();return e?{type:"table-icon",id:e.table.id,columnId:e.id}:void 0},...this.getSharedDropdownWrapperProps()},sD(this.bindFn(this.getActiveColumnModelForOptionsView),e=>Pe.createElement(tD,{controller:this.props.controller,model:e})))))}getSharedDropdownWrapperProps(){return{rootElSelector:this.const(".dcg-container"),openAriaAlert:this.const(this.controller.s("graphing-calculator-narration-options-menu-open")),closeAriaAlert:this.const(this.controller.s("graphing-calculator-narration-options-menu-closed")),focusOnOpen:this.bindFn(this.optionsViewFocusLocation),shouldHandleTabAndEscape:this.const(!0),controller:this.props.controller}}optionsViewFocusLocation(){let e=this.controller.getOpenItemMenu();if(!e||!("model"in e))return"none";let{model:t}=e;if(!t)return"none";let i=this.controller.getFocusLocation();if(!i||i.type!=="expression-menu"||i.id!==t.id)return"none";switch(i.location){case"start":return"first";case"end":return"last";default:return"none"}}getActiveSliderModelForOptionsView(){let e=this.controller.getOpenItemMenu();return e&&e.type==="slider"&&"model"in e?e.model:void 0}getActiveImageModelForOptionsView(){let e=this.controller.getOpenItemMenu();return e&&e.type==="image"&&"model"in e?e.model:void 0}getActiveExpressionModelForOptionsView(){let e=this.controller.getOpenItemMenu();return e&&e.type==="expression"&&"model"in e?e.model:void 0}getActiveColumnModelForOptionsView(){let e=this.controller.getOpenItemMenu();return e&&e.type==="table-column"&&"model"in e?e.model:void 0}isOptionsViewOpen(e){let t=this.controller.getOpenItemMenu();return!!t&&t.type===e}makeShellViewForModel(e){return Pe.createElement(Dx,{controller:this.props.controller,model:()=>e,onDragPending:()=>{},isDragCopy:()=>!1})}computeExppanelOuterStyle(){this.getListBottomAndUpdateLastExpressionPadding();let{list:e}=this.controller.computeMajorLayout(),t=0,i=e.top;return e.top>0&&!this.controller.isListVisible()&&(i-=e.height),{position:"absolute",left:t+"px",top:i+"px",width:e.width+"px",height:e.height+"px"}}makeDragCopyViewForModel(e){return this.makeViewForModel(e,!0)}makeViewForModel(e,t=!1){var i;if(e.type==="table")i=Pe.createElement(wx,{controller:this.props.controller,model:()=>e,onDragPending:o=>this.onDragPending(o,{type:"expression",calcId:e.id}),isDragCopy:()=>t});else if(e.type==="folder")i=Pe.createElement(vx,{controller:this.props.controller,model:()=>e,onDragPending:o=>this.onDragPending(o,{type:"expression",calcId:e.id}),isDragCopy:()=>t});else if(e.type==="text")i=Pe.createElement(mx,{controller:this.props.controller,model:()=>e,onDragPending:o=>this.onDragPending(o,{type:"expression",calcId:e.id}),isDragCopy:()=>t});else if(e.type==="image")i=Pe.createElement(Sx,{controller:this.props.controller,model:()=>e,onDragPending:o=>this.onDragPending(o,{type:"expression",calcId:e.id}),isDragCopy:()=>t});else if(e.type==="expression")i=Pe.createElement(PK,{key:()=>t&&this.controller.shouldRenderDraggedItemAsToken()},o=>o?Pe.createElement(Xl,{showParentChildrenHover:this.const(!1),controller:this.props.controller,identifier:()=>this.controller.getDraggedIdentifier(),insideMQ:this.const(!1),insideGroup:this.const(!1),putInTabOrder:()=>!1}):Pe.createElement(ch,{controller:this.props.controller,model:()=>e,onDragPending:n=>this.onDragPending(n,{type:"expression",calcId:e.id}),isDragCopy:()=>t}));else return;return i}didUnmount(){W(document.documentElement).off("."+this.guid)}didMountContainer(e){this.node=e,W(document.documentElement).on("keydown."+this.guid,this.bindFn(this.handleKeyDown))}didMountExppanel(e){this.exppanel=e,e.onscroll=()=>this.controller.markTickRequiredNextFrame()}getListBottomAndUpdateLastExpressionPadding(){let e=this.controller.getKeypadHeight(),t=this.__listBottom||0;return this.__listBottom=e,e===0&&t!==0&&JI()&&this.padLastExpressionUntilTapEnd(t),e}padLastExpression(e){let t=this.node.querySelector(".dcg-expressionitem.dcg-new-expression");t.style.marginBottom=e+"px"}unpadLastExpression(){let e=this.node.querySelector(".dcg-expressionitem.dcg-new-expression");e.style.marginBottom="0"}padLastExpressionUntilTapEnd(e){this.padLastExpression(e),W(document).on("dcg-tap.animating-bottom",()=>{this.unpadLastExpression(),W(document).off("dcg-tap.animating-bottom")})}handleKeyDown(e){var a;if(this.controller.inAudioTraceMode())return;let t=ue(e),i=Ai(e),o=this.controller.getSelectedItem();if(!o){(t===Ss||t===Yg)&&!this.controller.needsFakeKeypad()&&this.controller.hasMultipleItemsSelected()&&this.controller.dispatch({type:"delete-all-selected-items"});return}if(e.altKey&&!e.ctrlKey&&!e.metaKey&&e.shiftKey&&i==="T"&&o){if(!this.controller.isGeometry()||!hs(o))return;e.preventDefault(),e.stopPropagation(),this.controller.convertToTokenAssignment(o);let s=this.controller.getGeometryFolder();if(s){let c=s.index+this.controller.getNumberOfItemsInFolder(s.id);Po(o,s.id),o.index!==c&&Fd(this.controller.getListModel(),o.index,c,1)}this.controller.ensureAtLeastOneVisibleItem();let l=(a=Ii(o))==null?void 0:a.identifier;l&&this.controller.getShowConstructionsOpen()&&this.controller.dispatch({type:"set-focus-location",location:{type:"geo-token",identifier:l}});return}let n=this.controller.getFocusLocation();if(e.ctrlKey&&e.shiftKey&&!e.metaKey&&!e.altKey&&n!==void 0){if(i==="O"){e.preventDefault(),e.stopPropagation();let s;if(o.type==="expression")!o.sliderExists&&!Mg(o)?(s={type:"expression",model:o,guid:o.guid,focusFirstOption:!0,previousFocusLocation:n},this.controller.dispatch({type:"set-focus-location",location:{type:"expression-icon",id:o.id}})):o.sliderExists&&(s={type:"slider",model:o,guid:"slider-"+o.guid,focusFirstOption:!0,previousFocusLocation:n},this.controller.dispatch({type:"set-focus-location",location:{type:"slider-animation-properties-icon",id:o.id}}));else if(o.type==="image")s={type:"image",model:o,guid:o.guid,focusFirstOption:!0,previousFocusLocation:n},this.controller.dispatch({type:"set-focus-location",location:{type:"image-icon",id:o.id}});else if(o.type==="table"&&n.type==="table"){let l=n.location;if(!l)return;let c=o.columnModels[l.column];if(!c||c.latex===""||!this.controller.getGraphSettings().config.graphpaper||c.error||c.index===0)return;s={type:"table-column",model:c,guid:c.guid,focusFirstOption:!0,previousFocusLocation:n},this.controller.dispatch({type:"set-focus-location",location:{type:"table-icon",id:o.id,columnId:c.id}})}if(!s)return;this.controller.dispatch({type:"toggle-item-settings-menu",menu:s});return}else if(i==="D"){if(this.controller.isItemReadonly(o.id)&&!this.controller.isInEditListMode())return;e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"delete-item-and-animate-out",id:o.id,setFocusAfterDelete:!0});return}}if(this.controller.isInEditListMode()&&!e.altKey&&!e.ctrlKey&&!e.metaKey){if(t===il&&n!==void 0){let s=this.controller.getItemModelByIndex(0);if(!s)return;let l=(n.type==="readonly-expression"&&s.type==="expression"||n.type==="table-container"&&s.type==="table"||n.type===s.type)&&n.id===s.id,c={type:"edit-list-toggle"},d=this.controller.isFocusLocationFocused(c);e.shiftKey&&l?(e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"set-focus-location",location:c})):!e.shiftKey&&d&&(e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"move-focus-to-item",id:s.id,where:s.type==="table"?"container":void 0}))}else if(t===rn||t===wn){let s=this.controller.getListModel(),l=t===rn?cu(s,o.index):du(s,o.index);if(!l)return;this.controller.dispatch({type:"move-focus-to-item",id:l.id,where:l.type==="table"?"container":"start"})}return}if(t===_o&&this.controller.getExpressionSearchOpen()&&this.controller.dispatch({type:"close-expression-search"}),!(document.activeElement&&W.contains(document.body,document.activeElement))&&!this.exppanel.contains(e.target)&&W.contains(document.documentElement,e.target))switch(t){case rn:e.preventDefault(),this.controller.dispatch({type:"select-previous-expression"});break;case wn:e.preventDefault(),this.controller.dispatch({type:"select-next-expression"});break;case _o:e.preventDefault(),this.controller.dispatch({type:"set-none-selected"});break;case Jl:e.preventDefault(),o&&(o.type==="expression"&&o.sliderExists?(this.controller.dispatch({type:"adjust-slider-by-keyboard",id:o.id,adjustment:"up"}),this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:o.id}})):this.controller.dispatch({type:"move-focus-to-item",id:o.id,where:"start"}));break;case il:e.preventDefault(),o&&this.controller.dispatch({type:"move-focus-to-item",id:o.id,where:"start"});break;case jl:e.preventDefault(),o&&(o.type==="expression"&&o.sliderExists?(this.controller.dispatch({type:"adjust-slider-by-keyboard",id:o.id,adjustment:"down"}),this.controller.dispatch({type:"set-focus-location",location:{type:"slider-thumb",id:o.id}})):this.controller.dispatch({type:"move-focus-to-item",id:o.id,where:"end"}));break;case Ss:e.preventDefault(),o&&!this.controller.isItemReadonly(o.id)&&this.controller.dispatch({type:"upward-delete-selected-expression"});break;case Yg:e.preventDefault(),o&&!this.controller.isItemReadonly(o.id)&&this.controller.dispatch({type:"downward-delete-selected-expression"});break;case qa:e.wasHandled("create-expression-with-keyboard")||(e.preventDefault(),e.handle("create-expression-with-keyboard"),o&&this.controller.dispatch({type:"on-special-key-pressed",key:"Enter"}));break;default:if(e.metaKey||e.ctrlKey||t===Yb||t===ep)return;o&&(o.type==="table"||this.controller.dispatch({type:"move-focus-to-item",id:o.id,where:"end"}))}}onDragPending(e,t){e.preventDefault(),Pr();var i={x:e.touches[0].clientX,y:e.touches[0].clientY},o={x:i.x,y:i.y},n=setTimeout(()=>{W(document).off(".dragpending"),this.onDragStart(e,t,i,o)},500);W(document).on("dcg-tapmove.dragpending",a=>{o={x:a.touches[0].clientX,y:a.touches[0].clientY},(Math.abs(o.y-i.y)>3||Math.abs(o.x-i.x)>3)&&(clearTimeout(n),W(document).off(".dragpending"),this.onDragStart(e,t,i,o))}),W(document).on("dcg-tapend.dragpending",function(){clearTimeout(n),W(document).off(".dragpending")})}onDragStart(e,t,i,o){e.touches.length===1&&(e.wasHandled("dcg-longhold")||this.controller.dispatch({type:"start-dragdrop",dragTarget:t,grabPt:i,mousePt:o}))}onExppanelTapstart(e){e.device!=="mouse"&&(e.target.closest(".dcg-expressionitem")||Pr())}onPaste(e){let t=this.controller.getGraphSettings().config;var i=uK(e);if(!i)return;var o=this.controller.getSelectedItem();if(this.controller.canLoadPastedLink(i)&&o&&o.type==="folder"&&o.title===""){e.stopPropagation(),e.preventDefault(),L0(this.controller,i,(a,s)=>s(null,a));return}if(o&&(o.type==="text"||o.type==="folder"))return;if(this.controller.canLoadPastedLink(i)){e.stopPropagation(),e.preventDefault();let a=t.pasteGraphLinkCallback?t.pasteGraphLinkCallback:(s,l)=>l(null,s);L0(this.controller,i,a);return}if(t.pasteTableData){let a=dK(i);if(a!==void 0)return e.stopPropagation(),e.preventDefault(),this.controller.dispatch({type:"paste-table",data:a})}let n=cK(i);if(n!==void 0){e.stopPropagation(),e.preventDefault();let a=[];n.length===1&&n[0].numberList?this.controller.dispatch({type:"append-number-list",latex:n[0].content}):(n.forEach(s=>{a.push({type:"expression",id:this.controller.generateId(),latex:s.content})}),this.controller.dispatch({type:"insert-several-expressions",expressions:a}));return}}onDrop(e){if(!this.controller.areImagesEnabled())return;let t=e.dataTransfer&&e.dataTransfer.files;t&&t.length&&this.controller.dispatch({type:"new-images",files:t})}};var ct=__dcg_shared_module_exports__['e']($());var LK=__dcg_shared_module_exports__['e']($());var C1=class C1 extends LK.Class{init(){this.controller=this.props.controller(),this.dispatch=this.controller.dispatch,this.s=this.controller.s}};C1.uuid=cp();var Ci=C1;var tf=__dcg_shared_module_exports__['e']($());var bd=__dcg_shared_module_exports__['e']($()),St=class extends bd.Class{template(){return bd.createElement("div",{class:()=>({"dcg-keypad-btn-container":!0,"dcg-disabled":this.isDisabled()}),style:()=>({"flex-grow":this.getColSpan()})},bd.createElement("span",{role:bd.const("button"),class:this.bindFn(this.getClasses),"dcg-command":this.props.command,"aria-label":this.bindFn(this.getAriaLabel),"aria-disabled":this.bindFn(this.isDisabled),"aria-controls":this.props.ariaControls?this.props.ariaControls:this.const(void 0),"aria-expanded":this.props.ariaExpanded?this.bindFn(this.getAriaExpanded):this.const(void 0),onTap:()=>{this.isDisabled()||this.props.onTap()}},bd.createElement("span",{class:bd.const("dcg-keypad-btn-content")},this.children)))}getClasses(){let e={"dcg-keypad-btn":!0,"dcg-keypad-btn-active":this.isActive()},t=this.props.style();switch(t){case"default":e["dcg-btn-light-on-gray"]=!0;break;case"highlight":e["dcg-btn-dark-on-gray"]=!0;break;case"popover":e["dcg-btn-light-gray"]=!0;break;case"blue":e["dcg-btn-short-blue"]=!0;break;case"tall-blue":e["dcg-btn-tall-blue"]=!0;break;default:return t}return e}isActive(){return this.props.active?this.props.active():!1}getAriaLabel(){return this.props.ariaLabel?this.props.ariaLabel():this.props.command()}getColSpan(){if(this.props.colspan)return this.props.colspan()}isDisabled(){return this.props.disabled&&this.props.disabled()}getAriaExpanded(){return this.props.ariaExpanded?this.props.ariaExpanded():void 0}};var B=__dcg_shared_module_exports__['e']($()),{IfElse:FK,If:OK,Switch:sX}=B.Components;function Mt(r,e){return r===void 0?B.const(e):typeof r=="function"?r:B.const(r)}function Qm(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command||r.typedText||r.keys[0]),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):r.typedText||r.keys[0],colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>t({type:"keypad/type-text",text:r.typedText||r.keys[0]})},FK(()=>r.keys[0]==="{"||r.keys[0]==="[",{true:()=>B.createElement("span",{class:B.const("dcg-mq-math-mode"),style:B.const("font-size: 120%")},B.const(r.keys[0]),B.const("\xA0"),B.createElement("span",{style:B.const("color: #999")},B.const(r.keys[1]))),false:()=>B.createElement("span",{class:B.const("dcg-either-or-btn")},B.createElement(ke,{config:B.const({}),latex:B.const(r.keys[0])}),B.createElement("span",{style:B.const("color: #999")},B.createElement(ke,{config:B.const({}),latex:B.const(r.keys[1])})))}))}function Zm(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command||r.typedText||r.keys[1]),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):r.typedText||r.keys[0],colspan:Mt(i.colspan,1),style:Mt(i.style,"default"),onTap:()=>t({type:"keypad/type-text",text:r.typedText||r.keys[1]})},FK(()=>r.keys[1]==="}"||r.keys[1]==="]",{true:()=>B.createElement("span",{class:B.const("dcg-mq-math-mode"),style:B.const("font-size: 120%")},B.createElement("span",{style:B.const("color: #999")},B.const(r.keys[0])),B.const("\xA0"),B.const(r.keys[1])),false:()=>B.createElement("span",null,B.createElement("span",{style:B.const("color: #999")},B.createElement(ke,{config:B.const({}),latex:B.const(r.keys[0])})),B.createElement(ke,{config:B.const({}),latex:B.const(r.keys[1])}))}))}function lX(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):e,colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>{t({type:"keypad/audio-trace",command:r.command})}},B.createElement(OK,{predicate:B.const(r.iconClass!==void 0)},()=>B.createElement("span",{class:()=>({"dcg-button-icon":!0,"dcg-icon-only":r.contentKey===void 0})},B.createElement("i",{class:B.const(r.iconClass),"aria-hidden":B.const("true")}))),B.createElement(OK,{predicate:B.const(r.contentKey!==void 0)},()=>B.createElement("span",null,()=>o(r.contentKey)||e)))}function ce(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command||e),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):e,colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>t({type:"keypad/type-text",text:r.typedText||e})},B.createElement(ke,{config:B.const({}),latex:B.const(r.content||e)}))}function _K(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command||e),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):e,colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>t({type:"keypad/type-text",text:r.typedText||e})},B.createElement("span",{class:B.const("dcg-mq-math-mode")},B.const(r.content||e)))}function me(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(e),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):e,colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>t({type:"keypad/type-text",text:e+"("})},B.createElement(sX,{key:()=>e.match(/^[a-z]{2,}$/)},n=>n?B.createElement("span",{class:B.const("dcg-mq-math-mode dcg-static-mathquill-view")},B.createElement("span",{class:B.const("dcg-mq-root-block")},B.createElement("span",{class:B.const("dcg-mq-operator-name")},()=>e))):B.createElement(ke,{config:B.const({}),latex:B.const(e)})))}function Yo(r){return(e,t,i={},o)=>B.createElement(St,{command:B.const(r.command),ariaLabel:()=>r.ariaLabelKey?o(r.ariaLabelKey):r.command,colspan:Mt(i.colspan,1),style:()=>i.style||"default",onTap:()=>{t({type:"keypad/custom-command",command:r.command})}},B.createElement(ke,{config:B.const({}),latex:B.const(r.content)}))}var cX={"{":_K({ariaLabelKey:"shared-calculator-narration-keypad-key-left-bracket"}),"}":_K({ariaLabelKey:"shared-calculator-narration-keypad-key-right-bracket"}),"(":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-left-paren"}),")":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-right-paren"}),sqrt:ce({content:"\\sqrt{}",ariaLabelKey:"shared-calculator-narration-keypad-key-sqrt"}),"/":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-divide"}),division:ce({content:"\xF7",typedText:"/",command:"/",ariaLabelKey:"shared-calculator-narration-keypad-key-divide"}),obelus:ce({content:"\xF7",typedText:"\xF7",ariaLabelKey:"shared-calculator-narration-keypad-key-divide"}),"*":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-times"}),multiplication:ce({content:"\xD7",typedText:"*",command:"*",ariaLabelKey:"shared-calculator-narration-keypad-key-times"}),"\xB1":ce({ariaLabelKey:"shared-calculator-narration-keypad-plus-minus"}),"-":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-minus"}),"+":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-plus"}),".":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-decimal"}),ans:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-ans"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/type-text",text:r})},B.const("ans")),enter:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-enter"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/press-key",key:"Enter"})},B.createElement("i",{class:B.const("dcg-icon-arrow-enter"),"aria-hidden":B.const("true")})),undo:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-enter"),colspan:Mt(t.colspan,1),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"undo",source:"button-tap"})},B.createElement("i",{class:B.const("dcg-icon-undo"),"aria-hidden":B.const("true")})),redo:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-enter"),colspan:Mt(t.colspan,1),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"redo",source:"button-tap"})},B.createElement("i",{class:B.const("dcg-icon-redo"),"aria-hidden":B.const("true")})),shift:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-shift"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",active:Mt(t.active,!1),onTap:()=>e({type:"keypad/shift"})},B.createElement("i",{class:B.const("dcg-icon-shift"),"aria-hidden":B.const("true")})),left:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-left-arrow"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/press-key",key:"Left"})},B.createElement("i",{class:B.const("dcg-icon-arrow-left"),"aria-hidden":B.const("true")})),right:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-right-arrow"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/press-key",key:"Right"})},B.createElement("i",{class:B.const("dcg-icon-arrow-right"),"aria-hidden":B.const("true")})),123:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-toggle-numbers"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/123"})},B.const("1 2 3")),ABC:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-toggle-letters"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/abc"})},B.const("A B C")),Audio:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-toggle-audio-trace"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"on"})},B.createElement("i",{class:B.const("dcg-icon-volume"),"aria-hidden":B.const("true")})),backspace:(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("shared-calculator-narration-keypad-key-backspace"),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/press-key",key:"Backspace"})},B.createElement("i",{class:B.const("dcg-icon-delete"),"aria-hidden":B.const("true")})),pi:ce({content:"\\pi",ariaLabelKey:"shared-calculator-narration-keypad-key-pi"}),alpha:ce({content:"\\alpha",ariaLabelKey:"shared-calculator-narration-keypad-key-alpha"}),beta:ce({content:"\\beta",ariaLabelKey:"shared-calculator-narration-keypad-key-beta"}),theta:ce({content:"\\theta",ariaLabelKey:"shared-calculator-narration-keypad-key-theta"}),tau:ce({content:"\\tau",ariaLabelKey:"shared-calculator-narration-keypad-key-tau"}),phi:ce({content:"\\phi",ariaLabelKey:"shared-calculator-narration-keypad-key-phi"}),rho:ce({content:"\\rho",ariaLabelKey:"shared-calculator-narration-keypad-key-rho"}),"a^2":Yo({command:"a^2",content:"a^2",ariaLabelKey:"shared-calculator-narration-keypad-key-squared"}),"a^3":Yo({command:"a^3",content:"a^3",ariaLabelKey:"shared-calculator-narration-keypad-key-cubed"}),"x^3":Yo({command:"a^3",content:"x^3",ariaLabelKey:"shared-calculator-narration-keypad-key-cubed"}),"a^b":ce({content:"a^b",typedText:"^",ariaLabelKey:"shared-calculator-narration-keypad-key-superscript"}),a_b:ce({content:"a_b",typedText:"_",ariaLabelKey:"shared-calculator-narration-keypad-key-subscript"}),"a/b":Yo({content:"\\frac{a}{b}",command:"a/b",ariaLabelKey:"shared-calculator-narration-keypad-key-fraction"}),"x^2":Yo({command:"a^2",content:"x^2",ariaLabelKey:"shared-calculator-narration-keypad-key-squared"}),"x^y":ce({content:"x^y",typedText:"^",ariaLabelKey:"shared-calculator-narration-keypad-key-superscript"}),"x/y":ce({content:"\\frac{x}{y}",typedText:"/",ariaLabelKey:"shared-calculator-narration-keypad-key-fraction"}),nthroot:Yo({command:"nthroot",content:"\\sqrt[n]{}",ariaLabelKey:"shared-calculator-narration-keypad-key-nthroot"}),ythroot:Yo({command:"nthroot",content:"\\sqrt[y]{}",ariaLabelKey:"shared-calculator-narration-keypad-key-ythroot"}),sin:me({ariaLabelKey:"shared-calculator-narration-keypad-key-sin"}),cos:me({ariaLabelKey:"shared-calculator-narration-keypad-key-cos"}),tan:me({ariaLabelKey:"shared-calculator-narration-keypad-key-tan"}),tone:me({ariaLabelKey:"shared-calculator-narration-keypad-key-tone"}),sec:me({ariaLabelKey:"shared-calculator-narration-keypad-key-sec"}),csc:me({ariaLabelKey:"shared-calculator-narration-keypad-key-csc"}),cot:me({ariaLabelKey:"shared-calculator-narration-keypad-key-cot"}),sinh:me({ariaLabelKey:"shared-calculator-narration-keypad-key-sinh"}),cosh:me({ariaLabelKey:"shared-calculator-narration-keypad-key-cosh"}),tanh:me({ariaLabelKey:"shared-calculator-narration-keypad-key-tanh"}),sech:me({ariaLabelKey:"shared-calculator-narration-keypad-key-csch"}),csch:me({ariaLabelKey:"shared-calculator-narration-keypad-key-csch"}),coth:me({ariaLabelKey:"shared-calculator-narration-keypad-key-coth"}),arcsin:Yo({command:"arcsin",content:"sin^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arcsin"}),arccos:Yo({command:"arccos",content:"cos^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arccos"}),arctan:Yo({command:"arctan",content:"tan^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arctan"}),arccsc:Yo({command:"arccsc",content:"csc^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arccsc"}),arcsec:Yo({command:"arcsec",content:"sec^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arcsec"}),arccot:Yo({command:"arccot",content:"cot^{-1}",ariaLabelKey:"shared-calculator-narration-keypad-key-arccot"}),"|a|":ce({typedText:"|",ariaLabelKey:"shared-calculator-narration-keypad-key-abs"}),"|x|":ce({typedText:"|",ariaLabelKey:"shared-calculator-narration-keypad-key-abs"}),ln:me({ariaLabelKey:"shared-calculator-narration-keypad-key-ln"}),midpoint:me({ariaLabelKey:"shared-calculator-narration-keypad-key-midpoint"}),segment:me({ariaLabelKey:"shared-calculator-narration-keypad-key-segment"}),line:me({ariaLabelKey:"shared-calculator-narration-keypad-key-line"}),ray:me({ariaLabelKey:"shared-calculator-narration-keypad-key-ray"}),parallel:me({ariaLabelKey:"shared-calculator-narration-keypad-key-parallel"}),perpendicular:me({ariaLabelKey:"shared-calculator-narration-keypad-key-perpendicular"}),circle:me({ariaLabelKey:"shared-calculator-narration-keypad-key-circle"}),arc:me({ariaLabelKey:"shared-calculator-narration-keypad-key-arc"}),angle:me({ariaLabelKey:"shared-calculator-narration-keypad-key-angle"}),directedangle:me({ariaLabelKey:"shared-calculator-narration-keypad-key-directed-angle"}),glider:me({ariaLabelKey:"shared-calculator-narration-keypad-key-glider"}),coterminal:me({ariaLabelKey:"shared-calculator-narration-keypad-key-coterminal"}),supplement:me({ariaLabelKey:"shared-calculator-narration-keypad-key-supplement"}),dilate:me({ariaLabelKey:"shared-calculator-narration-keypad-key-dilate"}),rotate:me({ariaLabelKey:"shared-calculator-narration-keypad-key-rotate"}),translate:me({ariaLabelKey:"shared-calculator-narration-keypad-key-translate"}),reflect:me({ariaLabelKey:"shared-calculator-narration-keypad-key-reflect"}),vertices:me({ariaLabelKey:"shared-calculator-narration-keypad-key-vertices"}),angles:me({ariaLabelKey:"shared-calculator-narration-keypad-key-angles"}),directedangles:me({ariaLabelKey:"shared-calculator-narration-keypad-key-directed-angles"}),segments:me({ariaLabelKey:"shared-calculator-narration-keypad-key-segments"}),radius:me({ariaLabelKey:"shared-calculator-narration-keypad-key-radius"}),center:me({ariaLabelKey:"shared-calculator-narration-keypad-key-center"}),intersection:me({ariaLabelKey:"shared-calculator-narration-keypad-key-intersection"}),area:me({ariaLabelKey:"shared-calculator-narration-keypad-key-area"}),perimeter:me({ariaLabelKey:"shared-calculator-narration-keypad-key-perimeter"}),log:me({ariaLabelKey:"shared-calculator-narration-keypad-key-log"}),quantile:me({ariaLabelKey:"shared-calculator-narration-keypad-key-quantile"}),quartile:me({ariaLabelKey:"shared-calculator-narration-keypad-key-quartile"}),var:me({}),varp:me({}),nCr:me({}),loga:Yo({command:"loga",content:"log_a",ariaLabelKey:"shared-calculator-narration-keypad-key-loga"}),stdev:me({ariaLabelKey:"shared-calculator-narration-keypad-key-stdev"}),mad:me({}),nPr:me({}),total:me({}),count:me({}),length:me({}),for:me({}),min:me({}),max:me({}),cov:me({ariaLabelKey:"shared-calculator-narration-keypad-key-cov"}),covp:me({ariaLabelKey:"shared-calculator-narration-keypad-key-covp"}),corr:me({ariaLabelKey:"shared-calculator-narration-keypad-key-corr"}),spearman:me({ariaLabelKey:"shared-calculator-narration-keypad-key-spearman"}),stats:me({ariaLabelKey:"shared-calculator-narration-keypad-key-stats"}),polygon:me({ariaLabelKey:"shared-calculator-narration-keypad-key-polygon"}),distance:me({ariaLabelKey:"shared-calculator-narration-keypad-key-distance"}),triangle:me({ariaLabelKey:"shared-calculator-narration-keypad-key-triangle"}),sphere:me({ariaLabelKey:"shared-calculator-narration-keypad-key-sphere"}),vector:me({ariaLabelKey:"shared-calculator-narration-keypad-key-vector"}),mean:me({ariaLabelKey:"shared-calculator-narration-keypad-key-mean"}),stdevp:me({ariaLabelKey:"shared-calculator-narration-keypad-key-stdevp"}),mod:me({}),"e^x":ce({typedText:"e^",ariaLabelKey:"shared-calculator-narration-keypad-key-exp"}),"10^n":ce({content:"\\times10^{n}",typedText:"*10^",ariaLabelKey:"shared-calculator-narration-keypad-key-10-n"}),"a^{-1}":ce({typedText:"^-1",ariaLabelKey:"shared-calculator-narration-keypad-key-reciprocal"}),sum:ce({content:"\\sum",ariaLabelKey:"shared-calculator-narration-keypad-key-sum"}),prod:ce({content:"\\prod",ariaLabelKey:"shared-calculator-narration-keypad-key-product"}),floor:me({ariaLabelKey:"shared-calculator-narration-keypad-key-floor"}),ceil:me({ariaLabelKey:"shared-calculator-narration-keypad-key-ceil"}),round:me({ariaLabelKey:"shared-calculator-narration-keypad-key-round"}),abs:me({ariaLabelKey:"shared-calculator-narration-keypad-key-abs"}),"!":ce({ariaLabelKey:"shared-calculator-narration-keypad-key-factorial"}),"n!":ce({typedText:"!",ariaLabelKey:"shared-calculator-narration-keypad-key-factorial"}),median:me({ariaLabelKey:"shared-calculator-narration-keypad-key-median"}),lcm:me({}),gcd:me({}),gcf:me({}),ddx:Yo({command:"ddx",content:"\\frac{d}{dx}"}),integral:Yo({command:"integral",content:"\\int",ariaLabelKey:"shared-calculator-narration-keypad-key-int"}),"%":ce({content:"\\%",ariaLabelKey:"shared-calculator-narration-keypad-key-percent-of"}),"->":ce({content:"\\to",ariaLabelKey:"shared-calculator-narration-keypad-key-action-to"}),with:ce({typedText:"with",content:"with",ariaLabelKey:"shared-calculator-narration-keypad-key-action-with"}),prime:ce({typedText:"'",content:"f'",ariaLabelKey:"shared-calculator-narration-keypad-key-prime"}),exp:ce({}),sign:me({}),normaldist:me({ariaLabelKey:"shared-calculator-narration-keypad-key-normaldist"}),poissondist:me({ariaLabelKey:"shared-calculator-narration-keypad-key-poissondist"}),binomialdist:me({ariaLabelKey:"shared-calculator-narration-keypad-key-binomialdist"}),uniformdist:me({ariaLabelKey:"shared-calculator-narration-keypad-key-uniformdist"}),erf:me({ariaLabelKey:"shared-calculator-narration-keypad-key-erf"}),histogram:me({ariaLabelKey:"shared-calculator-narration-keypad-key-histogram"}),boxplot:me({ariaLabelKey:"shared-calculator-narration-keypad-key-boxplot"}),dotplot:me({ariaLabelKey:"shared-calculator-narration-keypad-key-dotplot"}),tscore:me({ariaLabelKey:"shared-calculator-narration-keypad-key-tscore"}),ittest:me({ariaLabelKey:"shared-calculator-narration-keypad-key-ittest"}),ttest:me({ariaLabelKey:"shared-calculator-narration-keypad-key-ttest"}),tdist:me({ariaLabelKey:"shared-calculator-narration-keypad-key-tdist"}),pdf:me({ariaLabelKey:"shared-calculator-narration-keypad-key-pdf"}),cdf:me({ariaLabelKey:"shared-calculator-narration-keypad-key-pdf"}),random:me({ariaLabelKey:"shared-calculator-narration-keypad-key-random"}),inversecdf:me({ariaLabelKey:"shared-calculator-narration-keypad-key-inversecdf"}),hsv:me({}),rgb:me({}),sort:me({}),shuffle:me({}),unique:me({}),join:me({}),"A^-1":Yo({command:"A^-1",content:"A^{-1}",ariaLabelKey:"matrix-calculator-narration-keypad-key-inverse"}),"A^T":Yo({command:"A^T",content:"A^T",ariaLabelKey:"matrix-calculator-narration-keypad-key-transpose"}),"A^2":Yo({command:"A^2",content:"A^2",ariaLabelKey:"shared-calculator-narration-keypad-key-squared"}),"A^n":ce({content:"A^n",typedText:"^",ariaLabelKey:"shared-calculator-narration-keypad-key-exp"}),det:me({ariaLabelKey:"matrix-calculator-narration-keypad-key-det"}),trace:me({ariaLabelKey:"matrix-calculator-narration-keypad-key-trace"}),rref:me({ariaLabelKey:"matrix-calculator-narration-keypad-key-rref"}),a:ce({}),b:ce({}),c:ce({}),d:ce({}),e:ce({}),f:ce({}),g:ce({}),h:ce({}),i:ce({}),j:ce({}),k:ce({}),l:ce({}),m:ce({}),n:ce({}),o:ce({}),p:ce({}),q:ce({}),r:ce({}),s:ce({}),t:ce({}),u:ce({}),v:ce({}),w:ce({}),x:ce({}),boldX:ce({content:"x",typedText:"x"}),y:ce({}),boldY:ce({content:"y",typedText:"y"}),z:ce({}),boldZ:ce({content:"z",typedText:"z"}),A:ce({}),B:ce({}),C:ce({}),D:ce({}),E:ce({}),F:ce({}),G:ce({}),H:ce({}),I:ce({}),J:ce({}),K:ce({}),L:ce({}),M:ce({}),N:ce({}),O:ce({}),P:ce({}),Q:ce({}),R:ce({}),S:ce({}),T:ce({}),U:ce({}),V:ce({}),W:ce({}),X:ce({}),Y:ce({}),Z:ce({}),0:ce({}),1:ce({}),2:ce({}),3:ce({}),4:ce({}),5:ce({}),6:ce({}),7:ce({}),8:ce({}),9:ce({}),",":ce({}),"=":ce({}),"[":ce({}),"]":ce({}),"{}_left":Qm({keys:["{","}"]}),"{}_right":Zm({keys:["{","}"]}),"()_left":Qm({keys:["(",")"]}),"()_right":Zm({keys:["(",")"]}),"[]_left":Qm({keys:["[","]"]}),"[]_right":Zm({keys:["[","]"]}),",'_left":Qm({keys:[",","\u2032"]}),",'_right":Zm({keys:[",","\u2032"],typedText:"'"}),'"':ce({}),"'":ce({}),"~":ce({}),":":ce({}),">":ce({}),"<":ce({}),">=":ce({content:"\\ge"}),"<=":ce({content:"\\le"}),"!%_left":Qm({keys:["!","{}^{%}"]}),"!%_right":Zm({keys:["!","{}^{%}"],typedText:"%"}),"~:_left":Qm({keys:["~","{}^{:}"]}),"~:_right":Zm({keys:["~","{}^{:}"],typedText:":"}),"audio-trace-off":lX({contentKey:"graphing-calculator-button-keypad-audio-trace-off",command:"off"}),"hear-graph":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:Mt(t.style,"blue"),ariaLabel:B.const(void 0),onTap:()=>{e({type:"keypad/audio-trace",command:"hear-graph"})}},B.createElement("span",{class:B.const("dcg-play-icon-container")},B.createElement("i",{class:B.const("dcg-icon-play"),"aria-hidden":B.const("true")})),B.createElement("span",null,()=>i("graphing-calculator-button-audio-trace-hear-graph"))),"stop-graph":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:Mt(t.style,"blue"),onTap:()=>{e({type:"keypad/audio-trace",command:"stop-graph"})}},B.createElement("span",{class:B.const("dcg-stop-icon-container")},B.createElement("span",{class:B.const("dcg-stop-icon")})),B.createElement("span",null,()=>i("graphing-calculator-button-audio-trace-stop-graph"))),"volume-down":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("graphing-calculator-narration-keypad-key-volume-down"),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"volume-down"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-volume-down"),"aria-hidden":B.const("true")}))),"volume-up":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("graphing-calculator-narration-keypad-key-volume-up"),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"volume-up"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-volume-up"),"aria-hidden":B.const("true")}))),"speed-down":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("graphing-calculator-narration-keypad-key-speed-down"),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"speed-down"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-hide"),"aria-hidden":B.const("true")}))),"speed-up":(r,e,t={},i)=>B.createElement(St,{command:B.const(r),ariaLabel:()=>i("graphing-calculator-narration-keypad-key-speed-up"),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"speed-up"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-show"),"aria-hidden":B.const("true")}))),"previous-point":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-previous-point"),command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"previous-point"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-thin-arrow-left"),"aria-hidden":B.const("true")}))),"next-point":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-next-point"),command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"next-point"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-thin-arrow-right"),"aria-hidden":B.const("true")}))),"previous-poi":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-previous-poi"),command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"previous-poi"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-hide"),"aria-hidden":B.const("true")}))),"next-poi":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-next-poi"),command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"next-poi"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-show"),"aria-hidden":B.const("true")}))),"previous-curve":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-previous-curve"),command:B.const(r),disabled:Mt(t.disabled,!1),colspan:Mt(t.colspan,1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"previous-curve"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-caret-up"),"aria-hidden":B.const("true")}))),"next-curve":(r,e,t={},i)=>B.createElement(St,{ariaLabel:()=>i("graphing-calculator-narration-keypad-key-next-curve"),command:B.const(r),disabled:Mt(t.disabled,!1),style:()=>t.style||"default",onTap:()=>e({type:"keypad/audio-trace",command:"next-curve"})},B.createElement("span",{class:B.const("dcg-button-icon dcg-icon-only")},B.createElement("i",{class:B.const("dcg-icon-caret-down"),"aria-hidden":B.const("true")})))};function x(r,e,t={}){let i=r.dispatch;return cX[e](e,i,t,r.s)}function Pt(r=1){return B.createElement("div",{style:B.const(`flex-grow:${r}`)})}var lD=__dcg_shared_module_exports__['e']($());var RK=__dcg_shared_module_exports__['e']($()),yd=class extends RK.Class{init(){this.controller=this.props.controller()}};var Et=class extends yd{template(){return lD.createElement("div",{class:lD.const("dcg-basic-keypad dcg-do-not-blur")},this.children)}};var ef=__dcg_shared_module_exports__['e']($()),ge=class extends ef.Class{template(){return ef.createElement("div",{class:ef.const("dcg-keypad-row")},this.children)}};var cD=class extends Ci{template(){return tf.createElement(Et,{controller:this.props.controller},tf.createElement(ge,null,x(this,"q"),x(this,"w"),x(this,"e"),x(this,"r"),x(this,"t"),x(this,"y"),x(this,"u"),x(this,"i"),x(this,"o"),x(this,"p")),tf.createElement(ge,null,x(this,"a"),x(this,"s"),x(this,"d"),x(this,"f"),x(this,"g"),x(this,"h"),x(this,"j"),x(this,"k"),x(this,"l"),x(this,"theta")),tf.createElement(ge,null,x(this,"shift",{colspan:1.364,style:"highlight"}),Pt(.136),x(this,"z"),x(this,"x"),x(this,"c"),x(this,"v"),x(this,"b"),x(this,"n"),x(this,"m"),Pt(.136),x(this,"backspace",{colspan:1.364,style:"highlight"})),tf.createElement(ge,null,x(this,"123",{colspan:1.818,style:"highlight"}),Pt(.182),x(this,"a_b"),x(this,"!%_left"),x(this,"[]_left"),x(this,"{}_left"),x(this,"~:_left"),x(this,",'_left"),Pt(.182),x(this,"enter",{colspan:1.818,style:"blue"})))}};var rf=__dcg_shared_module_exports__['e']($());var dD=class extends Ci{template(){return rf.createElement(Et,{controller:this.props.controller},rf.createElement(ge,null,x(this,"Q"),x(this,"W"),x(this,"E"),x(this,"R"),x(this,"T"),x(this,"Y"),x(this,"U"),x(this,"I"),x(this,"O"),x(this,"P")),rf.createElement(ge,null,x(this,"A"),x(this,"S"),x(this,"D"),x(this,"F"),x(this,"G"),x(this,"H"),x(this,"J"),x(this,"K"),x(this,"L"),x(this,"tau")),rf.createElement(ge,null,x(this,"shift",{colspan:1.364,active:!0,style:"highlight"}),Pt(.136),x(this,"Z"),x(this,"X"),x(this,"C"),x(this,"V"),x(this,"B"),x(this,"N"),x(this,"M"),Pt(.136),x(this,"backspace",{colspan:1.364,style:"highlight"})),rf.createElement(ge,null,x(this,"123",{colspan:1.818,style:"highlight"}),Pt(.182),x(this,"a^b"),x(this,"!%_right"),x(this,"[]_right"),x(this,"{}_right"),x(this,"~:_right"),x(this,",'_right"),Pt(.182),x(this,"enter",{colspan:1.818,style:"blue"})))}};var Sn=__dcg_shared_module_exports__['e']($());var pD=class extends Ci{template(){return Sn.createElement(Et,{controller:this.props.controller},Sn.createElement(ge,null,x(this,"boldX"),x(this,"boldY"),x(this,"a^2"),x(this,"a^b"),Pt(.5),x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"division"),Pt(.5),Sn.createElement(St,{command:this.const("functions"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-functions"),colspan:this.const(2),style:this.const("highlight"),active:()=>this.controller.isKeypadFunctionsPopoverOpen(),onTap:()=>this.dispatch({type:"keypad/functions"}),ariaControls:this.const(`dcg-functions-popover-${Ci.uuid}`),ariaExpanded:()=>this.controller.isKeypadFunctionsPopoverOpen()},this.bindFn(this.getFuncsBtnText))),Sn.createElement(ge,null,x(this,"("),x(this,")"),x(this,"<"),x(this,">"),Pt(.5),x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"multiplication"),Pt(.5),x(this,"left",{style:"highlight"}),x(this,"right",{style:"highlight"})),Sn.createElement(ge,null,x(this,"|a|"),x(this,","),x(this,"<="),x(this,">="),Pt(.5),x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-"),Pt(1),x(this,"backspace",{colspan:1.5,style:"highlight"})),Sn.createElement(ge,null,Sn.createElement("div",{class:Sn.const("dcg-abc-audio-container")},Sn.createElement(St,{command:Sn.const("ABC"),colspan:this.const(1),ariaLabel:()=>this.controller.s("graphing-calculator-narration-toggle-letters"),style:this.const("highlight"),onTap:()=>{this.dispatch({type:"keypad/abc"})}},()=>this.controller.getLayoutMeasurements().width<=600?this.controller.raw("ABC"):this.controller.raw("A B C")),Sn.createElement(St,{command:Sn.const("Audio"),disabled:()=>!this.controller.canAudioTrace(),ariaLabel:()=>this.controller.s("graphing-calculator-narration-toggle-audio-trace"),colspan:this.const(1),style:()=>"highlight",onTap:()=>this.dispatch({type:"keypad/audio-trace",command:"on"})},Sn.createElement("i",{class:Sn.const("dcg-icon-volume"),"aria-hidden":Sn.const("true")}))),x(this,"sqrt"),x(this,"pi"),Pt(.5),x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"="),x(this,"+"),Pt(.5),x(this,"enter",{colspan:2,style:"blue"})))}getFuncsBtnText(){return this.controller.isNarrow()?this.controller.s("graphing-calculator-button-funcs"):this.controller.s("graphing-calculator-button-functions")}};var Fs=__dcg_shared_module_exports__['e']($());var uD=class extends Ci{template(){return Fs.createElement(Et,{controller:this.props.controller},Fs.createElement(ge,null,x(this,"boldX"),x(this,"boldY"),x(this,"boldZ"),x(this,"a^b"),Pt(.5),x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"division"),Pt(.5),Fs.createElement(St,{command:this.const("functions"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-functions"),colspan:this.const(2),style:this.const("highlight"),active:()=>this.controller.isKeypadFunctionsPopoverOpen(),onTap:()=>this.dispatch({type:"keypad/functions"}),ariaControls:this.const(`dcg-functions-popover-${Ci.uuid}`),ariaExpanded:()=>this.controller.isKeypadFunctionsPopoverOpen()},this.bindFn(this.getFuncsBtnText))),Fs.createElement(ge,null,x(this,"("),x(this,")"),x(this,"<"),x(this,">"),Pt(.5),x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"multiplication"),Pt(.5),x(this,"left",{style:"highlight"}),x(this,"right",{style:"highlight"})),Fs.createElement(ge,null,x(this,"|a|"),x(this,","),x(this,"<="),x(this,">="),Pt(.5),x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-"),Pt(1),x(this,"backspace",{colspan:1.5,style:"highlight"})),Fs.createElement(ge,null,Fs.createElement("div",{class:Fs.const("dcg-abc-audio-container")},Fs.createElement(St,{command:Fs.const("ABC"),colspan:this.const(2),ariaLabel:()=>this.controller.s("graphing-calculator-narration-toggle-letters"),style:this.const("highlight"),onTap:()=>{this.dispatch({type:"keypad/abc"})}},()=>this.controller.raw("A B C"))),x(this,"sqrt"),x(this,"pi"),Pt(.5),x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"="),x(this,"+"),Pt(.5),x(this,"enter",{colspan:2,style:"blue"})))}getFuncsBtnText(){return this.controller.isNarrow()?this.controller.s("graphing-calculator-button-funcs"):this.controller.s("graphing-calculator-button-functions")}};var of=__dcg_shared_module_exports__['e']($());var hD=class extends Ci{template(){return of.createElement(Et,{controller:this.props.controller},of.createElement(ge,null,x(this,"a"),x(this,"b"),x(this,"c"),x(this,"d"),x(this,"e"),x(this,"f"),x(this,"g"),x(this,"h"),x(this,"i"),x(this,"j")),of.createElement(ge,null,x(this,"k"),x(this,"l"),x(this,"m"),x(this,"n"),x(this,"o"),x(this,"p"),x(this,"q"),x(this,"r"),x(this,"s"),x(this,"t")),of.createElement(ge,null,x(this,"shift",{style:"highlight"}),x(this,"u"),x(this,"v"),x(this,"w"),x(this,"x"),x(this,"y"),x(this,"z"),x(this,"theta"),x(this,"backspace",{colspan:2,style:"highlight"})),of.createElement(ge,null,x(this,"123",{colspan:2,style:"highlight"}),x(this,"a_b"),x(this,"!%_left"),x(this,"[]_left"),x(this,"{}_left"),x(this,"~:_left"),x(this,",'_left"),x(this,"enter",{colspan:2,style:"blue"})))}};var nf=__dcg_shared_module_exports__['e']($());var gD=class extends Ci{template(){return nf.createElement(Et,{controller:this.props.controller},nf.createElement(ge,null,x(this,"A"),x(this,"B"),x(this,"C"),x(this,"D"),x(this,"E"),x(this,"F"),x(this,"G"),x(this,"H"),x(this,"I"),x(this,"J")),nf.createElement(ge,null,x(this,"K"),x(this,"L"),x(this,"M"),x(this,"N"),x(this,"O"),x(this,"P"),x(this,"Q"),x(this,"R"),x(this,"S"),x(this,"T")),nf.createElement(ge,null,x(this,"shift",{style:"highlight"}),x(this,"U"),x(this,"V"),x(this,"W"),x(this,"X"),x(this,"Y"),x(this,"Z"),x(this,"tau"),x(this,"backspace",{colspan:2,style:"highlight"})),nf.createElement(ge,null,x(this,"123",{colspan:2,style:"highlight"}),x(this,"a^b"),x(this,"!%_right"),x(this,"[]_right"),x(this,"{}_right"),x(this,"~:_right"),x(this,",'_right"),x(this,"enter",{colspan:2,style:"blue"})))}};var Ee=__dcg_shared_module_exports__['e']($());var{IfElse:dX}=Ee.Components,mD=460,fD=class extends Ci{template(){return Ee.createElement(Et,{controller:this.props.controller},Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-container")},Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-column dcg-playback-column")},Ee.createElement(Ce,{tooltip:this.bindFn(this.getDisabledTooltipText),gravity:this.const("s"),sticky:this.const(!1)},Ee.createElement("div",{class:Ee.const("dcg-btn-playback")},dX(()=>this.controller.isAudioTracing(),{true:()=>x(this,"stop-graph",{disabled:this.bindFn(this.isAudioDisabled)}),false:()=>x(this,"hear-graph",{disabled:this.bindFn(this.isAudioDisabled)})}))),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section-container")},Ee.createElement(Ce,{tooltip:this.bindFn(this.getDisabledTooltipText),gravity:this.const("s"),sticky:this.const(!1)},Ee.createElement("div",{class:Ee.const("dcg-key-nav-section")},x(this,"volume-down",{disabled:this.bindFn(this.isVolumeDownDisabled)}),Ee.createElement("div",{role:Ee.const("heading"),"aria-level":Ee.const("2"),class:()=>({"dcg-key-nav-section-title-container":!0,"dcg-disabled":this.isAudioDisabled()})},Ee.createElement("span",{class:Ee.const("dcg-key-nav-section-title")},()=>this.controller.s("graphing-calculator-label-audio-trace-volume")),Ee.createElement("span",{class:Ee.const("dcg-keypad-volume-value dcg-key-nav-section-value")},()=>this.getAudioTraceVolume())),x(this,"volume-up",{disabled:this.bindFn(this.isVolumeUpDisabled)})))),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section-container")},Ee.createElement(Ce,{tooltip:this.bindFn(this.getDisabledTooltipText),gravity:this.const("s"),sticky:this.const(!1)},Ee.createElement("div",{class:Ee.const("dcg-key-nav-section")},x(this,"speed-down",{disabled:this.bindFn(this.isSpeedDownDisabled)}),Ee.createElement("div",{class:()=>({"dcg-key-nav-section-title-container":!0,"dcg-disabled":this.isAudioDisabled()}),role:Ee.const("heading"),"aria-level":Ee.const("2")},Ee.createElement("span",{class:Ee.const("dcg-key-nav-section-title")},()=>this.controller.s("graphing-calculator-label-audio-trace-speed")),Ee.createElement("span",{class:Ee.const("dcg-keypad-speed-value dcg-key-nav-section-value")},()=>this.getAudioTraceSpeed())),x(this,"speed-up",{disabled:this.bindFn(this.isSpeedUpDisabled)})))),x(this,"audio-trace-off",{style:"highlight"})),Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-spacer")}),Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-column dcg-navigation-column")},Ee.createElement("span",{class:Ee.const("dcg-key-section-title dcg-center-col"),role:Ee.const("heading"),"aria-level":Ee.const("2")},()=>this.controller.s("graphing-calculator-heading-audio-trace-navigation")),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section dcg-center-col")},x(this,"previous-point",{disabled:this.bindFn(this.isPrevPointDisabled)}),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section-title-container"),role:Ee.const("heading"),"aria-level":Ee.const("2")},()=>this.controller.s("graphing-calculator-label-audio-trace-point")),x(this,"next-point",{disabled:this.bindFn(this.isNextPointDisabled)})),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section")},x(this,"previous-poi",{disabled:this.bindFn(this.isPrevPOIDisabled)}),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section-title-container dcg-poi-section-container"),role:Ee.const("heading"),"aria-level":Ee.const("2")},Ee.createElement(Ip,{i18n:this.const(this.controller),key:this.const("graphing-calculator-heading-keypad-audio-trace-point-of-interest")},Ee.createElement("span",{class:Ee.const("dcg-key-nav-section-value")},Ee.const("Point")),Ee.createElement("span",{class:Ee.const("dcg-key-nav-section-title")},Ee.const("of Interest")))),x(this,"next-poi",{disabled:this.bindFn(this.isNextPOIDisabled)})),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section dcg-center-col")},x(this,"previous-curve",{disabled:this.bindFn(this.isPrevCurveDisabled)}),Ee.createElement("div",{class:Ee.const("dcg-key-nav-section-title-container"),role:Ee.const("heading"),"aria-level":Ee.const("2")},()=>this.controller.s("graphing-calculator-label-audio-trace-curve")),x(this,"next-curve",{disabled:this.bindFn(this.isNextCurveDisabled)}))),Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-spacer")}),Ee.createElement("div",{class:Ee.const("dcg-audio-keypad-column dcg-screenreader-options")},Ee.createElement("span",{class:Ee.const("dcg-key-section-title"),role:Ee.const("heading"),"aria-level":Ee.const("2")},()=>this.layoutWidth()<=mD?this.controller.s("graphing-calculator-heading-audio-trace-describe"):this.controller.s("graphing-calculator-heading-audio-trace-screen-reader"),Ee.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-audio-trace-need-screen-reader"),gravity:this.const("s"),sticky:this.const(!0)},Ee.createElement("i",{class:Ee.const("dcg-icon-question-sign"),"aria-hidden":Ee.const("true")}))),Ee.createElement(St,{command:Ee.const("describe-point"),colspan:this.const(1),style:this.const("default"),onTap:()=>{this.dispatch({type:"keypad/audio-trace",command:"describe-point"})}},Ee.createElement("span",null,()=>this.layoutWidth()<=mD?this.controller.s("graphing-calculator-button-keypad-describe-point-short"):this.controller.s("graphing-calculator-button-keypad-describe-point"))),Ee.createElement(St,{command:Ee.const("describe-curve"),colspan:this.const(1),style:this.const("default"),onTap:()=>{this.dispatch({type:"keypad/audio-trace",command:"describe-curve"})}},Ee.createElement("span",null,()=>this.layoutWidth()<=mD?this.controller.s("graphing-calculator-button-keypad-describe-curve-short"):this.controller.s("graphing-calculator-button-keypad-describe-curve"))),Ee.createElement(St,{command:Ee.const("describe-axes"),colspan:this.const(1),style:this.const("default"),onTap:()=>{this.dispatch({type:"keypad/audio-trace",command:"describe-axes"})}},Ee.createElement("span",null,()=>this.layoutWidth()<=mD?this.controller.s("graphing-calculator-label-axes"):this.controller.s("graphing-calculator-button-keypad-describe-axes"))))))}layoutWidth(){return this.controller.getLayoutMeasurements().width}isPrevPointDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToPrevPoint():!0}isNextPointDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToNextPoint():!0}isPrevPOIDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToPrevPOI():!0}isNextPOIDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToNextPOI():!0}isPrevCurveDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToPrevCurve():!0}isNextCurveDisabled(){let r=this.controller.getAudioGraph();return r?!r.agNavigator.canMoveToNextCurve():!0}isAudioDisabled(){return!this.controller.getAudio()}getAudioTraceVolume(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?"0%":`${r.getAudioVolume()*100}%`}isVolumeDownDisabled(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?!0:r.getAudioVolume()<=0}isVolumeUpDisabled(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?!0:r.getAudioVolume()>=1}getAudioTraceSpeed(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?"0":uy[r.getAudioSpeedIndex()].displayedSpeed}isSpeedDownDisabled(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?!0:r.getAudioSpeedIndex()<=0}isSpeedUpDisabled(){let r=this.controller.getAudioGraph();return!r||this.isAudioDisabled()?!0:r.getAudioSpeedIndex()===uy.length-1}getDisabledTooltipText(){return this.isAudioDisabled()?this.controller.s("graphing-calculator-narration-audio-trace-sound-effects-disabled"):""}};var jt=__dcg_shared_module_exports__['e']($());var{If:bD,For:NK}=jt.Components,yD=class extends Ci{template(){return jt.createElement("div",{class:()=>({"dcg-functions-popover":!0,"dcg-popover":!0,"dcg-top":!0,"dcg-two-column":this.shouldRenderWithTwoColumns()}),id:this.const(`dcg-functions-popover-${Ci.uuid}`),role:jt.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-button-functions")},jt.createElement("div",{class:jt.const("dcg-popover-interior")},jt.createElement("div",{class:jt.const("dcg-interior-buttons")},jt.createElement(NK,{each:this.bindFn(this.getKeypadKeys),key:r=>r.id},jt.createElement("div",{class:jt.const("dcg-basic-keypad dcg-do-not-blur")},r=>jt.createElement("div",{class:jt.const("dcg-keypad-keys-section")},jt.createElement(bD,{predicate:()=>r.title!==void 0},()=>jt.createElement("div",{class:jt.const("dcg-section-heading"),role:jt.const("heading"),"aria-level":jt.const("2")},()=>r.title,jt.createElement(bD,{predicate:()=>!!r.beta},()=>jt.createElement("span",{class:jt.const("dcg-beta-tag")},()=>this.controller.s("shared-calculator-narration-keypad-key-beta"))),jt.createElement(bD,{predicate:()=>!!r.helpLink},()=>jt.createElement("a",{href:()=>r.helpLink.url,target:jt.const("_blank"),"aria-label":()=>r.helpLink.tooltip},jt.createElement("i",{class:jt.const("dcg-icon-question-sign"),"aria-hidden":jt.const("true")}))))),jt.createElement(bD,{predicate:()=>r.title===void 0},()=>jt.createElement("div",{class:jt.const("dcg-popover-section-separator"),role:jt.const("separator")})),jt.createElement(NK,{each:()=>r.keys},jt.createElement("div",{class:jt.const("dcg-keypad-keys-buttons")},e=>this.b(e)))))))),jt.createElement("div",{class:jt.const("dcg-arrow")}))}shouldRenderWithTwoColumns(){let r=this.controller.getGraphSettings().config.projectorMode?410:375;return this.controller.getLayoutMeasurements().width<r}getInverseTrigSection(){let r=this.controller.areFunctionsRestricted()?["arcsin","arccos","arctan"]:["arcsin","arccos","arctan","arccsc","arcsec","arccot"];return{id:"inversetrig",title:this.controller.s("graphing-calculator-heading-inverse-trig"),keys:r}}getGeometryTools(){let r=["midpoint","intersection","segment","line","ray","vector","parallel","perpendicular","circle","arc","angle","directedangle","polygon","glider"];return{id:"geometry-tools",title:this.controller.s("graphing-calculator-heading-geometry-tools"),keys:r}}getGeometryTransformations(){let r=["dilate","rotate","reflect","translate"];return{id:"geometry-transformations",title:this.controller.s("graphing-calculator-heading-geometry-transformations"),keys:r}}getGeometryMeasurements(){let r=["distance","length","area","perimeter","vertices","angles","directedangles","segments","radius","center","coterminal","supplement"];return{id:"geometry-measurements",title:this.controller.s("graphing-calculator-heading-geometry-measurements"),keys:r}}getCalculatorGeometryMethods(){let r=!this.controller.areFunctionsRestricted()||this.controller.areGeometryFunctionsForceEnabled(),e=this.controller.isThreeDMode()?["segment","triangle","sphere","vector"]:["polygon"],t=this.controller.isThreeDMode()?["length","distance","midpoint"]:["distance","midpoint"],i=r?t:[];return{id:"geometry",title:this.controller.s("graphing-calculator-heading-geometry"),keys:[...e,...i]}}getTrigSection(){let r=this.controller.areFunctionsRestricted()?["sin","cos","tan"]:["sin","cos","tan","csc","sec","cot"];return{id:"trig",title:this.controller.s("graphing-calculator-heading-trig"),keys:r}}getHyperbolicTrigSection(){let r=this.controller.areFunctionsRestricted()?["sinh","cosh","tanh"]:["sinh","cosh","tanh","csch","sech","coth"];return{id:"hyperbtrig",title:this.controller.s("graphing-calculator-heading-hyperbolic-trig"),keys:r}}getListFunctions(){return{id:"lists",title:this.controller.s("graphing-calculator-heading-lists"),keys:["join","sort","shuffle","unique","for"]}}getStatTests(){return{id:"stat-tests",title:this.controller.s("graphing-calculator-heading-stat-tests"),keys:["ttest","tscore","ittest"]}}getStatsSection(){let r=["mean","median","min","max","quartile","quantile","stdev","stdevp","var"];return this.controller.areFunctionsRestricted()||(r=r.concat(["mad","cov","covp"])),r=r.concat(["corr","spearman","stats","count","total"]),{id:"stats",title:this.controller.s("graphing-calculator-heading-stats"),keys:r}}getMiscSection(){return{title:this.controller.s("graphing-calculator-button-functions-menu-number-theory"),id:"misc",keys:["lcm","gcd","mod","ceil","floor","round","sign","nthroot","nPr","nCr"]}}getVisualizationsSection(){return{title:this.controller.s("graphing-calculator-heading-dist-tab-visualizations"),id:"visualizations",keys:["histogram","dotplot","boxplot"],helpLink:{url:"https://help.desmos.com/hc/en-us/articles/360022405991-Data-Visualizations",tooltip:this.controller.s("graphing-calculator-narration-dist-tab-visualizations")}}}getCalculusSection(){return{title:this.controller.s("graphing-calculator-heading-calculus"),id:"calculus",keys:["exp","ln","log","loga","ddx","prime","integral","sum","prod"]}}getDistributionsSection(){return{title:this.controller.s("graphing-calculator-heading-dist-tab-distributions"),id:"distributions",keys:["normaldist","tdist","poissondist","binomialdist","uniformdist","pdf","cdf","inversecdf","random"],helpLink:{url:"https://help.desmos.com/hc/en-us/articles/360022401451-Distributions",tooltip:this.controller.s("graphing-calculator-narration-dist-tab-distributions")}}}getColorsSection(){return{title:this.controller.s("graphing-calculator-button-functions-menu-custom-colors"),id:"colors",keys:["rgb","hsv"],helpLink:{url:"https://help.desmos.com/hc/en-us/articles/4406795899533-Custom-Colors",tooltip:this.controller.s("graphing-calculator-button-functions-menu-custom-colors")}}}getAdvancedSection(){return{title:this.controller.s("graphing-calculator-heading-functions-menu-advanced"),id:"advanced",keys:["->","with"],helpLink:{url:"https://help.desmos.com/hc/en-us/sections/4406370087053-Advanced-Features",tooltip:this.controller.s("graphing-calculator-heading-functions-menu-advanced")}}}getPolarSection(){return{title:this.controller.s("graphing-calculator-heading-functions-menu-polar"),id:"polar",keys:["rho","theta","phi"],helpLink:{url:"https://help.desmos.com/hc/en-us/articles/15824510769805",tooltip:this.controller.s("graphing-calculator-heading-functions-menu-polar")}}}getSoundSection(){return{title:this.controller.s("graphing-calculator-heading-functions-menu-sound"),id:"sound",keys:["tone"],helpLink:{url:"https://help.desmos.com/hc/en-us/articles/21373904717197-Tone",tooltip:this.controller.s("graphing-calculator-heading-functions-menu-sound")}}}getKeypadKeys(){let r=[this.getTrigSection(),this.getInverseTrigSection(),this.getStatsSection(),this.getListFunctions()];return this.controller.areDistributionsEnabled()&&(this.controller.isThreeDMode()||r.push(this.getVisualizationsSection()),r.push(this.getDistributionsSection()),r.push(this.getStatTests())),r.push(this.getCalculusSection()),r.push(this.getHyperbolicTrigSection()),this.controller.is3dProduct()&&r.push(this.getPolarSection()),this.controller.isGeometry()?(r.push(this.getGeometryTools()),r.push(this.getGeometryMeasurements()),r.push(this.getGeometryTransformations())):r.push(this.getCalculatorGeometryMethods()),r.push(this.getColorsSection()),this.controller.toneAllowed()&&r.push(this.getSoundSection()),r.push(this.getMiscSection()),this.controller.areActionsEnabled()&&r.push(this.getAdvancedSection()),r}b(r){return x(this,r,{style:"popover"})}};var{SwitchUnion:pX,If:S1}=ct.Components,xD=class extends Ci{template(){return ct.createElement("div",{class:ct.const("dcg-keypad"),role:ct.const("region"),"aria-label":()=>this.controller.s("shared-calculator-narration-keypad")},ct.createElement("div",{class:()=>({"dcg-keys-container":!0,"dcg-smaller-functions-text":this.controller.getLayoutMeasurements().width<650,"dcg-small-ABC":this.controller.getLayoutMeasurements().width<490,"dcg-smaller-ABC":this.controller.getLayoutMeasurements().width<420,"dcg-smallest-ABC":this.controller.getLayoutMeasurements().width<380}),style:this.bindFn(this.computeStyles),didMount:this.bindFn(this.didMountContainer),"aria-hidden":()=>!this.controller.isKeypadOpen()},ct.createElement("div",{class:ct.const("dcg-keys-background dcg-do-not-blur")},ct.createElement("div",{class:ct.const("dcg-keys")},pX(()=>this.controller.getKeypadLayout(),{letters:()=>ct.createElement(cD,{controller:this.props.controller}),capitalLetters:()=>ct.createElement(dD,{controller:this.props.controller}),mainNumbers:()=>ct.createElement(pD,{controller:this.props.controller}),mainNumbers3D:()=>ct.createElement(uD,{controller:this.props.controller}),noQwertyLetters:()=>ct.createElement(hD,{controller:this.props.controller}),noQwertyCapitalLetters:()=>ct.createElement(gD,{controller:this.props.controller}),audio:()=>ct.createElement(fD,{controller:this.props.controller})}),ct.createElement(S1,{predicate:()=>this.controller.isKeypadFunctionsPopoverOpen()},()=>ct.createElement(yD,{controller:this.props.controller}))),ct.createElement(S1,{predicate:()=>this.controller.isHideKeypadButtonVisible()},()=>ct.createElement("div",{class:ct.const("dcg-minimize-keypad-container")},ct.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-hide-keypad"),gravity:this.const("n"),offset:this.const({left:6})},ct.createElement("div",{role:ct.const("button"),"aria-expanded":ct.const("true"),"aria-controls":this.const(Ci.uuid),"aria-label":()=>this.controller.s("graphing-calculator-label-hide-keypad"),class:ct.const("dcg-minimize-keypad"),onTap:()=>{this.controller.dispatch({type:"keypad/set-minimized",minimized:!0})}},ct.createElement("i",{class:ct.const("dcg-icon-keyboard"),"aria-hidden":ct.const("true")}),ct.createElement("i",{class:ct.const("dcg-icon-caret-down"),"aria-hidden":ct.const("true")}))))))),ct.createElement(S1,{predicate:this.bindFn(this.isShowKeypadButtonVisible)},()=>ct.createElement("div",{class:ct.const("dcg-show-keypad-container")},ct.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-show-keypad"),gravity:this.const("n")},ct.createElement("div",{role:ct.const("button"),"aria-expanded":ct.const("false"),"aria-controls":this.const(Ci.uuid),"aria-label":()=>this.controller.s("graphing-calculator-label-show-keypad"),class:ct.const("dcg-btn-flat-gray dcg-show-keypad dcg-do-not-blur"),onTap:()=>{this.controller.dispatch({type:"keypad/set-minimized",minimized:!1})}},ct.createElement("i",{class:ct.const("dcg-icon-keyboard"),"aria-hidden":ct.const("true")}),ct.createElement("i",{class:ct.const("dcg-icon-caret-up dcg-do-not-blur"),"aria-hidden":ct.const("true")}))))))}didMountContainer(r){this.containerElt=r}isShowKeypadButtonVisible(){return this.controller.getBrailleMode()!=="none"?!1:!this.controller.isKeypadOpen()&&!this.controller.isNarrow()&&!this.controller.isInEditListMode()&&(this.controller.isListVisible()||this.controller.inAudioTraceMode())}didMount(){this.updatePopoverPosition()}didUpdate(){this.updatePopoverPosition()}computeStyles(){let r={};return this.controller.isNarrow()||(r.transition="transform .3s, opacity .3s"),this.controller.isKeypadOpen()||(r.opacity="0",r.transform="translate3d(0, 255px, 0)"),r}updatePopoverPosition(){if(!this.controller.isKeypadFunctionsPopoverOpen()){this.__popoverCache=void 0;return}let r=this.controller.computeMajorLayout(),e={keypadTop:r.keypad.top,keypadWidth:r.keypad.width,keypadHeight:r.keypad.height,showToLeft:r.grapher.height<525};if(__dcg_shared_module_exports__['Oa'](e,this.__popoverCache))return;this.__popoverCache=e;let t=this.containerElt,i=t.querySelector("[dcg-command=functions]"),o=t.querySelector(".dcg-functions-popover"),n=t.querySelector(".dcg-arrow");if(e.showToLeft){o.classList.remove("dcg-top"),o.classList.add("dcg-left");var a=e.keypadHeight-(Vl(i).top-Vl(t).top),s=a-i.offsetHeight/2-2-10;n.style.left="auto",n.style.bottom=`${s}px`}else o.classList.remove("dcg-left"),o.classList.add("dcg-top"),n.style.left=`${o.offsetWidth-i.offsetWidth/2}px`,n.style.bottom="auto"}};var Ir=__dcg_shared_module_exports__['e']($());var kr=__dcg_shared_module_exports__['e']($()),{SwitchUnion:uX}=kr.Components,Ox=class extends kr.Class{template(){return this.controller=this.props.controller(),uX(()=>this.controller.getBrandingMode(),{"static-edit-link":()=>kr.createElement("div",{class:kr.const("dcg-graphpaper-branding")},kr.createElement("a",{href:()=>this.controller.getEditLink(),target:kr.const("_blank")},kr.createElement("span",{class:kr.const("dcg-powered-by"),"aria-label":()=>this.controller.s("graphing-calculator-narration-edit-on-desmos")},()=>this.controller.s("graphing-calculator-link-edit-on-desmos")),kr.createElement("i",{class:kr.const("dcg-icon-desmos"),"aria-hidden":kr.const("true")}))),"edit-link":()=>kr.createElement("div",{class:kr.const("dcg-graphpaper-branding")},kr.createElement("span",{class:kr.const("dcg-edit-branding"),onTap:()=>this.controller.dispatch({type:"open-on-web"})},kr.createElement("span",{class:kr.const("dcg-powered-by"),"aria-label":()=>this.controller.s("graphing-calculator-narration-edit-on-desmos")},()=>this.controller.s("graphing-calculator-link-edit-on-desmos")),kr.createElement("i",{class:kr.const("dcg-icon-desmos"),"aria-hidden":kr.const("true")}))),"powered-by":()=>kr.createElement("div",{class:kr.const("dcg-graphpaper-branding dcg-unclickable")},kr.createElement("span",{class:kr.const("dcg-powered-by"),"aria-label":()=>this.controller.s("graphing-calculator-narration-powered-by-desmos")},()=>this.controller.s("graphing-calculator-label-powered-by")),kr.createElement("i",{class:kr.const("dcg-icon-desmos"),"aria-hidden":kr.const("true")}))})}};var ee=__dcg_shared_module_exports__['e']($());kt();var dn=__dcg_shared_module_exports__['e']($());var{If:hX}=dn.Components,Ap=class extends dn.Class{init(){this.controller=this.props.controller()}template(){return dn.createElement(Ce,{tooltip:this.bindFn(this.getTooltip),gravity:this.const("w")},dn.createElement("div",{class:()=>({"dcg-action-settings":!0,"dcg-pillbox-btn-interior":!0,"dcg-icon-btn":!0,"dcg-btn-flat-gray":this.isPillbox(),"dcg-settings-pillbox":this.isPillbox()}),role:dn.const("button"),tabindex:dn.const("0"),"aria-haspopup":dn.const("true"),"aria-expanded":()=>this.controller.isGraphSettingsOpen(),"aria-label":this.bindFn(this.getTooltip),onTap:this.bindFn(this.onTapSettingsButton),manageFocus:this.const(Fe({controller:this.controller,location:{type:"settings",location:"icon"}}))},dn.createElement("i",{class:dn.const("dcg-icon-wrench"),"aria-hidden":dn.const("true")}),dn.createElement(hX,{predicate:()=>this.controller.getLockViewportUserSetting()},()=>dn.createElement("i",{class:dn.const("dcg-icon-lock"),"aria-hidden":dn.const("true")}))))}getTooltip(){return this.controller.isGeometry()?this.controller.s("graphing-calculator-label-tooltip-geometry-settings"):this.controller.s("graphing-calculator-label-tooltip-graph-settings")}isPillbox(){return this.props.isPillbox&&this.props.isPillbox()}onTapSettingsButton(e){this.controller.dispatch({type:"toggle-graph-settings",focusOnOpen:e.device==="keyboard"})}};var Tr=__dcg_shared_module_exports__['e']($());var Gp=__dcg_shared_module_exports__['e']($());var mh=class extends Gp.Class{template(){return Gp.createElement("div",{class:Gp.const("dcg-checkbox-title dcg-lock-viewport-option")},Gp.createElement(He,{ariaLabel:()=>this.props.controller().s("graphing-calculator-label-settings-lock-viewport"),onChange:()=>{this.props.controller().dispatch({type:"toggle-lock-viewport"})},checked:()=>this.props.controller().getLockViewportUserSetting()},()=>this.props.controller().s("graphing-calculator-label-settings-lock-viewport")),Gp.createElement(cc,{href:this.const("https://help.desmos.com/hc/en-us/articles/4405296853517#h_01FZX4DBWKD83TZVMH615XF3QA"),controller:this.props.controller}))}};var{If:wD}=Tr.Components,vD=class extends Tr.Class{init(){this.controller=this.props.controller(),this.isOpen=this.getAxisScale("x")==="logarithmic"||this.getAxisScale("y")==="logarithmic"||this.props.controller().getLockViewportUserSetting()}template(){return Tr.createElement("div",{class:Tr.const("dcg-advanced-viewport-settings-view")},Tr.createElement(wD,{predicate:()=>this.shouldShowLogScalesOption()},()=>Tr.createElement("div",null,Tr.createElement("div",{class:()=>({"dcg-advanced-toggle":!0,"dcg-margin-top":!0,"dcg-opened":this.isOpen}),onTap:this.bindFn(this.toggleOpen),tabindex:Tr.const(0),role:Tr.const("button"),"aria-pressed":()=>this.isOpen},Tr.createElement("div",{class:Tr.const("dcg-caret-container")},Tr.createElement("i",{class:Tr.const("dcg-icon-caret-down"),"aria-hidden":Tr.const("true")})),()=>this.controller.s("graphing-calculator-label-more-viewport-options")),Tr.createElement(wD,{predicate:()=>this.isOpen},()=>Tr.createElement("div",{class:Tr.const("dcg-advanced-contents")},Tr.createElement("div",{class:Tr.const("dcg-log-axes-container")},Tr.createElement("div",null,()=>this.getAxisScaleLabel("x")),Tr.createElement(ri,{ariaGroupLabel:()=>this.getAxisScaleLabel("x"),theme:this.const("mini"),staticConfig:this.const(this.getStaticConfigForAxis("x"))}),Tr.createElement("div",null,()=>this.getAxisScaleLabel("y")),Tr.createElement(ri,{ariaGroupLabel:()=>this.getAxisScaleLabel("y"),theme:this.const("mini"),staticConfig:this.const(this.getStaticConfigForAxis("y"))})),Tr.createElement(wD,{predicate:()=>!this.controller.getLockViewportConfigSetting()},()=>Tr.createElement(mh,{...this.props})))))),Tr.createElement(wD,{predicate:()=>!this.controller.getLockViewportConfigSetting()&&!this.shouldShowLogScalesOption()},()=>Tr.createElement(mh,{...this.props})))}toggleOpen(){this.isOpen=!this.isOpen,this.update()}getAxisScaleLabel(e){return e==="x"?this.controller.s("graphing-calculator-label-settings-x-axis")+":":this.controller.s("graphing-calculator-label-settings-y-axis")+":"}getStaticConfigForAxis(e){return[{key:"linear",label:()=>"Linear",selected:()=>this.getAxisScale(e)==="linear",onSelect:()=>this.setAxisScale({axis:e,scale:"linear"})},{key:"logarithmic",label:()=>"Logarithmic",selected:()=>this.getAxisScale(e)==="logarithmic",onSelect:()=>this.setAxisScale({axis:e,scale:"logarithmic"})}]}shouldShowLogScalesOption(){return this.controller.getGraphSettings().config.logScales&&!this.controller.isThreeDMode()}getAxisScale(e){return this.controller.getGraphSettings()[e==="x"?"xAxisScale":"yAxisScale"]}setAxisScale({axis:e,scale:t}){return this.controller.dispatch({type:"set-graph-settings",[e==="x"?"xAxisScale":"yAxisScale"]:t})}};var fh=__dcg_shared_module_exports__['e']($());var Vp=class extends fh.Class{init(){this.controller=this.props.controller()}template(){return fh.createElement("div",{class:fh.const("dcg-options-menu-section dcg-radiangroup")},fh.createElement(ri,{ariaGroupLabel:()=>this.controller.s("graphing-calculator-narration-settings-angle"),staticConfig:this.bindFn(this.getAngleModeOptions)}))}getAngleModeOptions(){return[{key:"radians",label:()=>this.controller.s("graphing-calculator-button-settings-radians"),selected:()=>!this.getDegreeMode(),onSelect:()=>this.setDegreeMode(!1),focusHelperOptions:{controller:this.controller,location:{type:"settings",location:"radian-mode"}}},{key:"degrees",label:()=>this.controller.s("graphing-calculator-button-settings-degrees"),selected:()=>this.getDegreeMode(),onSelect:()=>this.setDegreeMode(!0),focusHelperOptions:{controller:this.controller,location:{type:"settings",location:"degree-mode"}}}]}getDegreeMode(){return!!this.controller.getGraphSettings().degreeMode}setDegreeMode(e){this.controller.dispatch({type:"set-graph-settings",degreeMode:e})}};var xd=__dcg_shared_module_exports__['e']($());var af=class extends xd.Class{init(){this.controller=this.props.controller()}template(){return xd.createElement("div",null,xd.createElement("div",{class:xd.const("dcg-displaysizegroup")},xd.createElement(ri,{ariaGroupLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size"),staticConfig:this.bindFn(this.getProjectorModeOptions)})),xd.createElement(He,{onChange:this.bindFn(this.toggleInvertedColors),checked:()=>this.controller.getInvertedColors(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"settings",location:"reverse-contrast"}}))},()=>this.controller.s("graphing-calculator-label-settings-reverse-contrast")))}getProjectorModeOptions(){return[{key:"default",label:()=>"A",ariaLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size-default"),class:()=>"dcg-displaysize-default",selected:()=>!this.getProjectorMode(),onSelect:()=>this.onSelectProjectorModeOption(!1),focusHelperOptions:{controller:this.controller,location:{type:"settings",location:"default-size"}}},{key:"large",label:()=>"A",ariaLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size-large"),class:()=>"dcg-displaysize-large",selected:()=>this.getProjectorMode(),onSelect:()=>this.onSelectProjectorModeOption(!0),focusHelperOptions:{controller:this.controller,location:{type:"settings",location:"large-size"}}}]}onSelectProjectorModeOption(e){this.controller.dispatch({type:"set-projector-mode",value:e})}getProjectorMode(){return!!this.controller.getGraphSettings().config.projectorMode}toggleInvertedColors(){this.controller.dispatch({type:"set-inverted-colors",value:!this.controller.getInvertedColors()})}};var To=__dcg_shared_module_exports__['e']($());var{If:gX}=To.Components,Pp=class extends To.Class{init(){this.controller=this.props.controller()}template(){return To.createElement("div",null,To.createElement("div",{class:To.const("dcg-braille-options-buttons")},To.createElement(ri,{ariaGroupLabel:()=>this.controller.s("shared-calculator-narration-braille-mode"),staticConfig:this.bindFn(this.getBrailleOptions)})),To.createElement("div",{class:To.const("dcg-six-key-checkbox")},To.createElement(He,{onChange:e=>this.controller.dispatch({type:"set-six-key-input",useSixKeyInput:e}),checked:()=>this.controller.getSixKeyInput()},()=>this.controller.s("graphing-calculator-label-settings-six-key-braille")),To.createElement(cc,{href:this.const("https://www.desmos.com/accessibility#braille"),controller:this.props.controller})),To.createElement(gX,{predicate:this.props.showBrailleNote},()=>To.createElement("div",{class:To.const("dcg-refreshable-braille-note")},()=>this.controller.s("graphing-calculator-text-refreshable-braille-display-note")+" ",To.createElement("a",{href:()=>"https://www.desmos.com/braille-examples?"+this.controller.getBrailleMode(),class:To.const("dcg-blue-link"),target:To.const("_blank")},()=>this.controller.s("graphing-calculator-link-view-braille-examples")))))}getBrailleOptions(){return[{key:"nemeth",label:()=>this.controller.s("shared-calculator-button-braille-mode-nemeth"),selected:()=>this.controller.getBrailleMode()==="nemeth",onSelect:()=>this.setBrailleMode("nemeth")},{key:"ueb",label:()=>this.controller.s("shared-calculator-button-braille-mode-ueb"),selected:()=>this.controller.getBrailleMode()==="ueb",onSelect:()=>this.setBrailleMode("ueb")}]}setBrailleMode(e){this.controller.dispatch({type:"set-braille-mode",mode:e})}};var{Input:BK,If:da,IfElse:zK}=ee.Components,bc=class extends ee.Class{template(){return ee.createElement(Vt,{isFocused:()=>this.props.parent().getFocusedLimit()===this.props.limit(),latex:()=>this.props.parent().getLimitLatex(this.props.limit()),ariaLabel:this.props.ariaLabel,handleLatexChanged:e=>this.props.parent().setLimitLatex(this.props.limit(),e),handleFocusChanged:e=>this.props.parent().onFocusedChanged(this.props.limit(),e),hasError:()=>this.props.parent().isLimitInvalid(this.props.limit()),dataLabelAttributeValue:this.props.limit,controller:this.props.controller,readonly:this.const(!1),containerClass:()=>({"dcg-log-scale":this.props.axisScale()==="logarithmic"})})}},CD=class extends ee.Class{init(){this.controller=this.props.controller(),this.uuid=cp()}template(){return ee.createElement("div",{class:ee.const("dcg-settings-view-container")},ee.createElement(Ap,{...this.props,isPillbox:this.const(!0)}),ee.createElement(da,{predicate:()=>this.controller.isGraphSettingsOpen()},()=>ee.createElement("div",{class:ee.const("dcg-settings-container dcg-left dcg-popover dcg-constrained-height-popover"),style:this.bindFn(this.getContainerStyle),didMount:this.bindFn(this.didMountContainer),didUnmount:this.bindFn(this.didUnmountContainer)},ee.createElement("div",{class:ee.const("dcg-popover-interior"),role:ee.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-graph-settings")},ee.createElement("div",{class:ee.const("dcg-visual-settings")},ee.createElement(af,{controller:this.props.controller}),ee.createElement(da,{predicate:()=>this.controller.getBrailleControls()},()=>ee.createElement("div",{class:ee.const("dcg-braille-container dcg-braille-mode")},ee.createElement(He,{onChange:this.bindFn(this.toggleBrailleMode),checked:()=>this.controller.getBrailleMode()!=="none"},()=>this.controller.s("shared-calculator-narration-braille-mode")),ee.createElement(da,{predicate:()=>this.controller.getBrailleMode()!=="none"},()=>ee.createElement("div",{class:ee.const("dcg-braille-options-container")},ee.createElement(Pp,{controller:this.props.controller,showBrailleNote:this.const(!0)})))))),ee.createElement("div",{class:ee.const("dcg-top-section-flex dcg-grid-settings-container")},ee.createElement("div",{class:ee.const("dcg-grid-settings")},ee.createElement(He,{class:this.const("dcg-settings-grid-toggle"),onChange:this.bindFn(this.toggleGrid),checked:this.bindFn(this.getShowGrid)},()=>this.controller.s("graphing-calculator-label-settings-grid")),ee.createElement(da,{predicate:this.bindFn(this.getShowGrid)},()=>ee.createElement("div",{class:ee.const("dcg-circle-icon-group dcg-grid-group")},ee.createElement("div",{class:()=>({"dcg-circle-icon":!0,"dcg-action-cartesian":!0,"dcg-selected":!this.getPolarMode()}),role:ee.const("button"),tabindex:ee.const("0"),"aria-pressed":()=>!this.getPolarMode(),"aria-label":()=>this.controller.s("graphing-calculator-narration-settings-cartesian-grid"),onTap:this.bindFn(this.setCartesianMode)},ee.createElement("i",{class:ee.const("dcg-icon-cartesian")})),ee.const("\xA0"),ee.createElement("div",{class:()=>({"dcg-circle-icon":!0,"dcg-action-polar":!0,"dcg-selected":this.getPolarMode()}),role:ee.const("button"),tabindex:ee.const("0"),"aria-pressed":()=>this.getPolarMode(),"aria-label":()=>this.controller.s("graphing-calculator-narration-settings-polar-grid"),onTap:this.bindFn(this.setPolarMode)},ee.createElement("i",{class:ee.const("dcg-icon-polar")})))),ee.createElement(He,{onChange:this.bindFn(this.toggleArrows),checked:()=>this.getAxisArrowMode()!=="NONE"},()=>this.controller.s("graphing-calculator-label-settings-arrows")),ee.createElement(da,{predicate:()=>this.getAxisArrowMode()!=="NONE"},()=>ee.createElement("div",{class:ee.const("dcg-circle-icon-group dcg-arrow-group")},ee.createElement("div",{role:ee.const("button"),tabindex:ee.const("0"),class:()=>({"dcg-circle-icon":!0,"dcg-arrows":!0,"dcg-selected":this.getAxisArrowMode()==="BOTH"}),"dcg-arrows":ee.const("BOTH"),"aria-label":()=>this.controller.s("graphing-calculator-narration-settings-show-both"),"aria-pressed":()=>this.getAxisArrowMode()==="BOTH",onTap:()=>this.setAxisArrowMode("BOTH")},ee.createElement("i",{class:ee.const("dcg-icon-arrows-two"),"aria-hidden":ee.const("true")})),ee.const("\xA0"),ee.createElement("div",{role:ee.const("button"),tabindex:ee.const("0"),class:()=>({"dcg-circle-icon":!0,"dcg-arrows":!0,"dcg-selected":this.getAxisArrowMode()==="POSITIVE"}),"dcg-arrows":ee.const("POSITIVE"),"aria-label":()=>this.controller.s("graphing-calculator-narration-settings-show-positive"),"aria-pressed":()=>this.getAxisArrowMode()==="POSITIVE",onTap:()=>this.setAxisArrowMode("POSITIVE")},ee.createElement("i",{class:ee.const("dcg-icon-arrows-one"),"aria-hidden":ee.const("true")}))))),ee.createElement("div",{class:ee.const("dcg-top-checkboxes-container")},ee.createElement(He,{onChange:this.bindFn(this.toggleAxisNumbers),checked:this.bindFn(this.getAxisNumbers),small:this.const(!0)},()=>this.controller.s("graphing-calculator-label-settings-axis-numbers")),ee.createElement(da,{predicate:()=>this.getShowGrid()&&!this.getPolarMode()},()=>ee.createElement(He,{onChange:this.bindFn(this.toggleMinorGridlines),checked:this.bindFn(this.getMinorGridlines),small:this.const(!0)},()=>this.controller.s("graphing-calculator-label-settings-minor-gridlines"))),ee.createElement(da,{predicate:()=>this.controller.canUseAdvancedStyling()&&!this.getPolarMode()},()=>ee.createElement(He,{checked:()=>this.controller.getGraphSettings().restrictGridToFirstQuadrant,onChange:e=>this.controller.dispatch({type:"set-graph-settings",restrictGridToFirstQuadrant:e}),small:this.const(!0)},()=>this.controller.s("graphing-calculator-label-settings-one-quadrant"))),ee.createElement(da,{predicate:this.bindFn(this.showZoomSquareButton)},()=>ee.createElement("div",{role:ee.const("button"),tabindex:ee.const("0"),class:ee.const("dcg-action-zoom-square dcg-btn-light-gray"),onTap:this.bindFn(this.zoomSquare)},()=>this.controller.s("graphing-calculator-button-settings-zoom-square"))))),ee.createElement("div",{class:ee.const("dcg-axes-settings-container")},ee.createElement(da,{predicate:()=>!this.controller.isThreeDMode()},()=>ee.createElement("div",{class:ee.const("dcg-checkbox-title dcg-x-axis-title")},ee.createElement(He,{onChange:this.bindFn(this.toggleXAxis),checked:this.bindFn(this.getShowXAxis)},ee.createElement("span",{id:this.const(`x-axis-description-${this.uuid}`)},()=>this.controller.s("graphing-calculator-label-settings-x-axis"))),ee.createElement(da,{predicate:this.bindFn(this.getShowXAxis)},()=>ee.createElement("div",{class:ee.const("dcg-axis-label")},ee.createElement("label",{for:this.const(`x-axis-label-${this.uuid}`)},()=>this.controller.s("graphing-calculator-button-label")),ee.createElement(BK,{class:this.const("dcg-x-axis-label"),disabled:()=>this.getShowXAxis()?void 0:!0,onInput:this.bindFn(this.onXAxisLabelInput),value:this.bindFn(this.getXAxisLabel),"aria-describedby":this.const(`x-axis-description-${this.uuid}`),id:this.const(`x-axis-label-${this.uuid}`),placeholder:()=>this.controller.s("graphing-calculator-narration-settings-x-axis-label-placeholder")}))))),ee.createElement("div",{class:ee.const("dcg-editable-mathquill-container dcg-x-axis-options")},ee.createElement(bc,{limit:this.const("xmin"),axisScale:()=>this.getAxisScale("x"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-x-axis-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),ee.createElement(ke,{config:this.const({}),latex:this.const("\\le x\\le")},ee.createElement("span",{class:ee.const("dcg-interval-interior")})),ee.createElement(bc,{limit:this.const("xmax"),axisScale:()=>this.getAxisScale("x"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-x-axis-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),ee.createElement(da,{predicate:()=>!this.getPolarMode()&&!this.controller.isThreeDMode()},()=>zK(()=>this.getAxisScale("x")==="linear",{true:()=>ee.createElement("span",{class:ee.const("dcg-step-container")},ee.createElement("span",{class:ee.const("dcg-step-label"),"aria-hidden":ee.const("true")},()=>this.controller.s("graphing-calculator-label-settings-step")),ee.createElement(bc,{limit:this.const("xstep"),axisScale:this.const("linear"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-x-axis-step"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller})),false:()=>ee.createElement("span",{style:ee.const("display: none")})}))),ee.createElement(da,{predicate:()=>!this.controller.isThreeDMode()},()=>ee.createElement("div",{class:ee.const("dcg-checkbox-title dcg-y-axis-title")},ee.createElement(He,{onChange:this.bindFn(this.toggleYAxis),checked:this.bindFn(this.getShowYAxis)},ee.createElement("span",{id:this.const(`y-axis-description-${this.uuid}`)},()=>this.controller.s("graphing-calculator-label-settings-y-axis"))),ee.createElement(da,{predicate:this.bindFn(this.getShowYAxis)},()=>ee.createElement("div",{class:ee.const("dcg-axis-label")},ee.createElement("label",{for:this.const(`y-axis-label-${this.uuid}`)},()=>this.controller.s("graphing-calculator-button-label")),ee.createElement(BK,{class:this.const("dcg-y-axis-label"),onInput:this.bindFn(this.onYAxisLabelInput),value:this.bindFn(this.getYAxisLabel),"aria-describedby":this.const(`y-axis-description-${this.uuid}`),id:this.const(`y-axis-label-${this.uuid}`),placeholder:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-label-placeholder")}))))),ee.createElement("div",{class:ee.const("dcg-editable-mathquill-container dcg-y-axis-options")},ee.createElement(bc,{limit:this.const("ymin"),axisScale:()=>this.getAxisScale("y"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),ee.createElement(ke,{config:this.const({}),latex:this.const("\\le y\\le")},ee.createElement("span",{class:ee.const("dcg-interval-interior")})),ee.createElement(bc,{limit:this.const("ymax"),axisScale:()=>this.getAxisScale("y"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),ee.createElement(da,{predicate:()=>!this.getPolarMode()&&!this.controller.isThreeDMode()},()=>zK(()=>this.getAxisScale("y")==="linear",{true:()=>ee.createElement("span",{class:ee.const("dcg-step-container")},ee.createElement("span",{class:ee.const("dcg-step-label"),"aria-hidden":ee.const("true")},()=>this.controller.s("graphing-calculator-label-settings-step")),ee.createElement(bc,{limit:this.const("ystep"),axisScale:this.const("linear"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-step"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller})),false:()=>ee.createElement("span",{style:ee.const("display: none")})}))),ee.createElement(da,{predicate:()=>this.controller.isThreeDMode()},()=>ee.createElement("div",null,ee.createElement("div",{class:ee.const("dcg-editable-mathquill-container dcg-z-axis-options")},ee.createElement(bc,{limit:this.const("zmin"),axisScale:this.const("linear"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-z-axis-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),ee.createElement(ke,{config:this.const({}),latex:this.const("\\le z\\le")},ee.createElement("span",{class:ee.const("dcg-interval-interior")})),ee.createElement(bc,{limit:this.const("zmax"),axisScale:this.const("linear"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-z-axis-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller})))),ee.createElement(vD,{controller:this.props.controller})),ee.createElement(Vp,{controller:this.props.controller}),ee.createElement("div",{class:ee.const("dcg-arrow")})))))}toggleBrailleMode(){this.controller.dispatch({type:"set-braille-mode",mode:this.controller.getBrailleMode()==="none"?"nemeth":"none"})}didMountContainer(e){this.node=e,W(document.documentElement).on("dcg-tapstart.settings-view wheel.settings-view",t=>{this.eventShouldClosePopover(t)&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:t.device==="keyboard"})}),W(document.documentElement).on("keydown.settings-view",t=>{let i=ue(t);if(i==="Esc"&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:!0}),this.controller.isGraphSettingsOpen()&&i==="Tab"&&!t.altKey&&!t.metaKey&&!t.ctrlKey){let o=this.controller.getFocusLocation();if(!o||o.type!=="settings")return;t.shiftKey?t.shiftKey&&(o.location==="default-size"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation()):o.location==="icon"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"degree-mode"}}),t.preventDefault(),t.stopPropagation())):o.location==="icon"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"default-size"}}),t.preventDefault(),t.stopPropagation()):o.location==="degree-mode"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation())}})}didUnmountContainer(){W(document.documentElement).off(".settings-view")}didUpdate(){if(!this.controller.isGraphSettingsOpen())return;let e=this.controller.getKeypadHeight();e!==this.cachedKeypadHeight&&document.activeElement&&this.node.contains(document.activeElement)&&Qs(document.activeElement,this.node.querySelector(".dcg-popover-interior"),50),this.cachedKeypadHeight=e}eventShouldClosePopover(e){let t=e.target,i=this.node.contains(t),o=!!t.closest(".dcg-action-settings"),n=this.isMathquillFocused()&&!!t.closest(".dcg-keypad"),a=!!t.closest(".dcg-action-undo")||!!t.closest(".dcg-action-redo");return!(i||o||n||a)}isMathquillFocused(){return this.getFocusedLimit()!==void 0}getLimitLatex(e){return this.controller.getSettingsViewModel().limitLatex[e]||""}setLimitLatex(e,t){t!==this.controller.getSettingsViewModel().limitLatex[e]&&this.controller.dispatch({type:"set-axis-limit-latex",limit:e,latex:t})}getFocusedLimit(){let e=this.controller.getFocusLocation();if(e&&e.type==="settings")return e.location}getInvalidLimits(){let e=!!this.controller.getGraphSettings().degreeMode,t=xr(this.getLimitLatex("xmin"),e),i=xr(this.getLimitLatex("xmax"),e),o=xr(this.getLimitLatex("ymin"),e),n=xr(this.getLimitLatex("ymax"),e),a=this.getLimitLatex("xstep")===""?0:xr(this.getLimitLatex("xstep"),e),s=this.getLimitLatex("ystep")===""?0:xr(this.getLimitLatex("ystep"),e),l={},c=new Wr(t,i,o,n);return isFinite(t)&&isFinite(i)?(l.xmin=!c.isXValid(this.controller.getGraphSettings().xAxisScale),l.xmax=l.xmin):(l.xmin=!isFinite(t),l.xmax=!isFinite(i)),isFinite(o)&&isFinite(n)?(l.ymin=!c.isYValid(this.controller.getGraphSettings().yAxisScale),l.ymax=l.ymin):(l.ymin=!isFinite(o),l.ymax=!isFinite(n)),l.xstep=!Fg(a),l.ystep=!Fg(s),l}isLimitInvalid(e){return this.getInvalidLimits()[e]}onFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"settings",location:e}})}onXAxisLabelInput(e){this.controller.dispatch({type:"set-graph-settings",xAxisLabel:e})}onYAxisLabelInput(e){this.controller.dispatch({type:"set-graph-settings",yAxisLabel:e})}getXAxisLabel(){return this.controller.getGraphSettings().xAxisLabel}getYAxisLabel(){return this.controller.getGraphSettings().yAxisLabel}getShowXAxis(){return!!this.controller.getGraphSettings().showXAxis}toggleXAxis(){this.controller.dispatch({type:"set-graph-settings",showXAxis:!this.getShowXAxis()})}getShowYAxis(){return!!this.controller.getGraphSettings().showYAxis}toggleYAxis(){this.controller.dispatch({type:"set-graph-settings",showYAxis:!this.getShowYAxis()})}getAxisNumbers(){return!!this.controller.getGraphSettings().xAxisNumbers}toggleAxisNumbers(){let e=this.getAxisNumbers();this.controller.dispatch({type:"set-graph-settings",xAxisNumbers:!e,yAxisNumbers:!e,polarNumbers:!e})}getMinorGridlines(){return this.controller.getGraphSettings().xAxisMinorSubdivisions===0}toggleMinorGridlines(){let e=this.getMinorGridlines()?1:0;this.controller.dispatch({type:"set-graph-settings",yAxisMinorSubdivisions:e,xAxisMinorSubdivisions:e})}getPolarMode(){return!!this.controller.getGraphSettings().polarMode}setPolarMode(){this.controller.dispatch({type:"set-polar-mode",polarMode:!0})}setCartesianMode(){this.controller.dispatch({type:"set-polar-mode",polarMode:!1})}getAxisScale(e){return this.controller.getGraphSettings()[e==="x"?"xAxisScale":"yAxisScale"]}getAxisArrowMode(){return this.controller.getGraphSettings().xAxisArrowMode}setAxisArrowMode(e){this.controller.dispatch({type:"set-graph-settings",xAxisArrowMode:e,yAxisArrowMode:e})}getShowGrid(){return this.controller.getGraphSettings().showGrid}toggleGrid(){this.controller.dispatch({type:"set-graph-settings",showGrid:!this.getShowGrid()})}toggleArrows(){let e=this.getAxisArrowMode()==="NONE"?"BOTH":"NONE";this.controller.dispatch({type:"set-graph-settings",xAxisArrowMode:e,yAxisArrowMode:e})}showZoomSquareButton(){let e=this.controller.getAxisScaleSettings();return!this.controller.isThreeDMode()&&e.xAxisScale===e.yAxisScale&&!this.controller.getGraphSettings().squareAxes}getContainerStyle(){return this.controller.getKeypadHeight()?"bottom: 0":""}zoomSquare(){this.controller.dispatch({type:"zoom",direction:"square"})}};var Jt=__dcg_shared_module_exports__['e']($());kt();var Ge=__dcg_shared_module_exports__['e']($());var{If:Lp}=Ge.Components,Op=class extends Ge.Class{template(){return Ge.createElement(Vt,{isFocused:()=>this.props.parent().getFocusedLimit()===this.props.limit(),latex:()=>this.props.parent().getLimitLatex(this.props.limit()),ariaLabel:this.props.ariaLabel,handleLatexChanged:e=>this.props.parent().setLimitLatex(this.props.limit(),e),handleFocusChanged:e=>this.props.parent().onFocusedChanged(this.props.limit(),e),hasError:()=>this.props.parent().isLimitInvalid(this.props.limit()),dataLabelAttributeValue:this.props.limit,controller:this.props.controller,readonly:this.const(!1)})}},SD=class extends Ge.Class{init(){this.controller=this.props.controller(),this.isOpen=this.mustBeOpen()}willUpdate(){this.mustBeOpen()&&(this.isOpen=!0)}mustBeOpen(){var t;let e=(t=this.controller.getGrapher3d())==null?void 0:t.viewportController.getViewport();return e?e.xmin!==e.ymin||e.xmin!==e.zmin||e.xmax!==e.ymax||e.xmax!==e.zmax:!1}template(){return Ge.createElement("div",{class:Ge.const("dcg-three-d-domain dcg-advanced-viewport-settings-view dcg-options-menu-section")},Ge.createElement("div",{class:Ge.const("dcg-options-menu-section-title dcg-flex-container")},Ge.createElement("div",null,()=>this.controller.s("graphing-calculator-label-edit-graph-bounds")),Ge.createElement("div",null,Ge.createElement(Lp,{predicate:this.bindFn(this.showRecenterButton)},()=>Ge.createElement("div",{role:Ge.const("button"),tabindex:Ge.const("0"),class:Ge.const("dcg-action-zoom-recenter dcg-btn-light-gray"),onTap:this.bindFn(this.zoomRecenter)},()=>this.controller.s("graphing-calculator-label-recenter"))))),Ge.createElement("div",{class:Ge.const("dcg-three-d-domain-toggle-container")},Ge.createElement("div",{class:()=>({"dcg-advanced-toggle":!0,"dcg-opened":this.isOpen,"dcg-disabled":this.mustBeOpen()}),onTap:this.bindFn(this.toggleOpen),tabindex:()=>this.mustBeOpen()?-1:0,"aria-disabled":()=>this.mustBeOpen(),role:Ge.const("button"),"aria-pressed":()=>this.isOpen,"aria-expanded":()=>this.isOpen,"aria-label":()=>this.controller.s("graphing-calculator-label-edit-graph-bounds")},Ge.createElement("div",{class:Ge.const("dcg-caret-container")},Ge.createElement("i",{class:Ge.const("dcg-icon-caret-down"),"aria-hidden":Ge.const("true")})),Ge.createElement(Lp,{predicate:()=>this.isOpen},()=>Ge.createElement("span",{class:Ge.const("dcg-axis-label")},Ge.createElement(ke,{config:this.const({}),latex:this.const("x")}),Ge.const("-axis:"))),Ge.createElement(Lp,{predicate:()=>!this.isOpen},()=>Ge.createElement("span",{class:Ge.const("dcg-axis-label")},()=>this.controller.s("graphing-calculator-label-settings-all-axes")))),Ge.createElement("div",{class:Ge.const("dcg-editable-mathquill-container dcg-x-axis-options")},Ge.createElement(Op,{limit:this.const("xmin"),ariaLabel:()=>this.isOpen?this.controller.s("graphing-calculator-narration-settings-x-axis-min"):this.controller.s("graphing-calculator-narration-settings-all-axes-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),Ge.createElement(Lp,{predicate:()=>this.isOpen},()=>Ge.createElement(ke,{config:this.const({}),latex:this.const("\\le x\\le")},Ge.createElement("span",{class:Ge.const("dcg-interval-interior")}))),Ge.createElement(Lp,{predicate:()=>!this.isOpen},()=>Ge.createElement("span",{class:Ge.const("dcg-axis-label-to")},()=>this.controller.s("shared-label-to"))),Ge.createElement(Op,{limit:this.const("xmax"),ariaLabel:()=>this.isOpen?this.controller.s("graphing-calculator-narration-settings-x-axis-max"):this.controller.s("graphing-calculator-narration-settings-all-axes-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}))),Ge.createElement(Lp,{predicate:()=>this.isOpen},()=>Ge.createElement("div",{class:Ge.const("dcg-advanced-contents")},Ge.createElement("div",{class:Ge.const("dcg-editable-mathquill-container dcg-y-axis-options")},Ge.createElement("span",{class:Ge.const("dcg-axis-label")},Ge.createElement(ke,{config:this.const({}),latex:this.const("y")}),Ge.const("-axis:")),Ge.createElement(Op,{limit:this.const("ymin"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),Ge.createElement(ke,{config:this.const({}),latex:this.const("\\le y\\le")},Ge.createElement("span",{class:Ge.const("dcg-interval-interior")})),Ge.createElement(Op,{limit:this.const("ymax"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-y-axis-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller})),Ge.createElement("div",null,Ge.createElement("div",{class:Ge.const("dcg-editable-mathquill-container dcg-z-axis-options")},Ge.createElement("span",{class:Ge.const("dcg-axis-label")},Ge.createElement(ke,{config:this.const({}),latex:this.const("z")}),Ge.const("-axis:")),Ge.createElement(Op,{limit:this.const("zmin"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-z-axis-min"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}),Ge.createElement(ke,{config:this.const({}),latex:this.const("\\le z\\le")},Ge.createElement("span",{class:Ge.const("dcg-interval-interior")})),Ge.createElement(Op,{limit:this.const("zmax"),ariaLabel:()=>this.controller.s("graphing-calculator-narration-settings-z-axis-max"),needsSystemKeypad:()=>!this.controller.isKeypadEnabled(),parent:this.const(this),controller:this.props.controller}))),Ge.createElement(Lp,{predicate:this.bindFn(this.showZoomSquareButton)},()=>Ge.createElement("div",null,Ge.createElement("div",{role:Ge.const("button"),tabindex:Ge.const("0"),class:Ge.const("dcg-action-zoom-square-3d dcg-btn-primary"),onTap:this.bindFn(this.zoomSquare)},()=>this.controller.s("graphing-calculator-button-settings-zoom-square")))))),Ge.createElement(Lp,{predicate:()=>!this.controller.getLockViewportConfigSetting()},()=>Ge.createElement(He,{ariaLabel:()=>this.props.controller().s("graphing-calculator-label-disable-zoom"),onChange:()=>{this.props.controller().dispatch({type:"toggle-lock-viewport"})},checked:()=>this.props.controller().getLockViewportUserSetting()},()=>this.props.controller().s("graphing-calculator-label-disable-zoom"))))}showRecenterButton(){var t;let e=(t=this.controller.getGrapher3d())==null?void 0:t.webglLayer.domain();return!!e&&!Wz(e,0)}zoomRecenter(e){this.controller.dispatch({type:"zoom",direction:"recenter"}),e.device==="keyboard"&&this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"xmin"}})}getFocusedLimit(){let e=this.controller.getFocusLocation();if(e&&e.type==="settings")return e.location}getLimitLatex(e){return this.controller.getSettingsViewModel().limitLatex[e]||""}setLimitLatex(e,t){t!==this.controller.getSettingsViewModel().limitLatex[e]&&this.controller.dispatch({type:"set-axis-limit-latex",limit:e,latex:t,updateYZAlso:!this.isOpen&&(e==="xmin"||e==="xmax")})}getInvalidLimits(){let e=!!this.controller.getGraphSettings().degreeMode,t=xr(this.getLimitLatex("xmin"),e),i=xr(this.getLimitLatex("xmax"),e),o=xr(this.getLimitLatex("ymin"),e),n=xr(this.getLimitLatex("ymax"),e),a=xr(this.getLimitLatex("zmin"),e),s=xr(this.getLimitLatex("zmax"),e),l={},c=new Wr(t,i,o,n,a,s);return isFinite(t)&&isFinite(i)?(l.xmin=!c.isXValid(this.controller.getGraphSettings().xAxisScale),l.xmax=l.xmin):(l.xmin=!isFinite(t),l.xmax=!isFinite(i)),isFinite(o)&&isFinite(n)?(l.ymin=!c.isYValid(this.controller.getGraphSettings().yAxisScale),l.ymax=l.ymin):(l.ymin=!isFinite(o),l.ymax=!isFinite(n)),isFinite(a)&&isFinite(s)?(l.zmin=!c.isZValid(),l.zmax=l.zmin):(l.zmin=!isFinite(a),l.zmax=!isFinite(s)),l}isLimitInvalid(e){return this.getInvalidLimits()[e]}onFocusedChanged(e,t){t?this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:e}}):this.controller.dispatch({type:"blur-focus-location",location:{type:"settings",location:e}})}toggleOpen(){this.mustBeOpen()||(this.isOpen=!this.isOpen,this.update())}showZoomSquareButton(){return!this.controller.getGraphSettings().squareAxes}zoomSquare(e){this.controller.dispatch({type:"zoom",direction:"square"}),e.device==="keyboard"&&this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"zmax"}})}};var zn=__dcg_shared_module_exports__['e']($());var{If:KK}=zn.Components,sf=class extends zn.Class{init(){this.controller=this.props.controller()}template(){return zn.createElement(KK,{predicate:this.bindFn(this.shouldShowBrailleSection)},()=>zn.createElement("div",{class:zn.const("dcg-options-menu-section")},zn.createElement("div",{class:zn.const("dcg-options-menu-section-title")},()=>this.controller.s("shared-calculator-narration-braille-mode"),zn.createElement(zr,{ariaLabel:()=>this.controller.s("shared-calculator-narration-braille-mode"),onChange:this.bindFn(this.toggleBrailleMode),toggled:()=>this.controller.getBrailleMode()!=="none"})),zn.createElement(KK,{predicate:()=>this.controller.getBrailleMode()!=="none"},()=>zn.createElement("div",{class:zn.const("dcg-braille-options-container")},zn.createElement(Pp,{controller:this.props.controller,showBrailleNote:this.const(!0)})))))}shouldShowBrailleSection(){return this.controller.getBrailleControls()&&this.controller.getGraphSettings().config.expressions}toggleBrailleMode(){this.controller.dispatch({type:"set-braille-mode",mode:this.controller.getBrailleMode()==="none"?"nemeth":"none"})}};var{If:UK}=Jt.Components,ED=class extends Jt.Class{init(){this.controller=this.props.controller()}template(){return Jt.createElement("div",{class:Jt.const("dcg-settings-view-container dcg-settings-view-3d-container")},Jt.createElement("div",{class:Jt.const("dcg-3d-settings-flex-container")},Jt.createElement(Ap,{...this.props,isPillbox:this.const(!0)})),Jt.createElement(UK,{predicate:()=>this.controller.isGraphSettingsOpen()},()=>Jt.createElement("div",{class:Jt.const("dcg-settings-container dcg-left dcg-popover dcg-constrained-height-popover"),style:this.bindFn(this.getContainerStyle),didMount:this.bindFn(this.didMountContainer),didUnmount:this.bindFn(this.didUnmountContainer)},Jt.createElement("div",{class:Jt.const("dcg-popover-interior dcg-generic-options-menu"),role:Jt.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-graph-settings")},Jt.createElement(S0,{controller:this.props.controller}),Jt.createElement(SD,{controller:this.props.controller}),Jt.createElement("div",{class:Jt.const("dcg-options-menu-section")},Jt.createElement("div",{class:Jt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-label-axes"),Jt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-label-axes"),onChange:()=>{this.controller.dispatch({type:"set-graph-settings",showAxis3D:!this.controller.getGraphSettings().showAxis3D})},toggled:()=>!!this.controller.getGraphSettings().showAxis3D})),Jt.createElement(UK,{predicate:()=>this.controller.getGraphSettings().showAxis3D},()=>Jt.createElement("div",{class:Jt.const("dcg-show-axis-labels-section")},Jt.createElement("div",null,Jt.createElement(He,{onChange:()=>{this.controller.dispatch({type:"set-graph-settings",showPlane3D:!this.controller.getGraphSettings().showPlane3D})},checked:()=>!!this.controller.getGraphSettings().showPlane3D},()=>this.controller.s("graphing-calculator-label-settings-domain-plane"))),Jt.createElement("div",null,Jt.createElement(He,{onChange:()=>{this.controller.dispatch({type:"set-graph-settings",showNumbers3D:!this.controller.getGraphSettings().showNumbers3D})},checked:()=>!!this.controller.getGraphSettings().showNumbers3D},()=>this.controller.s("graphing-calculator-label-settings-numbers-3d"))),Jt.createElement("div",null,Jt.createElement(He,{onChange:()=>{this.controller.dispatch({type:"set-graph-settings",showAxisLabels3D:!this.controller.getGraphSettings().showAxisLabels3D})},checked:()=>!!this.controller.getGraphSettings().showAxisLabels3D},()=>this.controller.s("graphing-calculator-label-settings-axis-labels-3d")))))),Jt.createElement(sf,{controller:this.props.controller}),Jt.createElement(Vp,{controller:this.props.controller}),Jt.createElement("div",{class:Jt.const("dcg-arrow")})))))}didMountContainer(e){this.node=e,W(document.documentElement).on("dcg-tapstart.settings-view wheel.settings-view",t=>{this.eventShouldClosePopover(t)&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:t.device==="keyboard"})}),W(document.documentElement).on("keydown.settings-view",t=>{let i=ue(t);if(i==="Esc"&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:!0}),this.controller.isGraphSettingsOpen()&&i==="Tab"&&!t.altKey&&!t.metaKey&&!t.ctrlKey){let o=this.controller.getFocusLocation();if(!o||o.type!=="settings")return;t.shiftKey?t.shiftKey&&(o.location==="reverse-contrast"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation()):o.location==="icon"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"degree-mode"}}),t.preventDefault(),t.stopPropagation())):o.location==="icon"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"reverse-contrast"}}),t.preventDefault(),t.stopPropagation()):o.location==="degree-mode"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation())}})}didUnmountContainer(){W(document.documentElement).off(".settings-view")}didUpdate(){if(!this.controller.isGraphSettingsOpen())return;let e=this.controller.getKeypadHeight();e!==this.cachedKeypadHeight&&document.activeElement&&this.node.contains(document.activeElement)&&Qs(document.activeElement,this.node.querySelector(".dcg-popover-interior"),50),this.cachedKeypadHeight=e}eventShouldClosePopover(e){let t=e.target,i=this.node.contains(t),o=!!t.closest(".dcg-action-settings"),n=this.isMathquillFocused()&&t.closest(".dcg-keypad"),a=!!t.closest(".dcg-action-undo")||!!t.closest(".dcg-action-redo");return!(i||o||n||a)}isMathquillFocused(){let e=this.controller.getFocusLocation();return(e==null?void 0:e.type)==="settings"}getContainerStyle(){return this.controller.getKeypadHeight()?"bottom: 0":""}};var Si=__dcg_shared_module_exports__['e']($());var DD=class extends Si.Class{init(){this.controller=this.props.controller()}template(){return Si.createElement("div",{class:Si.const("dcg-zoom-container")},Si.createElement("div",{class:Si.const("dcg-zoominout-pillbox dcg-btn-flat-gray dcg-btn-flat-gray-group dcg-group-vertical"),role:Si.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-narration-zoom-options-label")},Si.createElement(Ce,{tooltip:this.bindFn(this.getZoomInLabel),displayBlock:this.const(!0),gravity:this.const("w")},Si.createElement("div",{class:Si.const("dcg-action-zoomin dcg-pillbox-btn-interior"),role:Si.const("button"),tabindex:Si.const("0"),"aria-label":this.bindFn(this.getZoomInLabel),onTap:this.bindFn(this.zoomIn),manageFocus:this.const(Fe({controller:this.controller,location:{type:"zoom-in-btn"}}))},Si.createElement("i",{class:Si.const("dcg-icon-plus"),"aria-hidden":Si.const("true")}))),Si.createElement(Ce,{tooltip:this.bindFn(this.getZoomOutLabel),displayBlock:this.const(!0),gravity:this.const("w")},Si.createElement("div",{class:Si.const("dcg-action-zoomout dcg-pillbox-btn-interior"),role:Si.const("button"),tabindex:Si.const("0"),"aria-label":this.bindFn(this.getZoomOutLabel),onTap:this.bindFn(this.zoomOut)},Si.createElement("i",{class:Si.const("dcg-icon-minus"),"aria-hidden":Si.const("true")})))))}zoomIn(){this.controller.dispatch({type:"zoom",direction:"in"})}zoomOut(){this.controller.dispatch({type:"zoom",direction:"out"})}getZoomInLabel(){return this.controller.s("graphing-calculator-label-tooltip-zoom-in")}getZoomOutLabel(){return this.controller.s("graphing-calculator-label-tooltip-zoom-out")}};var Ta=__dcg_shared_module_exports__['e']($());var _x=class extends Ta.Class{init(){this.controller=this.props.controller()}template(){return Ta.createElement("div",{class:Ta.const("dcg-reset-container")},Ta.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-tooltip-reset"),gravity:this.props.tooltipGravity},Ta.createElement("div",{class:Ta.const("dcg-reset-pillbox dcg-action-reset dcg-btn-flat-gray dcg-pillbox-btn-interior"),role:Ta.const("button"),tabindex:Ta.const("0"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-reset"),onTap:this.bindFn(this.reset)},Ta.createElement("i",{class:Ta.const("dcg-icon-reset"),"aria-hidden":Ta.const("true")}))))}reset(){this.controller.dispatch({type:"reset-graph"})}};var fl=__dcg_shared_module_exports__['e']($());var kD=class extends fl.Class{init(){this.controller=this.props.controller()}template(){return fl.createElement(Ce,{tooltip:this.bindFn(this.getZoomRestoreLabel),gravity:this.const("w")},fl.createElement("div",{class:()=>({"dcg-btn-flat-gray":!0,"dcg-pillbox-btn-interior":!0,"dcg-action-zoomrestore":!0}),role:fl.const("button"),tabindex:fl.const("0"),"aria-label":this.bindFn(this.getZoomRestoreLabel),onTap:this.bindFn(this.setDefaultViewport),manageFocus:this.const(Fe({controller:this.controller,location:{type:"zoom-restore-btn"}}))},fl.createElement("i",{class:fl.const("dcg-icon-home"),"aria-hidden":fl.const("true")})))}setDefaultViewport(){this.controller.dispatch({type:"zoom",direction:"default"}),this.controller.dispatch({type:"set-focus-location",location:{type:"zoom-in-btn"}})}getZoomRestoreLabel(){return this.controller.s("graphing-calculator-label-tooltip-viewport-default")}};var pn=__dcg_shared_module_exports__['e']($());var Fx=class extends pn.Class{init(){this.controller=this.props.controller()}template(){return pn.createElement("div",{class:()=>({"dcg-3d-orientation-pillbox":!0,"dcg-btn-flat-gray":!0,"dcg-btn-flat-gray-group":!0,"dcg-group-horizontal":this.props.layout()==="horizontal","dcg-group-vertical":this.props.layout()==="vertical"}),role:pn.const("group"),"aria-label":()=>this.controller.s("graphing-calculator-narration-3d-orientation-options-label")},pn.createElement(Ce,{disabled:this.bindFn(this.isDefaultOrientation),tooltip:this.bindFn(this.getDefaultOrientationLabel),gravity:this.bindFn(this.getTooltipGravity),displayBlock:this.const(!0)},pn.createElement("div",{class:()=>({"dcg-action-defaultorientation":!0,"dcg-pillbox-btn-interior":!0,"dcg-disabled":this.isDefaultOrientation()}),role:pn.const("button"),"aria-disabled":this.bindFn(this.isDefaultOrientation),tabindex:()=>this.isDefaultOrientation()?-1:0,"aria-label":this.bindFn(this.getDefaultOrientationLabel),onTap:this.bindFn(this.rotateToDefaultOrientation)},pn.createElement("i",{class:pn.const("dcg-icon-3d-cube"),"aria-hidden":pn.const("true")}))),pn.createElement(Ce,{tooltip:this.bindFn(this.getXYOrientationLabel),gravity:this.bindFn(this.getTooltipGravity),disabled:this.bindFn(this.isXYPlaneOrientation),displayBlock:this.const(!0)},pn.createElement("div",{class:()=>({"dcg-action-xyorientation":!0,"dcg-pillbox-btn-interior":!0,"dcg-disabled":this.isXYPlaneOrientation()}),role:pn.const("button"),"aria-disabled":this.bindFn(this.isXYPlaneOrientation),tabindex:()=>this.isXYPlaneOrientation()?-1:0,"aria-label":this.bindFn(this.getXYOrientationLabel),onTap:this.bindFn(this.rotateToXyOrientation)},pn.createElement("i",{class:pn.const("dcg-icon-xy-plane"),"aria-hidden":pn.const("true")}))))}getTooltipGravity(){return this.props.layout()==="horizontal"?"s":"w"}rotateToDefaultOrientation(){this.controller.dispatch({type:"zoom",direction:"default3dOrientation"})}rotateToXyOrientation(){this.controller.dispatch({type:"zoom",direction:"xy3dOrientation"})}isDefaultOrientation(){var t;let e=(t=this.controller.getGrapher3d())==null?void 0:t.controls;return!!(e!=null&&e.isDefaultOrientation())}isXYPlaneOrientation(){var t;let e=(t=this.controller.getGrapher3d())==null?void 0:t.controls;return!!(e!=null&&e.isXYPlaneOrientation())}getDefaultOrientationLabel(){return this.controller.s("graphing-calculator-label-tooltip-zoom-default-orientation")}getXYOrientationLabel(){return this.controller.s("graphing-calculator-label-tooltip-zoom-xy-orientation")}};var{Each:mX,If:Rx}=Ir.Components,TD=class extends Ir.Class{init(){this.controller=this.props.controller()}template(){return Ir.createElement("div",null,Ir.createElement(Rx,{predicate:this.bindFn(this.shouldShowLeftPillboxes)},()=>Ir.createElement("div",{class:()=>({"dcg-left-pillboxes":!0,"dcg-geometry-toolbar-present":this.controller.shouldShowGeoToolbar()})},Ir.createElement(Rx,{predicate:this.bindFn(this.shouldShowUndoRedo)},()=>Ir.createElement(qm,{controller:this.props.controller,isPillbox:this.const(!0)})),Ir.createElement(Rx,{predicate:this.bindFn(this.shouldShowGeoReset)},()=>Ir.createElement(_x,{controller:this.props.controller,tooltipGravity:this.const("s")})))),Ir.createElement("div",{class:()=>({"dcg-pillbox-container":!0,"dcg-geometry-toolbar-present":this.controller.shouldShowGeoToolbar()}),role:()=>this.controller.isGeoUIActive()?void 0:"region","aria-label":()=>this.controller.isGeoUIActive()?void 0:this.controller.s("graphing-calculator-narration-graph-settings-controls")},Ir.createElement("div",{class:Ir.const("dcg-overgraph-pillbox-elements"),style:this.bindFn(this.getContainerStyle)},Ir.createElement(Rx,{predicate:()=>this.shouldShowOrientationPillbox()&&!this.onSmallScreen()},()=>Ir.createElement("div",{class:Ir.const("dcg-left-pillbox-elements")},Ir.createElement(Fx,{controller:this.props.controller,layout:this.const("horizontal")}))),Ir.createElement(Rx,{predicate:()=>this.getRightPillboxElements().length>0},()=>Ir.createElement("div",{class:Ir.const("dcg-right-pillbox-elements")},mX(()=>this.getRightPillboxElements(),{item:e=>{switch(e){case"settings2d":return Ir.createElement(CD,{controller:this.props.controller});case"settings3d":return Ir.createElement(ED,{controller:this.props.controller});case"settings-geo":return Ir.createElement(Ap,{...this.props,isPillbox:this.const(!0)});case"reset":return Ir.createElement(_x,{controller:this.props.controller,tooltipGravity:this.const("w")});case"zoom-in-out":return Ir.createElement(DD,{controller:this.props.controller});case"orientation":return Ir.createElement(Fx,{layout:this.const("vertical"),controller:this.props.controller});case"zoom-home":return Ir.createElement(kD,{controller:this.props.controller})}}}))))),Ir.createElement(Ox,{controller:()=>this.props.controller()}))}shouldShowLeftPillboxes(){return this.shouldShowGeoReset()||this.shouldShowUndoRedo()}shouldShowGeoReset(){return this.controller.isGeometry()&&this.shouldShowResetButton()&&!this.controller.isListEnabled()}shouldShowUndoRedo(){return this.controller.isGeometry()&&!this.controller.isListEnabled()&&!(this.controller.getGeoToolbarSuppressedByAuthor()||this.controller.getGraphSettings().config.hideGeoUI)}getRightPillboxElements(){let e=[];return this.shouldShowGraphSettings()&&e.push("settings2d"),this.shouldShow3DGraphSettings()&&e.push("settings3d"),this.shouldShowGeometrySettings()&&e.push("settings-geo"),this.shouldShowResetButton()&&!this.shouldShowGeoReset()&&e.push("reset"),this.shouldShowZoomInOutButtons()&&e.push("zoom-in-out"),this.shouldShowOrientationPillbox()&&this.onSmallScreen()&&e.push("orientation"),this.shouldShowZoomHomeButton()&&e.push("zoom-home"),e}shouldShowOrientationPillbox(){return this.controller.is3dProduct()}getContainerStyle(){let e=this.controller.isKeypadOpen()?this.controller.getKeypadHeight():0;return this.controller.isGraphSettingsOpen()?`bottom: ${e}px;`:"bottom: auto"}shouldShow3DGraphSettings(){return this.controller.getGraphSettings().config.settingsMenu&&this.controller.is3dProduct()}shouldShowGraphSettings(){return this.controller.getGraphSettings().config.settingsMenu&&!this.controller.isGeometry()&&!this.controller.is3dProduct()}shouldShowGeometrySettings(){return this.controller.getGraphSettings().config.settingsMenu?this.controller.isGeometry():!1}zoomEnabled(){return this.controller.getGraphSettings().config.zoomButtons&&!this.isViewportLocked()}onSmallScreen(){let e=this.controller.getLayoutMeasurements();return e.width<450||e.height<450}shouldShowZoomInOutButtons(){return this.onSmallScreen()?!1:this.zoomEnabled()}shouldShowZoomHomeButton(){return this.zoomEnabled()&&!this.controller.isDefaultViewportRestored()}isViewportLocked(){return this.controller.getGraphSettings().config.lockViewport||this.controller.getGraphSettings().userLockedViewport}shouldShowResetButton(){return this.controller.getGraphSettings().config.showResetButtonOnGraphpaper&&this.controller.hasDefaultState()}};var gr=__dcg_shared_module_exports__['e']($());var Ht=__dcg_shared_module_exports__['e']($());var ID=__dcg_shared_module_exports__['e']($());function HK(r,e,t){r.save();for(let i of t)switch(i.type){case"point":{let o;!i.color||i.color==="dark"?o=SS({isPoint:!0,color:e.point,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1}):i.color==="light"?o=__dcg_shared_module_exports__['cd'](e.point,.7):o=i.color;let n;switch(i.size){case"small":n=5;break;case"large":n=10;break;case"medium":default:n=5;break}i.hollow?(r.lineWidth=2,r.strokeStyle=o,r.beginPath(),r.arc(i.x,i.y,n-1,0,2*Math.PI),r.stroke()):(r.fillStyle=o,r.beginPath(),r.arc(i.x,i.y,n,0,2*Math.PI),r.fill())}break;case"circle":{let o;!i.color||i.color==="dark"?o=Ub({isPoint:!1,color:e.circle,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1}):i.color==="light"?o=__dcg_shared_module_exports__['cd'](e.circle,.7):o=i.color;let n;switch(i.lineWidth){case"small":n=2;break;case"large":n=7;break;case"medium":default:n=4;break}r.lineWidth=n,r.strokeStyle=o,r.beginPath(),r.arc(i.x,i.y,i.radius,0,2*Math.PI),r.stroke()}break;case"arc":{let o;!i.color||i.color==="dark"?o=Ub({isPoint:!1,color:e.circle,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1}):i.color==="light"?o=__dcg_shared_module_exports__['cd'](e.circle,.7):o=i.color;let n;switch(i.lineWidth){case"small":n=2;break;case"large":n=7;break;case"medium":default:n=4;break}r.lineWidth=n,r.strokeStyle=o,r.beginPath(),r.arc(i.x,i.y,i.radius,i.startAngle,i.endAngle),r.stroke()}break;case"stroked-path":{let o;!i.color||i.color==="dark"?o=Ub({isPoint:!1,color:e.line,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1}):i.color==="light"?o=__dcg_shared_module_exports__['cd'](e.line,.7):o=i.color;let n=i.path,a;switch(i.lineWidth){case"small":a=1;break;case"large":a=5;break;case"medium":default:a=3;break}r.lineCap="round",r.lineJoin="round",r.strokeStyle=o,r.lineWidth=a,r.beginPath(),r.moveTo(n[0],n[1]);for(let s=2;s<n.length;s+=2)r.lineTo(n[s],n[s+1]);if(i.arrow){let s=[],l=n.length-1;bX(s,n[l-3],n[l-2],n[l-1],n[l],a/2+9.5);for(let c=0;c<s.length;c+=2)r.lineTo(s[c],s[c+1])}r.stroke()}break;case"filled-polygon":{let o;i.color?o=i.color:o=SS({isPoint:!1,color:e.polygon,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1,isTransparentObject:!0});let n=i.path;r.fillStyle=o,r.beginPath(),r.moveTo(n[0],n[1]);for(let a=2;a<n.length;a+=2)r.lineTo(n[a],n[a+1]);r.fill()}break;case"angle":{let o=Ub({isPoint:!1,color:e.angle,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1,isTransparentObject:!0}),n=SS({isPoint:!1,color:e.angle,uncommitted:!1,featured:!1,hidden:!1,hovered:!1,projectorMode:!1,isTransparentObject:!0});fX(r,{type:"angle-indicator",lineWidth:4,strokeStyle:o,fillStyle:n,isRightAngle:!1,x:i.x,y:i.y,isDirected:i.isDirected,radius:i.radius,startAngle:i.startAngle,deltaAngle:i.deltaAngle})}break;default:return i}r.restore()}function fX(r,e){r.beginPath(),qK(r,e),r.lineTo(e.x,e.y),r.lineTo(e.x+e.radius*Math.cos(e.startAngle),e.y+e.radius*Math.sin(e.startAngle)),e.isDirected||(r.fillStyle=e.fillStyle,r.fill()),r.strokeStyle=e.strokeStyle,r.lineWidth=e.lineWidth,r.beginPath(),qK(r,e),r.stroke()}function qK(r,e){let t=e.startAngle+e.deltaAngle;if(e.isRightAngle){let i=e.radius*Math.cos(e.startAngle),o=e.radius*Math.cos(t),n=e.radius*Math.sin(e.startAngle),a=e.radius*Math.sin(t);r.moveTo(e.x+i,e.y+n),r.lineTo(e.x+i+o,e.y+n+a),r.lineTo(e.x+o,e.y+a)}else r.arc(e.x,e.y,e.radius,e.startAngle,t)}function bX(r,e,t,i,o,n=12){let a=Math.atan2(o-t,i-e),s=i-n*Math.cos(a-Math.PI/9),l=o-n*Math.sin(a-Math.PI/9),c=i-n*Math.cos(a+Math.PI/9),d=o-n*Math.sin(a+Math.PI/9),u=i-(n-2)*Math.cos(a-Math.PI/18),h=o-(n-2)*Math.sin(a-Math.PI/18),g=i-(n-2)*Math.cos(a+Math.PI/18),b=o-(n-2)*Math.sin(a+Math.PI/18);r.push(s,l,c,d,i,o,u,h,g,b,i,o)}var bh=class extends ID.Class{template(){return ID.createElement("canvas",{didMount:this.bindFn(this.didMountCanvas),width:()=>this.props.width(),height:()=>this.props.height(),style:()=>({width:this.props.width()/2+"px",height:this.props.height()/2+"px"})})}didMountCanvas(e){this.canvas=e,this.redraw()}didUpdate(){this.redraw()}redraw(){let e=this.props.instructions()||[],t=this.props.model().getNonObjectsState().ui.colors;if(__dcg_shared_module_exports__['Oa'](e,this.lastInstructions)&&__dcg_shared_module_exports__['Oa'](t,this.lastColors))return;this.lastInstructions=e,this.lastColors=t;let i=this.canvas.getContext("2d");i.clearRect(0,0,i.canvas.width,i.canvas.height),HK(i,t,e)}};var pa=__dcg_shared_module_exports__['e']($());var{For:yX}=pa.Components;function E1(r,e){switch(e){case"selection":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-selection");case"point":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-point");case"line":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-line");case"circle":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-circle");case"angle":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-angle");case"polygon":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-polygon");case"transformation":return r.s("graphing-calculator-label-geometry-tools-dropdown-menu-transformation")}}var MD=class extends pa.Class{init(){this.controller=this.props.controller(),this.geoModel=this.controller.getGeoModel()}getTools(){let e=this.controller.getOpenItemMenu();return!e||e.type!=="geo-tool-dropdown"||e.group!==this.props.group()?[]:e.tools}getAriaLabel(){let e=this.props.group();return E1(this.controller,e)}template(){return pa.createElement("div",{class:()=>({"dcg-options-menu":!0,"dcg-select-tools-dropdown":!0,"dcg-shift-menu-left":this.getTools()[0]==="angle"}),role:pa.const("menu"),"aria-label":this.bindFn(this.getAriaLabel),onKeyDown:this.bindFn(this.handleKeyPress),"dcg-geo-tool-group":this.bindFn(this.props.group)},pa.createElement(yX,{each:()=>this.getTools()},pa.createElement("div",{class:pa.const("dcg-options-menu-section")},e=>pa.createElement("button",{role:pa.const("menuitemradio"),"aria-disabled":()=>!this.isToolEnabled(e),"aria-description":()=>this.isToolEnabled(e)?void 0:this.controller.s("graphing-calculator-narration-geometry-tool-disabled",{tool:e}),"aria-checked":()=>this.controller.getActiveTool()===e,onTap:t=>{this.isToolEnabled(e)&&this.chooseTool({tool:e,fromKeyboard:t.device==="keyboard"})},"dcg-geo-tool":this.const(e),class:()=>({"dcg-dropdown-tool":!0,"dcg-selected-tool":this.controller.getActiveTool()===e,"dcg-disabled":!this.isToolEnabled(e),"dcg-will-be-hidden-or-disabled":this.controller.toolWillBeHiddenOrDisabled(e)}),manageFocus:this.const(Fe({controller:this.controller,location:{type:"geo-basic-tool-menu-item",tool:e}}))},pa.createElement(bh,{model:()=>this.geoModel,width:this.const(100),height:this.const(100),instructions:()=>this.geoModel.getIconInstructionsForTool(e)}),pa.createElement("span",null,()=>this.geoModel.getDisplayNameForTool(e))))))}isToolEnabled(e){return this.controller.isGeoToolEnabled(e)}chooseTool(e){this.props.controller().dispatch({type:"select-geo-tool",tool:e.tool,focusGraphPaper:!!e.fromKeyboard})}handleKeyPress(e){let t=this.props.guid();if(!t)return;let i=ue(e);if(i!=="Up"&&i!=="Down"&&i!=="Esc")return;let o=this.getTools(),n=this.controller.getFocusLocation();if(i==="Esc"){let c=this.props.group();(n==null?void 0:n.type)==="geo-basic-tool-menu-item"&&this.focusMenuIcon(),c&&this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"geo-tool-dropdown",guid:t,tools:o,group:c,focusFirstOption:!1}}),e.stopPropagation(),e.preventDefault();return}if((n==null?void 0:n.type)!=="geo-basic-tool-menu-item")return;let a=i==="Down"?1:-1,l=(o.indexOf(n.tool)+a)%o.length;l<0&&(l=o.length+l),l>=0&&(this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool-menu-item",tool:o[l]}}),e.preventDefault(),e.stopPropagation())}focusMenuIcon(){let e=this.props.group();if(!e)return;let t=this.controller.getGeoToolbarItemsForGroup(e),i=t==null?void 0:t.current;if(i)return this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:i}})}};var{If:WK,For:xX,Switch:wX}=Ht.Components,D1=class extends Ht.Class{getAriaLabel(){let e=this.props.controller(),t=E1(e,this.props.group());if(t)return e.s("graphing-calculator-label-geometry-tools-open-dropdown-menu-transformation",{item:t})}template(){return Ht.createElement("span",{style:Ht.const("position:relative;"),class:Ht.const("dcg-tool-dropdown"),role:Ht.const("button"),tabindex:Ht.const("-1"),"aria-label":this.bindFn(this.getAriaLabel),"aria-expanded":this.props.ariaExpanded,onTap:this.bindFn(this.handleOnTap)},Ht.createElement("span",{class:Ht.const("dcg-dropdown-icon")},Ht.createElement("i",{class:Ht.const("dcg-icon-caret-down")})))}handleOnTap(e){e.handle(),this.props.openDropDown()}},AD=class extends Ht.Class{init(){this.controller=this.props.controller(),this.geoModel=this.controller.getGeoModel()}getGroups(){return this.controller.getGeoToolbarGroupKeys()}template(){return Ht.createElement("div",{role:Ht.const("toolbar"),"aria-label":()=>this.controller.s("graphing-calculator-label-geometry-tools"),class:Ht.const("dcg-geo-basic-tools dcg-animate-in-after-initial-load"),onKeydown:e=>this.handleToolbarKeydown(e)},Ht.createElement(xX,{each:()=>this.getGroups()},Ht.createElement("div",{class:Ht.const("dcg-geo-basic-tools-row")},e=>Ht.createElement("div",{class:Ht.const("dcg-tool-button-container")},Ht.createElement("button",{class:()=>({"dcg-split-btn":!!this.getGroup(e).dropdown,"dcg-selected":this.isGroupSelected(this.getGroup(e)),"dcg-disabled":!this.isGroupEnabled(this.getGroup(e)),"dcg-will-be-hidden-or-disabled":this.controller.toolWillBeHiddenOrDisabled(this.getGroup(e).current)}),"dcg-geo-tool":()=>this.getGroup(e).current,"dcg-geo-tool-group":()=>e,tabindex:()=>this.isGroupSelected(this.getGroup(e))?0:-1,"aria-label":()=>this.geoModel.getDisplayNameForTool(this.getGroup(e).current),"aria-disabled":()=>!this.isGroupEnabled(this.getGroup(e)),"aria-haspopup":()=>!!this.getGroup(e).dropdown,"aria-pressed":()=>this.isGroupSelected(this.getGroup(e)),onTap:t=>this.handleTap(t,this.getGroup(e)),onLongHold:()=>this.openMenuFromLongHold(this.getGroup(e)),"dcg-open-menu-guid":()=>this.getGuid(this.getGroup(e)),manageFocus:()=>Fe({controller:this.controller,location:{type:"geo-basic-tool",tool:this.getGroup(e).current}}),"aria-controls":()=>this.getGuid(this.getGroup(e)),"aria-expanded":()=>this.getGroup(e).dropdown?this.isGroupDropdownOpen(this.getGroup(e)):void 0},Ht.createElement("span",{class:()=>({"dcg-basic-tool-btn":!0,"dcg-icon":!0})},Ht.createElement(bh,{model:()=>this.geoModel,width:this.const(100),height:this.const(100),instructions:()=>this.geoModel.getIconInstructionsForTool(this.getGroup(e).current)})),Ht.createElement(WK,{predicate:()=>!!this.getGroup(e).dropdown},()=>Ht.createElement(D1,{group:()=>e,controller:this.props.controller,ariaExpanded:()=>this.isGroupDropdownOpen(this.getGroup(e)),openDropDown:()=>this.openDropdownMenu(this.getGroup(e))}))),Ht.createElement(WK,{predicate:()=>this.isGroupDropdownOpen(this.getGroup(e))},()=>Ht.createElement(ks,{controller:this.props.controller,shouldHandleTabAndEscape:this.const(!1),menuType:this.const("geo-tool-dropdown"),menuButtonFocusLocation:this.const({type:"geo-basic-tool",tool:this.getGroup(e).current}),rootElSelector:this.const(".dcg-geometry-toolbar-view")},Ht.createElement(MD,{controller:this.props.controller,group:()=>e,guid:()=>this.getGuid(this.getGroup(e))})))))),Ht.createElement(wX,{key:()=>this.controller.getGeometryGettingStartedMessageState()},e=>{switch(e){case"hidden":return Ht.createElement("span",null);case"construct":case"pick-a-tool":return Ht.createElement("div",{class:()=>({"dcg-3d-getting-started-pointer":!0,"dcg-3d-getting-started-has-tool":this.controller.getGeometryGettingStartedMessageState()!=="pick-a-tool"})},this.bindFn(this.getPointerMessage),Ht.createElement("span",{class:Ht.const("dcg-curved-icon-container")},Ht.createElement("i",{class:Ht.const("dcg-icon-curved-arrow")})))}}))}isGroupSelected(e){return this.selectedTool()===e.current}isGroupEnabled(e){return this.controller.isGeoToolEnabled(e.current)}getGroup(e){let t=this.controller.getGeoToolbarItemsForGroup(e);if(!t)throw new Error("Programing error: "+e+" not found");return t}getPointerMessage(){return this.controller.getGeometryGettingStartedMessageState()==="pick-a-tool"?this.controller.s("geometry-label-pick-tool-instruction"):this.controller.s("geometry-label-construct-instruction")}getFocusedOrActiveTool(){let e=this.controller.getAllVisibleGeoToolbarItems(),t=this.controller.getFocusLocation();if(!t)return;let i;return t.type==="geo-basic-tool"||t.type==="geo-basic-tool-menu-item"?i=t.tool:i=this.controller.getActiveTool(),e.find(o=>{var n,a;return o.current===i||o.dropdown&&((a=(n=o.dropdown)==null?void 0:n.indexOf)==null?void 0:a.call(n,i))>-1})}handleToolbarKeydown(e){var l,c,d,u,h;let t=ue(e);if(t!=="Up"&&t!=="Down"&&t!=="Left"&&t!=="Right"&&t!=="Home"&&t!=="End"||(e.preventDefault(),e.stopPropagation(),!this.controller.getFocusLocation()))return;let o=this.controller.getAllVisibleGeoToolbarItems(),n=this.getFocusedOrActiveTool();if(!n)return;let a=o.findIndex(g=>g.group===n.group),s;if(t==="Home")s=(l=o[0])==null?void 0:l.current;else if(t==="End")s=(c=o[o.length-1])==null?void 0:c.current;else if(t==="Left"||t==="Right"){let g=t==="Left"?-1:1,b=Math.max(0,Math.min(o.length-1,a+g));s=(d=o[b])==null?void 0:d.current;let C=((u=o[b].dropdown)!=null?u:[]).length>1;if(((h=this.controller.getOpenItemMenu())==null?void 0:h.type)==="geo-tool-dropdown"){if(C)return this.openDropdownMenu(o[b],!0);if(s)this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"geo-tool-dropdown",guid:this.getGuid(n),tools:[],group:n.group}});else return}}else(t==="Up"||t==="Down")&&this.openDropdownMenu(n);s&&this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:s}})}selectedTool(){let e=this.controller.getActiveTool();return e==="expression-edit"?"selection":e}openDropdownMenu(e,t){e.dropdown&&(this.controller.dispatch({type:"toggle-item-settings-menu",menu:{type:"geo-tool-dropdown",guid:this.getGuid(e),tools:e.dropdown,group:e.group,focusFirstOption:t}}),this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool-menu-item",tool:e.current}}))}getGuid(e){return e.dropdown?"geo-dropdown-"+e.dropdown[0]:""}openMenuFromLongHold(e){this.controller.dispatch({type:"select-geo-tool",tool:e.current}),this.openDropdownMenu(e)}handleTap(e,t){e.wasLongheld()||e.wasHandled()||(this.controller.dispatch({type:"select-geo-tool",tool:t.current,focusGraphPaper:e.device==="keyboard"}),e.shiftKey?this.openDropdownMenu(t):e.device!=="keyboard"&&this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:t.current}}))}isGroupDropdownOpen(e){let t=this.controller.getOpenItemMenu();return(t==null?void 0:t.type)==="geo-tool-dropdown"&&t.group===e.group}};var Mr=__dcg_shared_module_exports__['e']($());var{Each:vX,SwitchUnion:CX,If:SX}=Mr.Components,GD=class extends Mr.Class{init(){this.controller=this.props.controller()}template(){return Mr.createElement("div",{role:Mr.const("toolbar"),"aria-label":()=>this.controller.s("graphing-calculator-label-geometry-tools"),class:Mr.const("dcg-geo-basic-tools dcg-animate-in-after-initial-load dcg-complex-tool-instruction-view")},Mr.createElement(hm,{ariaLabel:()=>this.controller.s("account-shell-button-mygraphs-cancel"),controller:this.props.controller,message:()=>this.getTransformationName(this.controller.getActiveTool()),onBack:this.bindFn(this.onCancel)}),vX(()=>this.getInputIndexes(),{item:e=>Mr.createElement(k1,{activeStep:this.bindFn(this.getInputIndex),controller:this.props.controller,toolSpec:()=>this.getToolSpec(),stepIdx:()=>e})}))}onCancel(){this.controller.dispatch({type:"select-geo-tool",tool:"selection"}),this.controller.dispatch({type:"set-focus-location",location:{type:"geo-basic-tool",tool:"selection"}})}getTransformationName(e){switch(e){case"dilate":return this.controller.s("graphing-calculator-text-geometry-tool-dilate-display-name");case"reflect":return this.controller.s("graphing-calculator-text-geometry-tool-reflect-display-name");case"rotate":return this.controller.s("graphing-calculator-text-geometry-tool-rotate-display-name");case"translate":return this.controller.s("graphing-calculator-text-geometry-tool-translate-display-name");case"parallel":return this.controller.s("graphing-calculator-text-geometry-tool-parallel-display-name");case"perpendicular":return this.controller.s("graphing-calculator-text-geometry-tool-perpendicular-display-name");case"compass":return this.controller.s("graphing-calculator-text-geometry-tool-compass-display-name");default:return this.controller.s("shared-calculator-narration-item-unknown")}}getInputIndex(){return this.controller.getGeoModel().getNonObjectsState().ui.currentTool.inputIndex}getInputIndexes(){return this.getToolSpec().inputs.map((e,t)=>t)}getToolSpec(){return this.controller.getGeoModel().getCurrentTool().getSpec()}},k1=class extends Mr.Class{init(){this.controller=this.props.controller()}template(){return CX(()=>this.getInputType(),{completed:()=>Mr.createElement("span",{class:Mr.const("dcg-step-completed")},Mr.createElement("i",{class:Mr.const("dcg-icon-check"),"aria-hidden":Mr.const("true")})),upcoming:()=>Mr.createElement("span",{class:Mr.const("dcg-step-upcoming")},Mr.createElement("span",null)),active:()=>Mr.createElement("span",{class:Mr.const("dcg-active-step")},Mr.createElement("span",{class:Mr.const("dcg-step-active-icon")},Mr.createElement("span",null,()=>this.props.stepIdx()+1)),this.bindFn(this.getActiveString),Mr.createElement(SX,{predicate:this.bindFn(this.isNumberInputStep)},()=>Mr.createElement("span",{class:Mr.const("dcg-input-flex-container"),didMount:this.bindFn(this.didMountNumberInput)},Mr.createElement(Vt,{containerClass:()=>({"dcg-suffix-degree":this.getNumberUnits()==="\xB0","dcg-suffix-radian":this.getNumberUnits()==="rad"}),readonly:()=>!1,latex:()=>this.getNumberInputLatex(),ariaLabel:this.bindFn(this.getActiveString),isFocused:()=>this.isNumberInputFocused(),handleFocusChanged:(e,t)=>this.handleFocusedChanged(e,t),hasError:this.bindFn(this.doesNumberInputHaveError),controller:this.props.controller,handlePressedKey:(e,t)=>{this.handlePressedKey(e,t)},handleLatexChanged:e=>{this.handleLatexChanged(e)},handleSelectionChanged:e=>{this.handleLatexChanged(e.latex,!0)},dataLabelAttributeValue:this.const("transformation-number")}),Mr.createElement("span",{class:()=>({"dcg-action-submit":!0,"dcg-disabled":this.isSubmitNumberDisabled(),"dcg-btn-blue":!0}),role:Mr.const("button"),tabindex:()=>this.isSubmitNumberDisabled()?-1:0,"aria-disabled":this.bindFn(this.isSubmitNumberDisabled),onTap:e=>this.submitNumberInput({device:e.device})},()=>this.controller.s("shared-calculator-button-go")))))})}getNumberUnits(){return this.controller.getActiveTool()==="rotate"?this.controller.isDegreeMode()?"\xB0":"rad":""}didMountNumberInput(){this.controller.dispatch({type:"set-focus-location",location:{type:"new-transformation-number"}})}isNumberInputFocused(){let e=this.controller.getFocusLocation();return!!(e&&e.type==="new-transformation-number")}doesNumberInputHaveError(){var l;if(!this.getNumberInputLatex()||this.getNumberInputLatex()===((l=this.getStep().numberInputInfo)==null?void 0:l.defaultLatex))return!1;let t=this.props.toolSpec().outputs[0].id,{idMap:i}=this.controller.getGeoModel().getNonObjectsState().ui.currentTool,o=i[t];if(!o)return!0;let n=cg(this.controller.getListModel()).filter(c=>{var d;if(c.type==="expression")return o===((d=Ii(c))==null?void 0:d.latex)}),a=n[0];if(!a||n.length===0||n.length>1||a.error)return!0;let s=a.formula.typed_constant_value;if(!s)return!0;if(__dcg_shared_module_exports__['ca'](s.valueType,__dcg_shared_module_exports__['N'])){let c=__dcg_shared_module_exports__['Z'](s.valueType)?s.value:[s.value];for(let d of c){let[[u,h],[g,b]]=d;if(isNaN(u)||isNaN(h)||isNaN(g)||isNaN(b))return!0}return!1}return!0}handlePressedKey(e,t){let i=ve.getFocusedMathquill();if(e==="Enter"){this.submitNumberInput({device:"keyboard"});return}i&&(i.keystroke(e,t),this.handleLatexChanged(i.latex()))}getNumberInputLatex(){return this.controller.getGeoModel().getCurrentTool().getNumberInputLatex()}isSubmitNumberDisabled(){return!!(this.doesNumberInputHaveError()||!this.getNumberInputLatex())}submitNumberInput(e){var s,l;if(this.isSubmitNumberDisabled())return;let t=this.controller.getGeoModel(),i=this.controller.getActiveTool(),o=t.getCurrentTool(),n=(s=o.getSpec)==null?void 0:s.call(o),a=o.tryCommitResults();a.committed&&(this.controller.dispatch({type:"commit-geo-objects",...a}),(l=this.controller.get2dPOIController())==null||l.speakGeoReleaseAction(i,n,a.committed),e.device==="keyboard"&&this.controller.dispatch({type:"set-focus-location",location:{type:"graph-paper"}}))}handleLatexChanged(e,t){(this.getNumberInputLatex()!==e||t)&&(this.controller.getGeoModel().getCurrentTool().onNumberInput(e),this.controller.getGeoModel().onPreviewChange())}handleFocusedChanged(e,t){e&&!this.isNumberInputFocused()?this.controller.dispatch({type:"set-focus-location",location:{type:"new-transformation-number"}}):this.isNumberInputFocused()&&this.controller.dispatch({type:"blur-focus-location",location:{type:"new-transformation-number"}})}getActiveString(){let e=this.props.controller(),t=this.getStep().hint;return t?e.s(t):e.s("shared-calculator-narration-item-unknown")}isNumberInputStep(){return!!this.getStep().numberInputInfo}getStep(){return this.props.toolSpec().inputs[this.props.stepIdx()]}getInputType(){let e=this.props.activeStep(),t=this.props.stepIdx();return t<e?"completed":t>e?"upcoming":"active"}};var{SwitchUnion:EX,If:$K}=gr.Components,VD=class extends gr.Class{constructor(){super(...arguments),this.afterInitialLoad=!1}init(){this.controller=this.props.controller()}template(){return gr.createElement("div",{class:()=>({"dcg-geometry-toolbar-view":!0,"dcg-after-initial-load":this.afterInitialLoad}),style:()=>({left:`${this.controller.computeMajorLayout().grapher.left}px`}),onTapStart:this.bindFn(this.onTapStart)},gr.createElement("div",{class:gr.const("dcg-header-left dcg-do-blur")},gr.createElement($K,{predicate:this.bindFn(this.showHamburger)},()=>gr.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-tooltip-open-graph"),gravity:this.const("s")},gr.createElement("div",{role:gr.const("button"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-open-graph"),tabindex:gr.const("0"),class:gr.const("dcg-action-opendrawer dcg-icon-btn dcg-in-api-action-opendrawer"),onTap:()=>this.controller.dispatch({type:"open-drawer"})},gr.createElement("i",{class:gr.const("dcg-icon-hamburger"),"aria-hidden":gr.const("true")})))),gr.createElement($K,{predicate:this.bindFn(this.showOpenExpressionsButton)},()=>gr.createElement("div",{class:gr.const("dcg-show-expressions-tab dcg-icon-btn"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-show-list"),role:gr.const("button"),tabindex:gr.const("0"),onTap:e=>{this.controller.dispatch({type:"show-expressions-list",focusHideIcon:e.device==="keyboard"})},manageFocus:this.const(Fe({controller:this.controller,location:{type:"show-expression-list-btn"}}))},gr.createElement("i",{class:gr.const("dcg-icon-show"),"aria-hidden":gr.const("true")})))),gr.createElement("div",{class:gr.const("dcg-flex-spacer")}),EX(this.bindFn(this.getViewToShow),{tools:()=>gr.createElement(AD,{controller:this.props.controller}),selectedItems:()=>gr.createElement(wE,{controller:this.props.controller}),complexToolInstructions:()=>gr.createElement(GD,{controller:this.props.controller})}),gr.createElement("div",{class:gr.const("dcg-flex-spacer")}))}showHamburger(){return this.controller.getGraphSettings().config.showHamburger?!this.controller.isListEnabled()||!this.controller.isListVisible()||this.controller.isNarrow():!1}showOpenExpressionsButton(){return this.controller.isListEnabled()&&!this.controller.isListVisible()&&!this.controller.isNarrow()}willUpdate(){this.afterInitialLoad||this.getViewToShow()==="selectedItems"&&(this.afterInitialLoad=!0)}onTapStart(e){e.target.classList.contains("dcg-do-blur")&&this.controller.dispatch({type:"set-none-selected"})}getViewToShow(){let e=this.controller.getActiveTool();return __dcg_shared_module_exports__['bc'](e)||Qz(e)?"complexToolInstructions":this.controller.shouldShowMultiSelectHeader()?"selectedItems":"tools"}};var Lt=__dcg_shared_module_exports__['e']($()),{If:Nx}=Lt.Components,T1=class extends Lt.Class{init(){this.controller=this.props.controller()}template(){return Lt.createElement("span",{class:Lt.const("dcg-toast")},Lt.createElement("i",{class:Lt.const("dcg-icon-error"),"aria-hidden":Lt.const("true")}),Lt.createElement(Nx,{predicate:()=>!this.showUndo()},()=>Lt.createElement("i",{class:Lt.const("dcg-icon-remove"),onTap:()=>this.controller.dispatch({type:"toast/close"}),role:Lt.const("link"),tabindex:Lt.const(0),"aria-label":Lt.const("Dismiss Notice")})),Lt.createElement("span",{class:Lt.const("dcg-msg"),"aria-atomic":()=>this.shouldLiveUpdateAria(),"aria-live":()=>this.shouldLiveUpdateAria()?"assertive":""},()=>this.controller.toastData.message),Lt.createElement(Nx,{predicate:this.bindFn(this.showUndo)},()=>Lt.createElement("a",{role:Lt.const("link"),tabindex:Lt.const(0),class:Lt.const("dcg-undo"),onTap:()=>this.controller.dispatch({type:"toast/undo"})},()=>this.controller.s("shared-calculator-label-toast-undo"))),Lt.createElement(Nx,{predicate:this.bindFn(this.showLearnMore)},()=>Lt.createElement("a",{role:Lt.const("link"),tabindex:Lt.const(0),target:Lt.const("_blank"),onTap:()=>this.controller.dispatch({type:"toast/learn-more"})},()=>this.controller.s("shared-calculator-label-toast-learn-more"))),Lt.createElement(Nx,{predicate:()=>!!this.controller.toastData.link},()=>Lt.createElement("a",{role:Lt.const("link"),tabindex:Lt.const(0),target:Lt.const("_blank"),href:()=>{var e;return((e=this.controller.toastData.link)==null?void 0:e.url)||""}},()=>{var e;return((e=this.controller.toastData.link)==null?void 0:e.text)||""})))}showUndo(){return!!this.controller.toastData.undoCallback}showLearnMore(){return!!this.controller.toastData.learnMoreCallback}shouldUpdate(){return!!this.controller.toastData.message}shouldLiveUpdateAria(){return!this.controller.toastData.noAria}},PD=class extends Lt.Class{template(){return Lt.createElement("div",{class:()=>({"dcg-toast-view":!0,"dcg-visible":!!this.props.controller().toastData.message,"dcg-below-geo-toolbar":this.isGeometryInCalculator()}),"toast-style":()=>this.props.controller().toastData.toastStyle},Lt.createElement(Nx,{predicate:()=>!!this.props.controller().toastData.message},()=>Lt.createElement("div",{class:Lt.const("dcg-toast-wrapper")},Lt.createElement("div",{class:Lt.const("dcg-toast-cover")}),Lt.createElement(T1,{...this.props}))))}isGeometryInCalculator(){var t;let e=this.props.controller();return(t=e.isGeometry)==null?void 0:t.call(e)}};kt();function I1(r){W(r).on("drag dragend dragenter dragover dragleave drop",t=>{t.preventDefault(),t.stopPropagation()})}var Wt=__dcg_shared_module_exports__['e']($());kt();var so=__dcg_shared_module_exports__['e']($());var Nt=__dcg_shared_module_exports__['e']($());var mr=__dcg_shared_module_exports__['e']($());kt();var M1=class{constructor(){this.handlers=[],W(document).on("keydown.delegator",e=>this.handleEvent(e))}push(e){let t=__dcg_shared_module_exports__['Ua']("delegator_");return this.handlers.push({token:t,handler:e}),()=>this.handlers=__dcg_shared_module_exports__['ta'](this.handlers,i=>i.token!=t)}handleEvent(e){if(!e.isDefaultPrevented()&&this.handlers.length){let t=!1,i=()=>t=!0;for(let{handler:o}of this.handlers.slice().reverse())if(o(e,i),t)return}}},LD=new M1;var{If:YK}=mr.Components,OD=class extends mr.Class{init(){this.i18n=this.props.i18n(),this.isMounted=!1}template(){return mr.createElement("div",{class:()=>({"dcg-shared-modal-container":!0,[this.props.class?this.props.class():""]:!!this.props.class}),didMount:this.bindFn(this.didMount),didUnmount:this.bindFn(this.didUnmount)},mr.createElement("div",{class:()=>({"dcg-shared-modal-cover":!0,"dcg-shared-has-close-button":this.showX(),"dcg-shared-modal-fullscreen":this.props.size()==="fullscreen","dcg-shared-modal-wide":this.props.size()==="wide","dcg-shared-modal-medium":this.props.size()==="medium","dcg-shared-modal-narrow":this.props.size()==="narrow"})},mr.createElement("div",{class:mr.const("dcg-shared-modal-background"),onTap:this.props.onClose}),mr.createElement("div",{class:mr.const("dcg-shared-modal-transition-container")},mr.createElement("div",{class:mr.const("dcg-shared-modal"),role:mr.const("dialog"),"aria-modal":mr.const("true"),"aria-label":()=>{let e="";return this.props.ariaLabel?e=this.props.ariaLabel():this.props.title&&(e=this.props.title()),e}},mr.createElement(YK,{predicate:()=>this.showX()},()=>mr.createElement("div",{class:mr.const("dcg-shared-close-cross-container")},mr.createElement(Ce,{tooltip:()=>this.i18n.s("shared-button-close-dialog")},mr.createElement("div",{role:mr.const("button"),tabindex:mr.const("0"),"aria-label":()=>this.i18n.s("shared-button-close-dialog"),class:mr.const("dcg-shared-close-cross"),onTap:this.props.onClose},mr.createElement("i",{class:mr.const("dcg-icon-remove"),"aria-hidden":mr.const("true")}))))),mr.createElement("div",{class:mr.const("dcg-shared-modal-contents-wrapper")},mr.createElement(YK,{predicate:()=>!!this.props.title&&!!this.props.title()},()=>mr.createElement("h1",{class:()=>({"dcg-shared-modal-title":!0,"dcg-shared-left-align-title":this.leftAlignTitle()})},()=>this.props.title())),mr.createElement("div",{class:mr.const("dcg-shared-modal-scrollable-content")},this.children))))))}showX(){return!!this.props.showX&&this.props.showX()}leftAlignTitle(){return!!this.props.leftAlignTitle&&this.props.leftAlignTitle()}didMount(){var s,l;if(this.isMounted)return;this.isMounted=!0;let e=this.findRootNode();function t(){let c=e.querySelector(".dcg-shared-close-cross");c&&c.focus()}function i(){let c=e.querySelector(".dcg-shared-modal-scrollable-content");c&&(c.tabIndex>=0||(c.tabIndex=0),c.focus())}let o=e.querySelector(".dcg-shared-modal-scrollable-content"),n=(l=(s=this.props).setFocus)==null?void 0:l.call(s);n==="close"?this.showX()?t():o&&i():n==="content"&&i();let a=H3(e);this.unsub=LD.push((c,d)=>{ue(c)==_o&&(this.onClose(),d());let u=c.altKey||c.shiftKey||c.metaKey||c.ctrlKey;this.props.onArrowKey&&ue(c)===jl&&!u&&this.props.onArrowKey("Left"),this.props.onArrowKey&&ue(c)===Jl&&!u&&this.props.onArrowKey("Right"),a(c)})}onClose(){this.props.onClose&&this.props.onClose()}didUnmount(){this.isMounted&&(this.isMounted=!1,this.unsub())}};var{If:_D,Each:jK}=Nt.Components,FD=class extends Nt.Class{init(){this.controller=this.props.controller()}template(){return Nt.createElement(_D,{predicate:this.props.visible},()=>Nt.createElement(OD,{size:this.const("medium"),onClose:this.props.onClose,i18n:this.const(this.controller),class:this.const("dcg-custom-toolbar-settings-modal")},Nt.createElement("div",{class:Nt.const("dcg-btn-blue dcg-done-btn"),"aria-role":Nt.const("button"),tabindex:Nt.const(0),didMount:e=>e.focus(),onTap:this.props.onClose},()=>this.controller.s("graphing-calculator-button-done")),Nt.createElement("h1",{class:Nt.const("dcg-shared-left-align-title")},()=>this.controller.s("shared-calculator-text-customize-toolbar")),jK(this.bindFn(this.getToolGroups),{key:e=>e.group,item:e=>Nt.createElement("div",null,Nt.createElement("div",{class:Nt.const("dcg-configuration-heading-row dcg-configuration-grid-row")},Nt.createElement("div",{class:Nt.const("dcg-first-column")},()=>e.group,Nt.const(" Tools")),Nt.createElement("div",{class:Nt.const("dcg-second-column")},Nt.const("Disabled when:"))),jK(()=>e.dropdown||[e.current],{item:t=>Nt.createElement("div",{class:Nt.const("dcg-configuration-grid-row"),"dcg-geo-tool":this.const(t)},Nt.createElement("div",{class:Nt.const("dcg-first-column")},Nt.createElement(He,{disabled:()=>!this.isToolCustomizable(t),checked:()=>this.getToolInfo(t).visible,onChange:i=>{this.controller.dispatch({type:"set-geometry-custom-toolbar-setting",tool:t,value:{...this.getToolInfo(t),visible:i}})}},()=>t)),Nt.createElement("div",{class:()=>({"dcg-disabled":!this.getToolInfo(t).visible||!this.isToolCustomizable(t),"dcg-mathquill-condition-container":!0,"dcg-second-column":!0})},Nt.createElement(_D,{predicate:()=>!!this.getToolLatexError(t)&&this.getToolInfo(t).visible},()=>Nt.createElement("div",{class:Nt.const("dcg-latex-error-container")},Nt.createElement(Bo,{error:()=>this.getToolLatexError(t)||"",gravity:this.const("s")}))),Nt.createElement(_D,{predicate:()=>this.isToolCustomizable(t)&&this.getToolInfo(t).visible},()=>Nt.createElement(ii,{latex:()=>this.getToolLatex(t),operatorNames:this.bindFn(this.autoOperatorNames),ariaLabel:()=>this.getToolAria(t),brailleShouldFocus:()=>this.focusedLatexTool===t,onBrailleInput:i=>{this.controller.dispatch({type:"set-geometry-custom-toolbar-setting",tool:t,value:{...this.getToolInfo(t),disabledLatex:i}})},onBrailleFocusedChanged:i=>{this.focusedLatexTool===t&&!i?this.focusedLatexTool=void 0:i&&(this.focusedLatexTool=t)},onBrailleKeydown:()=>{},...ji(this.controller)},Nt.createElement(ve,{latex:()=>this.getToolLatex(t),getAriaLabel:()=>this.getToolAria(t),noFadeout:this.const(!0),getAriaPostLabel:()=>this.getToolLatexError(t)||"",isFocused:()=>this.focusedLatexTool===t,tokenController:this.props.controller,capExpressionSize:()=>this.controller.getCapExpressionSize(),config:()=>this.controller.getMathquillConfig({}),hasError:()=>!!this.getToolLatexError(t),onUserChangedLatex:i=>{this.controller.dispatch({type:"set-geometry-custom-toolbar-setting",tool:t,value:{...this.getToolInfo(t),disabledLatex:i}})},onExpressionSizeExceeded:()=>this.controller.dispatch({type:"expression-size-exceeded"}),onFocusedChanged:i=>{this.focusedLatexTool===t&&!i?this.focusedLatexTool=void 0:i&&(this.focusedLatexTool=t)},onSelectionChanged:()=>{this.controller.runAfterDispatch(()=>{this.controller.dispatch({type:"render"})})},needsSystemKeypad:()=>!this.controller.isKeypadEnabled()}))),Nt.createElement(_D,{predicate:()=>!this.getToolInfo(t).visible},()=>Nt.createElement("div",{class:Nt.const("dcg-disabled-condition-wrapper")},Nt.createElement(ii,{latex:()=>this.getToolLatex(t),operatorNames:this.bindFn(this.autoOperatorNames),ariaLabel:()=>this.getToolAria(t),isStatic:this.const(!0),brailleShouldFocus:this.const(!1),onBrailleFocusedChanged:()=>{},...ji(this.controller)},Nt.createElement(ke,{latex:()=>this.getToolLatex(t),config:()=>this.controller.getMathquillConfig({}),getAriaLabel:()=>this.getToolAria(t)}))))))}))})))}getToolAria(e){return this.controller.s("shared-calculator-narration-disable-tool",{tool:e})}autoOperatorNames(){return this.props.controller().getMathquillConfig({}).autoOperatorNames}getToolLatex(e){return this.getToolInfo(e).disabledLatex||""}isToolCustomizable(e){return e!=="selection"&&e!=="box-selection"}getToolGroups(){let e={group:"transformation",current:"translate",dropdown:ym};return[...pT(),e]}getToolLatexError(e){let t=this.controller.getGeometryToolbarModel(),i=wO(t,e);if(i)return this.controller.unpack(i)}getToolInfo(e){let t=this.controller.getGeometryToolbarModel();return{tool:e,...t.toolbarState[e]}}};var{If:JK}=so.Components,RD=class extends so.Class{init(){this.controller=this.props.controller()}template(){return so.createElement(JK,{predicate:()=>this.shouldShowAuthorFeaturesSection()},()=>so.createElement("div",{class:so.const("dcg-options-menu-section dcg-author-mode-section")},so.createElement("div",{class:so.const("dcg-options-menu-section-title")},()=>this.controller.s("shared-calculator-narration-author-mode"),so.createElement(zr,{ariaLabel:()=>this.controller.s("shared-calculator-narration-author-mode"),toggled:this.bindFn(this.isAuthorMode),onChange:()=>{this.controller.dispatch({type:"set-author-mode",enabled:!this.isAuthorMode()})}})),so.createElement(JK,{predicate:()=>this.isAuthorMode()},()=>so.createElement("div",{class:so.const("dcg-author-features-container")},so.createElement("div",{class:so.const("dcg-toolbar-customization")},so.createElement("span",null,so.const("Geometry Tools:")),so.createElement(ri,{theme:this.const("mini"),ariaGroupLabel:()=>this.controller.s("graphing-calculator-narration-configure-toolbar"),staticConfig:this.bindFn(this.getConfigurationOptions)})),so.createElement(He,{checked:()=>this.controller.getGraphSettings().hideCustomColors,onChange:e=>this.controller.dispatch({type:"set-graph-settings",hideCustomColors:e})},()=>this.controller.s("shared-calculator-label-hide-custom-colors")),so.createElement(FD,{controller:this.props.controller,onClose:()=>{this.customGeometryToolsSettingsModal=!1,this.controller.dispatch({type:"render"})},visible:()=>this.customGeometryToolsSettingsModal})))))}getToolbar(){return this.controller.getGeometryToolbarModel().toolbar}setToolbar(e){e==="custom"&&(this.customGeometryToolsSettingsModal=!0),this.controller.dispatch({type:"set-geometry-toolbar",toolbar:e})}getConfigurationOptions(){return[{key:"all",label:()=>this.controller.raw("All"),selected:()=>this.getToolbar()==="all",onSelect:()=>this.setToolbar("all")},{key:"none",label:()=>this.controller.raw("None"),selected:()=>this.getToolbar()==="none",onSelect:()=>this.setToolbar("none")},{key:"custom",label:()=>this.controller.raw("Custom"),selected:()=>this.getToolbar()==="custom",onSelect:()=>this.setToolbar("custom")}]}shouldShowAuthorFeaturesSection(){return this.controller.authorFeaturesAvailable()}isAuthorMode(){return this.controller.shouldShowAuthorFeatures()}};var{If:ND}=Wt.Components,Bx=class extends Wt.Class{init(){this.controller=this.props.controller()}template(){return Wt.createElement("div",{class:()=>({"dcg-geometry-settings-container":!0,"dcg-popover":!0,"dcg-left":!0,"dcg-constrained-height-popover":!0,"dcg-generic-options-menu":!0,"dcg-no-geometry-header":!this.controller.shouldShowGeoToolbar()}),style:this.bindFn(this.getContainerStyle),didMount:this.bindFn(this.didMountContainer),didUnmount:this.bindFn(this.didUnmountContainer)},Wt.createElement("div",{class:Wt.const("dcg-popover-interior"),role:Wt.const("region"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-geometry-settings")},Wt.createElement("div",{class:Wt.const("dcg-options-menu-section")},Wt.createElement(af,{controller:this.props.controller}),Wt.createElement(ND,{predicate:()=>!this.controller.getLockViewportConfigSetting()},()=>Wt.createElement(mh,{controller:this.props.controller})),Wt.createElement(ND,{predicate:()=>this.controller.getHiddenGeoItemCount()>0},()=>Wt.createElement(He,{onChange:this.bindFn(this.toggleGhostMode),checked:()=>this.controller.getGhostMode(),manageFocus:this.const(Fe({controller:this.controller,location:{type:"settings",location:"hidden-objects"}}))},()=>this.controller.s("graphing-calculator-label-settings-hidden-objects",{count:this.controller.getHiddenGeoItemCount()})))),Wt.createElement("div",{class:Wt.const("dcg-options-menu-section")},Wt.createElement("div",{class:Wt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-label-settings-grid"),Wt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-label-settings-grid"),toggled:this.bindFn(this.getShowGrid),onChange:this.bindFn(this.toggleGrid)})),Wt.createElement(ND,{predicate:this.bindFn(this.getShowGrid)},()=>Wt.createElement(He,{onChange:this.bindFn(this.toggleMinorGridlines),checked:this.bindFn(this.getMinorGridlines)},()=>this.controller.s("graphing-calculator-label-settings-minor-gridlines")))),Wt.createElement("div",{class:Wt.const("dcg-options-menu-section")},Wt.createElement("div",{class:Wt.const("dcg-options-menu-section-title")},()=>this.controller.s("graphing-calculator-label-axes"),Wt.createElement(zr,{ariaLabel:()=>this.controller.s("graphing-calculator-label-axes"),toggled:this.bindFn(this.getShowAxes),onChange:this.bindFn(this.toggleAxes)})),Wt.createElement(ND,{predicate:this.bindFn(this.getShowAxes)},()=>Wt.createElement("div",null,Wt.createElement(He,{onChange:this.bindFn(this.toggleAxisNumbers),checked:this.bindFn(this.getAxisNumbers)},()=>this.controller.s("graphing-calculator-label-settings-axis-numbers")),Wt.createElement("div",null,Wt.createElement(He,{onChange:this.bindFn(this.toggleArrows),checked:()=>this.getAxisArrowMode()!=="NONE"},()=>this.controller.s("graphing-calculator-label-settings-arrows")))))),Wt.createElement(sf,{controller:this.props.controller}),Wt.createElement(RD,{controller:this.props.controller}),Wt.createElement(Vp,{controller:this.props.controller}),Wt.createElement("div",{class:Wt.const("dcg-arrow")})))}toggleGhostMode(){this.controller.dispatch({type:"set-ghost-mode",value:!this.controller.getGhostMode()})}didMountContainer(e){this.node=e,W(document.documentElement).on("dcg-tapstart.geometry-settings-view wheel.geometry-settings-view",t=>{this.eventShouldClosePopover(t)&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:t.device==="keyboard"})}),this.unsub=LD.push(t=>{let i=ue(t);if(i==="Esc"&&this.controller.dispatch({type:"close-graph-settings",focusIconAfterClose:!0}),this.controller.isGraphSettingsOpen()&&i==="Tab"&&!t.altKey&&!t.metaKey&&!t.ctrlKey){let o=this.controller.getFocusLocation();if(!o||o.type!=="settings")return;t.shiftKey?t.shiftKey&&(o.location==="default-size"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation()):o.location==="icon"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"degree-mode"}}),t.preventDefault(),t.stopPropagation())):o.location==="icon"?(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"default-size"}}),t.preventDefault(),t.stopPropagation()):o.location==="degree-mode"&&(this.controller.dispatch({type:"set-focus-location",location:{type:"settings",location:"icon"}}),t.preventDefault(),t.stopPropagation())}})}didUnmountContainer(){W(document.documentElement).off(".geometry-settings-view"),this.unsub()}didUpdate(){if(!this.controller.isGraphSettingsOpen())return;let e=this.controller.getKeypadHeight();e!==this.cachedKeypadHeight&&document.activeElement&&this.node.contains(document.activeElement)&&Qs(document.activeElement,this.node.querySelector(".dcg-popover-interior"),50),this.cachedKeypadHeight=e}eventShouldClosePopover(e){let t=e.target,i=this.node.contains(t),o=!!t.closest(".dcg-action-settings"),n=this.isMathquillFocused()&&!!t.closest(".dcg-keypad"),a=!!t.closest(".dcg-action-undo")||!!t.closest(".dcg-action-redo");return!(i||o||n||a)}isMathquillFocused(){return this.getFocusedLimit()!==void 0}getFocusedLimit(){let e=this.controller.getFocusLocation();if(e&&e.type==="settings")return e.location}getShowXAxis(){return!!this.controller.getGraphSettings().showXAxis}toggleAxes(){this.controller.dispatch({type:"set-graph-settings",showXAxis:!this.getShowXAxis(),showYAxis:!this.getShowXAxis()})}getShowAxes(){return!!this.controller.getGraphSettings().showXAxis}getAxisNumbers(){return!!this.controller.getGraphSettings().xAxisNumbers}toggleAxisNumbers(){let e=this.getAxisNumbers();this.controller.dispatch({type:"set-graph-settings",xAxisNumbers:!e,yAxisNumbers:!e,polarNumbers:!e})}getMinorGridlines(){return this.controller.getGraphSettings().xAxisMinorSubdivisions===0}toggleMinorGridlines(){let e=this.getMinorGridlines()?1:0;this.controller.dispatch({type:"set-graph-settings",yAxisMinorSubdivisions:e,xAxisMinorSubdivisions:e})}getAxisArrowMode(){return this.controller.getGraphSettings().xAxisArrowMode}getShowGrid(){return this.controller.getGraphSettings().showGrid}toggleGrid(){this.controller.dispatch({type:"set-graph-settings",showGrid:!this.getShowGrid()})}toggleArrows(){let e=this.getAxisArrowMode()==="NONE"?"BOTH":"NONE";this.controller.dispatch({type:"set-graph-settings",xAxisArrowMode:e,yAxisArrowMode:e})}getContainerStyle(){return this.controller.getKeypadHeight()?"bottom: 0":""}};var yc=__dcg_shared_module_exports__['e']($());var{Switch:DX}=yc.Components,KD=class extends yc.Class{constructor(){super(...arguments),this.frames=0,this.prevTime=0}init(){var t;this.current=0,this.panels={},this.panels.fps=new Kx({name:"fps",yMax:120,fg:"#0ff",bg:"#002"}),this.panels.evaluator=new Kx({name:"eval",yMax:250,fg:"#f80",bg:"#210"}),this.panels.mem=new Kx({name:"MB",yMax:this.getMemory().jsHeapSizeLimit/2**20,fg:"#f08",bg:"#201"}),this.list=Object.keys(this.panels),this.props.controller().onEvaluatorChangesSpy=(i,o)=>{var n;this.props.controller().isThreeDMode()||this.frame(),this.panels.evaluator.update((n=o.timeInWorker)!=null?n:NaN)};let e=(t=this.props.controller().getGrapher3d())==null?void 0:t.webglLayer;e&&(e.debugOnlyMeasureGPUTiming=!0,e.onRenderSpy=()=>{this.frame()})}willUnmount(){this.props.controller().onEvaluatorChangesSpy=void 0}template(){return yc.createElement("div",{class:yc.const("dcg-performance-meter"),onTap:()=>{this.current=(this.current+1)%this.list.length,this.update()}},yc.createElement(DX,{key:()=>this.list[this.current]},e=>yc.createElement("div",{didMount:t=>{t.appendChild(this.panels[e].dom)}})))}frame(){this.frames++;let e=(performance||Date).now();return e>=this.prevTime+1e3&&(this.panels.fps.update(this.frames*1e3/(e-this.prevTime)),this.prevTime=e,this.frames=0,this.panels.mem.update(this.getMemory().usedJSHeapSize/2**20)),e}getMemory(){if(self.performance&&"memory"in self.performance){let e=self.performance.memory;return{usedJSHeapSize:e.usedJSHeapSize,totalJSHeapSize:e.totalJSHeapSize,jsHeapSizeLimit:e.jsHeapSizeLimit}}else return{usedJSHeapSize:NaN,totalJSHeapSize:NaN,jsHeapSizeLimit:NaN}}},Ia=Math.round(window.devicePixelRatio||1),A1=80*Ia,XK=48*Ia,QK=3*Ia,ZK=2*Ia,BD=3*Ia,zx=15*Ia,G1=74*Ia,zD=30*Ia,Kx=class{constructor(e){this.values=[],this.minValue=1/0,this.maxValue=0,this.dom=document.createElement("canvas"),this.name=e.name,this.yMax=e.yMax,this.fg=e.fg,this.bg=e.bg,this.dom.width=A1,this.dom.height=XK,this.dom.style.cssText="width:80px;height:48px";let t=this.dom.getContext("2d");if(!t)throw new Error("Could not get context");this.context=t,t.font="bold "+9*Ia+"px Helvetica,Arial,sans-serif",t.textBaseline="top",t.fillStyle=this.bg,t.fillRect(0,0,A1,XK),t.fillStyle=this.fg,t.fillText(this.name,QK,ZK),t.fillRect(BD,zx,G1,zD),t.fillStyle=this.bg,t.globalAlpha=.9,t.fillRect(BD,zx,G1,zD)}update(e){this.values.push(e),this.values.length>G1/Ia&&this.values.shift(),this.minValue=Math.min(this.minValue,e),this.maxValue=Math.max(this.maxValue,e),this.draw()}draw(){this.context.fillStyle=this.bg,this.context.globalAlpha=1,this.context.fillRect(0,0,A1,zx),this.context.fillStyle=this.fg,this.context.fillText(Math.round(this.values[this.values.length-1])+" "+this.name+" ("+Math.round(this.minValue)+"-"+Math.round(this.maxValue)+")",QK,ZK),this.context.fillStyle=this.fg,this.context.fillRect(BD+Ia,zx,this.values.length*Ia,zD),this.context.fillStyle=this.bg,this.context.globalAlpha=.9;for(let e=0;e<this.values.length;e++){let t=this.values[e];this.context.fillRect(BD+(e+1)*Ia,zx,Ia,Math.round((1-t/this.yMax)*zD))}}};var{If:_p}=ht.Components,Ux=class extends ht.Class{init(){this.controller=this.props.controller()}settings(){return this.controller.getGraphSettings()}template(){return ht.createElement("div",{class:ht.const("dcg-calculator-api-container"),style:ht.const("width: 100%; height: 100%; position: relative;")},ht.createElement("div",{class:()=>({"dcg-container":!0,"dcg-fullscreen":!this.controller.isListVisible(),"dcg-narrow":this.controller.isNarrow(),"dcg-PROJECTOR-MODE":this.settings().config.projectorMode,"dcg-inverted-colors":!!this.settings().config.invertedColors,"dcg-inverted-swatches":this.controller.invertSwatches(),"dcg-EDIT-LIST-MODE":this.controller.isInEditListMode(),"dcg-no-graphpaper":!this.settings().config.graphpaper,"dcg-no-branding":!this.settings().config.branding,"dcg-no-expression-topbar":!this.settings().config.expressionsTopbar,"dcg-default-border":!!this.settings().config.border,"dcg-no-hyperlinks":!this.settings().config.links,"dcg-has-background-color":this.controller.hasBackgroundColor(),"dcg-is-interactive":this.settings().config.expressions||!(this.settings().config.lockViewport||this.settings().userLockedViewport)}),style:()=>({"font-size":this.settings().config.fontSize+"px",background:this.controller.hasTransparentBackground()?"none":void 0,"--dcg-custom-background-color":this.controller.hasBackgroundColor()?this.controller.getBackgroundColor():void 0,"--dcg-custom-background-color-shaded":this.controller.hasBackgroundColor()?this.controller.getPillboxBackgroundColor():void 0,"--dcg-custom-text-color":this.controller.hasTextColor()?this.controller.getTextColor():void 0}),role:ht.const("application"),"aria-label":()=>this.controller.isGeometry()?this.controller.s("graphing-calculator-narration-main-desmos-geometry"):this.controller.s("graphing-calculator-narration-main-desmos-graphing-calculator"),"x-ms-format-detection":ht.const("none"),didMount:this.bindFn(this.didMountRoot)},ht.createElement(_p,{predicate:()=>this.controller.getGraphSettings().config.expressions},()=>ht.createElement(Lx,{controller:this.props.controller})),ht.createElement(_p,{predicate:()=>this.controller.isListEnabled()&&!this.controller.isListVisible()&&(!this.controller.isGeometry()||this.controller.isNarrow())},()=>ht.createElement("div",{class:()=>({"dcg-overgraph-icon-container":!0,"dcg-bottom-right":this.controller.isNarrow()})},ht.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-tooltip-show-list"),gravity:()=>this.controller.isNarrow()?"n":"s"},ht.createElement("div",{class:()=>({"dcg-show-expressions-tab":!0,"dcg-overgraph-icon":!0,"dcg-rotated":this.controller.isNarrow()}),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-show-list"),role:ht.const("button"),tabindex:ht.const("0"),onTap:e=>{this.controller.dispatch({type:"show-expressions-list",focusHideIcon:e.device==="keyboard"})},manageFocus:this.const(Fe({controller:this.controller,location:{type:"show-expression-list-btn"}}))},ht.createElement("i",{class:ht.const("dcg-icon-show"),"aria-hidden":ht.const("true")}))))),ht.createElement(_p,{predicate:this.bindFn(this.showHamburger)},()=>ht.createElement("div",{class:ht.const("dcg-overgraph-icon-container")},ht.createElement(Ce,{tooltip:()=>this.controller.s("graphing-calculator-label-tooltip-open-graph"),gravity:this.const("s")},ht.createElement("div",{role:ht.const("button"),"aria-label":()=>this.controller.s("graphing-calculator-label-tooltip-open-graph"),class:ht.const("dcg-action-opendrawer dcg-in-api-action-opendrawer dcg-overgraph-icon"),onTap:()=>this.controller.dispatch({type:"open-drawer"})},ht.createElement("i",{class:ht.const("dcg-icon-hamburger"),"aria-hidden":ht.const("true")}))))),ht.createElement(TD,{controller:this.props.controller}),ht.createElement(_p,{predicate:()=>this.controller.isGeoUIActive()&&this.controller.getGraphSettings().config.settingsMenu&&this.controller.isGraphSettingsOpen()},()=>ht.createElement(Bx,{controller:this.props.controller})),ht.createElement(_p,{predicate:()=>this.controller.shouldShowGeoToolbar()},()=>ht.createElement(VD,{controller:this.props.controller})),ht.createElement(PD,{controller:this.props.controller}),ht.createElement("div",{class:ht.const("dcg-grapher dcg-grapher-2d"),style:()=>({visibility:this.controller.isThreeDMode()?"hidden":"visible","pointer-events":this.controller.isThreeDMode()?"none":"auto"})}),ht.createElement(_p,{predicate:()=>this.controller.is3dProduct()},()=>ht.createElement("div",{class:ht.const("dcg-grapher dcg-grapher-3d"),style:()=>({visibility:this.controller.isThreeDMode()?"visible":"hidden","pointer-events":this.controller.isThreeDMode()?"auto":"none"})})),ht.createElement(_p,{predicate:()=>this.settings().config.showPerformanceMeter&&!!this.props.controller().getGrapher()},()=>ht.createElement(KD,{controller:this.props.controller})),ht.createElement(_p,{predicate:()=>this.controller.getGraphSettings().config.keypad},()=>ht.createElement(xD,{controller:this.props.controller}))))}showHamburger(){return!this.controller.getGraphSettings().config.showHamburger||this.controller.isGeometry()?!1:this.controller.isNarrow()}didMountRoot(e){Iu(e),this.controller.getGraphSettings().config.disableScrollFix||E0(e),this.setupFileDragDrop(e)}setupFileDragDrop(e){I1(e);let t=new Set,i=this;function o(){t=new Set,W(e).off(".filedraggedover"),i.controller.dispatch({type:"file-is-not-dragged-over"})}W(e).on("dragenter",n=>{this.controller.areImagesEnabled()&&(n.target.closest(".dcg-notice")||(t.size===0&&W(e).on("dcg-tapstart.filedraggedover",o),t=t.add(n.target),this.controller.dispatch({type:"file-is-dragged-over"})))}).on("dragleave",n=>{t.delete(n.target),t.size===0&&o()}).on("drop",o)}};var UD=class extends ti{constructor(e){super(),this.workerPool=e,this.guid=__dcg_shared_module_exports__['Ua']("worker-pool-connection"),this.worker=e.allocateWorker(),this.worker.__connections[this.guid]=this}destroy(){this.sendMessage({type:"destroy"}),delete this.worker.__connections[this.guid]}killWorker(){this.worker.__isFake||this.workerPool.killWorker(this.worker)}onWorkerKilled(){}onResponse(e){}sendMessage(e){this.worker.__isFake?this.worker.postMessage(e):this.worker.postMessage({connectionId:this.guid,originalMessage:e})}};function eU(r){var e={},t=new __dcg_shared_module_exports__['vd'](i);function i(o,n){r({type:o,payload:n})}return e.postMessage=function(o){setTimeout(function(){t.processChangeSet(o)},0)},e}gS();var qx="";try{qx=Rb(window.location.search,"workerThrottle"),qx==null&&(qx=Rb(window.top.location.search,"workerThrottle"))}catch(r){}var tU=parseInt(qx,10),V1=0;function rU(r){return tU?function(e){V1=Math.max(Date.now(),V1)+tU,setTimeout(r,V1-Date.now(),e)}:r}var lf=class extends ti{constructor(e=1/0){super(),this.workers=[],this.maxWorkers=e}allowedToSpawnWorker(){return!!__dcg_worker_source_exports__['createWorker']&&this.workers.length<this.maxWorkers}killWorker(e){var t=__dcg_shared_module_exports__['Ha'](this.workers,e);t!==-1&&(e.terminate(),this.workers=__dcg_shared_module_exports__['Fa'](this.workers,e),__dcg_shared_module_exports__['Aa'](__dcg_shared_module_exports__['Ma'](e.__connections)).forEach(function(i){i&&i.onWorkerKilled&&i.onWorkerKilled()}))}spawnWorker(){if(!__dcg_worker_source_exports__['createWorker'])return null;try{var e=__dcg_worker_source_exports__['createWorker']();return e.__connections={},e.__isFake=!1,e.onerror=function(t){__dcg_shared_module_exports__['pd'].log(t)},e.addEventListener("message",rU(function(t){var i=t.data;if(!(i&&i.log)&&i&&i.connectionId){var o=e.__connections[i.connectionId];o&&o.onResponse(i.originalMessage)}})),this.workers.push(e),e}catch(t){return null}}spawnFakeWorker(){var e=eU(rU(function(t){var i=__dcg_shared_module_exports__['Ma'](e.__connections)[0];i&&i.onResponse(t)}));return e.__isFake=!0,e.__connections={},e}findLeastUsedWorker(){var e=function(i){return __dcg_shared_module_exports__['Da'](i.__connections)},t=__dcg_shared_module_exports__['Ba'](this.workers,e)[0];return t}allocateWorker(){var e=null;return this.allowedToSpawnWorker()&&(e=this.spawnWorker()),e||(e=this.findLeastUsedWorker()),e||(e=this.spawnFakeWorker()),e}};var kX=4e3,Fp=class{constructor(e){this.__ticksEnabled=!0;this.listeners={processChangeSet(e){var t={},i={};for(var o in e.graphChanges){var n=e.graphChanges[o];n===void 0?i[o]=!0:(__dcg_shared_module_exports__['Wb'](n),t[o]=n)}var a={};for(var o in e.intersectionChanges)i[o]||(a[o]=e.intersectionChanges[o]);var s=!!this.changeSet;this.onEvaluatorResults({evaluationStates:e.statusChanges,graphData:{addedGraphs:t,removedGraphs:i,intersections:a},renderSlowly:!!e.isCompleteState,timingData:e.timingData,eventUpdates:e.eventUpdates});let l=e.syncId;for(;this.syncRequests.length&&l!==void 0&&this.syncRequests[0].id<=l;)this.syncRequests.shift().callback();this.markJobFinished(),s&&this._processChangeSet()}};this.__state={},this.changeSet=null,this.cumulativeChangeSet={},this.syncId=1,this.syncRequests=[],e||(e=new lf),this.workerPool=e,this.createWorkerPoolConnection()}privateGetWorkerPool(){return this.workerPool}privateGetWorkerPoolConnection(){return this.workerPoolConnection}createWorkerPoolConnection(){this.workerPoolConnection&&(this.workerPoolConnection.onResponse=function(){},this.workerPoolConnection.onWorkerKilled=function(){}),this.workerPoolConnection=new UD(this.workerPool),this.markJobFinished(),this.workerPoolConnection.onResponse=e=>{this.shouldIgnoreWorkerMessage(e)?e.type==="processChangeSet"&&(this.markJobFinished(),this._processChangeSet()):this.listeners[e.type].call(this,e.payload)},this.workerPoolConnection.onWorkerKilled=()=>{var e=this.hasJobInWorker();this.createWorkerPoolConnection(),e?(this.changeSet=__dcg_shared_module_exports__['i'](this.cumulativeChangeSet),this.__state.changed=!0,this.__state.droppedMessage=!0):(this.changeSet=__dcg_shared_module_exports__['i'](this.cumulativeChangeSet),this.__state.changed=!1),this.processChangeSet()}}destroy(){this.workerPoolConnection&&(this.workerPoolConnection.onResponse=function(){},this.workerPoolConnection.onWorkerKilled=function(){},this.workerPoolConnection.destroy())}shouldIgnoreWorkerMessage(e){return this.__suspendUntilSyncId?!e||!e.payload?!0:!(e.payload.syncId>=this.__suspendUntilSyncId):!1}suspend(){(!this.changeSet||!this.changeSet.syncId)&&(this.syncId++,this.applyToChangeSets(e=>{e.syncId=this.syncId})),this.__suspendUntilSyncId=this.changeSet.syncId}markJobFinished(){this.__state.droppedMessage=!1,this.__jobStartTime=-1,this.__suspendUntilSyncId=void 0}startJobTimer(){this.__jobStartTime=new Date().getTime()}hasJobInWorker(){return this.__jobStartTime!==-1}getJobElapsedTime(){return this.hasJobInWorker()?new Date().getTime()-this.__jobStartTime:NaN}setTicksEnabled(e){this.__ticksEnabled=e}tick(){this.__ticksEnabled&&this._processChangeSet()}processChangeSet(){this.__processChangeSetRequested=!0}_processChangeSet(){if(this._syncEvaluatorConfig(),!this.__processChangeSetRequested)return;let e=this.getJobElapsedTime()>=kX;if(this.__state.droppedMessage&&e){this.workerPoolConnection.killWorker();return}if(this.__state.changed&&this.changeSet)if(this.changeSet.syncId||(this.syncId++,this.changeSet.syncId=this.syncId),this.hasJobInWorker())this.changeSet.isCompleteState&&e&&this.workerPoolConnection.killWorker();else{let t=this.changeSet;this.changeSet=null,this.__state.changed=!1,this.startJobTimer(),this.workerPoolConnection.sendMessage(t),this.__processChangeSetRequested=!1}}notifyWhenSynced(e){if(this._syncEvaluatorConfig(),!this.hasJobInWorker()&&!this.changeSet){setTimeout(e,0);return}this.syncId++,this.syncRequests.push({id:this.syncId,callback:e}),this.applyToChangeSets(t=>{t.syncId=this.syncId})}applyToChangeSets(e){this.__state.changed=!0,this.changeSet||(this.changeSet={}),this.cumulativeChangeSet||(this.cumulativeChangeSet={}),e(this.changeSet),e(this.cumulativeChangeSet),this.processChangeSet()}clearStatementsAndStartCompleteState(){this.hasJobInWorker()&&this.suspend(),this.applyToChangeSets(function(e){e.isCompleteState=!0,delete e.statements})}markUndoRedoState(){this.applyToChangeSets(function(e){e.isUndoRedoState=!0})}addStatement(e){this.applyToChangeSets(function(t){t.statements||(t.statements={}),t.statements[e.id]=__dcg_shared_module_exports__['i'](e)})}removeStatement(e){this.applyToChangeSets(function(t){t.statements||(t.statements={}),t.removes||(t.removes={}),delete t.statements[e],t.removes[e]=!0})}addActionStepEvent(e){this.applyToChangeSets(function(t){t.events||(t.events=[]),t.events.push({type:"step",expressionId:e})})}addClockTickEvent(e,t){this.applyToChangeSets(function(i){i.events||(i.events=[]),i.events.push({type:"clock-tick",id:e,isFirstTick:t})})}addClickEvent(e,t){this.applyToChangeSets(function(i){i.events||(i.events=[]),t===void 0&&(t=0),i.events.push({type:"click",expressionId:e,indexVar:t})})}_syncEvaluatorConfig(){if(this.readEvaluatorConfig){var e=this.readEvaluatorConfig();for(let t in e)this._applyIfChanged(e,t)}}_applyIfChanged(e,t){let i=this.cumulativeChangeSet&&this.cumulativeChangeSet[t],o=e[t];__dcg_shared_module_exports__['Oa'](i,o)||this.applyToChangeSets(function(n){n[t]=o})}};function xc(r){return r==="es-ES"?(__dcg_shared_module_exports__['pd'].warn("{language: 'es-ES'} has been deprecated. Proceeding with {language: 'es'}"),"es"):r}var HD=class{constructor(){this.seen=new Set;this.samples=[];this.button=document.createElement("button");this.isRecording=!1;this.reset(),this.button.addEventListener("click",()=>{if(this.isRecording){this.isRecording=!1;let e=this.reportAsCalcState();console.log("Profiler result (also set on window.profilerResult):"),console.log(e),window.profilerResult=e;let t=JSON.stringify(e);MX(t)}else this.reset(),this.isRecording=!0;this.updateButtonText()})}updateButtonText(){this.button.innerText=this.isRecording?"\u25FC\uFE0F":"\u{1F534}"}add(e,t){this.seen.has(e)||this.samples.push(t)}reset(){this.seen=new Set,this.samples=[],this.isRecording=!1,this.updateButtonText()}reportAsCalcState(){let e={};for(let i of this.samples)for(let o in i)e[o]||(e[o]=[]),e[o].push(i[o]);return TX(window.location.href,e)}},iU=[__dcg_shared_module_exports__['hd'].RED,__dcg_shared_module_exports__['hd'].BLUE,__dcg_shared_module_exports__['hd'].GREEN,__dcg_shared_module_exports__['hd'].PURPLE,__dcg_shared_module_exports__['hd'].ORANGE,__dcg_shared_module_exports__['hd'].BLACK];function TX(r,e){let t=[];for(let o in e){let n=e[o].map(__dcg_shared_module_exports__['xc']);t.push({latex:IX(o),values:n,color:iU[t.length%iU.length]})}return{...pp,expressions:{list:[{id:"1",type:"text",text:r},{id:"2",type:"table",columns:t}]}}}function IX(r){if(r.length===1)return r;let e=r.replace(/[^a-zA-Z0-9_]/g,"").replace(/^[0-9]/,"").replace(/__+/g,"_");return`${e[0]}_{${e.slice(1)}}`}async function MX(r){if(navigator.clipboard&&window.isSecureContext)await navigator.clipboard.writeText(r);else{let e=document.createElement("textarea");e.value=r,e.style.position="absolute",e.style.left="-999999px",document.body.prepend(e),e.select();try{document.execCommand("copy")}catch(t){console.error(t)}finally{e.remove()}}}Pc();var oU=new URLSearchParams(window.location.search).get("recursionDepth"),AX=oU?parseInt(oU):void 0,GX=0,Hx=class{constructor(e,t,i,o){e||(e=document.createElement("div"));let n=document.createElement("div");n.className="dcg-dom-change-wrapper",n.style.width="100%",n.style.height="100%",e.appendChild(n),this.__id=GX++;let a=new Yc;this.graphSettings=a;for(let g in i)a.config.setProperty(g,i[g]);let s=new nh(a);this.controller=s,o&&s.dispatch({type:"ui/container-resized",size:o}),this.rootElt=n,this.view=cf.mountToNode(Ux,this.rootElt,{controller:cf.const(s)});let l=new Fp(t);this.controller.setEvaluator(l),this.controller.setRootElt(this.rootElt);let c=this.controller.findEl(".dcg-grapher-2d"),d=new Wu(c,a,this.controller,l);this.controller.setGrapher2d(d),this.grapher=d,this.controller.initStateStack(),l.readEvaluatorConfig=()=>({product:a.config.product,beta3d:!!Hi("beta3d"),evaluationMode:s.isGeometry()?"geometry":this.controller.isThreeDMode()?"graphing_3d":"graphing",globalRandomSeed:a.randomSeed,degreeMode:a.degreeMode,viewState:s.getViewState(),selectedIds:s.getPropagatedSelectedIds(),restrictedFunctions:a.config.restrictedFunctions,forceEnableGeometryFunctions:a.config.forceEnableGeometryFunctions,distributions:a.config.distributions,pointsOfInterest:a.config.pointsOfInterest,plotSingleVariableImplicitEquations:a.config.plotSingleVariableImplicitEquations,plotImplicits:a.config.plotImplicits,plotInequalities:a.config.plotInequalities,sliders:a.config.sliders,actions:!!a.config.actions,substitutions:!!a.config.substitutions,intervalComprehensions:!!a.config.intervalComprehensions,recursion:!!a.config.recursion,recursionDepthLimit:AX,dimensions:s.getGrapherDimensions(),logInternalErrors:!!Ao().logInternalErrors}),l.onEvaluatorResults=g=>{this.controller.dispatch({type:"on-evaluator-changes",changes:g.evaluationStates,timingData:g.timingData,graphData:g.graphData,eventUpdates:g.eventUpdates}),this.controller.requestRedrawGraph()},this.unsubFunc=this.controller.subscribeToChanges(()=>{this.controller.doesDOMHaveSize()&&(this.view.update(),this.grapher=this.controller.isThreeDMode()?this.controller.getGrapher3d()||this.controller.getGrapher2d():this.controller.getGrapher2d(),this.grapher.update());var g=!1;h()&&(g=!0),g&&this.controller.doesDOMHaveSize()&&(this.view.update(),this.grapher.update())});let u=new ti;u.setProperties({pixelCoordinates:{top:0,bottom:0,left:0,right:0,width:0,height:0},mathCoordinates:{top:0,bottom:0,left:0,right:0,width:0,height:0}}),this.graphpaperBounds=u;let h=()=>{var g=!1,b=s.computeMajorLayout(),C={left:b.grapher.left,right:b.grapher.left+b.grapher.width,width:b.grapher.width,top:b.grapher.top,bottom:b.grapher.top+b.grapher.height,height:b.grapher.height},S=this.grapher.getCurrentViewport(),k={top:S.ymax,bottom:S.ymin,left:S.xmin,right:S.xmax,width:S.xmax-S.xmin,height:S.ymax-S.ymin};__dcg_shared_module_exports__['Oa'](k,u.mathCoordinates)||(u.setProperty("mathCoordinates",k),g=!0);var I=C.height>0&&C.width>0;return I&&!__dcg_shared_module_exports__['Oa'](C,u.pixelCoordinates)&&(u.setProperty("pixelCoordinates",C),g=!0),g};W(this.rootElt).on("keydown.calculator-"+this.__id,g=>{this.grapher instanceof Wu&&this.grapher.audioGraph.handleKeydown(g),this.instanceHotkeys.handleKeydown(g)}),W(document.documentElement).on("dcg-tapstart.calculator-"+this.__id,g=>{var E;let b=g.target,C=!!this.rootElt.contains(b),S=g.wasHandled("create-expression-with-keyboard"),k=!!b.closest(".dcg-api-shared-keypad-root"),I=!!b.classList.contains("dcg-shell");!C&&!k&&!I&&!S&&s.dispatch({type:"set-none-selected"});let M=(E=this.controller.getGrapher2d())==null?void 0:E.traceLayer;if(!g.wasHandled("do-not-clear-poi-labels")&&M&&(M.clearOpenedPOI(),this.controller.requestRedrawGraph()),s.isInEditListMode()){let A=!b.closest(".dcg-exppanel")&&!b.closest(".dcg-options-menu")&&!b.closest(".dcg-expression-top-bar")&&!b.closest(".dcg-keypad");(!C||A)&&s.dispatch({type:"set-edit-list-mode",isEditListMode:!1,focusExpressionList:!1})}}),this.evaluator=l,this.controller.dispatch({type:"set-blank",degreeMode:!!i.degreeMode}),a.config.expressionsCollapsed&&this.setOptions({expressionsCollapsed:!0}),a.config.capExpressionSize&&this.setOptions({capExpressionSize:!0}),a.config.hasOwnProperty("pointsOfInterest")&&this.setOptions({pointsOfInterest:a.config.pointsOfInterest}),a.config.hasOwnProperty("backgroundColor")&&this.setOptions({backgroundColor:a.config.backgroundColor}),a.config.hasOwnProperty("textColor")&&this.setOptions({textColor:a.config.textColor}),a.config.observe("language",()=>{let g=this.controller.getState();this.controller.dispatch({type:"set-state",state:g})}),a.config.observe("forceLogModeRegressions",()=>{a.config.forceLogModeRegressions&&this.controller.setAllRegressionsToLogMode()}),this.instanceHotkeys=new rx(s)}initializeGrapher3d(e){let t=this.controller.findEl(".dcg-grapher-3d"),i=new e(t,this.controller.getGraphSettings(),this.controller,this.controller.getEvaluator());this.controller.setGrapher3d(i),this.grapher=i,this.controller.dispatch({type:"set-blank"}),this.controller.clearUndoRedoHistory()}setOption(e,t){this.controller.getGraphSettings().config.setProperty(e,t)}setOptions(e){let t,i=this.controller.getGraphSettings().config,o={...e};e.hasOwnProperty("backgroundColor")&&(__dcg_shared_module_exports__['bd'](e.backgroundColor)||(__dcg_shared_module_exports__['pd'].warn("Invalid backgroundColor. Background color must be a 3- or 6-character hex color (e.g. #cde or #ffaaaa)"),delete o.backgroundColor)),e.hasOwnProperty("textColor")&&(__dcg_shared_module_exports__['bd'](e.textColor)||(__dcg_shared_module_exports__['pd'].warn("Invalid textColor. Text color must be a 3- or 6-character hex color (e.g. #000 or #001111)"),delete o.textColor)),e.hasOwnProperty("menus")&&(__dcg_shared_module_exports__['pd'].warn("Deprecated option: menus. Setting settingsMenu and expressionsTopbar instead."),e.hasOwnProperty("settingsMenu")||(o.settingsMenu=!!e.menus),e.hasOwnProperty("expressionsTopbar")||(o.expressionsTopbar=!!e.menus),delete o.menus),e.hasOwnProperty("solutions")&&(__dcg_shared_module_exports__['pd'].warn("Deprecated option: solutions. Setting pointsOfInterest instead."),e.hasOwnProperty("pointsOfInterest")||(o.pointsOfInterest=!!e.solutions),delete o.solutions),e.hasOwnProperty("administerSecretFolders")&&(__dcg_shared_module_exports__['pd'].warn("Deprecated option: administerSecretFolders. Setting authorFeatures instead."),e.hasOwnProperty("authorFeatures")||(o.authorFeatures=!!e.administerSecretFolders),delete o.administerSecretFolders),e.hasOwnProperty("singleVariableSolutions")&&(__dcg_shared_module_exports__['pd'].warn("Deprecated option: singleVariableSolutions has been removed."),delete o.singleVariableSolutions),e.graphpaper===!1&&(e.expressionsCollapsed&&(o.expressionsCollapsed=!1,__dcg_shared_module_exports__['pd'].warn("Cannot set graphpaper: false with expressionsCollapsed: true. Proceeding with expressionsCollapsed: false.")),i.expressionsCollapsed&&(o.expressionsCollapsed=!1,__dcg_shared_module_exports__['pd'].warn("Disabling the graphpaper with the expressions list collapsed is not supported.Setting expressionsCollapsed: false.")),e.zoomButtons&&(o.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Cannot set graphpaper: false with zoomButtons: true. Proceeding with zoomButtons: false.")),e.showResetButtonOnGraphpaper&&(o.showResetButtonOnGraphpaper=!1,__dcg_shared_module_exports__['pd'].warn("Cannot set graphpaper: false with showResetButtonOnGraphpaper: true. Proceeding with showResetButtonOnGraphpaper: false.")),i.zoomButtons&&(o.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Disabling the graphpaper with the zoomButtons visible is not supported. Setting zoomButtons: false.")),i.showResetButtonOnGraphpaper&&(o.showResetButtonOnGraphpaper=!1,__dcg_shared_module_exports__['pd'].warn("Disabling the graphpaper with the reset button visible is not supported. Setting showResetButtonOnGraphpaper: false."))),i.graphpaper===!1&&(e.expressionsCollapsed||e.zoomButtons||e.showResetButtonOnGraphpaper)&&(o.graphpaper=!0,__dcg_shared_module_exports__['pd'].warn("Must have visible graphpaper to proceed. Setting graphpaper: true.")),e.lockViewport&&e.zoomButtons&&(o.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Cannot set zoomButtons: true and lockViewport: true. Proceeding with zoomButtons: false.")),i.lockViewport&&e.zoomButtons&&(o.lockViewport=!1,__dcg_shared_module_exports__['pd'].warn("Cannot set zoomButtons: true while the viewport is locked. Setting lockViewport: false.")),i.zoomButtons&&e.lockViewport&&(o.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Cannot lock the viewport without hiding the zoom buttons. Setting zoomButtons: false."));function n(d){let{notes:u,folders:h,images:g}=d;return u===!1||h===!1||g===!1}let a=n(e),s=n({...i,...e}),l=i.pasteGraphLink,c=e.pasteGraphLink;a?(c||l)&&(o.pasteGraphLink=!1,__dcg_shared_module_exports__['pd'].warn("Cannot disable creating note, folder, or image expressions without disabling graph link pasting. Setting pasteGraphLink: false.")):c&&s&&(o.notes=!0,o.folders=!0,o.images=!0,__dcg_shared_module_exports__['pd'].warn("Cannot enable graph link pasting while the creation of notes, folders, or images is disable. Setting notes: true, folders: true, images: true.")),e.language&&(o.language=xc(e.language)),e.logScales&&this.controller.isGeometry()&&(__dcg_shared_module_exports__['pd'].warn("Cannot set logScales: true in the geometry calculator"),delete o.logScales);for(t in o)if(o.hasOwnProperty(t))switch(t){case"expressionsCollapsed":this.setOption("expressionsCollapsed",!!o.expressionsCollapsed),o.expressionsCollapsed?this.controller.dispatch({type:"hide-expressions-list",focusShowIcon:!1}):this.controller.dispatch({type:"show-expressions-list",focusHideIcon:!1});break;case"qwertyKeyboard":this.setOption("qwertyKeyboard",!!o.qwertyKeyboard),this.controller.isLetterKeypadOpen()&&this.controller.dispatch({type:"keypad/abc"});break;case"degreeMode":this.setOption("degreeMode",!!o.degreeMode),this.controller.dispatch({type:"set-graph-settings",degreeMode:!!o.degreeMode});break;case"actions":{let u=o[t];if(u===void 0||u===this.controller.getGraphSettings().config.actions)break;this.setOption(t,u),this.setState(this.getState(),{allowUndo:!0});break}case"substitutions":{let u=o[t];if(u===void 0||u===this.controller.getGraphSettings().config.substitutions)break;this.setOption(t,u),this.setState(this.getState(),{allowUndo:!0});break}case"intervalComprehensions":{let u=o[t];if(u===void 0||u===this.controller.getGraphSettings().config.intervalComprehensions)break;this.setOption(t,u),this.setState(this.getState(),{allowUndo:!0});break}case"recursion":{let u=o[t];if(u===void 0||u===this.controller.getGraphSettings().config.recursion)break;this.setOption(t,u),this.setState(this.getState(),{allowUndo:!0});break}case"product":case"beta3d":{__dcg_shared_module_exports__['pd'].warn(`Cannot update '${t}' setting.`);break}case"logScales":{let u=o[t];u!==void 0&&(u===!1&&this.controller.dispatch({type:"set-graph-settings",xAxisScale:"linear",yAxisScale:"linear"}),this.setOption(t,u));break}case"graphDescription":{let u=o[t];typeof u=="string"||typeof u=="undefined"?this.setOption(t,u):__dcg_shared_module_exports__['pd'].warn("Invalid graphDescription. graphDescription must be of type string or undefined.");break}case"muted":{let u=o[t];if(u===void 0||u===this.controller.getGraphSettings().config.muted)break;u?this.controller.dispatch({type:"mute-global"}):this.controller.dispatch({type:"unmute-global"});break}case"keypad":case"graphpaper":case"expressions":case"settingsMenu":case"zoomButtons":case"showResetButtonOnGraphpaper":case"expressionsTopbar":case"pointsOfInterest":case"trace":case"border":case"lockViewport":case"authorFeatures":case"authorMode":case"advancedStyling":case"images":case"imageUploadCallback":case"folders":case"notes":case"sliders":case"links":case"restrictedFunctions":case"forceEnableGeometryFunctions":case"distributions":case"pasteGraphLink":case"pasteTableData":case"clearIntoDegreeMode":case"autosize":case"plotSingleVariableImplicitEquations":case"plotImplicits":case"plotInequalities":case"colors":case"branding":case"disableScrollFix":case"invertedColors":case"fontSize":case"projectorMode":case"ghostMode":case"language":case"onlyTraceSelected":case"disableMouseInteractions":case"nativeOnscreenKeypad":case"functionDefinition":case"plaidMode":case"wireframe":case"pasteGraphLinkCallback":case"editOnWeb":case"crossOriginSaveTest":case"backgroundColor":case"textColor":case"enableTabindex":case"audioTraceReverseExpressions":case"showHamburger":case"decimalToFraction":case"defaultLogModeRegressions":case"capExpressionSize":case"transparentBackground":case"pauseWhenOffscreen":case"hideGeoUI":case"brailleMode":case"sixKeyInput":case"brailleControls":case"zoomFit":case"forceLogModeRegressions":case"cacheRenderedSvgs":case"audio":case"showKeyboardShortcutsInTooltips":case"tone":case"translucentSurfaces":case"perspectiveDistortion":case"showPerformanceMeter":case"increaseLabelPrecision":{let u=o[t];u!==void 0&&this.setOption(t,u);break}default:return t}}setViewport(e){let t=new Wr(e[0],e[1],e[2],e[3]);this.grapher.viewportController.setViewport(t),this.controller.dispatch({type:"commit-user-requested-viewport",viewport:t})}resize(e){e&&this.controller.dispatch({type:"ui/container-resized",size:e})}destroy(){var t;W(document.documentElement).off(".calculator-"+this.__id),W(this.rootElt).off(".calculator-"+this.__id),this.unsubFunc(),this.graphSettings.unobserveAll(),this.controller&&((t=this.controller.toneController)==null||t.unload()),this.evaluator&&this.evaluator.destroy(),this.grapher&&this.grapher.remove(),cf.unmountFromNode(this.rootElt),this.rootElt.remove()}tick(e,t){t||(this.controller.handleTick(e),this.controller.updateRenderShellsAfterDispatch()),this.evaluator.tick(),this.grapher&&this.grapher.tick(e)}getState(e){return this.controller.getState(e)}setBlank(e){this.controller.dispatch({type:"set-blank",opts:e||{}})}setState(e,t){this.controller.dispatch({type:"set-state",state:e,opts:t||{}})}};function VX(){let r=document.createElement("div");Wn(r,{zIndex:"99999",position:"absolute",left:"0px",top:"0px",background:"#FFF"}),document.body.append(r);let e=document.createElement("div");e.innerText="waiting...",e.style.display="inline-block";let t=new HD;r.appendChild(t.button),r.appendChild(e);var i=window,o=[],n=[];i.Calc.controller.onEvaluatorChangesSpy=function(){o.push(Date.now())};let a=new WeakSet;i.__dcgKnownPrograms=a;let s=0;if(i.Calc.controller.isThreeDMode()){let l=i.Calc.controller.grapher3d.webglLayer;l.debugOnlyMeasureGPUTiming=!0,l.onRenderSpy=function(){let c=l.debugGetPrograms(),d=c.reduce((h,g)=>h+g.usedTimes,0),u=0;for(let h of c)a.has(h)||(u+=1,s+=1,a.add(h));n.push({ts:Date.now(),programCount:c.length,programUses:d,newProgramCount:u,frame:l.lastRenderInfo})},l.debugOnlyTrackBufferUploads()}setInterval(function(){for(var l=Date.now();l-o[0]>1e3;)o.shift();for(;n.length&&l-n[0].ts>1e3;)n.shift();let c=n.length,d=n.slice(-100);if(t.isRecording)for(let G of d){let{startTimeCPU:P,durationCPU:O,endTimeGPU:R}=G.frame;R&&t.add(P,{t0:P,tcpu:O,tgpu0:R[0]-P,tgpu1:R[1]-P})}let u=wd(d.map(G=>G.frame.durationCPU),2),h=[],g=[];for(let{frame:G}of d)G.endTimeGPU&&(h.push((G.endTimeGPU[0]+G.endTimeGPU[1])/2-G.startTimeCPU),g.push((G.endTimeGPU[0]-G.startTimeCPU)/2));let b=wd(h,2),C=wd(g,0),S=wd(d.map(G=>G.programUses)),k=wd(d.map(G=>G.programCount)),I=wd(d.map(G=>G.newProgramCount)),M=wd(d.map(G=>G.frame.triangles/1e3)),E=wd(d.map(G=>G.frame.bufferUploads,0)),A=wd(d.map(G=>G.frame.bufferUploadItems/1e3,1)),V=i.Calc.controller.isThreeDMode()?[`compute: <span dcg-fps-metric="computeFPS">${o.length}</span> fps`,`3d render: <span dcg-fps-metric="fps">${c}</span> fps`,`Redraw (CPU): <span dcg-fps-metric="redraw">${u}</span> ms`,`Redraw (CPU+GPU): <span dcg-fps-metric="cpu-gpu-redraw">${b}</span> \xB1<span dcg-fps-metric="cpu-gpu-redraw-error">${C}</span>ms`,`triangles: <span dcg-fps-metric="triangles">${M}</span>K/fr`,`buffers: <span dcg-fps-metric="uploadsPerFrame">${E}</span> uploads/fr, <span dcg-fps-metric="itemsPerFrame">${A}</span>K items/fr`,`programs: <span dcg-fps-metric="programsPerFrame">${S} uses/fr, <span dcg-fps-metric="programsCurrentPerFrame">${k} current/fr, <span dcg-fps-metric="programsNewPerFrame">${I}</span> new/fr, <span dcg-fps-metric="programsTotal">${s}</span> total`].join(" | "):`${o.length} fps`;e.innerHTML=V},100)}function wd(r,e=1){let t=0;for(let o of r)t+=o;return(t/r.length).toFixed(e)}function PX(){let r=document.createElement("div");Wn(r,{zIndex:"99999",position:"absolute",left:"0px",top:"0px",background:"#FFF"}),r.innerText="waiting...",document.body.append(r);var e=window,t=[],i=0;e.Calc.controller.onEvaluatorChangesSpy=function(s,l){let{timeInWorker:c}=l;t[i%100]=c,i+=1};function o(){let s=0;for(let c of t)s+=c;let l=s/t.length;r.innerText=l.toFixed(1)+" ms"}let n;function a(){cancelAnimationFrame(n),n=requestAnimationFrame(a),o()}a()}var LX=!!Ao().simulationFPS;LX&&(Wx=setInterval(function(){var r=window.Calc;r&&(clearInterval(Wx),VX())},1));var Wx,OX=!!Ao().timeInWorker;OX&&(Wx=setInterval(function(){var e=window.Calc;e&&(clearInterval(Wx),setTimeout(PX,1e3))},1));var Wx;function _X(r){Hw?setTimeout(r,25):requestAnimationFrame(r)}var nU=1,df={},$x=!1;function sU(){$x=!0,_X(FX)}var aU={};function FX(){aU.rafSPY&&aU.rafSPY(),$x=!1;for(let r in df)df[r].detectAndEnqueueEvent(),$x=!0;if($x){sU();for(let r in df)df[r].dispatchQueuedEvent()}}var yh=class{constructor(e,t){this.elt=e;this.cb=t;this.destroyed=!1;this.lastOffscreen=!1;this.id=nU.toString(),this.appliedScale={x:1,y:1},nU++}stopWatching(){delete df[this.id]}startWatching(){this.checkForChanges(),df[this.id]=this,$x||sU()}resetAppliedScalingAndGetBoundingClientRect(){var e=this.elt.getBoundingClientRect(),t={x:e.width/this.elt.offsetWidth,y:e.height/this.elt.offsetHeight};if(t.x===this.appliedScale.x&&t.y===this.appliedScale.y)return e;let i=this.elt.querySelector(".dcg-dom-change-wrapper");return i&&(this.appliedScale=t,Wn(i,{transform:"scale("+1/this.appliedScale.x+","+1/this.appliedScale.y+")",width:100*this.appliedScale.x+"%",height:100*this.appliedScale.y+"%",transformOrigin:"0 0"})),e}detectAndEnqueueEvent(){if(this.destroyed)return;let e=!0;if(!(document.body&&document.body.contains(this.elt)))this.lastSize&&(this.lastSize=void 0,this.queuedEvent={type:"removed",target:this.elt,isOffscreen:!0});else{let i=this.resetAppliedScalingAndGetBoundingClientRect();e=i.top>window.innerHeight||i.bottom<0||i.left>window.innerWidth||i.right<0,this.lastSize?(i.width!==this.lastSize.width||i.height!==this.lastSize.height||window.devicePixelRatio!==this.lastSize.pixelRatio)&&(this.lastSize.width=i.width,this.lastSize.height=i.height,this.lastSize.pixelRatio=window.devicePixelRatio,this.queuedEvent={type:"resized",target:this.elt,size:{...this.lastSize},isOffscreen:e}):(this.lastSize={width:i.width,height:i.height,pixelRatio:window.devicePixelRatio},this.queuedEvent={type:"added",target:this.elt,size:{...this.lastSize},isOffscreen:e})}e!==this.lastOffscreen&&(this.lastOffscreen=e,this.queuedEvent||(this.queuedEvent={type:"offscreen-noop",target:this.elt,isOffscreen:e}))}dispatchQueuedEvent(){let e=this.queuedEvent;e&&(this.queuedEvent=void 0,this.cb(e))}checkForChanges(){this.detectAndEnqueueEvent(),this.dispatchQueuedEvent()}destroy(){this.stopWatching();for(var e in this)this.hasOwnProperty(e)&&delete this[e];this.destroyed=!0}};function lU(r){var e=r.mode,t=r.width,i=r.height,o=r.currentBounds,n=r.graphpaperAspectRatio,a=r.mathAspectRatio,s=r.mathBounds,l=t/i,c={x:o.left+o.width/2,y:o.bottom+o.height/2};if(s.left===void 0!=(s.right===void 0)||s.bottom===void 0!=(s.top===void 0))return __dcg_shared_module_exports__['pd'].warn('asyncScreenshot: cannot specify "left" bound without "right" or "bottom" bound without "top". Got: '+s),o;var d=s.left!==void 0&&s.right!==void 0,u=s.bottom!==void 0&&s.top!==void 0,h=d&&u,g,b,C,S,k,I,M,E,A,V;switch(e){case"stretch":return h?s:d?{left:s.left,right:s.right,bottom:o.bottom,top:o.top}:u?{left:o.left,right:o.right,bottom:s.bottom,top:s.top}:o;case"contain":return h?(S=s.right-s.left,k=s.top-s.bottom,I={x:s.left+S/2,y:s.bottom+k/2},C=S/k,l>C?(b=k/i,g=b*a,{left:I.x-g*t/2,right:I.x+g*t/2,bottom:s.bottom,top:s.top}):(g=S/t,b=g/a,{left:s.left,right:s.right,bottom:I.y-b*i/2,top:I.y+b*i/2})):d?(M=s.right-s.left,E=s.left+M/2,C=M/o.height,l>C?(b=o.height/i,g=b*a,{left:E-g*t/2,right:E+g*t/2,bottom:o.bottom,top:o.top}):(g=M/t,b=g/a,{left:s.left,right:s.right,bottom:c.y-b*i/2,top:c.y+b*i/2})):u?(A=s.top-s.bottom,V=s.bottom+A/2,C=o.width/A,l>C?(b=A/i,g=b*a,{left:c.x-g*t/2,right:c.x+g*t/2,bottom:s.bottom,top:s.top}):(g=o.width/t,b=g/a,{left:o.left,right:o.right,bottom:V-b*i/2,top:V+b*i/2})):l>n?(b=o.height/i,g=b*a,{left:c.x-g*t/2,right:c.x+g*t/2,bottom:o.bottom,top:o.top}):(g=o.width/t,b=g/a,{left:o.left,right:o.right,bottom:c.y-b*i/2,top:c.y+b*i/2});case"preserveX":return h?(S=s.right-s.left,k=s.top-s.bottom,I={x:s.left+S/2,y:s.bottom+k/2},C=S/k,g=S/t,b=g/a,{left:s.left,right:s.right,bottom:I.y-b*i/2,top:I.y+b*i/2}):u?(A=s.top-s.bottom,V=s.bottom+A/2,C=o.width/A,g=o.width/t,b=g/a,{left:o.left,right:o.right,bottom:V-b*i/2,top:V+b*i/2}):d?(M=s.right-s.left,g=M/t,b=g/a,{left:s.left,right:s.right,bottom:c.y-b*i/2,top:c.y+b*i/2}):(M=o.right-o.left,g=M/t,b=g/a,{left:o.left,right:o.right,bottom:c.y-b*i/2,top:c.y+b*i/2});case"preserveY":return h?(S=s.right-s.left,k=s.top-s.bottom,I={x:s.left+S/2,y:s.bottom+k/2},C=S/k,b=k/i,g=b*a,{left:I.x-g*t/2,right:I.x+g*t/2,bottom:s.bottom,top:s.top}):d?(M=s.right-s.left,E=s.left+M/2,C=M/o.height,b=o.height/i,g=b*a,{left:E-g*t/2,right:E+g*t/2,bottom:o.bottom,top:o.top}):u?(A=s.top-s.bottom,b=A/i,g=b*a,{left:c.x-g*t/2,right:c.x+g*t/2,bottom:s.bottom,top:s.top}):(A=o.top-o.bottom,b=A/i,g=b*a,{left:c.x-g*t/2,right:c.x+g*t/2,bottom:o.bottom,top:o.top});default:return o}}var WD=class{constructor(e){this.mq=e,this.id=e.id,this.data=e.data}simulateUserChangedLatex(){ve.simulateUserChangedLatex(this.mq)}simulateKeypress(e){ve.simulateKeypress(this.mq,e)}config(e){return this.mq.config(e),this}latex(e){return e===void 0?this.mq.latex():(this.mq.latex(e),this.simulateUserChangedLatex(),this)}reflow(){this.mq.reflow()}el(){return this.mq.el()}getAriaLabel(){return this.mq.getAriaLabel()}setAriaLabel(e){return this.mq.setAriaLabel(e)}html(){return this.mq.html()}mathspeak(){return this.mq.mathspeak()}text(){return this.mq.text()}selection(){return this.mq.selection()}select(){return this.mq.select(),this}moveToRightEnd(){return this.mq.moveToRightEnd(),this}moveToLeftEnd(){return this.mq.moveToLeftEnd(),this}cmd(e){return this.mq.cmd(e),this.simulateUserChangedLatex(),this}write(e){return this.mq.write(e),this.simulateUserChangedLatex(),this}keystroke(e){return this.simulateKeypress(e),this}typedText(e){return this.mq.typedText(e),this.simulateUserChangedLatex(),this}clearSelection(){return this.mq.clearSelection(),this}getAriaPostLabel(){return this.mq.getAriaPostLabel()}setAriaPostLabel(e,t){return this.mq.setAriaPostLabel(e,t),this}blur(){return this.mq.blur(),this}focus(){return this.mq.focus(),this}revert(){return this.mq.revert()}ignoreNextMousedown(e){return this.mq.ignoreNextMousedown(e),this}clickAt(e,t,i){return this.mq.clickAt(e,t,i),this}};gS();var cU=Rb(location.search,"nworkers"),dU=4;cU&&(dU=parseInt(cU,10));var pf=new lf(dU);var P1={keypad:!0,graphpaper:!0,expressions:!0,settingsMenu:!0,zoomButtons:!0,showResetButtonOnGraphpaper:!1,expressionsTopbar:!0,capExpressionSize:!1,pointsOfInterest:!0,trace:!0,border:!0,lockViewport:!1,expressionsCollapsed:!1,authorFeatures:!1,authorMode:!0,advancedStyling:!1,images:!0,imageUploadCallback:oS,folders:!0,notes:!0,sliders:!0,links:!0,qwertyKeyboard:!0,restrictedFunctions:!1,forceEnableGeometryFunctions:!1,pasteGraphLink:!1,pasteTableData:!0,degreeMode:!1,clearIntoDegreeMode:!1,autosize:!0,plotSingleVariableImplicitEquations:!0,plotImplicits:!0,plotInequalities:!0,colors:{RED:Zv,BLUE:eC,GREEN:tC,ORANGE:iC,PURPLE:rC,BLACK:oC},invertedColors:!1,functionDefinition:!0,projectorMode:!1,decimalToFraction:!0,fontSize:16,language:"en",backgroundColor:"#fff",textColor:"#000",distributions:!0,brailleMode:"none",sixKeyInput:!1,brailleControls:!0,graphDescription:void 0,zoomFit:!0,forceLogModeRegressions:!1,defaultLogModeRegressions:!1,actions:"auto",audio:!0,logScales:!0,translucentSurfaces:!1,perspectiveDistortion:1,showKeyboardShortcutsInTooltips:!1,tone:!0,muted:!0,showPerformanceMeter:!1,increaseLabelPrecision:!1},pU=Object.keys(P1),uU={product:"graphing",showHamburger:!1,disableScrollFix:!1,branding:!0,onlyTraceSelected:!1,disableMouseInteractions:!1,nativeOnscreenKeypad:!1,plaidMode:!1,wireframe:!1,pasteGraphLinkCallback:void 0,editOnWeb:!1,crossOriginSaveTest:!1,enableTabindex:!0,audioTraceReverseExpressions:!1,transparentBackground:!1,pauseWhenOffscreen:!1,hideGeoUI:!1,substitutions:!0,intervalComprehensions:!0,recursion:!1,beta3d:!1,cacheRenderedSvgs:!1,ghostMode:!1},RX={solutions:!0,menus:!0,singleVariableSolutions:!0,clickableObjects:!1,administerSecretFolders:!1},$D={...P1,...uU};function hU(r){return!!(P1.hasOwnProperty(r)||uU.hasOwnProperty(r)||RX.hasOwnProperty(r))}function YD(r){var e=__dcg_shared_module_exports__['i']($D);for(var t in r)e.hasOwnProperty(t)&&(e[t]=r[t]);return __dcg_shared_module_exports__['bd'](e.backgroundColor)||(e.backgroundColor=$D.backgroundColor,__dcg_shared_module_exports__['pd'].warn("Invalid backgroundColor. Background color must be a 3- or 6-character hex color (e.g. #cde or #ffaaaa)")),__dcg_shared_module_exports__['bd'](e.textColor)||(e.textColor=$D.textColor,__dcg_shared_module_exports__['pd'].warn("Invalid textColor. Text color must be a 3- or 6-character hex color (e.g. #000 or #001111)")),e.actions!==!0&&e.actions!==!1&&e.actions!=="auto"&&(e.actions=$D.actions,__dcg_shared_module_exports__['pd'].warn("Invalid actions setting. Must be true, false, or 'auto'.")),r.zoomButtons===void 0&&(!e.graphpaper||e.lockViewport)&&(e.zoomButtons=!1),r.images===void 0&&(e.graphpaper||(e.images=!1)),r.hasOwnProperty("menus")&&(__dcg_shared_module_exports__['pd'].warn("As of API version 0.4, the 'menus' option is deprecated and has been split into 'settingsMenu' (boolean) and 'expressionsTopbar' (boolean)."),r.hasOwnProperty("settingsMenu")||(e.settingsMenu=!!r.menus),r.hasOwnProperty("expressionsTopbar")||(e.expressionsTopbar=!!r.menus)),r.hasOwnProperty("solutions")&&(__dcg_shared_module_exports__['pd'].warn("As of API v1.0, the 'solutions' option is deprecated and has been replaced with 'pointsOfInterest' (boolean)."),r.hasOwnProperty("pointsOfInterest")||(e.pointsOfInterest=!!r.solutions)),r.hasOwnProperty("singleVariableSolutions")&&__dcg_shared_module_exports__['pd'].warn("As of API v1.0, the 'singleVariableSolutions' has been removed. The calculator no longer displays solutions to single variable equations."),r.hasOwnProperty("clickableObjects")&&(__dcg_shared_module_exports__['pd'].warn("As of API v1.7, the 'clickableObjects' option is deprecated and has been replaced with 'actions'."),r.clickableObjects===!0&&!r.hasOwnProperty("actions")&&(e.actions=!0)),r.hasOwnProperty("administerSecretFolders")&&(__dcg_shared_module_exports__['pd'].warn("As of API v1.8, the 'administerSecretFolders' option is deprecated and has been subsumed under 'authorFeatures'."),r.administerSecretFolders===!0&&!r.hasOwnProperty("authorFeatures")&&(e.authorFeatures=!0)),e.graphpaper||(e.expressionsCollapsed&&(e.expressionsCollapsed=!1,__dcg_shared_module_exports__['pd'].warn("Desmos API initialized with bad options. graphpaper: false and expressionsCollapsed: true are incompatible. Proceeding with expressionsCollapsed: false.")),e.zoomButtons&&(e.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Desmos API initialized with bad options. graphpaper: false and zoomButtons: true are incompatible. Proceeding with zoomButtons: false.")),e.showResetButtonOnGraphpaper&&(e.showResetButtonOnGraphpaper=!1,__dcg_shared_module_exports__['pd'].warn("Desmos API initialized with bad options. graphpaper: false and showResetButtonOnGraphpaper: true are incompatible. Proceeding with showResetButtonOnGraphpaper: false."))),e.lockViewport&&e.zoomButtons&&(e.zoomButtons=!1,__dcg_shared_module_exports__['pd'].warn("Desmos API initialized with bad options. lockViewport: true and zoomButtons: true are incompatible. Proceeding with zoomButtons: false.")),(e.notes===!1||e.folders===!1||e.images===!1)&&e.pasteGraphLink===!0&&(e.pasteGraphLink=!1,__dcg_shared_module_exports__['pd'].warn("Desmos API initialized with bad options. pasteGraphLink: true is incompatible with disabling the creation of note, folder, or image expressions. Proceeding with pasteGraphLink: false.")),e.language&&(e.language=xc(e.language)),e}function gU(r,e){var t={},i={};for(var o in r)hU(o)?t[o]=r[o]:SF(o)?i[o]=r[o]:e||__dcg_shared_module_exports__['pd'].warn("Unrecognized setting: "+o+". Ignoring.");return{configOptions:t,settingsOptions:i}}function mU(r,e){var t={};return e.hasOwnProperty("x")&&(t.x=r.mapX(e.x)),e.hasOwnProperty("y")&&(t.y=r.mapY(e.y)),t}var bU=[],L1=!1,fU=new Map;function NX(r){let e=fU.get(r);return e||(e=new r,fU.set(r,e)),e}function yU(r){if(!r||L1)return;let e;for(;(e=bU.shift())&&e.api._destroyed;);if(!e)return;let t=e;L1=!0;let{options:i,mathBounds:o,state:n,callback:a}=t;var s=NX(r);s.setState(n),s.setMathBounds(o),["majorAxisOpacity","minorAxisOpacity","axisLineOffset","axisLineWidth","labelSize","graphLineWidth","pointLineWidth"].forEach(g=>{g==="axisLineWidth"?s._calc.grapher.settings.setProperty(g,t.api._calc.grapher.settings[g]):s._calc.grapher.settings[g]=t.api._calc.grapher.settings[g]});var c=s._calc.evaluator,d=()=>{s._calc.grapher.asyncScreenshot(i,g=>{L1=!1,yU(r),a(g)})},u=t.api._calc.controller,h=$c(function(){u.areAnyImagesLoading()||(vu(h),c.notifyWhenSynced(d))})}var xh=class extends ti{constructor(t,i,o){super();this._destroyed=!1;this.isOffscreen=!1;var n=gU(i||{},!0),a=YD(n.configOptions),s=n.settingsOptions;this._calc=new Hx(t,pf,a),this.controller=this._calc.controller,this.controller.onEventsEmitted=l=>{let c=this.controller.getSelectedItem();this.setProperty("isAnyExpressionSelected",!!c),this.setProperty("selectedExpressionId",c?c.id:void 0),this.setProperty("expressionAnalysis",this.controller.getExpressionAnalysis());var d=ve.getFocusedMathquill();this.setProperty("focusedMathQuill",d?new WD(d):void 0);for(var u in l){if(!l.hasOwnProperty(u))continue;let h=l[u];h&&this.triggerEvent(u,h)}},this._calc.graphpaperBounds.observeAndSync("mathCoordinates",this._syncGraphpaperBounds.bind(this)),this._calc.graphpaperBounds.observeAndSync("pixelCoordinates",this._syncGraphpaperBounds.bind(this)),this.colors=this.controller.getColors(),this._initGraphSettings(),this.updateSettings(s),this._sharedClockBusToken=$c(l=>this.withControllerInAPIMode(()=>{var c=this._calc.grapher.settings.config.pauseWhenOffscreen&&this.isOffscreen;this._calc.tick(l,c)})),this.domChangeDetector=new yh(t,l=>this.withControllerInAPIMode(()=>{switch(this.isOffscreen=l.isOffscreen,l.type){case"offscreen-noop":break;case"added":this._calc.resize(l.size);break;case"removed":break;case"resized":this._calc.resize(l.size);break}})),a.autosize?this.domChangeDetector.startWatching():this.domChangeDetector.checkForChanges(),typeof o=="function"&&o(this)}destroy(){this.controller.onEventsEmitted=function(){},this._calc.destroy(),vu(this._sharedClockBusToken),this.domChangeDetector.destroy();function t(a){__dcg_shared_module_exports__['pd'].warn("You've destroyed this API instance. You can no longer call ."+a+"()")}for(var i={},o=this;o;)Object.getOwnPropertyNames(o).forEach(s=>i[s]=!0),o=Object.getPrototypeOf(o);for(var n in i)typeof this[n]=="function"?this[n]=t.bind(this,n):this.hasOwnProperty(n)&&delete this[n];this.destroy=function(){},this._destroyed=!0}withHistoryReplacement(t){try{this.controller.pushWithHistoryReplacement(),t()}finally{this.controller.popWithHistoryReplacement()}}withControllerInAPIMode(t){try{return this.controller.pushAPIMethodCall(),t()}finally{this.controller.popAPIMethodCall()}}_syncGraphpaperBounds(){return this.withControllerInAPIMode(()=>{this.controller.runAfterDispatch(()=>{this.setProperty("graphpaperBounds",{mathCoordinates:this._calc.graphpaperBounds.mathCoordinates,pixelCoordinates:this._calc.graphpaperBounds.pixelCoordinates})})})}_initGraphSettings(){return this.withControllerInAPIMode(()=>{var t=new ti;this.settings=this.graphSettings=t,CF.forEach(i=>{this._calc.grapher.settings.observeAndSync(i,()=>{this.controller.runAfterDispatch(()=>{t.setProperty(i,this._calc.grapher.settings[i])})})}),pU.forEach(i=>{this._calc.grapher.settings.config.observeAndSync(i,()=>{this.controller.runAfterDispatch(()=>{t.setProperty(i,this._calc.grapher.settings.config[i])})})})})}updateSettings(t){return this.withControllerInAPIMode(()=>{var i=gU(t,!1),o=i.configOptions,n=i.settingsOptions;__dcg_shared_module_exports__['Pa'](o)||this._calc.setOptions(o),__dcg_shared_module_exports__['Pa'](n)||this.controller.dispatch({type:"set-graph-settings",...this.controller.getGraphSettings().validateSettings(n)}),this.notifyControllerOfAPICall()})}setGraphSettings(t){return this.withControllerInAPIMode(()=>{__dcg_shared_module_exports__['pd'].warn("As of API v0.8 the 'setGraphSettings' method is deprecated and has been renamed 'updateSettings.'"),this.updateSettings(t),this.setGraphSettings=this.updateSettings,this.notifyControllerOfAPICall()})}setDefaultState(t){return this.withControllerInAPIMode(()=>{this._calc.grapher.settings.setProperty("defaultState",t),this.notifyControllerOfAPICall()})}mathToPixels(t){return this.withControllerInAPIMode(()=>{var i=__dcg_shared_module_exports__['Gc'].fromRects(this.graphpaperBounds.mathCoordinates,this.graphpaperBounds.pixelCoordinates,{xAxisScale:this._calc.grapher.settings.xAxisScale,yAxisScale:this._calc.grapher.settings.yAxisScale});return mU(i,t)})}pixelsToMath(t){return this.withControllerInAPIMode(()=>{var i=__dcg_shared_module_exports__['Gc'].fromRects(this.graphpaperBounds.mathCoordinates,this.graphpaperBounds.pixelCoordinates,{xAxisScale:this._calc.grapher.settings.xAxisScale,yAxisScale:this._calc.grapher.settings.yAxisScale}).inverse();return mU(i,t)})}notifyControllerOfAPICall(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"render"})})}setExpression(t){return this.withControllerInAPIMode(()=>{var i=this.controller,o=i.getItemModel(t.id),n=o&&o.type,a=tS(t,n,this.controller);if(a)if(n)this.controller.dispatch({type:"set-expression-properties-from-api",id:a.id,properties:a});else{if(a.type==="image")return;this.controller.dispatch({type:"add-item-to-end-from-api",state:a})}})}setExpressions(t){return this.withControllerInAPIMode(()=>{t.forEach(this.setExpression.bind(this))})}removeExpression(t){return this.withControllerInAPIMode(()=>{var i=t.id.toString();this.controller.dispatch({type:"remove-item-by-id",id:i})})}removeExpressions(t){return this.withControllerInAPIMode(()=>{t.forEach(this.removeExpression.bind(this))})}removeSelected(){return this.withControllerInAPIMode(()=>{var t=this.controller.getSelectedItem();if(!t)return;let{id:i}=t;return this.controller.dispatch({type:"remove-item-by-id",id:i}),i})}setMathBounds(t){return this.withControllerInAPIMode(()=>{t&&t.left<t.right&&t.bottom<t.top?(this._calc.setViewport([t.left,t.right,t.bottom,t.top]),this._calc.controller.unmarkLastChangedAxis(),this._calc.controller.markSquareAxesAfterUserEditedViewport()):__dcg_shared_module_exports__['pd'].warn("Invalid bounds argument. Expected a bounds object with bounds.bottom < bounds.top, and bounds.left < bounds.right. Got "+JSON.stringify(t)),this.notifyControllerOfAPICall()})}setViewport(t){return this.withControllerInAPIMode(()=>{t.length==4&&t[1]>t[0]&&t[3]>t[2]?(this._calc.setViewport(t),this._calc.controller.markSquareAxesAfterUserEditedViewport()):__dcg_shared_module_exports__['pd'].warn("Invalid viewport. Expected [xmin, xmax, ymin, ymax]. Got "+t),this.notifyControllerOfAPICall()})}resize(){return this.withControllerInAPIMode(()=>{this.domChangeDetector.checkForChanges()})}getState(t){return this.withControllerInAPIMode(()=>this.controller.getState(t))}getExpressions(){return this.withControllerInAPIMode(()=>{var t=this.getState({stripDefaults:!1}).expressions.list;return t.map(eS)})}setBlank(t){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"set-blank",opts:t||{}})})}setState(t,i){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"set-state",state:t,opts:i||{}})})}undo(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"undo"})})}redo(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"redo"})})}clearHistory(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"clear-undoredo-history"})})}newRandomSeed(){return this.withControllerInAPIMode(()=>{this.updateSettings({randomSeed:tc()})})}screenshot(t){return this.withControllerInAPIMode(()=>(t||(t={}),t=this._validateBrailleScreenshotOptions(t),this._calc.grapher.screenshot(t)))}_getMathAspectRatio(){return this.withControllerInAPIMode(()=>{var t=this.graphpaperBounds.mathCoordinates,i=this._calc.grapher.getProjection().pixelCoordinates,o=i.right-i.left,n=i.bottom-i.top,a=t.width/o,s=t.height/n;return a/s})}isProjectionUniform(){return this.withControllerInAPIMode(()=>!!this._calc.grapher.getProjection().settings.squareAxes)}_validateBrailleScreenshotOptions(t){return this.withControllerInAPIMode(()=>{t=__dcg_shared_module_exports__['i'](t);var i=t.braille;if(i){let o=i.embosserModel;if(!o)return __dcg_shared_module_exports__['pd'].warn("Screenshot braille options requires an embosser model to be specified. "),__dcg_shared_module_exports__['pd'].warn("Continuing with non-braille screenshot."),delete t.braille,t;if(o==="etc"&&(i.embosserModel="etc11"),o==="vpmax"&&(i.embosserModel="vpmax11"),i.embosserModel!=="etc8"&&i.embosserModel!=="etc11"&&i.embosserModel!=="vpmax8"&&i.embosserModel!=="vpmax11")return __dcg_shared_module_exports__['pd'].warn('Unknown screenshot braille embosser model. Valid models are "etc" and "vpmax".'),__dcg_shared_module_exports__['pd'].warn("Continuing with non-braille screenshot."),delete t.braille,t;i.brailleMode!=="nemeth"&&i.brailleMode!=="ueb"&&(__dcg_shared_module_exports__['pd'].warn("Screenshot options braille.brailleMode must be nemeth or ueb. Proceeding with nemeth."),i.brailleMode="nemeth"),t.width&&(__dcg_shared_module_exports__['pd'].warn("Screenshot width option is ignored when exporting Braille."),delete t.width),t.height&&(__dcg_shared_module_exports__['pd'].warn("Screenshot height option is ignored when exporting Braille."),delete t.height),t.targetPixelRatio&&(__dcg_shared_module_exports__['pd'].warn("Screenshot targetPixelRatio option is ignored when exporting Braille."),delete t.targetPixelRatio),t.preserveAxisNumbers&&(__dcg_shared_module_exports__['pd'].warn("Screenshot preserveAxisNumbers option is ignored when exporting Braille."),delete t.preserveAxisNumbers)}return t})}_validateAsyncScreenshotOpts(t){return this.withControllerInAPIMode(()=>{t=__dcg_shared_module_exports__['i'](t);let i=t.mode||"contain",o=t.width||t.height||this.graphpaperBounds.pixelCoordinates.width,n=t.height||t.width||this.graphpaperBounds.pixelCoordinates.height,a=t.targetPixelRatio||1;a<1&&(a=1);let s=t.preserveAxisNumbers;t.hasOwnProperty("format")||(t.svg?(t.format="svg",delete t.svg):t.format="png");let l=t.mathBounds||{},c=this._getMathAspectRatio(),d=this.graphpaperBounds.pixelCoordinates.width/this.graphpaperBounds.pixelCoordinates.height,u=lU({mode:i,width:o,height:n,currentBounds:this.graphpaperBounds.mathCoordinates,graphpaperAspectRatio:d,mathAspectRatio:c,mathBounds:l});return{opts:{...t,width:o,height:n,targetPixelRatio:a,preserveAxisNumbers:s},mathBounds:u}})}asyncScreenshot(t,i){if(!arguments.length){__dcg_shared_module_exports__['pd'].warn("asyncScreenshot expects a callback");return}if(arguments.length===1)if(typeof t!="function"){__dcg_shared_module_exports__['pd'].warn("asyncScreenshot expects a callback");return}else i=t,t={};return this.withControllerInAPIMode(()=>{t||(t={}),t=this._validateBrailleScreenshotOptions(t);let{opts:o,mathBounds:n}=this._validateAsyncScreenshotOpts(t);bU.push({api:this,options:o,mathBounds:n,state:this.getState(),callback:i}),yU(this.constructor)})}setOptions(t){return this.withControllerInAPIMode(()=>{var i=this._calc.setOptions(t);return this.notifyControllerOfAPICall(),i})}focusFirstExpression(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"focus-first-expression"})})}openKeypad(){return this.withControllerInAPIMode(()=>{this.controller.dispatch({type:"keypad/set-minimized",minimized:!1})})}HelperExpression(t){return this.withControllerInAPIMode(()=>{var i=t&&t.latex||"",o=new ti;return o.latex=i,this.controller.dispatch({type:"add-helper-expression",state:{type:"helper-expression",id:this.controller.generateId(),latex:i,proxy:o}}),o})}};var uf=class extends xh{constructor(e,t,i){super(e,{...t,product:"graphing"},i)}};var jD=class{constructor(e,t){var i=new Yc;for(var o in t)i.config.setProperty(o,t[o]);this.controller=new nh(i);var n=new Fp(e);this.controller.setEvaluator(n),n.readEvaluatorConfig=()=>({product:this.controller.getGraphSettings().config.product,beta3d:t.beta3d,evaluationMode:this.controller.isGeometry()?"geometry":"graphing",globalRandomSeed:i.randomSeed,degreeMode:i.degreeMode,restrictedFunctions:i.config.restrictedFunctions,distributions:i.config.distributions,pointsOfInterest:i.config.pointsOfInterest,plotSingleVariableImplicitEquations:i.config.plotSingleVariableImplicitEquations,plotImplicits:i.config.plotImplicits,plotInequalities:i.config.plotInequalities,sliders:i.config.sliders,actions:i.config.actions}),n.onEvaluatorResults=s=>{this.controller.dispatch({type:"on-evaluator-changes",changes:s.evaluationStates,timingData:s.timingData,eventUpdates:s.eventUpdates})};var a=new ti;a.setProperties({pixelCoordinates:{top:0,bottom:0,left:0,right:0,width:0,height:0},mathCoordinates:{top:0,bottom:0,left:0,right:0,width:0,height:0}}),this.graphpaperBounds=a,this.evaluator=n,this.setBlank()}setBlank(e){this.controller.dispatch({type:"set-blank",opts:e})}tick(){this.evaluator.tick()}destroy(){this.evaluator.destroy()}};var hf=class{constructor(e){this._calc=new jD(pf,YD({...e})),this.controller=this._calc.controller,this._sharedClockBusToken=$c(()=>{this._calc.tick()})}destroy(){this._calc.destroy(),vu(this._sharedClockBusToken);function e(n){__dcg_shared_module_exports__['pd'].warn("You've destroyed this API instance. You can no longer call ."+n+"()")}for(var t={},i=this;i;)Object.getOwnPropertyNames(i).forEach(a=>t[a]=!0),i=Object.getPrototypeOf(i);for(var o in t)typeof this[o]=="function"?this[o]=e.bind(this,o):this.hasOwnProperty(o)&&delete this[o];this.destroy=function(){}}setExpression(e){var t=this.controller,i=t.getItemModel(e.id),o=i&&i.type,n=tS(e,o,this.controller);if(n)if(o)this.controller.dispatch({type:"set-expression-properties-from-api",id:n.id,properties:n});else{if(n.type==="image")return;this.controller.dispatch({type:"add-item-to-end-from-api",state:n})}}setExpressions(e){e.forEach(this.setExpression.bind(this))}removeExpression(e){var t=e.id.toString();this.controller.dispatch({type:"remove-item-by-id",id:t})}removeExpressions(e){e.forEach(this.removeExpression.bind(this))}getState(e){return this.controller.getState(e)}getExpressions(){var e=this.getState({stripDefaults:!1}).expressions.list;return e.map(eS)}setBlank(e){this.controller.dispatch({type:"set-blank",opts:e||{}})}setState(e,t){this.controller.dispatch({type:"set-state",state:e,opts:t||{}})}HelperExpression(e){var t=e&&e.latex||"",i=new ti;return i.latex=t,this.controller.dispatch({type:"add-helper-expression",state:{type:"helper-expression",id:this.controller.generateId(),latex:t,proxy:i}}),i}resize(){}};var wf=__dcg_shared_module_exports__['e']($());var wh=class{constructor(e){if(this.rootElt=e,this.eventModel=new ti,!e)throw new Error("must pass an HTMLElement to the API")}setupDomChangeDetector(e){this.autoSize=e,E0(this.rootElt),this.domChangeDetector=new yh(this.rootElt,t=>{switch(t.type){case"added":this.view=this.onCreateView(),this.onResizeView(t.size);break;case"removed":this.onDestroyView(),this.view=void 0;break;case"resized":this.onResizeView(t.size);break}}),this.autoSize!==!1?this.domChangeDetector.startWatching():this.domChangeDetector.checkForChanges()}detach(){__dcg_shared_module_exports__['pd'].warn(".detach() is deprecated. It should no longer be necessary")}destroy(){this.view&&this.onDestroyView(),this.domChangeDetector.destroy();function e(n){__dcg_shared_module_exports__['pd'].warn("You've destroyed this API instance. You can no longer call ."+n+"()")}for(var t={},i=this;i;)Object.getOwnPropertyNames(i).forEach(a=>t[a]=!0),i=Object.getPrototypeOf(i);for(var o in t)typeof this[o]=="function"?this[o]=e.bind(this,o):this.hasOwnProperty(o)&&delete this[o];this.destroy=function(){}}resize(){this.domChangeDetector.checkForChanges()}updateView(){this.view&&document.body&&document.body.contains(this.rootElt)&&this.view.update()}triggerEvent(e,t){this.eventModel.triggerEvent(e,t)}observeEvent(e,t){this.eventModel.observeEvent(e,t)}unobserveEvent(e){this.eventModel.unobserveEvent(e)}};var Yx=class{constructor({evaluationMode:e,additionalFunctions:t,disableParentheses:i,functionDefinition:o,replaceRoundWithReciprocal:n,workerPool:a}){this._evaluations={};this._nextObjectId=0;this.store=new pl({expressions:{1:{id:"1",latex:"",braille:"",type:"latex",displayAsFraction:!1}},order:["1"],settings:{degreeMode:!1},ui:{focus:void 0}});this.evaluationMode=e,this.additionalFunctions=t,this.disableParentheses=i,this.functionDefinition=o,this.replaceRoundWithReciprocal=n,this.workerPool=a,this._setupEvaluator(),this.clear(),this._sharedClockBusToken=$c(()=>{this._evaluator.tick()})}isSingleExpression(){return this.evaluationMode==="singleExpressionScientific"||this.evaluationMode==="singleExpressionFourFunction"}destroy(){vu(this._sharedClockBusToken)}generateObjectId(){return(this._nextObjectId++).toString()}updateNextObjectId(){let e=this.store.getState().order;this._nextObjectId=0;let t=/^[0-9]+$/;for(let i of e)if(t.test(i)){let o=parseInt(i,10);o>=this._nextObjectId&&(this._nextObjectId=o+1)}}clearShouldDebounceUndoRedo(){this._shouldDebounceUndoRedo=!1}markShouldDebounceUndoRedo(){this._shouldDebounceUndoRedo=!0}getShouldDebounceUndoRedo(){return this._shouldDebounceUndoRedo}clearCachedBrailleValues(){for(let e of this.getExpressionOrder())this.store.set(["expressions",e,"braille"],"")}getState(){return this.store.getState()}getPersistedState(){let{expressions:e,order:t,settings:i}=this.getState();return{expressions:{list:t.map(o=>{var n=e[o];return{id:n.id,latex:n.latex,displayAsFraction:n.displayAsFraction}})},settings:i}}setState(e){this.store.set(e),this._updateIndexes(),this.updateNextObjectId()}setStateFromAPI(e){let t=[],i={};e.expressions.list.forEach(o=>{t.push(o.id),i[o.id]={id:o.id,latex:o.latex,braille:"",type:"latex",displayAsFraction:!!o.displayAsFraction}}),this.setState({expressions:i,order:t,settings:e.settings,ui:{focus:void 0}})}canClear(){if(this.getNumberOfExpressions()>1)return!0;let e=this.getExpressionOrder()[0];return this.getExpressionLatex(e)!==""}clear(){this.setState({expressions:{1:{id:"1",type:"latex",latex:"",braille:"",displayAsFraction:!1}},ui:{focus:void 0},order:["1"],settings:this.getState().settings})}getExpressionOrder(){return this.store.getState().order}getNumberOfExpressions(){return this.getExpressionOrder().length}getExpressionById(e){return this.getState().expressions[e]}getExpressionIndex(e){return this._indexes[e]}_getExpressionByIndex(e){let t=this.getExpressionOrder()[e];return this.getExpressionById(t)}_updateIndexes(){this._indexes={};let e=0;for(let t of this.getExpressionOrder())this._indexes[t]=e,e+=1;this._evaluate()}_usesAnsById(e){return this.getExpressionById(e).latex.indexOf("\\operatorname{ans}")!==-1}_getPreviousExpById(e){let t=this.getExpressionIndex(e);return this._getExpressionByIndex(t-1)}createBlankAfterId(e){if(this.isSingleExpression()||!this.getExpressionById(e).latex)return;let t=this.getExpressionIndex(e),i=this.generateObjectId();this.store.shallowMutate("order",o=>{o.splice(t+1,0,i)}),this.store.shallowMutate("expressions",o=>{o[i]={id:i,latex:"",braille:"",type:"latex",displayAsFraction:!1}}),this._updateIndexes(),this.setFocusedById(i,!0)}conditionallyCopyPrevious(e){let t=this._getPreviousExpById(e),i=this.getExpressionById(e);t!=null&&i.latex===""&&this._usesAnsById(t.id)&&this.setLatexById(e,t.latex)}backspaceAtFrontOfId(e){if(this.getExpressionById(e).latex!==""||this.getNumberOfExpressions()===1)return;let i=this.getExpressionIndex(e);this.store.shallowMutate("order",o=>{o.splice(i,1)}),this.store.shallowMutate("expressions",o=>{delete o[e]}),this._updateIndexes(),this._setFocusedByIndex(Math.max(i-1,0),!0)}setLatexById(e,t){this.store.set(["expressions",e,"latex"],t),this.store.set(["expressions",e,"braille"],""),t===""&&this.setFractionEvaluation(e,!1),this._evaluate()}setLatexAndBrailleById(e,t,i){this.store.set(["expressions",e,"latex"],t),this.store.set(["expressions",e,"braille"],i),t===""&&this.setFractionEvaluation(e,!1),this._evaluate()}setFractionEvaluation(e,t){this.store.set(["expressions",e,"displayAsFraction"],t)}setLatexOfFocusedExpression(e){let t=this.getFocusedExpressionId();t&&this.setLatexById(t,e)}isExpressionFocused(e){return this.getFocusedExpressionId()===e}getExpressionLatex(e){return this.getExpressionById(e).latex}getExpressionError(e){let t=this._evaluations[e];return t?t.error:""}getExpressionValue(e){let t=this._evaluations[e];if(t)return t.value}getExpressionAns(e){let t=this._evaluations[e];if(t)return t.ans}getExpressionAnsId(e){let t=this._evaluations[e];if(t)return t.ansId}shouldShowEvaluationForExpression(e){let t=this._evaluations[e];return t?t.showEvaluation:!1}isRationalizableConstant(e){let t=this._evaluations[e];return t?t.isRationalizableConstant:!1}canDisplayEvaluationAsFraction(e){let t=this.getExpressionValue(e);return t?__dcg_shared_module_exports__['Za'](t):!1}_setFocusedByIndex(e,t){let i=this._getExpressionByIndex(e),o=this.store.getState().ui.focus,n=t?{type:"latex-expression",id:i.id}:void 0;if(!__dcg_shared_module_exports__['Oa'](o,n)){if(o){let a=o.id;this.store.deepMutate("expressions",s=>{var l=s[a];l&&(l.braille="")})}!t&&this.getFocusedExpressionId()!==i.id||this.store.shallowMutate("ui",a=>{a.focus=n})}}setFocusedById(e,t){let i=this.getExpressionIndex(e);this._setFocusedByIndex(i,t)}focusPrevById(e){let t=this.getExpressionIndex(e)-1;t>=0&&this._setFocusedByIndex(t,!0)}focusNextById(e){let t=this.getExpressionIndex(e)+1;t<this.getNumberOfExpressions()?this._setFocusedByIndex(t,!0):this.createAtEnd()}getFocusedExpression(){let e=this.getFocusedExpressionId();if(e)return this.getExpressionById(e)}getFocusedExpressionId(){let e=this.getState().ui.focus;return e&&e.id}clearFocusedExpression(){let e=this.getFocusedExpression();e&&this.setLatexById(e.id,"")}shouldShowClear(){if(this.getNumberOfExpressions()===1)return!1;let e=this.getFocusedExpression();return!!e&&!!e.latex}getLastExpression(){return this._getExpressionByIndex(this.getNumberOfExpressions()-1)}isLastExpressionEmpty(){return!!this.getLastExpression().latex}createAtEnd(){this.createBlankAfterId(this.getLastExpression().id)}focusLastExpression(){this._setFocusedByIndex(this.getNumberOfExpressions()-1,!0)}focusFirstExpression(){this._setFocusedByIndex(0,!0)}getDegreeMode(){return this.getState().settings.degreeMode}setDegreeMode(e){this.store.set(["settings","degreeMode"],!!e),this._evaluate()}_cleanupLatex(e){return e=__dcg_shared_module_exports__['db'](e),e.substr(e.length-1)==="="&&(e=e.substr(0,e.length-1)),e}_evaluate(){this._evaluator.clearStatementsAndStartCompleteState(),this.getExpressionOrder().forEach(e=>this._evaluator.addStatement({id:e,index:this.getExpressionIndex(e),latex:this._cleanupLatex(this.getExpressionLatex(e)),shouldGraph:!1,type:"statement"}))}_setupEvaluator(){this._evaluator=new Fp(this.workerPool),this._evaluator.readEvaluatorConfig=()=>({degreeMode:this.getDegreeMode(),evaluationMode:this.evaluationMode,additionalFunctions:this.additionalFunctions,disableParentheses:this.disableParentheses,functionDefinition:this.functionDefinition,replaceRoundWithReciprocal:this.replaceRoundWithReciprocal,actions:!1}),this._evaluator.onEvaluatorResults=e=>{let t=e.evaluationStates;this._evaluations={};for(let n in t){let a=t[n];if(!this.getExpressionById(n))continue;let l=a.constant_value;l===void 0&&a.zero_values&&a.zero_values.length&&(l=a.zero_values[0].val);let c=a.hasOwnProperty("constant_value")&&__dcg_shared_module_exports__['Za'](a.constant_value),d=!a.is_evaluable&&c,u=!!a.is_evaluable||d||Array.isArray(l);this._evaluations[n]={error:a.error,ans:void 0,ansId:void 0,value:l,showEvaluation:u,isRationalizableConstant:d}}let i,o;for(let n of this.getExpressionOrder()){let a=this._evaluations[n];if(i&&a){let s=i.value;typeof s=="number"?(a.ans=s,a.ansId=o):Array.isArray(s)&&(a.ans="[...]")}i=a,o=n}typeof this.onEvaluationUpdate=="function"&&this.onEvaluationUpdate()}}reloadState(){this.setState(this.getState())}getFunctionDefinition(){return!!this.functionDefinition}enableFunctionDefinition(){this.functionDefinition=!0,this.reloadState()}disableFunctionDefinition(){this.functionDefinition=!1,this.reloadState()}getReplaceRoundWithReciprocal(){return!!this.replaceRoundWithReciprocal}enableReplaceRoundWithReciprocal(){this.replaceRoundWithReciprocal=!0,this.reloadState()}disableReplaceRoundWithReciprocal(){this.replaceRoundWithReciprocal=!1,this.reloadState()}};Fa();var jx=class{constructor(e,t){this.keyboardMode="main";this.fontSize=16;this.invertedColors=!1;this.backgroundColor="";this.textColor="";this.projectorMode=!1;this.capExpressionSize=!1;this.decimalToFraction=!0;this.settingsMenu=!0;this.settingsMenuOpen=!1;this.language="en";this.brailleMode="none";this.sixKeyInput=!1;this.brailleControls=!0;this.brailleExpressionDownload=!0;this.replaceCommaWith10Exp=!1;this.typingAsteriskWritesTimesSymbol=!1;this.stateStack=new ld;this.dispatcher=new Cp;this.s=Hl(()=>this.language);this.dispatch=e=>{bb("dispatch",{type:e.type}),this.dispatcher.dispatch(e);let t;for(;t=this._queuedCallbacks.shift();)t()};this._queuedCallbacks=[];this.stateStack=new ld,this.dispatcher=new Cp,this.options=e,this.model=new Yx({evaluationMode:this.options.evaluationMode,additionalFunctions:this.options.additionalFunctions,disableParentheses:this.options.disableParentheses,functionDefinition:this.options.functionDefinition,replaceRoundWithReciprocal:this.options.replaceRoundWithReciprocal,workerPool:t.workerPool}),this.model=this.model,this.model.setDegreeMode(e.degreeMode),this.setLanguage(e.language),this.setBrailleMode(e.brailleMode),this.setSixKeyInput(e.sixKeyInput),this.setBrailleControls(e.brailleControls),this.setBrailleExpressionDownload(e.brailleExpressionDownload),this.setReplaceCommaWith10Exp(e.replaceCommaWith10Exp),this.setReplaceRoundWithReciprocal(e.replaceRoundWithReciprocal),this.setTypingAsteriskWritesTimesSymbol(e.typingAsteriskWritesTimesSymbol),this.setProjectorMode(e.projectorMode),this.setCapExpressionSize(e.capExpressionSize),this.setDecimalToFraction(e.decimalToFraction),this.invertedColors=e.invertedColors,this.backgroundColor=e.backgroundColor,this.textColor=e.textColor,this.settingsMenu=e.settingsMenu,this.model.onEvaluationUpdate=()=>this.dispatch({type:"render"}),this.settingsProxy=t.settingsProxy,this.syncPublicSettings(),this.hookUpDispatcher(),this.containerSize={width:0,height:0}}runAfterDispatch(e){this._queuedCallbacks.push(e)}enqueueEvent(e){this.runAfterDispatch(()=>{this.onEventEmitted&&this.onEventEmitted(e)})}getFunctionDefinition(){return this.options.functionDefinition}getSettingsMenu(){return this.settingsMenu}getBrailleMode(){return this.brailleMode}renderAsBraille(){return this.brailleMode!=="none"}setBrailleMode(e){this.brailleMode=e}getSixKeyInput(){return this.sixKeyInput}setSixKeyInput(e){this.sixKeyInput=e}getBrailleControls(){return this.brailleControls}setBrailleControls(e){this.brailleControls=e}getBrailleExpressionDownload(){return this.brailleExpressionDownload}setBrailleExpressionDownload(e){this.brailleExpressionDownload=e}getRestrictedEditing(){return this.options.restrictedEditing}getKeyboardMode(){return this.keyboardMode}getFontSize(){return this.fontSize}getInvertedColors(){return this.invertedColors}hasBackgroundColor(){return this.getBackgroundColor()!=="#ffffff"}getBackgroundColor(){return __dcg_shared_module_exports__['ad'](this.backgroundColor||"#fff")}hasTextColor(){return this.getTextColor()!=="#000000"}getTextColor(){return __dcg_shared_module_exports__['ad'](this.textColor||"#000")}getAdditionalFunctions(){return this.options.additionalFunctions}getDisableParentheses(){return this.options.disableParentheses}getTypingSlashWritesDivisionSymbol(){return this.options.typingSlashWritesDivisionSymbol}setTypingAsteriskWritesTimesSymbol(e){this.typingAsteriskWritesTimesSymbol=e}getTypingAsteriskWritesTimesSymbol(){return this.typingAsteriskWritesTimesSymbol}setProjectorMode(e){this.projectorMode=e}isProjectorMode(){return this.projectorMode}getReplaceCommaWith10Exp(){return this.replaceCommaWith10Exp}setReplaceCommaWith10Exp(e){this.replaceCommaWith10Exp=e}getReplaceRoundWithReciprocal(){return this.model.getReplaceRoundWithReciprocal()}setReplaceRoundWithReciprocal(e){e?this.model.enableReplaceRoundWithReciprocal():this.model.disableReplaceRoundWithReciprocal()}setCapExpressionSize(e){this.capExpressionSize=e}getCapExpressionSize(){return this.capExpressionSize}setDecimalToFraction(e){this.decimalToFraction=e}setLanguage(e){e!=="en"&&!ZC(e)?__dcg_shared_module_exports__['pd'].warn(`Translation for '${e}' isn't currently available. Using '${this.language}' instead.`):this.language=e}getLanguage(){return this.language}getDecimalToFraction(){return this.decimalToFraction}isScientificCalc(){let e=this.options.evaluationMode;return e==="scientific"||e==="singleExpressionScientific"}isFourFunctionCalc(){return this.options.evaluationMode==="fourFunction"||this.options.evaluationMode==="singleExpressionFourFunction"}getAllowLinks(){return this.options.links}canUndo(){return this.stateStack.canUndo()}canRedo(){return this.stateStack.canRedo()}undo(e){if(!this.canUndo())return;this.stateStack.undo();let t=this.stateStack.getState();e.restoreFocus||(t={...t,ui:{focus:void 0}}),this.model.setState(t),this.enqueueEvent("change")}redo(e){if(!this.canRedo())return;this.stateStack.redo();let t=this.stateStack.getState();e.restoreFocus||(t={...t,ui:{focus:void 0}}),this.model.setState(t),this.enqueueEvent("change")}clearHistory(){this.stateStack.clear()}canBackspace(){let e=this.model.getFocusedExpression();return e&&(e.latex.length>0||this.model.getNumberOfExpressions()>1)}focusLastExpression(){this.model.focusLastExpression()}shouldRender(){return this.containerSize.width>0&&this.containerSize.height>0}canClear(){return this.model.canClear()}shouldShowClear(){return this.model.shouldShowClear()}enableSettingsMenu(){this.settingsMenu=!0}disableSettingsMenu(){this.closeSettingsMenu(),this.settingsMenu=!1}closeSettingsMenu(){this.settingsMenuOpen=!1}toggleSettingsMenu(){this.settingsMenuOpen=!this.settingsMenuOpen}isSettingsMenuOpen(){return this.settingsMenuOpen}isLastExpressionEmpty(){return this.model.isLastExpressionEmpty()}createAtEnd(){this.model.createAtEnd()}clearFocusedExpression(){this.model.clearFocusedExpression()}setLatexById(e,t){this.model.setLatexById(e,t)}setLatexAndBrailleById(e,t,i){this.model.setLatexAndBrailleById(e,t,i)}setLatexOfFocusedExpression(e){this.model.setLatexOfFocusedExpression(e)}toggleFractionEvaluationById(e){this.model.setFractionEvaluation(e,!this.model.getExpressionById(e).displayAsFraction)}conditionallyCopyPrevious(e){this.model.conditionallyCopyPrevious(e)}createBlankAfterId(e){this.model.createBlankAfterId(e)}backspaceAtFrontOfId(e){this.model.backspaceAtFrontOfId(e)}areStatesDifferentEnoughForUndoRedo(e,t){let i={focus:void 0};return __dcg_shared_module_exports__['Oa']({...e,ui:i},{...t,ui:i})}commitUndoRedoDebounced(){let e=this.model.getState(),t=this.stateStack.getState();if(this.areStatesDifferentEnoughForUndoRedo(e,t))return;let i=new Date().getTime();i-this._lastDebouncedTime<1e3?this.stateStack.replaceState(e):this.stateStack.addState(e),this._lastDebouncedTime=i,this.enqueueEvent("change")}commitUndoRedoSynchronously(){let e=this.model.getState(),t=this.stateStack.getState();this.areStatesDifferentEnoughForUndoRedo(e,t)||(this._lastDebouncedTime=0,this.stateStack.addState(e),this.enqueueEvent("change"))}updateKeyboardMode(e){this.keyboardMode=e}getFocusedMathquill(){if(this.model.getFocusedExpressionId())return ve.getFocusedMathquill()}ensureMathquillIsFocusedAndReturnFocusedMathquill(){let e=this.getFocusedMathquill();return e||(this.isLastExpressionEmpty()&&!this.model.isSingleExpression()?this.createAtEnd():this.focusLastExpression(),this.onEventEmitted&&this.onEventEmitted("render"),this.getFocusedMathquill())}typeIntoFocusedMathquill(e){e=e.replace(/\r|\n/g,"");let t=this.ensureMathquillIsFocusedAndReturnFocusedMathquill();t&&ve.canAcceptText(t,this.getCapExpressionSize(),e)&&(t.typedText(e),this.setLatexOfFocusedExpression(t.latex()),this.model.markShouldDebounceUndoRedo())}pressKeyInFocusedMathquill(e,t){if(this.getBrailleMode()!=="none")return;let i=this.ensureMathquillIsFocusedAndReturnFocusedMathquill();i&&(e==="Up"||e==="Down"||e==="Left"||e==="Right"?ve.applyArrowKeyAndReturnIfWasAtBounds(i,e,t)&&this.moveFocusInDirection(e):e==="Enter"?(t&&(t.preventDefault(),t.stopPropagation()),this.handleEnter()):e==="Backspace"?this.attemptToMoveFocusWithBackspace()||(i.keystroke(e,t),this.setLatexOfFocusedExpression(i.latex())):e==="Delete"?(i.keystroke(e,t),this.setLatexOfFocusedExpression(i.latex())):(i.keystroke(e,t),this.setLatexOfFocusedExpression(i.latex())))}moveFocusInDirection(e){let t=this.model.getFocusedExpressionId();t&&(e==="Up"?this.model.focusPrevById(t):e==="Down"&&this.model.focusNextById(t))}handleEnter(){if(this.model.isSingleExpression())return;let e=this.model.getFocusedExpressionId();e&&(this.conditionallyCopyPrevious(e),this.createBlankAfterId(e))}attemptToMoveFocusWithBackspace(){let e=this.model.getFocusedExpression();if(!e)return!1;let{latex:t,id:i}=e;return t===""?(this.backspaceAtFrontOfId(i),!0):!1}executeCommandInFocusedMathquill(e){let t=this.ensureMathquillIsFocusedAndReturnFocusedMathquill();t&&(Gm(t,e,{capExpressionSize:this.getCapExpressionSize()}),this.setLatexOfFocusedExpression(t.latex()))}syncPublicSettings(){this.settingsProxy.setProperty("language",this.language),this.settingsProxy.setProperty("fontSize",this.fontSize),this.settingsProxy.setProperty("degreeMode",this.model.getDegreeMode()),this.settingsProxy.setProperty("invertedColors",this.invertedColors),this.settingsProxy.setProperty("backgroundColor",this.backgroundColor),this.settingsProxy.setProperty("textColor",this.textColor),this.settingsProxy.setProperty("brailleMode",this.brailleMode),this.settingsProxy.setProperty("sixKeyInput",this.sixKeyInput),this.settingsProxy.setProperty("brailleControls",this.brailleControls),this.settingsProxy.setProperty("brailleExpressionDownload",this.brailleExpressionDownload),this.settingsProxy.setProperty("projectorMode",this.projectorMode),this.settingsProxy.setProperty("capExpressionSize",this.capExpressionSize),this.settingsProxy.setProperty("decimalToFraction",this.decimalToFraction),this.settingsProxy.setProperty("qwertyKeyboard",this.options.qwertyKeyboard),this.settingsProxy.setProperty("links",this.options.links),this.settingsProxy.setProperty("settingsMenu",this.settingsMenu),this.settingsProxy.setProperty("functionDefinition",this.model.getFunctionDefinition()),this.settingsProxy.setProperty("replaceCommaWith10Exp",this.replaceCommaWith10Exp),this.settingsProxy.setProperty("replaceRoundWithReciprocal",this.model.getReplaceRoundWithReciprocal()),this.settingsProxy.setProperty("typingAsteriskWritesTimesSymbol",this.typingAsteriskWritesTimesSymbol)}hookUpDispatcher(){this.dispatcher.register(e=>{this.enqueueEvent("render");let t=!1,i=this.getRestrictedEditing();switch(e.type){case"update-options":{this.options={...this.options,...e.options};break}case"keypad/shift":{let s;switch(this.keyboardMode){case"qwerty":s="capitalQwerty";break;case"capitalQwerty":s="qwerty";break;case"letters":s="capitalLetters";break;case"capitalLetters":s="letters";break;default:s="qwerty"}this.updateKeyboardMode(s)}break;case"undo":i||(this.undo({restoreFocus:e.source==="keyboard-shortcut"}),t=!0);break;case"redo":i||(this.redo({restoreFocus:e.source==="keyboard-shortcut"}),t=!0);break;case"clear-history":this.clearHistory();break;case"set-state-from-api":e.opts.allowUndo||this.clearHistory(),this.model.setStateFromAPI(e.state);break;case"main":this.updateKeyboardMode("main");break;case"ABC":this.options.qwertyKeyboard?this.updateKeyboardMode("qwerty"):this.updateKeyboardMode("letters");break;case"functions":this.updateKeyboardMode("functions");break;case"degrees":this.model.setDegreeMode(!this.model.getDegreeMode());break;case"update-degree-mode":this.model.setDegreeMode(!!e.mode);break;case"update-font-size":var o=e.size;if(typeof o!="number"&&(o=parseInt(o,10)),isNaN(o))return;this.fontSize=o;break;case"update-inverted-colors":this.invertedColors=!!e.mode;break;case"update-background-color":this.backgroundColor=e.color;break;case"update-text-color":this.textColor=e.color;break;case"update-projector-mode":this.setProjectorMode(!!e.mode);break;case"update-cap-expression-size":this.setCapExpressionSize(!!e.mode);break;case"update-decimal-to-fraction":this.setDecimalToFraction(!!e.mode);break;case"update-language":this.setLanguage(e.language);break;case"set-blank":e.opts.allowUndo||this.clearHistory(),this.model.clear(),this.focusLastExpression();break;case"clear":this.model.clearFocusedExpression();break;case"set-braille-mode":let n=e.mode;n!=="nemeth"&&n!=="ueb"&&n!=="none"?__dcg_shared_module_exports__['pd'].warn(`Valid Braille modes are 'nemeth', 'none', and 'ueb'. You passed '${n}'.`):(this.model.clearCachedBrailleValues(),this.setBrailleMode(e.mode));break;case"set-six-key-input":this.setSixKeyInput(!!e.useSixKeyInput);break;case"set-braille-controls":this.setBrailleControls(!!e.value);break;case"set-braille-expression-download":this.setBrailleExpressionDownload(!!e.mode);break;case"set-replace-comma-with-10-exp":this.setReplaceCommaWith10Exp(!!e.replace);break;case"set-replace-round-with-reciprocal":this.setReplaceRoundWithReciprocal(!!e.replace);break;case"set-typing-asterisk-writes-times-symbol":this.setTypingAsteriskWritesTimesSymbol(!!e.mode);break;case"update-latex":this.model.markShouldDebounceUndoRedo(),this.setLatexById(e.id,e.latex);break;case"update-latex-from-braille":this.model.markShouldDebounceUndoRedo(),this.setLatexAndBrailleById(e.id,e.latex,e.braille);break;case"focusin":this.model.setFocusedById(e.id,!0);break;case"focusout":this.model.setFocusedById(e.id,!1);break;case"focus-first-expression":this.model.focusFirstExpression();break;case"focus-prev-expression":this.moveFocusInDirection("Up");break;case"focus-next-expression":this.moveFocusInDirection("Down");break;case"focus-last-expression":this.model.focusLastExpression();break;case"insert-blank-expression":this.handleEnter();break;case"backspace-from-braille":this.attemptToMoveFocusWithBackspace();break;case"keypad/type-text":this.typeIntoFocusedMathquill(e.text);break;case"keypad/press-key":this.pressKeyInFocusedMathquill(e.key,e.evt);break;case"keypad/custom-command":this.executeCommandInFocusedMathquill(e.command);break;case"keypad/123":case"keypad/abc":case"keypad/audio-trace":break;case"enable-settings-menu":this.enableSettingsMenu();break;case"disable-settings-menu":this.disableSettingsMenu();break;case"toggle-settings-menu":this.toggleSettingsMenu();break;case"close-settings-menu":this.closeSettingsMenu();break;case"render":break;case"ui/container-resized":this.containerSize=e.size;break;case"toggle-fraction-evaluation":this.toggleFractionEvaluationById(e.id);break;default:return e}this.runAfterDispatch(()=>this.syncPublicSettings()),t||(this.model.getShouldDebounceUndoRedo()?(this.commitUndoRedoDebounced(),this.model.clearShouldDebounceUndoRedo()):this.commitUndoRedoSynchronously())})}getMathquillConfig(){let e=this.getAdditionalFunctions(),t=this.isFourFunctionCalc()&&(!e||e.indexOf("fraction")===-1);return{typingAsteriskWritesTimesSymbol:this.getTypingAsteriskWritesTimesSymbol(),typingSlashWritesDivisionSymbol:this.getTypingSlashWritesDivisionSymbol(),disableCopyPaste:this.getRestrictedEditing(),autoCommands:Al({disallowFrac:t}),autoOperatorNames:Gl(),infixOperatorNames:qh()}}};var Bt=__dcg_shared_module_exports__['e']($());var xU=__dcg_shared_module_exports__['e']($()),Ot=class extends xU.Class{init(){this.controller=this.props.controller(),this.model=this.controller.model,this.dispatch=this.controller.dispatch,this.s=this.controller.s}};var ai=__dcg_shared_module_exports__['e']($());var vh=__dcg_shared_module_exports__['e']($());var es=class extends yd{template(){return vh.createElement("div",{class:vh.const("dcg-keypad-control-bar dcg-do-not-blur"),role:vh.const("group"),"aria-label":()=>this.controller.s("shared-calculator-narration-keypad-controlbar")},vh.createElement("div",{class:vh.const("dcg-keypad-control-bar-contents")},this.children))}};var gf=__dcg_shared_module_exports__['e']($()),fr=class extends gf.Class{template(){return gf.createElement("div",{class:()=>({"dcg-keypad-control-btn":!0,"dcg-disabled":this.isDisabled(),"dcg-selected":!this.isDisabled()&&this.isSelected(),"dcg-selectable-btn":!this.isDisabled()&&this.isSelectable(),"dcg-narrow-control-btn":this.props.narrowButton&&this.props.narrowButton()}),didMount:this.bindFn(this.didMount),role:gf.const("button"),"aria-disabled":()=>this.isDisabled()||void 0,"aria-label":()=>this.getAriaLabel(),"dcg-command":this.props.command,onTap:this.bindFn(this.handleTap),"aria-pressed":()=>!this.hasPopup()&&!this.isDisabled()&&this.isSelectable()?this.isSelected():void 0,"aria-expanded":()=>this.hasPopup()&&!this.isDisabled()?this.isSelected():void 0,tabindex:this.bindFn(this.getTabIndex)},this.children)}getTabIndex(){if(!this.isDisabled())return this.props.ignoreInTabOrder&&this.props.ignoreInTabOrder()?-1:0}handleTap(e){this.isDisabled()||this.props.onTap(e)}getAriaLabel(){return this.props.ariaLabel?this.props.ariaLabel():this.props.command()}hasPopup(){return this.props.ariaPopup?this.props.ariaPopup():!1}isDisabled(){return this.props.disabled?this.props.disabled():!1}isSelected(){return this.props.selected?this.props.selected():!1}isSelectable(){return this.props.selectable?this.props.selectable():!1}didMount(e){this.props.didMount&&this.props.didMount(e)}};var Rs=__dcg_shared_module_exports__['e']($());var Lr=__dcg_shared_module_exports__['e']($());kt();var wc=__dcg_shared_module_exports__['e']($());function BX(){if(!XV)return!1;let r=navigator.userAgent.match(/Version\/(\d+)/);return!r||!r[1]?!1:parseFloat(r[1])<11}function wU(){return!JV&&!BX()&&typeof document.createElement("a").download!="undefined"}function vU(){return wU()||navigator.msSaveBlob!==void 0}var Jx=class extends wc.Class{init(){this.supportsDirectDownload=wU()}template(){return wc.createElement("a",{role:wc.const("button"),tabindex:()=>this.props.enabled()?0:-1,"aria-disabled":()=>this.props.enabled()?void 0:!0,class:()=>{var e,t,i,o,n,a;return{"dcg-download-button":!0,"dcg-btn-primary":((t=(e=this.props).buttonType)==null?void 0:t.call(e))==="primary","dcg-btn-secondary":((o=(i=this.props).buttonType)==null?void 0:o.call(i))==="secondary","dcg-primary-link":((a=(n=this.props).buttonType)==null?void 0:a.call(n))==="link","dcg-disabled":!this.props.enabled()}},didMount:this.bindFn(this.didMountDownload),didUnmount:this.bindFn(this.didUnmountDownload),didUpdate:this.bindFn(this.didUpdate),download:()=>this.supportsDirectDownload?this.props.filename():void 0,onTap:e=>{var i,o;if((o=(i=this.props).triggerLogEvent)==null||o.call(i),this.supportsDirectDownload||!navigator.msSaveOrOpenBlob)return;let t=this.props.data();t&&(navigator.msSaveOrOpenBlob(t,this.props.filename()),e.preventDefault())}},wc.createElement("i",{class:wc.const("dcg-icon-download"),"aria-hidden":wc.const("true")}),wc.createElement("span",null,()=>this.props.text()))}didMountDownload(e){this.downloadLink=e,this.didUpdate()}didUnmountDownload(){this.revokeBlobURL()}didUpdate(){this.updateDownloadURL(),this.cachedObjectURL&&(this.downloadLink.href=this.cachedObjectURL)}updateDownloadURL(){if(this.revokeBlobURL(),!this.supportsDirectDownload)return;let e=this.props.data();e&&(this.cachedObjectURL=URL.createObjectURL(e))}revokeBlobURL(){this.cachedObjectURL&&URL.revokeObjectURL(this.cachedObjectURL)}};function JD(r,e,t=!1){if(t&&(r=r.replace(/ /g,"\\ ")),e==="none")return r;let i=e==="nemeth"?od(r):nd(r);return i.isError?"":vn.toBrailleAscii(i.value)}function CU(r,e){if(e==="none")return"";let t=[];t.push(JD("Expression List",e,!0)),t.push(""),t.push("");for(let i of r.getExpressionOrder()){let o=zX(r.getExpressionIndex(i)+1,e),n=r.getExpressionLatex(i),a=r.getExpressionValue(i);a!==void 0&&(n+=`=${a}`),t.push(`${o} ${JD(n,e,!1)}`)}return t.join(`
`)}function zX(r,e){let t=""+r;return e==="nemeth"?`${JD(t,e,!1)}_4`:e==="ueb"?JD(`${t}.`,e,!1):""}var{If:XD}=Lr.Components,QD=class extends Ot{template(){return Lr.createElement("div",{class:()=>({"dcg-settings-dropdown":!0,"dcg-popover":!0,"dcg-point-left":this.controller.containerSize.height<=420}),role:Lr.const("region"),"aria-label":Lr.const("Settings Menu"),didMount:this.bindFn(this.didMountSettingsDropdown),didUnmount:this.bindFn(this.didUnmountSettingsDropdown)},Lr.createElement("div",{class:Lr.const("dcg-popover-interior")},Lr.createElement("div",{class:()=>({"dcg-settings-menu-option":!0,"dcg-displaysize-container":!0})},Lr.createElement(ri,{ariaGroupLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size"),staticConfig:this.bindFn(this.getProjectorModeOptions)})),Lr.createElement(He,{onChange:this.bindFn(this.onToggleInvertedColors),checked:()=>this.controller.getInvertedColors(),class:this.const("dcg-settings-menu-option dcg-do-not-blur dcg-reverse-contrast")},Lr.createElement("span",{class:Lr.const("dcg-checkbox-label")},()=>this.controller.s("basic-calculator-label-reverse-contrast"))),Lr.createElement(XD,{predicate:()=>this.controller.getBrailleControls()},()=>Lr.createElement("div",null,Lr.createElement(He,{onChange:this.bindFn(this.onToggleBrailleMode),checked:()=>this.controller.renderAsBraille(),class:this.const("dcg-settings-menu-option dcg-do-not-blur dcg-braille-mode")},Lr.createElement("span",{class:Lr.const("dcg-checkbox-label")},()=>this.controller.s("shared-calculator-narration-braille-mode"))),Lr.createElement(XD,{predicate:()=>this.controller.renderAsBraille()},()=>Lr.createElement("div",{class:()=>({"dcg-settings-menu-option":!0,"dcg-braille-container":!0})},Lr.createElement(Pp,{showBrailleNote:this.const(!1),controller:this.props.controller}),Lr.createElement("div",{class:Lr.const("dcg-braille-options-container")},Lr.createElement(XD,{predicate:()=>!_k&&vU()&&this.controller.getBrailleExpressionDownload()},()=>Lr.createElement(Jx,{data:()=>{let e=CU(this.model,this.controller.getBrailleMode());return new Blob([e],{type:"text/plain"})},enabled:this.const(!0),filename:this.const("desmos-equations.brl"),text:()=>this.controller.s("basic-calculator-link-download-braille-equations"),buttonType:this.const("link")}))))))),Lr.createElement(XD,{predicate:()=>!!this.getVersionNumber()},()=>Lr.createElement("div",{class:Lr.const("dcg-version-number")},Lr.const("Version: "),()=>this.getVersionNumber()))))}getProjectorModeOptions(){return[{key:"default",label:()=>"A",ariaLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size-default"),class:()=>"dcg-displaysize-default",selected:()=>!this.getProjectorMode(),onSelect:()=>this.onSelectProjectorModeOption(!1)},{key:"large",label:()=>"A",ariaLabel:()=>this.controller.s("shared-calculator-narration-settings-display-size-large"),class:()=>"dcg-displaysize-large",selected:()=>this.getProjectorMode(),onSelect:()=>this.onSelectProjectorModeOption(!0)}]}onSelectProjectorModeOption(e){this.controller.dispatch({type:"update-projector-mode",mode:e})}getVersionNumber(){let e=window;if(e&&e.AppBridge)return e.AppBridge.versionNumber}didUnmountSettingsDropdown(){W(document).off(".dcg-settings-view")}didMountSettingsDropdown(e){this.settingsGroupNode=e,W(document).on("dcg-tapstart.dcg-settings-view",t=>{t.target.closest(".dcg-basic-settings-container")||this.controller.dispatch({type:"close-settings-menu"})}),W(document).on("keydown.dcg-settings-view",t=>{if(ue(t)==="Esc"&&(this.controller.dispatch({type:"close-settings-menu"}),this.controller.dispatch({type:"focus-last-expression"})),ue(t)==="Tab"&&!t.altKey&&!t.metaKey&&!t.ctrlKey){let i=document.activeElement,o=this.props.settingsButtonNode(),n=[...this.settingsGroupNode.querySelectorAll(".dcg-settings-menu-option")].slice(-1)[0];!t.shiftKey&&i===n?(o.focus(),t.preventDefault(),t.stopPropagation()):t.shiftKey&&i===o&&(n.focus(),t.preventDefault(),t.stopPropagation())}})}onToggleBrailleMode(){this.controller.dispatch({type:"set-braille-mode",mode:this.controller.renderAsBraille()?"none":"nemeth"})}onToggleInvertedColors(){let e=!this.controller.getInvertedColors();this.controller.dispatch({type:"update-inverted-colors",mode:e})}getProjectorMode(){return this.controller.isProjectorMode()}};var{If:UX}=Rs.Components,mf=class extends Ot{template(){let r=this.props.controller();return Rs.createElement("div",{class:Rs.const("dcg-basic-settings-container")},Rs.createElement(fr,{didMount:e=>this.settingsButtonNode=e,command:this.const("settings"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-settings"),onTap:this.bindFn(this.onToggleSettingsMenu),selected:()=>this.controller.isSettingsMenuOpen(),ariaPopup:this.const(!0)},Rs.createElement("i",{class:Rs.const("dcg-icon-wrench"),"aria-hidden":Rs.const("true")})),Rs.createElement(UX,{predicate:()=>this.controller.isSettingsMenuOpen()},()=>Rs.createElement(QD,{controller:this.props.controller,settingsButtonNode:()=>this.settingsButtonNode})))}onToggleSettingsMenu(){this.controller.dispatch({type:"toggle-settings-menu"})}};var{If:Xx,IfElse:qX}=ai.Components,ZD=class extends Ot{template(){let r=this.props.controller();return ai.createElement(es,{controller:this.props.controller},ai.createElement(Xx,{predicate:()=>this.showUndoRedo()},()=>ai.createElement(fr,{command:this.const("undo"),disabled:()=>!r.canUndo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-undo"),onTap:e=>r.dispatch({type:"undo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},ai.createElement("i",{class:ai.const("dcg-icon-undo"),"aria-hidden":ai.const("true")}))),ai.createElement(Xx,{predicate:()=>this.showUndoRedo()},()=>ai.createElement(fr,{command:this.const("redo"),disabled:()=>!r.canRedo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-redo"),onTap:e=>r.dispatch({type:"redo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},ai.createElement("i",{class:ai.const("dcg-icon-redo"),"aria-hidden":ai.const("true")}))),qX(()=>r.shouldShowClear(),{true:()=>ai.createElement(fr,{command:this.const("clear"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear"),onTap:()=>r.dispatch({type:"clear"})},()=>r.s("basic-calculator-button-controlbar-clear")),false:()=>ai.createElement(fr,{command:this.const("clearall"),disabled:()=>!r.canClear(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear-all"),onTap:()=>r.dispatch({type:"set-blank",opts:{allowUndo:!0}})},()=>r.s("basic-calculator-button-controlbar-clear-all"))}),ai.createElement(Xx,{predicate:()=>!this.showUndoRedo()},()=>ai.createElement("div",{class:ai.const("dcg-spacer-2")})),ai.createElement(Xx,{predicate:()=>r.getBrailleMode()==="none"},()=>ai.createElement(fr,{command:this.const("backspace"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-backspace"),disabled:()=>!r.canBackspace(),onTap:()=>r.dispatch({type:"keypad/press-key",key:"Backspace"})},ai.createElement("i",{class:ai.const("dcg-icon-delete"),"aria-hidden":ai.const("true")}))),ai.createElement(Xx,{predicate:()=>this.props.controller().getSettingsMenu()},()=>ai.createElement(mf,{controller:this.props.controller})))}showUndoRedo(){return!(this.controller.getRestrictedEditing()||this.controller.getDisableParentheses())}onToggleSettingsMenu(){this.controller.dispatch({type:"toggle-settings-menu"})}};var Ri=__dcg_shared_module_exports__['e']($());var{If:ek}=Ri.Components,tk=class extends Ot{template(){let r=this.props.controller();return Ri.createElement(es,{controller:this.props.controller},Ri.createElement(ek,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Ri.createElement(fr,{command:this.const("undo"),disabled:()=>!r.canUndo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-undo"),onTap:e=>r.dispatch({type:"undo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Ri.createElement("i",{class:Ri.const("dcg-icon-undo"),"aria-hidden":Ri.const("true")}))),Ri.createElement(ek,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Ri.createElement(fr,{command:this.const("redo"),disabled:()=>!r.canRedo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-redo"),onTap:e=>r.dispatch({type:"redo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Ri.createElement("i",{class:Ri.const("dcg-icon-redo"),"aria-hidden":Ri.const("true")}))),Ri.createElement(fr,{command:this.const("clear"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear"),onTap:()=>r.dispatch({type:"clear"})},()=>r.s("basic-calculator-button-controlbar-clear")),Ri.createElement(ek,{predicate:()=>this.controller.getRestrictedEditing()},()=>Ri.createElement("div",{class:Ri.const("dcg-spacer-2")})),Ri.createElement(ek,{predicate:()=>r.getBrailleMode()==="none"},()=>Ri.createElement(fr,{command:this.const("backspace"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-backspace"),disabled:()=>!r.canBackspace(),onTap:()=>r.dispatch({type:"keypad/press-key",key:"Backspace"})},Ri.createElement("i",{class:Ri.const("dcg-icon-delete"),"aria-hidden":Ri.const("true")}))))}};var Xi=__dcg_shared_module_exports__['e']($());var bl=__dcg_shared_module_exports__['e']($());var Ch=class extends yd{template(){return bl.createElement("div",{class:()=>({"dcg-keypad-control-toggle":!0,"dcg-toggled":this.props.toggled()}),role:bl.const("button"),tabindex:bl.const("0"),"aria-label":this.bindFn(this.getAriaLabel),onTap:this.bindFn(this.handleTap)},bl.createElement("div",{class:bl.const("dcg-ctrl-toggle-option")},this.props.defaultOption),bl.createElement("div",{class:bl.const("dcg-ctrl-toggle-option")},this.props.toggledOption),bl.createElement("div",{class:bl.const("dcg-ctrl-toggle-cover"),style:()=>({background:__dcg_shared_module_exports__['cd'](this.controller.getBackgroundColor(),-.1)})}))}getAriaLabel(){let e={toggled:this.props.toggledAriaLabel(),default:this.props.defaultAriaLabel()};return this.props.toggled()?this.controller.s("shared-calculator-narration-control-toggle-switch-to-default",e):this.controller.s("shared-calculator-narration-control-toggle-switch-to-toggled",e)}handleTap(){this.props.toggled()?ie(this.props.defaultAriaLabel()):ie(this.props.toggledAriaLabel()),this.props.onTap(this.props.command())}};var{If:O1,IfElse:HX}=Xi.Components,rk=class extends Ot{template(){let r=this.props.controller();return Xi.createElement(es,{controller:this.props.controller},Xi.createElement(fr,{command:this.const("main"),selected:()=>r.getKeyboardMode()==="main",disabled:()=>this.controller.renderAsBraille(),ignoreInTabOrder:this.const(!0),selectable:this.const(!0),onTap:()=>r.dispatch({type:"main"}),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-main")},()=>r.s("basic-calculator-button-controlbar-main")),Xi.createElement(fr,{command:this.const("ABC"),selected:()=>["qwerty","capitalQwerty","letters"].indexOf(r.getKeyboardMode())!==-1,disabled:()=>this.controller.renderAsBraille(),ignoreInTabOrder:this.const(!0),selectable:this.const(!0),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-abc"),onTap:()=>r.dispatch({type:"ABC"})},()=>r.s("basic-calculator-button-controlbar-abc")),Xi.createElement(fr,{command:this.const("functions"),selected:()=>["functions","restrictedFunctions"].indexOf(r.getKeyboardMode())!==-1,ariaLabel:()=>r.s("basic-calculator-narration-controlbar-functions"),disabled:()=>this.controller.renderAsBraille(),ignoreInTabOrder:this.const(!0),selectable:this.const(!0),onTap:()=>r.dispatch({type:"functions"})},()=>r.s("basic-calculator-button-controlbar-func")),Xi.createElement(Ch,{command:this.const("degrees"),toggled:()=>this.model.getDegreeMode(),defaultOption:()=>r.s("basic-calculator-label-controlbar-rad"),toggledOption:()=>r.s("basic-calculator-label-controlbar-deg"),defaultAriaLabel:()=>r.s("basic-calculator-narration-controlbar-radians"),toggledAriaLabel:()=>r.s("basic-calculator-narration-controlbar-degrees"),onTap:()=>r.dispatch({type:"degrees"}),controller:this.props.controller}),Xi.createElement(O1,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Xi.createElement(fr,{command:this.const("undo"),disabled:()=>!r.canUndo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-undo"),onTap:e=>r.dispatch({type:"undo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Xi.createElement("i",{class:Xi.const("dcg-icon-undo"),"aria-hidden":Xi.const("true")}))),Xi.createElement(O1,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Xi.createElement(fr,{command:this.const("redo"),disabled:()=>!r.canRedo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-redo"),onTap:e=>r.dispatch({type:"redo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Xi.createElement("i",{class:Xi.const("dcg-icon-redo"),"aria-hidden":Xi.const("true")}))),HX(()=>r.shouldShowClear(),{true:()=>Xi.createElement(fr,{command:this.const("clear"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear"),onTap:()=>r.dispatch({type:"clear"})},()=>r.s("basic-calculator-button-controlbar-clear")),false:()=>Xi.createElement(fr,{command:this.const("clearall"),disabled:()=>!r.canClear(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear-all"),onTap:()=>r.dispatch({type:"set-blank",opts:{allowUndo:!0}})},()=>r.s("basic-calculator-button-controlbar-clear-all"))}),Xi.createElement(O1,{predicate:()=>this.props.controller().getSettingsMenu()},()=>Xi.createElement(mf,{controller:this.props.controller})))}};var Ei=__dcg_shared_module_exports__['e']($());var{If:SU}=Ei.Components,ik=class extends Ot{template(){let r=this.props.controller();return Ei.createElement(es,{controller:this.props.controller},Ei.createElement(Ch,{command:this.const("degrees"),toggled:()=>this.model.getDegreeMode(),defaultOption:()=>r.s("basic-calculator-label-controlbar-rad"),toggledOption:()=>r.s("basic-calculator-label-controlbar-deg"),defaultAriaLabel:()=>r.s("basic-calculator-narration-controlbar-radians"),toggledAriaLabel:()=>r.s("basic-calculator-narration-controlbar-degrees"),onTap:()=>r.dispatch({type:"degrees"}),controller:this.props.controller}),Ei.createElement("div",{class:Ei.const("dcg-spacer")}),Ei.createElement(SU,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Ei.createElement(fr,{command:this.const("undo"),disabled:()=>!r.canUndo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-undo"),onTap:e=>r.dispatch({type:"undo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Ei.createElement("i",{class:Ei.const("dcg-icon-undo"),"aria-hidden":Ei.const("true")}))),Ei.createElement(SU,{predicate:()=>!this.controller.getRestrictedEditing()},()=>Ei.createElement(fr,{command:this.const("redo"),disabled:()=>!r.canRedo(),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-redo"),onTap:e=>r.dispatch({type:"redo",source:e.device==="keyboard"?"button-keyboard":"button-tap"})},Ei.createElement("i",{class:Ei.const("dcg-icon-redo"),"aria-hidden":Ei.const("true")}))),Ei.createElement("div",{class:Ei.const("dcg-spacer")}),Ei.createElement(fr,{narrowButton:this.const(!0),command:this.const("clear"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-clear"),onTap:()=>r.dispatch({type:"clear"})},()=>r.s("basic-calculator-button-controlbar-clear")),Ei.createElement(fr,{narrowButton:this.const(!0),command:this.const("backspace"),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-backspace"),onTap:()=>r.dispatch({type:"keypad/press-key",key:"Backspace"})},Ei.createElement("i",{class:Ei.const("dcg-icon-delete"),"aria-hidden":Ei.const("true")})))}};var Ma=__dcg_shared_module_exports__['e']($());var{Switch:EU}=Ma.Components,Qx=class extends Ot{template(){return Ma.createElement("div",{role:Ma.const("region"),"aria-label":()=>this.s("shared-calculator-narration-keypad")},Ma.createElement(Et,{controller:this.props.controller},Ma.createElement(ge,null,Ma.createElement(EU,{key:this.bindFn(this.getTopLeftButtons)},e=>{switch(e){case"parens":return x(this,"(",{colspan:this.parenColspan()});case"undoredo":return x(this,"undo",{colspan:this.parenColspan(),disabled:()=>!this.controller.canUndo()});case"none":return Pt(this.parenColspan())}}),Ma.createElement(EU,{key:this.bindFn(this.getTopLeftButtons)},e=>{switch(e){case"parens":return x(this,")",{colspan:this.parenColspan()});case"undoredo":return x(this,"redo",{colspan:this.parenColspan(),disabled:()=>!this.controller.canRedo()});case"none":return Pt(this.parenColspan())}}),this.makeAdditionalFunctionKey(0),this.makeAdditionalFunctionKey(1),x(this,"division")),Ma.createElement(ge,null,x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"multiplication")),Ma.createElement(ge,null,x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"-")),Ma.createElement(ge,null,x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"+")),Ma.createElement(ge,null,x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"ans"),x(this,"enter",{style:"blue"}))))}getTopLeftButtons(){return this.showParens()?"parens":this.controller.getRestrictedEditing()?"none":"undoredo"}showParens(){return!this.controller.getDisableParentheses()}parenColspan(){return this.controller.getAdditionalFunctions().length>1?.5:1}makeAdditionalFunctionKey(e){let t=this.controller.getAdditionalFunctions()[e];return t==="exponent"?x(this,"a^b"):t==="percent"?x(this,"%"):t==="sqrt"?x(this,"sqrt"):t==="fraction"?x(this,"a/b"):void 0}};var vc=__dcg_shared_module_exports__['e']($());var Zx=class extends Ot{template(){return vc.createElement("div",{role:vc.const("region"),"aria-label":()=>this.s("shared-calculator-narration-keypad")},vc.createElement(Et,{controller:this.props.controller},vc.createElement(ge,null,x(this,"(",{colspan:this.parenColspan()}),x(this,")",{colspan:this.parenColspan()}),this.makeAdditionalFunctionKey(1)),vc.createElement(ge,null,x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"division")),vc.createElement(ge,null,x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"multiplication")),vc.createElement(ge,null,x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-")),vc.createElement(ge,null,x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight",colspan:this.dotColspan()}),this.makeAdditionalFunctionKey(0),x(this,"+"))))}parenColspan(){return this.controller.getAdditionalFunctions().length===2?1.5:2}dotColspan(){return this.controller.getAdditionalFunctions().length?1:2}makeAdditionalFunctionKey(e){let t=this.controller.getAdditionalFunctions()[e];return t==="exponent"?x(this,"a^b"):t==="percent"?x(this,"%"):t==="sqrt"?x(this,"sqrt"):void 0}};var un=__dcg_shared_module_exports__['e']($());var ew=class extends Ot{template(){return un.createElement(Et,{controller:this.props.controller},un.createElement(ge,null,x(this,"("),x(this,")"),x(this,"x^2"),x(this,"sqrt"),un.createElement("div",{class:un.const("dcg-partition-placeholder")}),x(this,"x^3"),x(this,"x^y"),x(this,"ythroot")),un.createElement(ge,null,x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"division"),un.createElement("div",{class:un.const("dcg-partition-placeholder")}),x(this,"pi"),x(this,"e^x"),x(this,"!")),un.createElement(ge,null,x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"multiplication"),un.createElement("div",{class:un.const("dcg-partition-placeholder")}),x(this,"log"),x(this,"ln"),x(this,"|x|")),un.createElement(ge,null,x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-"),un.createElement("div",{class:un.const("dcg-partition-placeholder")}),x(this,"sin"),x(this,"cos"),x(this,"tan")),un.createElement(ge,null,x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"x/y"),x(this,"+"),un.createElement("div",{class:un.const("dcg-partition-placeholder")}),x(this,"arcsin"),x(this,"arccos"),x(this,"arctan")))}};var Ns=__dcg_shared_module_exports__['e']($());var Di=__dcg_shared_module_exports__['e']($());var{IfElse:WX}=Di.Components,tw=class extends Ot{template(){return Di.createElement(Et,{controller:this.props.controller},Di.createElement(ge,null,x(this,"a^2"),x(this,"a^b"),x(this,"|a|"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"division"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"%"),x(this,"a/b")),Di.createElement(ge,null,x(this,"sqrt"),x(this,"nthroot"),x(this,"pi"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"multiplication"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"left",{style:"highlight"}),x(this,"right",{style:"highlight"})),Di.createElement(ge,null,x(this,"sin"),x(this,"cos"),x(this,"tan"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),Pt(.5),x(this,"backspace",{style:"highlight",colspan:1.5})),Di.createElement(ge,null,x(this,"("),x(this,")"),WX(()=>this.controller.getReplaceCommaWith10Exp(),{true:()=>x(this,"10^n"),false:()=>x(this,",")}),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"ans"),x(this,"+"),Di.createElement("div",{class:Di.const("dcg-partition-placeholder")}),x(this,"enter",{style:"blue",colspan:2})))}};var yl=__dcg_shared_module_exports__['e']($());var rw=class extends Ot{template(){return yl.createElement(Et,{controller:this.props.controller},yl.createElement(ge,null,x(this,"q"),x(this,"w"),x(this,"e"),x(this,"r"),x(this,"t"),x(this,"y"),x(this,"u"),x(this,"i"),x(this,"o"),x(this,"p")),yl.createElement(ge,null,yl.createElement("div",{class:yl.const("dcg-half-width-placeholder")}),x(this,"a"),x(this,"s"),x(this,"d"),x(this,"f"),x(this,"g"),x(this,"h"),x(this,"j"),x(this,"k"),x(this,"l"),yl.createElement("div",{class:yl.const("dcg-half-width-placeholder")})),yl.createElement(ge,null,x(this,"=",{style:"highlight"}),x(this,"z"),x(this,"x"),x(this,"c"),x(this,"v"),x(this,"b"),x(this,"n"),x(this,"m"),x(this,","),x(this,"backspace",{style:"highlight"})),yl.createElement(ge,null,x(this,"shift",{style:"highlight",colspan:1.5}),x(this,"("),x(this,")"),x(this,"["),x(this,"]"),x(this,"!"),x(this,"'"),x(this,"pi"),x(this,"enter",{style:"blue",colspan:1.5})))}};var ff=__dcg_shared_module_exports__['e']($());var iw=class extends Ot{template(){return ff.createElement(Et,{controller:this.props.controller},ff.createElement(ge,null,x(this,"a"),x(this,"b"),x(this,"c"),x(this,"d"),x(this,"e"),x(this,"f"),x(this,"g"),x(this,"h"),x(this,"i"),x(this,"j")),ff.createElement(ge,null,x(this,"k"),x(this,"l"),x(this,"m"),x(this,"n"),x(this,"o"),x(this,"p"),x(this,"q"),x(this,"r"),x(this,"s"),x(this,"t")),ff.createElement(ge,null,x(this,"=",{style:"highlight"}),x(this,","),x(this,"u"),x(this,"v"),x(this,"w"),x(this,"x"),x(this,"y"),x(this,"z"),x(this,"pi"),x(this,"backspace",{style:"highlight"})),ff.createElement(ge,null,x(this,"shift",{style:"highlight",colspan:2}),x(this,"("),x(this,")"),x(this,"["),x(this,"]"),x(this,"!"),x(this,"'"),x(this,"enter",{style:"blue",colspan:2})))}};var xl=__dcg_shared_module_exports__['e']($());var ow=class extends Ot{template(){return xl.createElement(Et,{controller:this.props.controller},xl.createElement(ge,null,x(this,"Q"),x(this,"W"),x(this,"E"),x(this,"R"),x(this,"T"),x(this,"Y"),x(this,"U"),x(this,"I"),x(this,"O"),x(this,"P")),xl.createElement(ge,null,xl.createElement("div",{class:xl.const("dcg-half-width-placeholder")}),x(this,"A"),x(this,"S"),x(this,"D"),x(this,"F"),x(this,"G"),x(this,"H"),x(this,"J"),x(this,"K"),x(this,"L"),xl.createElement("div",{class:xl.const("dcg-half-width-placeholder")})),xl.createElement(ge,null,x(this,"=",{style:"highlight"}),x(this,"Z"),x(this,"X"),x(this,"C"),x(this,"V"),x(this,"B"),x(this,"N"),x(this,"M"),x(this,","),x(this,"backspace",{style:"highlight"})),xl.createElement(ge,null,x(this,"shift",{style:"highlight",colspan:1.5}),x(this,"("),x(this,")"),x(this,"["),x(this,"]"),x(this,"!"),x(this,"'"),x(this,"pi"),x(this,"enter",{style:"blue",colspan:1.5})))}};var bf=__dcg_shared_module_exports__['e']($());var nw=class extends Ot{template(){return bf.createElement(Et,{controller:this.props.controller},bf.createElement(ge,null,x(this,"A"),x(this,"B"),x(this,"C"),x(this,"D"),x(this,"E"),x(this,"F"),x(this,"G"),x(this,"H"),x(this,"I"),x(this,"J")),bf.createElement(ge,null,x(this,"K"),x(this,"L"),x(this,"M"),x(this,"N"),x(this,"O"),x(this,"P"),x(this,"Q"),x(this,"R"),x(this,"S"),x(this,"T")),bf.createElement(ge,null,x(this,"=",{style:"highlight"}),x(this,","),x(this,"U"),x(this,"V"),x(this,"W"),x(this,"X"),x(this,"Y"),x(this,"Z"),x(this,"pi"),x(this,"backspace",{style:"highlight"})),bf.createElement(ge,null,x(this,"shift",{style:"highlight",colspan:2}),x(this,"("),x(this,")"),x(this,"["),x(this,"]"),x(this,"!"),x(this,"'"),x(this,"enter",{style:"blue",colspan:2})))}};var jo=__dcg_shared_module_exports__['e']($());var{IfElse:$X}=jo.Components,aw=class extends Ot{template(){return jo.createElement("div",{class:jo.const("dcg-sci-func-keypad")},jo.createElement(Et,{controller:this.props.controller},jo.createElement(ge,null,x(this,"sin"),x(this,"cos"),x(this,"tan"),jo.createElement("div",{class:jo.const("dcg-partition-placeholder")}),x(this,"a^b"),x(this,"sqrt"),x(this,"nthroot")),jo.createElement(ge,null,x(this,"arcsin"),x(this,"arccos"),x(this,"arctan"),jo.createElement("div",{class:jo.const("dcg-partition-placeholder")}),x(this,"e^x"),x(this,"abs"),$X(()=>this.controller.getReplaceRoundWithReciprocal(),{true:()=>x(this,"a^{-1}"),false:()=>x(this,"round")})),jo.createElement(ge,null,x(this,"mean"),x(this,"stdev"),x(this,"stdevp"),jo.createElement("div",{class:jo.const("dcg-partition-placeholder")}),x(this,"ln"),x(this,"log"),x(this,"backspace",{style:"highlight"})),jo.createElement(ge,null,x(this,"nPr"),x(this,"nCr"),x(this,"!"),jo.createElement("div",{class:jo.const("dcg-partition-placeholder")}),x(this,"e"),x(this,"pi"),x(this,"enter",{style:"blue"}))))}};var{SwitchUnion:YX}=Ns.Components,sw=class extends Ot{template(){return Ns.createElement("div",{role:Ns.const("region"),"aria-label":()=>this.s("shared-calculator-narration-keypad")},YX(()=>this.controller.getKeyboardMode(),{qwerty:()=>Ns.createElement(rw,{controller:this.props.controller}),letters:()=>Ns.createElement(iw,{controller:this.props.controller}),capitalQwerty:()=>Ns.createElement(ow,{controller:this.props.controller}),capitalLetters:()=>Ns.createElement(nw,{controller:this.props.controller}),functions:()=>Ns.createElement(aw,{controller:this.props.controller}),main:()=>Ns.createElement(tw,{controller:this.props.controller})}))}};var Or=__dcg_shared_module_exports__['e']($());var ua=__dcg_shared_module_exports__['e']($());var{For:jX}=ua.Components,yf=class extends ua.Class{template(){return ua.createElement("tr",null,ua.createElement(jX,{each:()=>this.getBrailleAscii(this.props.latex()),key:e=>e.key},ua.createElement("td",null,e=>ua.createElement("span",{class:ua.const("dcg-key-press")},()=>e.char))),ua.createElement("td",{class:ua.const("dcg-braille-font")},()=>this.getBrailleUnicode(this.props.latex())),ua.createElement("td",null,ua.createElement(ke,{config:this.const({}),latex:()=>this.props.latex()})))}getBrailleAscii(e){let t=vn.toExpandedBrailleAscii(this.getBrailleUnicode(e)),i=[];for(let o=0;o<t.length;o++)i.push({char:t[o],key:o+")"+t[o]});return i}getBrailleUnicode(e){let t;return this.props.brailleMode()==="nemeth"?t=od(e):this.props.brailleMode()==="ueb"&&(t=nd(e)),t&&t.value?t.value:""}};var Sh=class extends Ot{template(){return Or.createElement("div",{class:()=>({"dcg-braille-io-keypad-container":!0,"dcg-has-background-color":this.controller.hasBackgroundColor()})},Or.createElement("div",{class:Or.const("dcg-braille-io-keypad")},Or.createElement("div",{class:Or.const("dcg-braille-description")},Or.createElement("div",{class:Or.const("dcg-braille-title")},()=>this.controller.s("basic-calculator-text-braille-mode-is-on",{mode:this.brailleType()})),Or.createElement("div",{class:Or.const("dcg-braille-info-text")},()=>this.controller.s("basic-calculator-text-how-to-type-braille")),Or.createElement("div",{class:Or.const("dcg-btn-primary"),role:Or.const("button"),tabindex:Or.const(0),onTap:()=>this.controller.dispatch({type:"set-braille-mode",mode:"none"})},()=>this.controller.s("basic-calculator-button-turn-braille-mode-off",{mode:this.brailleType()}))),Or.createElement("div",{class:Or.const("dcg-braille-examples-table-container")},Or.createElement("table",{class:Or.const("dcg-braille-examples-table")},Or.createElement("tr",null,Or.createElement("th",null,()=>this.controller.s("basic-calculator-heading-braille-table-type-this")),Or.createElement("th",null,()=>this.brailleType()),Or.createElement("th",null,()=>this.controller.s("basic-calculator-heading-braille-table-typeset"))),Or.createElement(yf,{brailleMode:()=>this.controller.getBrailleMode(),latex:this.const("2+2")}),Or.createElement(yf,{brailleMode:()=>this.controller.getBrailleMode(),latex:this.const("\\frac{1}{2}")}),Or.createElement(yf,{brailleMode:()=>this.controller.getBrailleMode(),latex:this.const("\\sqrt{4}")})),Or.createElement("div",{class:Or.const("dcg-more-examples-link")},Or.createElement("a",{href:()=>"https://www.desmos.com/braille-examples?"+this.controller.getBrailleMode(),target:Or.const("_blank")},()=>this.controller.s("basic-calculator-link-view-braille-examples"))))))}brailleType(){return this.controller.getBrailleMode()==="nemeth"?"Nemeth":this.controller.getBrailleMode()==="ueb"?"UEB":""}};var En=__dcg_shared_module_exports__['e']($());var ot=__dcg_shared_module_exports__['e']($());var{If:vd,Input:JX,Textarea:XX}=ot.Components,lw=class extends Ot{constructor(){super(...arguments),this.lastBrailleModeDuringFocusChange="none"}getAriaLabel(){let e=this.getIndex()+1+"";return this.s("shared-calculator-narration-expression-index",{index:e})}didUpdate(){this.renderAnsValue()}didMountMQ(e){this.mq=e}getExp(){return this.model.getExpressionById(this.props.id())}getAns(){return this.model.getExpressionAns(this.props.id())}getAnsId(){return this.model.getExpressionAnsId(this.props.id())}getLatex(){return this.getExp().latex}getValue(){return this.model.getExpressionValue(this.props.id())}getBraille(){let e=this.getExp().braille;if(e!=="")return e;{let t=Vm(this.getLatex(),this.controller.getBrailleMode());return t.isError?"":vn.toExpandedBrailleAscii(t.value)}}getIndex(){return this.model.getExpressionIndex(this.props.id())}getShowEvaluation(){return this.model.shouldShowEvaluationForExpression(this.props.id())}isFractionEvaluation(){return this.getExp().displayAsFraction}canDisplayEvaluationAsFraction(){return this.controller.getDecimalToFraction()&&this.model.canDisplayEvaluationAsFraction(this.props.id())}shouldDisplayEvaluationAsFraction(){return this.canDisplayEvaluationAsFraction()&&this.getExp().displayAsFraction}toggleFractionEvaluation(){this.dispatch({type:"toggle-fraction-evaluation",id:this.props.id()})}getFractionDisplayAriaLabel(){return this.shouldDisplayEvaluationAsFraction()?this.controller.s("basic-calculator-narration-convert-to-decimal"):this.controller.s("basic-calculator-narration-convert-to-fraction")}getError(){let e=this.model.getExpressionError(this.props.id());return e&&this.getLatex().length>0?Wd(e,this.controller.getLanguage()):""}showError(){return!!this.getError()}getFractionMessage(){return this.shouldDisplayEvaluationAsFraction()?this.s("basic-calculator-label-convert-to-decimal"):this.s("basic-calculator-label-convert-to-fraction")}getIsFocused(){return!this.controller.isSettingsMenuOpen()&&this.model.isExpressionFocused(this.props.id())}onFocusedChanged(e){let t=this.controller.getBrailleMode(),i=t!==this.lastBrailleModeDuringFocusChange;this.lastBrailleModeDuringFocusChange=t,!(!this.getExp()||i)&&(e?this.dispatch({type:"focusin",id:this.props.id()}):this.dispatch({type:"focusout",id:this.props.id()}))}onMQReflow(){this.renderedAnsData=void 0,this.renderAnsValue()}renderAnsValue(){if(!this.mq)return;let e=this.getAns(),t=!1,i=this.getAnsId();if(i){let o=this.model.getExpressionById(i);t=o&&o.displayAsFraction}this.renderedAnsData&&this.renderedAnsData.value==e&&this.renderedAnsData.displayAsFraction===t||(this.renderedAnsData={value:e,displayAsFraction:t},this.mq.querySelectorAll(".dcg-mq-ans").forEach(o=>{let n=o,a;typeof e=="number"?a=__dcg_shared_module_exports__['$a'](e,{digits:this.getEvaluationDigits(),bigCutoff:1e9,displayAsFraction:t}):typeof e=="string"&&(a=e),a?(n.classList.remove("dcg-invalid"),n.innerHTML=a):(n.classList.add("dcg-invalid"),n.innerHTML='<i class="dcg-icon-error" aria-hidden="true"></i>')}))}getEvaluationLatex(){let e=this.getValue();if(e===void 0&&(e=NaN),this.model.isRationalizableConstant(this.props.id())&&!this.shouldDisplayEvaluationAsFraction())return"";let t;if(Array.isArray(e))t=`\\mathrm{${e.length}\\ element\\ list}`;else{var i=__dcg_shared_module_exports__['ab'](e,{digits:this.getEvaluationDigits(),bigCutoff:1e9,displayAsFraction:this.shouldDisplayEvaluationAsFraction()});return i==="undefined"?"=\\mathrm{undefined}":"="+i}return t}getEvaluationBraille(){let e=this.getEvaluationLatex(),t=Vm(e,this.controller.getBrailleMode());return t.isError?"":vn.toExpandedBrailleAscii(t.value)}didMountBrailleInput(e){this.brailleInputNode=e}didUnmountBrailleInput(){this.brailleInputNode=void 0}handleBrailleFocus(e){let t=e.target;t&&setTimeout(this.bindIfMounted(()=>{t.setSelectionRange(0,0)}))}handleBrailleKeydown(e){!e.altKey&&!e.ctrlKey&&!e.metaKey&&!e.shiftKey&&(ue(e)===rn?(this.forceModelFocus(),this.dispatch({type:"focus-prev-expression"}),e.preventDefault()):ue(e)===wn?(this.forceModelFocus(),this.dispatch({type:"focus-next-expression"}),e.preventDefault()):ue(e)===qa?(this.forceModelFocus(),this.dispatch({type:"insert-blank-expression"}),e.preventDefault()):ue(e)===Ss&&document.activeElement===this.brailleInputNode&&this.getBraille()===""&&(this.dispatch({type:"backspace-from-braille"}),e.preventDefault()))}forceModelFocus(){document.activeElement!==this.brailleInputNode&&this.onFocusedChanged(!0)}focusBrailleInput(){this.brailleInputNode&&document.activeElement!==this.brailleInputNode&&this.brailleInputNode.focus()}getPostLabel(){if(this.showError())return this.getError();if(this.getShowEvaluation()){let e=this.getValue();return e===void 0&&(e=NaN),Array.isArray(e)?`${e.length} element list`:"equals "+uo(__dcg_shared_module_exports__['ab'](e,{digits:this.getEvaluationDigits(),bigCutoff:1e9,displayAsFraction:this.shouldDisplayEvaluationAsFraction()}))}return""}onBrailleInput(e){this.controller.isSettingsMenuOpen()&&this.controller.dispatch({type:"close-settings-menu"});let t=n0(vn.coerceToSixDotCells(e),this.controller.getBrailleMode()),i=t.isError?"":t.value;(!this.controller.getCapExpressionSize()||nm(i)<=am)&&this.controller.dispatch({type:"update-latex-from-braille",latex:i,braille:e,id:this.props.id()})}getIndexSubscript(){return`_{${this.getIndex()+1}}`}getEvaluationDigits(){return this.controller.isScientificCalc()?10:7}onMountContainer(e){this.containerNode=e}onTapContainer(e){e.target===this.containerNode&&!this.getShowEvaluation()&&!this.showError()&&this.forceModelFocus()}template(){return ot.createElement("div",{class:()=>({"dcg-basic-expression":!0,"dcg-focused":this.getIsFocused(),"dcg-braille-io":this.controller.renderAsBraille()}),onTap:this.bindFn(this.onTapContainer),onMount:this.bindFn(this.onMountContainer)},ot.createElement(vd,{predicate:()=>this.controller.renderAsBraille()},()=>ot.createElement("div",{class:ot.const("dcg-braille-input")},ot.createElement(Ju,{ariaLabel:()=>{let e=Vm(`eq${this.getIndexSubscript()}`,this.controller.getBrailleMode());return e.isError?"":vn.toExpandedBrailleAscii(e.value)},didMount:this.bindFn(this.didMountBrailleInput),didUnmount:this.bindFn(this.didUnmountBrailleInput),onFocusedChanged:this.bindFn(this.onFocusedChanged),shouldFocus:this.bindFn(this.getIsFocused),onKeydown:this.bindFn(this.handleBrailleKeydown),onInput:this.bindFn(this.onBrailleInput),sixKeyInput:()=>this.controller.getSixKeyInput(),value:()=>this.getBraille(),isStatic:this.const(!1)}))),ot.createElement(vd,{predicate:()=>this.controller.renderAsBraille()},()=>ot.createElement("div",{class:ot.const("dcg-braille-evaluation-container")},ot.createElement(vd,{predicate:()=>this.getShowEvaluation()},()=>ot.createElement("div",{class:ot.const("dcg-braille-evaluation")},ot.createElement(JX,{readonly:this.const("true"),class:this.const("dcg-braille-evaluation-inner"),value:()=>this.getEvaluationBraille(),onFocus:this.bindFn(this.handleBrailleFocus),onKeydown:this.bindFn(this.handleBrailleKeydown),onInput:()=>{}}))),ot.createElement(vd,{predicate:()=>this.showError()},()=>ot.createElement("div",{class:ot.const("dcg-braille-error")},ot.createElement("div",{class:ot.const("dcg-basic-expression-error")},ot.createElement("i",{class:ot.const("dcg-icon-error"),"aria-hidden":ot.const("true")})),ot.createElement(XX,{readonly:this.const("true"),class:this.const("dcg-braille-error-inner"),value:()=>this.getError(),onFocus:this.bindFn(this.handleBrailleFocus),onKeydown:this.bindFn(this.handleBrailleKeydown),onInput:()=>{}}))))),ot.createElement(vd,{predicate:()=>this.controller.renderAsBraille()},()=>ot.createElement("div",{class:ot.const("dcg-exp-mathquill-container"),didMount:this.bindFn(this.didMountMQ),onTap:this.bindFn(this.forceModelFocus)},ot.createElement(ke,{latex:()=>this.getLatex(),config:this.const({}),onReflow:this.bindFn(this.onMQReflow)}))),ot.createElement(vd,{predicate:()=>!this.controller.renderAsBraille()},()=>ot.createElement("div",{class:ot.const("dcg-exp-mathquill-container"),didMount:this.bindFn(this.didMountMQ)},ot.createElement(ve,{latex:()=>this.getLatex(),onReflow:this.bindFn(this.onMQReflow),isFocused:this.bindFn(this.getIsFocused),capExpressionSize:()=>this.controller.getCapExpressionSize(),config:this.bindFn(this.getMQConfig),getAriaLabel:()=>this.getAriaLabel(),getAriaPostLabel:()=>this.getPostLabel(),hasError:()=>!1,onUserPressedKey:(e,t)=>{this.controller.isSettingsMenuOpen()&&this.controller.dispatch({type:"close-settings-menu"}),this.dispatch({type:"keypad/press-key",key:e,evt:t})},onUserTypedText:e=>this.dispatch({type:"keypad/type-text",text:e}),onUserChangedLatex:e=>{this.dispatch({type:"update-latex",id:this.props.id(),latex:e})},onFocusedChanged:this.bindFn(this.onFocusedChanged),disableSpace:()=>this.controller.getRestrictedEditing()}))),ot.createElement("div",{class:ot.const("dcg-exp-output-container")},ot.createElement(vd,{predicate:()=>this.showError()&&!this.controller.renderAsBraille()},()=>ot.createElement(Ce,{tooltip:this.bindFn(this.getError),gravity:this.const("w"),sticky:this.const(!0)},ot.createElement("div",{class:ot.const("dcg-basic-expression-error")},ot.createElement("i",{class:ot.const("dcg-icon-error"),"aria-hidden":ot.const("true")})))),ot.createElement(vd,{predicate:()=>this.getShowEvaluation()},()=>ot.createElement("div",{class:()=>({"dcg-basic-expression-value":!0,"dcg-basic-evaluation-gray":Array.isArray(this.getValue())})},ot.createElement(ke,{config:this.const({}),latex:()=>this.getEvaluationLatex()}),ot.createElement(vd,{predicate:this.bindFn(this.canDisplayEvaluationAsFraction)},()=>ot.createElement(Ce,{tooltip:this.bindFn(this.getFractionMessage),gravity:this.const("s")},ot.createElement("span",{role:ot.const("button"),tabindex:ot.const("0"),"aria-label":this.bindFn(this.getFractionDisplayAriaLabel),class:()=>({"dcg-basic-fraction-toggle":!0,"dcg-selected":this.isFractionEvaluation()}),onTap:this.bindFn(this.toggleFractionEvaluation)},ot.createElement("i",{class:ot.const("dcg-icon-fraction"),"aria-hidden":ot.const("true")}))))))))}getMQConfig(){return this.controller.getMathquillConfig()}};kt();var{For:QX,If:ZX}=En.Components,cw=class extends Ot{constructor(){super(...arguments),this.didShowAnswerHint=!1,this.didHideAnswerHint=!1}template(){return En.createElement("div",{class:En.const("dcg-basic-list-container"),role:En.const("region"),"aria-label":()=>this.controller.s("shared-calculator-narration-expression-list"),didMount:this.bindFn(this.didMountContainer)},En.createElement("div",{class:En.const("dcg-basic-list-placeholder"),didMount:this.bindFn(this.didMountPlaceholder)},En.createElement(ZX,{predicate:this.bindFn(this.showAnswerHint)},()=>En.createElement("div",{class:En.const("dcg-answer-hint")},()=>this.controller.s("basic-calculator-label-answer-hint"),En.createElement("i",{class:En.const("dcg-icon-curved-arrow")})))),En.createElement(QX,{each:()=>this.model.getExpressionOrder()},En.createElement("div",{class:()=>({"dcg-basic-list":!0,"dcg-projector-mode":this.controller.isProjectorMode()})},e=>En.createElement(lw,{controller:this.props.controller,id:this.const(e)}))))}didMountPlaceholder(e){W(e).on("dcg-tap",Pr)}showAnswerHint(){if(this.didHideAnswerHint)return!1;let e=this.model.getExpressionOrder()[0];return this.model.shouldShowEvaluationForExpression(e)||this.didShowAnswerHint?(this.didShowAnswerHint=!0,this.model.getNumberOfExpressions()>1||this.model.getExpressionLatex(e)===""?(this.didHideAnswerHint=!0,!1):!0):!1}didUpdate(){if(!this.container)return;let e=this.container.querySelector(".dcg-focused");e&&Qs(e,this.container,50)}didMountContainer(e){this.container=e}};var{If:dw,IfElse:ok}=Bt.Components,pw=class extends Ot{template(){return Bt.createElement(dw,{predicate:()=>this.controller.shouldRender()},()=>Bt.createElement("div",{class:Bt.const("dcg-calculator-api-container"),style:Bt.const("width: 100%; height: 100%; position: relative;")},Bt.createElement("div",{class:()=>({"dcg-calc-basic-main-wrapper":!0,"dcg-narrow":this.controller.containerSize.width<570,"dcg-short":this.controller.containerSize.height<=540,"dcg-scientific-calculator":this.controller.isScientificCalc(),"dcg-four-function-calculator":this.controller.isFourFunctionCalc(),"dcg-container":!0}),onKeydown:this.bindFn(this.handleRootKeydown),didMount:this.bindFn(this.didMountRoot),"x-ms-format-detection":Bt.const("none"),style:()=>({"--dcg-custom-background-color":this.controller.hasBackgroundColor()?this.controller.getBackgroundColor():void 0,"--dcg-custom-text-color":this.controller.hasTextColor()?this.controller.getTextColor():void 0})},Bt.createElement("div",{role:Bt.const("application"),"aria-label":()=>this.controller.isScientificCalc()?this.controller.s("basic-calculator-narration-calc-description-scientific"):this.controller.isFourFunctionCalc()?this.controller.s("basic-calculator-narration-calc-description-fourfunction"):"",class:()=>({"dcg-calc-basic-main":!0,"dcg-inverted-colors":this.controller.getInvertedColors(),"dcg-projector-mode":this.controller.isProjectorMode(),"dcg-ipad":La,"dcg-has-background-color":this.controller.hasBackgroundColor(),"dcg-no-hyperlinks":!this.controller.getAllowLinks()}),style:()=>({"font-size":`${this.controller.getFontSize()}px`,filter:this.controller.getInvertedColors()?"invert(100%)":"none"})},Bt.createElement(cw,{controller:this.props.controller}),Bt.createElement(dw,{predicate:()=>this.controller.isScientificCalc()&&this.model.isSingleExpression()},()=>Bt.createElement("div",null,Bt.createElement(ik,{controller:this.props.controller}),Bt.createElement("div",{class:Bt.const("dcg-basic-keypad-container")},ok(()=>this.controller.renderAsBraille(),{true:()=>Bt.createElement(Sh,{controller:this.props.controller}),false:()=>Bt.createElement(ew,{controller:this.props.controller})})))),Bt.createElement(dw,{predicate:()=>this.controller.isScientificCalc()&&!this.model.isSingleExpression()},()=>Bt.createElement("div",null,Bt.createElement(rk,{controller:this.props.controller}),Bt.createElement("div",{class:Bt.const("dcg-basic-keypad-container")},ok(()=>this.controller.renderAsBraille(),{true:()=>Bt.createElement(Sh,{controller:this.props.controller}),false:()=>Bt.createElement(sw,{controller:this.props.controller})})))),Bt.createElement(dw,{predicate:()=>this.controller.isFourFunctionCalc()&&this.model.isSingleExpression()},()=>Bt.createElement("div",null,Bt.createElement(tk,{controller:this.props.controller}),Bt.createElement("div",{class:Bt.const("dcg-basic-keypad-container")},ok(()=>this.controller.renderAsBraille(),{true:()=>Bt.createElement(Sh,{controller:this.props.controller}),false:()=>Bt.createElement(Zx,{controller:this.props.controller})})))),Bt.createElement(dw,{predicate:()=>this.controller.isFourFunctionCalc()&&!this.model.isSingleExpression()},()=>Bt.createElement("div",null,Bt.createElement(ZD,{controller:this.props.controller}),Bt.createElement("div",{class:Bt.const("dcg-basic-keypad-container")},ok(()=>this.controller.renderAsBraille(),{true:()=>Bt.createElement(Sh,{controller:this.props.controller}),false:()=>Bt.createElement(Qx,{controller:this.props.controller})}))))))))}didMountRoot(e){Iu(e)}handleRootKeydown(e){let t=Ai(e),i=this.controller.model;if(Wb(e))return this.dispatch({type:"undo",source:"keyboard-shortcut"}),!1;if($b(e))return this.dispatch({type:"redo",source:"keyboard-shortcut"}),!1;if(e.altKey!==xi&&e.metaKey===xi&&!e.ctrlKey&&e.shiftKey&&t==="A"&&this.controller.getDecimalToFraction()){let o=i.getFocusedExpression();o&&i.canDisplayEvaluationAsFraction(o.id)&&(e.preventDefault(),e.stopPropagation(),this.controller.dispatch({type:"toggle-fraction-evaluation",id:o.id}),this.controller.runAfterDispatch(()=>{i.getFocusedExpression().displayAsFraction?ie(this.controller.s("shared-calculator-narration-show-as-fraction")):ie(this.controller.s("shared-calculator-narration-show-as-decimal"))}))}else if(!e.metaKey&&!e.shiftKey){if(!e.ctrlKey&&!e.altKey&&ue(e)===Ss){if(!document.activeElement||ip(document.activeElement))return!1}else if(e.ctrlKey===xi&&e.altKey===!xi){if(t==="N")return this.controller.getBrailleControls()?(this.dispatch({type:"set-braille-mode",mode:"nemeth"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-nemeth")),!1):void 0;if(t==="U")return this.controller.getBrailleControls()?(this.dispatch({type:"set-braille-mode",mode:"ueb"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-ueb")),!1):void 0;if(t==="Q"||t==="X")return this.controller.getBrailleControls()?(this.dispatch({type:"set-braille-mode",mode:"none"}),ie(this.controller.s("shared-calculator-narration-hotkey-braille-mode-off")),!1):void 0;if(t==="6"){if(!this.controller.getBrailleControls())return;let o=!this.controller.getSixKeyInput();return this.dispatch({type:"set-six-key-input",useSixKeyInput:o}),ie(o?this.controller.s("basic-calculator-narration-hotkey-six-key-input-on"):this.controller.s("basic-calculator-narration-hotkey-six-key-input-off")),!1}else if(t==="D")return this.controller.isScientificCalc()?(e.preventDefault(),this.controller.dispatch({type:"degrees"}),ie(i.getDegreeMode()?this.controller.s("basic-calculator-narration-controlbar-degrees"):this.controller.s("basic-calculator-narration-controlbar-radians")),!1):void 0}}return!0}};var xf=class extends wh{constructor(e){super(e)}init(e){e=__dcg_shared_module_exports__['i'](e),e.backgroundColor&&!__dcg_shared_module_exports__['bd'](e.backgroundColor)&&(__dcg_shared_module_exports__['pd'].warn("Invalid backgroundColor. Background color must be a 3- or 6-character hex color (e.g. #cde or #ffaaaa)"),delete e.backgroundColor),e.textColor&&!__dcg_shared_module_exports__['bd'](e.textColor)&&(__dcg_shared_module_exports__['pd'].warn("Invalid textColor. Text color must be a 3- or 6-character hex color (e.g. #000 or #001111)"),delete e.textColor);let t={language:"en",qwertyKeyboard:!0,links:!0,degreeMode:!1,settingsMenu:!0,invertedColors:!1,backgroundColor:"#fff",textColor:"#000",brailleMode:"none",sixKeyInput:!1,brailleControls:!0,brailleExpressionDownload:!0,projectorMode:!1,capExpressionSize:!1,functionDefinition:!0,autosize:!0,evaluationMode:"scientific",restrictedEditing:!1,additionalFunctions:["sqrt"],disableParentheses:!1,typingSlashWritesDivisionSymbol:!1,typingAsteriskWritesTimesSymbol:!1,decimalToFraction:!0,replaceCommaWith10Exp:!1,replaceRoundWithReciprocal:!1,...e};this.settings=new ti;let i={workerPool:pf,settingsProxy:this.settings};this.controller=new jx(t,i),this.controller.onEventEmitted=o=>{o==="render"&&this.updateView(),this.triggerEvent(o,void 0)},this.setupDomChangeDetector(t.autosize)}onCreateView(){return wf.mountToNode(pw,this.rootElt,{controller:wf.const(this.controller)})}setState(e,t){t||(t={}),this.controller.dispatch({type:"set-state-from-api",state:e,opts:{allowUndo:!!t.allowUndo}})}getState(){return __dcg_shared_module_exports__['i'](this.controller.model.getPersistedState())}undo(){this.controller.dispatch({type:"undo",source:"api"})}redo(){this.controller.dispatch({type:"redo",source:"api"})}clearHistory(){this.controller.dispatch({type:"clear-history"})}setBlank(e){e||(e={}),this.controller.dispatch({type:"set-blank",opts:{allowUndo:!!e.allowUndo}})}updateSettings(e){if(e!=null)for(let t in e)switch(t){case"fontSize":let i=e[t];if(i===void 0)continue;this.controller.dispatch({type:"update-font-size",size:i});break;case"invertedColors":let o=e[t];if(o===void 0)continue;this.controller.dispatch({type:"update-inverted-colors",mode:o});break;case"backgroundColor":let n=e[t];if(n===void 0||!__dcg_shared_module_exports__['bd'](n)){__dcg_shared_module_exports__['pd'].warn("Invalid backgroundColor. Background color must be a 3- or 6-character hex color (e.g. #cde or #ffaaaa)");continue}this.controller.dispatch({type:"update-background-color",color:n});break;case"textColor":let a=e[t];if(a===void 0||!__dcg_shared_module_exports__['bd'](a)){__dcg_shared_module_exports__['pd'].warn("Invalid textColor. Text color must be a 3- or 6-character hex color (e.g. #000 or #001111)");continue}this.controller.dispatch({type:"update-text-color",color:a});break;case"degreeMode":let s=e[t];if(s===void 0)continue;this.controller.dispatch({type:"update-degree-mode",mode:s});break;case"brailleMode":let l=e[t];this.controller.dispatch({type:"set-braille-mode",mode:l});break;case"sixKeyInput":let c=e[t];if(c===void 0)continue;this.controller.dispatch({type:"set-six-key-input",useSixKeyInput:c});break;case"brailleControls":{let I=e[t];if(I===void 0)continue;this.controller.dispatch({type:"set-braille-controls",value:I});break}case"brailleExpressionDownload":let d=e[t];if(d===void 0)continue;this.controller.dispatch({type:"set-braille-expression-download",mode:d});break;case"projectorMode":let u=e[t];if(u===void 0)continue;this.controller.dispatch({type:"update-projector-mode",mode:u});break;case"capExpressionSize":let h=e[t];if(h===void 0)continue;this.controller.dispatch({type:"update-cap-expression-size",mode:h});break;case"language":let g=e[t];if(g===void 0)continue;this.controller.dispatch({type:"update-language",language:xc(g)});break;case"settingsMenu":e.settingsMenu?this.controller.dispatch({type:"enable-settings-menu"}):this.controller.dispatch({type:"disable-settings-menu"});break;case"qwertyKeyboard":{this.controller.dispatch({type:"update-options",options:{qwertyKeyboard:!!e.qwertyKeyboard}});let I=this.controller.getKeyboardMode();(I==="qwerty"||I==="letters")&&this.controller.dispatch({type:"ABC"})}break;case"functionDefinition":e.functionDefinition?this.controller.model.enableFunctionDefinition():this.controller.model.disableFunctionDefinition();break;case"links":this.controller.dispatch({type:"update-options",options:{links:!!e.links}});break;case"decimalToFraction":let b=e[t];if(b===void 0)continue;this.controller.dispatch({type:"update-decimal-to-fraction",mode:b});break;case"replaceCommaWith10Exp":let C=e[t];if(C===void 0)continue;this.controller.dispatch({type:"set-replace-comma-with-10-exp",replace:C});break;case"replaceRoundWithReciprocal":let S=e[t];if(S===void 0)continue;this.controller.dispatch({type:"set-replace-round-with-reciprocal",replace:S});break;case"restrictedEditing":{this.controller.dispatch({type:"update-options",options:{restrictedEditing:!!e.restrictedEditing}});break}case"typingAsteriskWritesTimesSymbol":let k=e[t];if(k===void 0)continue;this.controller.dispatch({type:"set-typing-asterisk-writes-times-symbol",mode:k});break}}focusFirstExpression(){this.controller.dispatch({type:"focus-first-expression"})}onResizeView(e){this.controller.dispatch({type:"ui/container-resized",size:e})}onDestroyView(){wf.unmountFromNode(this.rootElt)}destroy(){this.controller.model.destroy(),super.destroy()}};var vf=class extends xf{constructor(e,t){super(e),this.init(eQ(t||{}))}};function eQ(r){if(r=__dcg_shared_module_exports__['i'](r),r.hasOwnProperty("typingSlashWritesDivisionSymbol")||(r.typingSlashWritesDivisionSymbol=!0),r.hasOwnProperty("typingAsteriskWritesTimesSymbol")||(r.typingAsteriskWritesTimesSymbol=!0),r.exponentButtonForSquareRoot&&(__dcg_shared_module_exports__['pd'].warn(`As of API version 1.0, the 'exponentButtonForSquareRoot' option is deprecated.Use 'additionalFunctions: "exponent"' instead.`),r.additionalFunctions=["exponent"]),r.additionalFunctions){var e=r.additionalFunctions;typeof e=="string"&&(e=[e]),e.length>2&&(__dcg_shared_module_exports__['pd'].warn("additionalFunctions can only take up to 2 new functions. Using the first two."),e=e.slice(0,2));let i=!0;for(var t=0;t<e.length;t++)["sqrt","exponent","percent","fraction"].indexOf(e[t])===-1&&(__dcg_shared_module_exports__['pd'].warn("Unrecognized value: '"+e[t]+`' for 'additionalFunction'. Valid values are 'sqrt', 'percent', 'exponent', or 'fraction'. Using default ("sqrt")`),i=!1);r.additionalFunctions=i?e:["sqrt"]}return(!r.additionalFunctions||!r.additionalFunctions.length)&&(r.additionalFunctions=["sqrt"]),r.singleExpression?(r.evaluationMode="singleExpressionFourFunction",r.disableParentheses&&(delete r.disableParentheses,__dcg_shared_module_exports__['pd'].warn("Incompatible options: singleExpression can't be used in combination with disableParentheses. Ignoring disableParentheses."))):r.evaluationMode="fourFunction",delete r.singleExpression,r.hasOwnProperty("decimalToFraction")||(r.decimalToFraction=!1),r.language&&(r.language=xc(r.language)),r}var Cf=class extends xf{constructor(e,t){super(e),this.init(tQ(t||{}))}};function tQ(r){return r=__dcg_shared_module_exports__['i'](r),r.singleExpression?r.evaluationMode="singleExpressionScientific":r.evaluationMode="scientific",delete r.singleExpression,r.language&&(r.language=xc(r.language)),r}var Ef=__dcg_shared_module_exports__['e']($());var uw=class{constructor(e){this.keypadType="scientific";this.projectorMode="none";this.scientificKeyboardMode="main";this.dispatcher=new Cp;this.s=Hl(()=>"en");this.dispatch=e=>{this.dispatcher.dispatch(e);let t;for(;t=this._queuedCallbacks.shift();)t()};this._queuedCallbacks=[];var t,i;this.keypadType=(t=e==null?void 0:e.keypadType)!=null?t:"scientific",this.projectorMode=(i=e==null?void 0:e.projectorMode)!=null?i:"none",this.dispatcher=new Cp,this.hookUpDispatcher()}getBackgroundColor(){return"does-not-matter"}runAfterDispatch(e){this._queuedCallbacks.push(e)}enqueueEvent(e){this.runAfterDispatch(()=>{this.onEventEmitted&&this.onEventEmitted(e)})}getKeypadType(){return this.keypadType}getProjectorMode(){return this.projectorMode}getScientificKeyboardMode(){return this.scientificKeyboardMode}updateKeyboardMode(e){this.scientificKeyboardMode=e}typeIntoFocusedMathquill(e){e=e.replace(/\r|\n/g,"");let t=this.activeMQ;t&&(t.typedText(e),ve.simulateUserChangedLatex(t))}pressKeyInFocusedMathquill(e,t){let i=this.activeMQ;if(i){if(e==="Enter"){t&&(t.preventDefault(),t.stopPropagation()),this.enqueueEvent("enter");return}i.keystroke(e,t)}}executeCommandInFocusedMathquill(e){let t=this.activeMQ;t&&Gm(t,e,{capExpressionSize:!1})}hookUpDispatcher(){this.dispatcher.register(e=>{switch(this.enqueueEvent("render"),e.type){case"hide-keypad":this.enqueueEvent("hide-keypad");break;case"set-active-mq":this.activeMQ=e.mq;break;case"set-keypad-type":this.keypadType=e.keypadType;break;case"keypad/shift":this.updateKeyboardMode(this.scientificKeyboardMode==="capitalQwerty"?"qwerty":"capitalQwerty");break;case"main":this.updateKeyboardMode("main");break;case"ABC":this.updateKeyboardMode("qwerty");break;case"functions":this.updateKeyboardMode("functions");break;case"keypad/type-text":this.typeIntoFocusedMathquill(e.text);break;case"keypad/press-key":this.pressKeyInFocusedMathquill(e.key,e.evt);break;case"keypad/custom-command":this.executeCommandInFocusedMathquill(e.command);break;case"keypad/123":case"keypad/abc":case"keypad/audio-trace":case"redo":case"undo":break;default:return e}})}};var Ni=__dcg_shared_module_exports__['e']($());var DU=__dcg_shared_module_exports__['e']($()),Jo=class extends DU.Class{init(){this.controller=this.props.controller(),this.dispatch=this.controller.dispatch,this.s=this.controller.s}};var Qi=__dcg_shared_module_exports__['e']($());var nk=class extends Jo{template(){return Qi.createElement(Et,{controller:this.props.controller},Qi.createElement(ge,null,x(this,"a^2"),x(this,"a^b"),x(this,"|a|"),x(this,"a/b"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"/"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"x"),x(this,"y")),Qi.createElement(ge,null,x(this,"("),x(this,")"),x(this,"<"),x(this,">"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"*"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"left",{style:"highlight"}),x(this,"right",{style:"highlight"})),Qi.createElement(ge,null,x(this,"sqrt"),x(this,","),x(this,"<="),x(this,">="),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"-"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),Pt(.5),x(this,"backspace",{style:"highlight",colspan:1.5})),Qi.createElement(ge,null,x(this,"nthroot"),x(this,"pi"),x(this,"%"),x(this,"a_b"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"0",{style:"highlight"}),x(this,".",{style:"highlight"}),x(this,"="),x(this,"+"),Qi.createElement("div",{class:Qi.const("dcg-partition-placeholder")}),x(this,"enter",{colspan:2,style:"blue"})))}};var wl=__dcg_shared_module_exports__['e']($());var ak=class extends Jo{template(){return wl.createElement(Et,{controller:this.props.controller},wl.createElement(ge,null,x(this,"q"),x(this,"w"),x(this,"e"),x(this,"r"),x(this,"t"),x(this,"y"),x(this,"u"),x(this,"i"),x(this,"o"),x(this,"p")),wl.createElement(ge,null,wl.createElement("div",{class:wl.const("dcg-half-width-placeholder")}),x(this,"a"),x(this,"s"),x(this,"d"),x(this,"f"),x(this,"g"),x(this,"h"),x(this,"j"),x(this,"k"),x(this,"l"),wl.createElement("div",{class:wl.const("dcg-half-width-placeholder")})),wl.createElement(ge,null,x(this,"shift",{style:"highlight"}),x(this,"z"),x(this,"x"),x(this,"c"),x(this,"v"),x(this,"b"),x(this,"n"),x(this,"m"),x(this,":"),x(this,"backspace",{style:"highlight"})),wl.createElement(ge,null,x(this,"~"),x(this,"{"),x(this,"}"),x(this,"["),x(this,"]"),x(this,"\xB1"),x(this,"'"),x(this,"obelus"),x(this,"enter",{style:"blue"})))}};var vl=__dcg_shared_module_exports__['e']($());var sk=class extends Jo{template(){return vl.createElement(Et,{controller:this.props.controller},vl.createElement(ge,null,x(this,"Q"),x(this,"W"),x(this,"E"),x(this,"R"),x(this,"T"),x(this,"Y"),x(this,"U"),x(this,"I"),x(this,"O"),x(this,"P")),vl.createElement(ge,null,vl.createElement("div",{class:vl.const("dcg-half-width-placeholder")}),x(this,"A"),x(this,"S"),x(this,"D"),x(this,"F"),x(this,"G"),x(this,"H"),x(this,"J"),x(this,"K"),x(this,"L"),vl.createElement("div",{class:vl.const("dcg-half-width-placeholder")})),vl.createElement(ge,null,x(this,"shift",{style:"highlight"}),x(this,"Z"),x(this,"X"),x(this,"C"),x(this,"V"),x(this,"B"),x(this,"N"),x(this,"M"),x(this,","),x(this,"backspace",{style:"highlight"})),vl.createElement(ge,null,x(this,"="),x(this,"("),x(this,")"),x(this,"["),x(this,"]"),x(this,"\xB1"),x(this,"'"),x(this,"obelus"),x(this,"enter",{style:"blue"})))}};var ha=__dcg_shared_module_exports__['e']($());var lk=class extends Jo{template(){return ha.createElement(Et,{controller:this.props.controller},ha.createElement(ge,null,x(this,"sin"),x(this,"cos"),x(this,"tan"),ha.createElement("div",{class:ha.const("dcg-partition-placeholder")}),x(this,"ln"),x(this,"log"),x(this,"backspace",{style:"highlight"})),ha.createElement(ge,null,x(this,"arcsin"),x(this,"arccos"),x(this,"arctan"),ha.createElement("div",{class:ha.const("dcg-partition-placeholder")}),x(this,"e^x"),x(this,"abs"),x(this,"round")),ha.createElement(ge,null,x(this,"mean"),x(this,"stdev"),x(this,"stdevp"),ha.createElement("div",{class:ha.const("dcg-partition-placeholder")}),x(this,"a^b"),x(this,"sqrt"),x(this,"nthroot")),ha.createElement(ge,null,x(this,"nPr"),x(this,"nCr"),x(this,"!"),ha.createElement("div",{class:ha.const("dcg-partition-placeholder")}),x(this,"e"),x(this,"%"),x(this,"enter",{style:"blue"})))}};var Kn=__dcg_shared_module_exports__['e']($());var ck=class extends Jo{template(){return Kn.createElement(Et,{controller:this.props.controller},Kn.createElement(ge,null,x(this,"1",{style:"highlight"}),x(this,"2",{style:"highlight"}),x(this,"3",{style:"highlight"}),x(this,"4",{style:"highlight"}),x(this,"5",{style:"highlight"}),x(this,"6",{style:"highlight"}),x(this,"7",{style:"highlight"}),x(this,"8",{style:"highlight"}),x(this,"9",{style:"highlight"}),x(this,"0",{style:"highlight"}),Kn.createElement("div",{class:Kn.const("dcg-partition-placeholder")}),x(this,"left",{style:"highlight"}),x(this,"right",{style:"highlight"}),Kn.createElement("div",{class:Kn.const("dcg-inline-hide-keypad-button"),"dcg-command":Kn.const("hide-keypad"),onTap:()=>this.props.controller().dispatch({type:"hide-keypad"})},Kn.createElement("div",{class:Kn.const("dcg-inline-hide-keypad-button-inner")},Kn.createElement("i",{class:Kn.const("dcg-icon-hide"),"aria-hidden":Kn.const("true")})))),Kn.createElement(ge,null,Pt(2),x(this,"."),x(this,"="),x(this,"+"),x(this,"-"),x(this,"multiplication"),x(this,"obelus"),Pt(3),x(this,"backspace",{style:"highlight",colspan:1.5}),Pt(1)),Kn.createElement(ge,null,Pt(2),x(this,"a/b"),x(this,","),x(this,"("),x(this,")"),x(this,"<"),x(this,">"),Pt(2.5),x(this,"enter",{colspan:2,style:"blue"}),Pt(1)))}};var Bs=__dcg_shared_module_exports__['e']($());var dk=class extends Jo{template(){let r=this.props.controller();return Bs.createElement(es,{controller:this.props.controller},Bs.createElement(fr,{command:this.const("main"),selected:()=>r.getScientificKeyboardMode()==="main",ignoreInTabOrder:this.const(!0),selectable:this.const(!0),onTap:()=>r.dispatch({type:"main"})},()=>r.s("basic-calculator-button-controlbar-main")),Bs.createElement(fr,{command:this.const("ABC"),selected:()=>["qwerty","capitalQwerty"].indexOf(r.getScientificKeyboardMode())!==-1,ignoreInTabOrder:this.const(!0),selectable:this.const(!0),ariaLabel:()=>r.s("basic-calculator-narration-controlbar-abc"),onTap:()=>r.dispatch({type:"ABC"})},()=>r.s("basic-calculator-button-controlbar-abc")),Bs.createElement(fr,{command:this.const("functions"),selected:()=>["functions","restrictedFunctions"].indexOf(r.getScientificKeyboardMode())!==-1,ariaLabel:()=>r.s("basic-calculator-narration-controlbar-functions"),ignoreInTabOrder:this.const(!0),selectable:this.const(!0),onTap:()=>r.dispatch({type:"functions"})},()=>r.s("shared-calculator-button-controlbar-functions")),Bs.createElement("div",{class:Bs.const("dcg-hide-keypad-button"),"dcg-command":Bs.const("hide-keypad"),onTap:()=>r.dispatch({type:"hide-keypad"})},Bs.createElement("i",{class:Bs.const("dcg-icon-hide"),"aria-hidden":Bs.const("true")})))}};var{Switch:rQ,SwitchUnion:iQ}=Ni.Components,pk=class extends Jo{template(){return Ni.createElement("div",{class:Ni.const("dcg-calculator-api-container"),style:()=>"width: 100%; height: 100%; position: relative;"},Ni.createElement("div",{class:Ni.const("dcg-do-not-blur dcg-container dcg-api-shared-keypad-root"),didMount:this.bindFn(this.didMountRoot)},this.children))}didMountRoot(e){Iu(e)}},_1=class extends Jo{template(){return Ni.createElement(pk,{...this.props},Ni.createElement("div",{class:()=>({"dcg-fourfunction-keypad-container":!0,"dcg-projector-mode":this.props.controller().getProjectorMode()!=="none","dcg-classroom-large-projector-mode":this.props.controller().getProjectorMode()==="large"}),role:Ni.const("region"),"aria-label":()=>this.s("shared-calculator-narration-keypad")},Ni.createElement(ck,{controller:this.props.controller})))}},F1=class extends Jo{template(){return Ni.createElement(pk,{...this.props},Ni.createElement("div",{class:()=>({"dcg-scientific-keypad-container":!0,"dcg-projector-mode":this.props.controller().getProjectorMode()!=="none","dcg-classroom-large-projector-mode":this.props.controller().getProjectorMode()==="large"})},Ni.createElement(dk,{controller:this.props.controller}),Ni.createElement("div",{role:Ni.const("group"),"aria-label":()=>this.s("shared-calculator-narration-keypad")},Ni.createElement(rQ,{key:()=>this.controller.getScientificKeyboardMode()},e=>{switch(e){case"qwerty":return Ni.createElement(ak,{controller:this.props.controller});case"capitalQwerty":return Ni.createElement(sk,{controller:this.props.controller});case"functions":return Ni.createElement(lk,{controller:this.props.controller});default:return Ni.createElement(nk,{controller:this.props.controller})}}))))}},uk=class extends Jo{template(){return iQ(()=>this.controller.getKeypadType(),{fourfunction:()=>Ni.createElement(_1,{...this.props}),scientific:()=>Ni.createElement(F1,{...this.props})})}};var Sf=class extends wh{constructor(e,t){super(e),this.init(t)}init(e){this.controller=new uw(e),this.controller.onEventEmitted=t=>{t==="render"&&this.updateView(),this.triggerEvent(t,void 0)},this.setupDomChangeDetector(!0)}setActiveMathquill(e){this.controller.dispatch({type:"set-active-mq",mq:e})}setKeypadType(e){this.controller.dispatch({type:"set-keypad-type",keypadType:e})}onCreateView(){return Ef.mountToNode(uk,this.rootElt,{controller:Ef.const(this.controller)})}onResizeView(e){}onDestroyView(){Ef.unmountFromNode(this.rootElt)}destroy(){super.destroy()}};var Df=class extends xh{constructor(e,t,i){super(e,{...t,product:"geometry-calculator"},i),this.setState(fm),this.clearHistory()}};var oQ=__dcg_shared_module_exports__['e']($());Pc();var hw;typeof Desmos!="undefined"?hw=Desmos:(hw={},window.Desmos=hw);var nQ={SMALL:"0.85",MEDIUM:"1",LARGE:"1.35"};function R1(...r){return new uf(...r)}R1.prototype=uf.prototype;function N1(...r){return new Df(...r)}N1.prototype=Df.prototype;function B1(...r){return new hf(...r)}B1.prototype=hf.prototype;function kU(...r){return new vf(...r)}kU.prototype=vf.prototype;function TU(...r){return new Cf(...r)}TU.prototype=Cf.prototype;function IU(...r){return new Sf(...r)}IU.prototype=Sf.prototype;var gk={Colors:{RED:Zv,BLUE:eC,GREEN:tC,ORANGE:iC,PURPLE:rC,BLACK:oC},imageFileToDataURL:oS,supportedLanguages:["en"].concat(typeof desmosLocaleData=="object"?Object.keys(desmosLocaleData):[]),Styles:{...vI,...wI},ColumnModes:Pb,DragModes:CI,AxisArrowModes:__dcg_shared_module_exports__['Oc'],FontSizes:rS,LabelSizes:nQ,LabelOrientations:SI,GraphingCalculator:R1,Calculator:R1,FourFunctionCalculator:kU,ScientificCalculator:TU,Geometry:N1,Abraham:sc,Private:{Abraham:sc,Mathtools:fE,Graphtools:{ScalePair:__dcg_shared_module_exports__['Gc'],getClippingGraphType:Ib,mapSegmentToCanvas:qd,computeDrawingCommandsForDOMLabel:zC,drawCommandsToCtx:KC},MathquillConfig:{getAutoCommands:Al,getAutoOperators:Gl},Parser:__dcg_shared_module_exports__['od'],extractSliderValueFromLatex:fb,__compareBranches:{getSliderMin:Ra,getSliderMax:Ys,valueTypes:__dcg_shared_module_exports__['V'],migrateGeoStateToCalcState:Ou,Mathtools:fE},GeometryBeta:N1,migrateGeoStateToCalcState:Ou,HeadlessGraphingCalculator:B1,maybeNotifyUserChangedLatex:ve.simulateUserChangedLatex,Fragile:{DCGView:oQ,PromptSliderView:hl,Checkbox:He,SegmentedControl:ri,MathquillView:ve,InlineMathInputView:Vt,StaticMathquillView:ke,Tooltip:Ce,ExpressionOptionsMenuView:Xm,ExpressionView:ch,ImageIconView:dh,evaluateLatex:xr,Keys:tr,getQueryParams:Ao,getReconciledExpressionProps:__dcg_shared_module_exports__['rc'],List:{moveItemsTo:Fd,removeItemById:hg},currentLanguage:Gb}},TestInternal:{subscribeToSharedClockBus:r=>$c(r),getCalcConfigAll:()=>kP(),fetchLanguage:r=>mF(r)},MathQuill:Pl,PillowKeypad:IU,HeadlessGraphingCalculator:B1};function mk(r){var e=hw.enabledFeatures;return!e||e[r]}function gw(r){gk[r]=function(){throw new Error("The Desmos "+r+" is not enabled for this API key.")}}mk("GraphingCalculator")||(gw("GraphingCalculator"),gw("Calculator"));mk("FourFunctionCalculator")||gw("FourFunctionCalculator");mk("ScientificCalculator")||gw("ScientificCalculator");mk("GeometryCalculator")||gw("Geometry");for(hk in gk)gk.hasOwnProperty(hk)&&(hw[hk]=gk[hk]);var hk;kt();typeof Desmos=="undefined"&&(Desmos={});function MU(){Desmos.$=W,Desmos.$.noConflict(!0)}typeof Desmos=="undefined"&&(Desmos={});MU();
/*!
* jQuery JavaScript Library v3.6.0
* https://jquery.com/
*
* Includes Sizzle.js
* https://sizzlejs.com/
*
* Copyright OpenJS Foundation and other contributors
* Released under the MIT license
* https://jquery.org/license
*
* Date: 2021-03-02T17:08Z
*/
/*!!
* Canvas 2 Svg v1.0.19
* A low level canvas to SVG converter. Uses a mock canvas context to build an SVG document.
*
* Licensed under the MIT license:
* http://www.opensource.org/licenses/mit-license.php
*
* Author:
* Kerry Liu
*
* Copyright (c) 2014 Gliffy Inc.
*
* Modifications by Desmos:
* - wrapped in AMD pattern
* - added ctx.ellipse() method
* - fixed image opacity bug
* - added ability to add classNames to exported svg elements
* - added ability to add named groups
* - removed dominant-basline attribute. Editors appear to ignore it. Must solve baseline issues using transformations
*/
})();
})();
})(typeof window !== undefined ? window : this || {});
})();