diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/CONTRIBUTORS.svg b/CONTRIBUTORS.svg new file mode 100644 index 000000000..9a4e9cc1a --- /dev/null +++ b/CONTRIBUTORS.svg @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/asset-manifest.json b/asset-manifest.json new file mode 100644 index 000000000..35ca5fe01 --- /dev/null +++ b/asset-manifest.json @@ -0,0 +1,317 @@ +{ + "files": { + "main.css": "/react-codemirror/static/css/main.0da2652e.css", + "main.js": "/react-codemirror/static/js/main.f5450b3a.js", + "static/js/3050.c6fb6e8a.chunk.js": "/react-codemirror/static/js/3050.c6fb6e8a.chunk.js", + "static/js/4967.83f7ce78.chunk.js": "/react-codemirror/static/js/4967.83f7ce78.chunk.js", + "static/js/9731.4a0be84e.chunk.js": "/react-codemirror/static/js/9731.4a0be84e.chunk.js", + "static/js/3982.4ce29ede.chunk.js": "/react-codemirror/static/js/3982.4ce29ede.chunk.js", + "static/js/884.5180b75a.chunk.js": "/react-codemirror/static/js/884.5180b75a.chunk.js", + "static/js/226.61110267.chunk.js": "/react-codemirror/static/js/226.61110267.chunk.js", + "static/js/8057.0e527b00.chunk.js": "/react-codemirror/static/js/8057.0e527b00.chunk.js", + "static/js/2574.13245b28.chunk.js": "/react-codemirror/static/js/2574.13245b28.chunk.js", + "static/js/4384.5ca8f657.chunk.js": "/react-codemirror/static/js/4384.5ca8f657.chunk.js", + "static/js/7889.14248106.chunk.js": "/react-codemirror/static/js/7889.14248106.chunk.js", + "static/js/797.ec791085.chunk.js": "/react-codemirror/static/js/797.ec791085.chunk.js", + "static/js/2614.bbc324e6.chunk.js": "/react-codemirror/static/js/2614.bbc324e6.chunk.js", + "static/js/8004.b032ca8e.chunk.js": "/react-codemirror/static/js/8004.b032ca8e.chunk.js", + "static/js/2945.6fe89012.chunk.js": "/react-codemirror/static/js/2945.6fe89012.chunk.js", + "static/js/1691.92c49cec.chunk.js": "/react-codemirror/static/js/1691.92c49cec.chunk.js", + "static/js/1510.f2f0836f.chunk.js": "/react-codemirror/static/js/1510.f2f0836f.chunk.js", + "static/js/2457.24bb898c.chunk.js": "/react-codemirror/static/js/2457.24bb898c.chunk.js", + "static/js/3835.7219d784.chunk.js": "/react-codemirror/static/js/3835.7219d784.chunk.js", + "static/js/2943.f5e9776b.chunk.js": "/react-codemirror/static/js/2943.f5e9776b.chunk.js", + "static/js/6927.f59ce960.chunk.js": "/react-codemirror/static/js/6927.f59ce960.chunk.js", + "static/js/3274.7db38441.chunk.js": "/react-codemirror/static/js/3274.7db38441.chunk.js", + "static/js/8272.12f242bd.chunk.js": "/react-codemirror/static/js/8272.12f242bd.chunk.js", + "static/js/1545.0f9fb7dc.chunk.js": "/react-codemirror/static/js/1545.0f9fb7dc.chunk.js", + "static/js/1090.7431949b.chunk.js": "/react-codemirror/static/js/1090.7431949b.chunk.js", + "static/js/9477.7cf0f588.chunk.js": "/react-codemirror/static/js/9477.7cf0f588.chunk.js", + "static/js/6868.22daa527.chunk.js": "/react-codemirror/static/js/6868.22daa527.chunk.js", + "static/js/4774.70c2b4b0.chunk.js": "/react-codemirror/static/js/4774.70c2b4b0.chunk.js", + "static/js/702.32d41073.chunk.js": "/react-codemirror/static/js/702.32d41073.chunk.js", + "static/js/4077.fe938c34.chunk.js": "/react-codemirror/static/js/4077.fe938c34.chunk.js", + "static/js/2563.44327ac9.chunk.js": "/react-codemirror/static/js/2563.44327ac9.chunk.js", + "static/js/1747.44725eec.chunk.js": "/react-codemirror/static/js/1747.44725eec.chunk.js", + "static/js/5173.733c45bc.chunk.js": "/react-codemirror/static/js/5173.733c45bc.chunk.js", + "static/js/5268.e45b9d3c.chunk.js": "/react-codemirror/static/js/5268.e45b9d3c.chunk.js", + "static/js/9177.961d57fa.chunk.js": "/react-codemirror/static/js/9177.961d57fa.chunk.js", + "static/js/2433.1f1778f7.chunk.js": "/react-codemirror/static/js/2433.1f1778f7.chunk.js", + "static/js/8774.97e39bc3.chunk.js": "/react-codemirror/static/js/8774.97e39bc3.chunk.js", + "static/js/1821.76ca61ce.chunk.js": "/react-codemirror/static/js/1821.76ca61ce.chunk.js", + "static/js/268.639210e8.chunk.js": "/react-codemirror/static/js/268.639210e8.chunk.js", + "static/js/1726.a13f01cb.chunk.js": "/react-codemirror/static/js/1726.a13f01cb.chunk.js", + "static/js/2539.8bae3a7a.chunk.js": "/react-codemirror/static/js/2539.8bae3a7a.chunk.js", + "static/js/9203.cd783a3b.chunk.js": "/react-codemirror/static/js/9203.cd783a3b.chunk.js", + "static/js/9143.d69e7a06.chunk.js": "/react-codemirror/static/js/9143.d69e7a06.chunk.js", + "static/js/593.3d2337f7.chunk.js": "/react-codemirror/static/js/593.3d2337f7.chunk.js", + "static/js/2325.459802d6.chunk.js": "/react-codemirror/static/js/2325.459802d6.chunk.js", + "static/js/2900.8cf62aca.chunk.js": "/react-codemirror/static/js/2900.8cf62aca.chunk.js", + "static/js/9943.043046c9.chunk.js": "/react-codemirror/static/js/9943.043046c9.chunk.js", + "static/js/8033.0a146f75.chunk.js": "/react-codemirror/static/js/8033.0a146f75.chunk.js", + "static/js/4836.95a893d5.chunk.js": "/react-codemirror/static/js/4836.95a893d5.chunk.js", + "static/js/2385.e7583100.chunk.js": "/react-codemirror/static/js/2385.e7583100.chunk.js", + "static/js/357.20fa4f97.chunk.js": "/react-codemirror/static/js/357.20fa4f97.chunk.js", + "static/js/9449.fe9ef323.chunk.js": "/react-codemirror/static/js/9449.fe9ef323.chunk.js", + "static/js/9765.e9f807db.chunk.js": "/react-codemirror/static/js/9765.e9f807db.chunk.js", + "static/js/811.4fd9f791.chunk.js": "/react-codemirror/static/js/811.4fd9f791.chunk.js", + "static/js/6286.7a797ede.chunk.js": "/react-codemirror/static/js/6286.7a797ede.chunk.js", + "static/js/7238.fe6139fc.chunk.js": "/react-codemirror/static/js/7238.fe6139fc.chunk.js", + "static/js/6063.549e727a.chunk.js": "/react-codemirror/static/js/6063.549e727a.chunk.js", + "static/js/6760.9fa91319.chunk.js": "/react-codemirror/static/js/6760.9fa91319.chunk.js", + "static/js/8192.ff37578d.chunk.js": "/react-codemirror/static/js/8192.ff37578d.chunk.js", + "static/js/4147.ab23c510.chunk.js": "/react-codemirror/static/js/4147.ab23c510.chunk.js", + "static/js/3602.b42d1044.chunk.js": "/react-codemirror/static/js/3602.b42d1044.chunk.js", + "static/js/3647.dd1141d9.chunk.js": "/react-codemirror/static/js/3647.dd1141d9.chunk.js", + "static/js/8531.cc199d0b.chunk.js": "/react-codemirror/static/js/8531.cc199d0b.chunk.js", + "static/js/311.3e403e99.chunk.js": "/react-codemirror/static/js/311.3e403e99.chunk.js", + "static/js/3079.fcc66869.chunk.js": "/react-codemirror/static/js/3079.fcc66869.chunk.js", + "static/js/4265.02910c40.chunk.js": "/react-codemirror/static/js/4265.02910c40.chunk.js", + "static/js/2475.ffa350e8.chunk.js": "/react-codemirror/static/js/2475.ffa350e8.chunk.js", + "static/js/5936.5c13bd99.chunk.js": "/react-codemirror/static/js/5936.5c13bd99.chunk.js", + "static/js/7938.039b49c4.chunk.js": "/react-codemirror/static/js/7938.039b49c4.chunk.js", + "static/js/7319.3f8a9203.chunk.js": "/react-codemirror/static/js/7319.3f8a9203.chunk.js", + "static/js/7009.cc818a8d.chunk.js": "/react-codemirror/static/js/7009.cc818a8d.chunk.js", + "static/js/563.aea1e155.chunk.js": "/react-codemirror/static/js/563.aea1e155.chunk.js", + "static/js/1952.c5022bd7.chunk.js": "/react-codemirror/static/js/1952.c5022bd7.chunk.js", + "static/js/7926.78eb5044.chunk.js": "/react-codemirror/static/js/7926.78eb5044.chunk.js", + "static/js/1056.ae50035d.chunk.js": "/react-codemirror/static/js/1056.ae50035d.chunk.js", + "static/js/8950.f6f7fbef.chunk.js": "/react-codemirror/static/js/8950.f6f7fbef.chunk.js", + "static/js/4371.9f237f46.chunk.js": "/react-codemirror/static/js/4371.9f237f46.chunk.js", + "static/js/7559.47351798.chunk.js": "/react-codemirror/static/js/7559.47351798.chunk.js", + "static/js/1963.3b22c24a.chunk.js": "/react-codemirror/static/js/1963.3b22c24a.chunk.js", + "static/js/4736.fbdb24ed.chunk.js": "/react-codemirror/static/js/4736.fbdb24ed.chunk.js", + "static/js/5112.ea1f99af.chunk.js": "/react-codemirror/static/js/5112.ea1f99af.chunk.js", + "static/js/5225.afcaa648.chunk.js": "/react-codemirror/static/js/5225.afcaa648.chunk.js", + "static/js/618.622bbb55.chunk.js": "/react-codemirror/static/js/618.622bbb55.chunk.js", + "static/js/9047.a9237351.chunk.js": "/react-codemirror/static/js/9047.a9237351.chunk.js", + "static/js/304.6bcfcbc0.chunk.js": "/react-codemirror/static/js/304.6bcfcbc0.chunk.js", + "static/js/65.c7c72e77.chunk.js": "/react-codemirror/static/js/65.c7c72e77.chunk.js", + "static/js/1205.f9721c7f.chunk.js": "/react-codemirror/static/js/1205.f9721c7f.chunk.js", + "static/js/3425.ed9a695e.chunk.js": "/react-codemirror/static/js/3425.ed9a695e.chunk.js", + "static/js/9937.9bdbb467.chunk.js": "/react-codemirror/static/js/9937.9bdbb467.chunk.js", + "static/js/666.9b27396a.chunk.js": "/react-codemirror/static/js/666.9b27396a.chunk.js", + "static/js/7694.9787306e.chunk.js": "/react-codemirror/static/js/7694.9787306e.chunk.js", + "static/js/1969.9c958483.chunk.js": "/react-codemirror/static/js/1969.9c958483.chunk.js", + "static/js/1548.f393ecf6.chunk.js": "/react-codemirror/static/js/1548.f393ecf6.chunk.js", + "static/js/9674.0fdffb45.chunk.js": "/react-codemirror/static/js/9674.0fdffb45.chunk.js", + "static/js/9359.2708834f.chunk.js": "/react-codemirror/static/js/9359.2708834f.chunk.js", + "static/js/8153.f7c31c61.chunk.js": "/react-codemirror/static/js/8153.f7c31c61.chunk.js", + "static/js/706.07be82ad.chunk.js": "/react-codemirror/static/js/706.07be82ad.chunk.js", + "static/js/7107.03d4ce59.chunk.js": "/react-codemirror/static/js/7107.03d4ce59.chunk.js", + "static/js/6618.14a31a25.chunk.js": "/react-codemirror/static/js/6618.14a31a25.chunk.js", + "static/js/9661.044c3442.chunk.js": "/react-codemirror/static/js/9661.044c3442.chunk.js", + "static/js/2169.c195d1fb.chunk.js": "/react-codemirror/static/js/2169.c195d1fb.chunk.js", + "static/js/807.fae9195d.chunk.js": "/react-codemirror/static/js/807.fae9195d.chunk.js", + "static/js/4063.9471ff8b.chunk.js": "/react-codemirror/static/js/4063.9471ff8b.chunk.js", + "static/js/419.68b07d8b.chunk.js": "/react-codemirror/static/js/419.68b07d8b.chunk.js", + "static/js/3909.41d886c9.chunk.js": "/react-codemirror/static/js/3909.41d886c9.chunk.js", + "static/js/2375.253bb5c7.chunk.js": "/react-codemirror/static/js/2375.253bb5c7.chunk.js", + "static/js/8589.27fcbc46.chunk.js": "/react-codemirror/static/js/8589.27fcbc46.chunk.js", + "static/js/8756.38c843c0.chunk.js": "/react-codemirror/static/js/8756.38c843c0.chunk.js", + "static/js/358.5aedc3ed.chunk.js": "/react-codemirror/static/js/358.5aedc3ed.chunk.js", + "static/js/7833.654f1f43.chunk.js": "/react-codemirror/static/js/7833.654f1f43.chunk.js", + "static/js/860.c627751b.chunk.js": "/react-codemirror/static/js/860.c627751b.chunk.js", + "static/js/6082.1740432f.chunk.js": "/react-codemirror/static/js/6082.1740432f.chunk.js", + "static/js/7939.39225f80.chunk.js": "/react-codemirror/static/js/7939.39225f80.chunk.js", + "static/js/1573.3386e8c5.chunk.js": "/react-codemirror/static/js/1573.3386e8c5.chunk.js", + "static/js/2681.12082753.chunk.js": "/react-codemirror/static/js/2681.12082753.chunk.js", + "static/js/518.1bb7b5ac.chunk.js": "/react-codemirror/static/js/518.1bb7b5ac.chunk.js", + "static/js/9273.0ee7ff49.chunk.js": "/react-codemirror/static/js/9273.0ee7ff49.chunk.js", + "static/js/1108.43ccf218.chunk.js": "/react-codemirror/static/js/1108.43ccf218.chunk.js", + "static/js/5823.a371a8aa.chunk.js": "/react-codemirror/static/js/5823.a371a8aa.chunk.js", + "static/js/6402.b3f1978a.chunk.js": "/react-codemirror/static/js/6402.b3f1978a.chunk.js", + "static/js/8592.f1305b09.chunk.js": "/react-codemirror/static/js/8592.f1305b09.chunk.js", + "static/js/9961.bc7bbbdf.chunk.js": "/react-codemirror/static/js/9961.bc7bbbdf.chunk.js", + "static/js/2066.4da20afc.chunk.js": "/react-codemirror/static/js/2066.4da20afc.chunk.js", + "static/js/7695.a40c86b3.chunk.js": "/react-codemirror/static/js/7695.a40c86b3.chunk.js", + "static/js/3240.b2c6de23.chunk.js": "/react-codemirror/static/js/3240.b2c6de23.chunk.js", + "static/js/5545.a99e3d54.chunk.js": "/react-codemirror/static/js/5545.a99e3d54.chunk.js", + "static/js/3195.1bd3a057.chunk.js": "/react-codemirror/static/js/3195.1bd3a057.chunk.js", + "static/js/6854.9528cab9.chunk.js": "/react-codemirror/static/js/6854.9528cab9.chunk.js", + "static/js/1421.8ebcb43a.chunk.js": "/react-codemirror/static/js/1421.8ebcb43a.chunk.js", + "static/js/2766.b95d1904.chunk.js": "/react-codemirror/static/js/2766.b95d1904.chunk.js", + "static/js/4675.9dd387a7.chunk.js": "/react-codemirror/static/js/4675.9dd387a7.chunk.js", + "static/js/3300.1523c794.chunk.js": "/react-codemirror/static/js/3300.1523c794.chunk.js", + "static/js/6150.7a44c409.chunk.js": "/react-codemirror/static/js/6150.7a44c409.chunk.js", + "static/js/9353.3a10614c.chunk.js": "/react-codemirror/static/js/9353.3a10614c.chunk.js", + "static/js/8783.a1dd19d9.chunk.js": "/react-codemirror/static/js/8783.a1dd19d9.chunk.js", + "static/js/7468.372aff9e.chunk.js": "/react-codemirror/static/js/7468.372aff9e.chunk.js", + "static/js/2699.07c2d19a.chunk.js": "/react-codemirror/static/js/2699.07c2d19a.chunk.js", + "static/js/4271.e7d1cd2e.chunk.js": "/react-codemirror/static/js/4271.e7d1cd2e.chunk.js", + "static/js/4861.8c907614.chunk.js": "/react-codemirror/static/js/4861.8c907614.chunk.js", + "static/js/2933.f17909a2.chunk.js": "/react-codemirror/static/js/2933.f17909a2.chunk.js", + "static/js/4510.ad7928bb.chunk.js": "/react-codemirror/static/js/4510.ad7928bb.chunk.js", + "static/js/5465.bf5d2826.chunk.js": "/react-codemirror/static/js/5465.bf5d2826.chunk.js", + "static/js/367.1b3d61df.chunk.js": "/react-codemirror/static/js/367.1b3d61df.chunk.js", + "static/js/7363.65ed9926.chunk.js": "/react-codemirror/static/js/7363.65ed9926.chunk.js", + "static/js/1971.9f2b46b9.chunk.js": "/react-codemirror/static/js/1971.9f2b46b9.chunk.js", + "static/js/8263.1369f43b.chunk.js": "/react-codemirror/static/js/8263.1369f43b.chunk.js", + "static/js/1635.885a6fd6.chunk.js": "/react-codemirror/static/js/1635.885a6fd6.chunk.js", + "codemirror-vendor.js": "/react-codemirror/static/js/codemirror-vendor.e72bd391.js", + "refractor-vendor.js": "/react-codemirror/static/js/refractor-vendor.64cdedb7.js", + "react-vendor.js": "/react-codemirror/static/js/react-vendor.d9f89775.js", + "static/js/3529.169757af.chunk.js": "/react-codemirror/static/js/3529.169757af.chunk.js", + "index.html": "/react-codemirror/index.html", + "static/media/index.cjs": "/react-codemirror/static/media/index.cbede7bc7b742ef6ce2d.cjs", + "main.0da2652e.css.map": "/react-codemirror/static/css/main.0da2652e.css.map", + "main.f5450b3a.js.map": "/react-codemirror/static/js/main.f5450b3a.js.map", + "3050.c6fb6e8a.chunk.js.map": "/react-codemirror/static/js/3050.c6fb6e8a.chunk.js.map", + "4967.83f7ce78.chunk.js.map": "/react-codemirror/static/js/4967.83f7ce78.chunk.js.map", + "9731.4a0be84e.chunk.js.map": "/react-codemirror/static/js/9731.4a0be84e.chunk.js.map", + "3982.4ce29ede.chunk.js.map": "/react-codemirror/static/js/3982.4ce29ede.chunk.js.map", + "884.5180b75a.chunk.js.map": "/react-codemirror/static/js/884.5180b75a.chunk.js.map", + "226.61110267.chunk.js.map": "/react-codemirror/static/js/226.61110267.chunk.js.map", + "8057.0e527b00.chunk.js.map": "/react-codemirror/static/js/8057.0e527b00.chunk.js.map", + "2574.13245b28.chunk.js.map": "/react-codemirror/static/js/2574.13245b28.chunk.js.map", + "4384.5ca8f657.chunk.js.map": "/react-codemirror/static/js/4384.5ca8f657.chunk.js.map", + "7889.14248106.chunk.js.map": "/react-codemirror/static/js/7889.14248106.chunk.js.map", + "797.ec791085.chunk.js.map": "/react-codemirror/static/js/797.ec791085.chunk.js.map", + "2614.bbc324e6.chunk.js.map": "/react-codemirror/static/js/2614.bbc324e6.chunk.js.map", + "8004.b032ca8e.chunk.js.map": "/react-codemirror/static/js/8004.b032ca8e.chunk.js.map", + "2945.6fe89012.chunk.js.map": "/react-codemirror/static/js/2945.6fe89012.chunk.js.map", + "1691.92c49cec.chunk.js.map": "/react-codemirror/static/js/1691.92c49cec.chunk.js.map", + "1510.f2f0836f.chunk.js.map": "/react-codemirror/static/js/1510.f2f0836f.chunk.js.map", + "2457.24bb898c.chunk.js.map": "/react-codemirror/static/js/2457.24bb898c.chunk.js.map", + "3835.7219d784.chunk.js.map": "/react-codemirror/static/js/3835.7219d784.chunk.js.map", + "2943.f5e9776b.chunk.js.map": "/react-codemirror/static/js/2943.f5e9776b.chunk.js.map", + "6927.f59ce960.chunk.js.map": "/react-codemirror/static/js/6927.f59ce960.chunk.js.map", + "3274.7db38441.chunk.js.map": "/react-codemirror/static/js/3274.7db38441.chunk.js.map", + "8272.12f242bd.chunk.js.map": "/react-codemirror/static/js/8272.12f242bd.chunk.js.map", + "1545.0f9fb7dc.chunk.js.map": "/react-codemirror/static/js/1545.0f9fb7dc.chunk.js.map", + "1090.7431949b.chunk.js.map": "/react-codemirror/static/js/1090.7431949b.chunk.js.map", + "9477.7cf0f588.chunk.js.map": "/react-codemirror/static/js/9477.7cf0f588.chunk.js.map", + "6868.22daa527.chunk.js.map": "/react-codemirror/static/js/6868.22daa527.chunk.js.map", + "4774.70c2b4b0.chunk.js.map": "/react-codemirror/static/js/4774.70c2b4b0.chunk.js.map", + "702.32d41073.chunk.js.map": "/react-codemirror/static/js/702.32d41073.chunk.js.map", + "4077.fe938c34.chunk.js.map": "/react-codemirror/static/js/4077.fe938c34.chunk.js.map", + "2563.44327ac9.chunk.js.map": "/react-codemirror/static/js/2563.44327ac9.chunk.js.map", + "1747.44725eec.chunk.js.map": "/react-codemirror/static/js/1747.44725eec.chunk.js.map", + "5173.733c45bc.chunk.js.map": "/react-codemirror/static/js/5173.733c45bc.chunk.js.map", + "5268.e45b9d3c.chunk.js.map": "/react-codemirror/static/js/5268.e45b9d3c.chunk.js.map", + "9177.961d57fa.chunk.js.map": "/react-codemirror/static/js/9177.961d57fa.chunk.js.map", + "2433.1f1778f7.chunk.js.map": "/react-codemirror/static/js/2433.1f1778f7.chunk.js.map", + "8774.97e39bc3.chunk.js.map": "/react-codemirror/static/js/8774.97e39bc3.chunk.js.map", + "1821.76ca61ce.chunk.js.map": "/react-codemirror/static/js/1821.76ca61ce.chunk.js.map", + "268.639210e8.chunk.js.map": "/react-codemirror/static/js/268.639210e8.chunk.js.map", + "1726.a13f01cb.chunk.js.map": "/react-codemirror/static/js/1726.a13f01cb.chunk.js.map", + "2539.8bae3a7a.chunk.js.map": "/react-codemirror/static/js/2539.8bae3a7a.chunk.js.map", + "9203.cd783a3b.chunk.js.map": "/react-codemirror/static/js/9203.cd783a3b.chunk.js.map", + "9143.d69e7a06.chunk.js.map": "/react-codemirror/static/js/9143.d69e7a06.chunk.js.map", + "593.3d2337f7.chunk.js.map": "/react-codemirror/static/js/593.3d2337f7.chunk.js.map", + "2325.459802d6.chunk.js.map": "/react-codemirror/static/js/2325.459802d6.chunk.js.map", + "2900.8cf62aca.chunk.js.map": "/react-codemirror/static/js/2900.8cf62aca.chunk.js.map", + "9943.043046c9.chunk.js.map": "/react-codemirror/static/js/9943.043046c9.chunk.js.map", + "8033.0a146f75.chunk.js.map": "/react-codemirror/static/js/8033.0a146f75.chunk.js.map", + "4836.95a893d5.chunk.js.map": "/react-codemirror/static/js/4836.95a893d5.chunk.js.map", + "2385.e7583100.chunk.js.map": "/react-codemirror/static/js/2385.e7583100.chunk.js.map", + "357.20fa4f97.chunk.js.map": "/react-codemirror/static/js/357.20fa4f97.chunk.js.map", + "9449.fe9ef323.chunk.js.map": "/react-codemirror/static/js/9449.fe9ef323.chunk.js.map", + "9765.e9f807db.chunk.js.map": "/react-codemirror/static/js/9765.e9f807db.chunk.js.map", + "811.4fd9f791.chunk.js.map": "/react-codemirror/static/js/811.4fd9f791.chunk.js.map", + "6286.7a797ede.chunk.js.map": "/react-codemirror/static/js/6286.7a797ede.chunk.js.map", + "7238.fe6139fc.chunk.js.map": "/react-codemirror/static/js/7238.fe6139fc.chunk.js.map", + "6063.549e727a.chunk.js.map": "/react-codemirror/static/js/6063.549e727a.chunk.js.map", + "6760.9fa91319.chunk.js.map": "/react-codemirror/static/js/6760.9fa91319.chunk.js.map", + "8192.ff37578d.chunk.js.map": "/react-codemirror/static/js/8192.ff37578d.chunk.js.map", + "4147.ab23c510.chunk.js.map": "/react-codemirror/static/js/4147.ab23c510.chunk.js.map", + "3602.b42d1044.chunk.js.map": "/react-codemirror/static/js/3602.b42d1044.chunk.js.map", + "3647.dd1141d9.chunk.js.map": "/react-codemirror/static/js/3647.dd1141d9.chunk.js.map", + "8531.cc199d0b.chunk.js.map": "/react-codemirror/static/js/8531.cc199d0b.chunk.js.map", + "311.3e403e99.chunk.js.map": "/react-codemirror/static/js/311.3e403e99.chunk.js.map", + "3079.fcc66869.chunk.js.map": "/react-codemirror/static/js/3079.fcc66869.chunk.js.map", + "4265.02910c40.chunk.js.map": "/react-codemirror/static/js/4265.02910c40.chunk.js.map", + "2475.ffa350e8.chunk.js.map": "/react-codemirror/static/js/2475.ffa350e8.chunk.js.map", + "5936.5c13bd99.chunk.js.map": "/react-codemirror/static/js/5936.5c13bd99.chunk.js.map", + "7938.039b49c4.chunk.js.map": "/react-codemirror/static/js/7938.039b49c4.chunk.js.map", + "7319.3f8a9203.chunk.js.map": "/react-codemirror/static/js/7319.3f8a9203.chunk.js.map", + "7009.cc818a8d.chunk.js.map": "/react-codemirror/static/js/7009.cc818a8d.chunk.js.map", + "563.aea1e155.chunk.js.map": "/react-codemirror/static/js/563.aea1e155.chunk.js.map", + "1952.c5022bd7.chunk.js.map": "/react-codemirror/static/js/1952.c5022bd7.chunk.js.map", + "7926.78eb5044.chunk.js.map": "/react-codemirror/static/js/7926.78eb5044.chunk.js.map", + "1056.ae50035d.chunk.js.map": "/react-codemirror/static/js/1056.ae50035d.chunk.js.map", + "8950.f6f7fbef.chunk.js.map": "/react-codemirror/static/js/8950.f6f7fbef.chunk.js.map", + "4371.9f237f46.chunk.js.map": "/react-codemirror/static/js/4371.9f237f46.chunk.js.map", + "7559.47351798.chunk.js.map": "/react-codemirror/static/js/7559.47351798.chunk.js.map", + "1963.3b22c24a.chunk.js.map": "/react-codemirror/static/js/1963.3b22c24a.chunk.js.map", + "4736.fbdb24ed.chunk.js.map": "/react-codemirror/static/js/4736.fbdb24ed.chunk.js.map", + "5112.ea1f99af.chunk.js.map": "/react-codemirror/static/js/5112.ea1f99af.chunk.js.map", + "5225.afcaa648.chunk.js.map": "/react-codemirror/static/js/5225.afcaa648.chunk.js.map", + "618.622bbb55.chunk.js.map": "/react-codemirror/static/js/618.622bbb55.chunk.js.map", + "9047.a9237351.chunk.js.map": "/react-codemirror/static/js/9047.a9237351.chunk.js.map", + "304.6bcfcbc0.chunk.js.map": "/react-codemirror/static/js/304.6bcfcbc0.chunk.js.map", + "65.c7c72e77.chunk.js.map": "/react-codemirror/static/js/65.c7c72e77.chunk.js.map", + "1205.f9721c7f.chunk.js.map": "/react-codemirror/static/js/1205.f9721c7f.chunk.js.map", + "3425.ed9a695e.chunk.js.map": "/react-codemirror/static/js/3425.ed9a695e.chunk.js.map", + "9937.9bdbb467.chunk.js.map": "/react-codemirror/static/js/9937.9bdbb467.chunk.js.map", + "666.9b27396a.chunk.js.map": "/react-codemirror/static/js/666.9b27396a.chunk.js.map", + "7694.9787306e.chunk.js.map": "/react-codemirror/static/js/7694.9787306e.chunk.js.map", + "1969.9c958483.chunk.js.map": "/react-codemirror/static/js/1969.9c958483.chunk.js.map", + "1548.f393ecf6.chunk.js.map": "/react-codemirror/static/js/1548.f393ecf6.chunk.js.map", + "9674.0fdffb45.chunk.js.map": "/react-codemirror/static/js/9674.0fdffb45.chunk.js.map", + "9359.2708834f.chunk.js.map": "/react-codemirror/static/js/9359.2708834f.chunk.js.map", + "8153.f7c31c61.chunk.js.map": "/react-codemirror/static/js/8153.f7c31c61.chunk.js.map", + "706.07be82ad.chunk.js.map": "/react-codemirror/static/js/706.07be82ad.chunk.js.map", + "7107.03d4ce59.chunk.js.map": "/react-codemirror/static/js/7107.03d4ce59.chunk.js.map", + "6618.14a31a25.chunk.js.map": "/react-codemirror/static/js/6618.14a31a25.chunk.js.map", + "9661.044c3442.chunk.js.map": "/react-codemirror/static/js/9661.044c3442.chunk.js.map", + "2169.c195d1fb.chunk.js.map": "/react-codemirror/static/js/2169.c195d1fb.chunk.js.map", + "807.fae9195d.chunk.js.map": "/react-codemirror/static/js/807.fae9195d.chunk.js.map", + "4063.9471ff8b.chunk.js.map": "/react-codemirror/static/js/4063.9471ff8b.chunk.js.map", + "419.68b07d8b.chunk.js.map": "/react-codemirror/static/js/419.68b07d8b.chunk.js.map", + "3909.41d886c9.chunk.js.map": "/react-codemirror/static/js/3909.41d886c9.chunk.js.map", + "2375.253bb5c7.chunk.js.map": "/react-codemirror/static/js/2375.253bb5c7.chunk.js.map", + "8589.27fcbc46.chunk.js.map": "/react-codemirror/static/js/8589.27fcbc46.chunk.js.map", + "8756.38c843c0.chunk.js.map": "/react-codemirror/static/js/8756.38c843c0.chunk.js.map", + "358.5aedc3ed.chunk.js.map": "/react-codemirror/static/js/358.5aedc3ed.chunk.js.map", + "7833.654f1f43.chunk.js.map": "/react-codemirror/static/js/7833.654f1f43.chunk.js.map", + "860.c627751b.chunk.js.map": "/react-codemirror/static/js/860.c627751b.chunk.js.map", + "6082.1740432f.chunk.js.map": "/react-codemirror/static/js/6082.1740432f.chunk.js.map", + "7939.39225f80.chunk.js.map": "/react-codemirror/static/js/7939.39225f80.chunk.js.map", + "1573.3386e8c5.chunk.js.map": "/react-codemirror/static/js/1573.3386e8c5.chunk.js.map", + "2681.12082753.chunk.js.map": "/react-codemirror/static/js/2681.12082753.chunk.js.map", + "518.1bb7b5ac.chunk.js.map": "/react-codemirror/static/js/518.1bb7b5ac.chunk.js.map", + "9273.0ee7ff49.chunk.js.map": "/react-codemirror/static/js/9273.0ee7ff49.chunk.js.map", + "1108.43ccf218.chunk.js.map": "/react-codemirror/static/js/1108.43ccf218.chunk.js.map", + "5823.a371a8aa.chunk.js.map": "/react-codemirror/static/js/5823.a371a8aa.chunk.js.map", + "6402.b3f1978a.chunk.js.map": "/react-codemirror/static/js/6402.b3f1978a.chunk.js.map", + "8592.f1305b09.chunk.js.map": "/react-codemirror/static/js/8592.f1305b09.chunk.js.map", + "9961.bc7bbbdf.chunk.js.map": "/react-codemirror/static/js/9961.bc7bbbdf.chunk.js.map", + "2066.4da20afc.chunk.js.map": "/react-codemirror/static/js/2066.4da20afc.chunk.js.map", + "7695.a40c86b3.chunk.js.map": "/react-codemirror/static/js/7695.a40c86b3.chunk.js.map", + "3240.b2c6de23.chunk.js.map": "/react-codemirror/static/js/3240.b2c6de23.chunk.js.map", + "5545.a99e3d54.chunk.js.map": "/react-codemirror/static/js/5545.a99e3d54.chunk.js.map", + "3195.1bd3a057.chunk.js.map": "/react-codemirror/static/js/3195.1bd3a057.chunk.js.map", + "6854.9528cab9.chunk.js.map": "/react-codemirror/static/js/6854.9528cab9.chunk.js.map", + "1421.8ebcb43a.chunk.js.map": "/react-codemirror/static/js/1421.8ebcb43a.chunk.js.map", + "2766.b95d1904.chunk.js.map": "/react-codemirror/static/js/2766.b95d1904.chunk.js.map", + "4675.9dd387a7.chunk.js.map": "/react-codemirror/static/js/4675.9dd387a7.chunk.js.map", + "3300.1523c794.chunk.js.map": "/react-codemirror/static/js/3300.1523c794.chunk.js.map", + "6150.7a44c409.chunk.js.map": "/react-codemirror/static/js/6150.7a44c409.chunk.js.map", + "9353.3a10614c.chunk.js.map": "/react-codemirror/static/js/9353.3a10614c.chunk.js.map", + "8783.a1dd19d9.chunk.js.map": "/react-codemirror/static/js/8783.a1dd19d9.chunk.js.map", + "7468.372aff9e.chunk.js.map": "/react-codemirror/static/js/7468.372aff9e.chunk.js.map", + "2699.07c2d19a.chunk.js.map": "/react-codemirror/static/js/2699.07c2d19a.chunk.js.map", + "4271.e7d1cd2e.chunk.js.map": "/react-codemirror/static/js/4271.e7d1cd2e.chunk.js.map", + "4861.8c907614.chunk.js.map": "/react-codemirror/static/js/4861.8c907614.chunk.js.map", + "2933.f17909a2.chunk.js.map": "/react-codemirror/static/js/2933.f17909a2.chunk.js.map", + "4510.ad7928bb.chunk.js.map": "/react-codemirror/static/js/4510.ad7928bb.chunk.js.map", + "5465.bf5d2826.chunk.js.map": "/react-codemirror/static/js/5465.bf5d2826.chunk.js.map", + "367.1b3d61df.chunk.js.map": "/react-codemirror/static/js/367.1b3d61df.chunk.js.map", + "7363.65ed9926.chunk.js.map": "/react-codemirror/static/js/7363.65ed9926.chunk.js.map", + "1971.9f2b46b9.chunk.js.map": "/react-codemirror/static/js/1971.9f2b46b9.chunk.js.map", + "8263.1369f43b.chunk.js.map": "/react-codemirror/static/js/8263.1369f43b.chunk.js.map", + "1635.885a6fd6.chunk.js.map": "/react-codemirror/static/js/1635.885a6fd6.chunk.js.map", + "codemirror-vendor.e72bd391.js.map": "/react-codemirror/static/js/codemirror-vendor.e72bd391.js.map", + "refractor-vendor.64cdedb7.js.map": "/react-codemirror/static/js/refractor-vendor.64cdedb7.js.map", + "react-vendor.d9f89775.js.map": "/react-codemirror/static/js/react-vendor.d9f89775.js.map", + "3529.169757af.chunk.js.map": "/react-codemirror/static/js/3529.169757af.chunk.js.map" + }, + "entrypoints": [ + "static/js/codemirror-vendor.e72bd391.js", + "static/js/refractor-vendor.64cdedb7.js", + "static/js/react-vendor.d9f89775.js", + "static/css/main.0da2652e.css", + "static/js/main.f5450b3a.js" + ] +} \ No newline at end of file diff --git a/bundle.html b/bundle.html new file mode 100644 index 000000000..816bac138 --- /dev/null +++ b/bundle.html @@ -0,0 +1,46 @@ + + + + + + + + + + + +
+ + + + diff --git a/coverage/badges.svg b/coverage/badges.svg new file mode 100644 index 000000000..e45deb138 --- /dev/null +++ b/coverage/badges.svg @@ -0,0 +1,20 @@ + + coverage: 88.88% + + + + + + + + + + + + + \ No newline at end of file diff --git a/coverage/coverage-summary.json b/coverage/coverage-summary.json new file mode 100644 index 000000000..650268b31 --- /dev/null +++ b/coverage/coverage-summary.json @@ -0,0 +1,7 @@ +{"total": {"lines":{"total":90,"covered":80,"skipped":0,"pct":88.88},"statements":{"total":92,"covered":82,"skipped":0,"pct":89.13},"functions":{"total":17,"covered":14,"skipped":0,"pct":82.35},"branches":{"total":86,"covered":63,"skipped":0,"pct":73.25},"branchesTrue":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/home/runner/work/react-codemirror/react-codemirror/core/src/getDefaultExtensions.ts": {"lines":{"total":24,"covered":19,"skipped":0,"pct":79.16},"functions":{"total":1,"covered":1,"skipped":0,"pct":100},"statements":{"total":24,"covered":19,"skipped":0,"pct":79.16},"branches":{"total":23,"covered":10,"skipped":0,"pct":43.47}} +,"/home/runner/work/react-codemirror/react-codemirror/core/src/index.tsx": {"lines":{"total":10,"covered":9,"skipped":0,"pct":90},"functions":{"total":2,"covered":2,"skipped":0,"pct":100},"statements":{"total":11,"covered":10,"skipped":0,"pct":90.9},"branches":{"total":9,"covered":7,"skipped":0,"pct":77.77}} +,"/home/runner/work/react-codemirror/react-codemirror/core/src/useCodeMirror.ts": {"lines":{"total":51,"covered":50,"skipped":0,"pct":98.03},"functions":{"total":11,"covered":11,"skipped":0,"pct":100},"statements":{"total":52,"covered":51,"skipped":0,"pct":98.07},"branches":{"total":54,"covered":46,"skipped":0,"pct":85.18}} +,"/home/runner/work/react-codemirror/react-codemirror/core/src/utils.ts": {"lines":{"total":4,"covered":1,"skipped":0,"pct":25},"functions":{"total":3,"covered":0,"skipped":0,"pct":0},"statements":{"total":4,"covered":1,"skipped":0,"pct":25},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +,"/home/runner/work/react-codemirror/react-codemirror/core/src/theme/light.ts": {"lines":{"total":1,"covered":1,"skipped":0,"pct":100},"functions":{"total":0,"covered":0,"skipped":0,"pct":100},"statements":{"total":1,"covered":1,"skipped":0,"pct":100},"branches":{"total":0,"covered":0,"skipped":0,"pct":100}} +} diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 000000000..f418035b4 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 000000000..cc1213023 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 000000000..c1525b811 Binary files /dev/null and b/coverage/lcov-report/favicon.png differ diff --git a/coverage/lcov-report/index.html b/coverage/lcov-report/index.html new file mode 100644 index 000000000..c609b840a --- /dev/null +++ b/coverage/lcov-report/index.html @@ -0,0 +1,131 @@ + + + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 89.13% + Statements + 82/92 +
+ + +
+ 73.25% + Branches + 63/86 +
+ + +
+ 82.35% + Functions + 14/17 +
+ + +
+ 88.88% + Lines + 80/90 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
src +
+
89.01%81/9173.25%63/8682.35%14/1788.76%79/89
src/theme +
+
100%1/1100%0/0100%0/0100%1/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 000000000..b317a7cda --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 000000000..b3225238f --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 000000000..6ed68316e Binary files /dev/null and b/coverage/lcov-report/sort-arrow-sprite.png differ diff --git a/coverage/lcov-report/sorter.js b/coverage/lcov-report/sorter.js new file mode 100644 index 000000000..2bb296a8c --- /dev/null +++ b/coverage/lcov-report/sorter.js @@ -0,0 +1,196 @@ +/* eslint-disable */ +var addSorting = (function() { + 'use strict'; + var cols, + currentSort = { + index: 0, + desc: false + }; + + // returns the summary table element + function getTable() { + return document.querySelector('.coverage-summary'); + } + // returns the thead element of the summary table + function getTableHeader() { + return getTable().querySelector('thead tr'); + } + // returns the tbody element of the summary table + function getTableBody() { + return getTable().querySelector('tbody'); + } + // returns the th element for nth column + function getNthColumn(n) { + return getTableHeader().querySelectorAll('th')[n]; + } + + function onFilterInput() { + const searchValue = document.getElementById('fileSearch').value; + const rows = document.getElementsByTagName('tbody')[0].children; + for (let i = 0; i < rows.length; i++) { + const row = rows[i]; + if ( + row.textContent + .toLowerCase() + .includes(searchValue.toLowerCase()) + ) { + row.style.display = ''; + } else { + row.style.display = 'none'; + } + } + } + + // loads the search box + function addSearchBox() { + var template = document.getElementById('filterTemplate'); + var templateClone = template.content.cloneNode(true); + templateClone.getElementById('fileSearch').oninput = onFilterInput; + template.parentElement.appendChild(templateClone); + } + + // loads all columns + function loadColumns() { + var colNodes = getTableHeader().querySelectorAll('th'), + colNode, + cols = [], + col, + i; + + for (i = 0; i < colNodes.length; i += 1) { + colNode = colNodes[i]; + col = { + key: colNode.getAttribute('data-col'), + sortable: !colNode.getAttribute('data-nosort'), + type: colNode.getAttribute('data-type') || 'string' + }; + cols.push(col); + if (col.sortable) { + col.defaultDescSort = col.type === 'number'; + colNode.innerHTML = + colNode.innerHTML + ''; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov-report/src/getDefaultExtensions.ts.html b/coverage/lcov-report/src/getDefaultExtensions.ts.html new file mode 100644 index 000000000..17deeb8c2 --- /dev/null +++ b/coverage/lcov-report/src/getDefaultExtensions.ts.html @@ -0,0 +1,280 @@ + + + + + + Code coverage report for src/getDefaultExtensions.ts + + + + + + + + + +
+
+

All files / src getDefaultExtensions.ts

+
+ +
+ 79.16% + Statements + 19/24 +
+ + +
+ 43.47% + Branches + 10/23 +
+ + +
+ 100% + Functions + 1/1 +
+ + +
+ 79.16% + Lines + 19/24 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +31x +31x +31x +31x +  +31x +31x +31x +  +  +  +  +31x +4x +  +31x +  +29x +29x +  +2x +2x +  +  +  +  +  +  +31x +4x +  +31x +  +  +  +31x +  + 
import { type Extension } from '@codemirror/state';
+import { indentWithTab } from '@codemirror/commands';
+import { basicSetup, type BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';
+import { EditorView, keymap, placeholder } from '@codemirror/view';
+import { oneDark } from '@codemirror/theme-one-dark';
+import { EditorState } from '@codemirror/state';
+import { defaultLightThemeOption } from './theme/light';
+ 
+export * from '@codemirror/theme-one-dark';
+export * from './theme/light';
+ 
+export interface DefaultExtensionsOptions {
+  indentWithTab?: boolean;
+  basicSetup?: boolean | BasicSetupOptions;
+  placeholder?: string | HTMLElement;
+  theme?: 'light' | 'dark' | 'none' | Extension;
+  readOnly?: boolean;
+  editable?: boolean;
+}
+ 
+export const getDefaultExtensions = (optios: DefaultExtensionsOptions = {}): Extension[] => {
+  const {
+    indentWithTab: defaultIndentWithTab = true,
+    editable = true,
+    readOnly = false,
+    theme = 'light',
+    placeholder: placeholderStr = '',
+    basicSetup: defaultBasicSetup = true,
+  } = optios;
+  const getExtensions: Extension[] = [];
+  Eif (defaultIndentWithTab) {
+    getExtensions.unshift(keymap.of([indentWithTab]));
+  }
+  Eif (defaultBasicSetup) {
+    if (typeof defaultBasicSetup === 'boolean') {
+      getExtensions.unshift(basicSetup());
+    } else E{
+      getExtensions.unshift(basicSetup(defaultBasicSetup));
+    }
+  }
+  if (placeholderStr) {
+    getExtensions.unshift(placeholder(placeholderStr));
+  }
+  switch (theme) {
+    case 'light':
+      getExtensions.push(defaultLightThemeOption);
+      break;
+    case 'dark':
+      getExtensions.push(oneDark);
+      break;
+    case 'none':
+      break;
+    default:
+      getExtensions.push(theme);
+      break;
+  }
+  if (editable === false) {
+    getExtensions.push(EditorView.editable.of(false));
+  }
+  Iif (readOnly) {
+    getExtensions.push(EditorState.readOnly.of(true));
+  }
+ 
+  return [...getExtensions];
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/index.html b/coverage/lcov-report/src/index.html new file mode 100644 index 000000000..90ffe2fd1 --- /dev/null +++ b/coverage/lcov-report/src/index.html @@ -0,0 +1,161 @@ + + + + + + Code coverage report for src + + + + + + + + + +
+
+

All files src

+
+ +
+ 89.01% + Statements + 81/91 +
+ + +
+ 73.25% + Branches + 63/86 +
+ + +
+ 82.35% + Functions + 14/17 +
+ + +
+ 88.76% + Lines + 79/89 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
getDefaultExtensions.ts +
+
79.16%19/2443.47%10/23100%1/179.16%19/24
index.tsx +
+
90.9%10/1177.77%7/9100%2/290%9/10
useCodeMirror.ts +
+
98.07%51/5285.18%46/54100%11/1198.03%50/51
utils.ts +
+
25%1/4100%0/00%0/325%1/4
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/index.tsx.html b/coverage/lcov-report/src/index.tsx.html new file mode 100644 index 000000000..39a3453d2 --- /dev/null +++ b/coverage/lcov-report/src/index.tsx.html @@ -0,0 +1,577 @@ + + + + + + Code coverage report for src/index.tsx + + + + + + + + + +
+
+

All files / src index.tsx

+
+ +
+ 90.9% + Statements + 10/11 +
+ + +
+ 77.77% + Branches + 7/9 +
+ + +
+ 100% + Functions + 2/2 +
+ + +
+ 90% + Lines + 9/10 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +31x +31x +31x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +31x +  +  +  +  +  +  +  +31x +  +  +  +31x +31x +  +  +1x +  +  + 
import React, { useRef, forwardRef, useImperativeHandle } from 'react';
+import type { EditorState, EditorStateConfig, Extension, StateField } from '@codemirror/state';
+import type { EditorView, ViewUpdate } from '@codemirror/view';
+import { type BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';
+import { useCodeMirror } from './useCodeMirror';
+import { type Statistics } from './utils';
+ 
+export * from '@codemirror/view';
+export * from '@codemirror/state';
+ 
+export * from '@uiw/codemirror-extensions-basic-setup';
+export * from './useCodeMirror';
+export * from './getDefaultExtensions';
+export * from './utils';
+ 
+export interface ReactCodeMirrorProps
+  extends Omit<EditorStateConfig, 'doc' | 'extensions'>,
+    Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'placeholder'> {
+  /** value of the auto created model in the editor. */
+  value?: string;
+  height?: string;
+  minHeight?: string;
+  maxHeight?: string;
+  width?: string;
+  minWidth?: string;
+  maxWidth?: string;
+  /** focus on the editor. */
+  autoFocus?: boolean;
+  /** Enables a placeholder—a piece of example content to show when the editor is empty. */
+  placeholder?: string | HTMLElement;
+  /**
+   * `light` / `dark` / `Extension` Defaults to `light`.
+   * @default light
+   */
+  theme?: 'light' | 'dark' | 'none' | Extension;
+  /**
+   * Whether to optional basicSetup by default
+   * @default true
+   */
+  basicSetup?: boolean | BasicSetupOptions;
+  /**
+   * This disables editing of the editor content by the user.
+   * @default true
+   */
+  editable?: boolean;
+  /**
+   * This disables editing of the editor content by the user.
+   * @default false
+   */
+  readOnly?: boolean;
+  /**
+   * Controls whether pressing the `Tab` key inserts a tab character and indents the text (`true`)
+   * or behaves according to the browser's default behavior (`false`).
+   * @default true
+   */
+  indentWithTab?: boolean;
+  /** Fired whenever a change occurs to the document. */
+  onChange?(value: string, viewUpdate: ViewUpdate): void;
+  /** Some data on the statistics editor. */
+  onStatistics?(data: Statistics): void;
+  /** Fired whenever any state change occurs within the editor, including non-document changes like lint results. */
+  onUpdate?(viewUpdate: ViewUpdate): void;
+  /** The first time the editor executes the event. */
+  onCreateEditor?(view: EditorView, state: EditorState): void;
+  /**
+   * Extension values can be [provided](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions) when creating a state to attach various kinds of configuration and behavior information.
+   * They can either be built-in extension-providing objects,
+   * such as [state fields](https://codemirror.net/6/docs/ref/#state.StateField) or [facet providers](https://codemirror.net/6/docs/ref/#state.Facet.of),
+   * or objects with an extension in its `extension` property. Extensions can be nested in arrays arbitrarily deep—they will be flattened when processed.
+   */
+  extensions?: Extension[];
+  /**
+   * If the view is going to be mounted in a shadow root or document other than the one held by the global variable document (the default), you should pass it here.
+   * Originally from the [config of EditorView](https://codemirror.net/6/docs/ref/#view.EditorView.constructor%5Econfig.root)
+   */
+  root?: ShadowRoot | Document;
+  /**
+   * Create a state from its JSON representation serialized with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function
+   */
+  initialState?: {
+    json: any;
+    fields?: Record<string, StateField<any>>;
+  };
+}
+ 
+export interface ReactCodeMirrorRef {
+  editor?: HTMLDivElement | null;
+  state?: EditorState;
+  view?: EditorView;
+}
+ 
+const ReactCodeMirror = forwardRef<ReactCodeMirrorRef, ReactCodeMirrorProps>((props, ref) => {
+  const {
+    className,
+    value = '',
+    selection,
+    extensions = [],
+    onChange,
+    onStatistics,
+    onCreateEditor,
+    onUpdate,
+    autoFocus,
+    theme = 'light',
+    height,
+    minHeight,
+    maxHeight,
+    width,
+    minWidth,
+    maxWidth,
+    basicSetup,
+    placeholder,
+    indentWithTab,
+    editable,
+    readOnly,
+    root,
+    initialState,
+    ...other
+  } = props;
+  const editor = useRef<HTMLDivElement>(null);
+  const { state, view, container } = useCodeMirror({
+    container: editor.current,
+    root,
+    value,
+    autoFocus,
+    theme,
+    height,
+    minHeight,
+    maxHeight,
+    width,
+    minWidth,
+    maxWidth,
+    basicSetup,
+    placeholder,
+    indentWithTab,
+    editable,
+    readOnly,
+    selection,
+    onChange,
+    onStatistics,
+    onCreateEditor,
+    onUpdate,
+    extensions,
+    initialState,
+  });
+ 
+  useImperativeHandle(ref, () => ({ editor: editor.current, state: state, view: view }), [
+    editor,
+    container,
+    state,
+    view,
+  ]);
+ 
+  // check type of value
+  Iif (typeof value !== 'string') {
+    throw new Error(`value must be typeof string but got ${typeof value}`);
+  }
+ 
+  const defaultClassNames = typeof theme === 'string' ? `cm-theme-${theme}` : 'cm-theme';
+  return <div ref={editor} className={`${defaultClassNames}${className ? ` ${className}` : ''}`} {...other}></div>;
+});
+ 
+ReactCodeMirror.displayName = 'CodeMirror';
+ 
+export default ReactCodeMirror;
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/theme/index.html b/coverage/lcov-report/src/theme/index.html new file mode 100644 index 000000000..ef01159bf --- /dev/null +++ b/coverage/lcov-report/src/theme/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for src/theme + + + + + + + + + +
+
+

All files src/theme

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
light.ts +
+
100%1/1100%0/0100%0/0100%1/1
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/theme/light.ts.html b/coverage/lcov-report/src/theme/light.ts.html new file mode 100644 index 000000000..0ae06d3ff --- /dev/null +++ b/coverage/lcov-report/src/theme/light.ts.html @@ -0,0 +1,121 @@ + + + + + + Code coverage report for src/theme/light.ts + + + + + + + + + +
+
+

All files / src/theme light.ts

+
+ +
+ 100% + Statements + 1/1 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 100% + Functions + 0/0 +
+ + +
+ 100% + Lines + 1/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13  +  +1x +  +  +  +  +  +  +  +  +  + 
import { EditorView } from '@codemirror/view';
+ 
+export const defaultLightThemeOption = EditorView.theme(
+  {
+    '&': {
+      backgroundColor: '#fff',
+    },
+  },
+  {
+    dark: false,
+  },
+);
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/useCodeMirror.ts.html b/coverage/lcov-report/src/useCodeMirror.ts.html new file mode 100644 index 000000000..d92abed96 --- /dev/null +++ b/coverage/lcov-report/src/useCodeMirror.ts.html @@ -0,0 +1,601 @@ + + + + + + Code coverage report for src/useCodeMirror.ts + + + + + + + + + +
+
+

All files / src useCodeMirror.ts

+
+ +
+ 98.07% + Statements + 51/52 +
+ + +
+ 85.18% + Branches + 46/54 +
+ + +
+ 100% + Functions + 11/11 +
+ + +
+ 98.03% + Lines + 50/51 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173  +  +  +  +  +  +  +1x +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +31x +31x +31x +31x +31x +  +  +  +  +  +  +  +  +  +  +  +  +31x +11x +  +  +  +  +2x +  +1x +1x +1x +  +11x +  +  +31x +  +  +  +  +  +  +  +  +31x +  +31x +4x +  +31x +  +31x +29x +6x +  +  +  +  +6x +  +  +6x +6x +6x +  +  +  +  +6x +6x +  +  +29x +26x +6x +6x +  +  +  +  +31x +  +31x +15x +12x +6x +6x +  +  +  +  +  +31x +15x +2x +  +  +  +31x +30x +7x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +31x +16x +  +  +16x +16x +1x +  +  +  +  +  +  +31x +  + 
import { useEffect, useState } from 'react';
+import { Annotation, EditorState, StateEffect, type Extension } from '@codemirror/state';
+import { EditorView, type ViewUpdate } from '@codemirror/view';
+import { getDefaultExtensions } from './getDefaultExtensions';
+import { getStatistics } from './utils';
+import { type ReactCodeMirrorProps } from '.';
+ 
+const External = Annotation.define<boolean>();
+ 
+export interface UseCodeMirror extends ReactCodeMirrorProps {
+  container?: HTMLDivElement | null;
+}
+ 
+const emptyExtensions: Extension[] = [];
+ 
+export function useCodeMirror(props: UseCodeMirror) {
+  const {
+    value,
+    selection,
+    onChange,
+    onStatistics,
+    onCreateEditor,
+    onUpdate,
+    extensions = emptyExtensions,
+    autoFocus,
+    theme = 'light',
+    height = null,
+    minHeight = null,
+    maxHeight = null,
+    width = null,
+    minWidth = null,
+    maxWidth = null,
+    placeholder: placeholderStr = '',
+    editable = true,
+    readOnly = false,
+    indentWithTab: defaultIndentWithTab = true,
+    basicSetup: defaultBasicSetup = true,
+    root,
+    initialState,
+  } = props;
+  const [container, setContainer] = useState<HTMLDivElement | null>();
+  const [view, setView] = useState<EditorView>();
+  const [state, setState] = useState<EditorState>();
+  const defaultThemeOption = EditorView.theme({
+    '&': {
+      height,
+      minHeight,
+      maxHeight,
+      width,
+      minWidth,
+      maxWidth,
+    },
+    '& .cm-scroller': {
+      height: '100% !important',
+    },
+  });
+  const updateListener = EditorView.updateListener.of((vu: ViewUpdate) => {
+    if (
+      vu.docChanged &&
+      typeof onChange === 'function' &&
+      // Fix echoing of the remote changes:
+      // If transaction is market as remote we don't have to call `onChange` handler again
+      !vu.transactions.some((tr) => tr.annotation(External))
+    ) {
+      const doc = vu.state.doc;
+      const value = doc.toString();
+      onChange(value, vu);
+    }
+    onStatistics && onStatistics(getStatistics(vu));
+  });
+ 
+  const defaultExtensions = getDefaultExtensions({
+    theme,
+    editable,
+    readOnly,
+    placeholder: placeholderStr,
+    indentWithTab: defaultIndentWithTab,
+    basicSetup: defaultBasicSetup,
+  });
+ 
+  let getExtensions = [updateListener, defaultThemeOption, ...defaultExtensions];
+ 
+  if (onUpdate && typeof onUpdate === 'function') {
+    getExtensions.push(EditorView.updateListener.of(onUpdate));
+  }
+  getExtensions = getExtensions.concat(extensions);
+ 
+  useEffect(() => {
+    if (container && !state) {
+      const config = {
+        doc: value,
+        selection,
+        extensions: getExtensions,
+      };
+      const stateCurrent = initialState
+        ? EditorState.fromJSON(initialState.json, config, initialState.fields)
+        : EditorState.create(config);
+      setState(stateCurrent);
+      Eif (!view) {
+        const viewCurrent = new EditorView({
+          state: stateCurrent,
+          parent: container,
+          root,
+        });
+        setView(viewCurrent);
+        onCreateEditor && onCreateEditor(viewCurrent, stateCurrent);
+      }
+    }
+    return () => {
+      if (view) {
+        setState(undefined);
+        setView(undefined);
+      }
+    };
+  }, [container, state]);
+ 
+  useEffect(() => setContainer(props.container), [props.container]);
+ 
+  useEffect(
+    () => () => {
+      if (view) {
+        view.destroy();
+        setView(undefined);
+      }
+    },
+    [view],
+  );
+ 
+  useEffect(() => {
+    if (autoFocus && view) {
+      view.focus();
+    }
+  }, [autoFocus, view]);
+ 
+  useEffect(() => {
+    if (view) {
+      view.dispatch({ effects: StateEffect.reconfigure.of(getExtensions) });
+    }
+    // eslint-disable-next-line react-hooks/exhaustive-deps
+  }, [
+    theme,
+    extensions,
+    height,
+    minHeight,
+    maxHeight,
+    width,
+    minWidth,
+    maxWidth,
+    placeholderStr,
+    editable,
+    readOnly,
+    defaultIndentWithTab,
+    defaultBasicSetup,
+    onChange,
+    onUpdate,
+  ]);
+ 
+  useEffect(() => {
+    Iif (value === undefined) {
+      return;
+    }
+    const currentValue = view ? view.state.doc.toString() : '';
+    if (view && value !== currentValue) {
+      view.dispatch({
+        changes: { from: 0, to: currentValue.length, insert: value || '' },
+        annotations: [External.of(true)],
+      });
+    }
+  }, [value, view]);
+ 
+  return { state, setState, view, setView, container, setContainer };
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/src/utils.ts.html b/coverage/lcov-report/src/utils.ts.html new file mode 100644 index 000000000..8f82077b9 --- /dev/null +++ b/coverage/lcov-report/src/utils.ts.html @@ -0,0 +1,232 @@ + + + + + + Code coverage report for src/utils.ts + + + + + + + + + +
+
+

All files / src utils.ts

+
+ +
+ 25% + Statements + 1/4 +
+ + +
+ 100% + Branches + 0/0 +
+ + +
+ 0% + Functions + 0/3 +
+ + +
+ 25% + Lines + 1/4 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
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  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +1x +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
import type { EditorSelection, SelectionRange, Line } from '@codemirror/state';
+import type { ViewUpdate } from '@codemirror/view';
+ 
+export interface Statistics {
+  /** total length of the document */
+  length: number;
+  /** Get the number of lines in the editor. */
+  lineCount: number;
+  /** Get the currently line description around the given position. */
+  line: Line;
+  /** Get the proper [line-break](https://codemirror.net/docs/ref/#state.EditorState^lineSeparator) string for this state. */
+  lineBreak: string;
+  /** Returns true when the editor is [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only. */
+  readOnly: boolean;
+  /** The size (in columns) of a tab in the document, determined by the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet. */
+  tabSize: number;
+  /** Cursor Position */
+  selection: EditorSelection;
+  /** Make sure the selection only has one range. */
+  selectionAsSingle: SelectionRange;
+  /** Retrieves a list of all current selections. */
+  ranges: readonly SelectionRange[];
+  /** Get the currently selected code. */
+  selectionCode: string;
+  /**
+   * The length of the given array should be the same as the number of active selections.
+   * Replaces the content of the selections with the strings in the array.
+   */
+  selections: string[];
+  /** Return true if any text is selected. */
+  selectedText: boolean;
+}
+ 
+export const getStatistics = (view: ViewUpdate): Statistics => {
+  return {
+    line: view.state.doc.lineAt(view.state.selection.main.from),
+    lineCount: view.state.doc.lines,
+    lineBreak: view.state.lineBreak,
+    length: view.state.doc.length,
+    readOnly: view.state.readOnly,
+    tabSize: view.state.tabSize,
+    selection: view.state.selection,
+    selectionAsSingle: view.state.selection.asSingle().main,
+    ranges: view.state.selection.ranges,
+    selectionCode: view.state.sliceDoc(view.state.selection.main.from, view.state.selection.main.to),
+    selections: view.state.selection.ranges.map((r) => view.state.sliceDoc(r.from, r.to)),
+    selectedText: view.state.selection.ranges.some((r) => !r.empty),
+  };
+};
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 000000000..f5c988f42 --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,255 @@ +TN: +SF:src/getDefaultExtensions.ts +FN:21,(anonymous_0) +FNF:1 +FNH:1 +FNDA:31,(anonymous_0) +DA:21,1 +DA:29,31 +DA:30,31 +DA:31,31 +DA:32,31 +DA:34,31 +DA:35,31 +DA:36,31 +DA:38,0 +DA:41,31 +DA:42,4 +DA:44,31 +DA:46,29 +DA:47,29 +DA:49,2 +DA:50,2 +DA:52,0 +DA:54,0 +DA:55,0 +DA:57,31 +DA:58,4 +DA:60,31 +DA:61,0 +DA:64,31 +LF:24 +LH:19 +BRDA:21,0,0,0 +BRDA:23,1,0,0 +BRDA:24,2,0,0 +BRDA:25,3,0,0 +BRDA:26,4,0,0 +BRDA:27,5,0,0 +BRDA:28,6,0,0 +BRDA:31,7,0,31 +BRDA:31,7,1,0 +BRDA:34,8,0,31 +BRDA:34,8,1,0 +BRDA:35,9,0,31 +BRDA:35,9,1,0 +BRDA:41,10,0,4 +BRDA:41,10,1,27 +BRDA:44,11,0,29 +BRDA:44,11,1,2 +BRDA:44,11,2,0 +BRDA:44,11,3,0 +BRDA:57,12,0,4 +BRDA:57,12,1,27 +BRDA:60,13,0,0 +BRDA:60,13,1,31 +BRF:23 +BRH:10 +end_of_record +TN: +SF:src/index.tsx +FN:92,(anonymous_0) +FN:146,(anonymous_1) +FNF:2 +FNH:2 +FNDA:31,(anonymous_0) +FNDA:4,(anonymous_1) +DA:92,1 +DA:118,31 +DA:119,31 +DA:120,31 +DA:146,31 +DA:154,31 +DA:155,0 +DA:158,31 +DA:159,31 +DA:162,1 +LF:10 +LH:9 +BRDA:95,0,0,14 +BRDA:97,1,0,31 +BRDA:103,2,0,29 +BRDA:154,3,0,0 +BRDA:154,3,1,31 +BRDA:158,4,0,31 +BRDA:158,4,1,0 +BRDA:159,5,0,10 +BRDA:159,5,1,21 +BRF:9 +BRH:7 +end_of_record +TN: +SF:src/useCodeMirror.ts +FN:16,useCodeMirror +FN:57,(anonymous_1) +FN:63,(anonymous_2) +FN:88,(anonymous_3) +FN:109,(anonymous_4) +FN:117,(anonymous_5) +FN:120,(anonymous_6) +FN:120,(anonymous_7) +FN:129,(anonymous_8) +FN:135,(anonymous_9) +FN:158,(anonymous_10) +FNF:11 +FNH:11 +FNDA:31,useCodeMirror +FNDA:11,(anonymous_1) +FNDA:2,(anonymous_2) +FNDA:29,(anonymous_3) +FNDA:26,(anonymous_4) +FNDA:15,(anonymous_5) +FNDA:15,(anonymous_6) +FNDA:12,(anonymous_7) +FNDA:15,(anonymous_8) +FNDA:30,(anonymous_9) +FNDA:16,(anonymous_10) +DA:8,1 +DA:14,1 +DA:40,31 +DA:41,31 +DA:42,31 +DA:43,31 +DA:44,31 +DA:57,31 +DA:58,11 +DA:63,2 +DA:65,1 +DA:66,1 +DA:67,1 +DA:69,11 +DA:72,31 +DA:81,31 +DA:83,31 +DA:84,4 +DA:86,31 +DA:88,31 +DA:89,29 +DA:90,6 +DA:95,6 +DA:98,6 +DA:99,6 +DA:100,6 +DA:105,6 +DA:106,6 +DA:109,29 +DA:110,26 +DA:111,6 +DA:112,6 +DA:117,31 +DA:119,31 +DA:120,15 +DA:121,12 +DA:122,6 +DA:123,6 +DA:129,31 +DA:130,15 +DA:131,2 +DA:135,31 +DA:136,30 +DA:137,7 +DA:158,31 +DA:159,16 +DA:160,0 +DA:162,16 +DA:163,16 +DA:164,1 +DA:171,31 +LF:51 +LH:50 +BRDA:24,0,0,0 +BRDA:26,1,0,0 +BRDA:27,2,0,31 +BRDA:28,3,0,31 +BRDA:29,4,0,31 +BRDA:30,5,0,31 +BRDA:31,6,0,31 +BRDA:32,7,0,31 +BRDA:33,8,0,27 +BRDA:34,9,0,27 +BRDA:35,10,0,31 +BRDA:36,11,0,31 +BRDA:37,12,0,31 +BRDA:58,13,0,1 +BRDA:58,13,1,10 +BRDA:59,14,0,11 +BRDA:59,14,1,2 +BRDA:59,14,2,2 +BRDA:69,15,0,11 +BRDA:69,15,1,0 +BRDA:83,16,0,4 +BRDA:83,16,1,27 +BRDA:83,17,0,31 +BRDA:83,17,1,4 +BRDA:89,18,0,6 +BRDA:89,18,1,23 +BRDA:89,19,0,29 +BRDA:89,19,1,12 +BRDA:95,20,0,0 +BRDA:95,20,1,6 +BRDA:99,21,0,6 +BRDA:99,21,1,0 +BRDA:106,22,0,6 +BRDA:106,22,1,0 +BRDA:110,23,0,6 +BRDA:110,23,1,20 +BRDA:121,24,0,6 +BRDA:121,24,1,6 +BRDA:130,25,0,2 +BRDA:130,25,1,13 +BRDA:130,26,0,15 +BRDA:130,26,1,4 +BRDA:136,27,0,7 +BRDA:136,27,1,23 +BRDA:159,28,0,0 +BRDA:159,28,1,16 +BRDA:162,29,0,7 +BRDA:162,29,1,9 +BRDA:163,30,0,1 +BRDA:163,30,1,15 +BRDA:163,31,0,16 +BRDA:163,31,1,7 +BRDA:165,32,0,1 +BRDA:165,32,1,0 +BRF:54 +BRH:46 +end_of_record +TN: +SF:src/utils.ts +FN:34,(anonymous_0) +FN:46,(anonymous_1) +FN:47,(anonymous_2) +FNF:3 +FNH:0 +FNDA:0,(anonymous_0) +FNDA:0,(anonymous_1) +FNDA:0,(anonymous_2) +DA:34,1 +DA:35,0 +DA:46,0 +DA:47,0 +LF:4 +LH:1 +BRF:0 +BRH:0 +end_of_record +TN: +SF:src/theme/light.ts +FNF:0 +FNH:0 +DA:3,1 +LF:1 +LH:1 +BRF:0 +BRH:0 +end_of_record diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 000000000..b37ca26b7 Binary files /dev/null and b/favicon.ico differ diff --git a/index.html b/index.html new file mode 100644 index 000000000..7b7a6469b --- /dev/null +++ b/index.html @@ -0,0 +1 @@ +React CodeMirror - CodeMirror component for React.
\ No newline at end of file diff --git a/static/css/main.0da2652e.css b/static/css/main.0da2652e.css new file mode 100644 index 000000000..da64bbd7b --- /dev/null +++ b/static/css/main.0da2652e.css @@ -0,0 +1,2 @@ +.code-preview-layout[data-color-mode*=light],[data-color-mode*=light],body[data-color-mode*=light]{--color-canvas-subtle:#f6f8fa;--color-border-muted:#d8dee4}.code-preview-layout[data-color-mode*=dark],[data-color-mode*=dark],body[data-color-mode*=dark]{--color-canvas-subtle:#161b22;--color-border-muted:#21262d}.w-rcpl.w-bordered{border:1px solid var(--color-border-muted)}.w-rcpl.w-bordered>.w-rcpl-toolbar{border-top:1px solid var(--color-border-muted)}.w-rcpl.w-bordered>.w-rcpl-code:not(.w-hidden){border-radius:0 0 6px 6px;border-top:1px dashed var(--color-border-muted)}.w-rcpl{background-color:var(--color-canvas-subtle);border-radius:5px}.w-rcpl-preview:not(:last-child){border-radius:5px 5px 0 0}.w-rcpl-code.w-hidden{height:0;overflow:hidden;padding:0}.w-rcpl-code{border-top-left-radius:0;border-top-right-radius:0;height:auto;margin-bottom:0!important;overflow:auto;transition:height cubic-bezier(.36,0,.66,-.56)}.w-rcpl-code>*{margin:0!important;padding:0!important}.w-disable-checkered>.w-rcpl-preview{background-image:none}.w-rcpl-preview{background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='16' height='16' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E")}.w-rcpl-code,.w-rcpl-preview{padding:15px}.w-rcpl-extra,.w-rcpl-title{align-items:center;display:flex}.w-rcpl-toolbar button svg{display:block;height:18px;opacity:.37;transition:opacity .3s}.w-rcpl-toolbar button svg:hover{opacity:1}.w-rcpl-toolbar button{background-color:transparent;border:0;box-sizing:border-box;color:currentColor;cursor:pointer;display:inline-block;height:inherit;outline:none;padding:3px 4px;position:relative;transition:opacity .2s,background .2s}.w-rcpl-toolbar{display:flex;justify-content:space-between;padding:5px 5px 5px 8px}@media (prefers-color-scheme:dark){.wmde-markdown,.wmde-markdown-var{--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#c9d1d9;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#c9d1d9;--color-prettylights-syntax-markup-bold:#c9d1d9;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#c9d1d9;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-brackethighlighter-angle:#8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-fg-default:#c9d1d9;--color-fg-muted:#8b949e;--color-fg-subtle:#484f58;--color-canvas-default:#0d1117;--color-canvas-subtle:#161b22;--color-border-default:#30363d;--color-border-muted:#21262d;--color-neutral-muted:hsla(215,8%,47%,.4);--color-accent-fg:#58a6ff;--color-accent-emphasis:#1f6feb;--color-attention-subtle:rgba(187,128,9,.15);--color-danger-fg:#f85149;--color-danger-emphasis:#da3633;--color-attention-fg:#d29922;--color-attention-emphasis:#9e6a03;--color-done-fg:#a371f7;--color-done-emphasis:#8957e5;--color-success-fg:#3fb950;--color-success-emphasis:#238636;--color-copied-active-bg:#2e9b33;color-scheme:dark}}@media (prefers-color-scheme:light){.wmde-markdown,.wmde-markdown-var{--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#24292f;--color-fg-muted:#57606a;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-attention-subtle:#fff8c5;--color-danger-fg:#d1242f;--color-danger-emphasis:#cf222e;--color-attention-fg:#9a6700;--color-attention-emphasis:#9a6700;--color-done-fg:#8250df;--color-done-emphasis:#8250df;--color-success-fg:#1a7f37;--color-success-emphasis:#1f883d;--color-copied-active-bg:#2e9b33;color-scheme:light}}.wmde-markdown-var[data-color-mode*=dark],.wmde-markdown[data-color-mode*=dark],[data-color-mode*=dark] .wmde-markdown,[data-color-mode*=dark] .wmde-markdown-var,body[data-color-mode*=dark]{--color-prettylights-syntax-comment:#8b949e;--color-prettylights-syntax-constant:#79c0ff;--color-prettylights-syntax-entity:#d2a8ff;--color-prettylights-syntax-storage-modifier-import:#c9d1d9;--color-prettylights-syntax-entity-tag:#7ee787;--color-prettylights-syntax-keyword:#ff7b72;--color-prettylights-syntax-string:#a5d6ff;--color-prettylights-syntax-variable:#ffa657;--color-prettylights-syntax-brackethighlighter-unmatched:#f85149;--color-prettylights-syntax-invalid-illegal-text:#f0f6fc;--color-prettylights-syntax-invalid-illegal-bg:#8e1519;--color-prettylights-syntax-carriage-return-text:#f0f6fc;--color-prettylights-syntax-carriage-return-bg:#b62324;--color-prettylights-syntax-string-regexp:#7ee787;--color-prettylights-syntax-markup-list:#f2cc60;--color-prettylights-syntax-markup-heading:#1f6feb;--color-prettylights-syntax-markup-italic:#c9d1d9;--color-prettylights-syntax-markup-bold:#c9d1d9;--color-prettylights-syntax-markup-deleted-text:#ffdcd7;--color-prettylights-syntax-markup-deleted-bg:#67060c;--color-prettylights-syntax-markup-inserted-text:#aff5b4;--color-prettylights-syntax-markup-inserted-bg:#033a16;--color-prettylights-syntax-markup-changed-text:#ffdfb6;--color-prettylights-syntax-markup-changed-bg:#5a1e02;--color-prettylights-syntax-markup-ignored-text:#c9d1d9;--color-prettylights-syntax-markup-ignored-bg:#1158c7;--color-prettylights-syntax-meta-diff-range:#d2a8ff;--color-prettylights-syntax-brackethighlighter-angle:#8b949e;--color-prettylights-syntax-sublimelinter-gutter-mark:#484f58;--color-prettylights-syntax-constant-other-reference-link:#a5d6ff;--color-fg-default:#c9d1d9;--color-fg-muted:#8b949e;--color-fg-subtle:#484f58;--color-canvas-default:#0d1117;--color-canvas-subtle:#161b22;--color-border-default:#30363d;--color-border-muted:#21262d;--color-neutral-muted:hsla(215,8%,47%,.4);--color-accent-fg:#58a6ff;--color-accent-emphasis:#1f6feb;--color-attention-subtle:rgba(187,128,9,.15);--color-danger-fg:#f85149;color-scheme:dark}.wmde-markdown-var[data-color-mode*=light],.wmde-markdown[data-color-mode*=light],[data-color-mode*=light] .wmde-markdown,[data-color-mode*=light] .wmde-markdown-var,body[data-color-mode*=light]{--color-prettylights-syntax-comment:#6e7781;--color-prettylights-syntax-constant:#0550ae;--color-prettylights-syntax-entity:#8250df;--color-prettylights-syntax-storage-modifier-import:#24292f;--color-prettylights-syntax-entity-tag:#116329;--color-prettylights-syntax-keyword:#cf222e;--color-prettylights-syntax-string:#0a3069;--color-prettylights-syntax-variable:#953800;--color-prettylights-syntax-brackethighlighter-unmatched:#82071e;--color-prettylights-syntax-invalid-illegal-text:#f6f8fa;--color-prettylights-syntax-invalid-illegal-bg:#82071e;--color-prettylights-syntax-carriage-return-text:#f6f8fa;--color-prettylights-syntax-carriage-return-bg:#cf222e;--color-prettylights-syntax-string-regexp:#116329;--color-prettylights-syntax-markup-list:#3b2300;--color-prettylights-syntax-markup-heading:#0550ae;--color-prettylights-syntax-markup-italic:#24292f;--color-prettylights-syntax-markup-bold:#24292f;--color-prettylights-syntax-markup-deleted-text:#82071e;--color-prettylights-syntax-markup-deleted-bg:#ffebe9;--color-prettylights-syntax-markup-inserted-text:#116329;--color-prettylights-syntax-markup-inserted-bg:#dafbe1;--color-prettylights-syntax-markup-changed-text:#953800;--color-prettylights-syntax-markup-changed-bg:#ffd8b5;--color-prettylights-syntax-markup-ignored-text:#eaeef2;--color-prettylights-syntax-markup-ignored-bg:#0550ae;--color-prettylights-syntax-meta-diff-range:#8250df;--color-prettylights-syntax-brackethighlighter-angle:#57606a;--color-prettylights-syntax-sublimelinter-gutter-mark:#8c959f;--color-prettylights-syntax-constant-other-reference-link:#0a3069;--color-fg-default:#24292f;--color-fg-muted:#57606a;--color-fg-subtle:#6e7781;--color-canvas-default:#fff;--color-canvas-subtle:#f6f8fa;--color-border-default:#d0d7de;--color-border-muted:#d8dee4;--color-neutral-muted:rgba(175,184,193,.2);--color-accent-fg:#0969da;--color-accent-emphasis:#0969da;--color-attention-subtle:#fff8c5;--color-danger-fg:#cf222e;color-scheme:light}.wmde-markdown{-webkit-text-size-adjust:100%;word-wrap:break-word;background-color:var(--color-canvas-default);color:var(--color-fg-default);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji;font-size:16px;line-height:1.5}.wmde-markdown details,.wmde-markdown figcaption,.wmde-markdown figure{display:block}.wmde-markdown summary{display:list-item}.wmde-markdown [hidden]{display:none!important}.wmde-markdown a{background-color:transparent;color:var(--color-accent-fg);text-decoration:none}.wmde-markdown a:active,.wmde-markdown a:hover{outline-width:0}.wmde-markdown abbr[title]{border-bottom:none;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.wmde-markdown b,.wmde-markdown strong{font-weight:600}.wmde-markdown dfn{font-style:italic}.wmde-markdown h1{border-bottom:1px solid var(--color-border-muted);font-size:2em;font-weight:600;margin:.67em 0;padding-bottom:.3em}.wmde-markdown mark{background-color:var(--color-attention-subtle);color:var(--color-text-primary)}.wmde-markdown small{font-size:90%}.wmde-markdown sub,.wmde-markdown sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}.wmde-markdown sub{bottom:-.25em}.wmde-markdown sup{top:-.5em}.wmde-markdown img{background-color:var(--color-canvas-default);border-style:none;box-sizing:content-box;display:inline-block;max-width:100%}.wmde-markdown code,.wmde-markdown kbd,.wmde-markdown pre,.wmde-markdown samp{font-family:monospace,monospace;font-size:1em}.wmde-markdown figure{margin:1em 40px}.wmde-markdown hr{background:transparent;background-color:var(--color-border-default);border:0;border-bottom:1px solid var(--color-border-muted);box-sizing:content-box;height:.25em;margin:24px 0;overflow:hidden;padding:0}.wmde-markdown input{font:inherit;font-family:inherit;font-size:inherit;line-height:inherit;margin:0;overflow:visible}.wmde-markdown [type=button],.wmde-markdown [type=reset],.wmde-markdown [type=submit]{-webkit-appearance:button}.wmde-markdown [type=button]::-moz-focus-inner,.wmde-markdown [type=reset]::-moz-focus-inner,.wmde-markdown [type=submit]::-moz-focus-inner{border-style:none;padding:0}.wmde-markdown [type=button]:-moz-focusring,.wmde-markdown [type=reset]:-moz-focusring,.wmde-markdown [type=submit]:-moz-focusring{outline:1px dotted ButtonText}.wmde-markdown [type=checkbox],.wmde-markdown [type=radio]{box-sizing:border-box;padding:0}.wmde-markdown [type=number]::-webkit-inner-spin-button,.wmde-markdown [type=number]::-webkit-outer-spin-button{height:auto}.wmde-markdown [type=search]{-webkit-appearance:textfield;outline-offset:-2px}.wmde-markdown [type=search]::-webkit-search-cancel-button,.wmde-markdown [type=search]::-webkit-search-decoration{-webkit-appearance:none}.wmde-markdown ::-webkit-input-placeholder{color:inherit;opacity:.54}.wmde-markdown ::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}.wmde-markdown a:hover{text-decoration:underline}.wmde-markdown hr:after,.wmde-markdown hr:before{content:"";display:table}.wmde-markdown hr:after{clear:both}.wmde-markdown table{border-collapse:collapse;border-spacing:0;display:block;max-width:100%;width:-moz-max-content;width:max-content}.wmde-markdown td,.wmde-markdown th{padding:0}.wmde-markdown details summary{cursor:pointer}.wmde-markdown details:not([open])>:not(summary){display:none!important}.wmde-markdown kbd{background-color:var(--color-canvas-subtle);border-bottom-color:var(--color-neutral-muted);border:1px solid var(--color-neutral-muted);border-radius:6px;box-shadow:inset 0 -1px 0 var(--color-neutral-muted);color:var(--color-fg-default);display:inline-block;font:11px ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;line-height:10px;padding:3px 5px;vertical-align:middle}.wmde-markdown h1,.wmde-markdown h2,.wmde-markdown h3,.wmde-markdown h4,.wmde-markdown h5,.wmde-markdown h6{font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:24px}.wmde-markdown h2{border-bottom:1px solid var(--color-border-muted);font-size:1.5em;font-weight:600;padding-bottom:.3em}.wmde-markdown h3{font-size:1.25em;font-weight:600}.wmde-markdown h4{font-size:1em;font-weight:600}.wmde-markdown h5{font-size:.875em;font-weight:600}.wmde-markdown h6{color:var(--color-fg-muted);font-size:.85em;font-weight:600}.wmde-markdown p{margin-bottom:10px;margin-top:0}.wmde-markdown blockquote{border-left:.25em solid var(--color-border-default);color:var(--color-fg-muted);margin:0;padding:0 1em}.wmde-markdown ol,.wmde-markdown ul{margin-bottom:0;margin-top:0;padding-left:2em}.wmde-markdown ol ol,.wmde-markdown ul ol{list-style-type:lower-roman}.wmde-markdown ol ol ol,.wmde-markdown ol ul ol,.wmde-markdown ul ol ol,.wmde-markdown ul ul ol{list-style-type:lower-alpha}.wmde-markdown dd{margin-left:0}.wmde-markdown code,.wmde-markdown pre,.wmde-markdown tt{font-family:ui-monospace,SFMono-Regular,SF Mono,Menlo,Consolas,Liberation Mono,monospace;font-size:12px}.wmde-markdown pre{word-wrap:normal;margin-bottom:0;margin-top:0}.wmde-markdown .octicon{fill:currentColor;display:inline-block;overflow:visible!important;vertical-align:text-bottom}.wmde-markdown ::-moz-placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown ::placeholder{color:var(--color-fg-subtle);opacity:1}.wmde-markdown input::-webkit-inner-spin-button,.wmde-markdown input::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;margin:0}.wmde-markdown [data-catalyst]{display:block}.wmde-markdown:after,.wmde-markdown:before{content:"";display:table}.wmde-markdown:after{clear:both}.wmde-markdown>:first-child{margin-top:0!important}.wmde-markdown>:last-child{margin-bottom:0!important}.wmde-markdown a:not([href]){color:inherit;text-decoration:none}.wmde-markdown .absent{color:var(--color-danger-fg)}.wmde-markdown a.anchor{float:left;line-height:1;margin-left:-20px;padding-right:4px}.wmde-markdown .anchor:focus{outline:none}.wmde-markdown blockquote,.wmde-markdown details,.wmde-markdown dl,.wmde-markdown ol,.wmde-markdown p,.wmde-markdown pre,.wmde-markdown table,.wmde-markdown ul{margin-bottom:16px;margin-top:0}.wmde-markdown blockquote>:first-child{margin-top:0}.wmde-markdown blockquote>:last-child{margin-bottom:0}.wmde-markdown sup>a:before{content:"["}.wmde-markdown sup>a:after{content:"]"}.wmde-markdown h1 .octicon-link,.wmde-markdown h2 .octicon-link,.wmde-markdown h3 .octicon-link,.wmde-markdown h4 .octicon-link,.wmde-markdown h5 .octicon-link,.wmde-markdown h6 .octicon-link{color:var(--color-fg-default);vertical-align:middle;visibility:hidden}.wmde-markdown h1:hover .anchor,.wmde-markdown h2:hover .anchor,.wmde-markdown h3:hover .anchor,.wmde-markdown h4:hover .anchor,.wmde-markdown h5:hover .anchor,.wmde-markdown h6:hover .anchor{text-decoration:none}.wmde-markdown h1:hover .anchor .octicon-link,.wmde-markdown h2:hover .anchor .octicon-link,.wmde-markdown h3:hover .anchor .octicon-link,.wmde-markdown h4:hover .anchor .octicon-link,.wmde-markdown h5:hover .anchor .octicon-link,.wmde-markdown h6:hover .anchor .octicon-link{visibility:visible}.wmde-markdown h1 code,.wmde-markdown h1 tt,.wmde-markdown h2 code,.wmde-markdown h2 tt,.wmde-markdown h3 code,.wmde-markdown h3 tt,.wmde-markdown h4 code,.wmde-markdown h4 tt,.wmde-markdown h5 code,.wmde-markdown h5 tt,.wmde-markdown h6 code,.wmde-markdown h6 tt{font-size:inherit;padding:0 .2em}.wmde-markdown ol.no-list,.wmde-markdown ul.no-list{list-style-type:none;padding:0}.wmde-markdown ol[type="1"]{list-style-type:decimal}.wmde-markdown ol[type=a]{list-style-type:lower-alpha}.wmde-markdown ol[type=i]{list-style-type:lower-roman}.wmde-markdown div>ol:not([type]){list-style-type:decimal}.wmde-markdown ol ol,.wmde-markdown ol ul,.wmde-markdown ul ol,.wmde-markdown ul ul{margin-bottom:0;margin-top:0}.wmde-markdown li>p{margin-top:16px}.wmde-markdown li+li{margin-top:.25em}.wmde-markdown dl{padding:0}.wmde-markdown dl dt{font-size:1em;font-style:italic;font-weight:600;margin-top:16px;padding:0}.wmde-markdown dl dd{margin-bottom:16px;padding:0 16px}.wmde-markdown table th{font-weight:600}.wmde-markdown table td,.wmde-markdown table th{border:1px solid var(--color-border-default);padding:6px 13px}.wmde-markdown table tr{background-color:var(--color-canvas-default);border-top:1px solid var(--color-border-muted)}.wmde-markdown table tr:nth-child(2n){background-color:var(--color-canvas-subtle)}.wmde-markdown table img{background-color:transparent}.wmde-markdown img[align=right]{padding-left:20px}.wmde-markdown img[align=left]{padding-right:20px}.wmde-markdown .emoji{background-color:transparent;max-width:none;vertical-align:text-top}.wmde-markdown span.frame{display:block;overflow:hidden}.wmde-markdown span.frame>span{border:1px solid var(--color-border-default);display:block;float:left;margin:13px 0 0;overflow:hidden;padding:7px;width:auto}.wmde-markdown span.frame span img{display:block;float:left}.wmde-markdown span.frame span span{clear:both;color:var(--color-fg-default);display:block;padding:5px 0 0}.wmde-markdown span.align-center{clear:both;display:block;overflow:hidden}.wmde-markdown span.align-center>span{display:block;margin:13px auto 0;overflow:hidden;text-align:center}.wmde-markdown span.align-center span img{margin:0 auto;text-align:center}.wmde-markdown span.align-right{clear:both;display:block;overflow:hidden}.wmde-markdown span.align-right>span{display:block;margin:13px 0 0;overflow:hidden;text-align:right}.wmde-markdown span.align-right span img{margin:0;text-align:right}.wmde-markdown span.float-left{display:block;float:left;margin-right:13px;overflow:hidden}.wmde-markdown span.float-left span{margin:13px 0 0}.wmde-markdown span.float-right{display:block;float:right;margin-left:13px;overflow:hidden}.wmde-markdown span.float-right>span{display:block;margin:13px auto 0;overflow:hidden;text-align:right}.wmde-markdown code,.wmde-markdown tt{background-color:var(--color-neutral-muted);border-radius:6px;font-size:85%;margin:0;padding:.2em .4em}.wmde-markdown code br,.wmde-markdown tt br{display:none}.wmde-markdown del code{text-decoration:inherit}.wmde-markdown pre code{font-size:100%}.wmde-markdown pre>code{background:transparent;border:0;margin:0;padding:0;white-space:pre;word-break:normal}.wmde-markdown pre{background-color:var(--color-canvas-subtle);border-radius:6px;font-size:85%;line-height:1.45}.wmde-markdown pre code,.wmde-markdown pre tt{word-wrap:normal;background-color:transparent;border:0;display:inline;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0}.wmde-markdown pre>code{display:block;overflow:auto;padding:16px}.wmde-markdown .csv-data td,.wmde-markdown .csv-data th{font-size:12px;line-height:1;overflow:hidden;padding:5px;text-align:left;white-space:nowrap}.wmde-markdown .csv-data .blob-num{background:var(--color-canvas-default);border:0;padding:10px 8px 9px;text-align:right}.wmde-markdown .csv-data tr{border-top:0}.wmde-markdown .csv-data th{background:var(--color-canvas-subtle);border-top:0;font-weight:600}.wmde-markdown .footnotes{border-top:1px solid var(--color-border-default);color:var(--color-fg-muted);font-size:12px}.wmde-markdown .footnotes ol{padding-left:16px}.wmde-markdown .footnotes li{position:relative}.wmde-markdown .footnotes li:target:before{border:2px solid var(--color-accent-emphasis);border-radius:6px;bottom:-8px;content:"";left:-24px;pointer-events:none;position:absolute;right:-8px;top:-8px}.wmde-markdown .footnotes li:target{color:var(--color-fg-default)}.wmde-markdown .footnotes .data-footnote-backref g-emoji{font-family:monospace}.wmde-markdown .task-list-item{list-style-type:none}.wmde-markdown .task-list-item label{font-weight:400}.wmde-markdown .task-list-item.enabled label{cursor:pointer}.wmde-markdown .task-list-item+.wmde-markdown .task-list-item{margin-top:3px}.wmde-markdown .task-list-item .handle{display:none}.wmde-markdown .contains-task-list input[type=checkbox],.wmde-markdown .task-list-item-checkbox{margin:0 .2em .25em -1.6em;vertical-align:middle}.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,.wmde-markdown .contains-task-list:dir(rtl) input[type=checkbox]{margin:0 -1.6em .25em .2em}.wmde-markdown ::-webkit-calendar-picker-indicator{filter:invert(50%)}.wmde-markdown pre{position:relative}.wmde-markdown pre .copied{background:var(--color-border-default);border-radius:5px;color:var(--color-fg-default);cursor:pointer;display:flex;font-size:12px;padding:6px;position:absolute;right:6px;top:6px;transition:all .3s;visibility:hidden}.wmde-markdown pre .copied .octicon-copy{display:block}.wmde-markdown pre .copied .octicon-check{display:none}.wmde-markdown pre:hover .copied{visibility:visible}.wmde-markdown pre:hover .copied:hover{background:var(--color-prettylights-syntax-entity-tag);color:var(--color-canvas-default)}.wmde-markdown pre .copied.active,.wmde-markdown pre:hover .copied:active{background:var(--color-copied-active-bg);color:var(--color-canvas-default)}.wmde-markdown pre .active .octicon-copy{display:none}.wmde-markdown pre .active .octicon-check{display:block}.wmde-markdown .markdown-alert{border-left:.25em solid var(--borderColor-default,var(--color-border-default));color:inherit;margin-bottom:16px;padding:.5rem 1em}.wmde-markdown .markdown-alert>:last-child{margin-bottom:0!important}.wmde-markdown .markdown-alert .markdown-alert-title{align-items:center;display:flex;font-size:14px;font-weight:500;line-height:1}.wmde-markdown .markdown-alert .markdown-alert-title svg.octicon{margin-right:8px!important;margin-right:var(--base-size-8,8px)!important}.wmde-markdown .markdown-alert.markdown-alert-note{border-left-color:var(--borderColor-accent-emphasis,var(--color-accent-emphasis))}.wmde-markdown .markdown-alert.markdown-alert-note .markdown-alert-title{color:var(--color-accent-fg);color:var(--fgColor-accent,var(--color-accent-fg))}.wmde-markdown .markdown-alert.markdown-alert-tip{border-left-color:var(--borderColor-success-emphasis,var(--color-success-emphasis))}.wmde-markdown .markdown-alert.markdown-alert-tip .markdown-alert-title{color:var(--color-success-fg);color:var(--fgColor-success,var(--color-success-fg))}.wmde-markdown .markdown-alert.markdown-alert-important{border-left-color:var(--borderColor-done-emphasis,var(--color-done-emphasis))}.wmde-markdown .markdown-alert.markdown-alert-important .markdown-alert-title{color:var(--color-done-fg);color:var(--fgColor-done,var(--color-done-fg))}.wmde-markdown .markdown-alert.markdown-alert-warning{border-left-color:var(--borderColor-attention-emphasis,var(--color-attention-emphasis))}.wmde-markdown .markdown-alert.markdown-alert-warning .markdown-alert-title{color:var(--color-attention-fg);color:var(--fgColor-attention,var(--color-attention-fg))}.wmde-markdown .markdown-alert.markdown-alert-caution{border-left-color:var(--borderColor-danger-emphasis,var(--color-danger-emphasis))}.wmde-markdown .markdown-alert.markdown-alert-caution .markdown-alert-title{color:var(--color-danger-fg);color:var(--fgColor-danger,var(--color-danger-fg))}.wmde-markdown .highlight-line{background-color:var(--color-neutral-muted)}.wmde-markdown .code-line.line-number:before{color:var(--color-fg-subtle);content:attr(line);display:inline-block;margin-right:16px;text-align:right;white-space:nowrap;width:1rem}.wmde-markdown .token.cdata,.wmde-markdown .token.comment,.wmde-markdown .token.doctype,.wmde-markdown .token.prolog{color:var(--color-prettylights-syntax-comment)}.wmde-markdown .token.namespace{opacity:.7}.wmde-markdown .token.constant,.wmde-markdown .token.deleted,.wmde-markdown .token.property,.wmde-markdown .token.selector,.wmde-markdown .token.symbol,.wmde-markdown .token.tag{color:var(--color-prettylights-syntax-entity-tag)}.wmde-markdown .token.maybe-class-name{color:var(--color-prettylights-syntax-variable)}.wmde-markdown .token.attr-name,.wmde-markdown .token.boolean,.wmde-markdown .token.builtin,.wmde-markdown .token.char,.wmde-markdown .token.number,.wmde-markdown .token.operator,.wmde-markdown .token.property-access,.wmde-markdown .token.selector .token.class,.wmde-markdown .token.string{color:var(--color-prettylights-syntax-constant)}.wmde-markdown .token.deleted{color:var(--color-prettylights-syntax-markup-deleted-text)}.wmde-markdown .code-line .token.deleted{background-color:var(--color-prettylights-syntax-markup-deleted-bg)}.wmde-markdown .token.inserted{color:var(--color-prettylights-syntax-markup-inserted-text)}.wmde-markdown .code-line .token.inserted{background-color:var(--color-prettylights-syntax-markup-inserted-bg)}.wmde-markdown .token.variable{color:var(--color-prettylights-syntax-constant)}.wmde-markdown .language-css .token.string,.wmde-markdown .style .token.string,.wmde-markdown .token.atrule,.wmde-markdown .token.attr-value,.wmde-markdown .token.class-name,.wmde-markdown .token.color,.wmde-markdown .token.entity,.wmde-markdown .token.function,.wmde-markdown .token.url{color:var(--color-prettylights-syntax-string)}.wmde-markdown .token.important,.wmde-markdown .token.keyword,.wmde-markdown .token.regex,.wmde-markdown .token.rule{color:var(--color-prettylights-syntax-keyword)}.wmde-markdown .token.coord{color:var(--color-prettylights-syntax-meta-diff-range)}.wmde-markdown .token.bold,.wmde-markdown .token.important{font-weight:700}.wmde-markdown .token.italic{font-style:italic}.wmde-markdown .token.entity{cursor:help} +/*# sourceMappingURL=main.0da2652e.css.map*/ \ No newline at end of file diff --git a/static/css/main.0da2652e.css.map b/static/css/main.0da2652e.css.map new file mode 100644 index 000000000..50a0d1e6d --- /dev/null +++ b/static/css/main.0da2652e.css.map @@ -0,0 +1 @@ +{"version":3,"file":"static/css/main.0da2652e.css","mappings":"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,gGAIE,2BACF,CACA,kBACE,aACF,CAMA,yDAHE,wFAA+F,CAC/F,cAQF,CANA,mBAKE,gBAAiB,CAHjB,eAAgB,CADhB,YAKF,CACA,wBAIE,iBAAkB,CAHlB,oBAAqB,CACrB,0BAA4B,CAC5B,0BAEF,CACA,kCACE,4BAA6B,CAC7B,SACF,CAHA,6BACE,4BAA6B,CAC7B,SACF,CACA,gGAGE,uBAAwB,CACxB,eAAgB,CAFhB,QAGF,CACA,+BACE,aACF,CAKA,2CAFE,UAAW,CADX,aAOF,CAJA,qBAEE,UAEF,CACA,4BACE,sBACF,CACA,2BACE,yBACF,CACA,6BACE,aAAc,CACd,oBACF,CACA,uBACE,4BACF,CACA,wBACE,UAAW,CAGX,aAAc,CADd,iBAAkB,CADlB,iBAGF,CACA,6BACE,YACF,CACA,gKASE,kBAAmB,CADnB,YAEF,CACA,uCACE,YACF,CACA,sCACE,eACF,CACA,4BACE,WACF,CACA,2BACE,WACF,CACA,gMAME,6BAA8B,CAC9B,qBAAsB,CACtB,iBACF,CACA,gMAME,oBACF,CACA,oRAME,kBACF,CACA,wQAaE,iBAAkB,CADlB,cAEF,CACA,oDAGE,oBAAqB,CADrB,SAEF,CACA,4BACE,uBACF,CACA,0BACE,2BACF,CACA,0BACE,2BACF,CACA,kCACE,uBACF,CACA,oFAKE,eAAgB,CADhB,YAEF,CACA,oBACE,eACF,CACA,qBACE,gBACF,CACA,kBACE,SACF,CACA,qBAGE,aAAc,CACd,iBAAkB,CAClB,eAAgB,CAHhB,eAAgB,CADhB,SAKF,CACA,qBAEE,kBAAmB,CADnB,cAEF,CACA,wBACE,eACF,CACA,gDAGE,4CAA6C,CAD7C,gBAEF,CACA,wBACE,4CAA6C,CAC7C,8CACF,CACA,sCACE,2CACF,CACA,yBACE,4BACF,CACA,gCACE,iBACF,CACA,+BACE,kBACF,CACA,sBAGE,4BAA6B,CAF7B,cAAe,CACf,uBAEF,CACA,0BACE,aAAc,CACd,eACF,CACA,+BAOE,4CAA6C,CAN7C,aAAc,CACd,UAAW,CAGX,eAAgB,CAChB,eAAgB,CAFhB,WAAY,CADZ,UAKF,CACA,mCACE,aAAc,CACd,UACF,CACA,oCAGE,UAAW,CACX,6BAA8B,CAH9B,aAAc,CACd,eAGF,CACA,iCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,sCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,iBACF,CACA,0CACE,aAAc,CACd,iBACF,CACA,gCAGE,UAAW,CAFX,aAAc,CACd,eAEF,CACA,qCACE,aAAc,CACd,eAAgB,CAChB,eAAgB,CAChB,gBACF,CACA,yCACE,QAAS,CACT,gBACF,CACA,+BACE,aAAc,CACd,UAAW,CACX,iBAAkB,CAClB,eACF,CACA,oCACE,eACF,CACA,gCACE,aAAc,CACd,WAAY,CACZ,gBAAiB,CACjB,eACF,CACA,qCACE,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,gBACF,CACA,sCAKE,2CAA4C,CAC5C,iBAAkB,CAFlB,aAAc,CADd,QAAS,CADT,iBAKF,CACA,4CAEE,YACF,CACA,wBACE,uBACF,CACA,wBACE,cACF,CACA,wBAKE,sBAAuB,CACvB,QAAS,CAJT,QAAS,CADT,SAAU,CAGV,eAAgB,CADhB,iBAIF,CACA,mBAGE,2CAA4C,CAC5C,iBAAkB,CAHlB,aAAc,CACd,gBAGF,CACA,8CAQE,gBAAiB,CACjB,4BAA6B,CAC7B,QAAS,CART,cAAe,CAKf,mBAAoB,CAFpB,QAAS,CAFT,cAAe,CAGf,gBAAiB,CAFjB,SAOF,CACA,wBAGE,aAAc,CADd,aAAc,CADd,YAGF,CACA,wDAIE,cAAe,CACf,aAAc,CAFd,eAAgB,CADhB,WAAY,CAIZ,eAAgB,CAChB,kBACF,CACA,mCAGE,sCAAuC,CACvC,QAAS,CAHT,oBAAqB,CACrB,gBAGF,CACA,4BACE,YACF,CACA,4BAEE,qCAAsC,CACtC,YAAa,CAFb,eAGF,CACA,0BAGE,gDAAiD,CADjD,2BAA4B,CAD5B,cAGF,CACA,6BACE,iBACF,CACA,6BACE,iBACF,CACA,2CAQE,6CAA8C,CAC9C,iBAAkB,CALlB,WAAY,CAGZ,UAAW,CAFX,UAAW,CACX,mBAAoB,CALpB,iBAAkB,CAElB,UAAW,CADX,QAQF,CACA,oCACE,6BACF,CACA,yDACE,qBACF,CACA,+BACE,oBACF,CACA,qCACE,eACF,CACA,6CACE,cACF,CACA,8DACE,cACF,CACA,uCACE,YACF,CACA,gGAEE,0BAA6B,CAC7B,qBACF,CACA,sIAEE,0BACF,CACA,mDACE,kBACF,CACA,mBACE,iBACF,CACA,2BASE,sCAAuC,CADvC,iBAAkB,CAHlB,6BAA8B,CAD9B,cAAe,CAFf,YAAa,CASb,cAAe,CADf,WAAY,CAPZ,iBAAkB,CAIlB,SAAU,CADV,OAAQ,CAMR,kBAAoB,CAXpB,iBAYF,CACA,yCACE,aACF,CACA,0CACE,YACF,CACA,iCACE,kBACF,CACA,uCACE,sDAAuD,CACvD,iCACF,CACA,0EAEE,wCAAyC,CACzC,iCACF,CACA,yCACE,YACF,CACA,0CACE,aACF,CACA,+BAIE,8EAAiF,CAFjF,aAAc,CACd,kBAAmB,CAFnB,iBAIF,CACA,2CACE,yBACF,CACA,qDAEE,kBAAmB,CADnB,YAAa,CAIb,cAAe,CADf,eAAgB,CADhB,aAGF,CACA,iEACE,0BAAgD,CAAhD,6CACF,CACA,mDACE,iFACF,CACA,yEACE,4BAAoD,CAApD,kDACF,CACA,kDACE,mFACF,CACA,wEACE,6BAAsD,CAAtD,oDACF,CACA,wDACE,6EACF,CACA,8EACE,0BAAgD,CAAhD,8CACF,CACA,sDACE,uFACF,CACA,4EACE,+BAA0D,CAA1D,wDACF,CACA,sDACE,iFACF,CACA,4EACE,4BAAoD,CAApD,kDACF,CACA,+BACE,2CACF,CACA,6CAKE,4BAA6B,CAC7B,kBAAmB,CALnB,oBAAqB,CAGrB,iBAAkB,CADlB,gBAAiB,CAIjB,kBAAmB,CALnB,UAMF,CACA,qHAIE,8CACF,CACA,gCACE,UACF,CACA,kLAME,iDACF,CACA,uCACE,+CACF,CACA,kSASE,+CACF,CACA,8BACE,0DACF,CACA,yCACE,mEACF,CACA,+BACE,2DACF,CACA,0CACE,oEACF,CACA,+BACE,+CACF,CAOA,gSAKE,6CACF,CACA,qHAIE,8CACF,CACA,4BACE,sDACF,CACA,2DAEE,eACF,CACA,6BACE,iBACF,CACA,6BACE,WACF","sources":["../../node_modules/react-code-preview-layout/esm/styles.css","../../node_modules/@uiw/react-markdown-preview/esm/styles/markdown.css"],"sourcesContent":[".code-preview-layout[data-color-mode*='light'], [data-color-mode*='light'], body[data-color-mode*='light'] {\n --color-canvas-subtle: #f6f8fa;\n --color-border-muted: hsl(210, 18%, 87%);\n}\n.code-preview-layout[data-color-mode*='dark'], [data-color-mode*='dark'], body[data-color-mode*='dark'] {\n --color-canvas-subtle: #161b22;\n --color-border-muted: #21262d;\n}\n\n.w-rcpl.w-bordered {\n border: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-toolbar {\n border-top: 1px solid var(--color-border-muted);\n}\n.w-rcpl.w-bordered > .w-rcpl-code:not(.w-hidden) {\n border-top: 1px dashed var(--color-border-muted);\n border-radius: 0 0 6px 6px;\n}\n\n.w-rcpl {\n border-radius: 5px;\n background-color: var(--color-canvas-subtle);\n}\n.w-rcpl-preview:not(:last-child) {\n border-radius: 5px 5px 0 0;\n}\n.w-rcpl-code.w-hidden {\n height: 0;\n padding: 0;\n overflow: hidden;\n}\n.w-rcpl-code {\n transition: height cubic-bezier(0.360, 0.000, 0.660, -0.560);;\n height: auto;\n overflow: auto;\n border-top-left-radius: 0px;\n border-top-right-radius: 0px;\n margin-bottom: 0 !important;\n}\n.w-rcpl-code > * {\n padding: 0 !important;\n margin: 0 !important;\n}\n.w-disable-checkered > .w-rcpl-preview {\n background-image: none;\n}\n.w-rcpl-preview {\n background: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='16' height='16' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\")\n}\n.w-rcpl-preview, .w-rcpl-code {\n padding: 15px;\n}\n.w-rcpl-extra, .w-rcpl-title {\n display: flex;\n align-items: center;\n}\n.w-rcpl-toolbar button svg {\n opacity: 0.37;\n display: block;\n height: 18px;\n transition: opacity 0.3s;\n}\n.w-rcpl-toolbar button svg:hover {\n opacity: 1;\n}\n.w-rcpl-toolbar button {\n color: currentColor;\n position: relative;\n background-color: transparent;\n display: inline-block;\n height: inherit;\n padding: 3px 4px;\n border: 0;\n box-sizing: border-box;\n cursor: pointer;\n outline: none;\n transition: opacity .2s, background .2s;\n}\n.w-rcpl-toolbar {\n display: flex;\n justify-content: space-between;\n padding: 5px 5px;\n padding-left: 8px;\n}","@media (prefers-color-scheme: dark) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n --color-danger-emphasis: #da3633;\n --color-attention-fg: #d29922;\n --color-attention-emphasis: #9e6a03;\n --color-done-fg: #a371f7;\n --color-done-emphasis: #8957e5;\n --color-success-fg: #3fb950;\n --color-success-emphasis: #238636;\n --color-copied-active-bg: #2e9b33;\n }\n}\n@media (prefers-color-scheme: light) {\n .wmde-markdown,\n .wmde-markdown-var {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #d1242f;\n --color-danger-emphasis: #cf222e;\n --color-attention-fg: #9a6700;\n --color-attention-emphasis: #9a6700;\n --color-done-fg: #8250df;\n --color-done-emphasis: #8250df;\n --color-success-fg: #1a7f37;\n --color-success-emphasis: #1f883d;\n --color-copied-active-bg: #2e9b33;\n }\n}\n[data-color-mode*='dark'] .wmde-markdown,\n[data-color-mode*='dark'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='dark'],\n.wmde-markdown[data-color-mode*='dark'],\nbody[data-color-mode*='dark'] {\n color-scheme: dark;\n --color-prettylights-syntax-comment: #8b949e;\n --color-prettylights-syntax-constant: #79c0ff;\n --color-prettylights-syntax-entity: #d2a8ff;\n --color-prettylights-syntax-storage-modifier-import: #c9d1d9;\n --color-prettylights-syntax-entity-tag: #7ee787;\n --color-prettylights-syntax-keyword: #ff7b72;\n --color-prettylights-syntax-string: #a5d6ff;\n --color-prettylights-syntax-variable: #ffa657;\n --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;\n --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;\n --color-prettylights-syntax-invalid-illegal-bg: #8e1519;\n --color-prettylights-syntax-carriage-return-text: #f0f6fc;\n --color-prettylights-syntax-carriage-return-bg: #b62324;\n --color-prettylights-syntax-string-regexp: #7ee787;\n --color-prettylights-syntax-markup-list: #f2cc60;\n --color-prettylights-syntax-markup-heading: #1f6feb;\n --color-prettylights-syntax-markup-italic: #c9d1d9;\n --color-prettylights-syntax-markup-bold: #c9d1d9;\n --color-prettylights-syntax-markup-deleted-text: #ffdcd7;\n --color-prettylights-syntax-markup-deleted-bg: #67060c;\n --color-prettylights-syntax-markup-inserted-text: #aff5b4;\n --color-prettylights-syntax-markup-inserted-bg: #033a16;\n --color-prettylights-syntax-markup-changed-text: #ffdfb6;\n --color-prettylights-syntax-markup-changed-bg: #5a1e02;\n --color-prettylights-syntax-markup-ignored-text: #c9d1d9;\n --color-prettylights-syntax-markup-ignored-bg: #1158c7;\n --color-prettylights-syntax-meta-diff-range: #d2a8ff;\n --color-prettylights-syntax-brackethighlighter-angle: #8b949e;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;\n --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;\n --color-fg-default: #c9d1d9;\n --color-fg-muted: #8b949e;\n --color-fg-subtle: #484f58;\n --color-canvas-default: #0d1117;\n --color-canvas-subtle: #161b22;\n --color-border-default: #30363d;\n --color-border-muted: #21262d;\n --color-neutral-muted: rgba(110, 118, 129, 0.4);\n --color-accent-fg: #58a6ff;\n --color-accent-emphasis: #1f6feb;\n --color-attention-subtle: rgba(187, 128, 9, 0.15);\n --color-danger-fg: #f85149;\n}\n[data-color-mode*='light'] .wmde-markdown,\n[data-color-mode*='light'] .wmde-markdown-var,\n.wmde-markdown-var[data-color-mode*='light'],\n.wmde-markdown[data-color-mode*='light'],\nbody[data-color-mode*='light'] {\n color-scheme: light;\n --color-prettylights-syntax-comment: #6e7781;\n --color-prettylights-syntax-constant: #0550ae;\n --color-prettylights-syntax-entity: #8250df;\n --color-prettylights-syntax-storage-modifier-import: #24292f;\n --color-prettylights-syntax-entity-tag: #116329;\n --color-prettylights-syntax-keyword: #cf222e;\n --color-prettylights-syntax-string: #0a3069;\n --color-prettylights-syntax-variable: #953800;\n --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;\n --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;\n --color-prettylights-syntax-invalid-illegal-bg: #82071e;\n --color-prettylights-syntax-carriage-return-text: #f6f8fa;\n --color-prettylights-syntax-carriage-return-bg: #cf222e;\n --color-prettylights-syntax-string-regexp: #116329;\n --color-prettylights-syntax-markup-list: #3b2300;\n --color-prettylights-syntax-markup-heading: #0550ae;\n --color-prettylights-syntax-markup-italic: #24292f;\n --color-prettylights-syntax-markup-bold: #24292f;\n --color-prettylights-syntax-markup-deleted-text: #82071e;\n --color-prettylights-syntax-markup-deleted-bg: #ffebe9;\n --color-prettylights-syntax-markup-inserted-text: #116329;\n --color-prettylights-syntax-markup-inserted-bg: #dafbe1;\n --color-prettylights-syntax-markup-changed-text: #953800;\n --color-prettylights-syntax-markup-changed-bg: #ffd8b5;\n --color-prettylights-syntax-markup-ignored-text: #eaeef2;\n --color-prettylights-syntax-markup-ignored-bg: #0550ae;\n --color-prettylights-syntax-meta-diff-range: #8250df;\n --color-prettylights-syntax-brackethighlighter-angle: #57606a;\n --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;\n --color-prettylights-syntax-constant-other-reference-link: #0a3069;\n --color-fg-default: #24292f;\n --color-fg-muted: #57606a;\n --color-fg-subtle: #6e7781;\n --color-canvas-default: #ffffff;\n --color-canvas-subtle: #f6f8fa;\n --color-border-default: #d0d7de;\n --color-border-muted: hsl(210, 18%, 87%);\n --color-neutral-muted: rgba(175, 184, 193, 0.2);\n --color-accent-fg: #0969da;\n --color-accent-emphasis: #0969da;\n --color-attention-subtle: #fff8c5;\n --color-danger-fg: #cf222e;\n}\n.wmde-markdown {\n -webkit-text-size-adjust: 100%;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';\n font-size: 16px;\n line-height: 1.5;\n word-wrap: break-word;\n color: var(--color-fg-default);\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown details,\n.wmde-markdown figcaption,\n.wmde-markdown figure {\n display: block;\n}\n.wmde-markdown summary {\n display: list-item;\n}\n.wmde-markdown [hidden] {\n display: none !important;\n}\n.wmde-markdown a {\n background-color: transparent;\n color: var(--color-accent-fg);\n text-decoration: none;\n}\n.wmde-markdown a:active,\n.wmde-markdown a:hover {\n outline-width: 0;\n}\n.wmde-markdown abbr[title] {\n border-bottom: none;\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n}\n.wmde-markdown b,\n.wmde-markdown strong {\n font-weight: 600;\n}\n.wmde-markdown dfn {\n font-style: italic;\n}\n.wmde-markdown h1 {\n margin: 0.67em 0;\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 2em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown mark {\n background-color: var(--color-attention-subtle);\n color: var(--color-text-primary);\n}\n.wmde-markdown small {\n font-size: 90%;\n}\n.wmde-markdown sub,\n.wmde-markdown sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n.wmde-markdown sub {\n bottom: -0.25em;\n}\n.wmde-markdown sup {\n top: -0.5em;\n}\n.wmde-markdown img {\n display: inline-block;\n border-style: none;\n max-width: 100%;\n box-sizing: content-box;\n background-color: var(--color-canvas-default);\n}\n.wmde-markdown code,\n.wmde-markdown kbd,\n.wmde-markdown pre,\n.wmde-markdown samp {\n font-family: monospace, monospace;\n font-size: 1em;\n}\n.wmde-markdown figure {\n margin: 1em 40px;\n}\n.wmde-markdown hr {\n box-sizing: content-box;\n overflow: hidden;\n background: transparent;\n border: 0;\n border-bottom: 1px solid var(--color-border-muted);\n height: 0.25em;\n padding: 0;\n margin: 24px 0;\n background-color: var(--color-border-default);\n}\n.wmde-markdown input {\n font: inherit;\n margin: 0;\n overflow: visible;\n font-family: inherit;\n font-size: inherit;\n line-height: inherit;\n}\n.wmde-markdown [type='button'],\n.wmde-markdown [type='reset'],\n.wmde-markdown [type='submit'] {\n -webkit-appearance: button;\n}\n.wmde-markdown [type='button']::-moz-focus-inner,\n.wmde-markdown [type='reset']::-moz-focus-inner,\n.wmde-markdown [type='submit']::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n.wmde-markdown [type='button']:-moz-focusring,\n.wmde-markdown [type='reset']:-moz-focusring,\n.wmde-markdown [type='submit']:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n.wmde-markdown [type='checkbox'],\n.wmde-markdown [type='radio'] {\n box-sizing: border-box;\n padding: 0;\n}\n.wmde-markdown [type='number']::-webkit-inner-spin-button,\n.wmde-markdown [type='number']::-webkit-outer-spin-button {\n height: auto;\n}\n.wmde-markdown [type='search'] {\n -webkit-appearance: textfield;\n outline-offset: -2px;\n}\n.wmde-markdown [type='search']::-webkit-search-cancel-button,\n.wmde-markdown [type='search']::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n.wmde-markdown ::-webkit-input-placeholder {\n color: inherit;\n opacity: 0.54;\n}\n.wmde-markdown ::-webkit-file-upload-button {\n -webkit-appearance: button;\n font: inherit;\n}\n.wmde-markdown a:hover {\n text-decoration: underline;\n}\n.wmde-markdown hr::before {\n display: table;\n content: '';\n}\n.wmde-markdown hr::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown table {\n border-spacing: 0;\n border-collapse: collapse;\n display: block;\n width: -webkit-max-content;\n width: max-content;\n max-width: 100%;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown td,\n.wmde-markdown th {\n padding: 0;\n}\n.wmde-markdown details summary {\n cursor: pointer;\n}\n.wmde-markdown details:not([open]) > *:not(summary) {\n display: none !important;\n}\n.wmde-markdown kbd {\n display: inline-block;\n padding: 3px 5px;\n font: 11px ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n line-height: 10px;\n color: var(--color-fg-default);\n vertical-align: middle;\n background-color: var(--color-canvas-subtle);\n border: solid 1px var(--color-neutral-muted);\n border-bottom-color: var(--color-neutral-muted);\n border-radius: 6px;\n box-shadow: inset 0 -1px 0 var(--color-neutral-muted);\n}\n.wmde-markdown h1,\n.wmde-markdown h2,\n.wmde-markdown h3,\n.wmde-markdown h4,\n.wmde-markdown h5,\n.wmde-markdown h6 {\n margin-top: 24px;\n margin-bottom: 16px;\n font-weight: 600;\n line-height: 1.25;\n}\n.wmde-markdown h2 {\n font-weight: 600;\n padding-bottom: 0.3em;\n font-size: 1.5em;\n border-bottom: 1px solid var(--color-border-muted);\n}\n.wmde-markdown h3 {\n font-weight: 600;\n font-size: 1.25em;\n}\n.wmde-markdown h4 {\n font-weight: 600;\n font-size: 1em;\n}\n.wmde-markdown h5 {\n font-weight: 600;\n font-size: 0.875em;\n}\n.wmde-markdown h6 {\n font-weight: 600;\n font-size: 0.85em;\n color: var(--color-fg-muted);\n}\n.wmde-markdown p {\n margin-top: 0;\n margin-bottom: 10px;\n}\n.wmde-markdown blockquote {\n margin: 0;\n padding: 0 1em;\n color: var(--color-fg-muted);\n border-left: 0.25em solid var(--color-border-default);\n}\n.wmde-markdown ul,\n.wmde-markdown ol {\n margin-top: 0;\n margin-bottom: 0;\n padding-left: 2em;\n}\n.wmde-markdown ol ol,\n.wmde-markdown ul ol {\n list-style-type: lower-roman;\n}\n.wmde-markdown ul ul ol,\n.wmde-markdown ul ol ol,\n.wmde-markdown ol ul ol,\n.wmde-markdown ol ol ol {\n list-style-type: lower-alpha;\n}\n.wmde-markdown dd {\n margin-left: 0;\n}\n.wmde-markdown tt,\n.wmde-markdown code {\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n}\n.wmde-markdown pre {\n margin-top: 0;\n margin-bottom: 0;\n font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;\n font-size: 12px;\n word-wrap: normal;\n}\n.wmde-markdown .octicon {\n display: inline-block;\n overflow: visible !important;\n vertical-align: text-bottom;\n fill: currentColor;\n}\n.wmde-markdown ::placeholder {\n color: var(--color-fg-subtle);\n opacity: 1;\n}\n.wmde-markdown input::-webkit-outer-spin-button,\n.wmde-markdown input::-webkit-inner-spin-button {\n margin: 0;\n -webkit-appearance: none;\n appearance: none;\n}\n.wmde-markdown [data-catalyst] {\n display: block;\n}\n.wmde-markdown::before {\n display: table;\n content: '';\n}\n.wmde-markdown::after {\n display: table;\n clear: both;\n content: '';\n}\n.wmde-markdown > *:first-child {\n margin-top: 0 !important;\n}\n.wmde-markdown > *:last-child {\n margin-bottom: 0 !important;\n}\n.wmde-markdown a:not([href]) {\n color: inherit;\n text-decoration: none;\n}\n.wmde-markdown .absent {\n color: var(--color-danger-fg);\n}\n.wmde-markdown a.anchor {\n float: left;\n padding-right: 4px;\n margin-left: -20px;\n line-height: 1;\n}\n.wmde-markdown .anchor:focus {\n outline: none;\n}\n.wmde-markdown p,\n.wmde-markdown blockquote,\n.wmde-markdown ul,\n.wmde-markdown ol,\n.wmde-markdown dl,\n.wmde-markdown table,\n.wmde-markdown pre,\n.wmde-markdown details {\n margin-top: 0;\n margin-bottom: 16px;\n}\n.wmde-markdown blockquote > :first-child {\n margin-top: 0;\n}\n.wmde-markdown blockquote > :last-child {\n margin-bottom: 0;\n}\n.wmde-markdown sup > a::before {\n content: '[';\n}\n.wmde-markdown sup > a::after {\n content: ']';\n}\n.wmde-markdown h1 .octicon-link,\n.wmde-markdown h2 .octicon-link,\n.wmde-markdown h3 .octicon-link,\n.wmde-markdown h4 .octicon-link,\n.wmde-markdown h5 .octicon-link,\n.wmde-markdown h6 .octicon-link {\n color: var(--color-fg-default);\n vertical-align: middle;\n visibility: hidden;\n}\n.wmde-markdown h1:hover .anchor,\n.wmde-markdown h2:hover .anchor,\n.wmde-markdown h3:hover .anchor,\n.wmde-markdown h4:hover .anchor,\n.wmde-markdown h5:hover .anchor,\n.wmde-markdown h6:hover .anchor {\n text-decoration: none;\n}\n.wmde-markdown h1:hover .anchor .octicon-link,\n.wmde-markdown h2:hover .anchor .octicon-link,\n.wmde-markdown h3:hover .anchor .octicon-link,\n.wmde-markdown h4:hover .anchor .octicon-link,\n.wmde-markdown h5:hover .anchor .octicon-link,\n.wmde-markdown h6:hover .anchor .octicon-link {\n visibility: visible;\n}\n.wmde-markdown h1 tt,\n.wmde-markdown h1 code,\n.wmde-markdown h2 tt,\n.wmde-markdown h2 code,\n.wmde-markdown h3 tt,\n.wmde-markdown h3 code,\n.wmde-markdown h4 tt,\n.wmde-markdown h4 code,\n.wmde-markdown h5 tt,\n.wmde-markdown h5 code,\n.wmde-markdown h6 tt,\n.wmde-markdown h6 code {\n padding: 0 0.2em;\n font-size: inherit;\n}\n.wmde-markdown ul.no-list,\n.wmde-markdown ol.no-list {\n padding: 0;\n list-style-type: none;\n}\n.wmde-markdown ol[type='1'] {\n list-style-type: decimal;\n}\n.wmde-markdown ol[type='a'] {\n list-style-type: lower-alpha;\n}\n.wmde-markdown ol[type='i'] {\n list-style-type: lower-roman;\n}\n.wmde-markdown div > ol:not([type]) {\n list-style-type: decimal;\n}\n.wmde-markdown ul ul,\n.wmde-markdown ul ol,\n.wmde-markdown ol ol,\n.wmde-markdown ol ul {\n margin-top: 0;\n margin-bottom: 0;\n}\n.wmde-markdown li > p {\n margin-top: 16px;\n}\n.wmde-markdown li + li {\n margin-top: 0.25em;\n}\n.wmde-markdown dl {\n padding: 0;\n}\n.wmde-markdown dl dt {\n padding: 0;\n margin-top: 16px;\n font-size: 1em;\n font-style: italic;\n font-weight: 600;\n}\n.wmde-markdown dl dd {\n padding: 0 16px;\n margin-bottom: 16px;\n}\n.wmde-markdown table th {\n font-weight: 600;\n}\n.wmde-markdown table th,\n.wmde-markdown table td {\n padding: 6px 13px;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown table tr {\n background-color: var(--color-canvas-default);\n border-top: 1px solid var(--color-border-muted);\n}\n.wmde-markdown table tr:nth-child(2n) {\n background-color: var(--color-canvas-subtle);\n}\n.wmde-markdown table img {\n background-color: transparent;\n}\n.wmde-markdown img[align='right'] {\n padding-left: 20px;\n}\n.wmde-markdown img[align='left'] {\n padding-right: 20px;\n}\n.wmde-markdown .emoji {\n max-width: none;\n vertical-align: text-top;\n background-color: transparent;\n}\n.wmde-markdown span.frame {\n display: block;\n overflow: hidden;\n}\n.wmde-markdown span.frame > span {\n display: block;\n float: left;\n width: auto;\n padding: 7px;\n margin: 13px 0 0;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n}\n.wmde-markdown span.frame span img {\n display: block;\n float: left;\n}\n.wmde-markdown span.frame span span {\n display: block;\n padding: 5px 0 0;\n clear: both;\n color: var(--color-fg-default);\n}\n.wmde-markdown span.align-center {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-center > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: center;\n}\n.wmde-markdown span.align-center span img {\n margin: 0 auto;\n text-align: center;\n}\n.wmde-markdown span.align-right {\n display: block;\n overflow: hidden;\n clear: both;\n}\n.wmde-markdown span.align-right > span {\n display: block;\n margin: 13px 0 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown span.align-right span img {\n margin: 0;\n text-align: right;\n}\n.wmde-markdown span.float-left {\n display: block;\n float: left;\n margin-right: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-left span {\n margin: 13px 0 0;\n}\n.wmde-markdown span.float-right {\n display: block;\n float: right;\n margin-left: 13px;\n overflow: hidden;\n}\n.wmde-markdown span.float-right > span {\n display: block;\n margin: 13px auto 0;\n overflow: hidden;\n text-align: right;\n}\n.wmde-markdown code,\n.wmde-markdown tt {\n padding: 0.2em 0.4em;\n margin: 0;\n font-size: 85%;\n background-color: var(--color-neutral-muted);\n border-radius: 6px;\n}\n.wmde-markdown code br,\n.wmde-markdown tt br {\n display: none;\n}\n.wmde-markdown del code {\n text-decoration: inherit;\n}\n.wmde-markdown pre code {\n font-size: 100%;\n}\n.wmde-markdown pre > code {\n padding: 0;\n margin: 0;\n word-break: normal;\n white-space: pre;\n background: transparent;\n border: 0;\n}\n.wmde-markdown pre {\n font-size: 85%;\n line-height: 1.45;\n background-color: var(--color-canvas-subtle);\n border-radius: 6px;\n}\n.wmde-markdown pre code,\n.wmde-markdown pre tt {\n display: inline;\n max-width: auto;\n padding: 0;\n margin: 0;\n overflow: visible;\n line-height: inherit;\n word-wrap: normal;\n background-color: transparent;\n border: 0;\n}\n.wmde-markdown pre > code {\n padding: 16px;\n overflow: auto;\n display: block;\n}\n.wmde-markdown .csv-data td,\n.wmde-markdown .csv-data th {\n padding: 5px;\n overflow: hidden;\n font-size: 12px;\n line-height: 1;\n text-align: left;\n white-space: nowrap;\n}\n.wmde-markdown .csv-data .blob-num {\n padding: 10px 8px 9px;\n text-align: right;\n background: var(--color-canvas-default);\n border: 0;\n}\n.wmde-markdown .csv-data tr {\n border-top: 0;\n}\n.wmde-markdown .csv-data th {\n font-weight: 600;\n background: var(--color-canvas-subtle);\n border-top: 0;\n}\n.wmde-markdown .footnotes {\n font-size: 12px;\n color: var(--color-fg-muted);\n border-top: 1px solid var(--color-border-default);\n}\n.wmde-markdown .footnotes ol {\n padding-left: 16px;\n}\n.wmde-markdown .footnotes li {\n position: relative;\n}\n.wmde-markdown .footnotes li:target::before {\n position: absolute;\n top: -8px;\n right: -8px;\n bottom: -8px;\n left: -24px;\n pointer-events: none;\n content: '';\n border: 2px solid var(--color-accent-emphasis);\n border-radius: 6px;\n}\n.wmde-markdown .footnotes li:target {\n color: var(--color-fg-default);\n}\n.wmde-markdown .footnotes .data-footnote-backref g-emoji {\n font-family: monospace;\n}\n.wmde-markdown .task-list-item {\n list-style-type: none;\n}\n.wmde-markdown .task-list-item label {\n font-weight: 400;\n}\n.wmde-markdown .task-list-item.enabled label {\n cursor: pointer;\n}\n.wmde-markdown .task-list-item + .wmde-markdown .task-list-item {\n margin-top: 3px;\n}\n.wmde-markdown .task-list-item .handle {\n display: none;\n}\n.wmde-markdown .task-list-item-checkbox,\n.wmde-markdown .contains-task-list input[type='checkbox'] {\n margin: 0 0.2em 0.25em -1.6em;\n vertical-align: middle;\n}\n.wmde-markdown .contains-task-list:dir(rtl) .task-list-item-checkbox,\n.wmde-markdown .contains-task-list:dir(rtl) input[type='checkbox'] {\n margin: 0 -1.6em 0.25em 0.2em;\n}\n.wmde-markdown ::-webkit-calendar-picker-indicator {\n filter: invert(50%);\n}\n.wmde-markdown pre {\n position: relative;\n}\n.wmde-markdown pre .copied {\n visibility: hidden;\n display: flex;\n position: absolute;\n cursor: pointer;\n color: var(--color-fg-default);\n top: 6px;\n right: 6px;\n border-radius: 5px;\n background: var(--color-border-default);\n padding: 6px;\n font-size: 12px;\n transition: all 0.3s;\n}\n.wmde-markdown pre .copied .octicon-copy {\n display: block;\n}\n.wmde-markdown pre .copied .octicon-check {\n display: none;\n}\n.wmde-markdown pre:hover .copied {\n visibility: visible;\n}\n.wmde-markdown pre:hover .copied:hover {\n background: var(--color-prettylights-syntax-entity-tag);\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre:hover .copied:active,\n.wmde-markdown pre .copied.active {\n background: var(--color-copied-active-bg);\n color: var(--color-canvas-default);\n}\n.wmde-markdown pre .active .octicon-copy {\n display: none;\n}\n.wmde-markdown pre .active .octicon-check {\n display: block;\n}\n.wmde-markdown .markdown-alert {\n padding: 0.5rem 1em;\n color: inherit;\n margin-bottom: 16px;\n border-left: 0.25em solid var(--borderColor-default, var(--color-border-default));\n}\n.wmde-markdown .markdown-alert > :last-child {\n margin-bottom: 0 !important;\n}\n.wmde-markdown .markdown-alert .markdown-alert-title {\n display: flex;\n align-items: center;\n line-height: 1;\n font-weight: 500;\n font-size: 14px;\n}\n.wmde-markdown .markdown-alert .markdown-alert-title svg.octicon {\n margin-right: var(--base-size-8, 8px) !important;\n}\n.wmde-markdown .markdown-alert.markdown-alert-note {\n border-left-color: var(--borderColor-accent-emphasis, var(--color-accent-emphasis));\n}\n.wmde-markdown .markdown-alert.markdown-alert-note .markdown-alert-title {\n color: var(--fgColor-accent, var(--color-accent-fg));\n}\n.wmde-markdown .markdown-alert.markdown-alert-tip {\n border-left-color: var(--borderColor-success-emphasis, var(--color-success-emphasis));\n}\n.wmde-markdown .markdown-alert.markdown-alert-tip .markdown-alert-title {\n color: var(--fgColor-success, var(--color-success-fg));\n}\n.wmde-markdown .markdown-alert.markdown-alert-important {\n border-left-color: var(--borderColor-done-emphasis, var(--color-done-emphasis));\n}\n.wmde-markdown .markdown-alert.markdown-alert-important .markdown-alert-title {\n color: var(--fgColor-done, var(--color-done-fg));\n}\n.wmde-markdown .markdown-alert.markdown-alert-warning {\n border-left-color: var(--borderColor-attention-emphasis, var(--color-attention-emphasis));\n}\n.wmde-markdown .markdown-alert.markdown-alert-warning .markdown-alert-title {\n color: var(--fgColor-attention, var(--color-attention-fg));\n}\n.wmde-markdown .markdown-alert.markdown-alert-caution {\n border-left-color: var(--borderColor-danger-emphasis, var(--color-danger-emphasis));\n}\n.wmde-markdown .markdown-alert.markdown-alert-caution .markdown-alert-title {\n color: var(--fgColor-danger, var(--color-danger-fg));\n}\n.wmde-markdown .highlight-line {\n background-color: var(--color-neutral-muted);\n}\n.wmde-markdown .code-line.line-number::before {\n display: inline-block;\n width: 1rem;\n text-align: right;\n margin-right: 16px;\n color: var(--color-fg-subtle);\n content: attr(line);\n white-space: nowrap;\n}\n.wmde-markdown .token.comment,\n.wmde-markdown .token.prolog,\n.wmde-markdown .token.doctype,\n.wmde-markdown .token.cdata {\n color: var(--color-prettylights-syntax-comment);\n}\n.wmde-markdown .token.namespace {\n opacity: 0.7;\n}\n.wmde-markdown .token.property,\n.wmde-markdown .token.tag,\n.wmde-markdown .token.selector,\n.wmde-markdown .token.constant,\n.wmde-markdown .token.symbol,\n.wmde-markdown .token.deleted {\n color: var(--color-prettylights-syntax-entity-tag);\n}\n.wmde-markdown .token.maybe-class-name {\n color: var(--color-prettylights-syntax-variable);\n}\n.wmde-markdown .token.property-access,\n.wmde-markdown .token.operator,\n.wmde-markdown .token.boolean,\n.wmde-markdown .token.number,\n.wmde-markdown .token.selector .token.class,\n.wmde-markdown .token.attr-name,\n.wmde-markdown .token.string,\n.wmde-markdown .token.char,\n.wmde-markdown .token.builtin {\n color: var(--color-prettylights-syntax-constant);\n}\n.wmde-markdown .token.deleted {\n color: var(--color-prettylights-syntax-markup-deleted-text);\n}\n.wmde-markdown .code-line .token.deleted {\n background-color: var(--color-prettylights-syntax-markup-deleted-bg);\n}\n.wmde-markdown .token.inserted {\n color: var(--color-prettylights-syntax-markup-inserted-text);\n}\n.wmde-markdown .code-line .token.inserted {\n background-color: var(--color-prettylights-syntax-markup-inserted-bg);\n}\n.wmde-markdown .token.variable {\n color: var(--color-prettylights-syntax-constant);\n}\n.wmde-markdown .token.entity,\n.wmde-markdown .token.url,\n.wmde-markdown .language-css .token.string,\n.wmde-markdown .style .token.string {\n color: var(--color-prettylights-syntax-string);\n}\n.wmde-markdown .token.color,\n.wmde-markdown .token.atrule,\n.wmde-markdown .token.attr-value,\n.wmde-markdown .token.function,\n.wmde-markdown .token.class-name {\n color: var(--color-prettylights-syntax-string);\n}\n.wmde-markdown .token.rule,\n.wmde-markdown .token.regex,\n.wmde-markdown .token.important,\n.wmde-markdown .token.keyword {\n color: var(--color-prettylights-syntax-keyword);\n}\n.wmde-markdown .token.coord {\n color: var(--color-prettylights-syntax-meta-diff-range);\n}\n.wmde-markdown .token.important,\n.wmde-markdown .token.bold {\n font-weight: bold;\n}\n.wmde-markdown .token.italic {\n font-style: italic;\n}\n.wmde-markdown .token.entity {\n cursor: help;\n}\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1056.ae50035d.chunk.js b/static/js/1056.ae50035d.chunk.js new file mode 100644 index 000000000..750c184f0 --- /dev/null +++ b/static/js/1056.ae50035d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1056],{31056:(n,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s="FROM mono:3.12\n\nENV KRE_FEED https://www.myget.org/F/aspnetvnext/api/v2\nENV KRE_USER_HOME /opt/kre\n\nRUN apt-get -qq update && apt-get -qqy install unzip \n\nONBUILD RUN curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/kvminstall.sh | sh\nONBUILD RUN bash -c \"source $KRE_USER_HOME/kvm/kvm.sh \\\n && kvm install latest -a default \\\n && kvm alias default | xargs -i ln -s $KRE_USER_HOME/packages/{} $KRE_USER_HOME/packages/default\"\n\n# Install libuv for Kestrel from source code (binary is not in wheezy and one in jessie is still too old)\nRUN apt-get -qqy install \\\n autoconf \\\n automake \\\n build-essential \\\n libtool \nRUN LIBUV_VERSION=1.0.0-rc2 \\\n && curl -sSL https://github.com/joyent/libuv/archive/v${LIBUV_VERSION}.tar.gz | tar zxfv - -C /usr/local/src \\\n && cd /usr/local/src/libuv-$LIBUV_VERSION \\\n && sh autogen.sh && ./configure && make && make install \\\n && rm -rf /usr/local/src/libuv-$LIBUV_VERSION \\\n && ldconfig\n\nENV PATH $PATH:$KRE_USER_HOME/packages/default/bin\n\n# Extra things to test\nRUN echo \"string at end\"\nRUN echo must work 'some str' and some more\nRUN echo hi this is # not a comment\nRUN echo 'String with ${VAR} and another $one here'"}}]); +//# sourceMappingURL=1056.ae50035d.chunk.js.map \ No newline at end of file diff --git a/static/js/1056.ae50035d.chunk.js.map b/static/js/1056.ae50035d.chunk.js.map new file mode 100644 index 000000000..28925b703 --- /dev/null +++ b/static/js/1056.ae50035d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1056.ae50035d.chunk.js","mappings":"yHAAA,quC","sources":["../../node_modules/code-example/txt/sample.dockerfile.txt"],"sourcesContent":["export default \"FROM mono:3.12\\n\\nENV KRE_FEED https://www.myget.org/F/aspnetvnext/api/v2\\nENV KRE_USER_HOME /opt/kre\\n\\nRUN apt-get -qq update && apt-get -qqy install unzip \\n\\nONBUILD RUN curl -sSL https://raw.githubusercontent.com/aspnet/Home/dev/kvminstall.sh | sh\\nONBUILD RUN bash -c \\\"source $KRE_USER_HOME/kvm/kvm.sh \\\\\\n && kvm install latest -a default \\\\\\n && kvm alias default | xargs -i ln -s $KRE_USER_HOME/packages/{} $KRE_USER_HOME/packages/default\\\"\\n\\n# Install libuv for Kestrel from source code (binary is not in wheezy and one in jessie is still too old)\\nRUN apt-get -qqy install \\\\\\n autoconf \\\\\\n automake \\\\\\n build-essential \\\\\\n libtool \\nRUN LIBUV_VERSION=1.0.0-rc2 \\\\\\n && curl -sSL https://github.com/joyent/libuv/archive/v${LIBUV_VERSION}.tar.gz | tar zxfv - -C /usr/local/src \\\\\\n && cd /usr/local/src/libuv-$LIBUV_VERSION \\\\\\n && sh autogen.sh && ./configure && make && make install \\\\\\n && rm -rf /usr/local/src/libuv-$LIBUV_VERSION \\\\\\n && ldconfig\\n\\nENV PATH $PATH:$KRE_USER_HOME/packages/default/bin\\n\\n# Extra things to test\\nRUN echo \\\"string at end\\\"\\nRUN echo must work 'some str' and some more\\nRUN echo hi this is # not a comment\\nRUN echo 'String with ${VAR} and another $one here'\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1090.7431949b.chunk.js b/static/js/1090.7431949b.chunk.js new file mode 100644 index 000000000..f5063e643 --- /dev/null +++ b/static/js/1090.7431949b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1090],{21090:(o,t,e)=>{e.r(t),e.d(t,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Copilot Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-copilot.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot)\n\nCopilot theme for cm6, generated from [copilot-theme](https://github.com/benjaminbenais/copilot-theme/blob/main/themes/Copilot%20Theme-color-theme.json).\n\n\n \"codemirror-theme-copilot\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-copilot --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { copilot } from '@uiw/codemirror-theme-copilot';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [copilot, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { copilot, copilotInit } from '@uiw/codemirror-theme-copilot';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const copilotInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const copilot: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { copilot } from '@uiw/codemirror-theme-copilot';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { copilot } from '@uiw/codemirror-theme-copilot';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [copilot, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1090.7431949b.chunk.js.map \ No newline at end of file diff --git a/static/js/1090.7431949b.chunk.js.map b/static/js/1090.7431949b.chunk.js.map new file mode 100644 index 000000000..4cf90b2b2 --- /dev/null +++ b/static/js/1090.7431949b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1090.7431949b.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,4iGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/copilot/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Copilot Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-copilot.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot)\\n\\nCopilot theme for cm6, generated from [copilot-theme](https://github.com/benjaminbenais/copilot-theme/blob/main/themes/Copilot%20Theme-color-theme.json).\\n\\n\\n \\\"codemirror-theme-copilot\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-copilot --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { copilot } from '@uiw/codemirror-theme-copilot';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [copilot, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { copilot, copilotInit } from '@uiw/codemirror-theme-copilot';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const copilotInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const copilot: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { copilot } from '@uiw/codemirror-theme-copilot';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { copilot } from '@uiw/codemirror-theme-copilot';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [copilot, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1108.43ccf218.chunk.js b/static/js/1108.43ccf218.chunk.js new file mode 100644 index 000000000..a6d264447 --- /dev/null +++ b/static/js/1108.43ccf218.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1108],{51108:(n,i,e)=>{e.r(i),e.d(i,{default:()=>r});const r='package examples\n\n/** Quick sort, imperative style */\nobject sort {\n\n /** Nested methods can use and even update everything\n * visible in their scope (including local variables or\n * arguments of enclosing methods).\n */\n def sort(a: Array[Int]) {\n\n def swap(i: Int, j: Int) {\n val t = a(i); a(i) = a(j); a(j) = t\n }\n\n def sort1(l: Int, r: Int) {\n val pivot = a((l + r) / 2)\n var i = l\n var j = r\n while (i <= j) {\n while (a(i) < pivot) i += 1\n while (a(j) > pivot) j -= 1\n if (i <= j) {\n swap(i, j)\n i += 1\n j -= 1\n }\n }\n if (l < j) sort1(l, j)\n if (j < r) sort1(i, r)\n }\n\n if (a.length > 0)\n sort1(0, a.length - 1)\n }\n\n def println(ar: Array[Int]) {\n def print1 = {\n def iter(i: Int): String =\n ar(i) + (if (i < ar.length-1) "," + iter(i+1) else "")\n if (ar.length == 0) "" else iter(0)\n }\n Console.println("[" + print1 + "]")\n }\n\n def main(args: Array[String]) {\n val ar = Array(6, 2, 8, 5, 1)\n println(ar)\n sort(ar)\n println(ar)\n }\n\n}\n'}}]); +//# sourceMappingURL=1108.43ccf218.chunk.js.map \ No newline at end of file diff --git a/static/js/1108.43ccf218.chunk.js.map b/static/js/1108.43ccf218.chunk.js.map new file mode 100644 index 000000000..f07601feb --- /dev/null +++ b/static/js/1108.43ccf218.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1108.43ccf218.chunk.js","mappings":"yHAAA,ipC","sources":["../../node_modules/code-example/txt/sample.scala.txt"],"sourcesContent":["export default \"package examples\\n\\n/** Quick sort, imperative style */\\nobject sort {\\n\\n /** Nested methods can use and even update everything\\n * visible in their scope (including local variables or\\n * arguments of enclosing methods).\\n */\\n def sort(a: Array[Int]) {\\n\\n def swap(i: Int, j: Int) {\\n val t = a(i); a(i) = a(j); a(j) = t\\n }\\n\\n def sort1(l: Int, r: Int) {\\n val pivot = a((l + r) / 2)\\n var i = l\\n var j = r\\n while (i <= j) {\\n while (a(i) < pivot) i += 1\\n while (a(j) > pivot) j -= 1\\n if (i <= j) {\\n swap(i, j)\\n i += 1\\n j -= 1\\n }\\n }\\n if (l < j) sort1(l, j)\\n if (j < r) sort1(i, r)\\n }\\n\\n if (a.length > 0)\\n sort1(0, a.length - 1)\\n }\\n\\n def println(ar: Array[Int]) {\\n def print1 = {\\n def iter(i: Int): String =\\n ar(i) + (if (i < ar.length-1) \\\",\\\" + iter(i+1) else \\\"\\\")\\n if (ar.length == 0) \\\"\\\" else iter(0)\\n }\\n Console.println(\\\"[\\\" + print1 + \\\"]\\\")\\n }\\n\\n def main(args: Array[String]) {\\n val ar = Array(6, 2, 8, 5, 1)\\n println(ar)\\n sort(ar)\\n println(ar)\\n }\\n\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1205.f9721c7f.chunk.js b/static/js/1205.f9721c7f.chunk.js new file mode 100644 index 000000000..1470ebc2e --- /dev/null +++ b/static/js/1205.f9721c7f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1205],{71205:(n,t,a)=>{a.r(t),a.d(t,{default:()=>c});const c='const val POINTS_X_PASS: Int = 15\nval EZPassAccounts: MutableMap = mutableMapOf(1 to 100, 2 to 100, 3 to 100)\nval EZPassReport: Map = EZPassAccounts\n\n// update points credit\nfun updatePointsCredit(accountId: Int) {\n if (EZPassAccounts.containsKey(accountId)) {\n println("Updating $accountId...")\n EZPassAccounts[accountId] = EZPassAccounts.getValue(accountId) + POINTS_X_PASS\n } else {\n println("Error: Trying to update a non-existing account (id: $accountId)")\n }\n}\n\nfun accountsReport() {\n println("EZ-Pass report:")\n EZPassReport.forEach{\n k, v -> println("ID $k: credit $v")\n }\n}\n\nfun main() {\n accountsReport()\n updatePointsCredit(1)\n updatePointsCredit(1)\n updatePointsCredit(5)\n accountsReport()\n}'}}]); +//# sourceMappingURL=1205.f9721c7f.chunk.js.map \ No newline at end of file diff --git a/static/js/1205.f9721c7f.chunk.js.map b/static/js/1205.f9721c7f.chunk.js.map new file mode 100644 index 000000000..8900d472e --- /dev/null +++ b/static/js/1205.f9721c7f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1205.f9721c7f.chunk.js","mappings":"yHAAA,szB","sources":["../../node_modules/code-example/txt/sample.kotlin.txt"],"sourcesContent":["export default \"const val POINTS_X_PASS: Int = 15\\nval EZPassAccounts: MutableMap = mutableMapOf(1 to 100, 2 to 100, 3 to 100)\\nval EZPassReport: Map = EZPassAccounts\\n\\n// update points credit\\nfun updatePointsCredit(accountId: Int) {\\n if (EZPassAccounts.containsKey(accountId)) {\\n println(\\\"Updating $accountId...\\\")\\n EZPassAccounts[accountId] = EZPassAccounts.getValue(accountId) + POINTS_X_PASS\\n } else {\\n println(\\\"Error: Trying to update a non-existing account (id: $accountId)\\\")\\n }\\n}\\n\\nfun accountsReport() {\\n println(\\\"EZ-Pass report:\\\")\\n EZPassReport.forEach{\\n k, v -> println(\\\"ID $k: credit $v\\\")\\n }\\n}\\n\\nfun main() {\\n accountsReport()\\n updatePointsCredit(1)\\n updatePointsCredit(1)\\n updatePointsCredit(5)\\n accountsReport()\\n}\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1421.8ebcb43a.chunk.js b/static/js/1421.8ebcb43a.chunk.js new file mode 100644 index 000000000..62224be61 --- /dev/null +++ b/static/js/1421.8ebcb43a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1421],{81421:(e,l,n)=>{n.r(l),n.d(l,{default:()=>t});const t='\n\n \n \n {% block title %}Welcome!{% endblock %}\n {% block stylesheets %}{% endblock %}\n \n \n {% block body %}{% endblock %}\n {% block javascripts %}{% endblock %}\n \n\n'}}]); +//# sourceMappingURL=1421.8ebcb43a.chunk.js.map \ No newline at end of file diff --git a/static/js/1421.8ebcb43a.chunk.js.map b/static/js/1421.8ebcb43a.chunk.js.map new file mode 100644 index 000000000..36fb0be7e --- /dev/null +++ b/static/js/1421.8ebcb43a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1421.8ebcb43a.chunk.js","mappings":"yHAAA,oU","sources":["../../node_modules/code-example/txt/sample.twig.txt"],"sourcesContent":["export default \"\\n\\n \\n \\n {% block title %}Welcome!{% endblock %}\\n {% block stylesheets %}{% endblock %}\\n \\n \\n {% block body %}{% endblock %}\\n {% block javascripts %}{% endblock %}\\n \\n\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1510.f2f0836f.chunk.js b/static/js/1510.f2f0836f.chunk.js new file mode 100644 index 000000000..fcdd940f6 --- /dev/null +++ b/static/js/1510.f2f0836f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1510],{81510:(e,t,r)=>{r.r(t),r.d(t,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Abyss Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss)\n\nAbyss theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-abyss/themes/abyss-color-theme.json).\n\n\n \"codemirror-theme-abyss\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-abyss --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { abyss } from '@uiw/codemirror-theme-abyss';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [abyss, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { abyss, abyssInit } from '@uiw/codemirror-theme-abyss';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const abyssInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const abyss: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { abyss } from '@uiw/codemirror-theme-abyss';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { abyss } from '@uiw/codemirror-theme-abyss';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [abyss, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1510.f2f0836f.chunk.js.map \ No newline at end of file diff --git a/static/js/1510.f2f0836f.chunk.js.map b/static/js/1510.f2f0836f.chunk.js.map new file mode 100644 index 000000000..ad107a00d --- /dev/null +++ b/static/js/1510.f2f0836f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1510.f2f0836f.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,gjGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/abyss/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Abyss Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss)\\n\\nAbyss theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-abyss/themes/abyss-color-theme.json).\\n\\n\\n \\\"codemirror-theme-abyss\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-abyss --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { abyss } from '@uiw/codemirror-theme-abyss';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [abyss, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { abyss, abyssInit } from '@uiw/codemirror-theme-abyss';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const abyssInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const abyss: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { abyss } from '@uiw/codemirror-theme-abyss';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { abyss } from '@uiw/codemirror-theme-abyss';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [abyss, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1545.0f9fb7dc.chunk.js b/static/js/1545.0f9fb7dc.chunk.js new file mode 100644 index 000000000..b00399c69 --- /dev/null +++ b/static/js/1545.0f9fb7dc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1545],{91545:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Bespin Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bespin.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin)\n\n\n \"codemirror-theme-bespin\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-bespin --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { bespin } from '@uiw/codemirror-theme-bespin';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [bespin, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { bespin, bespinInit } from '@uiw/codemirror-theme-bespin';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsBespin: CreateThemeOptions['settings'];\nexport declare const bespinInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const bespin: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { bespin } from '@uiw/codemirror-theme-bespin';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { bespin } from '@uiw/codemirror-theme-bespin';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [bespin, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1545.0f9fb7dc.chunk.js.map \ No newline at end of file diff --git a/static/js/1545.0f9fb7dc.chunk.js.map b/static/js/1545.0f9fb7dc.chunk.js.map new file mode 100644 index 000000000..5c08eb5bd --- /dev/null +++ b/static/js/1545.0f9fb7dc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1545.0f9fb7dc.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,++FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/bespin/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Bespin Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bespin.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin)\\n\\n\\n \\\"codemirror-theme-bespin\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-bespin --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { bespin } from '@uiw/codemirror-theme-bespin';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [bespin, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { bespin, bespinInit } from '@uiw/codemirror-theme-bespin';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsBespin: CreateThemeOptions['settings'];\\nexport declare const bespinInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const bespin: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { bespin } from '@uiw/codemirror-theme-bespin';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { bespin } from '@uiw/codemirror-theme-bespin';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [bespin, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1548.f393ecf6.chunk.js b/static/js/1548.f393ecf6.chunk.js new file mode 100644 index 000000000..9bffec155 --- /dev/null +++ b/static/js/1548.f393ecf6.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1548],{41548:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a=' -- defines a factorial function\n function fact (n)\n if n == 0 then\n return 1\n else\n return n * fact(n-1)\n end\n end\n \n print("enter a number:")\n a = io.read("*number") -- read a number\n print(fact(a))'}}]); +//# sourceMappingURL=1548.f393ecf6.chunk.js.map \ No newline at end of file diff --git a/static/js/1548.f393ecf6.chunk.js.map b/static/js/1548.f393ecf6.chunk.js.map new file mode 100644 index 000000000..e56eda9a8 --- /dev/null +++ b/static/js/1548.f393ecf6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1548.f393ecf6.chunk.js","mappings":"yHAAA,sR","sources":["../../node_modules/code-example/txt/sample.lua.txt"],"sourcesContent":["export default \" -- defines a factorial function\\n function fact (n)\\n if n == 0 then\\n return 1\\n else\\n return n * fact(n-1)\\n end\\n end\\n \\n print(\\\"enter a number:\\\")\\n a = io.read(\\\"*number\\\") -- read a number\\n print(fact(a))\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1573.3386e8c5.chunk.js b/static/js/1573.3386e8c5.chunk.js new file mode 100644 index 000000000..7c046a1a8 --- /dev/null +++ b/static/js/1573.3386e8c5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1573],{11573:(e,a,n)=>{n.r(a),n.d(a,{default:()=>s});const s="create view tables_vw as\nselect distinct(id) table_id\n,trim(datname) db_name\n,trim(nspname) schema_name\n,trim(relname) table_name\nfrom stv_tbl_perm\njoin pg_class on pg_class.oid = stv_tbl_perm.id\njoin pg_namespace on pg_namespace.oid = relnamespace\njoin pg_database on pg_database.oid = stv_tbl_perm.db_id;\n"}}]); +//# sourceMappingURL=1573.3386e8c5.chunk.js.map \ No newline at end of file diff --git a/static/js/1573.3386e8c5.chunk.js.map b/static/js/1573.3386e8c5.chunk.js.map new file mode 100644 index 000000000..acf0eb113 --- /dev/null +++ b/static/js/1573.3386e8c5.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1573.3386e8c5.chunk.js","mappings":"yHAAA,4U","sources":["../../node_modules/code-example/txt/sample.redshift.txt"],"sourcesContent":["export default \"create view tables_vw as\\nselect distinct(id) table_id\\n,trim(datname) db_name\\n,trim(nspname) schema_name\\n,trim(relname) table_name\\nfrom stv_tbl_perm\\njoin pg_class on pg_class.oid = stv_tbl_perm.id\\njoin pg_namespace on pg_namespace.oid = relnamespace\\njoin pg_database on pg_database.oid = stv_tbl_perm.db_id;\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1635.885a6fd6.chunk.js b/static/js/1635.885a6fd6.chunk.js new file mode 100644 index 000000000..e19759d85 --- /dev/null +++ b/static/js/1635.885a6fd6.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1635],{27406:(e,r,n)=>{n.r(r),n.d(r,{default:()=>A});var t=n(68102),o=n(49257),a=n(80905),i=n(73562),l=n(67538),u=n(98557),c={modified:{doc:""},original:{doc:""}},f=(0,a.createContext)(c);function d(e,r){return(0,t.A)({},e,r,{modified:(0,t.A)({},e.modified,r.modified),original:(0,t.A)({},e.original,r.original)})}var s=()=>(0,a.useContext)(f),g=e=>{var{children:r,theme:n}=e,[o,i]=(0,a.useReducer)(d,(0,t.A)({},c,{theme:n}));return(0,a.useEffect)((()=>i({theme:n})),[n]),(0,u.jsx)(f.Provider,{value:(0,t.A)({},o,{dispatch:i}),children:r})},p=["extensions","value","selection","onChange"],v=e=>{var{extensions:r=[],value:n,selection:u,onChange:c}=e,f=(0,o.A)(e,p),{theme:d,dispatch:g}=s(),v=(0,i.getDefaultExtensions)((0,t.A)({},f,{theme:d})),h=l.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof c){var r=e.state.doc.toString();c(r,e)}}));return(0,a.useEffect)((()=>g({original:{doc:n,selection:u,extensions:[h,...v,...r]},originalExtension:{onChange:c,option:f,extension:[r,h]}})),[e]),null};v.displayName="CodeMirrorMerge.Original";var h=["extensions","value","selection","onChange"],m=e=>{var{extensions:r=[],value:n,selection:u,onChange:c}=e,f=(0,o.A)(e,h),{theme:d,dispatch:g}=s(),p=(0,i.getDefaultExtensions)((0,t.A)({},f,{theme:d})),v=l.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof c){var r=e.state.doc.toString();c(r,e)}}));return(0,a.useEffect)((()=>g({modified:{doc:n,selection:u,extensions:[v,...p,...r]},modifiedExtension:{onChange:c,option:f,extension:[v,r]}})),[e]),null};m.displayName="CodeMirrorMerge.Modified";var y=n(60125),_=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl"],b=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],M=a.forwardRef(((e,r)=>{var{className:n,children:l,orientation:c,revertControls:f,highlightChanges:d,gutter:g,collapseUnchanged:p,destroyRerender:v=!0,renderRevertControl:h}=e,m=(0,o.A)(e,_),M=s(),{modified:C,modifiedExtension:x,original:A,originalExtension:S,theme:E,dispatch:w}=M,O=(0,o.A)(M,b),j=(0,a.useRef)(null),R=(0,a.useRef)(),T={orientation:c,revertControls:f,highlightChanges:d,gutter:g,collapseUnchanged:p,renderRevertControl:h};(0,a.useImperativeHandle)(r,(()=>({container:j.current,view:R.current,modified:C,original:A,config:(0,t.A)({a:A,b:C,parent:j.current},T)})),[j,R,C,A,T]),(0,a.useEffect)((()=>{!R.current&&j.current&&(R.current=new y.SV((0,t.A)({a:(0,t.A)({},A,{extensions:[...(null==S?void 0:S.extension)||[],...(0,i.getDefaultExtensions)((0,t.A)({},null==S?void 0:S.option,{theme:E}))]}),b:(0,t.A)({},C,{extensions:[...(null==x?void 0:x.extension)||[],...(0,i.getDefaultExtensions)((0,t.A)({},null==x?void 0:x.option,{theme:E}))]}),parent:j.current},T)))}),[R,j]),(0,a.useEffect)((()=>{if(A&&A.doc&&R.current){var e,r,n=null==(e=R.current)?void 0:e.a.state.doc.toString();if(n!==A.doc)null==(r=R.current)||r.a.dispatch({changes:{from:0,to:n.length,insert:A.doc||""}})}if(C&&C.doc&&R.current){var o,a,l=null==(o=R.current)?void 0:o.b.state.doc.toString();if(l!==C.doc)null==(a=R.current)||a.b.dispatch({changes:{from:0,to:l.length,insert:C.doc||""}})}if(v&&R.current){var u=R.current.a.state.selection.ranges[0].from,c=R.current.b.state.selection.ranges[0].from;R.current.destroy(),R.current=new y.SV((0,t.A)({a:(0,t.A)({},A,{extensions:[...(null==S?void 0:S.extension)||[],...(0,i.getDefaultExtensions)((0,t.A)({},null==S?void 0:S.option,{theme:E}))]}),b:(0,t.A)({},C,{extensions:[...(null==x?void 0:x.extension)||[],...(0,i.getDefaultExtensions)((0,t.A)({},null==x?void 0:x.option,{theme:E}))]}),parent:j.current},T)),u&&(R.current.a.focus(),R.current.a.dispatch({selection:{anchor:u,head:u}})),c&&(R.current.b.focus(),R.current.b.dispatch({selection:{anchor:c,head:c}}))}}),[R,E,j.current,A,C,S,x,v]),(0,a.useEffect)((()=>()=>R.current&&R.current.destroy()),[]),(0,a.useEffect)((()=>{if(R.current){var e={};O.orientation!==c&&(e.orientation=c),O.revertControls!==f&&(e.revertControls=f),O.highlightChanges!==d&&(e.highlightChanges=d),O.gutter!==g&&(e.gutter=g),O.collapseUnchanged!==p&&(e.collapseUnchanged=p),O.renderRevertControl!==h&&(e.collapseUnchanged=p),Object.keys(e).length&&w&&R.current&&(R.current.reconfigure((0,t.A)({},e)),w((0,t.A)({},e)))}}),[w,R,c,f,d,g,p,h]);return(0,u.jsx)("div",(0,t.A)({ref:j,className:"cm-merge-theme"+(n?" "+n:"")},m,{children:l}))}));M.displayName="CodeMirrorMerge.Internal";var C=["theme"],x=a.forwardRef(((e,r)=>{var{theme:n}=e,a=(0,o.A)(e,C);return(0,u.jsx)(g,{theme:n,children:(0,u.jsx)(M,(0,t.A)({},a,{ref:r}))})}));x.Original=v,x.Modified=m,x.displayName="CodeMirrorMerge";const A=x},31635:(e,r,n)=>{n.r(r),n.d(r,{default:()=>t});const t={components:{3:function(){function e(r){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},e(r)}var r,t=function(r,n){if(!n&&r&&r.__esModule)return r;if(null===r||"object"!=e(r)&&"function"!=typeof r)return{default:r};var t=a(n);if(t&&t.has(r))return t.get(r);var o={__proto__:null},i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in r)if("default"!==l&&{}.hasOwnProperty.call(r,l)){var u=i?Object.getOwnPropertyDescriptor(r,l):null;u&&(u.get||u.set)?Object.defineProperty(o,l,u):o[l]=r[l]}return o.default=r,t&&t.set(r,o),o}(n(80905)),o=(r=n(27406))&&r.__esModule?r:{default:r};function a(e){if("function"!=typeof WeakMap)return null;var r=new WeakMap,n=new WeakMap;return(a=function(e){return e?n:r})(e)}function i(e,r){return function(e){if(Array.isArray(e))return e}(e)||function(e,r){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var t,o,a,i,l=[],u=!0,c=!1;try{if(a=(n=n.call(e)).next,0===r){if(Object(n)!==n)return;u=!1}else for(;!(u=(t=a.call(n)).done)&&(l.push(t.value),l.length!==r);u=!0);}catch(e){c=!0,o=e}finally{try{if(!u&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(c)throw o}}return l}}(e,r)||function(e,r){if(!e)return;if("string"===typeof e)return l(e,r);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return l(e,r)}(e,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function l(e,r){(null==r||r>e.length)&&(r=e.length);for(var n=0,t=new Array(r);n arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar Original = _reactCodemirrorMerge["default"].Original;\nvar Modified = _reactCodemirrorMerge["default"].Modified;\nvar doc = "one\\ntwo\\nthree\\nfour\\nfive";\nreturn function App() {\n var _useState = (0, _react.useState)(\'\'),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var _useState3 = (0, _react.useState)(\'\'),\n _useState4 = _slicedToArray(_useState3, 2),\n valueModified = _useState4[0],\n setValueModified = _useState4[1];\n return /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(_reactCodemirrorMerge["default"], null, /*#__PURE__*/_react["default"].createElement(Original, {\n onChange: function onChange(value) {\n setValue(value);\n },\n value: doc\n }), /*#__PURE__*/_react["default"].createElement(Modified, {\n onChange: function onChange(value) {\n setValueModified(value);\n },\n value: doc.replace(/t/g, \'T\') + \'Six\'\n })), /*#__PURE__*/_react["default"].createElement("div", {\n style: {\n display: \'flex\',\n marginTop: 10\n }\n }, /*#__PURE__*/_react["default"].createElement("pre", {\n style: {\n flex: 1\n }\n }, value, " "), /*#__PURE__*/_react["default"].createElement("pre", {\n style: {\n backgroundColor: \'#fff\',\n flex: 1\n }\n }, valueModified, " ")));\n};',language:"jsx",value:"import React, { useState } from 'react';\nimport CodeMirrorMerge from 'react-codemirror-merge';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport default function App() {\n const [value, setValue] = useState('');\n const [valueModified, setValueModified] = useState('');\n return (\n
\n \n {\n setValue(value);\n }}\n value={doc}\n />\n {\n setValueModified(value);\n }}\n value={doc.replace(/t/g, 'T') + 'Six'}\n />\n \n
\n
{value} 
\n
{valueModified} 
\n
\n
\n );\n}"}},source:"# onChange Example\n\n```jsx mdx:preview\nimport React, { useState } from 'react';\nimport CodeMirrorMerge from 'react-codemirror-merge';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport default function App() {\n const [value, setValue] = useState('');\n const [valueModified, setValueModified] = useState('');\n return (\n
\n \n {\n setValue(value);\n }}\n value={doc}\n />\n {\n setValueModified(value);\n }}\n value={doc.replace(/t/g, 'T') + 'Six'}\n />\n \n
\n
{value} 
\n
{valueModified} 
\n
\n
\n );\n}\n```\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1635.885a6fd6.chunk.js.map \ No newline at end of file diff --git a/static/js/1635.885a6fd6.chunk.js.map b/static/js/1635.885a6fd6.chunk.js.map new file mode 100644 index 000000000..1da55e9c8 --- /dev/null +++ b/static/js/1635.885a6fd6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1635.885a6fd6.chunk.js","mappings":"+LAGWA,EAAe,CACxBC,SAAU,CACRC,IAAK,IAEPC,SAAU,CACRD,IAAK,KAGEE,GAAuBC,EAAAA,EAAAA,eAAcL,GACzC,SAASM,EAAQC,EAAOC,GAC7B,OAAOC,EAAAA,EAAAA,GAAS,CAAC,EAAGF,EAAOC,EAAQ,CACjCP,UAAUQ,EAAAA,EAAAA,GAAS,CAAC,EAAGF,EAAMN,SAAUO,EAAOP,UAC9CE,UAAUM,EAAAA,EAAAA,GAAS,CAAC,EAAGF,EAAMJ,SAAUK,EAAOL,WAElD,CACO,IAAIO,EAAWA,KACbC,EAAAA,EAAAA,YAAWP,GAETQ,EAAWC,IACpB,IAAI,SACFC,EAAQ,MACRC,GACEF,GACCN,EAAOS,IAAYC,EAAAA,EAAAA,YAAWX,GAASG,EAAAA,EAAAA,GAAS,CAAC,EAAGT,EAAc,CACrEe,WAKF,OAHAG,EAAAA,EAAAA,YAAU,IAAMF,EAAS,CACvBD,WACE,CAACA,KACeI,EAAAA,EAAAA,KAAKf,EAAQQ,SAAU,CACzCQ,OAAOX,EAAAA,EAAAA,GAAS,CAAC,EAAGF,EAAO,CACzBS,aAEFF,SAAUA,GACV,ECnCAO,EAAY,CAAC,aAAc,QAAS,YAAa,YAK1CC,EAAWC,IACpB,IAAI,WACAC,EAAa,GAAE,MACfJ,EAAK,UACLK,EAAS,SACTC,GACEH,EACJI,GAAcC,EAAAA,EAAAA,GAA8BL,EAAOF,IACjD,MACFN,EAAK,SACLC,GACEN,IACAmB,GAAoBC,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAGkB,EAAa,CACrEZ,WAEEgB,EAAiBC,EAAAA,GAAWD,eAAeE,IAAGC,IAChD,GAAIA,EAAGC,YAAkC,oBAAbT,EAAyB,CACnD,IACIU,EADMF,EAAG3B,MAAML,IACLmC,WACdX,EAASU,EAAKF,EAChB,KAcF,OAZAhB,EAAAA,EAAAA,YAAU,IAAMF,EAAS,CACvBb,SAAU,CACRD,IAAKkB,EACLK,UAAWA,EACXD,WAAY,CAACO,KAAmBF,KAAsBL,IAExDc,kBAAmB,CACjBZ,WACAa,OAAQZ,EACRa,UAAW,CAAChB,EAAYO,OAExB,CAACR,IACE,IAAI,EAEbD,EAASmB,YAAc,2BCzCvB,IAAIpB,EAAY,CAAC,aAAc,QAAS,YAAa,YAK1CqB,EAAWnB,IACpB,IAAI,WACAC,EAAa,GAAE,MACfJ,EAAK,UACLK,EAAS,SACTC,GACEH,EACJI,GAAcC,EAAAA,EAAAA,GAA8BL,EAAOF,IACjD,MACFN,EAAK,SACLC,GACEN,IACAmB,GAAoBC,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAGkB,EAAa,CACrEZ,WAEEgB,EAAiBC,EAAAA,GAAWD,eAAeE,IAAGC,IAChD,GAAIA,EAAGC,YAAkC,oBAAbT,EAAyB,CACnD,IACIU,EADMF,EAAG3B,MAAML,IACLmC,WACdX,EAASU,EAAKF,EAChB,KAcF,OAZAhB,EAAAA,EAAAA,YAAU,IAAMF,EAAS,CACvBf,SAAU,CACRC,IAAKkB,EACLK,UAAWA,EACXD,WAAY,CAACO,KAAmBF,KAAsBL,IAExDmB,kBAAmB,CACjBjB,WACAa,OAAQZ,EACRa,UAAW,CAACT,EAAgBP,OAE5B,CAACD,IACE,IAAI,EAEbmB,EAASD,YAAc,2B,eCzCnBpB,EAAY,CAAC,YAAa,WAAY,cAAe,iBAAkB,mBAAoB,SAAU,oBAAqB,kBAAmB,uBAC/IuB,EAAa,CAAC,WAAY,oBAAqB,WAAY,oBAAqB,QAAS,YAMhFC,EAAwBC,EAAAA,YAAiB,CAACvB,EAAOwB,KAC1D,IAAI,UACAC,EAAS,SACTlC,EAAQ,YACRmC,EAAW,eACXC,EAAc,iBACdC,EAAgB,OAChBC,EAAM,kBACNC,EAAiB,gBACjBC,GAAkB,EAAI,oBACtBC,GACEhC,EACJiC,GAAW5B,EAAAA,EAAAA,GAA8BL,EAAOF,GAC9CoC,EAAY/C,KACd,SACET,EAAQ,kBACR0C,EAAiB,SACjBxC,EAAQ,kBACRmC,EAAiB,MACjBvB,EAAK,SACLC,GACEyC,EACJC,GAAa9B,EAAAA,EAAAA,GAA8B6B,EAAWb,GACpDe,GAASC,EAAAA,EAAAA,QAAO,MAChBC,GAAOD,EAAAA,EAAAA,UACPE,EAAO,CACTb,cACAC,iBACAC,mBACAC,SACAC,oBACAE,wBAEFQ,EAAAA,EAAAA,qBAAoBhB,GAAK,KAAM,CAC7BiB,UAAWL,EAAOM,QAClBJ,KAAMA,EAAKI,QACXhE,WACAE,WACA+D,QAAQzD,EAAAA,EAAAA,GAAS,CACf0D,EAAGhE,EACHiE,EAAGnE,EACHoE,OAAQV,EAAOM,SACdH,MACD,CAACH,EAAQE,EAAM5D,EAAUE,EAAU2D,KACvC5C,EAAAA,EAAAA,YAAU,MACH2C,EAAKI,SAAWN,EAAOM,UAC1BJ,EAAKI,QAAU,IAAIK,EAAAA,IAAU7D,EAAAA,EAAAA,GAAS,CACpC0D,GAAG1D,EAAAA,EAAAA,GAAS,CAAC,EAAGN,EAAU,CACxBqB,WAAY,KAA2B,MAArBc,OAA4B,EAASA,EAAkBE,YAAc,OAAQV,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAwB,MAArB6B,OAA4B,EAASA,EAAkBC,OAAQ,CAC9LxB,cAGJqD,GAAG3D,EAAAA,EAAAA,GAAS,CAAC,EAAGR,EAAU,CACxBuB,WAAY,KAA2B,MAArBmB,OAA4B,EAASA,EAAkBH,YAAc,OAAQV,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAwB,MAArBkC,OAA4B,EAASA,EAAkBJ,OAAQ,CAC9LxB,cAGJsD,OAAQV,EAAOM,SACdH,IACL,GACC,CAACD,EAAMF,KACVzC,EAAAA,EAAAA,YAAU,KACR,GAAIf,GAAYA,EAASD,KAAO2D,EAAKI,QAAS,CAC5C,IAAIM,EAGEC,EAFFC,EAAgD,OAAjCF,EAAgBV,EAAKI,cAAmB,EAASM,EAAcJ,EAAE5D,MAAML,IAAImC,WAC9F,GAAIoC,IAAgBtE,EAASD,IAEQ,OAAlCsE,EAAiBX,EAAKI,UAAoBO,EAAeL,EAAEnD,SAAS,CACnE0D,QAAS,CACPC,KAAM,EACNC,GAAIH,EAAYI,OAChBC,OAAQ3E,EAASD,KAAO,KAQhC,CACA,GAAID,GAAYA,EAASC,KAAO2D,EAAKI,QAAS,CAC5C,IAAIc,EAGEC,EAFFC,EAAiD,OAAlCF,EAAiBlB,EAAKI,cAAmB,EAASc,EAAeX,EAAE7D,MAAML,IAAImC,WAChG,GAAI4C,IAAgBhF,EAASC,IAEQ,OAAlC8E,EAAiBnB,EAAKI,UAAoBe,EAAeZ,EAAEpD,SAAS,CACnE0D,QAAS,CACPC,KAAM,EACNC,GAAIK,EAAYJ,OAChBC,OAAQ7E,EAASC,KAAO,KAQhC,CACA,GAAIoD,GAAmBO,EAAKI,QAAS,CACnC,IAAIiB,EAAerB,EAAKI,QAAQE,EAAE5D,MAAMkB,UAAU0D,OAAO,GAAGR,KACxDS,EAAevB,EAAKI,QAAQG,EAAE7D,MAAMkB,UAAU0D,OAAO,GAAGR,KAC5Dd,EAAKI,QAAQoB,UACbxB,EAAKI,QAAU,IAAIK,EAAAA,IAAU7D,EAAAA,EAAAA,GAAS,CACpC0D,GAAG1D,EAAAA,EAAAA,GAAS,CAAC,EAAGN,EAAU,CACxBqB,WAAY,KAA2B,MAArBc,OAA4B,EAASA,EAAkBE,YAAc,OAAQV,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAwB,MAArB6B,OAA4B,EAASA,EAAkBC,OAAQ,CAC9LxB,cAGJqD,GAAG3D,EAAAA,EAAAA,GAAS,CAAC,EAAGR,EAAU,CACxBuB,WAAY,KAA2B,MAArBmB,OAA4B,EAASA,EAAkBH,YAAc,OAAQV,EAAAA,EAAAA,uBAAqBrB,EAAAA,EAAAA,GAAS,CAAC,EAAwB,MAArBkC,OAA4B,EAASA,EAAkBJ,OAAQ,CAC9LxB,cAGJsD,OAAQV,EAAOM,SACdH,IACCoB,IACFrB,EAAKI,QAAQE,EAAEmB,QACfzB,EAAKI,QAAQE,EAAEnD,SAAS,CACtBS,UAAW,CACT8D,OAAQL,EACRM,KAAMN,MAIRE,IACFvB,EAAKI,QAAQG,EAAEkB,QACfzB,EAAKI,QAAQG,EAAEpD,SAAS,CACtBS,UAAW,CACT8D,OAAQH,EACRI,KAAMJ,KAId,IACC,CAACvB,EAAM9C,EAAO4C,EAAOM,QAAS9D,EAAUF,EAAUqC,EAAmBK,EAAmBW,KAC3FpC,EAAAA,EAAAA,YAAU,IAAM,IAAM2C,EAAKI,SAAWJ,EAAKI,QAAQoB,WAAW,KAC9DnE,EAAAA,EAAAA,YAAU,KACR,GAAI2C,EAAKI,QAAS,CAChB,IAAIwB,EAAQ,CAAC,EACT/B,EAAWT,cAAgBA,IAC7BwC,EAAMxC,YAAcA,GAElBS,EAAWR,iBAAmBA,IAChCuC,EAAMvC,eAAiBA,GAErBQ,EAAWP,mBAAqBA,IAClCsC,EAAMtC,iBAAmBA,GAEvBO,EAAWN,SAAWA,IACxBqC,EAAMrC,OAASA,GAEbM,EAAWL,oBAAsBA,IACnCoC,EAAMpC,kBAAoBA,GAExBK,EAAWH,sBAAwBA,IACrCkC,EAAMpC,kBAAoBA,GAExBqC,OAAOC,KAAKF,GAAOZ,QAAU7D,GAAY6C,EAAKI,UAChDJ,EAAKI,QAAQ2B,aAAYnF,EAAAA,EAAAA,GAAS,CAAC,EAAGgF,IACtCzE,GAASP,EAAAA,EAAAA,GAAS,CAAC,EAAGgF,IAE1B,IACC,CAACzE,EAAU6C,EAAMZ,EAAaC,EAAgBC,EAAkBC,EAAQC,EAAmBE,IAE9F,OAAoBpC,EAAAA,EAAAA,KAAK,OAAOV,EAAAA,EAAAA,GAAS,CACvCsC,IAAKY,EACLX,UAHsB,kBAGeA,EAAY,IAAMA,EAAY,KAClEQ,EAAU,CACX1C,SAAUA,IACT,IAEL+B,EAASJ,YAAc,2BClLvB,IAAIpB,EAAY,CAAC,SAmBbwE,EAZkC/C,EAAAA,YAAiB,CAACjC,EAAMkC,KAC5D,IAAI,MACAhC,GACEF,EACJU,GAAQK,EAAAA,EAAAA,GAA8Bf,EAAMQ,GAC9C,OAAoBF,EAAAA,EAAAA,KAAKP,EAAU,CACjCG,MAAOA,EACPD,UAAuBK,EAAAA,EAAAA,KAAK0B,GAAUpC,EAAAA,EAAAA,GAAS,CAAC,EAAGc,EAAO,CACxDwB,IAAKA,MAEP,IAGJ8C,EAAgBvE,SAAWA,EAC3BuE,EAAgBnD,SAAWA,EAC3BmD,EAAgBpD,YAAc,kBAC9B,S,gDCxBA,SACIqD,WAAY,CAAE,EAAG,WAErB,SAASC,EAAQC,GAAgC,OAAOD,EAAU,mBAAqBE,QAAU,iBAAmBA,OAAOC,SAAW,SAAUF,GAAK,cAAcA,CAAG,EAAI,SAAUA,GAAK,OAAOA,GAAK,mBAAqBC,QAAUD,EAAEG,cAAgBF,QAAUD,IAAMC,OAAOG,UAAY,gBAAkBJ,CAAG,EAAGD,EAAQC,EAAI,CAC7T,IAEgCK,EAF5BC,EAIJ,SAAiCC,EAAGC,GAAK,IAAKA,GAAKD,GAAKA,EAAEE,WAAY,OAAOF,EAAG,GAAI,OAASA,GAAK,UAAYR,EAAQQ,IAAM,mBAAqBA,EAAG,MAAO,CAAE,QAAWA,GAAK,IAAIG,EAAIC,EAAyBH,GAAI,GAAIE,GAAKA,EAAEE,IAAIL,GAAI,OAAOG,EAAEG,IAAIN,GAAI,IAAIO,EAAI,CAAEC,UAAW,MAAQ5C,EAAIuB,OAAOsB,gBAAkBtB,OAAOuB,yBAA0B,IAAK,IAAIC,KAAKX,EAAG,GAAI,YAAcW,GAAK,CAAC,EAAEC,eAAeC,KAAKb,EAAGW,GAAI,CAAE,IAAIG,EAAIlD,EAAIuB,OAAOuB,yBAAyBV,EAAGW,GAAK,KAAMG,IAAMA,EAAER,KAAOQ,EAAEC,KAAO5B,OAAOsB,eAAeF,EAAGI,EAAGG,GAAKP,EAAEI,GAAKX,EAAEW,EAAI,CAAE,OAAOJ,EAAW,QAAIP,EAAGG,GAAKA,EAAEY,IAAIf,EAAGO,GAAIA,CAAG,CAJ5jBS,CAAwB,EAAQ,QACzCC,GAC4BnB,EADmB,EAAQ,SACNA,EAAII,WAAaJ,EAAM,CAAE,QAAWA,GACzF,SAASM,EAAyBJ,GAAK,GAAI,mBAAqBkB,QAAS,OAAO,KAAM,IAAIjB,EAAI,IAAIiB,QAAWf,EAAI,IAAIe,QAAW,OAAQd,EAA2B,SAAkCJ,GAAK,OAAOA,EAAIG,EAAIF,CAAG,GAAGD,EAAI,CAEnO,SAASmB,EAAeC,EAAKN,GAAK,OAKlC,SAAyBM,GAAO,GAAIC,MAAMC,QAAQF,GAAM,OAAOA,CAAK,CAL3BG,CAAgBH,IAIzD,SAA+BnB,EAAGuB,GAAK,IAAIrB,EAAI,MAAQF,EAAI,KAAO,oBAAsBP,QAAUO,EAAEP,OAAOC,WAAaM,EAAE,cAAe,GAAI,MAAQE,EAAG,CAAE,IAAIH,EAAGO,EAAGO,EAAGH,EAAG/C,EAAI,GAAI6D,GAAI,EAAIhC,GAAI,EAAI,IAAM,GAAIqB,GAAKX,EAAIA,EAAEU,KAAKZ,IAAIyB,KAAM,IAAMF,EAAG,CAAE,GAAIrC,OAAOgB,KAAOA,EAAG,OAAQsB,GAAI,CAAI,MAAO,OAASA,GAAKzB,EAAIc,EAAED,KAAKV,IAAIwB,QAAU/D,EAAEgE,KAAK5B,EAAEnF,OAAQ+C,EAAEU,SAAWkD,GAAIC,GAAI,GAAK,CAAE,MAAOxB,GAAKR,GAAI,EAAIc,EAAIN,CAAG,CAAE,QAAU,IAAM,IAAKwB,GAAK,MAAQtB,EAAU,SAAMQ,EAAIR,EAAU,SAAKhB,OAAOwB,KAAOA,GAAI,MAAQ,CAAE,QAAU,GAAIlB,EAAG,MAAMc,CAAG,CAAE,CAAE,OAAO3C,CAAG,CAAE,CAJxdiE,CAAsBT,EAAKN,IAE5F,SAAqCrB,EAAGqC,GAAU,IAAKrC,EAAG,OAAQ,GAAiB,kBAANA,EAAgB,OAAOsC,EAAkBtC,EAAGqC,GAAS,IAAIvB,EAAIpB,OAAOU,UAAU/D,SAAS+E,KAAKpB,GAAGuC,MAAM,GAAI,GAAc,WAANzB,GAAkBd,EAAEG,cAAaW,EAAId,EAAEG,YAAYqC,MAAM,GAAU,QAAN1B,GAAqB,QAANA,EAAa,OAAOc,MAAMjD,KAAKqB,GAAI,GAAU,cAANc,GAAqB,2CAA2C2B,KAAK3B,GAAI,OAAOwB,EAAkBtC,EAAGqC,EAAS,CAF7TK,CAA4Bf,EAAKN,IACnI,WAA8B,MAAM,IAAIsB,UAAU,4IAA8I,CADvDC,EAAoB,CAG7J,SAASN,EAAkBX,EAAKkB,IAAkB,MAAPA,GAAeA,EAAMlB,EAAI9C,UAAQgE,EAAMlB,EAAI9C,QAAQ,IAAK,IAAIwC,EAAI,EAAGyB,EAAO,IAAIlB,MAAMiB,GAAMxB,EAAIwB,EAAKxB,IAAKyB,EAAKzB,GAAKM,EAAIN,GAAI,OAAOyB,CAAM,CAGlL,IAAIxH,EAAWkG,EAA+B,QAAElG,SAC5CoB,EAAW8E,EAA+B,QAAE9E,SAC5CxC,EAAM,8BACV,OAAO,WACL,IACE6I,EAAarB,GADC,EAAIpB,EAAO0C,UAAU,IACI,GACvC5H,EAAQ2H,EAAW,GACnBE,EAAWF,EAAW,GAEtBG,EAAaxB,GADE,EAAIpB,EAAO0C,UAAU,IACI,GACxCG,EAAgBD,EAAW,GAC3BE,EAAmBF,EAAW,GAChC,OAAoB5C,EAAgB,QAAE+C,cAAc,MAAO,KAAmB/C,EAAgB,QAAE+C,cAAc7B,EAA+B,QAAG,KAAmBlB,EAAgB,QAAE+C,cAAc/H,EAAU,CAC3MI,SAAU,SAAkBN,GAC1B6H,EAAS7H,EACX,EACAA,MAAOlB,IACQoG,EAAgB,QAAE+C,cAAc3G,EAAU,CACzDhB,SAAU,SAAkBN,GAC1BgI,EAAiBhI,EACnB,EACAA,MAAOlB,EAAIoJ,QAAQ,KAAM,KAAO,SAChBhD,EAAgB,QAAE+C,cAAc,MAAO,CACvDE,MAAO,CACLC,QAAS,OACTC,UAAW,KAECnD,EAAgB,QAAE+C,cAAc,MAAO,CACrDE,MAAO,CACLG,KAAM,IAEPtI,EAAO,KAAmBkF,EAAgB,QAAE+C,cAAc,MAAO,CAClEE,MAAO,CACLI,gBAAiB,OACjBD,KAAM,IAEPP,EAAe,MACpB,CAAI,CAnDiB,IAoDjBS,KAAM,CACR,EAAK,CACH,KAAQ,EACR,KAAQ,CAAC,EACT,KAAQ,wxIACR,SAAY,MACZ,MAAS,o8BAGTC,OAAQ,m/BACRC,SAAS,GACTC,aAAa,G","sources":["../../merge/esm/store.js","../../merge/esm/Original.js","../../merge/esm/Modified.js","../../merge/esm/Internal.js","../../merge/esm/index.js","pages/merge/examples/Example.md"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { createContext, useContext, useEffect, useReducer } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var initialState = {\n modified: {\n doc: ''\n },\n original: {\n doc: ''\n }\n};\nexport var Context = /*#__PURE__*/createContext(initialState);\nexport function reducer(state, action) {\n return _extends({}, state, action, {\n modified: _extends({}, state.modified, action.modified),\n original: _extends({}, state.original, action.original)\n });\n}\nexport var useStore = () => {\n return useContext(Context);\n};\nexport var Provider = _ref => {\n var {\n children,\n theme\n } = _ref;\n var [state, dispatch] = useReducer(reducer, _extends({}, initialState, {\n theme\n }));\n useEffect(() => dispatch({\n theme\n }), [theme]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: _extends({}, state, {\n dispatch\n }),\n children: children\n });\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Original = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n original: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n originalExtension: {\n onChange,\n option: otherOption,\n extension: [extensions, updateListener]\n }\n }), [props]);\n return null;\n};\nOriginal.displayName = 'CodeMirrorMerge.Original';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Modified = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n modified: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n modifiedExtension: {\n onChange,\n option: otherOption,\n extension: [updateListener, extensions]\n }\n }), [props]);\n return null;\n};\nModified.displayName = 'CodeMirrorMerge.Modified';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"children\", \"orientation\", \"revertControls\", \"highlightChanges\", \"gutter\", \"collapseUnchanged\", \"destroyRerender\", \"renderRevertControl\"],\n _excluded2 = [\"modified\", \"modifiedExtension\", \"original\", \"originalExtension\", \"theme\", \"dispatch\"];\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { MergeView } from '@codemirror/merge';\nimport { useStore } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Internal = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className,\n children,\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n destroyRerender = true,\n renderRevertControl\n } = props,\n elmProps = _objectWithoutPropertiesLoose(props, _excluded);\n var _useStore = useStore(),\n {\n modified,\n modifiedExtension,\n original,\n originalExtension,\n theme,\n dispatch\n } = _useStore,\n otherStore = _objectWithoutPropertiesLoose(_useStore, _excluded2);\n var editor = useRef(null);\n var view = useRef();\n var opts = {\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n renderRevertControl\n };\n useImperativeHandle(ref, () => ({\n container: editor.current,\n view: view.current,\n modified,\n original,\n config: _extends({\n a: original,\n b: modified,\n parent: editor.current\n }, opts)\n }), [editor, view, modified, original, opts]);\n useEffect(() => {\n if (!view.current && editor.current) {\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n }\n }, [view, editor]);\n useEffect(() => {\n if (original && original.doc && view.current) {\n var _view$current;\n var originalDoc = (_view$current = view.current) == null ? void 0 : _view$current.a.state.doc.toString();\n if (originalDoc !== original.doc) {\n var _view$current2;\n (_view$current2 = view.current) == null || _view$current2.a.dispatch({\n changes: {\n from: 0,\n to: originalDoc.length,\n insert: original.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(originalExtension?.extension || []),\n // ...getDefaultExtensions({ ...originalExtension?.option, theme }),\n // ])\n });\n }\n }\n if (modified && modified.doc && view.current) {\n var _view$current3;\n var modifiedDoc = (_view$current3 = view.current) == null ? void 0 : _view$current3.b.state.doc.toString();\n if (modifiedDoc !== modified.doc) {\n var _view$current4;\n (_view$current4 = view.current) == null || _view$current4.b.dispatch({\n changes: {\n from: 0,\n to: modifiedDoc.length,\n insert: modified.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(modifiedExtension?.extension || []),\n // ...getDefaultExtensions({ ...modifiedExtension?.option, theme }),\n // ])\n });\n }\n }\n if (destroyRerender && view.current) {\n var originalFrom = view.current.a.state.selection.ranges[0].from;\n var modifiedFrom = view.current.b.state.selection.ranges[0].from;\n view.current.destroy();\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n if (originalFrom) {\n view.current.a.focus();\n view.current.a.dispatch({\n selection: {\n anchor: originalFrom,\n head: originalFrom\n }\n });\n }\n if (modifiedFrom) {\n view.current.b.focus();\n view.current.b.dispatch({\n selection: {\n anchor: modifiedFrom,\n head: modifiedFrom\n }\n });\n }\n }\n }, [view, theme, editor.current, original, modified, originalExtension, modifiedExtension, destroyRerender]);\n useEffect(() => () => view.current && view.current.destroy(), []);\n useEffect(() => {\n if (view.current) {\n var _opts = {};\n if (otherStore.orientation !== orientation) {\n _opts.orientation = orientation;\n }\n if (otherStore.revertControls !== revertControls) {\n _opts.revertControls = revertControls;\n }\n if (otherStore.highlightChanges !== highlightChanges) {\n _opts.highlightChanges = highlightChanges;\n }\n if (otherStore.gutter !== gutter) {\n _opts.gutter = gutter;\n }\n if (otherStore.collapseUnchanged !== collapseUnchanged) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (otherStore.renderRevertControl !== renderRevertControl) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (Object.keys(_opts).length && dispatch && view.current) {\n view.current.reconfigure(_extends({}, _opts));\n dispatch(_extends({}, _opts));\n }\n }\n }, [dispatch, view, orientation, revertControls, highlightChanges, gutter, collapseUnchanged, renderRevertControl]);\n var defaultClassNames = 'cm-merge-theme';\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: editor,\n className: \"\" + defaultClassNames + (className ? \" \" + className : '')\n }, elmProps, {\n children: children\n }));\n});\nInternal.displayName = 'CodeMirrorMerge.Internal';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"theme\"];\nimport React from 'react';\nimport { Original } from './Original';\nimport { Modified } from './Modified';\nimport { Internal } from './Internal';\nimport { Provider } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar InternalCodeMirror = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n var {\n theme\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(Provider, {\n theme: theme,\n children: /*#__PURE__*/_jsx(Internal, _extends({}, props, {\n ref: ref\n }))\n });\n});\nvar CodeMirrorMerge = InternalCodeMirror;\nCodeMirrorMerge.Original = Original;\nCodeMirrorMerge.Modified = Modified;\nCodeMirrorMerge.displayName = 'CodeMirrorMerge';\nexport default CodeMirrorMerge;","\nexport default {\n components: { 3: (function() { \"use strict\";\n\nfunction _typeof(o) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o; }, _typeof(o); }\nvar _react = _interopRequireWildcard(require(\"react\"));\nvar _reactCodemirrorMerge = _interopRequireDefault(require(\"react-codemirror-merge\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { \"default\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\"default\"] = e, t && t.set(e, n), n; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nvar Original = _reactCodemirrorMerge[\"default\"].Original;\nvar Modified = _reactCodemirrorMerge[\"default\"].Modified;\nvar doc = \"one\\ntwo\\nthree\\nfour\\nfive\";\nreturn function App() {\n var _useState = (0, _react.useState)(''),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n var _useState3 = (0, _react.useState)(''),\n _useState4 = _slicedToArray(_useState3, 2),\n valueModified = _useState4[0],\n setValueModified = _useState4[1];\n return /*#__PURE__*/_react[\"default\"].createElement(\"div\", null, /*#__PURE__*/_react[\"default\"].createElement(_reactCodemirrorMerge[\"default\"], null, /*#__PURE__*/_react[\"default\"].createElement(Original, {\n onChange: function onChange(value) {\n setValue(value);\n },\n value: doc\n }), /*#__PURE__*/_react[\"default\"].createElement(Modified, {\n onChange: function onChange(value) {\n setValueModified(value);\n },\n value: doc.replace(/t/g, 'T') + 'Six'\n })), /*#__PURE__*/_react[\"default\"].createElement(\"div\", {\n style: {\n display: 'flex',\n marginTop: 10\n }\n }, /*#__PURE__*/_react[\"default\"].createElement(\"pre\", {\n style: {\n flex: 1\n }\n }, value, \" \"), /*#__PURE__*/_react[\"default\"].createElement(\"pre\", {\n style: {\n backgroundColor: '#fff',\n flex: 1\n }\n }, valueModified, \" \")));\n}; })(), },\n data: {\n \"3\": {\n \"name\": 3,\n \"meta\": {},\n \"code\": \"\\\"use strict\\\";\\n\\nfunction _typeof(o) { \\\"@babel/helpers - typeof\\\"; return _typeof = \\\"function\\\" == typeof Symbol && \\\"symbol\\\" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && \\\"function\\\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \\\"symbol\\\" : typeof o; }, _typeof(o); }\\nvar _react = _interopRequireWildcard(require(\\\"react\\\"));\\nvar _reactCodemirrorMerge = _interopRequireDefault(require(\\\"react-codemirror-merge\\\"));\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \\\"default\\\": obj }; }\\nfunction _getRequireWildcardCache(e) { if (\\\"function\\\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \\\"object\\\" != _typeof(e) && \\\"function\\\" != typeof e) return { \\\"default\\\": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\\\"default\\\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n[\\\"default\\\"] = e, t && t.set(e, n), n; }\\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\\nfunction _nonIterableRest() { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\\\"); }\\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \\\"string\\\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \\\"Object\\\" && o.constructor) n = o.constructor.name; if (n === \\\"Map\\\" || n === \\\"Set\\\") return Array.from(o); if (n === \\\"Arguments\\\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \\\"undefined\\\" != typeof Symbol && r[Symbol.iterator] || r[\\\"@@iterator\\\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\\\"return\\\"] && (u = t[\\\"return\\\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\\nvar Original = _reactCodemirrorMerge[\\\"default\\\"].Original;\\nvar Modified = _reactCodemirrorMerge[\\\"default\\\"].Modified;\\nvar doc = \\\"one\\\\ntwo\\\\nthree\\\\nfour\\\\nfive\\\";\\nreturn function App() {\\n var _useState = (0, _react.useState)(''),\\n _useState2 = _slicedToArray(_useState, 2),\\n value = _useState2[0],\\n setValue = _useState2[1];\\n var _useState3 = (0, _react.useState)(''),\\n _useState4 = _slicedToArray(_useState3, 2),\\n valueModified = _useState4[0],\\n setValueModified = _useState4[1];\\n return /*#__PURE__*/_react[\\\"default\\\"].createElement(\\\"div\\\", null, /*#__PURE__*/_react[\\\"default\\\"].createElement(_reactCodemirrorMerge[\\\"default\\\"], null, /*#__PURE__*/_react[\\\"default\\\"].createElement(Original, {\\n onChange: function onChange(value) {\\n setValue(value);\\n },\\n value: doc\\n }), /*#__PURE__*/_react[\\\"default\\\"].createElement(Modified, {\\n onChange: function onChange(value) {\\n setValueModified(value);\\n },\\n value: doc.replace(/t/g, 'T') + 'Six'\\n })), /*#__PURE__*/_react[\\\"default\\\"].createElement(\\\"div\\\", {\\n style: {\\n display: 'flex',\\n marginTop: 10\\n }\\n }, /*#__PURE__*/_react[\\\"default\\\"].createElement(\\\"pre\\\", {\\n style: {\\n flex: 1\\n }\\n }, value, \\\" \\\"), /*#__PURE__*/_react[\\\"default\\\"].createElement(\\\"pre\\\", {\\n style: {\\n backgroundColor: '#fff',\\n flex: 1\\n }\\n }, valueModified, \\\" \\\")));\\n};\",\n \"language\": \"jsx\",\n \"value\": \"import React, { useState } from 'react';\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `one\\ntwo\\nthree\\nfour\\nfive`;\\n\\nexport default function App() {\\n const [value, setValue] = useState('');\\n const [valueModified, setValueModified] = useState('');\\n return (\\n
\\n \\n {\\n setValue(value);\\n }}\\n value={doc}\\n />\\n {\\n setValueModified(value);\\n }}\\n value={doc.replace(/t/g, 'T') + 'Six'}\\n />\\n \\n
\\n
{value} 
\\n
{valueModified} 
\\n
\\n
\\n );\\n}\"\n }\n},\n source: \"# onChange Example\\n\\n```jsx mdx:preview\\nimport React, { useState } from 'react';\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `one\\ntwo\\nthree\\nfour\\nfive`;\\n\\nexport default function App() {\\n const [value, setValue] = useState('');\\n const [valueModified, setValueModified] = useState('');\\n return (\\n
\\n \\n {\\n setValue(value);\\n }}\\n value={doc}\\n />\\n {\\n setValueModified(value);\\n }}\\n value={doc.replace(/t/g, 'T') + 'Six'}\\n />\\n \\n
\\n
{value} 
\\n
{valueModified} 
\\n
\\n
\\n );\\n}\\n```\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["initialState","modified","doc","original","Context","createContext","reducer","state","action","_extends","useStore","useContext","Provider","_ref","children","theme","dispatch","useReducer","useEffect","_jsx","value","_excluded","Original","props","extensions","selection","onChange","otherOption","_objectWithoutPropertiesLoose","defaultExtensions","getDefaultExtensions","updateListener","EditorView","of","vu","docChanged","val","toString","originalExtension","option","extension","displayName","Modified","modifiedExtension","_excluded2","Internal","React","ref","className","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","elmProps","_useStore","otherStore","editor","useRef","view","opts","useImperativeHandle","container","current","config","a","b","parent","MergeView","_view$current","_view$current2","originalDoc","changes","from","to","length","insert","_view$current3","_view$current4","modifiedDoc","originalFrom","ranges","modifiedFrom","destroy","focus","anchor","head","_opts","Object","keys","reconfigure","CodeMirrorMerge","components","_typeof","o","Symbol","iterator","constructor","prototype","obj","_react","e","r","__esModule","t","_getRequireWildcardCache","has","get","n","__proto__","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_interopRequireWildcard","_reactCodemirrorMerge","WeakMap","_slicedToArray","arr","Array","isArray","_arrayWithHoles","l","f","next","done","push","_iterableToArrayLimit","minLen","_arrayLikeToArray","slice","name","test","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_useState2","useState","setValue","_useState4","valueModified","setValueModified","createElement","replace","style","display","marginTop","flex","backgroundColor","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1691.92c49cec.chunk.js b/static/js/1691.92c49cec.chunk.js new file mode 100644 index 000000000..5aa32d85e --- /dev/null +++ b/static/js/1691.92c49cec.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1691],{71691:(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Abcdef Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abcdef.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef)\n\n\n \"codemirror-theme-abcdef\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-abcdef --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [abcdef, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { tags as t } from '@lezer/highlight';\nimport { abcdef, abcdefInit } from '@uiw/codemirror-theme-abcdef';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsAbcdef: CreateThemeOptions['settings'];\nexport declare const abcdefInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const abcdef: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [abcdef, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1691.92c49cec.chunk.js.map \ No newline at end of file diff --git a/static/js/1691.92c49cec.chunk.js.map b/static/js/1691.92c49cec.chunk.js.map new file mode 100644 index 000000000..64e879580 --- /dev/null +++ b/static/js/1691.92c49cec.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1691.92c49cec.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,giGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/abcdef/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Abcdef Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abcdef.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef)\\n\\n\\n \\\"codemirror-theme-abcdef\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-abcdef --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [abcdef, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { tags as t } from '@lezer/highlight';\\nimport { abcdef, abcdefInit } from '@uiw/codemirror-theme-abcdef';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsAbcdef: CreateThemeOptions['settings'];\\nexport declare const abcdefInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const abcdef: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { abcdef } from '@uiw/codemirror-theme-abcdef';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [abcdef, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1726.a13f01cb.chunk.js b/static/js/1726.a13f01cb.chunk.js new file mode 100644 index 000000000..fb0d48ceb --- /dev/null +++ b/static/js/1726.a13f01cb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1726],{11726:(t,e,i)=>{i.r(e),i.d(e,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Quietlight Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-quietlight.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight)\n\nQuietlight theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-quietlight/themes/quietlight-color-theme.json).\n\n\n \"codemirror-theme-quietlight\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-quietlight --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [quietlight, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { quietlight, quietlightInit } from '@uiw/codemirror-theme-quietlight';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const quietlightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const quietlight: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [quietlight, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1726.a13f01cb.chunk.js.map \ No newline at end of file diff --git a/static/js/1726.a13f01cb.chunk.js.map b/static/js/1726.a13f01cb.chunk.js.map new file mode 100644 index 000000000..9eabb37e6 --- /dev/null +++ b/static/js/1726.a13f01cb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1726.a13f01cb.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,4nGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/quietlight/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Quietlight Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-quietlight.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight)\\n\\nQuietlight theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-quietlight/themes/quietlight-color-theme.json).\\n\\n\\n \\\"codemirror-theme-quietlight\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-quietlight --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [quietlight, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { quietlight, quietlightInit } from '@uiw/codemirror-theme-quietlight';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const quietlightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const quietlight: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { quietlight } from '@uiw/codemirror-theme-quietlight';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [quietlight, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1747.44725eec.chunk.js b/static/js/1747.44725eec.chunk.js new file mode 100644 index 000000000..51b5bbdf4 --- /dev/null +++ b/static/js/1747.44725eec.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1747],{81747:(r,e,t)=>{t.r(e),t.d(e,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Gruvbox Dark Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark)\n\nThis package implements the [gruvbox](https://github.com/morhetz/gruvbox) light theme for the CodeMirror code editor.\n\n\n \"codemirror-theme-gruvbox-dark\"\n\n\n\n \"codemirror-theme-eclipse\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-gruvbox-dark --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { gruvboxDark } from '@uiw/codemirror-theme-gruvbox-dark';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [gruvboxDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { gruvboxDark, gruvboxDarkInit, gruvboxLight, gruvboxLightInit } from '@uiw/codemirror-theme-nord';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsGruvboxDark: CreateThemeOptions['settings'];\nexport declare const gruvboxDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const gruvboxDark: import('@codemirror/state').Extension;\nexport declare const defaultSettingsGruvboxLight: CreateThemeOptions['settings'];\nexport declare const gruvboxLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const gruvboxLight: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { gruvboxDark, gruvboxLight } from '@uiw/codemirror-theme-gruvbox-dark';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { gruvboxDark } from '@uiw/codemirror-theme-gruvbox-dark';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [gruvboxDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1747.44725eec.chunk.js.map \ No newline at end of file diff --git a/static/js/1747.44725eec.chunk.js.map b/static/js/1747.44725eec.chunk.js.map new file mode 100644 index 000000000..cd32e80ed --- /dev/null +++ b/static/js/1747.44725eec.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1747.44725eec.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,olHACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/gruvbox/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Gruvbox Dark Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark)\\n\\nThis package implements the [gruvbox](https://github.com/morhetz/gruvbox) light theme for the CodeMirror code editor.\\n\\n\\n \\\"codemirror-theme-gruvbox-dark\\\"\\n\\n\\n\\n \\\"codemirror-theme-eclipse\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-gruvbox-dark --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { gruvboxDark } from '@uiw/codemirror-theme-gruvbox-dark';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [gruvboxDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { gruvboxDark, gruvboxDarkInit, gruvboxLight, gruvboxLightInit } from '@uiw/codemirror-theme-nord';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsGruvboxDark: CreateThemeOptions['settings'];\\nexport declare const gruvboxDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const gruvboxDark: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsGruvboxLight: CreateThemeOptions['settings'];\\nexport declare const gruvboxLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const gruvboxLight: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { gruvboxDark, gruvboxLight } from '@uiw/codemirror-theme-gruvbox-dark';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { gruvboxDark } from '@uiw/codemirror-theme-gruvbox-dark';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [gruvboxDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1821.76ca61ce.chunk.js b/static/js/1821.76ca61ce.chunk.js new file mode 100644 index 000000000..dd053c632 --- /dev/null +++ b/static/js/1821.76ca61ce.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1821],{81821:(n,r,e)=>{e.r(r),e.d(r,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Nord Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord)\n\nThis package implements the [nord theme](https://www.nordtheme.com/) for the CodeMirror code editor.\n\n\n \"codemirror-theme-nord\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-nord --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { nord } from '@uiw/codemirror-theme-nord';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [nord, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { nord, nordInit } from '@uiw/codemirror-theme-nord';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsNord: CreateThemeOptions['settings'];\nexport declare const nordInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const nord: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { nord } from '@uiw/codemirror-theme-nord';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { nord } from '@uiw/codemirror-theme-nord';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [nord, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1821.76ca61ce.chunk.js.map \ No newline at end of file diff --git a/static/js/1821.76ca61ce.chunk.js.map b/static/js/1821.76ca61ce.chunk.js.map new file mode 100644 index 000000000..7998c1393 --- /dev/null +++ b/static/js/1821.76ca61ce.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1821.76ca61ce.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,s7FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/nord/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Nord Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord)\\n\\nThis package implements the [nord theme](https://www.nordtheme.com/) for the CodeMirror code editor.\\n\\n\\n \\\"codemirror-theme-nord\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-nord --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { nord } from '@uiw/codemirror-theme-nord';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [nord, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { nord, nordInit } from '@uiw/codemirror-theme-nord';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsNord: CreateThemeOptions['settings'];\\nexport declare const nordInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const nord: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { nord } from '@uiw/codemirror-theme-nord';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { nord } from '@uiw/codemirror-theme-nord';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [nord, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1952.c5022bd7.chunk.js b/static/js/1952.c5022bd7.chunk.js new file mode 100644 index 000000000..ed39f315e --- /dev/null +++ b/static/js/1952.c5022bd7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1952],{91952:(e,c,s)=>{s.r(c),s.d(c,{default:()=>r});const r="Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com"}}]); +//# sourceMappingURL=1952.c5022bd7.chunk.js.map \ No newline at end of file diff --git a/static/js/1952.c5022bd7.chunk.js.map b/static/js/1952.c5022bd7.chunk.js.map new file mode 100644 index 000000000..060af9567 --- /dev/null +++ b/static/js/1952.c5022bd7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1952.c5022bd7.chunk.js","mappings":"yHAAA,qI","sources":["../../node_modules/code-example/txt/sample.csp.txt"],"sourcesContent":["export default \"Content-Security-Policy: default-src 'self'; img-src *; media-src media1.com media2.com; script-src userscripts.example.com\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1963.3b22c24a.chunk.js b/static/js/1963.3b22c24a.chunk.js new file mode 100644 index 000000000..34a7ce1ca --- /dev/null +++ b/static/js/1963.3b22c24a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1963],{31963:(e,n,o)=>{o.r(n),o.d(n,{default:()=>l});const l='import material/material;\n\nexport {\n demoMakeHelloWorld(onClose : () -> void) -> Material;\n}\n\ndemoMakeHelloWorld(onClose : () -> void) -> Material {\n MCenter(\n MLines2(\n MText("Hello, world!", []),\n MTextButton("CLOSE", onClose, [], [])\n )\n );\n}\n'}}]); +//# sourceMappingURL=1963.3b22c24a.chunk.js.map \ No newline at end of file diff --git a/static/js/1963.3b22c24a.chunk.js.map b/static/js/1963.3b22c24a.chunk.js.map new file mode 100644 index 000000000..f79d43e68 --- /dev/null +++ b/static/js/1963.3b22c24a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1963.3b22c24a.chunk.js","mappings":"yHAAA,iS","sources":["../../node_modules/code-example/txt/sample.flow9.txt"],"sourcesContent":["export default \"import material/material;\\n\\nexport {\\n demoMakeHelloWorld(onClose : () -> void) -> Material;\\n}\\n\\ndemoMakeHelloWorld(onClose : () -> void) -> Material {\\n MCenter(\\n MLines2(\\n MText(\\\"Hello, world!\\\", []),\\n MTextButton(\\\"CLOSE\\\", onClose, [], [])\\n )\\n );\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1969.9c958483.chunk.js b/static/js/1969.9c958483.chunk.js new file mode 100644 index 000000000..f6bf5ddb0 --- /dev/null +++ b/static/js/1969.9c958483.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1969],{1969:(n,e,i)=>{i.r(e),i.d(e,{default:()=>a});const a='LiveScript\n# Easy listing of implicit objects\ntable1 =\n * id: 1\n name: \'george\'\n * id: 2\n name: \'mike\'\n * id: 3\n name: \'donald\'\n\ntable2 =\n * id: 2\n age: 21\n * id: 1\n age: 20\n * id: 3\n age: 26\n\n# Implicit access, accessignment\nup-case-name = (.name .= to-upper-case!)\n\n# List comprehensions, destructuring, piping\n[{id:id1, name, age} for {id:id1, name} in table1\n for {id:id2, age} in table2\n when id1 is id2]\n|> sort-by (.id) # using \'sort-by\' from prelude.ls\n|> each up-case-name # using \'each\' from prelude.ls\n|> JSON.stringify\n#=>\n#[{"id":1,"name":"GEORGE","age":20},\n# {"id":2,"name":"MIKE", "age":21},\n# {"id":3,"name":"DONALD","age":26}]\n\n# operators as functions, piping\nmap (.age), table2 |> fold1 (+)\n#=> 67 (\'fold1\' and \'map\' from prelude.ls)\n\nr = +...[4 5 6] #=> [+4, +5, +6]\nt = typeof! ...[\\b 5 {}] #=> ["String", "Number", "Object"]\nc = ~...[4, 5] #=> [-5, -6]\n++...player<[strength hp]>\n# also works with -, --, typeof, ! and delete!\ni = new ...[some, classes]\nc = ^^...[copy, these, {}]\ndelete ...list[1, 2, 3]\ndo ...[a, b, c]'}}]); +//# sourceMappingURL=1969.9c958483.chunk.js.map \ No newline at end of file diff --git a/static/js/1969.9c958483.chunk.js.map b/static/js/1969.9c958483.chunk.js.map new file mode 100644 index 000000000..2eb1f8022 --- /dev/null +++ b/static/js/1969.9c958483.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1969.9c958483.chunk.js","mappings":"wHAAA,6qC","sources":["../../node_modules/code-example/txt/sample.livescript.txt"],"sourcesContent":["export default \"LiveScript\\n# Easy listing of implicit objects\\ntable1 =\\n * id: 1\\n name: 'george'\\n * id: 2\\n name: 'mike'\\n * id: 3\\n name: 'donald'\\n\\ntable2 =\\n * id: 2\\n age: 21\\n * id: 1\\n age: 20\\n * id: 3\\n age: 26\\n\\n# Implicit access, accessignment\\nup-case-name = (.name .= to-upper-case!)\\n\\n# List comprehensions, destructuring, piping\\n[{id:id1, name, age} for {id:id1, name} in table1\\n for {id:id2, age} in table2\\n when id1 is id2]\\n|> sort-by (.id) # using 'sort-by' from prelude.ls\\n|> each up-case-name # using 'each' from prelude.ls\\n|> JSON.stringify\\n#=>\\n#[{\\\"id\\\":1,\\\"name\\\":\\\"GEORGE\\\",\\\"age\\\":20},\\n# {\\\"id\\\":2,\\\"name\\\":\\\"MIKE\\\", \\\"age\\\":21},\\n# {\\\"id\\\":3,\\\"name\\\":\\\"DONALD\\\",\\\"age\\\":26}]\\n\\n# operators as functions, piping\\nmap (.age), table2 |> fold1 (+)\\n#=> 67 ('fold1' and 'map' from prelude.ls)\\n\\nr = +...[4 5 6] #=> [+4, +5, +6]\\nt = typeof! ...[\\\\b 5 {}] #=> [\\\"String\\\", \\\"Number\\\", \\\"Object\\\"]\\nc = ~...[4, 5] #=> [-5, -6]\\n++...player<[strength hp]>\\n# also works with -, --, typeof, ! and delete!\\ni = new ...[some, classes]\\nc = ^^...[copy, these, {}]\\ndelete ...list[1, 2, 3]\\ndo ...[a, b, c]\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/1971.9f2b46b9.chunk.js b/static/js/1971.9f2b46b9.chunk.js new file mode 100644 index 000000000..24ef20700 --- /dev/null +++ b/static/js/1971.9f2b46b9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[1971],{11971:(e,n,r)=>{r.r(n),r.d(n,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Zebra Stripes Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-zebra-stripes.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes)\n\nStyles alternating lines for CodeMirror6.\n\n[![Zebra Stripes Extensions](https://user-images.githubusercontent.com/1680273/205496628-e7e6f83f-18e9-4bff-8bc8-71a913c60687.png)](https://uiwjs.github.io/react-codemirror/#/extensions/zebra-stripes)\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-zebra-stripes --save\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\n\nfunction App() {\n return ;\n}\nexport default App;\n```\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [zebraStripes({ step: 2 })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## API\n\n```ts\nimport { Extension } from '@codemirror/state';\nexport declare type ZebraStripesOptions = {\n step?: number | null;\n lightColor?: string;\n darkColor?: string;\n /**\n * @example `[1,[2,6], 10]`\n */\n lineNumber?: (number | number[])[] | null;\n /** @default `cm-zebra-stripe` */\n className?: string;\n};\nexport declare function zebraStripes(options?: ZebraStripesOptions): Extension;\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=1971.9f2b46b9.chunk.js.map \ No newline at end of file diff --git a/static/js/1971.9f2b46b9.chunk.js.map b/static/js/1971.9f2b46b9.chunk.js.map new file mode 100644 index 000000000..b4474995f --- /dev/null +++ b/static/js/1971.9f2b46b9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1971.9f2b46b9.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,wnFACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/zebra-stripes/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Zebra Stripes Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-zebra-stripes.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes)\\n\\nStyles alternating lines for CodeMirror6.\\n\\n[![Zebra Stripes Extensions](https://user-images.githubusercontent.com/1680273/205496628-e7e6f83f-18e9-4bff-8bc8-71a913c60687.png)](https://uiwjs.github.io/react-codemirror/#/extensions/zebra-stripes)\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-zebra-stripes --save\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\\n\\nfunction App() {\\n return ;\\n}\\nexport default App;\\n```\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [zebraStripes({ step: 2 })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## API\\n\\n```ts\\nimport { Extension } from '@codemirror/state';\\nexport declare type ZebraStripesOptions = {\\n step?: number | null;\\n lightColor?: string;\\n darkColor?: string;\\n /**\\n * @example `[1,[2,6], 10]`\\n */\\n lineNumber?: (number | number[])[] | null;\\n /** @default `cm-zebra-stripe` */\\n className?: string;\\n};\\nexport declare function zebraStripes(options?: ZebraStripesOptions): Extension;\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2066.4da20afc.chunk.js b/static/js/2066.4da20afc.chunk.js new file mode 100644 index 000000000..900b8ea18 --- /dev/null +++ b/static/js/2066.4da20afc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2066],{32066:(n,e,o)=>{o.r(e),o.d(e,{default:()=>E});const E="CREATE TABLE dbo.EmployeePhoto\n(\n EmployeeId INT NOT NULL PRIMARY KEY,\n Photo VARBINARY(MAX) FILESTREAM NULL,\n MyRowGuidColumn UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL\n UNIQUE DEFAULT NEWID()\n);\n\nGO\n\n/*\ntext_of_comment\n/* nested comment */\n*/\n\n-- line comment\n\nCREATE NONCLUSTERED INDEX IX_WorkOrder_ProductID\n ON Production.WorkOrder(ProductID)\n WITH (FILLFACTOR = 80,\n PAD_INDEX = ON,\n DROP_EXISTING = ON);\nGO\n\nWHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300\nBEGIN\n UPDATE Production.Product\n SET ListPrice = ListPrice * 2\n SELECT MAX(ListPrice) FROM Production.Product\n IF (SELECT MAX(ListPrice) FROM Production.Product) > $500\n BREAK\n ELSE\n CONTINUE\nEND\nPRINT 'Too much for the market to bear';\n\nMERGE INTO Sales.SalesReason AS [Target]\nUSING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion'))\n AS [Source] ([NewName], NewReasonType)\nON [Target].[Name] = [Source].[NewName]\nWHEN MATCHED\nTHEN UPDATE SET ReasonType = [Source].NewReasonType\nWHEN NOT MATCHED BY TARGET\nTHEN INSERT ([Name], ReasonType) VALUES ([NewName], NewReasonType)\nOUTPUT $action INTO @SummaryOfChanges;\n\nSELECT ProductID, OrderQty, SUM(LineTotal) AS Total\nFROM Sales.SalesOrderDetail\nWHERE UnitPrice < $5.00\nGROUP BY ProductID, OrderQty\nORDER BY ProductID, OrderQty\nOPTION (HASH GROUP, FAST 10);\n"}}]); +//# sourceMappingURL=2066.4da20afc.chunk.js.map \ No newline at end of file diff --git a/static/js/2066.4da20afc.chunk.js.map b/static/js/2066.4da20afc.chunk.js.map new file mode 100644 index 000000000..174c79d21 --- /dev/null +++ b/static/js/2066.4da20afc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2066.4da20afc.chunk.js","mappings":"yHAAA,86C","sources":["../../node_modules/code-example/txt/sample.sql.txt"],"sourcesContent":["export default \"CREATE TABLE dbo.EmployeePhoto\\n(\\n EmployeeId INT NOT NULL PRIMARY KEY,\\n Photo VARBINARY(MAX) FILESTREAM NULL,\\n MyRowGuidColumn UNIQUEIDENTIFIER NOT NULL ROWGUIDCOL\\n UNIQUE DEFAULT NEWID()\\n);\\n\\nGO\\n\\n/*\\ntext_of_comment\\n/* nested comment */\\n*/\\n\\n-- line comment\\n\\nCREATE NONCLUSTERED INDEX IX_WorkOrder_ProductID\\n ON Production.WorkOrder(ProductID)\\n WITH (FILLFACTOR = 80,\\n PAD_INDEX = ON,\\n DROP_EXISTING = ON);\\nGO\\n\\nWHILE (SELECT AVG(ListPrice) FROM Production.Product) < $300\\nBEGIN\\n UPDATE Production.Product\\n SET ListPrice = ListPrice * 2\\n SELECT MAX(ListPrice) FROM Production.Product\\n IF (SELECT MAX(ListPrice) FROM Production.Product) > $500\\n BREAK\\n ELSE\\n CONTINUE\\nEND\\nPRINT 'Too much for the market to bear';\\n\\nMERGE INTO Sales.SalesReason AS [Target]\\nUSING (VALUES ('Recommendation','Other'), ('Review', 'Marketing'), ('Internet', 'Promotion'))\\n AS [Source] ([NewName], NewReasonType)\\nON [Target].[Name] = [Source].[NewName]\\nWHEN MATCHED\\nTHEN UPDATE SET ReasonType = [Source].NewReasonType\\nWHEN NOT MATCHED BY TARGET\\nTHEN INSERT ([Name], ReasonType) VALUES ([NewName], NewReasonType)\\nOUTPUT $action INTO @SummaryOfChanges;\\n\\nSELECT ProductID, OrderQty, SUM(LineTotal) AS Total\\nFROM Sales.SalesOrderDetail\\nWHERE UnitPrice < $5.00\\nGROUP BY ProductID, OrderQty\\nORDER BY ProductID, OrderQty\\nOPTION (HASH GROUP, FAST 10);\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2169.c195d1fb.chunk.js b/static/js/2169.c195d1fb.chunk.js new file mode 100644 index 000000000..2322ce099 --- /dev/null +++ b/static/js/2169.c195d1fb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2169],{2169:(n,e,i)=>{i.r(e),i.d(e,{default:()=>t});const t="#!/usr/bin/perl\nuse strict;\nuse warnings;\n\nuse Path::Tiny;\n\nmy $dir = path('foo','bar'); # foo/bar\n\n# Iterate over the content of foo/bar\nmy $iter = $dir->iterator;\nwhile (my $file = $iter->()) {\n\n # See if it is a directory and skip\n next if $file->is_dir();\n\n # Print out the file name and path\n print \"$file\\n\";\n}"}}]); +//# sourceMappingURL=2169.c195d1fb.chunk.js.map \ No newline at end of file diff --git a/static/js/2169.c195d1fb.chunk.js.map b/static/js/2169.c195d1fb.chunk.js.map new file mode 100644 index 000000000..4a42f4e2a --- /dev/null +++ b/static/js/2169.c195d1fb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2169.c195d1fb.chunk.js","mappings":"wHAAA,sW","sources":["../../node_modules/code-example/txt/sample.perl.txt"],"sourcesContent":["export default \"#!/usr/bin/perl\\nuse strict;\\nuse warnings;\\n\\nuse Path::Tiny;\\n\\nmy $dir = path('foo','bar'); # foo/bar\\n\\n# Iterate over the content of foo/bar\\nmy $iter = $dir->iterator;\\nwhile (my $file = $iter->()) {\\n\\n # See if it is a directory and skip\\n next if $file->is_dir();\\n\\n # Print out the file name and path\\n print \\\"$file\\\\n\\\";\\n}\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/226.61110267.chunk.js b/static/js/226.61110267.chunk.js new file mode 100644 index 000000000..9b5f40e44 --- /dev/null +++ b/static/js/226.61110267.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[226],{226:(e,t,n)=>{n.r(t),n.d(t,{Component:()=>g,HyperLinkExample:()=>w});var r=n(67538),c=/\b((?:https?|ftp):\/\/[^\s/$.?#].[^\s]*)\b/gi;class a extends r.xO{constructor(e){super(),this.state=void 0,this.state=e}eq(e){return this.state.url===e.state.url&&this.state.at===e.state.at}toDOM(){var e=document.createElement("a");return e.href=this.state.url,e.target="_blank",e.innerHTML='',e.className="cm-hyper-link-icon",e.rel="nofollow",this.state.anchor&&this.state.anchor(e)||e}}function o(e,t){for(var n,o=[],i=e.state.doc;null!==(n=c.exec(i.toString()));){var s=n.index+n[0].length,l=r.NZ.widget({widget:new a({at:s,url:n[0],anchor:t}),side:1});o.push(l.range(s))}return r.NZ.set(o)}var i=r.Lz.baseTheme({".cm-hyper-link-icon":{display:"inline-block",verticalAlign:"middle",marginLeft:"0.2ch"},".cm-hyper-link-icon svg":{display:"block"},".cm-hyper-link-underline":{textDecoration:"underline"}}),s=[function(e){var{regexp:t,match:n,handle:i,anchor:s}=void 0===e?{}:e;return r.Z9.fromClass(class{constructor(e){this.decorator=void 0,this.decorations=void 0,t?(this.decorator=((e,t,n,o)=>new r.dT({regexp:e||c,decorate:(e,c,i,s,l)=>{var d=s[0],h=n&&"function"===typeof n?n(d,s.input,c,i):d;t&&t[d]&&(h=t[d]);var p=i,u=i,m=new a({at:p,url:h,anchor:o});e(c,i,r.NZ.mark({class:"cm-hyper-link-underline"})),e(p,u,r.NZ.widget({widget:m,side:1}))}}))(t,n,i,s),this.decorations=this.decorator.createDeco(e)):this.decorations=o(e,s)}update(e){(e.docChanged||e.viewportChanged)&&(t&&this.decorator?this.decorations=this.decorator.updateDeco(e,this.decorations):this.decorations=o(e.view,s))}},{decorations:e=>e.decorations})}(),i],l=n(73562),d=n(69332),h=n(98846),p=n(94458);var u=n(55864),m=n(98557);const w=()=>{const{theme:e}=(0,p.D)();return(0,m.jsx)(u.zu,{children:(0,m.jsx)(l.default,{value:'Hyper Link\n====\n\n- https://www.npmjs.com/package/@uiw/react-codemirror this url\n\n[url 1](https://www.npmjs.com)\n[url 2](https://www.npmjs.com/package/@uiw/react-codemirror)\n\n```js\nconst str = "https://www.npmjs.com/package/@uiw/react-codemirror"\n```\n',theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[d.cg.markdown(),s]})})},g=()=>(0,m.jsx)(h.lN,{path:()=>n.e(2933).then(n.bind(n,62933)),children:(0,m.jsx)(w,{})})},55864:(e,t,n)=>{n.d(t,{zu:()=>i});var r,c,a=n(60114),o=n(6008);const i=o.Ay.div(r||(r=(0,a.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));o.Ay.div(c||(c=(0,a.A)(["\n display: flex;\n flex: 1;\n"])))},94458:(e,t,n)=>{n.d(t,{D:()=>c});var r=n(80905);function c(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[n,c]=(0,r.useState)("dark"===t?"dark":e);return(0,r.useEffect)((()=>{c("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{c(e.detail.colorScheme)}))}),[]),{theme:n,setTheme:c}}}}]); +//# sourceMappingURL=226.61110267.chunk.js.map \ No newline at end of file diff --git a/static/js/226.61110267.chunk.js.map b/static/js/226.61110267.chunk.js.map new file mode 100644 index 000000000..154da909a --- /dev/null +++ b/static/js/226.61110267.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/226.61110267.chunk.js","mappings":"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","sources":["../../extensions/hyper-link/esm/index.js","pages/extensions/hyper-link/index.tsx","pages/extensions/hyper-link/codeSample.ts","pages/extensions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import { ViewPlugin, EditorView, Decoration, MatchDecorator, WidgetType } from '@codemirror/view';\nvar pathStr = \"\";\nvar defaultRegexp = /\\b((?:https?|ftp):\\/\\/[^\\s/$.?#].[^\\s]*)\\b/gi;\nclass HyperLinkIcon extends WidgetType {\n constructor(state) {\n super();\n this.state = void 0;\n this.state = state;\n }\n eq(other) {\n return this.state.url === other.state.url && this.state.at === other.state.at;\n }\n toDOM() {\n var wrapper = document.createElement('a');\n wrapper.href = this.state.url;\n wrapper.target = '_blank';\n wrapper.innerHTML = pathStr;\n wrapper.className = 'cm-hyper-link-icon';\n wrapper.rel = 'nofollow';\n var anchor = this.state.anchor && this.state.anchor(wrapper);\n return anchor || wrapper;\n }\n}\nfunction hyperLinkDecorations(view, anchor) {\n var widgets = [];\n var doc = view.state.doc;\n var match;\n while ((match = defaultRegexp.exec(doc.toString())) !== null) {\n var from = match.index;\n var to = from + match[0].length;\n var widget = Decoration.widget({\n widget: new HyperLinkIcon({\n at: to,\n url: match[0],\n anchor\n }),\n side: 1\n });\n widgets.push(widget.range(to));\n }\n return Decoration.set(widgets);\n}\nvar linkDecorator = (regexp, matchData, matchFn, anchor) => new MatchDecorator({\n regexp: regexp || defaultRegexp,\n decorate: (add, from, to, match, view) => {\n var url = match[0];\n var urlStr = matchFn && typeof matchFn === 'function' ? matchFn(url, match.input, from, to) : url;\n if (matchData && matchData[url]) {\n urlStr = matchData[url];\n }\n var start = to,\n end = to;\n var linkIcon = new HyperLinkIcon({\n at: start,\n url: urlStr,\n anchor\n });\n add(from, to, Decoration.mark({\n class: 'cm-hyper-link-underline'\n }));\n add(start, end, Decoration.widget({\n widget: linkIcon,\n side: 1\n }));\n }\n});\nexport function hyperLinkExtension(_temp) {\n var {\n regexp,\n match,\n handle,\n anchor\n } = _temp === void 0 ? {} : _temp;\n return ViewPlugin.fromClass(class HyperLinkView {\n constructor(view) {\n this.decorator = void 0;\n this.decorations = void 0;\n if (regexp) {\n this.decorator = linkDecorator(regexp, match, handle, anchor);\n this.decorations = this.decorator.createDeco(view);\n } else {\n this.decorations = hyperLinkDecorations(view, anchor);\n }\n }\n update(update) {\n if (update.docChanged || update.viewportChanged) {\n if (regexp && this.decorator) {\n this.decorations = this.decorator.updateDeco(update, this.decorations);\n } else {\n this.decorations = hyperLinkDecorations(update.view, anchor);\n }\n }\n }\n }, {\n decorations: v => v.decorations\n });\n}\nexport var hyperLinkStyle = EditorView.baseTheme({\n '.cm-hyper-link-icon': {\n display: 'inline-block',\n verticalAlign: 'middle',\n marginLeft: '0.2ch'\n },\n '.cm-hyper-link-icon svg': {\n display: 'block'\n },\n '.cm-hyper-link-underline': {\n textDecoration: 'underline'\n }\n});\nexport var hyperLink = [hyperLinkExtension(), hyperLinkStyle];","import { hyperLink } from '@uiw/codemirror-extensions-hyper-link';\n// import { hyperLinkExtension, hyperLinkStyle } from '@uiw/codemirror-extensions-hyper-link';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Preview } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { markdownString } from './codeSample';\nimport { PageWarpper } from '..';\n\n// const hyperLink = [\n// hyperLinkExtension({\n// regexp: /codemirror/gi,\n// match: { codemirror: 'https://google.com' },\n// handle: (value, input, from, to) => {\n// if (value === 'codemirror') return 'https://google.com';\n// return value;\n// },\n// }),\n// hyperLinkStyle,\n// ];\n\nexport const HyperLinkExample = () => {\n const { theme } = useTheme();\n return (\n \n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-hyper-link/README.md')}>\n \n \n );\n};\n","export const markdownString = `Hyper Link\n====\n\n- https://www.npmjs.com/package/@uiw/react-codemirror this url\n\n[url 1](https://www.npmjs.com)\n[url 2](https://www.npmjs.com/package/@uiw/react-codemirror)\n\n\\`\\`\\`js\nconst str = \"https://www.npmjs.com/package/@uiw/react-codemirror\"\n\\`\\`\\`\n`;\nexport const jsonString = `{\n \"name\": \"@uiw/codemirror-extensions-hyper-link\",\n \"homepage\": \"https://uiwjs.github.io/react-codemirror/#/extensions/hyper-link\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"https://github.com/uiwjs/react-codemirror.git\"\n }\n}`;\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["defaultRegexp","HyperLinkIcon","WidgetType","constructor","state","super","this","eq","other","url","at","toDOM","wrapper","document","createElement","href","target","innerHTML","className","rel","anchor","hyperLinkDecorations","view","match","widgets","doc","exec","toString","to","index","length","widget","Decoration","side","push","range","set","hyperLinkStyle","EditorView","baseTheme","display","verticalAlign","marginLeft","textDecoration","hyperLink","_temp","regexp","handle","ViewPlugin","fromClass","decorator","decorations","linkDecorator","matchData","matchFn","MatchDecorator","decorate","add","from","urlStr","input","start","end","linkIcon","mark","class","createDeco","update","docChanged","viewportChanged","updateDeco","v","hyperLinkExtension","HyperLinkExample","theme","useTheme","_jsx","PageWarpper","children","CodeMirror","value","height","style","margin","extensions","langs","markdown","Component","Preview","path","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","name","arguments","undefined","dark","documentElement","getAttribute","setTheme","useState","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2325.459802d6.chunk.js b/static/js/2325.459802d6.chunk.js new file mode 100644 index 000000000..7a82b62a6 --- /dev/null +++ b/static/js/2325.459802d6.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2325],{72325:(t,o,r)=>{r.r(o),r.d(o,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# TokyoNightStorm Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-storm.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm)\n\n\n \"codemirror-theme-tokyo-night-storm\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-tokyo-night-storm --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tokyoNightStorm, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { tokyoNightStorm, tokyoNightStormInit } from '@uiw/codemirror-theme-tokyo-night-storm';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsTokyoNightStorm: CreateThemeOptions['settings'];\nexport declare const tokyoNightStormInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const tokyoNightStorm: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tokyoNightStorm, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2325.459802d6.chunk.js.map \ No newline at end of file diff --git a/static/js/2325.459802d6.chunk.js.map b/static/js/2325.459802d6.chunk.js.map new file mode 100644 index 000000000..eb4ffb42b --- /dev/null +++ b/static/js/2325.459802d6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2325.459802d6.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,utGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/tokyo-night-storm/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# TokyoNightStorm Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-storm.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm)\\n\\n\\n \\\"codemirror-theme-tokyo-night-storm\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-tokyo-night-storm --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tokyoNightStorm, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { tokyoNightStorm, tokyoNightStormInit } from '@uiw/codemirror-theme-tokyo-night-storm';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsTokyoNightStorm: CreateThemeOptions['settings'];\\nexport declare const tokyoNightStormInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const tokyoNightStorm: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tokyoNightStorm } from '@uiw/codemirror-theme-tokyo-night-storm';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tokyoNightStorm, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2375.253bb5c7.chunk.js b/static/js/2375.253bb5c7.chunk.js new file mode 100644 index 000000000..25475e527 --- /dev/null +++ b/static/js/2375.253bb5c7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2375],{32375:(t,e,n)=>{n.r(e),n.d(e,{default:()=>u});const u='let\n Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],\n SplitColumnDelimiter = Table.SplitColumn(Source,"Input",Splitter.SplitTextByDelimiter(","),13),\n Unpivot = Table.Unpivot(SplitColumnDelimiter,{"Input.1", "Input.2", "Input.3", "Input.4",\n "Input.5", "Input.6", "Input.7", "Input.8", "Input.9", "Input.10", "Input.11", "Input.12"\n , "Input.13"},"Attribute","Value"),\n RemovedColumns = Table.RemoveColumns(Unpivot,{"Attribute"}),\n DuplicatesRemoved = Table.Distinct(RemovedColumns),\n GroupedRows = Table.Group(DuplicatesRemoved, {"RowID"}, {{"Count of Distinct Values"\n , each Table.RowCount(_), type number}})\nin\n GroupedRows'}}]); +//# sourceMappingURL=2375.253bb5c7.chunk.js.map \ No newline at end of file diff --git a/static/js/2375.253bb5c7.chunk.js.map b/static/js/2375.253bb5c7.chunk.js.map new file mode 100644 index 000000000..5bc440208 --- /dev/null +++ b/static/js/2375.253bb5c7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2375.253bb5c7.chunk.js","mappings":"yHAAA,srB","sources":["../../node_modules/code-example/txt/sample.powerquery.txt"],"sourcesContent":["export default \"let\\n Source = Excel.CurrentWorkbook(){[Name=\\\"Table1\\\"]}[Content],\\n SplitColumnDelimiter = Table.SplitColumn(Source,\\\"Input\\\",Splitter.SplitTextByDelimiter(\\\",\\\"),13),\\n Unpivot = Table.Unpivot(SplitColumnDelimiter,{\\\"Input.1\\\", \\\"Input.2\\\", \\\"Input.3\\\", \\\"Input.4\\\",\\n \\\"Input.5\\\", \\\"Input.6\\\", \\\"Input.7\\\", \\\"Input.8\\\", \\\"Input.9\\\", \\\"Input.10\\\", \\\"Input.11\\\", \\\"Input.12\\\"\\n , \\\"Input.13\\\"},\\\"Attribute\\\",\\\"Value\\\"),\\n RemovedColumns = Table.RemoveColumns(Unpivot,{\\\"Attribute\\\"}),\\n DuplicatesRemoved = Table.Distinct(RemovedColumns),\\n GroupedRows = Table.Group(DuplicatesRemoved, {\\\"RowID\\\"}, {{\\\"Count of Distinct Values\\\"\\n , each Table.RowCount(_), type number}})\\nin\\n GroupedRows\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2385.e7583100.chunk.js b/static/js/2385.e7583100.chunk.js new file mode 100644 index 000000000..2d2a07a30 --- /dev/null +++ b/static/js/2385.e7583100.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2385],{32385:(e,t,o)=>{o.r(t),o.d(t,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Xcode Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-xcode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode)\n\n\n \"codemirror-theme-xcode\n\n\n\n \"codemirror-theme-xcode\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-xcode --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [xcodeDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { xcodeLight, xcodeLightInit, xcodeDark, xcodeDarkInit } from '@uiw/codemirror-theme-xcode';\n\n\n\n```\n\n## API\n\n```ts\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsXcodeLight: CreateThemeOptions['settings'];\nexport declare function xcodeLightInit(options?: Partial): import('@codemirror/state').Extension;\nexport declare const xcodeLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsXcodeDark: CreateThemeOptions['settings'];\nexport declare const xcodeDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const xcodeDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [xcodeDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2385.e7583100.chunk.js.map \ No newline at end of file diff --git a/static/js/2385.e7583100.chunk.js.map b/static/js/2385.e7583100.chunk.js.map new file mode 100644 index 000000000..ddd4c6aee --- /dev/null +++ b/static/js/2385.e7583100.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2385.e7583100.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,g/GACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/xcode/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Xcode Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-xcode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode)\\n\\n\\n \\\"codemirror-theme-xcode\\n\\n\\n\\n \\\"codemirror-theme-xcode\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-xcode --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [xcodeDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { xcodeLight, xcodeLightInit, xcodeDark, xcodeDarkInit } from '@uiw/codemirror-theme-xcode';\\n\\n\\n\\n```\\n\\n## API\\n\\n```ts\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsXcodeLight: CreateThemeOptions['settings'];\\nexport declare function xcodeLightInit(options?: Partial): import('@codemirror/state').Extension;\\nexport declare const xcodeLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsXcodeDark: CreateThemeOptions['settings'];\\nexport declare const xcodeDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const xcodeDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { xcodeLight, xcodeDark } from '@uiw/codemirror-theme-xcode';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [xcodeDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2433.1f1778f7.chunk.js b/static/js/2433.1f1778f7.chunk.js new file mode 100644 index 000000000..ffec1a28e --- /dev/null +++ b/static/js/2433.1f1778f7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2433],{72433:(e,i,t)=>{t.r(i),t.d(i,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Kimbie Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie)\n\nKimbie theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json).\n\n\n \"codemirror-theme-kimbie\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-kimbie --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [kimbie, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { kimbie, kimbieInit } from '@uiw/codemirror-theme-kimbie';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const kimbieInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const kimbie: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [kimbie, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2433.1f1778f7.chunk.js.map \ No newline at end of file diff --git a/static/js/2433.1f1778f7.chunk.js.map b/static/js/2433.1f1778f7.chunk.js.map new file mode 100644 index 000000000..be0871466 --- /dev/null +++ b/static/js/2433.1f1778f7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2433.1f1778f7.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,kiGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/kimbie/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Kimbie Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie)\\n\\nKimbie theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-kimbie-dark/themes/kimbie-dark-color-theme.json).\\n\\n\\n \\\"codemirror-theme-kimbie\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-kimbie --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [kimbie, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { kimbie, kimbieInit } from '@uiw/codemirror-theme-kimbie';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const kimbieInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const kimbie: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { kimbie } from '@uiw/codemirror-theme-kimbie';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [kimbie, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2457.24bb898c.chunk.js b/static/js/2457.24bb898c.chunk.js new file mode 100644 index 000000000..0ab52b730 --- /dev/null +++ b/static/js/2457.24bb898c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2457],{22457:(n,o,t)=>{t.r(o),t.d(o,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# AndroidStudio Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-androidstudio.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio)\n\n\n \"codemirror-theme-androidstudio\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-androidstudio --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [androidstudio, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { androidstudio, androidstudioInit } from '@uiw/codemirror-theme-androidstudio';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsAndroidstudio: CreateThemeOptions['settings'];\nexport declare const androidstudioInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const androidstudio: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [androidstudio, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2457.24bb898c.chunk.js.map \ No newline at end of file diff --git a/static/js/2457.24bb898c.chunk.js.map b/static/js/2457.24bb898c.chunk.js.map new file mode 100644 index 000000000..de1c1205a --- /dev/null +++ b/static/js/2457.24bb898c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2457.24bb898c.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,upGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/androidstudio/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# AndroidStudio Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-androidstudio.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio)\\n\\n\\n \\\"codemirror-theme-androidstudio\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-androidstudio --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [androidstudio, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { androidstudio, androidstudioInit } from '@uiw/codemirror-theme-androidstudio';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsAndroidstudio: CreateThemeOptions['settings'];\\nexport declare const androidstudioInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const androidstudio: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [androidstudio, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2475.ffa350e8.chunk.js b/static/js/2475.ffa350e8.chunk.js new file mode 100644 index 000000000..08ee1ab54 --- /dev/null +++ b/static/js/2475.ffa350e8.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2475],{22475:(t,e,n)=>{n.r(e),n.d(e,{default:()=>r});const r="type storage = int\ntype parameter =\n Increment of int\n| Decrement of int\n| Reset\ntype return = operation list * storage\n// Two entrypoints\nlet add (store, delta : storage * int) : storage = store + delta\nlet sub (store, delta : storage * int) : storage = store - delta\n(* Main access point that dispatches to the entrypoints according to\n the smart contract parameter. *)\nlet main (action, store : parameter * storage) : return =\n ([] : operation list), // No operations\n (match action with\n Increment (n) -> add (store, n)\n | Decrement (n) -> sub (store, n)\n | Reset -> 0)\n"}}]); +//# sourceMappingURL=2475.ffa350e8.chunk.js.map \ No newline at end of file diff --git a/static/js/2475.ffa350e8.chunk.js.map b/static/js/2475.ffa350e8.chunk.js.map new file mode 100644 index 000000000..d5a47a641 --- /dev/null +++ b/static/js/2475.ffa350e8.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2475.ffa350e8.chunk.js","mappings":"yHAAA,ymB","sources":["../../node_modules/code-example/txt/sample.cameligo.txt"],"sourcesContent":["export default \"type storage = int\\ntype parameter =\\n Increment of int\\n| Decrement of int\\n| Reset\\ntype return = operation list * storage\\n// Two entrypoints\\nlet add (store, delta : storage * int) : storage = store + delta\\nlet sub (store, delta : storage * int) : storage = store - delta\\n(* Main access point that dispatches to the entrypoints according to\\n the smart contract parameter. *)\\nlet main (action, store : parameter * storage) : return =\\n ([] : operation list), // No operations\\n (match action with\\n Increment (n) -> add (store, n)\\n | Decrement (n) -> sub (store, n)\\n | Reset -> 0)\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2539.8bae3a7a.chunk.js b/static/js/2539.8bae3a7a.chunk.js new file mode 100644 index 000000000..b2db8aaf1 --- /dev/null +++ b/static/js/2539.8bae3a7a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2539],{82539:(e,r,t)=>{t.r(r),t.d(r,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Red Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-red.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-red)\n\nRed theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-red/themes/Red-color-theme.json).\n\n\n \"codemirror-theme-red\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-red --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { red } from '@uiw/codemirror-theme-red';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [red, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { red, redInit } from '@uiw/codemirror-theme-red';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const redInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const red: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { red } from '@uiw/codemirror-theme-red';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { red } from '@uiw/codemirror-theme-red';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [red, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2539.8bae3a7a.chunk.js.map \ No newline at end of file diff --git a/static/js/2539.8bae3a7a.chunk.js.map b/static/js/2539.8bae3a7a.chunk.js.map new file mode 100644 index 000000000..763fbee64 --- /dev/null +++ b/static/js/2539.8bae3a7a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2539.8bae3a7a.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,68FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/red/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Red Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-red.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-red)\\n\\nRed theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-red/themes/Red-color-theme.json).\\n\\n\\n \\\"codemirror-theme-red\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-red --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { red } from '@uiw/codemirror-theme-red';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [red, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { red, redInit } from '@uiw/codemirror-theme-red';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const redInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const red: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { red } from '@uiw/codemirror-theme-red';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { red } from '@uiw/codemirror-theme-red';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [red, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2563.44327ac9.chunk.js b/static/js/2563.44327ac9.chunk.js new file mode 100644 index 000000000..c275f1ee5 --- /dev/null +++ b/static/js/2563.44327ac9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2563],{42563:(t,e,r)=>{r.r(e),r.d(e,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Github Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github)\n\n\n \"codemirror-theme-github\n\n\n\n \"codemirror-theme-github\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-github --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [githubDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { githubLight, githubLightInit, githubDark, githubDarkInit } from '@uiw/codemirror-theme-github';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsGithubLight: CreateThemeOptions['settings'];\nexport declare const githubLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const githubLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsGithubDark: CreateThemeOptions['settings'];\nexport declare const githubDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const githubDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [githubDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=2563.44327ac9.chunk.js.map \ No newline at end of file diff --git a/static/js/2563.44327ac9.chunk.js.map b/static/js/2563.44327ac9.chunk.js.map new file mode 100644 index 000000000..4e60ec5bf --- /dev/null +++ b/static/js/2563.44327ac9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2563.44327ac9.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,mhHACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/github/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Github Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github)\\n\\n\\n \\\"codemirror-theme-github\\n\\n\\n\\n \\\"codemirror-theme-github\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-github --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [githubDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { githubLight, githubLightInit, githubDark, githubDarkInit } from '@uiw/codemirror-theme-github';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsGithubLight: CreateThemeOptions['settings'];\\nexport declare const githubLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const githubLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsGithubDark: CreateThemeOptions['settings'];\\nexport declare const githubDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const githubDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [githubDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2574.13245b28.chunk.js b/static/js/2574.13245b28.chunk.js new file mode 100644 index 000000000..08351a447 --- /dev/null +++ b/static/js/2574.13245b28.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2574],{55864:(t,e,s)=>{"use strict";s.d(e,{zu:()=>x});var a,l,p=s(60114),m=s(6008);const x=m.Ay.div(a||(a=(0,p.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));m.Ay.div(l||(l=(0,p.A)(["\n display: flex;\n flex: 1;\n"])))},22574:(t,e,s)=>{"use strict";s.r(e),s.d(e,{Component:()=>h,LangsExample:()=>u});var a,l=s(60114),p=s(80905),m=s(69332),x=s(73562),r=s(98846),n=s(6008),o=s(94458),i=s(55864),c=s(98557);const d=n.Ay.div(a||(a=(0,l.A)(["\n padding-bottom: 32px;\n"]))),u=t=>{const{theme:e}=(0,o.D)(),[a,l]=(0,p.useState)("markdown"),[r,n]=(0,p.useState)(t.source||"");return(0,p.useEffect)((()=>{a&&s(39126)("./sample.".concat(a.toLocaleLowerCase(),".txt")).then((t=>{n(t.default)})).catch((t=>{n("")}))}),[a]),(0,c.jsxs)(i.zu,{children:[(0,c.jsx)(x.default,{value:r,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[(0,m.rI)(a)].filter(Boolean)}),(0,c.jsxs)(d,{children:[(0,c.jsxs)("select",{value:a,onChange:t=>l(t.target.value),children:[(0,c.jsx)("option",{value:"good",children:"good"}),m.XI.sort().map(((t,e)=>(0,c.jsx)("option",{value:t,children:t},e)))]}),(0,c.jsxs)("span",{children:["\xa0 Total: ",m.XI.length]})]})]})},h=()=>(0,c.jsx)(r.lN,{path:()=>s.e(5465).then(s.bind(s,35465)),children:(0,c.jsx)(u,{})})},94458:(t,e,s)=>{"use strict";s.d(e,{D:()=>l});var a=s(80905);function l(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const e=document.documentElement.getAttribute("data-color-mode"),[s,l]=(0,a.useState)("dark"===e?"dark":t);return(0,a.useEffect)((()=>{l("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(t=>{l(t.detail.colorScheme)}))}),[]),{theme:s,setTheme:l}}},39126:(t,e,s)=>{var a={"./sample.abap.txt":[8192,8192],"./sample.aes.txt":[4147,4147],"./sample.apex.txt":[43602,3602],"./sample.azcli.txt":[53647,3647],"./sample.bat.txt":[68531,8531],"./sample.bicep.txt":[20311,311],"./sample.brainfuck.txt":[3079,3079],"./sample.c.txt":[94265,4265],"./sample.cameligo.txt":[22475,2475],"./sample.clike.txt":[45936,5936],"./sample.clojure.txt":[97938,7938],"./sample.coffeescript.txt":[77319,7319],"./sample.cpp.txt":[97009,7009],"./sample.csharp.txt":[80563,563],"./sample.csp.txt":[91952,1952],"./sample.css.txt":[42303],"./sample.dart.txt":[95545,7926],"./sample.dockerfile.txt":[31056,1056],"./sample.ecl.txt":[78950,8950],"./sample.elixir.txt":[64371,4371],"./sample.erlang.txt":[67559,7559],"./sample.flow9.txt":[31963,1963],"./sample.freemarker2.txt":[44736,4736],"./sample.fsharp.txt":[35112,5112],"./sample.go.txt":[30572],"./sample.graphql.txt":[75225,5225],"./sample.handlebars.txt":[90618,618],"./sample.hcl.txt":[89047,9047],"./sample.html.txt":[68853],"./sample.ini.txt":[80304,304],"./sample.java.txt":[41422],"./sample.javascript.txt":[4067],"./sample.json.txt":[64464],"./sample.jsx.txt":[61133],"./sample.julia.txt":[80065,65],"./sample.kotlin.txt":[71205,1205],"./sample.less.txt":[43425,3425],"./sample.lex.txt":[9937,9937],"./sample.lexon.txt":[30666,666],"./sample.liquid.txt":[97694,7694],"./sample.livescript.txt":[1969,1969],"./sample.lua.txt":[41548,1548],"./sample.m3.txt":[59674,9674],"./sample.markdown.txt":[21521],"./sample.mips.txt":[99359,9359],"./sample.msdax.txt":[8153,8153],"./sample.mysql.txt":[10364],"./sample.nginx.txt":[30706,706],"./sample.objective-c.txt":[7107,7107],"./sample.pascal.txt":[36618,6618],"./sample.pascaligo.txt":[59661,9661],"./sample.perl.txt":[2169,2169],"./sample.pgsql.txt":[30807,807],"./sample.php.txt":[99350],"./sample.pla.txt":[4063,4063],"./sample.plaintext.txt":[10419,419],"./sample.postiats.txt":[63909,3909],"./sample.powerquery.txt":[32375,2375],"./sample.powershell.txt":[98589,8589],"./sample.proto.txt":[48756,8756],"./sample.pug.txt":[70358,358],"./sample.python.txt":[44272],"./sample.qsharp.txt":[37833,7833],"./sample.r.txt":[50860,860],"./sample.razor.txt":[56082,6082],"./sample.redis.txt":[77939,7939],"./sample.redshift.txt":[11573,1573],"./sample.restructuredtext.txt":[72681,2681],"./sample.ruby.txt":[30518,518],"./sample.rust.txt":[75356],"./sample.sb.txt":[99273,9273],"./sample.scala.txt":[51108,1108],"./sample.scheme.txt":[95823,5823],"./sample.scss.txt":[56402,6402],"./sample.shell.txt":[32464],"./sample.sol.txt":[38592,8592],"./sample.sparql.txt":[59961,9961],"./sample.sql.txt":[32066,2066],"./sample.st.txt":[47695,7695],"./sample.stylus.txt":[83240,3240],"./sample.swift.txt":[715],"./sample.systemverilog.txt":[35545,5545],"./sample.tcl.txt":[3195,3195],"./sample.toml.txt":[76854,6854],"./sample.tsx.txt":[21871],"./sample.twig.txt":[81421,1421],"./sample.typescript.txt":[44355],"./sample.vb.txt":[52766,2766],"./sample.vbscript.txt":[14675,4675],"./sample.verilog.txt":[83300,3300],"./sample.vue.txt":[6150,6150],"./sample.xml.txt":[49353,9353],"./sample.yaml.txt":[68783,8783]};function l(t){if(!s.o(a,t))return Promise.resolve().then((()=>{var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=a[t],l=e[0];return Promise.all(e.slice(1).map(s.e)).then((()=>s(l)))}l.keys=()=>Object.keys(a),l.id=39126,t.exports=l}}]); +//# sourceMappingURL=2574.13245b28.chunk.js.map \ No newline at end of file diff --git a/static/js/2574.13245b28.chunk.js.map b/static/js/2574.13245b28.chunk.js.map new file mode 100644 index 000000000..b79e1d855 --- /dev/null +++ b/static/js/2574.13245b28.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2574.13245b28.chunk.js","mappings":"0IAEO,MAAMA,EAAcC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,0LCCjC,MAAME,EAAUL,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,mCAIbG,EAA4DC,IACvE,MAAM,MAAEC,IAAUC,EAAAA,EAAAA,MAEXC,EAAUC,IAAeC,EAAAA,EAAAA,UAAuB,aAChDC,EAAQC,IAAaF,EAAAA,EAAAA,UAAiBL,EAAMM,QAAU,IAc7D,OAZAE,EAAAA,EAAAA,YAAU,KACJL,GACF,SAAO,YAADM,OAA4BN,EAASO,oBAAmB,SAC3DC,MAAMC,IACLL,EAAUK,EAAKC,QAAQ,IAExBC,OAAOC,IACNR,EAAU,GAAG,GAEnB,GACC,CAACJ,KAGFa,EAAAA,EAAAA,MAACxB,EAAAA,GAAW,CAAAyB,SAAA,EACVC,EAAAA,EAAAA,KAACC,EAAAA,QAAU,CACTC,MAAOd,EACPL,MAAOA,EACPoB,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,EAACC,EAAAA,EAAAA,IAAatB,IAAYuB,OAAOC,YAE/CX,EAAAA,EAAAA,MAAClB,EAAO,CAAAmB,SAAA,EACND,EAAAA,EAAAA,MAAA,UAAQI,MAAOjB,EAAUyB,SAAWC,GAAQzB,EAAYyB,EAAIC,OAAOV,OAAuBH,SAAA,EACxFC,EAAAA,EAAAA,KAAA,UAAQE,MAAM,OAAMH,SAAC,SACpBc,EAAAA,GAAUC,OAAOC,KAAI,CAACC,EAAMC,KAEzBjB,EAAAA,EAAAA,KAAA,UAAkBE,MAAOc,EAAKjB,SAC3BiB,GADUC,SAMnBnB,EAAAA,EAAAA,MAAA,QAAAC,SAAA,CAAM,eAAec,EAAAA,GAAUK,eAErB,EAILC,EAAYA,KAErBnB,EAAAA,EAAAA,KAACoB,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAAqDtB,UACxEC,EAAAA,EAAAA,KAACnB,EAAY,K,+DCzDZ,SAASG,IAAyD,IAAhDgC,EAAmCM,UAAAJ,OAAA,QAAAK,IAAAD,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAME,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5C5C,EAAO6C,IAAYzC,EAAAA,EAAAA,UAAiD,SAATqC,EAAkB,OAASR,GAO7F,OANA1B,EAAAA,EAAAA,YAAU,KACRsC,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASI,iBAAiB,qBAAsBC,IAC9CF,EAASE,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAEjD,QAAO6C,WAClB,C,kBCbA,IAAIb,EAAM,CACT,oBAAqB,CACpB,KACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,yBAA0B,CACzB,KACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,KAED,mBAAoB,CACnB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,kBAAmB,CAClB,OAED,uBAAwB,CACvB,MACA,MAED,0BAA2B,CAC1B,MACA,KAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,MACA,KAED,oBAAqB,CACpB,OAED,0BAA2B,CAC1B,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,OAED,qBAAsB,CACrB,MACA,IAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,sBAAuB,CACtB,MACA,MAED,0BAA2B,CAC1B,KACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,OAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,KACA,MAED,qBAAsB,CACrB,OAED,qBAAsB,CACrB,MACA,KAED,2BAA4B,CAC3B,KACA,MAED,sBAAuB,CACtB,MACA,MAED,yBAA0B,CACzB,MACA,MAED,oBAAqB,CACpB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,mBAAoB,CACnB,OAED,mBAAoB,CACnB,KACA,MAED,yBAA0B,CACzB,MACA,KAED,wBAAyB,CACxB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,KAED,sBAAuB,CACtB,OAED,sBAAuB,CACtB,MACA,MAED,iBAAkB,CACjB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,gCAAiC,CAChC,MACA,MAED,oBAAqB,CACpB,MACA,KAED,oBAAqB,CACpB,OAED,kBAAmB,CAClB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,OAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,KAED,6BAA8B,CAC7B,MACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,OAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,MACA,OAGF,SAASkB,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAErB,EAAKmB,GAC9B,OAAOG,QAAQC,UAAU7C,MAAK,KAC7B,IAAIqC,EAAI,IAAIS,MAAM,uBAAyBL,EAAM,KAEjD,MADAJ,EAAEU,KAAO,mBACHV,CAAC,IAIT,IAAIW,EAAM1B,EAAImB,GAAMQ,EAAKD,EAAI,GAC7B,OAAOJ,QAAQM,IAAIF,EAAIG,MAAM,GAAG7B,IAAIoB,EAAoBL,IAAIrC,MAAK,IACzD0C,EAAoBO,IAE7B,CACAT,EAAoBY,KAAO,IAAOC,OAAOD,KAAK9B,GAC9CkB,EAAoBS,GAAK,MACzBK,EAAOC,QAAUf,C","sources":["pages/extensions/index.tsx","pages/extensions/langs/index.tsx","utils/useTheme.tsx","../../node_modules/code-example/txt|lazy|/^/.//sample/..*/.txt$/|groupOptions: {}|namespace object"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import type { FC, PropsWithChildren } from 'react';\nimport { useEffect, useState } from 'react';\nimport { langNames, LanguageName, loadLanguage } from '@uiw/codemirror-extensions-langs';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { Preview } from '../../theme/Preview';\nimport styled from 'styled-components';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\n\nconst Toolbar = styled.div`\n padding-bottom: 32px;\n`;\n\nexport const LangsExample: FC> = (props) => {\n const { theme } = useTheme();\n\n const [language, setLanguage] = useState('markdown');\n const [source, setSource] = useState(props.source || '');\n\n useEffect(() => {\n if (language) {\n import(`code-example/txt/sample.${language.toLocaleLowerCase()}.txt`)\n .then((data) => {\n setSource(data.default);\n })\n .catch((err) => {\n setSource('');\n });\n }\n }, [language]);\n\n return (\n \n \n \n \n   Total: {langNames.length}\n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-langs/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n","var map = {\n\t\"./sample.abap.txt\": [\n\t\t8192,\n\t\t8192\n\t],\n\t\"./sample.aes.txt\": [\n\t\t4147,\n\t\t4147\n\t],\n\t\"./sample.apex.txt\": [\n\t\t43602,\n\t\t3602\n\t],\n\t\"./sample.azcli.txt\": [\n\t\t53647,\n\t\t3647\n\t],\n\t\"./sample.bat.txt\": [\n\t\t68531,\n\t\t8531\n\t],\n\t\"./sample.bicep.txt\": [\n\t\t20311,\n\t\t311\n\t],\n\t\"./sample.brainfuck.txt\": [\n\t\t3079,\n\t\t3079\n\t],\n\t\"./sample.c.txt\": [\n\t\t94265,\n\t\t4265\n\t],\n\t\"./sample.cameligo.txt\": [\n\t\t22475,\n\t\t2475\n\t],\n\t\"./sample.clike.txt\": [\n\t\t45936,\n\t\t5936\n\t],\n\t\"./sample.clojure.txt\": [\n\t\t97938,\n\t\t7938\n\t],\n\t\"./sample.coffeescript.txt\": [\n\t\t77319,\n\t\t7319\n\t],\n\t\"./sample.cpp.txt\": [\n\t\t97009,\n\t\t7009\n\t],\n\t\"./sample.csharp.txt\": [\n\t\t80563,\n\t\t563\n\t],\n\t\"./sample.csp.txt\": [\n\t\t91952,\n\t\t1952\n\t],\n\t\"./sample.css.txt\": [\n\t\t42303\n\t],\n\t\"./sample.dart.txt\": [\n\t\t95545,\n\t\t7926\n\t],\n\t\"./sample.dockerfile.txt\": [\n\t\t31056,\n\t\t1056\n\t],\n\t\"./sample.ecl.txt\": [\n\t\t78950,\n\t\t8950\n\t],\n\t\"./sample.elixir.txt\": [\n\t\t64371,\n\t\t4371\n\t],\n\t\"./sample.erlang.txt\": [\n\t\t67559,\n\t\t7559\n\t],\n\t\"./sample.flow9.txt\": [\n\t\t31963,\n\t\t1963\n\t],\n\t\"./sample.freemarker2.txt\": [\n\t\t44736,\n\t\t4736\n\t],\n\t\"./sample.fsharp.txt\": [\n\t\t35112,\n\t\t5112\n\t],\n\t\"./sample.go.txt\": [\n\t\t30572\n\t],\n\t\"./sample.graphql.txt\": [\n\t\t75225,\n\t\t5225\n\t],\n\t\"./sample.handlebars.txt\": [\n\t\t90618,\n\t\t618\n\t],\n\t\"./sample.hcl.txt\": [\n\t\t89047,\n\t\t9047\n\t],\n\t\"./sample.html.txt\": [\n\t\t68853\n\t],\n\t\"./sample.ini.txt\": [\n\t\t80304,\n\t\t304\n\t],\n\t\"./sample.java.txt\": [\n\t\t41422\n\t],\n\t\"./sample.javascript.txt\": [\n\t\t4067\n\t],\n\t\"./sample.json.txt\": [\n\t\t64464\n\t],\n\t\"./sample.jsx.txt\": [\n\t\t61133\n\t],\n\t\"./sample.julia.txt\": [\n\t\t80065,\n\t\t65\n\t],\n\t\"./sample.kotlin.txt\": [\n\t\t71205,\n\t\t1205\n\t],\n\t\"./sample.less.txt\": [\n\t\t43425,\n\t\t3425\n\t],\n\t\"./sample.lex.txt\": [\n\t\t9937,\n\t\t9937\n\t],\n\t\"./sample.lexon.txt\": [\n\t\t30666,\n\t\t666\n\t],\n\t\"./sample.liquid.txt\": [\n\t\t97694,\n\t\t7694\n\t],\n\t\"./sample.livescript.txt\": [\n\t\t1969,\n\t\t1969\n\t],\n\t\"./sample.lua.txt\": [\n\t\t41548,\n\t\t1548\n\t],\n\t\"./sample.m3.txt\": [\n\t\t59674,\n\t\t9674\n\t],\n\t\"./sample.markdown.txt\": [\n\t\t21521\n\t],\n\t\"./sample.mips.txt\": [\n\t\t99359,\n\t\t9359\n\t],\n\t\"./sample.msdax.txt\": [\n\t\t8153,\n\t\t8153\n\t],\n\t\"./sample.mysql.txt\": [\n\t\t10364\n\t],\n\t\"./sample.nginx.txt\": [\n\t\t30706,\n\t\t706\n\t],\n\t\"./sample.objective-c.txt\": [\n\t\t7107,\n\t\t7107\n\t],\n\t\"./sample.pascal.txt\": [\n\t\t36618,\n\t\t6618\n\t],\n\t\"./sample.pascaligo.txt\": [\n\t\t59661,\n\t\t9661\n\t],\n\t\"./sample.perl.txt\": [\n\t\t2169,\n\t\t2169\n\t],\n\t\"./sample.pgsql.txt\": [\n\t\t30807,\n\t\t807\n\t],\n\t\"./sample.php.txt\": [\n\t\t99350\n\t],\n\t\"./sample.pla.txt\": [\n\t\t4063,\n\t\t4063\n\t],\n\t\"./sample.plaintext.txt\": [\n\t\t10419,\n\t\t419\n\t],\n\t\"./sample.postiats.txt\": [\n\t\t63909,\n\t\t3909\n\t],\n\t\"./sample.powerquery.txt\": [\n\t\t32375,\n\t\t2375\n\t],\n\t\"./sample.powershell.txt\": [\n\t\t98589,\n\t\t8589\n\t],\n\t\"./sample.proto.txt\": [\n\t\t48756,\n\t\t8756\n\t],\n\t\"./sample.pug.txt\": [\n\t\t70358,\n\t\t358\n\t],\n\t\"./sample.python.txt\": [\n\t\t44272\n\t],\n\t\"./sample.qsharp.txt\": [\n\t\t37833,\n\t\t7833\n\t],\n\t\"./sample.r.txt\": [\n\t\t50860,\n\t\t860\n\t],\n\t\"./sample.razor.txt\": [\n\t\t56082,\n\t\t6082\n\t],\n\t\"./sample.redis.txt\": [\n\t\t77939,\n\t\t7939\n\t],\n\t\"./sample.redshift.txt\": [\n\t\t11573,\n\t\t1573\n\t],\n\t\"./sample.restructuredtext.txt\": [\n\t\t72681,\n\t\t2681\n\t],\n\t\"./sample.ruby.txt\": [\n\t\t30518,\n\t\t518\n\t],\n\t\"./sample.rust.txt\": [\n\t\t75356\n\t],\n\t\"./sample.sb.txt\": [\n\t\t99273,\n\t\t9273\n\t],\n\t\"./sample.scala.txt\": [\n\t\t51108,\n\t\t1108\n\t],\n\t\"./sample.scheme.txt\": [\n\t\t95823,\n\t\t5823\n\t],\n\t\"./sample.scss.txt\": [\n\t\t56402,\n\t\t6402\n\t],\n\t\"./sample.shell.txt\": [\n\t\t32464\n\t],\n\t\"./sample.sol.txt\": [\n\t\t38592,\n\t\t8592\n\t],\n\t\"./sample.sparql.txt\": [\n\t\t59961,\n\t\t9961\n\t],\n\t\"./sample.sql.txt\": [\n\t\t32066,\n\t\t2066\n\t],\n\t\"./sample.st.txt\": [\n\t\t47695,\n\t\t7695\n\t],\n\t\"./sample.stylus.txt\": [\n\t\t83240,\n\t\t3240\n\t],\n\t\"./sample.swift.txt\": [\n\t\t715\n\t],\n\t\"./sample.systemverilog.txt\": [\n\t\t35545,\n\t\t5545\n\t],\n\t\"./sample.tcl.txt\": [\n\t\t3195,\n\t\t3195\n\t],\n\t\"./sample.toml.txt\": [\n\t\t76854,\n\t\t6854\n\t],\n\t\"./sample.tsx.txt\": [\n\t\t21871\n\t],\n\t\"./sample.twig.txt\": [\n\t\t81421,\n\t\t1421\n\t],\n\t\"./sample.typescript.txt\": [\n\t\t44355\n\t],\n\t\"./sample.vb.txt\": [\n\t\t52766,\n\t\t2766\n\t],\n\t\"./sample.vbscript.txt\": [\n\t\t14675,\n\t\t4675\n\t],\n\t\"./sample.verilog.txt\": [\n\t\t83300,\n\t\t3300\n\t],\n\t\"./sample.vue.txt\": [\n\t\t6150,\n\t\t6150\n\t],\n\t\"./sample.xml.txt\": [\n\t\t49353,\n\t\t9353\n\t],\n\t\"./sample.yaml.txt\": [\n\t\t68783,\n\t\t8783\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 39126;\nmodule.exports = webpackAsyncContext;"],"names":["PageWarpper","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","Toolbar","LangsExample","props","theme","useTheme","language","setLanguage","useState","source","setSource","useEffect","concat","toLocaleLowerCase","then","data","default","catch","err","_jsxs","children","_jsx","CodeMirror","value","height","style","margin","extensions","loadLanguage","filter","Boolean","onChange","evn","target","langNames","sort","map","name","idx","length","Component","Preview","path","arguments","undefined","dark","document","documentElement","getAttribute","setTheme","addEventListener","e","detail","colorScheme","webpackAsyncContext","req","__webpack_require__","o","Promise","resolve","Error","code","ids","id","all","slice","keys","Object","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/2614.bbc324e6.chunk.js b/static/js/2614.bbc324e6.chunk.js new file mode 100644 index 000000000..1a0cd7f26 --- /dev/null +++ b/static/js/2614.bbc324e6.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkwww=self.webpackChunkwww||[]).push([[2614],{52614:(t,e,a)=>{"use strict";a.r(e),a.d(e,{Component:()=>I,Sider:()=>B,ThemeEditor:()=>H});var o=a(60114),r=a(80905),n=a(73562),c=a(88118),l=a(6008),i=a(30514),p=(a(11784),a(97439)),s=a(1345),g=a(83965);const m={comment:"#787b80",lineComment:"",blockComment:"",docComment:"",name:"",typeDefinition:"#194a7b",typeName:"#194a7b",typeStandard:"",tagName:"#008a02",tagNameStandard:"",variableName:"#1a00db",variableNameDefinition:"",variableNameFunction:"",propertyName:"",propertyNameDefinition:"",propertyNameFunction:"",propertyNameSpecial:"",attributeName:"",attributeValue:"",className:"",classNameConstant:"",labelName:"",namespace:"",macroName:"",literal:"",string:"",stringSpecial:"",docString:"",character:"",number:"",integer:"",float:"",bool:"",regexp:"",escape:"",color:"",url:"",keyword:"",self:"",null:"",atom:"",unit:"",modifier:"",operatorKeyword:"",controlKeyword:"",definitionKeyword:"",moduleKeyword:"",operator:"",derefOperator:"",arithmeticOperator:"",logicOperator:"",bitwiseOperator:"",brace:"",angleBracket:"",compareOperator:"",updateOperator:"",definitionOperator:"",typeOperator:"",controlOperator:"",punctuation:"",separator:"",bracket:"",squareBracket:"",paren:"",content:"",heading:"",heading1:"",heading2:"",heading3:"",heading4:"",heading5:"",heading6:"",contentSeparator:"",list:"",quote:"",emphasis:"",strong:"",link:"",monospace:"",strikethrough:"",inserted:"",deleted:"",changed:"",invalid:"",meta:"",documentMeta:"",annotation:"",processingInstruction:""},d=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const e=[];return t.comment&&e.push("{ tag: t.comment, color: '".concat(t.comment,"' },")),t.lineComment&&e.push("{ tag: t.lineComment, color: '".concat(t.lineComment,"' },")),t.blockComment&&e.push("{ tag: t.blockComment, color: '".concat(t.blockComment,"' },")),t.docComment&&e.push("{ tag: t.docComment, color: '".concat(t.docComment,"' },")),t.name&&e.push("{ tag: t.name, color: '".concat(t.name,"' },")),t.typeDefinition&&e.push("{ tag: t.definition(t.typeName), color: '".concat(t.typeDefinition,"' },")),t.typeName&&e.push("{ tag: t.typeName, color: '".concat(t.typeName,"' },")),t.typeStandard&&e.push("{ tag: t.standard(t.typeName), color: '".concat(t.typeName,"' },")),t.tagName&&e.push("{ tag: t.tagName, color: '".concat(t.tagName,"' },")),t.tagNameStandard&&e.push("{ tag: t.standard(t.tagName), color: '".concat(t.tagNameStandard,"' },")),t.variableName&&e.push("{ tag: t.variableName, color: '".concat(t.variableName,"' },")),t.variableNameDefinition&&e.push("{ tag: t.definition(t.variableName), color: '".concat(t.variableNameDefinition,"' },")),t.variableNameFunction&&e.push("{ tag: t.function(t.variableName), color: '".concat(t.variableNameFunction,"' },")),t.propertyName&&e.push("{ tag: t.propertyName, color: '".concat(t.propertyName,"' },")),t.propertyNameFunction&&e.push("{ tag: t.function(t.propertyName), color: '".concat(t.propertyNameFunction,"' },")),t.propertyNameDefinition&&e.push("{ tag: t.definition(t.propertyName), color: '".concat(t.propertyNameDefinition,"' },")),t.propertyNameSpecial&&e.push("{ tag: t.special(t.propertyName), color: '".concat(t.propertyNameSpecial,"' },")),t.attributeName&&e.push("{ tag: t.attributeName, color: '".concat(t.attributeName,"' },")),t.className&&e.push("{ tag: t.className, color: '".concat(t.className,"' },")),t.classNameConstant&&e.push("{ tag: t.constant(t.className), color: '".concat(t.className,"' },")),t.labelName&&e.push("{ tag: t.labelName, color: '".concat(t.labelName,"' },")),t.namespace&&e.push("{ tag: t.namespace, color: '".concat(t.namespace,"' },")),t.macroName&&e.push("{ tag: t.macroName, color: '".concat(t.macroName,"' },")),t.literal&&e.push("{ tag: t.literal, color: '".concat(t.literal,"' },")),t.string&&e.push("{ tag: t.string, color: '".concat(t.string,"' },")),t.stringSpecial&&e.push("{ tag: t.special(t.string), color: '".concat(t.stringSpecial,"' },")),t.docString&&e.push("{ tag: t.docString, color: '".concat(t.docString,"' },")),t.character&&e.push("{ tag: t.character, color: '".concat(t.character,"' },")),t.attributeValue&&e.push("{ tag: t.attributeValue, color: '".concat(t.attributeValue,"' },")),t.number&&e.push("{ tag: t.number, color: '".concat(t.number,"' },")),t.integer&&e.push("{ tag: t.integer, color: '".concat(t.integer,"' },")),t.float&&e.push("{ tag: t.float, color: '".concat(t.float,"' },")),t.bool&&e.push("{ tag: t.bool, color: '".concat(t.bool,"' },")),t.regexp&&e.push("{ tag: t.regexp, color: '".concat(t.regexp,"' },")),t.escape&&e.push("{ tag: t.escape, color: '".concat(t.escape,"' },")),t.color&&e.push("{ tag: t.color, color: '".concat(t.color,"' },")),t.url&&e.push("{ tag: t.url, color: '".concat(t.url,"' },")),t.keyword&&e.push("{ tag: t.keyword, color: '".concat(t.keyword,"' },")),t.self&&e.push("{ tag: t.self, color: '".concat(t.self,"' },")),t.null&&e.push("{ tag: t.null, color: '".concat(t.null,"' },")),t.atom&&e.push("{ tag: t.atom, color: '".concat(t.atom,"' },")),t.unit&&e.push("{ tag: t.unit, color: '".concat(t.unit,"' },")),t.modifier&&e.push("{ tag: t.modifier, color: '".concat(t.modifier,"' },")),t.operatorKeyword&&e.push("{ tag: t.operatorKeyword, color: '".concat(t.operatorKeyword,"' },")),t.controlKeyword&&e.push("{ tag: t.controlKeyword, color: '".concat(t.controlKeyword,"' },")),t.definitionKeyword&&e.push("{ tag: t.definitionKeyword, color: '".concat(t.definitionKeyword,"' },")),t.moduleKeyword&&e.push("{ tag: t.moduleKeyword, color: '".concat(t.moduleKeyword,"' },")),t.operator&&e.push("{ tag: t.operator, color: '".concat(t.operator,"' },")),t.derefOperator&&e.push("{ tag: t.derefOperator, color: '".concat(t.derefOperator,"' },")),t.arithmeticOperator&&e.push("{ tag: t.arithmeticOperator, color: '".concat(t.arithmeticOperator,"' },")),t.logicOperator&&e.push("{ tag: t.logicOperator, color: '".concat(t.logicOperator,"' },")),t.logicOperator&&e.push("{ tag: t.bitwiseOperator, color: '".concat(t.logicOperator,"' },")),t.compareOperator&&e.push("{ tag: t.compareOperator, color: '".concat(t.compareOperator,"' },")),t.updateOperator&&e.push("{ tag: t.updateOperator, color: '".concat(t.updateOperator,"' },")),t.definitionOperator&&e.push("{ tag: t.definitionOperator, color: '".concat(t.definitionOperator,"' },")),t.typeOperator&&e.push("{ tag: t.typeOperator, color: '".concat(t.typeOperator,"' },")),t.controlOperator&&e.push("{ tag: t.controlOperator, color: '".concat(t.controlOperator,"' },")),t.punctuation&&e.push("{ tag: t.punctuation, color: '".concat(t.punctuation,"' },")),t.separator&&e.push("{ tag: t.separator, color: '".concat(t.separator,"' },")),t.bracket&&e.push("{ tag: t.bracket, color: '".concat(t.bracket,"' },")),t.angleBracket&&e.push("{ tag: t.angleBracket, color: '".concat(t.angleBracket,"' },")),t.squareBracket&&e.push("{ tag: t.squareBracket, color: '".concat(t.squareBracket,"' },")),t.paren&&e.push("{ tag: t.paren, color: '".concat(t.paren,"' },")),t.brace&&e.push("{ tag: t.brace, color: '".concat(t.brace,"' },")),t.content&&e.push("{ tag: t.content, color: '".concat(t.content,"' },")),t.heading&&e.push("{ tag: t.heading, color: '".concat(t.heading,"' },")),t.heading1&&e.push("{ tag: t.heading1, color: '".concat(t.heading1,"' },")),t.heading2&&e.push("{ tag: t.heading2, color: '".concat(t.heading2,"' },")),t.heading3&&e.push("{ tag: t.heading3, color: '".concat(t.heading3,"' },")),t.heading4&&e.push("{ tag: t.heading4, color: '".concat(t.heading4,"' },")),t.heading5&&e.push("{ tag: t.heading5, color: '".concat(t.heading5,"' },")),t.heading6&&e.push("{ tag: t.heading6, color: '".concat(t.heading6,"' },")),t.contentSeparator&&e.push("{ tag: t.contentSeparator, color: '".concat(t.contentSeparator,"' },")),t.list&&e.push("{ tag: t.list, color: '".concat(t.list,"' },")),t.quote&&e.push("{ tag: t.quote, color: '".concat(t.quote,"' },")),t.emphasis&&e.push("{ tag: t.emphasis, color: '".concat(t.emphasis,"' },")),t.strong&&e.push("{ tag: t.strong, color: '".concat(t.strong,"' },")),t.link&&e.push("{ tag: t.link, color: '".concat(t.link,"' },")),t.monospace&&e.push("{ tag: t.monospace, color: '".concat(t.monospace,"' },")),t.strikethrough&&e.push("{ tag: t.strikethrough, color: '".concat(t.strikethrough,"' },")),t.inserted&&e.push("{ tag: t.inserted, color: '".concat(t.inserted,"' },")),t.deleted&&e.push("{ tag: t.deleted, color: '".concat(t.deleted,"' },")),t.changed&&e.push("{ tag: t.changed, color: '".concat(t.changed,"' },")),t.invalid&&e.push("{ tag: t.invalid, color: '".concat(t.invalid,"' },")),t.meta&&e.push("{ tag: t.meta, color: '".concat(t.meta,"' },")),t.documentMeta&&e.push("{ tag: t.documentMeta, color: '".concat(t.documentMeta,"' },")),t.annotation&&e.push("{ tag: t.annotation, color: '".concat(t.annotation,"' },")),t.processingInstruction&&e.push("{ tag: t.processingInstruction, color: '".concat(t.processingInstruction,"' },")),"import CodeMirror from '@uiw/react-codemirror';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tags as t } from '@lezer/highlight';\n\nconst myTheme = createTheme({\n dark: '".concat(t.dark,"',\n settings: {\n background: '").concat(t.background,"',\n backgroundImage: '',\n foreground: '").concat(t.foreground,"',\n caret: '").concat(t.caret,"',\n selection: '").concat(t.selection,"',\n selectionMatch: '").concat(t.selectionMatch,"',\n gutterBackground: '").concat(t.gutterBackground,"',\n gutterForeground: '").concat(t.gutterForeground,"',\n gutterBorder: '").concat(t.gutterBorder,"',\n gutterActiveForeground: '").concat(t.gutterActiveForeground,"',\n lineHighlight: '").concat(t.lineHighlight,"',\n },\n styles: [\n ").concat(e.join("\n "),"\n ],\n});\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;")};var u,h,x,A,y=a(98557);const f=l.Ay.div(u||(u=(0,o.A)(["\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n"]))),b=l.Ay.div(h||(h=(0,o.A)(["\n /* font-weight: bold; */\n"]))),_=l.Ay.div(x||(x=(0,o.A)(["\n width: 16px;\n height: 16px;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n border-radius: 3px;\n position: relative;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='12' height='12' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\");\n &::before {\n content: ' ';\n display: block;\n position: absolute;\n left: 1px;\n right: 1px;\n top: 1px;\n bottom: 1px;\n border-radius: 2px;\n ","\n }\n input {\n position: relative;\n z-index: 3;\n border: 0;\n background-color: transparent;\n padding-left: 16px;\n height: 16px;\n }\n"])),(t=>t.color&&(0,l.AH)(A||(A=(0,o.A)(["\n background-color: ",";\n "])),t.color))),N=t=>{let{children:e,onChange:a,...o}=t;return(0,y.jsx)(_,{color:o.value,children:(0,y.jsx)("input",{type:"color",...o,onChange:a})})},v=t=>{let{color:e,children:a,...o}=t;return(0,y.jsxs)(f,{children:[(0,y.jsx)(b,{children:a}),(0,y.jsx)(N,{value:e,...o})]})},k=t=>{let{theme:e,onChange:a}=t;const o=(t,e)=>{a&&a(e)};return(0,y.jsxs)("div",{children:[(0,y.jsxs)("label",{children:[(0,y.jsx)("input",{type:"radio",name:"theme",onChange:t=>o(0,"light"),checked:"light"===e})," ","light"]}),(0,y.jsxs)("label",{children:[(0,y.jsx)("input",{type:"radio",name:"theme",onChange:t=>o(0,"dark"),checked:"dark"===e})," ","dark"]})]})};var w,O=a(69332);const j=l.Ay.select(w||(w=(0,o.A)(["\n position: absolute;\n right: 10px;\n top: 10px;\n padding: 3px 6px;\n z-index: 9;\n"]))),C=Object.keys(O.cg),S=t=>{let{onChange:e,styles:o,...n}=t;const[c,l]=(0,r.useState)("code");return(0,r.useEffect)((()=>{"code"===c&&e&&e(d(o),"code",O.cg.jsx())}),[]),(0,y.jsxs)(j,{value:c,onChange:t=>{const r=t.target.value;if(l(r),"code"!==r)try{a(39126)("./sample.".concat(r.toLocaleLowerCase(),".txt")).then((t=>{const a=O.cg[r];e&&e(t.default,r,a?a():void 0)})).catch((t=>{e&&e("","",void 0)}))}catch(n){}else e&&e(d(o),"code",O.cg.jsx())},...n,children:[(0,y.jsx)("option",{value:"code",children:"Sample Code"}),C.map(((t,e)=>(0,y.jsx)("option",{value:t,children:t},e)))]})};var F,D,K,q=a(594);const B=l.Ay.div(F||(F=(0,o.A)(["\n width: 220px;\n min-width: 220px;\n overflow: auto;\n height: calc(100vh - 42px);\n padding: 18px 16px 120px 16px;\n border-right: 1px solid var(--color-border-default);\n display: flex;\n flex-direction: column;\n gap: 5px;\n"]))),E=l.Ay.div(D||(D=(0,o.A)(["\n height: 100%;\n width: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 42px);\n position: relative;\n"]))),M=l.Ay.div(K||(K=(0,o.A)(["\n color: var(--color-fg-subtle);\n font-size: 12px;\n padding: 0 0;\n"])));function z(t,e){return t&&e?(e.color=t,[e]):[]}function H(){const t=(0,i.Zp)(),{type:e="multiple"}=(0,i.g)(),[a,o]=(0,r.useState)((0,g.javascript)({jsx:!0})),[l,u]=(0,r.useState)(""),[h,x]=(0,r.useState)("jsx"),[A,f]=(0,r.useState)("light"),[b,_]=(0,r.useState)({background:"#ffffff",foreground:"#4D4D4C",caret:"#AEAFAD",selection:"#D6D6D6",selectionMatch:"#D6D6D6",gutterBackground:"#FFFFFF",gutterForeground:"#4D4D4C",gutterBorder:"#dddddd",gutterActiveForeground:"",lineHighlight:"#EFEFEF"}),[N,w]=(0,r.useState)(m),O=(0,p.A)({theme:A,settings:{...b},styles:[z(N.comment,{tag:s._A.comment}),z(N.lineComment,{tag:s._A.lineComment}),z(N.blockComment,{tag:s._A.blockComment}),z(N.docComment,{tag:s._A.docComment}),z(N.name,{tag:s._A.name}),z(N.typeDefinition,{tag:s._A.definition(s._A.typeName)}),z(N.typeStandard,{tag:s._A.standard(s._A.typeName)}),z(N.typeName,{tag:s._A.typeName}),z(N.tagNameStandard,{tag:s._A.standard(s._A.tagName)}),z(N.tagName,{tag:s._A.tagName}),z(N.variableName,{tag:s._A.variableName}),z(N.variableNameDefinition,{tag:s._A.definition(s._A.variableName)}),z(N.variableNameFunction,{tag:s._A.function(s._A.variableName)}),z(N.propertyName,{tag:s._A.propertyName}),z(N.propertyNameDefinition,{tag:s._A.definition(s._A.propertyName)}),z(N.propertyNameSpecial,{tag:s._A.special(s._A.propertyName)}),z(N.propertyNameFunction,{tag:s._A.function(s._A.propertyName)}),z(N.attributeName,{tag:s._A.attributeName}),z(N.attributeValue,{tag:s._A.attributeValue}),z(N.className,{tag:s._A.className}),z(N.classNameConstant,{tag:s._A.constant(s._A.className)}),z(N.labelName,{tag:s._A.labelName}),z(N.namespace,{tag:s._A.namespace}),z(N.macroName,{tag:s._A.macroName}),z(N.literal,{tag:s._A.literal}),z(N.string,{tag:s._A.string}),z(N.stringSpecial,{tag:s._A.special(s._A.string)}),z(N.docString,{tag:s._A.docString}),z(N.character,{tag:s._A.character}),z(N.number,{tag:s._A.number}),z(N.integer,{tag:s._A.integer}),z(N.float,{tag:s._A.float}),z(N.bool,{tag:s._A.bool}),z(N.regexp,{tag:s._A.regexp}),z(N.escape,{tag:s._A.escape}),z(N.color,{tag:s._A.color}),z(N.url,{tag:s._A.url}),z(N.keyword,{tag:s._A.keyword}),z(N.self,{tag:s._A.self}),z(N.null,{tag:s._A.null}),z(N.atom,{tag:s._A.atom}),z(N.unit,{tag:s._A.unit}),z(N.modifier,{tag:s._A.modifier}),z(N.operatorKeyword,{tag:s._A.operatorKeyword}),z(N.controlKeyword,{tag:s._A.controlKeyword}),z(N.definitionKeyword,{tag:s._A.definitionKeyword}),z(N.moduleKeyword,{tag:s._A.moduleKeyword}),z(N.operator,{tag:s._A.operator}),z(N.derefOperator,{tag:s._A.derefOperator}),z(N.arithmeticOperator,{tag:s._A.arithmeticOperator}),z(N.logicOperator,{tag:s._A.logicOperator}),z(N.bitwiseOperator,{tag:s._A.bitwiseOperator}),z(N.compareOperator,{tag:s._A.compareOperator}),z(N.updateOperator,{tag:s._A.updateOperator}),z(N.definitionOperator,{tag:s._A.definitionOperator}),z(N.typeOperator,{tag:s._A.typeOperator}),z(N.controlOperator,{tag:s._A.controlOperator}),z(N.punctuation,{tag:s._A.punctuation}),z(N.separator,{tag:s._A.separator}),z(N.bracket,{tag:s._A.bracket}),z(N.angleBracket,{tag:s._A.angleBracket}),z(N.squareBracket,{tag:s._A.squareBracket}),z(N.paren,{tag:s._A.paren}),z(N.brace,{tag:s._A.brace}),z(N.content,{tag:s._A.content}),z(N.heading,{tag:s._A.heading}),z(N.heading1,{tag:s._A.heading1}),z(N.heading2,{tag:s._A.heading2}),z(N.heading3,{tag:s._A.heading3}),z(N.heading4,{tag:s._A.heading4}),z(N.heading5,{tag:s._A.heading5}),z(N.heading6,{tag:s._A.heading6}),z(N.contentSeparator,{tag:s._A.contentSeparator}),z(N.list,{tag:s._A.list}),z(N.quote,{tag:s._A.quote}),z(N.emphasis,{tag:s._A.emphasis}),z(N.strong,{tag:s._A.strong}),z(N.link,{tag:s._A.link}),z(N.monospace,{tag:s._A.monospace}),z(N.strikethrough,{tag:s._A.strikethrough}),z(N.inserted,{tag:s._A.inserted}),z(N.deleted,{tag:s._A.deleted}),z(N.changed,{tag:s._A.changed}),z(N.invalid,{tag:s._A.invalid}),z(N.meta,{tag:s._A.meta}),z(N.documentMeta,{tag:s._A.documentMeta}),z(N.annotation,{tag:s._A.annotation}),z(N.processingInstruction,{tag:s._A.processingInstruction})].flat()});return(0,y.jsxs)(r.Fragment,{children:[(0,y.jsxs)(B,{children:[(0,y.jsx)(k,{theme:A,onChange:t=>f(t)}),(0,y.jsx)(M,{children:"Editor"}),Object.keys(b).map(((t,e)=>(0,y.jsx)(v,{color:b[t],onChange:e=>_({...b,[t]:e.target.value}),children:t},e))),(0,y.jsx)(M,{children:"Syntax Highlighting"}),Object.keys(N).map(((t,e)=>(0,y.jsx)(v,{color:N[t],onChange:e=>w({...N,[t]:e.target.value}),children:t},e)))]}),(0,y.jsxs)(E,{children:["single"===e&&(0,y.jsx)(n.default,{readOnly:"code"===h,theme:O,extensions:[a,c.yW],value:"code"===h?d({...b,...N,dark:A}):l,height:"100% !important",style:{minHeight:"100%"}}),(0,y.jsxs)(j,{value:e,onChange:e=>t("/editor/theme/".concat(e.target.value)),children:[(0,y.jsx)("option",{value:"single",children:"Single language"}),(0,y.jsx)("option",{value:"multiple",children:"Multiple languages"})]}),"single"===e&&(0,y.jsx)(S,{style:{top:40},styles:{...b,...N,dark:A},onChange:(t,e,a)=>{x(e),u(t||""),o(a||[])}}),"multiple"===e&&(0,y.jsx)(q.$,{theme:O,style:{padding:"30px 30px"}})]})]})}const I=()=>(0,y.jsx)(H,{})},39126:(t,e,a)=>{var o={"./sample.abap.txt":[8192,8192],"./sample.aes.txt":[4147,4147],"./sample.apex.txt":[43602,3602],"./sample.azcli.txt":[53647,3647],"./sample.bat.txt":[68531,8531],"./sample.bicep.txt":[20311,311],"./sample.brainfuck.txt":[3079,3079],"./sample.c.txt":[94265,4265],"./sample.cameligo.txt":[22475,2475],"./sample.clike.txt":[45936,5936],"./sample.clojure.txt":[97938,7938],"./sample.coffeescript.txt":[77319,7319],"./sample.cpp.txt":[97009,7009],"./sample.csharp.txt":[80563,563],"./sample.csp.txt":[91952,1952],"./sample.css.txt":[42303],"./sample.dart.txt":[95545,7926],"./sample.dockerfile.txt":[31056,1056],"./sample.ecl.txt":[78950,8950],"./sample.elixir.txt":[64371,4371],"./sample.erlang.txt":[67559,7559],"./sample.flow9.txt":[31963,1963],"./sample.freemarker2.txt":[44736,4736],"./sample.fsharp.txt":[35112,5112],"./sample.go.txt":[30572],"./sample.graphql.txt":[75225,5225],"./sample.handlebars.txt":[90618,618],"./sample.hcl.txt":[89047,9047],"./sample.html.txt":[68853],"./sample.ini.txt":[80304,304],"./sample.java.txt":[41422],"./sample.javascript.txt":[4067],"./sample.json.txt":[64464],"./sample.jsx.txt":[61133],"./sample.julia.txt":[80065,65],"./sample.kotlin.txt":[71205,1205],"./sample.less.txt":[43425,3425],"./sample.lex.txt":[9937,9937],"./sample.lexon.txt":[30666,666],"./sample.liquid.txt":[97694,7694],"./sample.livescript.txt":[1969,1969],"./sample.lua.txt":[41548,1548],"./sample.m3.txt":[59674,9674],"./sample.markdown.txt":[21521],"./sample.mips.txt":[99359,9359],"./sample.msdax.txt":[8153,8153],"./sample.mysql.txt":[10364],"./sample.nginx.txt":[30706,706],"./sample.objective-c.txt":[7107,7107],"./sample.pascal.txt":[36618,6618],"./sample.pascaligo.txt":[59661,9661],"./sample.perl.txt":[2169,2169],"./sample.pgsql.txt":[30807,807],"./sample.php.txt":[99350],"./sample.pla.txt":[4063,4063],"./sample.plaintext.txt":[10419,419],"./sample.postiats.txt":[63909,3909],"./sample.powerquery.txt":[32375,2375],"./sample.powershell.txt":[98589,8589],"./sample.proto.txt":[48756,8756],"./sample.pug.txt":[70358,358],"./sample.python.txt":[44272],"./sample.qsharp.txt":[37833,7833],"./sample.r.txt":[50860,860],"./sample.razor.txt":[56082,6082],"./sample.redis.txt":[77939,7939],"./sample.redshift.txt":[11573,1573],"./sample.restructuredtext.txt":[72681,2681],"./sample.ruby.txt":[30518,518],"./sample.rust.txt":[75356],"./sample.sb.txt":[99273,9273],"./sample.scala.txt":[51108,1108],"./sample.scheme.txt":[95823,5823],"./sample.scss.txt":[56402,6402],"./sample.shell.txt":[32464],"./sample.sol.txt":[38592,8592],"./sample.sparql.txt":[59961,9961],"./sample.sql.txt":[32066,2066],"./sample.st.txt":[47695,7695],"./sample.stylus.txt":[83240,3240],"./sample.swift.txt":[715],"./sample.systemverilog.txt":[35545,5545],"./sample.tcl.txt":[3195,3195],"./sample.toml.txt":[76854,6854],"./sample.tsx.txt":[21871],"./sample.twig.txt":[81421,1421],"./sample.typescript.txt":[44355],"./sample.vb.txt":[52766,2766],"./sample.vbscript.txt":[14675,4675],"./sample.verilog.txt":[83300,3300],"./sample.vue.txt":[6150,6150],"./sample.xml.txt":[49353,9353],"./sample.yaml.txt":[68783,8783]};function r(t){if(!a.o(o,t))return Promise.resolve().then((()=>{var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}));var e=o[t],r=e[0];return Promise.all(e.slice(1).map(a.e)).then((()=>a(r)))}r.keys=()=>Object.keys(o),r.id=39126,t.exports=r}}]); +//# sourceMappingURL=2614.bbc324e6.chunk.js.map \ No newline at end of file diff --git a/static/js/2614.bbc324e6.chunk.js.map b/static/js/2614.bbc324e6.chunk.js.map new file mode 100644 index 000000000..907be71ae --- /dev/null +++ b/static/js/2614.bbc324e6.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/2614.bbc324e6.chunk.js","mappings":"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AT3E,IAAuBF,EAAAA,EAAAA,KAAC8E,EAAAA,EAAM,CAACrE,MAAO6C,EAASkB,MAAO,CAAEO,QAAS,oBAI1E,CAEO,MAAMC,EAAYA,KAChBhF,EAAAA,EAAAA,KAACyC,EAAW,G,kBCxPrB,IAAIR,EAAM,CACT,oBAAqB,CACpB,KACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,yBAA0B,CACzB,KACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,KAED,mBAAoB,CACnB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,kBAAmB,CAClB,OAED,uBAAwB,CACvB,MACA,MAED,0BAA2B,CAC1B,MACA,KAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,MACA,KAED,oBAAqB,CACpB,OAED,0BAA2B,CAC1B,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,OAED,qBAAsB,CACrB,MACA,IAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,sBAAuB,CACtB,MACA,MAED,0BAA2B,CAC1B,KACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,OAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,KACA,MAED,qBAAsB,CACrB,OAED,qBAAsB,CACrB,MACA,KAED,2BAA4B,CAC3B,KACA,MAED,sBAAuB,CACtB,MACA,MAED,yBAA0B,CACzB,MACA,MAED,oBAAqB,CACpB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,mBAAoB,CACnB,OAED,mBAAoB,CACnB,KACA,MAED,yBAA0B,CACzB,MACA,KAED,wBAAyB,CACxB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,KAED,sBAAuB,CACtB,OAED,sBAAuB,CACtB,MACA,MAED,iBAAkB,CACjB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,gCAAiC,CAChC,MACA,MAED,oBAAqB,CACpB,MACA,KAED,oBAAqB,CACpB,OAED,kBAAmB,CAClB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,OAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,KAED,6BAA8B,CAC7B,MACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,OAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,MACA,OAGF,SAASgD,EAAoBC,GAC5B,IAAIC,EAAoBC,EAAEnD,EAAKiD,GAC9B,OAAOG,QAAQC,UAAU3D,MAAK,KAC7B,IAAI4D,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEvC,KAAO,mBACHuC,CAAC,IAIT,IAAIE,EAAMxD,EAAIiD,GAAMQ,EAAKD,EAAI,GAC7B,OAAOJ,QAAQM,IAAIF,EAAIG,MAAM,GAAG3D,IAAIkD,EAAoBI,IAAI5D,MAAK,IACzDwD,EAAoBO,IAE7B,CACAT,EAAoBhE,KAAO,IAAOD,OAAOC,KAAKgB,GAC9CgD,EAAoBS,GAAK,MACzBG,EAAOC,QAAUb,C","sources":["pages/theme/editor/themeCode.ts","pages/theme/editor/ColorMenu.tsx","pages/theme/editor/SampleCode.tsx","pages/theme/editor/index.tsx","../../node_modules/code-example/txt|lazy|/^/.//sample/..*/.txt$/|groupOptions: {}|namespace object"],"sourcesContent":["import { CreateThemeOptions } from '@uiw/codemirror-themes';\nimport { Style } from './';\n\nexport const defalutStyle: Style = {\n comment: '#787b80',\n lineComment: '',\n blockComment: '',\n docComment: '',\n name: '',\n typeDefinition: '#194a7b',\n typeName: '#194a7b',\n typeStandard: '',\n tagName: '#008a02',\n tagNameStandard: '',\n variableName: '#1a00db',\n variableNameDefinition: '',\n variableNameFunction: '',\n propertyName: '',\n propertyNameDefinition: '',\n propertyNameFunction: '',\n propertyNameSpecial: '',\n attributeName: '',\n attributeValue: '',\n className: '',\n classNameConstant: '',\n labelName: '',\n namespace: '',\n macroName: '',\n literal: '',\n string: '',\n stringSpecial: '',\n docString: '',\n character: '',\n number: '',\n integer: '',\n float: '',\n bool: '',\n regexp: '',\n escape: '',\n color: '',\n url: '',\n keyword: '',\n self: '',\n null: '',\n atom: '',\n unit: '',\n modifier: '',\n operatorKeyword: '',\n controlKeyword: '',\n definitionKeyword: '',\n moduleKeyword: '',\n operator: '',\n derefOperator: '',\n arithmeticOperator: '',\n logicOperator: '',\n bitwiseOperator: '',\n\n brace: '',\n angleBracket: '',\n\n compareOperator: '',\n updateOperator: '',\n definitionOperator: '',\n typeOperator: '',\n controlOperator: '',\n punctuation: '',\n separator: '',\n bracket: '',\n squareBracket: '',\n paren: '',\n content: '',\n heading: '',\n heading1: '',\n heading2: '',\n heading3: '',\n heading4: '',\n heading5: '',\n heading6: '',\n contentSeparator: '',\n list: '',\n quote: '',\n emphasis: '',\n strong: '',\n link: '',\n monospace: '',\n strikethrough: '',\n inserted: '',\n deleted: '',\n changed: '',\n invalid: '',\n meta: '',\n documentMeta: '',\n annotation: '',\n processingInstruction: '',\n};\n\nexport type ThmeCodeStyle = Style & CreateThemeOptions['settings'] & { dark: CreateThemeOptions['theme'] };\n\nexport const themeCode = (styles: Partial = {}) => {\n const data: string[] = [];\n if (styles.comment) data.push(`{ tag: t.comment, color: '${styles.comment}' },`);\n if (styles.lineComment) data.push(`{ tag: t.lineComment, color: '${styles.lineComment}' },`);\n if (styles.blockComment) data.push(`{ tag: t.blockComment, color: '${styles.blockComment}' },`);\n if (styles.docComment) data.push(`{ tag: t.docComment, color: '${styles.docComment}' },`);\n if (styles.name) data.push(`{ tag: t.name, color: '${styles.name}' },`);\n if (styles.typeDefinition) data.push(`{ tag: t.definition(t.typeName), color: '${styles.typeDefinition}' },`);\n if (styles.typeName) data.push(`{ tag: t.typeName, color: '${styles.typeName}' },`);\n if (styles.typeStandard) data.push(`{ tag: t.standard(t.typeName), color: '${styles.typeName}' },`);\n if (styles.tagName) data.push(`{ tag: t.tagName, color: '${styles.tagName}' },`);\n if (styles.tagNameStandard) data.push(`{ tag: t.standard(t.tagName), color: '${styles.tagNameStandard}' },`);\n if (styles.variableName) data.push(`{ tag: t.variableName, color: '${styles.variableName}' },`);\n if (styles.variableNameDefinition)\n data.push(`{ tag: t.definition(t.variableName), color: '${styles.variableNameDefinition}' },`);\n if (styles.variableNameFunction)\n data.push(`{ tag: t.function(t.variableName), color: '${styles.variableNameFunction}' },`);\n if (styles.propertyName) data.push(`{ tag: t.propertyName, color: '${styles.propertyName}' },`);\n if (styles.propertyNameFunction)\n data.push(`{ tag: t.function(t.propertyName), color: '${styles.propertyNameFunction}' },`);\n if (styles.propertyNameDefinition)\n data.push(`{ tag: t.definition(t.propertyName), color: '${styles.propertyNameDefinition}' },`);\n if (styles.propertyNameSpecial)\n data.push(`{ tag: t.special(t.propertyName), color: '${styles.propertyNameSpecial}' },`);\n if (styles.attributeName) data.push(`{ tag: t.attributeName, color: '${styles.attributeName}' },`);\n if (styles.className) data.push(`{ tag: t.className, color: '${styles.className}' },`);\n if (styles.classNameConstant) data.push(`{ tag: t.constant(t.className), color: '${styles.className}' },`);\n if (styles.labelName) data.push(`{ tag: t.labelName, color: '${styles.labelName}' },`);\n if (styles.namespace) data.push(`{ tag: t.namespace, color: '${styles.namespace}' },`);\n if (styles.macroName) data.push(`{ tag: t.macroName, color: '${styles.macroName}' },`);\n if (styles.literal) data.push(`{ tag: t.literal, color: '${styles.literal}' },`);\n if (styles.string) data.push(`{ tag: t.string, color: '${styles.string}' },`);\n if (styles.stringSpecial) data.push(`{ tag: t.special(t.string), color: '${styles.stringSpecial}' },`);\n if (styles.docString) data.push(`{ tag: t.docString, color: '${styles.docString}' },`);\n if (styles.character) data.push(`{ tag: t.character, color: '${styles.character}' },`);\n if (styles.attributeValue) data.push(`{ tag: t.attributeValue, color: '${styles.attributeValue}' },`);\n if (styles.number) data.push(`{ tag: t.number, color: '${styles.number}' },`);\n if (styles.integer) data.push(`{ tag: t.integer, color: '${styles.integer}' },`);\n if (styles.float) data.push(`{ tag: t.float, color: '${styles.float}' },`);\n if (styles.bool) data.push(`{ tag: t.bool, color: '${styles.bool}' },`);\n if (styles.regexp) data.push(`{ tag: t.regexp, color: '${styles.regexp}' },`);\n if (styles.escape) data.push(`{ tag: t.escape, color: '${styles.escape}' },`);\n if (styles.color) data.push(`{ tag: t.color, color: '${styles.color}' },`);\n if (styles.url) data.push(`{ tag: t.url, color: '${styles.url}' },`);\n if (styles.keyword) data.push(`{ tag: t.keyword, color: '${styles.keyword}' },`);\n if (styles.self) data.push(`{ tag: t.self, color: '${styles.self}' },`);\n if (styles.null) data.push(`{ tag: t.null, color: '${styles.null}' },`);\n if (styles.atom) data.push(`{ tag: t.atom, color: '${styles.atom}' },`);\n if (styles.unit) data.push(`{ tag: t.unit, color: '${styles.unit}' },`);\n if (styles.modifier) data.push(`{ tag: t.modifier, color: '${styles.modifier}' },`);\n if (styles.operatorKeyword) data.push(`{ tag: t.operatorKeyword, color: '${styles.operatorKeyword}' },`);\n if (styles.controlKeyword) data.push(`{ tag: t.controlKeyword, color: '${styles.controlKeyword}' },`);\n if (styles.definitionKeyword) data.push(`{ tag: t.definitionKeyword, color: '${styles.definitionKeyword}' },`);\n if (styles.moduleKeyword) data.push(`{ tag: t.moduleKeyword, color: '${styles.moduleKeyword}' },`);\n if (styles.operator) data.push(`{ tag: t.operator, color: '${styles.operator}' },`);\n if (styles.derefOperator) data.push(`{ tag: t.derefOperator, color: '${styles.derefOperator}' },`);\n if (styles.arithmeticOperator) data.push(`{ tag: t.arithmeticOperator, color: '${styles.arithmeticOperator}' },`);\n if (styles.logicOperator) data.push(`{ tag: t.logicOperator, color: '${styles.logicOperator}' },`);\n if (styles.logicOperator) data.push(`{ tag: t.bitwiseOperator, color: '${styles.logicOperator}' },`);\n if (styles.compareOperator) data.push(`{ tag: t.compareOperator, color: '${styles.compareOperator}' },`);\n if (styles.updateOperator) data.push(`{ tag: t.updateOperator, color: '${styles.updateOperator}' },`);\n if (styles.definitionOperator) data.push(`{ tag: t.definitionOperator, color: '${styles.definitionOperator}' },`);\n if (styles.typeOperator) data.push(`{ tag: t.typeOperator, color: '${styles.typeOperator}' },`);\n if (styles.controlOperator) data.push(`{ tag: t.controlOperator, color: '${styles.controlOperator}' },`);\n if (styles.punctuation) data.push(`{ tag: t.punctuation, color: '${styles.punctuation}' },`);\n if (styles.separator) data.push(`{ tag: t.separator, color: '${styles.separator}' },`);\n if (styles.bracket) data.push(`{ tag: t.bracket, color: '${styles.bracket}' },`);\n if (styles.angleBracket) data.push(`{ tag: t.angleBracket, color: '${styles.angleBracket}' },`);\n if (styles.squareBracket) data.push(`{ tag: t.squareBracket, color: '${styles.squareBracket}' },`);\n if (styles.paren) data.push(`{ tag: t.paren, color: '${styles.paren}' },`);\n if (styles.brace) data.push(`{ tag: t.brace, color: '${styles.brace}' },`);\n if (styles.content) data.push(`{ tag: t.content, color: '${styles.content}' },`);\n if (styles.heading) data.push(`{ tag: t.heading, color: '${styles.heading}' },`);\n if (styles.heading1) data.push(`{ tag: t.heading1, color: '${styles.heading1}' },`);\n if (styles.heading2) data.push(`{ tag: t.heading2, color: '${styles.heading2}' },`);\n if (styles.heading3) data.push(`{ tag: t.heading3, color: '${styles.heading3}' },`);\n if (styles.heading4) data.push(`{ tag: t.heading4, color: '${styles.heading4}' },`);\n if (styles.heading5) data.push(`{ tag: t.heading5, color: '${styles.heading5}' },`);\n if (styles.heading6) data.push(`{ tag: t.heading6, color: '${styles.heading6}' },`);\n if (styles.contentSeparator) data.push(`{ tag: t.contentSeparator, color: '${styles.contentSeparator}' },`);\n if (styles.list) data.push(`{ tag: t.list, color: '${styles.list}' },`);\n if (styles.quote) data.push(`{ tag: t.quote, color: '${styles.quote}' },`);\n if (styles.emphasis) data.push(`{ tag: t.emphasis, color: '${styles.emphasis}' },`);\n if (styles.strong) data.push(`{ tag: t.strong, color: '${styles.strong}' },`);\n if (styles.link) data.push(`{ tag: t.link, color: '${styles.link}' },`);\n if (styles.monospace) data.push(`{ tag: t.monospace, color: '${styles.monospace}' },`);\n if (styles.strikethrough) data.push(`{ tag: t.strikethrough, color: '${styles.strikethrough}' },`);\n if (styles.inserted) data.push(`{ tag: t.inserted, color: '${styles.inserted}' },`);\n if (styles.deleted) data.push(`{ tag: t.deleted, color: '${styles.deleted}' },`);\n if (styles.changed) data.push(`{ tag: t.changed, color: '${styles.changed}' },`);\n if (styles.invalid) data.push(`{ tag: t.invalid, color: '${styles.invalid}' },`);\n if (styles.meta) data.push(`{ tag: t.meta, color: '${styles.meta}' },`);\n if (styles.documentMeta) data.push(`{ tag: t.documentMeta, color: '${styles.documentMeta}' },`);\n if (styles.annotation) data.push(`{ tag: t.annotation, color: '${styles.annotation}' },`);\n if (styles.processingInstruction)\n data.push(`{ tag: t.processingInstruction, color: '${styles.processingInstruction}' },`);\n\n return `import CodeMirror from '@uiw/react-codemirror';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tags as t } from '@lezer/highlight';\n\nconst myTheme = createTheme({\n dark: '${styles.dark}',\n settings: {\n background: '${styles.background}',\n backgroundImage: '',\n foreground: '${styles.foreground}',\n caret: '${styles.caret}',\n selection: '${styles.selection}',\n selectionMatch: '${styles.selectionMatch}',\n gutterBackground: '${styles.gutterBackground}',\n gutterForeground: '${styles.gutterForeground}',\n gutterBorder: '${styles.gutterBorder}',\n gutterActiveForeground: '${styles.gutterActiveForeground}',\n lineHighlight: '${styles.lineHighlight}',\n },\n styles: [\n ${data.join('\\n ')}\n ],\n});\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;`;\n};\n","import { FC, PropsWithChildren } from 'react';\nimport styled, { css } from 'styled-components';\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\n\nexport interface ColorMenuProps\n extends React.DetailedHTMLProps, HTMLInputElement> {\n color?: string;\n}\n\nconst Warpper = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n`;\n\nconst Label = styled.div`\n /* font-weight: bold; */\n`;\n\nconst ColorWarpper = styled.div<{ color?: string }>`\n width: 16px;\n height: 16px;\n overflow: hidden;\n border: 1px solid var(--color-border-default);\n border-radius: 3px;\n position: relative;\n background-image: url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cpattern id='a' width='12' height='12' patternUnits='userSpaceOnUse'%3E%3Cpath fill='rgba(0, 0, 0, 0.06)' d='M0 0h8v8H0zm8 8h8v8H8z'/%3E%3C/pattern%3E%3Crect fill='url(%23a)' width='100%25' height='100%25'/%3E%3C/svg%3E\");\n &::before {\n content: ' ';\n display: block;\n position: absolute;\n left: 1px;\n right: 1px;\n top: 1px;\n bottom: 1px;\n border-radius: 2px;\n ${(props) =>\n props.color &&\n css`\n background-color: ${props.color};\n `}\n }\n input {\n position: relative;\n z-index: 3;\n border: 0;\n background-color: transparent;\n padding-left: 16px;\n height: 16px;\n }\n`;\n\nconst ColorPicker: FC, HTMLInputElement>> = ({\n children,\n onChange,\n ...props\n}) => {\n return (\n \n \n \n );\n};\n\nexport const ColorMenu: React.FC> = ({ color, children, ...other }) => {\n return (\n \n \n \n \n );\n};\n\ninterface SwitchThemeProps {\n theme?: CreateThemeOptions['theme'];\n onChange?: (theme: CreateThemeOptions['theme']) => void;\n}\n\nexport const SwitchTheme = ({ theme, onChange }: SwitchThemeProps) => {\n const handleChange = (event: React.ChangeEvent, theme: CreateThemeOptions['theme']) => {\n onChange && onChange(theme);\n };\n return (\n
\n \n \n
\n );\n};\n","import { FC, PropsWithoutRef, useEffect, useState } from 'react';\nimport styled from 'styled-components';\nimport { Extension } from '@codemirror/state';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { ThmeCodeStyle } from './themeCode';\nimport { themeCode } from './themeCode';\n\nexport const Select = styled.select`\n position: absolute;\n right: 10px;\n top: 10px;\n padding: 3px 6px;\n z-index: 9;\n`;\n\ninterface SampleCodeProps\n extends Omit, HTMLSelectElement>, 'onChange'> {\n styles?: ThmeCodeStyle;\n onChange?: (code: string, lang: string, extension?: Extension) => void;\n}\n\nconst data = Object.keys(langs);\n\nexport const SampleCode: FC> = ({ onChange, styles, ...props }) => {\n const [lang, setLang] = useState('code');\n const handleChange = (evn: React.ChangeEvent) => {\n const langStr = evn.target.value;\n setLang(langStr);\n if (langStr === 'code') {\n onChange && onChange(themeCode(styles), 'code', langs['jsx']());\n return;\n }\n try {\n import(`code-example/txt/sample.${langStr.toLocaleLowerCase()}.txt`)\n .then((data) => {\n const extension = langs[langStr as keyof typeof langs];\n onChange && onChange(data.default as string, langStr, extension ? extension() : undefined);\n })\n .catch((err) => {\n onChange && onChange('', '', undefined);\n });\n if (lang === 'html') {\n }\n } catch (error) {}\n };\n useEffect(() => {\n if (lang === 'code') {\n onChange && onChange(themeCode(styles), 'code', langs['jsx']());\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return (\n \n );\n};\n","import { Fragment, useState } from 'react';\nimport { Extension } from '@codemirror/state';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { color } from '@uiw/codemirror-extensions-color';\nimport styled from 'styled-components';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport '@wcj/dark-mode';\nimport createTheme, { CreateThemeOptions } from '@uiw/codemirror-themes';\nimport { tags as t } from '@lezer/highlight';\nimport { TagStyle } from '@codemirror/language';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { defalutStyle } from './themeCode';\nimport { ColorMenu, SwitchTheme } from './ColorMenu';\nimport { SampleCode, Select } from './SampleCode';\nimport { themeCode } from './themeCode';\nimport { Sample } from '../themes/Sample';\n\nexport const Sider = styled.div`\n width: 220px;\n min-width: 220px;\n overflow: auto;\n height: calc(100vh - 42px);\n padding: 18px 16px 120px 16px;\n border-right: 1px solid var(--color-border-default);\n display: flex;\n flex-direction: column;\n gap: 5px;\n`;\n\nconst EditorView = styled.div`\n height: 100%;\n width: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n height: calc(100vh - 42px);\n position: relative;\n`;\n\nconst SubTitle = styled.div`\n color: var(--color-fg-subtle);\n font-size: 12px;\n padding: 0 0;\n`;\n\nfunction getStyle(color?: string, tagStyle?: TagStyle) {\n if (color && tagStyle) {\n tagStyle.color = color;\n return [tagStyle];\n }\n return [];\n}\n\nexport type Style = Partial<\n Record, string>\n> & {\n typeDefinition?: string;\n typeStandard?: string;\n variableNameDefinition: string;\n variableNameFunction: string;\n propertyNameDefinition: string;\n propertyNameFunction: string;\n propertyNameSpecial: string;\n classNameConstant: string;\n stringSpecial: string;\n tagNameStandard: string;\n};\n\nexport function ThemeEditor() {\n const navigate = useNavigate();\n const { type = 'multiple' } = useParams();\n const [extension, setExtension] = useState(javascript({ jsx: true }));\n const [code, setCode] = useState('');\n const [lang, setLang] = useState('jsx');\n const [theme, setTheme] = useState('light');\n const [settings, setSettings] = useState({\n background: '#ffffff',\n foreground: '#4D4D4C',\n caret: '#AEAFAD',\n selection: '#D6D6D6',\n selectionMatch: '#D6D6D6',\n gutterBackground: '#FFFFFF',\n gutterForeground: '#4D4D4C',\n gutterBorder: '#dddddd',\n gutterActiveForeground: '',\n lineHighlight: '#EFEFEF',\n });\n\n const [styles, setStyles] = useState\n\n';class d extends HTMLElement{static get observedAttributes(){return["style","z-index","target","height","width","href","color","fill","position","top","left","right","bottom","transform"]}constructor(){super(),this.right="0",this.shadow=this.attachShadow({mode:"open"}),this.shadow.appendChild(this.ownerDocument.importNode(m.content,!0)),this.update()}setAttr(e,t){const r=this.shadow.querySelector("svg");/(href)/.test(e.toLocaleLowerCase())?r.lastElementChild.setAttribute("xlink:href",t):/(color|fill)/.test(e.toLocaleLowerCase())?r.firstElementChild.style[e]=t:/(z-index|position|top|left|right|bottom|transform)/.test(e.toLocaleLowerCase())?r.style[e]=t:r.setAttribute(e,t)}update(){[...this.getAttributeNames(),"right"].forEach((e=>{const t=this.getAttribute(e)||this[e]||"";this.setAttr(e,t)}))}attributeChangedCallback(e,t,r){t!==r&&this.setAttr(e,r)}}customElements.define("github-corners",d);var l=r(98557),h=["size","fixed","bottom","zIndex","className","style","bgColor","color","position"];function p(e){var{size:t=80,fixed:r=!1,bottom:o,zIndex:i,style:n,bgColor:s="#151513",color:m="#fff",position:d="right"}=e,p=(0,c.A)(e,h),u="left"===d?{left:0,right:"initial",transform:"scale(-1, 1)"}:{right:0,left:"initial",transform:"scale(1, 1)"};return o?(u.bottom=0,u.top="initial",u.transform="left"===d?"scale(-1, -1)":"scale(1, -1)"):(u.bottom="initial",u.top=0),(0,l.jsx)("github-corners",(0,a.A)({target:"__blank",width:t,height:t,href:e.href,position:r?"fixed":"absolute","z-index":i,style:n,fill:s,color:m},u,p))}var u=r(93193),g=r(64561),w=["type","platform","base","property","user","repo","label"],v=i.forwardRef(((e,t)=>{var{type:r="issues",platform:o="github",base:i="https://img.shields.io",property:n,user:s,repo:m,label:d}=e,h=(0,c.A)(e,w);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:"github"!==o?"":"issues"===r||/^issues-(raw|closed|closed-raw|pr|pr-raw|pr-closed|pr-closed-raw)/.test(r)?d&&("issues"===r||/^issues-(raw|pr|pr-raw)/.test(r||""))?[i,o,r,s,m,d].join("/"):[i,o,r,s,m].join("/"):"issueKind"===r?[i,o,r,"detail",n,s,m].join("/"):"",ref:t},h))}));v.displayName="Issues";var x=["type","platform","base","user","repo","path"],b=i.forwardRef(((e,t)=>{var{type:r="languages",platform:o="github",base:i="https://img.shields.io",user:n,repo:s,path:m}=e,d=(0,c.A)(e,x);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:"github"!==o?"":"languages"===r?[i,o,r,"code-size",n,s].join("/"):"repo-size"===r?[i,o,r,n,s].join("/"):"size"===r&&m?[i,o,r,n,s,m].join("/"):"",ref:t},d))}));b.displayName="Size";var f=["platform","type","base","user","repo"],j=i.forwardRef(((e,t)=>{var{platform:r="github",type:o="license",base:i="https://img.shields.io",user:n,repo:s}=e,m=(0,c.A)(e,f);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:"github"!==r?"":[i,r,o,n,s].join("/"),ref:t},m))}));j.displayName="License";var k=["platform","type","base","user","repo","tag","path","total"],y=i.forwardRef(((e,t)=>{var{platform:r="github",type:o="downloads",base:i="https://img.shields.io",user:n,repo:s,tag:m,path:d,total:h=!0}=e,p=(0,c.A)(e,k);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:(()=>{if("github"!==r||!/^(downloads|downloads-pre)/.test(o||""))return"";var e=[i,r,o,n,s];return d&&m?[...e,m,d].join("/"):h&&m||"downloads-pre"===o&&m&&h?[...e,m,"total"].join("/"):h?[...e,"total"].join("/"):""})(),ref:t},p))}));y.displayName="Downloads";const C=y;var S=["platform","base","type","user","repo","interval","variant","version","branch"],M=i.forwardRef(((e,t)=>{var{platform:r="github",base:o="https://img.shields.io",type:i="commits-since",user:n,repo:s,interval:m,variant:d,version:h,branch:p}=e,u=(0,c.A)(e,S);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:"github"!==r?"":"commits-since"===i&&h&&p?[o,r,i,n,s,h,p].join("/"):"commit-activity"===i&&m?[o,r,i,m,n,s].join("/"):"variant"===i&&d?[o,r,i,d,n,s].join("/"):"last-commit"===i?p?[o,r,i,n,s,p].join("/"):[o,r,i,n,s].join("/"):i&&/^release-(date|date-pre)/.test(i)?[o,r,i,n,s].join("/"):"",ref:t},u))}));M.displayName="Activity";const A=M;var N=["platform","type","base","user","repo","branch"];const D=i.forwardRef(((e,t)=>{var{platform:r="github",type:o="version-release",base:i="https://img.shields.io",user:n,repo:s,branch:m}=e,d=(0,c.A)(e,N);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:(()=>{var e="";switch(o){case"version-release":e="v/release";break;case"version-tag":e="v/tag";break;case"package-json":e="package-json/v";break;case"manifest-json":e="manifest-json/v";break;case"go-mod":e="go-mod/go-version"}if("github"!==r||!e)return"";var t=[i,r,e,n,s];return/(go-mod|manifest-json|package-json)/.test(o||"")&&m?[...t,m].join("/"):t.join("/")})(),ref:t},d))}));var E=["platform","type","base","user","repo","query"],O=i.forwardRef(((e,t)=>{var{platform:r="github",type:o="languages-count",base:i="https://img.shields.io",user:n,repo:s,query:m}=e,d=(0,c.A)(e,E);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:(()=>{var e="";switch(o){case"languages-count":e="languages/count";break;case"languages-top":e="languages/top";break;case"search":e="search"}if("github"!==r||!e)return"";var t=[i,r,e,n,s];return m?[...t,m].join("/"):t.join("/")})(),ref:t},d))}));O.displayName="Analysis";const P=O;var z=["type","platform","base","user","repo"],R=i.forwardRef(((e,t)=>{var{type:r="followers",platform:o="github",base:i="https://img.shields.io",user:n,repo:s}=e,m=(0,c.A)(e,z);return(0,l.jsx)(g.I,(0,a.A)({imgSrc:"github"!==o?"":"followers"===r?[i,o,r,n].join("/"):[i,o,r,n,s].join("/"),ref:t},m))}));R.displayName="Social";const L=R;var T=e=>(0,l.jsx)(u.A,(0,a.A)({},e));T.Issues=v,T.Size=b,T.Downloads=C,T.License=j,T.Activity=A,T.Analysis=P,T.Version=D,T.Social=L,T.displayName="Github";const _=T;var K=r(55333),I=r(35765),J=r(23409),V=r(79130),q=r(88118);const H={components:{101:function(){var e=i(r(80905)),t=i(r(73562)),o=r(19803);function i(e){return e&&e.__esModule?e:{default:e}}function n(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var o,i,n,s,a=[],c=!0,m=!1;try{if(n=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(o=n.call(r)).done)&&(a.push(o.value),a.length!==t);c=!0);}catch(e){m=!0,i=e}finally{try{if(!c&&null!=r.return&&(s=r.return(),Object(s)!==s))return}finally{if(m)throw i}}return a}}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return s(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return s(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,o=new Array(t);r arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction App() {\n var _React$useState = _react["default"].useState("console.log(\'hello world!\');"),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var onChange = _react["default"].useCallback(function (val, viewUpdate) {\n console.log(\'val:\', val);\n setValue(val);\n }, []);\n return /*#__PURE__*/_react["default"].createElement(_reactCodemirror["default"], {\n value: value,\n height: "200px",\n extensions: [(0, _langJavascript.javascript)({\n jsx: true\n })],\n onChange: onChange\n });\n}\nreturn App;',language:"jsx",value:"import React from 'react';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n const [value, setValue] = React.useState(\"console.log('hello world!');\");\n const onChange = React.useCallback((val, viewUpdate) => {\n console.log('val:', val);\n setValue(val);\n }, []);\n return ;\n}\nexport default App;"}},source:"

\n \n \"react-codemirror\n \n

\n\n# react-codemirror\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror)\n[![Build & Deploy](https://github.com/uiwjs/react-codemirror/actions/workflows/ci.yml/badge.svg)](https://github.com/uiwjs/react-codemirror/actions)\n[![Open in unpkg](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-codemirror/file/README.md)\n[![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror)\n[![Coverage Status](https://uiwjs.github.io/react-codemirror/coverage/badges.svg)](https://uiwjs.github.io/react-codemirror/coverage/lcov-report/)\n[![Open in Gitpod](https://shields.io/badge/Open%20in-Gitpod-green?logo=Gitpod)](https://gitpod.io/#https://github.com/uiwjs/react-codemirror)\n\nCodeMirror component for React. Demo Preview: [@uiwjs.github.io/react-codemirror](https://uiwjs.github.io/react-codemirror/)\n\n\x3c!--rehype:style=border-left: 8px solid #ffe564;background-color: #ffe56440;padding: 12px 16px;--\x3e\n\n**Features:**\n\n\ud83d\ude80 Quickly and easily configure the API. \n\ud83c\udf31 Versions after `@uiw/react-codemirror@v4`\x3c!--rehype:style=background-color: #ffe564; padding: 1px 4px;--\x3e use [codemirror 6](https://codemirror.net/). [#88](https://github.com/uiwjs/react-codemirror/issues/88#issuecomment-914185563). \n\u269b\ufe0f Support the features of React Hook(requires React 16.8+). \n\ud83d\udcda Use Typescript to write, better code hints. \n\ud83c\udf10 The bundled version supports use directly in the browser [#267](https://github.com/uiwjs/react-codemirror/issues/267#issuecomment-1041227592). \n\ud83c\udf0e There are better [sample previews](https://uiwjs.github.io/react-codemirror). \n\ud83c\udfa8 Support [theme](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) customization, provide theme [editor](https://uiwjs.github.io/react-codemirror/#/editor/theme).\n\n## Install\n\n**Not dependent on uiw.**\n\n```bash\nnpm install @uiw/react-codemirror --save\n```\n\n**All Packages**\n\n| Name | NPM Version |\n| :-------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [`@uiw/react-codemirror`](https://uiwjs.github.io/react-codemirror) | [![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror) |\n| [`react-codemirror-merge`](https://uiwjs.github.io/react-codemirror/#/merge/document) | [![npm version](https://img.shields.io/npm/v/react-codemirror-merge.svg)](https://www.npmjs.com/package/react-codemirror-merge) [![NPM Downloads](https://img.shields.io/npm/dm/react-codemirror-merge.svg?style=flat)](https://www.npmjs.com/package/react-codemirror-merge) |\n| [`@uiw/codemirror-extensions-basic-setup`](https://uiwjs.github.io/react-codemirror/#/extensions/basic-setup) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-basic-setup.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-basic-setup.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) |\n| [`@uiw/codemirror-extensions-color`](https://uiwjs.github.io/react-codemirror/#/extensions/color) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-color.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-color.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) |\n| [`@uiw/codemirror-extensions-classname`](https://uiwjs.github.io/react-codemirror/#/extensions/classname) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-classname.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-classname.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) |\n| [`@uiw/codemirror-extensions-events`](https://uiwjs.github.io/react-codemirror/#/extensions/events) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-events.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-events.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) |\n| [`@uiw/codemirror-extensions-hyper-link`](https://uiwjs.github.io/react-codemirror/#/extensions/hyper-link) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-hyper-link.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-hyper-link.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) |\n| [`@uiw/codemirror-extensions-langs`](https://uiwjs.github.io/react-codemirror/#/extensions/languages) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-langs.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-langs.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) |\n| [`@uiw/codemirror-extensions-line-numbers-relative`](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-line-numbers-relative.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) |\n| [`@uiw/codemirror-extensions-mentions`](https://uiwjs.github.io/react-codemirror/#/extensions/mentions) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-mentions.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-mentions.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) |\n| [`@uiw/codemirror-extensions-zebra-stripes`](https://uiwjs.github.io/react-codemirror/#/extensions/zebra-stripes) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-zebra-stripes.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-zebra-stripes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) |\n| [`@uiw/codemirror-themes`](https://uiwjs.github.io/react-codemirror/#/theme/doc) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes) |\n\n| Name | NPM Version |\n| :----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| [`@uiw/codemirror-themes-all`](https://uiwjs.github.io/react-codemirror/#/theme/all) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes-all.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes-all.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) |\n| [`@uiw/codemirror-theme-abcdef`](https://uiwjs.github.io/react-codemirror/#/theme/data/abcdef) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abcdef.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-abcdef.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) |\n| [`@uiw/codemirror-theme-abyss`](https://uiwjs.github.io/react-codemirror/#/theme/data/abyss) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-abyss.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss) |\n| [`@uiw/codemirror-theme-androidstudio`](https://uiwjs.github.io/react-codemirror/#/theme/data/androidstudio) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-androidstudio.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-androidstudio.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) |\n| [`@uiw/codemirror-theme-andromeda`](https://uiwjs.github.io/react-codemirror/#/theme/data/andromeda) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-andromeda.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-andromeda.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda) |\n| [`@uiw/codemirror-theme-atomone`](https://uiwjs.github.io/react-codemirror/#/theme/data/atomone) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-atomone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-atomone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) |\n| [`@uiw/codemirror-theme-aura`](https://uiwjs.github.io/react-codemirror/#/theme/data/aura) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-aura.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-aura.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) |\n| [`@uiw/codemirror-theme-basic`](https://uiwjs.github.io/react-codemirror/#/theme/data/bbedit) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-basic.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-basic.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic) |\n| [`@uiw/codemirror-theme-bbedit`](https://uiwjs.github.io/react-codemirror/#/theme/data/bbedit) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bbedit.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bbedit.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) |\n| [`@uiw/codemirror-theme-bespin`](https://uiwjs.github.io/react-codemirror/#/theme/data/bespin) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bespin.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bespin.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) |\n| [`@uiw/codemirror-theme-console`](https://uiwjs.github.io/react-codemirror/#/theme/data/console) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-console.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-console) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-console.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-console) |\n| [`@uiw/codemirror-theme-copilot`](https://uiwjs.github.io/react-codemirror/#/theme/data/copilot) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-copilot.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-copilot.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot) |\n| [`@uiw/codemirror-theme-duotone`](https://uiwjs.github.io/react-codemirror/#/theme/data/duotone/light) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-duotone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-duotone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) |\n| [`@uiw/codemirror-theme-dracula`](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-dracula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-dracula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) |\n| [`@uiw/codemirror-theme-darcula`](https://uiwjs.github.io/react-codemirror/#/theme/data/darcula) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-darcula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-darcula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) |\n| [`@uiw/codemirror-theme-eclipse`](https://uiwjs.github.io/react-codemirror/#/theme/data/eclipse) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-eclipse.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-eclipse.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) |\n| [`@uiw/codemirror-theme-github`](https://uiwjs.github.io/react-codemirror/#/theme/data/github) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-github.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) |\n| [`@uiw/codemirror-theme-gruvbox-dark`](https://uiwjs.github.io/react-codemirror/#/theme/data/gruvbox/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-gruvbox-dark.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) |\n| [`@uiw/codemirror-theme-kimbie`](https://uiwjs.github.io/react-codemirror/#/theme/data/kimbie/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-kimbie.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) |\n| [`@uiw/codemirror-theme-kimbie`](https://uiwjs.github.io/react-codemirror/#/theme/data/kimbie/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-kimbie.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) |\n| [`@uiw/codemirror-theme-material`](https://uiwjs.github.io/react-codemirror/#/theme/data/material/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-material.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) |\n| [`@uiw/codemirror-theme-monokai`](https://uiwjs.github.io/react-codemirror/#/theme/data/monokai) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-monokai.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai) |\n| [`@uiw/codemirror-theme-noctis-lilac`](https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-noctis-lilac.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) |\n| [`@uiw/codemirror-theme-nord`](https://uiwjs.github.io/react-codemirror/#/theme/data/nord) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-nord.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) |\n| [`@uiw/codemirror-theme-okaidia`](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-okaidia.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-okaidia.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) |\n| [`@uiw/codemirror-theme-quietlight`](https://uiwjs.github.io/react-codemirror/#/theme/data/quietlight) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-quietlight.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-quietlight.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight) |\n| [`@uiw/codemirror-theme-red`](https://uiwjs.github.io/react-codemirror/#/theme/data/red) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-red.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-red) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-red.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-red) |\n| [`@uiw/codemirror-theme-solarized`](https://uiwjs.github.io/react-codemirror/#/theme/data/solarized/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-solarized.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) |\n| [`@uiw/codemirror-theme-sublime`](https://uiwjs.github.io/react-codemirror/#/theme/data/sublime) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-sublime.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-sublime.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) |\n| [`@uiw/codemirror-theme-tokyo-night`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) |\n| [`@uiw/codemirror-theme-tokyo-night-storm`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-storm) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-storm.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-storm.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) |\n| [`@uiw/codemirror-theme-tokyo-night-day`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-day) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-day.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-day.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) |\n| [`@uiw/codemirror-theme-vscode`](https://uiwjs.github.io/react-codemirror/#/theme/data/vscode) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-vscode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-vscode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) |\n| [`@uiw/codemirror-theme-white`](https://uiwjs.github.io/react-codemirror/#/theme/data/white/light) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-white.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-white) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-white.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-white) |\n| [`@uiw/codemirror-theme-tomorrow-night-blue`](https://uiwjs.github.io/react-codemirror/#/theme/data/tomorrow-night-blue) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tomorrow-night-blue.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tomorrow-night-blue.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue) |\n| [`@uiw/codemirror-theme-xcode`](https://uiwjs.github.io/react-codemirror/#/theme/data/xcode) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-xcode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-xcode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) |\n\n\x3c!--rehype:style=width: 100%; display: inline-table;--\x3e\n\n## Usage\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-slvju?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx mdx:preview\nimport React from 'react';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n const [value, setValue] = React.useState(\"console.log('hello world!');\");\n const onChange = React.useCallback((val, viewUpdate) => {\n console.log('val:', val);\n setValue(val);\n }, []);\n return ;\n}\nexport default App;\n```\n\n## Support Language\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage } from '@codemirror/language';\nimport { go } from '@codemirror/legacy-modes/mode/go';\n\nconst goLang = `package main\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, \u4e16\u754c\")\n}`;\n\nexport default function App() {\n return ;\n}\n```\n\n- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)\n- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)\n- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)\n- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)\n- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)\n- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)\n- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)\n- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)\n- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)\n- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)\n- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)\n- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)\n- ~~`@codemirror/legacy-modes/mode/css`~~ => [`@codemirror/lang-less`](https://www.npmjs.com/package/@codemirror/lang-less)\n- ~~`@codemirror/legacy-modes/mode/sass`~~ => [`@codemirror/lang-sass`](https://www.npmjs.com/package/@codemirror/lang-sass)\n- ~~`@codemirror/legacy-modes/mode/clojure`~~ => [`@nextjournal/lang-clojure`](https://www.npmjs.com/package/@nextjournal/lang-clojure)\n- ~~`@codemirror/legacy-modes/mode/clike`~~ => [`@replit/codemirror-lang-csharp`](https://www.npmjs.com/package/@replit/codemirror-lang-csharp)\n\n### Markdown Example\n\nMarkdown language code is automatically highlighted.\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-markdown-auto-languages-iudnj?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\nimport { languages } from '@codemirror/language-data';\n\nconst code = `## Title\n\n\\`\\`\\`jsx\nfunction Demo() {\n return
demo
\n}\n\\`\\`\\`\n\n\\`\\`\\`bash\n# Not dependent on uiw.\nnpm install @codemirror/lang-markdown --save\nnpm install @codemirror/language-data --save\n\\`\\`\\`\n\n[weisit ulr](https://uiwjs.github.io/react-codemirror/)\n\n\\`\\`\\`go\npackage main\nimport \"fmt\"\nfunc main() {\n fmt.Println(\"Hello, \u4e16\u754c\")\n}\n\\`\\`\\`\n`;\n\nexport default function App() {\n return ;\n}\n```\n\n## Codemirror Merge\n\nA component that highlights the changes between two versions of a file in a side-by-side view, highlighting added, modified, or deleted lines of code.\n\n```bash\nnpm install react-codemirror-merge --save\n```\n\n```jsx\nimport CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport const Example = () => {\n return (\n \n \n \n \n );\n};\n```\n\n## Support Hook\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-hook-yr4vg?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport { useEffect, useMemo, useRef } from 'react';\nimport { useCodeMirror } from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\n\nconst code = \"console.log('hello world!');\\n\\n\\n\";\n// Define the extensions outside the component for the best performance.\n// If you need dynamic extensions, use React.useMemo to minimize reference changes\n// which cause costly re-renders.\nconst extensions = [javascript()];\n\nexport default function App() {\n const editor = useRef();\n const { setContainer } = useCodeMirror({\n container: editor.current,\n extensions,\n value: code,\n });\n\n useEffect(() => {\n if (editor.current) {\n setContainer(editor.current);\n }\n }, [editor.current]);\n\n return
;\n}\n```\n\n## Using Theme\n\nWe have created a [`theme editor`](https://uiwjs.github.io/react-codemirror/#/editor/theme) where you can define your own theme. We have also defined [some themes](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) ourselves, which can be installed and used directly. Below is a usage example:\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { okaidia } from '@uiw/codemirror-theme-okaidia';\n\nconst extensions = [javascript({ jsx: true })];\n\nexport default function App() {\n return (\n \n );\n}\n```\n\n## Using custom theme\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tags as t } from '@lezer/highlight';\n\nconst myTheme = createTheme({\n theme: 'light',\n settings: {\n background: '#ffffff',\n backgroundImage: '',\n foreground: '#75baff',\n caret: '#5d00ff',\n selection: '#036dd626',\n selectionMatch: '#036dd626',\n lineHighlight: '#8a91991a',\n gutterBackground: '#fff',\n gutterForeground: '#8a919966',\n },\n styles: [\n { tag: t.comment, color: '#787b8099' },\n { tag: t.variableName, color: '#0080ff' },\n { tag: [t.string, t.special(t.brace)], color: '#5c6166' },\n { tag: t.number, color: '#5c6166' },\n { tag: t.bool, color: '#5c6166' },\n { tag: t.null, color: '#5c6166' },\n { tag: t.keyword, color: '#5c6166' },\n { tag: t.operator, color: '#5c6166' },\n { tag: t.className, color: '#5c6166' },\n { tag: t.definition(t.typeName), color: '#5c6166' },\n { tag: t.typeName, color: '#5c6166' },\n { tag: t.angleBracket, color: '#5c6166' },\n { tag: t.tagName, color: '#5c6166' },\n { tag: t.attributeName, color: '#5c6166' },\n ],\n});\nconst extensions = [javascript({ jsx: true })];\n\nexport default function App() {\n const onChange = React.useCallback((value, viewUpdate) => {\n console.log('value:', value);\n }, []);\n return (\n \n );\n}\n```\n\n## Use `initialState` to restore state from JSON-serialized representation\n\nCodeMirror allows to serialize editor state to JSON representation with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function for persistency or other needs. This JSON representation can be later used to recreate ReactCodeMirror component with the same internal state.\n\nFor example, this is how undo history can be saved in the local storage, so that it remains after the page reloads\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { historyField } from '@codemirror/commands';\n\n// When custom fields should be serialized, you can pass them in as an object mapping property names to fields.\n// See [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) documentation for more details\nconst stateFields = { history: historyField };\n\nexport function EditorWithInitialState() {\n const serializedState = localStorage.getItem('myEditorState');\n const value = localStorage.getItem('myValue') || '';\n\n return (\n {\n localStorage.setItem('myValue', value);\n\n const state = viewUpdate.state.toJSON(stateFields);\n localStorage.setItem('myEditorState', JSON.stringify(state));\n }}\n />\n );\n}\n```\n\n## Props\n\n\x3c!--rehype:style=background-color: #ffe564; display: inline-block; border-bottom: 0; padding: 3px 12px;--\x3e\n\n- `value?: string` value of the auto created model in the editor.\n- `width?: string` width of editor. Defaults to `auto`.\n- `height?: string` height of editor. Defaults to `auto`.\n- `theme?`: `'light'` / `'dark'` / `Extension` Defaults to `'light'`.\n\n```ts\nimport React from 'react';\nimport { EditorState, EditorStateConfig, Extension } from '@codemirror/state';\nimport { EditorView, ViewUpdate } from '@codemirror/view';\nexport * from '@codemirror/view';\nexport * from '@codemirror/basic-setup';\nexport * from '@codemirror/state';\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\n container?: HTMLDivElement | null;\n}\nexport declare function useCodeMirror(props: UseCodeMirror): {\n state: EditorState | undefined;\n setState: import('react').Dispatch>;\n view: EditorView | undefined;\n setView: import('react').Dispatch>;\n container: HTMLDivElement | null | undefined;\n setContainer: import('react').Dispatch>;\n};\nexport interface ReactCodeMirrorProps\n extends Omit,\n Omit, 'onChange' | 'placeholder'> {\n /** value of the auto created model in the editor. */\n value?: string;\n height?: string;\n minHeight?: string;\n maxHeight?: string;\n width?: string;\n minWidth?: string;\n maxWidth?: string;\n /** focus on the editor. */\n autoFocus?: boolean;\n /** Enables a placeholder\u2014a piece of example content to show when the editor is empty. */\n placeholder?: string | HTMLElement;\n /**\n * `light` / `dark` / `Extension` Defaults to `light`.\n * @default light\n */\n theme?: 'light' | 'dark' | Extension;\n /**\n * Whether to optional basicSetup by default\n * @default true\n */\n basicSetup?: boolean | BasicSetupOptions;\n /**\n * This disables editing of the editor content by the user.\n * @default true\n */\n editable?: boolean;\n /**\n * This disables editing of the editor content by the user.\n * @default false\n */\n readOnly?: boolean;\n /**\n * Controls whether pressing the `Tab` key inserts a tab character and indents the text (`true`)\n * or behaves according to the browser's default behavior (`false`).\n * @default true\n */\n indentWithTab?: boolean;\n /** Fired whenever a change occurs to the document. */\n onChange?(value: string, viewUpdate: ViewUpdate): void;\n /** Some data on the statistics editor. */\n onStatistics?(data: Statistics): void;\n /** The first time the editor executes the event. */\n onCreateEditor?(view: EditorView, state: EditorState): void;\n /** Fired whenever any state change occurs within the editor, including non-document changes like lint results. */\n onUpdate?(viewUpdate: ViewUpdate): void;\n /**\n * Extension values can be [provided](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions) when creating a state to attach various kinds of configuration and behavior information.\n * They can either be built-in extension-providing objects,\n * such as [state fields](https://codemirror.net/6/docs/ref/#state.StateField) or [facet providers](https://codemirror.net/6/docs/ref/#state.Facet.of),\n * or objects with an extension in its `extension` property. Extensions can be nested in arrays arbitrarily deep\u2014they will be flattened when processed.\n */\n extensions?: Extension[];\n /**\n * If the view is going to be mounted in a shadow root or document other than the one held by the global variable document (the default), you should pass it here.\n * Originally from the [config of EditorView](https://codemirror.net/6/docs/ref/#view.EditorView.constructor%5Econfig.root)\n */\n root?: ShadowRoot | Document;\n /**\n * Create a state from its JSON representation serialized with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function\n */\n initialState?: {\n json: any;\n fields?: Record<'string', StateField>;\n };\n}\nexport interface ReactCodeMirrorRef {\n editor?: HTMLDivElement | null;\n state?: EditorState;\n view?: EditorView;\n}\ndeclare const ReactCodeMirror: React.ForwardRefExoticComponent<\n ReactCodeMirrorProps & React.RefAttributes\n>;\nexport default ReactCodeMirror;\nexport interface BasicSetupOptions {\n lineNumbers?: boolean;\n highlightActiveLineGutter?: boolean;\n highlightSpecialChars?: boolean;\n history?: boolean;\n foldGutter?: boolean;\n drawSelection?: boolean;\n dropCursor?: boolean;\n allowMultipleSelections?: boolean;\n indentOnInput?: boolean;\n syntaxHighlighting?: boolean;\n bracketMatching?: boolean;\n closeBrackets?: boolean;\n autocompletion?: boolean;\n rectangularSelection?: boolean;\n crosshairCursor?: boolean;\n highlightActiveLine?: boolean;\n highlightSelectionMatches?: boolean;\n closeBracketsKeymap?: boolean;\n defaultKeymap?: boolean;\n searchKeymap?: boolean;\n historyKeymap?: boolean;\n foldKeymap?: boolean;\n completionKeymap?: boolean;\n lintKeymap?: boolean;\n}\n```\n\n```ts\nimport { EditorSelection, SelectionRange } from '@codemirror/state';\nimport { ViewUpdate } from '@codemirror/view';\nexport interface Statistics {\n /** Get the number of lines in the editor. */\n lineCount: number;\n /** total length of the document */\n length: number;\n /** Get the proper [line-break](https://codemirror.net/docs/ref/#state.EditorState^lineSeparator) string for this state. */\n lineBreak: string;\n /** Returns true when the editor is [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only. */\n readOnly: boolean;\n /** The size (in columns) of a tab in the document, determined by the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet. */\n tabSize: number;\n /** Cursor Position */\n selection: EditorSelection;\n /** Make sure the selection only has one range. */\n selectionAsSingle: SelectionRange;\n /** Retrieves a list of all current selections. */\n ranges: readonly SelectionRange[];\n /** Get the currently selected code. */\n selectionCode: string;\n /**\n * The length of the given array should be the same as the number of active selections.\n * Replaces the content of the selections with the strings in the array.\n */\n selections: string[];\n /** Return true if any text is selected. */\n selectedText: boolean;\n}\nexport declare const getStatistics: (view: ViewUpdate) => Statistics;\n```\n\n## Development\n\n1. Install dependencies\n\n```bash\n$ npm install # Installation dependencies\n$ npm run build # Compile all package\n```\n\n2. Development `@uiw/react-codemirror` package:\n\n```bash\n$ cd core\n# listen to the component compile and output the .js file\n# listen for compilation output type .d.ts file\n$ npm run watch # Monitor the compiled package `@uiw/react-codemirror`\n```\n\n3. Launch documentation site\n\n```bash\nnpm run start\n```\n\n## Related\n\n- [@uiw/react-textarea-code-editor](https://github.com/uiwjs/react-textarea-code-editor): A simple code editor with syntax highlighting.\n- [@uiw/react-md-editor](https://github.com/uiwjs/react-md-editor): A simple markdown editor with preview, implemented with React.js and TypeScript.\n- [@uiw/react-monacoeditor](https://github.com/jaywcjlove/react-monacoeditor): Monaco Editor component for React.\n- [@uiw/react-markdown-editor](https://github.com/uiwjs/react-markdown-editor): A markdown editor with preview, implemented with React.js and TypeScript.\n- [@uiw/react-markdown-preview](https://github.com/uiwjs/react-markdown-preview): React component preview markdown text in web browser.\n- [Online JSON Viewer](https://github.com/uiwjs/json-viewer) Online JSON Viewer, JSON Beautifier to beautify and tree view of JSON data - It works as JSON Pretty Print to pretty print JSON data.\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]};var U=r(73562),B=r(13529),G=r(69332);const F=e=>{let{label:t="",value:r,options:o=[],onChange:i}=e;return(0,l.jsxs)("label",{children:[t&&(0,l.jsxs)("span",{children:[t,"\uff1a"]}),(0,l.jsx)("select",{value:r,onChange:i,children:o.map(((e,t)=>{const o={};return r===e&&(o.value=e),(0,l.jsx)("option",{...o,children:e},t)}))})]})};var W,$,Z,Q,X=r(9749),Y=r(94458);const ee=["dark","light"].concat(Object.keys(B)).filter((e=>"function"!==typeof B[e])).filter((e=>!/^(defaultSettings)/.test(e))),te=["auto","200px","300px","500px"];let re=0;const oe=s.Ay.div(W||(W=(0,o.A)(["\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n padding: 16px;\n border-radius: 5px;\n"]))),ie=s.Ay.div($||($=(0,o.A)(["\n margin: 0 auto;\n max-width: 995px;\n padding: 15px 0 0 0;\n > label {\n margin-right: 15px;\n }\n"]))),ne=s.Ay.div(Z||(Z=(0,o.A)(["\n box-shadow:\n 0 0 0 1px rgb(16 22 26 / 10%),\n 0 0 0 rgb(16 22 26 / 0%),\n 0 1px 1px rgb(16 22 26 / 20%);\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n border-radius: 5px;\n margin-top: -30px;\n z-index: 10;\n position: relative;\n"]))),se=s.Ay.div(Q||(Q=(0,o.A)(["\n padding-bottom: 18px;\n"])));function ae(){const[e,t]=(0,i.useState)("javascript"),[o,n]=(0,i.useState)("Please enter the code."),[s,a]=(0,i.useState)(!1),[c,m]=(0,i.useState)(!0),{theme:d,setTheme:h}=(0,Y.D)(),[p,u]=(0,i.useState)(""),[g,w]=(0,i.useState)(),[v,x]=(0,i.useState)("500px"),[b,f]=(0,i.useState)({crosshairCursor:!1});function j(e){try{r(39126)("./sample.".concat(e.toLocaleLowerCase(),".txt")).then((r=>{u(r.default),G.cg[e]&&w([q.yW,G.cg[e]()]),t(e)})).catch((r=>{G.cg[e]?w([q.yW,G.cg[e]()]):w([q.yW]),t(e),u("")}))}catch(o){}}return(0,i.useEffect)((()=>{j("javascript")}),[]),(0,l.jsxs)(se,{className:"wmde-markdown-var",children:[(0,l.jsx)(ne,{children:(0,l.jsx)(U.default,{value:p,height:"".concat(v," !important"),theme:B[d]||d,editable:c,extensions:g,autoFocus:s,basicSetup:b,placeholder:o,onChange:e=>{},style:{maxWidth:"995px",position:"relative",zIndex:999}})}),(0,l.jsxs)(oe,{children:[(0,l.jsxs)(ie,{children:[(0,l.jsx)(F,{label:"Lang",options:Object.keys(G.cg).sort(),value:e,onChange:e=>j(e.target.value)}),(0,l.jsx)(F,{label:"Website Theme",options:["dark","light"],value:d,onChange:e=>{document.documentElement.setAttribute("data-color-mode","dark"===e.target.value?"dark":"light"),h(e.target.value)}}),(0,l.jsx)(F,{label:"Themes",options:ee,value:d,onChange:e=>{/^(dark|light)$/.test(e.target.value)&&document.documentElement.setAttribute("data-color-mode",e.target.value),h(e.target.value)}})]}),(0,l.jsxs)(ie,{children:[(0,l.jsx)(F,{label:"Height",options:te,value:v,onChange:e=>x(e.target.value)}),(0,l.jsx)("button",{onClick:()=>{re++,u('console.log("Hello World! '.concat(re,'")'))},children:"change code"}),(0,l.jsxs)("label",{children:[(0,l.jsx)("input",{type:"checkbox",checked:s,onChange:e=>a(e.target.checked)}),"autoFocus"]}),(0,l.jsxs)("label",{children:[(0,l.jsx)("input",{type:"checkbox",checked:c,onChange:e=>m(e.target.checked)}),"editable"]}),(0,l.jsxs)("label",{children:["placeholder:",(0,l.jsx)("input",{type:"text",value:o,onChange:e=>n(e.target.value)})]}),(0,l.jsx)(X.J,{checked:!1!==b.lineNumbers,onChange:e=>f({...b,lineNumbers:e.target.checked}),children:"lineNumbers"}),(0,l.jsx)(X.J,{checked:!1!==b.foldGutter,onChange:e=>f({...b,foldGutter:e.target.checked}),children:"foldGutter"}),(0,l.jsx)(X.J,{checked:!1!==b.highlightActiveLineGutter,onChange:e=>f({...b,highlightActiveLineGutter:e.target.checked}),children:"highlightActiveLineGutter"}),(0,l.jsx)(X.J,{checked:!1!==b.highlightSpecialChars,onChange:e=>f({...b,highlightSpecialChars:e.target.checked}),children:"highlightSpecialChars"}),(0,l.jsx)(X.J,{checked:!1!==b.history,onChange:e=>f({...b,history:e.target.checked}),children:"history"}),(0,l.jsx)(X.J,{checked:!1!==b.drawSelection,onChange:e=>f({...b,drawSelection:e.target.checked}),children:"drawSelection"}),(0,l.jsx)(X.J,{checked:!1!==b.dropCursor,onChange:e=>f({...b,dropCursor:e.target.checked}),children:"dropCursor"}),(0,l.jsx)(X.J,{checked:!1!==b.allowMultipleSelections,onChange:e=>f({...b,allowMultipleSelections:e.target.checked}),children:"allowMultipleSelections"}),(0,l.jsx)(X.J,{checked:!1!==b.indentOnInput,onChange:e=>f({...b,indentOnInput:e.target.checked}),children:"indentOnInput"}),(0,l.jsx)(X.J,{checked:!1!==b.syntaxHighlighting,onChange:e=>f({...b,syntaxHighlighting:e.target.checked}),children:"syntaxHighlighting"}),(0,l.jsx)(X.J,{checked:!1!==b.bracketMatching,onChange:e=>f({...b,bracketMatching:e.target.checked}),children:"bracketMatching"}),(0,l.jsx)(X.J,{checked:!1!==b.closeBrackets,onChange:e=>f({...b,closeBrackets:e.target.checked}),children:"closeBrackets"}),(0,l.jsx)(X.J,{checked:!1!==b.autocompletion,onChange:e=>f({...b,autocompletion:e.target.checked}),children:"autocompletion"}),(0,l.jsx)(X.J,{checked:!1!==b.rectangularSelection,onChange:e=>f({...b,rectangularSelection:e.target.checked}),children:"rectangularSelection"}),(0,l.jsx)(X.J,{checked:!1!==b.crosshairCursor,onChange:e=>f({...b,crosshairCursor:e.target.checked}),children:"crosshairCursor"}),(0,l.jsx)(X.J,{checked:!1!==b.highlightActiveLine,onChange:e=>f({...b,highlightActiveLine:e.target.checked}),children:"highlightActiveLine"}),(0,l.jsx)(X.J,{checked:!1!==b.highlightSelectionMatches,onChange:e=>f({...b,highlightSelectionMatches:e.target.checked}),children:"highlightSelectionMatches"}),(0,l.jsx)(X.J,{checked:!1!==b.closeBracketsKeymap,onChange:e=>f({...b,closeBracketsKeymap:e.target.checked}),children:"closeBracketsKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.defaultKeymap,onChange:e=>f({...b,defaultKeymap:e.target.checked}),children:"defaultKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.searchKeymap,onChange:e=>f({...b,searchKeymap:e.target.checked}),children:"searchKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.historyKeymap,onChange:e=>f({...b,historyKeymap:e.target.checked}),children:"historyKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.foldKeymap,onChange:e=>f({...b,foldKeymap:e.target.checked}),children:"foldKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.completionKeymap,onChange:e=>f({...b,completionKeymap:e.target.checked}),children:"completionKeymap"}),(0,l.jsx)(X.J,{checked:!1!==b.lintKeymap,onChange:e=>f({...b,lintKeymap:e.target.checked}),children:"lintKeymap"})]}),(0,l.jsx)(V.A,{source:H.source})]})]})}var ce,me,de,le,he,pe,ue;const ge=(0,s.i7)(ce||(ce=(0,o.A)(["\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n"]))),we=s.Ay.img(me||(me=(0,o.A)(["\n animation: "," infinite 20s linear;\n height: 80px;\n"])),ge),ve=s.Ay.h1(de||(de=(0,o.A)(["\n font-size: 30px;\n sup {\n position: absolute;\n background: var(--color-neutral-muted);\n padding: 1px 5px;\n font-size: 12px;\n border-radius: 3px;\n }\n"]))),xe=s.Ay.p(le||(le=(0,o.A)(["\n font-size: 18px;\n color: #a5a5a5;\n font-weight: 200;\n"]))),be=s.Ay.div(he||(he=(0,o.A)(["\n a {\n outline: none;\n min-height: 30px;\n margin: 6px 5px;\n padding: 0 10px;\n font-size: 14px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n user-select: none;\n border-radius: 3px;\n cursor: pointer;\n background: var(--color-neutral-muted);\n color: var(--color-theme-text);\n line-height: 30px;\n text-decoration: none;\n &.themes {\n background-color: var(--color-prettylights-syntax-variable);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &.special {\n background: var(--color-prettylights-syntax-markup-ignored-bg);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &.extensions {\n background: var(--color-prettylights-syntax-brackethighlighter-unmatched);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &:hover {\n background-color: var(--color-fg-muted);\n color: var(--color-theme-bg);\n transition:\n background-color 0.25s linear,\n color 0.05s linear,\n opacity 0.25s linear,\n filter 0.25s linear,\n visibility 0.25s linear,\n transform 0.25s linear;\n }\n &:last-child {\n color: var(--color-prettylights-syntax-keyword);\n }\n }\n"]))),fe=s.Ay.div(pe||(pe=(0,o.A)(["\n text-align: center;\n padding-top: 30px;\n padding-bottom: 160px;\n display: flex;\n justify-content: center;\n gap: 6px;\n a {\n text-decoration: none;\n }\n"]))),je=s.Ay.div(ue||(ue=(0,o.A)(["\n background-color: var(--color-canvas-subtle);\n box-shadow:\n 0px 2px 10px 0px rgba(0, 0, 0, 0.1),\n 0 1px rgba(0, 0, 0, 0.1);\n padding: 120px 20px 40px 20px;\n border-bottom: 1px solid var(--color-canvas-default);\n position: relative;\n z-index: 9;\n text-align: center;\n"]))),ke=[{href:"https://www.npmjs.com/package/@uiw/react-codemirror",label:"On NPM"},{href:"https://codemirror.net/docs/",label:"CM Documentation"},{href:"https://jaywcjlove.github.io/#/sponsor",label:"Sponsor",style:{backgroundColor:"#0f7c4e"}},{href:"https://raw.githack.com/uiwjs/react-codemirror/doc3/index.html",label:"V3 Doc",style:{color:"red"}}];function ye(){return(0,l.jsxs)("div",{className:"wmde-markdown-var",children:[(0,l.jsx)("dark-mode",{permanent:!0,dark:"Dark",light:"Light",style:{position:"fixed",top:8,left:8,zIndex:99}}),(0,l.jsx)(p,{fixed:!0,target:"__blank",zIndex:10,href:"https://github.com/uiwjs/react-codemirror"}),(0,l.jsxs)(je,{children:[(0,l.jsx)(we,{src:J,alt:"logo"}),(0,l.jsxs)(ve,{children:["React CodeMirror ",(0,l.jsxs)("sup",{children:["v","4.22.0"]})]}),(0,l.jsx)(xe,{children:"CodeMirror component for React. "}),(0,l.jsxs)(be,{children:[(0,l.jsx)(n.N_,{to:"/editor/theme",className:"special",children:"Theme Editor"}),(0,l.jsx)(n.N_,{to:"/theme",className:"themes",children:"Themes"}),(0,l.jsx)(n.N_,{to:"/extensions",className:"extensions",children:"Extensions"}),(0,l.jsx)(n.N_,{to:"/merge/document",children:"Merge"}),ke.map(((e,t)=>{let{href:r,label:o,style:i}=e;return(0,l.jsx)("a",{target:"_blank",rel:"noopener noreferrer",href:r,style:i,children:o},t)}))]})]}),(0,l.jsx)(ae,{}),(0,l.jsxs)(fe,{children:[(0,l.jsxs)(_,{user:"uiwjs",repo:"react-codemirror",children:[(0,l.jsx)(_.Social,{type:"forks",href:"https://github.com/uiwjs/react-codemirror"}),(0,l.jsx)(_.Social,{type:"stars",href:"https://github.com/uiwjs/react-codemirror/stargazers"}),(0,l.jsx)(_.Social,{type:"watchers",href:"https://github.com/uiwjs/react-codemirror/watchers"}),(0,l.jsx)("a",{href:"https://www.npmjs.com/package/@uiw/react-codemirror",target:"__blank",children:(0,l.jsx)("img",{src:"https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat",alt:"NPM Downloads"})})]}),(0,l.jsx)(K.A.Version,{scope:"@uiw",packageName:"react-codemirror",href:"https://www.npmjs.com/package/@uiw/react-codemirror"})]}),(0,l.jsx)(I.A,{children:"Top"})]})}},94458:(e,t,r)=>{"use strict";r.d(t,{D:()=>i});var o=r(80905);function i(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[r,i]=(0,o.useState)("dark"===t?"dark":e);return(0,o.useEffect)((()=>{i("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{i(e.detail.colorScheme)}))}),[]),{theme:r,setTheme:i}}},39126:(e,t,r)=>{var o={"./sample.abap.txt":[8192,8192],"./sample.aes.txt":[4147,4147],"./sample.apex.txt":[43602,3602],"./sample.azcli.txt":[53647,3647],"./sample.bat.txt":[68531,8531],"./sample.bicep.txt":[20311,311],"./sample.brainfuck.txt":[3079,3079],"./sample.c.txt":[94265,4265],"./sample.cameligo.txt":[22475,2475],"./sample.clike.txt":[45936,5936],"./sample.clojure.txt":[97938,7938],"./sample.coffeescript.txt":[77319,7319],"./sample.cpp.txt":[97009,7009],"./sample.csharp.txt":[80563,563],"./sample.csp.txt":[91952,1952],"./sample.css.txt":[42303],"./sample.dart.txt":[95545,7926],"./sample.dockerfile.txt":[31056,1056],"./sample.ecl.txt":[78950,8950],"./sample.elixir.txt":[64371,4371],"./sample.erlang.txt":[67559,7559],"./sample.flow9.txt":[31963,1963],"./sample.freemarker2.txt":[44736,4736],"./sample.fsharp.txt":[35112,5112],"./sample.go.txt":[30572],"./sample.graphql.txt":[75225,5225],"./sample.handlebars.txt":[90618,618],"./sample.hcl.txt":[89047,9047],"./sample.html.txt":[68853],"./sample.ini.txt":[80304,304],"./sample.java.txt":[41422],"./sample.javascript.txt":[4067],"./sample.json.txt":[64464],"./sample.jsx.txt":[61133],"./sample.julia.txt":[80065,65],"./sample.kotlin.txt":[71205,1205],"./sample.less.txt":[43425,3425],"./sample.lex.txt":[9937,9937],"./sample.lexon.txt":[30666,666],"./sample.liquid.txt":[97694,7694],"./sample.livescript.txt":[1969,1969],"./sample.lua.txt":[41548,1548],"./sample.m3.txt":[59674,9674],"./sample.markdown.txt":[21521],"./sample.mips.txt":[99359,9359],"./sample.msdax.txt":[8153,8153],"./sample.mysql.txt":[10364],"./sample.nginx.txt":[30706,706],"./sample.objective-c.txt":[7107,7107],"./sample.pascal.txt":[36618,6618],"./sample.pascaligo.txt":[59661,9661],"./sample.perl.txt":[2169,2169],"./sample.pgsql.txt":[30807,807],"./sample.php.txt":[99350],"./sample.pla.txt":[4063,4063],"./sample.plaintext.txt":[10419,419],"./sample.postiats.txt":[63909,3909],"./sample.powerquery.txt":[32375,2375],"./sample.powershell.txt":[98589,8589],"./sample.proto.txt":[48756,8756],"./sample.pug.txt":[70358,358],"./sample.python.txt":[44272],"./sample.qsharp.txt":[37833,7833],"./sample.r.txt":[50860,860],"./sample.razor.txt":[56082,6082],"./sample.redis.txt":[77939,7939],"./sample.redshift.txt":[11573,1573],"./sample.restructuredtext.txt":[72681,2681],"./sample.ruby.txt":[30518,518],"./sample.rust.txt":[75356],"./sample.sb.txt":[99273,9273],"./sample.scala.txt":[51108,1108],"./sample.scheme.txt":[95823,5823],"./sample.scss.txt":[56402,6402],"./sample.shell.txt":[32464],"./sample.sol.txt":[38592,8592],"./sample.sparql.txt":[59961,9961],"./sample.sql.txt":[32066,2066],"./sample.st.txt":[47695,7695],"./sample.stylus.txt":[83240,3240],"./sample.swift.txt":[715],"./sample.systemverilog.txt":[35545,5545],"./sample.tcl.txt":[3195,3195],"./sample.toml.txt":[76854,6854],"./sample.tsx.txt":[21871],"./sample.twig.txt":[81421,1421],"./sample.typescript.txt":[44355],"./sample.vb.txt":[52766,2766],"./sample.vbscript.txt":[14675,4675],"./sample.verilog.txt":[83300,3300],"./sample.vue.txt":[6150,6150],"./sample.xml.txt":[49353,9353],"./sample.yaml.txt":[68783,8783]};function i(e){if(!r.o(o,e))return Promise.resolve().then((()=>{var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}));var t=o[e],i=t[0];return Promise.all(t.slice(1).map(r.e)).then((()=>r(i)))}i.keys=()=>Object.keys(o),i.id=39126,e.exports=i}}]); +//# sourceMappingURL=3050.c6fb6e8a.chunk.js.map \ No newline at end of file diff --git a/static/js/3050.c6fb6e8a.chunk.js.map b/static/js/3050.c6fb6e8a.chunk.js.map new file mode 100644 index 000000000..1e21955df --- /dev/null +++ b/static/js/3050.c6fb6e8a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3050.c6fb6e8a.chunk.js","mappings":"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AAO/M,SAASyL,gBAAgB5J,aAAa,oBAC5C9E,EAAOyN,IAAYrN,EAAAA,EAAAA,UAAiD,SAAT4P,EAAkB,OAAS5L,GAO7F,OANAiK,EAAAA,EAAAA,YAAU,KACRZ,EAAsE,SAA7DxK,SAASyL,gBAAgB5J,aAAa,mBAAgC,OAAS,SACxF7B,SAASgO,iBAAiB,qBAAsBvH,IAC9C+D,EAAS/D,EAAEwH,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAEnR,QAAOyN,WAClB,C,kBCbA,IAAIxB,EAAM,CACT,oBAAqB,CACpB,KACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,qBAAsB,CACrB,MACA,KAED,yBAA0B,CACzB,KACA,MAED,iBAAkB,CACjB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,4BAA6B,CAC5B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,KAED,mBAAoB,CACnB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,2BAA4B,CAC3B,MACA,MAED,sBAAuB,CACtB,MACA,MAED,kBAAmB,CAClB,OAED,uBAAwB,CACvB,MACA,MAED,0BAA2B,CAC1B,MACA,KAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,MACA,KAED,oBAAqB,CACpB,OAED,0BAA2B,CAC1B,MAED,oBAAqB,CACpB,OAED,mBAAoB,CACnB,OAED,qBAAsB,CACrB,MACA,IAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,sBAAuB,CACtB,MACA,MAED,0BAA2B,CAC1B,KACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,OAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,KACA,MAED,qBAAsB,CACrB,OAED,qBAAsB,CACrB,MACA,KAED,2BAA4B,CAC3B,KACA,MAED,sBAAuB,CACtB,MACA,MAED,yBAA0B,CACzB,MACA,MAED,oBAAqB,CACpB,KACA,MAED,qBAAsB,CACrB,MACA,KAED,mBAAoB,CACnB,OAED,mBAAoB,CACnB,KACA,MAED,yBAA0B,CACzB,MACA,KAED,wBAAyB,CACxB,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,0BAA2B,CAC1B,MACA,MAED,qBAAsB,CACrB,MACA,MAED,mBAAoB,CACnB,MACA,KAED,sBAAuB,CACtB,OAED,sBAAuB,CACtB,MACA,MAED,iBAAkB,CACjB,MACA,KAED,qBAAsB,CACrB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,gCAAiC,CAChC,MACA,MAED,oBAAqB,CACpB,MACA,KAED,oBAAqB,CACpB,OAED,kBAAmB,CAClB,MACA,MAED,qBAAsB,CACrB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,oBAAqB,CACpB,MACA,MAED,qBAAsB,CACrB,OAED,mBAAoB,CACnB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,mBAAoB,CACnB,MACA,MAED,kBAAmB,CAClB,MACA,MAED,sBAAuB,CACtB,MACA,MAED,qBAAsB,CACrB,KAED,6BAA8B,CAC7B,MACA,MAED,mBAAoB,CACnB,KACA,MAED,oBAAqB,CACpB,MACA,MAED,mBAAoB,CACnB,OAED,oBAAqB,CACpB,MACA,MAED,0BAA2B,CAC1B,OAED,kBAAmB,CAClB,MACA,MAED,wBAAyB,CACxB,MACA,MAED,uBAAwB,CACvB,MACA,MAED,mBAAoB,CACnB,KACA,MAED,mBAAoB,CACnB,MACA,MAED,oBAAqB,CACpB,MACA,OAGF,SAASmF,EAAoBC,GAC5B,IAAIC,EAAoBvH,EAAEkC,EAAKoF,GAC9B,OAAOE,QAAQC,UAAUxD,MAAK,KAC7B,IAAItE,EAAI,IAAI+H,MAAM,uBAAyBJ,EAAM,KAEjD,MADA3H,EAAEgE,KAAO,mBACHhE,CAAC,IAIT,IAAIgI,EAAMzF,EAAIoF,GAAMM,EAAKD,EAAI,GAC7B,OAAOH,QAAQK,IAAIF,EAAI/G,MAAM,GAAGsB,IAAIqF,EAAoB5H,IAAIsE,MAAK,IACzDsD,EAAoBK,IAE7B,CACAP,EAAoB7E,KAAO,IAAOrC,OAAOqC,KAAKN,GAC9CmF,EAAoBO,GAAK,MACzBE,EAAOC,QAAUV,C","sources":["pages/extensions/basic-setup/example.tsx","pages/extensions/index.tsx","../../node_modules/@uiw/github-corners/src/index.ts","../../node_modules/@uiw/react-github-corners/esm/index.js","../../node_modules/@uiw/react-shields/esm/github/Issues.js","../../node_modules/@uiw/react-shields/esm/github/Size.js","../../node_modules/@uiw/react-shields/esm/github/License.js","../../node_modules/@uiw/react-shields/esm/github/Downloads.js","../../node_modules/@uiw/react-shields/esm/github/Activity.js","../../node_modules/@uiw/react-shields/esm/github/Version.js","../../node_modules/@uiw/react-shields/esm/github/Analysis.js","../../node_modules/@uiw/react-shields/esm/github/Social.js","../../node_modules/@uiw/react-shields/esm/github/index.js","../../core/README.md","pages/home/Select.tsx","pages/home/Example.tsx","pages/home/index.tsx","utils/useTheme.tsx","../../node_modules/code-example/txt|lazy|/^/.//sample/..*/.txt$/|groupOptions: {}|namespace object"],"sourcesContent":["import { FC, PropsWithChildren, useContext, useState } from 'react';\nimport CodeMirror, { BasicSetupOptions } from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport styled from 'styled-components';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\nimport { MdContext } from '../../theme/Preview';\n\nconst Label = styled.label`\n user-select: none;\n white-space: nowrap;\n`;\n\nexport const Options: FC<\n PropsWithChildren, HTMLInputElement>>\n> = ({ children, ...props }) => {\n return (\n \n );\n};\n\nconst Warpper = styled.div`\n padding-bottom: 32px;\n`;\n\nexport const BasicSetupExample = () => {\n const { theme } = useTheme();\n const [basicSetup, setBasicSetup] = useState({});\n const mdData = useContext(MdContext);\n return (\n \n \n \n setBasicSetup({ ...basicSetup, tabSize: Number(evn.target.value || '2') })}\n >\n \n \n \n \n \n setBasicSetup({ ...basicSetup, lineNumbers: evn.target.checked })}\n >\n lineNumbers\n \n setBasicSetup({ ...basicSetup, foldGutter: evn.target.checked })}\n >\n foldGutter\n \n setBasicSetup({ ...basicSetup, highlightActiveLineGutter: evn.target.checked })}\n >\n highlightActiveLineGutter\n \n setBasicSetup({ ...basicSetup, highlightSpecialChars: evn.target.checked })}\n >\n highlightSpecialChars\n \n setBasicSetup({ ...basicSetup, history: evn.target.checked })}\n >\n history\n \n setBasicSetup({ ...basicSetup, drawSelection: evn.target.checked })}\n >\n drawSelection\n \n setBasicSetup({ ...basicSetup, dropCursor: evn.target.checked })}\n >\n dropCursor\n \n setBasicSetup({ ...basicSetup, allowMultipleSelections: evn.target.checked })}\n >\n allowMultipleSelections\n \n setBasicSetup({ ...basicSetup, indentOnInput: evn.target.checked })}\n >\n indentOnInput\n \n setBasicSetup({ ...basicSetup, syntaxHighlighting: evn.target.checked })}\n >\n syntaxHighlighting\n \n setBasicSetup({ ...basicSetup, bracketMatching: evn.target.checked })}\n >\n bracketMatching\n \n setBasicSetup({ ...basicSetup, closeBrackets: evn.target.checked })}\n >\n closeBrackets\n \n setBasicSetup({ ...basicSetup, autocompletion: evn.target.checked })}\n >\n autocompletion\n \n setBasicSetup({ ...basicSetup, rectangularSelection: evn.target.checked })}\n >\n rectangularSelection\n \n setBasicSetup({ ...basicSetup, crosshairCursor: evn.target.checked })}\n >\n crosshairCursor\n \n setBasicSetup({ ...basicSetup, highlightActiveLine: evn.target.checked })}\n >\n highlightActiveLine\n \n setBasicSetup({ ...basicSetup, highlightSelectionMatches: evn.target.checked })}\n >\n highlightSelectionMatches\n \n setBasicSetup({ ...basicSetup, closeBracketsKeymap: evn.target.checked })}\n >\n closeBracketsKeymap\n \n setBasicSetup({ ...basicSetup, defaultKeymap: evn.target.checked })}\n >\n defaultKeymap\n \n setBasicSetup({ ...basicSetup, searchKeymap: evn.target.checked })}\n >\n searchKeymap\n \n setBasicSetup({ ...basicSetup, historyKeymap: evn.target.checked })}\n >\n historyKeymap\n \n setBasicSetup({ ...basicSetup, foldKeymap: evn.target.checked })}\n >\n foldKeymap\n \n setBasicSetup({ ...basicSetup, completionKeymap: evn.target.checked })}\n >\n completionKeymap\n \n setBasicSetup({ ...basicSetup, lintKeymap: evn.target.checked })}\n >\n lintKeymap\n \n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","// @ts-ignore\ndeclare global {\n interface HTMLElementTagNameMap {\n 'github-corners': GithubCorners;\n }\n namespace JSX {\n interface IntrinsicElements {\n 'github-corners': Partial | {\n style?: Partial | React.CSSProperties;\n };\n }\n }\n}\n\nconst GITHUB_CORNERS_TEMPLATE = document.createElement(\"template\");\nGITHUB_CORNERS_TEMPLATE.innerHTML = `\n\n\n \n \n \n \n \n \n \n\n`;\n\nexport class GithubCorners extends HTMLElement {\n /** Sets the z-order of a positioned element and its descendants or flex items. */\n 'z-index'?: string;\n height?: string | number;\n width?: string | number;\n href?: string;\n color?: string;\n fill?: string;\n position?: string;\n target?: string;\n top?: string;\n left?: string;\n right?: string = '0';\n bottom?: string;\n transform?: string;\n private shadow: ShadowRoot\n static get observedAttributes(): string[] {\n return ['style', 'z-index', 'target', 'height', 'width', 'href', 'color', 'fill', 'position', 'top', 'left', 'right', 'bottom', 'transform'];\n }\n constructor() {\n super();\n this.shadow = this.attachShadow({ mode: 'open' });\n this.shadow.appendChild(this.ownerDocument.importNode(GITHUB_CORNERS_TEMPLATE.content, true));\n this.update()\n }\n private setAttr(name: string, value: string) {\n const svg = this.shadow.querySelector('svg');\n if (/(href)/.test(name.toLocaleLowerCase())) {\n svg.lastElementChild.setAttribute('xlink:href', value);\n } else if (/(color|fill)/.test(name.toLocaleLowerCase())) {\n (svg.firstElementChild as HTMLAnchorElement).style[name as any] = value;\n } else if (/(z-index|position|top|left|right|bottom|transform)/.test(name.toLocaleLowerCase())) {\n svg.style[name as any] = value;\n } else {\n svg.setAttribute(name, value);\n }\n }\n private update() {\n ;[...this.getAttributeNames(), 'right'].forEach((name) => {\n const value = this.getAttribute(name) || this[name as keyof GithubCorners] as any || '';\n this.setAttr(name, value);\n });\n }\n attributeChangedCallback(name: string, oldValue: string, newValue: string) {\n if (oldValue !== newValue) {\n this.setAttr(name, newValue);\n }\n }\n}\n\ncustomElements.define('github-corners', GithubCorners);","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"size\", \"fixed\", \"bottom\", \"zIndex\", \"className\", \"style\", \"bgColor\", \"color\", \"position\"];\nimport React from 'react';\nimport '@uiw/github-corners';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function githubCorners(props) {\n var {\n size = 80,\n fixed = false,\n bottom,\n zIndex,\n style,\n bgColor = '#151513',\n color = '#fff',\n position = 'right'\n } = props,\n otherProps = _objectWithoutPropertiesLoose(props, _excluded);\n var styl = position === 'left' ? {\n left: 0,\n right: 'initial',\n transform: 'scale(-1, 1)'\n } : {\n right: 0,\n left: 'initial',\n transform: 'scale(1, 1)'\n };\n if (bottom) {\n styl.bottom = 0;\n styl.top = 'initial';\n styl.transform = position === 'left' ? 'scale(-1, -1)' : 'scale(1, -1)';\n } else {\n styl.bottom = 'initial';\n styl.top = 0;\n }\n return /*#__PURE__*/_jsx(\"github-corners\", _extends({\n target: \"__blank\",\n width: size,\n height: size,\n href: props.href,\n position: fixed ? 'fixed' : 'absolute',\n \"z-index\": zIndex,\n style: style,\n fill: bgColor,\n color: color\n }, styl, otherProps));\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"type\", \"platform\", \"base\", \"property\", \"user\", \"repo\", \"label\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Issues = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n type = 'issues',\n platform = 'github',\n base = 'https://img.shields.io',\n property,\n user,\n repo,\n label\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github') return '';\n if (type === 'issues' || /^issues-(raw|closed|closed-raw|pr|pr-raw|pr-closed|pr-closed-raw)/.test(type)) {\n if (label && (type === 'issues' || /^issues-(raw|pr|pr-raw)/.test(type || ''))) {\n return [base, platform, type, user, repo, label].join('/');\n }\n return [base, platform, type, user, repo].join('/');\n }\n if (type === 'issueKind') {\n return [base, platform, type, 'detail', property, user, repo].join('/');\n }\n return '';\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nIssues.displayName = 'Issues';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"type\", \"platform\", \"base\", \"user\", \"repo\", \"path\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Size = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n type = 'languages',\n platform = 'github',\n base = 'https://img.shields.io',\n user,\n repo,\n path\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github') return '';\n /**\n * /github/languages/code-size/:user/:repo\n */\n if (type === 'languages') {\n return [base, platform, type, 'code-size', user, repo].join('/');\n }\n /**\n * /github/repo-size/:user/:repo\n */\n if (type === 'repo-size') {\n return [base, platform, type, user, repo].join('/');\n }\n /**\n * /github/size/:user/:repo/:path*\n */\n if (type === 'size' && path) {\n return [base, platform, type, user, repo, path].join('/');\n }\n return '';\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nSize.displayName = 'Size';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"platform\", \"type\", \"base\", \"user\", \"repo\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var License = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n platform = 'github',\n type = 'license',\n base = 'https://img.shields.io',\n user,\n repo\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github') return '';\n return [base, platform, type, user, repo].join('/');\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nLicense.displayName = 'License';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"platform\", \"type\", \"base\", \"user\", \"repo\", \"tag\", \"path\", \"total\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Downloads = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n platform = 'github',\n type = 'downloads',\n base = 'https://img.shields.io',\n user,\n repo,\n tag,\n path,\n total = true\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github' || !/^(downloads|downloads-pre)/.test(type || '')) return '';\n var baseData = [base, platform, type, user, repo];\n if (path && tag) {\n return [...baseData, tag, path].join('/');\n }\n if (total && tag || type === 'downloads-pre' && tag && total) {\n return [...baseData, tag, 'total'].join('/');\n }\n if (total) {\n return [...baseData, 'total'].join('/');\n }\n return '';\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nDownloads.displayName = 'Downloads';\nexport default Downloads;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"platform\", \"base\", \"type\", \"user\", \"repo\", \"interval\", \"variant\", \"version\", \"branch\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Activity = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n platform = 'github',\n base = 'https://img.shields.io',\n type = 'commits-since',\n user,\n repo,\n interval,\n variant,\n version,\n branch\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github') return '';\n if (type === 'commits-since' && version && branch) {\n return [base, platform, type, user, repo, version, branch].join('/');\n }\n if (type === 'commit-activity' && interval) {\n return [base, platform, type, interval, user, repo].join('/');\n }\n if (type === 'variant' && variant) {\n return [base, platform, type, variant, user, repo].join('/');\n }\n if (type === 'last-commit') {\n return branch ? [base, platform, type, user, repo, branch].join('/') : [base, platform, type, user, repo].join('/');\n }\n if (type && /^release-(date|date-pre)/.test(type)) {\n return [base, platform, type, user, repo].join('/');\n }\n return '';\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nActivity.displayName = 'Activity';\nexport default Activity;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"platform\", \"type\", \"base\", \"user\", \"repo\", \"branch\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n platform = 'github',\n type = 'version-release',\n base = 'https://img.shields.io',\n user,\n repo,\n branch\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n var typePath = '';\n switch (type) {\n case 'version-release':\n typePath = 'v/release';\n break;\n case 'version-tag':\n typePath = 'v/tag';\n break;\n case 'package-json':\n typePath = 'package-json/v';\n break;\n case 'manifest-json':\n typePath = 'manifest-json/v';\n break;\n case 'go-mod':\n typePath = 'go-mod/go-version';\n break;\n default:\n break;\n }\n if (platform !== 'github' || !typePath) return '';\n var baseData = [base, platform, typePath, user, repo];\n if (/(go-mod|manifest-json|package-json)/.test(type || '') && branch) {\n return [...baseData, branch].join('/');\n }\n return baseData.join('/');\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"platform\", \"type\", \"base\", \"user\", \"repo\", \"query\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Analysis = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n platform = 'github',\n type = 'languages-count',\n base = 'https://img.shields.io',\n user,\n repo,\n query\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n var typePath = '';\n switch (type) {\n case 'languages-count':\n typePath = 'languages/count';\n break;\n case 'languages-top':\n typePath = 'languages/top';\n break;\n case 'search':\n typePath = 'search';\n break;\n default:\n break;\n }\n if (platform !== 'github' || !typePath) return '';\n var baseData = [base, platform, typePath, user, repo];\n if (query) {\n return [...baseData, query].join('/');\n }\n return baseData.join('/');\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nAnalysis.displayName = 'Analysis';\nexport default Analysis;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"type\", \"platform\", \"base\", \"user\", \"repo\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Social = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n type = 'followers',\n platform = 'github',\n base = 'https://img.shields.io',\n user,\n repo\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'github') return '';\n if (type === 'followers') return [base, platform, type, user].join('/');\n return [base, platform, type, user, repo].join('/');\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nSocial.displayName = 'Social';\nexport default Social;","import _extends from \"@babel/runtime/helpers/extends\";\nimport Container from '../common/Container';\nimport { Issues } from './Issues';\nimport { Size } from './Size';\nimport { License } from './License';\nimport Downloads from './Downloads';\nimport Activity from './Activity';\nimport Version from './Version';\nimport Analysis from './Analysis';\nimport Social from './Social';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Github = props => /*#__PURE__*/_jsx(Container, _extends({}, props));\nGithub.Issues = Issues;\nGithub.Size = Size;\nGithub.Downloads = Downloads;\nGithub.License = License;\nGithub.Activity = Activity;\nGithub.Analysis = Analysis;\nGithub.Version = Version;\nGithub.Social = Social;\nGithub.displayName = 'Github';\nexport default Github;","\nexport default {\n components: { 101: (function() { \"use strict\";\n\nvar _react = _interopRequireDefault(require(\"react\"));\nvar _reactCodemirror = _interopRequireDefault(require(\"@uiw/react-codemirror\"));\nvar _langJavascript = require(\"@codemirror/lang-javascript\");\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\"return\"] && (u = t[\"return\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction App() {\n var _React$useState = _react[\"default\"].useState(\"console.log('hello world!');\"),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n value = _React$useState2[0],\n setValue = _React$useState2[1];\n var onChange = _react[\"default\"].useCallback(function (val, viewUpdate) {\n console.log('val:', val);\n setValue(val);\n }, []);\n return /*#__PURE__*/_react[\"default\"].createElement(_reactCodemirror[\"default\"], {\n value: value,\n height: \"200px\",\n extensions: [(0, _langJavascript.javascript)({\n jsx: true\n })],\n onChange: onChange\n });\n}\nreturn App; })(), },\n data: {\n \"101\": {\n \"name\": 101,\n \"meta\": {},\n \"code\": \"\\\"use strict\\\";\\n\\nvar _react = _interopRequireDefault(require(\\\"react\\\"));\\nvar _reactCodemirror = _interopRequireDefault(require(\\\"@uiw/react-codemirror\\\"));\\nvar _langJavascript = require(\\\"@codemirror/lang-javascript\\\");\\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \\\"default\\\": obj }; }\\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\\nfunction _nonIterableRest() { throw new TypeError(\\\"Invalid attempt to destructure non-iterable instance.\\\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\\\"); }\\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \\\"string\\\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \\\"Object\\\" && o.constructor) n = o.constructor.name; if (n === \\\"Map\\\" || n === \\\"Set\\\") return Array.from(o); if (n === \\\"Arguments\\\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\\nfunction _iterableToArrayLimit(r, l) { var t = null == r ? null : \\\"undefined\\\" != typeof Symbol && r[Symbol.iterator] || r[\\\"@@iterator\\\"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t[\\\"return\\\"] && (u = t[\\\"return\\\"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }\\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\\nfunction App() {\\n var _React$useState = _react[\\\"default\\\"].useState(\\\"console.log('hello world!');\\\"),\\n _React$useState2 = _slicedToArray(_React$useState, 2),\\n value = _React$useState2[0],\\n setValue = _React$useState2[1];\\n var onChange = _react[\\\"default\\\"].useCallback(function (val, viewUpdate) {\\n console.log('val:', val);\\n setValue(val);\\n }, []);\\n return /*#__PURE__*/_react[\\\"default\\\"].createElement(_reactCodemirror[\\\"default\\\"], {\\n value: value,\\n height: \\\"200px\\\",\\n extensions: [(0, _langJavascript.javascript)({\\n jsx: true\\n })],\\n onChange: onChange\\n });\\n}\\nreturn App;\",\n \"language\": \"jsx\",\n \"value\": \"import React from 'react';\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n const [value, setValue] = React.useState(\\\"console.log('hello world!');\\\");\\n const onChange = React.useCallback((val, viewUpdate) => {\\n console.log('val:', val);\\n setValue(val);\\n }, []);\\n return ;\\n}\\nexport default App;\"\n }\n},\n source: \"

\\n \\n \\\"react-codemirror\\n \\n

\\n\\n# react-codemirror\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror)\\n[![Build & Deploy](https://github.com/uiwjs/react-codemirror/actions/workflows/ci.yml/badge.svg)](https://github.com/uiwjs/react-codemirror/actions)\\n[![Open in unpkg](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://uiwjs.github.io/npm-unpkg/#/pkg/@uiw/react-codemirror/file/README.md)\\n[![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror)\\n[![Coverage Status](https://uiwjs.github.io/react-codemirror/coverage/badges.svg)](https://uiwjs.github.io/react-codemirror/coverage/lcov-report/)\\n[![Open in Gitpod](https://shields.io/badge/Open%20in-Gitpod-green?logo=Gitpod)](https://gitpod.io/#https://github.com/uiwjs/react-codemirror)\\n\\nCodeMirror component for React. Demo Preview: [@uiwjs.github.io/react-codemirror](https://uiwjs.github.io/react-codemirror/)\\n\\n\\n\\n**Features:**\\n\\n🚀 Quickly and easily configure the API. \\n🌱 Versions after `@uiw/react-codemirror@v4` use [codemirror 6](https://codemirror.net/). [#88](https://github.com/uiwjs/react-codemirror/issues/88#issuecomment-914185563). \\n⚛️ Support the features of React Hook(requires React 16.8+). \\n📚 Use Typescript to write, better code hints. \\n🌐 The bundled version supports use directly in the browser [#267](https://github.com/uiwjs/react-codemirror/issues/267#issuecomment-1041227592). \\n🌎 There are better [sample previews](https://uiwjs.github.io/react-codemirror). \\n🎨 Support [theme](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) customization, provide theme [editor](https://uiwjs.github.io/react-codemirror/#/editor/theme).\\n\\n## Install\\n\\n**Not dependent on uiw.**\\n\\n```bash\\nnpm install @uiw/react-codemirror --save\\n```\\n\\n**All Packages**\\n\\n| Name | NPM Version |\\n| :-------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\\n| [`@uiw/react-codemirror`](https://uiwjs.github.io/react-codemirror) | [![npm version](https://img.shields.io/npm/v/@uiw/react-codemirror.svg)](https://www.npmjs.com/package/@uiw/react-codemirror) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/react-codemirror.svg?style=flat)](https://www.npmjs.com/package/@uiw/react-codemirror) |\\n| [`react-codemirror-merge`](https://uiwjs.github.io/react-codemirror/#/merge/document) | [![npm version](https://img.shields.io/npm/v/react-codemirror-merge.svg)](https://www.npmjs.com/package/react-codemirror-merge) [![NPM Downloads](https://img.shields.io/npm/dm/react-codemirror-merge.svg?style=flat)](https://www.npmjs.com/package/react-codemirror-merge) |\\n| [`@uiw/codemirror-extensions-basic-setup`](https://uiwjs.github.io/react-codemirror/#/extensions/basic-setup) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-basic-setup.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-basic-setup.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup) |\\n| [`@uiw/codemirror-extensions-color`](https://uiwjs.github.io/react-codemirror/#/extensions/color) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-color.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-color.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-color) |\\n| [`@uiw/codemirror-extensions-classname`](https://uiwjs.github.io/react-codemirror/#/extensions/classname) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-classname.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-classname.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname) |\\n| [`@uiw/codemirror-extensions-events`](https://uiwjs.github.io/react-codemirror/#/extensions/events) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-events.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-events.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events) |\\n| [`@uiw/codemirror-extensions-hyper-link`](https://uiwjs.github.io/react-codemirror/#/extensions/hyper-link) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-hyper-link.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-hyper-link.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-hyper-link) |\\n| [`@uiw/codemirror-extensions-langs`](https://uiwjs.github.io/react-codemirror/#/extensions/languages) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-langs.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-langs.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs) |\\n| [`@uiw/codemirror-extensions-line-numbers-relative`](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-line-numbers-relative.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative) |\\n| [`@uiw/codemirror-extensions-mentions`](https://uiwjs.github.io/react-codemirror/#/extensions/mentions) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-mentions.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-mentions.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions) |\\n| [`@uiw/codemirror-extensions-zebra-stripes`](https://uiwjs.github.io/react-codemirror/#/extensions/zebra-stripes) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-zebra-stripes.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-extensions-zebra-stripes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-extensions-zebra-stripes) |\\n| [`@uiw/codemirror-themes`](https://uiwjs.github.io/react-codemirror/#/theme/doc) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes) |\\n\\n| Name | NPM Version |\\n| :----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\\n| [`@uiw/codemirror-themes-all`](https://uiwjs.github.io/react-codemirror/#/theme/all) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes-all.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-themes-all.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-themes-all) |\\n| [`@uiw/codemirror-theme-abcdef`](https://uiwjs.github.io/react-codemirror/#/theme/data/abcdef) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abcdef.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-abcdef.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-abcdef) |\\n| [`@uiw/codemirror-theme-abyss`](https://uiwjs.github.io/react-codemirror/#/theme/data/abyss) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-abyss.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-abyss) |\\n| [`@uiw/codemirror-theme-androidstudio`](https://uiwjs.github.io/react-codemirror/#/theme/data/androidstudio) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-androidstudio.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-androidstudio.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-androidstudio) |\\n| [`@uiw/codemirror-theme-andromeda`](https://uiwjs.github.io/react-codemirror/#/theme/data/andromeda) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-andromeda.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-andromeda.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda) |\\n| [`@uiw/codemirror-theme-atomone`](https://uiwjs.github.io/react-codemirror/#/theme/data/atomone) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-atomone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-atomone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-atomone) |\\n| [`@uiw/codemirror-theme-aura`](https://uiwjs.github.io/react-codemirror/#/theme/data/aura) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-aura.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-aura.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura) |\\n| [`@uiw/codemirror-theme-basic`](https://uiwjs.github.io/react-codemirror/#/theme/data/bbedit) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-basic.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-basic.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic) |\\n| [`@uiw/codemirror-theme-bbedit`](https://uiwjs.github.io/react-codemirror/#/theme/data/bbedit) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bbedit.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bbedit.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit) |\\n| [`@uiw/codemirror-theme-bespin`](https://uiwjs.github.io/react-codemirror/#/theme/data/bespin) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bespin.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-bespin.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-bespin) |\\n| [`@uiw/codemirror-theme-console`](https://uiwjs.github.io/react-codemirror/#/theme/data/console) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-console.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-console) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-console.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-console) |\\n| [`@uiw/codemirror-theme-copilot`](https://uiwjs.github.io/react-codemirror/#/theme/data/copilot) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-copilot.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-copilot.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-copilot) |\\n| [`@uiw/codemirror-theme-duotone`](https://uiwjs.github.io/react-codemirror/#/theme/data/duotone/light) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-duotone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-duotone.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone) |\\n| [`@uiw/codemirror-theme-dracula`](https://uiwjs.github.io/react-codemirror/#/theme/data/dracula) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-dracula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-dracula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula) |\\n| [`@uiw/codemirror-theme-darcula`](https://uiwjs.github.io/react-codemirror/#/theme/data/darcula) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-darcula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-darcula.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula) |\\n| [`@uiw/codemirror-theme-eclipse`](https://uiwjs.github.io/react-codemirror/#/theme/data/eclipse) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-eclipse.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-eclipse.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse) |\\n| [`@uiw/codemirror-theme-github`](https://uiwjs.github.io/react-codemirror/#/theme/data/github) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-github.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-github.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-github) |\\n| [`@uiw/codemirror-theme-gruvbox-dark`](https://uiwjs.github.io/react-codemirror/#/theme/data/gruvbox/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-gruvbox-dark.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-gruvbox-dark.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-gruvbox-dark) |\\n| [`@uiw/codemirror-theme-kimbie`](https://uiwjs.github.io/react-codemirror/#/theme/data/kimbie/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-kimbie.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) |\\n| [`@uiw/codemirror-theme-kimbie`](https://uiwjs.github.io/react-codemirror/#/theme/data/kimbie/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-kimbie.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-kimbie.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-kimbie) |\\n| [`@uiw/codemirror-theme-material`](https://uiwjs.github.io/react-codemirror/#/theme/data/material/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-material.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-material) |\\n| [`@uiw/codemirror-theme-monokai`](https://uiwjs.github.io/react-codemirror/#/theme/data/monokai) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-monokai.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai) |\\n| [`@uiw/codemirror-theme-noctis-lilac`](https://uiwjs.github.io/react-codemirror/#/theme/data/noctis-lilac) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-noctis-lilac.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac) |\\n| [`@uiw/codemirror-theme-nord`](https://uiwjs.github.io/react-codemirror/#/theme/data/nord) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-nord.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-nord.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-nord) |\\n| [`@uiw/codemirror-theme-okaidia`](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-okaidia.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-okaidia.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-okaidia) |\\n| [`@uiw/codemirror-theme-quietlight`](https://uiwjs.github.io/react-codemirror/#/theme/data/quietlight) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-quietlight.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-quietlight.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-quietlight) |\\n| [`@uiw/codemirror-theme-red`](https://uiwjs.github.io/react-codemirror/#/theme/data/red) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-red.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-red) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-red.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-red) |\\n| [`@uiw/codemirror-theme-solarized`](https://uiwjs.github.io/react-codemirror/#/theme/data/solarized/dark) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-solarized.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized) |\\n| [`@uiw/codemirror-theme-sublime`](https://uiwjs.github.io/react-codemirror/#/theme/data/sublime) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-sublime.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-sublime.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime) |\\n| [`@uiw/codemirror-theme-tokyo-night`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night) |\\n| [`@uiw/codemirror-theme-tokyo-night-storm`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-storm) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-storm.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-storm.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-storm) |\\n| [`@uiw/codemirror-theme-tokyo-night-day`](https://uiwjs.github.io/react-codemirror/#/theme/data/tokyo-night-day) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night-day.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tokyo-night-day.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night-day) |\\n| [`@uiw/codemirror-theme-vscode`](https://uiwjs.github.io/react-codemirror/#/theme/data/vscode) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-vscode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-vscode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode) |\\n| [`@uiw/codemirror-theme-white`](https://uiwjs.github.io/react-codemirror/#/theme/data/white/light) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-white.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-white) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-white.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-white) |\\n| [`@uiw/codemirror-theme-tomorrow-night-blue`](https://uiwjs.github.io/react-codemirror/#/theme/data/tomorrow-night-blue) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tomorrow-night-blue.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-tomorrow-night-blue.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue) |\\n| [`@uiw/codemirror-theme-xcode`](https://uiwjs.github.io/react-codemirror/#/theme/data/xcode) | [![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-xcode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) [![NPM Downloads](https://img.shields.io/npm/dm/@uiw/codemirror-theme-xcode.svg?style=flat)](https://www.npmjs.com/package/@uiw/codemirror-theme-xcode) |\\n\\n\\n\\n## Usage\\n\\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-slvju?fontsize=14&hidenavigation=1&theme=dark)\\n\\n```jsx mdx:preview\\nimport React from 'react';\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n const [value, setValue] = React.useState(\\\"console.log('hello world!');\\\");\\n const onChange = React.useCallback((val, viewUpdate) => {\\n console.log('val:', val);\\n setValue(val);\\n }, []);\\n return ;\\n}\\nexport default App;\\n```\\n\\n## Support Language\\n\\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { StreamLanguage } from '@codemirror/language';\\nimport { go } from '@codemirror/legacy-modes/mode/go';\\n\\nconst goLang = `package main\\nimport \\\"fmt\\\"\\n\\nfunc main() {\\n fmt.Println(\\\"Hello, 世界\\\")\\n}`;\\n\\nexport default function App() {\\n return ;\\n}\\n```\\n\\n- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)\\n- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)\\n- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)\\n- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)\\n- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)\\n- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)\\n- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)\\n- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)\\n- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)\\n- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)\\n- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)\\n- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)\\n- ~~`@codemirror/legacy-modes/mode/css`~~ => [`@codemirror/lang-less`](https://www.npmjs.com/package/@codemirror/lang-less)\\n- ~~`@codemirror/legacy-modes/mode/sass`~~ => [`@codemirror/lang-sass`](https://www.npmjs.com/package/@codemirror/lang-sass)\\n- ~~`@codemirror/legacy-modes/mode/clojure`~~ => [`@nextjournal/lang-clojure`](https://www.npmjs.com/package/@nextjournal/lang-clojure)\\n- ~~`@codemirror/legacy-modes/mode/clike`~~ => [`@replit/codemirror-lang-csharp`](https://www.npmjs.com/package/@replit/codemirror-lang-csharp)\\n\\n### Markdown Example\\n\\nMarkdown language code is automatically highlighted.\\n\\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-markdown-auto-languages-iudnj?fontsize=14&hidenavigation=1&theme=dark)\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { markdown, markdownLanguage } from '@codemirror/lang-markdown';\\nimport { languages } from '@codemirror/language-data';\\n\\nconst code = `## Title\\n\\n\\\\`\\\\`\\\\`jsx\\nfunction Demo() {\\n return
demo
\\n}\\n\\\\`\\\\`\\\\`\\n\\n\\\\`\\\\`\\\\`bash\\n# Not dependent on uiw.\\nnpm install @codemirror/lang-markdown --save\\nnpm install @codemirror/language-data --save\\n\\\\`\\\\`\\\\`\\n\\n[weisit ulr](https://uiwjs.github.io/react-codemirror/)\\n\\n\\\\`\\\\`\\\\`go\\npackage main\\nimport \\\"fmt\\\"\\nfunc main() {\\n fmt.Println(\\\"Hello, 世界\\\")\\n}\\n\\\\`\\\\`\\\\`\\n`;\\n\\nexport default function App() {\\n return ;\\n}\\n```\\n\\n## Codemirror Merge\\n\\nA component that highlights the changes between two versions of a file in a side-by-side view, highlighting added, modified, or deleted lines of code.\\n\\n```bash\\nnpm install react-codemirror-merge --save\\n```\\n\\n```jsx\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\nimport { EditorView } from 'codemirror';\\nimport { EditorState } from '@codemirror/state';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `one\\ntwo\\nthree\\nfour\\nfive`;\\n\\nexport const Example = () => {\\n return (\\n \\n \\n \\n \\n );\\n};\\n```\\n\\n## Support Hook\\n\\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-hook-yr4vg?fontsize=14&hidenavigation=1&theme=dark)\\n\\n```jsx\\nimport { useEffect, useMemo, useRef } from 'react';\\nimport { useCodeMirror } from '@uiw/react-codemirror';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nconst code = \\\"console.log('hello world!');\\\\n\\\\n\\\\n\\\";\\n// Define the extensions outside the component for the best performance.\\n// If you need dynamic extensions, use React.useMemo to minimize reference changes\\n// which cause costly re-renders.\\nconst extensions = [javascript()];\\n\\nexport default function App() {\\n const editor = useRef();\\n const { setContainer } = useCodeMirror({\\n container: editor.current,\\n extensions,\\n value: code,\\n });\\n\\n useEffect(() => {\\n if (editor.current) {\\n setContainer(editor.current);\\n }\\n }, [editor.current]);\\n\\n return
;\\n}\\n```\\n\\n## Using Theme\\n\\nWe have created a [`theme editor`](https://uiwjs.github.io/react-codemirror/#/editor/theme) where you can define your own theme. We have also defined [some themes](https://uiwjs.github.io/react-codemirror/#/theme/data/okaidia) ourselves, which can be installed and used directly. Below is a usage example:\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { okaidia } from '@uiw/codemirror-theme-okaidia';\\n\\nconst extensions = [javascript({ jsx: true })];\\n\\nexport default function App() {\\n return (\\n \\n );\\n}\\n```\\n\\n## Using custom theme\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { createTheme } from '@uiw/codemirror-themes';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tags as t } from '@lezer/highlight';\\n\\nconst myTheme = createTheme({\\n theme: 'light',\\n settings: {\\n background: '#ffffff',\\n backgroundImage: '',\\n foreground: '#75baff',\\n caret: '#5d00ff',\\n selection: '#036dd626',\\n selectionMatch: '#036dd626',\\n lineHighlight: '#8a91991a',\\n gutterBackground: '#fff',\\n gutterForeground: '#8a919966',\\n },\\n styles: [\\n { tag: t.comment, color: '#787b8099' },\\n { tag: t.variableName, color: '#0080ff' },\\n { tag: [t.string, t.special(t.brace)], color: '#5c6166' },\\n { tag: t.number, color: '#5c6166' },\\n { tag: t.bool, color: '#5c6166' },\\n { tag: t.null, color: '#5c6166' },\\n { tag: t.keyword, color: '#5c6166' },\\n { tag: t.operator, color: '#5c6166' },\\n { tag: t.className, color: '#5c6166' },\\n { tag: t.definition(t.typeName), color: '#5c6166' },\\n { tag: t.typeName, color: '#5c6166' },\\n { tag: t.angleBracket, color: '#5c6166' },\\n { tag: t.tagName, color: '#5c6166' },\\n { tag: t.attributeName, color: '#5c6166' },\\n ],\\n});\\nconst extensions = [javascript({ jsx: true })];\\n\\nexport default function App() {\\n const onChange = React.useCallback((value, viewUpdate) => {\\n console.log('value:', value);\\n }, []);\\n return (\\n \\n );\\n}\\n```\\n\\n## Use `initialState` to restore state from JSON-serialized representation\\n\\nCodeMirror allows to serialize editor state to JSON representation with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function for persistency or other needs. This JSON representation can be later used to recreate ReactCodeMirror component with the same internal state.\\n\\nFor example, this is how undo history can be saved in the local storage, so that it remains after the page reloads\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { historyField } from '@codemirror/commands';\\n\\n// When custom fields should be serialized, you can pass them in as an object mapping property names to fields.\\n// See [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) documentation for more details\\nconst stateFields = { history: historyField };\\n\\nexport function EditorWithInitialState() {\\n const serializedState = localStorage.getItem('myEditorState');\\n const value = localStorage.getItem('myValue') || '';\\n\\n return (\\n {\\n localStorage.setItem('myValue', value);\\n\\n const state = viewUpdate.state.toJSON(stateFields);\\n localStorage.setItem('myEditorState', JSON.stringify(state));\\n }}\\n />\\n );\\n}\\n```\\n\\n## Props\\n\\n\\n\\n- `value?: string` value of the auto created model in the editor.\\n- `width?: string` width of editor. Defaults to `auto`.\\n- `height?: string` height of editor. Defaults to `auto`.\\n- `theme?`: `'light'` / `'dark'` / `Extension` Defaults to `'light'`.\\n\\n```ts\\nimport React from 'react';\\nimport { EditorState, EditorStateConfig, Extension } from '@codemirror/state';\\nimport { EditorView, ViewUpdate } from '@codemirror/view';\\nexport * from '@codemirror/view';\\nexport * from '@codemirror/basic-setup';\\nexport * from '@codemirror/state';\\nexport interface UseCodeMirror extends ReactCodeMirrorProps {\\n container?: HTMLDivElement | null;\\n}\\nexport declare function useCodeMirror(props: UseCodeMirror): {\\n state: EditorState | undefined;\\n setState: import('react').Dispatch>;\\n view: EditorView | undefined;\\n setView: import('react').Dispatch>;\\n container: HTMLDivElement | null | undefined;\\n setContainer: import('react').Dispatch>;\\n};\\nexport interface ReactCodeMirrorProps\\n extends Omit,\\n Omit, 'onChange' | 'placeholder'> {\\n /** value of the auto created model in the editor. */\\n value?: string;\\n height?: string;\\n minHeight?: string;\\n maxHeight?: string;\\n width?: string;\\n minWidth?: string;\\n maxWidth?: string;\\n /** focus on the editor. */\\n autoFocus?: boolean;\\n /** Enables a placeholder—a piece of example content to show when the editor is empty. */\\n placeholder?: string | HTMLElement;\\n /**\\n * `light` / `dark` / `Extension` Defaults to `light`.\\n * @default light\\n */\\n theme?: 'light' | 'dark' | Extension;\\n /**\\n * Whether to optional basicSetup by default\\n * @default true\\n */\\n basicSetup?: boolean | BasicSetupOptions;\\n /**\\n * This disables editing of the editor content by the user.\\n * @default true\\n */\\n editable?: boolean;\\n /**\\n * This disables editing of the editor content by the user.\\n * @default false\\n */\\n readOnly?: boolean;\\n /**\\n * Controls whether pressing the `Tab` key inserts a tab character and indents the text (`true`)\\n * or behaves according to the browser's default behavior (`false`).\\n * @default true\\n */\\n indentWithTab?: boolean;\\n /** Fired whenever a change occurs to the document. */\\n onChange?(value: string, viewUpdate: ViewUpdate): void;\\n /** Some data on the statistics editor. */\\n onStatistics?(data: Statistics): void;\\n /** The first time the editor executes the event. */\\n onCreateEditor?(view: EditorView, state: EditorState): void;\\n /** Fired whenever any state change occurs within the editor, including non-document changes like lint results. */\\n onUpdate?(viewUpdate: ViewUpdate): void;\\n /**\\n * Extension values can be [provided](https://codemirror.net/6/docs/ref/#state.EditorStateConfig.extensions) when creating a state to attach various kinds of configuration and behavior information.\\n * They can either be built-in extension-providing objects,\\n * such as [state fields](https://codemirror.net/6/docs/ref/#state.StateField) or [facet providers](https://codemirror.net/6/docs/ref/#state.Facet.of),\\n * or objects with an extension in its `extension` property. Extensions can be nested in arrays arbitrarily deep—they will be flattened when processed.\\n */\\n extensions?: Extension[];\\n /**\\n * If the view is going to be mounted in a shadow root or document other than the one held by the global variable document (the default), you should pass it here.\\n * Originally from the [config of EditorView](https://codemirror.net/6/docs/ref/#view.EditorView.constructor%5Econfig.root)\\n */\\n root?: ShadowRoot | Document;\\n /**\\n * Create a state from its JSON representation serialized with [toJSON](https://codemirror.net/docs/ref/#state.EditorState.toJSON) function\\n */\\n initialState?: {\\n json: any;\\n fields?: Record<'string', StateField>;\\n };\\n}\\nexport interface ReactCodeMirrorRef {\\n editor?: HTMLDivElement | null;\\n state?: EditorState;\\n view?: EditorView;\\n}\\ndeclare const ReactCodeMirror: React.ForwardRefExoticComponent<\\n ReactCodeMirrorProps & React.RefAttributes\\n>;\\nexport default ReactCodeMirror;\\nexport interface BasicSetupOptions {\\n lineNumbers?: boolean;\\n highlightActiveLineGutter?: boolean;\\n highlightSpecialChars?: boolean;\\n history?: boolean;\\n foldGutter?: boolean;\\n drawSelection?: boolean;\\n dropCursor?: boolean;\\n allowMultipleSelections?: boolean;\\n indentOnInput?: boolean;\\n syntaxHighlighting?: boolean;\\n bracketMatching?: boolean;\\n closeBrackets?: boolean;\\n autocompletion?: boolean;\\n rectangularSelection?: boolean;\\n crosshairCursor?: boolean;\\n highlightActiveLine?: boolean;\\n highlightSelectionMatches?: boolean;\\n closeBracketsKeymap?: boolean;\\n defaultKeymap?: boolean;\\n searchKeymap?: boolean;\\n historyKeymap?: boolean;\\n foldKeymap?: boolean;\\n completionKeymap?: boolean;\\n lintKeymap?: boolean;\\n}\\n```\\n\\n```ts\\nimport { EditorSelection, SelectionRange } from '@codemirror/state';\\nimport { ViewUpdate } from '@codemirror/view';\\nexport interface Statistics {\\n /** Get the number of lines in the editor. */\\n lineCount: number;\\n /** total length of the document */\\n length: number;\\n /** Get the proper [line-break](https://codemirror.net/docs/ref/#state.EditorState^lineSeparator) string for this state. */\\n lineBreak: string;\\n /** Returns true when the editor is [configured](https://codemirror.net/6/docs/ref/#state.EditorState^readOnly) to be read-only. */\\n readOnly: boolean;\\n /** The size (in columns) of a tab in the document, determined by the [`tabSize`](https://codemirror.net/6/docs/ref/#state.EditorState^tabSize) facet. */\\n tabSize: number;\\n /** Cursor Position */\\n selection: EditorSelection;\\n /** Make sure the selection only has one range. */\\n selectionAsSingle: SelectionRange;\\n /** Retrieves a list of all current selections. */\\n ranges: readonly SelectionRange[];\\n /** Get the currently selected code. */\\n selectionCode: string;\\n /**\\n * The length of the given array should be the same as the number of active selections.\\n * Replaces the content of the selections with the strings in the array.\\n */\\n selections: string[];\\n /** Return true if any text is selected. */\\n selectedText: boolean;\\n}\\nexport declare const getStatistics: (view: ViewUpdate) => Statistics;\\n```\\n\\n## Development\\n\\n1. Install dependencies\\n\\n```bash\\n$ npm install # Installation dependencies\\n$ npm run build # Compile all package\\n```\\n\\n2. Development `@uiw/react-codemirror` package:\\n\\n```bash\\n$ cd core\\n# listen to the component compile and output the .js file\\n# listen for compilation output type .d.ts file\\n$ npm run watch # Monitor the compiled package `@uiw/react-codemirror`\\n```\\n\\n3. Launch documentation site\\n\\n```bash\\nnpm run start\\n```\\n\\n## Related\\n\\n- [@uiw/react-textarea-code-editor](https://github.com/uiwjs/react-textarea-code-editor): A simple code editor with syntax highlighting.\\n- [@uiw/react-md-editor](https://github.com/uiwjs/react-md-editor): A simple markdown editor with preview, implemented with React.js and TypeScript.\\n- [@uiw/react-monacoeditor](https://github.com/jaywcjlove/react-monacoeditor): Monaco Editor component for React.\\n- [@uiw/react-markdown-editor](https://github.com/uiwjs/react-markdown-editor): A markdown editor with preview, implemented with React.js and TypeScript.\\n- [@uiw/react-markdown-preview](https://github.com/uiwjs/react-markdown-preview): React component preview markdown text in web browser.\\n- [Online JSON Viewer](https://github.com/uiwjs/json-viewer) Online JSON Viewer, JSON Beautifier to beautify and tree view of JSON data - It works as JSON Pretty Print to pretty print JSON data.\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }","interface SelectProps {\n label?: string;\n value?: string;\n options?: string[];\n onChange?(evn: React.ChangeEvent): void;\n}\n\nexport const Select = ({ label = '', value, options = [], onChange }: SelectProps) => {\n return (\n \n );\n};\n","import { useEffect, useState } from 'react';\nimport MarkdownPreview from '@uiw/react-markdown-preview';\nimport { color } from '@uiw/codemirror-extensions-color';\nimport DocumentStr from '@uiw/react-codemirror/README.md';\nimport { Extension } from '@codemirror/state';\nimport CodeMirror, { ReactCodeMirrorProps, BasicSetupOptions } from '@uiw/react-codemirror';\nimport styled from 'styled-components';\nimport * as alls from '@uiw/codemirror-themes-all';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Select } from './Select';\nimport { Options } from '../extensions/basic-setup/example';\nimport { useTheme } from '../../utils/useTheme';\n\nconst themeOptions = ['dark', 'light']\n .concat(Object.keys(alls))\n .filter((item) => typeof alls[item as keyof typeof alls] !== 'function')\n .filter((item) => !/^(defaultSettings)/.test(item as keyof typeof alls));\nconst heightOptions = ['auto', '200px', '300px', '500px'];\nlet count = 0;\n\nconst MarkdownDocument = styled.div`\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n padding: 16px;\n border-radius: 5px;\n`;\n\nconst Tools = styled.div`\n margin: 0 auto;\n max-width: 995px;\n padding: 15px 0 0 0;\n > label {\n margin-right: 15px;\n }\n`;\n\nconst CodemirrorWarpper = styled.div`\n box-shadow:\n 0 0 0 1px rgb(16 22 26 / 10%),\n 0 0 0 rgb(16 22 26 / 0%),\n 0 1px 1px rgb(16 22 26 / 20%);\n margin: 0 auto;\n text-align: left;\n max-width: 995px;\n overflow: auto;\n border-radius: 5px;\n margin-top: -30px;\n z-index: 10;\n position: relative;\n`;\n\nconst Warpper = styled.div`\n padding-bottom: 18px;\n`;\n\nexport default function Example() {\n const [mode, setMode] = useState('javascript');\n const [placeholder, setPlaceholder] = useState('Please enter the code.');\n const [autofocus, setAutofocus] = useState(false);\n const [editable, setEditable] = useState(true);\n const { theme, setTheme } = useTheme();\n const [code, setCode] = useState('');\n const [extensions, setExtensions] = useState();\n const [height, setHeight] = useState('500px');\n const [basicSetup, setBasicSetup] = useState({\n crosshairCursor: false,\n });\n\n function handleLangChange(lang: keyof typeof langs) {\n try {\n import(`code-example/txt/sample.${lang.toLocaleLowerCase()}.txt`)\n .then((data) => {\n setCode(data.default);\n if (langs[lang]) {\n setExtensions([color, langs[lang]()]);\n }\n setMode(lang);\n })\n .catch((err) => {\n if (langs[lang]) {\n setExtensions([color, langs[lang]()]);\n } else {\n setExtensions([color]);\n }\n setMode(lang);\n setCode('');\n });\n if (lang === 'html') {\n }\n } catch (error) {}\n }\n useEffect(() => {\n handleLangChange('javascript');\n }, []);\n return (\n \n \n {\n // https://github.com/uiwjs/react-codemirror/issues/449\n // setCode(val)\n }}\n style={{\n maxWidth: '995px',\n position: 'relative',\n zIndex: 999,\n }}\n />\n \n \n \n handleLangChange(evn.target.value as keyof typeof langs)}\n />\n {\n document.documentElement.setAttribute('data-color-mode', evn.target.value === 'dark' ? 'dark' : 'light');\n setTheme(evn.target.value as ReactCodeMirrorProps['theme']);\n }}\n />\n {\n if (/^(dark|light)$/.test(evn.target.value)) {\n document.documentElement.setAttribute('data-color-mode', evn.target.value);\n }\n setTheme(evn.target.value as ReactCodeMirrorProps['theme']);\n }}\n />\n \n \n setHeight(evn.target.value)}\n />\n {\n count++;\n setCode(`console.log(\"Hello World! ${count}\")`);\n }}\n >\n change code\n \n \n \n \n setBasicSetup({ ...basicSetup, lineNumbers: evn.target.checked })}\n >\n lineNumbers\n \n setBasicSetup({ ...basicSetup, foldGutter: evn.target.checked })}\n >\n foldGutter\n \n setBasicSetup({ ...basicSetup, highlightActiveLineGutter: evn.target.checked })}\n >\n highlightActiveLineGutter\n \n setBasicSetup({ ...basicSetup, highlightSpecialChars: evn.target.checked })}\n >\n highlightSpecialChars\n \n setBasicSetup({ ...basicSetup, history: evn.target.checked })}\n >\n history\n \n setBasicSetup({ ...basicSetup, drawSelection: evn.target.checked })}\n >\n drawSelection\n \n setBasicSetup({ ...basicSetup, dropCursor: evn.target.checked })}\n >\n dropCursor\n \n setBasicSetup({ ...basicSetup, allowMultipleSelections: evn.target.checked })}\n >\n allowMultipleSelections\n \n setBasicSetup({ ...basicSetup, indentOnInput: evn.target.checked })}\n >\n indentOnInput\n \n setBasicSetup({ ...basicSetup, syntaxHighlighting: evn.target.checked })}\n >\n syntaxHighlighting\n \n setBasicSetup({ ...basicSetup, bracketMatching: evn.target.checked })}\n >\n bracketMatching\n \n setBasicSetup({ ...basicSetup, closeBrackets: evn.target.checked })}\n >\n closeBrackets\n \n setBasicSetup({ ...basicSetup, autocompletion: evn.target.checked })}\n >\n autocompletion\n \n setBasicSetup({ ...basicSetup, rectangularSelection: evn.target.checked })}\n >\n rectangularSelection\n \n setBasicSetup({ ...basicSetup, crosshairCursor: evn.target.checked })}\n >\n crosshairCursor\n \n setBasicSetup({ ...basicSetup, highlightActiveLine: evn.target.checked })}\n >\n highlightActiveLine\n \n setBasicSetup({ ...basicSetup, highlightSelectionMatches: evn.target.checked })}\n >\n highlightSelectionMatches\n \n setBasicSetup({ ...basicSetup, closeBracketsKeymap: evn.target.checked })}\n >\n closeBracketsKeymap\n \n setBasicSetup({ ...basicSetup, defaultKeymap: evn.target.checked })}\n >\n defaultKeymap\n \n setBasicSetup({ ...basicSetup, searchKeymap: evn.target.checked })}\n >\n searchKeymap\n \n setBasicSetup({ ...basicSetup, historyKeymap: evn.target.checked })}\n >\n historyKeymap\n \n setBasicSetup({ ...basicSetup, foldKeymap: evn.target.checked })}\n >\n foldKeymap\n \n setBasicSetup({ ...basicSetup, completionKeymap: evn.target.checked })}\n >\n completionKeymap\n \n setBasicSetup({ ...basicSetup, lintKeymap: evn.target.checked })}\n >\n lintKeymap\n \n \n \n \n \n );\n}\n","import React from 'react';\nimport { Link } from 'react-router-dom';\nimport styled, { keyframes } from 'styled-components';\nimport GitHubCorners from '@uiw/react-github-corners';\nimport Github from '@uiw/react-shields/github';\nimport Npm from '@uiw/react-shields/npm';\nimport BackToUp from '@uiw/react-back-to-top';\nimport logo from '../../logo.png';\nimport Example from './Example';\n\nconst rotate = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`;\n\nconst AppLogo = styled.img`\n animation: ${rotate} infinite 20s linear;\n height: 80px;\n`;\n\nconst AppTitle = styled.h1`\n font-size: 30px;\n sup {\n position: absolute;\n background: var(--color-neutral-muted);\n padding: 1px 5px;\n font-size: 12px;\n border-radius: 3px;\n }\n`;\n\nconst Describe = styled.p`\n font-size: 18px;\n color: #a5a5a5;\n font-weight: 200;\n`;\n\nconst Buttons = styled.div`\n a {\n outline: none;\n min-height: 30px;\n margin: 6px 5px;\n padding: 0 10px;\n font-size: 14px;\n display: inline-block;\n position: relative;\n overflow: hidden;\n user-select: none;\n border-radius: 3px;\n cursor: pointer;\n background: var(--color-neutral-muted);\n color: var(--color-theme-text);\n line-height: 30px;\n text-decoration: none;\n &.themes {\n background-color: var(--color-prettylights-syntax-variable);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &.special {\n background: var(--color-prettylights-syntax-markup-ignored-bg);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &.extensions {\n background: var(--color-prettylights-syntax-brackethighlighter-unmatched);\n color: var(--color-prettylights-syntax-carriage-return-text);\n }\n &:hover {\n background-color: var(--color-fg-muted);\n color: var(--color-theme-bg);\n transition:\n background-color 0.25s linear,\n color 0.05s linear,\n opacity 0.25s linear,\n filter 0.25s linear,\n visibility 0.25s linear,\n transform 0.25s linear;\n }\n &:last-child {\n color: var(--color-prettylights-syntax-keyword);\n }\n }\n`;\n\nconst Footer = styled.div`\n text-align: center;\n padding-top: 30px;\n padding-bottom: 160px;\n display: flex;\n justify-content: center;\n gap: 6px;\n a {\n text-decoration: none;\n }\n`;\n\nconst AppHeader = styled.div`\n background-color: var(--color-canvas-subtle);\n box-shadow:\n 0px 2px 10px 0px rgba(0, 0, 0, 0.1),\n 0 1px rgba(0, 0, 0, 0.1);\n padding: 120px 20px 40px 20px;\n border-bottom: 1px solid var(--color-canvas-default);\n position: relative;\n z-index: 9;\n text-align: center;\n`;\n\nconst hyperlink: {\n href: string;\n label: string;\n style?: React.CSSProperties;\n}[] = [\n {\n href: 'https://www.npmjs.com/package/@uiw/react-codemirror',\n label: 'On NPM',\n },\n {\n href: 'https://codemirror.net/docs/',\n label: 'CM Documentation',\n },\n {\n href: 'https://jaywcjlove.github.io/#/sponsor',\n label: 'Sponsor',\n style: { backgroundColor: '#0f7c4e' },\n },\n // {\n // href: 'https://github.com/codemirror/dev',\n // label: 'CodeMirror GitHub',\n // },\n {\n href: 'https://raw.githack.com/uiwjs/react-codemirror/doc3/index.html',\n label: 'V3 Doc',\n style: { color: 'red' },\n },\n];\n\nexport function Component() {\n const version = VERSION;\n return (\n
\n \n \n \n \n \n React CodeMirror v{version}\n \n CodeMirror component for React. \n \n \n Theme Editor\n \n \n Themes\n \n \n Extensions\n \n Merge\n {hyperlink.map(({ href, label, style }, idx) => {\n return (\n \n {label}\n \n );\n })}\n \n \n \n
\n \n \n \n \n \n \"NPM\n \n \n \n
\n Top\n
\n );\n}\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n","var map = {\n\t\"./sample.abap.txt\": [\n\t\t8192,\n\t\t8192\n\t],\n\t\"./sample.aes.txt\": [\n\t\t4147,\n\t\t4147\n\t],\n\t\"./sample.apex.txt\": [\n\t\t43602,\n\t\t3602\n\t],\n\t\"./sample.azcli.txt\": [\n\t\t53647,\n\t\t3647\n\t],\n\t\"./sample.bat.txt\": [\n\t\t68531,\n\t\t8531\n\t],\n\t\"./sample.bicep.txt\": [\n\t\t20311,\n\t\t311\n\t],\n\t\"./sample.brainfuck.txt\": [\n\t\t3079,\n\t\t3079\n\t],\n\t\"./sample.c.txt\": [\n\t\t94265,\n\t\t4265\n\t],\n\t\"./sample.cameligo.txt\": [\n\t\t22475,\n\t\t2475\n\t],\n\t\"./sample.clike.txt\": [\n\t\t45936,\n\t\t5936\n\t],\n\t\"./sample.clojure.txt\": [\n\t\t97938,\n\t\t7938\n\t],\n\t\"./sample.coffeescript.txt\": [\n\t\t77319,\n\t\t7319\n\t],\n\t\"./sample.cpp.txt\": [\n\t\t97009,\n\t\t7009\n\t],\n\t\"./sample.csharp.txt\": [\n\t\t80563,\n\t\t563\n\t],\n\t\"./sample.csp.txt\": [\n\t\t91952,\n\t\t1952\n\t],\n\t\"./sample.css.txt\": [\n\t\t42303\n\t],\n\t\"./sample.dart.txt\": [\n\t\t95545,\n\t\t7926\n\t],\n\t\"./sample.dockerfile.txt\": [\n\t\t31056,\n\t\t1056\n\t],\n\t\"./sample.ecl.txt\": [\n\t\t78950,\n\t\t8950\n\t],\n\t\"./sample.elixir.txt\": [\n\t\t64371,\n\t\t4371\n\t],\n\t\"./sample.erlang.txt\": [\n\t\t67559,\n\t\t7559\n\t],\n\t\"./sample.flow9.txt\": [\n\t\t31963,\n\t\t1963\n\t],\n\t\"./sample.freemarker2.txt\": [\n\t\t44736,\n\t\t4736\n\t],\n\t\"./sample.fsharp.txt\": [\n\t\t35112,\n\t\t5112\n\t],\n\t\"./sample.go.txt\": [\n\t\t30572\n\t],\n\t\"./sample.graphql.txt\": [\n\t\t75225,\n\t\t5225\n\t],\n\t\"./sample.handlebars.txt\": [\n\t\t90618,\n\t\t618\n\t],\n\t\"./sample.hcl.txt\": [\n\t\t89047,\n\t\t9047\n\t],\n\t\"./sample.html.txt\": [\n\t\t68853\n\t],\n\t\"./sample.ini.txt\": [\n\t\t80304,\n\t\t304\n\t],\n\t\"./sample.java.txt\": [\n\t\t41422\n\t],\n\t\"./sample.javascript.txt\": [\n\t\t4067\n\t],\n\t\"./sample.json.txt\": [\n\t\t64464\n\t],\n\t\"./sample.jsx.txt\": [\n\t\t61133\n\t],\n\t\"./sample.julia.txt\": [\n\t\t80065,\n\t\t65\n\t],\n\t\"./sample.kotlin.txt\": [\n\t\t71205,\n\t\t1205\n\t],\n\t\"./sample.less.txt\": [\n\t\t43425,\n\t\t3425\n\t],\n\t\"./sample.lex.txt\": [\n\t\t9937,\n\t\t9937\n\t],\n\t\"./sample.lexon.txt\": [\n\t\t30666,\n\t\t666\n\t],\n\t\"./sample.liquid.txt\": [\n\t\t97694,\n\t\t7694\n\t],\n\t\"./sample.livescript.txt\": [\n\t\t1969,\n\t\t1969\n\t],\n\t\"./sample.lua.txt\": [\n\t\t41548,\n\t\t1548\n\t],\n\t\"./sample.m3.txt\": [\n\t\t59674,\n\t\t9674\n\t],\n\t\"./sample.markdown.txt\": [\n\t\t21521\n\t],\n\t\"./sample.mips.txt\": [\n\t\t99359,\n\t\t9359\n\t],\n\t\"./sample.msdax.txt\": [\n\t\t8153,\n\t\t8153\n\t],\n\t\"./sample.mysql.txt\": [\n\t\t10364\n\t],\n\t\"./sample.nginx.txt\": [\n\t\t30706,\n\t\t706\n\t],\n\t\"./sample.objective-c.txt\": [\n\t\t7107,\n\t\t7107\n\t],\n\t\"./sample.pascal.txt\": [\n\t\t36618,\n\t\t6618\n\t],\n\t\"./sample.pascaligo.txt\": [\n\t\t59661,\n\t\t9661\n\t],\n\t\"./sample.perl.txt\": [\n\t\t2169,\n\t\t2169\n\t],\n\t\"./sample.pgsql.txt\": [\n\t\t30807,\n\t\t807\n\t],\n\t\"./sample.php.txt\": [\n\t\t99350\n\t],\n\t\"./sample.pla.txt\": [\n\t\t4063,\n\t\t4063\n\t],\n\t\"./sample.plaintext.txt\": [\n\t\t10419,\n\t\t419\n\t],\n\t\"./sample.postiats.txt\": [\n\t\t63909,\n\t\t3909\n\t],\n\t\"./sample.powerquery.txt\": [\n\t\t32375,\n\t\t2375\n\t],\n\t\"./sample.powershell.txt\": [\n\t\t98589,\n\t\t8589\n\t],\n\t\"./sample.proto.txt\": [\n\t\t48756,\n\t\t8756\n\t],\n\t\"./sample.pug.txt\": [\n\t\t70358,\n\t\t358\n\t],\n\t\"./sample.python.txt\": [\n\t\t44272\n\t],\n\t\"./sample.qsharp.txt\": [\n\t\t37833,\n\t\t7833\n\t],\n\t\"./sample.r.txt\": [\n\t\t50860,\n\t\t860\n\t],\n\t\"./sample.razor.txt\": [\n\t\t56082,\n\t\t6082\n\t],\n\t\"./sample.redis.txt\": [\n\t\t77939,\n\t\t7939\n\t],\n\t\"./sample.redshift.txt\": [\n\t\t11573,\n\t\t1573\n\t],\n\t\"./sample.restructuredtext.txt\": [\n\t\t72681,\n\t\t2681\n\t],\n\t\"./sample.ruby.txt\": [\n\t\t30518,\n\t\t518\n\t],\n\t\"./sample.rust.txt\": [\n\t\t75356\n\t],\n\t\"./sample.sb.txt\": [\n\t\t99273,\n\t\t9273\n\t],\n\t\"./sample.scala.txt\": [\n\t\t51108,\n\t\t1108\n\t],\n\t\"./sample.scheme.txt\": [\n\t\t95823,\n\t\t5823\n\t],\n\t\"./sample.scss.txt\": [\n\t\t56402,\n\t\t6402\n\t],\n\t\"./sample.shell.txt\": [\n\t\t32464\n\t],\n\t\"./sample.sol.txt\": [\n\t\t38592,\n\t\t8592\n\t],\n\t\"./sample.sparql.txt\": [\n\t\t59961,\n\t\t9961\n\t],\n\t\"./sample.sql.txt\": [\n\t\t32066,\n\t\t2066\n\t],\n\t\"./sample.st.txt\": [\n\t\t47695,\n\t\t7695\n\t],\n\t\"./sample.stylus.txt\": [\n\t\t83240,\n\t\t3240\n\t],\n\t\"./sample.swift.txt\": [\n\t\t715\n\t],\n\t\"./sample.systemverilog.txt\": [\n\t\t35545,\n\t\t5545\n\t],\n\t\"./sample.tcl.txt\": [\n\t\t3195,\n\t\t3195\n\t],\n\t\"./sample.toml.txt\": [\n\t\t76854,\n\t\t6854\n\t],\n\t\"./sample.tsx.txt\": [\n\t\t21871\n\t],\n\t\"./sample.twig.txt\": [\n\t\t81421,\n\t\t1421\n\t],\n\t\"./sample.typescript.txt\": [\n\t\t44355\n\t],\n\t\"./sample.vb.txt\": [\n\t\t52766,\n\t\t2766\n\t],\n\t\"./sample.vbscript.txt\": [\n\t\t14675,\n\t\t4675\n\t],\n\t\"./sample.verilog.txt\": [\n\t\t83300,\n\t\t3300\n\t],\n\t\"./sample.vue.txt\": [\n\t\t6150,\n\t\t6150\n\t],\n\t\"./sample.xml.txt\": [\n\t\t49353,\n\t\t9353\n\t],\n\t\"./sample.yaml.txt\": [\n\t\t68783,\n\t\t8783\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 39126;\nmodule.exports = webpackAsyncContext;"],"names":["Label","styled","label","_templateObject","_taggedTemplateLiteral","Options","_ref","children","props","_jsxs","_jsx","type","Warpper","div","_templateObject2","BasicSetupExample","theme","useTheme","basicSetup","setBasicSetup","useState","mdData","useContext","MdContext","PageWarpper","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","tabSize","onChange","evn","Number","target","checked","lineNumbers","foldGutter","highlightActiveLineGutter","highlightSpecialChars","history","drawSelection","dropCursor","allowMultipleSelections","indentOnInput","syntaxHighlighting","bracketMatching","closeBrackets","autocompletion","rectangularSelection","crosshairCursor","highlightActiveLine","highlightSelectionMatches","closeBracketsKeymap","defaultKeymap","searchKeymap","historyKeymap","foldKeymap","completionKeymap","lintKeymap","GITHUB_CORNERS_TEMPLATE","document","createElement","innerHTML","GithubCorners","HTMLElement","observedAttributes","constructor","super","right","this","shadow","attachShadow","mode","appendChild","ownerDocument","importNode","content","update","setAttr","name","svg","querySelector","test","toLocaleLowerCase","lastElementChild","setAttribute","firstElementChild","getAttributeNames","forEach","getAttribute","attributeChangedCallback","oldValue","newValue","customElements","define","_excluded","githubCorners","size","fixed","bottom","zIndex","bgColor","color","position","otherProps","_objectWithoutPropertiesLoose","styl","left","transform","top","_extends","width","href","fill","Issues","React","ref","platform","base","property","user","repo","other","Internal","imgSrc","join","displayName","Size","path","License","Downloads","tag","total","getUrl","baseData","Activity","interval","variant","version","branch","typePath","Analysis","query","Social","Github","Container","Version","components","_react","_interopRequireDefault","_reactCodemirror","_langJavascript","obj","__esModule","_slicedToArray","arr","i","Array","isArray","_arrayWithHoles","r","l","t","Symbol","iterator","e","n","u","a","f","o","call","next","Object","done","push","length","_iterableToArrayLimit","minLen","_arrayLikeToArray","prototype","toString","slice","from","_unsupportedIterableToArray","TypeError","_nonIterableRest","len","arr2","_React$useState2","setValue","useCallback","val","viewUpdate","console","log","javascript","jsx","data","source","headings","headingsList","Select","options","map","item","key","optionProps","themeOptions","concat","keys","alls","filter","heightOptions","count","MarkdownDocument","Tools","CodemirrorWarpper","_templateObject3","_templateObject4","Example","setMode","placeholder","setPlaceholder","autofocus","setAutofocus","editable","setEditable","setTheme","code","setCode","setExtensions","setHeight","handleLangChange","lang","then","default","catch","err","error","useEffect","className","autoFocus","maxWidth","sort","documentElement","onClick","MarkdownPreview","DocumentStr","rotate","keyframes","AppLogo","img","AppTitle","h1","Describe","p","Buttons","_templateObject5","Footer","_templateObject6","AppHeader","_templateObject7","hyperlink","backgroundColor","Component","permanent","dark","light","GitHubCorners","src","logo","alt","VERSION","Link","to","idx","rel","Npm","scope","packageName","BackToUp","arguments","undefined","addEventListener","detail","colorScheme","webpackAsyncContext","req","__webpack_require__","Promise","resolve","Error","ids","id","all","module","exports"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3079.fcc66869.chunk.js b/static/js/3079.fcc66869.chunk.js new file mode 100644 index 000000000..403f45004 --- /dev/null +++ b/static/js/3079.fcc66869.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3079],{3079:(e,l,n)=>{n.r(l),n.d(l,{default:()=>o});const o='[ This program prints "Hello World!" and a newline to the screen, its\n length is 106 active command characters [it is not the shortest.]\n\n This loop is a "comment loop", it\'s a simple way of adding a comment\n to a BF program such that you don\'t have to worry about any command\n characters. Any ".", ",", "+", "-", "<" and ">" characters are simply\n ignored, the "[" and "]" characters just have to be balanced.\n]\n+++++ +++ Set Cell #0 to 8\n[\n >++++ Add 4 to Cell #1; this will always set Cell #1 to 4\n [ as the cell will be cleared by the loop\n >++ Add 2 to Cell #2\n >+++ Add 3 to Cell #3\n >+++ Add 3 to Cell #4\n >+ Add 1 to Cell #5\n <<<<- Decrement the loop counter in Cell #1\n ] Loop till Cell #1 is zero; number of iterations is 4\n >+ Add 1 to Cell #2\n >+ Add 1 to Cell #3\n >- Subtract 1 from Cell #4\n >>+ Add 1 to Cell #6\n [<] Move back to the first zero cell you find; this will\n be Cell #1 which was cleared by the previous loop\n <- Decrement the loop Counter in Cell #0\n] Loop till Cell #0 is zero; number of iterations is 8\n\nThe result of this is:\nCell No : 0 1 2 3 4 5 6\nContents: 0 0 72 104 88 32 8\nPointer : ^\n\n>>. Cell #2 has value 72 which is \'H\'\n>---. Subtract 3 from Cell #3 to get 101 which is \'e\'\n+++++++..+++. Likewise for \'llo\' from Cell #3\n>>. Cell #5 is 32 for the space\n<-. Subtract 1 from Cell #4 for 87 to give a \'W\'\n<. Cell #3 was set to \'o\' from the end of \'Hello\'\n+++.------.--------. Cell #3 for \'rl\' and \'d\'\n>>+. Add 1 to Cell #5 gives us an exclamation point\n>++. And finally a newline from Cell #6'}}]); +//# sourceMappingURL=3079.fcc66869.chunk.js.map \ No newline at end of file diff --git a/static/js/3079.fcc66869.chunk.js.map b/static/js/3079.fcc66869.chunk.js.map new file mode 100644 index 000000000..ad565dea2 --- /dev/null +++ b/static/js/3079.fcc66869.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3079.fcc66869.chunk.js","mappings":"wHAAA,wjE","sources":["../../node_modules/code-example/txt/sample.brainfuck.txt"],"sourcesContent":["export default \"[ This program prints \\\"Hello World!\\\" and a newline to the screen, its\\n length is 106 active command characters [it is not the shortest.]\\n\\n This loop is a \\\"comment loop\\\", it's a simple way of adding a comment\\n to a BF program such that you don't have to worry about any command\\n characters. Any \\\".\\\", \\\",\\\", \\\"+\\\", \\\"-\\\", \\\"<\\\" and \\\">\\\" characters are simply\\n ignored, the \\\"[\\\" and \\\"]\\\" characters just have to be balanced.\\n]\\n+++++ +++ Set Cell #0 to 8\\n[\\n >++++ Add 4 to Cell #1; this will always set Cell #1 to 4\\n [ as the cell will be cleared by the loop\\n >++ Add 2 to Cell #2\\n >+++ Add 3 to Cell #3\\n >+++ Add 3 to Cell #4\\n >+ Add 1 to Cell #5\\n <<<<- Decrement the loop counter in Cell #1\\n ] Loop till Cell #1 is zero; number of iterations is 4\\n >+ Add 1 to Cell #2\\n >+ Add 1 to Cell #3\\n >- Subtract 1 from Cell #4\\n >>+ Add 1 to Cell #6\\n [<] Move back to the first zero cell you find; this will\\n be Cell #1 which was cleared by the previous loop\\n <- Decrement the loop Counter in Cell #0\\n] Loop till Cell #0 is zero; number of iterations is 8\\n\\nThe result of this is:\\nCell No : 0 1 2 3 4 5 6\\nContents: 0 0 72 104 88 32 8\\nPointer : ^\\n\\n>>. Cell #2 has value 72 which is 'H'\\n>---. Subtract 3 from Cell #3 to get 101 which is 'e'\\n+++++++..+++. Likewise for 'llo' from Cell #3\\n>>. Cell #5 is 32 for the space\\n<-. Subtract 1 from Cell #4 for 87 to give a 'W'\\n<. Cell #3 was set to 'o' from the end of 'Hello'\\n+++.------.--------. Cell #3 for 'rl' and 'd'\\n>>+. Add 1 to Cell #5 gives us an exclamation point\\n>++. And finally a newline from Cell #6\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/311.3e403e99.chunk.js b/static/js/311.3e403e99.chunk.js new file mode 100644 index 000000000..f0f2f7d6c --- /dev/null +++ b/static/js/311.3e403e99.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[311],{20311:(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});const o="targetScope = 'subscription'\n\nparam deployStorage bool = true\n\n@description('The object ID of the principal that will get the role assignment')\nparam aadPrincipalId string\n\nmodule stg './storage.bicep' = if(deployStorage) {\n name: 'storageDeploy'\n scope: resourceGroup('another-rg') // this will target another resource group in the same subscription\n params: {\n storageAccountName: ''\n }\n}\n\nvar contributor = 'b24988ac-6180-42a0-ab88-20f7382dd24c'\nresource roleDef 'Microsoft.Authorization/roleDefinitions@2018-01-01-preview' existing = {\n name: contributor\n}\n\nresource rbac 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {\n name: guid(subscription().id, aadPrincipalId, contributor)\n properties: {\n roleDefinitionId: roleDef.id\n principalId: aadPrincipalId\n }\n}\n\noutput storageName array = stg.outputs.containerProps\n"}}]); +//# sourceMappingURL=311.3e403e99.chunk.js.map \ No newline at end of file diff --git a/static/js/311.3e403e99.chunk.js.map b/static/js/311.3e403e99.chunk.js.map new file mode 100644 index 000000000..96813f6a3 --- /dev/null +++ b/static/js/311.3e403e99.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/311.3e403e99.chunk.js","mappings":"wHAAA,k5B","sources":["../../node_modules/code-example/txt/sample.bicep.txt"],"sourcesContent":["export default \"targetScope = 'subscription'\\n\\nparam deployStorage bool = true\\n\\n@description('The object ID of the principal that will get the role assignment')\\nparam aadPrincipalId string\\n\\nmodule stg './storage.bicep' = if(deployStorage) {\\n name: 'storageDeploy'\\n scope: resourceGroup('another-rg') // this will target another resource group in the same subscription\\n params: {\\n storageAccountName: ''\\n }\\n}\\n\\nvar contributor = 'b24988ac-6180-42a0-ab88-20f7382dd24c'\\nresource roleDef 'Microsoft.Authorization/roleDefinitions@2018-01-01-preview' existing = {\\n name: contributor\\n}\\n\\nresource rbac 'Microsoft.Authorization/roleAssignments@2020-04-01-preview' = {\\n name: guid(subscription().id, aadPrincipalId, contributor)\\n properties: {\\n roleDefinitionId: roleDef.id\\n principalId: aadPrincipalId\\n }\\n}\\n\\noutput storageName array = stg.outputs.containerProps\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3195.1bd3a057.chunk.js b/static/js/3195.1bd3a057.chunk.js new file mode 100644 index 000000000..703183f9e --- /dev/null +++ b/static/js/3195.1bd3a057.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3195],{3195:(e,n,i)=>{i.r(n),i.d(n,{default:()=>l});const l="proc find {{basedir .} {filterScript {}}} {\n set oldwd [pwd]\n cd $basedir\n set cwd [pwd]\n set filenames [glob -nocomplain * .*]\n set files {}\n set filt [string length $filterScript]\n foreach filename $filenames {\n if {!$filt || [eval $filterScript [list $filename]]} {\n lappend files [file join $cwd $filename]\n }\n if {[file isdirectory $filename]} {\n set files [concat $files [find $filename $filterScript]]\n }\n }\n cd $oldwd\n return $files\n}\n"}}]); +//# sourceMappingURL=3195.1bd3a057.chunk.js.map \ No newline at end of file diff --git a/static/js/3195.1bd3a057.chunk.js.map b/static/js/3195.1bd3a057.chunk.js.map new file mode 100644 index 000000000..397cdab24 --- /dev/null +++ b/static/js/3195.1bd3a057.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3195.1bd3a057.chunk.js","mappings":"wHAAA,uiB","sources":["../../node_modules/code-example/txt/sample.tcl.txt"],"sourcesContent":["export default \"proc find {{basedir .} {filterScript {}}} {\\n set oldwd [pwd]\\n cd $basedir\\n set cwd [pwd]\\n set filenames [glob -nocomplain * .*]\\n set files {}\\n set filt [string length $filterScript]\\n foreach filename $filenames {\\n if {!$filt || [eval $filterScript [list $filename]]} {\\n lappend files [file join $cwd $filename]\\n }\\n if {[file isdirectory $filename]} {\\n set files [concat $files [find $filename $filterScript]]\\n }\\n }\\n cd $oldwd\\n return $files\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3240.b2c6de23.chunk.js b/static/js/3240.b2c6de23.chunk.js new file mode 100644 index 000000000..cf4b563c8 --- /dev/null +++ b/static/js/3240.b2c6de23.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3240],{83240:(n,o,e)=>{e.r(o),e.d(o,{default:()=>i});const i='/* Stylus mode */\n\n#id,\n.class,\narticle\n font-family Arial, sans-serif\n\n#id,\n.class,\narticle {\n font-family: Arial, sans-serif;\n}\n\n// Variables\nfont-size-base = 16px\nline-height-base = 1.5\nfont-family-base = "Helvetica Neue", Helvetica, Arial, sans-serif\ntext-color = lighten(#000, 20%)\n\nbody\n font font-size-base/line-height-base font-family-base\n color text-color\n\nbody {\n font: 400 16px/1.5 "Helvetica Neue", Helvetica, Arial, sans-serif;\n color: #333;\n}\n\n// Variables\nlink-color = darken(#428bca, 6.5%)\nlink-hover-color = darken(link-color, 15%)\nlink-decoration = none\nlink-hover-decoration = false\n\n// Mixin\ntab-focus()\n outline thin dotted\n outline 5px auto -webkit-focus-ring-color\n outline-offset -2px\n\na\n color link-color\n if link-decoration\n text-decoration link-decoration\n &:hover\n &:focus\n color link-hover-color\n if link-hover-decoration\n text-decoration link-hover-decoration\n &:focus\n tab-focus()\n\na {\n color: #3782c4;\n text-decoration: none;\n}\na:hover,\na:focus {\n color: #2f6ea7;\n}\na:focus {\n outline: thin dotted;\n outline: 5px auto -webkit-focus-ring-color;\n outline-offset: -2px;\n}\n'}}]); +//# sourceMappingURL=3240.b2c6de23.chunk.js.map \ No newline at end of file diff --git a/static/js/3240.b2c6de23.chunk.js.map b/static/js/3240.b2c6de23.chunk.js.map new file mode 100644 index 000000000..c10f5a5cd --- /dev/null +++ b/static/js/3240.b2c6de23.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3240.b2c6de23.chunk.js","mappings":"yHAAA,8rC","sources":["../../node_modules/code-example/txt/sample.stylus.txt"],"sourcesContent":["export default \"/* Stylus mode */\\n\\n#id,\\n.class,\\narticle\\n font-family Arial, sans-serif\\n\\n#id,\\n.class,\\narticle {\\n font-family: Arial, sans-serif;\\n}\\n\\n// Variables\\nfont-size-base = 16px\\nline-height-base = 1.5\\nfont-family-base = \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif\\ntext-color = lighten(#000, 20%)\\n\\nbody\\n font font-size-base/line-height-base font-family-base\\n color text-color\\n\\nbody {\\n font: 400 16px/1.5 \\\"Helvetica Neue\\\", Helvetica, Arial, sans-serif;\\n color: #333;\\n}\\n\\n// Variables\\nlink-color = darken(#428bca, 6.5%)\\nlink-hover-color = darken(link-color, 15%)\\nlink-decoration = none\\nlink-hover-decoration = false\\n\\n// Mixin\\ntab-focus()\\n outline thin dotted\\n outline 5px auto -webkit-focus-ring-color\\n outline-offset -2px\\n\\na\\n color link-color\\n if link-decoration\\n text-decoration link-decoration\\n &:hover\\n &:focus\\n color link-hover-color\\n if link-hover-decoration\\n text-decoration link-hover-decoration\\n &:focus\\n tab-focus()\\n\\na {\\n color: #3782c4;\\n text-decoration: none;\\n}\\na:hover,\\na:focus {\\n color: #2f6ea7;\\n}\\na:focus {\\n outline: thin dotted;\\n outline: 5px auto -webkit-focus-ring-color;\\n outline-offset: -2px;\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3274.7db38441.chunk.js b/static/js/3274.7db38441.chunk.js new file mode 100644 index 000000000..b4558823c --- /dev/null +++ b/static/js/3274.7db38441.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3274],{23274:(e,t,n)=>{n.r(t),n.d(t,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# BBEdit Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bbedit.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit)\n\n\n \"codemirror-theme-bbedit\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-bbedit --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [bbedit, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { bbedit, bbeditInit } from '@uiw/codemirror-theme-bbedit';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsBbedit: CreateThemeOptions['settings'];\nexport declare const bbeditInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const bbedit: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [bbedit, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=3274.7db38441.chunk.js.map \ No newline at end of file diff --git a/static/js/3274.7db38441.chunk.js.map b/static/js/3274.7db38441.chunk.js.map new file mode 100644 index 000000000..519432406 --- /dev/null +++ b/static/js/3274.7db38441.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3274.7db38441.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,++FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/bbedit/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# BBEdit Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-bbedit.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-bbedit)\\n\\n\\n \\\"codemirror-theme-bbedit\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-bbedit --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [bbedit, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { bbedit, bbeditInit } from '@uiw/codemirror-theme-bbedit';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsBbedit: CreateThemeOptions['settings'];\\nexport declare const bbeditInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const bbedit: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { bbedit } from '@uiw/codemirror-theme-bbedit';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [bbedit, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3300.1523c794.chunk.js b/static/js/3300.1523c794.chunk.js new file mode 100644 index 000000000..fe1969cd3 --- /dev/null +++ b/static/js/3300.1523c794.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3300],{83300:(e,n,t)=>{t.r(n),t.d(n,{default:()=>l});const l='`include "first_counter.v"\nmodule first_counter_tb();\n// Declare inputs as regs and outputs as wires\nreg clock, reset, enable;\nwire [3:0] counter_out;\n\n// Initialize all variables\ninitial begin\n $display ("time\\t clk reset enable counter");\n $monitor ("%g\\t %b %b %b %b",\n $time, clock, reset, enable, counter_out);\n clock = 1; // initial value of clock\n reset = 0; // initial value of reset\n enable = 0; // initial value of enable\n #5 reset = 1; // Assert the reset\n #10 reset = 0; // De-assert the reset\n #10 enable = 1; // Assert enable\n #100 enable = 0; // De-assert enable\n #5 $finish; // Terminate simulation\nend\n\n// Clock generator\nalways begin\n #5 clock = ~clock; // Toggle clock every 5 ticks\nend\n\n// Connect DUT to test bench\nfirst_counter U_counter (\nclock,\nreset,\nenable,\ncounter_out\n);\n\nendmodule\n'}}]); +//# sourceMappingURL=3300.1523c794.chunk.js.map \ No newline at end of file diff --git a/static/js/3300.1523c794.chunk.js.map b/static/js/3300.1523c794.chunk.js.map new file mode 100644 index 000000000..15dc168d3 --- /dev/null +++ b/static/js/3300.1523c794.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3300.1523c794.chunk.js","mappings":"yHAAA,05B","sources":["../../node_modules/code-example/txt/sample.verilog.txt"],"sourcesContent":["export default \"`include \\\"first_counter.v\\\"\\nmodule first_counter_tb();\\n// Declare inputs as regs and outputs as wires\\nreg clock, reset, enable;\\nwire [3:0] counter_out;\\n\\n// Initialize all variables\\ninitial begin\\n $display (\\\"time\\\\t clk reset enable counter\\\");\\n $monitor (\\\"%g\\\\t %b %b %b %b\\\",\\n $time, clock, reset, enable, counter_out);\\n clock = 1; // initial value of clock\\n reset = 0; // initial value of reset\\n enable = 0; // initial value of enable\\n #5 reset = 1; // Assert the reset\\n #10 reset = 0; // De-assert the reset\\n #10 enable = 1; // Assert enable\\n #100 enable = 0; // De-assert enable\\n #5 $finish; // Terminate simulation\\nend\\n\\n// Clock generator\\nalways begin\\n #5 clock = ~clock; // Toggle clock every 5 ticks\\nend\\n\\n// Connect DUT to test bench\\nfirst_counter U_counter (\\nclock,\\nreset,\\nenable,\\ncounter_out\\n);\\n\\nendmodule\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3425.ed9a695e.chunk.js b/static/js/3425.ed9a695e.chunk.js new file mode 100644 index 000000000..68deeda24 --- /dev/null +++ b/static/js/3425.ed9a695e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3425],{43425:(n,e,o)=>{o.r(e),o.d(e,{default:()=>r});const r="@base: #f938ab;\n\n.box-shadow(@style, @c) when (iscolor(@c)) {\n border-radius: @style @c;\n}\n\n.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {\n .box-shadow(@style, rgba(0, 0, 0, @alpha));\n}\n\n.box { \n color: saturate(@base, 5%);\n border-color: lighten(@base, 30%);\n \n div {\n .box-shadow((0 0 5px), 30%);\n }\n}\n\n#header {\n h1 {\n font-size: 26px;\n font-weight: bold;\n }\n \n p { font-size: 12px;\n a { text-decoration: none;\n &:hover { border-width: 1px }\n }\n }\n}\n\n@the-border: 1px;\n@base-color: #111;\n@red: #842210;\n\n#header {\n color: (@base-color * 3);\n border-left: @the-border;\n border-right: (@the-border * 2);\n}\n\n#footer {\n color: (@base-color + #003300);\n border-color: desaturate(@red, 10%);\n}\n"}}]); +//# sourceMappingURL=3425.ed9a695e.chunk.js.map \ No newline at end of file diff --git a/static/js/3425.ed9a695e.chunk.js.map b/static/js/3425.ed9a695e.chunk.js.map new file mode 100644 index 000000000..b0fe2219f --- /dev/null +++ b/static/js/3425.ed9a695e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3425.ed9a695e.chunk.js","mappings":"yHAAA,myB","sources":["../../node_modules/code-example/txt/sample.less.txt"],"sourcesContent":["export default \"@base: #f938ab;\\n\\n.box-shadow(@style, @c) when (iscolor(@c)) {\\n border-radius: @style @c;\\n}\\n\\n.box-shadow(@style, @alpha: 50%) when (isnumber(@alpha)) {\\n .box-shadow(@style, rgba(0, 0, 0, @alpha));\\n}\\n\\n.box { \\n color: saturate(@base, 5%);\\n border-color: lighten(@base, 30%);\\n \\n div {\\n .box-shadow((0 0 5px), 30%);\\n }\\n}\\n\\n#header {\\n h1 {\\n font-size: 26px;\\n font-weight: bold;\\n }\\n \\n p { font-size: 12px;\\n a { text-decoration: none;\\n &:hover { border-width: 1px }\\n }\\n }\\n}\\n\\n@the-border: 1px;\\n@base-color: #111;\\n@red: #842210;\\n\\n#header {\\n color: (@base-color * 3);\\n border-left: @the-border;\\n border-right: (@the-border * 2);\\n}\\n\\n#footer {\\n color: (@base-color + #003300);\\n border-color: desaturate(@red, 10%);\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3529.169757af.chunk.js b/static/js/3529.169757af.chunk.js new file mode 100644 index 000000000..277f37ace --- /dev/null +++ b/static/js/3529.169757af.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3529],{13529:(t,e,o)=>{o.r(e),o.d(e,{abcdef:()=>_,abcdefInit:()=>g,abyss:()=>W,abyssInit:()=>I,androidstudio:()=>H,androidstudioInit:()=>M,atomone:()=>q,atomoneInit:()=>K,aura:()=>O,auraInit:()=>G,bbedit:()=>T,bbeditInit:()=>P,bespin:()=>X,bespinInit:()=>R,darcula:()=>J,darculaInit:()=>j,defaultSettingsAbcdef:()=>l,defaultSettingsAbyss:()=>C,defaultSettingsAndroidstudio:()=>E,defaultSettingsAtomone:()=>L,defaultSettingsAura:()=>z,defaultSettingsBbedit:()=>U,defaultSettingsBespin:()=>V,defaultSettingsDarcula:()=>Q,defaultSettingsDracula:()=>Y,defaultSettingsDuotoneDark:()=>at,defaultSettingsDuotoneLight:()=>tt,defaultSettingsEclipse:()=>ct,defaultSettingsGithubDark:()=>st,defaultSettingsGithubLight:()=>gt,defaultSettingsGruvboxDark:()=>ft,defaultSettingsGruvboxLight:()=>ht,defaultSettingsKimbie:()=>Kt,defaultSettingsMaterial:()=>Gt,defaultSettingsMaterialDark:()=>Ot,defaultSettingsMaterialLight:()=>Rt,defaultSettingsMonokai:()=>ie,defaultSettingsMonokaiDimmed:()=>Ce,defaultSettingsNoctisLilac:()=>Ee,defaultSettingsNord:()=>Le,defaultSettingsOkaidia:()=>ze,defaultSettingsQuietlight:()=>ro,defaultSettingsRed:()=>vo,defaultSettingsSolarizedDark:()=>Po,defaultSettingsSolarizedLight:()=>Aa,defaultSettingsSublime:()=>_a,defaultSettingsTokyoNight:()=>da,defaultSettingsTokyoNightDay:()=>pa,defaultSettingsTokyoNightStorm:()=>ua,defaultSettingsTomorrowNightBlue:()=>qa,defaultSettingsVscodeDark:()=>Oa,defaultSettingsXcodeDark:()=>Xa,defaultSettingsXcodeLight:()=>Ta,dracula:()=>$,draculaInit:()=>Z,duotoneDark:()=>nt,duotoneDarkInit:()=>rt,duotoneLight:()=>ot,duotoneLightInit:()=>et,eclipse:()=>lt,eclipseInit:()=>At,githubDark:()=>mt,githubDarkInit:()=>dt,githubLight:()=>it,githubLightInit:()=>_t,gruvboxDark:()=>bt,gruvboxDarkInit:()=>ut,gruvboxLight:()=>Nt,gruvboxLightInit:()=>pt,kimbie:()=>zt,kimbieInit:()=>qt,material:()=>Vt,materialDark:()=>Tt,materialDarkInit:()=>Pt,materialInit:()=>Ut,materialLight:()=>Qt,materialLightInit:()=>Xt,monokai:()=>de,monokaiDimmed:()=>We,monokaiDimmedInit:()=>Ie,monokaiInit:()=>se,noctisLilac:()=>He,noctisLilacInit:()=>Me,nord:()=>qe,nordInit:()=>Ke,okaidia:()=>Oe,okaidiaInit:()=>Ge,quietlight:()=>co,quietlightInit:()=>no,red:()=>Bo,redInit:()=>Do,solarizedDark:()=>Vo,solarizedDarkInit:()=>To,solarizedLight:()=>ga,solarizedLightInit:()=>la,sublime:()=>sa,sublimeInit:()=>ia,tokyoNight:()=>fa,tokyoNightDay:()=>ya,tokyoNightDayInit:()=>Na,tokyoNightInit:()=>ma,tokyoNightStorm:()=>ha,tokyoNightStormInit:()=>ba,tomorrowNightBlue:()=>Ga,tomorrowNightBlueInit:()=>za,vscodeDark:()=>Pa,vscodeDarkInit:()=>Ua,xcodeDark:()=>ja,xcodeDarkInit:()=>Qa,xcodeLight:()=>Ra,xcodeLightInit:()=>Va});var a=o(68102),r=o(1345),n=o(67538),c=o(4859),A=t=>{var{theme:e,settings:o={},styles:a=[]}=t,r={".cm-gutters":{}},A={};o.background&&(A.backgroundColor=o.background),o.foreground&&(A.color=o.foreground),(o.background||o.foreground)&&(r["&"]=A),o.fontFamily&&(r["&.cm-editor .cm-scroller"]={fontFamily:o.fontFamily}),o.gutterBackground&&(r[".cm-gutters"].backgroundColor=o.gutterBackground),o.gutterForeground&&(r[".cm-gutters"].color=o.gutterForeground),o.gutterBorder&&(r[".cm-gutters"].borderRightColor=o.gutterBorder),o.caret&&(r[".cm-content"]={caretColor:o.caret},r[".cm-cursor, .cm-dropCursor"]={borderLeftColor:o.caret});var l={};o.gutterActiveForeground&&(l.color=o.gutterActiveForeground),o.lineHighlight&&(r[".cm-activeLine"]={backgroundColor:o.lineHighlight},l.backgroundColor=o.lineHighlight),r[".cm-activeLineGutter"]=l,o.selection&&(r["&.cm-focused .cm-selectionBackground, &.cm-focused .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection"]={background:o.selection+" !important"}),o.selectionMatch&&(r["& .cm-selectionMatch"]={backgroundColor:o.selectionMatch});var g=n.Lz.theme(r,{dark:"dark"===e}),_=c.cr.define(a);return[g,(0,c.y9)(_)]};var l={background:"#0f0f0f",foreground:"#defdef",caret:"#00FF00",selection:"#515151",selectionMatch:"#515151",gutterBackground:"#555",gutterForeground:"#FFFFFF",lineHighlight:"#314151"},g=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},l,o),styles:[{tag:r._A.keyword,color:"darkgoldenrod",fontWeight:"bold"},{tag:r._A.atom,color:"#77F"},{tag:r._A.comment,color:"#7a7b7c",fontStyle:"italic"},{tag:r._A.number,color:"violet"},{tag:r._A.definition(r._A.variableName),color:"#fffabc"},{tag:r._A.variableName,color:"#abcdef"},{tag:r._A.function(r._A.variableName),color:"#fffabc"},{tag:r._A.typeName,color:"#FFDD44"},{tag:r._A.tagName,color:"#def"},{tag:r._A.string,color:"#2b4"},{tag:r._A.meta,color:"#C9F"},{tag:r._A.bracket,color:"#8a8a8a"},{tag:r._A.attributeName,color:"#DDFF00"},{tag:r._A.heading,color:"aquamarine",fontWeight:"bold"},{tag:r._A.link,color:"blueviolet",fontWeight:"bold"},...n]})},_=g(),i="#000c18",s="#6688cc",d="#770811",m="#770811",f="#ddbb88",u="#082050",b="#225588",h="#2277ff",p="#9966b8",N="#22aa44",y="#f280d0",k="#9966b8",F="#ddbb88",v="#f280d0",D="#384887",B="#6688cc",S="#A22D44",x="#22aa44",w="#225588",C={background:i,foreground:s,caret:f,selection:d,selectionMatch:m,gutterBackground:i,gutterForeground:s,lineHighlight:u},I=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},C,o),styles:[{tag:r._A.keyword,color:b},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:h},{tag:[r._A.propertyName],color:p},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:N},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:p},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:y},{tag:[r._A.definition(r._A.name),r._A.separator],color:h},{tag:[r._A.className],color:F},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:v},{tag:[r._A.typeName],color:k,fontStyle:k},{tag:[r._A.operator,r._A.operatorKeyword],color:b},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:x},{tag:[r._A.meta,r._A.comment],color:D},{tag:r._A.tagName,color:w},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:B},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:h},{tag:r._A.invalid,color:S},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},W=I(),E={background:"#282b2e",foreground:"#a9b7c6",caret:"#00FF00",selection:"#343739",selectionMatch:"#343739",lineHighlight:"#343739"},M=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},E,o),styles:[{tag:[r._A.keyword,r._A.deleted,r._A.className],color:"#cc7832"},{tag:[r._A.number,r._A.literal,r._A.derefOperator],color:"#6897bb"},{tag:[r._A.link,r._A.variableName],color:"#629755"},{tag:[r._A.comment,r._A.quote],color:"grey"},{tag:[r._A.meta,r._A.documentMeta],color:"#bbb529"},{tag:[r._A.string,r._A.propertyName,r._A.attributeValue],color:"#6a8759"},{tag:[r._A.heading,r._A.typeName],color:"#ffc66d"},{tag:[r._A.attributeName],color:"#a9b7c6"},{tag:[r._A.emphasis],fontStyle:"italic"},...n]})},H=M(),L={background:"#272C35",foreground:"#9d9b97",caret:"#797977",selection:"#ffffff30",selectionMatch:"#2B323D",gutterBackground:"#272C35",gutterForeground:"#465063",gutterBorder:"transparent",lineHighlight:"#2B323D"},K=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},L,o),styles:[{tag:[r._A.function(r._A.variableName),r._A.function(r._A.propertyName),r._A.url,r._A.processingInstruction],color:"hsl(207, 82%, 66%)"},{tag:[r._A.tagName,r._A.heading],color:"#e06c75"},{tag:r._A.comment,color:"#54636D"},{tag:[r._A.propertyName],color:"hsl(220, 14%, 71%)"},{tag:[r._A.attributeName,r._A.number],color:"hsl( 29, 54%, 61%)"},{tag:r._A.className,color:"hsl( 39, 67%, 69%)"},{tag:r._A.keyword,color:"hsl(286, 60%, 67%)"},{tag:[r._A.string,r._A.regexp,r._A.special(r._A.propertyName)],color:"#98c379"},...n]})},q=K(),z={background:"#21202e",foreground:"#edecee",caret:"#a277ff",selection:"#3d375e7f",selectionMatch:"#3d375e7f",gutterBackground:"#21202e",gutterForeground:"#edecee",gutterBorder:"transparent",lineHighlight:"#a394f033"},G=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},z,o),styles:[{tag:r._A.keyword,color:"#a277ff"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#edecee"},{tag:[r._A.propertyName],color:"#ffca85"},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:"#61ffca"},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:"#ffca85"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#61ffca"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#edecee"},{tag:[r._A.className],color:"#82e2ff"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#61ffca"},{tag:[r._A.typeName],color:"#82e2ff"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#a277ff"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#61ffca"},{tag:[r._A.meta,r._A.comment],color:"#6d6d6d"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:"#a277ff"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#edecee"},{tag:r._A.invalid,color:"#ff6767"},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},O=G(),U={background:"#FFFFFF",foreground:"#000000",caret:"#FBAC52",selection:"#FFD420",selectionMatch:"#FFD420",gutterBackground:"#f5f5f5",gutterForeground:"#4D4D4C",gutterBorder:"transparent",lineHighlight:"#00000012"},P=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},U,o),styles:[{tag:[r._A.meta,r._A.comment],color:"#804000"},{tag:[r._A.keyword,r._A.strong],color:"#0000FF"},{tag:[r._A.number],color:"#FF0080"},{tag:[r._A.string],color:"#FF0080"},{tag:[r._A.variableName],color:"#006600"},{tag:[r._A.escape],color:"#33CC33"},{tag:[r._A.tagName],color:"#1C02FF"},{tag:[r._A.heading],color:"#0C07FF"},{tag:[r._A.quote],color:"#000000"},{tag:[r._A.list],color:"#B90690"},{tag:[r._A.documentMeta],color:"#888888"},{tag:[r._A.function(r._A.variableName)],color:"#0000A2"},{tag:[r._A.definition(r._A.typeName),r._A.typeName],color:"#6D79DE"},...n]})},T=P(),V={background:"#28211c",foreground:"#9d9b97",caret:"#797977",selection:"#36312e",selectionMatch:"#4f382b",gutterBackground:"#28211c",gutterForeground:"#666666",lineHighlight:"rgba(255, 255, 255, 0.1)"},R=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},V,o),styles:[{tag:[r._A.atom,r._A.number,r._A.link,r._A.bool],color:"#9b859d"},{tag:r._A.comment,color:"#937121"},{tag:[r._A.keyword,r._A.tagName],color:"#cf6a4c"},{tag:r._A.string,color:"#f9ee98"},{tag:r._A.bracket,color:"#9d9b97"},{tag:[r._A.variableName],color:"#5ea6ea"},{tag:r._A.definition(r._A.variableName),color:"#cf7d34"},{tag:[r._A.function(r._A.variableName),r._A.className],color:"#cf7d34"},{tag:[r._A.propertyName,r._A.attributeName],color:"#54be0d"},...n]})},X=R(),Q={background:"#2B2B2B",foreground:"#f8f8f2",caret:"#FFFFFF",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"rgba(255, 255, 255, 0.1)",gutterForeground:"#999",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},j=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Q,o),styles:[{tag:[r._A.atom,r._A.number],color:"#bd93f9"},{tag:[r._A.comment],color:"#61A151"},{tag:[r._A.string],color:"#6A8759"},{tag:[r._A.variableName,r._A.operator],color:"#A9B7C6"},{tag:[r._A.meta,r._A.className],color:"#A9B7C6"},{tag:[r._A.propertyName],color:"#FFC66D"},{tag:[r._A.keyword],color:"#CC7832"},{tag:[r._A.tagName],color:"#ff79c6"},{tag:[r._A.typeName],color:"#ffb86c"},...n]})},J=j(),Y={background:"#282a36",foreground:"#f8f8f2",caret:"#f8f8f0",selection:"rgba(255, 255, 255, 0.1)",selectionMatch:"rgba(255, 255, 255, 0.2)",gutterBackground:"#282a36",gutterForeground:"#6D8A88",gutterBorder:"transparent",lineHighlight:"rgba(255, 255, 255, 0.1)"},Z=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Y,o),styles:[{tag:r._A.comment,color:"#6272a4"},{tag:r._A.string,color:"#f1fa8c"},{tag:r._A.atom,color:"#bd93f9"},{tag:r._A.meta,color:"#f8f8f2"},{tag:[r._A.keyword,r._A.operator,r._A.tagName],color:"#ff79c6"},{tag:[r._A.function(r._A.propertyName),r._A.propertyName],color:"#66d9ef"},{tag:[r._A.definition(r._A.variableName),r._A.function(r._A.variableName),r._A.className,r._A.attributeName],color:"#50fa7b"},{tag:r._A.atom,color:"#bd93f9"},...n]})},$=Z(),tt={background:"#faf8f5",foreground:"#b29762",caret:"#93abdc",selection:"#e3dcce",selectionMatch:"#e3dcce",gutterBackground:"#faf8f5",gutterForeground:"#cdc4b1",gutterBorder:"transparent",lineHighlight:"#EFEFEF"},et=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},tt,o),styles:[{tag:[r._A.comment,r._A.bracket],color:"#b6ad9a"},{tag:[r._A.atom,r._A.number,r._A.keyword,r._A.link,r._A.attributeName,r._A.quote],color:"#063289"},{tag:[r._A.emphasis,r._A.heading,r._A.tagName,r._A.propertyName,r._A.variableName],color:"#2d2006"},{tag:[r._A.typeName,r._A.url,r._A.string],color:"#896724"},{tag:[r._A.operator,r._A.string],color:"#1659df"},{tag:[r._A.propertyName],color:"#b29762"},{tag:[r._A.unit,r._A.punctuation],color:"#063289"},...n]})},ot=et(),at={background:"#2a2734",foreground:"#6c6783",caret:"#ffad5c",selection:"rgba(255, 255, 255, 0.1)",gutterBackground:"#2a2734",gutterForeground:"#545167",lineHighlight:"#36334280"},rt=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},at,o),styles:[{tag:[r._A.comment,r._A.bracket],color:"#6c6783"},{tag:[r._A.atom,r._A.number,r._A.keyword,r._A.link,r._A.attributeName,r._A.quote],color:"#ffcc99"},{tag:[r._A.emphasis,r._A.heading,r._A.tagName,r._A.propertyName,r._A.className,r._A.variableName],color:"#eeebff"},{tag:[r._A.typeName,r._A.url],color:"#7a63ee"},{tag:r._A.operator,color:"#ffad5c"},{tag:r._A.string,color:"#ffb870"},{tag:[r._A.propertyName],color:"#9a86fd"},{tag:[r._A.unit,r._A.punctuation],color:"#e09142"},...n]})},nt=rt(),ct={background:"#fff",foreground:"#000",caret:"#FFFFFF",selection:"#d7d4f0",selectionMatch:"#d7d4f0",gutterBackground:"#f7f7f7",gutterForeground:"#999",lineHighlight:"#e8f2ff",gutterBorder:"transparent"},At=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ct,o),styles:[{tag:[r._A.comment],color:"#3F7F5F"},{tag:[r._A.documentMeta],color:"#FF1717"},{tag:r._A.keyword,color:"#7F0055",fontWeight:"bold"},{tag:r._A.atom,color:"#00f"},{tag:r._A.number,color:"#164"},{tag:r._A.propertyName,color:"#164"},{tag:[r._A.variableName,r._A.definition(r._A.variableName)],color:"#0000C0"},{tag:r._A.function(r._A.variableName),color:"#0000C0"},{tag:r._A.string,color:"#2A00FF"},{tag:r._A.operator,color:"black"},{tag:r._A.tagName,color:"#170"},{tag:r._A.attributeName,color:"#00c"},{tag:r._A.link,color:"#219"},...n]})},lt=At(),gt={background:"#fff",foreground:"#24292e",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#6e7781"},_t=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},gt,o),styles:[{tag:[r._A.standard(r._A.tagName),r._A.tagName],color:"#116329"},{tag:[r._A.comment,r._A.bracket],color:"#6a737d"},{tag:[r._A.className,r._A.propertyName],color:"#6f42c1"},{tag:[r._A.variableName,r._A.attributeName,r._A.number,r._A.operator],color:"#005cc5"},{tag:[r._A.keyword,r._A.typeName,r._A.typeOperator,r._A.typeName],color:"#d73a49"},{tag:[r._A.string,r._A.meta,r._A.regexp],color:"#032f62"},{tag:[r._A.name,r._A.quote],color:"#22863a"},{tag:[r._A.heading],color:"#24292e",fontWeight:"bold"},{tag:[r._A.emphasis],color:"#24292e",fontStyle:"italic"},{tag:[r._A.deleted],color:"#b31d28",backgroundColor:"ffeef0"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#e36209"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#032f62"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.invalid,color:"#cb2431"},...n]})},it=_t(),st={background:"#0d1117",foreground:"#c9d1d9",caret:"#c9d1d9",selection:"#003d73",selectionMatch:"#003d73",lineHighlight:"#36334280"},dt=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},st,o),styles:[{tag:[r._A.standard(r._A.tagName),r._A.tagName],color:"#7ee787"},{tag:[r._A.comment,r._A.bracket],color:"#8b949e"},{tag:[r._A.className,r._A.propertyName],color:"#d2a8ff"},{tag:[r._A.variableName,r._A.attributeName,r._A.number,r._A.operator],color:"#79c0ff"},{tag:[r._A.keyword,r._A.typeName,r._A.typeOperator,r._A.typeName],color:"#ff7b72"},{tag:[r._A.string,r._A.meta,r._A.regexp],color:"#a5d6ff"},{tag:[r._A.name,r._A.quote],color:"#7ee787"},{tag:[r._A.heading],color:"#d2a8ff",fontWeight:"bold"},{tag:[r._A.emphasis],color:"#d2a8ff",fontStyle:"italic"},{tag:[r._A.deleted],color:"#ffdcd7",backgroundColor:"ffeef0"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#ffab70"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.invalid,color:"#f97583"},...n]})},mt=dt(),ft={background:"#282828",foreground:"#ebdbb2",caret:"#ebdbb2",selection:"#bdae93",selectionMatch:"#bdae93",lineHighlight:"#3c3836",gutterBackground:"#282828",gutterForeground:"#7c6f64"},ut=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ft,o),styles:[{tag:r._A.keyword,color:"#fb4934"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.propertyName,r._A.macroName],color:"#8ec07c"},{tag:[r._A.variableName],color:"#83a598"},{tag:[r._A.function(r._A.variableName)],color:"#b8bb26",fontStyle:"bold"},{tag:[r._A.labelName],color:"#ebdbb2"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#d3869b"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#ebdbb2"},{tag:[r._A.brace],color:"#ebdbb2"},{tag:[r._A.annotation],color:"#fb4934d"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#d3869b"},{tag:[r._A.typeName,r._A.className],color:"#fabd2f"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#fb4934"},{tag:[r._A.tagName],color:"#8ec07c",fontStyle:"bold"},{tag:[r._A.squareBracket],color:"#fe8019"},{tag:[r._A.angleBracket],color:"#83a598"},{tag:[r._A.attributeName],color:"#8ec07c"},{tag:[r._A.regexp],color:"#8ec07c"},{tag:[r._A.quote],color:"#928374"},{tag:[r._A.string],color:"#ebdbb2"},{tag:r._A.link,color:"#a89984",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[r._A.url,r._A.escape,r._A.special(r._A.string)],color:"#d3869b"},{tag:[r._A.meta],color:"#fabd2f"},{tag:[r._A.comment],color:"#928374",fontStyle:"italic"},{tag:r._A.strong,fontWeight:"bold",color:"#fe8019"},{tag:r._A.emphasis,fontStyle:"italic",color:"#b8bb26"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.heading,fontWeight:"bold",color:"#b8bb26"},{tag:[r._A.heading1,r._A.heading2],fontWeight:"bold",color:"#b8bb26"},{tag:[r._A.heading3,r._A.heading4],fontWeight:"bold",color:"#fabd2f"},{tag:[r._A.heading5,r._A.heading6],color:"#fabd2f"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#d3869b"},{tag:[r._A.processingInstruction,r._A.inserted],color:"#83a598"},{tag:[r._A.contentSeparator],color:"#fb4934"},{tag:r._A.invalid,color:"#fe8019",borderBottom:"1px dotted #fb4934d"},...n]})},bt=ut(),ht={background:"#fbf1c7",foreground:"#3c3836",caret:"#af3a03",selection:"#ebdbb2",selectionMatch:"#bdae93",lineHighlight:"#ebdbb2",gutterBackground:"#ebdbb2",gutterForeground:"#665c54",gutterBorder:"transparent"},pt=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ht,o),styles:[{tag:r._A.keyword,color:"#9d0006"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.propertyName,r._A.macroName],color:"#427b58"},{tag:[r._A.variableName],color:"#076678"},{tag:[r._A.function(r._A.variableName)],color:"#79740e",fontStyle:"bold"},{tag:[r._A.labelName],color:"#3c3836"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#8f3f71"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#3c3836"},{tag:[r._A.brace],color:"#3c3836"},{tag:[r._A.annotation],color:"#9d0006"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#8f3f71"},{tag:[r._A.typeName,r._A.className],color:"#b57614"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#9d0006"},{tag:[r._A.tagName],color:"#427b58",fontStyle:"bold"},{tag:[r._A.squareBracket],color:"#af3a03"},{tag:[r._A.angleBracket],color:"#076678"},{tag:[r._A.attributeName],color:"#427b58"},{tag:[r._A.regexp],color:"#427b58"},{tag:[r._A.quote],color:"#928374"},{tag:[r._A.string],color:"#3c3836"},{tag:r._A.link,color:"#7c6f64",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[r._A.url,r._A.escape,r._A.special(r._A.string)],color:"#8f3f71"},{tag:[r._A.meta],color:"#b57614"},{tag:[r._A.comment],color:"#928374",fontStyle:"italic"},{tag:r._A.strong,fontWeight:"bold",color:"#af3a03"},{tag:r._A.emphasis,fontStyle:"italic",color:"#79740e"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.heading,fontWeight:"bold",color:"#79740e"},{tag:[r._A.heading1,r._A.heading2],fontWeight:"bold",color:"#79740e"},{tag:[r._A.heading3,r._A.heading4],fontWeight:"bold",color:"#b57614"},{tag:[r._A.heading5,r._A.heading6],color:"#b57614"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#8f3f71"},{tag:[r._A.processingInstruction,r._A.inserted],color:"#076678"},{tag:[r._A.contentSeparator],color:"#9d0006"},{tag:r._A.invalid,color:"#af3a03",borderBottom:"1px dotted #9d0006"},...n]})},Nt=pt(),yt="#221a0f",kt="#d3af86",Ft="#84613daa",vt="#98676a",Dt="#dc3958",Bt="#7e602c",St="#889b4a",xt="#f79a32",wt="#f06431",Ct="#f06431",It="#f79a32",Wt="#a57a4c",Et="#8ab1b0",Mt="#dc3958",Ht="#7e602c",Lt="#dc3958",Kt={background:yt,foreground:kt,caret:"#d3af86",selection:Ft,selectionMatch:Ft,gutterBackground:yt,gutterForeground:kt,lineHighlight:"#5e452b"},qt=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Kt,o),styles:[{tag:r._A.keyword,color:vt},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:Dt},{tag:[r._A.propertyName],color:Bt},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:St},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:Bt},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:xt},{tag:[r._A.definition(r._A.name),r._A.separator],color:Dt},{tag:[r._A.className],color:Ct},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:It},{tag:[r._A.typeName],color:wt,fontStyle:wt},{tag:[r._A.operator,r._A.operatorKeyword],color:vt},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:Ht},{tag:[r._A.meta,r._A.comment],color:Wt},{tag:r._A.tagName,color:Lt},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:Et},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:Dt},{tag:r._A.invalid,color:Mt},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},zt=qt(),Gt={background:"#2e3235",foreground:"#bdbdbd",caret:"#a0a4ae",selection:"#d7d4f0",selectionMatch:"#d7d4f0",gutterBackground:"#2e3235",gutterForeground:"#999",gutterActiveForeground:"#4f5b66",lineHighlight:"#545b61"},Ot=Gt,Ut=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Gt,o),styles:[{tag:r._A.keyword,color:"#cf6edf"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#56c8d8"},{tag:[r._A.propertyName],color:"#facf4e"},{tag:[r._A.variableName],color:"#bdbdbd"},{tag:[r._A.function(r._A.variableName)],color:"#56c8d8"},{tag:[r._A.labelName],color:"#cf6edf"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#facf4e"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#fa5788"},{tag:[r._A.brace],color:"#cf6edf"},{tag:[r._A.annotation],color:"#ff5f52"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#ffad42"},{tag:[r._A.typeName,r._A.className],color:"#ffad42"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#7186f0"},{tag:[r._A.tagName],color:"#99d066"},{tag:[r._A.squareBracket],color:"#ff5f52"},{tag:[r._A.angleBracket],color:"#606f7a"},{tag:[r._A.attributeName],color:"#bdbdbd"},{tag:[r._A.regexp],color:"#ff5f52"},{tag:[r._A.quote],color:"#6abf69"},{tag:[r._A.string],color:"#99d066"},{tag:r._A.link,color:"#56c8d8",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[r._A.url,r._A.escape,r._A.special(r._A.string)],color:"#facf4e"},{tag:[r._A.meta],color:"#707d8b"},{tag:[r._A.comment],color:"#707d8b",fontStyle:"italic"},{tag:r._A.monospace,color:"#bdbdbd"},{tag:r._A.strong,fontWeight:"bold",color:"#ff5f52"},{tag:r._A.emphasis,fontStyle:"italic",color:"#99d066"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.heading,fontWeight:"bold",color:"#facf4e"},{tag:r._A.heading1,fontWeight:"bold",color:"#facf4e"},{tag:[r._A.heading2,r._A.heading3,r._A.heading4],fontWeight:"bold",color:"#facf4e"},{tag:[r._A.heading5,r._A.heading6],color:"#facf4e"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#56c8d8"},{tag:[r._A.processingInstruction,r._A.inserted],color:"#ff5f52"},{tag:[r._A.contentSeparator],color:"#56c8d8"},{tag:r._A.invalid,color:"#606f7a",borderBottom:"1px dotted #ff5f52"},...n]})},Pt=Ut,Tt=Ut(),Vt=Ut(),Rt={background:"#FAFAFA",foreground:"#90A4AE",caret:"#272727",selection:"#80CBC440",selectionMatch:"#FAFAFA",gutterBackground:"#FAFAFA",gutterForeground:"#90A4AE",gutterBorder:"transparent",lineHighlight:"#CCD7DA50"},Xt=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Rt,o),styles:[{tag:r._A.keyword,color:"#39ADB5"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#90A4AE"},{tag:[r._A.propertyName],color:"#6182B8"},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:"#91B859"},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:"#6182B8"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#39ADB5"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#90A4AE"},{tag:[r._A.className],color:"#E2931D"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#F76D47"},{tag:[r._A.typeName],color:"#E2931D",fontStyle:"#E2931D"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#39ADB5"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#91B859"},{tag:[r._A.meta,r._A.comment],color:"#90A4AE"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:"#39ADB5"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#90A4AE"},{tag:r._A.invalid,color:"#E5393570"},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},Qt=Xt(),jt="#272822",Jt="#f8f8f2",Yt="#4a4a7680",Zt="#F92672",$t="#FD971F",te="#66D9EF",ee="#E6DB74",oe="#AE81FF",ae="#66D9EF",re="#A6E22E",ne="#AE81FF",ce="#88846f",Ae="#A6E22E",le="#F44747",ge="#E6DB74",_e="#F92672",ie={background:jt,foreground:Jt,caret:"#f8f8f0",selection:Yt,selectionMatch:Yt,gutterBackground:jt,gutterForeground:Jt,lineHighlight:"#3e3d32"},se=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ie,o),styles:[{tag:r._A.keyword,color:Zt},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:$t},{tag:[r._A.propertyName],color:te},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:ee},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:te},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:oe},{tag:[r._A.definition(r._A.name),r._A.separator],color:$t},{tag:[r._A.className],color:re},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:ne},{tag:[r._A.typeName],color:ae,fontStyle:ae},{tag:[r._A.operator,r._A.operatorKeyword],color:Zt},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:ge},{tag:[r._A.meta,r._A.comment],color:ce},{tag:r._A.tagName,color:_e},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:Ae},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:$t},{tag:r._A.invalid,color:le},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},de=se(),me="#1e1e1e",fe="#c5c8c6",ue="#4747a180",be="#676867",he="#c7444a",pe="#9872A2",Ne="#D08442",ye="#8080FF",ke="#9B0000",Fe="#CE6700",ve="#6089B4",De="#9A9B99",Be="#D0B344",Se="#FF0B00",xe="#D08442",we="#6089B4",Ce={background:me,foreground:fe,caret:"#c07020",selection:ue,selectionMatch:ue,gutterBackground:me,gutterForeground:fe,lineHighlight:"#303030"},Ie=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Ce,o),styles:[{tag:r._A.keyword,color:be},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:he},{tag:[r._A.propertyName],color:pe},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:Ne},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:pe},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:ye},{tag:[r._A.definition(r._A.name),r._A.separator],color:he},{tag:[r._A.className],color:Fe},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:ve},{tag:[r._A.typeName],color:ke,fontStyle:ke},{tag:[r._A.operator,r._A.operatorKeyword],color:be},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:xe},{tag:[r._A.meta,r._A.comment],color:De},{tag:r._A.tagName,color:we},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:Be},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:he},{tag:r._A.invalid,color:Se},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},We=Ie(),Ee={background:"#f2f1f8",foreground:"#0c006b",caret:"#5c49e9",selection:"#d5d1f2",selectionMatch:"#d5d1f2",gutterBackground:"#f2f1f8",gutterForeground:"#0c006b70",lineHighlight:"#e1def3"},Me=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Ee,o),styles:[{tag:r._A.comment,color:"#9995b7"},{tag:r._A.keyword,color:"#ff5792",fontWeight:"bold"},{tag:[r._A.definitionKeyword,r._A.modifier],color:"#ff5792"},{tag:[r._A.className,r._A.tagName,r._A.definition(r._A.typeName)],color:"#0094f0"},{tag:[r._A.number,r._A.bool,r._A.null,r._A.special(r._A.brace)],color:"#5842ff"},{tag:[r._A.definition(r._A.propertyName),r._A.function(r._A.variableName)],color:"#0095a8"},{tag:r._A.typeName,color:"#b3694d"},{tag:[r._A.propertyName,r._A.variableName],color:"#fa8900"},{tag:r._A.operator,color:"#ff5792"},{tag:r._A.self,color:"#e64100"},{tag:[r._A.string,r._A.regexp],color:"#00b368"},{tag:[r._A.paren,r._A.bracket],color:"#0431fa"},{tag:r._A.labelName,color:"#00bdd6"},{tag:r._A.attributeName,color:"#e64100"},{tag:r._A.angleBracket,color:"#9995b7"},...n]})},He=Me(),Le={background:"#2e3440",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#3b4252",selectionMatch:"#e5e9f0",gutterBackground:"#2e3440",gutterForeground:"#4c566a",gutterActiveForeground:"#d8dee9",lineHighlight:"#4c566a"},Ke=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Le,o),styles:[{tag:r._A.keyword,color:"#5e81ac"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.propertyName,r._A.macroName],color:"#88c0d0"},{tag:[r._A.variableName],color:"#8fbcbb"},{tag:[r._A.function(r._A.variableName)],color:"#8fbcbb"},{tag:[r._A.labelName],color:"#81a1c1"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#5e81ac"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#a3be8c"},{tag:[r._A.brace],color:"#8fbcbb"},{tag:[r._A.annotation],color:"#d30102"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#b48ead"},{tag:[r._A.typeName,r._A.className],color:"#ebcb8b"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#a3be8c"},{tag:[r._A.tagName],color:"#b48ead"},{tag:[r._A.squareBracket],color:"#bf616a"},{tag:[r._A.angleBracket],color:"#d08770"},{tag:[r._A.attributeName],color:"#ebcb8b"},{tag:[r._A.regexp],color:"#5e81ac"},{tag:[r._A.quote],color:"#b48ead"},{tag:[r._A.string],color:"#a3be8c"},{tag:r._A.link,color:"#a3be8c",textDecoration:"underline",textUnderlinePosition:"under"},{tag:[r._A.url,r._A.escape,r._A.special(r._A.string)],color:"#8fbcbb"},{tag:[r._A.meta],color:"#88c0d0"},{tag:[r._A.monospace],color:"#d8dee9",fontStyle:"italic"},{tag:[r._A.comment],color:"#4c566a",fontStyle:"italic"},{tag:r._A.strong,fontWeight:"bold",color:"#5e81ac"},{tag:r._A.emphasis,fontStyle:"italic",color:"#5e81ac"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:r._A.heading,fontWeight:"bold",color:"#5e81ac"},{tag:r._A.special(r._A.heading1),fontWeight:"bold",color:"#5e81ac"},{tag:r._A.heading1,fontWeight:"bold",color:"#5e81ac"},{tag:[r._A.heading2,r._A.heading3,r._A.heading4],fontWeight:"bold",color:"#5e81ac"},{tag:[r._A.heading5,r._A.heading6],color:"#5e81ac"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#d08770"},{tag:[r._A.processingInstruction,r._A.inserted],color:"#8fbcbb"},{tag:[r._A.contentSeparator],color:"#ebcb8b"},{tag:r._A.invalid,color:"#434c5e",borderBottom:"1px dotted #d30102"},...n]})},qe=Ke(),ze={background:"#272822",foreground:"#FFFFFF",caret:"#FFFFFF",selection:"#49483E",selectionMatch:"#49483E",gutterBackground:"#272822",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"},Ge=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ze,o),styles:[{tag:[r._A.comment,r._A.documentMeta],color:"#8292a2"},{tag:[r._A.number,r._A.bool,r._A.null,r._A.atom],color:"#ae81ff"},{tag:[r._A.attributeValue,r._A.className,r._A.name],color:"#e6db74"},{tag:[r._A.propertyName,r._A.attributeName],color:"#a6e22e"},{tag:[r._A.variableName],color:"#9effff"},{tag:[r._A.squareBracket],color:"#bababa"},{tag:[r._A.string,r._A.special(r._A.brace)],color:"#e6db74"},{tag:[r._A.regexp,r._A.className,r._A.typeName,r._A.definition(r._A.typeName)],color:"#66d9ef"},{tag:[r._A.definition(r._A.variableName),r._A.definition(r._A.propertyName),r._A.function(r._A.variableName)],color:"#fd971f"},{tag:[r._A.keyword,r._A.definitionKeyword,r._A.modifier,r._A.tagName,r._A.angleBracket],color:"#f92672"},...n]})},Oe=Ge(),Ue="#F5F5F5",Pe="#333333",Te="#C9D0D9",Ve="#4B69C6",Re="#7A3E9D",Xe="#AA3731",Qe="#448C27",je="#9C5D27",Je="#7A3E9D",Ye="#AA3731",Ze="#9C5D27",$e="#AAAAAA",to="#AA3731",eo="#cd3131",oo="#4B69C6",ao="#4B69C6",ro={background:Ue,foreground:Pe,caret:"#54494B",selection:Te,selectionMatch:Te,gutterBackground:Ue,gutterForeground:Pe,gutterBorder:"transparent",lineHighlight:"#E4F6D4"},no=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ro,o),styles:[{tag:r._A.keyword,color:Ve},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:Re},{tag:[r._A.propertyName],color:Xe},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:Qe},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:Xe},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:je},{tag:[r._A.definition(r._A.name),r._A.separator],color:Re},{tag:[r._A.className],color:Ye},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:Ze},{tag:[r._A.typeName],color:Je,fontStyle:Je},{tag:[r._A.operator,r._A.operatorKeyword],color:Ve},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:oo},{tag:[r._A.meta,r._A.comment],color:$e},{tag:r._A.tagName,color:ao},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:to},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:Re},{tag:r._A.invalid,color:eo},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},co=no(),Ao="#390000",lo="#F8F8F8",go="#750000",_o="#f12727ff",io="#edef7dff",so="#ffb454ff",mo="#edef7dff",fo="#ec0d1e",uo="#9df39fff",bo="#fec758ff",ho="#994646ff",po="#e7c0c0ff",No="#fec758ff",yo="#ffffffff",ko="#edef7dff",Fo="#aa5507ff",vo={background:Ao,foreground:lo,caret:"#970000",selection:go,selectionMatch:go,gutterBackground:Ao,gutterForeground:lo,lineHighlight:"#ff000033"},Do=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},vo,o),styles:[{tag:r._A.keyword,color:_o},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:io},{tag:[r._A.propertyName],color:so},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:mo},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:so},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:fo},{tag:[r._A.definition(r._A.name),r._A.separator],color:io},{tag:[r._A.className],color:bo},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:ho},{tag:[r._A.typeName],color:uo,fontStyle:uo},{tag:[r._A.operator,r._A.operatorKeyword],color:_o},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:ko},{tag:[r._A.meta,r._A.comment],color:po},{tag:r._A.tagName,color:Fo},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:No},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:io},{tag:r._A.invalid,color:yo},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},Bo=Do(),So="#002B36",xo="#839496",wo="#004454AA",Co="#859900",Io="#268BD2",Wo="#268BD2",Eo="#2AA198",Mo="#CB4B16",Ho="#859900",Lo="#268BD2",Ko="#D33682",qo="#586E75",zo="#268BD2",Go="#DC322F",Oo="#DC322F",Uo="#268BD2",Po={background:So,foreground:xo,caret:"#D30102",selection:wo,selectionMatch:wo,gutterBackground:So,gutterForeground:xo,gutterBorder:"transparent",lineHighlight:"#073642"},To=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Po,o),styles:[{tag:r._A.keyword,color:Co},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:Io},{tag:[r._A.propertyName],color:Wo},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:Eo},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:Wo},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:Mo},{tag:[r._A.definition(r._A.name),r._A.separator],color:Io},{tag:[r._A.className],color:Lo},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:Ko},{tag:[r._A.typeName],color:Ho,fontStyle:Ho},{tag:[r._A.operator,r._A.operatorKeyword],color:Co},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:Oo},{tag:[r._A.meta,r._A.comment],color:qo},{tag:r._A.tagName,color:Uo},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:zo},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:Io},{tag:r._A.invalid,color:Go},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},Vo=To(),Ro="#FDF6E3",Xo="#657B83",Qo="#859900",jo="#268BD2",Jo="#268BD2",Yo="#2AA198",Zo="#CB4B16",$o="#859900",ta="#268BD2",ea="#D33682",oa="#93A1A1",aa="#268BD2",ra="#DC322F",na="#DC322F",ca="#268BD2",Aa={background:Ro,foreground:Xo,caret:"#657B83",selection:"#EEE8D5",selectionMatch:"#EEE8D5",gutterBackground:Ro,gutterForeground:Xo,gutterBorder:"transparent",lineHighlight:"#EEE8D5"},la=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Aa,o),styles:[{tag:r._A.keyword,color:Qo},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:jo},{tag:[r._A.propertyName],color:Jo},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:Yo},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:Jo},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:Zo},{tag:[r._A.definition(r._A.name),r._A.separator],color:jo},{tag:[r._A.className],color:ta},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:ea},{tag:[r._A.typeName],color:$o,fontStyle:$o},{tag:[r._A.operator,r._A.operatorKeyword],color:Qo},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:na},{tag:[r._A.meta,r._A.comment],color:oa},{tag:r._A.tagName,color:ca},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:aa},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:jo},{tag:r._A.invalid,color:ra},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},ga=la(),_a={background:"#303841",foreground:"#FFFFFF",caret:"#FBAC52",selection:"#4C5964",selectionMatch:"#3A546E",gutterBackground:"#303841",gutterForeground:"#FFFFFF70",lineHighlight:"#00000059"};function ia(t){var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},_a,o),styles:[{tag:[r._A.meta,r._A.comment],color:"#A2A9B5"},{tag:[r._A.attributeName,r._A.keyword],color:"#B78FBA"},{tag:r._A.function(r._A.variableName),color:"#5AB0B0"},{tag:[r._A.string,r._A.regexp,r._A.attributeValue],color:"#99C592"},{tag:r._A.operator,color:"#f47954"},{tag:[r._A.tagName,r._A.modifier],color:"#E35F63"},{tag:[r._A.number,r._A.definition(r._A.tagName),r._A.className,r._A.definition(r._A.variableName)],color:"#fbac52"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#E35F63"},{tag:r._A.variableName,color:"#539ac4"},{tag:[r._A.propertyName,r._A.typeName],color:"#629ccd"},{tag:r._A.propertyName,color:"#36b7b5"},...n]})}var sa=ia(),da={background:"#1a1b26",foreground:"#787c99",caret:"#c0caf5",selection:"#515c7e40",selectionMatch:"#16161e",gutterBackground:"#1a1b26",gutterForeground:"#787c99",gutterBorder:"transparent",lineHighlight:"#1e202e"},ma=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},da,o),styles:[{tag:r._A.keyword,color:"#bb9af7"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#c0caf5"},{tag:[r._A.propertyName],color:"#7aa2f7"},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:"#9ece6a"},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:"#7aa2f7"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#bb9af7"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#c0caf5"},{tag:[r._A.className],color:"#c0caf5"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#ff9e64"},{tag:[r._A.typeName],color:"#0db9d7"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#bb9af7"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#b4f9f8"},{tag:[r._A.meta,r._A.comment],color:"#444b6a"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:"#89ddff"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#c0caf5"},{tag:r._A.invalid,color:"#ff5370"},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},fa=ma(),ua={background:"#24283b",foreground:"#7982a9",caret:"#c0caf5",selection:"#6f7bb630",selectionMatch:"#1f2335",gutterBackground:"#24283b",gutterForeground:"#7982a9",gutterBorder:"transparent",lineHighlight:"#292e42"},ba=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},ua,o),styles:[{tag:r._A.keyword,color:"#bb9af7"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#c0caf5"},{tag:[r._A.propertyName],color:"#7aa2f7"},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:"#9ece6a"},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:"#7aa2f7"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#bb9af7"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#c0caf5"},{tag:[r._A.className],color:"#c0caf5"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#ff9e64"},{tag:[r._A.typeName],color:"#2ac3de",fontStyle:"#2ac3de"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#bb9af7"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#b4f9f8"},{tag:[r._A.meta,r._A.comment],color:"#565f89"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:"#89ddff"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#c0caf5"},{tag:r._A.invalid,color:"#ff5370"},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},ha=ba(),pa={background:"#e1e2e7",foreground:"#3760bf",caret:"#3760bf",selection:"#99a7df",selectionMatch:"#99a7df",gutterBackground:"#e1e2e7",gutterForeground:"#3760bf",gutterBorder:"transparent",lineHighlight:"#5f5faf11"},Na=t=>{var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},pa,o),styles:[{tag:r._A.keyword,color:"#007197"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:"#3760bf"},{tag:[r._A.propertyName],color:"#3760bf"},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:"#587539"},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:"#3760bf"},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:"#3760bf"},{tag:[r._A.definition(r._A.name),r._A.separator],color:"#3760bf"},{tag:[r._A.className],color:"#3760bf"},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:"#b15c00"},{tag:[r._A.typeName],color:"#007197",fontStyle:"#007197"},{tag:[r._A.operator,r._A.operatorKeyword],color:"#007197"},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:"#587539"},{tag:[r._A.meta,r._A.comment],color:"#848cb5"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:"#b15c00"},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#3760bf"},{tag:r._A.invalid,color:"#f52a65"},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},ya=Na(),ka="#002451",Fa="#ffffff",va="#003f8e",Da="#EBBBFF",Ba="#FFC58F",Sa="#BBDAFF",xa="#D1F1A9",wa="#FFC58F",Ca="#FFEEAD",Ia="#BBDAFF",Wa="#FFC58F",Ea="#7285B7",Ma="#D1F1A9",Ha="#a92049",La="#D1F1A9",Ka="#FF9DA4",qa={background:ka,foreground:Fa,caret:"#ffffff",selection:va,selectionMatch:va,gutterBackground:ka,gutterForeground:Fa,lineHighlight:"#00346e"},za=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},qa,o),styles:[{tag:r._A.keyword,color:Da},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName],color:Ba},{tag:[r._A.propertyName],color:Sa},{tag:[r._A.processingInstruction,r._A.string,r._A.inserted,r._A.special(r._A.string)],color:xa},{tag:[r._A.function(r._A.variableName),r._A.labelName],color:Sa},{tag:[r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name)],color:wa},{tag:[r._A.definition(r._A.name),r._A.separator],color:Ba},{tag:[r._A.className],color:Ia},{tag:[r._A.number,r._A.changed,r._A.annotation,r._A.modifier,r._A.self,r._A.namespace],color:Wa},{tag:[r._A.typeName],color:Ca,fontStyle:Ca},{tag:[r._A.operator,r._A.operatorKeyword],color:Da},{tag:[r._A.url,r._A.escape,r._A.regexp,r._A.link],color:La},{tag:[r._A.meta,r._A.comment],color:Ea},{tag:r._A.tagName,color:Ka},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.link,textDecoration:"underline"},{tag:r._A.heading,fontWeight:"bold",color:Ma},{tag:[r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:Ba},{tag:r._A.invalid,color:Ha},{tag:r._A.strikethrough,textDecoration:"line-through"},...n]})},Ga=za(),Oa={background:"#1e1e1e",foreground:"#9cdcfe",caret:"#c6c6c6",selection:"#6199ff2f",selectionMatch:"#72a1ff59",lineHighlight:"#ffffff0f",gutterBackground:"#1e1e1e",gutterForeground:"#838383",gutterActiveForeground:"#fff",fontFamily:'Menlo, Monaco, Consolas, "Andale Mono", "Ubuntu Mono", "Courier New", monospace'};function Ua(t){var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Oa,o),styles:[{tag:[r._A.keyword,r._A.operatorKeyword,r._A.modifier,r._A.color,r._A.constant(r._A.name),r._A.standard(r._A.name),r._A.standard(r._A.tagName),r._A.special(r._A.brace),r._A.atom,r._A.bool,r._A.special(r._A.variableName)],color:"#569cd6"},{tag:[r._A.controlKeyword,r._A.moduleKeyword],color:"#c586c0"},{tag:[r._A.name,r._A.deleted,r._A.character,r._A.macroName,r._A.propertyName,r._A.variableName,r._A.labelName,r._A.definition(r._A.name)],color:"#9cdcfe"},{tag:r._A.heading,fontWeight:"bold",color:"#9cdcfe"},{tag:[r._A.typeName,r._A.className,r._A.tagName,r._A.number,r._A.changed,r._A.annotation,r._A.self,r._A.namespace],color:"#4ec9b0"},{tag:[r._A.function(r._A.variableName),r._A.function(r._A.propertyName)],color:"#dcdcaa"},{tag:[r._A.number],color:"#b5cea8"},{tag:[r._A.operator,r._A.punctuation,r._A.separator,r._A.url,r._A.escape,r._A.regexp],color:"#d4d4d4"},{tag:[r._A.regexp],color:"#d16969"},{tag:[r._A.special(r._A.string),r._A.processingInstruction,r._A.string,r._A.inserted],color:"#ce9178"},{tag:[r._A.angleBracket],color:"#808080"},{tag:r._A.strong,fontWeight:"bold"},{tag:r._A.emphasis,fontStyle:"italic"},{tag:r._A.strikethrough,textDecoration:"line-through"},{tag:[r._A.meta,r._A.comment],color:"#6a9955"},{tag:r._A.link,color:"#6a9955",textDecoration:"underline"},{tag:r._A.invalid,color:"#ff0000"},...n]})}var Pa=Ua(),Ta={background:"#fff",foreground:"#3D3D3D",selection:"#BBDFFF",selectionMatch:"#BBDFFF",gutterBackground:"#fff",gutterForeground:"#AFAFAF",lineHighlight:"#EDF4FF"};function Va(t){var{theme:e="light",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Ta,o),styles:[{tag:[r._A.comment,r._A.quote],color:"#707F8D"},{tag:[r._A.typeName,r._A.typeOperator],color:"#aa0d91"},{tag:[r._A.keyword],color:"#aa0d91",fontWeight:"bold"},{tag:[r._A.string,r._A.meta],color:"#D23423"},{tag:[r._A.name],color:"#032f62"},{tag:[r._A.typeName],color:"#522BB2"},{tag:[r._A.variableName],color:"#23575C"},{tag:[r._A.definition(r._A.variableName)],color:"#327A9E"},{tag:[r._A.regexp,r._A.link],color:"#0e0eff"},...n]})}var Ra=Va(),Xa={background:"#292A30",foreground:"#CECFD0",caret:"#fff",selection:"#727377",selectionMatch:"#727377",lineHighlight:"#2F3239"},Qa=t=>{var{theme:e="dark",settings:o={},styles:n=[]}=t||{};return A({theme:e,settings:(0,a.A)({},Xa,o),styles:[{tag:[r._A.comment,r._A.quote],color:"#7F8C98"},{tag:[r._A.keyword],color:"#FF7AB2",fontWeight:"bold"},{tag:[r._A.string,r._A.meta],color:"#FF8170"},{tag:[r._A.typeName],color:"#DABAFF"},{tag:[r._A.definition(r._A.variableName)],color:"#6BDFFF"},{tag:[r._A.name],color:"#6BAA9F"},{tag:[r._A.variableName],color:"#ACF2E4"},{tag:[r._A.regexp,r._A.link],color:"#FF8170"},...n]})},ja=Qa()}}]); +//# sourceMappingURL=3529.169757af.chunk.js.map \ No newline at end of file diff --git a/static/js/3529.169757af.chunk.js.map b/static/js/3529.169757af.chunk.js.map new file mode 100644 index 000000000..5544ee0fc --- /dev/null +++ b/static/js/3529.169757af.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3529.169757af.chunk.js","mappings":"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","sources":["../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-themes/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-abcdef/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-abyss/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-abyss/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-androidstudio/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-atomone/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-aura/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-bbedit/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-bespin/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-darcula/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-dracula/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-duotone/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-eclipse/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-github/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-gruvbox-dark/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-kimbie/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-kimbie/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-material/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-monokai/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-monokai/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-monokai-dimmed/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-monokai-dimmed/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-noctis-lilac/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-nord/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-okaidia/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-quietlight/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-quietlight/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-red/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-red/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-solarized/esm/dark-color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-solarized/esm/dark.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-solarized/esm/light-color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-solarized/esm/light.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-sublime/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-tokyo-night/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-tokyo-night-storm/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-tokyo-night-day/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-tomorrow-night-blue/esm/color.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-tomorrow-night-blue/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-vscode/esm/index.js","../node_modules/@uiw/codemirror-themes-all/node_modules/@uiw/codemirror-theme-xcode/esm/index.js"],"sourcesContent":["import { EditorView } from '@codemirror/view';\nimport { HighlightStyle, syntaxHighlighting } from '@codemirror/language';\nexport var createTheme = _ref => {\n var {\n theme,\n settings = {},\n styles = []\n } = _ref;\n var themeOptions = {\n '.cm-gutters': {}\n };\n var baseStyle = {};\n if (settings.background) {\n baseStyle.backgroundColor = settings.background;\n }\n if (settings.foreground) {\n baseStyle.color = settings.foreground;\n }\n if (settings.background || settings.foreground) {\n themeOptions['&'] = baseStyle;\n }\n if (settings.fontFamily) {\n themeOptions['&.cm-editor .cm-scroller'] = {\n fontFamily: settings.fontFamily\n };\n }\n if (settings.gutterBackground) {\n themeOptions['.cm-gutters'].backgroundColor = settings.gutterBackground;\n }\n if (settings.gutterForeground) {\n themeOptions['.cm-gutters'].color = settings.gutterForeground;\n }\n if (settings.gutterBorder) {\n themeOptions['.cm-gutters'].borderRightColor = settings.gutterBorder;\n }\n if (settings.caret) {\n themeOptions['.cm-content'] = {\n caretColor: settings.caret\n };\n themeOptions['.cm-cursor, .cm-dropCursor'] = {\n borderLeftColor: settings.caret\n };\n }\n var activeLineGutterStyle = {};\n if (settings.gutterActiveForeground) {\n activeLineGutterStyle.color = settings.gutterActiveForeground;\n }\n if (settings.lineHighlight) {\n themeOptions['.cm-activeLine'] = {\n backgroundColor: settings.lineHighlight\n };\n activeLineGutterStyle.backgroundColor = settings.lineHighlight;\n }\n themeOptions['.cm-activeLineGutter'] = activeLineGutterStyle;\n if (settings.selection) {\n themeOptions['&.cm-focused .cm-selectionBackground, &.cm-focused .cm-line::selection, & .cm-selectionLayer .cm-selectionBackground, .cm-content ::selection'] = {\n background: settings.selection + ' !important'\n };\n }\n if (settings.selectionMatch) {\n themeOptions['& .cm-selectionMatch'] = {\n backgroundColor: settings.selectionMatch\n };\n }\n var themeExtension = EditorView.theme(themeOptions, {\n dark: theme === 'dark'\n });\n var highlightStyle = HighlightStyle.define(styles);\n var extension = [themeExtension, syntaxHighlighting(highlightStyle)];\n return extension;\n};\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name abcdef\n * @author codemirror.net\n * https://codemirror.net/5/theme/abcdef.css\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsAbcdef = {\n background: '#0f0f0f',\n foreground: '#defdef',\n caret: '#00FF00',\n selection: '#515151',\n selectionMatch: '#515151',\n gutterBackground: '#555',\n gutterForeground: '#FFFFFF',\n lineHighlight: '#314151'\n};\nexport var abcdefInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsAbcdef, settings),\n styles: [{\n tag: t.keyword,\n color: 'darkgoldenrod',\n fontWeight: 'bold'\n }, {\n tag: t.atom,\n color: '#77F'\n }, {\n tag: t.comment,\n color: '#7a7b7c',\n fontStyle: 'italic'\n }, {\n tag: t.number,\n color: 'violet'\n }, {\n tag: t.definition(t.variableName),\n color: '#fffabc'\n }, {\n tag: t.variableName,\n color: '#abcdef'\n }, {\n tag: t.function(t.variableName),\n color: '#fffabc'\n }, {\n tag: t.typeName,\n color: '#FFDD44'\n }, {\n tag: t.tagName,\n color: '#def'\n }, {\n tag: t.string,\n color: '#2b4'\n }, {\n tag: t.meta,\n color: '#C9F'\n },\n // { tag: t.qualifier, color: '#FFF700' },\n // { tag: t.builtin, color: '#30aabc' },\n {\n tag: t.bracket,\n color: '#8a8a8a'\n }, {\n tag: t.attributeName,\n color: '#DDFF00'\n }, {\n tag: t.heading,\n color: 'aquamarine',\n fontWeight: 'bold'\n }, {\n tag: t.link,\n color: 'blueviolet',\n fontWeight: 'bold'\n }, ...styles]\n });\n};\nexport var abcdef = abcdefInit();","export var config = {\n background: '#000c18',\n foreground: '#6688cc',\n selection: '#770811',\n selectionMatch: '#770811',\n cursor: '#ddbb88',\n dropdownBackground: '#181f2f',\n activeLine: '#082050',\n matchingBracket: '#082050',\n keyword: '#225588',\n storage: '#225588',\n variable: '#2277ff',\n parameter: '#2277ff',\n function: '#9966b8',\n string: '#22aa44',\n constant: '#f280d0',\n type: '#9966b8',\n class: '#ddbb88',\n number: '#f280d0',\n comment: '#384887',\n heading: '#6688cc',\n invalid: '#A22D44',\n regexp: '#22aa44',\n tag: '#225588'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsAbyss = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selectionMatch,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n lineHighlight: config.activeLine\n};\nexport var abyssInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsAbyss, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var abyss = abyssInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name androidstudio\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsAndroidstudio = {\n background: '#282b2e',\n foreground: '#a9b7c6',\n caret: '#00FF00',\n selection: '#343739',\n selectionMatch: '#343739',\n lineHighlight: '#343739'\n};\nexport var androidstudioInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsAndroidstudio, settings),\n styles: [{\n tag: [t.keyword, t.deleted, t.className],\n color: '#cc7832'\n }, {\n tag: [t.number, t.literal, t.derefOperator],\n color: '#6897bb'\n }, {\n tag: [t.link, t.variableName],\n color: '#629755'\n }, {\n tag: [t.comment, t.quote],\n color: 'grey'\n }, {\n tag: [t.meta, t.documentMeta],\n color: '#bbb529'\n }, {\n tag: [t.string, t.propertyName, t.attributeValue],\n color: '#6a8759'\n }, {\n tag: [t.heading, t.typeName],\n color: '#ffc66d'\n }, {\n tag: [t.attributeName],\n color: '#a9b7c6'\n }, {\n tag: [t.emphasis],\n fontStyle: 'italic'\n }, ...styles]\n });\n};\nexport var androidstudio = androidstudioInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name Atom One\n * Atom One dark syntax theme\n *\n * https://github.com/atom/one-dark-syntax\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsAtomone = {\n background: '#272C35',\n foreground: '#9d9b97',\n caret: '#797977',\n selection: '#ffffff30',\n selectionMatch: '#2B323D',\n gutterBackground: '#272C35',\n gutterForeground: '#465063',\n gutterBorder: 'transparent',\n lineHighlight: '#2B323D'\n};\nexport var atomoneInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsAtomone, settings),\n styles: [{\n tag: [t.function(t.variableName), t.function(t.propertyName), t.url, t.processingInstruction],\n color: 'hsl(207, 82%, 66%)'\n }, {\n tag: [t.tagName, t.heading],\n color: '#e06c75'\n }, {\n tag: t.comment,\n color: '#54636D'\n }, {\n tag: [t.propertyName],\n color: 'hsl(220, 14%, 71%)'\n }, {\n tag: [t.attributeName, t.number],\n color: 'hsl( 29, 54%, 61%)'\n }, {\n tag: t.className,\n color: 'hsl( 39, 67%, 69%)'\n }, {\n tag: t.keyword,\n color: 'hsl(286, 60%, 67%)'\n }, {\n tag: [t.string, t.regexp, t.special(t.propertyName)],\n color: '#98c379'\n }, ...styles]\n });\n};\nexport var atomone = atomoneInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsAura = {\n background: '#21202e',\n foreground: '#edecee',\n caret: '#a277ff',\n selection: '#3d375e7f',\n selectionMatch: '#3d375e7f',\n gutterBackground: '#21202e',\n gutterForeground: '#edecee',\n gutterBorder: 'transparent',\n lineHighlight: '#a394f033'\n};\nexport var auraInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsAura, settings),\n styles: [{\n tag: t.keyword,\n color: '#a277ff'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#edecee'\n }, {\n tag: [t.propertyName],\n color: '#ffca85'\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: '#61ffca'\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: '#ffca85'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#61ffca'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#edecee'\n }, {\n tag: [t.className],\n color: '#82e2ff'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#61ffca'\n }, {\n tag: [t.typeName],\n color: '#82e2ff'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#a277ff'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#61ffca'\n }, {\n tag: [t.meta, t.comment],\n color: '#6d6d6d'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#a277ff'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#edecee'\n }, {\n tag: t.invalid,\n color: '#ff6767'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var aura = auraInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsBbedit = {\n background: '#FFFFFF',\n foreground: '#000000',\n caret: '#FBAC52',\n selection: '#FFD420',\n selectionMatch: '#FFD420',\n gutterBackground: '#f5f5f5',\n gutterForeground: '#4D4D4C',\n gutterBorder: 'transparent',\n lineHighlight: '#00000012'\n};\nexport var bbeditInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsBbedit, settings),\n styles: [{\n tag: [t.meta, t.comment],\n color: '#804000'\n }, {\n tag: [t.keyword, t.strong],\n color: '#0000FF'\n }, {\n tag: [t.number],\n color: '#FF0080'\n }, {\n tag: [t.string],\n color: '#FF0080'\n }, {\n tag: [t.variableName],\n color: '#006600'\n }, {\n tag: [t.escape],\n color: '#33CC33'\n }, {\n tag: [t.tagName],\n color: '#1C02FF'\n }, {\n tag: [t.heading],\n color: '#0C07FF'\n }, {\n tag: [t.quote],\n color: '#000000'\n }, {\n tag: [t.list],\n color: '#B90690'\n }, {\n tag: [t.documentMeta],\n color: '#888888'\n }, {\n tag: [t.function(t.variableName)],\n color: '#0000A2'\n }, {\n tag: [t.definition(t.typeName), t.typeName],\n color: '#6D79DE'\n }, ...styles]\n });\n};\nexport var bbedit = bbeditInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name Bespin\n * @author Mozilla / Jan T. Sott\n *\n * CodeMirror template by Jan T. Sott (https://github.com/idleberg/base16-codemirror)\n * Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16)\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsBespin = {\n background: '#28211c',\n foreground: '#9d9b97',\n caret: '#797977',\n selection: '#36312e',\n selectionMatch: '#4f382b',\n gutterBackground: '#28211c',\n gutterForeground: '#666666',\n lineHighlight: 'rgba(255, 255, 255, 0.1)'\n};\nexport var bespinInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsBespin, settings),\n styles: [{\n tag: [t.atom, t.number, t.link, t.bool],\n color: '#9b859d'\n }, {\n tag: t.comment,\n color: '#937121'\n }, {\n tag: [t.keyword, t.tagName],\n color: '#cf6a4c'\n }, {\n tag: t.string,\n color: '#f9ee98'\n }, {\n tag: t.bracket,\n color: '#9d9b97'\n }, {\n tag: [t.variableName],\n color: '#5ea6ea'\n }, {\n tag: t.definition(t.variableName),\n color: '#cf7d34'\n }, {\n tag: [t.function(t.variableName), t.className],\n color: '#cf7d34'\n }, {\n tag: [t.propertyName, t.attributeName],\n color: '#54be0d'\n }, ...styles]\n });\n};\nexport var bespin = bespinInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name darcula\n * @author darcula\n * Name: IntelliJ IDEA darcula theme\n * From IntelliJ IDEA by JetBrains\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsDarcula = {\n background: '#2B2B2B',\n foreground: '#f8f8f2',\n caret: '#FFFFFF',\n selection: 'rgba(255, 255, 255, 0.1)',\n selectionMatch: 'rgba(255, 255, 255, 0.2)',\n gutterBackground: 'rgba(255, 255, 255, 0.1)',\n gutterForeground: '#999',\n gutterBorder: 'transparent',\n lineHighlight: 'rgba(255, 255, 255, 0.1)'\n};\nexport var darculaInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsDarcula, settings),\n styles: [{\n tag: [t.atom, t.number],\n color: '#bd93f9'\n }, {\n tag: [t.comment],\n color: '#61A151'\n }, {\n tag: [t.string],\n color: '#6A8759'\n }, {\n tag: [t.variableName, t.operator],\n color: '#A9B7C6'\n }, {\n tag: [t.meta, t.className],\n color: '#A9B7C6'\n }, {\n tag: [t.propertyName],\n color: '#FFC66D'\n }, {\n tag: [t.keyword],\n color: '#CC7832'\n }, {\n tag: [t.tagName],\n color: '#ff79c6'\n }, {\n tag: [t.typeName],\n color: '#ffb86c'\n }, ...styles]\n });\n};\nexport var darcula = darculaInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name dracula\n * @author dracula\n * Michael Kaminsky (http://github.com/mkaminsky11)\n * Original dracula color scheme by Zeno Rocha (https://github.com/zenorocha/dracula-theme)\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsDracula = {\n background: '#282a36',\n foreground: '#f8f8f2',\n caret: '#f8f8f0',\n selection: 'rgba(255, 255, 255, 0.1)',\n selectionMatch: 'rgba(255, 255, 255, 0.2)',\n gutterBackground: '#282a36',\n gutterForeground: '#6D8A88',\n gutterBorder: 'transparent',\n lineHighlight: 'rgba(255, 255, 255, 0.1)'\n};\nexport var draculaInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsDracula, settings),\n styles: [{\n tag: t.comment,\n color: '#6272a4'\n }, {\n tag: t.string,\n color: '#f1fa8c'\n }, {\n tag: t.atom,\n color: '#bd93f9'\n }, {\n tag: t.meta,\n color: '#f8f8f2'\n }, {\n tag: [t.keyword, t.operator, t.tagName],\n color: '#ff79c6'\n }, {\n tag: [t.function(t.propertyName), t.propertyName],\n color: '#66d9ef'\n }, {\n tag: [t.definition(t.variableName), t.function(t.variableName), t.className, t.attributeName],\n color: '#50fa7b'\n }, {\n tag: t.atom,\n color: '#bd93f9'\n }, ...styles]\n });\n};\nexport var dracula = draculaInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name duotone\n * @author Bram de Haan\n * by Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsDuotoneLight = {\n background: '#faf8f5',\n foreground: '#b29762',\n caret: '#93abdc',\n selection: '#e3dcce',\n selectionMatch: '#e3dcce',\n gutterBackground: '#faf8f5',\n gutterForeground: '#cdc4b1',\n gutterBorder: 'transparent',\n lineHighlight: '#EFEFEF'\n};\nexport var duotoneLightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsDuotoneLight, settings),\n styles: [{\n tag: [t.comment, t.bracket],\n color: '#b6ad9a'\n }, {\n tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote],\n color: '#063289'\n }, {\n tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.variableName],\n color: '#2d2006'\n }, {\n tag: [t.typeName, t.url, t.string],\n color: '#896724'\n }, {\n tag: [t.operator, t.string],\n color: '#1659df'\n }, {\n tag: [t.propertyName],\n color: '#b29762'\n }, {\n tag: [t.unit, t.punctuation],\n color: '#063289'\n }, ...styles]\n });\n};\nexport var duotoneLight = duotoneLightInit();\nexport var defaultSettingsDuotoneDark = {\n background: '#2a2734',\n foreground: '#6c6783',\n caret: '#ffad5c',\n selection: 'rgba(255, 255, 255, 0.1)',\n gutterBackground: '#2a2734',\n gutterForeground: '#545167',\n lineHighlight: '#36334280'\n};\nexport var duotoneDarkInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsDuotoneDark, settings),\n styles: [{\n tag: [t.comment, t.bracket],\n color: '#6c6783'\n }, {\n tag: [t.atom, t.number, t.keyword, t.link, t.attributeName, t.quote],\n color: '#ffcc99'\n }, {\n tag: [t.emphasis, t.heading, t.tagName, t.propertyName, t.className, t.variableName],\n color: '#eeebff'\n }, {\n tag: [t.typeName, t.url],\n color: '#7a63ee'\n }, {\n tag: t.operator,\n color: '#ffad5c'\n }, {\n tag: t.string,\n color: '#ffb870'\n }, {\n tag: [t.propertyName],\n color: '#9a86fd'\n }, {\n tag: [t.unit, t.punctuation],\n color: '#e09142'\n }, ...styles]\n });\n};\nexport var duotoneDark = duotoneDarkInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsEclipse = {\n background: '#fff',\n foreground: '#000',\n caret: '#FFFFFF',\n selection: '#d7d4f0',\n selectionMatch: '#d7d4f0',\n gutterBackground: '#f7f7f7',\n gutterForeground: '#999',\n lineHighlight: '#e8f2ff',\n gutterBorder: 'transparent'\n};\nexport var eclipseInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsEclipse, settings),\n styles: [{\n tag: [t.comment],\n color: '#3F7F5F'\n }, {\n tag: [t.documentMeta],\n color: '#FF1717'\n }, {\n tag: t.keyword,\n color: '#7F0055',\n fontWeight: 'bold'\n }, {\n tag: t.atom,\n color: '#00f'\n }, {\n tag: t.number,\n color: '#164'\n }, {\n tag: t.propertyName,\n color: '#164'\n }, {\n tag: [t.variableName, t.definition(t.variableName)],\n color: '#0000C0'\n }, {\n tag: t.function(t.variableName),\n color: '#0000C0'\n }, {\n tag: t.string,\n color: '#2A00FF'\n }, {\n tag: t.operator,\n color: 'black'\n }, {\n tag: t.tagName,\n color: '#170'\n }, {\n tag: t.attributeName,\n color: '#00c'\n }, {\n tag: t.link,\n color: '#219'\n }, ...styles]\n });\n};\nexport var eclipse = eclipseInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name github\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsGithubLight = {\n background: '#fff',\n foreground: '#24292e',\n selection: '#BBDFFF',\n selectionMatch: '#BBDFFF',\n gutterBackground: '#fff',\n gutterForeground: '#6e7781'\n};\nexport var githubLightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsGithubLight, settings),\n styles: [{\n tag: [t.standard(t.tagName), t.tagName],\n color: '#116329'\n }, {\n tag: [t.comment, t.bracket],\n color: '#6a737d'\n }, {\n tag: [t.className, t.propertyName],\n color: '#6f42c1'\n }, {\n tag: [t.variableName, t.attributeName, t.number, t.operator],\n color: '#005cc5'\n }, {\n tag: [t.keyword, t.typeName, t.typeOperator, t.typeName],\n color: '#d73a49'\n }, {\n tag: [t.string, t.meta, t.regexp],\n color: '#032f62'\n }, {\n tag: [t.name, t.quote],\n color: '#22863a'\n }, {\n tag: [t.heading],\n color: '#24292e',\n fontWeight: 'bold'\n }, {\n tag: [t.emphasis],\n color: '#24292e',\n fontStyle: 'italic'\n }, {\n tag: [t.deleted],\n color: '#b31d28',\n backgroundColor: 'ffeef0'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#e36209'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#032f62'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.invalid,\n color: '#cb2431'\n }, ...styles]\n });\n};\nexport var githubLight = githubLightInit();\nexport var defaultSettingsGithubDark = {\n background: '#0d1117',\n foreground: '#c9d1d9',\n caret: '#c9d1d9',\n selection: '#003d73',\n selectionMatch: '#003d73',\n lineHighlight: '#36334280'\n};\nexport var githubDarkInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsGithubDark, settings),\n styles: [{\n tag: [t.standard(t.tagName), t.tagName],\n color: '#7ee787'\n }, {\n tag: [t.comment, t.bracket],\n color: '#8b949e'\n }, {\n tag: [t.className, t.propertyName],\n color: '#d2a8ff'\n }, {\n tag: [t.variableName, t.attributeName, t.number, t.operator],\n color: '#79c0ff'\n }, {\n tag: [t.keyword, t.typeName, t.typeOperator, t.typeName],\n color: '#ff7b72'\n }, {\n tag: [t.string, t.meta, t.regexp],\n color: '#a5d6ff'\n }, {\n tag: [t.name, t.quote],\n color: '#7ee787'\n }, {\n tag: [t.heading],\n color: '#d2a8ff',\n fontWeight: 'bold'\n }, {\n tag: [t.emphasis],\n color: '#d2a8ff',\n fontStyle: 'italic'\n }, {\n tag: [t.deleted],\n color: '#ffdcd7',\n backgroundColor: 'ffeef0'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#ffab70'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.invalid,\n color: '#f97583'\n }, ...styles]\n });\n};\nexport var githubDark = githubDarkInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name gruvbox-dark\n * @author morhetz\n * Name: Gruvbox\n * From github.com/codemirror/codemirror5/blob/master/theme/gruvbox-dark.css\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsGruvboxDark = {\n background: '#282828',\n foreground: '#ebdbb2',\n caret: '#ebdbb2',\n selection: '#bdae93',\n selectionMatch: '#bdae93',\n lineHighlight: '#3c3836',\n gutterBackground: '#282828',\n gutterForeground: '#7c6f64'\n};\nexport var gruvboxDarkInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsGruvboxDark, settings),\n styles: [{\n tag: t.keyword,\n color: '#fb4934'\n }, {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: '#8ec07c'\n }, {\n tag: [t.variableName],\n color: '#83a598'\n }, {\n tag: [t.function(t.variableName)],\n color: '#b8bb26',\n fontStyle: 'bold'\n }, {\n tag: [t.labelName],\n color: '#ebdbb2'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#d3869b'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#ebdbb2'\n }, {\n tag: [t.brace],\n color: '#ebdbb2'\n }, {\n tag: [t.annotation],\n color: '#fb4934d'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#d3869b'\n }, {\n tag: [t.typeName, t.className],\n color: '#fabd2f'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#fb4934'\n }, {\n tag: [t.tagName],\n color: '#8ec07c',\n fontStyle: 'bold'\n }, {\n tag: [t.squareBracket],\n color: '#fe8019'\n }, {\n tag: [t.angleBracket],\n color: '#83a598'\n }, {\n tag: [t.attributeName],\n color: '#8ec07c'\n }, {\n tag: [t.regexp],\n color: '#8ec07c'\n }, {\n tag: [t.quote],\n color: '#928374'\n }, {\n tag: [t.string],\n color: '#ebdbb2'\n }, {\n tag: t.link,\n color: '#a89984',\n textDecoration: 'underline',\n textUnderlinePosition: 'under'\n }, {\n tag: [t.url, t.escape, t.special(t.string)],\n color: '#d3869b'\n }, {\n tag: [t.meta],\n color: '#fabd2f'\n }, {\n tag: [t.comment],\n color: '#928374',\n fontStyle: 'italic'\n }, {\n tag: t.strong,\n fontWeight: 'bold',\n color: '#fe8019'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic',\n color: '#b8bb26'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#b8bb26'\n }, {\n tag: [t.heading1, t.heading2],\n fontWeight: 'bold',\n color: '#b8bb26'\n }, {\n tag: [t.heading3, t.heading4],\n fontWeight: 'bold',\n color: '#fabd2f'\n }, {\n tag: [t.heading5, t.heading6],\n color: '#fabd2f'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#d3869b'\n }, {\n tag: [t.processingInstruction, t.inserted],\n color: '#83a598'\n }, {\n tag: [t.contentSeparator],\n color: '#fb4934'\n }, {\n tag: t.invalid,\n color: '#fe8019',\n borderBottom: \"1px dotted #fb4934d\"\n }, ...styles]\n });\n};\nexport var gruvboxDark = gruvboxDarkInit();\nexport var defaultSettingsGruvboxLight = {\n background: '#fbf1c7',\n foreground: '#3c3836',\n caret: '#af3a03',\n selection: '#ebdbb2',\n selectionMatch: '#bdae93',\n lineHighlight: '#ebdbb2',\n gutterBackground: '#ebdbb2',\n gutterForeground: '#665c54',\n gutterBorder: 'transparent'\n};\nexport var gruvboxLightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsGruvboxLight, settings),\n styles: [{\n tag: t.keyword,\n color: '#9d0006'\n }, {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: '#427b58'\n }, {\n tag: [t.variableName],\n color: '#076678'\n }, {\n tag: [t.function(t.variableName)],\n color: '#79740e',\n fontStyle: 'bold'\n }, {\n tag: [t.labelName],\n color: '#3c3836'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#8f3f71'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#3c3836'\n }, {\n tag: [t.brace],\n color: '#3c3836'\n }, {\n tag: [t.annotation],\n color: '#9d0006'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#8f3f71'\n }, {\n tag: [t.typeName, t.className],\n color: '#b57614'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#9d0006'\n }, {\n tag: [t.tagName],\n color: '#427b58',\n fontStyle: 'bold'\n }, {\n tag: [t.squareBracket],\n color: '#af3a03'\n }, {\n tag: [t.angleBracket],\n color: '#076678'\n }, {\n tag: [t.attributeName],\n color: '#427b58'\n }, {\n tag: [t.regexp],\n color: '#427b58'\n }, {\n tag: [t.quote],\n color: '#928374'\n }, {\n tag: [t.string],\n color: '#3c3836'\n }, {\n tag: t.link,\n color: '#7c6f64',\n textDecoration: 'underline',\n textUnderlinePosition: 'under'\n }, {\n tag: [t.url, t.escape, t.special(t.string)],\n color: '#8f3f71'\n }, {\n tag: [t.meta],\n color: '#b57614'\n }, {\n tag: [t.comment],\n color: '#928374',\n fontStyle: 'italic'\n }, {\n tag: t.strong,\n fontWeight: 'bold',\n color: '#af3a03'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic',\n color: '#79740e'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#79740e'\n }, {\n tag: [t.heading1, t.heading2],\n fontWeight: 'bold',\n color: '#79740e'\n }, {\n tag: [t.heading3, t.heading4],\n fontWeight: 'bold',\n color: '#b57614'\n }, {\n tag: [t.heading5, t.heading6],\n color: '#b57614'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#8f3f71'\n }, {\n tag: [t.processingInstruction, t.inserted],\n color: '#076678'\n }, {\n tag: [t.contentSeparator],\n color: '#9d0006'\n }, {\n tag: t.invalid,\n color: '#af3a03',\n borderBottom: \"1px dotted #9d0006\"\n }, ...styles]\n });\n};\nexport var gruvboxLight = gruvboxLightInit();","export var config = {\n background: '#221a0f',\n foreground: '#d3af86',\n selection: '#84613daa',\n selectionMatch: '#84613daa',\n cursor: '#d3af86',\n dropdownBackground: '#51412c',\n activeLine: '#5e452b',\n matchingBracket: '#5e452b',\n keyword: '#98676a',\n storage: '#98676a',\n variable: '#dc3958',\n parameter: '#dc3958',\n function: '#7e602c',\n string: '#889b4a',\n constant: '#f79a32',\n type: '#f06431',\n class: '#f06431',\n number: '#f79a32',\n comment: '#a57a4c',\n heading: '#8ab1b0',\n invalid: '#dc3958',\n regexp: '#7e602c',\n tag: '#dc3958'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsKimbie = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selection,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n lineHighlight: config.activeLine\n};\nexport var kimbieInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsKimbie, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var kimbie = kimbieInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsMaterial = {\n background: '#2e3235',\n foreground: '#bdbdbd',\n caret: '#a0a4ae',\n selection: '#d7d4f0',\n selectionMatch: '#d7d4f0',\n gutterBackground: '#2e3235',\n gutterForeground: '#999',\n gutterActiveForeground: '#4f5b66',\n lineHighlight: '#545b61'\n};\nexport var defaultSettingsMaterialDark = defaultSettingsMaterial;\nexport var materialInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsMaterial, settings),\n styles: [{\n tag: t.keyword,\n color: '#cf6edf'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#56c8d8'\n }, {\n tag: [t.propertyName],\n color: '#facf4e'\n }, {\n tag: [t.variableName],\n color: '#bdbdbd'\n }, {\n tag: [t.function(t.variableName)],\n color: '#56c8d8'\n }, {\n tag: [t.labelName],\n color: '#cf6edf'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#facf4e'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#fa5788'\n }, {\n tag: [t.brace],\n color: '#cf6edf'\n }, {\n tag: [t.annotation],\n color: '#ff5f52'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#ffad42'\n }, {\n tag: [t.typeName, t.className],\n color: '#ffad42'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#7186f0'\n }, {\n tag: [t.tagName],\n color: '#99d066'\n }, {\n tag: [t.squareBracket],\n color: '#ff5f52'\n }, {\n tag: [t.angleBracket],\n color: '#606f7a'\n }, {\n tag: [t.attributeName],\n color: '#bdbdbd'\n }, {\n tag: [t.regexp],\n color: '#ff5f52'\n }, {\n tag: [t.quote],\n color: '#6abf69'\n }, {\n tag: [t.string],\n color: '#99d066'\n }, {\n tag: t.link,\n color: '#56c8d8',\n textDecoration: 'underline',\n textUnderlinePosition: 'under'\n }, {\n tag: [t.url, t.escape, t.special(t.string)],\n color: '#facf4e'\n }, {\n tag: [t.meta],\n color: '#707d8b'\n }, {\n tag: [t.comment],\n color: '#707d8b',\n fontStyle: 'italic'\n }, {\n tag: t.monospace,\n color: '#bdbdbd'\n }, {\n tag: t.strong,\n fontWeight: 'bold',\n color: '#ff5f52'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic',\n color: '#99d066'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#facf4e'\n }, {\n tag: t.heading1,\n fontWeight: 'bold',\n color: '#facf4e'\n }, {\n tag: [t.heading2, t.heading3, t.heading4],\n fontWeight: 'bold',\n color: '#facf4e'\n }, {\n tag: [t.heading5, t.heading6],\n color: '#facf4e'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#56c8d8'\n }, {\n tag: [t.processingInstruction, t.inserted],\n color: '#ff5f52'\n }, {\n tag: [t.contentSeparator],\n color: '#56c8d8'\n }, {\n tag: t.invalid,\n color: '#606f7a',\n borderBottom: \"1px dotted #ff5f52\"\n }, ...styles]\n });\n};\nexport var materialDarkInit = materialInit;\nexport var materialDark = materialInit();\nexport var material = materialInit();\nexport var defaultSettingsMaterialLight = {\n background: '#FAFAFA',\n foreground: '#90A4AE',\n caret: '#272727',\n selection: '#80CBC440',\n selectionMatch: '#FAFAFA',\n gutterBackground: '#FAFAFA',\n gutterForeground: '#90A4AE',\n gutterBorder: 'transparent',\n lineHighlight: '#CCD7DA50'\n};\nexport var materialLightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsMaterialLight, settings),\n styles: [{\n tag: t.keyword,\n color: '#39ADB5'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#90A4AE'\n }, {\n tag: [t.propertyName],\n color: '#6182B8'\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: '#91B859'\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: '#6182B8'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#39ADB5'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#90A4AE'\n }, {\n tag: [t.className],\n color: '#E2931D'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#F76D47'\n }, {\n tag: [t.typeName],\n color: '#E2931D',\n fontStyle: '#E2931D'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#39ADB5'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#91B859'\n }, {\n tag: [t.meta, t.comment],\n color: '#90A4AE'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#39ADB5'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#90A4AE'\n }, {\n tag: t.invalid,\n color: '#E5393570'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var materialLight = materialLightInit();","export var config = {\n background: '#272822',\n foreground: '#f8f8f2',\n selection: '#4a4a7680',\n selectionMatch: '#6a6a9680',\n cursor: '#f8f8f0',\n dropdownBackground: '#414339',\n activeLine: '#3e3d32',\n matchingBracket: '#3e3d32',\n keyword: '#F92672',\n storage: '#F92672',\n variable: '#FD971F',\n parameter: '#FD971F',\n function: '#66D9EF',\n string: '#E6DB74',\n constant: '#AE81FF',\n type: '#66D9EF',\n class: '#A6E22E',\n number: '#AE81FF',\n comment: '#88846f',\n heading: '#A6E22E',\n invalid: '#F44747',\n regexp: '#E6DB74',\n tag: '#F92672'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsMonokai = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selection,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n lineHighlight: config.activeLine\n};\nexport var monokaiInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsMonokai, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var monokai = monokaiInit();","export var config = {\n background: '#1e1e1e',\n foreground: '#c5c8c6',\n selection: '#4747a180',\n selectionMatch: '#6767ce80',\n cursor: '#c07020',\n dropdownBackground: '#525252',\n activeLine: '#303030',\n matchingBracket: '#303030',\n keyword: '#676867',\n storage: '#676867',\n variable: '#c7444a',\n parameter: '#6089B4',\n function: '#9872A2',\n string: '#D08442',\n constant: '#8080FF',\n type: '#9B0000',\n class: '#CE6700',\n number: '#6089B4',\n comment: '#9A9B99',\n heading: '#D0B344',\n invalid: '#FF0B00',\n regexp: '#D08442',\n tag: '#6089B4'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsMonokaiDimmed = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selection,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n lineHighlight: config.activeLine\n};\nexport var monokaiDimmedInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsMonokaiDimmed, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var monokaiDimmed = monokaiDimmedInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsNoctisLilac = {\n background: '#f2f1f8',\n foreground: '#0c006b',\n caret: '#5c49e9',\n selection: '#d5d1f2',\n selectionMatch: '#d5d1f2',\n gutterBackground: '#f2f1f8',\n gutterForeground: '#0c006b70',\n lineHighlight: '#e1def3'\n};\nexport var noctisLilacInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsNoctisLilac, settings),\n styles: [{\n tag: t.comment,\n color: '#9995b7'\n }, {\n tag: t.keyword,\n color: '#ff5792',\n fontWeight: 'bold'\n }, {\n tag: [t.definitionKeyword, t.modifier],\n color: '#ff5792'\n }, {\n tag: [t.className, t.tagName, t.definition(t.typeName)],\n color: '#0094f0'\n }, {\n tag: [t.number, t.bool, t.null, t.special(t.brace)],\n color: '#5842ff'\n }, {\n tag: [t.definition(t.propertyName), t.function(t.variableName)],\n color: '#0095a8'\n }, {\n tag: t.typeName,\n color: '#b3694d'\n }, {\n tag: [t.propertyName, t.variableName],\n color: '#fa8900'\n }, {\n tag: t.operator,\n color: '#ff5792'\n }, {\n tag: t.self,\n color: '#e64100'\n }, {\n tag: [t.string, t.regexp],\n color: '#00b368'\n }, {\n tag: [t.paren, t.bracket],\n color: '#0431fa'\n }, {\n tag: t.labelName,\n color: '#00bdd6'\n }, {\n tag: t.attributeName,\n color: '#e64100'\n }, {\n tag: t.angleBracket,\n color: '#9995b7'\n }, ...styles]\n });\n};\nexport var noctisLilac = noctisLilacInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsNord = {\n background: '#2e3440',\n foreground: '#FFFFFF',\n caret: '#FFFFFF',\n selection: '#3b4252',\n selectionMatch: '#e5e9f0',\n gutterBackground: '#2e3440',\n gutterForeground: '#4c566a',\n gutterActiveForeground: '#d8dee9',\n lineHighlight: '#4c566a'\n};\n\n// Colors from https://www.nordtheme.com/docs/colors-and-palettes\nexport var nordInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsNord, settings),\n styles: [{\n tag: t.keyword,\n color: '#5e81ac'\n }, {\n tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],\n color: '#88c0d0'\n }, {\n tag: [t.variableName],\n color: '#8fbcbb'\n }, {\n tag: [t.function(t.variableName)],\n color: '#8fbcbb'\n }, {\n tag: [t.labelName],\n color: '#81a1c1'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#5e81ac'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#a3be8c'\n }, {\n tag: [t.brace],\n color: '#8fbcbb'\n }, {\n tag: [t.annotation],\n color: '#d30102'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#b48ead'\n }, {\n tag: [t.typeName, t.className],\n color: '#ebcb8b'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#a3be8c'\n }, {\n tag: [t.tagName],\n color: '#b48ead'\n }, {\n tag: [t.squareBracket],\n color: '#bf616a'\n }, {\n tag: [t.angleBracket],\n color: '#d08770'\n }, {\n tag: [t.attributeName],\n color: '#ebcb8b'\n }, {\n tag: [t.regexp],\n color: '#5e81ac'\n }, {\n tag: [t.quote],\n color: '#b48ead'\n }, {\n tag: [t.string],\n color: '#a3be8c'\n }, {\n tag: t.link,\n color: '#a3be8c',\n textDecoration: 'underline',\n textUnderlinePosition: 'under'\n }, {\n tag: [t.url, t.escape, t.special(t.string)],\n color: '#8fbcbb'\n }, {\n tag: [t.meta],\n color: '#88c0d0'\n }, {\n tag: [t.monospace],\n color: '#d8dee9',\n fontStyle: 'italic'\n }, {\n tag: [t.comment],\n color: '#4c566a',\n fontStyle: 'italic'\n }, {\n tag: t.strong,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic',\n color: '#5e81ac'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.special(t.heading1),\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: t.heading1,\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: [t.heading2, t.heading3, t.heading4],\n fontWeight: 'bold',\n color: '#5e81ac'\n }, {\n tag: [t.heading5, t.heading6],\n color: '#5e81ac'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#d08770'\n }, {\n tag: [t.processingInstruction, t.inserted],\n color: '#8fbcbb'\n }, {\n tag: [t.contentSeparator],\n color: '#ebcb8b'\n }, {\n tag: t.invalid,\n color: '#434c5e',\n borderBottom: \"1px dotted #d30102\"\n }, ...styles]\n });\n};\nexport var nord = nordInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsOkaidia = {\n background: '#272822',\n foreground: '#FFFFFF',\n caret: '#FFFFFF',\n selection: '#49483E',\n selectionMatch: '#49483E',\n gutterBackground: '#272822',\n gutterForeground: '#FFFFFF70',\n lineHighlight: '#00000059'\n};\nexport var okaidiaInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsOkaidia, settings),\n styles: [{\n tag: [t.comment, t.documentMeta],\n color: '#8292a2'\n }, {\n tag: [t.number, t.bool, t.null, t.atom],\n color: '#ae81ff'\n }, {\n tag: [t.attributeValue, t.className, t.name],\n color: '#e6db74'\n }, {\n tag: [t.propertyName, t.attributeName],\n color: '#a6e22e'\n }, {\n tag: [t.variableName],\n color: '#9effff'\n }, {\n tag: [t.squareBracket],\n color: '#bababa'\n }, {\n tag: [t.string, t.special(t.brace)],\n color: '#e6db74'\n }, {\n tag: [t.regexp, t.className, t.typeName, t.definition(t.typeName)],\n color: '#66d9ef'\n }, {\n tag: [t.definition(t.variableName), t.definition(t.propertyName), t.function(t.variableName)],\n color: '#fd971f'\n },\n // { tag: t.keyword, color: '#f92672' },\n {\n tag: [t.keyword, t.definitionKeyword, t.modifier, t.tagName, t.angleBracket],\n color: '#f92672'\n }, ...styles]\n });\n};\nexport var okaidia = okaidiaInit();","export var config = {\n background: '#F5F5F5',\n foreground: '#333333',\n selection: '#C9D0D9',\n selectionMatch: '#C9D0D9',\n cursor: '#54494B',\n dropdownBackground: '#F5F5F5',\n activeLine: '#E4F6D4',\n matchingBracket: '#E4F6D4',\n keyword: '#4B69C6',\n storage: '#4B69C6',\n variable: '#7A3E9D',\n parameter: '#7A3E9D',\n function: '#AA3731',\n string: '#448C27',\n constant: '#9C5D27',\n type: '#7A3E9D',\n class: '#AA3731',\n number: '#9C5D27',\n comment: '#AAAAAA',\n heading: '#AA3731',\n invalid: '#cd3131',\n regexp: '#4B69C6',\n tag: '#4B69C6'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsQuietlight = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selection,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n gutterBorder: 'transparent',\n lineHighlight: config.activeLine\n};\nexport var quietlightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsQuietlight, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var quietlight = quietlightInit();","export var config = {\n background: '#390000',\n foreground: '#F8F8F8',\n selection: '#750000',\n selectionMatch: '#750000',\n cursor: '#970000',\n dropdownBackground: '#580000',\n activeLine: '#ff000033',\n matchingBracket: '#ff000033',\n keyword: '#f12727ff',\n storage: '#ff6262ff',\n variable: '#edef7dff',\n parameter: '#edef7dff',\n function: '#ffb454ff',\n string: '#edef7dff',\n constant: '#ec0d1e',\n type: '#9df39fff',\n class: '#fec758ff',\n number: '#994646ff',\n comment: '#e7c0c0ff',\n heading: '#fec758ff',\n invalid: '#ffffffff',\n regexp: '#edef7dff',\n tag: '#aa5507ff'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config } from './color';\nexport var defaultSettingsRed = {\n background: config.background,\n foreground: config.foreground,\n caret: config.cursor,\n selection: config.selection,\n selectionMatch: config.selection,\n gutterBackground: config.background,\n gutterForeground: config.foreground,\n lineHighlight: config.activeLine\n};\nexport var redInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsRed, settings),\n styles: [{\n tag: t.keyword,\n color: config.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: config.variable\n }, {\n tag: [t.propertyName],\n color: config.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: config.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: config.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: config.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: config.variable\n }, {\n tag: [t.className],\n color: config.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: config.number\n }, {\n tag: [t.typeName],\n color: config.type,\n fontStyle: config.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: config.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: config.regexp\n }, {\n tag: [t.meta, t.comment],\n color: config.comment\n }, {\n tag: t.tagName,\n color: config.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: config.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: config.variable\n }, {\n tag: t.invalid,\n color: config.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var red = redInit();","export var config = {\n background: '#002B36',\n foreground: '#839496',\n selection: '#004454AA',\n selectionMatch: '#005A6FAA',\n cursor: '#D30102',\n dropdownBackground: '#00212B',\n dropdownBorder: '#2AA19899',\n activeLine: '#073642',\n matchingBracket: '#073642',\n keyword: '#859900',\n storage: '#93A1A1',\n variable: '#268BD2',\n parameter: '#268BD2',\n function: '#268BD2',\n string: '#2AA198',\n constant: '#CB4B16',\n type: '#859900',\n class: '#268BD2',\n number: '#D33682',\n comment: '#586E75',\n heading: '#268BD2',\n invalid: '#DC322F',\n regexp: '#DC322F',\n tag: '#268BD2'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config as c } from './dark-color';\nexport var defaultSettingsSolarizedDark = {\n background: c.background,\n foreground: c.foreground,\n caret: c.cursor,\n selection: c.selection,\n selectionMatch: c.selection,\n gutterBackground: c.background,\n gutterForeground: c.foreground,\n gutterBorder: 'transparent',\n lineHighlight: c.activeLine\n};\nexport var solarizedDarkInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsSolarizedDark, settings),\n styles: [{\n tag: t.keyword,\n color: c.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: c.variable\n }, {\n tag: [t.propertyName],\n color: c.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: c.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: c.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: c.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: c.variable\n }, {\n tag: [t.className],\n color: c.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: c.number\n }, {\n tag: [t.typeName],\n color: c.type,\n fontStyle: c.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: c.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: c.regexp\n }, {\n tag: [t.meta, t.comment],\n color: c.comment\n }, {\n tag: t.tagName,\n color: c.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: c.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: c.variable\n }, {\n tag: t.invalid,\n color: c.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var solarizedDark = solarizedDarkInit();","export var config = {\n background: '#FDF6E3',\n foreground: '#657B83',\n selection: '#EEE8D5',\n selectionMatch: '#EEE8D5',\n cursor: '#657B83',\n dropdownBackground: '#EEE8D5',\n dropdownBorder: '#D3AF86',\n activeLine: '#EEE8D5',\n matchingBracket: '#EEE8D5',\n keyword: '#859900',\n storage: '#586E75',\n variable: '#268BD2',\n parameter: '#268BD2',\n function: '#268BD2',\n string: '#2AA198',\n constant: '#CB4B16',\n type: '#859900',\n class: '#268BD2',\n number: '#D33682',\n comment: '#93A1A1',\n heading: '#268BD2',\n invalid: '#DC322F',\n regexp: '#DC322F',\n tag: '#268BD2'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config as c } from './light-color';\nexport var defaultSettingsSolarizedLight = {\n background: c.background,\n foreground: c.foreground,\n caret: c.cursor,\n selection: c.selection,\n selectionMatch: c.selectionMatch,\n gutterBackground: c.background,\n gutterForeground: c.foreground,\n gutterBorder: 'transparent',\n lineHighlight: c.activeLine\n};\nexport var solarizedLightInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsSolarizedLight, settings),\n styles: [{\n tag: t.keyword,\n color: c.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: c.variable\n }, {\n tag: [t.propertyName],\n color: c.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: c.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: c.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: c.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: c.variable\n }, {\n tag: [t.className],\n color: c.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: c.number\n }, {\n tag: [t.typeName],\n color: c.type,\n fontStyle: c.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: c.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: c.regexp\n }, {\n tag: [t.meta, t.comment],\n color: c.comment\n }, {\n tag: t.tagName,\n color: c.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: c.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: c.variable\n }, {\n tag: t.invalid,\n color: c.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var solarizedLight = solarizedLightInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsSublime = {\n background: '#303841',\n foreground: '#FFFFFF',\n caret: '#FBAC52',\n selection: '#4C5964',\n selectionMatch: '#3A546E',\n gutterBackground: '#303841',\n gutterForeground: '#FFFFFF70',\n lineHighlight: '#00000059'\n};\nexport function sublimeInit(options) {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsSublime, settings),\n styles: [{\n tag: [t.meta, t.comment],\n color: '#A2A9B5'\n }, {\n tag: [t.attributeName, t.keyword],\n color: '#B78FBA'\n }, {\n tag: t.function(t.variableName),\n color: '#5AB0B0'\n }, {\n tag: [t.string, t.regexp, t.attributeValue],\n color: '#99C592'\n }, {\n tag: t.operator,\n color: '#f47954'\n },\n // { tag: t.moduleKeyword, color: 'red' },\n {\n tag: [t.tagName, t.modifier],\n color: '#E35F63'\n }, {\n tag: [t.number, t.definition(t.tagName), t.className, t.definition(t.variableName)],\n color: '#fbac52'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#E35F63'\n }, {\n tag: t.variableName,\n color: '#539ac4'\n }, {\n tag: [t.propertyName, t.typeName],\n color: '#629ccd'\n }, {\n tag: t.propertyName,\n color: '#36b7b5'\n }, ...styles]\n });\n}\nexport var sublime = sublimeInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsTokyoNight = {\n background: '#1a1b26',\n foreground: '#787c99',\n caret: '#c0caf5',\n selection: '#515c7e40',\n selectionMatch: '#16161e',\n gutterBackground: '#1a1b26',\n gutterForeground: '#787c99',\n gutterBorder: 'transparent',\n lineHighlight: '#1e202e'\n};\nexport var tokyoNightInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsTokyoNight, settings),\n styles: [{\n tag: t.keyword,\n color: '#bb9af7'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#c0caf5'\n }, {\n tag: [t.propertyName],\n color: '#7aa2f7'\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: '#9ece6a'\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: '#7aa2f7'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#bb9af7'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#c0caf5'\n }, {\n tag: [t.className],\n color: '#c0caf5'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#ff9e64'\n }, {\n tag: [t.typeName],\n color: '#0db9d7'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#bb9af7'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#b4f9f8'\n }, {\n tag: [t.meta, t.comment],\n color: '#444b6a'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#89ddff'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#c0caf5'\n }, {\n tag: t.invalid,\n color: '#ff5370'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var tokyoNight = tokyoNightInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsTokyoNightStorm = {\n background: '#24283b',\n foreground: '#7982a9',\n caret: '#c0caf5',\n selection: '#6f7bb630',\n selectionMatch: '#1f2335',\n gutterBackground: '#24283b',\n gutterForeground: '#7982a9',\n gutterBorder: 'transparent',\n lineHighlight: '#292e42'\n};\nexport var tokyoNightStormInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsTokyoNightStorm, settings),\n styles: [{\n tag: t.keyword,\n color: '#bb9af7'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#c0caf5'\n }, {\n tag: [t.propertyName],\n color: '#7aa2f7'\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: '#9ece6a'\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: '#7aa2f7'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#bb9af7'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#c0caf5'\n }, {\n tag: [t.className],\n color: '#c0caf5'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#ff9e64'\n }, {\n tag: [t.typeName],\n color: '#2ac3de',\n fontStyle: '#2ac3de'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#bb9af7'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#b4f9f8'\n }, {\n tag: [t.meta, t.comment],\n color: '#565f89'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#89ddff'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#c0caf5'\n }, {\n tag: t.invalid,\n color: '#ff5370'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var tokyoNightStorm = tokyoNightStormInit();","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsTokyoNightDay = {\n background: '#e1e2e7',\n foreground: '#3760bf',\n caret: '#3760bf',\n selection: '#99a7df',\n selectionMatch: '#99a7df',\n gutterBackground: '#e1e2e7',\n gutterForeground: '#3760bf',\n gutterBorder: 'transparent',\n lineHighlight: '#5f5faf11'\n};\nexport var tokyoNightDayInit = options => {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsTokyoNightDay, settings),\n styles: [{\n tag: t.keyword,\n color: '#007197'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: '#3760bf'\n }, {\n tag: [t.propertyName],\n color: '#3760bf'\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: '#587539'\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: '#3760bf'\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: '#3760bf'\n }, {\n tag: [t.definition(t.name), t.separator],\n color: '#3760bf'\n }, {\n tag: [t.className],\n color: '#3760bf'\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: '#b15c00'\n }, {\n tag: [t.typeName],\n color: '#007197',\n fontStyle: '#007197'\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: '#007197'\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: '#587539'\n }, {\n tag: [t.meta, t.comment],\n color: '#848cb5'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#b15c00'\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: '#3760bf'\n }, {\n tag: t.invalid,\n color: '#f52a65'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var tokyoNightDay = tokyoNightDayInit();","export var config = {\n background: '#002451',\n foreground: '#ffffff',\n selection: '#003f8e',\n selectionMatch: '#003f8e',\n cursor: '#ffffff',\n dropdownBackground: '#001733',\n activeLine: '#00346e',\n matchingBracket: '#00346e',\n keyword: '#EBBBFF',\n storage: '#EBBBFF',\n variable: '#FFC58F',\n parameter: '#FFC58F',\n function: '#BBDAFF',\n string: '#D1F1A9',\n constant: '#FFC58F',\n type: '#FFEEAD',\n class: '#BBDAFF',\n number: '#FFC58F',\n comment: '#7285B7',\n heading: '#D1F1A9',\n invalid: '#a92049',\n regexp: '#D1F1A9',\n tag: '#FF9DA4'\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nimport { config as c } from './color';\nexport var defaultSettingsTomorrowNightBlue = {\n background: c.background,\n foreground: c.foreground,\n caret: c.cursor,\n selection: c.selection,\n selectionMatch: c.selection,\n gutterBackground: c.background,\n gutterForeground: c.foreground,\n lineHighlight: c.activeLine\n};\nexport var tomorrowNightBlueInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsTomorrowNightBlue, settings),\n styles: [{\n tag: t.keyword,\n color: c.keyword\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName],\n color: c.variable\n }, {\n tag: [t.propertyName],\n color: c.function\n }, {\n tag: [t.processingInstruction, t.string, t.inserted, t.special(t.string)],\n color: c.string\n }, {\n tag: [t.function(t.variableName), t.labelName],\n color: c.function\n }, {\n tag: [t.color, t.constant(t.name), t.standard(t.name)],\n color: c.constant\n }, {\n tag: [t.definition(t.name), t.separator],\n color: c.variable\n }, {\n tag: [t.className],\n color: c.class\n }, {\n tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],\n color: c.number\n }, {\n tag: [t.typeName],\n color: c.type,\n fontStyle: c.type\n }, {\n tag: [t.operator, t.operatorKeyword],\n color: c.keyword\n }, {\n tag: [t.url, t.escape, t.regexp, t.link],\n color: c.regexp\n }, {\n tag: [t.meta, t.comment],\n color: c.comment\n }, {\n tag: t.tagName,\n color: c.tag\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.link,\n textDecoration: 'underline'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: c.heading\n }, {\n tag: [t.atom, t.bool, t.special(t.variableName)],\n color: c.variable\n }, {\n tag: t.invalid,\n color: c.invalid\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, ...styles]\n });\n};\nexport var tomorrowNightBlue = tomorrowNightBlueInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * https://github.com/uiwjs/react-codemirror/issues/409\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsVscodeDark = {\n background: '#1e1e1e',\n foreground: '#9cdcfe',\n caret: '#c6c6c6',\n selection: '#6199ff2f',\n selectionMatch: '#72a1ff59',\n lineHighlight: '#ffffff0f',\n gutterBackground: '#1e1e1e',\n gutterForeground: '#838383',\n gutterActiveForeground: '#fff',\n fontFamily: 'Menlo, Monaco, Consolas, \"Andale Mono\", \"Ubuntu Mono\", \"Courier New\", monospace'\n};\nexport function vscodeDarkInit(options) {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsVscodeDark, settings),\n styles: [{\n tag: [t.keyword, t.operatorKeyword, t.modifier, t.color, t.constant(t.name), t.standard(t.name), t.standard(t.tagName), t.special(t.brace), t.atom, t.bool, t.special(t.variableName)],\n color: '#569cd6'\n }, {\n tag: [t.controlKeyword, t.moduleKeyword],\n color: '#c586c0'\n }, {\n tag: [t.name, t.deleted, t.character, t.macroName, t.propertyName, t.variableName, t.labelName, t.definition(t.name)],\n color: '#9cdcfe'\n }, {\n tag: t.heading,\n fontWeight: 'bold',\n color: '#9cdcfe'\n }, {\n tag: [t.typeName, t.className, t.tagName, t.number, t.changed, t.annotation, t.self, t.namespace],\n color: '#4ec9b0'\n }, {\n tag: [t.function(t.variableName), t.function(t.propertyName)],\n color: '#dcdcaa'\n }, {\n tag: [t.number],\n color: '#b5cea8'\n }, {\n tag: [t.operator, t.punctuation, t.separator, t.url, t.escape, t.regexp],\n color: '#d4d4d4'\n }, {\n tag: [t.regexp],\n color: '#d16969'\n }, {\n tag: [t.special(t.string), t.processingInstruction, t.string, t.inserted],\n color: '#ce9178'\n }, {\n tag: [t.angleBracket],\n color: '#808080'\n }, {\n tag: t.strong,\n fontWeight: 'bold'\n }, {\n tag: t.emphasis,\n fontStyle: 'italic'\n }, {\n tag: t.strikethrough,\n textDecoration: 'line-through'\n }, {\n tag: [t.meta, t.comment],\n color: '#6a9955'\n }, {\n tag: t.link,\n color: '#6a9955',\n textDecoration: 'underline'\n }, {\n tag: t.invalid,\n color: '#ff0000'\n }, ...styles]\n });\n}\nexport var vscodeDark = vscodeDarkInit();","import _extends from \"@babel/runtime/helpers/extends\";\n/**\n * @name Xcode\n */\nimport { tags as t } from '@lezer/highlight';\nimport { createTheme } from '@uiw/codemirror-themes';\nexport var defaultSettingsXcodeLight = {\n background: '#fff',\n foreground: '#3D3D3D',\n selection: '#BBDFFF',\n selectionMatch: '#BBDFFF',\n gutterBackground: '#fff',\n gutterForeground: '#AFAFAF',\n lineHighlight: '#EDF4FF'\n};\nexport function xcodeLightInit(options) {\n var {\n theme = 'light',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsXcodeLight, settings),\n styles: [{\n tag: [t.comment, t.quote],\n color: '#707F8D'\n }, {\n tag: [t.typeName, t.typeOperator],\n color: '#aa0d91'\n }, {\n tag: [t.keyword],\n color: '#aa0d91',\n fontWeight: 'bold'\n }, {\n tag: [t.string, t.meta],\n color: '#D23423'\n }, {\n tag: [t.name],\n color: '#032f62'\n }, {\n tag: [t.typeName],\n color: '#522BB2'\n }, {\n tag: [t.variableName],\n color: '#23575C'\n }, {\n tag: [t.definition(t.variableName)],\n color: '#327A9E'\n }, {\n tag: [t.regexp, t.link],\n color: '#0e0eff'\n }, ...styles]\n });\n}\nexport var xcodeLight = xcodeLightInit();\nexport var defaultSettingsXcodeDark = {\n background: '#292A30',\n foreground: '#CECFD0',\n caret: '#fff',\n selection: '#727377',\n selectionMatch: '#727377',\n lineHighlight: '#2F3239'\n};\nexport var xcodeDarkInit = options => {\n var {\n theme = 'dark',\n settings = {},\n styles = []\n } = options || {};\n return createTheme({\n theme: theme,\n settings: _extends({}, defaultSettingsXcodeDark, settings),\n styles: [{\n tag: [t.comment, t.quote],\n color: '#7F8C98'\n }, {\n tag: [t.keyword],\n color: '#FF7AB2',\n fontWeight: 'bold'\n }, {\n tag: [t.string, t.meta],\n color: '#FF8170'\n }, {\n tag: [t.typeName],\n color: '#DABAFF'\n }, {\n tag: [t.definition(t.variableName)],\n color: '#6BDFFF'\n }, {\n tag: [t.name],\n color: '#6BAA9F'\n }, {\n tag: [t.variableName],\n color: '#ACF2E4'\n }, {\n tag: [t.regexp, t.link],\n color: '#FF8170'\n }, ...styles]\n });\n};\nexport var xcodeDark = xcodeDarkInit();"],"names":["createTheme","_ref","theme","settings","styles","themeOptions","baseStyle","background","backgroundColor","foreground","color","fontFamily","gutterBackground","gutterForeground","gutterBorder","borderRightColor","caret","caretColor","borderLeftColor","activeLineGutterStyle","gutterActiveForeground","lineHighlight","selection","selectionMatch","themeExtension","EditorView","dark","highlightStyle","HighlightStyle","define","syntaxHighlighting","defaultSettingsAbcdef","abcdefInit","options","_extends","tag","t","keyword","fontWeight","atom","comment","fontStyle","number","definition","variableName","function","typeName","tagName","string","meta","bracket","attributeName","heading","link","abcdef","config","defaultSettingsAbyss","abyssInit","name","deleted","character","macroName","propertyName","processingInstruction","inserted","special","labelName","constant","standard","separator","className","changed","annotation","modifier","self","namespace","operator","operatorKeyword","url","escape","regexp","strong","emphasis","textDecoration","bool","invalid","strikethrough","abyss","defaultSettingsAndroidstudio","androidstudioInit","literal","derefOperator","quote","documentMeta","attributeValue","androidstudio","defaultSettingsAtomone","atomoneInit","atomone","defaultSettingsAura","auraInit","aura","defaultSettingsBbedit","bbeditInit","list","bbedit","defaultSettingsBespin","bespinInit","bespin","defaultSettingsDarcula","darculaInit","darcula","defaultSettingsDracula","draculaInit","dracula","defaultSettingsDuotoneLight","duotoneLightInit","unit","punctuation","duotoneLight","defaultSettingsDuotoneDark","duotoneDarkInit","duotoneDark","defaultSettingsEclipse","eclipseInit","eclipse","defaultSettingsGithubLight","githubLightInit","typeOperator","githubLight","defaultSettingsGithubDark","githubDarkInit","githubDark","defaultSettingsGruvboxDark","gruvboxDarkInit","brace","squareBracket","angleBracket","textUnderlinePosition","heading1","heading2","heading3","heading4","heading5","heading6","contentSeparator","borderBottom","gruvboxDark","defaultSettingsGruvboxLight","gruvboxLightInit","gruvboxLight","defaultSettingsKimbie","kimbieInit","kimbie","defaultSettingsMaterial","defaultSettingsMaterialDark","materialInit","monospace","materialDarkInit","materialDark","material","defaultSettingsMaterialLight","materialLightInit","materialLight","defaultSettingsMonokai","monokaiInit","monokai","defaultSettingsMonokaiDimmed","monokaiDimmedInit","monokaiDimmed","defaultSettingsNoctisLilac","noctisLilacInit","definitionKeyword","null","paren","noctisLilac","defaultSettingsNord","nordInit","nord","defaultSettingsOkaidia","okaidiaInit","okaidia","defaultSettingsQuietlight","quietlightInit","quietlight","defaultSettingsRed","redInit","red","defaultSettingsSolarizedDark","c","solarizedDarkInit","solarizedDark","defaultSettingsSolarizedLight","solarizedLightInit","solarizedLight","defaultSettingsSublime","sublimeInit","sublime","defaultSettingsTokyoNight","tokyoNightInit","tokyoNight","defaultSettingsTokyoNightStorm","tokyoNightStormInit","tokyoNightStorm","defaultSettingsTokyoNightDay","tokyoNightDayInit","tokyoNightDay","defaultSettingsTomorrowNightBlue","tomorrowNightBlueInit","tomorrowNightBlue","defaultSettingsVscodeDark","vscodeDarkInit","controlKeyword","moduleKeyword","vscodeDark","defaultSettingsXcodeLight","xcodeLightInit","xcodeLight","defaultSettingsXcodeDark","xcodeDarkInit","xcodeDark"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/357.20fa4f97.chunk.js b/static/js/357.20fa4f97.chunk.js new file mode 100644 index 000000000..cd0802363 --- /dev/null +++ b/static/js/357.20fa4f97.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[357],{50357:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>f});var r=t(98846),o=t(80905),s=t(27406),a=t(67538),i=t(8070),c=t(69332);const l="// The player has a position, a size, and a current speed.\nclass Player {\n size = new Vec(0.8, 1.5);\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\n// Lava block. When you touch it, you die.\nclass Lava {\n size = new Vec(1, 1)\n\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n static horizontal(pos) {\n return new Lava(pos, new Vec(2, 0));\n }\n\n static vertical(pos) {\n return new Lava(pos, new Vec(0, 2));\n }\n\n static drip(pos) {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n}\n";var d=t(94458),u=t(98557);const h=s.default.Original,p=s.default.Modified,g=()=>{const[e,n]=(0,o.useState)("a-b"),[t,r]=(0,o.useState)(),[g,f]=(0,o.useState)(!0),[v,x]=(0,o.useState)(!0),[m,C]=(0,o.useState)({}),{theme:b}=(0,d.D)(),[w,j]=(0,o.useState)(l),y=(0,o.useRef)();return(0,u.jsxs)(o.Fragment,{children:[(0,u.jsxs)("button",{onClick:()=>{y.current=Math.floor(101*Math.random());const e="// hello world"+y.current+"\n"+l;j(e)},children:["Change Original Value ",y.current]}),(0,u.jsxs)(s.default,{orientation:e,revertControls:t,collapseUnchanged:m,highlightChanges:g,gutter:v,style:{height:300,overflow:"auto"},theme:b,children:[(0,u.jsx)(h,{value:w,extensions:[c.cg.javascript()],onChange:e=>{}}),(0,u.jsx)(p,{value:'class Player {\n get type() { return "player" }\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\nclass Lava {\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n get type() { return "lava"; }\n\n static create(pos, ch) {\n if (ch == "=") {\n return new Lava(pos, new Vec(2, 0));\n } else if (ch == "|") {\n return new Lava(pos, new Vec(0, 2));\n } else if (ch == "v") {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n }\n}\n\nPlayer.prototype.size = new Vec(0.8, 1.5);\nLava.prototype.size = new Vec(1, 1);\n',extensions:[c.cg.javascript(),a.Lz.editable.of(!1),i.$t.readOnly.of(!0)]})]}),(0,u.jsxs)("label",{children:["Orientation",(0,u.jsxs)("select",{onChange:e=>{n(e.target.value)},defaultValue:e,children:[(0,u.jsx)("option",{value:"",children:"please orientation choose"}),(0,u.jsx)("option",{value:"a-b",children:"a-b"}),(0,u.jsx)("option",{value:"b-a",children:"b-a"})]})]}),(0,u.jsx)("br",{}),(0,u.jsxs)("label",{children:["Revert buttons",(0,u.jsxs)("select",{defaultValue:t,onChange:e=>r(e.target.value),children:[(0,u.jsx)("option",{value:"",children:"please revertControls choose"}),(0,u.jsx)("option",{value:"a-to-b",children:"a-to-b"}),(0,u.jsx)("option",{value:"b-to-a",children:"b-to-a"})]})]}),(0,u.jsx)("br",{}),(0,u.jsxs)("label",{children:["Highlight changes",(0,u.jsx)("input",{type:"checkbox",checked:!!g,onChange:e=>f(e.target.checked)})]}),(0,u.jsx)("br",{}),(0,u.jsxs)("label",{children:["Gutter markers",(0,u.jsx)("input",{type:"checkbox",checked:!!v,onChange:e=>x(e.target.checked)})]}),(0,u.jsxs)("label",{children:["Collapse unchanged code",(0,u.jsx)("input",{type:"checkbox",checked:!!m,onChange:e=>C(e.target.checked?{}:void 0)})]})]})},f=()=>(0,u.jsx)(r.lN,{path:()=>t.e(8263).then(t.bind(t,98263)),children:(0,u.jsx)(g,{})})},94458:(e,n,t)=>{t.d(n,{D:()=>o});var r=t(80905);function o(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const n=document.documentElement.getAttribute("data-color-mode"),[t,o]=(0,r.useState)("dark"===n?"dark":e);return(0,r.useEffect)((()=>{o("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{o(e.detail.colorScheme)}))}),[]),{theme:t,setTheme:o}}},27406:(e,n,t)=>{t.r(n),t.d(n,{default:()=>A});var r=t(68102),o=t(49257),s=t(80905),a=t(73562),i=t(67538),c=t(98557),l={modified:{doc:""},original:{doc:""}},d=(0,s.createContext)(l);function u(e,n){return(0,r.A)({},e,n,{modified:(0,r.A)({},e.modified,n.modified),original:(0,r.A)({},e.original,n.original)})}var h=()=>(0,s.useContext)(d),p=e=>{var{children:n,theme:t}=e,[o,a]=(0,s.useReducer)(u,(0,r.A)({},l,{theme:t}));return(0,s.useEffect)((()=>a({theme:t})),[t]),(0,c.jsx)(d.Provider,{value:(0,r.A)({},o,{dispatch:a}),children:n})},g=["extensions","value","selection","onChange"],f=e=>{var{extensions:n=[],value:t,selection:c,onChange:l}=e,d=(0,o.A)(e,g),{theme:u,dispatch:p}=h(),f=(0,a.getDefaultExtensions)((0,r.A)({},d,{theme:u})),v=i.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof l){var n=e.state.doc.toString();l(n,e)}}));return(0,s.useEffect)((()=>p({original:{doc:t,selection:c,extensions:[v,...f,...n]},originalExtension:{onChange:l,option:d,extension:[n,v]}})),[e]),null};f.displayName="CodeMirrorMerge.Original";var v=["extensions","value","selection","onChange"],x=e=>{var{extensions:n=[],value:t,selection:c,onChange:l}=e,d=(0,o.A)(e,v),{theme:u,dispatch:p}=h(),g=(0,a.getDefaultExtensions)((0,r.A)({},d,{theme:u})),f=i.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof l){var n=e.state.doc.toString();l(n,e)}}));return(0,s.useEffect)((()=>p({modified:{doc:t,selection:c,extensions:[f,...g,...n]},modifiedExtension:{onChange:l,option:d,extension:[f,n]}})),[e]),null};x.displayName="CodeMirrorMerge.Modified";var m=t(60125),C=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl"],b=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],w=s.forwardRef(((e,n)=>{var{className:t,children:i,orientation:l,revertControls:d,highlightChanges:u,gutter:p,collapseUnchanged:g,destroyRerender:f=!0,renderRevertControl:v}=e,x=(0,o.A)(e,C),w=h(),{modified:j,modifiedExtension:y,original:A,originalExtension:E,theme:k,dispatch:V}=w,L=(0,o.A)(w,b),S=(0,s.useRef)(null),M=(0,s.useRef)(),R={orientation:l,revertControls:d,highlightChanges:u,gutter:p,collapseUnchanged:g,renderRevertControl:v};(0,s.useImperativeHandle)(n,(()=>({container:S.current,view:M.current,modified:j,original:A,config:(0,r.A)({a:A,b:j,parent:S.current},R)})),[S,M,j,A,R]),(0,s.useEffect)((()=>{!M.current&&S.current&&(M.current=new m.SV((0,r.A)({a:(0,r.A)({},A,{extensions:[...(null==E?void 0:E.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==E?void 0:E.option,{theme:k}))]}),b:(0,r.A)({},j,{extensions:[...(null==y?void 0:y.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==y?void 0:y.option,{theme:k}))]}),parent:S.current},R)))}),[M,S]),(0,s.useEffect)((()=>{if(A&&A.doc&&M.current){var e,n,t=null==(e=M.current)?void 0:e.a.state.doc.toString();if(t!==A.doc)null==(n=M.current)||n.a.dispatch({changes:{from:0,to:t.length,insert:A.doc||""}})}if(j&&j.doc&&M.current){var o,s,i=null==(o=M.current)?void 0:o.b.state.doc.toString();if(i!==j.doc)null==(s=M.current)||s.b.dispatch({changes:{from:0,to:i.length,insert:j.doc||""}})}if(f&&M.current){var c=M.current.a.state.selection.ranges[0].from,l=M.current.b.state.selection.ranges[0].from;M.current.destroy(),M.current=new m.SV((0,r.A)({a:(0,r.A)({},A,{extensions:[...(null==E?void 0:E.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==E?void 0:E.option,{theme:k}))]}),b:(0,r.A)({},j,{extensions:[...(null==y?void 0:y.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==y?void 0:y.option,{theme:k}))]}),parent:S.current},R)),c&&(M.current.a.focus(),M.current.a.dispatch({selection:{anchor:c,head:c}})),l&&(M.current.b.focus(),M.current.b.dispatch({selection:{anchor:l,head:l}}))}}),[M,k,S.current,A,j,E,y,f]),(0,s.useEffect)((()=>()=>M.current&&M.current.destroy()),[]),(0,s.useEffect)((()=>{if(M.current){var e={};L.orientation!==l&&(e.orientation=l),L.revertControls!==d&&(e.revertControls=d),L.highlightChanges!==u&&(e.highlightChanges=u),L.gutter!==p&&(e.gutter=p),L.collapseUnchanged!==g&&(e.collapseUnchanged=g),L.renderRevertControl!==v&&(e.collapseUnchanged=g),Object.keys(e).length&&V&&M.current&&(M.current.reconfigure((0,r.A)({},e)),V((0,r.A)({},e)))}}),[V,M,l,d,u,p,g,v]);return(0,c.jsx)("div",(0,r.A)({ref:S,className:"cm-merge-theme"+(t?" "+t:"")},x,{children:i}))}));w.displayName="CodeMirrorMerge.Internal";var j=["theme"],y=s.forwardRef(((e,n)=>{var{theme:t}=e,s=(0,o.A)(e,j);return(0,c.jsx)(p,{theme:t,children:(0,c.jsx)(w,(0,r.A)({},s,{ref:n}))})}));y.Original=f,y.Modified=x,y.displayName="CodeMirrorMerge";const A=y}}]); +//# sourceMappingURL=357.20fa4f97.chunk.js.map \ No newline at end of file diff --git a/static/js/357.20fa4f97.chunk.js.map b/static/js/357.20fa4f97.chunk.js.map new file mode 100644 index 000000000..b8b0530e5 --- /dev/null +++ b/static/js/357.20fa4f97.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/357.20fa4f97.chunk.js","mappings":"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","sources":["pages/merge/code.ts","pages/merge/Example.tsx","pages/merge/index.tsx","utils/useTheme.tsx","../../merge/esm/store.js","../../merge/esm/Original.js","../../merge/esm/Modified.js","../../merge/esm/Internal.js","../../merge/esm/index.js"],"sourcesContent":["export const originalCode = `// The player has a position, a size, and a current speed.\nclass Player {\n size = new Vec(0.8, 1.5);\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\n// Lava block. When you touch it, you die.\nclass Lava {\n size = new Vec(1, 1)\n\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n static horizontal(pos) {\n return new Lava(pos, new Vec(2, 0));\n }\n\n static vertical(pos) {\n return new Lava(pos, new Vec(0, 2));\n }\n\n static drip(pos) {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n}\n`;\n\nexport const modifiedCode = `class Player {\n get type() { return \"player\" }\n\n constructor(pos, speed) {\n this.pos = pos;\n this.speed = speed;\n }\n\n static create(pos) {\n return new Player(pos.plus(new Vec(0, -0.5)), new Vec(0, 0));\n }\n}\n\nclass Lava {\n constructor(pos, speed, reset) {\n this.pos = pos;\n this.speed = speed;\n this.reset = reset;\n }\n\n get type() { return \"lava\"; }\n\n static create(pos, ch) {\n if (ch == \"=\") {\n return new Lava(pos, new Vec(2, 0));\n } else if (ch == \"|\") {\n return new Lava(pos, new Vec(0, 2));\n } else if (ch == \"v\") {\n return new Lava(pos, new Vec(0, 3), pos);\n }\n }\n}\n\nPlayer.prototype.size = new Vec(0.8, 1.5);\nLava.prototype.size = new Vec(1, 1);\n`;\n","import { Fragment, useRef, useState } from 'react';\nimport CodeMirrorMerge, { CodeMirrorMergeProps } from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { originalCode, modifiedCode } from './code';\nimport { useTheme } from '../../utils/useTheme';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\n\nexport const MergeExample = () => {\n const [orientation, setOrientation] = useState('a-b');\n const [revertControls, setRevertControls] = useState();\n const [highlightChanges, setHighlightChanges] = useState(true);\n const [gutter, setGutter] = useState(true);\n const [collapseUnchanged, setCollapseUnchanged] = useState({});\n const { theme } = useTheme();\n const handleOrientation = (evn: React.ChangeEvent) => {\n setOrientation(evn.target.value as CodeMirrorMergeProps['orientation']);\n };\n const [originalValue, setOriginalValue] = useState(originalCode);\n const random = useRef();\n const click = () => {\n random.current = Math.floor(Math.random() * 101);\n const code = '// hello world' + random.current + '\\n' + originalCode;\n setOriginalValue(code);\n };\n return (\n \n \n \n {\n // console.log('::::::::::', val)\n }}\n />\n \n \n \n
\n \n
\n \n
\n \n \n
\n );\n};\n","import { Preview } from '../theme/Preview';\nimport { MergeExample } from './Example';\n\nexport const Component = () => {\n return (\n import('react-codemirror-merge/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { createContext, useContext, useEffect, useReducer } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var initialState = {\n modified: {\n doc: ''\n },\n original: {\n doc: ''\n }\n};\nexport var Context = /*#__PURE__*/createContext(initialState);\nexport function reducer(state, action) {\n return _extends({}, state, action, {\n modified: _extends({}, state.modified, action.modified),\n original: _extends({}, state.original, action.original)\n });\n}\nexport var useStore = () => {\n return useContext(Context);\n};\nexport var Provider = _ref => {\n var {\n children,\n theme\n } = _ref;\n var [state, dispatch] = useReducer(reducer, _extends({}, initialState, {\n theme\n }));\n useEffect(() => dispatch({\n theme\n }), [theme]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: _extends({}, state, {\n dispatch\n }),\n children: children\n });\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Original = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n original: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n originalExtension: {\n onChange,\n option: otherOption,\n extension: [extensions, updateListener]\n }\n }), [props]);\n return null;\n};\nOriginal.displayName = 'CodeMirrorMerge.Original';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Modified = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n modified: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n modifiedExtension: {\n onChange,\n option: otherOption,\n extension: [updateListener, extensions]\n }\n }), [props]);\n return null;\n};\nModified.displayName = 'CodeMirrorMerge.Modified';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"children\", \"orientation\", \"revertControls\", \"highlightChanges\", \"gutter\", \"collapseUnchanged\", \"destroyRerender\", \"renderRevertControl\"],\n _excluded2 = [\"modified\", \"modifiedExtension\", \"original\", \"originalExtension\", \"theme\", \"dispatch\"];\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { MergeView } from '@codemirror/merge';\nimport { useStore } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Internal = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className,\n children,\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n destroyRerender = true,\n renderRevertControl\n } = props,\n elmProps = _objectWithoutPropertiesLoose(props, _excluded);\n var _useStore = useStore(),\n {\n modified,\n modifiedExtension,\n original,\n originalExtension,\n theme,\n dispatch\n } = _useStore,\n otherStore = _objectWithoutPropertiesLoose(_useStore, _excluded2);\n var editor = useRef(null);\n var view = useRef();\n var opts = {\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n renderRevertControl\n };\n useImperativeHandle(ref, () => ({\n container: editor.current,\n view: view.current,\n modified,\n original,\n config: _extends({\n a: original,\n b: modified,\n parent: editor.current\n }, opts)\n }), [editor, view, modified, original, opts]);\n useEffect(() => {\n if (!view.current && editor.current) {\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n }\n }, [view, editor]);\n useEffect(() => {\n if (original && original.doc && view.current) {\n var _view$current;\n var originalDoc = (_view$current = view.current) == null ? void 0 : _view$current.a.state.doc.toString();\n if (originalDoc !== original.doc) {\n var _view$current2;\n (_view$current2 = view.current) == null || _view$current2.a.dispatch({\n changes: {\n from: 0,\n to: originalDoc.length,\n insert: original.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(originalExtension?.extension || []),\n // ...getDefaultExtensions({ ...originalExtension?.option, theme }),\n // ])\n });\n }\n }\n if (modified && modified.doc && view.current) {\n var _view$current3;\n var modifiedDoc = (_view$current3 = view.current) == null ? void 0 : _view$current3.b.state.doc.toString();\n if (modifiedDoc !== modified.doc) {\n var _view$current4;\n (_view$current4 = view.current) == null || _view$current4.b.dispatch({\n changes: {\n from: 0,\n to: modifiedDoc.length,\n insert: modified.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(modifiedExtension?.extension || []),\n // ...getDefaultExtensions({ ...modifiedExtension?.option, theme }),\n // ])\n });\n }\n }\n if (destroyRerender && view.current) {\n var originalFrom = view.current.a.state.selection.ranges[0].from;\n var modifiedFrom = view.current.b.state.selection.ranges[0].from;\n view.current.destroy();\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n if (originalFrom) {\n view.current.a.focus();\n view.current.a.dispatch({\n selection: {\n anchor: originalFrom,\n head: originalFrom\n }\n });\n }\n if (modifiedFrom) {\n view.current.b.focus();\n view.current.b.dispatch({\n selection: {\n anchor: modifiedFrom,\n head: modifiedFrom\n }\n });\n }\n }\n }, [view, theme, editor.current, original, modified, originalExtension, modifiedExtension, destroyRerender]);\n useEffect(() => () => view.current && view.current.destroy(), []);\n useEffect(() => {\n if (view.current) {\n var _opts = {};\n if (otherStore.orientation !== orientation) {\n _opts.orientation = orientation;\n }\n if (otherStore.revertControls !== revertControls) {\n _opts.revertControls = revertControls;\n }\n if (otherStore.highlightChanges !== highlightChanges) {\n _opts.highlightChanges = highlightChanges;\n }\n if (otherStore.gutter !== gutter) {\n _opts.gutter = gutter;\n }\n if (otherStore.collapseUnchanged !== collapseUnchanged) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (otherStore.renderRevertControl !== renderRevertControl) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (Object.keys(_opts).length && dispatch && view.current) {\n view.current.reconfigure(_extends({}, _opts));\n dispatch(_extends({}, _opts));\n }\n }\n }, [dispatch, view, orientation, revertControls, highlightChanges, gutter, collapseUnchanged, renderRevertControl]);\n var defaultClassNames = 'cm-merge-theme';\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: editor,\n className: \"\" + defaultClassNames + (className ? \" \" + className : '')\n }, elmProps, {\n children: children\n }));\n});\nInternal.displayName = 'CodeMirrorMerge.Internal';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"theme\"];\nimport React from 'react';\nimport { Original } from './Original';\nimport { Modified } from './Modified';\nimport { Internal } from './Internal';\nimport { Provider } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar InternalCodeMirror = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n var {\n theme\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(Provider, {\n theme: theme,\n children: /*#__PURE__*/_jsx(Internal, _extends({}, props, {\n ref: ref\n }))\n });\n});\nvar CodeMirrorMerge = InternalCodeMirror;\nCodeMirrorMerge.Original = Original;\nCodeMirrorMerge.Modified = Modified;\nCodeMirrorMerge.displayName = 'CodeMirrorMerge';\nexport default CodeMirrorMerge;"],"names":["originalCode","Original","CodeMirrorMerge","Modified","MergeExample","orientation","setOrientation","useState","revertControls","setRevertControls","highlightChanges","setHighlightChanges","gutter","setGutter","collapseUnchanged","setCollapseUnchanged","theme","useTheme","originalValue","setOriginalValue","random","useRef","_jsxs","Fragment","children","onClick","click","current","Math","floor","code","style","height","overflow","_jsx","value","extensions","langs","javascript","onChange","val","EditorView","editable","of","EditorState","readOnly","evn","target","defaultValue","type","checked","undefined","Component","Preview","path","name","arguments","length","dark","document","documentElement","getAttribute","setTheme","useEffect","addEventListener","e","detail","colorScheme","initialState","modified","doc","original","Context","createContext","reducer","state","action","_extends","useStore","useContext","Provider","_ref","dispatch","useReducer","_excluded","props","selection","otherOption","_objectWithoutPropertiesLoose","defaultExtensions","getDefaultExtensions","updateListener","vu","docChanged","toString","originalExtension","option","extension","displayName","modifiedExtension","_excluded2","Internal","React","ref","className","destroyRerender","renderRevertControl","elmProps","_useStore","otherStore","editor","view","opts","useImperativeHandle","container","config","a","b","parent","MergeView","_view$current","_view$current2","originalDoc","changes","from","to","insert","_view$current3","_view$current4","modifiedDoc","originalFrom","ranges","modifiedFrom","destroy","focus","anchor","head","_opts","Object","keys","reconfigure"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/358.5aedc3ed.chunk.js b/static/js/358.5aedc3ed.chunk.js new file mode 100644 index 000000000..afdabc7e4 --- /dev/null +++ b/static/js/358.5aedc3ed.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[358],{70358:(n,e,t)=>{t.r(e),t.d(e,{default:()=>i});const i="doctype 5\nhtml(lang=\"en\")\n head\n title= pageTitle\n script(type='text/javascript')\n if (foo) {\n bar()\n }\n body\n // Disclaimer: You will need to turn insertSpaces to true in order for the\n syntax highlighting to kick in properly (especially for comments)\n Enjoy :)\n h1 Pug - node template engine\n #container\n if youAreUsingPug\n p You are amazing\n else\n p Get on it!"}}]); +//# sourceMappingURL=358.5aedc3ed.chunk.js.map \ No newline at end of file diff --git a/static/js/358.5aedc3ed.chunk.js.map b/static/js/358.5aedc3ed.chunk.js.map new file mode 100644 index 000000000..99a22ef59 --- /dev/null +++ b/static/js/358.5aedc3ed.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/358.5aedc3ed.chunk.js","mappings":"wHAAA,giB","sources":["../../node_modules/code-example/txt/sample.pug.txt"],"sourcesContent":["export default \"doctype 5\\nhtml(lang=\\\"en\\\")\\n head\\n title= pageTitle\\n script(type='text/javascript')\\n if (foo) {\\n bar()\\n }\\n body\\n // Disclaimer: You will need to turn insertSpaces to true in order for the\\n syntax highlighting to kick in properly (especially for comments)\\n Enjoy :)\\n h1 Pug - node template engine\\n #container\\n if youAreUsingPug\\n p You are amazing\\n else\\n p Get on it!\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3602.b42d1044.chunk.js b/static/js/3602.b42d1044.chunk.js new file mode 100644 index 000000000..8d6b1aed1 --- /dev/null +++ b/static/js/3602.b42d1044.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3602],{43602:(e,a,d)=>{d.r(a),d.d(a,{default:()=>s});const s="/* Using a single database query, find all the leads in\n the database that have the same email address as any\n of the leads being inserted or updated. */\nfor (Lead lead : [SELECT Email FROM Lead WHERE Email IN :leadMap.KeySet()]) {\n Lead newLead = leadMap.get(lead.Email);\n newLead.Email.addError('A lead with this email address already exists.');\n}\n"}}]); +//# sourceMappingURL=3602.b42d1044.chunk.js.map \ No newline at end of file diff --git a/static/js/3602.b42d1044.chunk.js.map b/static/js/3602.b42d1044.chunk.js.map new file mode 100644 index 000000000..ab03699fe --- /dev/null +++ b/static/js/3602.b42d1044.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3602.b42d1044.chunk.js","mappings":"yHAAA,2X","sources":["../../node_modules/code-example/txt/sample.apex.txt"],"sourcesContent":["export default \"/* Using a single database query, find all the leads in\\n the database that have the same email address as any\\n of the leads being inserted or updated. */\\nfor (Lead lead : [SELECT Email FROM Lead WHERE Email IN :leadMap.KeySet()]) {\\n Lead newLead = leadMap.get(lead.Email);\\n newLead.Email.addError('A lead with this email address already exists.');\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3647.dd1141d9.chunk.js b/static/js/3647.dd1141d9.chunk.js new file mode 100644 index 000000000..34f84956c --- /dev/null +++ b/static/js/3647.dd1141d9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3647],{53647:(e,r,a)=>{a.r(r),a.d(r,{default:()=>s});const s="# Create a resource group.\naz group create --name myResourceGroup --location westeurope\n\n# Create a new virtual machine, this creates SSH keys if not present.\naz vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --generate-ssh-keys"}}]); +//# sourceMappingURL=3647.dd1141d9.chunk.js.map \ No newline at end of file diff --git a/static/js/3647.dd1141d9.chunk.js.map b/static/js/3647.dd1141d9.chunk.js.map new file mode 100644 index 000000000..dfa56ea73 --- /dev/null +++ b/static/js/3647.dd1141d9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3647.dd1141d9.chunk.js","mappings":"yHAAA,4Q","sources":["../../node_modules/code-example/txt/sample.azcli.txt"],"sourcesContent":["export default \"# Create a resource group.\\naz group create --name myResourceGroup --location westeurope\\n\\n# Create a new virtual machine, this creates SSH keys if not present.\\naz vm create --resource-group myResourceGroup --name myVM --image UbuntuLTS --generate-ssh-keys\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/367.1b3d61df.chunk.js b/static/js/367.1b3d61df.chunk.js new file mode 100644 index 000000000..03f038b4a --- /dev/null +++ b/static/js/367.1b3d61df.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[367],{30367:(n,e,t)=>{t.r(e),t.d(e,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Mentions Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-mentions.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions)\n\nMentions Extensions for CodeMirror6.\n\n[![Mentions Extensions](https://user-images.githubusercontent.com/1680273/183007711-68109ca3-7140-411e-a747-53bcca0fa4c7.png)](https://uiwjs.github.io/react-codemirror/#/extensions/mentions)\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-mentions --save\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { mentions } from '@uiw/codemirror-extensions-mentions';\n\nconst users = [\n { label: '@Walter White' },\n { label: '@\u76ae\u76ae\u9c81' },\n { label: '@\u9c81\u897f\u897f' },\n { label: '@\u4e2d\u672c\u806a' },\n { label: '@\u30b5\u30c8\u30b7\u30fb\u30ca\u30ab\u30e2\u30c8' },\n { label: '@\u91ce\u6bd4\u306e\u3073\u592a' },\n { label: '@\uc131\ub355\uc120' },\n];\n\nfunction App() {\n return ;\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { mentions } from '@uiw/codemirror-extensions-mentions';\n\nconst users = [\n { label: '@Walter White' },\n { label: '@\u76ae\u76ae\u9c81' },\n { label: '@\u9c81\u897f\u897f' },\n { label: '@\u4e2d\u672c\u806a' },\n { label: '@\u30b5\u30c8\u30b7\u30fb\u30ca\u30ab\u30e2\u30c8' },\n { label: '@\u91ce\u6bd4\u306e\u3073\u592a' },\n { label: '@\uc131\ub355\uc120' },\n];\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [mentions(users)],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=367.1b3d61df.chunk.js.map \ No newline at end of file diff --git a/static/js/367.1b3d61df.chunk.js.map b/static/js/367.1b3d61df.chunk.js.map new file mode 100644 index 000000000..5013ddd1c --- /dev/null +++ b/static/js/367.1b3d61df.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/367.1b3d61df.chunk.js","mappings":"wHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,o0EACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/mentions/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Mentions Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-mentions.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-mentions)\\n\\nMentions Extensions for CodeMirror6.\\n\\n[![Mentions Extensions](https://user-images.githubusercontent.com/1680273/183007711-68109ca3-7140-411e-a747-53bcca0fa4c7.png)](https://uiwjs.github.io/react-codemirror/#/extensions/mentions)\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-mentions --save\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { mentions } from '@uiw/codemirror-extensions-mentions';\\n\\nconst users = [\\n { label: '@Walter White' },\\n { label: '@皮皮鲁' },\\n { label: '@鲁西西' },\\n { label: '@中本聪' },\\n { label: '@サトシ・ナカモト' },\\n { label: '@野比のび太' },\\n { label: '@성덕선' },\\n];\\n\\nfunction App() {\\n return ;\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { mentions } from '@uiw/codemirror-extensions-mentions';\\n\\nconst users = [\\n { label: '@Walter White' },\\n { label: '@皮皮鲁' },\\n { label: '@鲁西西' },\\n { label: '@中本聪' },\\n { label: '@サトシ・ナカモト' },\\n { label: '@野比のび太' },\\n { label: '@성덕선' },\\n];\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [mentions(users)],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3835.7219d784.chunk.js b/static/js/3835.7219d784.chunk.js new file mode 100644 index 000000000..f8d800552 --- /dev/null +++ b/static/js/3835.7219d784.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3835],{63835:(e,n,r)=>{r.r(n),r.d(n,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Andromeda Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda)\n\nAndromeda theme for cm6, generated from [vscode themes](https://github.com/EliverLara/Andromeda/blob/master/themes/Andromeda-color-theme.json).\n\n\n \"codemirror-theme-andromeda\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-andromeda --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [andromeda, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { andromeda, andromedaInit } from '@uiw/codemirror-theme-andromeda';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const andromedaInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const andromeda: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [andromeda, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=3835.7219d784.chunk.js.map \ No newline at end of file diff --git a/static/js/3835.7219d784.chunk.js.map b/static/js/3835.7219d784.chunk.js.map new file mode 100644 index 000000000..0ba5b1210 --- /dev/null +++ b/static/js/3835.7219d784.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3835.7219d784.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,0kGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/andromeda/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Andromeda Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-abyss.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-andromeda)\\n\\nAndromeda theme for cm6, generated from [vscode themes](https://github.com/EliverLara/Andromeda/blob/master/themes/Andromeda-color-theme.json).\\n\\n\\n \\\"codemirror-theme-andromeda\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-andromeda --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [andromeda, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { andromeda, andromedaInit } from '@uiw/codemirror-theme-andromeda';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const andromedaInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const andromeda: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { andromeda } from '@uiw/codemirror-theme-andromeda';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [andromeda, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3909.41d886c9.chunk.js b/static/js/3909.41d886c9.chunk.js new file mode 100644 index 000000000..346a2d19b --- /dev/null +++ b/static/js/3909.41d886c9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3909],{63909:(n,e,l)=>{l.r(e),l.d(e,{default:()=>t});const t='// http://www.ats-lang.org/\n(* Say Hello! once *)\nval () = print"Hello!\\n"\n//\n(* Say Hello! 3 times *)\nval () = 3*delay(print"Hello!")\nval () = print_newline((*void*))\n//\n\n//\n(* Build a list of 3 *)\nval xs = $list{int}(0, 1, 2)\n//\nval x0 = xs[0] // legal\nval x1 = xs[1] // legal\nval x2 = xs[2] // legal\nval x3 = xs[3] // illegal\n//\n\n//\nextern\nfun{} f0 (): int\nextern\nfun{} f1 (int): int\nextern\nfun{} repeat_f0f1 (int): int\n//\nimplement\n{}(*tmp*)\nrepeat_f0f1(n) =\n if n = 0\n then f0()\n else f1(repeat_f0f1(n-1))\n // end of [if]\n//\nfun\ntimes (\n m:int, n:int\n) : int = // m*n\n repeat_f0f1 (m) where\n{\n implement f0<> () = 0\n implement f1<> (x) = x + n\n}\n//\nfun\npower (\n m:int, n:int\n) : int = // m^n\n repeat_f0f1 (n) where\n{\n implement f0<> () = 1\n implement f1<> (x) = m * x\n}\n//\nval () =\nprintln! ("5*5 = ", times(5,5))\nval () =\nprintln! ("5^2 = ", power(5,2))\nval () =\nprintln! ("2^10 = ", power(2,10))\nval () =\nprintln! ("3^10 = ", power(3,10))\n//\n'}}]); +//# sourceMappingURL=3909.41d886c9.chunk.js.map \ No newline at end of file diff --git a/static/js/3909.41d886c9.chunk.js.map b/static/js/3909.41d886c9.chunk.js.map new file mode 100644 index 000000000..5f8bda966 --- /dev/null +++ b/static/js/3909.41d886c9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3909.41d886c9.chunk.js","mappings":"yHAAA,ghC","sources":["../../node_modules/code-example/txt/sample.postiats.txt"],"sourcesContent":["export default \"// http://www.ats-lang.org/\\n(* Say Hello! once *)\\nval () = print\\\"Hello!\\\\n\\\"\\n//\\n(* Say Hello! 3 times *)\\nval () = 3*delay(print\\\"Hello!\\\")\\nval () = print_newline((*void*))\\n//\\n\\n//\\n(* Build a list of 3 *)\\nval xs = $list{int}(0, 1, 2)\\n//\\nval x0 = xs[0] // legal\\nval x1 = xs[1] // legal\\nval x2 = xs[2] // legal\\nval x3 = xs[3] // illegal\\n//\\n\\n//\\nextern\\nfun{} f0 (): int\\nextern\\nfun{} f1 (int): int\\nextern\\nfun{} repeat_f0f1 (int): int\\n//\\nimplement\\n{}(*tmp*)\\nrepeat_f0f1(n) =\\n if n = 0\\n then f0()\\n else f1(repeat_f0f1(n-1))\\n // end of [if]\\n//\\nfun\\ntimes (\\n m:int, n:int\\n) : int = // m*n\\n repeat_f0f1 (m) where\\n{\\n implement f0<> () = 0\\n implement f1<> (x) = x + n\\n}\\n//\\nfun\\npower (\\n m:int, n:int\\n) : int = // m^n\\n repeat_f0f1 (n) where\\n{\\n implement f0<> () = 1\\n implement f1<> (x) = m * x\\n}\\n//\\nval () =\\nprintln! (\\\"5*5 = \\\", times(5,5))\\nval () =\\nprintln! (\\\"5^2 = \\\", power(5,2))\\nval () =\\nprintln! (\\\"2^10 = \\\", power(2,10))\\nval () =\\nprintln! (\\\"3^10 = \\\", power(3,10))\\n//\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/3982.4ce29ede.chunk.js b/static/js/3982.4ce29ede.chunk.js new file mode 100644 index 000000000..705077272 --- /dev/null +++ b/static/js/3982.4ce29ede.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[3982],{43982:(e,t,o)=>{o.r(t),o.d(t,{ClassNameExample:()=>m,Component:()=>f});var n=o(80905),r=o(8070),a=o(67538);function d(e,t){var o=new r.vB;for(var{from:n,to:d}of e.visibleRanges)for(var i=n;i<=d;){var s=e.state.doc.lineAt(i);if(t.add&&"function"===typeof t.add){var l=t.add(s.number);if(l&&"string"===typeof l){var c={class:l};o.add(s.from,s.from,a.NZ.line({attributes:c}))}}i=s.to+1}return o.finish()}var i=o(73562),s=o(69332),l=o(98846),c=o(94458),u=o(55864),h=o(98557);const m=()=>{const{theme:e}=(0,c.D)(),t=(0,n.useContext)(l.pX),o=a.Lz.baseTheme({"&dark .first-line":{backgroundColor:"red"},"&light .first-line":{backgroundColor:"red"},"&dark .line-color":{backgroundColor:"blue"},"&light .line-color":{backgroundColor:"blue"}});return(0,h.jsx)(u.zu,{children:(0,h.jsx)(i.default,{value:t.mdstr,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[s.cg.markdown(),o,(r={add:e=>3===e?"first-line":5===e?"line-color":void 0},void 0===r&&(r={}),a.Z9.fromClass(class{constructor(e){this.decorations=void 0,this.decorations=d(e,r)}update(e){(e.docChanged||e.viewportChanged)&&(this.decorations=d(e.view,r))}},{decorations:e=>e.decorations}))]})});var r},f=()=>(0,h.jsx)(l.lN,{path:()=>o.e(4271).then(o.bind(o,84271)),children:(0,h.jsx)(m,{})})},55864:(e,t,o)=>{o.d(t,{zu:()=>i});var n,r,a=o(60114),d=o(6008);const i=d.Ay.div(n||(n=(0,a.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));d.Ay.div(r||(r=(0,a.A)(["\n display: flex;\n flex: 1;\n"])))},94458:(e,t,o)=>{o.d(t,{D:()=>r});var n=o(80905);function r(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[o,r]=(0,n.useState)("dark"===t?"dark":e);return(0,n.useEffect)((()=>{r("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{r(e.detail.colorScheme)}))}),[]),{theme:o,setTheme:r}}}}]); +//# sourceMappingURL=3982.4ce29ede.chunk.js.map \ No newline at end of file diff --git a/static/js/3982.4ce29ede.chunk.js.map b/static/js/3982.4ce29ede.chunk.js.map new file mode 100644 index 000000000..aa856ee18 --- /dev/null +++ b/static/js/3982.4ce29ede.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/3982.4ce29ede.chunk.js","mappings":"sLAEA,SAASA,EAAWC,EAAMC,GACxB,IAAIC,EAAU,IAAIC,EAAAA,GAClB,IAAK,IAAI,KACPC,EAAI,GACJC,KACGL,EAAKM,cACR,IAAK,IAAIC,EAAMH,EAAMG,GAAOF,GAAK,CAC/B,IAAIG,EAAOR,EAAKS,MAAMC,IAAIC,OAAOJ,GACjC,GAAIN,EAAKW,KAA2B,oBAAbX,EAAKW,IAAoB,CAC9C,IAAIC,EAAMZ,EAAKW,IAAIJ,EAAKM,QACxB,GAAID,GAAsB,kBAARA,EAAkB,CAClC,IAAIE,EAAa,CACfC,MAAOH,GAETX,EAAQU,IAAIJ,EAAKJ,KAAMI,EAAKJ,KAAMa,EAAAA,GAAWT,KAAK,CAChDO,eAEJ,CACF,CACAR,EAAMC,EAAKH,GAAK,CAClB,CAEF,OAAOH,EAAQgB,QACjB,C,sEChBO,MAAMC,EAA0CA,KACrD,MAAM,MAAEC,IAAUC,EAAAA,EAAAA,KACZC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IAEpBC,EAAYC,EAAAA,GAAWC,UAAU,CACrC,oBAAqB,CAAEC,gBAAiB,OACxC,qBAAsB,CAAEA,gBAAiB,OACzC,oBAAqB,CAAEA,gBAAiB,QACxC,qBAAsB,CAAEA,gBAAiB,UAG3C,OACEC,EAAAA,EAAAA,KAACC,EAAAA,GAAW,CAAAC,UACVF,EAAAA,EAAAA,KAACG,EAAAA,QAAU,CACTC,MAAOX,EAAOY,MACdd,MAAOA,EACPe,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CACVC,EAAAA,GAAMC,WACNf,GDHgBgB,ECIN,CACR7B,IAAM8B,GACe,IAAfA,EACK,aAEU,IAAfA,EACK,kBADT,QDRI,IAAZD,IACFA,EAAU,CAAC,GAENE,EAAAA,GAAWC,UAAU,MAC1BC,WAAAA,CAAY7C,GACV8C,KAAKC,iBAAc,EACnBD,KAAKC,YAAchD,EAAWC,EAAMyC,EACtC,CACAO,MAAAA,CAAOA,IACDA,EAAOC,YAAcD,EAAOE,mBAC9BJ,KAAKC,YAAchD,EAAWiD,EAAOhD,KAAMyC,GAE/C,GACC,CACDM,YAAaI,GAAKA,EAAEJ,oBAfjB,IAAmBN,CCgBR,EAILW,EAAYA,KAErBvB,EAAAA,EAAAA,KAACwB,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAAyDvB,UAC5EF,EAAAA,EAAAA,KAACV,EAAgB,K,iEC/ChB,MAAMW,EAAcyB,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,kDCL1B,SAASrC,IAAyD,IAAhDuC,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5C/C,EAAOgD,IAAYC,EAAAA,EAAAA,UAAiD,SAATL,EAAkB,OAASJ,GAO7F,OANAU,EAAAA,EAAAA,YAAU,KACRF,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASM,iBAAiB,qBAAsBC,IAC9CJ,EAASI,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAEtD,QAAOgD,WAClB,C","sources":["../../extensions/classname/esm/index.js","pages/extensions/classname/index.tsx","pages/extensions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import { RangeSetBuilder } from '@codemirror/state';\nimport { Decoration, ViewPlugin } from '@codemirror/view';\nfunction stripeDeco(view, opts) {\n var builder = new RangeSetBuilder();\n for (var {\n from,\n to\n } of view.visibleRanges) {\n for (var pos = from; pos <= to;) {\n var line = view.state.doc.lineAt(pos);\n if (opts.add && typeof opts.add === 'function') {\n var cls = opts.add(line.number);\n if (cls && typeof cls === 'string') {\n var attributes = {\n class: cls\n };\n builder.add(line.from, line.from, Decoration.line({\n attributes\n }));\n }\n }\n pos = line.to + 1;\n }\n }\n return builder.finish();\n}\nexport function classname(options) {\n if (options === void 0) {\n options = {};\n }\n return ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = void 0;\n this.decorations = stripeDeco(view, options);\n }\n update(update) {\n if (update.docChanged || update.viewportChanged) {\n this.decorations = stripeDeco(update.view, options);\n }\n }\n }, {\n decorations: v => v.decorations\n });\n}","import { FC, PropsWithChildren, useContext } from 'react';\nimport { classname } from '@uiw/codemirror-extensions-classname';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { EditorView } from '@codemirror/view';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\n\nexport const ClassNameExample: FC = () => {\n const { theme } = useTheme();\n const mdData = useContext(MdContext);\n\n const themeDemo = EditorView.baseTheme({\n '&dark .first-line': { backgroundColor: 'red' },\n '&light .first-line': { backgroundColor: 'red' },\n '&dark .line-color': { backgroundColor: 'blue' },\n '&light .line-color': { backgroundColor: 'blue' },\n });\n\n return (\n \n {\n if (lineNumber === 3) {\n return 'first-line';\n }\n if (lineNumber === 5) {\n return 'line-color';\n }\n },\n }),\n ]}\n />\n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-classname/README.md')}>\n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["stripeDeco","view","opts","builder","RangeSetBuilder","from","to","visibleRanges","pos","line","state","doc","lineAt","add","cls","number","attributes","class","Decoration","finish","ClassNameExample","theme","useTheme","mdData","useContext","MdContext","themeDemo","EditorView","baseTheme","backgroundColor","_jsx","PageWarpper","children","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","options","lineNumber","ViewPlugin","fromClass","constructor","this","decorations","update","docChanged","viewportChanged","v","Component","Preview","path","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useState","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4063.9471ff8b.chunk.js b/static/js/4063.9471ff8b.chunk.js new file mode 100644 index 000000000..308b2ce06 --- /dev/null +++ b/static/js/4063.9471ff8b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4063],{4063:(t,a,n)=>{n.r(a),n.d(a,{default:()=>w});const w=".ob out1 out2 out3\n--1-- - wait 110000\n.ilb in1 in0 wait ack nack\n.symbolic state<3> state<2>;aaa bbb; # comment\n"}}]); +//# sourceMappingURL=4063.9471ff8b.chunk.js.map \ No newline at end of file diff --git a/static/js/4063.9471ff8b.chunk.js.map b/static/js/4063.9471ff8b.chunk.js.map new file mode 100644 index 000000000..94f4054f5 --- /dev/null +++ b/static/js/4063.9471ff8b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4063.9471ff8b.chunk.js","mappings":"wHAAA,8I","sources":["../../node_modules/code-example/txt/sample.pla.txt"],"sourcesContent":["export default \".ob out1 out2 out3\\n--1-- - wait 110000\\n.ilb in1 in0 wait ack nack\\n.symbolic state<3> state<2>;aaa bbb; # comment\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4077.fe938c34.chunk.js b/static/js/4077.fe938c34.chunk.js new file mode 100644 index 000000000..693ca64b2 --- /dev/null +++ b/static/js/4077.fe938c34.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4077],{24077:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Eclipse Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-eclipse.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse)\n\n\n \"codemirror-theme-eclipse\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-eclipse --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [eclipse, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { defaultSettingsEclipse } from '@uiw/codemirror-theme-eclipse';\nimport { eclipse, eclipseInit } from '@uiw/codemirror-theme-eclipse';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsEclipse: CreateThemeOptions['settings'];\nexport declare const eclipseInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const eclipse: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [eclipse, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4077.fe938c34.chunk.js.map \ No newline at end of file diff --git a/static/js/4077.fe938c34.chunk.js.map b/static/js/4077.fe938c34.chunk.js.map new file mode 100644 index 000000000..662b3ba23 --- /dev/null +++ b/static/js/4077.fe938c34.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4077.fe938c34.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,i4FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/eclipse/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Eclipse Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-eclipse.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-eclipse)\\n\\n\\n \\\"codemirror-theme-eclipse\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-eclipse --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [eclipse, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { defaultSettingsEclipse } from '@uiw/codemirror-theme-eclipse';\\nimport { eclipse, eclipseInit } from '@uiw/codemirror-theme-eclipse';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsEclipse: CreateThemeOptions['settings'];\\nexport declare const eclipseInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const eclipse: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { eclipse } from '@uiw/codemirror-theme-eclipse';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [eclipse, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4147.ab23c510.chunk.js b/static/js/4147.ab23c510.chunk.js new file mode 100644 index 000000000..af9954a0d --- /dev/null +++ b/static/js/4147.ab23c510.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4147],{4147:(e,n,t)=>{t.r(n),t.d(n,{default:()=>a});const a='// Contract simulating developers organization\ncontract HackBG =\n\n record state = { developers: map(address, developer) }\n\n record developer = { name: string\n , age: int\n , skillset: map(skill, experience) }\n\n type skill = string\n type experience = int\n\n datatype event =\n LogDeveloperAdded(indexed address, indexed int, string)\n\n entrypoint init() : state = { developers = {} }\n\n stateful entrypoint dev_add(account: address, dev_name: string, dev_age: int) =\n require(!is_member(account), "ERROR_DEVELOPER_ALREADY_EXISTS")\n let dev : developer = { name = dev_name\n , age = dev_age\n , skillset = {} }\n put(state{ developers[account] = dev })\n Chain.event(LogDeveloperAdded(account, Chain.timestamp, dev_name))\n\n stateful entrypoint dev_update(account: address, dev_name: string, dev_age: int) =\n require(is_member(account), "ERROR_DEVELOPER_DOES_NOT_EXIST")\n put(state{ developers[account].name = dev_name })\n put(state{ developers[account].age = dev_age })\n\n function is_member(account: address) : bool =\n Map.member(account, state.developers)\n\n stateful entrypoint dev_skill_modify(account: address, skill: string, experience: int) =\n put(state{ developers[account].skillset[skill] = experience })\n\n entrypoint dev_get(account: address) : developer =\n state.developers[account]'}}]); +//# sourceMappingURL=4147.ab23c510.chunk.js.map \ No newline at end of file diff --git a/static/js/4147.ab23c510.chunk.js.map b/static/js/4147.ab23c510.chunk.js.map new file mode 100644 index 000000000..9c9c89b5a --- /dev/null +++ b/static/js/4147.ab23c510.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4147.ab23c510.chunk.js","mappings":"wHAAA,qgD","sources":["../../node_modules/code-example/txt/sample.aes.txt"],"sourcesContent":["export default \"// Contract simulating developers organization\\ncontract HackBG =\\n\\n record state = { developers: map(address, developer) }\\n\\n record developer = { name: string\\n , age: int\\n , skillset: map(skill, experience) }\\n\\n type skill = string\\n type experience = int\\n\\n datatype event =\\n LogDeveloperAdded(indexed address, indexed int, string)\\n\\n entrypoint init() : state = { developers = {} }\\n\\n stateful entrypoint dev_add(account: address, dev_name: string, dev_age: int) =\\n require(!is_member(account), \\\"ERROR_DEVELOPER_ALREADY_EXISTS\\\")\\n let dev : developer = { name = dev_name\\n , age = dev_age\\n , skillset = {} }\\n put(state{ developers[account] = dev })\\n Chain.event(LogDeveloperAdded(account, Chain.timestamp, dev_name))\\n\\n stateful entrypoint dev_update(account: address, dev_name: string, dev_age: int) =\\n require(is_member(account), \\\"ERROR_DEVELOPER_DOES_NOT_EXIST\\\")\\n put(state{ developers[account].name = dev_name })\\n put(state{ developers[account].age = dev_age })\\n\\n function is_member(account: address) : bool =\\n Map.member(account, state.developers)\\n\\n stateful entrypoint dev_skill_modify(account: address, skill: string, experience: int) =\\n put(state{ developers[account].skillset[skill] = experience })\\n\\n entrypoint dev_get(account: address) : developer =\\n state.developers[account]\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/419.68b07d8b.chunk.js b/static/js/419.68b07d8b.chunk.js new file mode 100644 index 000000000..7e0e42211 --- /dev/null +++ b/static/js/419.68b07d8b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[419],{10419:(e,i,t)=>{t.r(i),t.d(i,{default:()=>u});const u="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus aliquet sapien, sed rhoncus leo ullamcorper ornare. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus feugiat eleifend nisl, aliquet rhoncus quam scelerisque vel. Morbi eu pellentesque ex. Nam suscipit maximus leo blandit cursus. Aenean sollicitudin nisi luctus, ornare nibh viverra, laoreet ex. Donec eget nibh sit amet dolor ornare elementum. Morbi sollicitudin enim vitae risus pretium vestibulum. Ut pretium hendrerit libero, non vulputate ante volutpat et. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam malesuada turpis vitae est porttitor, id tincidunt neque dignissim. Integer rhoncus vestibulum justo in iaculis. Praesent nec augue ut dui scelerisque gravida vel id velit. Donec vehicula feugiat mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.\n\nPraesent diam lorem, luctus quis ullamcorper non, consequat quis orci. Ut vel massa vel nunc sagittis porttitor a vitae ante. Quisque euismod lobortis imperdiet. Vestibulum tincidunt vehicula posuere. Nulla facilisi. Donec sodales imperdiet risus id ullamcorper. Nulla luctus orci tortor, vitae tincidunt urna aliquet nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam consequat dapibus massa. Sed ac pharetra magna, in imperdiet neque. Nullam nunc nisi, consequat vel nunc et, sagittis aliquam arcu. Aliquam non orci magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed id sem ut sem pulvinar rhoncus. Aenean venenatis nunc eget mi ornare, vitae maximus lacus varius. Quisque quis vestibulum justo.\n\nDonec euismod luctus volutpat. Donec sed lacinia enim. Vivamus aliquam elit cursus, convallis diam at, volutpat turpis. Sed lacinia nisl in auctor dapibus. Nunc turpis mi, mattis ut rhoncus id, lacinia sed lectus. Donec sodales tellus quis libero gravida pretium et quis magna. Etiam ultricies mollis purus, eget consequat velit. Duis vitae nibh vitae arcu tincidunt congue. Maecenas ut velit in ipsum condimentum dictum quis eget urna. Sed mattis nulla arcu, vitae mattis ligula dictum at.\n\nPraesent at dignissim dolor. Donec quis placerat sem. Cras vitae placerat sapien, eu sagittis ex. Mauris nec luctus risus. Cras imperdiet semper neque suscipit auctor. Mauris nisl massa, commodo sit amet dignissim id, malesuada sed ante. Praesent varius sapien eget eros vehicula porttitor.\n\nMauris auctor nunc in quam tempor, eget consectetur nisi rhoncus. Donec et nulla imperdiet, gravida dui at, accumsan velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin sollicitudin condimentum auctor. Sed lacinia eleifend nisi, id scelerisque leo laoreet sit amet. Morbi congue augue a malesuada pulvinar. Curabitur nec ante finibus, commodo orci vel, aliquam libero. Morbi molestie purus non nunc placerat fermentum. Pellentesque commodo ligula sed pretium aliquam. Praesent ut nibh ex. Vivamus vestibulum velit in leo suscipit, vitae pellentesque urna vulputate. Suspendisse pretium placerat ligula eu ullamcorper. Nam eleifend mi tellus, ut tristique ante ultricies vitae. Quisque venenatis dapibus tellus sit amet mattis. Donec erat arcu, elementum vel nisl at, sagittis vulputate nisi."}}]); +//# sourceMappingURL=419.68b07d8b.chunk.js.map \ No newline at end of file diff --git a/static/js/419.68b07d8b.chunk.js.map b/static/js/419.68b07d8b.chunk.js.map new file mode 100644 index 000000000..6f65f5659 --- /dev/null +++ b/static/js/419.68b07d8b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/419.68b07d8b.chunk.js","mappings":"wHAAA,u0G","sources":["../../node_modules/code-example/txt/sample.plaintext.txt"],"sourcesContent":["export default \"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec cursus aliquet sapien, sed rhoncus leo ullamcorper ornare. Interdum et malesuada fames ac ante ipsum primis in faucibus. Phasellus feugiat eleifend nisl, aliquet rhoncus quam scelerisque vel. Morbi eu pellentesque ex. Nam suscipit maximus leo blandit cursus. Aenean sollicitudin nisi luctus, ornare nibh viverra, laoreet ex. Donec eget nibh sit amet dolor ornare elementum. Morbi sollicitudin enim vitae risus pretium vestibulum. Ut pretium hendrerit libero, non vulputate ante volutpat et. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Nullam malesuada turpis vitae est porttitor, id tincidunt neque dignissim. Integer rhoncus vestibulum justo in iaculis. Praesent nec augue ut dui scelerisque gravida vel id velit. Donec vehicula feugiat mollis. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.\\n\\nPraesent diam lorem, luctus quis ullamcorper non, consequat quis orci. Ut vel massa vel nunc sagittis porttitor a vitae ante. Quisque euismod lobortis imperdiet. Vestibulum tincidunt vehicula posuere. Nulla facilisi. Donec sodales imperdiet risus id ullamcorper. Nulla luctus orci tortor, vitae tincidunt urna aliquet nec. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Etiam consequat dapibus massa. Sed ac pharetra magna, in imperdiet neque. Nullam nunc nisi, consequat vel nunc et, sagittis aliquam arcu. Aliquam non orci magna. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Sed id sem ut sem pulvinar rhoncus. Aenean venenatis nunc eget mi ornare, vitae maximus lacus varius. Quisque quis vestibulum justo.\\n\\nDonec euismod luctus volutpat. Donec sed lacinia enim. Vivamus aliquam elit cursus, convallis diam at, volutpat turpis. Sed lacinia nisl in auctor dapibus. Nunc turpis mi, mattis ut rhoncus id, lacinia sed lectus. Donec sodales tellus quis libero gravida pretium et quis magna. Etiam ultricies mollis purus, eget consequat velit. Duis vitae nibh vitae arcu tincidunt congue. Maecenas ut velit in ipsum condimentum dictum quis eget urna. Sed mattis nulla arcu, vitae mattis ligula dictum at.\\n\\nPraesent at dignissim dolor. Donec quis placerat sem. Cras vitae placerat sapien, eu sagittis ex. Mauris nec luctus risus. Cras imperdiet semper neque suscipit auctor. Mauris nisl massa, commodo sit amet dignissim id, malesuada sed ante. Praesent varius sapien eget eros vehicula porttitor.\\n\\nMauris auctor nunc in quam tempor, eget consectetur nisi rhoncus. Donec et nulla imperdiet, gravida dui at, accumsan velit. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Proin sollicitudin condimentum auctor. Sed lacinia eleifend nisi, id scelerisque leo laoreet sit amet. Morbi congue augue a malesuada pulvinar. Curabitur nec ante finibus, commodo orci vel, aliquam libero. Morbi molestie purus non nunc placerat fermentum. Pellentesque commodo ligula sed pretium aliquam. Praesent ut nibh ex. Vivamus vestibulum velit in leo suscipit, vitae pellentesque urna vulputate. Suspendisse pretium placerat ligula eu ullamcorper. Nam eleifend mi tellus, ut tristique ante ultricies vitae. Quisque venenatis dapibus tellus sit amet mattis. Donec erat arcu, elementum vel nisl at, sagittis vulputate nisi.\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4265.02910c40.chunk.js b/static/js/4265.02910c40.chunk.js new file mode 100644 index 000000000..b2d002320 --- /dev/null +++ b/static/js/4265.02910c40.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4265],{94265:(n,e,t)=>{t.r(e),t.d(e,{default:()=>r});const r='// Copyright (c) Microsoft. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full\n// license information.\n\n/*\n * COMMAND LINE: -Ox -Gz -YX -UPROTOTYPES_REQUIRED\n */\n\n#pragma warning(disable : 4532)\n#pragma warning(disable : 4702)\n\n#if defined(_WIN32)\n\n#if defined(_M_SH)\n#define WIN_CE\n#endif\n\n#if defined(_M_AMD64)\n#define NEST_IN_FINALLY /* allow when __try nested in __finally OK */\n#endif\n\n#define NTSTATUS LONG\n#define EXCEPTION_NESTED_CALL 0x10\n#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)\n#define RtlRaiseException(x) \\\n RaiseException((x)->ExceptionCode, (x)->ExceptionFlags, \\\n (x)->NumberParameters, (x)->ExceptionInformation)\n#define IN\n#define OUT\n#if !(defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_PPC) || \\\n defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64))\n#define i386 1\n#endif\n#define try __try\n#define except __except\n#define finally __finally\n#define leave __leave\n\n#endif\n\n#define WIN32_LEAN_AND_MEAN\n\n#include "stdio.h"\n#if defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_PPC) || \\\n defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64)\n#include "setjmpex.h"\n#else\n#include "setjmp.h"\n#endif\n#include "float.h"\n#include "windows.h"\n#include "math.h"\n\n#if !defined(STATUS_SUCCESS)\n#define STATUS_SUCCESS 0\n#endif\n#if !defined(STATUS_UNSUCCESSFUL)\n#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)\n#endif\n\n//\n// Define switch constants.\n//\n\n#define BLUE 0\n#define RED 1\n\n//\n// Define function prototypes.\n//\n\nVOID addtwo(IN LONG First, IN LONG Second, IN PLONG Place);\n\nVOID bar1(IN NTSTATUS Status, IN PLONG Counter);\n\nVOID bar2(IN PLONG BlackHole, IN PLONG BadAddress, IN PLONG Counter);\n\nVOID dojump(IN jmp_buf JumpBuffer, IN PLONG Counter);\n\nLONG Echo(IN LONG Value);\n\n#if !defined(WIN_CE) // return through finally not allowed on WinCE\nVOID eret(IN NTSTATUS Status, IN PLONG Counter);\n#endif\n\nVOID except1(IN PLONG Counter);\n\nULONG\nexcept2(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter);\n\nULONG\nexcept3(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter);\n\nVOID foo1(IN NTSTATUS Status);\n\nVOID foo2(IN PLONG BlackHole, IN PLONG BadAddress);\n\n#if !defined(WIN_CE) // return from finally not allowed on WinCE\nVOID fret(IN PLONG Counter);\n#endif\n\nBOOLEAN\nTkm(VOID);\n\nVOID Test61Part2(IN OUT PULONG Counter);\n\ndouble SquareDouble(IN double op);\n\nDECLSPEC_NOINLINE\nULONG\nPgFilter(VOID)\n\n{\n\n printf("filter entered...");\n return EXCEPTION_EXECUTE_HANDLER;\n}\n\n#pragma warning(push)\n#pragma warning(disable : 4532)\n\nVOID PgTest69(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 1) {\n *State += 1;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 1) == 1) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\n if (*State != 2) {\n *Fault += 1;\n }\n }\n\n return;\n}\n\nVOID PgTest70(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 2) {\n PgFilter();\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 2) == 2) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest71(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 3) {\n *State += 3;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 6) {\n *State += 3;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 3) == 3) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest72(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 4) {\n *State += 4;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 8) {\n *State += 4;\n PgFilter();\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 4) == 4) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest73(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 5) {\n *State += 5;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 10) {\n *State += 5;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 5) == 5) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest74(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 6) {\n *State += 6;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 12) {\n *State += 6;\n PgFilter();\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 6) == 6) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest75(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 7) {\n *State += 7;\n *Fault += 1;\n\n } else {\n *State += 10;\n }\n }\n }\n }\n except(((*State += 7) == 7) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 28) {\n *State += 7;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 7) == 28) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest76(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 8) {\n *State += 8;\n *Fault += 1;\n\n } else {\n *State += 10;\n }\n }\n }\n }\n except(((*State += 8) == 8) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 32) {\n *State += 8;\n PgFilter();\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 8) == 32) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest77(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 9) {\n *State += 9;\n *Fault += 1;\n\n } else {\n *State += 10;\n }\n }\n }\n }\n except(((*State += 9) == 9) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 36) {\n *State += 9;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 9) == 36) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\nVOID PgTest78(IN PLONG State, IN PLONG Fault)\n\n{\n\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 10) {\n *State += 10;\n PgFilter();\n *Fault += 1;\n\n } else {\n *State += 10;\n }\n }\n }\n }\n except(((*State += 10) == 10) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n }\n finally {\n if (AbnormalTermination()) {\n if (*State == 40) {\n *State += 10;\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n except(((*State += 10) == 40) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n\n return;\n}\n\n#pragma warning(pop)\n\nVOID Test79(PLONG Counter, PLONG Fault)\n\n{\n\n try {\n try {\n try {\n *Fault += 1;\n }\n finally {\n printf("finally 1...");\n *Fault += 1;\n }\n }\n finally { printf("finally 2..."); }\n }\n except(*Counter += 1, printf("filter 1..."), EXCEPTION_CONTINUE_SEARCH) {}\n\n return;\n}\n\nULONG G;\n\nULONG\nTest80(VOID)\n\n{\n\n G = 1;\n try {\n while (G) {\n try {\n if (G == 10) {\n return 1;\n }\n\n if (G == 1) {\n continue;\n }\n }\n finally { G = 0; }\n }\n }\n finally { G = 10; }\n\n return 0;\n}\n\nvoid Test81(int *pCounter) {\n volatile char *AvPtr = NULL;\n\n __try {\n __try { *AvPtr = \'\\0\'; }\n __except(EXCEPTION_EXECUTE_HANDLER) { __leave; }\n }\n __finally {\n printf("in finally ");\n *pCounter += 1;\n }\n return;\n}\n\nDECLSPEC_NOINLINE\nVOID Test82Foo(VOID)\n\n{\n *(volatile int *)0 = 0;\n}\n\nVOID Test82(__inout PLONG Counter)\n\n{\n\n int retval = 1;\n\n __try {\n __try { Test82Foo(); }\n __finally {\n switch (*Counter) {\n case 0:\n printf("something failed!\\n");\n retval = 6;\n break;\n\n case 1:\n retval = 0;\n break;\n\n case 2:\n printf("how did you get here?\\n");\n retval = 2;\n break;\n\n case 3:\n printf("what?!?\\n");\n retval = 3;\n break;\n\n case 4:\n printf("not correct\\n");\n retval = 4;\n break;\n\n case 5:\n printf("error!\\n");\n retval = 5;\n break;\n }\n }\n }\n __except(1){}\n\n *Counter = retval;\n return;\n}\n\nLONG Test83(VOID)\n\n{\n\n G = 1;\n try {\n try {\n while (G) {\n try {\n if (G == 10) {\n return 1;\n }\n\n if (G == 1) {\n continue;\n }\n }\n finally { G = 0; }\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\n }\n finally { G = 10; }\n\n return 0;\n}\n\nDECLSPEC_NOINLINE\nVOID Test84(_Inout_ PLONG Counter)\n\n{\n volatile int *Fault = 0;\n\n try {\n try {\n *Fault += 1;\n }\n except(EXCEPTION_EXECUTE_HANDLER) {\n try {\n return;\n }\n finally { *Counter += 1; }\n }\n }\n finally {\n\n if (AbnormalTermination()) {\n *Counter += 1;\n }\n }\n\n return;\n}\n\nDECLSPEC_NOINLINE\nLONG Test85(_Inout_ PLONG Counter)\n\n{\n volatile int *Fault = 0;\n\n G = 1;\n try {\n try {\n try {\n while (G) {\n try {\n try {\n if (G == 10) {\n return 1;\n }\n try {\n *Counter += 1;\n }\n except(EXCEPTION_EXECUTE_HANDLER) {}\n\n if (G == 1) {\n continue;\n }\n }\n finally {\n G = 0;\n *Counter += 1;\n *Fault += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) {\n *Counter += 1;\n leave;\n }\n }\n }\n finally {\n G = 10;\n *Counter += 1;\n *Fault += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { *Counter += 1; }\n *Counter += 1;\n }\n finally { *Counter += 1; }\n return 1;\n}\n\nDECLSPEC_NOINLINE\nVOID Test86(_Inout_ PLONG Counter)\n\n{\n volatile int *Fault = 0;\n\n try {\n try {\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n except(printf("Filter1 %d..", *Counter),\n EXCEPTION_EXECUTE_HANDLER) {\n try {\n printf("Handler1 %d..", *Counter);\n return;\n }\n finally {\n printf("Finally1 %d..", *Counter);\n *Counter += 1;\n }\n }\n }\n finally {\n printf("Finally2 %d..", *Counter);\n *Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\n }\n finally { *Counter += 1; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\n }\n finally { *Counter += 1; }\n\n return;\n}\n\nVOID Test87(_Inout_ PLONG Counter)\n\n/*++\n\nRoutine Description:\n\n This function verifies the behavior of nested exception dispatching.\n\nArguments:\n\n Counter - Supplies a pointer to the state counter.\n\nReturn Value:\n None.\n\n--*/\n\n{\n volatile int *Fault = 0;\n\n//\n// N.B. Disabled on x86 due to failing test case with handling of returns\n// in nested termination handlers on x86.\n//\n// Disabled on ARM due to failing test case with handling of abutting\n// termination handlers within an except handler.\n//\n// Disabled on AMD64 due to failing test case with handling of\n// abutting termination handlers within an except handler when a\n// non-local goto is involved.\n//\n\n#if !defined(_X86_)\n try {\n try {\n try {\n try {\n try {\n *Fault += 1;\n\n try {\n }\n finally {\n if (AbnormalTermination()) {\n *Fault += 1;\n }\n }\n }\n finally {\n\n if (AbnormalTermination()) {\n if ((*Counter += 13) == 26) {\n return;\n\n } else {\n *Fault += 1;\n }\n }\n }\n }\n finally {\n if (AbnormalTermination()) {\n *Counter += 13;\n *Fault += 1;\n }\n }\n }\n except(((*Counter += 13) == 13) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Fault += 1;\n }\n }\n except(((*Counter += 13) == 65) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n try {\n *Counter += 13;\n return;\n }\n finally {\n if (AbnormalTermination()) {\n *Counter += 13;\n goto Finish;\n }\n }\n }\n }\n finally {\n\n if (AbnormalTermination()) {\n if ((*Counter += 13) == 104) {\n goto Finish;\n }\n }\n }\n\nFinish:\n#else\n *Counter = 104;\n#endif\n\n return;\n}\n\nVOID Test88(_Inout_ PLONG Counter)\n\n{\n volatile int *Fault = 0;\n\n try {\n try {\n try {\n try {\n try {\n try {\n try {\n try {\n *Fault += 1;\n }\n except(((*Counter += 1) == 1) ? *Fault\n : EXCEPTION_CONTINUE_SEARCH) {}\n }\n except(*Counter += 1, EXCEPTION_EXECUTE_HANDLER) { *Fault += 2; }\n }\n except(*Counter += 1, EXCEPTION_CONTINUE_SEARCH) { leave; }\n }\n except(*Counter += 1, EXCEPTION_CONTINUE_SEARCH) { leave; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) {}\n }\n except(EXCEPTION_EXECUTE_HANDLER) {}\n }\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\n }\n finally { *Counter += 1; }\n}\n\nint main(int argc, char *argv[])\n\n{\n\n PLONG BadAddress;\n PCHAR BadByte;\n PLONG BlackHole;\n ULONG Index1;\n ULONG Index2 = RED;\n jmp_buf JumpBuffer;\n LONG Counter;\n EXCEPTION_RECORD ExceptionRecord;\n double doubleresult;\n\n //\n // Announce start of exception test.\n //\n\n printf("Start of exception test\\n");\n\n //\n // Initialize exception record.\n //\n\n ExceptionRecord.ExceptionCode = STATUS_INTEGER_OVERFLOW;\n ExceptionRecord.ExceptionFlags = 0;\n ExceptionRecord.ExceptionRecord = NULL;\n ExceptionRecord.NumberParameters = 0;\n\n //\n // Initialize pointers.\n //\n\n BadAddress = (PLONG)NULL;\n BadByte = (PCHAR)NULL;\n BadByte += 1;\n BlackHole = &Counter;\n\n //\n // Simply try statement with a finally clause that is entered sequentially.\n //\n\n printf(" test1...");\n Counter = 0;\n try {\n Counter += 1;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 1;\n }\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try statement with an exception clause that is never executed\n // because there is no exception raised in the try clause.\n //\n\n printf(" test2...");\n Counter = 0;\n try {\n Counter += 1;\n }\n except(Counter) { Counter += 1; }\n\n if (Counter != 1) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try statement with an exception handler that is never executed\n // because the exception expression continues execution.\n //\n\n printf(" test3...");\n Counter = 0;\n try {\n Counter -= 1;\n RtlRaiseException(&ExceptionRecord);\n }\n except(Counter) { Counter -= 1; }\n\n if (Counter != -1) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try statement with an exception clause that is always executed.\n //\n\n printf(" test4...");\n Counter = 0;\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(Counter) { Counter += 1; }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try statement with an exception clause that is always executed.\n //\n\n printf(" test5...");\n Counter = 0;\n try {\n Counter += 1;\n *BlackHole += *BadAddress;\n }\n except(Counter) { Counter += 1; }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simply try statement with a finally clause that is entered as the\n // result of an exception.\n //\n\n printf(" test6...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n RtlRaiseException(&ExceptionRecord);\n }\n finally {\n if (abnormal_termination() != FALSE) {\n Counter += 1;\n }\n }\n }\n except(Counter) {\n if (Counter == 2) {\n Counter += 1;\n }\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simply try statement with a finally clause that is entered as the\n // result of an exception.\n //\n\n printf(" test7...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n *BlackHole += *BadAddress;\n }\n finally {\n if (abnormal_termination() != FALSE) {\n Counter += 1;\n }\n }\n }\n except(Counter) {\n if (Counter == 2) {\n Counter += 1;\n }\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try that calls a function which raises an exception.\n //\n\n printf(" test8...");\n Counter = 0;\n try {\n Counter += 1;\n foo1(STATUS_ACCESS_VIOLATION);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try that calls a function which raises an exception.\n //\n\n printf(" test9...");\n Counter = 0;\n try {\n Counter += 1;\n foo2(BlackHole, BadAddress);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try that calls a function which calls a function that\n // raises an exception. The first function has a finally clause\n // that must be executed for this test to work.\n //\n\n printf(" test10...");\n Counter = 0;\n try {\n bar1(STATUS_ACCESS_VIOLATION, &Counter);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter -= 1;\n }\n\n if (Counter != 98) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try that calls a function which calls a function that\n // raises an exception. The first function has a finally clause\n // that must be executed for this test to work.\n //\n\n printf(" test11...");\n Counter = 0;\n try {\n bar2(BlackHole, BadAddress, &Counter);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter -= 1;\n }\n\n if (Counter != 98) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try within an except\n //\n\n printf(" test12...");\n Counter = 0;\n try {\n foo1(STATUS_ACCESS_VIOLATION);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n try {\n foo1(STATUS_SUCCESS);\n }\n except((GetExceptionCode() == STATUS_SUCCESS) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n if (Counter != 1) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded...");\n }\n\n Counter += 1;\n }\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try within an except\n //\n\n printf(" test13...");\n Counter = 0;\n try {\n foo2(BlackHole, BadAddress);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n try {\n foo1(STATUS_SUCCESS);\n }\n except((GetExceptionCode() == STATUS_SUCCESS) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n if (Counter != 1) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded...");\n }\n\n Counter += 1;\n }\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from except/finally not allowed on WinCE\n //\n // A goto from an exception clause that needs to pass\n // through a finally\n //\n\n printf(" test14...");\n Counter = 0;\n try {\n try {\n foo1(STATUS_ACCESS_VIOLATION);\n }\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n goto t9;\n }\n }\n finally { Counter += 1; }\n\nt9:\n ;\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A goto from an finally clause that needs to pass\n // through a finally\n //\n\n printf(" test15...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n }\n finally {\n Counter += 1;\n goto t10;\n }\n }\n finally { Counter += 1; }\n\nt10:\n ;\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A goto from an exception clause that needs to pass\n // through a finally into the outer finally clause.\n //\n\n printf(" test16...");\n Counter = 0;\n try {\n try {\n try {\n Counter += 1;\n foo1(STATUS_INTEGER_OVERFLOW);\n }\n except(EXCEPTION_EXECUTE_HANDLER) {\n Counter += 1;\n goto t11;\n }\n }\n finally { Counter += 1; }\n t11:\n ;\n }\n finally { Counter += 1; }\n\n if (Counter != 4) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A goto from an finally clause that needs to pass\n // through a finally into the outer finally clause.\n //\n\n printf(" test17...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n }\n finally {\n Counter += 1;\n goto t12;\n }\n t12:\n ;\n }\n finally { Counter += 1; }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A return from an except clause\n //\n\n printf(" test18...");\n Counter = 0;\n try {\n Counter += 1;\n eret(STATUS_ACCESS_VIOLATION, &Counter);\n }\n finally { Counter += 1; }\n\n if (Counter != 4) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A return from a finally clause\n //\n\n printf(" test19...");\n Counter = 0;\n try {\n Counter += 1;\n fret(&Counter);\n }\n finally { Counter += 1; }\n\n if (Counter != 5) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // A simple set jump followed by a long jump.\n //\n\n printf(" test20...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump followed by a long jump out of a finally clause that is\n // sequentially executed.\n //\n\n printf(" test21...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n try {\n Counter += 1;\n }\n finally {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump within a try clause followed by a long jump out of a\n // finally clause that is sequentially executed.\n //\n\n printf(" test22...");\n Counter = 0;\n try {\n if (setjmp(JumpBuffer) == 0) {\n Counter += 1;\n\n } else {\n Counter += 1;\n }\n }\n finally {\n Counter += 1;\n if (Counter == 2) {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n }\n\n if (Counter != 5) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump followed by a try/except, followed by a try/finally where\n // the try body of the try/finally raises an exception that is handled\n // by the try/excecpt which causes the try/finally to do a long jump out\n // of a finally clause. This will create a collided unwind.\n //\n\n printf(" test23...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n try {\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump followed by a try/except, followed by a several nested\n // try/finally\'s where the inner try body of the try/finally raises an\n // exception that is handled by the try/except which causes the\n // try/finally to do a long jump out of a finally clause. This will\n // create a collided unwind.\n //\n\n printf(" test24...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n try {\n try {\n try {\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally { Counter += 1; }\n }\n finally {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n }\n finally { Counter += 1; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 5) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump followed by a try/except, followed by a try/finally which\n // calls a subroutine which contains a try finally that raises an\n // exception that is handled to the try/except.\n //\n\n printf(" test25...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n try {\n try {\n try {\n Counter += 1;\n dojump(JumpBuffer, &Counter);\n }\n finally { Counter += 1; }\n }\n finally { Counter += 1; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 7) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A set jump followed by a try/except, followed by a try/finally which\n // calls a subroutine which contains a try finally that raises an\n // exception that is handled to the try/except.\n //\n\n printf(" test26...");\n Counter = 0;\n if (setjmp(JumpBuffer) == 0) {\n try {\n try {\n try {\n try {\n Counter += 1;\n dojump(JumpBuffer, &Counter);\n }\n finally { Counter += 1; }\n }\n finally {\n Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n }\n finally { Counter += 1; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\n\n } else {\n Counter += 1;\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Test nested exceptions.\n //\n\n printf(" test27...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n except1(&Counter);\n }\n except(except2(GetExceptionInformation(), &Counter)) { Counter += 2; }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 3; }\n\n if (Counter != 55) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Simple try that causes an integer overflow exception.\n //\n\n printf(" test28...");\n Counter = 0;\n try {\n Counter += 1;\n addtwo(0x7fff0000, 0x10000, &Counter);\n }\n except((GetExceptionCode() == STATUS_INTEGER_OVERFLOW)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n//\n// Simple try that raises an misaligned data exception.\n//\n#if !defined(i386) && !defined(_M_IA64) && !defined(_M_AMD64) && \\\n !defined(_M_ARM) && !defined(_M_ARM64)\n printf(" test29...");\n Counter = 0;\n try {\n Counter += 1;\n foo2(BlackHole, (PLONG)BadByte);\n }\n except((GetExceptionCode() == STATUS_DATATYPE_MISALIGNMENT)\n ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n Counter += 1;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#endif\n //\n // Continue from a try body with an exception clause in a loop.\n //\n\n printf(" test30...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 0) {\n continue;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\n\n Counter += 2;\n }\n\n if (Counter != 15) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Continue from a try body with an finally clause in a loop.\n //\n\n printf(" test31...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 0) {\n continue;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n\n if (Counter != 40) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Continue from doubly nested try body with an exception clause in a\n // loop.\n //\n\n printf(" test32...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 0) {\n continue;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\n\n Counter += 2;\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\n\n Counter += 3;\n }\n\n if (Counter != 30) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Continue from doubly nested try body with an finally clause in a loop.\n //\n\n printf(" test33...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 0) {\n continue;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n finally { Counter += 4; }\n\n Counter += 5;\n }\n\n if (Counter != 105) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Continue from a finally clause in a loop.\n //\n\n printf(" test34...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 0) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n continue;\n }\n\n Counter += 4;\n }\n\n if (Counter != 25) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Continue from a doubly nested finally clause in a loop.\n //\n\n printf(" test35...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 0) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n continue;\n }\n\n Counter += 4;\n }\n finally { Counter += 5; }\n\n Counter += 6;\n }\n\n if (Counter != 75) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Continue from a doubly nested finally clause in a loop.\n //\n\n printf(" test36...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 0) {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 4;\n }\n finally {\n Counter += 5;\n continue;\n }\n\n Counter += 6;\n }\n\n if (Counter != 115) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Break from a try body with an exception clause in a loop.\n //\n\n printf(" test37...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\n\n Counter += 2;\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Break from a try body with an finally clause in a loop.\n //\n\n printf(" test38...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Break from doubly nested try body with an exception clause in a\n // loop.\n //\n\n printf(" test39...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\n\n Counter += 2;\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\n\n Counter += 3;\n }\n\n if (Counter != 6) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Break from doubly nested try body with an finally clause in a loop.\n //\n\n printf(" test40...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n finally { Counter += 4; }\n\n Counter += 5;\n }\n\n if (Counter != 21) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a finally clause in a loop.\n //\n\n printf(" test41...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n break;\n }\n\n Counter += 4;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a doubly nested finally clause in a loop.\n //\n\n printf(" test42...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n break;\n }\n\n Counter += 4;\n }\n finally { Counter += 5; }\n\n Counter += 6;\n }\n\n if (Counter != 7) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a doubly nested finally clause in a loop.\n //\n\n printf(" test43...");\n Counter = 0;\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 4;\n }\n finally {\n Counter += 5;\n break;\n }\n\n Counter += 6;\n }\n\n if (Counter != 11) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Break from a try body with an exception clause in a switch.\n //\n\n printf(" test44...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\n\n Counter += 2;\n break;\n }\n\n if (Counter != 0) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Break from a try body with an finally clause in a switch.\n //\n\n printf(" test45...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Break from doubly nested try body with an exception clause in a\n // switch.\n //\n\n printf(" test46...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\n\n Counter += 2;\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\n\n Counter += 3;\n }\n\n if (Counter != 0) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\n //\n // Break from doubly nested try body with an finally clause in a switch.\n //\n\n printf(" test47...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n break;\n\n } else {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 3;\n }\n finally { Counter += 4; }\n\n Counter += 5;\n }\n\n if (Counter != 6) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a finally clause in a switch.\n //\n\n printf(" test48...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n break;\n }\n\n Counter += 4;\n }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a doubly nested finally clause in a switch.\n //\n\n printf(" test49...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally {\n Counter += 2;\n break;\n }\n\n Counter += 4;\n }\n finally { Counter += 5; }\n\n Counter += 6;\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Break from a doubly nested finally clause in a switch.\n //\n\n printf(" test50...");\n Counter = 0;\n Index1 = 1;\n switch (Index2) {\n case BLUE:\n Counter += 100;\n break;\n\n case RED:\n try {\n try {\n if ((Index1 & 0x1) == 1) {\n Counter += 1;\n }\n }\n finally { Counter += 2; }\n\n Counter += 4;\n }\n finally {\n Counter += 5;\n break;\n }\n\n Counter += 6;\n }\n\n if (Counter != 12) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Leave from an if in a simple try/finally.\n //\n\n printf(" test51...");\n Counter = 0;\n try {\n if (Echo(Counter) == Counter) {\n Counter += 3;\n leave;\n\n } else {\n Counter += 100;\n }\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Leave from a loop in a simple try/finally.\n //\n\n printf(" test52...");\n Counter = 0;\n try {\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\n if (Echo(Index1) == Index1) {\n Counter += 3;\n leave;\n }\n\n Counter += 100;\n }\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Leave from a switch in a simple try/finally.\n //\n\n printf(" test53...");\n Counter = 0;\n try {\n switch (Index2) {\n case BLUE:\n break;\n\n case RED:\n Counter += 3;\n leave;\n }\n\n Counter += 100;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Counter != 8) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Leave from an if in doubly nested try/finally followed by a leave\n // from an if in the outer try/finally.\n //\n\n printf(" test54...");\n Counter = 0;\n try {\n try {\n if (Echo(Counter) == Counter) {\n Counter += 3;\n leave;\n\n } else {\n Counter += 100;\n }\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Echo(Counter) == Counter) {\n Counter += 3;\n leave;\n\n } else {\n Counter += 100;\n }\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Counter != 16) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#if !defined(WIN_CE) // leave from finally not allowed on WinCE\n //\n // Leave from an if in doubly nested try/finally followed by a leave\n // from the finally of the outer try/finally.\n //\n\n printf(" test55...");\n Counter = 0;\n try {\n try {\n if (Echo(Counter) == Counter) {\n Counter += 3;\n leave;\n\n } else {\n Counter += 100;\n }\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n leave;\n }\n }\n\n Counter += 100;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n\n if (Counter != 13) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif\n\n //\n // Try/finally within the except clause of a try/except that is always\n // executed.\n //\n\n printf(" test56...");\n Counter = 0;\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(Counter) {\n try {\n Counter += 3;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n }\n\n if (Counter != 9) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Try/finally within the finally clause of a try/finally.\n //\n\n printf(" test57...");\n Counter = 0;\n try {\n Counter += 1;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n try {\n Counter += 3;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n }\n }\n\n if (Counter != 9) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Try/except within the finally clause of a try/finally.\n //\n\n printf(" test58...");\n#if !defined(NEST_IN_FINALLY)\n printf("skipped\\n");\n#else\n Counter = 0;\n try {\n Counter -= 1;\n }\n finally {\n try {\n Counter += 2;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(Counter) {\n try {\n Counter += 3;\n }\n finally {\n if (abnormal_termination() == FALSE) {\n Counter += 5;\n }\n }\n }\n }\n\n if (Counter != 9) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif /* def(NEST_IN_FINALLY) */\n\n //\n // Try/except within the except clause of a try/except that is always\n // executed.\n //\n\n printf(" test59...");\n Counter = 0;\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(Counter) {\n try {\n Counter += 3;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(Counter - 3) { Counter += 5; }\n }\n\n if (Counter != 9) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Try with a Try which exits the scope with a goto\n //\n\n printf(" test60...");\n Counter = 0;\n try {\n try {\n goto outside;\n }\n except(1) { Counter += 1; }\n\n outside:\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(1) { Counter += 3; }\n\n if (Counter != 3) {\n printf("failed, count = %d\\n", Counter);\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Try/except which gets an exception from a subfunction within\n // a try/finally which has a try/except in the finally clause\n //\n\n printf(" test61...");\n#if !defined(NEST_IN_FINALLY)\n printf("skipped\\n");\n#else\n Counter = 0;\n try {\n Test61Part2(&Counter);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 11; }\n\n if (Counter != 24) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n#endif /* def(NEST_IN_FINALLY) */\n\n //\n // Check for precision of exception on floating point\n //\n\n printf(" test62...");\n\n#if defined(i386) || defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_AMD64)\n\n/* enable floating point overflow */\n#if defined(i386)\n _control87(_control87(0, 0) & ~EM_OVERFLOW, _MCW_EM);\n#else\n //\n // use portable version of _control87\n //\n _controlfp(_controlfp(0, 0) & ~EM_OVERFLOW, _MCW_EM);\n#endif\n\n Counter = 0;\n try {\n doubleresult = SquareDouble(1.7e300);\n\n try {\n doubleresult = SquareDouble(1.0);\n }\n except(1) { Counter += 3; }\n }\n except(1) { Counter += 1; }\n\n if (Counter != 1) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n/* clear up pending unmasked exceptions and restore FP control registers */\n#if defined(i386)\n _clear87();\n _control87(_control87(0, 0) | EM_OVERFLOW, 0xfffff);\n#else\n _clearfp();\n _controlfp(_controlfp(0, 0) | EM_OVERFLOW, 0xfffff);\n#endif\n\n#else\n printf("skipped\\n");\n#endif\n\n //\n // A try/finally inside a try/except where an exception is raised in the\n // try/finally.\n //\n\n printf(" test63...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n }\n finally {\n Counter += 3;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n }\n except(1) { Counter += 6; }\n\n if (Counter != 10) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try/finally inside a try/except where an exception is raised in the\n // in the try/except and the try/finally.\n //\n\n printf(" test64...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally {\n Counter += 3;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n }\n except(1) { Counter += 6; }\n\n if (Counter != 10) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try/finally inside a try/except where an exception is raised in the\n // try/finally.\n //\n\n printf(" test65...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n }\n finally {\n Counter += 3;\n *BlackHole += *BadAddress;\n Counter += 13;\n }\n }\n except(1) { Counter += 6; }\n\n if (Counter != 10) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try/finally inside a try/except where an exception is raised in the\n // in the try/except and the try/finally.\n //\n\n printf(" test66...");\n Counter = 0;\n try {\n try {\n Counter += 1;\n *BlackHole += *BadAddress;\n Counter += 13;\n }\n finally {\n Counter += 3;\n *BlackHole += *BadAddress;\n Counter += 13;\n }\n }\n except(1) { Counter += 6; }\n\n if (Counter != 10) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try/finally inside a try/finally inside a try/except where an\n // exception is raised in the in the try/except and in try/finally.\n //\n\n printf(" test67...");\n try {\n try {\n *BlackHole += *BadAddress;\n }\n finally {\n try {\n Counter = 0;\n }\n finally {\n if (Counter != 0) {\n Counter += 1;\n }\n }\n\n Counter += 1;\n *BlackHole += *BadAddress;\n }\n }\n except(1) { Counter += 1; }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // A try/finally inside a try/finally inside a try/except where an\n // exception is raised in the in the try/except and in try/finally.\n //\n\n printf(" test68...");\n try {\n try {\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally {\n try {\n Counter = 0;\n }\n finally {\n if (Counter != 0) {\n Counter += 1;\n }\n }\n\n Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n }\n except(1) { Counter += 1; }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n//\n// Patch guard test 69.\n//\n\n#if defined(_AMD64_) || defined(_X86_)\n\n printf(" test69...");\n Counter = 0;\n try {\n PgTest69(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test70...");\n Counter = 0;\n try {\n PgTest70(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 2) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test71...");\n Counter = 0;\n try {\n PgTest71(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 9) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test72...");\n Counter = 0;\n try {\n PgTest72(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 12) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test73...");\n Counter = 0;\n try {\n PgTest73(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 15) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test74...");\n Counter = 0;\n try {\n PgTest74(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 18) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test75...");\n Counter = 0;\n try {\n PgTest75(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 35) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test76...");\n Counter = 0;\n try {\n PgTest76(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 40) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test77...");\n Counter = 0;\n try {\n PgTest77(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 45) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test78...");\n Counter = 0;\n try {\n PgTest78(&Counter, BadAddress);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { printf("unexpected exception..."); }\n\n if (Counter != 50) {\n printf("failed, count = %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n#else\n printf(" test69...filter entered...succeeded\\n");\n printf(" test70...filter entered...succeeded\\n");\n printf(" test71...filter entered...succeeded\\n");\n printf(" test72...filter entered...succeeded\\n");\n printf(" test73...filter entered...succeeded\\n");\n printf(" test74...filter entered...succeeded\\n");\n printf(" test75...filter entered...succeeded\\n");\n printf(" test76...filter entered...succeeded\\n");\n printf(" test77...filter entered...succeeded\\n");\n printf(" test78...filter entered...succeeded\\n");\n#endif\n\n if (LOBYTE(LOWORD(GetVersion())) < 6) {\n printf(" test79...");\n printf("filter 1...filter 2...finally 1...filter 1...filter 2...finally "\n "2...passed\\n");\n } else {\n\n printf(" test79...");\n Counter = 0;\n try {\n Test79(&Counter, BadAddress);\n }\n except(printf("filter 2..."), EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\n\n if (Counter == 3) {\n printf("passed\\n");\n\n } else {\n printf("failed %d \\n", Counter);\n }\n }\n\n printf(" test80...");\n if (Test80() != 0) {\n printf("failed\\n");\n\n } else {\n printf("passed\\n");\n }\n\n printf(" test81...");\n Counter = 0;\n Test81(&Counter);\n if (Counter != 1) {\n printf("failed %d \\n", Counter);\n\n } else {\n printf("passed\\n");\n }\n\n printf(" test82...");\n Counter = 1;\n Test82(&Counter);\n if (Counter != 0) {\n printf("failed\\n");\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test83...");\n if (Test83() != 0) {\n printf("failed\\n");\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test84...");\n Counter = 0;\n Test84(&Counter);\n if (Counter != 2) {\n printf("failed\\n");\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test85...");\n Counter = 0;\n Test85(&Counter);\n if (Counter != 7) {\n printf("failed\\n");\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test86...");\n Counter = 0;\n Test86(&Counter);\n if (Counter != 4) {\n printf("failed %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test87...");\n Counter = 0;\n Test87(&Counter);\n if (Counter != 104) {\n printf("failed %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n printf(" test88...");\n Counter = 0;\n Test88(&Counter);\n if (Counter != 6) {\n printf("failed %d\\n", Counter);\n\n } else {\n printf("succeeded\\n");\n }\n\n //\n // Announce end of exception test.\n //\n\n printf("End of exception test\\n");\n return;\n}\n\n#pragma optimize("a", off)\nVOID addtwo(long First, long Second, long *Place)\n\n{\n\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n *Place = First + Second;\n return;\n}\n#pragma optimize("", on)\n\nVOID bar1(IN NTSTATUS Status, IN PLONG Counter) {\n\n try {\n foo1(Status);\n }\n finally {\n if (abnormal_termination() != FALSE) {\n *Counter = 99;\n\n } else {\n *Counter = 100;\n }\n }\n\n return;\n}\n\nVOID bar2(IN PLONG BlackHole, IN PLONG BadAddress, IN PLONG Counter) {\n\n try {\n foo2(BlackHole, BadAddress);\n }\n finally {\n if (abnormal_termination() != FALSE) {\n *Counter = 99;\n\n } else {\n *Counter = 100;\n }\n }\n\n return;\n}\n\nVOID dojump(IN jmp_buf JumpBuffer, IN PLONG Counter)\n\n{\n\n try {\n try {\n *Counter += 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally { *Counter += 1; }\n }\n finally {\n *Counter += 1;\n longjmp(JumpBuffer, 1);\n }\n}\n\n#if !defined(WIN_CE) // return through finally not allowed on WinCE\nVOID eret(IN NTSTATUS Status, IN PLONG Counter)\n\n{\n\n try {\n try {\n foo1(Status);\n }\n except((GetExceptionCode() == Status) ? EXCEPTION_EXECUTE_HANDLER\n : EXCEPTION_CONTINUE_SEARCH) {\n *Counter += 1;\n return;\n }\n }\n finally { *Counter += 1; }\n\n return;\n}\n#endif\n\nVOID except1(IN PLONG Counter)\n\n{\n\n try {\n *Counter += 5;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(except3(GetExceptionInformation(), Counter)) { *Counter += 7; }\n\n *Counter += 9;\n return;\n}\n\nULONG\nexcept2(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter)\n\n{\n\n PEXCEPTION_RECORD ExceptionRecord;\n\n ExceptionRecord = ExceptionPointers->ExceptionRecord;\n if ((ExceptionRecord->ExceptionCode == STATUS_UNSUCCESSFUL) &&\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) == 0)) {\n *Counter += 11;\n return EXCEPTION_EXECUTE_HANDLER;\n\n } else {\n *Counter += 13;\n return EXCEPTION_CONTINUE_SEARCH;\n }\n}\n\nULONG\nexcept3(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter)\n\n{\n\n PEXCEPTION_RECORD ExceptionRecord;\n\n ExceptionRecord = ExceptionPointers->ExceptionRecord;\n if ((ExceptionRecord->ExceptionCode == STATUS_INTEGER_OVERFLOW) &&\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) == 0)) {\n *Counter += 17;\n RtlRaiseStatus(STATUS_UNSUCCESSFUL);\n\n } else if ((ExceptionRecord->ExceptionCode == STATUS_UNSUCCESSFUL) &&\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) != 0)) {\n *Counter += 19;\n return EXCEPTION_CONTINUE_SEARCH;\n }\n\n *Counter += 23;\n return EXCEPTION_EXECUTE_HANDLER;\n}\n\nVOID foo1(IN NTSTATUS Status)\n\n{\n\n //\n // Raise exception.\n //\n\n RtlRaiseStatus(Status);\n return;\n}\n\nVOID foo2(IN PLONG BlackHole, IN PLONG BadAddress)\n\n{\n\n //\n // Raise exception.\n //\n\n *BlackHole += *BadAddress;\n return;\n}\n\n#if !defined(WIN_CE) // return from finally not allowed on WinCE\nVOID fret(IN PLONG Counter)\n\n{\n\n try {\n try {\n *Counter += 1;\n }\n finally {\n *Counter += 1;\n return;\n }\n }\n finally { *Counter += 1; }\n\n return;\n}\n#endif\n\nLONG Echo(IN LONG Value)\n\n{\n return Value;\n}\n\n#if defined(NEST_IN_FINALLY)\nVOID Test61Part2(IN OUT PULONG Counter) {\n try {\n *Counter -= 1;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n finally {\n try {\n *Counter += 2;\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\n }\n except(EXCEPTION_EXECUTE_HANDLER) { *Counter += 5; }\n *Counter += 7;\n }\n}\n#endif /* def(NEST_IN_FINALLY) */\n\ndouble SquareDouble(IN double op) {\n return exp(2.0 * log(op));\n}\n'}}]); +//# sourceMappingURL=4265.02910c40.chunk.js.map \ No newline at end of file diff --git a/static/js/4265.02910c40.chunk.js.map b/static/js/4265.02910c40.chunk.js.map new file mode 100644 index 000000000..7721df56c --- /dev/null +++ b/static/js/4265.02910c40.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4265.02910c40.chunk.js","mappings":"yHAAA,w1/D","sources":["../../node_modules/code-example/txt/sample.c.txt"],"sourcesContent":["export default \"// Copyright (c) Microsoft. All rights reserved.\\n// Licensed under the MIT license. See LICENSE file in the project root for full\\n// license information.\\n\\n/*\\n * COMMAND LINE: -Ox -Gz -YX -UPROTOTYPES_REQUIRED\\n */\\n\\n#pragma warning(disable : 4532)\\n#pragma warning(disable : 4702)\\n\\n#if defined(_WIN32)\\n\\n#if defined(_M_SH)\\n#define WIN_CE\\n#endif\\n\\n#if defined(_M_AMD64)\\n#define NEST_IN_FINALLY /* allow when __try nested in __finally OK */\\n#endif\\n\\n#define NTSTATUS LONG\\n#define EXCEPTION_NESTED_CALL 0x10\\n#define RtlRaiseStatus(x) RaiseException((x), 0, 0, NULL)\\n#define RtlRaiseException(x) \\\\\\n RaiseException((x)->ExceptionCode, (x)->ExceptionFlags, \\\\\\n (x)->NumberParameters, (x)->ExceptionInformation)\\n#define IN\\n#define OUT\\n#if !(defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_PPC) || \\\\\\n defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64))\\n#define i386 1\\n#endif\\n#define try __try\\n#define except __except\\n#define finally __finally\\n#define leave __leave\\n\\n#endif\\n\\n#define WIN32_LEAN_AND_MEAN\\n\\n#include \\\"stdio.h\\\"\\n#if defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_PPC) || \\\\\\n defined(_M_AMD64) || defined(_M_ARM) || defined(_M_ARM64)\\n#include \\\"setjmpex.h\\\"\\n#else\\n#include \\\"setjmp.h\\\"\\n#endif\\n#include \\\"float.h\\\"\\n#include \\\"windows.h\\\"\\n#include \\\"math.h\\\"\\n\\n#if !defined(STATUS_SUCCESS)\\n#define STATUS_SUCCESS 0\\n#endif\\n#if !defined(STATUS_UNSUCCESSFUL)\\n#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)\\n#endif\\n\\n//\\n// Define switch constants.\\n//\\n\\n#define BLUE 0\\n#define RED 1\\n\\n//\\n// Define function prototypes.\\n//\\n\\nVOID addtwo(IN LONG First, IN LONG Second, IN PLONG Place);\\n\\nVOID bar1(IN NTSTATUS Status, IN PLONG Counter);\\n\\nVOID bar2(IN PLONG BlackHole, IN PLONG BadAddress, IN PLONG Counter);\\n\\nVOID dojump(IN jmp_buf JumpBuffer, IN PLONG Counter);\\n\\nLONG Echo(IN LONG Value);\\n\\n#if !defined(WIN_CE) // return through finally not allowed on WinCE\\nVOID eret(IN NTSTATUS Status, IN PLONG Counter);\\n#endif\\n\\nVOID except1(IN PLONG Counter);\\n\\nULONG\\nexcept2(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter);\\n\\nULONG\\nexcept3(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter);\\n\\nVOID foo1(IN NTSTATUS Status);\\n\\nVOID foo2(IN PLONG BlackHole, IN PLONG BadAddress);\\n\\n#if !defined(WIN_CE) // return from finally not allowed on WinCE\\nVOID fret(IN PLONG Counter);\\n#endif\\n\\nBOOLEAN\\nTkm(VOID);\\n\\nVOID Test61Part2(IN OUT PULONG Counter);\\n\\ndouble SquareDouble(IN double op);\\n\\nDECLSPEC_NOINLINE\\nULONG\\nPgFilter(VOID)\\n\\n{\\n\\n printf(\\\"filter entered...\\\");\\n return EXCEPTION_EXECUTE_HANDLER;\\n}\\n\\n#pragma warning(push)\\n#pragma warning(disable : 4532)\\n\\nVOID PgTest69(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 1) {\\n *State += 1;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 1) == 1) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\\n if (*State != 2) {\\n *Fault += 1;\\n }\\n }\\n\\n return;\\n}\\n\\nVOID PgTest70(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 2) {\\n PgFilter();\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 2) == 2) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest71(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 3) {\\n *State += 3;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 6) {\\n *State += 3;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 3) == 3) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest72(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 4) {\\n *State += 4;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 8) {\\n *State += 4;\\n PgFilter();\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 4) == 4) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest73(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 5) {\\n *State += 5;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 10) {\\n *State += 5;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 5) == 5) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest74(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 6) {\\n *State += 6;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 12) {\\n *State += 6;\\n PgFilter();\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 6) == 6) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest75(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 7) {\\n *State += 7;\\n *Fault += 1;\\n\\n } else {\\n *State += 10;\\n }\\n }\\n }\\n }\\n except(((*State += 7) == 7) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 28) {\\n *State += 7;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 7) == 28) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest76(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 8) {\\n *State += 8;\\n *Fault += 1;\\n\\n } else {\\n *State += 10;\\n }\\n }\\n }\\n }\\n except(((*State += 8) == 8) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 32) {\\n *State += 8;\\n PgFilter();\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 8) == 32) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest77(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 9) {\\n *State += 9;\\n *Fault += 1;\\n\\n } else {\\n *State += 10;\\n }\\n }\\n }\\n }\\n except(((*State += 9) == 9) ? PgFilter() : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 36) {\\n *State += 9;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 9) == 36) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\nVOID PgTest78(IN PLONG State, IN PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 10) {\\n *State += 10;\\n PgFilter();\\n *Fault += 1;\\n\\n } else {\\n *State += 10;\\n }\\n }\\n }\\n }\\n except(((*State += 10) == 10) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n if (*State == 40) {\\n *State += 10;\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n except(((*State += 10) == 40) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n\\n return;\\n}\\n\\n#pragma warning(pop)\\n\\nVOID Test79(PLONG Counter, PLONG Fault)\\n\\n{\\n\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n finally {\\n printf(\\\"finally 1...\\\");\\n *Fault += 1;\\n }\\n }\\n finally { printf(\\\"finally 2...\\\"); }\\n }\\n except(*Counter += 1, printf(\\\"filter 1...\\\"), EXCEPTION_CONTINUE_SEARCH) {}\\n\\n return;\\n}\\n\\nULONG G;\\n\\nULONG\\nTest80(VOID)\\n\\n{\\n\\n G = 1;\\n try {\\n while (G) {\\n try {\\n if (G == 10) {\\n return 1;\\n }\\n\\n if (G == 1) {\\n continue;\\n }\\n }\\n finally { G = 0; }\\n }\\n }\\n finally { G = 10; }\\n\\n return 0;\\n}\\n\\nvoid Test81(int *pCounter) {\\n volatile char *AvPtr = NULL;\\n\\n __try {\\n __try { *AvPtr = '\\\\0'; }\\n __except(EXCEPTION_EXECUTE_HANDLER) { __leave; }\\n }\\n __finally {\\n printf(\\\"in finally \\\");\\n *pCounter += 1;\\n }\\n return;\\n}\\n\\nDECLSPEC_NOINLINE\\nVOID Test82Foo(VOID)\\n\\n{\\n *(volatile int *)0 = 0;\\n}\\n\\nVOID Test82(__inout PLONG Counter)\\n\\n{\\n\\n int retval = 1;\\n\\n __try {\\n __try { Test82Foo(); }\\n __finally {\\n switch (*Counter) {\\n case 0:\\n printf(\\\"something failed!\\\\n\\\");\\n retval = 6;\\n break;\\n\\n case 1:\\n retval = 0;\\n break;\\n\\n case 2:\\n printf(\\\"how did you get here?\\\\n\\\");\\n retval = 2;\\n break;\\n\\n case 3:\\n printf(\\\"what?!?\\\\n\\\");\\n retval = 3;\\n break;\\n\\n case 4:\\n printf(\\\"not correct\\\\n\\\");\\n retval = 4;\\n break;\\n\\n case 5:\\n printf(\\\"error!\\\\n\\\");\\n retval = 5;\\n break;\\n }\\n }\\n }\\n __except(1){}\\n\\n *Counter = retval;\\n return;\\n}\\n\\nLONG Test83(VOID)\\n\\n{\\n\\n G = 1;\\n try {\\n try {\\n while (G) {\\n try {\\n if (G == 10) {\\n return 1;\\n }\\n\\n if (G == 1) {\\n continue;\\n }\\n }\\n finally { G = 0; }\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\\n }\\n finally { G = 10; }\\n\\n return 0;\\n}\\n\\nDECLSPEC_NOINLINE\\nVOID Test84(_Inout_ PLONG Counter)\\n\\n{\\n volatile int *Fault = 0;\\n\\n try {\\n try {\\n *Fault += 1;\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {\\n try {\\n return;\\n }\\n finally { *Counter += 1; }\\n }\\n }\\n finally {\\n\\n if (AbnormalTermination()) {\\n *Counter += 1;\\n }\\n }\\n\\n return;\\n}\\n\\nDECLSPEC_NOINLINE\\nLONG Test85(_Inout_ PLONG Counter)\\n\\n{\\n volatile int *Fault = 0;\\n\\n G = 1;\\n try {\\n try {\\n try {\\n while (G) {\\n try {\\n try {\\n if (G == 10) {\\n return 1;\\n }\\n try {\\n *Counter += 1;\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {}\\n\\n if (G == 1) {\\n continue;\\n }\\n }\\n finally {\\n G = 0;\\n *Counter += 1;\\n *Fault += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {\\n *Counter += 1;\\n leave;\\n }\\n }\\n }\\n finally {\\n G = 10;\\n *Counter += 1;\\n *Fault += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { *Counter += 1; }\\n *Counter += 1;\\n }\\n finally { *Counter += 1; }\\n return 1;\\n}\\n\\nDECLSPEC_NOINLINE\\nVOID Test86(_Inout_ PLONG Counter)\\n\\n{\\n volatile int *Fault = 0;\\n\\n try {\\n try {\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n except(printf(\\\"Filter1 %d..\\\", *Counter),\\n EXCEPTION_EXECUTE_HANDLER) {\\n try {\\n printf(\\\"Handler1 %d..\\\", *Counter);\\n return;\\n }\\n finally {\\n printf(\\\"Finally1 %d..\\\", *Counter);\\n *Counter += 1;\\n }\\n }\\n }\\n finally {\\n printf(\\\"Finally2 %d..\\\", *Counter);\\n *Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\\n }\\n finally { *Counter += 1; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\\n }\\n finally { *Counter += 1; }\\n\\n return;\\n}\\n\\nVOID Test87(_Inout_ PLONG Counter)\\n\\n/*++\\n\\nRoutine Description:\\n\\n This function verifies the behavior of nested exception dispatching.\\n\\nArguments:\\n\\n Counter - Supplies a pointer to the state counter.\\n\\nReturn Value:\\n None.\\n\\n--*/\\n\\n{\\n volatile int *Fault = 0;\\n\\n//\\n// N.B. Disabled on x86 due to failing test case with handling of returns\\n// in nested termination handlers on x86.\\n//\\n// Disabled on ARM due to failing test case with handling of abutting\\n// termination handlers within an except handler.\\n//\\n// Disabled on AMD64 due to failing test case with handling of\\n// abutting termination handlers within an except handler when a\\n// non-local goto is involved.\\n//\\n\\n#if !defined(_X86_)\\n try {\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n\\n try {\\n }\\n finally {\\n if (AbnormalTermination()) {\\n *Fault += 1;\\n }\\n }\\n }\\n finally {\\n\\n if (AbnormalTermination()) {\\n if ((*Counter += 13) == 26) {\\n return;\\n\\n } else {\\n *Fault += 1;\\n }\\n }\\n }\\n }\\n finally {\\n if (AbnormalTermination()) {\\n *Counter += 13;\\n *Fault += 1;\\n }\\n }\\n }\\n except(((*Counter += 13) == 13) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Fault += 1;\\n }\\n }\\n except(((*Counter += 13) == 65) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n try {\\n *Counter += 13;\\n return;\\n }\\n finally {\\n if (AbnormalTermination()) {\\n *Counter += 13;\\n goto Finish;\\n }\\n }\\n }\\n }\\n finally {\\n\\n if (AbnormalTermination()) {\\n if ((*Counter += 13) == 104) {\\n goto Finish;\\n }\\n }\\n }\\n\\nFinish:\\n#else\\n *Counter = 104;\\n#endif\\n\\n return;\\n}\\n\\nVOID Test88(_Inout_ PLONG Counter)\\n\\n{\\n volatile int *Fault = 0;\\n\\n try {\\n try {\\n try {\\n try {\\n try {\\n try {\\n try {\\n try {\\n *Fault += 1;\\n }\\n except(((*Counter += 1) == 1) ? *Fault\\n : EXCEPTION_CONTINUE_SEARCH) {}\\n }\\n except(*Counter += 1, EXCEPTION_EXECUTE_HANDLER) { *Fault += 2; }\\n }\\n except(*Counter += 1, EXCEPTION_CONTINUE_SEARCH) { leave; }\\n }\\n except(*Counter += 1, EXCEPTION_CONTINUE_SEARCH) { leave; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {}\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {}\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { leave; }\\n }\\n finally { *Counter += 1; }\\n}\\n\\nint main(int argc, char *argv[])\\n\\n{\\n\\n PLONG BadAddress;\\n PCHAR BadByte;\\n PLONG BlackHole;\\n ULONG Index1;\\n ULONG Index2 = RED;\\n jmp_buf JumpBuffer;\\n LONG Counter;\\n EXCEPTION_RECORD ExceptionRecord;\\n double doubleresult;\\n\\n //\\n // Announce start of exception test.\\n //\\n\\n printf(\\\"Start of exception test\\\\n\\\");\\n\\n //\\n // Initialize exception record.\\n //\\n\\n ExceptionRecord.ExceptionCode = STATUS_INTEGER_OVERFLOW;\\n ExceptionRecord.ExceptionFlags = 0;\\n ExceptionRecord.ExceptionRecord = NULL;\\n ExceptionRecord.NumberParameters = 0;\\n\\n //\\n // Initialize pointers.\\n //\\n\\n BadAddress = (PLONG)NULL;\\n BadByte = (PCHAR)NULL;\\n BadByte += 1;\\n BlackHole = &Counter;\\n\\n //\\n // Simply try statement with a finally clause that is entered sequentially.\\n //\\n\\n printf(\\\" test1...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 1;\\n }\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try statement with an exception clause that is never executed\\n // because there is no exception raised in the try clause.\\n //\\n\\n printf(\\\" test2...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n }\\n except(Counter) { Counter += 1; }\\n\\n if (Counter != 1) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try statement with an exception handler that is never executed\\n // because the exception expression continues execution.\\n //\\n\\n printf(\\\" test3...\\\");\\n Counter = 0;\\n try {\\n Counter -= 1;\\n RtlRaiseException(&ExceptionRecord);\\n }\\n except(Counter) { Counter -= 1; }\\n\\n if (Counter != -1) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try statement with an exception clause that is always executed.\\n //\\n\\n printf(\\\" test4...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(Counter) { Counter += 1; }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try statement with an exception clause that is always executed.\\n //\\n\\n printf(\\\" test5...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n *BlackHole += *BadAddress;\\n }\\n except(Counter) { Counter += 1; }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simply try statement with a finally clause that is entered as the\\n // result of an exception.\\n //\\n\\n printf(\\\" test6...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n RtlRaiseException(&ExceptionRecord);\\n }\\n finally {\\n if (abnormal_termination() != FALSE) {\\n Counter += 1;\\n }\\n }\\n }\\n except(Counter) {\\n if (Counter == 2) {\\n Counter += 1;\\n }\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simply try statement with a finally clause that is entered as the\\n // result of an exception.\\n //\\n\\n printf(\\\" test7...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n *BlackHole += *BadAddress;\\n }\\n finally {\\n if (abnormal_termination() != FALSE) {\\n Counter += 1;\\n }\\n }\\n }\\n except(Counter) {\\n if (Counter == 2) {\\n Counter += 1;\\n }\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try that calls a function which raises an exception.\\n //\\n\\n printf(\\\" test8...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n foo1(STATUS_ACCESS_VIOLATION);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try that calls a function which raises an exception.\\n //\\n\\n printf(\\\" test9...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n foo2(BlackHole, BadAddress);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try that calls a function which calls a function that\\n // raises an exception. The first function has a finally clause\\n // that must be executed for this test to work.\\n //\\n\\n printf(\\\" test10...\\\");\\n Counter = 0;\\n try {\\n bar1(STATUS_ACCESS_VIOLATION, &Counter);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter -= 1;\\n }\\n\\n if (Counter != 98) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try that calls a function which calls a function that\\n // raises an exception. The first function has a finally clause\\n // that must be executed for this test to work.\\n //\\n\\n printf(\\\" test11...\\\");\\n Counter = 0;\\n try {\\n bar2(BlackHole, BadAddress, &Counter);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter -= 1;\\n }\\n\\n if (Counter != 98) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try within an except\\n //\\n\\n printf(\\\" test12...\\\");\\n Counter = 0;\\n try {\\n foo1(STATUS_ACCESS_VIOLATION);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n try {\\n foo1(STATUS_SUCCESS);\\n }\\n except((GetExceptionCode() == STATUS_SUCCESS) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n if (Counter != 1) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded...\\\");\\n }\\n\\n Counter += 1;\\n }\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try within an except\\n //\\n\\n printf(\\\" test13...\\\");\\n Counter = 0;\\n try {\\n foo2(BlackHole, BadAddress);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n try {\\n foo1(STATUS_SUCCESS);\\n }\\n except((GetExceptionCode() == STATUS_SUCCESS) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n if (Counter != 1) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded...\\\");\\n }\\n\\n Counter += 1;\\n }\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from except/finally not allowed on WinCE\\n //\\n // A goto from an exception clause that needs to pass\\n // through a finally\\n //\\n\\n printf(\\\" test14...\\\");\\n Counter = 0;\\n try {\\n try {\\n foo1(STATUS_ACCESS_VIOLATION);\\n }\\n except((GetExceptionCode() == STATUS_ACCESS_VIOLATION)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n goto t9;\\n }\\n }\\n finally { Counter += 1; }\\n\\nt9:\\n ;\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A goto from an finally clause that needs to pass\\n // through a finally\\n //\\n\\n printf(\\\" test15...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n }\\n finally {\\n Counter += 1;\\n goto t10;\\n }\\n }\\n finally { Counter += 1; }\\n\\nt10:\\n ;\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A goto from an exception clause that needs to pass\\n // through a finally into the outer finally clause.\\n //\\n\\n printf(\\\" test16...\\\");\\n Counter = 0;\\n try {\\n try {\\n try {\\n Counter += 1;\\n foo1(STATUS_INTEGER_OVERFLOW);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) {\\n Counter += 1;\\n goto t11;\\n }\\n }\\n finally { Counter += 1; }\\n t11:\\n ;\\n }\\n finally { Counter += 1; }\\n\\n if (Counter != 4) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A goto from an finally clause that needs to pass\\n // through a finally into the outer finally clause.\\n //\\n\\n printf(\\\" test17...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n }\\n finally {\\n Counter += 1;\\n goto t12;\\n }\\n t12:\\n ;\\n }\\n finally { Counter += 1; }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A return from an except clause\\n //\\n\\n printf(\\\" test18...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n eret(STATUS_ACCESS_VIOLATION, &Counter);\\n }\\n finally { Counter += 1; }\\n\\n if (Counter != 4) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A return from a finally clause\\n //\\n\\n printf(\\\" test19...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n fret(&Counter);\\n }\\n finally { Counter += 1; }\\n\\n if (Counter != 5) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // A simple set jump followed by a long jump.\\n //\\n\\n printf(\\\" test20...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump followed by a long jump out of a finally clause that is\\n // sequentially executed.\\n //\\n\\n printf(\\\" test21...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n try {\\n Counter += 1;\\n }\\n finally {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump within a try clause followed by a long jump out of a\\n // finally clause that is sequentially executed.\\n //\\n\\n printf(\\\" test22...\\\");\\n Counter = 0;\\n try {\\n if (setjmp(JumpBuffer) == 0) {\\n Counter += 1;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 1;\\n if (Counter == 2) {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n }\\n\\n if (Counter != 5) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump followed by a try/except, followed by a try/finally where\\n // the try body of the try/finally raises an exception that is handled\\n // by the try/excecpt which causes the try/finally to do a long jump out\\n // of a finally clause. This will create a collided unwind.\\n //\\n\\n printf(\\\" test23...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n try {\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump followed by a try/except, followed by a several nested\\n // try/finally's where the inner try body of the try/finally raises an\\n // exception that is handled by the try/except which causes the\\n // try/finally to do a long jump out of a finally clause. This will\\n // create a collided unwind.\\n //\\n\\n printf(\\\" test24...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n try {\\n try {\\n try {\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally { Counter += 1; }\\n }\\n finally {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n }\\n finally { Counter += 1; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 5) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump followed by a try/except, followed by a try/finally which\\n // calls a subroutine which contains a try finally that raises an\\n // exception that is handled to the try/except.\\n //\\n\\n printf(\\\" test25...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n try {\\n try {\\n try {\\n Counter += 1;\\n dojump(JumpBuffer, &Counter);\\n }\\n finally { Counter += 1; }\\n }\\n finally { Counter += 1; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 7) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A set jump followed by a try/except, followed by a try/finally which\\n // calls a subroutine which contains a try finally that raises an\\n // exception that is handled to the try/except.\\n //\\n\\n printf(\\\" test26...\\\");\\n Counter = 0;\\n if (setjmp(JumpBuffer) == 0) {\\n try {\\n try {\\n try {\\n try {\\n Counter += 1;\\n dojump(JumpBuffer, &Counter);\\n }\\n finally { Counter += 1; }\\n }\\n finally {\\n Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n }\\n finally { Counter += 1; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\\n\\n } else {\\n Counter += 1;\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Test nested exceptions.\\n //\\n\\n printf(\\\" test27...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n except1(&Counter);\\n }\\n except(except2(GetExceptionInformation(), &Counter)) { Counter += 2; }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 3; }\\n\\n if (Counter != 55) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Simple try that causes an integer overflow exception.\\n //\\n\\n printf(\\\" test28...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n addtwo(0x7fff0000, 0x10000, &Counter);\\n }\\n except((GetExceptionCode() == STATUS_INTEGER_OVERFLOW)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n//\\n// Simple try that raises an misaligned data exception.\\n//\\n#if !defined(i386) && !defined(_M_IA64) && !defined(_M_AMD64) && \\\\\\n !defined(_M_ARM) && !defined(_M_ARM64)\\n printf(\\\" test29...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n foo2(BlackHole, (PLONG)BadByte);\\n }\\n except((GetExceptionCode() == STATUS_DATATYPE_MISALIGNMENT)\\n ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n Counter += 1;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#endif\\n //\\n // Continue from a try body with an exception clause in a loop.\\n //\\n\\n printf(\\\" test30...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n continue;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\\n\\n Counter += 2;\\n }\\n\\n if (Counter != 15) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Continue from a try body with an finally clause in a loop.\\n //\\n\\n printf(\\\" test31...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n continue;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 40) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Continue from doubly nested try body with an exception clause in a\\n // loop.\\n //\\n\\n printf(\\\" test32...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n continue;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\\n\\n Counter += 2;\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 30) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Continue from doubly nested try body with an finally clause in a loop.\\n //\\n\\n printf(\\\" test33...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n continue;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n finally { Counter += 4; }\\n\\n Counter += 5;\\n }\\n\\n if (Counter != 105) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Continue from a finally clause in a loop.\\n //\\n\\n printf(\\\" test34...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n continue;\\n }\\n\\n Counter += 4;\\n }\\n\\n if (Counter != 25) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Continue from a doubly nested finally clause in a loop.\\n //\\n\\n printf(\\\" test35...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n continue;\\n }\\n\\n Counter += 4;\\n }\\n finally { Counter += 5; }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 75) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Continue from a doubly nested finally clause in a loop.\\n //\\n\\n printf(\\\" test36...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 0) {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 4;\\n }\\n finally {\\n Counter += 5;\\n continue;\\n }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 115) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Break from a try body with an exception clause in a loop.\\n //\\n\\n printf(\\\" test37...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\\n\\n Counter += 2;\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Break from a try body with an finally clause in a loop.\\n //\\n\\n printf(\\\" test38...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Break from doubly nested try body with an exception clause in a\\n // loop.\\n //\\n\\n printf(\\\" test39...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\\n\\n Counter += 2;\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 6) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Break from doubly nested try body with an finally clause in a loop.\\n //\\n\\n printf(\\\" test40...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n finally { Counter += 4; }\\n\\n Counter += 5;\\n }\\n\\n if (Counter != 21) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a finally clause in a loop.\\n //\\n\\n printf(\\\" test41...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n break;\\n }\\n\\n Counter += 4;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a doubly nested finally clause in a loop.\\n //\\n\\n printf(\\\" test42...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n break;\\n }\\n\\n Counter += 4;\\n }\\n finally { Counter += 5; }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 7) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a doubly nested finally clause in a loop.\\n //\\n\\n printf(\\\" test43...\\\");\\n Counter = 0;\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 4;\\n }\\n finally {\\n Counter += 5;\\n break;\\n }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 11) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Break from a try body with an exception clause in a switch.\\n //\\n\\n printf(\\\" test44...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 40; }\\n\\n Counter += 2;\\n break;\\n }\\n\\n if (Counter != 0) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Break from a try body with an finally clause in a switch.\\n //\\n\\n printf(\\\" test45...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Break from doubly nested try body with an exception clause in a\\n // switch.\\n //\\n\\n printf(\\\" test46...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 10; }\\n\\n Counter += 2;\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 20; }\\n\\n Counter += 3;\\n }\\n\\n if (Counter != 0) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // gotos from try/finally not allowed on WinCE\\n //\\n // Break from doubly nested try body with an finally clause in a switch.\\n //\\n\\n printf(\\\" test47...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n break;\\n\\n } else {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 3;\\n }\\n finally { Counter += 4; }\\n\\n Counter += 5;\\n }\\n\\n if (Counter != 6) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a finally clause in a switch.\\n //\\n\\n printf(\\\" test48...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n break;\\n }\\n\\n Counter += 4;\\n }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a doubly nested finally clause in a switch.\\n //\\n\\n printf(\\\" test49...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally {\\n Counter += 2;\\n break;\\n }\\n\\n Counter += 4;\\n }\\n finally { Counter += 5; }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Break from a doubly nested finally clause in a switch.\\n //\\n\\n printf(\\\" test50...\\\");\\n Counter = 0;\\n Index1 = 1;\\n switch (Index2) {\\n case BLUE:\\n Counter += 100;\\n break;\\n\\n case RED:\\n try {\\n try {\\n if ((Index1 & 0x1) == 1) {\\n Counter += 1;\\n }\\n }\\n finally { Counter += 2; }\\n\\n Counter += 4;\\n }\\n finally {\\n Counter += 5;\\n break;\\n }\\n\\n Counter += 6;\\n }\\n\\n if (Counter != 12) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Leave from an if in a simple try/finally.\\n //\\n\\n printf(\\\" test51...\\\");\\n Counter = 0;\\n try {\\n if (Echo(Counter) == Counter) {\\n Counter += 3;\\n leave;\\n\\n } else {\\n Counter += 100;\\n }\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Leave from a loop in a simple try/finally.\\n //\\n\\n printf(\\\" test52...\\\");\\n Counter = 0;\\n try {\\n for (Index1 = 0; Index1 < 10; Index1 += 1) {\\n if (Echo(Index1) == Index1) {\\n Counter += 3;\\n leave;\\n }\\n\\n Counter += 100;\\n }\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Leave from a switch in a simple try/finally.\\n //\\n\\n printf(\\\" test53...\\\");\\n Counter = 0;\\n try {\\n switch (Index2) {\\n case BLUE:\\n break;\\n\\n case RED:\\n Counter += 3;\\n leave;\\n }\\n\\n Counter += 100;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Counter != 8) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Leave from an if in doubly nested try/finally followed by a leave\\n // from an if in the outer try/finally.\\n //\\n\\n printf(\\\" test54...\\\");\\n Counter = 0;\\n try {\\n try {\\n if (Echo(Counter) == Counter) {\\n Counter += 3;\\n leave;\\n\\n } else {\\n Counter += 100;\\n }\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Echo(Counter) == Counter) {\\n Counter += 3;\\n leave;\\n\\n } else {\\n Counter += 100;\\n }\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Counter != 16) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#if !defined(WIN_CE) // leave from finally not allowed on WinCE\\n //\\n // Leave from an if in doubly nested try/finally followed by a leave\\n // from the finally of the outer try/finally.\\n //\\n\\n printf(\\\" test55...\\\");\\n Counter = 0;\\n try {\\n try {\\n if (Echo(Counter) == Counter) {\\n Counter += 3;\\n leave;\\n\\n } else {\\n Counter += 100;\\n }\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n leave;\\n }\\n }\\n\\n Counter += 100;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n\\n if (Counter != 13) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif\\n\\n //\\n // Try/finally within the except clause of a try/except that is always\\n // executed.\\n //\\n\\n printf(\\\" test56...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(Counter) {\\n try {\\n Counter += 3;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n }\\n\\n if (Counter != 9) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Try/finally within the finally clause of a try/finally.\\n //\\n\\n printf(\\\" test57...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n try {\\n Counter += 3;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n }\\n }\\n\\n if (Counter != 9) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Try/except within the finally clause of a try/finally.\\n //\\n\\n printf(\\\" test58...\\\");\\n#if !defined(NEST_IN_FINALLY)\\n printf(\\\"skipped\\\\n\\\");\\n#else\\n Counter = 0;\\n try {\\n Counter -= 1;\\n }\\n finally {\\n try {\\n Counter += 2;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(Counter) {\\n try {\\n Counter += 3;\\n }\\n finally {\\n if (abnormal_termination() == FALSE) {\\n Counter += 5;\\n }\\n }\\n }\\n }\\n\\n if (Counter != 9) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif /* def(NEST_IN_FINALLY) */\\n\\n //\\n // Try/except within the except clause of a try/except that is always\\n // executed.\\n //\\n\\n printf(\\\" test59...\\\");\\n Counter = 0;\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(Counter) {\\n try {\\n Counter += 3;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(Counter - 3) { Counter += 5; }\\n }\\n\\n if (Counter != 9) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Try with a Try which exits the scope with a goto\\n //\\n\\n printf(\\\" test60...\\\");\\n Counter = 0;\\n try {\\n try {\\n goto outside;\\n }\\n except(1) { Counter += 1; }\\n\\n outside:\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(1) { Counter += 3; }\\n\\n if (Counter != 3) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Try/except which gets an exception from a subfunction within\\n // a try/finally which has a try/except in the finally clause\\n //\\n\\n printf(\\\" test61...\\\");\\n#if !defined(NEST_IN_FINALLY)\\n printf(\\\"skipped\\\\n\\\");\\n#else\\n Counter = 0;\\n try {\\n Test61Part2(&Counter);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { Counter += 11; }\\n\\n if (Counter != 24) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n#endif /* def(NEST_IN_FINALLY) */\\n\\n //\\n // Check for precision of exception on floating point\\n //\\n\\n printf(\\\" test62...\\\");\\n\\n#if defined(i386) || defined(_M_IA64) || defined(_M_ALPHA) || defined(_M_AMD64)\\n\\n/* enable floating point overflow */\\n#if defined(i386)\\n _control87(_control87(0, 0) & ~EM_OVERFLOW, _MCW_EM);\\n#else\\n //\\n // use portable version of _control87\\n //\\n _controlfp(_controlfp(0, 0) & ~EM_OVERFLOW, _MCW_EM);\\n#endif\\n\\n Counter = 0;\\n try {\\n doubleresult = SquareDouble(1.7e300);\\n\\n try {\\n doubleresult = SquareDouble(1.0);\\n }\\n except(1) { Counter += 3; }\\n }\\n except(1) { Counter += 1; }\\n\\n if (Counter != 1) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n/* clear up pending unmasked exceptions and restore FP control registers */\\n#if defined(i386)\\n _clear87();\\n _control87(_control87(0, 0) | EM_OVERFLOW, 0xfffff);\\n#else\\n _clearfp();\\n _controlfp(_controlfp(0, 0) | EM_OVERFLOW, 0xfffff);\\n#endif\\n\\n#else\\n printf(\\\"skipped\\\\n\\\");\\n#endif\\n\\n //\\n // A try/finally inside a try/except where an exception is raised in the\\n // try/finally.\\n //\\n\\n printf(\\\" test63...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n }\\n finally {\\n Counter += 3;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n }\\n except(1) { Counter += 6; }\\n\\n if (Counter != 10) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try/finally inside a try/except where an exception is raised in the\\n // in the try/except and the try/finally.\\n //\\n\\n printf(\\\" test64...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally {\\n Counter += 3;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n }\\n except(1) { Counter += 6; }\\n\\n if (Counter != 10) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try/finally inside a try/except where an exception is raised in the\\n // try/finally.\\n //\\n\\n printf(\\\" test65...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n }\\n finally {\\n Counter += 3;\\n *BlackHole += *BadAddress;\\n Counter += 13;\\n }\\n }\\n except(1) { Counter += 6; }\\n\\n if (Counter != 10) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try/finally inside a try/except where an exception is raised in the\\n // in the try/except and the try/finally.\\n //\\n\\n printf(\\\" test66...\\\");\\n Counter = 0;\\n try {\\n try {\\n Counter += 1;\\n *BlackHole += *BadAddress;\\n Counter += 13;\\n }\\n finally {\\n Counter += 3;\\n *BlackHole += *BadAddress;\\n Counter += 13;\\n }\\n }\\n except(1) { Counter += 6; }\\n\\n if (Counter != 10) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try/finally inside a try/finally inside a try/except where an\\n // exception is raised in the in the try/except and in try/finally.\\n //\\n\\n printf(\\\" test67...\\\");\\n try {\\n try {\\n *BlackHole += *BadAddress;\\n }\\n finally {\\n try {\\n Counter = 0;\\n }\\n finally {\\n if (Counter != 0) {\\n Counter += 1;\\n }\\n }\\n\\n Counter += 1;\\n *BlackHole += *BadAddress;\\n }\\n }\\n except(1) { Counter += 1; }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // A try/finally inside a try/finally inside a try/except where an\\n // exception is raised in the in the try/except and in try/finally.\\n //\\n\\n printf(\\\" test68...\\\");\\n try {\\n try {\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally {\\n try {\\n Counter = 0;\\n }\\n finally {\\n if (Counter != 0) {\\n Counter += 1;\\n }\\n }\\n\\n Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n }\\n except(1) { Counter += 1; }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n//\\n// Patch guard test 69.\\n//\\n\\n#if defined(_AMD64_) || defined(_X86_)\\n\\n printf(\\\" test69...\\\");\\n Counter = 0;\\n try {\\n PgTest69(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test70...\\\");\\n Counter = 0;\\n try {\\n PgTest70(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 2) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test71...\\\");\\n Counter = 0;\\n try {\\n PgTest71(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 9) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test72...\\\");\\n Counter = 0;\\n try {\\n PgTest72(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 12) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test73...\\\");\\n Counter = 0;\\n try {\\n PgTest73(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 15) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test74...\\\");\\n Counter = 0;\\n try {\\n PgTest74(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 18) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test75...\\\");\\n Counter = 0;\\n try {\\n PgTest75(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 35) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test76...\\\");\\n Counter = 0;\\n try {\\n PgTest76(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 40) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test77...\\\");\\n Counter = 0;\\n try {\\n PgTest77(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 45) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test78...\\\");\\n Counter = 0;\\n try {\\n PgTest78(&Counter, BadAddress);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { printf(\\\"unexpected exception...\\\"); }\\n\\n if (Counter != 50) {\\n printf(\\\"failed, count = %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n#else\\n printf(\\\" test69...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test70...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test71...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test72...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test73...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test74...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test75...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test76...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test77...filter entered...succeeded\\\\n\\\");\\n printf(\\\" test78...filter entered...succeeded\\\\n\\\");\\n#endif\\n\\n if (LOBYTE(LOWORD(GetVersion())) < 6) {\\n printf(\\\" test79...\\\");\\n printf(\\\"filter 1...filter 2...finally 1...filter 1...filter 2...finally \\\"\\n \\\"2...passed\\\\n\\\");\\n } else {\\n\\n printf(\\\" test79...\\\");\\n Counter = 0;\\n try {\\n Test79(&Counter, BadAddress);\\n }\\n except(printf(\\\"filter 2...\\\"), EXCEPTION_EXECUTE_HANDLER) { Counter += 1; }\\n\\n if (Counter == 3) {\\n printf(\\\"passed\\\\n\\\");\\n\\n } else {\\n printf(\\\"failed %d \\\\n\\\", Counter);\\n }\\n }\\n\\n printf(\\\" test80...\\\");\\n if (Test80() != 0) {\\n printf(\\\"failed\\\\n\\\");\\n\\n } else {\\n printf(\\\"passed\\\\n\\\");\\n }\\n\\n printf(\\\" test81...\\\");\\n Counter = 0;\\n Test81(&Counter);\\n if (Counter != 1) {\\n printf(\\\"failed %d \\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"passed\\\\n\\\");\\n }\\n\\n printf(\\\" test82...\\\");\\n Counter = 1;\\n Test82(&Counter);\\n if (Counter != 0) {\\n printf(\\\"failed\\\\n\\\");\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test83...\\\");\\n if (Test83() != 0) {\\n printf(\\\"failed\\\\n\\\");\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test84...\\\");\\n Counter = 0;\\n Test84(&Counter);\\n if (Counter != 2) {\\n printf(\\\"failed\\\\n\\\");\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test85...\\\");\\n Counter = 0;\\n Test85(&Counter);\\n if (Counter != 7) {\\n printf(\\\"failed\\\\n\\\");\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test86...\\\");\\n Counter = 0;\\n Test86(&Counter);\\n if (Counter != 4) {\\n printf(\\\"failed %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test87...\\\");\\n Counter = 0;\\n Test87(&Counter);\\n if (Counter != 104) {\\n printf(\\\"failed %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n printf(\\\" test88...\\\");\\n Counter = 0;\\n Test88(&Counter);\\n if (Counter != 6) {\\n printf(\\\"failed %d\\\\n\\\", Counter);\\n\\n } else {\\n printf(\\\"succeeded\\\\n\\\");\\n }\\n\\n //\\n // Announce end of exception test.\\n //\\n\\n printf(\\\"End of exception test\\\\n\\\");\\n return;\\n}\\n\\n#pragma optimize(\\\"a\\\", off)\\nVOID addtwo(long First, long Second, long *Place)\\n\\n{\\n\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n *Place = First + Second;\\n return;\\n}\\n#pragma optimize(\\\"\\\", on)\\n\\nVOID bar1(IN NTSTATUS Status, IN PLONG Counter) {\\n\\n try {\\n foo1(Status);\\n }\\n finally {\\n if (abnormal_termination() != FALSE) {\\n *Counter = 99;\\n\\n } else {\\n *Counter = 100;\\n }\\n }\\n\\n return;\\n}\\n\\nVOID bar2(IN PLONG BlackHole, IN PLONG BadAddress, IN PLONG Counter) {\\n\\n try {\\n foo2(BlackHole, BadAddress);\\n }\\n finally {\\n if (abnormal_termination() != FALSE) {\\n *Counter = 99;\\n\\n } else {\\n *Counter = 100;\\n }\\n }\\n\\n return;\\n}\\n\\nVOID dojump(IN jmp_buf JumpBuffer, IN PLONG Counter)\\n\\n{\\n\\n try {\\n try {\\n *Counter += 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally { *Counter += 1; }\\n }\\n finally {\\n *Counter += 1;\\n longjmp(JumpBuffer, 1);\\n }\\n}\\n\\n#if !defined(WIN_CE) // return through finally not allowed on WinCE\\nVOID eret(IN NTSTATUS Status, IN PLONG Counter)\\n\\n{\\n\\n try {\\n try {\\n foo1(Status);\\n }\\n except((GetExceptionCode() == Status) ? EXCEPTION_EXECUTE_HANDLER\\n : EXCEPTION_CONTINUE_SEARCH) {\\n *Counter += 1;\\n return;\\n }\\n }\\n finally { *Counter += 1; }\\n\\n return;\\n}\\n#endif\\n\\nVOID except1(IN PLONG Counter)\\n\\n{\\n\\n try {\\n *Counter += 5;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(except3(GetExceptionInformation(), Counter)) { *Counter += 7; }\\n\\n *Counter += 9;\\n return;\\n}\\n\\nULONG\\nexcept2(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter)\\n\\n{\\n\\n PEXCEPTION_RECORD ExceptionRecord;\\n\\n ExceptionRecord = ExceptionPointers->ExceptionRecord;\\n if ((ExceptionRecord->ExceptionCode == STATUS_UNSUCCESSFUL) &&\\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) == 0)) {\\n *Counter += 11;\\n return EXCEPTION_EXECUTE_HANDLER;\\n\\n } else {\\n *Counter += 13;\\n return EXCEPTION_CONTINUE_SEARCH;\\n }\\n}\\n\\nULONG\\nexcept3(IN PEXCEPTION_POINTERS ExceptionPointers, IN PLONG Counter)\\n\\n{\\n\\n PEXCEPTION_RECORD ExceptionRecord;\\n\\n ExceptionRecord = ExceptionPointers->ExceptionRecord;\\n if ((ExceptionRecord->ExceptionCode == STATUS_INTEGER_OVERFLOW) &&\\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) == 0)) {\\n *Counter += 17;\\n RtlRaiseStatus(STATUS_UNSUCCESSFUL);\\n\\n } else if ((ExceptionRecord->ExceptionCode == STATUS_UNSUCCESSFUL) &&\\n ((ExceptionRecord->ExceptionFlags & EXCEPTION_NESTED_CALL) != 0)) {\\n *Counter += 19;\\n return EXCEPTION_CONTINUE_SEARCH;\\n }\\n\\n *Counter += 23;\\n return EXCEPTION_EXECUTE_HANDLER;\\n}\\n\\nVOID foo1(IN NTSTATUS Status)\\n\\n{\\n\\n //\\n // Raise exception.\\n //\\n\\n RtlRaiseStatus(Status);\\n return;\\n}\\n\\nVOID foo2(IN PLONG BlackHole, IN PLONG BadAddress)\\n\\n{\\n\\n //\\n // Raise exception.\\n //\\n\\n *BlackHole += *BadAddress;\\n return;\\n}\\n\\n#if !defined(WIN_CE) // return from finally not allowed on WinCE\\nVOID fret(IN PLONG Counter)\\n\\n{\\n\\n try {\\n try {\\n *Counter += 1;\\n }\\n finally {\\n *Counter += 1;\\n return;\\n }\\n }\\n finally { *Counter += 1; }\\n\\n return;\\n}\\n#endif\\n\\nLONG Echo(IN LONG Value)\\n\\n{\\n return Value;\\n}\\n\\n#if defined(NEST_IN_FINALLY)\\nVOID Test61Part2(IN OUT PULONG Counter) {\\n try {\\n *Counter -= 1;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n finally {\\n try {\\n *Counter += 2;\\n RtlRaiseStatus(STATUS_INTEGER_OVERFLOW);\\n }\\n except(EXCEPTION_EXECUTE_HANDLER) { *Counter += 5; }\\n *Counter += 7;\\n }\\n}\\n#endif /* def(NEST_IN_FINALLY) */\\n\\ndouble SquareDouble(IN double op) {\\n return exp(2.0 * log(op));\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4271.e7d1cd2e.chunk.js b/static/js/4271.e7d1cd2e.chunk.js new file mode 100644 index 000000000..0b332379b --- /dev/null +++ b/static/js/4271.e7d1cd2e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4271],{84271:(n,e,r)=>{r.r(e),r.d(e,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Add className Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-classname.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname)\n\nAdding a class for a specific line for CodeMirror6.\n\n[![Add className Extensions](https://user-images.githubusercontent.com/1680273/224198360-99bd605f-9845-440b-9dfc-f5d4f4d58396.png)](https://uiwjs.github.io/react-codemirror/#/extensions/classname)\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-classname --save\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { classname } from '@uiw/codemirror-extensions-classname';\n\nconst themeDemo = EditorView.baseTheme({\n '&dark .first-line': { backgroundColor: 'red' },\n '&light .first-line': { backgroundColor: 'red' },\n '&dark .line-color': { backgroundColor: 'blue' },\n '&light .line-color': { backgroundColor: 'blue' },\n});\n\nfunction App() {\n const classnameExt = classname({\n add: (lineNumber) => {\n if (lineNumber === 1) {\n return 'first-line';\n }\n if (lineNumber === 5) {\n return 'line-color';\n }\n },\n });\n return ;\n}\n\nexport default App;\n```\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { classname } from '@uiw/codemirror-extensions-classname';\n\nfunction App() {\n const classnameExt = classname({\n add: (lineNumber) => {\n if (lineNumber === 1) {\n return 'first-line';\n }\n if (lineNumber === 5) {\n return 'line-color';\n }\n },\n });\n return ;\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { classname } from '@uiw/codemirror-extensions-classname';\n\nconst classnameExt = classname({\n add: (lineNumber) => {\n if (lineNumber === 1) {\n return 'first-line';\n }\n if (lineNumber === 5) {\n return 'line-color';\n }\n },\n});\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [classnameExt],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## API\n\n```ts\nimport { Extension } from '@codemirror/state';\nexport declare type ClassnameOptions = {\n add?: (lineNumber: number) => string | undefined;\n};\nexport declare function classname(options?: ClassnameOptions): Extension;\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4271.e7d1cd2e.chunk.js.map \ No newline at end of file diff --git a/static/js/4271.e7d1cd2e.chunk.js.map b/static/js/4271.e7d1cd2e.chunk.js.map new file mode 100644 index 000000000..d16496a8a --- /dev/null +++ b/static/js/4271.e7d1cd2e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4271.e7d1cd2e.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,umGACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/classname/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Add className Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-classname.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-classname)\\n\\nAdding a class for a specific line for CodeMirror6.\\n\\n[![Add className Extensions](https://user-images.githubusercontent.com/1680273/224198360-99bd605f-9845-440b-9dfc-f5d4f4d58396.png)](https://uiwjs.github.io/react-codemirror/#/extensions/classname)\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-classname --save\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { classname } from '@uiw/codemirror-extensions-classname';\\n\\nconst themeDemo = EditorView.baseTheme({\\n '&dark .first-line': { backgroundColor: 'red' },\\n '&light .first-line': { backgroundColor: 'red' },\\n '&dark .line-color': { backgroundColor: 'blue' },\\n '&light .line-color': { backgroundColor: 'blue' },\\n});\\n\\nfunction App() {\\n const classnameExt = classname({\\n add: (lineNumber) => {\\n if (lineNumber === 1) {\\n return 'first-line';\\n }\\n if (lineNumber === 5) {\\n return 'line-color';\\n }\\n },\\n });\\n return ;\\n}\\n\\nexport default App;\\n```\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { classname } from '@uiw/codemirror-extensions-classname';\\n\\nfunction App() {\\n const classnameExt = classname({\\n add: (lineNumber) => {\\n if (lineNumber === 1) {\\n return 'first-line';\\n }\\n if (lineNumber === 5) {\\n return 'line-color';\\n }\\n },\\n });\\n return ;\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { classname } from '@uiw/codemirror-extensions-classname';\\n\\nconst classnameExt = classname({\\n add: (lineNumber) => {\\n if (lineNumber === 1) {\\n return 'first-line';\\n }\\n if (lineNumber === 5) {\\n return 'line-color';\\n }\\n },\\n});\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [classnameExt],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## API\\n\\n```ts\\nimport { Extension } from '@codemirror/state';\\nexport declare type ClassnameOptions = {\\n add?: (lineNumber: number) => string | undefined;\\n};\\nexport declare function classname(options?: ClassnameOptions): Extension;\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4371.9f237f46.chunk.js b/static/js/4371.9f237f46.chunk.js new file mode 100644 index 000000000..027367e66 --- /dev/null +++ b/static/js/4371.9f237f46.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4371],{64371:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a='# Elixir is a dynamic, functional language for building scalable\n# and maintainable applications. Learn more: https://elixir-lang.org\n\n"Elixir" |> String.graphemes() |> Enum.frequencies()\n#=> %{"E" => 1, "i" => 2, "l" => 1, "r" => 1, "x" => 1}\n\n\n### Scalability ###\n\n# All Elixir code runs inside lightweight threads of execution (called processes)\n# that are isolated and exchange information via messages:\n\ncurrent_process = self()\n\n# Spawn an Elixir process (not an operating system one!)\nspawn_link(fn ->\n send(current_process, {:msg, "hello world"})\nend)\n\n# Block until the message is received\nreceive do\n {:msg, contents} -> IO.puts(contents)\nend\n\n\n### Fault-tolerance ###\n\n# To cope with failures, Elixir provides supervisors which describe\n# how to restart parts of your system when things go awry, going back\n# to a known initial state that is guaranteed to work:\n\nchildren = [\n TCP.Pool,\n {TCP.Acceptor, port: 4040}\n]\n\nSupervisor.start_link(children, strategy: :one_for_one)\n\n\n### Functional programming ###\n\n# Functional programming promotes a coding style that helps\n# developers write code that is short, concise, and maintainable.\n# One prominent example is pattern matching:\n\n%User{name: name, age: age} = User.get("John Doe")\nname #=> "John Doe"\n\n# When mixed with guards, pattern matching allows us to elegantly\n# match and assert specific conditions for some code to execute:\n\ndef drive(%User{age: age}) when age >= 16 do\n # Code that drives a car\nend\n\ndrive(User.get("John Doe"))\n#=> Fails if the user is under 16\n\n\n### Extensibility and DSLs ###\n\n# Elixir has been designed to be extensible, letting developers\n# naturally extend the language to particular domains,\n# in order to increase their productivity.\n\ndefmodule MathTest do\n use ExUnit.Case, async: true\n\n test "can add two numbers" do\n assert 1 + 1 == 2\n end\nend\n\n\n### Erlang compatible ###\n\n# An Elixir programmer can invoke any Erlang function with no runtime cost:\n\n:crypto.hash(:md5, "Using crypto from Erlang OTP")\n#=> <<192, 223, 75, 115, ...>>\n'}}]); +//# sourceMappingURL=4371.9f237f46.chunk.js.map \ No newline at end of file diff --git a/static/js/4371.9f237f46.chunk.js.map b/static/js/4371.9f237f46.chunk.js.map new file mode 100644 index 000000000..a2779289d --- /dev/null +++ b/static/js/4371.9f237f46.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4371.9f237f46.chunk.js","mappings":"yHAAA,mlE","sources":["../../node_modules/code-example/txt/sample.elixir.txt"],"sourcesContent":["export default \"# Elixir is a dynamic, functional language for building scalable\\n# and maintainable applications. Learn more: https://elixir-lang.org\\n\\n\\\"Elixir\\\" |> String.graphemes() |> Enum.frequencies()\\n#=> %{\\\"E\\\" => 1, \\\"i\\\" => 2, \\\"l\\\" => 1, \\\"r\\\" => 1, \\\"x\\\" => 1}\\n\\n\\n### Scalability ###\\n\\n# All Elixir code runs inside lightweight threads of execution (called processes)\\n# that are isolated and exchange information via messages:\\n\\ncurrent_process = self()\\n\\n# Spawn an Elixir process (not an operating system one!)\\nspawn_link(fn ->\\n send(current_process, {:msg, \\\"hello world\\\"})\\nend)\\n\\n# Block until the message is received\\nreceive do\\n {:msg, contents} -> IO.puts(contents)\\nend\\n\\n\\n### Fault-tolerance ###\\n\\n# To cope with failures, Elixir provides supervisors which describe\\n# how to restart parts of your system when things go awry, going back\\n# to a known initial state that is guaranteed to work:\\n\\nchildren = [\\n TCP.Pool,\\n {TCP.Acceptor, port: 4040}\\n]\\n\\nSupervisor.start_link(children, strategy: :one_for_one)\\n\\n\\n### Functional programming ###\\n\\n# Functional programming promotes a coding style that helps\\n# developers write code that is short, concise, and maintainable.\\n# One prominent example is pattern matching:\\n\\n%User{name: name, age: age} = User.get(\\\"John Doe\\\")\\nname #=> \\\"John Doe\\\"\\n\\n# When mixed with guards, pattern matching allows us to elegantly\\n# match and assert specific conditions for some code to execute:\\n\\ndef drive(%User{age: age}) when age >= 16 do\\n # Code that drives a car\\nend\\n\\ndrive(User.get(\\\"John Doe\\\"))\\n#=> Fails if the user is under 16\\n\\n\\n### Extensibility and DSLs ###\\n\\n# Elixir has been designed to be extensible, letting developers\\n# naturally extend the language to particular domains,\\n# in order to increase their productivity.\\n\\ndefmodule MathTest do\\n use ExUnit.Case, async: true\\n\\n test \\\"can add two numbers\\\" do\\n assert 1 + 1 == 2\\n end\\nend\\n\\n\\n### Erlang compatible ###\\n\\n# An Elixir programmer can invoke any Erlang function with no runtime cost:\\n\\n:crypto.hash(:md5, \\\"Using crypto from Erlang OTP\\\")\\n#=> <<192, 223, 75, 115, ...>>\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4384.5ca8f657.chunk.js b/static/js/4384.5ca8f657.chunk.js new file mode 100644 index 000000000..d4c00c674 --- /dev/null +++ b/static/js/4384.5ca8f657.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4384],{55864:(e,t,l)=>{l.d(t,{zu:()=>d});var n,a,r=l(60114),o=l(6008);const d=o.Ay.div(n||(n=(0,r.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));o.Ay.div(a||(a=(0,r.A)(["\n display: flex;\n flex: 1;\n"])))},4384:(e,t,l)=>{l.r(t),l.d(t,{Component:()=>b,MentionsExample:()=>h});var n=l(80905),a=l(55045);function r(e){return void 0===e&&(e=[]),(0,a.yU)({override:[t=>{var l=t.matchBefore(/@(\w+)?/);return l?l&&l.from==l.to&&!t.explicit?null:{from:null==l?void 0:l.from,options:[...e]}:null}]})}r();var o=l(73562),d=l(69332),i=l(94458),u=l(98846),s=l(55864),m=l(98557);const c=[{label:"@Walter White"},{label:"@\u76ae\u76ae\u9c81"},{label:"@\u9c81\u897f\u897f"},{label:"@\u4e2d\u672c\u806a"},{label:"@\u30b5\u30c8\u30b7\u30fb\u30ca\u30ab\u30e2\u30c8"},{label:"@\u91ce\u6bd4\u306e\u3073\u592a"},{label:"@\uc131\ub355\uc120"},{label:"@Jesse Pinkman"},{label:'@Gustavo "Gus" Fring'},{label:"@Saul Goodman"},{label:"@Hank Schrader"},{label:"@Skyler White"},{label:"@Mike Ehrmantraut"},{label:"@Lyd\xec\xe3 R\xf4dart\xe9-Q\xfcayle"}],h=()=>{const{theme:e}=(0,i.D)(),t=(0,n.useContext)(u.pX);return(0,m.jsx)(s.zu,{children:(0,m.jsx)(o.default,{value:t.mdstr,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[d.cg.markdown(),r(c)]})})},b=()=>(0,m.jsx)(u.lN,{path:()=>l.e(367).then(l.bind(l,30367)),children:(0,m.jsx)(h,{})})},94458:(e,t,l)=>{l.d(t,{D:()=>a});var n=l(80905);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[l,a]=(0,n.useState)("dark"===t?"dark":e);return(0,n.useEffect)((()=>{a("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{a(e.detail.colorScheme)}))}),[]),{theme:l,setTheme:a}}}}]); +//# sourceMappingURL=4384.5ca8f657.chunk.js.map \ No newline at end of file diff --git a/static/js/4384.5ca8f657.chunk.js.map b/static/js/4384.5ca8f657.chunk.js.map new file mode 100644 index 000000000..60c962735 --- /dev/null +++ b/static/js/4384.5ca8f657.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4384.5ca8f657.chunk.js","mappings":"0IAEO,MAAMA,EAAcC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,iGCP1B,SAASE,EAASC,GAIvB,YAHa,IAATA,IACFA,EAAO,KAEFC,EAAAA,EAAAA,IAAe,CACpBC,SAAU,CAACC,IACT,IAAIC,EAAOD,EAAQE,YAAY,WAC/B,OAAKD,EACDA,GAAQA,EAAKE,MAAQF,EAAKG,KAAOJ,EAAQK,SACpC,KAEF,CACLF,KAAc,MAARF,OAAe,EAASA,EAAKE,KACnCG,QAAS,IAAIT,IANG,IAOjB,IAGP,CAC2BD,IAApB,I,kECXP,MAAMW,EAAQ,CACZ,CACEC,MAAO,iBAET,CACEA,MAAO,uBAET,CACEA,MAAO,uBAET,CACEA,MAAO,uBAET,CACEA,MAAO,qDAET,CACEA,MAAO,mCAET,CACEA,MAAO,uBAET,CACEA,MAAO,kBAET,CACEA,MAAO,wBAET,CACEA,MAAO,iBAET,CACEA,MAAO,kBAET,CACEA,MAAO,iBAET,CACEA,MAAO,qBAET,CACEA,MAAO,yCAIEC,EAAyCA,KACpD,MAAM,MAAEC,IAAUC,EAAAA,EAAAA,KACZC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IAE1B,OACEC,EAAAA,EAAAA,KAACzB,EAAAA,GAAW,CAAA0B,UACVD,EAAAA,EAAAA,KAACE,EAAAA,QAAU,CACTC,MAAON,EAAOO,MACdT,MAAOA,EACPU,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CAACC,EAAAA,GAAMC,WAAY7B,EAASW,OAE9B,EAILmB,EAAYA,KAErBX,EAAAA,EAAAA,KAACY,EAAAA,GAAO,CAACC,KAAMA,IAAM,+BAAwDZ,UAC3ED,EAAAA,EAAAA,KAACN,EAAe,K,kDCtEf,SAASE,IAAyD,IAAhDkB,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5C1B,EAAO2B,IAAYC,EAAAA,EAAAA,UAAiD,SAATL,EAAkB,OAASJ,GAO7F,OANAU,EAAAA,EAAAA,YAAU,KACRF,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASM,iBAAiB,qBAAsBC,IAC9CJ,EAASI,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAEjC,QAAO2B,WAClB,C","sources":["pages/extensions/index.tsx","../../extensions/mentions/esm/index.js","pages/extensions/mentions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { autocompletion } from '@codemirror/autocomplete';\nexport function mentions(data) {\n if (data === void 0) {\n data = [];\n }\n return autocompletion({\n override: [context => {\n var word = context.matchBefore(/@(\\w+)?/);\n if (!word) return null;\n if (word && word.from == word.to && !context.explicit) {\n return null;\n }\n return {\n from: word == null ? void 0 : word.from,\n options: [...data]\n };\n }]\n });\n}\nexport var mentionsView = [mentions()];","import { useContext, type FC, type PropsWithChildren } from 'react';\nimport { mentions } from '@uiw/codemirror-extensions-mentions';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { useTheme } from '../../../utils/useTheme';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { PageWarpper } from '..';\n\nconst users = [\n {\n label: '@Walter White',\n },\n {\n label: '@皮皮鲁',\n },\n {\n label: '@鲁西西',\n },\n {\n label: '@中本聪',\n },\n {\n label: '@サトシ・ナカモト',\n },\n {\n label: '@野比のび太',\n },\n {\n label: '@성덕선',\n },\n {\n label: '@Jesse Pinkman',\n },\n {\n label: '@Gustavo \"Gus\" Fring',\n },\n {\n label: '@Saul Goodman',\n },\n {\n label: '@Hank Schrader',\n },\n {\n label: '@Skyler White',\n },\n {\n label: '@Mike Ehrmantraut',\n },\n {\n label: '@Lydìã Rôdarté-Qüayle',\n },\n];\n\nexport const MentionsExample: FC = () => {\n const { theme } = useTheme();\n const mdData = useContext(MdContext);\n\n return (\n \n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-mentions/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["PageWarpper","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","mentions","data","autocompletion","override","context","word","matchBefore","from","to","explicit","options","users","label","MentionsExample","theme","useTheme","mdData","useContext","MdContext","_jsx","children","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","Component","Preview","path","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useState","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4510.ad7928bb.chunk.js b/static/js/4510.ad7928bb.chunk.js new file mode 100644 index 000000000..d963ff21e --- /dev/null +++ b/static/js/4510.ad7928bb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4510],{14510:(e,n,r)=>{r.r(n),r.d(n,{default:()=>i});const i={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Relative Line Numbers Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative)\n\nRelative line numbers Extensions for CodeMirror6.\n\n[![Relative line numbers Extensions](https://user-images.githubusercontent.com/1680273/178180348-c53b4b91-527c-4a90-9e60-20269ef9a598.png)](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative)\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-line-numbers-relative --save\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative';\n\nfunction App() {\n return ;\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [lineNumbersRelative],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4510.ad7928bb.chunk.js.map \ No newline at end of file diff --git a/static/js/4510.ad7928bb.chunk.js.map b/static/js/4510.ad7928bb.chunk.js.map new file mode 100644 index 000000000..b5dfaa903 --- /dev/null +++ b/static/js/4510.ad7928bb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4510.ad7928bb.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,u3DACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/line-numbers-relative/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Relative Line Numbers Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-line-numbers-relative.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-line-numbers-relative)\\n\\nRelative line numbers Extensions for CodeMirror6.\\n\\n[![Relative line numbers Extensions](https://user-images.githubusercontent.com/1680273/178180348-c53b4b91-527c-4a90-9e60-20269ef9a598.png)](https://uiwjs.github.io/react-codemirror/#/extensions/line-numbers-relative)\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-line-numbers-relative --save\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative';\\n\\nfunction App() {\\n return ;\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [lineNumbersRelative],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4675.9dd387a7.chunk.js b/static/js/4675.9dd387a7.chunk.js new file mode 100644 index 000000000..2b0347421 --- /dev/null +++ b/static/js/4675.9dd387a7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4675],{14675:(n,s,r)=>{r.r(s),r.d(s,{default:()=>e});const e="' Pete Guhl\n' 03-04-2012\n'\n' Basic VBScript support for codemirror2\n\nConst ForReading = 1, ForWriting = 2, ForAppending = 8\n\nCall Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)\n\nIf Not IsNull(strResponse) AND Len(strResponse) = 0 Then\n boolTransmitOkYN = False\nElse\n ' WScript.Echo \"Oh Happy Day! Oh Happy DAY!\"\n boolTransmitOkYN = True\nEnd If\n"}}]); +//# sourceMappingURL=4675.9dd387a7.chunk.js.map \ No newline at end of file diff --git a/static/js/4675.9dd387a7.chunk.js.map b/static/js/4675.9dd387a7.chunk.js.map new file mode 100644 index 000000000..e1421a815 --- /dev/null +++ b/static/js/4675.9dd387a7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4675.9dd387a7.chunk.js","mappings":"yHAAA,ga","sources":["../../node_modules/code-example/txt/sample.vbscript.txt"],"sourcesContent":["export default \"' Pete Guhl\\n' 03-04-2012\\n'\\n' Basic VBScript support for codemirror2\\n\\nConst ForReading = 1, ForWriting = 2, ForAppending = 8\\n\\nCall Sub020_PostBroadcastToUrbanAirship(strUserName, strPassword, intTransmitID, strResponse)\\n\\nIf Not IsNull(strResponse) AND Len(strResponse) = 0 Then\\n boolTransmitOkYN = False\\nElse\\n ' WScript.Echo \\\"Oh Happy Day! Oh Happy DAY!\\\"\\n boolTransmitOkYN = True\\nEnd If\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4736.fbdb24ed.chunk.js b/static/js/4736.fbdb24ed.chunk.js new file mode 100644 index 000000000..1489be6e3 --- /dev/null +++ b/static/js/4736.fbdb24ed.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4736],{44736:(e,n,a)=>{a.r(n),a.d(n,{default:()=>t});const t='<#ftl stripText=false>\n\n<#-- Free marker demo --\x3e\n\n<#comment>\nThis demonstrates the FreeMarker language. The default theme is not very\ncolorful and displays many different token types in the same color, but keep in\nmind that you can define your own theme (or extend an existing one).\n\nNote that free marker actually defines 6 similar but different syntax modes:\n\n- 3 tag syntax modes: Angle (<#if>), Bracket ([#if]), and Auto.\n- 2 interpolation modes: Dollar (${...}) and Bracket ([=...])\n\nIn auto mode, the first tag determines the tag syntax. You can use the language\nIDs "freemarker.tag-bracket.interpolation-dollar" etc. to force a specific mode.\n\nThe default FreeMarker mode is Angle/Dollar.\n\n\n<#macro greet name>\n Hello ${name}!\n\n\n<#macro border>\n
\n <#nested>\n
\n\n\n<#function avg x y>\n <#return (x + y) / 2>\n\n\n<#assign user = "Juila Smith">\n<#assign animals = [{"name": "Tanuki", "price": 200}, {"name": "Phoenix", "price": 1111}]>\n\n\n\n Welcome!\n\n\n <#-- Greet the user with his/her name --\x3e\n

\n <@greet user />\n

\n\n

We have these animals:\n\n

    \n <#list animals as animal>\n
  • ${animal.name} for ${animal.price} Euros\n \n
\n\n <@border>The bordered text\n\n The average of 35 and 49 is ${avg(35, 49)}.\n\n\n\n'}}]); +//# sourceMappingURL=4736.fbdb24ed.chunk.js.map \ No newline at end of file diff --git a/static/js/4736.fbdb24ed.chunk.js.map b/static/js/4736.fbdb24ed.chunk.js.map new file mode 100644 index 000000000..ade30c74e --- /dev/null +++ b/static/js/4736.fbdb24ed.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4736.fbdb24ed.chunk.js","mappings":"yHAAA,u/C","sources":["../../node_modules/code-example/txt/sample.freemarker2.txt"],"sourcesContent":["export default \"<#ftl stripText=false>\\n\\n<#-- Free marker demo -->\\n\\n<#comment>\\nThis demonstrates the FreeMarker language. The default theme is not very\\ncolorful and displays many different token types in the same color, but keep in\\nmind that you can define your own theme (or extend an existing one).\\n\\nNote that free marker actually defines 6 similar but different syntax modes:\\n\\n- 3 tag syntax modes: Angle (<#if>), Bracket ([#if]), and Auto.\\n- 2 interpolation modes: Dollar (${...}) and Bracket ([=...])\\n\\nIn auto mode, the first tag determines the tag syntax. You can use the language\\nIDs \\\"freemarker.tag-bracket.interpolation-dollar\\\" etc. to force a specific mode.\\n\\nThe default FreeMarker mode is Angle/Dollar.\\n\\n\\n<#macro greet name>\\n Hello ${name}!\\n\\n\\n<#macro border>\\n
\\n <#nested>\\n
\\n\\n\\n<#function avg x y>\\n <#return (x + y) / 2>\\n\\n\\n<#assign user = \\\"Juila Smith\\\">\\n<#assign animals = [{\\\"name\\\": \\\"Tanuki\\\", \\\"price\\\": 200}, {\\\"name\\\": \\\"Phoenix\\\", \\\"price\\\": 1111}]>\\n\\n\\n\\n Welcome!\\n\\n\\n <#-- Greet the user with his/her name -->\\n

\\n <@greet user />\\n

\\n\\n

We have these animals:\\n\\n

    \\n <#list animals as animal>\\n
  • ${animal.name} for ${animal.price} Euros\\n \\n
\\n\\n <@border>The bordered text\\n\\n The average of 35 and 49 is ${avg(35, 49)}.\\n\\n\\n\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4774.70c2b4b0.chunk.js b/static/js/4774.70c2b4b0.chunk.js new file mode 100644 index 000000000..a9689ddf3 --- /dev/null +++ b/static/js/4774.70c2b4b0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4774],{94774:(r,e,n)=>{n.r(e),n.d(e,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Darcula Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-darcula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula)\n\n\n \"codemirror-theme-darcula\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-darcula --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { darcula } from '@uiw/codemirror-theme-darcula';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [darcula, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { darcula, darculaInit } from '@uiw/codemirror-theme-darcula';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsDarcula: CreateThemeOptions['settings'];\nexport declare const darculaInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const darcula: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { darcula } from '@uiw/codemirror-theme-darcula';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { darcula } from '@uiw/codemirror-theme-darcula';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [darcula, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4774.70c2b4b0.chunk.js.map \ No newline at end of file diff --git a/static/js/4774.70c2b4b0.chunk.js.map b/static/js/4774.70c2b4b0.chunk.js.map new file mode 100644 index 000000000..18bd60eb9 --- /dev/null +++ b/static/js/4774.70c2b4b0.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4774.70c2b4b0.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,sgGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/darcula/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Darcula Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-darcula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-darcula)\\n\\n\\n \\\"codemirror-theme-darcula\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-darcula --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { darcula } from '@uiw/codemirror-theme-darcula';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [darcula, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { darcula, darculaInit } from '@uiw/codemirror-theme-darcula';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsDarcula: CreateThemeOptions['settings'];\\nexport declare const darculaInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const darcula: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { darcula } from '@uiw/codemirror-theme-darcula';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { darcula } from '@uiw/codemirror-theme-darcula';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [darcula, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4836.95a893d5.chunk.js b/static/js/4836.95a893d5.chunk.js new file mode 100644 index 000000000..c12ed993d --- /dev/null +++ b/static/js/4836.95a893d5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4836],{74836:(e,r,o)=>{o.r(r),o.d(r,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# VSCode Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-vscode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode)\n\n\n \"codemirror-theme-vscode\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-vscode --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [vscodeDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { vscodeDark, vscodeDarkInit } from '@uiw/codemirror-theme-vscode';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsVscodeDark: CreateThemeOptions['settings'];\nexport declare function vscodeDarkInit(options?: Partial): import('@codemirror/state').Extension;\nexport declare const vscodeDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [vscodeDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4836.95a893d5.chunk.js.map \ No newline at end of file diff --git a/static/js/4836.95a893d5.chunk.js.map b/static/js/4836.95a893d5.chunk.js.map new file mode 100644 index 000000000..f2ead5009 --- /dev/null +++ b/static/js/4836.95a893d5.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4836.95a893d5.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,k7FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/vscode/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# VSCode Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-vscode.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-vscode)\\n\\n\\n \\\"codemirror-theme-vscode\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-vscode --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [vscodeDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { vscodeDark, vscodeDarkInit } from '@uiw/codemirror-theme-vscode';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsVscodeDark: CreateThemeOptions['settings'];\\nexport declare function vscodeDarkInit(options?: Partial): import('@codemirror/state').Extension;\\nexport declare const vscodeDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { vscodeDark } from '@uiw/codemirror-theme-vscode';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [vscodeDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4861.8c907614.chunk.js b/static/js/4861.8c907614.chunk.js new file mode 100644 index 000000000..7860c007f --- /dev/null +++ b/static/js/4861.8c907614.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4861],{44861:(n,e,t)=>{t.r(e),t.d(e,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Events Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-events.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events)\n\nEvents Extensions for CodeMirror6.\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-events --save\n```\n\n```js\nimport * as events from '@uiw/codemirror-extensions-events';\nimport { element } from '@uiw/codemirror-extensions-events';\n\nconst extension1 = events.scroll({\n scroll: (evn) => {\n /* ... */\n },\n});\n\nconst extension1 = events.dom({\n click: (evn) => {\n /* ... */\n },\n});\n\nconst extension2 = events.content({\n focus: (evn) => {\n /* ... */\n },\n blur: (evn) => {\n /* ... */\n },\n});\n\nconst extension3 = element({\n type: 'content',\n props: {\n inputMode: 'none',\n },\n});\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport * as events from '@uiw/codemirror-extensions-events';\nimport { element } from '@uiw/codemirror-extensions-events';\n\nfunction App() {\n const [scrollTop, setScrollTop] = useState(0);\n\n const eventExt = events.scroll({\n scroll: (evn) => {\n setScrollTop(evn.target.scrollTop);\n },\n });\n\n const eventExt2 = events.content({\n focus: (evn) => {\n console.log('focus');\n },\n blur: (evn) => {\n console.log('blur');\n },\n });\n\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport * as events from '@uiw/codemirror-extensions-events';\n\nconst eventExt = events.content({\n focus: (evn) => {\n console.log('focus');\n },\n blur: (evn) => {\n console.log('blur');\n },\n});\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [eventExt],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## API\n\n```ts\nimport { ViewPlugin, EditorView } from '@codemirror/view';\nexport declare type Events = Record<\n K,\n (this: HTMLElement, event: HTMLElementEventMap[K]) => void\n>;\n/**\n * The DOM element that can be styled to scroll.\n * (Note that it may not have been, so you can't assume this is scrollable.)\n */\nexport declare function dom(\n opts: Events,\n): ViewPlugin<{\n dom?: HTMLElement | undefined;\n view: EditorView;\n destroy(): void;\n}>;\n/**\n * The DOM element that wraps the entire editor view.\n */\nexport declare function scroll(\n opts: Events,\n): ViewPlugin<{\n dom?: HTMLElement | undefined;\n view: EditorView;\n destroy(): void;\n}>;\n/**\n * The editable DOM element holding the editor content.\n * You should not, usually, interact with this content directly though the DOM,\n * since the editor will immediately undo most of the changes you make.\n */\nexport declare function content(\n opts: Events,\n): ViewPlugin<{\n dom?: HTMLElement | undefined;\n view: EditorView;\n destroy(): void;\n}>;\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=4861.8c907614.chunk.js.map \ No newline at end of file diff --git a/static/js/4861.8c907614.chunk.js.map b/static/js/4861.8c907614.chunk.js.map new file mode 100644 index 000000000..0239453b4 --- /dev/null +++ b/static/js/4861.8c907614.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4861.8c907614.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,o8HACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/events/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Events Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-events.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-events)\\n\\nEvents Extensions for CodeMirror6.\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-events --save\\n```\\n\\n```js\\nimport * as events from '@uiw/codemirror-extensions-events';\\nimport { element } from '@uiw/codemirror-extensions-events';\\n\\nconst extension1 = events.scroll({\\n scroll: (evn) => {\\n /* ... */\\n },\\n});\\n\\nconst extension1 = events.dom({\\n click: (evn) => {\\n /* ... */\\n },\\n});\\n\\nconst extension2 = events.content({\\n focus: (evn) => {\\n /* ... */\\n },\\n blur: (evn) => {\\n /* ... */\\n },\\n});\\n\\nconst extension3 = element({\\n type: 'content',\\n props: {\\n inputMode: 'none',\\n },\\n});\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport * as events from '@uiw/codemirror-extensions-events';\\nimport { element } from '@uiw/codemirror-extensions-events';\\n\\nfunction App() {\\n const [scrollTop, setScrollTop] = useState(0);\\n\\n const eventExt = events.scroll({\\n scroll: (evn) => {\\n setScrollTop(evn.target.scrollTop);\\n },\\n });\\n\\n const eventExt2 = events.content({\\n focus: (evn) => {\\n console.log('focus');\\n },\\n blur: (evn) => {\\n console.log('blur');\\n },\\n });\\n\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport * as events from '@uiw/codemirror-extensions-events';\\n\\nconst eventExt = events.content({\\n focus: (evn) => {\\n console.log('focus');\\n },\\n blur: (evn) => {\\n console.log('blur');\\n },\\n});\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [eventExt],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## API\\n\\n```ts\\nimport { ViewPlugin, EditorView } from '@codemirror/view';\\nexport declare type Events = Record<\\n K,\\n (this: HTMLElement, event: HTMLElementEventMap[K]) => void\\n>;\\n/**\\n * The DOM element that can be styled to scroll.\\n * (Note that it may not have been, so you can't assume this is scrollable.)\\n */\\nexport declare function dom(\\n opts: Events,\\n): ViewPlugin<{\\n dom?: HTMLElement | undefined;\\n view: EditorView;\\n destroy(): void;\\n}>;\\n/**\\n * The DOM element that wraps the entire editor view.\\n */\\nexport declare function scroll(\\n opts: Events,\\n): ViewPlugin<{\\n dom?: HTMLElement | undefined;\\n view: EditorView;\\n destroy(): void;\\n}>;\\n/**\\n * The editable DOM element holding the editor content.\\n * You should not, usually, interact with this content directly though the DOM,\\n * since the editor will immediately undo most of the changes you make.\\n */\\nexport declare function content(\\n opts: Events,\\n): ViewPlugin<{\\n dom?: HTMLElement | undefined;\\n view: EditorView;\\n destroy(): void;\\n}>;\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/4967.83f7ce78.chunk.js b/static/js/4967.83f7ce78.chunk.js new file mode 100644 index 000000000..8145ee0e7 --- /dev/null +++ b/static/js/4967.83f7ce78.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[4967],{9749:(e,t,c)=>{c.d(t,{C:()=>m,J:()=>u});var n,h,a=c(60114),i=c(80905),r=c(73562),l=c(69332),d=c(6008),o=c(94458),s=c(55864),g=c(98846),k=c(98557);const p=d.Ay.label(n||(n=(0,a.A)(["\n user-select: none;\n white-space: nowrap;\n"]))),u=e=>{let{children:t,...c}=e;return(0,k.jsxs)(p,{children:[(0,k.jsx)("input",{type:"checkbox",...c}),(0,k.jsx)("span",{children:t})]})},x=d.Ay.div(h||(h=(0,a.A)(["\n padding-bottom: 32px;\n"]))),m=()=>{const{theme:e}=(0,o.D)(),[t,c]=(0,i.useState)({}),n=(0,i.useContext)(g.pX);return(0,k.jsxs)(s.zu,{children:[(0,k.jsx)(r.default,{value:n.mdstr,theme:e,basicSetup:t,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[l.cg.markdown()]}),(0,k.jsxs)(x,{children:[(0,k.jsxs)("select",{value:t.tabSize,onChange:e=>c({...t,tabSize:Number(e.target.value||"2")}),children:[(0,k.jsx)("option",{value:2,children:"TabSize: 2"}),(0,k.jsx)("option",{value:4,children:"TabSize: 4"}),(0,k.jsx)("option",{value:6,children:"TabSize: 6"}),(0,k.jsx)("option",{value:8,children:"TabSize: 8"})]}),(0,k.jsx)(u,{checked:!1!==t.lineNumbers,onChange:e=>c({...t,lineNumbers:e.target.checked}),children:"lineNumbers"}),(0,k.jsx)(u,{checked:!1!==t.foldGutter,onChange:e=>c({...t,foldGutter:e.target.checked}),children:"foldGutter"}),(0,k.jsx)(u,{checked:!1!==t.highlightActiveLineGutter,onChange:e=>c({...t,highlightActiveLineGutter:e.target.checked}),children:"highlightActiveLineGutter"}),(0,k.jsx)(u,{checked:!1!==t.highlightSpecialChars,onChange:e=>c({...t,highlightSpecialChars:e.target.checked}),children:"highlightSpecialChars"}),(0,k.jsx)(u,{checked:!1!==t.history,onChange:e=>c({...t,history:e.target.checked}),children:"history"}),(0,k.jsx)(u,{checked:!1!==t.drawSelection,onChange:e=>c({...t,drawSelection:e.target.checked}),children:"drawSelection"}),(0,k.jsx)(u,{checked:!1!==t.dropCursor,onChange:e=>c({...t,dropCursor:e.target.checked}),children:"dropCursor"}),(0,k.jsx)(u,{checked:!1!==t.allowMultipleSelections,onChange:e=>c({...t,allowMultipleSelections:e.target.checked}),children:"allowMultipleSelections"}),(0,k.jsx)(u,{checked:!1!==t.indentOnInput,onChange:e=>c({...t,indentOnInput:e.target.checked}),children:"indentOnInput"}),(0,k.jsx)(u,{checked:!1!==t.syntaxHighlighting,onChange:e=>c({...t,syntaxHighlighting:e.target.checked}),children:"syntaxHighlighting"}),(0,k.jsx)(u,{checked:!1!==t.bracketMatching,onChange:e=>c({...t,bracketMatching:e.target.checked}),children:"bracketMatching"}),(0,k.jsx)(u,{checked:!1!==t.closeBrackets,onChange:e=>c({...t,closeBrackets:e.target.checked}),children:"closeBrackets"}),(0,k.jsx)(u,{checked:!1!==t.autocompletion,onChange:e=>c({...t,autocompletion:e.target.checked}),children:"autocompletion"}),(0,k.jsx)(u,{checked:!1!==t.rectangularSelection,onChange:e=>c({...t,rectangularSelection:e.target.checked}),children:"rectangularSelection"}),(0,k.jsx)(u,{checked:!1!==t.crosshairCursor,onChange:e=>c({...t,crosshairCursor:e.target.checked}),children:"crosshairCursor"}),(0,k.jsx)(u,{checked:!1!==t.highlightActiveLine,onChange:e=>c({...t,highlightActiveLine:e.target.checked}),children:"highlightActiveLine"}),(0,k.jsx)(u,{checked:!1!==t.highlightSelectionMatches,onChange:e=>c({...t,highlightSelectionMatches:e.target.checked}),children:"highlightSelectionMatches"}),(0,k.jsx)(u,{checked:!1!==t.closeBracketsKeymap,onChange:e=>c({...t,closeBracketsKeymap:e.target.checked}),children:"closeBracketsKeymap"}),(0,k.jsx)(u,{checked:!1!==t.defaultKeymap,onChange:e=>c({...t,defaultKeymap:e.target.checked}),children:"defaultKeymap"}),(0,k.jsx)(u,{checked:!1!==t.searchKeymap,onChange:e=>c({...t,searchKeymap:e.target.checked}),children:"searchKeymap"}),(0,k.jsx)(u,{checked:!1!==t.historyKeymap,onChange:e=>c({...t,historyKeymap:e.target.checked}),children:"historyKeymap"}),(0,k.jsx)(u,{checked:!1!==t.foldKeymap,onChange:e=>c({...t,foldKeymap:e.target.checked}),children:"foldKeymap"}),(0,k.jsx)(u,{checked:!1!==t.completionKeymap,onChange:e=>c({...t,completionKeymap:e.target.checked}),children:"completionKeymap"}),(0,k.jsx)(u,{checked:!1!==t.lintKeymap,onChange:e=>c({...t,lintKeymap:e.target.checked}),children:"lintKeymap"})]})]})}},4967:(e,t,c)=>{c.r(t),c.d(t,{Component:()=>i});var n=c(98846),h=c(9749),a=c(98557);const i=()=>(0,a.jsx)(n.lN,{path:()=>c.e(7468).then(c.bind(c,27468)),children:(0,a.jsx)(h.C,{})})},55864:(e,t,c)=>{c.d(t,{zu:()=>r});var n,h,a=c(60114),i=c(6008);const r=i.Ay.div(n||(n=(0,a.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));i.Ay.div(h||(h=(0,a.A)(["\n display: flex;\n flex: 1;\n"])))},94458:(e,t,c)=>{c.d(t,{D:()=>h});var n=c(80905);function h(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[c,h]=(0,n.useState)("dark"===t?"dark":e);return(0,n.useEffect)((()=>{h("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{h(e.detail.colorScheme)}))}),[]),{theme:c,setTheme:h}}}}]); +//# sourceMappingURL=4967.83f7ce78.chunk.js.map \ No newline at end of file diff --git a/static/js/4967.83f7ce78.chunk.js.map b/static/js/4967.83f7ce78.chunk.js.map new file mode 100644 index 000000000..915228838 --- /dev/null +++ b/static/js/4967.83f7ce78.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4967.83f7ce78.chunk.js","mappings":"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","sources":["pages/extensions/basic-setup/example.tsx","pages/extensions/basic-setup/index.tsx","pages/extensions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import { FC, PropsWithChildren, useContext, useState } from 'react';\nimport CodeMirror, { BasicSetupOptions } from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport styled from 'styled-components';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\nimport { MdContext } from '../../theme/Preview';\n\nconst Label = styled.label`\n user-select: none;\n white-space: nowrap;\n`;\n\nexport const Options: FC<\n PropsWithChildren, HTMLInputElement>>\n> = ({ children, ...props }) => {\n return (\n \n );\n};\n\nconst Warpper = styled.div`\n padding-bottom: 32px;\n`;\n\nexport const BasicSetupExample = () => {\n const { theme } = useTheme();\n const [basicSetup, setBasicSetup] = useState({});\n const mdData = useContext(MdContext);\n return (\n \n \n \n setBasicSetup({ ...basicSetup, tabSize: Number(evn.target.value || '2') })}\n >\n \n \n \n \n \n setBasicSetup({ ...basicSetup, lineNumbers: evn.target.checked })}\n >\n lineNumbers\n \n setBasicSetup({ ...basicSetup, foldGutter: evn.target.checked })}\n >\n foldGutter\n \n setBasicSetup({ ...basicSetup, highlightActiveLineGutter: evn.target.checked })}\n >\n highlightActiveLineGutter\n \n setBasicSetup({ ...basicSetup, highlightSpecialChars: evn.target.checked })}\n >\n highlightSpecialChars\n \n setBasicSetup({ ...basicSetup, history: evn.target.checked })}\n >\n history\n \n setBasicSetup({ ...basicSetup, drawSelection: evn.target.checked })}\n >\n drawSelection\n \n setBasicSetup({ ...basicSetup, dropCursor: evn.target.checked })}\n >\n dropCursor\n \n setBasicSetup({ ...basicSetup, allowMultipleSelections: evn.target.checked })}\n >\n allowMultipleSelections\n \n setBasicSetup({ ...basicSetup, indentOnInput: evn.target.checked })}\n >\n indentOnInput\n \n setBasicSetup({ ...basicSetup, syntaxHighlighting: evn.target.checked })}\n >\n syntaxHighlighting\n \n setBasicSetup({ ...basicSetup, bracketMatching: evn.target.checked })}\n >\n bracketMatching\n \n setBasicSetup({ ...basicSetup, closeBrackets: evn.target.checked })}\n >\n closeBrackets\n \n setBasicSetup({ ...basicSetup, autocompletion: evn.target.checked })}\n >\n autocompletion\n \n setBasicSetup({ ...basicSetup, rectangularSelection: evn.target.checked })}\n >\n rectangularSelection\n \n setBasicSetup({ ...basicSetup, crosshairCursor: evn.target.checked })}\n >\n crosshairCursor\n \n setBasicSetup({ ...basicSetup, highlightActiveLine: evn.target.checked })}\n >\n highlightActiveLine\n \n setBasicSetup({ ...basicSetup, highlightSelectionMatches: evn.target.checked })}\n >\n highlightSelectionMatches\n \n setBasicSetup({ ...basicSetup, closeBracketsKeymap: evn.target.checked })}\n >\n closeBracketsKeymap\n \n setBasicSetup({ ...basicSetup, defaultKeymap: evn.target.checked })}\n >\n defaultKeymap\n \n setBasicSetup({ ...basicSetup, searchKeymap: evn.target.checked })}\n >\n searchKeymap\n \n setBasicSetup({ ...basicSetup, historyKeymap: evn.target.checked })}\n >\n historyKeymap\n \n setBasicSetup({ ...basicSetup, foldKeymap: evn.target.checked })}\n >\n foldKeymap\n \n setBasicSetup({ ...basicSetup, completionKeymap: evn.target.checked })}\n >\n completionKeymap\n \n setBasicSetup({ ...basicSetup, lintKeymap: evn.target.checked })}\n >\n lintKeymap\n \n \n \n );\n};\n","import { Preview } from '../../theme/Preview';\nimport { BasicSetupExample } from './example';\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-basic-setup/README.md')}>\n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["Label","styled","label","_templateObject","_taggedTemplateLiteral","Options","_ref","children","props","_jsxs","_jsx","type","Warpper","div","_templateObject2","BasicSetupExample","theme","useTheme","basicSetup","setBasicSetup","useState","mdData","useContext","MdContext","PageWarpper","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","tabSize","onChange","evn","Number","target","checked","lineNumbers","foldGutter","highlightActiveLineGutter","highlightSpecialChars","history","drawSelection","dropCursor","allowMultipleSelections","indentOnInput","syntaxHighlighting","bracketMatching","closeBrackets","autocompletion","rectangularSelection","crosshairCursor","highlightActiveLine","highlightSelectionMatches","closeBracketsKeymap","defaultKeymap","searchKeymap","historyKeymap","foldKeymap","completionKeymap","lintKeymap","Component","Preview","path","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5112.ea1f99af.chunk.js b/static/js/5112.ea1f99af.chunk.js new file mode 100644 index 000000000..5e3b36368 --- /dev/null +++ b/static/js/5112.ea1f99af.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5112],{35112:(n,e,t)=>{t.r(e),t.d(e,{default:()=>r});const r='(* Sample F# application *)\n[]\nlet main argv = \n printfn "%A" argv\n System.Console.WriteLine("Hello from F#")\n 0 // return an integer exit code\n\n//-------------------------------------------------------- \n'}}]); +//# sourceMappingURL=5112.ea1f99af.chunk.js.map \ No newline at end of file diff --git a/static/js/5112.ea1f99af.chunk.js.map b/static/js/5112.ea1f99af.chunk.js.map new file mode 100644 index 000000000..43fc81844 --- /dev/null +++ b/static/js/5112.ea1f99af.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5112.ea1f99af.chunk.js","mappings":"yHAAA,oP","sources":["../../node_modules/code-example/txt/sample.fsharp.txt"],"sourcesContent":["export default \"(* Sample F# application *)\\n[]\\nlet main argv = \\n printfn \\\"%A\\\" argv\\n System.Console.WriteLine(\\\"Hello from F#\\\")\\n 0 // return an integer exit code\\n\\n//-------------------------------------------------------- \\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5173.733c45bc.chunk.js b/static/js/5173.733c45bc.chunk.js new file mode 100644 index 000000000..d82b4cbf0 --- /dev/null +++ b/static/js/5173.733c45bc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5173],{45173:(e,t,r)=>{r.r(t),r.d(t,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Material Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material)\n\nThis package implements the [Material](https://material.io/tools/color/) Dark theme for the CodeMirror code editor.\n\n\n \"codemirror-theme-material\"\n\n\n\n \"codemirror-theme-material\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-material --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { material } from '@uiw/codemirror-theme-material';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [material, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { materialDark, materialDarkInit, materialLight, materialLightInit } from '@uiw/codemirror-theme-material';\n\n// materialInit === materialDarkInit\n// material === materialDark\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsMaterial: CreateThemeOptions['settings'];\nexport declare const defaultSettingsMaterialDark: import('@uiw/codemirror-themes').Settings;\nexport declare const materialInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const materialDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const materialDark: import('@codemirror/state').Extension;\nexport declare const material: import('@codemirror/state').Extension;\nexport declare const defaultSettingsMaterialLight: CreateThemeOptions['settings'];\nexport declare const materialLightInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const materialLight: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { material } from '@uiw/codemirror-theme-material';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { material } from '@uiw/codemirror-theme-material';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [material, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=5173.733c45bc.chunk.js.map \ No newline at end of file diff --git a/static/js/5173.733c45bc.chunk.js.map b/static/js/5173.733c45bc.chunk.js.map new file mode 100644 index 000000000..0e3bc86b4 --- /dev/null +++ b/static/js/5173.733c45bc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5173.733c45bc.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,i4HACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/material/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Material Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-material.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-material)\\n\\nThis package implements the [Material](https://material.io/tools/color/) Dark theme for the CodeMirror code editor.\\n\\n\\n \\\"codemirror-theme-material\\\"\\n\\n\\n\\n \\\"codemirror-theme-material\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-material --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { material } from '@uiw/codemirror-theme-material';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [material, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { materialDark, materialDarkInit, materialLight, materialLightInit } from '@uiw/codemirror-theme-material';\\n\\n// materialInit === materialDarkInit\\n// material === materialDark\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsMaterial: CreateThemeOptions['settings'];\\nexport declare const defaultSettingsMaterialDark: import('@uiw/codemirror-themes').Settings;\\nexport declare const materialInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const materialDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const materialDark: import('@codemirror/state').Extension;\\nexport declare const material: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsMaterialLight: CreateThemeOptions['settings'];\\nexport declare const materialLightInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const materialLight: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { material } from '@uiw/codemirror-theme-material';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { material } from '@uiw/codemirror-theme-material';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [material, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/518.1bb7b5ac.chunk.js b/static/js/518.1bb7b5ac.chunk.js new file mode 100644 index 000000000..6b32e4cea --- /dev/null +++ b/static/js/518.1bb7b5ac.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[518],{30518:(e,n,s)=>{s.r(n),s.d(n,{default:()=>t});const t="#-------------------------------------------------------------------------\n# Copyright (c) Microsoft. All rights reserved.\n#--------------------------------------------------------------------------\n\nmodule Azure\n module Blob\n class Blob\n \n def initialize\n @properties = {}\n @metadata = {}\n yield self if block_given?\n end\n\n attr_accessor :name\n attr_accessor :snapshot\n attr_accessor :properties\n attr_accessor :metadata\n end\n end\nend"}}]); +//# sourceMappingURL=518.1bb7b5ac.chunk.js.map \ No newline at end of file diff --git a/static/js/518.1bb7b5ac.chunk.js.map b/static/js/518.1bb7b5ac.chunk.js.map new file mode 100644 index 000000000..dbac55826 --- /dev/null +++ b/static/js/518.1bb7b5ac.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/518.1bb7b5ac.chunk.js","mappings":"wHAAA,ihB","sources":["../../node_modules/code-example/txt/sample.ruby.txt"],"sourcesContent":["export default \"#-------------------------------------------------------------------------\\n# Copyright (c) Microsoft. All rights reserved.\\n#--------------------------------------------------------------------------\\n\\nmodule Azure\\n module Blob\\n class Blob\\n \\n def initialize\\n @properties = {}\\n @metadata = {}\\n yield self if block_given?\\n end\\n\\n attr_accessor :name\\n attr_accessor :snapshot\\n attr_accessor :properties\\n attr_accessor :metadata\\n end\\n end\\nend\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5225.afcaa648.chunk.js b/static/js/5225.afcaa648.chunk.js new file mode 100644 index 000000000..c1b72073c --- /dev/null +++ b/static/js/5225.afcaa648.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5225],{75225:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a='# GraphQL Schema Definition Language\n\n"""\nColor value\n"""\nscalar Color\n\n"""\nNode interface\n\n- allows (re)fetch arbitrary entity only by ID\n- allows client side cache normalization\n\nSee [Relay Global Object Identification Specification](https://facebook.github.io/relay/graphql/objectidentification.htm)\n"""\ninterface Node {\n """\n Globally unique identifier,\n typically `${__typename}:${dbId}`\n may be encoded in *base64*\n """\n id: ID!\n}\n\n"""\nA character in the Star Wars Trilogy\n"""\ninterface Character {\n """\n The id of the character.\n """\n id: ID!\n\n """\n The name of the character.\n """\n name: String\n\n """\n The friends of the character, or an empty list if they have none.\n """\n friends: [Character]\n\n """\n Which movies they appear in\n """\n appearsIn: [Episode]\n\n """\n All secrets about their past\n """\n secretBackstory: String\n}\n\n"""\nA mechanical creature in the Star Wars universe.\n"""\ntype Droid implements Character {\n """\n The id of the droid.\n """\n id: ID!\n\n """\n The name of the droid.\n """\n name: String\n\n """\n The friends of the droid, or an empty list if they have none.\n """\n friends: [Character]\n\n """\n Which movies they appear in.\n """\n appearsIn: [Episode]\n\n """\n Construction date and the name of the designer.\n """\n secretBackstory: String\n\n """\n The primary function of the droid.\n """\n primaryFunction: String\n\n """\n Chase color of the droid.\n """\n color: Color\n}\n\n# One of the films in the Star Wars Trilogy\nenum Episode {\n """\n Released in 1977.\n """\n NEWHOPE\n\n """\n Released in 1980.\n """\n EMPIRE\n\n """\n Released in 1983.\n """\n JEDI\n}\n\n"""\nA humanoid creature in the Star Wars universe.\n"""\ntype Human implements Character {\n """\n The id of the human.\n """\n id: ID!\n\n """\n The name of the human.\n """\n name: String\n\n """\n The friends of the human, or an empty list if they have none.\n """\n friends: [Character]\n\n """\n Which movies they appear in.\n """\n appearsIn: [Episode]\n\n """\n The home planet of the human, or null if unknown.\n """\n homePlanet: String\n\n """\n Where are they from and how they came to be who they are.\n """\n secretBackstory: String\n}\n\nenum LengthUnit {\n METER\n FEET\n}\n\ntype Starship {\n id: ID!\n name: String!\n length(unit: LengthUnit = METER): Float\n}\n\nunion SearchResult = Human | Droid | Starship\n\ninput SearchInput {\n name: String\n episode: Episode\n}\n\n"""\nRoot Query\n"""\ntype Query {\n """\n Return the hero by episode.\n """\n hero(\n """\n If omitted, returns the hero of the whole saga. If provided, returns the hero of that particular episode.\n """\n episode: Episode\n ): Character\n\n """\n Return the Human by ID.\n """\n human(\n """\n id of the human\n """\n id: ID!\n ): Human\n\n """\n Return the Droid by ID.\n """\n droid(\n """\n id of the droid\n """\n id: ID!\n ): Droid\n\n """\n Search everything by name\n\n __NOTE__: You should use Relay pagination\n """\n search(search: SearchInput!): [SearchResult]\n @deprecated(reason: "`search` will be replaced.")\n}\n\n"""\nRoot Mutation\n"""\ntype Mutation {\n """\n Save the favorite episode.\n """\n favorite(\n """\n Favorite episode.\n """\n episode: Episode!\n ): Episode\n}\n\n"""\nSubscriptions \u2014 live events\n"""\ntype Subscription {\n """\n Message\n """\n message: String\n}\n\nextend type Query {\n """\n Dummy query for highlighting test\n """\n dummy(\n int: Int = 123\n float: Float = 123.456\n str: String = "Hello World!"\n boolDefaultTrue: Boolean = true\n boolDefaultFalse: Boolean = false\n id: ID\n search: SearchInput = null\n ): Boolean\n}\n\nschema {\n query: Query\n mutation: Mutation\n subscription: Subscription\n}\n\n# GraphQL Query Language\n\nquery dummyQuery($int: Int) {\n dummy(int: $int)\n}\n\nmutation favoriteEpisode($episode: Episode) {\n favorite(episode: $episode)\n}\n'}}]); +//# sourceMappingURL=5225.afcaa648.chunk.js.map \ No newline at end of file diff --git a/static/js/5225.afcaa648.chunk.js.map b/static/js/5225.afcaa648.chunk.js.map new file mode 100644 index 000000000..f96d301ae --- /dev/null +++ b/static/js/5225.afcaa648.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5225.afcaa648.chunk.js","mappings":"yHAAA,4gI","sources":["../../node_modules/code-example/txt/sample.graphql.txt"],"sourcesContent":["export default \"# GraphQL Schema Definition Language\\n\\n\\\"\\\"\\\"\\nColor value\\n\\\"\\\"\\\"\\nscalar Color\\n\\n\\\"\\\"\\\"\\nNode interface\\n\\n- allows (re)fetch arbitrary entity only by ID\\n- allows client side cache normalization\\n\\nSee [Relay Global Object Identification Specification](https://facebook.github.io/relay/graphql/objectidentification.htm)\\n\\\"\\\"\\\"\\ninterface Node {\\n \\\"\\\"\\\"\\n Globally unique identifier,\\n typically `${__typename}:${dbId}`\\n may be encoded in *base64*\\n \\\"\\\"\\\"\\n id: ID!\\n}\\n\\n\\\"\\\"\\\"\\nA character in the Star Wars Trilogy\\n\\\"\\\"\\\"\\ninterface Character {\\n \\\"\\\"\\\"\\n The id of the character.\\n \\\"\\\"\\\"\\n id: ID!\\n\\n \\\"\\\"\\\"\\n The name of the character.\\n \\\"\\\"\\\"\\n name: String\\n\\n \\\"\\\"\\\"\\n The friends of the character, or an empty list if they have none.\\n \\\"\\\"\\\"\\n friends: [Character]\\n\\n \\\"\\\"\\\"\\n Which movies they appear in\\n \\\"\\\"\\\"\\n appearsIn: [Episode]\\n\\n \\\"\\\"\\\"\\n All secrets about their past\\n \\\"\\\"\\\"\\n secretBackstory: String\\n}\\n\\n\\\"\\\"\\\"\\nA mechanical creature in the Star Wars universe.\\n\\\"\\\"\\\"\\ntype Droid implements Character {\\n \\\"\\\"\\\"\\n The id of the droid.\\n \\\"\\\"\\\"\\n id: ID!\\n\\n \\\"\\\"\\\"\\n The name of the droid.\\n \\\"\\\"\\\"\\n name: String\\n\\n \\\"\\\"\\\"\\n The friends of the droid, or an empty list if they have none.\\n \\\"\\\"\\\"\\n friends: [Character]\\n\\n \\\"\\\"\\\"\\n Which movies they appear in.\\n \\\"\\\"\\\"\\n appearsIn: [Episode]\\n\\n \\\"\\\"\\\"\\n Construction date and the name of the designer.\\n \\\"\\\"\\\"\\n secretBackstory: String\\n\\n \\\"\\\"\\\"\\n The primary function of the droid.\\n \\\"\\\"\\\"\\n primaryFunction: String\\n\\n \\\"\\\"\\\"\\n Chase color of the droid.\\n \\\"\\\"\\\"\\n color: Color\\n}\\n\\n# One of the films in the Star Wars Trilogy\\nenum Episode {\\n \\\"\\\"\\\"\\n Released in 1977.\\n \\\"\\\"\\\"\\n NEWHOPE\\n\\n \\\"\\\"\\\"\\n Released in 1980.\\n \\\"\\\"\\\"\\n EMPIRE\\n\\n \\\"\\\"\\\"\\n Released in 1983.\\n \\\"\\\"\\\"\\n JEDI\\n}\\n\\n\\\"\\\"\\\"\\nA humanoid creature in the Star Wars universe.\\n\\\"\\\"\\\"\\ntype Human implements Character {\\n \\\"\\\"\\\"\\n The id of the human.\\n \\\"\\\"\\\"\\n id: ID!\\n\\n \\\"\\\"\\\"\\n The name of the human.\\n \\\"\\\"\\\"\\n name: String\\n\\n \\\"\\\"\\\"\\n The friends of the human, or an empty list if they have none.\\n \\\"\\\"\\\"\\n friends: [Character]\\n\\n \\\"\\\"\\\"\\n Which movies they appear in.\\n \\\"\\\"\\\"\\n appearsIn: [Episode]\\n\\n \\\"\\\"\\\"\\n The home planet of the human, or null if unknown.\\n \\\"\\\"\\\"\\n homePlanet: String\\n\\n \\\"\\\"\\\"\\n Where are they from and how they came to be who they are.\\n \\\"\\\"\\\"\\n secretBackstory: String\\n}\\n\\nenum LengthUnit {\\n METER\\n FEET\\n}\\n\\ntype Starship {\\n id: ID!\\n name: String!\\n length(unit: LengthUnit = METER): Float\\n}\\n\\nunion SearchResult = Human | Droid | Starship\\n\\ninput SearchInput {\\n name: String\\n episode: Episode\\n}\\n\\n\\\"\\\"\\\"\\nRoot Query\\n\\\"\\\"\\\"\\ntype Query {\\n \\\"\\\"\\\"\\n Return the hero by episode.\\n \\\"\\\"\\\"\\n hero(\\n \\\"\\\"\\\"\\n If omitted, returns the hero of the whole saga. If provided, returns the hero of that particular episode.\\n \\\"\\\"\\\"\\n episode: Episode\\n ): Character\\n\\n \\\"\\\"\\\"\\n Return the Human by ID.\\n \\\"\\\"\\\"\\n human(\\n \\\"\\\"\\\"\\n id of the human\\n \\\"\\\"\\\"\\n id: ID!\\n ): Human\\n\\n \\\"\\\"\\\"\\n Return the Droid by ID.\\n \\\"\\\"\\\"\\n droid(\\n \\\"\\\"\\\"\\n id of the droid\\n \\\"\\\"\\\"\\n id: ID!\\n ): Droid\\n\\n \\\"\\\"\\\"\\n Search everything by name\\n\\n __NOTE__: You should use Relay pagination\\n \\\"\\\"\\\"\\n search(search: SearchInput!): [SearchResult]\\n @deprecated(reason: \\\"`search` will be replaced.\\\")\\n}\\n\\n\\\"\\\"\\\"\\nRoot Mutation\\n\\\"\\\"\\\"\\ntype Mutation {\\n \\\"\\\"\\\"\\n Save the favorite episode.\\n \\\"\\\"\\\"\\n favorite(\\n \\\"\\\"\\\"\\n Favorite episode.\\n \\\"\\\"\\\"\\n episode: Episode!\\n ): Episode\\n}\\n\\n\\\"\\\"\\\"\\nSubscriptions — live events\\n\\\"\\\"\\\"\\ntype Subscription {\\n \\\"\\\"\\\"\\n Message\\n \\\"\\\"\\\"\\n message: String\\n}\\n\\nextend type Query {\\n \\\"\\\"\\\"\\n Dummy query for highlighting test\\n \\\"\\\"\\\"\\n dummy(\\n int: Int = 123\\n float: Float = 123.456\\n str: String = \\\"Hello World!\\\"\\n boolDefaultTrue: Boolean = true\\n boolDefaultFalse: Boolean = false\\n id: ID\\n search: SearchInput = null\\n ): Boolean\\n}\\n\\nschema {\\n query: Query\\n mutation: Mutation\\n subscription: Subscription\\n}\\n\\n# GraphQL Query Language\\n\\nquery dummyQuery($int: Int) {\\n dummy(int: $int)\\n}\\n\\nmutation favoriteEpisode($episode: Episode) {\\n favorite(episode: $episode)\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5268.e45b9d3c.chunk.js b/static/js/5268.e45b9d3c.chunk.js new file mode 100644 index 000000000..98b26e4f3 --- /dev/null +++ b/static/js/5268.e45b9d3c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5268],{5268:(o,n,e)=>{e.r(n),e.d(n,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Monokai Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai)\n\nMonokai theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-monokai/themes/monokai-color-theme.json).\n\n\n \"codemirror-theme-monokai\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-monokai --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { monokai } from '@uiw/codemirror-theme-monokai';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [monokai, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { monokai, monokaiInit } from '@uiw/codemirror-theme-monokai';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const monokaiInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const monokai: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { monokai } from '@uiw/codemirror-theme-monokai';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { monokai } from '@uiw/codemirror-theme-monokai';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [monokai, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=5268.e45b9d3c.chunk.js.map \ No newline at end of file diff --git a/static/js/5268.e45b9d3c.chunk.js.map b/static/js/5268.e45b9d3c.chunk.js.map new file mode 100644 index 000000000..15c4ecded --- /dev/null +++ b/static/js/5268.e45b9d3c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5268.e45b9d3c.chunk.js","mappings":"wHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,ijGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/monokai/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Monokai Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai)\\n\\nMonokai theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-monokai/themes/monokai-color-theme.json).\\n\\n\\n \\\"codemirror-theme-monokai\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-monokai --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { monokai } from '@uiw/codemirror-theme-monokai';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [monokai, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { monokai, monokaiInit } from '@uiw/codemirror-theme-monokai';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const monokaiInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const monokai: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { monokai } from '@uiw/codemirror-theme-monokai';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { monokai } from '@uiw/codemirror-theme-monokai';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [monokai, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5465.bf5d2826.chunk.js b/static/js/5465.bf5d2826.chunk.js new file mode 100644 index 000000000..c87366b1e --- /dev/null +++ b/static/js/5465.bf5d2826.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5465],{35465:(o,r,e)=>{e.r(r),e.d(r,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Load languages Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-langs.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs)\n\nLoad languages Extensions for CodeMirror6.\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-langs --save\n```\n\n```jsx\nimport { loadLanguage, langNames, langs } from '@uiw/codemirror-extensions-langs';\n\nloadLanguage('tsx');\n\nlangs.tsx();\n\nconsole.log('langNames:', langNames); // => \"jsx\" | \"typescript\" | \"javascript\" | \"tsx\"\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\n\nfunction App() {\n return ;\n}\nexport default App;\n```\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { loadLanguage } from '@uiw/codemirror-extensions-langs';\n\nfunction App() {\n return ;\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { loadLanguage, langs } from '@uiw/codemirror-extensions-langs';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [langs.jsx()],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Support Language\n\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { StreamLanguage } from '@codemirror/language';\nimport { go } from '@codemirror/legacy-modes/mode/go';\n\nconst goLang = `package main\nimport \"fmt\"\n\nfunc main() {\n fmt.Println(\"Hello, \u4e16\u754c\")\n}`;\n\nexport default function App() {\n return ;\n}\n```\n\n- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)\n- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)\n- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)\n- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)\n- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)\n- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)\n- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)\n- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)\n- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)\n- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)\n- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)\n- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)\n- ~~`@codemirror/legacy-modes/mode/css`~~ => [`@codemirror/lang-less`](https://www.npmjs.com/package/@codemirror/lang-less)\n- ~~`@codemirror/legacy-modes/mode/sass`~~ => [`@codemirror/lang-sass`](https://www.npmjs.com/package/@codemirror/lang-sass)\n- ~~`@codemirror/legacy-modes/mode/clojure`~~ => [`@nextjournal/lang-clojure`](https://www.npmjs.com/package/@nextjournal/lang-clojure)\n- ~~`@codemirror/legacy-modes/mode/clike`~~ => [`@replit/codemirror-lang-csharp`](https://www.npmjs.com/package/@replit/codemirror-lang-csharp)\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=5465.bf5d2826.chunk.js.map \ No newline at end of file diff --git a/static/js/5465.bf5d2826.chunk.js.map b/static/js/5465.bf5d2826.chunk.js.map new file mode 100644 index 000000000..7f3a02e09 --- /dev/null +++ b/static/js/5465.bf5d2826.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5465.bf5d2826.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,yuJACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/langs/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Load languages Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-langs.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-langs)\\n\\nLoad languages Extensions for CodeMirror6.\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-langs --save\\n```\\n\\n```jsx\\nimport { loadLanguage, langNames, langs } from '@uiw/codemirror-extensions-langs';\\n\\nloadLanguage('tsx');\\n\\nlangs.tsx();\\n\\nconsole.log('langNames:', langNames); // => \\\"jsx\\\" | \\\"typescript\\\" | \\\"javascript\\\" | \\\"tsx\\\"\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { langs } from '@uiw/codemirror-extensions-langs';\\n\\nfunction App() {\\n return ;\\n}\\nexport default App;\\n```\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { loadLanguage } from '@uiw/codemirror-extensions-langs';\\n\\nfunction App() {\\n return ;\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { loadLanguage, langs } from '@uiw/codemirror-extensions-langs';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [langs.jsx()],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Support Language\\n\\n[![Open in CodeSandbox](https://img.shields.io/badge/Open%20in-CodeSandbox-blue?logo=codesandbox)](https://codesandbox.io/embed/react-codemirror-example-codemirror-6-language-rz4rh?fontsize=14&hidenavigation=1&theme=dark)\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { StreamLanguage } from '@codemirror/language';\\nimport { go } from '@codemirror/legacy-modes/mode/go';\\n\\nconst goLang = `package main\\nimport \\\"fmt\\\"\\n\\nfunc main() {\\n fmt.Println(\\\"Hello, 世界\\\")\\n}`;\\n\\nexport default function App() {\\n return ;\\n}\\n```\\n\\n- ~~`@codemirror/legacy-modes/mode/cpp`~~ => [`@codemirror/lang-cpp`](https://www.npmjs.com/package/@codemirror/lang-cpp)\\n- ~~`@codemirror/legacy-modes/mode/html`~~ => [`@codemirror/lang-html`](https://www.npmjs.com/package/@codemirror/lang-html)\\n- ~~`@codemirror/legacy-modes/mode/java`~~ => [`@codemirror/lang-java`](https://www.npmjs.com/package/@codemirror/lang-java)\\n- ~~`@codemirror/legacy-modes/mode/javascript`~~ => [`@codemirror/lang-javascript`](https://www.npmjs.com/package/@codemirror/lang-javascript)\\n- ~~`@codemirror/legacy-modes/mode/json`~~ => [`@codemirror/lang-json`](https://www.npmjs.com/package/@codemirror/lang-json)\\n- ~~`@codemirror/legacy-modes/mode/lezer`~~ => [`@codemirror/lang-lezer`](https://www.npmjs.com/package/@codemirror/lang-lezer)\\n- ~~`@codemirror/legacy-modes/mode/markdown`~~ => [`@codemirror/lang-markdown`](https://www.npmjs.com/package/@codemirror/lang-markdown)\\n- ~~`@codemirror/legacy-modes/mode/php`~~ => [`@codemirror/lang-php`](https://www.npmjs.com/package/@codemirror/lang-php)\\n- ~~`@codemirror/legacy-modes/mode/python`~~ => [`@codemirror/lang-python`](https://www.npmjs.com/package/@codemirror/lang-python)\\n- ~~`@codemirror/legacy-modes/mode/rust`~~ => [`@codemirror/lang-rust`](https://www.npmjs.com/package/@codemirror/lang-rust)\\n- ~~`@codemirror/legacy-modes/mode/sql`~~ => [`@codemirror/lang-sql`](https://www.npmjs.com/package/@codemirror/lang-sql)\\n- ~~`@codemirror/legacy-modes/mode/xml`~~ => [`@codemirror/lang-xml`](https://www.npmjs.com/package/@codemirror/lang-xml)\\n- ~~`@codemirror/legacy-modes/mode/css`~~ => [`@codemirror/lang-less`](https://www.npmjs.com/package/@codemirror/lang-less)\\n- ~~`@codemirror/legacy-modes/mode/sass`~~ => [`@codemirror/lang-sass`](https://www.npmjs.com/package/@codemirror/lang-sass)\\n- ~~`@codemirror/legacy-modes/mode/clojure`~~ => [`@nextjournal/lang-clojure`](https://www.npmjs.com/package/@nextjournal/lang-clojure)\\n- ~~`@codemirror/legacy-modes/mode/clike`~~ => [`@replit/codemirror-lang-csharp`](https://www.npmjs.com/package/@replit/codemirror-lang-csharp)\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5545.a99e3d54.chunk.js b/static/js/5545.a99e3d54.chunk.js new file mode 100644 index 000000000..2a50baf19 --- /dev/null +++ b/static/js/5545.a99e3d54.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5545],{35545:(n,e,t)=>{t.r(e),t.d(e,{default:()=>d});const d="// File : tb_top.sv\nmodule tb_top ();\n\n reg clk;\n reg resetn;\n reg d;\n wire q;\n\n // Instantiate the design\n d_ff d_ff0 ( .clk (clk),\n .resetn (resetn),\n .d (d),\n .q (q));\n\n // Create a clock\n always #10 clk <= ~clk;\n\n initial begin\n resetn <= 0;\n d <= 0;\n\n #10 resetn <= 1;\n #5 d <= 1;\n #8 d <= 0;\n #2 d <= 1;\n #10 d <= 0;\n end\nendmodule\n"}}]); +//# sourceMappingURL=5545.a99e3d54.chunk.js.map \ No newline at end of file diff --git a/static/js/5545.a99e3d54.chunk.js.map b/static/js/5545.a99e3d54.chunk.js.map new file mode 100644 index 000000000..2ab91825c --- /dev/null +++ b/static/js/5545.a99e3d54.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5545.a99e3d54.chunk.js","mappings":"yHAAA,sd","sources":["../../node_modules/code-example/txt/sample.systemverilog.txt"],"sourcesContent":["export default \"// File : tb_top.sv\\nmodule tb_top ();\\n\\n reg clk;\\n reg resetn;\\n reg d;\\n wire q;\\n\\n // Instantiate the design\\n d_ff d_ff0 ( .clk (clk),\\n .resetn (resetn),\\n .d (d),\\n .q (q));\\n\\n // Create a clock\\n always #10 clk <= ~clk;\\n\\n initial begin\\n resetn <= 0;\\n d <= 0;\\n\\n #10 resetn <= 1;\\n #5 d <= 1;\\n #8 d <= 0;\\n #2 d <= 1;\\n #10 d <= 0;\\n end\\nendmodule\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/563.aea1e155.chunk.js b/static/js/563.aea1e155.chunk.js new file mode 100644 index 000000000..c45e00e11 --- /dev/null +++ b/static/js/563.aea1e155.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[563],{80563:(n,e,i)=>{i.r(e),i.d(e,{default:()=>s});const s='/*\n* C# Program to Display All the Prime Numbers Between 1 to 100\n*/\n\nusing System;\nusing System.Collections.Generic;\nusing System.Linq;\nusing System.Text;\n\nnamespace VS\n{\n class Program\n {\n static void Main(string[] args)\n {\n bool isPrime = true;\n Console.WriteLine("Prime Numbers : ");\n for (int i = 2; i <= 100; i++)\n {\n for (int j = 2; j <= 100; j++)\n {\n if (i != j && i % j == 0)\n {\n isPrime = false;\n break;\n }\n }\n \n if (isPrime)\n {\n Console.Write("\\t" +i);\n }\n isPrime = true;\n }\n Console.ReadKey();\n }\n }\n}\n'}}]); +//# sourceMappingURL=563.aea1e155.chunk.js.map \ No newline at end of file diff --git a/static/js/563.aea1e155.chunk.js.map b/static/js/563.aea1e155.chunk.js.map new file mode 100644 index 000000000..91950b1fb --- /dev/null +++ b/static/js/563.aea1e155.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/563.aea1e155.chunk.js","mappings":"wHAAA,gtB","sources":["../../node_modules/code-example/txt/sample.csharp.txt"],"sourcesContent":["export default \"/*\\n* C# Program to Display All the Prime Numbers Between 1 to 100\\n*/\\n\\nusing System;\\nusing System.Collections.Generic;\\nusing System.Linq;\\nusing System.Text;\\n\\nnamespace VS\\n{\\n class Program\\n {\\n static void Main(string[] args)\\n {\\n bool isPrime = true;\\n Console.WriteLine(\\\"Prime Numbers : \\\");\\n for (int i = 2; i <= 100; i++)\\n {\\n for (int j = 2; j <= 100; j++)\\n {\\n if (i != j && i % j == 0)\\n {\\n isPrime = false;\\n break;\\n }\\n }\\n \\n if (isPrime)\\n {\\n Console.Write(\\\"\\\\t\\\" +i);\\n }\\n isPrime = true;\\n }\\n Console.ReadKey();\\n }\\n }\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5823.a371a8aa.chunk.js b/static/js/5823.a371a8aa.chunk.js new file mode 100644 index 000000000..d5acc9067 --- /dev/null +++ b/static/js/5823.a371a8aa.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5823],{95823:(n,e,r)=>{r.r(e),r.d(e,{default:()=>t});const t=";;; make-matrix creates a matrix (a vector of vectors).\n(define make-matrix\n (lambda (rows columns)\n (do ((m (make-vector rows))\n (i 0 (+ i 1)))\n ((= i rows) m)\n (vector-set! m i (make-vector columns)))))\n\n;;; matrix? checks to see if its argument is a matrix.\n;;; It isn't foolproof, but it's generally good enough.\n(define matrix?\n (lambda (x)\n (and (vector? x)\n (> (vector-length x) 0)\n (vector? (vector-ref x 0)))))\n\n;; matrix-rows returns the number of rows in a matrix.\n(define matrix-rows\n (lambda (x)\n (vector-length x)))\n\n;; matrix-columns returns the number of columns in a matrix.\n(define matrix-columns\n (lambda (x)\n (vector-length (vector-ref x 0))))\n\n;;; matrix-ref returns the jth element of the ith row.\n(define matrix-ref\n (lambda (m i j)\n (vector-ref (vector-ref m i) j)))\n\n;;; matrix-set! changes the jth element of the ith row.\n(define matrix-set!\n (lambda (m i j x)\n (vector-set! (vector-ref m i) j x)))\n\n;;; mul is the generic matrix/scalar multiplication procedure\n(define mul\n (lambda (x y)\n ;; mat-sca-mul multiplies a matrix by a scalar.\n (define mat-sca-mul\n (lambda (m x)\n (let* ((nr (matrix-rows m))\n (nc (matrix-columns m))\n (r (make-matrix nr nc)))\n (do ((i 0 (+ i 1)))\n ((= i nr) r)\n (do ((j 0 (+ j 1)))\n ((= j nc))\n (matrix-set! r i j\n (* x (matrix-ref m i j))))))))\n\n ;; mat-mat-mul multiplies one matrix by another, after verifying\n ;; that the first matrix has as many columns as the second\n ;; matrix has rows.\n (define mat-mat-mul\n (lambda (m1 m2)\n (let* ((nr1 (matrix-rows m1))\n (nr2 (matrix-rows m2))\n (nc2 (matrix-columns m2))\n (r (make-matrix nr1 nc2)))\n (if (not (= (matrix-columns m1) nr2))\n (match-error m1 m2))\n (do ((i 0 (+ i 1)))\n ((= i nr1) r)\n (do ((j 0 (+ j 1)))\n ((= j nc2))\n (do ((k 0 (+ k 1))\n (a 0\n (+ a\n (* (matrix-ref m1 i k)\n (matrix-ref m2 k j)))))\n ((= k nr2)\n (matrix-set! r i j a))))))))\n\n ;; type-error is called to complain when mul receives an invalid\n ;; type of argument.\n (define type-error\n (lambda (what)\n (error 'mul\n \"~s is not a number or matrix\"\n what)))\n\n ;; match-error is called to complain when mul receives a pair of\n ;; incompatible arguments.\n (define match-error\n (lambda (what1 what2)\n (error 'mul\n \"~s and ~s are incompatible operands\"\n what1\n what2)))\n\n ;; body of mul; dispatch based on input types\n (cond\n ((number? x)\n (cond\n ((number? y) (* x y))\n ((matrix? y) (mat-sca-mul y x))\n (else (type-error y))))\n ((matrix? x)\n (cond\n ((number? y) (mat-sca-mul x y))\n ((matrix? y) (mat-mat-mul x y))\n (else (type-error y))))\n (else (type-error x)))))"}}]); +//# sourceMappingURL=5823.a371a8aa.chunk.js.map \ No newline at end of file diff --git a/static/js/5823.a371a8aa.chunk.js.map b/static/js/5823.a371a8aa.chunk.js.map new file mode 100644 index 000000000..1d7483be6 --- /dev/null +++ b/static/js/5823.a371a8aa.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5823.a371a8aa.chunk.js","mappings":"yHAAA,81G","sources":["../../node_modules/code-example/txt/sample.scheme.txt"],"sourcesContent":["export default \";;; make-matrix creates a matrix (a vector of vectors).\\n(define make-matrix\\n (lambda (rows columns)\\n (do ((m (make-vector rows))\\n (i 0 (+ i 1)))\\n ((= i rows) m)\\n (vector-set! m i (make-vector columns)))))\\n\\n;;; matrix? checks to see if its argument is a matrix.\\n;;; It isn't foolproof, but it's generally good enough.\\n(define matrix?\\n (lambda (x)\\n (and (vector? x)\\n (> (vector-length x) 0)\\n (vector? (vector-ref x 0)))))\\n\\n;; matrix-rows returns the number of rows in a matrix.\\n(define matrix-rows\\n (lambda (x)\\n (vector-length x)))\\n\\n;; matrix-columns returns the number of columns in a matrix.\\n(define matrix-columns\\n (lambda (x)\\n (vector-length (vector-ref x 0))))\\n\\n;;; matrix-ref returns the jth element of the ith row.\\n(define matrix-ref\\n (lambda (m i j)\\n (vector-ref (vector-ref m i) j)))\\n\\n;;; matrix-set! changes the jth element of the ith row.\\n(define matrix-set!\\n (lambda (m i j x)\\n (vector-set! (vector-ref m i) j x)))\\n\\n;;; mul is the generic matrix/scalar multiplication procedure\\n(define mul\\n (lambda (x y)\\n ;; mat-sca-mul multiplies a matrix by a scalar.\\n (define mat-sca-mul\\n (lambda (m x)\\n (let* ((nr (matrix-rows m))\\n (nc (matrix-columns m))\\n (r (make-matrix nr nc)))\\n (do ((i 0 (+ i 1)))\\n ((= i nr) r)\\n (do ((j 0 (+ j 1)))\\n ((= j nc))\\n (matrix-set! r i j\\n (* x (matrix-ref m i j))))))))\\n\\n ;; mat-mat-mul multiplies one matrix by another, after verifying\\n ;; that the first matrix has as many columns as the second\\n ;; matrix has rows.\\n (define mat-mat-mul\\n (lambda (m1 m2)\\n (let* ((nr1 (matrix-rows m1))\\n (nr2 (matrix-rows m2))\\n (nc2 (matrix-columns m2))\\n (r (make-matrix nr1 nc2)))\\n (if (not (= (matrix-columns m1) nr2))\\n (match-error m1 m2))\\n (do ((i 0 (+ i 1)))\\n ((= i nr1) r)\\n (do ((j 0 (+ j 1)))\\n ((= j nc2))\\n (do ((k 0 (+ k 1))\\n (a 0\\n (+ a\\n (* (matrix-ref m1 i k)\\n (matrix-ref m2 k j)))))\\n ((= k nr2)\\n (matrix-set! r i j a))))))))\\n\\n ;; type-error is called to complain when mul receives an invalid\\n ;; type of argument.\\n (define type-error\\n (lambda (what)\\n (error 'mul\\n \\\"~s is not a number or matrix\\\"\\n what)))\\n\\n ;; match-error is called to complain when mul receives a pair of\\n ;; incompatible arguments.\\n (define match-error\\n (lambda (what1 what2)\\n (error 'mul\\n \\\"~s and ~s are incompatible operands\\\"\\n what1\\n what2)))\\n\\n ;; body of mul; dispatch based on input types\\n (cond\\n ((number? x)\\n (cond\\n ((number? y) (* x y))\\n ((matrix? y) (mat-sca-mul y x))\\n (else (type-error y))))\\n ((matrix? x)\\n (cond\\n ((number? y) (mat-sca-mul x y))\\n ((matrix? y) (mat-mat-mul x y))\\n (else (type-error y))))\\n (else (type-error x)))))\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/593.3d2337f7.chunk.js b/static/js/593.3d2337f7.chunk.js new file mode 100644 index 000000000..698585c35 --- /dev/null +++ b/static/js/593.3d2337f7.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[593],{593:(t,o,n)=>{n.r(o),n.d(o,{default:()=>e});const e={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# TokyoNight Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night)\n\n\n \"codemirror-theme-tokyo-night\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-tokyo-night --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tokyoNight, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { tokyoNight, tokyoNightInit } from '@uiw/codemirror-theme-tokyo-night';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsTokyoNight: CreateThemeOptions['settings'];\nexport declare const tokyoNightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const tokyoNight: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tokyoNight, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=593.3d2337f7.chunk.js.map \ No newline at end of file diff --git a/static/js/593.3d2337f7.chunk.js.map b/static/js/593.3d2337f7.chunk.js.map new file mode 100644 index 000000000..8f3fed71e --- /dev/null +++ b/static/js/593.3d2337f7.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/593.3d2337f7.chunk.js","mappings":"sHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,olGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/tokyo-night/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# TokyoNight Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tokyo-night.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tokyo-night)\\n\\n\\n \\\"codemirror-theme-tokyo-night\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-tokyo-night --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tokyoNight, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { tokyoNight, tokyoNightInit } from '@uiw/codemirror-theme-tokyo-night';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsTokyoNight: CreateThemeOptions['settings'];\\nexport declare const tokyoNightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const tokyoNight: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tokyoNight } from '@uiw/codemirror-theme-tokyo-night';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tokyoNight, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/5936.5c13bd99.chunk.js b/static/js/5936.5c13bd99.chunk.js new file mode 100644 index 000000000..1e930c124 --- /dev/null +++ b/static/js/5936.5c13bd99.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[5936],{45936:(n,t,e)=>{e.r(t),e.d(t,{default:()=>c});const c="/* C demo code */\n\n#include \n#include \n#include \n#include \n#include \n#include \n#include \n\ntypedef struct {\n void* arg_socket;\n zmq_msg_t* arg_msg;\n char* arg_string;\n unsigned long arg_len;\n int arg_int, arg_command;\n\n int signal_fd;\n int pad;\n void* context;\n sem_t sem;\n} acl_zmq_context;\n\n#define p(X) (context->arg_##X)\n\nvoid* zmq_thread(void* context_pointer) {\n acl_zmq_context* context = (acl_zmq_context*)context_pointer;\n char ok = 'K', err = 'X';\n int res;\n\n while (1) {\n while ((res = sem_wait(&context->sem)) == EINTR);\n if (res) {write(context->signal_fd, &err, 1); goto cleanup;}\n switch(p(command)) {\n case 0: goto cleanup;\n case 1: p(socket) = zmq_socket(context->context, p(int)); break;\n case 2: p(int) = zmq_close(p(socket)); break;\n case 3: p(int) = zmq_bind(p(socket), p(string)); break;\n case 4: p(int) = zmq_connect(p(socket), p(string)); break;\n case 5: p(int) = zmq_getsockopt(p(socket), p(int), (void*)p(string), &p(len)); break;\n case 6: p(int) = zmq_setsockopt(p(socket), p(int), (void*)p(string), p(len)); break;\n case 7: p(int) = zmq_send(p(socket), p(msg), p(int)); break;\n case 8: p(int) = zmq_recv(p(socket), p(msg), p(int)); break;\n case 9: p(int) = zmq_poll(p(socket), p(int), p(len)); break;\n }\n p(command) = errno;\n write(context->signal_fd, &ok, 1);\n }\n cleanup:\n close(context->signal_fd);\n free(context_pointer);\n return 0;\n}\n\nvoid* zmq_thread_init(void* zmq_context, int signal_fd) {\n acl_zmq_context* context = malloc(sizeof(acl_zmq_context));\n pthread_t thread;\n\n context->context = zmq_context;\n context->signal_fd = signal_fd;\n sem_init(&context->sem, 1, 0);\n pthread_create(&thread, 0, &zmq_thread, context);\n pthread_detach(thread);\n return context;\n}\n"}}]); +//# sourceMappingURL=5936.5c13bd99.chunk.js.map \ No newline at end of file diff --git a/static/js/5936.5c13bd99.chunk.js.map b/static/js/5936.5c13bd99.chunk.js.map new file mode 100644 index 000000000..67b14e63e --- /dev/null +++ b/static/js/5936.5c13bd99.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5936.5c13bd99.chunk.js","mappings":"yHAAA,03D","sources":["../../node_modules/code-example/txt/sample.clike.txt"],"sourcesContent":["export default \"/* C demo code */\\n\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n\\ntypedef struct {\\n void* arg_socket;\\n zmq_msg_t* arg_msg;\\n char* arg_string;\\n unsigned long arg_len;\\n int arg_int, arg_command;\\n\\n int signal_fd;\\n int pad;\\n void* context;\\n sem_t sem;\\n} acl_zmq_context;\\n\\n#define p(X) (context->arg_##X)\\n\\nvoid* zmq_thread(void* context_pointer) {\\n acl_zmq_context* context = (acl_zmq_context*)context_pointer;\\n char ok = 'K', err = 'X';\\n int res;\\n\\n while (1) {\\n while ((res = sem_wait(&context->sem)) == EINTR);\\n if (res) {write(context->signal_fd, &err, 1); goto cleanup;}\\n switch(p(command)) {\\n case 0: goto cleanup;\\n case 1: p(socket) = zmq_socket(context->context, p(int)); break;\\n case 2: p(int) = zmq_close(p(socket)); break;\\n case 3: p(int) = zmq_bind(p(socket), p(string)); break;\\n case 4: p(int) = zmq_connect(p(socket), p(string)); break;\\n case 5: p(int) = zmq_getsockopt(p(socket), p(int), (void*)p(string), &p(len)); break;\\n case 6: p(int) = zmq_setsockopt(p(socket), p(int), (void*)p(string), p(len)); break;\\n case 7: p(int) = zmq_send(p(socket), p(msg), p(int)); break;\\n case 8: p(int) = zmq_recv(p(socket), p(msg), p(int)); break;\\n case 9: p(int) = zmq_poll(p(socket), p(int), p(len)); break;\\n }\\n p(command) = errno;\\n write(context->signal_fd, &ok, 1);\\n }\\n cleanup:\\n close(context->signal_fd);\\n free(context_pointer);\\n return 0;\\n}\\n\\nvoid* zmq_thread_init(void* zmq_context, int signal_fd) {\\n acl_zmq_context* context = malloc(sizeof(acl_zmq_context));\\n pthread_t thread;\\n\\n context->context = zmq_context;\\n context->signal_fd = signal_fd;\\n sem_init(&context->sem, 1, 0);\\n pthread_create(&thread, 0, &zmq_thread, context);\\n pthread_detach(thread);\\n return context;\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6063.549e727a.chunk.js b/static/js/6063.549e727a.chunk.js new file mode 100644 index 000000000..7100f4d44 --- /dev/null +++ b/static/js/6063.549e727a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6063],{6063:(O,Q,X)=>{X.d(Q,{K:()=>T});var e=X(4179),P=X(1345);const a=new e.Lu(((O,Q)=>{for(let X=0,e=O.next;(Q.context&&(e<0||10==e||13==e||47==e&&47==O.peek(X+1))||41==e||125==e)&&O.acceptToken(177),32==e||9==e;)e=O.peek(++X)}),{contextual:!0});let i=new Set([95,184,20,12,17,144,145,142,148,13,53,25]);const $=new e.Aj({start:!1,shift:(O,Q)=>179==Q?O:i.has(Q)}),n=(0,P.pn)({"func interface struct chan map const type var":P._A.definitionKeyword,"import package":P._A.moduleKeyword,"switch for go select return break continue goto fallthrough case if else defer":P._A.controlKeyword,range:P._A.keyword,Bool:P._A.bool,String:P._A.string,Rune:P._A.character,Number:P._A.number,Nil:P._A.null,VariableName:P._A.variableName,DefName:P._A.definition(P._A.variableName),TypeName:P._A.typeName,LabelName:P._A.labelName,FieldName:P._A.propertyName,"FunctionDecl/DefName":P._A.function(P._A.definition(P._A.variableName)),"TypeSpec/DefName":P._A.definition(P._A.typeName),"CallExpr/VariableName":P._A.function(P._A.variableName),LineComment:P._A.lineComment,BlockComment:P._A.blockComment,LogicOp:P._A.logicOperator,ArithOp:P._A.arithmeticOperator,BitOp:P._A.bitwiseOperator,"DerefOp .":P._A.derefOperator,"UpdateOp IncDecOp":P._A.updateOperator,CompareOp:P._A.compareOperator,"= :=":P._A.definitionOperator,"<-":P._A.operator,'~ "*"':P._A.modifier,"; ,":P._A.separator,"... :":P._A.punctuation,"( )":P._A.paren,"[ ]":P._A.squareBracket,"{ }":P._A.brace}),S={__proto__:null,package:10,import:18,true:380,false:380,nil:383,struct:48,func:68,interface:78,chan:94,map:118,make:157,new:159,const:204,type:212,var:224,if:236,else:238,switch:242,case:248,default:250,for:260,range:266,go:270,select:274,return:284,break:288,continue:290,goto:292,fallthrough:296,defer:300},T=e.U1.deserialize({version:14,states:"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuOPQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<nQQO'#FrOOQO,5vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~",goto:"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l",nodeNames:"\u26a0 LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl",maxTerm:218,context:$,nodeProps:[["isolate",-3,2,12,20,""],["group",-18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,"Expr",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,"Statement",-12,23,31,33,38,46,49,50,51,52,56,57,58,"Type"],["openedBy",13,"(",25,"{",53,"["],["closedBy",14,")",26,"}",54,"]"]],propSources:[n],skippedNodes:[0,1,2,153],repeatNodeCount:23,tokenData:":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~",tokenizers:[a,1,2,new e.uC("j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~",25,181)],topRules:{SourceFile:[0,3]},dynamicPrecedences:{19:1,51:-1,55:2,69:-1,108:-1},specialized:[{term:184,get:O=>S[O]||-1}],tokenPrec:5451})}}]); +//# sourceMappingURL=6063.549e727a.chunk.js.map \ No newline at end of file diff --git a/static/js/6063.549e727a.chunk.js.map b/static/js/6063.549e727a.chunk.js.map new file mode 100644 index 000000000..edb4576c5 --- /dev/null +++ b/static/js/6063.549e727a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6063.549e727a.chunk.js","mappings":"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","sources":["../../node_modules/@lezer/go/dist/index.js"],"sourcesContent":["import { ExternalTokenizer, ContextTracker, LRParser, LocalTokenGroup } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst insertedSemi = 177,\n space$1 = 179,\n identifier = 184,\n String = 12,\n closeParen$1 = 13,\n Number = 17,\n Rune = 20,\n closeBrace$1 = 25,\n closeBracket = 53,\n IncDecOp = 95,\n _return = 142,\n _break = 144,\n _continue = 145,\n fallthrough = 148;\n\nconst newline = 10, carriageReturn = 13, space = 32, tab = 9, slash = 47, closeParen = 41, closeBrace = 125;\n\nconst semicolon = new ExternalTokenizer((input, stack) => {\n for (let scan = 0, next = input.next;;) {\n if (stack.context && (next < 0 || next == newline || next == carriageReturn ||\n next == slash && input.peek(scan + 1) == slash) ||\n next == closeParen || next == closeBrace)\n input.acceptToken(insertedSemi);\n if (next != space && next != tab) break\n next = input.peek(++scan);\n }\n}, {contextual: true});\n\nlet trackedTokens = new Set([IncDecOp, identifier, Rune, String, Number,\n _break, _continue, _return, fallthrough,\n closeParen$1, closeBracket, closeBrace$1]);\n\nconst trackTokens = new ContextTracker({\n start: false,\n shift: (context, term) => term == space$1 ? context : trackedTokens.has(term)\n});\n\nconst goHighlighting = styleTags({\n \"func interface struct chan map const type var\": tags.definitionKeyword,\n \"import package\": tags.moduleKeyword,\n \"switch for go select return break continue goto fallthrough case if else defer\": tags.controlKeyword,\n \"range\": tags.keyword,\n Bool: tags.bool,\n String: tags.string,\n Rune: tags.character,\n Number: tags.number,\n Nil: tags.null,\n VariableName: tags.variableName,\n DefName: tags.definition(tags.variableName),\n TypeName: tags.typeName,\n LabelName: tags.labelName,\n FieldName: tags.propertyName,\n \"FunctionDecl/DefName\": tags.function(tags.definition(tags.variableName)),\n \"TypeSpec/DefName\": tags.definition(tags.typeName),\n \"CallExpr/VariableName\": tags.function(tags.variableName),\n LineComment: tags.lineComment,\n BlockComment: tags.blockComment,\n LogicOp: tags.logicOperator,\n ArithOp: tags.arithmeticOperator,\n BitOp: tags.bitwiseOperator,\n \"DerefOp .\": tags.derefOperator,\n \"UpdateOp IncDecOp\": tags.updateOperator,\n CompareOp: tags.compareOperator,\n \"= :=\": tags.definitionOperator,\n \"<-\": tags.operator,\n \"~ \\\"*\\\"\": tags.modifier,\n \"; ,\": tags.separator,\n \"... :\": tags.punctuation,\n \"( )\": tags.paren,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace,\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst spec_identifier = {__proto__:null,package:10, import:18, true:380, false:380, nil:383, struct:48, func:68, interface:78, chan:94, map:118, make:157, new:159, const:204, type:212, var:224, if:236, else:238, switch:242, case:248, default:250, for:260, range:266, go:270, select:274, return:284, break:288, continue:290, goto:292, fallthrough:296, defer:300};\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"!=xO#{QQOOP$SOQOOO&UQTO'#CbO&]QRO'#FlO]QQOOOOQP'#Cn'#CnOOQP'#Co'#CoO&eQQO'#C|O(kQQO'#C{O)]QRO'#GiO+tQQO'#D_OOQP'#Ge'#GeO+{QQO'#GeO.aQTO'#GaO.hQQO'#D`OOQP'#Gm'#GmO.mQRO'#GdO/hQQO'#DgOOQP'#Gd'#GdO/uQQO'#DrO2bQQO'#DsO4QQTO'#GqO,^QTO'#GaO4XQQO'#DxO4^QQO'#D{OOQO'#EQ'#EQOOQO'#ER'#EROOQO'#ES'#ESOOQO'#ET'#ETO4cQQO'#EPO5}QQO'#EPOOQP'#Ga'#GaO6UQQO'#E`O6^QQO'#EcOOQP'#G`'#G`O6cQQO'#EsOOQP'#G_'#G_O&]QRO'#FnOOQO'#Fn'#FnO9QQQO'#G^QOQQOOO&]QROOO9XQQO'#C`O9^QSO'#CdO9lQQO'#C}O9tQQO'#DSO9yQQO'#D[O:kQQO'#CsO:pQQO'#DhO:uQQO'#EeO:}QQO'#EiO;VQQO'#EoO;_QQO'#EuOPQSO7+%hOOQP7+%h7+%hO4cQQO7+%hOOQP1G0Q1G0QO!>^QQO1G0QOOQP1G0U1G0UO!>fQQO1G0UOF|QQO1G0UOOQO,5nAN>nO4cQQOAN>nO!IsQSOAN>nOOQP<nQQO'#FrOOQO,5vAN>vO!LtQQOAN>vP.hQQO'#F|OOQPG25XG25XO!LyQQOG25bO!MOQQO'#FPOOQPG25bG25bO!MZQQOG25bOOQPLD)tLD)tOOQPG24bG24bO!JqQQOLD*|O!9OQQO'#GQO!McQQO,5;kOOQP,5;k,5;kO?tQQO'#FQO!MnQQO'#FQO!MsQQOLD*|OOQP!$'Nh!$'NhOOQO,5VO^!hOh!POr-TOw}O!P-_O!Q-`O!W-^O!]-eO%O!eO%Y!fO~OZ!sO~O^#uO~O!P$xO~On!lO#W%]aV%]a^%]ah%]ar%]aw%]a!P%]a!Q%]a!W%]a!]%]a#T%]a$w%]a%O%]a%Y%]au%]a~O]${O^#QO~OZ#RO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O]$|O!|,WO~PBROj!qOn%QO!QnOi%cP~P*aO!V%WO!|#`O~PBRO!V%YO~OV!}O[oO^YOaoOdoOh!POjcOr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO#Y!RO#^!SO#d!TO#j!UO#m!VO#v!WO#{!XO#}!YO$S!ZO$U![O$V![O$W!]O$Y!^O$[!_O%OQO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~Oi%dX#p%dX#q%dX~PDQOi%]O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-QO!WaO!]!QO!phO!qhO%O+{O%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^%aO%O%_O~O!QnO!a%cO~P*aO!QnOn$mX#T$mX#U$mXV$mX$w$mX!a$mX~P*aOn#TO#T%ea#U%eaV%ea$w%ea!a%ea~O]%fO~PF|OV#ga$w#ga~PDTO[%sO~OZ#rO[#qO]%vO%O#oO~O^!hOh!POn%zOr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO]%[P~O^&OOh!POr!jOw}O!P!OO!Q!kO!WaO!]!QO%Y!fO^%ZXj%ZX~O%O%}O~PKfOjcO^qa]qanqa!Vqa~O^#uO!W&SO~O^!hOh!POr-TOw}O{&WO!P-_O!Q-`O!W-^O!]-eO%O,xO%Y!fO~Oi&^O~PL{O^!hOh!POr!jOw}O!Q!kO!WaO!]!QO%O!eO%Y!fO~O!P#hO~PMwOi&eO%O,yO%Y!fO~O#T&gOV#ZX$w#ZX~P?tO]&kO%O#oO~O^!hOh!POr-TOw}O!P-_O!Q-`O!]-eO%O!eO%Y!fO~O!W&lO#T&mO~P! _O]&qO%O#oO~O#T&sOV#eX$w#eX~P?tO]&vO%O#oO~OjeX~P$XOjcO!|,XO~P2gOn!lO#W&yO#W%]X~O^#VOn#TO!Q#cO!W#SO!|,XO#R#dO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]OV`X#T%eX#U%eX~OZ&zOj$`O$w`X~P!#cOi'OO#p'PO#q'QO~OZ#ROjcO~P!#cO#T'TO#U#iO~O#W'UO~OV'WO!QnO~P*aOV'XO~OjcO~O!|#`OV#za$w#za~PBROi'[O#p']O#q'^O~On#TO!|#`OV%eX$w%eX!a%eX~PBRO!|#`OV$Za$w$Za~PBRO${$rO$|$rO$}'`O~O]${O~O%O!eO]%ZXn%ZX!V%ZX~PKfO!|#`Oi!_Xn!_X!a!`X~PBROi!_Xn!_X!a!`X~O!a'aO~On'bOi%cX~Oi'dO~On'eO!V%bX!a%bX~O!V'gO~O]'jOn'kO!|,YO~PBROn'nO!V'mO!a'oO!|#`O~PBRO!QnO!V'qO!a'rO~P*aO!|#`On$ma#T$ma#U$maV$ma$w$ma!a$ma~PBRO]'sOu'tO~O%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi!|!xi#R!xi#T!xi#U!xi$w!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~O!V!xii!xi!a!xi~P!+YO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi!V!xii!xi!a!xi~O!|!xi~P!-TO!|#`O~P!-TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OV!xiZ!xi^!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%q!xi~O!|#`O!V!xii!xi!a!xi~P!/VO!|#`OV#Pi$w#Pi!a#Pi~PBRO]'uOn'wOu'vO~OZ#rO[#qO]'zO%O#oO~Ou'|O~P?tOn'}O]%[X~O](PO~OZeX^mX^!TXj!TX!W!TX~OjcOV$]i$w$]i~O%`(ZOV%^X$w%^Xn%^X!V%^X~Oi(`O~PL{O[(aO!W!tOVlX$wlX~On(bO~P?tO[(aOVlX$wlX~Oi(hO%O,yO%Y!fO~O!V(iO~O#T(kO~O](nO%O#oO~O[oO^YOaoOdoOh!POr!pOu-bOw}O!P!OO!QnO!V-UO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O+zO~P!4vO](sO%O#oO~O#T(tOV#ea$w#ea~O](xO%O#oO~O#k(yOV#ii$w#ii~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-PO!WaO!]!QO!phO!qhO%O+xO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O^(|O%O%_O~O#p%dP#q%dP~P/uOi)PO#p'PO#q'QO~O!a)RO~O!QnO#y)VO~P*aOV)WO!|#`O~PBROj#wa~P;_OV)WO!QnO~P*aOi)]O#p']O#q'^O~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!QnO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O%O,eO~P!:lO!a)bO~Oj!qO!QnO~P*aOj!qO!QnOi%ca~P*aOn)iOi%ca~O!V%ba!a%ba~P?tOn)lO!V%ba!a%ba~O])nO~O])oO~O!V)pO~O!QnO!V)rO!a)sO~P*aO!V)rO!a)sO!|#`O~PBRO])uOn)vO~O])wOn)xO~O^!hOh!POr-TOu%xOw}O!P-_O!Q-`O!W-^O!]-eO%O,dO%Y!fO~O]%[a~P!>nOn)|O]%[a~O]${O]tXntX~OjcOV$^q$w$^q~On*PO{&WO~P?tOn*SO!V%rX~O!V*UO~OjcOV$]q$w$]q~O%`(ZOV|a$w|an|a!V|a~O[*]OVla$wla~O[*]O!W!tOVla$wla~On*PO{&WO!W*`O^%WXj%WX~P! _OjcO#j!UO~OjcO!|,XO~PBROZ*dO^#VO!W#SO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~O!|#`O~P!BoO#^*eO~P?tO!a*fO~Oj$`O!|,XO~P!BoO#W*hO~Oj#wi~P;_OV*kO!|#`O~PBROn#TO!Q#cO!|#`O!a$QX#T%eX~PBRO#T*lO~O#W*lO~O!a*mO~O!|#`Oi!_in!_i~PBRO!|#`Oi!bXn!bX!a!cX~PBROi!bXn!bX!a!cX~O!a*nO~Oj!qO!QnOi%ci~P*aO!V%bi!a%bi~P?tO!V*qO!a*rO!|#`O~PBRO!V*qO!|#`O~PBRO]*tO~O]*uO~O]*uOu*vO~O]%[i~P!>nO%O!eO!V%ra~On*|O!V%ra~O[+OOVli$wli~O%O+yO~P!4vO#k+QOV#iy$w#iy~O^+RO%O%_O~O]+SO~O!|,XOj#xq~PBROj#wq~P;_O!V+ZO!|#`O~PBRO]+[On+]O~O%O!eO!V%ri~O^#QOn'eO!V%bX~O#^+`O~P?tOj+aO~O^#VO!W#SO!|#`O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[O%q#]O~OZ+cO~P!JvO!|#`O!a$Qi~PBRO!|#`Oi!bin!bi~PBRO!V+dO!|#`O~PBRO]+eO~O]+fO~Oi+iO#p+jO#q+kO~O^+lO%O%_O~Oi+pO#p+jO#q+kO~O!a+rO~O#^+sO~P?tO!a+tO~O]+uO~OZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXVeXneX!QeX#ReX#TeX#UeX$weX~O]eX]!TX!VeXieX!aeX~P!NUOjeX~P!NUOZeX^eX^!TXj!TX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeXn!TX!VeX~O]eX!V!TX~P#!gOh!TXr!TXw!TX{!TX!P!TX!Q!TX!]!TX%O!TX%Y!TX~P#!gOZeX^eX^!TXj!TXneX!WeX!W!TX!|eX%YeX%`eX%feX%geX%ieX%jeX%keX%leX%meX%neX%oeX%peX%qeX~O]eXueX~P#$xO]$mXn$mXu$mX~PF|Oj$mXn$mX~P!7`On+|O]%eau%ea~On+}Oj%ea~O[oO^YOaoOdoOh!POr!pOw}O!P!OO!Q-OO!WaO!]!QO!phO!qhO%O+yO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~OZeX]!TX^UXhUXnUXn!TXrUXuUXwUX!PUX!QUX!WUX!W!TX!]UX%OUX%YUX~OnUX!QeX!aeX#TeX#WUX~P#$xOn+|O!|,YO]%eXu%eX~PBROn+}O!|,XOj%eX~PBRO^&OOV%ZXj%ZX$w%ZX]%ZXn%ZX!V%ZXu%ZX%`%ZX#T%ZX[%ZX!a%ZX~P?wO!|,YO]$man$mau$ma~PBRO!|,XOj$man$ma~PBRO%Y#XO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%`!xi%f!xi%g!xi%i!xi%p!xi%q!xi~Oj!xi~P!+YOn!xiu!xi~P#,hO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi!|!xi%p!xi%q!xi~O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOV!xiZ!xi^!xij!xin!xi!Q!xi!W!xi#R!xi#T!xi#U!xi$w!xi%p!xi%q!xi~O!|!xi~P#/_On!xiu!xi~P#.TO%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YOZ!xi]!xi^!xi!W!xi%p!xi%q!xi~O!|,WO~P#1^O!|,XO~P#/_O!|,YOn!xiu!xi~P#1^O%Y#XO%`#ZO%fiO%giO%i#ZO%j#YO%k#XO%l#XO%m#YO%n#YO%o#YO%p#[OZ!xi]!xi^!xi!W!xi%q!xi~O!|,WO~P#3QO!|,XOj!xi~P!/VO!|,YOn!xiu!xi~P#3QO!|,XOj#Pi~PBROV!TXZeX^mX!W!TX$w!TX~O%`!TX~P#5RO[!TXhmXnmXrmXwmX!PmX!QmX!WmX!]mX%OmX%YmX~P#5ROn#TO!Q,aO!|,XO#R#dOj`X#T%eX#U%eX~PBRO[oO^YOaoOdoOh!POr!pOw}O!P#hO!WaO!]!QO!phO!qhO%UTO%VUO%YVO%fiO%giO%hjO%ikO%jlO~O!Q-OO%O+yO~P#6{O!Q-PO%O+xO~P#6{O!Q-QO%O+{O~P#6{O#T,bO#U,bO~O#W,cO~O^!hOh!POr-TOw}O!P-_O!Q-WO!W-^O!]-eO%O!eO%Y!fO~O^!hOh!POr-TOw}O!Q-`O!W-^O!]-eO%O!eO%Y!fO~O!P-VO~P#9zO%O+wO~P!4vO!P-XO~O!V-YO!|#`O~PBRO!V-ZO~O!V-[O~O!W-dO~OP%ka%Oa~\",\n goto: \"!FW%sPP%tP%wP%zP'SP'XPPPP'`'cP'u'uP)w'u-_PPP0j0m0qP1V4b1VP7s8WP1VP8a8d8hP8p8w1VPP1V8{<`?vPPCY-_-_-_PCdCuCxPC{DQ'u'uDV'uES'u'u'u'uGUIW'uPPJR'uJUMjMjMj'u! r! r!#SP!$`!%d!&d'cP'cPP'cP!&yP!'V!'^!&yP!'a!'h!'n!'w!&yP!'z!(R!&y!(U!(fPP!&yP!(x!)UPP!&y!)Y!)c!&yP!)g!)gP!&yP!&yP!)j!)m!&v!&yP!&yPPP!&yP!&yP!)q!)q!)w!)}!*U!*[!*d!*j!*p!*w!*}!+T!+Z!.q!.x!/O!/X!/m!/s!/z!0Q!0W!0^!0d!0jPPPPPPPPP!0p!1f!1k!1{!2kPP!7P!:^P!>u!?Z!?_!@Z!@fP!@p!D_!Df!Di!DuPPPPPPPPPPPP!FSR!aPRyO!WXOScw!R!T!U!W#O#k#n#u$R$X&O&j&u&|'W'Y']'})W)|*k*w+gQ#pzU#r{#s%uQ#x|U$T!S$U&pQ$^!VQ$y!lR)U'RVROS#nQ#t{T%t#s%uR#t{qrOScw!U!V!W#O#k#n&|'W'Y)W*k+g%PoOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%O]OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^#u!iW^!O!h!t!z#e#h#u#v#y#|#}$P$Q$T$W$v$x%W%Y%a%x%y&O&S&W&]&`&b&d&m'e'|'}(S([(c(i(o(|)l)|*P*Q*S*p*w*|+R+^+j+l,h-U-V-W-X-Y-Z-[-]-_-d'cbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR$O!PT&c#}&dW%`#R&z*d+cQ&Q#vS&V#y&]S&`#}&dR*Y(b'cZOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d%fWOSWYacmnw!O!U!V!W!X!Z!_!q!z#O#Q#S#T#V#^#_#`#a#b#c#h#i#j#k#n#v#|$f$v$x%W%Y%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(i(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S&b#}&d!{-]!h!t#e#u#y$P$Q$T$W%a%x%y&O&W&]&`&m'e'|'}(S([(c(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-dQ#v|S$v!j!pU&P#v$v,hZ,h#x&Q&U&V-TS%{#u&OV){'})|*wR#z}T&[#y&]]&X#y&](S([(o*QZ&Z#y&](S(o*QT([&Y(]'s_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-d'r_OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!w^'bbOSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&a#}&dR(d&bS!u]fX!x`&_(e(oQ!r[Q%O!qQ)d'aU)f'b)i*oR+X*nR%R!qR%P!qV)h'b)i*oV)g'b)i*odtOScw#O#k#n&|'Y+gQ$h!WQ&R#wQ&w$[S'S$c$iQ(V&TQ*O(RQ*V(WQ*b(yQ*c(zR+_+Q%PfOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^%PgOSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^!q#Weg!o!y$[$_$c$j$m$q$}%^%b%d%m'V'p(z({)S)Y)^)c)e)q)t*i*s+T+V+W+Y,f,g,i,j,w,z-aR#fh#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z[,V%^,f,i,p,s,v`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q#^mOSacmnw!X!Z!_!q#O#S#T#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&y&|'P'T'U'X'Y']'a'b'o'r(k(t)i)s*`*h*l*n*o*r+g-^`,{Y,Q,T,W,Z,^,{-Ox,|!U!V!W&x'R'W)V)W*k+},R,U,X,[,_,a,b,c,|-Pg,}#Q#V'w+|,S,V,Y,],`,}-Q!Y#^e!y$j$m$q$}%b%d%i%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aY,Q!o,k,n,q,tl,R$[$_$c(z)S*i,g,j,l,o,r,u,w,z_,S%^,f,i,m,p,s,v!W#_e!y$j$m$q$}%b%d%j%k%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aW,T!o,n,q,tj,U$[$_$c(z)S*i,g,j,o,r,u,w,z],V%^,f,i,p,s,v!S#ae!y$j$m$q$}%b%d%l%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aS,Z!o,tf,[$[$_$c(z)S*i,g,j,u,w,zX,]%^,f,i,v!Q#be!y$j$m$q$}%b%d%m'V'p({)Y)^)c)e)q)t*s+T+V+W+Y-aQ,^!od,_$[$_$c(z)S*i,g,j,w,zV,`%^,f,iprOScw!U!V!W#O#k#n&|'W'Y)W*k+gR)a']etOScw#O#k#n&|'Y+gQ$S!RT&i$R&jR$S!RQ$V!ST&o$U&pQ&U#xR&m$TS(T&S&lV*{*S*|+^R$V!SQ$Y!TT&t$X&uR$Y!TdsOScw#O#k#n&|'Y+gT$p![!]dtOScw#O#k#n&|'Y+gQ*b(yR+_+QQ$a!VQ&{$_Q)T'RR*g)ST&|$`&}Q+b+SQ+m+fR+v+uT+g+a+hR$i!WR$l!YT'Y$k'ZXuOSw#nQ$s!`R'_$sSSO#nR!dSQ%u#sR'y%uUwOS#nR#mwQ&d#}R(g&dQ(c&`R*Z(cS!mX$^R$z!mQ(O%{R)}(OQ&]#yR(_&]Q(]&YR*X(]'r^OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|#}$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&S&W&]&`&b&d&g&l&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*P*Q*S*`*h*k*l*n*o*p*r*w*|+R+^+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dR!v^S'f%T+PR)m'fQ'c%RR)j'cW#Oc&|'Y+gR%[#O^#Ue$[$_$c$m)^,zU%e#U,O,PQ,O,fR,P,gQ&j$RR(m&jS*Q(S(oR*y*QQ*T(TR*}*TQ&p$UR(r&pQ&u$XR(w&uQ&}$`R)O&}Q+h+aR+o+hQ'Z$kR)['ZQ!cRQ#luQ#nyQ%Z!|Q&x$]Q'R$bQ'x%tQ(^&[Q(f&cQ(l&iQ(q&oR(v&tVxOS#nWuOSw#nY!|c#O&|'Y+gR%r#kdtOScw#O#k#n&|'Y+gQ$]!UQ$b!VQ$g!WQ)X'WQ*j)WR+U*kdeOScw#O#k#n&|'Y+gQ!oYQ!ya`#gmn,{,|,}-O-P-QQ$[!UQ$_!VQ$c!WQ$j!Xd$m!Z#i#j&g&s'P'T'U(k(tQ$q!_Q$}!qQ%^#QQ%b#SQ%d#TW%h#^,Q,R,SQ%i#_Q%j#`Q%k#aQ%l#bQ%m#cQ'V$fQ'p%cQ(z&xQ({&yQ)S'RQ)Y'XQ)^']Q)c'aU)e'b)i*oQ)q'oQ)t'rQ*i)VQ*s)sQ+T*hQ+V*lQ+W*nQ+Y*rS,f#V'wS,g,b,cQ,i+|Q,j+}Q,k,TQ,l,UQ,m,VQ,n,WQ,o,XQ,p,YQ,q,ZQ,r,[Q,s,]Q,t,^Q,u,_Q,v,`Q,w,aU,z'W)W*kV-a&l*`-^#bZW!O!h!t!z#e#h#u#v#y#|$P$Q$T$W$v$x%W%Y%a%x%y&O&W&]&`&m'e'|'}(S([(c(i(o(|)l)|*Q*p*w+R+j+l,h-U-V-W-X-Y-Z-[-]-_-d%P[OSYacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*`*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^$zdOSacmnw!U!V!W!X!Z!_!q#O#Q#S#T#V#^#_#`#a#b#c#i#j#k#n$f%c&g&l&s&x&y&|'P'R'T'U'W'X'Y']'a'b'o'r'w(k(t)V)W)i)s*h*k*l*n*o*r+g+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,{,|,}-O-P-Q-^S!gW-]Q!nYS#{!O-_Q$u!hS%T!t+jS%X!z-UQ%n#e[%o#h#|$x-V-W-XW%w#u'})|*wU&P#v$v,h[&X#y&](S([(o*QQ&f$PQ&h$QQ&n$TQ&r$WS'h%W-YS'i%Y-ZW'l%a(|+R+lS'{%x%yQ(Q&OQ(Y&WQ(d&`Q(p&mU)k'e)l*pQ)z'|Q*[(cS*^(i-[Q+P*`R-c-dS#w|!pS$w!j-TQ&T#xQ(R&QQ(W&UR(X&VT%|#u&OhqOScw!U!V#O#k#n&|'Y+gU$Q!R$R&jU$W!T$X&uQ$e!WY%y#u&O'})|*wQ)`']V-S'W)W*kS&[#y&]S*R(S(oR*z*QY&Y#y&](S(o*QR*W(['``OSWYacmnw!O!U!V!W!X!Z!_!h!q!t!z#O#Q#S#T#V#^#_#`#a#b#c#e#h#i#j#k#n#u#v#y#|$P$Q$T$W$f$v$x%W%Y%a%c%x%y&O&W&]&`&g&m&s&x&y&|'P'R'T'U'W'X'Y']'a'b'e'o'r'w'|'}(S([(c(i(k(o(t(|)V)W)i)l)s)|*Q*`*h*k*l*n*o*p*r*w+R+g+j+l+|+},Q,R,S,T,U,V,W,X,Y,Z,[,],^,_,`,a,b,c,h,{,|,}-O-P-Q-U-V-W-X-Y-Z-[-]-^-_-dS&_#}&dW(S&S*S*|+^Q(e&bQ(o&lR*x*PS%U!t*`R+q+jR%S!qQ#PcQ(}&|Q)Z'YR+n+ghpOScw!U!V#O#k#n&|'Y+gQ$d!WQ$n!ZQ%g#VU%p#i'T,bU%q#j'U,cQ(j&gQ(u&sQ)Q'PQ)_']Q)y'wQ*_(kQ*a(tV-R'W)W*kT(U&S&l\",\n nodeNames: \"⚠ LineComment BlockComment SourceFile PackageClause package DefName ; ImportDecl import ImportSpec . String ) ( SpecList ExprStatement Number Bool Nil Rune VariableName TypedLiteral StructType struct } { StructBody FieldDecl FieldName , PointerType * FunctionType func Parameters Parameter ... InterfaceType interface InterfaceBody MethodElem UnderlyingType ~ TypeElem LogicOp ChannelType chan <- ParenthesizedType QualifiedType TypeName ParameterizedType ] [ TypeArgs ArrayType SliceType MapType map LiteralValue Element Key : Element Key ParenthesizedExpr FunctionLiteral Block Conversion SelectorExpr IndexExpr SliceExpr TypeAssertion CallExpr ParameterizedExpr Arguments CallExpr make new Arguments UnaryExp ArithOp LogicOp BitOp DerefOp BinaryExp ArithOp BitOp BitOp CompareOp LogicOp LogicOp SendStatement IncDecStatement IncDecOp Assignment = UpdateOp VarDecl := ConstDecl const ConstSpec SpecList TypeDecl type TypeSpec TypeParams TypeParam SpecList VarDecl var VarSpec SpecList LabeledStatement LabelName IfStatement if else SwitchStatement switch SwitchBlock Case case default TypeSwitchStatement SwitchBlock Case ForStatement for ForClause RangeClause range GoStatement go SelectStatement select SelectBlock Case ReceiveStatement ReturnStatement return GotoStatement break continue goto FallthroughStatement fallthrough DeferStatement defer FunctionDecl MethodDecl\",\n maxTerm: 218,\n context: trackTokens,\n nodeProps: [\n [\"isolate\", -3,2,12,20,\"\"],\n [\"group\", -18,12,17,18,19,20,21,22,66,67,69,70,71,72,73,74,77,81,86,\"Expr\",-20,16,68,93,94,96,99,101,105,111,115,117,120,126,129,134,136,141,143,147,149,\"Statement\",-12,23,31,33,38,46,49,50,51,52,56,57,58,\"Type\"],\n [\"openedBy\", 13,\"(\",25,\"{\",53,\"[\"],\n [\"closedBy\", 14,\")\",26,\"}\",54,\"]\"]\n ],\n propSources: [goHighlighting],\n skippedNodes: [0,1,2,153],\n repeatNodeCount: 23,\n tokenData: \":b~RvXY#iYZ#i]^#ipq#iqr#zrs$Xuv&Pvw&^wx&yxy(qyz(vz{({{|)T|})e}!O)j!O!P)u!P!Q+}!Q!R,y!R![-t![!]2^!]!^2k!^!_2p!_!`3]!`!a3e!c!}3x!}#O4j#P#Q4o#Q#R4t#R#S4|#S#T9X#T#o3x#o#p9q#p#q9v#q#r:W#r#s:]$g;'S3x;'S;=`4d<%lO3x~#nS$y~XY#iYZ#i]^#ipq#iU$PP%hQ!_!`$SS$XO!|S~$^W[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y<%lO$X~${O[~~%ORO;'S$X;'S;=`%X;=`O$X~%^X[~OY$XZr$Xrs$vs#O$X#O#P${#P;'S$X;'S;=`%y;=`<%l$X<%lO$X~%|P;=`<%l$X~&UP%l~!_!`&X~&^O#U~~&cR%j~vw&l!_!`&X#Q#R&q~&qO%p~~&vP%o~!_!`&X~'OWd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k<%lO&y~'mOd~~'pRO;'S&y;'S;=`'y;=`O&y~(OXd~OY&yZw&ywx'hx#O&y#O#P'm#P;'S&y;'S;=`(k;=`<%l&y<%lO&y~(nP;=`<%l&y~(vO^~~({O]~~)QP%Y~!_!`&X~)YQ%f~{|)`!_!`&X~)eO#R~~)jOn~~)oQ%g~}!O)`!_!`&X~)zRZS!O!P*T!Q![*`#R#S+w~*WP!O!P*Z~*`Ou~Q*eTaQ!Q![*`!g!h*t#R#S+w#X#Y*t#]#^+rQ*wS{|+T}!O+T!Q![+^#R#S+lQ+WQ!Q![+^#R#S+lQ+cRaQ!Q![+^#R#S+l#]#^+rQ+oP!Q![+^Q+wOaQQ+zP!Q![*`~,SR%k~z{,]!P!Q,b!_!`&X~,bO$z~~,gSP~OY,bZ;'S,b;'S;=`,s<%lO,b~,vP;=`<%l,bQ-O[aQ!O!P*`!Q![-t!d!e.c!g!h*t!q!r/Z!z!{/x#R#S.]#U#V.c#X#Y*t#]#^+r#c#d/Z#l#m/xQ-yUaQ!O!P*`!Q![-t!g!h*t#R#S.]#X#Y*t#]#^+rQ.`P!Q![-tQ.fR!Q!R.o!R!S.o#R#S/QQ.tSaQ!Q!R.o!R!S.o#R#S/Q#]#^+rQ/TQ!Q!R.o!R!S.oQ/^Q!Q!Y/d#R#S/rQ/iRaQ!Q!Y/d#R#S/r#]#^+rQ/uP!Q!Y/dQ/{T!O!P0[!Q![1c!c!i1c#R#S2Q#T#Z1cQ0_S!Q![0k!c!i0k#R#S1V#T#Z0kQ0pVaQ!Q![0k!c!i0k!r!s*t#R#S1V#T#Z0k#]#^+r#d#e*tQ1YR!Q![0k!c!i0k#T#Z0kQ1hWaQ!O!P0k!Q![1c!c!i1c!r!s*t#R#S2Q#T#Z1c#]#^+r#d#e*tQ2TR!Q![1c!c!i1c#T#Z1c~2cP!a~!_!`2f~2kO#W~~2pOV~~2uR!|S}!O3O!^!_3T!_!`$S~3TO!Q~~3YP%m~!_!`&X~3bP#T~!_!`$S~3jQ!|S!_!`$S!`!a3p~3uP%n~!_!`&X~3}V%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~4gP;=`<%l3x~4oO!W~~4tO!V~~4yP%i~!_!`&X~5RV%O~!Q![5h!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~5o^aQ%O~!O!P*`!Q![5h!c!g3x!g!h6k!h!}3x#R#S4|#T#X3x#X#Y6k#Y#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~6pX%O~{|+T}!O+T!Q![7]!c!}3x#R#S8P#T#o3x$g;'S3x;'S;=`4d<%lO3x~7dXaQ%O~!Q![7]!c!}3x#R#S8P#T#]3x#]#^8k#^#o3x$g;'S3x;'S;=`4d<%lO3x~8UV%O~!Q![7]!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~8rVaQ%O~!Q![3x!c!}3x#R#S3x#T#o3x$g;'S3x;'S;=`4d<%lO3x~9[TO#S9X#S#T$v#T;'S9X;'S;=`9k<%lO9X~9nP;=`<%l9X~9vOj~~9{Q%`~!_!`&X#p#q:R~:WO%q~~:]Oi~~:bO{~\",\n tokenizers: [semicolon, 1, 2, new LocalTokenGroup(\"j~RQYZXz{^~^O$|~~aP!P!Qd~iO$}~~\", 25, 181)],\n topRules: {\"SourceFile\":[0,3]},\n dynamicPrecedences: {\"19\":1,\"51\":-1,\"55\":2,\"69\":-1,\"108\":-1},\n specialized: [{term: 184, get: (value) => spec_identifier[value] || -1}],\n tokenPrec: 5451\n});\n\nexport { parser };\n"],"names":["semicolon","ExternalTokenizer","input","stack","scan","next","context","peek","acceptToken","contextual","trackedTokens","Set","trackTokens","ContextTracker","start","shift","term","has","goHighlighting","styleTags","tags","definitionKeyword","moduleKeyword","controlKeyword","keyword","Bool","bool","String","string","Rune","character","Number","number","Nil","null","VariableName","variableName","DefName","definition","TypeName","typeName","LabelName","labelName","FieldName","propertyName","function","LineComment","lineComment","BlockComment","blockComment","LogicOp","logicOperator","ArithOp","arithmeticOperator","BitOp","bitwiseOperator","derefOperator","updateOperator","CompareOp","compareOperator","definitionOperator","operator","modifier","separator","punctuation","paren","squareBracket","brace","spec_identifier","__proto__","package","import","true","false","nil","struct","func","interface","chan","map","make","new","const","type","var","if","else","switch","case","default","for","range","go","select","return","break","continue","goto","fallthrough","defer","parser","LRParser","deserialize","version","states","stateData","nodeNames","maxTerm","nodeProps","propSources","skippedNodes","repeatNodeCount","tokenData","tokenizers","LocalTokenGroup","topRules","dynamicPrecedences","specialized","get","value","tokenPrec"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6082.1740432f.chunk.js b/static/js/6082.1740432f.chunk.js new file mode 100644 index 000000000..8d5d5c470 --- /dev/null +++ b/static/js/6082.1740432f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6082],{56082:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a});const a='@{\n var total = 0;\n var totalMessage = "";\n @* a multiline\n razor comment embedded in csharp *@\n if (IsPost) {\n\n // Retrieve the numbers that the user entered.\n var num1 = Request["text1"];\n var num2 = Request["text2"];\n\n // Convert the entered strings into integers numbers and add.\n total = num1.AsInt() + num2.AsInt();\n totalMessage = "Total = " + total;\n }\n}\n\n\n\n \n Add Numbers\n \n \n\n

Enter two whole numbers and then click Add.

\n
\n

\n \n

\n

\n \n

\n

\n
\n\n @* now we call the totalMessage method \n (a multi line razor comment outside code) *@\n\n

@totalMessage

\n \n

@(totalMessage+"!")

\n \n An email address (with escaped at character): name@@domain.com\n \n\n\n'}}]); +//# sourceMappingURL=6082.1740432f.chunk.js.map \ No newline at end of file diff --git a/static/js/6082.1740432f.chunk.js.map b/static/js/6082.1740432f.chunk.js.map new file mode 100644 index 000000000..9db4d855f --- /dev/null +++ b/static/js/6082.1740432f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6082.1740432f.chunk.js","mappings":"yHAAA,msC","sources":["../../node_modules/code-example/txt/sample.razor.txt"],"sourcesContent":["export default \"@{\\n var total = 0;\\n var totalMessage = \\\"\\\";\\n @* a multiline\\n razor comment embedded in csharp *@\\n if (IsPost) {\\n\\n // Retrieve the numbers that the user entered.\\n var num1 = Request[\\\"text1\\\"];\\n var num2 = Request[\\\"text2\\\"];\\n\\n // Convert the entered strings into integers numbers and add.\\n total = num1.AsInt() + num2.AsInt();\\n totalMessage = \\\"Total = \\\" + total;\\n }\\n}\\n\\n\\n\\n \\n Add Numbers\\n \\n \\n\\n

Enter two whole numbers and then click Add.

\\n
\\n

\\n \\n

\\n

\\n \\n

\\n

\\n
\\n\\n @* now we call the totalMessage method \\n (a multi line razor comment outside code) *@\\n\\n

@totalMessage

\\n \\n

@(totalMessage+\\\"!\\\")

\\n \\n An email address (with escaped at character): name@@domain.com\\n \\n\\n\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6150.7a44c409.chunk.js b/static/js/6150.7a44c409.chunk.js new file mode 100644 index 000000000..3e01d9f33 --- /dev/null +++ b/static/js/6150.7a44c409.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6150],{6150:(e,n,t)=>{t.r(n),t.d(n,{default:()=>o});const o='\n\n\\n\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/618.622bbb55.chunk.js b/static/js/618.622bbb55.chunk.js new file mode 100644 index 000000000..ec7fe0a18 --- /dev/null +++ b/static/js/618.622bbb55.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[618],{90618:(n,e,s)=>{s.r(e),s.d(e,{default:()=>t});const t='\n
\n

{{title}}

\n {{#if author}}\n

{{author.firstName}} {{author.lastName}}

\n {{else}}\n

Unknown Author

\n {{/if}}\n {{contentBody}}\n
\n\n{{#unless license}}\n

WARNING: This entry does not have a license!

\n{{/unless}}\n\n
\n
    \n {{#each footnotes}}\n
  • {{this}}
  • \n {{/each}}\n
\n
\n\n

Comments

\n\n
\n {{#each comments}}\n

{{title}}

\n
{{body}}
\n {{/each}}\n
\n'}}]); +//# sourceMappingURL=618.622bbb55.chunk.js.map \ No newline at end of file diff --git a/static/js/618.622bbb55.chunk.js.map b/static/js/618.622bbb55.chunk.js.map new file mode 100644 index 000000000..6c2293910 --- /dev/null +++ b/static/js/618.622bbb55.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/618.622bbb55.chunk.js","mappings":"wHAAA,4lB","sources":["../../node_modules/code-example/txt/sample.handlebars.txt"],"sourcesContent":["export default \"\\n
\\n

{{title}}

\\n {{#if author}}\\n

{{author.firstName}} {{author.lastName}}

\\n {{else}}\\n

Unknown Author

\\n {{/if}}\\n {{contentBody}}\\n
\\n\\n{{#unless license}}\\n

WARNING: This entry does not have a license!

\\n{{/unless}}\\n\\n
\\n
    \\n {{#each footnotes}}\\n
  • {{this}}
  • \\n {{/each}}\\n
\\n
\\n\\n

Comments

\\n\\n
\\n {{#each comments}}\\n

{{title}}

\\n
{{body}}
\\n {{/each}}\\n
\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6286.7a797ede.chunk.js b/static/js/6286.7a797ede.chunk.js new file mode 100644 index 000000000..700927bd8 --- /dev/null +++ b/static/js/6286.7a797ede.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6286],{36286:(e,l,n)=>{n.r(l),n.d(l,{Component:()=>s});var o=n(73562),t=n(69332),u=n(80905),i=n(98557);function s(){let e=(0,u.useRef)(null);return(0,i.jsx)("div",{children:(0,i.jsx)(o.default,{value:"console.log('hello')",theme:"none",ref:function(l){!e.current&&null!==l&&void 0!==l&&l.editor&&null!==l&&void 0!==l&&l.state&&null!==l&&void 0!==l&&l.view&&(console.log(l),e.current=l)},height:"400px",width:"100%",style:{margin:"0 0 23px 0",flex:1},extensions:[t.cg.markdown()]})})}s.displayName="PageExampleRef"}}]); +//# sourceMappingURL=6286.7a797ede.chunk.js.map \ No newline at end of file diff --git a/static/js/6286.7a797ede.chunk.js.map b/static/js/6286.7a797ede.chunk.js.map new file mode 100644 index 000000000..a84db6fee --- /dev/null +++ b/static/js/6286.7a797ede.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6286.7a797ede.chunk.js","mappings":"2KAIO,SAASA,IACd,IAAIC,GAAQC,EAAAA,EAAAA,QAAkC,MAQ9C,OACEC,EAAAA,EAAAA,KAAA,OAAAC,UACED,EAAAA,EAAAA,KAACE,EAAAA,QAAU,CACTC,MAAK,uBACLC,MAAM,OACNC,IAZN,SAAoBC,IACbR,EAAMS,SAAiB,OAAND,QAAM,IAANA,GAAAA,EAAQA,QAAgB,OAANA,QAAM,IAANA,GAAAA,EAAQE,OAAe,OAANF,QAAM,IAANA,GAAAA,EAAQG,OAE/DC,QAAQC,IAAIL,GACZR,EAAMS,QAAUD,EAEpB,EAOMM,OAAO,QACPC,MAAM,OACNC,MAAO,CAAEC,OAAQ,aAAcC,KAAM,GACrCC,WAAY,CAACC,EAAAA,GAAMC,eAI3B,CAEAtB,EAAUuB,YAAc,gB","sources":["pages/examples/ExampleRef.tsx"],"sourcesContent":["import CodeMirror, { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { useRef } from 'react';\n\nexport function Component() {\n let $edit = useRef(null);\n function refCallack(editor: ReactCodeMirrorRef) {\n if (!$edit.current && editor?.editor && editor?.state && editor?.view) {\n // first time we got ref, similar to useEffect\n console.log(editor); // do something with editor\n $edit.current = editor; // store it\n }\n }\n return (\n
\n \n
\n );\n}\n\nComponent.displayName = 'PageExampleRef';\n"],"names":["Component","$edit","useRef","_jsx","children","CodeMirror","value","theme","ref","editor","current","state","view","console","log","height","width","style","margin","flex","extensions","langs","markdown","displayName"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6402.b3f1978a.chunk.js b/static/js/6402.b3f1978a.chunk.js new file mode 100644 index 000000000..46e264d5c --- /dev/null +++ b/static/js/6402.b3f1978a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6402],{56402:(n,e,i)=>{i.r(e),i.d(e,{default:()=>s});const s="$baseFontSizeInPixels: 14;\n\n@function px2em ($font_size, $base_font_size: $baseFontSizeInPixels) { \n @return ($font_size / $base_font_size) + em; \n}\n\nh1 {\n font-size: px2em(36, $baseFontSizeInPixels);\n}\nh2 {\n font-size: px2em(28, $baseFontSizeInPixels);\n}\n.class {\n font-size: px2em(14, $baseFontSizeInPixels);\n}\n\nnav {\n ul {\n margin: 0;\n padding: 0;\n list-style: none;\n }\n\n li { display: inline-block; }\n\n a {\n display: block;\n padding: 6px 12px;\n text-decoration: none;\n }\n \n @each $animal in puma, sea-slug, egret, salamander {\n .#{$animal}-icon {\n background-image: url('/images/#{$animal}.png');\n }\n }\n}"}}]); +//# sourceMappingURL=6402.b3f1978a.chunk.js.map \ No newline at end of file diff --git a/static/js/6402.b3f1978a.chunk.js.map b/static/js/6402.b3f1978a.chunk.js.map new file mode 100644 index 000000000..d9cd0a75d --- /dev/null +++ b/static/js/6402.b3f1978a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6402.b3f1978a.chunk.js","mappings":"yHAAA,yrB","sources":["../../node_modules/code-example/txt/sample.scss.txt"],"sourcesContent":["export default \"$baseFontSizeInPixels: 14;\\n\\n@function px2em ($font_size, $base_font_size: $baseFontSizeInPixels) { \\n @return ($font_size / $base_font_size) + em; \\n}\\n\\nh1 {\\n font-size: px2em(36, $baseFontSizeInPixels);\\n}\\nh2 {\\n font-size: px2em(28, $baseFontSizeInPixels);\\n}\\n.class {\\n font-size: px2em(14, $baseFontSizeInPixels);\\n}\\n\\nnav {\\n ul {\\n margin: 0;\\n padding: 0;\\n list-style: none;\\n }\\n\\n li { display: inline-block; }\\n\\n a {\\n display: block;\\n padding: 6px 12px;\\n text-decoration: none;\\n }\\n \\n @each $animal in puma, sea-slug, egret, salamander {\\n .#{$animal}-icon {\\n background-image: url('/images/#{$animal}.png');\\n }\\n }\\n}\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/65.c7c72e77.chunk.js b/static/js/65.c7c72e77.chunk.js new file mode 100644 index 000000000..6568c0d1f --- /dev/null +++ b/static/js/65.c7c72e77.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[65],{80065:(n,e,t)=>{t.r(e),t.d(e,{default:()=>i});const i='# good style\nfunction fixedpointmap(f; iv, tolerance=1E-7, maxiter=1000)\n # setup the algorithm\n x_old = iv\n normdiff = Inf\n iter = 1\n while normdiff > tolerance && iter <= maxiter\n x_new = f(x_old) # use the passed in map\n normdiff = norm(x_new - x_old)\n x_old = x_new\n iter = iter + 1\n end\n return (value = x_old, normdiff=normdiff, iter=iter) # A named tuple\nend\n\n# define a map and parameters\np = 1.0\n\u03b2 = 0.9\nf(v) = p + \u03b2 * v # note that p and \u03b2 are used in the function!\n\nsol = fixedpointmap(f, iv=0.8, tolerance=1.0E-8) # don\'t need to pass\nprintln("Fixed point = $(sol.value), and |f(x) - x| = $(sol.normdiff) in $(sol.iter)"*\n " iterations")\n'}}]); +//# sourceMappingURL=65.c7c72e77.chunk.js.map \ No newline at end of file diff --git a/static/js/65.c7c72e77.chunk.js.map b/static/js/65.c7c72e77.chunk.js.map new file mode 100644 index 000000000..d95887449 --- /dev/null +++ b/static/js/65.c7c72e77.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/65.c7c72e77.chunk.js","mappings":"uHAAA,mvB","sources":["../../node_modules/code-example/txt/sample.julia.txt"],"sourcesContent":["export default \"# good style\\nfunction fixedpointmap(f; iv, tolerance=1E-7, maxiter=1000)\\n # setup the algorithm\\n x_old = iv\\n normdiff = Inf\\n iter = 1\\n while normdiff > tolerance && iter <= maxiter\\n x_new = f(x_old) # use the passed in map\\n normdiff = norm(x_new - x_old)\\n x_old = x_new\\n iter = iter + 1\\n end\\n return (value = x_old, normdiff=normdiff, iter=iter) # A named tuple\\nend\\n\\n# define a map and parameters\\np = 1.0\\nβ = 0.9\\nf(v) = p + β * v # note that p and β are used in the function!\\n\\nsol = fixedpointmap(f, iv=0.8, tolerance=1.0E-8) # don't need to pass\\nprintln(\\\"Fixed point = $(sol.value), and |f(x) - x| = $(sol.normdiff) in $(sol.iter)\\\"*\\n \\\" iterations\\\")\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6618.14a31a25.chunk.js b/static/js/6618.14a31a25.chunk.js new file mode 100644 index 000000000..5919ced63 --- /dev/null +++ b/static/js/6618.14a31a25.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6618],{36618:(e,n,s)=>{s.r(n),s.d(n,{default:()=>r});const r="program GreetingsNumberOfTimes;\n\n{$APPTYPE CONSOLE}\n\n{$R *.res}\n\nuses\n System.SysUtils;\n\nvar\n greetingsMessage: string;\n numberOfTimes, i: integer;\n\nbegin\n try\n { TODO -oUser -cConsole Main : Insert code here }\n greetingsMessage := 'Hello World!';\n numberOfTimes := 10;\n\n for i := 1 to numberOfTimes do\n begin\n Writeln(greetingsMessage);\n end;\n except\n on E: Exception do\n Writeln(E.ClassName, ': ', E.Message);\n end;\nend.\n"}}]); +//# sourceMappingURL=6618.14a31a25.chunk.js.map \ No newline at end of file diff --git a/static/js/6618.14a31a25.chunk.js.map b/static/js/6618.14a31a25.chunk.js.map new file mode 100644 index 000000000..6dcfff0ea --- /dev/null +++ b/static/js/6618.14a31a25.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6618.14a31a25.chunk.js","mappings":"yHAAA,kf","sources":["../../node_modules/code-example/txt/sample.pascal.txt"],"sourcesContent":["export default \"program GreetingsNumberOfTimes;\\n\\n{$APPTYPE CONSOLE}\\n\\n{$R *.res}\\n\\nuses\\n System.SysUtils;\\n\\nvar\\n greetingsMessage: string;\\n numberOfTimes, i: integer;\\n\\nbegin\\n try\\n { TODO -oUser -cConsole Main : Insert code here }\\n greetingsMessage := 'Hello World!';\\n numberOfTimes := 10;\\n\\n for i := 1 to numberOfTimes do\\n begin\\n Writeln(greetingsMessage);\\n end;\\n except\\n on E: Exception do\\n Writeln(E.ClassName, ': ', E.Message);\\n end;\\nend.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/666.9b27396a.chunk.js b/static/js/666.9b27396a.chunk.js new file mode 100644 index 000000000..771997273 --- /dev/null +++ b/static/js/666.9b27396a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[666],{30666:(e,a,r)=>{r.r(a),r.d(a,{default:()=>t});const t="LEX Paid Escrow.\nLEXON: 0.2.12\nCOMMENT: 3.f - an escrow that is controlled by a third party for a fee.\n\u201cPayer\u201d is a person.\n\u201cPayee\u201d is a person.\n\u201cArbiter\u201d is a person.\n\u201cFee\u201d is an amount.\nThe Payer pays an Amount into escrow,\nappoints the Payee,\nappoints the Arbiter,\nand also fixes the Fee.\nCLAUSE: Pay Out.\nThe Arbiter may pay from escrow the Fee to themselves,\nand afterwards pay the remainder of the escrow to the Payee.\nCLAUSE: Pay Back.\nThe Arbiter may pay from escrow the Fee to themselves,\nand afterwards return the remainder of the escrow to the Payer.\n"}}]); +//# sourceMappingURL=666.9b27396a.chunk.js.map \ No newline at end of file diff --git a/static/js/666.9b27396a.chunk.js.map b/static/js/666.9b27396a.chunk.js.map new file mode 100644 index 000000000..aff68204d --- /dev/null +++ b/static/js/666.9b27396a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/666.9b27396a.chunk.js","mappings":"wHAAA,qnB","sources":["../../node_modules/code-example/txt/sample.lexon.txt"],"sourcesContent":["export default \"LEX Paid Escrow.\\nLEXON: 0.2.12\\nCOMMENT: 3.f - an escrow that is controlled by a third party for a fee.\\n“Payer” is a person.\\n“Payee” is a person.\\n“Arbiter” is a person.\\n“Fee” is an amount.\\nThe Payer pays an Amount into escrow,\\nappoints the Payee,\\nappoints the Arbiter,\\nand also fixes the Fee.\\nCLAUSE: Pay Out.\\nThe Arbiter may pay from escrow the Fee to themselves,\\nand afterwards pay the remainder of the escrow to the Payee.\\nCLAUSE: Pay Back.\\nThe Arbiter may pay from escrow the Fee to themselves,\\nand afterwards return the remainder of the escrow to the Payer.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6760.9fa91319.chunk.js b/static/js/6760.9fa91319.chunk.js new file mode 100644 index 000000000..ecde0204d --- /dev/null +++ b/static/js/6760.9fa91319.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6760],{76760:(O,e,t)=>{t.d(e,{K:()=>m});var n=t(4179),Q=t(1345);const P=63;class a{constructor(O,e,t){this.parent=O,this.depth=e,this.type=t,this.hash=(O?O.hash+O.hash<<8:0)+e+(e<<4)+t}}function c(O,e){for(let t=0,n=e-O.pos-1;;n--,t++){let e=O.peek(n);if(r(e)||-1==e)return t}}function o(O){return 32==O||9==O}function r(O){return 10==O||13==O}function s(O){return o(O)||r(O)}function i(O){return O<0||s(O)}a.top=new a(null,-1,0);const p=new n.Aj({start:a.top,reduce:(O,e)=>3!=O.type||20!=e&&34!=e?O:O.parent,shift(O,e,t,n){if(3==e)return new a(O,c(n,n.pos),1);if(65==e||5==e)return new a(O,c(n,n.pos),2);if(e==P)return O.parent;if(19==e||33==e)return new a(O,0,3);if(13==e&&4==O.type)return O.parent;if(47==e){let e=/[1-9]/.exec(n.read(n.pos,t.pos));if(e)return new a(O,O.depth+ +e[0],4)}return O},hash:O=>O.hash});function X(O,e){let t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;return O.peek(t)==e&&O.peek(t+1)==e&&O.peek(t+2)==e&&i(O.peek(t+3))}const f=new n.Lu(((O,e)=>{if(-1==O.next&&e.canShift(64))return O.acceptToken(64);let t=O.peek(-1);if((r(t)||t<0)&&3!=e.context.type){if(X(O,45)){if(!e.canShift(P))return O.acceptToken(1,3);O.acceptToken(P)}if(X(O,46)){if(!e.canShift(P))return O.acceptToken(2,3);O.acceptToken(P)}let t=0;for(;32==O.next;)t++,O.advance();!(t{if(3!=e.context.type)if(45==O.next)O.advance(),i(O.next)&&O.acceptToken(1==e.context.type&&e.context.depth==c(O,O.pos-1)?4:3);else if(63==O.next)O.advance(),i(O.next)&&O.acceptToken(2==e.context.type&&e.context.depth==c(O,O.pos-1)?6:5);else{let t=O.pos;for(;;)if(o(O.next)){if(O.pos==t)return;O.advance()}else if(33==O.next)S(O);else{if(38!=O.next){if(42==O.next){b(O);break}if(39==O.next||34==O.next){if(k(O,!0))break;return}if(91==O.next||123==O.next){if(!x(O))return;break}v(O,!0,!1,0);break}b(O)}for(;o(O.next);)O.advance();if(58==O.next){if(O.pos==t&&e.canShift(29))return;i(O.peek(1))&&O.acceptTokenTo(2==e.context.type&&e.context.depth==c(O,t)?66:65,t)}}else 63==O.next&&(O.advance(),i(O.next)&&O.acceptToken(7))}),{contextual:!0});function l(O){return O>=48&&O<=57||O>=97&&O<=102||O>=65&&O<=70}function d(O,e){return 37==O.next?(O.advance(),l(O.next)&&O.advance(),l(O.next)&&O.advance(),!0):!!((t=O.next)>32&&t<127&&34!=t&&37!=t&&44!=t&&60!=t&&62!=t&&92!=t&&94!=t&&96!=t&&123!=t&&124!=t&&125!=t||e&&44==O.next)&&(O.advance(),!0);var t}function S(O){if(O.advance(),60==O.next){for(O.advance();;)if(!d(O,!0)){62==O.next&&O.advance();break}}else for(;d(O,!1););}function b(O){for(O.advance();!i(O.next)&&"f"!=h(O.tag);)O.advance()}function k(O,e){let t=O.next,n=!1,Q=O.pos;for(O.advance();;){let P=O.next;if(P<0)break;if(O.advance(),P==t){if(39!=P)break;if(39!=O.next)break;O.advance()}else if(92==P&&34==t)O.next>=0&&O.advance();else if(r(P)){if(e)return!1;n=!0}else if(e&&O.pos>=Q+1024)return!1}return!n}function x(O){for(let e=[],t=O.pos+1024;;)if(91==O.next||123==O.next)e.push(O.next),O.advance();else if(39==O.next||34==O.next){if(!k(O,!0))return!1}else if(93==O.next||125==O.next){if(e[e.length-1]!=O.next-2)return!1;if(e.pop(),O.advance(),!e.length)return!0}else{if(O.next<0||O.pos>t||r(O.next))return!1;O.advance()}}const u="iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif";function h(O){return O<33?"u":O>125?"s":u[O-33]}function $(O,e){let t=h(O);return"u"!=t&&!(e&&"f"==t)}function v(O,e,t,n){if("s"!=h(O.next)&&(63!=O.next&&58!=O.next&&45!=O.next||!$(O.peek(1),t)))return!1;O.advance();let Q=O.pos;for(;;){let P=O.next,a=0,c=n+1;for(;s(P);){if(r(P)){if(e)return!1;c=0}else c++;P=O.peek(++a)}if(!(P>=0&&(58==P?$(O.peek(a+1),t):35==P?32!=O.peek(a-1):$(P,t)))||!t&&c<=n||0==c&&!t&&(X(O,45,a)||X(O,46,a)))break;if(e&&"f"==h(P))return!1;for(let e=a;e>=0;e--)O.advance();if(e&&O.pos>Q+1024)return!1}return!0}const g=new n.Lu(((O,e)=>{if(33==O.next)S(O),O.acceptToken(12);else if(38==O.next||42==O.next){let e=38==O.next?10:11;b(O),O.acceptToken(e)}else 39==O.next||34==O.next?(k(O,!1),O.acceptToken(9)):v(O,!1,3==e.context.type,e.context.depth)&&O.acceptToken(8)})),T=new n.Lu(((O,e)=>{let t=4==e.context.type?e.context.depth:-1,n=O.pos;O:for(;;){let Q=0,P=O.next;for(;32==P;)P=O.peek(++Q);if(!Q&&(X(O,45,Q)||X(O,46,Q)))break;if(!r(P)&&(t<0&&(t=Math.max(e.context.depth+1,Q)),QYAN>Y",stateData:";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O",goto:",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv",nodeNames:"\u26a0 DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document",maxTerm:74,context:p,nodeProps:[["isolate",-3,8,9,14,""],["openedBy",18,"[",32,"{"],["closedBy",19,"]",33,"}"]],propSources:[D],skippedNodes:[0],repeatNodeCount:6,tokenData:"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P",tokenizers:[f,R,g,T,0,1],topRules:{Stream:[0,15]},tokenPrec:0})}}]); +//# sourceMappingURL=6760.9fa91319.chunk.js.map \ No newline at end of file diff --git a/static/js/6760.9fa91319.chunk.js.map b/static/js/6760.9fa91319.chunk.js.map new file mode 100644 index 000000000..18aeadb8c --- /dev/null +++ b/static/js/6760.9fa91319.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6760.9fa91319.chunk.js","mappings":"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","sources":["../../node_modules/@lezer/yaml/dist/index.js"],"sourcesContent":["import { ContextTracker, ExternalTokenizer, LRParser } from '@lezer/lr';\nimport { styleTags, tags } from '@lezer/highlight';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst blockEnd = 63,\n eof = 64,\n DirectiveEnd = 1,\n DocEnd = 2,\n sequenceStartMark = 3,\n sequenceContinueMark = 4,\n explicitMapStartMark = 5,\n explicitMapContinueMark = 6,\n flowMapMark = 7,\n mapStartMark = 65,\n mapContinueMark = 66,\n Literal = 8,\n QuotedLiteral = 9,\n Anchor = 10,\n Alias = 11,\n Tag = 12,\n BlockLiteralContent = 13,\n BracketL = 19,\n FlowSequence = 20,\n Colon = 29,\n BraceL = 33,\n FlowMapping = 34,\n BlockLiteralHeader = 47;\n\nconst\n type_Top = 0, // Top document level\n type_Seq = 1, // Block sequence\n type_Map = 2, // Block mapping\n type_Flow = 3, // Inside flow content\n type_Lit = 4; // Block literal with explicit indentation\n\nclass Context {\n constructor(parent, depth, type) {\n this.parent = parent;\n this.depth = depth;\n this.type = type;\n this.hash = (parent ? parent.hash + parent.hash << 8 : 0) + depth + (depth << 4) + type;\n }\n}\n\nContext.top = new Context(null, -1, type_Top);\n\nfunction findColumn(input, pos) {\n for (let col = 0, p = pos - input.pos - 1;; p--, col++) {\n let ch = input.peek(p);\n if (isBreakSpace(ch) || ch == -1) return col\n }\n}\n\nfunction isNonBreakSpace(ch) {\n return ch == 32 || ch == 9\n}\n\nfunction isBreakSpace(ch) {\n return ch == 10 || ch == 13\n}\n\nfunction isSpace(ch) {\n return isNonBreakSpace(ch) || isBreakSpace(ch)\n}\n\nfunction isSep(ch) {\n return ch < 0 || isSpace(ch)\n}\n\nconst indentation = new ContextTracker({\n start: Context.top,\n reduce(context, term) {\n return context.type == type_Flow && (term == FlowSequence || term == FlowMapping) ? context.parent : context\n },\n shift(context, term, stack, input) {\n if (term == sequenceStartMark)\n return new Context(context, findColumn(input, input.pos), type_Seq)\n if (term == mapStartMark || term == explicitMapStartMark)\n return new Context(context, findColumn(input, input.pos), type_Map)\n if (term == blockEnd)\n return context.parent\n if (term == BracketL || term == BraceL)\n return new Context(context, 0, type_Flow)\n if (term == BlockLiteralContent && context.type == type_Lit)\n return context.parent\n if (term == BlockLiteralHeader) {\n let indent = /[1-9]/.exec(input.read(input.pos, stack.pos));\n if (indent) return new Context(context, context.depth + (+indent[0]), type_Lit)\n }\n return context\n },\n hash(context) { return context.hash }\n});\n\nfunction three(input, ch, off = 0) {\n return input.peek(off) == ch && input.peek(off + 1) == ch && input.peek(off + 2) == ch && isSep(input.peek(off + 3))\n}\n\nconst newlines = new ExternalTokenizer((input, stack) => {\n if (input.next == -1 && stack.canShift(eof))\n return input.acceptToken(eof)\n let prev = input.peek(-1);\n if ((isBreakSpace(prev) || prev < 0) && stack.context.type != type_Flow) {\n if (three(input, 45 /* '-' */)) {\n if (stack.canShift(blockEnd)) input.acceptToken(blockEnd);\n else return input.acceptToken(DirectiveEnd, 3)\n }\n if (three(input, 46 /* '.' */)) {\n if (stack.canShift(blockEnd)) input.acceptToken(blockEnd);\n else return input.acceptToken(DocEnd, 3)\n }\n let depth = 0;\n while (input.next == 32 /* ' ' */) { depth++; input.advance(); }\n if ((depth < stack.context.depth ||\n depth == stack.context.depth && stack.context.type == type_Seq &&\n (input.next != 45 /* '-' */ || !isSep(input.peek(1)))) &&\n // Not blank\n input.next != -1 && !isBreakSpace(input.next) && input.next != 35 /* '#' */)\n input.acceptToken(blockEnd, -depth);\n }\n}, {contextual: true});\n\nconst blockMark = new ExternalTokenizer((input, stack) => {\n if (stack.context.type == type_Flow) {\n if (input.next == 63 /* '?' */) {\n input.advance();\n if (isSep(input.next)) input.acceptToken(flowMapMark);\n }\n return\n }\n if (input.next == 45 /* '-' */) {\n input.advance();\n if (isSep(input.next))\n input.acceptToken(stack.context.type == type_Seq && stack.context.depth == findColumn(input, input.pos - 1)\n ? sequenceContinueMark : sequenceStartMark);\n } else if (input.next == 63 /* '?' */) {\n input.advance();\n if (isSep(input.next))\n input.acceptToken(stack.context.type == type_Map && stack.context.depth == findColumn(input, input.pos - 1)\n ? explicitMapContinueMark : explicitMapStartMark);\n } else {\n let start = input.pos;\n // Scan over a potential key to see if it is followed by a colon.\n for (;;) {\n if (isNonBreakSpace(input.next)) {\n if (input.pos == start) return\n input.advance();\n } else if (input.next == 33 /* '!' */) {\n readTag(input);\n } else if (input.next == 38 /* '&' */) {\n readAnchor(input);\n } else if (input.next == 42 /* '*' */) {\n readAnchor(input);\n break\n } else if (input.next == 39 /* \"'\" */ || input.next == 34 /* '\"' */) {\n if (readQuoted(input, true)) break\n return\n } else if (input.next == 91 /* '[' */ || input.next == 123 /* '{' */) {\n if (!scanBrackets(input)) return\n break\n } else {\n readPlain(input, true, false, 0);\n break\n }\n }\n while (isNonBreakSpace(input.next)) input.advance();\n if (input.next == 58 /* ':' */) {\n if (input.pos == start && stack.canShift(Colon)) return\n let after = input.peek(1);\n if (isSep(after))\n input.acceptTokenTo(stack.context.type == type_Map && stack.context.depth == findColumn(input, start)\n ? mapContinueMark : mapStartMark, start);\n }\n }\n}, {contextual: true});\n\nfunction uriChar(ch) {\n return ch > 32 && ch < 127 && ch != 34 && ch != 37 && ch != 44 && ch != 60 &&\n ch != 62 && ch != 92 && ch != 94 && ch != 96 && ch != 123 && ch != 124 && ch != 125\n}\n\nfunction hexChar(ch) {\n return ch >= 48 && ch <= 57 || ch >= 97 && ch <= 102 || ch >= 65 && ch <= 70\n}\n\nfunction readUriChar(input, quoted) {\n if (input.next == 37 /* '%' */) {\n input.advance();\n if (hexChar(input.next)) input.advance();\n if (hexChar(input.next)) input.advance();\n return true\n } else if (uriChar(input.next) || quoted && input.next == 44 /* ',' */) {\n input.advance();\n return true\n }\n return false\n}\n\nfunction readTag(input) {\n input.advance(); // !\n if (input.next == 60 /* '<' */) {\n input.advance();\n for (;;) {\n if (!readUriChar(input, true)) {\n if (input.next == 62 /* '>' */) input.advance();\n break\n }\n }\n } else {\n while (readUriChar(input, false)) {}\n }\n}\n\nfunction readAnchor(input) {\n input.advance();\n while (!isSep(input.next) && charTag(input.tag) != \"f\") input.advance();\n}\n \nfunction readQuoted(input, scan) {\n let quote = input.next, lineBreak = false, start = input.pos;\n input.advance();\n for (;;) {\n let ch = input.next;\n if (ch < 0) break\n input.advance();\n if (ch == quote) {\n if (ch == 39 /* \"'\" */) {\n if (input.next == 39) input.advance();\n else break\n } else {\n break\n }\n } else if (ch == 92 /* \"\\\\\" */ && quote == 34 /* '\"' */) {\n if (input.next >= 0) input.advance();\n } else if (isBreakSpace(ch)) {\n if (scan) return false\n lineBreak = true;\n } else if (scan && input.pos >= start + 1024) {\n return false\n }\n }\n return !lineBreak\n}\n\nfunction scanBrackets(input) {\n for (let stack = [], end = input.pos + 1024;;) {\n if (input.next == 91 /* '[' */ || input.next == 123 /* '{' */) {\n stack.push(input.next);\n input.advance();\n } else if (input.next == 39 /* \"'\" */ || input.next == 34 /* '\"' */) {\n if (!readQuoted(input, true)) return false\n } else if (input.next == 93 /* ']' */ || input.next == 125 /* '}' */) {\n if (stack[stack.length - 1] != input.next - 2) return false\n stack.pop();\n input.advance();\n if (!stack.length) return true\n } else if (input.next < 0 || input.pos > end || isBreakSpace(input.next)) {\n return false\n } else {\n input.advance();\n }\n }\n}\n\n// \"Safe char\" info for char codes 33 to 125. s: safe, i: indicator, f: flow indicator\nconst charTable = \"iiisiiissisfissssssssssssisssiiissssssssssssssssssssssssssfsfssissssssssssssssssssssssssssfif\";\n\nfunction charTag(ch) {\n if (ch < 33) return \"u\"\n if (ch > 125) return \"s\"\n return charTable[ch - 33]\n}\n\nfunction isSafe(ch, inFlow) {\n let tag = charTag(ch);\n return tag != \"u\" && !(inFlow && tag == \"f\")\n}\n\nfunction readPlain(input, scan, inFlow, indent) {\n if (charTag(input.next) == \"s\" ||\n (input.next == 63 /* '?' */ || input.next == 58 /* ':' */ || input.next == 45 /* '-' */) &&\n isSafe(input.peek(1), inFlow)) {\n input.advance();\n } else {\n return false\n }\n let start = input.pos;\n for (;;) {\n let next = input.next, off = 0, lineIndent = indent + 1;\n while (isSpace(next)) {\n if (isBreakSpace(next)) {\n if (scan) return false\n lineIndent = 0;\n } else {\n lineIndent++;\n }\n next = input.peek(++off);\n }\n let safe = next >= 0 &&\n (next == 58 /* ':' */ ? isSafe(input.peek(off + 1), inFlow) :\n next == 35 /* '#' */ ? input.peek(off - 1) != 32 /* ' ' */ :\n isSafe(next, inFlow));\n if (!safe || !inFlow && lineIndent <= indent ||\n lineIndent == 0 && !inFlow && (three(input, 45, off) || three(input, 46, off)))\n break\n if (scan && charTag(next) == \"f\") return false\n for (let i = off; i >= 0; i--) input.advance();\n if (scan && input.pos > start + 1024) return false\n }\n return true\n}\n\nconst literals = new ExternalTokenizer((input, stack) => {\n if (input.next == 33 /* '!' */) {\n readTag(input);\n input.acceptToken(Tag);\n } else if (input.next == 38 /* '&' */ || input.next == 42 /* '*' */) {\n let token = input.next == 38 ? Anchor : Alias;\n readAnchor(input);\n input.acceptToken(token);\n } else if (input.next == 39 /* \"'\" */ || input.next == 34 /* '\"' */) {\n readQuoted(input, false);\n input.acceptToken(QuotedLiteral);\n } else if (readPlain(input, false, stack.context.type == type_Flow, stack.context.depth)) {\n input.acceptToken(Literal);\n }\n});\n\nconst blockLiteral = new ExternalTokenizer((input, stack) => {\n let indent = stack.context.type == type_Lit ? stack.context.depth : -1, upto = input.pos;\n scan: for (;;) {\n let depth = 0, next = input.next;\n while (next == 32 /* ' ' */) next = input.peek(++depth);\n if (!depth && (three(input, 45, depth) || three(input, 46, depth))) break\n if (!isBreakSpace(next)) {\n if (indent < 0) indent = Math.max(stack.context.depth + 1, depth);\n if (depth < indent) break\n }\n for (;;) {\n if (input.next < 0) break scan\n let isBreak = isBreakSpace(input.next);\n input.advance();\n if (isBreak) continue scan\n upto = input.pos;\n }\n }\n input.acceptTokenTo(BlockLiteralContent, upto);\n});\n\nconst yamlHighlighting = styleTags({\n DirectiveName: tags.keyword,\n DirectiveContent: tags.attributeValue,\n \"DirectiveEnd DocEnd\": tags.meta,\n QuotedLiteral: tags.string,\n BlockLiteralHeader: tags.special(tags.string),\n BlockLiteralContent: tags.content,\n Literal: tags.content,\n \"Key/Literal Key/QuotedLiteral\": tags.definition(tags.propertyName),\n \"Anchor Alias\": tags.labelName,\n Tag: tags.typeName,\n Comment: tags.lineComment,\n \": , -\": tags.separator,\n \"?\": tags.punctuation,\n \"[ ]\": tags.squareBracket,\n \"{ }\": tags.brace\n});\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = LRParser.deserialize({\n version: 14,\n states: \"5lQ!ZQgOOO#PQfO'#CpO#uQfO'#DOOOQR'#Dv'#DvO$qQgO'#DRO%gQdO'#DUO%nQgO'#DUO&ROaO'#D[OOQR'#Du'#DuO&{QgO'#D^O'rQgO'#D`OOQR'#Dt'#DtO(iOqO'#DbOOQP'#Dj'#DjO(zQaO'#CmO)YQgO'#CmOOQP'#Cm'#CmQ)jQaOOQ)uQgOOQ]QgOOO*PQdO'#CrO*nQdO'#CtOOQO'#Dw'#DwO+]Q`O'#CxO+hQdO'#CwO+rQ`O'#CwOOQO'#Cv'#CvO+wQdO'#CvOOQO'#Cq'#CqO,UQ`O,59[O,^QfO,59[OOQR,59[,59[OOQO'#Cx'#CxO,eQ`O'#DPO,pQdO'#DPOOQO'#Dx'#DxO,zQdO'#DxO-XQ`O,59jO-aQfO,59jOOQR,59j,59jOOQR'#DS'#DSO-hQcO,59mO-sQgO'#DVO.TQ`O'#DVO.YQcO,59pOOQR'#DX'#DXO#|QfO'#DWO.hQcO'#DWOOQR,59v,59vO.yOWO,59vO/OOaO,59vO/WOaO,59vO/cQgO'#D_OOQR,59x,59xO0VQgO'#DaOOQR,59z,59zOOQP,59|,59|O0yOaO,59|O1ROaO,59|O1aOqO,59|OOQP-E7h-E7hO1oQgO,59XOOQP,59X,59XO2PQaO'#DeO2_QgO'#DeO2oQgO'#DkOOQP'#Dk'#DkQ)jQaOOO3PQdO'#CsOOQO,59^,59^O3kQdO'#CuOOQO,59`,59`OOQO,59c,59cO4VQdO,59cO4aQdO'#CzO4kQ`O'#CzOOQO,59b,59bOOQU,5:Q,5:QOOQR1G.v1G.vO4pQ`O1G.vOOQU-E7d-E7dO4xQdO,59kOOQO,59k,59kO5SQdO'#DQO5^Q`O'#DQOOQO,5:d,5:dOOQU,5:R,5:ROOQR1G/U1G/UO5cQ`O1G/UOOQU-E7e-E7eO5kQgO'#DhO5xQcO1G/XOOQR1G/X1G/XOOQR,59q,59qO6TQgO,59qO6eQdO'#DiO6lQgO'#DiO7PQcO1G/[OOQR1G/[1G/[OOQR,59r,59rO#|QfO,59rOOQR1G/b1G/bO7_OWO1G/bO7dOaO1G/bOOQR,59y,59yOOQR,59{,59{OOQP1G/h1G/hO7lOaO1G/hO7tOaO1G/hO8POaO1G/hOOQP1G.s1G.sO8_QgO,5:POOQP,5:P,5:POOQP,5:V,5:VOOQP-E7i-E7iOOQO,59_,59_OOQO,59a,59aOOQO1G.}1G.}OOQO,59f,59fO8oQdO,59fOOQR7+$b7+$bP,XQ`O'#DfOOQO1G/V1G/VOOQO,59l,59lO8yQdO,59lOOQR7+$p7+$pP9TQ`O'#DgOOQR'#DT'#DTOOQR,5:S,5:SOOQR-E7f-E7fOOQR7+$s7+$sOOQR1G/]1G/]O9YQgO'#DYO9jQ`O'#DYOOQR,5:T,5:TO#|QfO'#DZO9oQcO'#DZOOQR-E7g-E7gOOQR7+$v7+$vOOQR1G/^1G/^OOQR7+$|7+$|O:QOWO7+$|OOQP7+%S7+%SO:VOaO7+%SO:_OaO7+%SOOQP1G/k1G/kOOQO1G/Q1G/QOOQO1G/W1G/WOOQR,59t,59tO:jQgO,59tOOQR,59u,59uO#|QfO,59uOOQR<YAN>Y\",\n stateData: \";S~O!fOS!gOS^OS~OP_OQbORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!V[O!cTO~O`cO~P]OVkOWROXROYeOZfO[dOcPOmhOqQO~OboO~P!bOVtOWROXROYeOZfO[dOcPOmrOqQO~OpwO~P#WORSOTUOWROXROYYOZZO[XOcPOqQO!PVO!cTO~OSvP!avP!bvP~P#|OWROXROYeOZfO[dOcPOqQO~OmzO~P%OOm!OOUzP!azP!bzP!dzP~P#|O^!SO!b!QO!f!TO!g!RO~ORSOTUOWROXROcPOqQO!PVO!cTO~OY!UOP!QXQ!QX!V!QX!`!QXS!QX!a!QX!b!QXU!QXm!QX!d!QX~P&aO[!WOP!SXQ!SX!V!SX!`!SXS!SX!a!SX!b!SXU!SXm!SX!d!SX~P&aO^!ZO!W![O!b!YO!f!]O!g!YO~OP!_O!V[OQaX!`aX~OPaXQaX!VaX!`aX~P#|OP!bOQ!cO!V[O~OP_O!V[O~P#|OWROXROY!fOcPOqQObfXmfXofXpfX~OWROXRO[!hOcPOqQObhXmhXohXphX~ObeXmlXoeX~ObkXokX~P%OOm!kO~Om!lObnPonP~P%OOb!pOo!oO~Ob!pO~P!bOm!sOosXpsX~OosXpsX~P%OOm!uOotPptP~P%OOo!xOp!yO~Op!yO~P#WOS!|O!a#OO!b#OO~OUyX!ayX!byX!dyX~P#|Om#QO~OU#SO!a#UO!b#UO!d#RO~Om#WOUzX!azX!bzX!dzX~O]#XO~O!b#XO!g#YO~O^#ZO!b#XO!g#YO~OP!RXQ!RX!V!RX!`!RXS!RX!a!RX!b!RXU!RXm!RX!d!RX~P&aOP!TXQ!TX!V!TX!`!TXS!TX!a!TX!b!TXU!TXm!TX!d!TX~P&aO!b#^O!g#^O~O^#_O!b#^O!f#`O!g#^O~O^#_O!W#aO!b#^O!g#^O~OPaaQaa!Vaa!`aa~P#|OP#cO!V[OQ!XX!`!XX~OP!XXQ!XX!V!XX!`!XX~P#|OP_O!V[OQ!_X!`!_X~P#|OWROXROcPOqQObgXmgXogXpgX~OWROXROcPOqQObiXmiXoiXpiX~Obkaoka~P%OObnXonX~P%OOm#kO~Ob#lOo!oO~Oosapsa~P%OOotXptX~P%OOm#pO~Oo!xOp#qO~OSwP!awP!bwP~P#|OS!|O!a#vO!b#vO~OUya!aya!bya!dya~P#|Om#xO~P%OOm#{OU}P!a}P!b}P!d}P~P#|OU#SO!a$OO!b$OO!d#RO~O]$QO~O!b$QO!g$RO~O!b$SO!g$SO~O^$TO!b$SO!g$SO~O^$TO!b$SO!f$UO!g$SO~OP!XaQ!Xa!V!Xa!`!Xa~P#|Obnaona~P%OOotapta~P%OOo!xO~OU|X!a|X!b|X!d|X~P#|Om$ZO~Om$]OU}X!a}X!b}X!d}X~O]$^O~O!b$_O!g$_O~O^$`O!b$_O!g$_O~OU|a!a|a!b|a!d|a~P#|O!b$cO!g$cO~O\",\n goto: \",]!mPPPPPPPPPPPPPPPPP!nPP!v#v#|$`#|$c$f$j$nP%VPPP!v%Y%^%a%{&O%a&R&U&X&_&b%aP&e&{&e'O'RPP']'a'g'm's'y(XPPPPPPPP(_)e*X+c,VUaObcR#e!c!{ROPQSTUXY_bcdehknrtvz!O!U!W!_!b!c!f!h!k!l!s!u!|#Q#R#S#W#c#k#p#x#{$Z$]QmPR!qnqfPQThknrtv!k!l!s!u#R#k#pR!gdR!ieTlPnTjPnSiPnSqQvQ{TQ!mkQ!trQ!vtR#y#RR!nkTsQvR!wt!RWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]RySR#t!|R|TR|UQ!PUR#|#SR#z#RR#z#SyZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]R!VXR!XYa]O^abc!a!c!eT!da!eQnPR!rnQvQR!{vQ!}yR#u!}Q#T|R#}#TW^Obc!cS!^^!aT!aa!eQ!eaR#f!eW`Obc!cQxSS}U#SQ!`_Q#PzQ#V!OQ#b!_Q#d!bQ#s!|Q#w#QQ$P#WQ$V#cQ$Y#xQ$[#{Q$a$ZR$b$]xZOSU_bcz!O!_!b!c!|#Q#S#W#c#x#{$Z$]Q!VXQ!XYQ#[!UR#]!W!QWOSUXY_bcz!O!U!W!_!b!c!|#Q#S#W#c#x#{$Z$]pfPQThknrtv!k!l!s!u#R#k#pQ!gdQ!ieQ#g!fR#h!hSgPn^pQTkrtv#RQ!jhQ#i!kQ#j!lQ#n!sQ#o!uQ$W#kR$X#pQuQR!zv\",\n nodeNames: \"⚠ DirectiveEnd DocEnd - - ? ? ? Literal QuotedLiteral Anchor Alias Tag BlockLiteralContent Comment Stream BOM Document ] [ FlowSequence Item Tagged Anchored Anchored Tagged FlowMapping Pair Key : Pair , } { FlowMapping Pair Pair BlockSequence Item Item BlockMapping Pair Pair Key Pair Pair BlockLiteral BlockLiteralHeader Tagged Anchored Anchored Tagged Directive DirectiveName DirectiveContent Document\",\n maxTerm: 74,\n context: indentation,\n nodeProps: [\n [\"isolate\", -3,8,9,14,\"\"],\n [\"openedBy\", 18,\"[\",32,\"{\"],\n [\"closedBy\", 19,\"]\",33,\"}\"]\n ],\n propSources: [yamlHighlighting],\n skippedNodes: [0],\n repeatNodeCount: 6,\n tokenData: \"-Y~RnOX#PXY$QYZ$]Z]#P]^$]^p#Ppq$Qqs#Pst$btu#Puv$yv|#P|}&e}![#P![!]'O!]!`#P!`!a'i!a!}#P!}#O*g#O#P#P#P#Q+Q#Q#o#P#o#p+k#p#q'i#q#r,U#r;'S#P;'S;=`#z<%l?HT#P?HT?HU,o?HUO#PQ#UU!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PQ#kTOY#PZs#Pt;'S#P;'S;=`#z<%lO#PQ#}P;=`<%l#P~$VQ!f~XY$Qpq$Q~$bO!g~~$gS^~OY$bZ;'S$b;'S;=`$s<%lO$b~$vP;=`<%l$bR%OX!WQOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR%rX!WQ!VPOX%kXY#PZ]%k]^#P^p%kpq#hq;'S%k;'S;=`&_<%lO%kR&bP;=`<%l%kR&lUoP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'VUmP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR'p[!PP!WQOY#PZp#Ppq#hq{#P{|(f|}#P}!O(f!O!R#P!R![)p![;'S#P;'S;=`#z<%lO#PR(mW!PP!WQOY#PZp#Ppq#hq!R#P!R![)V![;'S#P;'S;=`#z<%lO#PR)^U!PP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR)wY!PP!WQOY#PZp#Ppq#hq{#P{|)V|}#P}!O)V!O;'S#P;'S;=`#z<%lO#PR*nUcP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+XUbP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR+rUqP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,]UpP!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#PR,vU`P!WQOY#PZp#Ppq#hq;'S#P;'S;=`#z<%lO#P\",\n tokenizers: [newlines, blockMark, literals, blockLiteral, 0, 1],\n topRules: {\"Stream\":[0,15]},\n tokenPrec: 0\n});\n\nexport { parser };\n"],"names":["blockEnd","Context","constructor","parent","depth","type","this","hash","findColumn","input","pos","col","p","ch","peek","isBreakSpace","isNonBreakSpace","isSpace","isSep","top","indentation","ContextTracker","start","reduce","context","term","shift","stack","indent","exec","read","three","off","arguments","length","undefined","newlines","ExternalTokenizer","next","canShift","acceptToken","prev","advance","contextual","blockMark","readTag","readAnchor","readQuoted","scanBrackets","readPlain","acceptTokenTo","hexChar","readUriChar","quoted","charTag","tag","scan","quote","lineBreak","end","push","pop","charTable","isSafe","inFlow","lineIndent","i","literals","token","blockLiteral","upto","Math","max","isBreak","yamlHighlighting","styleTags","DirectiveName","tags","keyword","DirectiveContent","attributeValue","meta","QuotedLiteral","string","BlockLiteralHeader","special","BlockLiteralContent","content","Literal","definition","propertyName","labelName","Tag","typeName","Comment","lineComment","separator","punctuation","squareBracket","brace","parser","LRParser","deserialize","version","states","stateData","goto","nodeNames","maxTerm","nodeProps","propSources","skippedNodes","repeatNodeCount","tokenData","tokenizers","topRules","tokenPrec"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6854.9528cab9.chunk.js b/static/js/6854.9528cab9.chunk.js new file mode 100644 index 000000000..cbfd36080 --- /dev/null +++ b/static/js/6854.9528cab9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6854],{76854:(n,e,a)=>{a.r(e),a.d(e,{default:()=>s});const s='# This is a TOML document. Boom.\n\ntitle = "TOML Example"\n\n[owner]\nname = "Tom Preston-Werner"\norganization = "GitHub"\nbio = "GitHub Cofounder & CEO\\nLikes tater tots and beer."\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\n\n[database]\nserver = "192.168.1.1"\nports = [ 8001, 8001, 8002 ]\nconnection_max = 5000\nenabled = true\n\n[servers]\n\n # You can indent as you please. Tabs or spaces. TOML don\'t care.\n [servers.alpha]\n ip = "10.0.0.1"\n dc = "eqdc10"\n \n [servers.beta]\n ip = "10.0.0.2"\n dc = "eqdc10"\n \n[clients]\ndata = [ ["gamma", "delta"], [1, 2] ]\n\n# Line breaks are OK when inside arrays\nhosts = [\n "alpha",\n "omega"\n]'}}]); +//# sourceMappingURL=6854.9528cab9.chunk.js.map \ No newline at end of file diff --git a/static/js/6854.9528cab9.chunk.js.map b/static/js/6854.9528cab9.chunk.js.map new file mode 100644 index 000000000..b3081483a --- /dev/null +++ b/static/js/6854.9528cab9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6854.9528cab9.chunk.js","mappings":"yHAAA,krB","sources":["../../node_modules/code-example/txt/sample.toml.txt"],"sourcesContent":["export default \"# This is a TOML document. Boom.\\n\\ntitle = \\\"TOML Example\\\"\\n\\n[owner]\\nname = \\\"Tom Preston-Werner\\\"\\norganization = \\\"GitHub\\\"\\nbio = \\\"GitHub Cofounder & CEO\\\\nLikes tater tots and beer.\\\"\\ndob = 1979-05-27T07:32:00Z # First class dates? Why not?\\n\\n[database]\\nserver = \\\"192.168.1.1\\\"\\nports = [ 8001, 8001, 8002 ]\\nconnection_max = 5000\\nenabled = true\\n\\n[servers]\\n\\n # You can indent as you please. Tabs or spaces. TOML don't care.\\n [servers.alpha]\\n ip = \\\"10.0.0.1\\\"\\n dc = \\\"eqdc10\\\"\\n \\n [servers.beta]\\n ip = \\\"10.0.0.2\\\"\\n dc = \\\"eqdc10\\\"\\n \\n[clients]\\ndata = [ [\\\"gamma\\\", \\\"delta\\\"], [1, 2] ]\\n\\n# Line breaks are OK when inside arrays\\nhosts = [\\n \\\"alpha\\\",\\n \\\"omega\\\"\\n]\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6868.22daa527.chunk.js b/static/js/6868.22daa527.chunk.js new file mode 100644 index 000000000..0a127ebe0 --- /dev/null +++ b/static/js/6868.22daa527.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6868],{66868:(r,e,n)=>{n.r(e),n.d(e,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Dracula Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-dracula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula)\n\n\n \"codemirror-theme-dracula\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-dracula --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { dracula } from '@uiw/codemirror-theme-dracula';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [dracula, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { dracula, draculaInit } from '@uiw/codemirror-theme-dracula';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsDracula: CreateThemeOptions['settings'];\nexport declare const draculaInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const dracula: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { dracula } from '@uiw/codemirror-theme-dracula';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { dracula } from '@uiw/codemirror-theme-dracula';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [dracula, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=6868.22daa527.chunk.js.map \ No newline at end of file diff --git a/static/js/6868.22daa527.chunk.js.map b/static/js/6868.22daa527.chunk.js.map new file mode 100644 index 000000000..c175ef734 --- /dev/null +++ b/static/js/6868.22daa527.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6868.22daa527.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,sgGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/dracula/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Dracula Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-dracula.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-dracula)\\n\\n\\n \\\"codemirror-theme-dracula\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-dracula --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { dracula } from '@uiw/codemirror-theme-dracula';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [dracula, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { dracula, draculaInit } from '@uiw/codemirror-theme-dracula';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsDracula: CreateThemeOptions['settings'];\\nexport declare const draculaInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const dracula: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { dracula } from '@uiw/codemirror-theme-dracula';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { dracula } from '@uiw/codemirror-theme-dracula';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [dracula, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/6927.f59ce960.chunk.js b/static/js/6927.f59ce960.chunk.js new file mode 100644 index 000000000..37302fc7e --- /dev/null +++ b/static/js/6927.f59ce960.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[6927],{6927:(r,e,n)=>{n.r(e),n.d(e,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# BBEdit Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-aura.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura)\n\n\n \"codemirror-theme-aura\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-aura --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { aura } from '@uiw/codemirror-theme-aura';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [aura, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tags as t } from '@lezer/highlight';\nimport { aura, auraInit } from '@uiw/codemirror-theme-aura';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsAura: CreateThemeOptions['settings'];\nexport declare const auraInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const aura: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { aura } from '@uiw/codemirror-theme-aura';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { aura } from '@uiw/codemirror-theme-aura';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [aura, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=6927.f59ce960.chunk.js.map \ No newline at end of file diff --git a/static/js/6927.f59ce960.chunk.js.map b/static/js/6927.f59ce960.chunk.js.map new file mode 100644 index 000000000..04a5d9b33 --- /dev/null +++ b/static/js/6927.f59ce960.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6927.f59ce960.chunk.js","mappings":"wHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,m8FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/aura/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# BBEdit Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-aura.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-aura)\\n\\n\\n \\\"codemirror-theme-aura\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-aura --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { aura } from '@uiw/codemirror-theme-aura';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [aura, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tags as t } from '@lezer/highlight';\\nimport { aura, auraInit } from '@uiw/codemirror-theme-aura';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsAura: CreateThemeOptions['settings'];\\nexport declare const auraInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const aura: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { aura } from '@uiw/codemirror-theme-aura';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { aura } from '@uiw/codemirror-theme-aura';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [aura, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7009.cc818a8d.chunk.js b/static/js/7009.cc818a8d.chunk.js new file mode 100644 index 000000000..7d9e16fe2 --- /dev/null +++ b/static/js/7009.cc818a8d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7009],{97009:(e,n,t)=>{t.r(n),t.d(n,{default:()=>i});const i="#include \"pch.h\"\n#include \"Direct3DBase.h\"\n\nusing namespace Microsoft::WRL;\nusing namespace Windows::UI::Core;\nusing namespace Windows::Foundation;\n\n// Constructor.\nDirect3DBase::Direct3DBase()\n{\n}\n\n// Initialize the Direct3D resources required to run.\nvoid Direct3DBase::Initialize(CoreWindow^ window)\n{\n m_window = window;\n \n CreateDeviceResources();\n CreateWindowSizeDependentResources();\n}\n\n// These are the resources that depend on the device.\nvoid Direct3DBase::CreateDeviceResources()\n{\n // This flag adds support for surfaces with a different color channel ordering than the API default.\n // It is recommended usage, and is required for compatibility with Direct2D.\n UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;\n\n#if defined(_DEBUG)\n // If the project is in a debug build, enable debugging via SDK Layers with this flag.\n creationFlags |= D3D11_CREATE_DEVICE_DEBUG;\n#endif\n\n // This array defines the set of DirectX hardware feature levels this app will support.\n // Note the ordering should be preserved.\n // Don't forget to declare your application's minimum required feature level in its\n // description. All applications are assumed to support 9.1 unless otherwise stated.\n D3D_FEATURE_LEVEL featureLevels[] = \n {\n D3D_FEATURE_LEVEL_11_1,\n D3D_FEATURE_LEVEL_11_0,\n D3D_FEATURE_LEVEL_10_1,\n D3D_FEATURE_LEVEL_10_0,\n D3D_FEATURE_LEVEL_9_3,\n D3D_FEATURE_LEVEL_9_2,\n D3D_FEATURE_LEVEL_9_1\n };\n\n // Create the DX11 API device object, and get a corresponding context.\n ComPtr device;\n ComPtr context;\n DX::ThrowIfFailed(\n D3D11CreateDevice(\n nullptr, // specify null to use the default adapter\n D3D_DRIVER_TYPE_HARDWARE,\n nullptr, // leave as nullptr unless software device\n creationFlags, // optionally set debug and Direct2D compatibility flags\n featureLevels, // list of feature levels this app can support\n ARRAYSIZE(featureLevels), // number of entries in above list\n D3D11_SDK_VERSION, // always set this to D3D11_SDK_VERSION\n &device, // returns the Direct3D device created\n &m_featureLevel, // returns feature level of device created\n &context // returns the device immediate context\n )\n );\n\n // Get the DirectX11.1 device by QI off the DirectX11 one.\n DX::ThrowIfFailed(\n device.As(&m_d3dDevice)\n );\n\n // And get the corresponding device context in the same way.\n DX::ThrowIfFailed(\n context.As(&m_d3dContext)\n );\n}\n\n// Allocate all memory resources that change on a window SizeChanged event.\nvoid Direct3DBase::CreateWindowSizeDependentResources()\n{ \n // Store the window bounds so the next time we get a SizeChanged event we can\n // avoid rebuilding everything if the size is identical.\n m_windowBounds = m_window->Bounds;\n\n // If the swap chain already exists, resize it.\n if(m_swapChain != nullptr)\n {\n DX::ThrowIfFailed(\n m_swapChain->ResizeBuffers(2, 0, 0, DXGI_FORMAT_B8G8R8A8_UNORM, 0)\n );\n }\n // Otherwise, create a new one.\n else\n {\n // Create a descriptor for the swap chain.\n DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0};\n swapChainDesc.Width = 0; // use automatic sizing\n swapChainDesc.Height = 0;\n swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // this is the most common swapchain format\n swapChainDesc.Stereo = false; \n swapChainDesc.SampleDesc.Count = 1; // don't use multi-sampling\n swapChainDesc.SampleDesc.Quality = 0;\n swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;\n swapChainDesc.BufferCount = 2; // use two buffers to enable flip effect\n swapChainDesc.Scaling = DXGI_SCALING_NONE;\n swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; // we recommend using this swap effect for all applications\n swapChainDesc.Flags = 0;\n\n // Once the desired swap chain description is configured, it must be created on the same adapter as our D3D Device\n\n // First, retrieve the underlying DXGI Device from the D3D Device\n ComPtr dxgiDevice;\n DX::ThrowIfFailed(\n m_d3dDevice.As(&dxgiDevice)\n );\n\n // Identify the physical adapter (GPU or card) this device is running on.\n ComPtr dxgiAdapter;\n DX::ThrowIfFailed(\n dxgiDevice->GetAdapter(&dxgiAdapter)\n );\n\n // And obtain the factory object that created it.\n ComPtr dxgiFactory;\n DX::ThrowIfFailed(\n dxgiAdapter->GetParent(\n __uuidof(IDXGIFactory2), \n &dxgiFactory\n )\n );\n\n Windows::UI::Core::CoreWindow^ p = m_window.Get();\n\n // Create a swap chain for this window from the DXGI factory.\n DX::ThrowIfFailed(\n dxgiFactory->CreateSwapChainForCoreWindow(\n m_d3dDevice.Get(),\n reinterpret_cast(p),\n &swapChainDesc,\n nullptr, // allow on all displays\n &m_swapChain\n )\n );\n \n // Ensure that DXGI does not queue more than one frame at a time. This both reduces \n // latency and ensures that the application will only render after each VSync, minimizing \n // power consumption.\n DX::ThrowIfFailed(\n dxgiDevice->SetMaximumFrameLatency(1)\n );\n }\n \n // Obtain the backbuffer for this window which will be the final 3D rendertarget.\n ComPtr backBuffer;\n DX::ThrowIfFailed(\n m_swapChain->GetBuffer(\n 0,\n __uuidof(ID3D11Texture2D),\n &backBuffer\n )\n );\n\n // Create a view interface on the rendertarget to use on bind.\n DX::ThrowIfFailed(\n m_d3dDevice->CreateRenderTargetView(\n backBuffer.Get(),\n nullptr,\n &m_renderTargetView\n )\n );\n\n // Cache the rendertarget dimensions in our helper class for convenient use.\n D3D11_TEXTURE2D_DESC backBufferDesc;\n backBuffer->GetDesc(&backBufferDesc);\n m_renderTargetSize.Width = static_cast(backBufferDesc.Width);\n m_renderTargetSize.Height = static_cast(backBufferDesc.Height);\n\n // Create a descriptor for the depth/stencil buffer.\n CD3D11_TEXTURE2D_DESC depthStencilDesc(\n DXGI_FORMAT_D24_UNORM_S8_UINT, \n backBufferDesc.Width,\n backBufferDesc.Height,\n 1,\n 1,\n D3D11_BIND_DEPTH_STENCIL);\n\n // Allocate a 2-D surface as the depth/stencil buffer.\n ComPtr depthStencil;\n DX::ThrowIfFailed(\n m_d3dDevice->CreateTexture2D(\n &depthStencilDesc,\n nullptr,\n &depthStencil\n )\n );\n\n // Create a DepthStencil view on this surface to use on bind.\n DX::ThrowIfFailed(\n m_d3dDevice->CreateDepthStencilView(\n depthStencil.Get(),\n &CD3D11_DEPTH_STENCIL_VIEW_DESC(D3D11_DSV_DIMENSION_TEXTURE2D),\n &m_depthStencilView\n )\n );\n\n // Create a viewport descriptor of the full window size.\n CD3D11_VIEWPORT viewPort(\n 0.0f,\n 0.0f,\n static_cast(backBufferDesc.Width),\n static_cast(backBufferDesc.Height)\n );\n \n // Set the current viewport using the descriptor.\n m_d3dContext->RSSetViewports(1, &viewPort);\n}\n\nvoid Direct3DBase::UpdateForWindowSizeChange()\n{\n if (m_window->Bounds.Width != m_windowBounds.Width ||\n m_window->Bounds.Height != m_windowBounds.Height)\n {\n m_renderTargetView = nullptr;\n m_depthStencilView = nullptr;\n CreateWindowSizeDependentResources();\n }\n}\n\nvoid Direct3DBase::Present()\n{\n // The first argument instructs DXGI to block until VSync, putting the application\n // to sleep until the next VSync. This ensures we don't waste any cycles rendering\n // frames that will never be displayed to the screen.\n HRESULT hr = m_swapChain->Present(1, 0);\n\n // If the device was removed either by a disconnect or a driver upgrade, we \n // must completely reinitialize the renderer.\n if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET)\n {\n Initialize(m_window.Get());\n }\n else\n {\n DX::ThrowIfFailed(hr);\n }\n}\n"}}]); +//# sourceMappingURL=7009.cc818a8d.chunk.js.map \ No newline at end of file diff --git a/static/js/7009.cc818a8d.chunk.js.map b/static/js/7009.cc818a8d.chunk.js.map new file mode 100644 index 000000000..04be866c8 --- /dev/null +++ b/static/js/7009.cc818a8d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7009.cc818a8d.chunk.js","mappings":"yHAAA,w2R","sources":["../../node_modules/code-example/txt/sample.cpp.txt"],"sourcesContent":["export default \"#include \\\"pch.h\\\"\\n#include \\\"Direct3DBase.h\\\"\\n\\nusing namespace Microsoft::WRL;\\nusing namespace Windows::UI::Core;\\nusing namespace Windows::Foundation;\\n\\n// Constructor.\\nDirect3DBase::Direct3DBase()\\n{\\n}\\n\\n// Initialize the Direct3D resources required to run.\\nvoid Direct3DBase::Initialize(CoreWindow^ window)\\n{\\n m_window = window;\\n \\n CreateDeviceResources();\\n CreateWindowSizeDependentResources();\\n}\\n\\n// These are the resources that depend on the device.\\nvoid Direct3DBase::CreateDeviceResources()\\n{\\n // This flag adds support for surfaces with a different color channel ordering than the API default.\\n // It is recommended usage, and is required for compatibility with Direct2D.\\n UINT creationFlags = D3D11_CREATE_DEVICE_BGRA_SUPPORT;\\n\\n#if defined(_DEBUG)\\n // If the project is in a debug build, enable debugging via SDK Layers with this flag.\\n creationFlags |= D3D11_CREATE_DEVICE_DEBUG;\\n#endif\\n\\n // This array defines the set of DirectX hardware feature levels this app will support.\\n // Note the ordering should be preserved.\\n // Don't forget to declare your application's minimum required feature level in its\\n // description. All applications are assumed to support 9.1 unless otherwise stated.\\n D3D_FEATURE_LEVEL featureLevels[] = \\n {\\n D3D_FEATURE_LEVEL_11_1,\\n D3D_FEATURE_LEVEL_11_0,\\n D3D_FEATURE_LEVEL_10_1,\\n D3D_FEATURE_LEVEL_10_0,\\n D3D_FEATURE_LEVEL_9_3,\\n D3D_FEATURE_LEVEL_9_2,\\n D3D_FEATURE_LEVEL_9_1\\n };\\n\\n // Create the DX11 API device object, and get a corresponding context.\\n ComPtr device;\\n ComPtr context;\\n DX::ThrowIfFailed(\\n D3D11CreateDevice(\\n nullptr, // specify null to use the default adapter\\n D3D_DRIVER_TYPE_HARDWARE,\\n nullptr, // leave as nullptr unless software device\\n creationFlags, // optionally set debug and Direct2D compatibility flags\\n featureLevels, // list of feature levels this app can support\\n ARRAYSIZE(featureLevels), // number of entries in above list\\n D3D11_SDK_VERSION, // always set this to D3D11_SDK_VERSION\\n &device, // returns the Direct3D device created\\n &m_featureLevel, // returns feature level of device created\\n &context // returns the device immediate context\\n )\\n );\\n\\n // Get the DirectX11.1 device by QI off the DirectX11 one.\\n DX::ThrowIfFailed(\\n device.As(&m_d3dDevice)\\n );\\n\\n // And get the corresponding device context in the same way.\\n DX::ThrowIfFailed(\\n context.As(&m_d3dContext)\\n );\\n}\\n\\n// Allocate all memory resources that change on a window SizeChanged event.\\nvoid Direct3DBase::CreateWindowSizeDependentResources()\\n{ \\n // Store the window bounds so the next time we get a SizeChanged event we can\\n // avoid rebuilding everything if the size is identical.\\n m_windowBounds = m_window->Bounds;\\n\\n // If the swap chain already exists, resize it.\\n if(m_swapChain != nullptr)\\n {\\n DX::ThrowIfFailed(\\n m_swapChain->ResizeBuffers(2, 0, 0, DXGI_FORMAT_B8G8R8A8_UNORM, 0)\\n );\\n }\\n // Otherwise, create a new one.\\n else\\n {\\n // Create a descriptor for the swap chain.\\n DXGI_SWAP_CHAIN_DESC1 swapChainDesc = {0};\\n swapChainDesc.Width = 0; // use automatic sizing\\n swapChainDesc.Height = 0;\\n swapChainDesc.Format = DXGI_FORMAT_B8G8R8A8_UNORM; // this is the most common swapchain format\\n swapChainDesc.Stereo = false; \\n swapChainDesc.SampleDesc.Count = 1; // don't use multi-sampling\\n swapChainDesc.SampleDesc.Quality = 0;\\n swapChainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT;\\n swapChainDesc.BufferCount = 2; // use two buffers to enable flip effect\\n swapChainDesc.Scaling = DXGI_SCALING_NONE;\\n swapChainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; // we recommend using this swap effect for all applications\\n swapChainDesc.Flags = 0;\\n\\n // Once the desired swap chain description is configured, it must be created on the same adapter as our D3D Device\\n\\n // First, retrieve the underlying DXGI Device from the D3D Device\\n ComPtr dxgiDevice;\\n DX::ThrowIfFailed(\\n m_d3dDevice.As(&dxgiDevice)\\n );\\n\\n // Identify the physical adapter (GPU or card) this device is running on.\\n ComPtr dxgiAdapter;\\n DX::ThrowIfFailed(\\n dxgiDevice->GetAdapter(&dxgiAdapter)\\n );\\n\\n // And obtain the factory object that created it.\\n ComPtr dxgiFactory;\\n DX::ThrowIfFailed(\\n dxgiAdapter->GetParent(\\n __uuidof(IDXGIFactory2), \\n &dxgiFactory\\n )\\n );\\n\\n Windows::UI::Core::CoreWindow^ p = m_window.Get();\\n\\n // Create a swap chain for this window from the DXGI factory.\\n DX::ThrowIfFailed(\\n dxgiFactory->CreateSwapChainForCoreWindow(\\n m_d3dDevice.Get(),\\n reinterpret_cast(p),\\n &swapChainDesc,\\n nullptr, // allow on all displays\\n &m_swapChain\\n )\\n );\\n \\n // Ensure that DXGI does not queue more than one frame at a time. This both reduces \\n // latency and ensures that the application will only render after each VSync, minimizing \\n // power consumption.\\n DX::ThrowIfFailed(\\n dxgiDevice->SetMaximumFrameLatency(1)\\n );\\n }\\n \\n // Obtain the backbuffer for this window which will be the final 3D rendertarget.\\n ComPtr backBuffer;\\n DX::ThrowIfFailed(\\n m_swapChain->GetBuffer(\\n 0,\\n __uuidof(ID3D11Texture2D),\\n &backBuffer\\n )\\n );\\n\\n // Create a view interface on the rendertarget to use on bind.\\n DX::ThrowIfFailed(\\n m_d3dDevice->CreateRenderTargetView(\\n backBuffer.Get(),\\n nullptr,\\n &m_renderTargetView\\n )\\n );\\n\\n // Cache the rendertarget dimensions in our helper class for convenient use.\\n D3D11_TEXTURE2D_DESC backBufferDesc;\\n backBuffer->GetDesc(&backBufferDesc);\\n m_renderTargetSize.Width = static_cast(backBufferDesc.Width);\\n m_renderTargetSize.Height = static_cast(backBufferDesc.Height);\\n\\n // Create a descriptor for the depth/stencil buffer.\\n CD3D11_TEXTURE2D_DESC depthStencilDesc(\\n DXGI_FORMAT_D24_UNORM_S8_UINT, \\n backBufferDesc.Width,\\n backBufferDesc.Height,\\n 1,\\n 1,\\n D3D11_BIND_DEPTH_STENCIL);\\n\\n // Allocate a 2-D surface as the depth/stencil buffer.\\n ComPtr depthStencil;\\n DX::ThrowIfFailed(\\n m_d3dDevice->CreateTexture2D(\\n &depthStencilDesc,\\n nullptr,\\n &depthStencil\\n )\\n );\\n\\n // Create a DepthStencil view on this surface to use on bind.\\n DX::ThrowIfFailed(\\n m_d3dDevice->CreateDepthStencilView(\\n depthStencil.Get(),\\n &CD3D11_DEPTH_STENCIL_VIEW_DESC(D3D11_DSV_DIMENSION_TEXTURE2D),\\n &m_depthStencilView\\n )\\n );\\n\\n // Create a viewport descriptor of the full window size.\\n CD3D11_VIEWPORT viewPort(\\n 0.0f,\\n 0.0f,\\n static_cast(backBufferDesc.Width),\\n static_cast(backBufferDesc.Height)\\n );\\n \\n // Set the current viewport using the descriptor.\\n m_d3dContext->RSSetViewports(1, &viewPort);\\n}\\n\\nvoid Direct3DBase::UpdateForWindowSizeChange()\\n{\\n if (m_window->Bounds.Width != m_windowBounds.Width ||\\n m_window->Bounds.Height != m_windowBounds.Height)\\n {\\n m_renderTargetView = nullptr;\\n m_depthStencilView = nullptr;\\n CreateWindowSizeDependentResources();\\n }\\n}\\n\\nvoid Direct3DBase::Present()\\n{\\n // The first argument instructs DXGI to block until VSync, putting the application\\n // to sleep until the next VSync. This ensures we don't waste any cycles rendering\\n // frames that will never be displayed to the screen.\\n HRESULT hr = m_swapChain->Present(1, 0);\\n\\n // If the device was removed either by a disconnect or a driver upgrade, we \\n // must completely reinitialize the renderer.\\n if (hr == DXGI_ERROR_DEVICE_REMOVED || hr == DXGI_ERROR_DEVICE_RESET)\\n {\\n Initialize(m_window.Get());\\n }\\n else\\n {\\n DX::ThrowIfFailed(hr);\\n }\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/702.32d41073.chunk.js b/static/js/702.32d41073.chunk.js new file mode 100644 index 000000000..7232e25be --- /dev/null +++ b/static/js/702.32d41073.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[702],{30702:(e,t,o)=>{o.r(t),o.d(t,{default:()=>n});const n={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Duotone Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-duotone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone)\n\n\n \"codemirror-theme-duotone\"\n\n\n\n \"codemirror-theme-duotone\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-duotone --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [duotoneDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { duotoneLight, duotoneLightInit, duotoneDark, duotoneDarkInit } from '@uiw/codemirror-theme-duotone';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsDuotoneLight: CreateThemeOptions['settings'];\nexport declare const duotoneLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const duotoneLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsDuotoneDark: CreateThemeOptions['settings'];\nexport declare const duotoneDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const duotoneDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [duotoneDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n\nby Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=702.32d41073.chunk.js.map \ No newline at end of file diff --git a/static/js/702.32d41073.chunk.js.map b/static/js/702.32d41073.chunk.js.map new file mode 100644 index 000000000..784b9bad8 --- /dev/null +++ b/static/js/702.32d41073.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/702.32d41073.chunk.js","mappings":"wHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,mqHACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/duotone/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Duotone Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-duotone.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-duotone)\\n\\n\\n \\\"codemirror-theme-duotone\\\"\\n\\n\\n\\n \\\"codemirror-theme-duotone\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-duotone --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [duotoneDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { duotoneLight, duotoneLightInit, duotoneDark, duotoneDarkInit } from '@uiw/codemirror-theme-duotone';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsDuotoneLight: CreateThemeOptions['settings'];\\nexport declare const duotoneLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const duotoneLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsDuotoneDark: CreateThemeOptions['settings'];\\nexport declare const duotoneDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const duotoneDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { duotoneLight, duotoneDark } from '@uiw/codemirror-theme-duotone';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [duotoneDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\\nby Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/706.07be82ad.chunk.js b/static/js/706.07be82ad.chunk.js new file mode 100644 index 000000000..74190bd87 --- /dev/null +++ b/static/js/706.07be82ad.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[706],{30706:(n,e,s)=>{s.r(e),s.d(e,{default:()=>a});const a='server {\n listen 173.255.219.235:80;\n server_name website.com.au;\n rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n listen 173.255.219.235:443;\n server_name website.com.au;\n rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\n}\n\nserver {\n\n listen 173.255.219.235:80;\n server_name www.website.com.au;\n\n\n\n root /data/www;\n index index.html index.php;\n\n location / {\n index index.html index.php; ## Allow a static html file to be shown first\n try_files $uri $uri/ @handler; ## If missing pass the URI to Magento\'s front handler\n expires 30d; ## Assume all files are cachable\n }\n\n ## These locations would be hidden by .htaccess normally\n location /app/ { deny all; }\n location /includes/ { deny all; }\n location /lib/ { deny all; }\n location /media/downloadable/ { deny all; }\n location /pkginfo/ { deny all; }\n location /report/config.xml { deny all; }\n location /var/ { deny all; }\n\n location /var/export/ { ## Allow admins only to view export folder\n auth_basic "Restricted"; ## Message shown in login window\n auth_basic_user_file /rs/passwords/testfile; ## See /etc/nginx/htpassword\n autoindex on;\n }\n\n location /. { ## Disable .htaccess and other hidden files\n return 404;\n }\n\n location @handler { ## Magento uses a common front handler\n rewrite / /index.php;\n }\n\n location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n rewrite ^/(.*.php)/ /$1 last;\n }\n\n location ~ \\\\.php$ {\n if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss\n\n fastcgi_pass 127.0.0.1:9000;\n fastcgi_index index.php;\n fastcgi_param PATH_INFO $fastcgi_script_name;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n include /rs/confs/nginx/fastcgi_params;\n }\n\n}\n\n\nserver {\n\n listen 173.255.219.235:443;\n server_name website.com.au www.website.com.au;\n\n root /data/www;\n index index.html index.php;\n\n ssl on;\n ssl_certificate /rs/ssl/ssl.crt;\n ssl_certificate_key /rs/ssl/ssl.key;\n\n ssl_session_timeout 5m;\n\n ssl_protocols SSLv2 SSLv3 TLSv1;\n ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\n ssl_prefer_server_ciphers on;\n\n\n\n location / {\n index index.html index.php; ## Allow a static html file to be shown first\n try_files $uri $uri/ @handler; ## If missing pass the URI to Magento\'s front handler\n expires 30d; ## Assume all files are cachable\n }\n\n ## These locations would be hidden by .htaccess normally\n location /app/ { deny all; }\n location /includes/ { deny all; }\n location /lib/ { deny all; }\n location /media/downloadable/ { deny all; }\n location /pkginfo/ { deny all; }\n location /report/config.xml { deny all; }\n location /var/ { deny all; }\n\n location /var/export/ { ## Allow admins only to view export folder\n auth_basic "Restricted"; ## Message shown in login window\n auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword\n autoindex on;\n }\n\n location /. { ## Disable .htaccess and other hidden files\n return 404;\n }\n\n location @handler { ## Magento uses a common front handler\n rewrite / /index.php;\n }\n\n location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\n rewrite ^/(.*.php)/ /$1 last;\n }\n\n location ~ .php$ { ## Execute PHP scripts\n if (!-e $request_filename) { rewrite /index.php last; } ## Catch 404s that try_files miss\n\n fastcgi_pass 127.0.0.1:9000;\n fastcgi_index index.php;\n fastcgi_param PATH_INFO $fastcgi_script_name;\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\n include /rs/confs/nginx/fastcgi_params;\n\n fastcgi_param HTTPS on;\n }\n\n}\n'}}]); +//# sourceMappingURL=706.07be82ad.chunk.js.map \ No newline at end of file diff --git a/static/js/706.07be82ad.chunk.js.map b/static/js/706.07be82ad.chunk.js.map new file mode 100644 index 000000000..0ab4ba858 --- /dev/null +++ b/static/js/706.07be82ad.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/706.07be82ad.chunk.js","mappings":"wHAAA,+jI","sources":["../../node_modules/code-example/txt/sample.nginx.txt"],"sourcesContent":["export default \"server {\\n listen 173.255.219.235:80;\\n server_name website.com.au;\\n rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\\n}\\n\\nserver {\\n listen 173.255.219.235:443;\\n server_name website.com.au;\\n rewrite / $scheme://www.$host$request_uri permanent; ## Forcibly prepend a www\\n}\\n\\nserver {\\n\\n listen 173.255.219.235:80;\\n server_name www.website.com.au;\\n\\n\\n\\n root /data/www;\\n index index.html index.php;\\n\\n location / {\\n index index.html index.php; ## Allow a static html file to be shown first\\n try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler\\n expires 30d; ## Assume all files are cachable\\n }\\n\\n ## These locations would be hidden by .htaccess normally\\n location /app/ { deny all; }\\n location /includes/ { deny all; }\\n location /lib/ { deny all; }\\n location /media/downloadable/ { deny all; }\\n location /pkginfo/ { deny all; }\\n location /report/config.xml { deny all; }\\n location /var/ { deny all; }\\n\\n location /var/export/ { ## Allow admins only to view export folder\\n auth_basic \\\"Restricted\\\"; ## Message shown in login window\\n auth_basic_user_file /rs/passwords/testfile; ## See /etc/nginx/htpassword\\n autoindex on;\\n }\\n\\n location /. { ## Disable .htaccess and other hidden files\\n return 404;\\n }\\n\\n location @handler { ## Magento uses a common front handler\\n rewrite / /index.php;\\n }\\n\\n location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\\n rewrite ^/(.*.php)/ /$1 last;\\n }\\n\\n location ~ \\\\\\\\.php$ {\\n if (!-e $request_filename) { rewrite / /index.php last; } ## Catch 404s that try_files miss\\n\\n fastcgi_pass 127.0.0.1:9000;\\n fastcgi_index index.php;\\n fastcgi_param PATH_INFO $fastcgi_script_name;\\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\\n include /rs/confs/nginx/fastcgi_params;\\n }\\n\\n}\\n\\n\\nserver {\\n\\n listen 173.255.219.235:443;\\n server_name website.com.au www.website.com.au;\\n\\n root /data/www;\\n index index.html index.php;\\n\\n ssl on;\\n ssl_certificate /rs/ssl/ssl.crt;\\n ssl_certificate_key /rs/ssl/ssl.key;\\n\\n ssl_session_timeout 5m;\\n\\n ssl_protocols SSLv2 SSLv3 TLSv1;\\n ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;\\n ssl_prefer_server_ciphers on;\\n\\n\\n\\n location / {\\n index index.html index.php; ## Allow a static html file to be shown first\\n try_files $uri $uri/ @handler; ## If missing pass the URI to Magento's front handler\\n expires 30d; ## Assume all files are cachable\\n }\\n\\n ## These locations would be hidden by .htaccess normally\\n location /app/ { deny all; }\\n location /includes/ { deny all; }\\n location /lib/ { deny all; }\\n location /media/downloadable/ { deny all; }\\n location /pkginfo/ { deny all; }\\n location /report/config.xml { deny all; }\\n location /var/ { deny all; }\\n\\n location /var/export/ { ## Allow admins only to view export folder\\n auth_basic \\\"Restricted\\\"; ## Message shown in login window\\n auth_basic_user_file htpasswd; ## See /etc/nginx/htpassword\\n autoindex on;\\n }\\n\\n location /. { ## Disable .htaccess and other hidden files\\n return 404;\\n }\\n\\n location @handler { ## Magento uses a common front handler\\n rewrite / /index.php;\\n }\\n\\n location ~ .php/ { ## Forward paths like /js/index.php/x.js to relevant handler\\n rewrite ^/(.*.php)/ /$1 last;\\n }\\n\\n location ~ .php$ { ## Execute PHP scripts\\n if (!-e $request_filename) { rewrite /index.php last; } ## Catch 404s that try_files miss\\n\\n fastcgi_pass 127.0.0.1:9000;\\n fastcgi_index index.php;\\n fastcgi_param PATH_INFO $fastcgi_script_name;\\n fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;\\n include /rs/confs/nginx/fastcgi_params;\\n\\n fastcgi_param HTTPS on;\\n }\\n\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7107.03d4ce59.chunk.js b/static/js/7107.03d4ce59.chunk.js new file mode 100644 index 000000000..493bcff83 --- /dev/null +++ b/static/js/7107.03d4ce59.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7107],{7107:(e,n,t)=>{t.r(n),t.d(n,{default:()=>i});const i='//\n// Copyright (c) Microsoft Corporation. All rights reserved.\n//\n\n#import "UseQuotes.h"\n#import \n\n/*\n Multi \n Line\n Comments \n*/\n@implementation Test\n\n- (void) applicationWillFinishLaunching:(NSNotification *)notification\n{\n}\n\n- (IBAction)onSelectInput:(id)sender\n{\n NSString* defaultDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0];\n \n NSOpenPanel* panel = [NSOpenPanel openPanel];\n [panel setAllowedFileTypes:[[NSArray alloc] initWithObjects:@"ipa", @"xcarchive", @"app", nil]];\n \n [panel beginWithCompletionHandler:^(NSInteger result)\n {\n if (result == NSFileHandlingPanelOKButton)\n [self.inputTextField setStringValue:[panel.URL path]];\n }];\n return YES;\n\n int hex = 0xFEF1F0F;\n float ing = 3.14;\n ing = 3.14e0;\n ing = 31.4e-2;\n}\n\n-(id) initWithParams:(id) aHandler withDeviceStateManager:(id) deviceStateManager\n{\n // add a tap gesture recognizer\n UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];\n NSMutableArray *gestureRecognizers = [NSMutableArray array];\n [gestureRecognizers addObject:tapGesture];\n [gestureRecognizers addObjectsFromArray:scnView.gestureRecognizers];\n scnView.gestureRecognizers = gestureRecognizers;\n\n return tapGesture;\n return nil;\n}\n\n@end\n'}}]); +//# sourceMappingURL=7107.03d4ce59.chunk.js.map \ No newline at end of file diff --git a/static/js/7107.03d4ce59.chunk.js.map b/static/js/7107.03d4ce59.chunk.js.map new file mode 100644 index 000000000..a62f65fad --- /dev/null +++ b/static/js/7107.03d4ce59.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7107.03d4ce59.chunk.js","mappings":"wHAAA,47C","sources":["../../node_modules/code-example/txt/sample.objective-c.txt"],"sourcesContent":["export default \"//\\n// Copyright (c) Microsoft Corporation. All rights reserved.\\n//\\n\\n#import \\\"UseQuotes.h\\\"\\n#import \\n\\n/*\\n Multi \\n Line\\n Comments \\n*/\\n@implementation Test\\n\\n- (void) applicationWillFinishLaunching:(NSNotification *)notification\\n{\\n}\\n\\n- (IBAction)onSelectInput:(id)sender\\n{\\n NSString* defaultDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0];\\n \\n NSOpenPanel* panel = [NSOpenPanel openPanel];\\n [panel setAllowedFileTypes:[[NSArray alloc] initWithObjects:@\\\"ipa\\\", @\\\"xcarchive\\\", @\\\"app\\\", nil]];\\n \\n [panel beginWithCompletionHandler:^(NSInteger result)\\n {\\n if (result == NSFileHandlingPanelOKButton)\\n [self.inputTextField setStringValue:[panel.URL path]];\\n }];\\n return YES;\\n\\n int hex = 0xFEF1F0F;\\n float ing = 3.14;\\n ing = 3.14e0;\\n ing = 31.4e-2;\\n}\\n\\n-(id) initWithParams:(id) aHandler withDeviceStateManager:(id) deviceStateManager\\n{\\n // add a tap gesture recognizer\\n UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)];\\n NSMutableArray *gestureRecognizers = [NSMutableArray array];\\n [gestureRecognizers addObject:tapGesture];\\n [gestureRecognizers addObjectsFromArray:scnView.gestureRecognizers];\\n scnView.gestureRecognizers = gestureRecognizers;\\n\\n return tapGesture;\\n return nil;\\n}\\n\\n@end\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7238.fe6139fc.chunk.js b/static/js/7238.fe6139fc.chunk.js new file mode 100644 index 000000000..26e3092db --- /dev/null +++ b/static/js/7238.fe6139fc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7238],{47238:(e,n,s)=>{s.r(n),s.d(n,{Component:()=>c});var t=s(73562),i=s(80905),r=s(67538),d=s(98557);class o extends r.xO{toDOM(){const e=document.createElement("span");return e.className="filler",e}}const l=[(0,r.$K)(),(0,r.VH)(),r.Z9.define((()=>({decorations:r.NZ.set([r.NZ.widget({widget:new o,side:1}).range(34),r.NZ.mark({class:"wrapper"}).range(60,70),r.NZ.widget({widget:new o,side:1}).range(67)])})),{decorations:e=>e.decorations}),r.Lz.baseTheme({".filler":{display:"inline-block",width:"8px",height:"1em",backgroundColor:"#9c9"},".wrapper":{border:"1px solid #aaa"}})],a="The cursor is before this widget:\n\nThe cursor is after this widget\ndsddfsdfsdfdf\nIs this how it should work?";function c(){let e=(0,i.useRef)(null);return(0,d.jsx)("div",{children:(0,d.jsx)(t.default,{value:a,theme:"none",ref:function(n){!e.current&&null!==n&&void 0!==n&&n.editor&&null!==n&&void 0!==n&&n.state&&null!==n&&void 0!==n&&n.view&&(console.log(n),e.current=n)},height:"400px",width:"100%",style:{margin:"0 0 23px 0",flex:1},extensions:[l]})})}c.displayName="HomePage"}}]); +//# sourceMappingURL=7238.fe6139fc.chunk.js.map \ No newline at end of file diff --git a/static/js/7238.fe6139fc.chunk.js.map b/static/js/7238.fe6139fc.chunk.js.map new file mode 100644 index 000000000..28dc2426b --- /dev/null +++ b/static/js/7238.fe6139fc.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7238.fe6139fc.chunk.js","mappings":"2KAKA,MAAMA,UAAqBC,EAAAA,GACzBC,KAAAA,GACE,MAAMC,EAAUC,SAASC,cAAc,QAEvC,OADAF,EAAQG,UAAY,SACbH,CACT,EAGF,MAAMI,EAAa,EACjBC,EAAAA,EAAAA,OACAC,EAAAA,EAAAA,MACAC,EAAAA,GAAWC,QACT,KACS,CACLC,YAAaC,EAAAA,GAAWC,IAAI,CAC1BD,EAAAA,GAAWE,OAAO,CAChBA,OAAQ,IAAIf,EACZgB,KAAM,IACLC,MAAM,IAETJ,EAAAA,GAAWK,KAAK,CACdC,MAAO,YACNF,MAAM,GAAI,IAEbJ,EAAAA,GAAWE,OAAO,CAChBA,OAAQ,IAAIf,EACZgB,KAAM,IACLC,MAAM,SAIf,CACEL,YAAcQ,GAAUA,EAAMR,cAGlCS,EAAAA,GAAWC,UAAU,CACnB,UAAW,CACTC,QAAS,eACTC,MAAO,MACPC,OAAQ,MACRC,gBAAiB,QAEnB,WAAY,CACVC,OAAQ,qBAKRC,EAAI,mHAMH,SAASC,IACd,IAAIC,GAAQC,EAAAA,EAAAA,QAAkC,MAQ9C,OACEC,EAAAA,EAAAA,KAAA,OAAAC,UACED,EAAAA,EAAAA,KAACE,EAAAA,QAAU,CACTd,MAAOQ,EACPO,MAAM,OACNC,IAZN,SAAoBC,IACbP,EAAMQ,SAAiB,OAAND,QAAM,IAANA,GAAAA,EAAQA,QAAgB,OAANA,QAAM,IAANA,GAAAA,EAAQE,OAAe,OAANF,QAAM,IAANA,GAAAA,EAAQG,OAE/DC,QAAQC,IAAIL,GACZP,EAAMQ,QAAUD,EAEpB,EAOMZ,OAAO,QACPD,MAAM,OACNmB,MAAO,CAAEC,OAAQ,aAAcC,KAAM,GACrCtC,WAAY,CAACA,MAIrB,CAEAsB,EAAUiB,YAAc,U","sources":["pages/examples/MarkDecoration.tsx"],"sourcesContent":["import CodeMirror, { ReactCodeMirrorRef } from '@uiw/react-codemirror';\nimport { useRef } from 'react';\n\nimport { Decoration, drawSelection, EditorView, lineNumbers, ViewPlugin, WidgetType } from '@codemirror/view';\n\nclass SimpleWidget extends WidgetType {\n toDOM() {\n const element = document.createElement('span');\n element.className = 'filler';\n return element;\n }\n}\n\nconst extensions = [\n lineNumbers(),\n drawSelection(),\n ViewPlugin.define(\n () => {\n return {\n decorations: Decoration.set([\n Decoration.widget({\n widget: new SimpleWidget(),\n side: 1, // is after the cursor\n }).range(34),\n\n Decoration.mark({\n class: 'wrapper',\n }).range(60, 70),\n\n Decoration.widget({\n widget: new SimpleWidget(),\n side: 1, // should be after the cursor\n }).range(67),\n ]),\n };\n },\n {\n decorations: (value) => value.decorations,\n },\n ),\n EditorView.baseTheme({\n '.filler': {\n display: 'inline-block',\n width: '8px',\n height: '1em',\n backgroundColor: '#9c9',\n },\n '.wrapper': {\n border: '1px solid #aaa',\n },\n }),\n];\n\nconst code = `The cursor is before this widget:\n\nThe cursor is after this widget\ndsddfsdfsdfdf\nIs this how it should work?`;\n\nexport function Component() {\n let $edit = useRef(null);\n function refCallack(editor: ReactCodeMirrorRef) {\n if (!$edit.current && editor?.editor && editor?.state && editor?.view) {\n // first time we got ref, similar to useEffect\n console.log(editor); // do something with editor\n $edit.current = editor; // store it\n }\n }\n return (\n
\n \n
\n );\n}\n\nComponent.displayName = 'HomePage';\n"],"names":["SimpleWidget","WidgetType","toDOM","element","document","createElement","className","extensions","lineNumbers","drawSelection","ViewPlugin","define","decorations","Decoration","set","widget","side","range","mark","class","value","EditorView","baseTheme","display","width","height","backgroundColor","border","code","Component","$edit","useRef","_jsx","children","CodeMirror","theme","ref","editor","current","state","view","console","log","style","margin","flex","displayName"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7319.3f8a9203.chunk.js b/static/js/7319.3f8a9203.chunk.js new file mode 100644 index 000000000..5198b2cd6 --- /dev/null +++ b/static/js/7319.3f8a9203.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7319],{77319:(n,e,i)=>{i.r(e),i.d(e,{default:()=>c});const c='"""\nA CoffeeScript sample.\n"""\n\nclass Vehicle\n constructor: (@name) =>\n \n drive: () =>\n alert "Conducting #{@name}"\n\nclass Car extends Vehicle\n drive: () =>\n alert "Driving #{@name}"\n\nc = new Car "Brandie"\n\nwhile notAtDestination()\n c.drive()\n\nraceVehicles = (new Car for i in [1..100])\n\nstartRace = (vehicles) -> [vehicle.drive() for vehicle in vehicles]\n\nfancyRegExp = ///\n (\\d+) # numbers\n (\\w*) # letters\n $ # the end\n///\n'}}]); +//# sourceMappingURL=7319.3f8a9203.chunk.js.map \ No newline at end of file diff --git a/static/js/7319.3f8a9203.chunk.js.map b/static/js/7319.3f8a9203.chunk.js.map new file mode 100644 index 000000000..c6bcdc638 --- /dev/null +++ b/static/js/7319.3f8a9203.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7319.3f8a9203.chunk.js","mappings":"yHAAA,qe","sources":["../../node_modules/code-example/txt/sample.coffeescript.txt"],"sourcesContent":["export default \"\\\"\\\"\\\"\\nA CoffeeScript sample.\\n\\\"\\\"\\\"\\n\\nclass Vehicle\\n constructor: (@name) =>\\n \\n drive: () =>\\n alert \\\"Conducting #{@name}\\\"\\n\\nclass Car extends Vehicle\\n drive: () =>\\n alert \\\"Driving #{@name}\\\"\\n\\nc = new Car \\\"Brandie\\\"\\n\\nwhile notAtDestination()\\n c.drive()\\n\\nraceVehicles = (new Car for i in [1..100])\\n\\nstartRace = (vehicles) -> [vehicle.drive() for vehicle in vehicles]\\n\\nfancyRegExp = ///\\n (\\\\d+) # numbers\\n (\\\\w*) # letters\\n $ # the end\\n///\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7363.65ed9926.chunk.js b/static/js/7363.65ed9926.chunk.js new file mode 100644 index 000000000..7b0213560 --- /dev/null +++ b/static/js/7363.65ed9926.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7363],{77363:(e,t,r)=>{r.r(t),r.d(t,{default:()=>i});const i={components:{},data:{},source:'\x3c!--rehype:ignore:start--\x3e\n\n# Themes all for CodeMirror 6.\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes-all.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes-all)\n\nPreview all the themes we have created [here](https://uiwjs.github.io/react-codemirror/#/theme), just need to install and import them.\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-themes-all --save\n```\n\n```js\nimport * as themes from \'@uiw/codemirror-themes-all\';\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from \'@uiw/react-codemirror\';\nimport { abcdef } from \'@uiw/codemirror-themes-all\';\nimport { javascript } from \'@codemirror/lang-javascript\';\n\nfunction App() {\n return (\n {\n console.log(\'value:\', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from \'@codemirror/view\';\nimport { EditorState } from \'@codemirror/state\';\nimport { javascript } from \'@codemirror/lang-javascript\';\nimport { abcdef } from \'@uiw/codemirror-themes-all\';\n\nconst state = EditorState.create({\n doc: \'my source code\',\n extensions: [abcdef, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector(\'#editor\'),\n state,\n});\n```\n\n## API\n\n```ts\nexport * from \'@uiw/codemirror-theme-abcdef\';\nexport * from \'@uiw/codemirror-theme-androidstudio\';\nexport * from \'@uiw/codemirror-theme-atomone\';\nexport * from \'@uiw/codemirror-theme-aura\';\nexport * from \'@uiw/codemirror-theme-basic\';\nexport * from \'@uiw/codemirror-theme-bbedit\';\nexport * from \'@uiw/codemirror-theme-bespin\';\nexport * from \'@uiw/codemirror-theme-darcula\';\nexport * from \'@uiw/codemirror-theme-dracula\';\nexport * from \'@uiw/codemirror-theme-duotone\';\nexport * from \'@uiw/codemirror-theme-eclipse\';\nexport * from \'@uiw/codemirror-theme-github\';\nexport * from \'@uiw/codemirror-theme-gruvbox-dark\';\nexport * from \'@uiw/codemirror-theme-material\';\nexport * from \'@uiw/codemirror-theme-noctis-lilac\';\nexport * from \'@uiw/codemirror-theme-nord\';\nexport * from \'@uiw/codemirror-theme-okaidia\';\nexport * from \'@uiw/codemirror-theme-quietlight\';\nexport * from \'@uiw/codemirror-theme-red\';\nexport * from \'@uiw/codemirror-theme-solarized\';\nexport * from \'@uiw/codemirror-theme-sublime\';\nexport * from \'@uiw/codemirror-theme-tokyo-night\';\nexport * from \'@uiw/codemirror-theme-tokyo-night-storm\';\nexport * from \'@uiw/codemirror-theme-tokyo-night-day\';\nexport * from \'@uiw/codemirror-theme-vscode\';\nexport * from \'@uiw/codemirror-theme-xcode\';\n```\n\n## Themes\n\n### abcdef\n\n\n codemirror-theme-abcdef\n\n\n### abyss\n\n\n codemirror-theme-abyss\n\n\n### android studio\n\n\n codemirror-theme-androidstudio\n\n\n### atom one\n\n\n codemirror-theme-androidstudio\n\n\n### aura\n\n\n codemirror-theme-aura\n\n\n### basic\n\n\n codemirror-theme-basic dark\n\n\n\n codemirror-theme-basic light\n\n\n### bbedit\n\n\n codemirror-theme-bbedit\n\n\n### bespin\n\n\n codemirror-theme-bespin\n\n\n### darcula\n\n\n codemirror-theme-darcula\n\n\n### dracula\n\n\n codemirror-theme-dracula\n\n\n### duotone\n\n\n codemirror-theme-duotone dark\n\n\n\n codemirror-theme-duotone light\n\n\n### eclipse\n\n\n codemirror-theme-eclipse\n\n\n### github\n\n\n codemirror-theme-github dark\n\n\n\n codemirror-theme-github light\n\n\n### gruvbox\n\n\n codemirror-theme-gruvbox-dark\n\n\n\n codemirror-theme-eclipse\n\n\n### kimbie\n\n\n codemirror-theme-kimbie\n\n\n### material\n\n\n codemirror-theme-material\n\n\n\n codemirror-theme-material\n\n\n### monokai\n\n\n codemirror-theme-monokai\n\n\n### monokai-dimmed\n\n\n codemirror-theme-monokai-dimmed\n\n\n### noctis-lilac\n\n\n codemirror-theme-noctis-lilac\n\n\n### nord\n\n\n codemirror-theme-nord\n\n\n### okaidia\n\n\n codemirror-theme-okaidia\n\n\n### quietlight\n\n\n codemirror-theme-okaidia\n\n\n### red\n\n\n codemirror-theme-red\n\n\n### solarized\n\n\n codemirror-theme-solarized\n\n\n\n codemirror-theme-solarized\n\n\n### sublime\n\n\n codemirror-theme-sublime\n\n\n### tokyo-night\n\n\n codemirror-theme-tokyo-night\n\n\n### tokyo-night-day\n\n\n codemirror-theme-tokyo-night-day\n\n\n### tokyo-night-storm\n\n\n codemirror-theme-tokyo-night-storm\n\n\n### tomorrow-night-blue\n\n\n codemirror-theme-tomorrow-night-blue\n\n\n### vscode\n\n\n codemirror-theme-vscode dark\n\n\n### xcode\n\n\n codemirror-theme-xcode dark\n\n\n\n codemirror-theme-xcode light\n\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n',headings:[],headingsList:[]}}}]); +//# sourceMappingURL=7363.65ed9926.chunk.js.map \ No newline at end of file diff --git a/static/js/7363.65ed9926.chunk.js.map b/static/js/7363.65ed9926.chunk.js.map new file mode 100644 index 000000000..5e2b3281a --- /dev/null +++ b/static/js/7363.65ed9926.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7363.65ed9926.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,gvZACRC,SAAS,GACTC,aAAa,G","sources":["../node_modules/@uiw/codemirror-themes-all/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Themes all for CodeMirror 6.\\n\\n\\n\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-themes-all.svg)](https://www.npmjs.com/package/@uiw/codemirror-themes-all)\\n\\nPreview all the themes we have created [here](https://uiwjs.github.io/react-codemirror/#/theme), just need to install and import them.\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-themes-all --save\\n```\\n\\n```js\\nimport * as themes from '@uiw/codemirror-themes-all';\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { abcdef } from '@uiw/codemirror-themes-all';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { abcdef } from '@uiw/codemirror-themes-all';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [abcdef, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## API\\n\\n```ts\\nexport * from '@uiw/codemirror-theme-abcdef';\\nexport * from '@uiw/codemirror-theme-androidstudio';\\nexport * from '@uiw/codemirror-theme-atomone';\\nexport * from '@uiw/codemirror-theme-aura';\\nexport * from '@uiw/codemirror-theme-basic';\\nexport * from '@uiw/codemirror-theme-bbedit';\\nexport * from '@uiw/codemirror-theme-bespin';\\nexport * from '@uiw/codemirror-theme-darcula';\\nexport * from '@uiw/codemirror-theme-dracula';\\nexport * from '@uiw/codemirror-theme-duotone';\\nexport * from '@uiw/codemirror-theme-eclipse';\\nexport * from '@uiw/codemirror-theme-github';\\nexport * from '@uiw/codemirror-theme-gruvbox-dark';\\nexport * from '@uiw/codemirror-theme-material';\\nexport * from '@uiw/codemirror-theme-noctis-lilac';\\nexport * from '@uiw/codemirror-theme-nord';\\nexport * from '@uiw/codemirror-theme-okaidia';\\nexport * from '@uiw/codemirror-theme-quietlight';\\nexport * from '@uiw/codemirror-theme-red';\\nexport * from '@uiw/codemirror-theme-solarized';\\nexport * from '@uiw/codemirror-theme-sublime';\\nexport * from '@uiw/codemirror-theme-tokyo-night';\\nexport * from '@uiw/codemirror-theme-tokyo-night-storm';\\nexport * from '@uiw/codemirror-theme-tokyo-night-day';\\nexport * from '@uiw/codemirror-theme-vscode';\\nexport * from '@uiw/codemirror-theme-xcode';\\n```\\n\\n## Themes\\n\\n### abcdef\\n\\n\\n \\\"codemirror-theme-abcdef\\\"\\n\\n\\n### abyss\\n\\n\\n \\\"codemirror-theme-abyss\\\"\\n\\n\\n### android studio\\n\\n\\n \\\"codemirror-theme-androidstudio\\\"\\n\\n\\n### atom one\\n\\n\\n \\\"codemirror-theme-androidstudio\\\"\\n\\n\\n### aura\\n\\n\\n \\\"codemirror-theme-aura\\\"\\n\\n\\n### basic\\n\\n\\n \\\"codemirror-theme-basic\\n\\n\\n\\n \\\"codemirror-theme-basic\\n\\n\\n### bbedit\\n\\n\\n \\\"codemirror-theme-bbedit\\\"\\n\\n\\n### bespin\\n\\n\\n \\\"codemirror-theme-bespin\\\"\\n\\n\\n### darcula\\n\\n\\n \\\"codemirror-theme-darcula\\\"\\n\\n\\n### dracula\\n\\n\\n \\\"codemirror-theme-dracula\\\"\\n\\n\\n### duotone\\n\\n\\n \\\"codemirror-theme-duotone\\n\\n\\n\\n \\\"codemirror-theme-duotone\\n\\n\\n### eclipse\\n\\n\\n \\\"codemirror-theme-eclipse\\\"\\n\\n\\n### github\\n\\n\\n \\\"codemirror-theme-github\\n\\n\\n\\n \\\"codemirror-theme-github\\n\\n\\n### gruvbox\\n\\n\\n \\\"codemirror-theme-gruvbox-dark\\\"\\n\\n\\n\\n \\\"codemirror-theme-eclipse\\\"\\n\\n\\n### kimbie\\n\\n\\n \\\"codemirror-theme-kimbie\\\"\\n\\n\\n### material\\n\\n\\n \\\"codemirror-theme-material\\\"\\n\\n\\n\\n \\\"codemirror-theme-material\\\"\\n\\n\\n### monokai\\n\\n\\n \\\"codemirror-theme-monokai\\\"\\n\\n\\n### monokai-dimmed\\n\\n\\n \\\"codemirror-theme-monokai-dimmed\\\"\\n\\n\\n### noctis-lilac\\n\\n\\n \\\"codemirror-theme-noctis-lilac\\\"\\n\\n\\n### nord\\n\\n\\n \\\"codemirror-theme-nord\\\"\\n\\n\\n### okaidia\\n\\n\\n \\\"codemirror-theme-okaidia\\\"\\n\\n\\n### quietlight\\n\\n\\n \\\"codemirror-theme-okaidia\\\"\\n\\n\\n### red\\n\\n\\n \\\"codemirror-theme-red\\\"\\n\\n\\n### solarized\\n\\n\\n \\\"codemirror-theme-solarized\\\"\\n\\n\\n\\n \\\"codemirror-theme-solarized\\\"\\n\\n\\n### sublime\\n\\n\\n \\\"codemirror-theme-sublime\\\"\\n\\n\\n### tokyo-night\\n\\n\\n \\\"codemirror-theme-tokyo-night\\\"\\n\\n\\n### tokyo-night-day\\n\\n\\n \\\"codemirror-theme-tokyo-night-day\\\"\\n\\n\\n### tokyo-night-storm\\n\\n\\n \\\"codemirror-theme-tokyo-night-storm\\\"\\n\\n\\n### tomorrow-night-blue\\n\\n\\n \\\"codemirror-theme-tomorrow-night-blue\\\"\\n\\n\\n### vscode\\n\\n\\n \\\"codemirror-theme-vscode\\n\\n\\n### xcode\\n\\n\\n \\\"codemirror-theme-xcode\\n\\n\\n\\n \\\"codemirror-theme-xcode\\n\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7468.372aff9e.chunk.js b/static/js/7468.372aff9e.chunk.js new file mode 100644 index 000000000..e5ef7724b --- /dev/null +++ b/static/js/7468.372aff9e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7468],{27468:(e,n,t)=>{t.r(n),t.d(n,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Basic Setup Extensions\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-basic-setup.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup)\n\nBasic configuration for the CodeMirror6 code editor. This is the official [basic-setup](https://github.com/codemirror/basic-setup) package fork, making configuration optional.\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-extensions-basic-setup --save\n```\n\n## Usage\n\n\u26a0\ufe0f Integrated into [**@uiw/react-codemirror**](https://npmjs.com/@uiw/react-codemirror) package\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { basicSetup, minimalSetup } from '@uiw/codemirror-extensions-basic-setup';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [\n basicSetup({\n foldGutter: false,\n dropCursor: false,\n allowMultipleSelections: false,\n indentOnInput: false,\n }),\n ],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n```diff\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\n- import { basicSetup, minimalSetup } from 'codemirror';\n+ import { basicSetup, minimalSetup } from '@uiw/codemirror-extensions-basic-setup';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [\n- basicSetup\n+ basicSetup({\n+ foldGutter: false,\n+ dropCursor: false,\n+ })\n ],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## API\n\n```ts\nimport { Extension } from '@codemirror/state';\nexport interface BasicSetupOptions extends MinimalSetupOptions {\n lineNumbers?: boolean;\n highlightActiveLineGutter?: boolean;\n foldGutter?: boolean;\n dropCursor?: boolean;\n allowMultipleSelections?: boolean;\n indentOnInput?: boolean;\n bracketMatching?: boolean;\n closeBrackets?: boolean;\n autocompletion?: boolean;\n rectangularSelection?: boolean;\n crosshairCursor?: boolean;\n highlightActiveLine?: boolean;\n highlightSelectionMatches?: boolean;\n closeBracketsKeymap?: boolean;\n searchKeymap?: boolean;\n foldKeymap?: boolean;\n completionKeymap?: boolean;\n lintKeymap?: boolean;\n /**\n * Facet for overriding the unit by which indentation happens. Should be a string consisting either entirely of spaces or entirely of tabs. When not set, this defaults to 2 spaces\n * https://codemirror.net/docs/ref/#language.indentUnit\n * @default 2\n */\n tabSize?: number;\n}\n/**\nThis is an extension value that just pulls together a number of\nextensions that you might want in a basic editor. It is meant as a\nconvenient helper to quickly set up CodeMirror without installing\nand importing a lot of separate packages.\n\nSpecifically, it includes...\n\n- [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)\n- [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)\n- [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)\n- [the undo history](https://codemirror.net/6/docs/ref/#commands.history)\n- [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)\n- [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)\n- [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)\n- [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\n- [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)\n- [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)\n- [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)\n- [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)\n- [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)\n- [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)\n- [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)\n- [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)\n- [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)\n- [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)\n- [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)\n\n(You'll probably want to add some language package to your setup\ntoo.)\n\nThis extension does not allow customization. The idea is that,\nonce you decide you want to configure your editor more precisely,\nyou take this package's source (which is just a bunch of imports\nand an array literal), copy it into your own code, and adjust it\nas desired.\n*/\nexport declare const basicSetup: (options?: BasicSetupOptions) => Extension[];\nexport interface MinimalSetupOptions {\n highlightSpecialChars?: boolean;\n history?: boolean;\n drawSelection?: boolean;\n syntaxHighlighting?: boolean;\n defaultKeymap?: boolean;\n historyKeymap?: boolean;\n}\n/**\nA minimal set of extensions to create a functional editor. Only\nincludes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo\nhistory](https://codemirror.net/6/docs/ref/#commands.history), [special character\nhighlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection\ndrawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight\nstyle](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).\n*/\nexport declare const minimalSetup: (options?: MinimalSetupOptions) => Extension[];\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=7468.372aff9e.chunk.js.map \ No newline at end of file diff --git a/static/js/7468.372aff9e.chunk.js.map b/static/js/7468.372aff9e.chunk.js.map new file mode 100644 index 000000000..bc5df1745 --- /dev/null +++ b/static/js/7468.372aff9e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7468.372aff9e.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,ktNACRC,SAAS,GACTC,aAAa,G","sources":["../../extensions/basic-setup/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Basic Setup Extensions\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-extensions-basic-setup.svg)](https://www.npmjs.com/package/@uiw/codemirror-extensions-basic-setup)\\n\\nBasic configuration for the CodeMirror6 code editor. This is the official [basic-setup](https://github.com/codemirror/basic-setup) package fork, making configuration optional.\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-extensions-basic-setup --save\\n```\\n\\n## Usage\\n\\n⚠️ Integrated into [**@uiw/react-codemirror**](https://npmjs.com/@uiw/react-codemirror) package\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { basicSetup, minimalSetup } from '@uiw/codemirror-extensions-basic-setup';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [\\n basicSetup({\\n foldGutter: false,\\n dropCursor: false,\\n allowMultipleSelections: false,\\n indentOnInput: false,\\n }),\\n ],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n```diff\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\n- import { basicSetup, minimalSetup } from 'codemirror';\\n+ import { basicSetup, minimalSetup } from '@uiw/codemirror-extensions-basic-setup';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [\\n- basicSetup\\n+ basicSetup({\\n+ foldGutter: false,\\n+ dropCursor: false,\\n+ })\\n ],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## API\\n\\n```ts\\nimport { Extension } from '@codemirror/state';\\nexport interface BasicSetupOptions extends MinimalSetupOptions {\\n lineNumbers?: boolean;\\n highlightActiveLineGutter?: boolean;\\n foldGutter?: boolean;\\n dropCursor?: boolean;\\n allowMultipleSelections?: boolean;\\n indentOnInput?: boolean;\\n bracketMatching?: boolean;\\n closeBrackets?: boolean;\\n autocompletion?: boolean;\\n rectangularSelection?: boolean;\\n crosshairCursor?: boolean;\\n highlightActiveLine?: boolean;\\n highlightSelectionMatches?: boolean;\\n closeBracketsKeymap?: boolean;\\n searchKeymap?: boolean;\\n foldKeymap?: boolean;\\n completionKeymap?: boolean;\\n lintKeymap?: boolean;\\n /**\\n * Facet for overriding the unit by which indentation happens. Should be a string consisting either entirely of spaces or entirely of tabs. When not set, this defaults to 2 spaces\\n * https://codemirror.net/docs/ref/#language.indentUnit\\n * @default 2\\n */\\n tabSize?: number;\\n}\\n/**\\nThis is an extension value that just pulls together a number of\\nextensions that you might want in a basic editor. It is meant as a\\nconvenient helper to quickly set up CodeMirror without installing\\nand importing a lot of separate packages.\\n\\nSpecifically, it includes...\\n\\n- [the default command bindings](https://codemirror.net/6/docs/ref/#commands.defaultKeymap)\\n- [line numbers](https://codemirror.net/6/docs/ref/#view.lineNumbers)\\n- [special character highlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars)\\n- [the undo history](https://codemirror.net/6/docs/ref/#commands.history)\\n- [a fold gutter](https://codemirror.net/6/docs/ref/#language.foldGutter)\\n- [custom selection drawing](https://codemirror.net/6/docs/ref/#view.drawSelection)\\n- [drop cursor](https://codemirror.net/6/docs/ref/#view.dropCursor)\\n- [multiple selections](https://codemirror.net/6/docs/ref/#state.EditorState^allowMultipleSelections)\\n- [reindentation on input](https://codemirror.net/6/docs/ref/#language.indentOnInput)\\n- [the default highlight style](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle) (as fallback)\\n- [bracket matching](https://codemirror.net/6/docs/ref/#language.bracketMatching)\\n- [bracket closing](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets)\\n- [autocompletion](https://codemirror.net/6/docs/ref/#autocomplete.autocompletion)\\n- [rectangular selection](https://codemirror.net/6/docs/ref/#view.rectangularSelection) and [crosshair cursor](https://codemirror.net/6/docs/ref/#view.crosshairCursor)\\n- [active line highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLine)\\n- [active line gutter highlighting](https://codemirror.net/6/docs/ref/#view.highlightActiveLineGutter)\\n- [selection match highlighting](https://codemirror.net/6/docs/ref/#search.highlightSelectionMatches)\\n- [search](https://codemirror.net/6/docs/ref/#search.searchKeymap)\\n- [linting](https://codemirror.net/6/docs/ref/#lint.lintKeymap)\\n\\n(You'll probably want to add some language package to your setup\\ntoo.)\\n\\nThis extension does not allow customization. The idea is that,\\nonce you decide you want to configure your editor more precisely,\\nyou take this package's source (which is just a bunch of imports\\nand an array literal), copy it into your own code, and adjust it\\nas desired.\\n*/\\nexport declare const basicSetup: (options?: BasicSetupOptions) => Extension[];\\nexport interface MinimalSetupOptions {\\n highlightSpecialChars?: boolean;\\n history?: boolean;\\n drawSelection?: boolean;\\n syntaxHighlighting?: boolean;\\n defaultKeymap?: boolean;\\n historyKeymap?: boolean;\\n}\\n/**\\nA minimal set of extensions to create a functional editor. Only\\nincludes [the default keymap](https://codemirror.net/6/docs/ref/#commands.defaultKeymap), [undo\\nhistory](https://codemirror.net/6/docs/ref/#commands.history), [special character\\nhighlighting](https://codemirror.net/6/docs/ref/#view.highlightSpecialChars), [custom selection\\ndrawing](https://codemirror.net/6/docs/ref/#view.drawSelection), and [default highlight\\nstyle](https://codemirror.net/6/docs/ref/#language.defaultHighlightStyle).\\n*/\\nexport declare const minimalSetup: (options?: MinimalSetupOptions) => Extension[];\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7559.47351798.chunk.js b/static/js/7559.47351798.chunk.js new file mode 100644 index 000000000..27371e337 --- /dev/null +++ b/static/js/7559.47351798.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7559],{67559:(e,n,s)=>{s.r(n),s.d(n,{default:()=>t});const t='%% -*- mode: erlang; erlang-indent-level: 2 -*-\n%%% Created : 7 May 2012 by mats cronqvist \n\n%% @doc\n%% Demonstrates how to print a record.\n%% @end\n\n-module(\'ex\').\n-author(\'mats cronqvist\').\n-export([demo/0,\n rec_info/1]).\n\n-record(demo,{a="One",b="Two",c="Three",d="Four"}).\n\nrec_info(demo) -> record_info(fields,demo).\n\ndemo() -> expand_recs(?MODULE,#demo{a="A",b="BB"}).\n\nexpand_recs(M,List) when is_list(List) ->\n [expand_recs(M,L)||L<-List];\nexpand_recs(M,Tup) when is_tuple(Tup) ->\n case tuple_size(Tup) of\n L when L < 1 -> Tup;\n L ->\n try\n Fields = M:rec_info(element(1,Tup)),\n L = length(Fields)+1,\n lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))\n catch\n _:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))\n end\n end;\nexpand_recs(_,Term) ->\n Term.\n\n'}}]); +//# sourceMappingURL=7559.47351798.chunk.js.map \ No newline at end of file diff --git a/static/js/7559.47351798.chunk.js.map b/static/js/7559.47351798.chunk.js.map new file mode 100644 index 000000000..f5a124f09 --- /dev/null +++ b/static/js/7559.47351798.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7559.47351798.chunk.js","mappings":"yHAAA,m4B","sources":["../../node_modules/code-example/txt/sample.erlang.txt"],"sourcesContent":["export default \"%% -*- mode: erlang; erlang-indent-level: 2 -*-\\n%%% Created : 7 May 2012 by mats cronqvist \\n\\n%% @doc\\n%% Demonstrates how to print a record.\\n%% @end\\n\\n-module('ex').\\n-author('mats cronqvist').\\n-export([demo/0,\\n rec_info/1]).\\n\\n-record(demo,{a=\\\"One\\\",b=\\\"Two\\\",c=\\\"Three\\\",d=\\\"Four\\\"}).\\n\\nrec_info(demo) -> record_info(fields,demo).\\n\\ndemo() -> expand_recs(?MODULE,#demo{a=\\\"A\\\",b=\\\"BB\\\"}).\\n\\nexpand_recs(M,List) when is_list(List) ->\\n [expand_recs(M,L)||L<-List];\\nexpand_recs(M,Tup) when is_tuple(Tup) ->\\n case tuple_size(Tup) of\\n L when L < 1 -> Tup;\\n L ->\\n try\\n Fields = M:rec_info(element(1,Tup)),\\n L = length(Fields)+1,\\n lists:zip(Fields,expand_recs(M,tl(tuple_to_list(Tup))))\\n catch\\n _:_ -> list_to_tuple(expand_recs(M,tuple_to_list(Tup)))\\n end\\n end;\\nexpand_recs(_,Term) ->\\n Term.\\n\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7694.9787306e.chunk.js b/static/js/7694.9787306e.chunk.js new file mode 100644 index 000000000..17a05d5aa --- /dev/null +++ b/static/js/7694.9787306e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7694],{97694:(e,n,a)=>{a.r(n),a.d(n,{default:()=>t});const t="class Random < Liquid::Block\n def initialize(tag_name, markup, tokens)\n super\n @rand = markup.to_i\n end\n\n def render(context)\n value = rand(@rand)\n super.sub('^^^', value.to_s) # calling `super` returns the content of the block\n end\nend\n\nLiquid::Template.register_tag('random', Random)\ntext = \" {% random 5 %} you have drawn number ^^^, lucky you! {% endrandom %} \"\n@template = Liquid::Template.parse(text)\n@template.render # will return \"you have drawn number 1, lucky you!\" in 20% of cases\n"}}]); +//# sourceMappingURL=7694.9787306e.chunk.js.map \ No newline at end of file diff --git a/static/js/7694.9787306e.chunk.js.map b/static/js/7694.9787306e.chunk.js.map new file mode 100644 index 000000000..7e0b5d208 --- /dev/null +++ b/static/js/7694.9787306e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7694.9787306e.chunk.js","mappings":"yHAAA,8hB","sources":["../../node_modules/code-example/txt/sample.liquid.txt"],"sourcesContent":["export default \"class Random < Liquid::Block\\n def initialize(tag_name, markup, tokens)\\n super\\n @rand = markup.to_i\\n end\\n\\n def render(context)\\n value = rand(@rand)\\n super.sub('^^^', value.to_s) # calling `super` returns the content of the block\\n end\\nend\\n\\nLiquid::Template.register_tag('random', Random)\\ntext = \\\" {% random 5 %} you have drawn number ^^^, lucky you! {% endrandom %} \\\"\\n@template = Liquid::Template.parse(text)\\n@template.render # will return \\\"you have drawn number 1, lucky you!\\\" in 20% of cases\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7695.a40c86b3.chunk.js b/static/js/7695.a40c86b3.chunk.js new file mode 100644 index 000000000..42b20bfb8 --- /dev/null +++ b/static/js/7695.a40c86b3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7695],{47695:(n,A,N)=>{N.r(A),N.d(A,{default:()=>R});const R="CONFIGURATION DefaultCfg\n VAR_GLOBAL\n Start_Stop AT %IX0.0: BOOL; (* This is a comment *)\n END_VAR\n TASK NewTask (INTERVAL := T#20ms);\n PROGRAM Main WITH NewTask : PLC_PRG;\nEND_CONFIGURATION\n\nPROGRAM demo\n VAR_EXTERNAL\n Start_Stop: BOOL;\n END_VAR\n VAR\n a : REAL; // Another comment\n todTest: TIME_OF_DAY := TOD#12:55;\n END_VAR\n a := csq(12.5);\n TON1(IN := TRUE, PT := T#2s);\n 16#FAC0 2#1001_0110\n IF TON1.Q AND a > REAL#100 THEN\n Start_Stop := TRUE;\n END_IF\nEND_PROGRAM;\n\n/* Get a square of the circle */\nFUNCTION csq : REAL\n VAR_INPUT\n r: REAL;\n END_VAR\n VAR CONSTANT\n c_pi: REAL := 3.14;\n END_VAR\n csq := ABS(c_pi * (r * 2));\nEND_FUNCTION"}}]); +//# sourceMappingURL=7695.a40c86b3.chunk.js.map \ No newline at end of file diff --git a/static/js/7695.a40c86b3.chunk.js.map b/static/js/7695.a40c86b3.chunk.js.map new file mode 100644 index 000000000..35081a1ff --- /dev/null +++ b/static/js/7695.a40c86b3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7695.a40c86b3.chunk.js","mappings":"yHAAA,mxB","sources":["../../node_modules/code-example/txt/sample.st.txt"],"sourcesContent":["export default \"CONFIGURATION DefaultCfg\\n VAR_GLOBAL\\n Start_Stop AT %IX0.0: BOOL; (* This is a comment *)\\n END_VAR\\n TASK NewTask (INTERVAL := T#20ms);\\n PROGRAM Main WITH NewTask : PLC_PRG;\\nEND_CONFIGURATION\\n\\nPROGRAM demo\\n VAR_EXTERNAL\\n Start_Stop: BOOL;\\n END_VAR\\n VAR\\n a : REAL; // Another comment\\n todTest: TIME_OF_DAY := TOD#12:55;\\n END_VAR\\n a := csq(12.5);\\n TON1(IN := TRUE, PT := T#2s);\\n 16#FAC0 2#1001_0110\\n IF TON1.Q AND a > REAL#100 THEN\\n Start_Stop := TRUE;\\n END_IF\\nEND_PROGRAM;\\n\\n/* Get a square of the circle */\\nFUNCTION csq : REAL\\n VAR_INPUT\\n r: REAL;\\n END_VAR\\n VAR CONSTANT\\n c_pi: REAL := 3.14;\\n END_VAR\\n csq := ABS(c_pi * (r * 2));\\nEND_FUNCTION\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7833.654f1f43.chunk.js b/static/js/7833.654f1f43.chunk.js new file mode 100644 index 000000000..67faaab4c --- /dev/null +++ b/static/js/7833.654f1f43.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7833],{37833:(n,t,e)=>{e.r(t),e.d(t,{default:()=>s});const s='// Run this cell using Ctrl+Enter (\u2318+Enter on Mac)\n// Then run the next cell to see the output\n\nopen Microsoft.Quantum.Diagnostics;\n\noperation QubitsDemo () : Unit {\n // This line allocates a qubit in state |0\u27e9\n use q = Qubit();\n Message("State |0\u27e9:");\n\n // This line prints out the state of the quantum computer\n // Since only one qubit is allocated, only its state is printed\n DumpMachine();\n\n // This line changes the qubit from state |0\u27e9 to state |1\u27e9\n X(q);\n\n Message("State |1\u27e9:");\n DumpMachine();\n\n // This line changes the qubit to state |-\u27e9 = (1/sqrt(2))(|0\u27e9 - |1\u27e9)\n // That is, this puts the qubit into a superposition\n // 1/sqrt(2) is approximately 0.707107\n H(q);\n\n Message("State |-\u27e9:");\n DumpMachine();\n\n // This line changes the qubit to state |-i\u27e9 = (1/sqrt(2))(|0\u27e9 - i|1\u27e9)\n S(q);\n\n Message("State |-i\u27e9:");\n DumpMachine();\n\n // This will put the qubit into an uneven superposition,\n // where the amplitudes of |0\u27e9 and |1\u27e9 have different moduli\n Rx(2.0, q);\n Ry(1.0, q);\n\n Message("Uneven superposition state:");\n DumpMachine();\n\n // This line returns the qubit to state |0\u27e9\n Reset(q);\n}\n'}}]); +//# sourceMappingURL=7833.654f1f43.chunk.js.map \ No newline at end of file diff --git a/static/js/7833.654f1f43.chunk.js.map b/static/js/7833.654f1f43.chunk.js.map new file mode 100644 index 000000000..54e12262c --- /dev/null +++ b/static/js/7833.654f1f43.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7833.654f1f43.chunk.js","mappings":"yHAAA,8yC","sources":["../../node_modules/code-example/txt/sample.qsharp.txt"],"sourcesContent":["export default \"// Run this cell using Ctrl+Enter (⌘+Enter on Mac)\\n// Then run the next cell to see the output\\n\\nopen Microsoft.Quantum.Diagnostics;\\n\\noperation QubitsDemo () : Unit {\\n // This line allocates a qubit in state |0⟩\\n use q = Qubit();\\n Message(\\\"State |0⟩:\\\");\\n\\n // This line prints out the state of the quantum computer\\n // Since only one qubit is allocated, only its state is printed\\n DumpMachine();\\n\\n // This line changes the qubit from state |0⟩ to state |1⟩\\n X(q);\\n\\n Message(\\\"State |1⟩:\\\");\\n DumpMachine();\\n\\n // This line changes the qubit to state |-⟩ = (1/sqrt(2))(|0⟩ - |1⟩)\\n // That is, this puts the qubit into a superposition\\n // 1/sqrt(2) is approximately 0.707107\\n H(q);\\n\\n Message(\\\"State |-⟩:\\\");\\n DumpMachine();\\n\\n // This line changes the qubit to state |-i⟩ = (1/sqrt(2))(|0⟩ - i|1⟩)\\n S(q);\\n\\n Message(\\\"State |-i⟩:\\\");\\n DumpMachine();\\n\\n // This will put the qubit into an uneven superposition,\\n // where the amplitudes of |0⟩ and |1⟩ have different moduli\\n Rx(2.0, q);\\n Ry(1.0, q);\\n\\n Message(\\\"Uneven superposition state:\\\");\\n DumpMachine();\\n\\n // This line returns the qubit to state |0⟩\\n Reset(q);\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7889.14248106.chunk.js b/static/js/7889.14248106.chunk.js new file mode 100644 index 000000000..2db182952 --- /dev/null +++ b/static/js/7889.14248106.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7889],{55864:(e,t,n)=>{n.d(t,{zu:()=>a});var l,d,s=n(60114),o=n(6008);const a=o.Ay.div(l||(l=(0,s.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));o.Ay.div(d||(d=(0,s.A)(["\n display: flex;\n flex: 1;\n"])))},27889:(e,t,n)=>{n.r(t),n.d(t,{Component:()=>g,ThemesAllExample:()=>f});var l,d=n(60114),s=n(80905),o=n(28169),a=n(73562),c=n(13529),r=n(69332),i=n(6008),h=n(98846),m=n(94458),u=n(55864),x=n(98557);const p=i.Ay.div(l||(l=(0,d.A)(["\n padding: 0 0 23px 0;\n"]))),f=()=>{const e={};Object.keys(c).filter((e=>"function"!==typeof c[e])).filter((e=>!/^(defaultSettings)/.test(e))).forEach((t=>{e[t]=c[t]}));const[t,n]=(0,s.useState)(),l=(0,m.D)(),d=e[t]?e[t]:l.theme,i=(0,s.useContext)(h.pX);return(0,x.jsxs)(u.zu,{children:[(0,x.jsx)(a.default,{value:i.mdstr,theme:d,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[r.cg.markdown()]}),(0,x.jsxs)(p,{children:["Select Theme:",(0,x.jsxs)("select",{value:t,onChange:e=>{n(e.target.value)},children:[(0,x.jsx)("option",{children:"Select Theme"}),Object.keys(e).map(((e,t)=>(0,x.jsx)("option",{children:e},t)))]}),(0,x.jsx)("br",{}),(0,x.jsx)(o.N_,{to:"/theme/home",children:"All Theme Example"})]})]})},g=()=>(0,x.jsx)(h.lN,{path:()=>n.e(7363).then(n.bind(n,77363)),children:(0,x.jsx)(f,{})})},94458:(e,t,n)=>{n.d(t,{D:()=>d});var l=n(80905);function d(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[n,d]=(0,l.useState)("dark"===t?"dark":e);return(0,l.useEffect)((()=>{d("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{d(e.detail.colorScheme)}))}),[]),{theme:n,setTheme:d}}}}]); +//# sourceMappingURL=7889.14248106.chunk.js.map \ No newline at end of file diff --git a/static/js/7889.14248106.chunk.js.map b/static/js/7889.14248106.chunk.js.map new file mode 100644 index 000000000..e71da4cbf --- /dev/null +++ b/static/js/7889.14248106.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7889.14248106.chunk.js","mappings":"0IAEO,MAAMA,EAAcC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,uMCEjC,MAAME,EAAcL,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,kCAIjBG,EAA0CA,KACrD,MAAMC,EAAoF,CAAC,EAC3FC,OAAOC,KAAKC,GACTC,QAAQC,GAAwD,oBAAxCF,EAAOE,KAC/BD,QAAQC,IAAU,qBAAqBC,KAAKD,KAC5CE,SAASF,IACRL,EAAWK,GAAQF,EAAOE,EAA4B,IAE1D,MAAOG,EAAaC,IAAkBC,EAAAA,EAAAA,YAChCC,GAAQC,EAAAA,EAAAA,KACRC,EAAeb,EAAWQ,GAAgBR,EAAWQ,GAAgBG,EAAMA,MAI3EG,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IAC1B,OACEC,EAAAA,EAAAA,MAACzB,EAAAA,GAAW,CAAA0B,SAAA,EACVC,EAAAA,EAAAA,KAACC,EAAAA,QAAU,CACTC,MAAOP,EAAOQ,MACdX,MAAOE,EACPU,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CAACC,EAAAA,GAAMC,eAErBX,EAAAA,EAAAA,MAACnB,EAAW,CAAAoB,SAAA,CAAC,iBAEXD,EAAAA,EAAAA,MAAA,UAAQI,MAAOb,EAAaqB,SAfZC,IACpBrB,EAAeqB,EAAGC,OAAOV,MAAiC,EAcHH,SAAA,EACjDC,EAAAA,EAAAA,KAAA,UAAAD,SAAQ,iBACPjB,OAAOC,KAAKF,GAAYgC,KAAI,CAACC,EAASC,KAC9Bf,EAAAA,EAAAA,KAAA,UAAAD,SAAqBe,GAARC,SAGxBf,EAAAA,EAAAA,KAAA,UACAA,EAAAA,EAAAA,KAACgB,EAAAA,GAAI,CAACC,GAAG,cAAalB,SAAC,2BAEb,EAILmB,EAAYA,KAErBlB,EAAAA,EAAAA,KAACmB,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAA+CrB,UAClEC,EAAAA,EAAAA,KAACpB,EAAgB,K,kDCrDhB,SAASa,IAAyD,IAAhD4B,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5CpC,EAAOqC,IAAYtC,EAAAA,EAAAA,UAAiD,SAATkC,EAAkB,OAASJ,GAO7F,OANAS,EAAAA,EAAAA,YAAU,KACRD,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASK,iBAAiB,qBAAsBC,IAC9CH,EAASG,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAE1C,QAAOqC,WAClB,C","sources":["pages/extensions/index.tsx","pages/extensions/themes/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { FC, PropsWithChildren, useContext, useState } from 'react';\nimport { Link } from 'react-router-dom';\nimport CodeMirror, { ReactCodeMirrorProps } from '@uiw/react-codemirror';\nimport * as themes from '@uiw/codemirror-themes-all';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport styled from 'styled-components';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\n\nconst ToolsWapper = styled.div`\n padding: 0 0 23px 0;\n`;\n\nexport const ThemesAllExample: FC = () => {\n const themesData: Record> = {};\n Object.keys(themes)\n .filter((item) => typeof themes[item as keyof typeof themes] !== 'function')\n .filter((item) => !/^(defaultSettings)/.test(item as keyof typeof themes))\n .forEach((item) => {\n themesData[item] = themes[item as keyof typeof themes];\n });\n const [selectTheme, setSelectTheme] = useState();\n const theme = useTheme();\n const themeCurrent = themesData[selectTheme!] ? themesData[selectTheme!] : theme.theme;\n const changeHandle = (ev: React.ChangeEvent) => {\n setSelectTheme(ev.target.value as keyof typeof themesData);\n };\n const mdData = useContext(MdContext);\n return (\n \n \n \n Select Theme:\n \n
\n All Theme Example\n
\n
\n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-themes-all/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["PageWarpper","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","ToolsWapper","ThemesAllExample","themesData","Object","keys","themes","filter","item","test","forEach","selectTheme","setSelectTheme","useState","theme","useTheme","themeCurrent","mdData","useContext","MdContext","_jsxs","children","_jsx","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","onChange","ev","target","map","keyname","index","Link","to","Component","Preview","path","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7926.78eb5044.chunk.js b/static/js/7926.78eb5044.chunk.js new file mode 100644 index 000000000..4c6e88e71 --- /dev/null +++ b/static/js/7926.78eb5044.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7926],{95545:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a="import 'dart:async';\nimport 'dart:math' show Random;\nmain() async {\n print('Compute \u03c0 using the Monte Carlo method.');\n await for (var estimate in computePi().take(100)) {\n print('\u03c0 \u2245 $estimate');\n }\n}\n/// Generates a stream of increasingly accurate estimates of \u03c0.\nStream computePi({int batch: 100000}) async* {\n var total = 0;\n var count = 0;\n while (true) {\n var points = generateRandom().take(batch);\n var inside = points.where((p) => p.isInsideUnitCircle);\n total += batch;\n count += inside.length;\n var ratio = count / total;\n // Area of a circle is A = \u03c0\u22c5r\xb2, therefore \u03c0 = A/r\xb2.\n // So, when given random points with x \u2208 <0,1>,\n // y \u2208 <0,1>, the ratio of those inside a unit circle\n // should approach \u03c0 / 4. Therefore, the value of \u03c0\n // should be:\n yield ratio * 4;\n }\n}\nIterable generateRandom([int seed]) sync* {\n final random = Random(seed);\n while (true) {\n yield Point(random.nextDouble(), random.nextDouble());\n }\n}\nclass Point {\n final double x, y;\n const Point(this.x, this.y);\n bool get isInsideUnitCircle => x * x + y * y <= 1;\n}\n"}}]); +//# sourceMappingURL=7926.78eb5044.chunk.js.map \ No newline at end of file diff --git a/static/js/7926.78eb5044.chunk.js.map b/static/js/7926.78eb5044.chunk.js.map new file mode 100644 index 000000000..e1b1a6611 --- /dev/null +++ b/static/js/7926.78eb5044.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7926.78eb5044.chunk.js","mappings":"yHAAA,ysC","sources":["../../node_modules/code-example/txt/sample.dart.txt"],"sourcesContent":["export default \"import 'dart:async';\\nimport 'dart:math' show Random;\\nmain() async {\\n print('Compute π using the Monte Carlo method.');\\n await for (var estimate in computePi().take(100)) {\\n print('π ≅ $estimate');\\n }\\n}\\n/// Generates a stream of increasingly accurate estimates of π.\\nStream computePi({int batch: 100000}) async* {\\n var total = 0;\\n var count = 0;\\n while (true) {\\n var points = generateRandom().take(batch);\\n var inside = points.where((p) => p.isInsideUnitCircle);\\n total += batch;\\n count += inside.length;\\n var ratio = count / total;\\n // Area of a circle is A = π⋅r², therefore π = A/r².\\n // So, when given random points with x ∈ <0,1>,\\n // y ∈ <0,1>, the ratio of those inside a unit circle\\n // should approach π / 4. Therefore, the value of π\\n // should be:\\n yield ratio * 4;\\n }\\n}\\nIterable generateRandom([int seed]) sync* {\\n final random = Random(seed);\\n while (true) {\\n yield Point(random.nextDouble(), random.nextDouble());\\n }\\n}\\nclass Point {\\n final double x, y;\\n const Point(this.x, this.y);\\n bool get isInsideUnitCircle => x * x + y * y <= 1;\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7938.039b49c4.chunk.js b/static/js/7938.039b49c4.chunk.js new file mode 100644 index 000000000..a3e9fd313 --- /dev/null +++ b/static/js/7938.039b49c4.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7938],{97938:(n,e,i)=>{i.r(e),i.d(e,{default:()=>s});const s='(ns game-of-life\n "Conway\'s Game of Life, based on the work of\n Christophe Grand (http://clj-me.cgrand.net/2011/08/19/conways-game-of-life)\n and Laurent Petit (https://gist.github.com/1200343).")\n\n;;; Core game of life\'s algorithm functions\n\n(defn neighbors\n "Given a cell\'s coordinates `[x y]`, returns the coordinates of its\n neighbors."\n [[x y]]\n (for [dx [-1 0 1]\n dy (if (zero? dx)\n [-1 1]\n [-1 0 1])]\n [(+ dx x) (+ dy y)]))\n\n(defn step\n "Given a set of living `cells`, computes the new set of living cells."\n [cells]\n (set (for [[cell n] (frequencies (mapcat neighbors cells))\n :when (or (= n 3)\n (and (= n 2)\n (cells cell)))]\n cell)))\n\n;;; Utility methods for displaying game on a text terminal\n\n(defn print-grid\n "Prints a `grid` of `w` columns and `h` rows, on *out*, representing a\n step in the game."\n [grid w h]\n (doseq [x (range (inc w))\n y (range (inc h))]\n (when (= y 0) (println))\n (print (if (grid [x y])\n "[X]"\n " . "))))\n\n(defn print-grids\n "Prints a sequence of `grids` of `w` columns and `h` rows on *out*,\n representing several steps."\n [grids w h]\n (doseq [grid grids]\n (print-grid grid w h)\n (println)))\n\n;;; Launches an example grid\n\n(def grid\n "`grid` represents the initial set of living cells"\n #{[2 1] [2 2] [2 3]})\n\n(print-grids (take 3 (iterate step grid)) 5 5)'}}]); +//# sourceMappingURL=7938.039b49c4.chunk.js.map \ No newline at end of file diff --git a/static/js/7938.039b49c4.chunk.js.map b/static/js/7938.039b49c4.chunk.js.map new file mode 100644 index 000000000..e10ec7545 --- /dev/null +++ b/static/js/7938.039b49c4.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7938.039b49c4.chunk.js","mappings":"yHAAA,s/C","sources":["../../node_modules/code-example/txt/sample.clojure.txt"],"sourcesContent":["export default \"(ns game-of-life\\n \\\"Conway's Game of Life, based on the work of\\n Christophe Grand (http://clj-me.cgrand.net/2011/08/19/conways-game-of-life)\\n and Laurent Petit (https://gist.github.com/1200343).\\\")\\n\\n;;; Core game of life's algorithm functions\\n\\n(defn neighbors\\n \\\"Given a cell's coordinates `[x y]`, returns the coordinates of its\\n neighbors.\\\"\\n [[x y]]\\n (for [dx [-1 0 1]\\n dy (if (zero? dx)\\n [-1 1]\\n [-1 0 1])]\\n [(+ dx x) (+ dy y)]))\\n\\n(defn step\\n \\\"Given a set of living `cells`, computes the new set of living cells.\\\"\\n [cells]\\n (set (for [[cell n] (frequencies (mapcat neighbors cells))\\n :when (or (= n 3)\\n (and (= n 2)\\n (cells cell)))]\\n cell)))\\n\\n;;; Utility methods for displaying game on a text terminal\\n\\n(defn print-grid\\n \\\"Prints a `grid` of `w` columns and `h` rows, on *out*, representing a\\n step in the game.\\\"\\n [grid w h]\\n (doseq [x (range (inc w))\\n y (range (inc h))]\\n (when (= y 0) (println))\\n (print (if (grid [x y])\\n \\\"[X]\\\"\\n \\\" . \\\"))))\\n\\n(defn print-grids\\n \\\"Prints a sequence of `grids` of `w` columns and `h` rows on *out*,\\n representing several steps.\\\"\\n [grids w h]\\n (doseq [grid grids]\\n (print-grid grid w h)\\n (println)))\\n\\n;;; Launches an example grid\\n\\n(def grid\\n \\\"`grid` represents the initial set of living cells\\\"\\n #{[2 1] [2 2] [2 3]})\\n\\n(print-grids (take 3 (iterate step grid)) 5 5)\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/7939.39225f80.chunk.js b/static/js/7939.39225f80.chunk.js new file mode 100644 index 000000000..5dd1a888a --- /dev/null +++ b/static/js/7939.39225f80.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[7939],{77939:(e,k,w)=>{w.r(k),w.d(k,{default:()=>y});const y='EXISTS mykey\nAPPEND mykey "Hello"\nAPPEND mykey " World"\nGET mykey'}}]); +//# sourceMappingURL=7939.39225f80.chunk.js.map \ No newline at end of file diff --git a/static/js/7939.39225f80.chunk.js.map b/static/js/7939.39225f80.chunk.js.map new file mode 100644 index 000000000..85d821ba7 --- /dev/null +++ b/static/js/7939.39225f80.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7939.39225f80.chunk.js","mappings":"yHAAA,8E","sources":["../../node_modules/code-example/txt/sample.redis.txt"],"sourcesContent":["export default \"EXISTS mykey\\nAPPEND mykey \\\"Hello\\\"\\nAPPEND mykey \\\" World\\\"\\nGET mykey\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/797.ec791085.chunk.js b/static/js/797.ec791085.chunk.js new file mode 100644 index 000000000..ac343dd43 --- /dev/null +++ b/static/js/797.ec791085.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[797],{55864:(e,t,r)=>{r.d(t,{zu:()=>i});var n,a,o=r(60114),l=r(6008);const i=l.Ay.div(n||(n=(0,o.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));l.Ay.div(a||(a=(0,o.A)(["\n display: flex;\n flex: 1;\n"])))},70797:(e,t,r)=>{r.r(t),r.d(t,{Component:()=>C,ZebraStripesExample:()=>k});var n=r(60114),a=r(80905),o=r(98846),l=r(8070),i=r(67538),s=l.sj.define({combine:e=>e.length&&Array.isArray(e)?e.flat():[]}),d=l.sj.define({combine:e=>e.length&&Array.isArray(e)?Math.min(...e):2}),c=i.NZ.line({attributes:{class:"cm-zebra-stripe"}});function u(e){var t=e.state.facet(d),r=e.state.facet(s),n=new l.vB;for(var{from:a,to:o}of e.visibleRanges)for(var i=a;i<=o;){var u=e.state.doc.lineAt(i);u.number%t===0&&0===r.length&&n.add(u.from,u.from,c),r.length>0&&r.flat().includes(u.number)&&n.add(u.from,u.from,c),i=u.to+1}return n.finish()}var m=i.Z9.fromClass(class{constructor(e){this.decorations=void 0,this.decorations=u(e)}update(e){this.decorations=u(e.view)}},{decorations:e=>e.decorations});function h(e){void 0===e&&(e={});var{className:t="cm-zebra-stripe"}=e;c=i.NZ.line({attributes:{class:t}}),e.lineNumber&&Array.isArray(e.lineNumber)?(e.step=null,e.lineNumber=e.lineNumber.map((e=>{return Array.isArray(e)&&"number"===typeof e[0]&&"number"===typeof e[1]?(t=e[0],r=e[1],n=1,Array.from({length:(r-t)/n+1},((e,r)=>t+r*n))):e;var t,r,n}))):e.lineNumber=null;var r,n=[null===e.lineNumber?[]:s.of(e.lineNumber||[]),null===e.step?[]:d.of(e.step||2),m];if(t){var a=(void 0===(r={lightColor:e.lightColor,darkColor:e.darkColor,className:t})&&(r={}),i.Lz.baseTheme({["&light ."+r.className]:{backgroundColor:r.lightColor||"#eef6ff"},["&dark ."+r.className]:{backgroundColor:r.darkColor||"#3a404d"}}));n.push(a)}return n}var p,f=r(73562),v=r(69332),x=r(6008),b=r(55864),g=r(94458),y=r(98557);const A=x.Ay.div(p||(p=(0,n.A)(["\n padding-bottom: 24px;\n display: flex;\n gap: 18px;\n"]))),k=()=>{const{theme:e}=(0,g.D)(),[t,r]=(0,a.useState)(2),n=h({step:t}),l=(0,a.useContext)(o.pX);return(0,y.jsxs)(b.zu,{children:[(0,y.jsx)(f.default,{value:l.mdstr,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[v.cg.markdown(),n]}),(0,y.jsx)(A,{children:(0,y.jsxs)("select",{value:t,onChange:e=>r(Number(e.target.value)),children:[(0,y.jsx)("option",{value:1,children:"1"}),(0,y.jsx)("option",{value:2,children:"2"}),(0,y.jsx)("option",{value:3,children:"3"}),(0,y.jsx)("option",{value:4,children:"4"}),(0,y.jsx)("option",{value:5,children:"5"}),(0,y.jsx)("option",{value:6,children:"6"})]})}),(0,y.jsx)(f.default,{value:l.mdstr,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[v.cg.markdown(),h({lineNumber:[1,[3,6],10],lightColor:"#aca2ff33",darkColor:"#aca2ff40"})]})]})},C=()=>(0,y.jsx)(o.lN,{path:()=>r.e(1971).then(r.bind(r,11971)),children:(0,y.jsx)(k,{})})},94458:(e,t,r)=>{r.d(t,{D:()=>a});var n=r(80905);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[r,a]=(0,n.useState)("dark"===t?"dark":e);return(0,n.useEffect)((()=>{a("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{a(e.detail.colorScheme)}))}),[]),{theme:r,setTheme:a}}}}]); +//# sourceMappingURL=797.ec791085.chunk.js.map \ No newline at end of file diff --git a/static/js/797.ec791085.chunk.js.map b/static/js/797.ec791085.chunk.js.map new file mode 100644 index 000000000..edf2262be --- /dev/null +++ b/static/js/797.ec791085.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/797.ec791085.chunk.js","mappings":"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","sources":["pages/extensions/index.tsx","../../extensions/zebra-stripes/esm/index.js","pages/extensions/zebra-stripes/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { Facet, RangeSetBuilder } from '@codemirror/state';\nimport { EditorView, Decoration, ViewPlugin } from '@codemirror/view';\nvar lineNumber = Facet.define({\n combine: values => {\n return values.length && Array.isArray(values) ? values.flat() : [];\n }\n});\nvar stepSize = Facet.define({\n combine: values => {\n return values.length && Array.isArray(values) ? Math.min(...values) : 2;\n }\n});\nvar stripe = Decoration.line({\n attributes: {\n class: 'cm-zebra-stripe'\n }\n});\nfunction stripeDeco(view) {\n var step = view.state.facet(stepSize);\n var num = view.state.facet(lineNumber);\n var builder = new RangeSetBuilder();\n for (var {\n from,\n to\n } of view.visibleRanges) {\n for (var pos = from; pos <= to;) {\n var line = view.state.doc.lineAt(pos);\n if (line.number % step === 0 && num.length === 0) {\n builder.add(line.from, line.from, stripe);\n }\n if (num.length > 0 && num.flat().includes(line.number)) {\n builder.add(line.from, line.from, stripe);\n }\n pos = line.to + 1;\n }\n }\n return builder.finish();\n}\nvar showStripes = ViewPlugin.fromClass(class {\n constructor(view) {\n this.decorations = void 0;\n this.decorations = stripeDeco(view);\n }\n update(update) {\n this.decorations = stripeDeco(update.view);\n // if (update.docChanged || update.viewportChanged) {\n // this.decorations = stripeDeco(update.view);\n // }\n }\n}, {\n decorations: v => v.decorations\n});\nvar baseTheme = function baseTheme(opt) {\n if (opt === void 0) {\n opt = {};\n }\n return EditorView.baseTheme({\n [\"&light .\" + opt.className]: {\n backgroundColor: opt.lightColor || '#eef6ff'\n },\n [\"&dark .\" + opt.className]: {\n backgroundColor: opt.darkColor || '#3a404d'\n }\n });\n};\nvar range = (start, stop, step) => Array.from({\n length: (stop - start) / step + 1\n}, (_, i) => start + i * step);\nexport function zebraStripes(options) {\n if (options === void 0) {\n options = {};\n }\n var {\n className = 'cm-zebra-stripe'\n } = options;\n stripe = Decoration.line({\n attributes: {\n class: className\n }\n });\n if (options.lineNumber && Array.isArray(options.lineNumber)) {\n options.step = null;\n options.lineNumber = options.lineNumber.map(item => {\n if (Array.isArray(item) && typeof item[0] === 'number' && typeof item[1] === 'number') {\n return range(item[0], item[1], 1);\n }\n return item;\n });\n } else {\n options.lineNumber = null;\n }\n var extensions = [options.lineNumber === null ? [] : lineNumber.of(options.lineNumber || []), options.step === null ? [] : stepSize.of(options.step || 2), showStripes];\n if (className) {\n var zebraStripeTheme = baseTheme({\n lightColor: options.lightColor,\n darkColor: options.darkColor,\n className\n });\n extensions.push(zebraStripeTheme);\n }\n return extensions;\n}","import { FC, PropsWithChildren, useContext } from 'react';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { zebraStripes } from '@uiw/codemirror-extensions-zebra-stripes';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { useState } from 'react';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport styled from 'styled-components';\nimport { PageWarpper } from '../';\nimport { useTheme } from '../../../utils/useTheme';\n\nconst OptionsView = styled.div`\n padding-bottom: 24px;\n display: flex;\n gap: 18px;\n`;\n\nexport const ZebraStripesExample: FC = () => {\n const { theme } = useTheme();\n const [step, setStep] = useState(2);\n const zebra = zebraStripes({ step: step });\n const mdData = useContext(MdContext);\n return (\n \n \n \n \n \n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-zebra-stripes/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["PageWarpper","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","lineNumber","Facet","define","combine","values","length","Array","isArray","flat","stepSize","Math","min","stripe","Decoration","line","attributes","class","stripeDeco","view","step","state","facet","num","builder","RangeSetBuilder","from","to","visibleRanges","pos","doc","lineAt","number","add","includes","finish","showStripes","ViewPlugin","fromClass","constructor","this","decorations","update","v","zebraStripes","options","className","map","item","start","stop","_","i","range","opt","extensions","of","zebraStripeTheme","lightColor","darkColor","EditorView","baseTheme","backgroundColor","push","OptionsView","ZebraStripesExample","theme","useTheme","setStep","useState","zebra","mdData","useContext","MdContext","_jsxs","children","_jsx","CodeMirror","value","mdstr","height","style","margin","langs","markdown","onChange","evn","Number","target","Component","Preview","path","name","arguments","undefined","dark","document","documentElement","getAttribute","setTheme","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8004.b032ca8e.chunk.js b/static/js/8004.b032ca8e.chunk.js new file mode 100644 index 000000000..9de841604 --- /dev/null +++ b/static/js/8004.b032ca8e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8004],{68004:(n,e,t)=>{t.r(e),t.d(e,{Component:()=>k});var r=t(60114),a=t(6008),o=t(28169),i=t(73562),s=t(88118),d=t(69332),c=t(8942),l=t(27580);const p=function(){var n;return null===(n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))||void 0===n?void 0:n.map((n=>n.toLowerCase())).join(",").split(",")},u=function(){var n;return null===(n=(arguments.length>0&&void 0!==arguments[0]?arguments[0]:"").match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g))||void 0===n?void 0:n.map((n=>n.charAt(0).toUpperCase()+n.slice(1))).join(" ")};var m,h,v,g,b=t(98557);const x=a.Ay.div(m||(m=(0,r.A)(["\n grid-template-columns: repeat(3, minmax(0, 1fr));\n grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));\n gap: 2.5rem;\n display: grid;\n padding: 2.6rem;\n a {\n text-decoration: none;\n }\n"]))),A=a.Ay.div(h||(h=(0,r.A)(["\n padding: 1rem;\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border-radius: 0.5rem;\n border: 1px solid var(--color-neutral-muted);\n background-color: var(--color-canvas-subtle);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n &:hover {\n transform: translate(0, -0.25rem) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);\n }\n"]))),f=a.Ay.div(v||(v=(0,r.A)(["\n font-weight: 600;\n padding-bottom: 0.68rem;\n"]))),w="import React, { useState } from 'react';\n\n// My favorite component\nconst Counter = () => {\n const [value, setValue] = useState(0);\n return (\n {value}\n );\n};",j=a.Ay.div(g||(g=(0,r.A)(["\n border-radius: 0.375rem;\n overflow: hidden;\n position: relative;\n &::before {\n content: '';\n display: block;\n height: 100%;\n background: transparent;\n width: 100%;\n position: absolute;\n z-index: 1;\n }\n"])));function k(){return(0,b.jsx)(c.U,{children:(0,b.jsx)(x,{children:Object.keys(l.K).map(((n,e)=>{const t=(p(n)||[]).join("-").replace(/-light$/,"/light").replace(/-dark$/,"/dark"),r=l.K[n];return(0,b.jsx)(o.N_,{to:"/theme/data/".concat(t),children:(0,b.jsxs)(A,{children:[(0,b.jsx)(f,{children:u(n)}),(0,b.jsx)(j,{children:(0,b.jsx)(i.default,{theme:r,value:w,height:"185px !important",extensions:[s.yW,d.cg.jsx()]})})]})},e)}))})})}}}]); +//# sourceMappingURL=8004.b032ca8e.chunk.js.map \ No newline at end of file diff --git a/static/js/8004.b032ca8e.chunk.js.map b/static/js/8004.b032ca8e.chunk.js.map new file mode 100644 index 000000000..20eb592ca --- /dev/null +++ b/static/js/8004.b032ca8e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8004.b032ca8e.chunk.js","mappings":"qNAAO,MAAMA,EAAc,eAAAC,EAAiB,OAEoC,QAFpCA,GAALC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAErCG,MAAM,6EAAqE,IAAAJ,OAAA,EAD9EA,EAEIK,KAAKC,GAAMA,EAAEC,gBACdC,KAAK,KACLC,MAAM,IAAK,EAEHC,EAAc,eAAAC,EAAiB,OAEoC,QAFpCA,GAALV,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAErCG,MAAM,6EAAqE,IAAAO,OAAA,EAD9EA,EAEIN,KAAKC,GAAMA,EAAEM,OAAO,GAAGC,cAAgBP,EAAEQ,MAAM,KAChDN,KAAK,IAAK,E,uBCFf,MAAMO,EAAgBC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,6NAW1BC,EAAYJ,EAAAA,GAAOC,IAAGI,IAAAA,GAAAF,EAAAA,EAAAA,GAAA,+dAkBtBG,EAAQN,EAAAA,GAAOC,IAAGM,IAAAA,GAAAJ,EAAAA,EAAAA,GAAA,2DAKlBK,EAAU,0LAUVC,EAAaT,EAAAA,GAAOC,IAAGS,IAAAA,GAAAP,EAAAA,EAAAA,GAAA,0PAetB,SAASQ,IACd,OACEC,EAAAA,EAAAA,KAACC,EAAAA,EAAO,CAAAC,UACNF,EAAAA,EAAAA,KAACb,EAAa,CAAAe,SACXC,OAAOC,KAAKC,EAAAA,GAAW5B,KAAI,CAAC6B,EAAMC,KACjC,MAAMC,GAAYrC,EAAYmC,IAAS,IACpC1B,KAAK,KACL6B,QAAQ,UAAW,UACnBA,QAAQ,SAAU,SACfC,EAAiBL,EAAAA,EAAUC,GACjC,OACEN,EAAAA,EAAAA,KAACW,EAAAA,GAAI,CAAWC,GAAE,eAAAC,OAAiBL,GAAWN,UAC5CY,EAAAA,EAAAA,MAACtB,EAAS,CAAAU,SAAA,EACRF,EAAAA,EAAAA,KAACN,EAAK,CAAAQ,SAAEpB,EAAYwB,MACpBN,EAAAA,EAAAA,KAACH,EAAU,CAAAK,UACTF,EAAAA,EAAAA,KAACe,EAAAA,QAAU,CACTC,MAAON,EACPO,MAAOrB,EACPsB,OAAO,mBACPC,WAAY,CAACC,EAAAA,GAAOC,EAAAA,GAAMC,eARvBf,EAYJ,OAMnB,C","sources":["utils/utils.ts","pages/theme/home/index.tsx"],"sourcesContent":["export const toSnakeCase = (str: string = '') =>\n str\n .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n ?.map((x) => x.toLowerCase())\n .join(',')\n .split(',');\n\nexport const toTitleCase = (str: string = '') =>\n str\n .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n ?.map((x) => x.charAt(0).toUpperCase() + x.slice(1))\n .join(' ');\n\nexport const toCamelCase = (str: string = '') => {\n const s =\n str\n .match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)\n ?.map((x) => x.slice(0, 1).toUpperCase() + x.slice(1).toLowerCase())\n .join('') || '';\n return s.slice(0, 1).toLowerCase() + s.slice(1);\n};\n","import styled from 'styled-components';\nimport { Link } from 'react-router-dom';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { color } from '@uiw/codemirror-extensions-color';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Warpper } from '../../../components/Warpper';\nimport { themeData } from '../themes/Datas';\nimport { toSnakeCase, toTitleCase } from '../../../utils/utils';\n\nconst ThemesWarpper = styled.div`\n grid-template-columns: repeat(3, minmax(0, 1fr));\n grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));\n gap: 2.5rem;\n display: grid;\n padding: 2.6rem;\n a {\n text-decoration: none;\n }\n`;\n\nconst ThemeCard = styled.div`\n padding: 1rem;\n box-shadow:\n 0 0 #0000,\n 0 0 #0000,\n 0 0 #0000,\n 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n border-radius: 0.5rem;\n border: 1px solid var(--color-neutral-muted);\n background-color: var(--color-canvas-subtle);\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 0.2s;\n &:hover {\n transform: translate(0, -0.25rem) rotate(0) skewX(0) skewY(0) scaleX(1) scaleY(1);\n }\n`;\n\nconst Title = styled.div`\n font-weight: 600;\n padding-bottom: 0.68rem;\n`;\n\nconst codeString = `import React, { useState } from 'react';\n\n// My favorite component\nconst Counter = () => {\n const [value, setValue] = useState(0);\n return (\n {value}\n );\n};`;\n\nconst CodeEditor = styled.div`\n border-radius: 0.375rem;\n overflow: hidden;\n position: relative;\n &::before {\n content: '';\n display: block;\n height: 100%;\n background: transparent;\n width: 100%;\n position: absolute;\n z-index: 1;\n }\n`;\n\nexport function Component() {\n return (\n \n \n {Object.keys(themeData).map((name, idx) => {\n const linkName = (toSnakeCase(name) || [])\n .join('-')\n .replace(/-light$/, '/light')\n .replace(/-dark$/, '/dark');\n const themeExtension = themeData[name as keyof typeof themeData];\n return (\n \n \n {toTitleCase(name)}\n \n \n \n \n \n );\n })}\n \n \n );\n}\n"],"names":["toSnakeCase","_str$match","arguments","length","undefined","match","map","x","toLowerCase","join","split","toTitleCase","_str$match2","charAt","toUpperCase","slice","ThemesWarpper","styled","div","_templateObject","_taggedTemplateLiteral","ThemeCard","_templateObject2","Title","_templateObject3","codeString","CodeEditor","_templateObject4","Component","_jsx","Warpper","children","Object","keys","themeData","name","idx","linkName","replace","themeExtension","Link","to","concat","_jsxs","CodeMirror","theme","value","height","extensions","color","langs","jsx"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8033.0a146f75.chunk.js b/static/js/8033.0a146f75.chunk.js new file mode 100644 index 000000000..7fd8cf455 --- /dev/null +++ b/static/js/8033.0a146f75.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8033],{78033:(e,t,r)=>{r.r(t),r.d(t,{default:()=>i});const i={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# White Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-white.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-white)\n\nWhite theme for cm6, generated from [white-theme](https://github.com/xthezealot/white-theme-vscode/tree/master/themes).\n\n\n \"codemirror-theme-white\"\n\n\n\n \"codemirror-theme-white\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-white --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [whiteDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { whiteLight, whiteLightInit, whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white';\n// Or\nimport { whiteLight, whiteLightInit } from '@uiw/codemirror-theme-white/light';\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsWhiteLight: CreateThemeOptions['settings'];\nexport declare const whiteLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const whiteLight: import('@codemirror/state').Extension;\n\nexport declare const defaultSettingsWhiteDark: CreateThemeOptions['settings'];\nexport declare const whiteDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const whiteDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { whiteLight, whiteLightInit } from '@uiw/codemirror-theme-white/light';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [whiteDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=8033.0a146f75.chunk.js.map \ No newline at end of file diff --git a/static/js/8033.0a146f75.chunk.js.map b/static/js/8033.0a146f75.chunk.js.map new file mode 100644 index 000000000..a0d958644 --- /dev/null +++ b/static/js/8033.0a146f75.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8033.0a146f75.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,0xHACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/white/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# White Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-white.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-white)\\n\\nWhite theme for cm6, generated from [white-theme](https://github.com/xthezealot/white-theme-vscode/tree/master/themes).\\n\\n\\n \\\"codemirror-theme-white\\\"\\n\\n\\n\\n \\\"codemirror-theme-white\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-white --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [whiteDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { whiteLight, whiteLightInit, whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white';\\n// Or\\nimport { whiteLight, whiteLightInit } from '@uiw/codemirror-theme-white/light';\\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsWhiteLight: CreateThemeOptions['settings'];\\nexport declare const whiteLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const whiteLight: import('@codemirror/state').Extension;\\n\\nexport declare const defaultSettingsWhiteDark: CreateThemeOptions['settings'];\\nexport declare const whiteDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const whiteDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { whiteLight, whiteLightInit } from '@uiw/codemirror-theme-white/light';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { whiteDark, whiteDarkInit } from '@uiw/codemirror-theme-white/dark';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [whiteDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8057.0e527b00.chunk.js b/static/js/8057.0e527b00.chunk.js new file mode 100644 index 000000000..0857fa796 --- /dev/null +++ b/static/js/8057.0e527b00.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8057],{55864:(e,t,n)=>{n.d(t,{zu:()=>s});var r,a,d=n(60114),o=n(6008);const s=o.Ay.div(r||(r=(0,d.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));o.Ay.div(a||(a=(0,d.A)(["\n display: flex;\n flex: 1;\n"])))},18057:(e,t,n)=>{n.r(t),n.d(t,{Component:()=>u,LineNumbersRelativeExample:()=>m});var r=n(80905);var a=[(0,n(67538).$K)({formatNumber:(e,t)=>{if(e>t.doc.lines)return"0";var n=t.doc.lineAt(t.selection.asSingle().ranges[0].to).number;return e===n?"0":Math.abs(n-e).toString()}})],d=n(73562),o=n(69332),s=n(98846),i=n(94458),l=n(55864),c=n(98557);const m=()=>{const{theme:e}=(0,i.D)(),t=(0,r.useContext)(s.pX);return(0,c.jsx)(l.zu,{children:(0,c.jsx)(d.default,{value:t.mdstr,theme:e,height:"300px !important",style:{margin:"0 0 23px 0"},extensions:[o.cg.markdown(),a]})})},u=()=>(0,c.jsx)(s.lN,{path:()=>n.e(4510).then(n.bind(n,14510)),children:(0,c.jsx)(m,{})})},94458:(e,t,n)=>{n.d(t,{D:()=>a});var r=n(80905);function a(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[n,a]=(0,r.useState)("dark"===t?"dark":e);return(0,r.useEffect)((()=>{a("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{a(e.detail.colorScheme)}))}),[]),{theme:n,setTheme:a}}}}]); +//# sourceMappingURL=8057.0e527b00.chunk.js.map \ No newline at end of file diff --git a/static/js/8057.0e527b00.chunk.js.map b/static/js/8057.0e527b00.chunk.js.map new file mode 100644 index 000000000..86f72a815 --- /dev/null +++ b/static/js/8057.0e527b00.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8057.0e527b00.chunk.js","mappings":"0IAEO,MAAMA,EAAcC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,kGCQ1B,IAAIE,EAAsB,EAdxBC,E,SAAAA,IAAY,CACjBC,aAAcA,CAACC,EAAQC,KACrB,GAAID,EAASC,EAAMC,IAAIC,MACrB,MAAO,IAET,IAAIC,EAAaH,EAAMC,IAAIG,OAAOJ,EAAMK,UAAUC,WAAWC,OAAO,GAAGC,IAAIC,OAC3E,OAAIV,IAAWI,EACN,IAEAO,KAAKC,IAAIR,EAAaJ,GAAQa,UACvC,K,kECJC,MAAMC,EAAoDA,KAC/D,MAAM,MAAEC,IAAUC,EAAAA,EAAAA,KACZC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IAC1B,OACEC,EAAAA,EAAAA,KAAC7B,EAAAA,GAAW,CAAA8B,UACVD,EAAAA,EAAAA,KAACE,EAAAA,QAAU,CACTC,MAAON,EAAOO,MACdT,MAAOA,EACPU,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CAACC,EAAAA,GAAMC,WAAYjC,MAErB,EAILkC,EAAYA,KAErBX,EAAAA,EAAAA,KAACY,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAAqEZ,UACxFD,EAAAA,EAAAA,KAACN,EAA0B,K,kDCxB1B,SAASE,IAAyD,IAAhDkB,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5C1B,EAAO2B,IAAYC,EAAAA,EAAAA,UAAiD,SAATL,EAAkB,OAASJ,GAO7F,OANAU,EAAAA,EAAAA,YAAU,KACRF,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASM,iBAAiB,qBAAsBC,IAC9CJ,EAASI,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAEjC,QAAO2B,WAClB,C","sources":["pages/extensions/index.tsx","../../extensions/line-numbers-relative/esm/index.js","pages/extensions/line-numbers-relative/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { lineNumbers } from '@codemirror/view';\nfunction formatNumber() {\n return lineNumbers({\n formatNumber: (lineNo, state) => {\n if (lineNo > state.doc.lines) {\n return '0';\n }\n var cursorLine = state.doc.lineAt(state.selection.asSingle().ranges[0].to).number;\n if (lineNo === cursorLine) {\n return '0';\n } else {\n return Math.abs(cursorLine - lineNo).toString();\n }\n }\n });\n}\nexport var lineNumbersRelative = [formatNumber()];","import { useContext, type FC, type PropsWithChildren } from 'react';\nimport { lineNumbersRelative } from '@uiw/codemirror-extensions-line-numbers-relative';\nimport CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\n\nexport const LineNumbersRelativeExample: FC = () => {\n const { theme } = useTheme();\n const mdData = useContext(MdContext);\n return (\n \n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-line-numbers-relative/README.md')}>\n \n \n );\n};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["PageWarpper","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","lineNumbersRelative","lineNumbers","formatNumber","lineNo","state","doc","lines","cursorLine","lineAt","selection","asSingle","ranges","to","number","Math","abs","toString","LineNumbersRelativeExample","theme","useTheme","mdData","useContext","MdContext","_jsx","children","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","Component","Preview","path","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useState","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/807.fae9195d.chunk.js b/static/js/807.fae9195d.chunk.js new file mode 100644 index 000000000..b3dde24d8 --- /dev/null +++ b/static/js/807.fae9195d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[807],{30807:(e,n,E)=>{E.r(n),E.d(n,{default:()=>N});const N="BEGIN\n SELECT * INTO STRICT myrec FROM emp WHERE empname = myname;\n EXCEPTION\n WHEN NO_DATA_FOUND THEN\n RAISE EXCEPTION 'employee % not found', myname;\n WHEN TOO_MANY_ROWS THEN\n RAISE EXCEPTION 'employee % not unique', myname;\nEND;"}}]); +//# sourceMappingURL=807.fae9195d.chunk.js.map \ No newline at end of file diff --git a/static/js/807.fae9195d.chunk.js.map b/static/js/807.fae9195d.chunk.js.map new file mode 100644 index 000000000..f9c740d49 --- /dev/null +++ b/static/js/807.fae9195d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/807.fae9195d.chunk.js","mappings":"wHAAA,kS","sources":["../../node_modules/code-example/txt/sample.pgsql.txt"],"sourcesContent":["export default \"BEGIN\\n SELECT * INTO STRICT myrec FROM emp WHERE empname = myname;\\n EXCEPTION\\n WHEN NO_DATA_FOUND THEN\\n RAISE EXCEPTION 'employee % not found', myname;\\n WHEN TOO_MANY_ROWS THEN\\n RAISE EXCEPTION 'employee % not unique', myname;\\nEND;\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/811.4fd9f791.chunk.js b/static/js/811.4fd9f791.chunk.js new file mode 100644 index 000000000..1f400e745 --- /dev/null +++ b/static/js/811.4fd9f791.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[811],{30811:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>u});var r=t(27406),o=t(67538),i=t(8070),a=t(52019),s=t(98557);const l=r.default.Original,c=r.default.Modified;let d="one\ntwo\nthree\nfour\nfive";function u(){return(0,s.jsxs)(r.default,{style:{width:540},orientation:"b-a",theme:a.QI,children:[(0,s.jsx)(l,{value:d}),(0,s.jsx)(c,{value:d.replace(/t/g,"T")+"Six",extensions:[o.Lz.editable.of(!1),i.$t.readOnly.of(!0)]})]})}},27406:(e,n,t)=>{t.r(n),t.d(n,{default:()=>y});var r=t(68102),o=t(49257),i=t(80905),a=t(73562),s=t(67538),l=t(98557),c={modified:{doc:""},original:{doc:""}},d=(0,i.createContext)(c);function u(e,n){return(0,r.A)({},e,n,{modified:(0,r.A)({},e.modified,n.modified),original:(0,r.A)({},e.original,n.original)})}var h=()=>(0,i.useContext)(d),f=e=>{var{children:n,theme:t}=e,[o,a]=(0,i.useReducer)(u,(0,r.A)({},c,{theme:t}));return(0,i.useEffect)((()=>a({theme:t})),[t]),(0,l.jsx)(d.Provider,{value:(0,r.A)({},o,{dispatch:a}),children:n})},g=["extensions","value","selection","onChange"],v=e=>{var{extensions:n=[],value:t,selection:l,onChange:c}=e,d=(0,o.A)(e,g),{theme:u,dispatch:f}=h(),v=(0,a.getDefaultExtensions)((0,r.A)({},d,{theme:u})),m=s.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof c){var n=e.state.doc.toString();c(n,e)}}));return(0,i.useEffect)((()=>f({original:{doc:t,selection:l,extensions:[m,...v,...n]},originalExtension:{onChange:c,option:d,extension:[n,m]}})),[e]),null};v.displayName="CodeMirrorMerge.Original";var m=["extensions","value","selection","onChange"],x=e=>{var{extensions:n=[],value:t,selection:l,onChange:c}=e,d=(0,o.A)(e,m),{theme:u,dispatch:f}=h(),g=(0,a.getDefaultExtensions)((0,r.A)({},d,{theme:u})),v=s.Lz.updateListener.of((e=>{if(e.docChanged&&"function"===typeof c){var n=e.state.doc.toString();c(n,e)}}));return(0,i.useEffect)((()=>f({modified:{doc:t,selection:l,extensions:[v,...g,...n]},modifiedExtension:{onChange:c,option:d,extension:[v,n]}})),[e]),null};x.displayName="CodeMirrorMerge.Modified";var p=t(60125),C=["className","children","orientation","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl"],A=["modified","modifiedExtension","original","originalExtension","theme","dispatch"],E=i.forwardRef(((e,n)=>{var{className:t,children:s,orientation:c,revertControls:d,highlightChanges:u,gutter:f,collapseUnchanged:g,destroyRerender:v=!0,renderRevertControl:m}=e,x=(0,o.A)(e,C),E=h(),{modified:w,modifiedExtension:b,original:y,originalExtension:M,theme:R,dispatch:j}=E,N=(0,o.A)(E,A),S=(0,i.useRef)(null),D=(0,i.useRef)(),U={orientation:c,revertControls:d,highlightChanges:u,gutter:f,collapseUnchanged:g,renderRevertControl:m};(0,i.useImperativeHandle)(n,(()=>({container:S.current,view:D.current,modified:w,original:y,config:(0,r.A)({a:y,b:w,parent:S.current},U)})),[S,D,w,y,U]),(0,i.useEffect)((()=>{!D.current&&S.current&&(D.current=new p.SV((0,r.A)({a:(0,r.A)({},y,{extensions:[...(null==M?void 0:M.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==M?void 0:M.option,{theme:R}))]}),b:(0,r.A)({},w,{extensions:[...(null==b?void 0:b.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==b?void 0:b.option,{theme:R}))]}),parent:S.current},U)))}),[D,S]),(0,i.useEffect)((()=>{if(y&&y.doc&&D.current){var e,n,t=null==(e=D.current)?void 0:e.a.state.doc.toString();if(t!==y.doc)null==(n=D.current)||n.a.dispatch({changes:{from:0,to:t.length,insert:y.doc||""}})}if(w&&w.doc&&D.current){var o,i,s=null==(o=D.current)?void 0:o.b.state.doc.toString();if(s!==w.doc)null==(i=D.current)||i.b.dispatch({changes:{from:0,to:s.length,insert:w.doc||""}})}if(v&&D.current){var l=D.current.a.state.selection.ranges[0].from,c=D.current.b.state.selection.ranges[0].from;D.current.destroy(),D.current=new p.SV((0,r.A)({a:(0,r.A)({},y,{extensions:[...(null==M?void 0:M.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==M?void 0:M.option,{theme:R}))]}),b:(0,r.A)({},w,{extensions:[...(null==b?void 0:b.extension)||[],...(0,a.getDefaultExtensions)((0,r.A)({},null==b?void 0:b.option,{theme:R}))]}),parent:S.current},U)),l&&(D.current.a.focus(),D.current.a.dispatch({selection:{anchor:l,head:l}})),c&&(D.current.b.focus(),D.current.b.dispatch({selection:{anchor:c,head:c}}))}}),[D,R,S.current,y,w,M,b,v]),(0,i.useEffect)((()=>()=>D.current&&D.current.destroy()),[]),(0,i.useEffect)((()=>{if(D.current){var e={};N.orientation!==c&&(e.orientation=c),N.revertControls!==d&&(e.revertControls=d),N.highlightChanges!==u&&(e.highlightChanges=u),N.gutter!==f&&(e.gutter=f),N.collapseUnchanged!==g&&(e.collapseUnchanged=g),N.renderRevertControl!==m&&(e.collapseUnchanged=g),Object.keys(e).length&&j&&D.current&&(D.current.reconfigure((0,r.A)({},e)),j((0,r.A)({},e)))}}),[j,D,c,d,u,f,g,m]);return(0,l.jsx)("div",(0,r.A)({ref:S,className:"cm-merge-theme"+(t?" "+t:"")},x,{children:s}))}));E.displayName="CodeMirrorMerge.Internal";var w=["theme"],b=i.forwardRef(((e,n)=>{var{theme:t}=e,i=(0,o.A)(e,w);return(0,l.jsx)(f,{theme:t,children:(0,l.jsx)(E,(0,r.A)({},i,{ref:n}))})}));b.Original=v,b.Modified=x,b.displayName="CodeMirrorMerge";const y=b}}]); +//# sourceMappingURL=811.4fd9f791.chunk.js.map \ No newline at end of file diff --git a/static/js/811.4fd9f791.chunk.js.map b/static/js/811.4fd9f791.chunk.js.map new file mode 100644 index 000000000..cff685c89 --- /dev/null +++ b/static/js/811.4fd9f791.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/811.4fd9f791.chunk.js","mappings":"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","sources":["pages/examples/Example455.tsx","../../merge/esm/store.js","../../merge/esm/Original.js","../../merge/esm/Modified.js","../../merge/esm/Internal.js","../../merge/esm/index.js"],"sourcesContent":["import CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\nimport { androidstudio } from '@uiw/codemirror-theme-androidstudio';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\n/**\n * https://github.com/uiwjs/react-codemirror/issues/455\n */\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport function Component() {\n return (\n \n \n \n \n );\n}\n","import _extends from \"@babel/runtime/helpers/extends\";\nimport React, { createContext, useContext, useEffect, useReducer } from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var initialState = {\n modified: {\n doc: ''\n },\n original: {\n doc: ''\n }\n};\nexport var Context = /*#__PURE__*/createContext(initialState);\nexport function reducer(state, action) {\n return _extends({}, state, action, {\n modified: _extends({}, state.modified, action.modified),\n original: _extends({}, state.original, action.original)\n });\n}\nexport var useStore = () => {\n return useContext(Context);\n};\nexport var Provider = _ref => {\n var {\n children,\n theme\n } = _ref;\n var [state, dispatch] = useReducer(reducer, _extends({}, initialState, {\n theme\n }));\n useEffect(() => dispatch({\n theme\n }), [theme]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: _extends({}, state, {\n dispatch\n }),\n children: children\n });\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Original = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n original: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n originalExtension: {\n onChange,\n option: otherOption,\n extension: [extensions, updateListener]\n }\n }), [props]);\n return null;\n};\nOriginal.displayName = 'CodeMirrorMerge.Original';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"extensions\", \"value\", \"selection\", \"onChange\"];\nimport { useEffect } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { EditorView } from '@codemirror/view';\nimport { useStore } from './store';\nexport var Modified = props => {\n var {\n extensions = [],\n value,\n selection,\n onChange\n } = props,\n otherOption = _objectWithoutPropertiesLoose(props, _excluded);\n var {\n theme,\n dispatch\n } = useStore();\n var defaultExtensions = getDefaultExtensions(_extends({}, otherOption, {\n theme\n }));\n var updateListener = EditorView.updateListener.of(vu => {\n if (vu.docChanged && typeof onChange === 'function') {\n var doc = vu.state.doc;\n var val = doc.toString();\n onChange(val, vu);\n }\n });\n useEffect(() => dispatch({\n modified: {\n doc: value,\n selection: selection,\n extensions: [updateListener, ...defaultExtensions, ...extensions]\n },\n modifiedExtension: {\n onChange,\n option: otherOption,\n extension: [updateListener, extensions]\n }\n }), [props]);\n return null;\n};\nModified.displayName = 'CodeMirrorMerge.Modified';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"className\", \"children\", \"orientation\", \"revertControls\", \"highlightChanges\", \"gutter\", \"collapseUnchanged\", \"destroyRerender\", \"renderRevertControl\"],\n _excluded2 = [\"modified\", \"modifiedExtension\", \"original\", \"originalExtension\", \"theme\", \"dispatch\"];\nimport React, { useEffect, useImperativeHandle, useRef } from 'react';\nimport { getDefaultExtensions } from '@uiw/react-codemirror';\nimport { MergeView } from '@codemirror/merge';\nimport { useStore } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Internal = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className,\n children,\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n destroyRerender = true,\n renderRevertControl\n } = props,\n elmProps = _objectWithoutPropertiesLoose(props, _excluded);\n var _useStore = useStore(),\n {\n modified,\n modifiedExtension,\n original,\n originalExtension,\n theme,\n dispatch\n } = _useStore,\n otherStore = _objectWithoutPropertiesLoose(_useStore, _excluded2);\n var editor = useRef(null);\n var view = useRef();\n var opts = {\n orientation,\n revertControls,\n highlightChanges,\n gutter,\n collapseUnchanged,\n renderRevertControl\n };\n useImperativeHandle(ref, () => ({\n container: editor.current,\n view: view.current,\n modified,\n original,\n config: _extends({\n a: original,\n b: modified,\n parent: editor.current\n }, opts)\n }), [editor, view, modified, original, opts]);\n useEffect(() => {\n if (!view.current && editor.current) {\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n }\n }, [view, editor]);\n useEffect(() => {\n if (original && original.doc && view.current) {\n var _view$current;\n var originalDoc = (_view$current = view.current) == null ? void 0 : _view$current.a.state.doc.toString();\n if (originalDoc !== original.doc) {\n var _view$current2;\n (_view$current2 = view.current) == null || _view$current2.a.dispatch({\n changes: {\n from: 0,\n to: originalDoc.length,\n insert: original.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(originalExtension?.extension || []),\n // ...getDefaultExtensions({ ...originalExtension?.option, theme }),\n // ])\n });\n }\n }\n if (modified && modified.doc && view.current) {\n var _view$current3;\n var modifiedDoc = (_view$current3 = view.current) == null ? void 0 : _view$current3.b.state.doc.toString();\n if (modifiedDoc !== modified.doc) {\n var _view$current4;\n (_view$current4 = view.current) == null || _view$current4.b.dispatch({\n changes: {\n from: 0,\n to: modifiedDoc.length,\n insert: modified.doc || ''\n }\n // effects: StateEffect.reconfigure.of([\n // ...(modifiedExtension?.extension || []),\n // ...getDefaultExtensions({ ...modifiedExtension?.option, theme }),\n // ])\n });\n }\n }\n if (destroyRerender && view.current) {\n var originalFrom = view.current.a.state.selection.ranges[0].from;\n var modifiedFrom = view.current.b.state.selection.ranges[0].from;\n view.current.destroy();\n view.current = new MergeView(_extends({\n a: _extends({}, original, {\n extensions: [...((originalExtension == null ? void 0 : originalExtension.extension) || []), ...getDefaultExtensions(_extends({}, originalExtension == null ? void 0 : originalExtension.option, {\n theme\n }))]\n }),\n b: _extends({}, modified, {\n extensions: [...((modifiedExtension == null ? void 0 : modifiedExtension.extension) || []), ...getDefaultExtensions(_extends({}, modifiedExtension == null ? void 0 : modifiedExtension.option, {\n theme\n }))]\n }),\n parent: editor.current\n }, opts));\n if (originalFrom) {\n view.current.a.focus();\n view.current.a.dispatch({\n selection: {\n anchor: originalFrom,\n head: originalFrom\n }\n });\n }\n if (modifiedFrom) {\n view.current.b.focus();\n view.current.b.dispatch({\n selection: {\n anchor: modifiedFrom,\n head: modifiedFrom\n }\n });\n }\n }\n }, [view, theme, editor.current, original, modified, originalExtension, modifiedExtension, destroyRerender]);\n useEffect(() => () => view.current && view.current.destroy(), []);\n useEffect(() => {\n if (view.current) {\n var _opts = {};\n if (otherStore.orientation !== orientation) {\n _opts.orientation = orientation;\n }\n if (otherStore.revertControls !== revertControls) {\n _opts.revertControls = revertControls;\n }\n if (otherStore.highlightChanges !== highlightChanges) {\n _opts.highlightChanges = highlightChanges;\n }\n if (otherStore.gutter !== gutter) {\n _opts.gutter = gutter;\n }\n if (otherStore.collapseUnchanged !== collapseUnchanged) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (otherStore.renderRevertControl !== renderRevertControl) {\n _opts.collapseUnchanged = collapseUnchanged;\n }\n if (Object.keys(_opts).length && dispatch && view.current) {\n view.current.reconfigure(_extends({}, _opts));\n dispatch(_extends({}, _opts));\n }\n }\n }, [dispatch, view, orientation, revertControls, highlightChanges, gutter, collapseUnchanged, renderRevertControl]);\n var defaultClassNames = 'cm-merge-theme';\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: editor,\n className: \"\" + defaultClassNames + (className ? \" \" + className : '')\n }, elmProps, {\n children: children\n }));\n});\nInternal.displayName = 'CodeMirrorMerge.Internal';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"theme\"];\nimport React from 'react';\nimport { Original } from './Original';\nimport { Modified } from './Modified';\nimport { Internal } from './Internal';\nimport { Provider } from './store';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar InternalCodeMirror = /*#__PURE__*/React.forwardRef((_ref, ref) => {\n var {\n theme\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n return /*#__PURE__*/_jsx(Provider, {\n theme: theme,\n children: /*#__PURE__*/_jsx(Internal, _extends({}, props, {\n ref: ref\n }))\n });\n});\nvar CodeMirrorMerge = InternalCodeMirror;\nCodeMirrorMerge.Original = Original;\nCodeMirrorMerge.Modified = Modified;\nCodeMirrorMerge.displayName = 'CodeMirrorMerge';\nexport default CodeMirrorMerge;"],"names":["Original","CodeMirrorMerge","Modified","doc","Component","_jsxs","style","width","orientation","theme","androidstudio","children","_jsx","value","replace","extensions","EditorView","editable","of","EditorState","readOnly","initialState","modified","original","Context","createContext","reducer","state","action","_extends","useStore","useContext","Provider","_ref","dispatch","useReducer","useEffect","_excluded","props","selection","onChange","otherOption","_objectWithoutPropertiesLoose","defaultExtensions","getDefaultExtensions","updateListener","vu","docChanged","val","toString","originalExtension","option","extension","displayName","modifiedExtension","_excluded2","Internal","React","ref","className","revertControls","highlightChanges","gutter","collapseUnchanged","destroyRerender","renderRevertControl","elmProps","_useStore","otherStore","editor","useRef","view","opts","useImperativeHandle","container","current","config","a","b","parent","MergeView","_view$current","_view$current2","originalDoc","changes","from","to","length","insert","_view$current3","_view$current4","modifiedDoc","originalFrom","ranges","modifiedFrom","destroy","focus","anchor","head","_opts","Object","keys","reconfigure"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8153.f7c31c61.chunk.js b/static/js/8153.f7c31c61.chunk.js new file mode 100644 index 000000000..6fc42c71c --- /dev/null +++ b/static/js/8153.f7c31c61.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8153],{8153:(e,a,s)=>{s.r(a),s.d(a,{default:()=>w});const w=" = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))"}}]); +//# sourceMappingURL=8153.f7c31c61.chunk.js.map \ No newline at end of file diff --git a/static/js/8153.f7c31c61.chunk.js.map b/static/js/8153.f7c31c61.chunk.js.map new file mode 100644 index 000000000..1c694696d --- /dev/null +++ b/static/js/8153.f7c31c61.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8153.f7c31c61.chunk.js","mappings":"wHAAA,mF","sources":["../../node_modules/code-example/txt/sample.msdax.txt"],"sourcesContent":["export default \" = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSQUARTER(Calendar[DateKey]))\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8192.ff37578d.chunk.js b/static/js/8192.ff37578d.chunk.js new file mode 100644 index 000000000..ea16d664a --- /dev/null +++ b/static/js/8192.ff37578d.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8192],{8192:(n,e,t)=>{t.r(e),t.d(e,{default:()=>l});const l="REPORT zrosetta_base64_encode_data.\n\nDATA: li_client TYPE REF TO if_http_client,\n lv_encoded TYPE string,\n lv_data TYPE xstring.\n\n\ncl_http_client=>create_by_url(\n EXPORTING\n url = 'http://rosettacode.org/favicon.ico'\n IMPORTING\n client = li_client ).\n\nli_client->send( ).\nli_client->receive( ).\n\nlv_data = li_client->response->get_data( ).\n\nCALL FUNCTION 'SSFC_BASE64_ENCODE'\n EXPORTING\n bindata = lv_data\n IMPORTING\n b64data = lv_encoded.\n\nWHILE strlen( lv_encoded ) > 100.\n WRITE: / lv_encoded(100).\n lv_encoded = lv_encoded+100.\nENDWHILE.\nWRITE: / lv_encoded.\n"}}]); +//# sourceMappingURL=8192.ff37578d.chunk.js.map \ No newline at end of file diff --git a/static/js/8192.ff37578d.chunk.js.map b/static/js/8192.ff37578d.chunk.js.map new file mode 100644 index 000000000..2c5589616 --- /dev/null +++ b/static/js/8192.ff37578d.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8192.ff37578d.chunk.js","mappings":"wHAAA,6nB","sources":["../../node_modules/code-example/txt/sample.abap.txt"],"sourcesContent":["export default \"REPORT zrosetta_base64_encode_data.\\n\\nDATA: li_client TYPE REF TO if_http_client,\\n lv_encoded TYPE string,\\n lv_data TYPE xstring.\\n\\n\\ncl_http_client=>create_by_url(\\n EXPORTING\\n url = 'http://rosettacode.org/favicon.ico'\\n IMPORTING\\n client = li_client ).\\n\\nli_client->send( ).\\nli_client->receive( ).\\n\\nlv_data = li_client->response->get_data( ).\\n\\nCALL FUNCTION 'SSFC_BASE64_ENCODE'\\n EXPORTING\\n bindata = lv_data\\n IMPORTING\\n b64data = lv_encoded.\\n\\nWHILE strlen( lv_encoded ) > 100.\\n WRITE: / lv_encoded(100).\\n lv_encoded = lv_encoded+100.\\nENDWHILE.\\nWRITE: / lv_encoded.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8263.1369f43b.chunk.js b/static/js/8263.1369f43b.chunk.js new file mode 100644 index 000000000..a227f7d96 --- /dev/null +++ b/static/js/8263.1369f43b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8263],{98263:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# react-codemirror-merge\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/react-codemirror-merge.svg)](https://www.npmjs.com/package/react-codemirror-merge)\n\nCodeMirror merge view for React.\n\n\n \"codemirror-theme-androidstudio\"\n\n\n## Install\n\n```bash\nnpm install react-codemirror-merge --save\n```\n\n## Usage\n\n```jsx\nimport CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport const Example = () => {\n return (\n \n \n \n \n );\n};\n```\n\n## Theme\n\n```jsx\nimport { useState } from 'react';\nimport CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from 'codemirror';\nimport { EditorState } from '@codemirror/state';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `one\ntwo\nthree\nfour\nfive`;\n\nexport const Example = () => {\n const [theme, setTheme] = useState('light');\n return (\n \n \n \n \n );\n};\n```\n\n```jsx\nimport React, { useState } from 'react';\nimport CodeMirrorMerge from 'react-codemirror-merge';\nimport { EditorView } from '@codemirror/view';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\n\nconst Original = CodeMirrorMerge.Original;\nconst Modified = CodeMirrorMerge.Modified;\nlet doc = `function examle() {\n\n}`;\n\nfunction Example() {\n const [theme, setTheme] = useState('light');\n return (\n
\n \n \n \n \n \n
\n );\n}\n```\n\n## Props\n\n```ts\nimport { Extension } from '@codemirror/state';\nexport interface CodeMirrorMergeRef extends InternalRef {}\nexport interface CodeMirrorMergeProps extends React.HTMLAttributes, MergeConfig {\n theme?: 'light' | 'dark' | 'none' | Extension;\n}\n\ninterface MergeConfig {\n /**\n Controls whether editor A or editor B is shown first. Defaults\n to `\"a-b\"`.\n */\n orientation?: 'a-b' | 'b-a';\n /**\n Controls whether revert controls are shown between changed\n chunks.\n */\n revertControls?: 'a-to-b' | 'b-to-a';\n /**\n When given, this function is called to render the button to\n revert a chunk.\n */\n renderRevertControl?: () => HTMLElement;\n /**\n By default, the merge view will mark inserted and deleted text\n in changed chunks. Set this to false to turn that off.\n */\n highlightChanges?: boolean;\n /**\n Controls whether a gutter marker is shown next to changed lines.\n */\n gutter?: boolean;\n /**\n When given, long stretches of unchanged text are collapsed.\n `margin` gives the number of lines to leave visible after/before\n a change (default is 3), and `minSize` gives the minimum amount\n of collapsible lines that need to be present (defaults to 4).\n */\n collapseUnchanged?: {\n margin?: number;\n minSize?: number;\n };\n}\n```\n\n## Modified Props\n\n```ts\ninterface ModifiedProps extends Omit {\n /**\n The initial document. Defaults to an empty document. Can be\n provided either as a plain string (which will be split into\n lines according to the value of the [`lineSeparator`\n facet](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)), or an instance of\n the [`Text`](https://codemirror.net/6/docs/ref/#state.Text) class (which is what the state will use\n to represent the document).\n */\n value?: string | Text;\n /**\n The starting selection. Defaults to a cursor at the very start\n of the document.\n */\n selection?:\n | EditorSelection\n | {\n anchor: number;\n head?: number;\n };\n /**\n [Extension(s)](https://codemirror.net/6/docs/ref/#state.Extension) to associate with this state.\n */\n extensions?: Extension;\n /** Fired whenever a change occurs to the document. */\n onChange?(value: string, viewUpdate: ViewUpdate): void;\n}\n\nimport { Extension } from '@codemirror/state';\nimport { BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';\nimport { DefaultExtensionsOptions } from '@uiw/react-codemirror';\n\nexport interface DefaultExtensionsOptions {\n indentWithTab?: boolean;\n basicSetup?: boolean | BasicSetupOptions;\n placeholder?: string | HTMLElement;\n theme?: 'light' | 'dark' | 'none' | Extension;\n readOnly?: boolean;\n editable?: boolean;\n}\n```\n\n## Original Props\n\n```ts\ninterface OriginalProps extends Omit {\n /**\n The initial document. Defaults to an empty document. Can be\n provided either as a plain string (which will be split into\n lines according to the value of the [`lineSeparator`\n facet](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)), or an instance of\n the [`Text`](https://codemirror.net/6/docs/ref/#state.Text) class (which is what the state will use\n to represent the document).\n */\n value?: string | Text;\n /**\n The starting selection. Defaults to a cursor at the very start\n of the document.\n */\n selection?:\n | EditorSelection\n | {\n anchor: number;\n head?: number;\n };\n /**\n [Extension(s)](https://codemirror.net/6/docs/ref/#state.Extension) to associate with this state.\n */\n extensions?: Extension;\n /** Fired whenever a change occurs to the document. */\n onChange?(value: string, viewUpdate: ViewUpdate): void;\n}\n\nimport { Extension } from '@codemirror/state';\nimport { BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';\nimport { DefaultExtensionsOptions } from '@uiw/react-codemirror';\n\nexport interface DefaultExtensionsOptions {\n indentWithTab?: boolean;\n basicSetup?: boolean | BasicSetupOptions;\n placeholder?: string | HTMLElement;\n theme?: 'light' | 'dark' | 'none' | Extension;\n readOnly?: boolean;\n editable?: boolean;\n}\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=8263.1369f43b.chunk.js.map \ No newline at end of file diff --git a/static/js/8263.1369f43b.chunk.js.map b/static/js/8263.1369f43b.chunk.js.map new file mode 100644 index 000000000..27baa37a5 --- /dev/null +++ b/static/js/8263.1369f43b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8263.1369f43b.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,gjPACRC,SAAS,GACTC,aAAa,G","sources":["../../merge/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# react-codemirror-merge\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/react-codemirror-merge.svg)](https://www.npmjs.com/package/react-codemirror-merge)\\n\\nCodeMirror merge view for React.\\n\\n\\n \\\"codemirror-theme-androidstudio\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install react-codemirror-merge --save\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\nimport { EditorView } from 'codemirror';\\nimport { EditorState } from '@codemirror/state';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `one\\ntwo\\nthree\\nfour\\nfive`;\\n\\nexport const Example = () => {\\n return (\\n \\n \\n \\n \\n );\\n};\\n```\\n\\n## Theme\\n\\n```jsx\\nimport { useState } from 'react';\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\nimport { EditorView } from 'codemirror';\\nimport { EditorState } from '@codemirror/state';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `one\\ntwo\\nthree\\nfour\\nfive`;\\n\\nexport const Example = () => {\\n const [theme, setTheme] = useState('light');\\n return (\\n \\n \\n \\n \\n );\\n};\\n```\\n\\n```jsx\\nimport React, { useState } from 'react';\\nimport CodeMirrorMerge from 'react-codemirror-merge';\\nimport { EditorView } from '@codemirror/view';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { githubLight, githubDark } from '@uiw/codemirror-theme-github';\\n\\nconst Original = CodeMirrorMerge.Original;\\nconst Modified = CodeMirrorMerge.Modified;\\nlet doc = `function examle() {\\n\\n}`;\\n\\nfunction Example() {\\n const [theme, setTheme] = useState('light');\\n return (\\n
\\n \\n \\n \\n \\n \\n
\\n );\\n}\\n```\\n\\n## Props\\n\\n```ts\\nimport { Extension } from '@codemirror/state';\\nexport interface CodeMirrorMergeRef extends InternalRef {}\\nexport interface CodeMirrorMergeProps extends React.HTMLAttributes, MergeConfig {\\n theme?: 'light' | 'dark' | 'none' | Extension;\\n}\\n\\ninterface MergeConfig {\\n /**\\n Controls whether editor A or editor B is shown first. Defaults\\n to `\\\"a-b\\\"`.\\n */\\n orientation?: 'a-b' | 'b-a';\\n /**\\n Controls whether revert controls are shown between changed\\n chunks.\\n */\\n revertControls?: 'a-to-b' | 'b-to-a';\\n /**\\n When given, this function is called to render the button to\\n revert a chunk.\\n */\\n renderRevertControl?: () => HTMLElement;\\n /**\\n By default, the merge view will mark inserted and deleted text\\n in changed chunks. Set this to false to turn that off.\\n */\\n highlightChanges?: boolean;\\n /**\\n Controls whether a gutter marker is shown next to changed lines.\\n */\\n gutter?: boolean;\\n /**\\n When given, long stretches of unchanged text are collapsed.\\n `margin` gives the number of lines to leave visible after/before\\n a change (default is 3), and `minSize` gives the minimum amount\\n of collapsible lines that need to be present (defaults to 4).\\n */\\n collapseUnchanged?: {\\n margin?: number;\\n minSize?: number;\\n };\\n}\\n```\\n\\n## Modified Props\\n\\n```ts\\ninterface ModifiedProps extends Omit {\\n /**\\n The initial document. Defaults to an empty document. Can be\\n provided either as a plain string (which will be split into\\n lines according to the value of the [`lineSeparator`\\n facet](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)), or an instance of\\n the [`Text`](https://codemirror.net/6/docs/ref/#state.Text) class (which is what the state will use\\n to represent the document).\\n */\\n value?: string | Text;\\n /**\\n The starting selection. Defaults to a cursor at the very start\\n of the document.\\n */\\n selection?:\\n | EditorSelection\\n | {\\n anchor: number;\\n head?: number;\\n };\\n /**\\n [Extension(s)](https://codemirror.net/6/docs/ref/#state.Extension) to associate with this state.\\n */\\n extensions?: Extension;\\n /** Fired whenever a change occurs to the document. */\\n onChange?(value: string, viewUpdate: ViewUpdate): void;\\n}\\n\\nimport { Extension } from '@codemirror/state';\\nimport { BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';\\nimport { DefaultExtensionsOptions } from '@uiw/react-codemirror';\\n\\nexport interface DefaultExtensionsOptions {\\n indentWithTab?: boolean;\\n basicSetup?: boolean | BasicSetupOptions;\\n placeholder?: string | HTMLElement;\\n theme?: 'light' | 'dark' | 'none' | Extension;\\n readOnly?: boolean;\\n editable?: boolean;\\n}\\n```\\n\\n## Original Props\\n\\n```ts\\ninterface OriginalProps extends Omit {\\n /**\\n The initial document. Defaults to an empty document. Can be\\n provided either as a plain string (which will be split into\\n lines according to the value of the [`lineSeparator`\\n facet](https://codemirror.net/6/docs/ref/#state.EditorState^lineSeparator)), or an instance of\\n the [`Text`](https://codemirror.net/6/docs/ref/#state.Text) class (which is what the state will use\\n to represent the document).\\n */\\n value?: string | Text;\\n /**\\n The starting selection. Defaults to a cursor at the very start\\n of the document.\\n */\\n selection?:\\n | EditorSelection\\n | {\\n anchor: number;\\n head?: number;\\n };\\n /**\\n [Extension(s)](https://codemirror.net/6/docs/ref/#state.Extension) to associate with this state.\\n */\\n extensions?: Extension;\\n /** Fired whenever a change occurs to the document. */\\n onChange?(value: string, viewUpdate: ViewUpdate): void;\\n}\\n\\nimport { Extension } from '@codemirror/state';\\nimport { BasicSetupOptions } from '@uiw/codemirror-extensions-basic-setup';\\nimport { DefaultExtensionsOptions } from '@uiw/react-codemirror';\\n\\nexport interface DefaultExtensionsOptions {\\n indentWithTab?: boolean;\\n basicSetup?: boolean | BasicSetupOptions;\\n placeholder?: string | HTMLElement;\\n theme?: 'light' | 'dark' | 'none' | Extension;\\n readOnly?: boolean;\\n editable?: boolean;\\n}\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8272.12f242bd.chunk.js b/static/js/8272.12f242bd.chunk.js new file mode 100644 index 000000000..7491fa9e5 --- /dev/null +++ b/static/js/8272.12f242bd.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8272],{38272:(t,e,r)=>{r.r(e),r.d(e,{default:()=>i});const i={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Basic Theme (dark/light)\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-basic.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic)\n\n\n \"codemirror-theme-basic\n\n\n\n \"codemirror-theme-basic\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-basic --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [basicDark, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { basicLight, basicLightInit, basicDark, basicDarkInit } from '@uiw/codemirror-theme-basic';\n// Or\nimport { basicDark, basicDarkInit } from '@uiw/codemirror-theme-basic/dark';\nimport { basicLight, basicLightInit } from '@uiw/codemirror-theme-basic/light';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsBasicLight: CreateThemeOptions['settings'];\nexport declare const basicLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const basicLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsBasicDark: CreateThemeOptions['settings'];\nexport declare const basicDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const basicDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [basicDark, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n\nby Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=8272.12f242bd.chunk.js.map \ No newline at end of file diff --git a/static/js/8272.12f242bd.chunk.js.map b/static/js/8272.12f242bd.chunk.js.map new file mode 100644 index 000000000..44e1f5170 --- /dev/null +++ b/static/js/8272.12f242bd.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8272.12f242bd.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,ixHACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/basic/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Basic Theme (dark/light)\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-basic.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-basic)\\n\\n\\n \\\"codemirror-theme-basic\\n\\n\\n\\n \\\"codemirror-theme-basic\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-basic --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [basicDark, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { basicLight, basicLightInit, basicDark, basicDarkInit } from '@uiw/codemirror-theme-basic';\\n// Or\\nimport { basicDark, basicDarkInit } from '@uiw/codemirror-theme-basic/dark';\\nimport { basicLight, basicLightInit } from '@uiw/codemirror-theme-basic/light';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsBasicLight: CreateThemeOptions['settings'];\\nexport declare const basicLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const basicLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsBasicDark: CreateThemeOptions['settings'];\\nexport declare const basicDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const basicDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { basicLight, basicDark } from '@uiw/codemirror-theme-basic';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [basicDark, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\\nby Bram de Haan, adapted from DuoTone themes by Simurai (http://simurai.com/projects/2016/01/01/duotone-themes)\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8531.cc199d0b.chunk.js b/static/js/8531.cc199d0b.chunk.js new file mode 100644 index 000000000..1a71f3f94 --- /dev/null +++ b/static/js/8531.cc199d0b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8531],{68531:(t,e,n)=>{n.r(e),n.d(e,{default:()=>p});const p="rem *******Begin Comment**************\nrem This program starts the superapp batch program on the network,\nrem directs the output to a file, and displays the file\nrem in Notepad.\nrem *******End Comment**************\n@echo off\nif exist C:\\output.txt goto EMPTYEXISTS\nsetlocal\n path=g:\\programs\\superapp;%path%\n call superapp>C:\\output.txt\nendlocal\n:EMPTYEXISTS\nstart notepad c:\\output.txt"}}]); +//# sourceMappingURL=8531.cc199d0b.chunk.js.map \ No newline at end of file diff --git a/static/js/8531.cc199d0b.chunk.js.map b/static/js/8531.cc199d0b.chunk.js.map new file mode 100644 index 000000000..d6be3945c --- /dev/null +++ b/static/js/8531.cc199d0b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8531.cc199d0b.chunk.js","mappings":"yHAAA,+Z","sources":["../../node_modules/code-example/txt/sample.bat.txt"],"sourcesContent":["export default \"rem *******Begin Comment**************\\nrem This program starts the superapp batch program on the network,\\nrem directs the output to a file, and displays the file\\nrem in Notepad.\\nrem *******End Comment**************\\n@echo off\\nif exist C:\\\\output.txt goto EMPTYEXISTS\\nsetlocal\\n path=g:\\\\programs\\\\superapp;%path%\\n call superapp>C:\\\\output.txt\\nendlocal\\n:EMPTYEXISTS\\nstart notepad c:\\\\output.txt\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8589.27fcbc46.chunk.js b/static/js/8589.27fcbc46.chunk.js new file mode 100644 index 000000000..d14c093f6 --- /dev/null +++ b/static/js/8589.27fcbc46.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8589],{98589:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r='$SelectedObjectNames=@();\n$XenCenterNodeSelected = 0;\n#the object info array contains hashmaps, each of which represent a parameter set and describe a target in the XenCenter resource list\nforeach($parameterSet in $ObjInfoArray)\n{\n if ($parameterSet["class"] -eq "blank")\n {\n #When the XenCenter node is selected a parameter set is created for each of your connected servers with the class and objUuid keys marked as blank\n if ($XenCenterNodeSelected)\n {\n continue\n }\n $XenCenterNodeSelected = 1;\n $SelectedObjectNames += "XenCenter"\n }\n elseif ($parameterSet["sessionRef"] -eq "null")\n {\n #When a disconnected server is selected there is no session information, we get null for everything except class\n }\n $SelectedObjectNames += "a disconnected server"\n else\n {\n Connect-XenServer -url $parameterSet["url"] -opaqueref $parameterSet["sessionRef"]\n #Use $class to determine which server objects to get\n #-properties allows us to filter the results to just include the selected object\n $exp = "Get-XenServer:{0} -properties @{{uuid=\'{1}\'}}" -f $parameterSet["class"], $parameterSet["objUuid"]\n $obj = Invoke-Expression $exp\n $SelectedObjectNames += $obj.name_label;\n } \n}'}}]); +//# sourceMappingURL=8589.27fcbc46.chunk.js.map \ No newline at end of file diff --git a/static/js/8589.27fcbc46.chunk.js.map b/static/js/8589.27fcbc46.chunk.js.map new file mode 100644 index 000000000..021cc7646 --- /dev/null +++ b/static/js/8589.27fcbc46.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8589.27fcbc46.chunk.js","mappings":"yHAAA,mvC","sources":["../../node_modules/code-example/txt/sample.powershell.txt"],"sourcesContent":["export default \"$SelectedObjectNames=@();\\n$XenCenterNodeSelected = 0;\\n#the object info array contains hashmaps, each of which represent a parameter set and describe a target in the XenCenter resource list\\nforeach($parameterSet in $ObjInfoArray)\\n{\\n if ($parameterSet[\\\"class\\\"] -eq \\\"blank\\\")\\n {\\n #When the XenCenter node is selected a parameter set is created for each of your connected servers with the class and objUuid keys marked as blank\\n if ($XenCenterNodeSelected)\\n {\\n continue\\n }\\n $XenCenterNodeSelected = 1;\\n $SelectedObjectNames += \\\"XenCenter\\\"\\n }\\n elseif ($parameterSet[\\\"sessionRef\\\"] -eq \\\"null\\\")\\n {\\n #When a disconnected server is selected there is no session information, we get null for everything except class\\n }\\n $SelectedObjectNames += \\\"a disconnected server\\\"\\n else\\n {\\n Connect-XenServer -url $parameterSet[\\\"url\\\"] -opaqueref $parameterSet[\\\"sessionRef\\\"]\\n #Use $class to determine which server objects to get\\n #-properties allows us to filter the results to just include the selected object\\n $exp = \\\"Get-XenServer:{0} -properties @{{uuid='{1}'}}\\\" -f $parameterSet[\\\"class\\\"], $parameterSet[\\\"objUuid\\\"]\\n $obj = Invoke-Expression $exp\\n $SelectedObjectNames += $obj.name_label;\\n } \\n}\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8592.f1305b09.chunk.js b/static/js/8592.f1305b09.chunk.js new file mode 100644 index 000000000..efd04e227 --- /dev/null +++ b/static/js/8592.f1305b09.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8592],{38592:(e,n,t)=>{t.r(n),t.d(n,{default:()=>o});const o='pragma solidity ^0.4.11;\n\n/// @title Voting with delegation.\ncontract Ballot {\n // This declares a new complex type which will\n // be used for variables later.\n // It will represent a single voter.\n struct Voter {\n uint weight; // weight is accumulated by delegation\n bool voted; // if true, that person already voted\n address delegate; // person delegated to\n uint vote; // index of the voted proposal\n }\n\n // This is a type for a single proposal.\n struct Proposal {\n bytes32 name; // short name (up to 32 bytes)\n uint voteCount; // number of accumulated votes\n }\n\n address public chairperson;\n\n // This declares a state variable that\n // stores a `Voter` struct for each possible address.\n mapping(address => Voter) public voters;\n\n // A dynamically-sized array of `Proposal` structs.\n Proposal[] public proposals;\n\n /// Create a new ballot to choose one of `proposalNames`.\n function Ballot(bytes32[] proposalNames) {\n chairperson = msg.sender;\n voters[chairperson].weight = 1;\n\n // For each of the provided proposal names,\n // create a new proposal object and add it\n // to the end of the array.\n for (uint i = 0; i < proposalNames.length; i++) {\n // `Proposal({...})` creates a temporary\n // Proposal object and `proposals.push(...)`\n // appends it to the end of `proposals`.\n proposals.push(Proposal({\n name: proposalNames[i],\n voteCount: 0\n }));\n }\n }\n\n // Give `voter` the right to vote on this ballot.\n // May only be called by `chairperson`.\n function giveRightToVote(address voter) {\n // If the argument of `require` evaluates to `false`,\n // it terminates and reverts all changes to\n // the state and to Ether balances. It is often\n // a good idea to use this if functions are\n // called incorrectly. But watch out, this\n // will currently also consume all provided gas\n // (this is planned to change in the future).\n require((msg.sender == chairperson) && !voters[voter].voted && (voters[voter].weight == 0));\n voters[voter].weight = 1;\n }\n\n /// Delegate your vote to the voter `to`.\n function delegate(address to) {\n // assigns reference\n Voter sender = voters[msg.sender];\n require(!sender.voted);\n\n // Self-delegation is not allowed.\n require(to != msg.sender);\n\n // Forward the delegation as long as\n // `to` also delegated.\n // In general, such loops are very dangerous,\n // because if they run too long, they might\n // need more gas than is available in a block.\n // In this case, the delegation will not be executed,\n // but in other situations, such loops might\n // cause a contract to get "stuck" completely.\n while (voters[to].delegate != address(0)) {\n to = voters[to].delegate;\n\n // We found a loop in the delegation, not allowed.\n require(to != msg.sender);\n }\n\n // Since `sender` is a reference, this\n // modifies `voters[msg.sender].voted`\n sender.voted = true;\n sender.delegate = to;\n Voter delegate = voters[to];\n if (delegate.voted) {\n // If the delegate already voted,\n // directly add to the number of votes\n proposals[delegate.vote].voteCount += sender.weight;\n } else {\n // If the delegate did not vote yet,\n // add to her weight.\n delegate.weight += sender.weight;\n }\n }\n\n /// Give your vote (including votes delegated to you)\n /// to proposal `proposals[proposal].name`.\n function vote(uint proposal) {\n Voter sender = voters[msg.sender];\n require(!sender.voted);\n sender.voted = true;\n sender.vote = proposal;\n\n // If `proposal` is out of the range of the array,\n // this will throw automatically and revert all\n // changes.\n proposals[proposal].voteCount += sender.weight;\n }\n\n /// @dev Computes the winning proposal taking all\n /// previous votes into account.\n function winningProposal() constant\n returns (uint winningProposal)\n {\n uint winningVoteCount = 0;\n for (uint p = 0; p < proposals.length; p++) {\n if (proposals[p].voteCount > winningVoteCount) {\n winningVoteCount = proposals[p].voteCount;\n winningProposal = p;\n }\n }\n }\n\n // Calls winningProposal() function to get the index\n // of the winner contained in the proposals array and then\n // returns the name of the winner\n function winnerName() constant\n returns (bytes32 winnerName)\n {\n winnerName = proposals[winningProposal()].name;\n }\n}'}}]); +//# sourceMappingURL=8592.f1305b09.chunk.js.map \ No newline at end of file diff --git a/static/js/8592.f1305b09.chunk.js.map b/static/js/8592.f1305b09.chunk.js.map new file mode 100644 index 000000000..b78add13d --- /dev/null +++ b/static/js/8592.f1305b09.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8592.f1305b09.chunk.js","mappings":"yHAAA,48J","sources":["../../node_modules/code-example/txt/sample.sol.txt"],"sourcesContent":["export default \"pragma solidity ^0.4.11;\\n\\n/// @title Voting with delegation.\\ncontract Ballot {\\n // This declares a new complex type which will\\n // be used for variables later.\\n // It will represent a single voter.\\n struct Voter {\\n uint weight; // weight is accumulated by delegation\\n bool voted; // if true, that person already voted\\n address delegate; // person delegated to\\n uint vote; // index of the voted proposal\\n }\\n\\n // This is a type for a single proposal.\\n struct Proposal {\\n bytes32 name; // short name (up to 32 bytes)\\n uint voteCount; // number of accumulated votes\\n }\\n\\n address public chairperson;\\n\\n // This declares a state variable that\\n // stores a `Voter` struct for each possible address.\\n mapping(address => Voter) public voters;\\n\\n // A dynamically-sized array of `Proposal` structs.\\n Proposal[] public proposals;\\n\\n /// Create a new ballot to choose one of `proposalNames`.\\n function Ballot(bytes32[] proposalNames) {\\n chairperson = msg.sender;\\n voters[chairperson].weight = 1;\\n\\n // For each of the provided proposal names,\\n // create a new proposal object and add it\\n // to the end of the array.\\n for (uint i = 0; i < proposalNames.length; i++) {\\n // `Proposal({...})` creates a temporary\\n // Proposal object and `proposals.push(...)`\\n // appends it to the end of `proposals`.\\n proposals.push(Proposal({\\n name: proposalNames[i],\\n voteCount: 0\\n }));\\n }\\n }\\n\\n // Give `voter` the right to vote on this ballot.\\n // May only be called by `chairperson`.\\n function giveRightToVote(address voter) {\\n // If the argument of `require` evaluates to `false`,\\n // it terminates and reverts all changes to\\n // the state and to Ether balances. It is often\\n // a good idea to use this if functions are\\n // called incorrectly. But watch out, this\\n // will currently also consume all provided gas\\n // (this is planned to change in the future).\\n require((msg.sender == chairperson) && !voters[voter].voted && (voters[voter].weight == 0));\\n voters[voter].weight = 1;\\n }\\n\\n /// Delegate your vote to the voter `to`.\\n function delegate(address to) {\\n // assigns reference\\n Voter sender = voters[msg.sender];\\n require(!sender.voted);\\n\\n // Self-delegation is not allowed.\\n require(to != msg.sender);\\n\\n // Forward the delegation as long as\\n // `to` also delegated.\\n // In general, such loops are very dangerous,\\n // because if they run too long, they might\\n // need more gas than is available in a block.\\n // In this case, the delegation will not be executed,\\n // but in other situations, such loops might\\n // cause a contract to get \\\"stuck\\\" completely.\\n while (voters[to].delegate != address(0)) {\\n to = voters[to].delegate;\\n\\n // We found a loop in the delegation, not allowed.\\n require(to != msg.sender);\\n }\\n\\n // Since `sender` is a reference, this\\n // modifies `voters[msg.sender].voted`\\n sender.voted = true;\\n sender.delegate = to;\\n Voter delegate = voters[to];\\n if (delegate.voted) {\\n // If the delegate already voted,\\n // directly add to the number of votes\\n proposals[delegate.vote].voteCount += sender.weight;\\n } else {\\n // If the delegate did not vote yet,\\n // add to her weight.\\n delegate.weight += sender.weight;\\n }\\n }\\n\\n /// Give your vote (including votes delegated to you)\\n /// to proposal `proposals[proposal].name`.\\n function vote(uint proposal) {\\n Voter sender = voters[msg.sender];\\n require(!sender.voted);\\n sender.voted = true;\\n sender.vote = proposal;\\n\\n // If `proposal` is out of the range of the array,\\n // this will throw automatically and revert all\\n // changes.\\n proposals[proposal].voteCount += sender.weight;\\n }\\n\\n /// @dev Computes the winning proposal taking all\\n /// previous votes into account.\\n function winningProposal() constant\\n returns (uint winningProposal)\\n {\\n uint winningVoteCount = 0;\\n for (uint p = 0; p < proposals.length; p++) {\\n if (proposals[p].voteCount > winningVoteCount) {\\n winningVoteCount = proposals[p].voteCount;\\n winningProposal = p;\\n }\\n }\\n }\\n\\n // Calls winningProposal() function to get the index\\n // of the winner contained in the proposals array and then\\n // returns the name of the winner\\n function winnerName() constant\\n returns (bytes32 winnerName)\\n {\\n winnerName = proposals[winningProposal()].name;\\n }\\n}\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/860.c627751b.chunk.js b/static/js/860.c627751b.chunk.js new file mode 100644 index 000000000..20840ae18 --- /dev/null +++ b/static/js/860.c627751b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[860],{50860:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a="# \xa9 Microsoft. All rights reserved.\n\n#' Add together two numbers.\n#' \n#' @param x A number.\n#' @param y A number.\n#' @return The sum of \\code{x} and \\code{y}.\n#' @examples\n#' add(1, 1)\n#' add(10, 1)\nadd <- function(x, y) {\n x + y\n}\n\nadd(1, 2)\nadd(1.0, 2.0)\nadd(-1, -2)\nadd(-1.0, -2.0)\nadd(1.0e10, 2.0e10)\n\n\n#' Concatenate together two strings.\n#' \n#' @param x A string.\n#' @param y A string.\n#' @return The concatenated string built of \\code{x} and \\code{y}.\n#' @examples\n#' strcat(\"one\", \"two\")\nstrcat <- function(x, y) {\n paste(x, y)\n}\n\npaste(\"one\", \"two\")\npaste('one', 'two')\npaste(NULL, NULL)\npaste(NA, NA)\n\npaste(\"multi-\n line\",\n 'multi-\n line')\n"}}]); +//# sourceMappingURL=860.c627751b.chunk.js.map \ No newline at end of file diff --git a/static/js/860.c627751b.chunk.js.map b/static/js/860.c627751b.chunk.js.map new file mode 100644 index 000000000..fe428ff51 --- /dev/null +++ b/static/js/860.c627751b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/860.c627751b.chunk.js","mappings":"wHAAA,guB","sources":["../../node_modules/code-example/txt/sample.r.txt"],"sourcesContent":["export default \"# © Microsoft. All rights reserved.\\n\\n#' Add together two numbers.\\n#' \\n#' @param x A number.\\n#' @param y A number.\\n#' @return The sum of \\\\code{x} and \\\\code{y}.\\n#' @examples\\n#' add(1, 1)\\n#' add(10, 1)\\nadd <- function(x, y) {\\n x + y\\n}\\n\\nadd(1, 2)\\nadd(1.0, 2.0)\\nadd(-1, -2)\\nadd(-1.0, -2.0)\\nadd(1.0e10, 2.0e10)\\n\\n\\n#' Concatenate together two strings.\\n#' \\n#' @param x A string.\\n#' @param y A string.\\n#' @return The concatenated string built of \\\\code{x} and \\\\code{y}.\\n#' @examples\\n#' strcat(\\\"one\\\", \\\"two\\\")\\nstrcat <- function(x, y) {\\n paste(x, y)\\n}\\n\\npaste(\\\"one\\\", \\\"two\\\")\\npaste('one', 'two')\\npaste(NULL, NULL)\\npaste(NA, NA)\\n\\npaste(\\\"multi-\\n line\\\",\\n 'multi-\\n line')\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8756.38c843c0.chunk.js b/static/js/8756.38c843c0.chunk.js new file mode 100644 index 000000000..e9e98f3c1 --- /dev/null +++ b/static/js/8756.38c843c0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8756],{48756:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r='syntax = "proto3";\nimport public "other.proto";\n\n/* SearchRequest represents a search query, with pagination options to\n * indicate which results to include in the response. */\n\nmessage SearchRequest {\n required string query = 1;\n optional int32 page_number = 2; // Which page number do we want?\n optional int32 result_per_page = 3; // Number of results to return per page.\n}\n'}}]); +//# sourceMappingURL=8756.38c843c0.chunk.js.map \ No newline at end of file diff --git a/static/js/8756.38c843c0.chunk.js.map b/static/js/8756.38c843c0.chunk.js.map new file mode 100644 index 000000000..88a8428fc --- /dev/null +++ b/static/js/8756.38c843c0.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8756.38c843c0.chunk.js","mappings":"yHAAA,kZ","sources":["../../node_modules/code-example/txt/sample.proto.txt"],"sourcesContent":["export default \"syntax = \\\"proto3\\\";\\nimport public \\\"other.proto\\\";\\n\\n/* SearchRequest represents a search query, with pagination options to\\n * indicate which results to include in the response. */\\n\\nmessage SearchRequest {\\n required string query = 1;\\n optional int32 page_number = 2; // Which page number do we want?\\n optional int32 result_per_page = 3; // Number of results to return per page.\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8774.97e39bc3.chunk.js b/static/js/8774.97e39bc3.chunk.js new file mode 100644 index 000000000..47f3b86a0 --- /dev/null +++ b/static/js/8774.97e39bc3.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8774],{78774:(n,t,e)=>{e.r(t),e.d(t,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# NoctisLilac Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac)\n\nThis package implements the noctis-lilac for the CodeMirror code editor.\n\n\n \"codemirror-theme-noctis-lilac\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-noctis-lilac --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [noctisLilac, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { noctisLilac, noctisLilacInit } from '@uiw/codemirror-theme-noctis-lilac';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsNoctisLilac: CreateThemeOptions['settings'];\nexport declare const noctisLilacInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const noctisLilac: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [noctisLilac, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=8774.97e39bc3.chunk.js.map \ No newline at end of file diff --git a/static/js/8774.97e39bc3.chunk.js.map b/static/js/8774.97e39bc3.chunk.js.map new file mode 100644 index 000000000..81d505901 --- /dev/null +++ b/static/js/8774.97e39bc3.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8774.97e39bc3.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,okGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/noctis-lilac/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# NoctisLilac Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-noctis-lilac.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-noctis-lilac)\\n\\nThis package implements the noctis-lilac for the CodeMirror code editor.\\n\\n\\n \\\"codemirror-theme-noctis-lilac\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-noctis-lilac --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [noctisLilac, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { noctisLilac, noctisLilacInit } from '@uiw/codemirror-theme-noctis-lilac';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsNoctisLilac: CreateThemeOptions['settings'];\\nexport declare const noctisLilacInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const noctisLilac: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { noctisLilac } from '@uiw/codemirror-theme-noctis-lilac';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [noctisLilac, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8783.a1dd19d9.chunk.js b/static/js/8783.a1dd19d9.chunk.js new file mode 100644 index 000000000..e37515ba5 --- /dev/null +++ b/static/js/8783.a1dd19d9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8783],{68783:(n,e,t)=>{t.r(e),t.d(e,{default:()=>a});const a="%TAG ! tag:clarkevans.com,2002:\n--- !shape\n # Use the ! handle for presenting\n # tag:clarkevans.com,2002:circle\n- !circle\n center: &ORIGIN {x: 73, y: 129}\n radius: 7\n- !line\n start: *ORIGIN\n finish: { x: 89, y: 102 }\n- !label\n start: *ORIGIN\n color: 0xFFEEBB\n text: Pretty vector drawing.\n"}}]); +//# sourceMappingURL=8783.a1dd19d9.chunk.js.map \ No newline at end of file diff --git a/static/js/8783.a1dd19d9.chunk.js.map b/static/js/8783.a1dd19d9.chunk.js.map new file mode 100644 index 000000000..676789e41 --- /dev/null +++ b/static/js/8783.a1dd19d9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8783.a1dd19d9.chunk.js","mappings":"yHAAA,kU","sources":["../../node_modules/code-example/txt/sample.yaml.txt"],"sourcesContent":["export default \"%TAG ! tag:clarkevans.com,2002:\\n--- !shape\\n # Use the ! handle for presenting\\n # tag:clarkevans.com,2002:circle\\n- !circle\\n center: &ORIGIN {x: 73, y: 129}\\n radius: 7\\n- !line\\n start: *ORIGIN\\n finish: { x: 89, y: 102 }\\n- !label\\n start: *ORIGIN\\n color: 0xFFEEBB\\n text: Pretty vector drawing.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/884.5180b75a.chunk.js b/static/js/884.5180b75a.chunk.js new file mode 100644 index 000000000..756f12681 --- /dev/null +++ b/static/js/884.5180b75a.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[884],{80884:(e,t,n)=>{n.r(t),n.d(t,{Component:()=>g,EventsExample:()=>f});var o=n(60114),s=n(67538);function r(e){var{type:t="scroll",events:n,props:o}=e;return s.Z9.fromClass(class{constructor(e){(this.dom=void 0,this.view=void 0,this.view=e,this.dom="dom"===t?e.dom:"content"===t?e.contentDOM:e.scrollDOM,this.dom&&o)&&Object.keys(o).forEach((e=>{this.dom[e]=o[e]}));Object.keys(n||{}).forEach((e=>{n&&n[e]&&this.dom&&this.dom.addEventListener(e,n[e])}))}destroy(){Object.keys(n||{}).forEach((e=>{n&&n[e]&&this.dom&&this.dom.removeEventListener(e,n[e])}))}})}function d(e){return r({type:"content",events:e})}var c,i=n(73562),a=n(6008),l=n(80905),m=n(69332),h=n(98846),u=n(94458),p=n(55864),v=n(98557);const x=a.Ay.div(c||(c=(0,o.A)(["\n padding-bottom: 30px;\n"]))),f=()=>{const[e,t]=(0,l.useState)(0),[n,o]=(0,l.useState)(""),{theme:s}=(0,u.D)(),c=(0,l.useContext)(h.pX);return(0,v.jsxs)(p.zu,{children:[(0,v.jsx)(i.default,{value:c.mdstr,theme:s,height:"200px !important",style:{margin:"0 0 23px 0"},extensions:[m.cg.markdown(),(a={scroll:e=>{e.target instanceof HTMLElement&&t(e.target.scrollTop)}},r({type:"scroll",events:a})),d({focus:e=>{o("focus")},blur:e=>{o("blur")}})]}),(0,v.jsxs)(x,{children:[e," ",n]})]});var a},g=()=>(0,v.jsx)(h.lN,{path:()=>n.e(4861).then(n.bind(n,44861)),children:(0,v.jsx)(f,{})})},55864:(e,t,n)=>{n.d(t,{zu:()=>c});var o,s,r=n(60114),d=n(6008);const c=d.Ay.div(o||(o=(0,r.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));d.Ay.div(s||(s=(0,r.A)(["\n display: flex;\n flex: 1;\n"])))},94458:(e,t,n)=>{n.d(t,{D:()=>s});var o=n(80905);function s(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const t=document.documentElement.getAttribute("data-color-mode"),[n,s]=(0,o.useState)("dark"===t?"dark":e);return(0,o.useEffect)((()=>{s("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(e=>{s(e.detail.colorScheme)}))}),[]),{theme:n,setTheme:s}}}}]); +//# sourceMappingURL=884.5180b75a.chunk.js.map \ No newline at end of file diff --git a/static/js/884.5180b75a.chunk.js.map b/static/js/884.5180b75a.chunk.js.map new file mode 100644 index 000000000..fd82548d2 --- /dev/null +++ b/static/js/884.5180b75a.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/884.5180b75a.chunk.js","mappings":"wKACO,SAASA,EAAQC,GACtB,IAAI,KACFC,EAAO,SAAQ,OACfC,EAAM,MACNC,GACEH,EACJ,OAAOI,EAAAA,GAAWC,UAAU,MAC1BC,WAAAA,CAAYC,IACVC,KAAKC,SAAM,EACXD,KAAKD,UAAO,EACZC,KAAKD,KAAOA,EAEVC,KAAKC,IADM,QAATR,EACSM,EAAKE,IACE,YAATR,EACEM,EAAKG,WAELH,EAAKI,UAIdH,KAAKC,KAAON,IACHS,OAAOC,KAAKV,GAClBW,SAAQC,IACXP,KAAKC,IAAIM,GAAOZ,EAAMY,EAAI,IAG9BH,OAAOC,KAAKX,GAAU,CAAC,GAAGY,SAAQE,IAC5Bd,GAAUA,EAAOc,IAAYR,KAAKC,KACpCD,KAAKC,IAAIQ,iBAAiBD,EAASd,EAAOc,GAC5C,GAEJ,CACAE,OAAAA,GACEN,OAAOC,KAAKX,GAAU,CAAC,GAAGY,SAAQE,IAC5Bd,GAAUA,EAAOc,IAAYR,KAAKC,KACpCD,KAAKC,IAAIU,oBAAoBH,EAASd,EAAOc,GAC/C,GAEJ,GAEJ,CAyBO,SAASI,EAAQpB,GACtB,OAAOD,EAAQ,CACbE,KAAM,UACNC,OAAQF,GAEZ,C,6FC9DA,MAAMqB,EAAOC,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,mCAIVC,EAAgBA,KAC3B,MAAOC,EAAWC,IAAgBC,EAAAA,EAAAA,UAAS,IACpCC,EAAWC,IAAgBF,EAAAA,EAAAA,UAAS,KACrC,MAAEG,IAAUC,EAAAA,EAAAA,KACZC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,IAC1B,OACEC,EAAAA,EAAAA,MAACC,EAAAA,GAAW,CAAAC,SAAA,EACVC,EAAAA,EAAAA,KAACC,EAAAA,QAAU,CACTC,MAAOR,EAAOS,MACdX,MAAOA,EACPY,OAAO,mBACPC,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CACVC,EAAAA,GAAMC,YD6BOjD,EC5BC,CACZkD,OAASC,IACHA,EAAIC,kBAAkBC,aACxBzB,EAAauB,EAAIC,OAAOzB,UAC1B,GDyBL5B,EAAQ,CACbE,KAAM,SACNC,OAAQF,KCxBFE,EAAe,CACboD,MAAQH,IACNpB,EAAa,QAAQ,EAEvBwB,KAAOJ,IACLpB,EAAa,OAAO,QAK5BM,EAAAA,EAAAA,MAAChB,EAAI,CAAAkB,SAAA,CACFZ,EAAU,IAAEG,QDUd,IAAgB9B,CCRL,EAILwD,EAAYA,KAErBhB,EAAAA,EAAAA,KAACiB,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAAsDnB,UACzEC,EAAAA,EAAAA,KAACd,EAAa,K,iECpDb,MAAMY,EAAchB,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGoC,IAAAA,GAAAlC,EAAAA,EAAAA,GAAA,uC,kDCL1B,SAASQ,IAAyD,IAAhD2B,EAAmCC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5CnC,EAAOoC,IAAYvC,EAAAA,EAAAA,UAAiD,SAATmC,EAAkB,OAASJ,GAO7F,OANAS,EAAAA,EAAAA,YAAU,KACRD,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAAShD,iBAAiB,qBAAsBqD,IAC9CF,EAASE,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAExC,QAAOoC,WAClB,C","sources":["../../extensions/events/esm/index.js","pages/extensions/events/index.tsx","pages/extensions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import { ViewPlugin } from '@codemirror/view';\nexport function element(opts) {\n var {\n type = 'scroll',\n events,\n props\n } = opts;\n return ViewPlugin.fromClass(class {\n constructor(view) {\n this.dom = void 0;\n this.view = void 0;\n this.view = view;\n if (type === 'dom') {\n this.dom = view.dom;\n } else if (type === 'content') {\n this.dom = view.contentDOM;\n } else {\n this.dom = view.scrollDOM;\n }\n\n // Apply props to the DOM element\n if (this.dom && props) {\n var keys = Object.keys(props);\n keys.forEach(key => {\n this.dom[key] = props[key];\n });\n }\n Object.keys(events || {}).forEach(keyname => {\n if (events && events[keyname] && this.dom) {\n this.dom.addEventListener(keyname, events[keyname]);\n }\n });\n }\n destroy() {\n Object.keys(events || {}).forEach(keyname => {\n if (events && events[keyname] && this.dom) {\n this.dom.removeEventListener(keyname, events[keyname]);\n }\n });\n }\n });\n}\n/**\n * The DOM element that can be styled to scroll.\n * (Note that it may not have been, so you can't assume this is scrollable.)\n */\nexport function dom(opts) {\n return element({\n type: 'dom',\n events: opts\n });\n}\n/**\n * The DOM element that wraps the entire editor view.\n */\nexport function scroll(opts) {\n return element({\n type: 'scroll',\n events: opts\n });\n}\n/**\n * The editable DOM element holding the editor content.\n * You should not, usually, interact with this content directly though the DOM,\n * since the editor will immediately undo most of the changes you make.\n */\nexport function content(opts) {\n return element({\n type: 'content',\n events: opts\n });\n}","import * as events from '@uiw/codemirror-extensions-events';\nimport CodeMirror from '@uiw/react-codemirror';\nimport styled from 'styled-components';\nimport { useContext, useState } from 'react';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Preview, MdContext } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { PageWarpper } from '..';\n\nconst Info = styled.div`\n padding-bottom: 30px;\n`;\n\nexport const EventsExample = () => {\n const [scrollTop, setScrollTop] = useState(0);\n const [eventType, setEventType] = useState('');\n const { theme } = useTheme();\n const mdData = useContext(MdContext);\n return (\n \n {\n if (evn.target instanceof HTMLElement) {\n setScrollTop(evn.target.scrollTop);\n }\n },\n }),\n events.content({\n focus: (evn) => {\n setEventType('focus');\n },\n blur: (evn) => {\n setEventType('blur');\n },\n }),\n ]}\n />\n \n {scrollTop} {eventType}\n \n \n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-events/README.md')}>\n \n \n );\n};\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["element","opts","type","events","props","ViewPlugin","fromClass","constructor","view","this","dom","contentDOM","scrollDOM","Object","keys","forEach","key","keyname","addEventListener","destroy","removeEventListener","content","Info","styled","div","_templateObject","_taggedTemplateLiteral","EventsExample","scrollTop","setScrollTop","useState","eventType","setEventType","theme","useTheme","mdData","useContext","MdContext","_jsxs","PageWarpper","children","_jsx","CodeMirror","value","mdstr","height","style","margin","extensions","langs","markdown","scroll","evn","target","HTMLElement","focus","blur","Component","Preview","path","_templateObject2","name","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useEffect","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/8950.f6f7fbef.chunk.js b/static/js/8950.f6f7fbef.chunk.js new file mode 100644 index 000000000..97ca9841e --- /dev/null +++ b/static/js/8950.f6f7fbef.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[8950],{78950:(n,e,s)=>{s.r(e),s.d(e,{default:()=>t});const t="F0 := IMDB.File_actors;\nCountActors := RECORD\nF0.ActorName;\nUNSIGNED C := COUNT(GROUP);\nEND;\nMoviesIn := TABLE(F0,CountActors,ActorName);\nOUTPUT(TOPN(MoviesIn,100,-C));\n"}}]); +//# sourceMappingURL=8950.f6f7fbef.chunk.js.map \ No newline at end of file diff --git a/static/js/8950.f6f7fbef.chunk.js.map b/static/js/8950.f6f7fbef.chunk.js.map new file mode 100644 index 000000000..92f8830db --- /dev/null +++ b/static/js/8950.f6f7fbef.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/8950.f6f7fbef.chunk.js","mappings":"yHAAA,0L","sources":["../../node_modules/code-example/txt/sample.ecl.txt"],"sourcesContent":["export default \"F0 := IMDB.File_actors;\\nCountActors := RECORD\\nF0.ActorName;\\nUNSIGNED C := COUNT(GROUP);\\nEND;\\nMoviesIn := TABLE(F0,CountActors,ActorName);\\nOUTPUT(TOPN(MoviesIn,100,-C));\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9047.a9237351.chunk.js b/static/js/9047.a9237351.chunk.js new file mode 100644 index 000000000..512b7b35c --- /dev/null +++ b/static/js/9047.a9237351.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9047],{89047:(n,e,a)=>{a.r(e),a.d(e,{default:()=>i});const i='terraform {\n required_providers {\n aws = {\n source = "hashicorp/aws"\n version = "~> 1.0.4"\n }\n }\n}\n\nvariable "aws_region" {}\n\nvariable "base_cidr_block" {\n description = "A /16 CIDR range definition, such as 10.1.0.0/16, that the VPC will use"\n default = "10.1.0.0/16"\n}\n\nvariable "availability_zones" {\n description = "A list of availability zones in which to create subnets"\n type = list(string)\n}\n\nprovider "aws" {\n region = var.aws_region\n}\n\nresource "aws_vpc" "main" {\n # Referencing the base_cidr_block variable allows the network address\n # to be changed without modifying the configuration.\n cidr_block = var.base_cidr_block\n}\n\nresource "aws_subnet" "az" {\n # Create one subnet for each given availability zone.\n count = length(var.availability_zones)\n\n # For each subnet, use one of the specified availability zones.\n availability_zone = var.availability_zones[count.index]\n\n # By referencing the aws_vpc.main object, Terraform knows that the subnet\n # must be created only after the VPC is created.\n vpc_id = aws_vpc.main.id\n\n # Built-in functions and operators can be used for simple transformations of\n # values, such as computing a subnet address. Here we create a /20 prefix for\n # each subnet, using consecutive addresses for each availability zone,\n # such as 10.1.16.0/20 .\n cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 4, count.index+1)\n}\n'}}]); +//# sourceMappingURL=9047.a9237351.chunk.js.map \ No newline at end of file diff --git a/static/js/9047.a9237351.chunk.js.map b/static/js/9047.a9237351.chunk.js.map new file mode 100644 index 000000000..1304ac192 --- /dev/null +++ b/static/js/9047.a9237351.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9047.a9237351.chunk.js","mappings":"yHAAA,k7C","sources":["../../node_modules/code-example/txt/sample.hcl.txt"],"sourcesContent":["export default \"terraform {\\n required_providers {\\n aws = {\\n source = \\\"hashicorp/aws\\\"\\n version = \\\"~> 1.0.4\\\"\\n }\\n }\\n}\\n\\nvariable \\\"aws_region\\\" {}\\n\\nvariable \\\"base_cidr_block\\\" {\\n description = \\\"A /16 CIDR range definition, such as 10.1.0.0/16, that the VPC will use\\\"\\n default = \\\"10.1.0.0/16\\\"\\n}\\n\\nvariable \\\"availability_zones\\\" {\\n description = \\\"A list of availability zones in which to create subnets\\\"\\n type = list(string)\\n}\\n\\nprovider \\\"aws\\\" {\\n region = var.aws_region\\n}\\n\\nresource \\\"aws_vpc\\\" \\\"main\\\" {\\n # Referencing the base_cidr_block variable allows the network address\\n # to be changed without modifying the configuration.\\n cidr_block = var.base_cidr_block\\n}\\n\\nresource \\\"aws_subnet\\\" \\\"az\\\" {\\n # Create one subnet for each given availability zone.\\n count = length(var.availability_zones)\\n\\n # For each subnet, use one of the specified availability zones.\\n availability_zone = var.availability_zones[count.index]\\n\\n # By referencing the aws_vpc.main object, Terraform knows that the subnet\\n # must be created only after the VPC is created.\\n vpc_id = aws_vpc.main.id\\n\\n # Built-in functions and operators can be used for simple transformations of\\n # values, such as computing a subnet address. Here we create a /20 prefix for\\n # each subnet, using consecutive addresses for each availability zone,\\n # such as 10.1.16.0/20 .\\n cidr_block = cidrsubnet(aws_vpc.main.cidr_block, 4, count.index+1)\\n}\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9143.d69e7a06.chunk.js b/static/js/9143.d69e7a06.chunk.js new file mode 100644 index 000000000..698808afd --- /dev/null +++ b/static/js/9143.d69e7a06.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9143],{9143:(e,n,t)=>{t.r(n),t.d(n,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Sublime Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-sublime.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime)\n\n\n \"codemirror-theme-sublime\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-sublime --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { sublime } from '@uiw/codemirror-theme-sublime';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [sublime, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { sublime, sublimeInit } from '@uiw/codemirror-theme-sublime';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsSublime: CreateThemeOptions['settings'];\nexport declare function sublimeInit(options?: Partial): import('@codemirror/state').Extension;\nexport declare const sublime: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { sublime } from '@uiw/codemirror-theme-sublime';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { sublime } from '@uiw/codemirror-theme-sublime';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [sublime, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=9143.d69e7a06.chunk.js.map \ No newline at end of file diff --git a/static/js/9143.d69e7a06.chunk.js.map b/static/js/9143.d69e7a06.chunk.js.map new file mode 100644 index 000000000..76d27e002 --- /dev/null +++ b/static/js/9143.d69e7a06.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9143.d69e7a06.chunk.js","mappings":"wHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,k5FACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/sublime/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Sublime Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-sublime.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-sublime)\\n\\n\\n \\\"codemirror-theme-sublime\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-sublime --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { sublime } from '@uiw/codemirror-theme-sublime';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [sublime, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { sublime, sublimeInit } from '@uiw/codemirror-theme-sublime';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsSublime: CreateThemeOptions['settings'];\\nexport declare function sublimeInit(options?: Partial): import('@codemirror/state').Extension;\\nexport declare const sublime: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { sublime } from '@uiw/codemirror-theme-sublime';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { sublime } from '@uiw/codemirror-theme-sublime';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [sublime, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9177.961d57fa.chunk.js b/static/js/9177.961d57fa.chunk.js new file mode 100644 index 000000000..b4230fa26 --- /dev/null +++ b/static/js/9177.961d57fa.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9177],{39177:(e,o,n)=>{n.r(o),n.d(o,{default:()=>i});const i={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# MonokaiDimmed Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai-dimmed.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai-dimmed)\n\nMonokaiDimmed theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json).\n\n\n \"codemirror-theme-monokai-dimmed\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-monokai-dimmed --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [monokaiDimmed, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { monokaiDimmed, monokaiDimmedInit } from '@uiw/codemirror-theme-monokai-dimmed';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\nexport declare const monokaiDimmedInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const monokaiDimmed: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [monokaiDimmed, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=9177.961d57fa.chunk.js.map \ No newline at end of file diff --git a/static/js/9177.961d57fa.chunk.js.map b/static/js/9177.961d57fa.chunk.js.map new file mode 100644 index 000000000..d76757015 --- /dev/null +++ b/static/js/9177.961d57fa.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9177.961d57fa.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,ytGACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/monokai-dimmed/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# MonokaiDimmed Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-monokai-dimmed.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-monokai-dimmed)\\n\\nMonokaiDimmed theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-monokai-dimmed/themes/dimmed-monokai-color-theme.json).\\n\\n\\n \\\"codemirror-theme-monokai-dimmed\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-monokai-dimmed --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [monokaiDimmed, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { monokaiDimmed, monokaiDimmedInit } from '@uiw/codemirror-theme-monokai-dimmed';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsQuietlight: CreateThemeOptions['settings'];\\nexport declare const monokaiDimmedInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const monokaiDimmed: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { monokaiDimmed } from '@uiw/codemirror-theme-monokai-dimmed';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [monokaiDimmed, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9203.cd783a3b.chunk.js b/static/js/9203.cd783a3b.chunk.js new file mode 100644 index 000000000..23113b57d --- /dev/null +++ b/static/js/9203.cd783a3b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9203],{79203:(e,r,t)=>{t.r(r),t.d(r,{default:()=>o});const o={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Solarized Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized)\n\nThis package implements the [Solarized](https://ethanschoonover.com/solarized/) theme for the CodeMirror code editor.\n\n\n \"codemirror-theme-solarized\"\n\n\n\n \"codemirror-theme-solarized\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-solarized --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [solarizedLight, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { solarizedLight, solarizedLightInit, solarizedDark, solarizedDarkInit } from '@uiw/codemirror-theme-solarized';\n// Or\nimport { solarizedDark, solarizedDarkInit } from '@uiw/codemirror-theme-solarized/dark';\nimport { solarizedLight, solarizedLightInit } from '@uiw/codemirror-theme-solarized/light';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsSolarizedLight: CreateThemeOptions['settings'];\nexport declare const solarizedLightInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const solarizedLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsSolarizedDark: CreateThemeOptions['settings'];\nexport declare const solarizedDarkInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const solarizedDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n \n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [solarizedLight, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=9203.cd783a3b.chunk.js.map \ No newline at end of file diff --git a/static/js/9203.cd783a3b.chunk.js.map b/static/js/9203.cd783a3b.chunk.js.map new file mode 100644 index 000000000..b97114bc9 --- /dev/null +++ b/static/js/9203.cd783a3b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9203.cd783a3b.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,81HACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/solarized/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Solarized Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-solarized.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-solarized)\\n\\nThis package implements the [Solarized](https://ethanschoonover.com/solarized/) theme for the CodeMirror code editor.\\n\\n\\n \\\"codemirror-theme-solarized\\\"\\n\\n\\n\\n \\\"codemirror-theme-solarized\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-solarized --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [solarizedLight, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { solarizedLight, solarizedLightInit, solarizedDark, solarizedDarkInit } from '@uiw/codemirror-theme-solarized';\\n// Or\\nimport { solarizedDark, solarizedDarkInit } from '@uiw/codemirror-theme-solarized/dark';\\nimport { solarizedLight, solarizedLightInit } from '@uiw/codemirror-theme-solarized/light';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsSolarizedLight: CreateThemeOptions['settings'];\\nexport declare const solarizedLightInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const solarizedLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsSolarizedDark: CreateThemeOptions['settings'];\\nexport declare const solarizedDarkInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const solarizedDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n \\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { solarizedLight, solarizedDark } from '@uiw/codemirror-theme-solarized';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [solarizedLight, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9273.0ee7ff49.chunk.js b/static/js/9273.0ee7ff49.chunk.js new file mode 100644 index 000000000..7ef20cb37 --- /dev/null +++ b/static/js/9273.0ee7ff49.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9273],{99273:(e,n,i)=>{i.r(n),i.d(n,{default:()=>r});const r='begin:\nTextWindow.Write("Enter a number: ")\nnum = TextWindow.ReadNumber()\nremainder = Math.Remainder(num, 2)\nIf (remainder = 0) Then\n TextWindow.WriteLine("The number is Even")\nElse\n TextWindow.WriteLine("The number is Odd")\nEndIf\nGoto begin'}}]); +//# sourceMappingURL=9273.0ee7ff49.chunk.js.map \ No newline at end of file diff --git a/static/js/9273.0ee7ff49.chunk.js.map b/static/js/9273.0ee7ff49.chunk.js.map new file mode 100644 index 000000000..ddb8a50cc --- /dev/null +++ b/static/js/9273.0ee7ff49.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9273.0ee7ff49.chunk.js","mappings":"yHAAA,oQ","sources":["../../node_modules/code-example/txt/sample.sb.txt"],"sourcesContent":["export default \"begin:\\nTextWindow.Write(\\\"Enter a number: \\\")\\nnum = TextWindow.ReadNumber()\\nremainder = Math.Remainder(num, 2)\\nIf (remainder = 0) Then\\n TextWindow.WriteLine(\\\"The number is Even\\\")\\nElse\\n TextWindow.WriteLine(\\\"The number is Odd\\\")\\nEndIf\\nGoto begin\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9353.3a10614c.chunk.js b/static/js/9353.3a10614c.chunk.js new file mode 100644 index 000000000..6d46acc83 --- /dev/null +++ b/static/js/9353.3a10614c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9353],{49353:(n,e,t)=>{t.r(e),t.d(e,{default:()=>r});const r='\n\n \n \n \n \n \n \n \n \n'}}]); +//# sourceMappingURL=9353.3a10614c.chunk.js.map \ No newline at end of file diff --git a/static/js/9353.3a10614c.chunk.js.map b/static/js/9353.3a10614c.chunk.js.map new file mode 100644 index 000000000..2d95282bf --- /dev/null +++ b/static/js/9353.3a10614c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9353.3a10614c.chunk.js","mappings":"yHAAA,uiB","sources":["../../node_modules/code-example/txt/sample.xml.txt"],"sourcesContent":["export default \"\\n\\n \\n \\n \\n \\n \\n \\n \\n \\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9359.2708834f.chunk.js b/static/js/9359.2708834f.chunk.js new file mode 100644 index 000000000..73a46ac68 --- /dev/null +++ b/static/js/9359.2708834f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9359],{99359:(t,$,n)=>{n.r($),n.d($,{default:()=>i});const i="# A[i] = A[i/2] + 1;\n lw $t0, 0($gp) # fetch i\n srl $t1, $t0, 1 # i/2\n sll $t1, $t1, 2 # turn i/2 into a byte offset (*4)\n add $t1, $gp, $t1 # &A[i/2] - 28\n lw $t1, 28($t1) # fetch A[i/2]\n addi $t1, $t1, 1 # A[i/2] + 1\n sll $t2, $t0, 2 # turn i into a byte offset\n add $t2, $t2, $gp # &A[i] - 28\n sw $t1, 28($t2) # A[i] = ...\n# A[i+1] = -1;\n addi $t1, $zero, -1 # -1\n sw $t1, 32($t2) # A[i+1] = -1\n"}}]); +//# sourceMappingURL=9359.2708834f.chunk.js.map \ No newline at end of file diff --git a/static/js/9359.2708834f.chunk.js.map b/static/js/9359.2708834f.chunk.js.map new file mode 100644 index 000000000..1a28e92f4 --- /dev/null +++ b/static/js/9359.2708834f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9359.2708834f.chunk.js","mappings":"yHAAA,iiB","sources":["../../node_modules/code-example/txt/sample.mips.txt"],"sourcesContent":["export default \"# A[i] = A[i/2] + 1;\\n lw $t0, 0($gp) # fetch i\\n srl $t1, $t0, 1 # i/2\\n sll $t1, $t1, 2 # turn i/2 into a byte offset (*4)\\n add $t1, $gp, $t1 # &A[i/2] - 28\\n lw $t1, 28($t1) # fetch A[i/2]\\n addi $t1, $t1, 1 # A[i/2] + 1\\n sll $t2, $t0, 2 # turn i into a byte offset\\n add $t2, $t2, $gp # &A[i] - 28\\n sw $t1, 28($t2) # A[i] = ...\\n# A[i+1] = -1;\\n addi $t1, $zero, -1 # -1\\n sw $t1, 32($t2) # A[i+1] = -1\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9449.fe9ef323.chunk.js b/static/js/9449.fe9ef323.chunk.js new file mode 100644 index 000000000..9d973e259 --- /dev/null +++ b/static/js/9449.fe9ef323.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9449],{19449:(e,s,w)=>{w.r(s),w.d(s,{Component:()=>a});var n=w(98846),t=w(98557);const a=()=>(0,t.jsx)(n.lN,{path:()=>Promise.all([w.e(9940),w.e(1635)]).then(w.bind(w,31635))})}}]); +//# sourceMappingURL=9449.fe9ef323.chunk.js.map \ No newline at end of file diff --git a/static/js/9449.fe9ef323.chunk.js.map b/static/js/9449.fe9ef323.chunk.js.map new file mode 100644 index 000000000..0f9a85676 --- /dev/null +++ b/static/js/9449.fe9ef323.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9449.fe9ef323.chunk.js","mappings":"qJAEO,MAAMA,EAAYA,KAChBC,EAAAA,EAAAA,KAACC,EAAAA,GAAO,CAACC,KAAMA,IAAM,0D","sources":["pages/merge/examples/onchange.tsx"],"sourcesContent":["import { Preview } from '../../theme/Preview';\n\nexport const Component = () => {\n return import('./Example.md')} />;\n};\n"],"names":["Component","_jsx","Preview","path"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9477.7cf0f588.chunk.js b/static/js/9477.7cf0f588.chunk.js new file mode 100644 index 000000000..cf5fa4eb0 --- /dev/null +++ b/static/js/9477.7cf0f588.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9477],{89477:(e,o,n)=>{n.r(o),n.d(o,{default:()=>t});const t={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# Console Theme (dark/light)\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-console.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-console)\n\n\n \"codemirror-theme-console\n\n\n\n \"codemirror-theme-console\n\n\n## Motivation\n\nOne of the usages for react-codemirror is a logger component, but there is no theme with the required styles for achieving the desired feature. This theme is intended to be used when you want to have plain text in a console or terminal viewer.\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-console --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [consoleDark],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { consoleLight, consoleLightInit, consoleDark, consoleDarkInit } from '@uiw/codemirror-theme-console';\n// Or\nimport { consoleDark, consoleDarkInit } from '@uiw/codemirror-theme-console/dark';\nimport { consoleLight, consoleLightInit } from '@uiw/codemirror-theme-console/light';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsConsoleLight: CreateThemeOptions['settings'];\nexport declare const consoleLightInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const consoleLight: import('@codemirror/state').Extension;\nexport declare const defaultSettingsConsoleDark: CreateThemeOptions['settings'];\nexport declare const consoleDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\nexport declare const consoleDark: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [consoleDark],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=9477.7cf0f588.chunk.js.map \ No newline at end of file diff --git a/static/js/9477.7cf0f588.chunk.js.map b/static/js/9477.7cf0f588.chunk.js.map new file mode 100644 index 000000000..204155405 --- /dev/null +++ b/static/js/9477.7cf0f588.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9477.7cf0f588.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,85HACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/console/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# Console Theme (dark/light)\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-console.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-console)\\n\\n\\n \\\"codemirror-theme-console\\n\\n\\n\\n \\\"codemirror-theme-console\\n\\n\\n## Motivation\\n\\nOne of the usages for react-codemirror is a logger component, but there is no theme with the required styles for achieving the desired feature. This theme is intended to be used when you want to have plain text in a console or terminal viewer.\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-console --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [consoleDark],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { consoleLight, consoleLightInit, consoleDark, consoleDarkInit } from '@uiw/codemirror-theme-console';\\n// Or\\nimport { consoleDark, consoleDarkInit } from '@uiw/codemirror-theme-console/dark';\\nimport { consoleLight, consoleLightInit } from '@uiw/codemirror-theme-console/light';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsConsoleLight: CreateThemeOptions['settings'];\\nexport declare const consoleLightInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const consoleLight: import('@codemirror/state').Extension;\\nexport declare const defaultSettingsConsoleDark: CreateThemeOptions['settings'];\\nexport declare const consoleDarkInit: (options?: Partial) => import('@codemirror/state').Extension;\\nexport declare const consoleDark: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { consoleLight, consoleDark } from '@uiw/codemirror-theme-console';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [consoleDark],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9661.044c3442.chunk.js b/static/js/9661.044c3442.chunk.js new file mode 100644 index 000000000..b05aa3992 --- /dev/null +++ b/static/js/9661.044c3442.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9661],{59661:(t,n,e)=>{e.r(n),e.d(n,{default:()=>s});const s="type storage is int\ntype parameter is\n Increment of int\n| Decrement of int\n| Reset\ntype return is list (operation) * storage\n// Two entrypoints\nfunction add (const store : storage; const delta : int) : storage is\n store + delta\nfunction sub (const store : storage; const delta : int) : storage is\n store - delta\n(* Main access point that dispatches to the entrypoints according to\n the smart contract parameter. *)\nfunction main (const action : parameter; const store : storage) : return is\n ((nil : list (operation)), // No operations\n case action of\n Increment (n) -> add (store, n)\n | Decrement (n) -> sub (store, n)\n | Reset -> 0\n end)\n"}}]); +//# sourceMappingURL=9661.044c3442.chunk.js.map \ No newline at end of file diff --git a/static/js/9661.044c3442.chunk.js.map b/static/js/9661.044c3442.chunk.js.map new file mode 100644 index 000000000..bd878f120 --- /dev/null +++ b/static/js/9661.044c3442.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9661.044c3442.chunk.js","mappings":"yHAAA,qrB","sources":["../../node_modules/code-example/txt/sample.pascaligo.txt"],"sourcesContent":["export default \"type storage is int\\ntype parameter is\\n Increment of int\\n| Decrement of int\\n| Reset\\ntype return is list (operation) * storage\\n// Two entrypoints\\nfunction add (const store : storage; const delta : int) : storage is\\n store + delta\\nfunction sub (const store : storage; const delta : int) : storage is\\n store - delta\\n(* Main access point that dispatches to the entrypoints according to\\n the smart contract parameter. *)\\nfunction main (const action : parameter; const store : storage) : return is\\n ((nil : list (operation)), // No operations\\n case action of\\n Increment (n) -> add (store, n)\\n | Decrement (n) -> sub (store, n)\\n | Reset -> 0\\n end)\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9674.0fdffb45.chunk.js b/static/js/9674.0fdffb45.chunk.js new file mode 100644 index 000000000..f9b2826c1 --- /dev/null +++ b/static/js/9674.0fdffb45.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9674],{59674:(l,n,e)=>{e.r(n),e.d(n,{default:()=>w});const w=' MODULE HelloWorld EXPORTS Main;\n FROM IO IMPORT Put;\n BEGIN\n Put("Hello World\\n")\n END HelloWorld.\n'}}]); +//# sourceMappingURL=9674.0fdffb45.chunk.js.map \ No newline at end of file diff --git a/static/js/9674.0fdffb45.chunk.js.map b/static/js/9674.0fdffb45.chunk.js.map new file mode 100644 index 000000000..02f3cb0ff --- /dev/null +++ b/static/js/9674.0fdffb45.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9674.0fdffb45.chunk.js","mappings":"yHAAA,sH","sources":["../../node_modules/code-example/txt/sample.m3.txt"],"sourcesContent":["export default \" MODULE HelloWorld EXPORTS Main;\\n FROM IO IMPORT Put;\\n BEGIN\\n Put(\\\"Hello World\\\\n\\\")\\n END HelloWorld.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9731.4a0be84e.chunk.js b/static/js/9731.4a0be84e.chunk.js new file mode 100644 index 000000000..b5a01fc93 --- /dev/null +++ b/static/js/9731.4a0be84e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9731],{9731:(o,e,l)=>{l.r(e),l.d(e,{ColorExample:()=>g,Component:()=>i});var n=l(88118),r=l(73562),d=l(80905),t=l(69332),a=l(98846),c=l(94458);var s=l(55864),h=l(98557);const g=()=>{const[o,e]=(0,d.useState)("readOnly"),[l,a]=(0,d.useState)(!1),{theme:g}=(0,c.D)(),i={};return"editable"===o&&(i.editable=l),"readOnly"===o&&(i.readOnly=l),(0,h.jsxs)(s.zu,{children:[(0,h.jsx)(r.default,{value:"body {\n color: red;\n background-color: #333;\n}\n.header { color: purple; }\n.header { color: #ff4646; }\n.header { color: #167; }\n.header { color: rgb(0 133 160); }\n.header { color: rgb(0, 133, 160); }\n.header { color: rgba(0, 133, 160); }\n.header { color: rgba(0, 133, 160, .775); }\n.header { color: rgb(0 107 128 / 60%); }\n.header { color: hsl(190deg 100% 36% / 53%); }\n.good { color: hsl(240, 100% 50%); }\n.good { color: hsl(240, 100%, 50%); }\n.good { color: hsl(240, 100%, 50%, 0.1); }\n.good { color: hsl(240, 100%, 50%, 10%); }\n.good { color: hsl(240,100%,50%,0.1); }\n.good { color: hsl(180deg, 100%, 50%, 0.1); }\n.good { color: hsl(3.14rad, 100%, 50%, 0.1); }\n.good { color: hsl(200grad, 100%, 50%, 0.1); }\n.good { color: hsl(0.5turn, 100%, 50%, 0.1); }\n.good { color: hsl(-240, -100%, -50%, -0.1); }\n.good { color: hsl(+240, +100%, +50%, +0.1); }\n.good { color: hsl(240.5, 99.99%, 49.999%, 0.9999); }\n.good { color: hsl(.9, .99%, .999%, .9999); }\n.good { color: hsl(0240, 0100%, 0050%, 01); }\n.good { color: hsl(240.0, 100.00%, 50.000%, 1.0000); }\n.good { color: hsl(2400, 1000%, 1000%, 10); }\n.good { color: hsl(-2400.01deg, -1000.5%, -1000.05%, -100); }\n.good { color: hsl(2.40e+2, 1.00e+2%, 5.00e+1%, 1E-3); }\n.good { color: hsl(240 100% 50%); }\n.good { color: hsl(240 100% 50% / 0.1); }\n.good { color: hsla(240, 100%, 50%); }\n.good { color: hsla(240, 100%, 50%, 0.1); }\n.good { color: HSL(240Deg, 100%, 50%); }",theme:g,height:"400px !important",...i,style:{margin:"0 0 23px 0"},extensions:[t.cg.css(),n.yW]}),(0,h.jsxs)("div",{style:{marginBottom:23},children:[(0,h.jsxs)("button",{type:"button",onClick:()=>a(!l),children:["\u7f16\u8f91\u5668 & ",String(l)]}),(0,h.jsxs)("label",{children:[(0,h.jsx)("input",{type:"radio",name:"mode",checked:"readOnly"===o,value:"readOnly",onChange:o=>{let{target:l}=o;return e(l.value)}})," ","readOnly"]}),(0,h.jsxs)("label",{children:[(0,h.jsx)("input",{type:"radio",name:"mode",checked:"editable"===o,value:"editable",onChange:o=>{let{target:l}=o;return e(l.value)}})," ","editable"]})]})]})},i=()=>(0,h.jsx)(a.lN,{path:()=>l.e(2699).then(l.bind(l,72699)),children:(0,h.jsx)(g,{})})},55864:(o,e,l)=>{l.d(e,{zu:()=>a});var n,r,d=l(60114),t=l(6008);const a=t.Ay.div(n||(n=(0,d.A)(["\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n"])));t.Ay.div(r||(r=(0,d.A)(["\n display: flex;\n flex: 1;\n"])))},94458:(o,e,l)=>{l.d(e,{D:()=>r});var n=l(80905);function r(){let o=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"light";const e=document.documentElement.getAttribute("data-color-mode"),[l,r]=(0,n.useState)("dark"===e?"dark":o);return(0,n.useEffect)((()=>{r("dark"===document.documentElement.getAttribute("data-color-mode")?"dark":"light"),document.addEventListener("colorschemechange",(o=>{r(o.detail.colorScheme)}))}),[]),{theme:l,setTheme:r}}}}]); +//# sourceMappingURL=9731.4a0be84e.chunk.js.map \ No newline at end of file diff --git a/static/js/9731.4a0be84e.chunk.js.map b/static/js/9731.4a0be84e.chunk.js.map new file mode 100644 index 000000000..904ecc238 --- /dev/null +++ b/static/js/9731.4a0be84e.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9731.4a0be84e.chunk.js","mappings":"6OASO,MAAMA,EAAeA,KAC1B,MAAOC,EAAUC,IAAeC,EAAAA,EAAAA,UAAkC,aAC3DC,EAAUC,IAAeF,EAAAA,EAAAA,WAAS,IACnC,MAAEG,IAAUC,EAAAA,EAAAA,KACZC,EAA8B,CAAC,EAQrC,MAPiB,aAAbP,IACFO,EAAMC,SAAWL,GAEF,aAAbH,IACFO,EAAMJ,SAAWA,IAIjBM,EAAAA,EAAAA,MAACC,EAAAA,GAAW,CAAAC,SAAA,EACVC,EAAAA,EAAAA,KAACC,EAAAA,QAAU,CACTC,MCxBe,47CDyBfT,MAAOA,EACPU,OAAO,sBAGHR,EACJS,MAAO,CAAEC,OAAQ,cACjBC,WAAY,CAACC,EAAAA,GAAMC,MAAOC,EAAAA,OAE5BZ,EAAAA,EAAAA,MAAA,OAAKO,MAAO,CAAEM,aAAc,IAAKX,SAAA,EAC/BF,EAAAA,EAAAA,MAAA,UAAQc,KAAK,SAASC,QAASA,IAAMpB,GAAaD,GAAUQ,SAAA,CAAC,wBACpDc,OAAOtB,OAEhBM,EAAAA,EAAAA,MAAA,SAAAE,SAAA,EACEC,EAAAA,EAAAA,KAAA,SACEW,KAAK,QACLG,KAAK,OACLC,QAAsB,aAAb3B,EACTc,MAAM,WACNc,SAAUC,IAAA,IAAC,OAAEC,GAAQD,EAAA,OAAK5B,EAAY6B,EAAOhB,MAAa,IACzD,IAAI,eAGTL,EAAAA,EAAAA,MAAA,SAAAE,SAAA,EACEC,EAAAA,EAAAA,KAAA,SACEW,KAAK,QACLG,KAAK,OACLC,QAAsB,aAAb3B,EACTc,MAAM,WACNc,SAAUG,IAAA,IAAC,OAAED,GAAQC,EAAA,OAAK9B,EAAY6B,EAAOhB,MAAa,IACzD,IAAI,mBAIC,EAILkB,EAAYA,KAErBpB,EAAAA,EAAAA,KAACqB,EAAAA,GAAO,CAACC,KAAMA,IAAM,gCAAqDvB,UACxEC,EAAAA,EAAAA,KAACb,EAAY,K,iEE/DZ,MAAMW,EAAcyB,EAAAA,GAAOC,IAAGC,IAAAA,GAAAC,EAAAA,EAAAA,GAAA,4EAMdH,EAAAA,GAAOC,IAAGG,IAAAA,GAAAD,EAAAA,EAAAA,GAAA,uC,kDCL1B,SAAShC,IAAyD,IAAhDoB,EAAmCc,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,QAC7D,MAAMG,EAAOC,SAASC,gBAAgBC,aAAa,oBAC5CzC,EAAO0C,IAAY7C,EAAAA,EAAAA,UAAiD,SAATyC,EAAkB,OAASjB,GAO7F,OANAsB,EAAAA,EAAAA,YAAU,KACRD,EAAsE,SAA7DH,SAASC,gBAAgBC,aAAa,mBAAgC,OAAS,SACxFF,SAASK,iBAAiB,qBAAsBC,IAC9CH,EAASG,EAAEC,OAAOC,YAA6C,GAC/D,GACD,IACI,CAAE/C,QAAO0C,WAClB,C","sources":["pages/extensions/color/index.tsx","pages/extensions/color/code.ts","pages/extensions/index.tsx","utils/useTheme.tsx"],"sourcesContent":["import { color } from '@uiw/codemirror-extensions-color';\nimport CodeMirror, { ReactCodeMirrorProps } from '@uiw/react-codemirror';\nimport { useState } from 'react';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Preview } from '../../theme/Preview';\nimport { useTheme } from '../../../utils/useTheme';\nimport { codeSample } from './code';\nimport { PageWarpper } from '..';\n\nexport const ColorExample = () => {\n const [modeType, setModeType] = useState<'readOnly' | 'editable'>('readOnly');\n const [readOnly, setReadOnly] = useState(false);\n const { theme } = useTheme();\n const porps: ReactCodeMirrorProps = {};\n if (modeType === 'editable') {\n porps.editable = readOnly;\n }\n if (modeType === 'readOnly') {\n porps.readOnly = readOnly;\n }\n\n return (\n \n \n
\n \n \n \n
\n
\n );\n};\n\nexport const Component = () => {\n return (\n import('@uiw/codemirror-extensions-color/README.md')}>\n \n \n );\n};\n","export const codeSample = `body {\n color: red;\n background-color: #333;\n}\n.header { color: purple; }\n.header { color: #ff4646; }\n.header { color: #167; }\n.header { color: rgb(0 133 160); }\n.header { color: rgb(0, 133, 160); }\n.header { color: rgba(0, 133, 160); }\n.header { color: rgba(0, 133, 160, .775); }\n.header { color: rgb(0 107 128 / 60%); }\n.header { color: hsl(190deg 100% 36% / 53%); }\n.good { color: hsl(240, 100% 50%); }\n.good { color: hsl(240, 100%, 50%); }\n.good { color: hsl(240, 100%, 50%, 0.1); }\n.good { color: hsl(240, 100%, 50%, 10%); }\n.good { color: hsl(240,100%,50%,0.1); }\n.good { color: hsl(180deg, 100%, 50%, 0.1); }\n.good { color: hsl(3.14rad, 100%, 50%, 0.1); }\n.good { color: hsl(200grad, 100%, 50%, 0.1); }\n.good { color: hsl(0.5turn, 100%, 50%, 0.1); }\n.good { color: hsl(-240, -100%, -50%, -0.1); }\n.good { color: hsl(+240, +100%, +50%, +0.1); }\n.good { color: hsl(240.5, 99.99%, 49.999%, 0.9999); }\n.good { color: hsl(.9, .99%, .999%, .9999); }\n.good { color: hsl(0240, 0100%, 0050%, 01); }\n.good { color: hsl(240.0, 100.00%, 50.000%, 1.0000); }\n.good { color: hsl(2400, 1000%, 1000%, 10); }\n.good { color: hsl(-2400.01deg, -1000.5%, -1000.05%, -100); }\n.good { color: hsl(2.40e+2, 1.00e+2%, 5.00e+1%, 1E-3); }\n.good { color: hsl(240 100% 50%); }\n.good { color: hsl(240 100% 50% / 0.1); }\n.good { color: hsla(240, 100%, 50%); }\n.good { color: hsla(240, 100%, 50%, 0.1); }\n.good { color: HSL(240Deg, 100%, 50%); }`;\n","import styled from 'styled-components';\n\nexport const PageWarpper = styled.div`\n flex: 1;\n max-width: 980px;\n padding: 20px 20px 30px 20px;\n`;\n\nexport const Content = styled.div`\n display: flex;\n flex: 1;\n`;\n\nexport const Extensions = () => {};\n","import { useEffect, useState } from 'react';\nimport { ReactCodeMirrorProps } from '@uiw/react-codemirror';\n\nexport function useTheme(name: ReactCodeMirrorProps['theme'] = 'light') {\n const dark = document.documentElement.getAttribute('data-color-mode');\n const [theme, setTheme] = useState(dark === 'dark' ? 'dark' : name);\n useEffect(() => {\n setTheme(document.documentElement.getAttribute('data-color-mode') === 'dark' ? 'dark' : 'light');\n document.addEventListener('colorschemechange', (e) => {\n setTheme(e.detail.colorScheme as ReactCodeMirrorProps['theme']);\n });\n }, []);\n return { theme, setTheme };\n}\n"],"names":["ColorExample","modeType","setModeType","useState","readOnly","setReadOnly","theme","useTheme","porps","editable","_jsxs","PageWarpper","children","_jsx","CodeMirror","value","height","style","margin","extensions","langs","css","color","marginBottom","type","onClick","String","name","checked","onChange","_ref","target","_ref2","Component","Preview","path","styled","div","_templateObject","_taggedTemplateLiteral","_templateObject2","arguments","length","undefined","dark","document","documentElement","getAttribute","setTheme","useEffect","addEventListener","e","detail","colorScheme"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9765.e9f807db.chunk.js b/static/js/9765.e9f807db.chunk.js new file mode 100644 index 000000000..d4190a486 --- /dev/null +++ b/static/js/9765.e9f807db.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9765],{99765:(e,n,t)=>{t.r(n),t.d(n,{Component:()=>w});var l=t(73562),o=t(69332),s=t(80905),r=t(98557);function w(){return(0,r.jsx)(s.Fragment,{children:(0,r.jsx)(l.default,{value:"console.log('hello')",theme:"none",height:"400px !important",width:"100%",style:{margin:"0 0 23px 0",flex:1},extensions:[o.cg.markdown()]})})}}}]); +//# sourceMappingURL=9765.e9f807db.chunk.js.map \ No newline at end of file diff --git a/static/js/9765.e9f807db.chunk.js.map b/static/js/9765.e9f807db.chunk.js.map new file mode 100644 index 000000000..e34250a4a --- /dev/null +++ b/static/js/9765.e9f807db.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9765.e9f807db.chunk.js","mappings":"2KAOO,SAASA,IACd,OACEC,EAAAA,EAAAA,KAACC,EAAAA,SAAQ,CAAAC,UACPF,EAAAA,EAAAA,KAACG,EAAAA,QAAU,CACTC,MAAK,uBACLC,MAAM,OACNC,OAAO,mBACPC,MAAM,OACNC,MAAO,CAAEC,OAAQ,aAAcC,KAAM,GACrCC,WAAY,CAACC,EAAAA,GAAMC,eAI3B,C","sources":["pages/examples/Example431.tsx"],"sourcesContent":["import CodeMirror from '@uiw/react-codemirror';\nimport { langs } from '@uiw/codemirror-extensions-langs';\nimport { Fragment } from 'react';\n\n/**\n * https://github.com/uiwjs/react-codemirror/issues/431\n */\nexport function Component() {\n return (\n \n \n \n );\n}\n"],"names":["Component","_jsx","Fragment","children","CodeMirror","value","theme","height","width","style","margin","flex","extensions","langs","markdown"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9937.9bdbb467.chunk.js b/static/js/9937.9bdbb467.chunk.js new file mode 100644 index 000000000..1a09594fc --- /dev/null +++ b/static/js/9937.9bdbb467.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9937],{9937:(e,a,n)=>{n.r(a),n.d(a,{default:()=>r});const r="LEX Paid Escrow.\nLEXON: 0.2.20\nCOMMENT: 3.f - an escrow that is controlled by a third party for a fee.\n\n\u201cPayer\u201d is a person.\n\u201cPayee\u201d is a person.\n\u201cArbiter\u201d is a person.\n\u201cFee\u201d is an amount.\n\nThe Payer pays an Amount into escrow,\nappoints the Payee,\nappoints the Arbiter,\nand also fixes the Fee.\n\nCLAUSE: Pay Out.\nThe Arbiter may pay from escrow the Fee to themselves,\nand afterwards pay the remainder of the escrow to the Payee.\n\nCLAUSE: Pay Back.\nThe Arbiter may pay from escrow the Fee to themselves,\nand afterwards return the remainder of the escrow to the Payer.\n"}}]); +//# sourceMappingURL=9937.9bdbb467.chunk.js.map \ No newline at end of file diff --git a/static/js/9937.9bdbb467.chunk.js.map b/static/js/9937.9bdbb467.chunk.js.map new file mode 100644 index 000000000..a8223176d --- /dev/null +++ b/static/js/9937.9bdbb467.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9937.9bdbb467.chunk.js","mappings":"wHAAA,6nB","sources":["../../node_modules/code-example/txt/sample.lex.txt"],"sourcesContent":["export default \"LEX Paid Escrow.\\nLEXON: 0.2.20\\nCOMMENT: 3.f - an escrow that is controlled by a third party for a fee.\\n\\n“Payer” is a person.\\n“Payee” is a person.\\n“Arbiter” is a person.\\n“Fee” is an amount.\\n\\nThe Payer pays an Amount into escrow,\\nappoints the Payee,\\nappoints the Arbiter,\\nand also fixes the Fee.\\n\\nCLAUSE: Pay Out.\\nThe Arbiter may pay from escrow the Fee to themselves,\\nand afterwards pay the remainder of the escrow to the Payee.\\n\\nCLAUSE: Pay Back.\\nThe Arbiter may pay from escrow the Fee to themselves,\\nand afterwards return the remainder of the escrow to the Payer.\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9943.043046c9.chunk.js b/static/js/9943.043046c9.chunk.js new file mode 100644 index 000000000..c5288a2ed --- /dev/null +++ b/static/js/9943.043046c9.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9943],{19943:(o,t,e)=>{e.r(t),e.d(t,{default:()=>r});const r={components:{},data:{},source:"\x3c!--rehype:ignore:start--\x3e\n\n# TomorrowNightBlue Theme\n\n\x3c!--rehype:ignore:end--\x3e\n\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tomorrow-night-blue.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue)\n\nTomorrowNightBlue theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json).\n\n\n \"codemirror-theme-tomorrow-night-blue\"\n\n\n## Install\n\n```bash\nnpm install @uiw/codemirror-theme-tomorrow-night-blue --save\n```\n\n```js\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tomorrowNightBlue, javascript({ jsx: true })],\n});\n```\n\nUsing in React:\n\n```jsx\nimport { tomorrowNightBlue, tomorrowNightBlueInit } from '@uiw/codemirror-theme-tomorrow-night-blue';\n\n\n\n```\n\n## API\n\n```tsx\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\nexport declare const defaultSettingsTomorrowNightBlue: CreateThemeOptions['settings'];\nexport declare const tomorrowNightBlueInit: (\n options?: Partial,\n) => import('@codemirror/state').Extension;\nexport declare const tomorrowNightBlue: import('@codemirror/state').Extension;\n```\n\n## Usage\n\n```jsx\nimport CodeMirror from '@uiw/react-codemirror';\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\nimport { javascript } from '@codemirror/lang-javascript';\n\nfunction App() {\n return (\n {\n console.log('value:', value);\n }}\n />\n );\n}\nexport default App;\n```\n\n```js\nimport { EditorView } from '@codemirror/view';\nimport { EditorState } from '@codemirror/state';\nimport { javascript } from '@codemirror/lang-javascript';\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\n\nconst state = EditorState.create({\n doc: 'my source code',\n extensions: [tomorrowNightBlue, javascript({ jsx: true })],\n});\n\nconst view = new EditorView({\n parent: document.querySelector('#editor'),\n state,\n});\n```\n\n## Contributors\n\nAs always, thanks to our amazing contributors!\n\n\n \n\n\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\n\n## License\n\nLicensed under the MIT License.\n",headings:[],headingsList:[]}}}]); +//# sourceMappingURL=9943.043046c9.chunk.js.map \ No newline at end of file diff --git a/static/js/9943.043046c9.chunk.js.map b/static/js/9943.043046c9.chunk.js.map new file mode 100644 index 000000000..ab1c68f71 --- /dev/null +++ b/static/js/9943.043046c9.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9943.043046c9.chunk.js","mappings":"yHACA,SACIA,WAAY,CAAG,EACfC,KAAM,CAAC,EACPC,OAAQ,+0GACRC,SAAS,GACTC,aAAa,G","sources":["../../themes/tomorrow-night-blue/README.md"],"sourcesContent":["\nexport default {\n components: { },\n data: {},\n source: \"\\n\\n# TomorrowNightBlue Theme\\n\\n\\n\\n[![Buy me a coffee](https://img.shields.io/badge/Buy%20me%20a%20coffee-048754?logo=buymeacoffee)](https://jaywcjlove.github.io/#/sponsor)\\n[![npm version](https://img.shields.io/npm/v/@uiw/codemirror-theme-tomorrow-night-blue.svg)](https://www.npmjs.com/package/@uiw/codemirror-theme-tomorrow-night-blue)\\n\\nTomorrowNightBlue theme for cm6, generated from [vscode themes](https://github.com/microsoft/vscode/blob/main/extensions/theme-tomorrow-night-blue/themes/tomorrow-night-blue-color-theme.json).\\n\\n\\n \\\"codemirror-theme-tomorrow-night-blue\\\"\\n\\n\\n## Install\\n\\n```bash\\nnpm install @uiw/codemirror-theme-tomorrow-night-blue --save\\n```\\n\\n```js\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tomorrowNightBlue, javascript({ jsx: true })],\\n});\\n```\\n\\nUsing in React:\\n\\n```jsx\\nimport { tomorrowNightBlue, tomorrowNightBlueInit } from '@uiw/codemirror-theme-tomorrow-night-blue';\\n\\n\\n\\n```\\n\\n## API\\n\\n```tsx\\nimport { CreateThemeOptions } from '@uiw/codemirror-themes';\\nexport declare const defaultSettingsTomorrowNightBlue: CreateThemeOptions['settings'];\\nexport declare const tomorrowNightBlueInit: (\\n options?: Partial,\\n) => import('@codemirror/state').Extension;\\nexport declare const tomorrowNightBlue: import('@codemirror/state').Extension;\\n```\\n\\n## Usage\\n\\n```jsx\\nimport CodeMirror from '@uiw/react-codemirror';\\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\\nimport { javascript } from '@codemirror/lang-javascript';\\n\\nfunction App() {\\n return (\\n {\\n console.log('value:', value);\\n }}\\n />\\n );\\n}\\nexport default App;\\n```\\n\\n```js\\nimport { EditorView } from '@codemirror/view';\\nimport { EditorState } from '@codemirror/state';\\nimport { javascript } from '@codemirror/lang-javascript';\\nimport { tomorrowNightBlue } from '@uiw/codemirror-theme-tomorrow-night-blue';\\n\\nconst state = EditorState.create({\\n doc: 'my source code',\\n extensions: [tomorrowNightBlue, javascript({ jsx: true })],\\n});\\n\\nconst view = new EditorView({\\n parent: document.querySelector('#editor'),\\n state,\\n});\\n```\\n\\n## Contributors\\n\\nAs always, thanks to our amazing contributors!\\n\\n\\n \\n\\n\\nMade with [github-action-contributors](https://github.com/jaywcjlove/github-action-contributors).\\n\\n## License\\n\\nLicensed under the MIT License.\\n\",\n headings:[],\n headingsList:[],\n }"],"names":["components","data","source","headings","headingsList"],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/9961.bc7bbbdf.chunk.js b/static/js/9961.bc7bbbdf.chunk.js new file mode 100644 index 000000000..f3b753b68 --- /dev/null +++ b/static/js/9961.bc7bbbdf.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9961],{59961:(a,n,e)=>{e.r(n),e.d(n,{default:()=>f});const f=" SELECT ?x ?name\n {\n ?x foaf:mbox .\n ?x foaf:knows ?a1 .\n ?a1 foaf:knows ?a2 .\n ?a2 foaf:name ?name .\n }\n"}}]); +//# sourceMappingURL=9961.bc7bbbdf.chunk.js.map \ No newline at end of file diff --git a/static/js/9961.bc7bbbdf.chunk.js.map b/static/js/9961.bc7bbbdf.chunk.js.map new file mode 100644 index 000000000..9cdd5ee57 --- /dev/null +++ b/static/js/9961.bc7bbbdf.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/9961.bc7bbbdf.chunk.js","mappings":"yHAAA,kK","sources":["../../node_modules/code-example/txt/sample.sparql.txt"],"sourcesContent":["export default \" SELECT ?x ?name\\n {\\n ?x foaf:mbox .\\n ?x foaf:knows ?a1 .\\n ?a1 foaf:knows ?a2 .\\n ?a2 foaf:name ?name .\\n }\\n\";"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/static/js/codemirror-vendor.e72bd391.js b/static/js/codemirror-vendor.e72bd391.js new file mode 100644 index 000000000..d50f404ee --- /dev/null +++ b/static/js/codemirror-vendor.e72bd391.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkwww=self.webpackChunkwww||[]).push([[9940],{19803:(e,t,n)=>{e.exports=n.p+"static/media/index.cbede7bc7b742ef6ce2d.cjs"},55045:(e,t,n)=>{n.d(t,{Ar:()=>c,Bc:()=>ye,Gw:()=>se,OO:()=>$e,_5:()=>a,et:()=>l,wm:()=>fe,yU:()=>Ee});var r=n(8070),i=n(67538),o=n(4859);class a{constructor(e,t,n){this.state=e,this.pos=t,this.explicit=n,this.abortListeners=[]}tokenBefore(e){let t=(0,o.mv)(this.state).resolveInner(this.pos,-1);for(;t&&e.indexOf(t.name)<0;)t=t.parent;return t?{from:t.from,to:this.pos,text:this.state.sliceDoc(t.from,this.pos),type:t.type}:null}matchBefore(e){let t=this.state.doc.lineAt(this.pos),n=Math.max(t.from,this.pos-250),r=t.text.slice(n-t.from,this.pos-t.from),i=r.search(h(e,!1));return i<0?null:{from:n+i,to:this.pos,text:r.slice(i)}}get aborted(){return null==this.abortListeners}addEventListener(e,t){"abort"==e&&this.abortListeners&&this.abortListeners.push(t)}}function s(e){let t=Object.keys(e).join(""),n=/\w/.test(t);return n&&(t=t.replace(/\w/g,"")),"[".concat(n?"\\w":"").concat(t.replace(/[^\w\s]/g,"\\$&"),"]")}function l(e){let t=e.map((e=>"string"==typeof e?{label:e}:e)),[n,r]=t.every((e=>/^\w+$/.test(e.label)))?[/\w*$/,/\w+$/]:function(e){let t=Object.create(null),n=Object.create(null);for(let{label:i}of e){t[i[0]]=!0;for(let e=1;e{let i=e.matchBefore(r);return i||e.explicit?{from:i?i.from:e.pos,options:t,validFor:n}:null}}function c(e,t){return n=>{for(let t=(0,o.mv)(n.state).resolveInner(n.pos,-1);t;t=t.parent){if(e.indexOf(t.name)>-1)return null;if(t.type.isTop)break}return t(n)}}class u{constructor(e,t,n,r){this.completion=e,this.source=t,this.match=n,this.score=r}}function d(e){return e.selection.main.from}function h(e,t){var n;let{source:r}=e,i=t&&"^"!=r[0],o="$"!=r[r.length-1];return i||o?new RegExp("".concat(i?"^":"","(?:").concat(r,")").concat(o?"$":""),null!==(n=e.flags)&&void 0!==n?n:e.ignoreCase?"i":""):e}const f=r.YH.define();const m=new WeakMap;function p(e){if(!Array.isArray(e))return e;let t=m.get(e);return t||m.set(e,t=l(e)),t}const g=r.Pe.define(),b=r.Pe.define();class v{constructor(e){this.pattern=e,this.chars=[],this.folded=[],this.any=[],this.precise=[],this.byWord=[],this.score=0,this.matched=[];for(let t=0;t=48&&i<=57||i>=97&&i<=122?2:i>=65&&i<=90?1:0:(c=(0,r.MK)(i))!=c.toLowerCase()?1:c!=c.toUpperCase()?2:0;(!v||1==y&&g||0==k&&0!=y)&&(t[d]==i||n[d]==i&&(h=!0)?a[d++]=v:a.length&&(b=!1)),k=y,v+=(0,r.Fh)(i)}return d==l&&0==a[0]&&b?this.result((h?-200:0)-100,a,e):f==l&&0==m?this.ret(-200-e.length+(p==e.length?0:-100),[0,p]):s>-1?this.ret(-700-e.length,[s,s+this.pattern.length]):f==l?this.ret(-900-e.length,[m,p]):d==l?this.result((h?-200:0)-100-700+(b?0:-1100),a,e):2==t.length?null:this.result((i[0]?-700:0)-200-1100,i,e)}result(e,t,n){let i=[],o=0;for(let a of t){let e=a+(this.astral?(0,r.Fh)((0,r.vS)(n,a)):1);o&&i[o-1]==a?i[o-1]=e:(i[o++]=a,i[o++]=e)}return this.ret(e-n.length,i)}}class y{constructor(e){this.pattern=e,this.matched=[],this.score=0,this.folded=e.toLowerCase()}match(e){if(e.length(0,r.QR)(e,{activateOnTyping:!0,activateOnCompletion:()=>!1,activateOnTypingDelay:100,selectOnOpen:!0,override:null,closeOnBlur:!0,maxRenderedOptions:100,defaultKeymap:!0,tooltipClass:()=>"",optionClass:()=>"",aboveCursor:!1,icons:!0,addToOptions:[],positionInfo:w,filterStrict:!1,compareCompletions:(e,t)=>e.label.localeCompare(t.label),interactionDelay:75,updateSyncTime:100},{defaultKeymap:(e,t)=>e&&t,closeOnBlur:(e,t)=>e&&t,icons:(e,t)=>e&&t,tooltipClass:(e,t)=>n=>O(e(n),t(n)),optionClass:(e,t)=>n=>O(e(n),t(n)),addToOptions:(e,t)=>e.concat(t),filterStrict:(e,t)=>e||t})});function O(e,t){return e?t?e+" "+t:e:t}function w(e,t,n,r,o,a){let s,l,c=e.textDirection==i.OP.RTL,u=c,d=!1,h="top",f=t.left-o.left,m=o.right-t.right,p=r.right-r.left,g=r.bottom-r.top;if(u&&f=g||e>t.top?s=n.bottom-t.top:(h="bottom",s=t.bottom-n.top)}let b=(t.bottom-t.top)/a.offsetHeight,v=(t.right-t.left)/a.offsetWidth;return{style:"".concat(h,": ").concat(s/b,"px; max-width: ").concat(l/v,"px"),class:"cm-completionInfo-"+(d?c?"left-narrow":"right-narrow":u?"left":"right")}}function x(e,t,n){if(e<=n)return{from:0,to:e};if(t<0&&(t=0),t<=e>>1){let e=Math.floor(t/n);return{from:e*n,to:(e+1)*n}}let r=Math.floor((e-t)/n);return{from:e-(r+1)*n,to:e-r*n}}class S{constructor(e,t,n){this.view=e,this.stateField=t,this.applyCompletion=n,this.info=null,this.infoDestroy=null,this.placeInfoReq={read:()=>this.measureInfo(),write:e=>this.placeInfo(e),key:this},this.space=null,this.currentClass="";let r=e.state.field(t),{options:i,selected:o}=r.open,a=e.state.facet(k);this.optionContent=function(e){let t=e.addToOptions.slice();return e.icons&&t.push({render(e){let t=document.createElement("div");return t.classList.add("cm-completionIcon"),e.type&&t.classList.add(...e.type.split(/\s+/g).map((e=>"cm-completionIcon-"+e))),t.setAttribute("aria-hidden","true"),t},position:20}),t.push({render(e,t,n,r){let i=document.createElement("span");i.className="cm-completionLabel";let o=e.displayLabel||e.label,a=0;for(let s=0;sa&&i.appendChild(document.createTextNode(o.slice(a,e)));let n=i.appendChild(document.createElement("span"));n.appendChild(document.createTextNode(o.slice(e,t))),n.className="cm-completionMatchedText",a=t}return ae.position-t.position)).map((e=>e.render))}(a),this.optionClass=a.optionClass,this.tooltipClass=a.tooltipClass,this.range=x(i.length,o,a.maxRenderedOptions),this.dom=document.createElement("div"),this.dom.className="cm-tooltip-autocomplete",this.updateTooltipClass(e.state),this.dom.addEventListener("mousedown",(n=>{let{options:r}=e.state.field(t).open;for(let t,i=n.target;i&&i!=this.dom;i=i.parentNode)if("LI"==i.nodeName&&(t=/-(\d+)$/.exec(i.id))&&+t[1]{let n=e.state.field(this.stateField,!1);n&&n.tooltip&&e.state.facet(k).closeOnBlur&&t.relatedTarget!=e.contentDOM&&e.dispatch({effects:b.of(null)})})),this.showOptions(i,r.id)}mount(){this.updateSel()}showOptions(e,t){this.list&&this.list.remove(),this.list=this.dom.appendChild(this.createListBox(e,t,this.range)),this.list.addEventListener("scroll",(()=>{this.info&&this.view.requestMeasure(this.placeInfoReq)}))}update(e){var t;let n=e.state.field(this.stateField),r=e.startState.field(this.stateField);if(this.updateTooltipClass(e.state),n!=r){let{options:i,selected:o,disabled:a}=n.open;r.open&&r.open.options==i||(this.range=x(i.length,o,e.state.facet(k).maxRenderedOptions),this.showOptions(i,n.id)),this.updateSel(),a!=(null===(t=r.open)||void 0===t?void 0:t.disabled)&&this.dom.classList.toggle("cm-tooltip-autocomplete-disabled",!!a)}}updateTooltipClass(e){let t=this.tooltipClass(e);if(t!=this.currentClass){for(let e of this.currentClass.split(" "))e&&this.dom.classList.remove(e);for(let e of t.split(" "))e&&this.dom.classList.add(e);this.currentClass=t}}positioned(e){this.space=e,this.info&&this.view.requestMeasure(this.placeInfoReq)}updateSel(){let e=this.view.state.field(this.stateField),t=e.open;if((t.selected>-1&&t.selected=this.range.to)&&(this.range=x(t.options.length,t.selected,this.view.state.facet(k).maxRenderedOptions),this.showOptions(t.options,e.id)),this.updateSelectedOption(t.selected)){this.destroyInfo();let{completion:n}=t.options[t.selected],{info:r}=n;if(!r)return;let o="string"===typeof r?document.createTextNode(r):r(n);if(!o)return;"then"in o?o.then((t=>{t&&this.view.state.field(this.stateField,!1)==e&&this.addInfoPane(t,n)})).catch((e=>(0,i.c_)(this.view.state,e,"completion info"))):this.addInfoPane(o,n)}}addInfoPane(e,t){this.destroyInfo();let n=this.info=document.createElement("div");if(n.className="cm-tooltip cm-completionInfo",null!=e.nodeType)n.appendChild(e),this.infoDestroy=null;else{let{dom:t,destroy:r}=e;n.appendChild(t),this.infoDestroy=r||null}this.dom.appendChild(n),this.view.requestMeasure(this.placeInfoReq)}updateSelectedOption(e){let t=null;for(let n=this.list.firstChild,r=this.range.from;n;n=n.nextSibling,r++)"LI"==n.nodeName&&n.id?r==e?n.hasAttribute("aria-selected")||(n.setAttribute("aria-selected","true"),t=n):n.hasAttribute("aria-selected")&&n.removeAttribute("aria-selected"):r--;return t&&function(e,t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),i=n.height/e.offsetHeight;r.topn.bottom&&(e.scrollTop+=(r.bottom-n.bottom)/i)}(this.list,t),t}measureInfo(){let e=this.dom.querySelector("[aria-selected]");if(!e||!this.info)return null;let t=this.dom.getBoundingClientRect(),n=this.info.getBoundingClientRect(),r=e.getBoundingClientRect(),i=this.space;if(!i){let e=this.dom.ownerDocument.defaultView||window;i={left:0,top:0,right:e.innerWidth,bottom:e.innerHeight}}return r.top>Math.min(i.bottom,t.bottom)-10||r.bottomn.from||0==n.from))if(i=e,"string"!=typeof l&&l.header)r.appendChild(l.header(l));else{r.appendChild(document.createElement("completion-section")).textContent=e}}const c=r.appendChild(document.createElement("li"));c.id=t+"-"+o,c.setAttribute("role","option");let u=this.optionClass(a);u&&(c.className=u);for(let e of this.optionContent){let t=e(a,this.view.state,this.view,s);t&&c.appendChild(t)}}return n.from&&r.classList.add("cm-completionListIncompleteTop"),n.tonew S(n,e,t)}function T(e){return 100*(e.boost||0)+(e.apply?10:0)+(e.info?5:0)+(e.type?1:0)}class E{constructor(e,t,n,r,i,o){this.options=e,this.attrs=t,this.tooltip=n,this.timestamp=r,this.selected=i,this.disabled=o}setSelected(e,t){return e==this.selected||e>=this.options.length?this:new E(this.options,C(t,e),this.tooltip,this.timestamp,e,this.disabled)}static build(e,t,n,r,i){let o=function(e,t){let n=[],r=null,i=e=>{n.push(e);let{section:t}=e.completion;if(t){r||(r=[]);let e="string"==typeof t?t:t.name;r.some((t=>t.name==e))||r.push("string"==typeof t?{name:e}:t)}},o=t.facet(k);for(let c of e)if(c.hasResult()){let e=c.result.getMatch;if(!1===c.result.filter)for(let t of c.result.options)i(new u(t,c.source,e?e(t):[],1e9-n.length));else{let n,r=t.sliceDoc(c.from,c.to),a=o.filterStrict?new y(r):new v(r);for(let t of c.result.options)if(n=a.match(t.label)){let r=t.displayLabel?e?e(t,n.matched):[]:n.matched;i(new u(t,c.source,r,n.score+(t.boost||0)))}}}if(r){let e=Object.create(null),t=0,i=(e,t)=>{var n,r;return(null!==(n=e.rank)&&void 0!==n?n:1e9)-(null!==(r=t.rank)&&void 0!==r?r:1e9)||(e.namet.score-e.score||l(e.completion,t.completion)))){let e=c.completion;!s||s.label!=e.label||s.detail!=e.detail||null!=s.type&&null!=e.type&&s.type!=e.type||s.apply!=e.apply||s.boost!=e.boost?a.push(c):T(c.completion)>T(s)&&(a[a.length-1]=c),s=c.completion}return a}(e,t);if(!o.length)return r&&e.some((e=>1==e.state))?new E(r.options,r.attrs,r.tooltip,r.timestamp,r.selected,!0):null;let a=t.facet(k).selectOnOpen?0:-1;if(r&&r.selected!=a&&-1!=r.selected){let e=r.options[r.selected].completion;for(let t=0;tt.hasResult()?Math.min(e,t.from):e),1e8),create:Q,above:i.aboveCursor},r?r.timestamp:Date.now(),a,!1)}map(e){return new E(this.options,this.attrs,Object.assign(Object.assign({},this.tooltip),{pos:e.mapPos(this.tooltip.pos)}),this.timestamp,this.selected,this.disabled)}}class ${constructor(e,t,n){this.active=e,this.id=t,this.open=n}static start(){return new $(P,"cm-ac-"+Math.floor(2e6*Math.random()).toString(36),null)}update(e){let{state:t}=e,n=t.facet(k),r=(n.override||t.languageDataAt("autocomplete",d(t)).map(p)).map((t=>(this.active.find((e=>e.source==t))||new I(t,this.active.some((e=>0!=e.state))?1:0)).update(e,n)));r.length==this.active.length&&r.every(((e,t)=>e==this.active[t]))&&(r=this.active);let i=this.open;i&&e.docChanged&&(i=i.map(e.changes)),e.selection||r.some((t=>t.hasResult()&&e.changes.touchesRange(t.from,t.to)))||!function(e,t){if(e==t)return!0;for(let n=0,r=0;;){for(;n1==e.state))&&(i=null),!i&&r.every((e=>1!=e.state))&&r.some((e=>e.hasResult()))&&(r=r.map((e=>e.hasResult()?new I(e.source,0):e)));for(let o of e.effects)o.is(N)&&(i=i&&i.setSelected(o.value,this.id));return r==this.active&&i==this.open?this:new $(r,this.id,i)}get tooltip(){return this.open?this.open.tooltip:null}get attrs(){return this.open?this.open.attrs:A}}const A={"aria-autocomplete":"list"};function C(e,t){let n={"aria-autocomplete":"list","aria-haspopup":"listbox","aria-controls":e};return t>-1&&(n["aria-activedescendant"]=e+"-"+t),n}const P=[];function R(e,t){if(e.isUserEvent("input.complete")){let n=e.annotation(f);if(n&&t.activateOnCompletion(n))return"input"}return e.isUserEvent("input.type")?"input":e.isUserEvent("delete.backward")?"delete":null}class I{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1;this.source=e,this.state=t,this.explicitPos=n}hasResult(){return!1}update(e,t){let n=R(e,t),r=this;n?r=r.handleUserEvent(e,n,t):e.docChanged?r=r.handleChange(e):e.selection&&0!=r.state&&(r=new I(r.source,0));for(let i of e.effects)if(i.is(g))r=new I(r.source,1,i.value?d(e.state):-1);else if(i.is(b))r=new I(r.source,0);else if(i.is(z))for(let e of i.value)e.source==r.source&&(r=e);return r}handleUserEvent(e,t,n){return"delete"!=t&&n.activateOnTyping?new I(this.source,1):this.map(e.changes)}handleChange(e){return e.changes.touchesRange(d(e.startState))?new I(this.source,0):this.map(e.changes)}map(e){return e.empty||this.explicitPos<0?this:new I(this.source,this.state,e.mapPos(this.explicitPos))}}class D extends I{constructor(e,t,n,r,i){super(e,2,t),this.result=n,this.from=r,this.to=i}hasResult(){return!0}handleUserEvent(e,t,n){var r;let i=this.result;i.map&&!e.changes.empty&&(i=i.map(i,e.changes));let o=e.changes.mapPos(this.from),s=e.changes.mapPos(this.to,1),l=d(e.state);if((this.explicitPos<0?l<=o:ls||!i||"delete"==t&&d(e.startState)==this.from)return new I(this.source,"input"==t&&n.activateOnTyping?1:0);let c=this.explicitPos<0?-1:e.changes.mapPos(this.explicitPos);return function(e,t,n,r){if(!e)return!1;let i=t.sliceDoc(n,r);return"function"==typeof e?e(i,n,r,t):h(e,!0).test(i)}(i.validFor,e.state,o,s)?new D(this.source,c,i,o,s):i.update&&(i=i.update(i,o,s,new a(e.state,l,c>=0)))?new D(this.source,c,i,i.from,null!==(r=i.to)&&void 0!==r?r:d(e.state)):new I(this.source,1,c)}handleChange(e){return e.changes.touchesRange(this.from,this.to)?new I(this.source,0):this.map(e.changes)}map(e){if(e.empty)return this;return(this.result.map?this.result.map(this.result,e):this.result)?new D(this.source,this.explicitPos<0?-1:e.mapPos(this.explicitPos),this.result,e.mapPos(this.from),e.mapPos(this.to,1)):new I(this.source,0)}}const z=r.Pe.define({map:(e,t)=>e.map((e=>e.map(t)))}),N=r.Pe.define(),L=r.sU.define({create:()=>$.start(),update:(e,t)=>e.update(t),provide:e=>[i.DK.from(e,(e=>e.tooltip)),i.Lz.contentAttributes.from(e,(e=>e.attrs))]});function M(e,t){const n=t.completion.apply||t.completion.label;let i=e.state.field(L).active.find((e=>e.source==t.source));return i instanceof D&&("string"==typeof n?e.dispatch(Object.assign(Object.assign({},function(e,t,n,i){let{main:o}=e.selection,a=n-o.from,s=i-o.from;return Object.assign(Object.assign({},e.changeByRange((l=>l!=o&&n!=i&&e.sliceDoc(l.from+a,l.from+s)!=e.sliceDoc(n,i)?{range:l}:{changes:{from:l.from+a,to:i==o.from?l.to:l.from+s,insert:t},range:r.OF.cursor(l.from+a+t.length)}))),{scrollIntoView:!0,userEvent:"input.complete"})}(e.state,n,i.from,i.to)),{annotations:f.of(t.completion)})):n(e,t.completion,i.from,i.to),!0)}const Q=_(L,M);function q(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"option";return n=>{let r=n.state.field(L,!1);if(!r||!r.open||r.open.disabled||Date.now()-r.open.timestamp-1?r.open.selected+a*(e?1:-1):e?0:s-1;return l<0?l="page"==t?0:s-1:l>=s&&(l="page"==t?s-1:0),n.dispatch({effects:N.of(l)}),!0}}class W{constructor(e,t){this.active=e,this.context=t,this.time=Date.now(),this.updates=[],this.done=void 0}}const B=i.Z9.fromClass(class{constructor(e){this.view=e,this.debounceUpdate=-1,this.running=[],this.debounceAccept=-1,this.pendingStart=!1,this.composing=0;for(let t of e.state.field(L).active)1==t.state&&this.startQuery(t)}update(e){let t=e.state.field(L),n=e.state.facet(k);if(!e.selectionSet&&!e.docChanged&&e.startState.field(L)==t)return;let r=e.transactions.some((e=>(e.selection||e.docChanged)&&!R(e,n)));for(let s=0;s50&&Date.now()-t.time>1e3){for(let e of t.context.abortListeners)try{e()}catch(a){(0,i.c_)(this.view.state,a)}t.context.abortListeners=null,this.running.splice(s--,1)}else t.updates.push(...e.transactions)}this.debounceUpdate>-1&&clearTimeout(this.debounceUpdate),e.transactions.some((e=>e.effects.some((e=>e.is(g)))))&&(this.pendingStart=!0);let o=this.pendingStart?50:n.activateOnTypingDelay;if(this.debounceUpdate=t.active.some((e=>1==e.state&&!this.running.some((t=>t.active.source==e.source))))?setTimeout((()=>this.startUpdate()),o):-1,0!=this.composing)for(let i of e.transactions)"input"==R(i,n)?this.composing=2:2==this.composing&&i.selection&&(this.composing=3)}startUpdate(){this.debounceUpdate=-1,this.pendingStart=!1;let{state:e}=this.view,t=e.field(L);for(let n of t.active)1!=n.state||this.running.some((e=>e.active.source==n.source))||this.startQuery(n)}startQuery(e){let{state:t}=this.view,n=d(t),r=new a(t,n,e.explicitPos==n),o=new W(e,r);this.running.push(o),Promise.resolve(e.source(r)).then((e=>{o.context.aborted||(o.done=e||null,this.scheduleAccept())}),(e=>{this.view.dispatch({effects:b.of(null)}),(0,i.c_)(this.view.state,e)}))}scheduleAccept(){this.running.every((e=>void 0!==e.done))?this.accept():this.debounceAccept<0&&(this.debounceAccept=setTimeout((()=>this.accept()),this.view.state.facet(k).updateSyncTime))}accept(){var e;this.debounceAccept>-1&&clearTimeout(this.debounceAccept),this.debounceAccept=-1;let t=[],n=this.view.state.facet(k);for(let r=0;re.source==i.active.source));if(o&&1==o.state)if(null==i.done){let e=new I(i.active.source,0);for(let t of i.updates)e=e.update(t,n);1!=e.state&&t.push(e)}else this.startQuery(o)}t.length&&this.view.dispatch({effects:z.of(t)})}},{eventHandlers:{blur(e){let t=this.view.state.field(L,!1);if(t&&t.tooltip&&this.view.state.facet(k).closeOnBlur){let n=t.open&&(0,i.Eg)(this.view,t.open.tooltip);n&&n.dom.contains(e.relatedTarget)||setTimeout((()=>this.view.dispatch({effects:b.of(null)})),10)}},compositionstart(){this.composing=1},compositionend(){3==this.composing&&setTimeout((()=>this.view.dispatch({effects:g.of(!1)})),20),this.composing=0}}}),F="object"==typeof navigator&&/Win/.test(navigator.platform),U=r.Nb.highest(i.Lz.domEventHandlers({keydown(e,t){let n=t.state.field(L,!1);if(!n||!n.open||n.open.disabled||n.open.selected<0||e.key.length>1||e.ctrlKey&&(!F||!e.altKey)||e.metaKey)return!1;let r=n.open.options[n.open.selected],i=n.active.find((e=>e.source==r.source)),o=r.completion.commitCharacters||i.result.commitCharacters;return o&&o.indexOf(e.key)>-1&&M(t,r),!1}})),j=i.Lz.baseTheme({".cm-tooltip.cm-tooltip-autocomplete":{"& > ul":{fontFamily:"monospace",whiteSpace:"nowrap",overflow:"hidden auto",maxWidth_fallback:"700px",maxWidth:"min(700px, 95vw)",minWidth:"250px",maxHeight:"10em",height:"100%",listStyle:"none",margin:0,padding:0,"& > li, & > completion-section":{padding:"1px 3px",lineHeight:1.2},"& > li":{overflowX:"hidden",textOverflow:"ellipsis",cursor:"pointer"},"& > completion-section":{display:"list-item",borderBottom:"1px solid silver",paddingLeft:"0.5em",opacity:.7}}},"&light .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#17c",color:"white"},"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#777"},"&dark .cm-tooltip-autocomplete ul li[aria-selected]":{background:"#347",color:"white"},"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]":{background:"#444"},".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after":{content:'"\xb7\xb7\xb7"',opacity:.5,display:"block",textAlign:"center"},".cm-tooltip.cm-completionInfo":{position:"absolute",padding:"3px 9px",width:"max-content",maxWidth:"".concat(400,"px"),boxSizing:"border-box"},".cm-completionInfo.cm-completionInfo-left":{right:"100%"},".cm-completionInfo.cm-completionInfo-right":{left:"100%"},".cm-completionInfo.cm-completionInfo-left-narrow":{right:"".concat(30,"px")},".cm-completionInfo.cm-completionInfo-right-narrow":{left:"".concat(30,"px")},"&light .cm-snippetField":{backgroundColor:"#00000022"},"&dark .cm-snippetField":{backgroundColor:"#ffffff22"},".cm-snippetFieldPosition":{verticalAlign:"text-top",width:0,height:"1.15em",display:"inline-block",margin:"0 -0.7px -.7em",borderLeft:"1.4px dotted #888"},".cm-completionMatchedText":{textDecoration:"underline"},".cm-completionDetail":{marginLeft:"0.5em",fontStyle:"italic"},".cm-completionIcon":{fontSize:"90%",width:".8em",display:"inline-block",textAlign:"center",paddingRight:".6em",opacity:"0.6",boxSizing:"content-box"},".cm-completionIcon-function, .cm-completionIcon-method":{"&:after":{content:"'\u0192'"}},".cm-completionIcon-class":{"&:after":{content:"'\u25cb'"}},".cm-completionIcon-interface":{"&:after":{content:"'\u25cc'"}},".cm-completionIcon-variable":{"&:after":{content:"'\ud835\udc65'"}},".cm-completionIcon-constant":{"&:after":{content:"'\ud835\udc36'"}},".cm-completionIcon-type":{"&:after":{content:"'\ud835\udc61'"}},".cm-completionIcon-enum":{"&:after":{content:"'\u222a'"}},".cm-completionIcon-property":{"&:after":{content:"'\u25a1'"}},".cm-completionIcon-keyword":{"&:after":{content:"'\ud83d\udd11\ufe0e'"}},".cm-completionIcon-namespace":{"&:after":{content:"'\u25a2'"}},".cm-completionIcon-text":{"&:after":{content:"'abc'",fontSize:"50%",verticalAlign:"middle"}}});class V{constructor(e,t,n,r){this.field=e,this.line=t,this.from=n,this.to=r}}class G{constructor(e,t,n){this.field=e,this.from=t,this.to=n}map(e){let t=e.mapPos(this.from,-1,r.iR.TrackDel),n=e.mapPos(this.to,1,r.iR.TrackDel);return null==t||null==n?null:new G(this.field,t,n)}}class X{constructor(e,t){this.lines=e,this.fieldPositions=t}instantiate(e,t){let n=[],r=[t],i=e.doc.lineAt(t),a=/^\s*/.exec(i.text)[0];for(let l of this.lines){if(n.length){let n=a,i=/^\t*/.exec(l)[0].length;for(let t=0;tnew G(e.field,r[e.line]+e.from,r[e.line]+e.to)));return{text:n,ranges:s}}static parse(e){let t,n=[],r=[],i=[];for(let o of e.split(/\r\n?|\n/)){for(;t=/[#$]\{(?:(\d+)(?::([^}]*))?|([^}]*))\}/.exec(o);){let e=t[1]?+t[1]:null,a=t[2]||t[3]||"",s=-1;for(let t=0;t=s&&e.field++}i.push(new V(s,r.length,t.index,t.index+a.length)),o=o.slice(0,t.index)+a+o.slice(t.index+t[0].length)}for(let e;e=/\\([{}])/.exec(o);){o=o.slice(0,e.index)+e[1]+o.slice(e.index+e[0].length);for(let t of i)t.line==r.length&&t.from>e.index&&(t.from--,t.to--)}r.push(o)}return new X(r,i)}}let Y=i.NZ.widget({widget:new class extends i.xO{toDOM(){let e=document.createElement("span");return e.className="cm-snippetFieldPosition",e}ignoreEvent(){return!1}}}),Z=i.NZ.mark({class:"cm-snippetField"});class H{constructor(e,t){this.ranges=e,this.active=t,this.deco=i.NZ.set(e.map((e=>(e.from==e.to?Y:Z).range(e.from,e.to))))}map(e){let t=[];for(let n of this.ranges){let r=n.map(e);if(!r)return null;t.push(r)}return new H(t,this.active)}selectionInsideField(e){return e.ranges.every((e=>this.ranges.some((t=>t.field==this.active&&t.from<=e.from&&t.to>=e.to))))}}const K=r.Pe.define({map:(e,t)=>e&&e.map(t)}),J=r.Pe.define(),ee=r.sU.define({create:()=>null,update(e,t){for(let n of t.effects){if(n.is(K))return n.value;if(n.is(J)&&e)return new H(e.ranges,n.value)}return e&&t.docChanged&&(e=e.map(t.changes)),e&&t.selection&&!e.selectionInsideField(t.selection)&&(e=null),e},provide:e=>i.Lz.decorations.from(e,(e=>e?e.deco:i.NZ.none))});function te(e,t){return r.OF.create(e.filter((e=>e.field==t)).map((e=>r.OF.range(e.from,e.to))))}function ne(e){let t=X.parse(e);return(e,n,i,o)=>{let{text:a,ranges:s}=t.instantiate(e.state,i),l={changes:{from:i,to:o,insert:r.EY.of(a)},scrollIntoView:!0,annotations:n?[f.of(n),r.ZX.userEvent.of("input.complete")]:void 0};if(s.length&&(l.selection=te(s,0)),s.some((e=>e.field>0))){let t=new H(s,0),n=l.effects=[K.of(t)];void 0===e.state.field(ee,!1)&&n.push(r.Pe.appendConfig.of([ee,ae,le,j]))}e.dispatch(e.state.update(l))}}function re(e){return t=>{let{state:n,dispatch:r}=t,i=n.field(ee,!1);if(!i||e<0&&0==i.active)return!1;let o=i.active+e,a=e>0&&!i.ranges.some((t=>t.field==o+e));return r(n.update({selection:te(i.ranges,o),effects:K.of(a?null:new H(i.ranges,o)),scrollIntoView:!0})),!0}}const ie=[{key:"Tab",run:re(1),shift:re(-1)},{key:"Escape",run:e=>{let{state:t,dispatch:n}=e;return!!t.field(ee,!1)&&(n(t.update({effects:K.of(null)})),!0)}}],oe=r.sj.define({combine:e=>e.length?e[0]:ie}),ae=r.Nb.highest(i.w4.compute([oe],(e=>e.facet(oe))));function se(e,t){return Object.assign(Object.assign({},t),{apply:ne(e)})}const le=i.Lz.domEventHandlers({mousedown(e,t){let n,r=t.state.field(ee,!1);if(!r||null==(n=t.posAtCoords({x:e.clientX,y:e.clientY})))return!1;let i=r.ranges.find((e=>e.from<=n&&e.to>=n));return!(!i||i.field==r.active)&&(t.dispatch({selection:te(r.ranges,i.field),effects:K.of(r.ranges.some((e=>e.field>i.field))?new H(r.ranges,i.field):null),scrollIntoView:!0}),!0)}});const ce={brackets:["(","[","{","'",'"'],before:")]}:;>",stringPrefixes:[]},ue=r.Pe.define({map(e,t){let n=t.mapPos(e,-1,r.iR.TrackAfter);return null==n?void 0:n}}),de=new class extends r.FB{};de.startSide=1,de.endSide=-1;const he=r.sU.define({create:()=>r.om.empty,update(e,t){if(e=e.map(t.changes),t.selection){let n=t.state.doc.lineAt(t.selection.main.head);e=e.update({filter:e=>e>=n.from&&e<=n.to})}for(let n of t.effects)n.is(ue)&&(e=e.update({add:[de.range(n.value,n.value+1)]}));return e}});function fe(){return[ve,he]}const me="()[]{}<>";function pe(e){for(let t=0;t{if((be?e.composing:e.compositionStarted)||e.state.readOnly)return!1;let o=e.state.selection.main;if(i.length>2||2==i.length&&1==(0,r.Fh)((0,r.vS)(i,0))||t!=o.from||n!=o.to)return!1;let a=function(e,t){let n=ge(e,e.selection.main.head),i=n.brackets||ce.brackets;for(let o of i){let a=pe((0,r.vS)(o,0));if(t==o)return a==o?Se(e,o,i.indexOf(o+o+o)>-1,n):we(e,o,a,n.before||ce.before);if(t==a&&ke(e,e.selection.main.from))return xe(e,o,a)}return null}(e.state,i);return!!a&&(e.dispatch(a),!0)})),ye=[{key:"Backspace",run:e=>{let{state:t,dispatch:n}=e;if(t.readOnly)return!1;let i=ge(t,t.selection.main.head).brackets||ce.brackets,o=null,a=t.changeByRange((e=>{if(e.empty){let n=function(e,t){let n=e.sliceString(t-2,t);return(0,r.Fh)((0,r.vS)(n,0))==n.length?n:n.slice(1)}(t.doc,e.head);for(let o of i)if(o==n&&Oe(t.doc,e.head)==pe((0,r.vS)(o,0)))return{changes:{from:e.head-o.length,to:e.head+o.length},range:r.OF.cursor(e.head-o.length)}}return{range:o=e}}));return o||n(t.update(a,{scrollIntoView:!0,userEvent:"delete.backward"})),!o}}];function ke(e,t){let n=!1;return e.field(he).between(0,e.doc.length,(e=>{e==t&&(n=!0)})),n}function Oe(e,t){let n=e.sliceString(t,t+2);return n.slice(0,(0,r.Fh)((0,r.vS)(n,0)))}function we(e,t,n,i){let o=null,a=e.changeByRange((a=>{if(!a.empty)return{changes:[{insert:t,from:a.from},{insert:n,from:a.to}],effects:ue.of(a.to+t.length),range:r.OF.range(a.anchor+t.length,a.head+t.length)};let s=Oe(e.doc,a.head);return!s||/\s/.test(s)||i.indexOf(s)>-1?{changes:{insert:t+n,from:a.head},effects:ue.of(a.head+t.length),range:r.OF.cursor(a.head+t.length)}:{range:o=a}}));return o?null:e.update(a,{scrollIntoView:!0,userEvent:"input.type"})}function xe(e,t,n){let i=null,o=e.changeByRange((t=>t.empty&&Oe(e.doc,t.head)==n?{changes:{from:t.head,to:t.head+n.length,insert:n},range:r.OF.cursor(t.head+n.length)}:i={range:t}));return i?null:e.update(o,{scrollIntoView:!0,userEvent:"input.type"})}function Se(e,t,n,i){let a=i.stringPrefixes||ce.stringPrefixes,s=null,l=e.changeByRange((i=>{if(!i.empty)return{changes:[{insert:t,from:i.from},{insert:t,from:i.to}],effects:ue.of(i.to+t.length),range:r.OF.range(i.anchor+t.length,i.head+t.length)};let l,c=i.head,u=Oe(e.doc,c);if(u==t){if(_e(e,c))return{changes:{insert:t+t,from:c},effects:ue.of(c+t.length),range:r.OF.cursor(c+t.length)};if(ke(e,c)){let i=n&&e.sliceDoc(c,c+3*t.length)==t+t+t?t+t+t:t;return{changes:{from:c,to:c+i.length,insert:i},range:r.OF.cursor(c+i.length)}}}else{if(n&&e.sliceDoc(c-2*t.length,c)==t+t&&(l=Te(e,c-2*t.length,a))>-1&&_e(e,l))return{changes:{insert:t+t+t+t,from:c},effects:ue.of(c+t.length),range:r.OF.cursor(c+t.length)};if(e.charCategorizer(c)(u)!=r.Je.Word&&Te(e,c,a)>-1&&!function(e,t,n,r){let i=(0,o.mv)(e).resolveInner(t,-1),a=r.reduce(((e,t)=>Math.max(e,t.length)),0);for(let o=0;o<5;o++){let o=e.sliceDoc(i.from,Math.min(i.to,i.from+n.length+a)),s=o.indexOf(n);if(!s||s>-1&&r.indexOf(o.slice(0,s))>-1){let t=i.firstChild;for(;t&&t.from==i.from&&t.to-t.from>n.length+s;){if(e.sliceDoc(t.to-n.length,t.to)==n)return!1;t=t.firstChild}return!0}let l=i.to==t&&i.parent;if(!l)break;i=l}return!1}(e,c,t,a))return{changes:{insert:t+t,from:c},effects:ue.of(c+t.length),range:r.OF.cursor(c+t.length)}}return{range:s=i}}));return s?null:e.update(l,{scrollIntoView:!0,userEvent:"input.type"})}function _e(e,t){let n=(0,o.mv)(e).resolveInner(t+1);return n.parent&&n.from==t}function Te(e,t,n){let i=e.charCategorizer(t);if(i(e.sliceDoc(t-1,t))!=r.Je.Word)return t;for(let o of n){let n=t-o.length;if(e.sliceDoc(n,t)==o&&i(e.sliceDoc(n-1,n))!=r.Je.Word)return n}return-1}function Ee(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[U,L,k.of(e),B,Ae,j]}const $e=[{key:"Ctrl-Space",run:e=>!!e.state.field(L,!1)&&(e.dispatch({effects:g.of(!0)}),!0)},{key:"Escape",run:e=>{let t=e.state.field(L,!1);return!(!t||!t.active.some((e=>0!=e.state)))&&(e.dispatch({effects:b.of(null)}),!0)}},{key:"ArrowDown",run:q(!0)},{key:"ArrowUp",run:q(!1)},{key:"PageDown",run:q(!0,"page")},{key:"PageUp",run:q(!1,"page")},{key:"Enter",run:e=>{let t=e.state.field(L,!1);return!(e.state.readOnly||!t||!t.open||t.open.selected<0||t.open.disabled||Date.now()-t.open.timestampe.facet(k).defaultKeymap?[$e]:[])))},29551:(e,t,n)=>{n.d(t,{Yc:()=>ze,b6:()=>k,cL:()=>L,pw:()=>De});var r=n(8070),i=n(67538),o=n(4859),a=n(24450);function s(e,t){return n=>{let{state:r,dispatch:i}=n;if(r.readOnly)return!1;let o=e(t,r);return!!o&&(i(r.update(o)),!0)}}const l=s(m,0),c=s(f,0),u=s(((e,t)=>f(e,t,function(e){let t=[];for(let n of e.selection.ranges){let r=e.doc.lineAt(n.from),i=n.to<=r.to?r:e.doc.lineAt(n.to),o=t.length-1;o>=0&&t[o].to>r.from?t[o].to=i.to:t.push({from:r.from+/^\s*/.exec(r.text)[0].length,to:i.to})}return t}(t))),0);function d(e,t){let n=e.languageDataAt("commentTokens",t);return n.length?n[0]:{}}const h=50;function f(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:t.selection.ranges,r=n.map((e=>d(t,e.from).block));if(!r.every((e=>e)))return null;let i=n.map(((e,n)=>function(e,t,n,r){let i,o,{open:a,close:s}=t,l=e.sliceDoc(n-h,n),c=e.sliceDoc(r,r+h),u=/\s*$/.exec(l)[0].length,d=/^\s*/.exec(c)[0].length,f=l.length-u;if(l.slice(f-a.length,f)==a&&c.slice(d,d+s.length)==s)return{open:{pos:n-u,margin:u&&1},close:{pos:r+d,margin:d&&1}};r-n<=2*h?i=o=e.sliceDoc(n,r):(i=e.sliceDoc(n,n+h),o=e.sliceDoc(r-h,r));let m=/^\s*/.exec(i)[0].length,p=/\s*$/.exec(o)[0].length,g=o.length-p-s.length;return i.slice(m,m+a.length)==a&&o.slice(g,g+s.length)==s?{open:{pos:n+m+a.length,margin:/\s/.test(i.charAt(m+a.length))?1:0},close:{pos:r-p-s.length,margin:/\s/.test(o.charAt(g-1))?1:0}}:null}(t,r[n],e.from,e.to)));if(2!=e&&!i.every((e=>e)))return{changes:t.changes(n.map(((e,t)=>i[t]?[]:[{from:e.from,insert:r[t].open+" "},{from:e.to,insert:" "+r[t].close}])))};if(1!=e&&i.some((e=>e))){let e=[];for(let t,n=0;n2&&void 0!==arguments[2]?arguments[2]:t.selection.ranges,r=[],i=-1;for(let{from:o,to:a}of n){let e=r.length,n=1e9,s=d(t,o).line;if(s){for(let e=o;e<=a;){let l=t.doc.lineAt(e);if(l.from>i&&(o==a||a>l.from)){i=l.from;let e=/^\s*/.exec(l.text)[0].length,t=e==l.length,o=l.text.slice(e,e+s.length)==s?e:-1;ee.comment<0&&(!e.empty||e.single)))){let e=[];for(let{line:t,token:i,indent:o,empty:a,single:s}of r)!s&&a||e.push({from:t.from+o,insert:i+" "});let n=t.changes(e);return{changes:n,selection:t.selection.map(n,1)}}if(1!=e&&r.some((e=>e.comment>=0))){let e=[];for(let{line:t,comment:n,token:i}of r)if(n>=0){let r=t.from+n,o=r+i.length;" "==t.text[o-t.from]&&o++,e.push({from:r,to:o})}return{changes:e}}return null}const p=r.YH.define(),g=r.YH.define(),b=r.sj.define(),v=r.sj.define({combine:e=>(0,r.QR)(e,{minDepth:100,newGroupDelay:500,joinToEvent:(e,t)=>t},{minDepth:Math.max,newGroupDelay:Math.min,joinToEvent:(e,t)=>(n,r)=>e(n,r)||t(n,r)})}),y=r.sU.define({create:()=>N.empty,update(e,t){let n=t.state.facet(v),i=t.annotation(p);if(i){let r=T.fromTransaction(t,i.selection),o=i.side,a=0==o?e.undone:e.done;return a=r?E(a,a.length,n.minDepth,r):P(a,t.startState.selection),new N(0==o?i.rest:a,0==o?a:i.rest)}let o=t.annotation(g);if("full"!=o&&"before"!=o||(e=e.isolate()),!1===t.annotation(r.ZX.addToHistory))return t.changes.empty?e:e.addMapping(t.changes.desc);let a=T.fromTransaction(t),s=t.annotation(r.ZX.time),l=t.annotation(r.ZX.userEvent);return a?e=e.addChanges(a,s,l,n,t):t.selection&&(e=e.addSelection(t.startState.selection,s,l,n.newGroupDelay)),"full"!=o&&"after"!=o||(e=e.isolate()),e},toJSON:e=>({done:e.done.map((e=>e.toJSON())),undone:e.undone.map((e=>e.toJSON()))}),fromJSON:e=>new N(e.done.map(T.fromJSON),e.undone.map(T.fromJSON))});function k(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[y,v.of(e),i.Lz.domEventHandlers({beforeinput(e,t){let n="historyUndo"==e.inputType?w:"historyRedo"==e.inputType?x:null;return!!n&&(e.preventDefault(),n(t))}})]}function O(e,t){return function(n){let{state:r,dispatch:i}=n;if(!t&&r.readOnly)return!1;let o=r.field(y,!1);if(!o)return!1;let a=o.pop(e,r,t);return!!a&&(i(a),!0)}}const w=O(0,!1),x=O(1,!1),S=O(0,!0),_=O(1,!0);class T{constructor(e,t,n,r,i){this.changes=e,this.effects=t,this.mapped=n,this.startSelection=r,this.selectionsAfter=i}setSelAfter(e){return new T(this.changes,this.effects,this.mapped,this.startSelection,e)}toJSON(){var e,t,n;return{changes:null===(e=this.changes)||void 0===e?void 0:e.toJSON(),mapped:null===(t=this.mapped)||void 0===t?void 0:t.toJSON(),startSelection:null===(n=this.startSelection)||void 0===n?void 0:n.toJSON(),selectionsAfter:this.selectionsAfter.map((e=>e.toJSON()))}}static fromJSON(e){return new T(e.changes&&r.VR.fromJSON(e.changes),[],e.mapped&&r.Gu.fromJSON(e.mapped),e.startSelection&&r.OF.fromJSON(e.startSelection),e.selectionsAfter.map(r.OF.fromJSON))}static fromTransaction(e,t){let n=A;for(let r of e.startState.facet(b)){let t=r(e);t.length&&(n=n.concat(t))}return!n.length&&e.changes.empty?null:new T(e.changes.invert(e.startState.doc),n,void 0,t||e.startState.selection,A)}static selection(e){return new T(void 0,A,void 0,void 0,e)}}function E(e,t,n,r){let i=t+1>n+20?t-n-1:0,o=e.slice(i,t);return o.push(r),o}function $(e,t){return e.length?t.length?e.concat(t):e:t}const A=[],C=200;function P(e,t){if(e.length){let n=e[e.length-1],r=n.selectionsAfter.slice(Math.max(0,n.selectionsAfter.length-C));return r.length&&r[r.length-1].eq(t)?e:(r.push(t),E(e,e.length-1,1e9,n.setSelAfter(r)))}return[T.selection([t])]}function R(e){let t=e[e.length-1],n=e.slice();return n[e.length-1]=t.setSelAfter(t.selectionsAfter.slice(0,t.selectionsAfter.length-1)),n}function I(e,t){if(!e.length)return e;let n=e.length,r=A;for(;n;){let i=D(e[n-1],t,r);if(i.changes&&!i.changes.empty||i.effects.length){let t=e.slice(0,n);return t[n-1]=i,t}t=i.mapped,n--,r=i.selectionsAfter}return r.length?[T.selection(r)]:A}function D(e,t,n){let i=$(e.selectionsAfter.length?e.selectionsAfter.map((e=>e.map(t))):A,n);if(!e.changes)return T.selection(i);let o=e.changes.map(t),a=t.mapDesc(e.changes,!0),s=e.mapped?e.mapped.composeDesc(a):a;return new T(o,r.Pe.mapEffects(e.effects,t),s,e.startSelection.map(a),i)}const z=/^(input\.type|delete)($|\.)/;class N{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:void 0;this.done=e,this.undone=t,this.prevTime=n,this.prevUserEvent=r}isolate(){return this.prevTime?new N(this.done,this.undone):this}addChanges(e,t,n,r,i){let o=this.done,a=o[o.length-1];return o=a&&a.changes&&!a.changes.empty&&e.changes&&(!n||z.test(n))&&(!a.selectionsAfter.length&&t-this.prevTimen.push(e,t))),t.iterChangedRanges(((e,t,i,o)=>{for(let a=0;a=e&&i<=t&&(r=!0)}})),r}(a.changes,e.changes))||"input.type.compose"==n)?E(o,o.length-1,r.minDepth,new T(e.changes.compose(a.changes),$(e.effects,a.effects),a.mapped,a.startSelection,A)):E(o,o.length,r.minDepth,e),new N(o,A,t,n)}addSelection(e,t,n,r){let i=this.done.length?this.done[this.done.length-1].selectionsAfter:A;return i.length>0&&t-this.prevTimee.empty!=a.ranges[t].empty)).length)?this:new N(P(this.done,e),this.undone,t,n);var o,a}addMapping(e){return new N(I(this.done,e),I(this.undone,e),this.prevTime,this.prevUserEvent)}pop(e,t,n){let r=0==e?this.done:this.undone;if(0==r.length)return null;let i=r[r.length-1],o=i.selectionsAfter[0]||t.selection;if(n&&i.selectionsAfter.length)return t.update({selection:i.selectionsAfter[i.selectionsAfter.length-1],annotations:p.of({side:e,rest:R(r),selection:o}),userEvent:0==e?"select.undo":"select.redo",scrollIntoView:!0});if(i.changes){let n=1==r.length?A:r.slice(0,r.length-1);return i.mapped&&(n=I(n,i.mapped)),t.update({changes:i.changes,selection:i.startSelection,effects:i.effects,annotations:p.of({side:e,rest:n,selection:o}),filter:!1,userEvent:0==e?"undo":"redo",scrollIntoView:!0})}return null}}N.empty=new N(A,A);const L=[{key:"Mod-z",run:w,preventDefault:!0},{key:"Mod-y",mac:"Mod-Shift-z",run:x,preventDefault:!0},{linux:"Ctrl-Shift-z",run:x,preventDefault:!0},{key:"Mod-u",run:S,preventDefault:!0},{key:"Alt-u",mac:"Mod-Shift-u",run:_,preventDefault:!0}];function M(e,t){return r.OF.create(e.ranges.map(t),e.mainIndex)}function Q(e,t){return e.update({selection:t,scrollIntoView:!0,userEvent:"select"})}function q(e,t){let{state:n,dispatch:r}=e,i=M(n.selection,t);return!i.eq(n.selection,!0)&&(r(Q(n,i)),!0)}function W(e,t){return r.OF.cursor(t?e.to:e.from)}function B(e,t){return q(e,(n=>n.empty?e.moveByChar(n,t):W(n,t)))}function F(e){return e.textDirectionAt(e.state.selection.main.head)==i.OP.LTR}const U=e=>B(e,!F(e)),j=e=>B(e,F(e));function V(e,t){return q(e,(n=>n.empty?e.moveByGroup(n,t):W(n,t)))}"undefined"!=typeof Intl&&Intl.Segmenter;function G(e,t,n){if(t.type.prop(n))return!0;let r=t.to-t.from;return r&&(r>2||/[^\s,.;:]/.test(e.sliceDoc(t.from,t.to)))||t.firstChild}function X(e,t,n){let i,s,l=(0,o.mv)(e).resolveInner(t.head),c=n?a.uY.closedBy:a.uY.openedBy;for(let r=t.head;;){let t=n?l.childAfter(r):l.childBefore(r);if(!t)break;G(e,t,c)?l=t:r=n?t.to:t.from}return s=l.type.prop(c)&&(i=n?(0,o.jU)(e,l.from,1):(0,o.jU)(e,l.to,-1))&&i.matched?n?i.end.to:i.end.from:n?l.to:l.from,r.OF.cursor(s,n?-1:1)}function Y(e,t){return q(e,(n=>{if(!n.empty)return W(n,t);let r=e.moveVertically(n,t);return r.head!=n.head?r:e.moveToLineBoundary(n,t)}))}const Z=e=>Y(e,!1),H=e=>Y(e,!0);function K(e){let t,n=e.scrollDOM.clientHeightn.empty?e.moveVertically(n,t,r.height):W(n,t)));if(a.eq(o.selection))return!1;if(r.selfScroll){let t=e.coordsAtPos(o.selection.main.head),s=e.scrollDOM.getBoundingClientRect(),l=s.top+r.marginTop,c=s.bottom-r.marginBottom;t&&t.top>l&&t.bottomJ(e,!1),te=e=>J(e,!0);function ne(e,t,n){let i=e.lineBlockAt(t.head),o=e.moveToLineBoundary(t,n);if(o.head==t.head&&o.head!=(n?i.to:i.from)&&(o=e.moveToLineBoundary(t,n,!1)),!n&&o.head==i.from&&i.length){let n=/^\s*/.exec(e.state.sliceDoc(i.from,Math.min(i.from+100,i.to)))[0].length;n&&t.head!=i.from+n&&(o=r.OF.cursor(i.from+n))}return o}function re(e,t,n){let i=!1,a=M(e.selection,(t=>{let a=(0,o.jU)(e,t.head,-1)||(0,o.jU)(e,t.head,1)||t.head>0&&(0,o.jU)(e,t.head-1,1)||t.head{let n=t(e);return r.OF.range(e.anchor,n.head,n.goalColumn,n.bidiLevel||void 0)}));return!n.eq(e.state.selection)&&(e.dispatch(Q(e.state,n)),!0)}function oe(e,t){return ie(e,(n=>e.moveByChar(n,t)))}const ae=e=>oe(e,!F(e)),se=e=>oe(e,F(e));function le(e,t){return ie(e,(n=>e.moveByGroup(n,t)))}function ce(e,t){return ie(e,(n=>e.moveVertically(n,t)))}const ue=e=>ce(e,!1),de=e=>ce(e,!0);function he(e,t){return ie(e,(n=>e.moveVertically(n,t,K(e).height)))}const fe=e=>he(e,!1),me=e=>he(e,!0),pe=e=>{let{state:t,dispatch:n}=e;return n(Q(t,{anchor:0})),!0},ge=e=>{let{state:t,dispatch:n}=e;return n(Q(t,{anchor:t.doc.length})),!0},be=e=>{let{state:t,dispatch:n}=e;return n(Q(t,{anchor:t.selection.main.anchor,head:0})),!0},ve=e=>{let{state:t,dispatch:n}=e;return n(Q(t,{anchor:t.selection.main.anchor,head:t.doc.length})),!0};function ye(e,t){if(e.state.readOnly)return!1;let n="delete.selection",{state:o}=e,a=o.changeByRange((i=>{let{from:o,to:a}=i;if(o==a){let r=t(i);ro&&(n="delete.forward",r=ke(e,r,!0)),o=Math.min(o,r),a=Math.max(a,r)}else o=ke(e,o,!1),a=ke(e,a,!0);return o==a?{range:i}:{changes:{from:o,to:a},range:r.OF.cursor(o,ot(e))))r.between(t,t,((e,r)=>{et&&(t=n?r:e)}));return t}const Oe=(e,t,n)=>ye(e,(i=>{let a,s,l=i.from,{state:c}=e,u=c.doc.lineAt(l);if(n&&!t&&l>u.from&&lOe(e,!1,!0),xe=e=>Oe(e,!0,!1),Se=(e,t)=>ye(e,(n=>{let i=n.head,{state:o}=e,a=o.doc.lineAt(i),s=o.charCategorizer(i);for(let e=null;;){if(i==(t?a.to:a.from)){i==n.head&&a.number!=(t?o.doc.lines:1)&&(i+=t?1:-1);break}let l=(0,r.zK)(a.text,i-a.from,t)+a.from,c=a.text.slice(Math.min(i,l)-a.from,Math.max(i,l)-a.from),u=s(c);if(null!=e&&u!=e)break;" "==c&&i==n.head||(e=u),i=l}return i})),_e=e=>Se(e,!1);function Te(e){let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.from),o=e.doc.lineAt(r.to);if(r.empty||r.to!=o.from||(o=e.doc.lineAt(r.to-1)),n>=i.number){let e=t[t.length-1];e.to=o.to,e.ranges.push(r)}else t.push({from:i.from,to:o.to,ranges:[r]});n=o.number+1}return t}function Ee(e,t,n){if(e.readOnly)return!1;let i=[],o=[];for(let a of Te(e)){if(n?a.to==e.doc.length:0==a.from)continue;let t=e.doc.lineAt(n?a.to+1:a.from-1),s=t.length+1;if(n){i.push({from:a.to,to:t.to},{from:a.from,insert:t.text+e.lineBreak});for(let t of a.ranges)o.push(r.OF.range(Math.min(e.doc.length,t.anchor+s),Math.min(e.doc.length,t.head+s)))}else{i.push({from:t.from,to:a.from},{from:a.to,insert:e.lineBreak+t.text});for(let e of a.ranges)o.push(r.OF.range(e.anchor-s,e.head-s))}}return!!i.length&&(t(e.update({changes:i,scrollIntoView:!0,selection:r.OF.create(o,e.selection.mainIndex),userEvent:"move.line"})),!0)}function $e(e,t,n){if(e.readOnly)return!1;let r=[];for(let i of Te(e))n?r.push({from:i.from,insert:e.doc.slice(i.from,i.to)+e.lineBreak}):r.push({from:i.to,insert:e.lineBreak+e.doc.slice(i.from,i.to)});return t(e.update({changes:r,scrollIntoView:!0,userEvent:"input.copyline"})),!0}const Ae=Ce(!1);function Ce(e){return t=>{let{state:n,dispatch:i}=t;if(n.readOnly)return!1;let s=n.changeByRange((t=>{let{from:i,to:s}=t,l=n.doc.lineAt(i),c=!e&&i==s&&function(e,t){if(/\(\)|\[\]|\{\}/.test(e.sliceDoc(t-1,t+1)))return{from:t,to:t};let n,r=(0,o.mv)(e).resolveInner(t),i=r.childBefore(t),s=r.childAfter(t);return i&&s&&i.to<=t&&s.from>=t&&(n=i.type.prop(a.uY.closedBy))&&n.indexOf(s.name)>-1&&e.doc.lineAt(i.to).from==e.doc.lineAt(s.from).from&&!/\S/.test(e.sliceDoc(i.to,s.from))?{from:i.to,to:s.from}:null}(n,i);e&&(i=s=(s<=l.to?l:n.doc.lineAt(s)).to);let u=new o.KB(n,{simulateBreak:i,simulateDoubleBreak:!!c}),d=(0,o._v)(u,i);for(null==d&&(d=(0,r.y$)(/^\s*/.exec(n.doc.lineAt(i).text)[0],n.tabSize));sl.from&&i{let o=[];for(let r=i.from;r<=i.to;){let a=e.doc.lineAt(r);a.number>n&&(i.empty||i.to>a.from)&&(t(a,o,i),n=a.number),r=a.to+1}let a=e.changes(o);return{changes:o,range:r.OF.range(a.mapPos(i.anchor,1),a.mapPos(i.head,1))}}))}const Re=e=>{let{state:t,dispatch:n}=e;return!t.readOnly&&(n(t.update(Pe(t,((e,n)=>{n.push({from:e.from,insert:t.facet(o.Xt)})})),{userEvent:"input.indent"})),!0)},Ie=e=>{let{state:t,dispatch:n}=e;return!t.readOnly&&(n(t.update(Pe(t,((e,n)=>{let i=/^\s*/.exec(e.text)[0];if(!i)return;let a=(0,r.y$)(i,t.tabSize),s=0,l=(0,o.EI)(t,Math.max(0,a-(0,o.tp)(t)));for(;sq(e,(t=>X(e.state,t,!F(e)))),shift:e=>ie(e,(t=>X(e.state,t,!F(e))))},{key:"Alt-ArrowRight",mac:"Ctrl-ArrowRight",run:e=>q(e,(t=>X(e.state,t,F(e)))),shift:e=>ie(e,(t=>X(e.state,t,F(e))))},{key:"Alt-ArrowUp",run:e=>{let{state:t,dispatch:n}=e;return Ee(t,n,!1)}},{key:"Shift-Alt-ArrowUp",run:e=>{let{state:t,dispatch:n}=e;return $e(t,n,!1)}},{key:"Alt-ArrowDown",run:e=>{let{state:t,dispatch:n}=e;return Ee(t,n,!0)}},{key:"Shift-Alt-ArrowDown",run:e=>{let{state:t,dispatch:n}=e;return $e(t,n,!0)}},{key:"Escape",run:e=>{let{state:t,dispatch:n}=e,i=t.selection,o=null;return i.ranges.length>1?o=r.OF.create([i.main]):i.main.empty||(o=r.OF.create([r.OF.cursor(i.main.head)])),!!o&&(n(Q(t,o)),!0)}},{key:"Mod-Enter",run:Ce(!0)},{key:"Alt-l",mac:"Ctrl-l",run:e=>{let{state:t,dispatch:n}=e,i=Te(t).map((e=>{let{from:n,to:i}=e;return r.OF.range(n,Math.min(i+1,t.doc.length))}));return n(t.update({selection:r.OF.create(i),userEvent:"select"})),!0}},{key:"Mod-i",run:e=>{let{state:t,dispatch:n}=e,i=M(t.selection,(e=>{var n;for(let i=(0,o.mv)(t).resolveStack(e.from,1);i;i=i.next){let{node:t}=i;if((t.from=e.to||t.to>e.to&&t.from<=e.from)&&(null===(n=t.parent)||void 0===n?void 0:n.parent))return r.OF.range(t.to,t.from)}return e}));return n(Q(t,i)),!0},preventDefault:!0},{key:"Mod-[",run:Ie},{key:"Mod-]",run:Re},{key:"Mod-Alt-\\",run:e=>{let{state:t,dispatch:n}=e;if(t.readOnly)return!1;let r=Object.create(null),i=new o.KB(t,{overrideIndentation:e=>{let t=r[e];return null==t?-1:t}}),a=Pe(t,((e,n,a)=>{let s=(0,o._v)(i,e.from);if(null==s)return;/\S/.test(e.text)||(s=0);let l=/^\s*/.exec(e.text)[0],c=(0,o.EI)(t,s);(l!=c||a.from{if(e.state.readOnly)return!1;let{state:t}=e,n=t.changes(Te(t).map((e=>{let{from:n,to:r}=e;return n>0?n--:r{let n;if(e.lineWrapping){let r=e.lineBlockAt(t.head),i=e.coordsAtPos(t.head,t.assoc||1);i&&(n=r.bottom+e.documentTop-i.bottom+e.defaultLineHeight/2)}return e.moveVertically(t,!0,n)})).map(n);return e.dispatch({changes:n,selection:r,scrollIntoView:!0,userEvent:"delete.line"}),!0}},{key:"Shift-Mod-\\",run:e=>{let{state:t,dispatch:n}=e;return re(t,n,!1)}},{key:"Mod-/",run:e=>{let{state:t}=e,n=t.doc.lineAt(t.selection.main.from),r=d(e.state,n.from);return r.line?l(e):!!r.block&&u(e)}},{key:"Alt-A",run:c}].concat([{key:"ArrowLeft",run:U,shift:ae,preventDefault:!0},{key:"Mod-ArrowLeft",mac:"Alt-ArrowLeft",run:e=>V(e,!F(e)),shift:e=>le(e,!F(e)),preventDefault:!0},{mac:"Cmd-ArrowLeft",run:e=>q(e,(t=>ne(e,t,!F(e)))),shift:e=>ie(e,(t=>ne(e,t,!F(e)))),preventDefault:!0},{key:"ArrowRight",run:j,shift:se,preventDefault:!0},{key:"Mod-ArrowRight",mac:"Alt-ArrowRight",run:e=>V(e,F(e)),shift:e=>le(e,F(e)),preventDefault:!0},{mac:"Cmd-ArrowRight",run:e=>q(e,(t=>ne(e,t,F(e)))),shift:e=>ie(e,(t=>ne(e,t,F(e)))),preventDefault:!0},{key:"ArrowUp",run:Z,shift:ue,preventDefault:!0},{mac:"Cmd-ArrowUp",run:pe,shift:be},{mac:"Ctrl-ArrowUp",run:ee,shift:fe},{key:"ArrowDown",run:H,shift:de,preventDefault:!0},{mac:"Cmd-ArrowDown",run:ge,shift:ve},{mac:"Ctrl-ArrowDown",run:te,shift:me},{key:"PageUp",run:ee,shift:fe},{key:"PageDown",run:te,shift:me},{key:"Home",run:e=>q(e,(t=>ne(e,t,!1))),shift:e=>ie(e,(t=>ne(e,t,!1))),preventDefault:!0},{key:"Mod-Home",run:pe,shift:be},{key:"End",run:e=>q(e,(t=>ne(e,t,!0))),shift:e=>ie(e,(t=>ne(e,t,!0))),preventDefault:!0},{key:"Mod-End",run:ge,shift:ve},{key:"Enter",run:Ae},{key:"Mod-a",run:e=>{let{state:t,dispatch:n}=e;return n(t.update({selection:{anchor:0,head:t.doc.length},userEvent:"select"})),!0}},{key:"Backspace",run:we,shift:we},{key:"Delete",run:xe},{key:"Mod-Backspace",mac:"Alt-Backspace",run:_e},{key:"Mod-Delete",mac:"Alt-Delete",run:e=>Se(e,!0)},{mac:"Mod-Backspace",run:e=>ye(e,(t=>{let n=e.moveToLineBoundary(t,!1).head;return t.head>n?n:Math.max(0,t.head-1)}))},{mac:"Mod-Delete",run:e=>ye(e,(t=>{let n=e.moveToLineBoundary(t,!0).head;return t.headq(e,(t=>r.OF.cursor(e.lineBlockAt(t.head).from,1))),shift:e=>ie(e,(t=>r.OF.cursor(e.lineBlockAt(t.head).from)))},{key:"Ctrl-e",run:e=>q(e,(t=>r.OF.cursor(e.lineBlockAt(t.head).to,-1))),shift:e=>ie(e,(t=>r.OF.cursor(e.lineBlockAt(t.head).to)))},{key:"Ctrl-d",run:xe},{key:"Ctrl-h",run:we},{key:"Ctrl-k",run:e=>ye(e,(t=>{let n=e.lineBlockAt(t.head).to;return t.head{let{state:t,dispatch:n}=e;if(t.readOnly)return!1;let i=t.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:r.EY.of(["",""])},range:r.OF.cursor(e.from)})));return n(t.update(i,{scrollIntoView:!0,userEvent:"input"})),!0}},{key:"Ctrl-t",run:e=>{let{state:t,dispatch:n}=e;if(t.readOnly)return!1;let i=t.changeByRange((e=>{if(!e.empty||0==e.from||e.from==t.doc.length)return{range:e};let n=e.from,i=t.doc.lineAt(n),o=n==i.from?n-1:(0,r.zK)(i.text,n-i.from,!1)+i.from,a=n==i.to?n+1:(0,r.zK)(i.text,n-i.from,!0)+i.from;return{changes:{from:o,to:a,insert:t.doc.slice(n,a).append(t.doc.slice(o,n))},range:r.OF.cursor(a)}}));return!i.changes.empty&&(n(t.update(i,{scrollIntoView:!0,userEvent:"move.character"})),!0)}},{key:"Ctrl-v",run:te}].map((e=>({mac:e.key,run:e.run,shift:e.shift}))))),ze={key:"Tab",run:Re,shift:Ie}},20624:(e,t,n)=>{n.r(t),n.d(t,{angular:()=>T,angularLanguage:()=>S});var r=n(4859),i=n(45079),o=n(83965),a=n(1345),s=n(24450),l=n(4179);const c=new l.Lu((e=>{let t=e.pos;for(;;){if(10==e.next){e.advance();break}if(123==e.next&&123==e.peek(1)||e.next<0)break;e.advance()}e.pos>t&&e.acceptToken(1)}));function u(e,t,n){return new l.Lu((r=>{let i=r.pos;for(;r.next!=e&&r.next>=0&&(n||38!=r.next&&(123!=r.next||123!=r.peek(1)));)r.advance();r.pos>i&&r.acceptToken(t)}))}const d=u(39,33,!1),h=u(34,34,!1),f=u(39,35,!0),m=u(34,36,!0),p=l.U1.deserialize({version:14,states:"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO<"InterpolationContent"==e.name?v:null))})},O={parser:b.configure({wrap:(0,s.$g)(((e,t)=>{var n;return"InterpolationContent"==e.name?v:"AttributeInterpolation"!=e.name?null:"StatementAttributeValue"==(null===(n=e.node.parent)||void 0===n?void 0:n.name)?y:v})),top:"Attribute"})},w=(0,i.html)();function x(e){return e.configure({wrap:(0,s.$g)(_)},"angular")}const S=x(w.language);function _(e,t){switch(e.name){case"Attribute":return/^[*#(\[]|\{\{/.test(t.read(e.from,e.to))?O:null;case"Text":return k}return null}function T(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=w;if(e.base){if("html"!=e.base.language.name||!(e.base.language instanceof r.bj))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new r.Yy(t.language==w.language?S:x(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/})])}},34897:(e,t,n)=>{n.r(t),n.d(t,{cpp:()=>a,cppLanguage:()=>o});var r=n(46186),i=n(4859);const o=i.bj.define({name:"cpp",parser:r.K.configure({props:[i.Oh.add({IfStatement:(0,i.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,i.mz)({except:/^\s*({|catch)\b/}),LabeledStatement:i._Y,CaseStatement:e=>e.baseIndent+e.unit,BlockComment:()=>null,CompoundStatement:(0,i.Ay)({closing:"}"}),Statement:(0,i.mz)({except:/^{/})}),i.b_.add({"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList":i.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/,closeBrackets:{stringPrefixes:["L","u","U","u8","LR","UR","uR","u8R","R"]}}});function a(){return new i.Yy(o)}},98487:(e,t,n)=>{n.r(t),n.d(t,{css:()=>k,cssCompletionSource:()=>v,cssLanguage:()=>y,defineCSSCompletionSource:()=>b});var r=n(81544),i=n(4859),o=n(24450);let a=null;function s(){if(!a&&"object"==typeof document&&document.body){let{style:e}=document.body,t=[],n=new Set;for(let r in e)"cssText"!=r&&"cssFloat"!=r&&"string"==typeof e[r]&&(/[A-Z]/.test(r)&&(r=r.replace(/[A-Z]/g,(e=>"-"+e.toLowerCase()))),n.has(r)||(t.push(r),n.add(r)));a=t.sort().map((e=>({type:"property",label:e})))}return a||[]}const l=["active","after","any-link","autofill","backdrop","before","checked","cue","default","defined","disabled","empty","enabled","file-selector-button","first","first-child","first-letter","first-line","first-of-type","focus","focus-visible","focus-within","fullscreen","has","host","host-context","hover","in-range","indeterminate","invalid","is","lang","last-child","last-of-type","left","link","marker","modal","not","nth-child","nth-last-child","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","part","placeholder","placeholder-shown","read-only","read-write","required","right","root","scope","selection","slotted","target","target-text","valid","visited","where"].map((e=>({type:"class",label:e}))),c=["above","absolute","activeborder","additive","activecaption","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","antialiased","appworkspace","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","button-bevel","buttonface","buttonhighlight","buttonshadow","buttontext","calc","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic-abegede-gez","ethiopic-halehame-aa-er","ethiopic-halehame-gez","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","graytext","grid","groove","hand","hard-light","help","hidden","hide","higher","highlight","highlighttext","horizontal","hsl","hsla","hue","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","justify","keep-all","landscape","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-hexadecimal","lower-latin","lower-norwegian","lowercase","ltr","luminosity","manipulation","match","matrix","matrix3d","medium","menu","menutext","message-box","middle","min-intrinsic","mix","monospace","move","multiple","multiple_mask_images","multiply","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","opacity","open-quote","optimizeLegibility","optimizeSpeed","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","self-start","self-end","semi-condensed","semi-expanded","separate","serif","show","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","text","text-bottom","text-top","textarea","textfield","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","to","top","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-latin","uppercase","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"].map((e=>({type:"keyword",label:e}))).concat(["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"].map((e=>({type:"constant",label:e})))),u=["a","abbr","address","article","aside","b","bdi","bdo","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","dd","del","details","dfn","dialog","div","dl","dt","em","figcaption","figure","footer","form","header","hgroup","h1","h2","h3","h4","h5","h6","hr","html","i","iframe","img","input","ins","kbd","label","legend","li","main","meter","nav","ol","output","p","pre","ruby","section","select","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","tr","u","ul"].map((e=>({type:"type",label:e}))),d=/^(\w[\w-]*|-\w[\w-]*|)$/,h=/^-(-[\w-]*)?$/;const f=new o.RY,m=["Declaration"];function p(e){for(let t=e;;){if(t.type.isTop)return t;if(!(t=t.parent))return e}}function g(e,t,n){if(t.to-t.from>4096){let r=f.get(t);if(r)return r;let i=[],a=new Set,s=t.cursor(o.Qj.IncludeAnonymous);if(s.firstChild())do{for(let t of g(e,s.node,n))a.has(t.label)||(a.add(t.label),i.push(t))}while(s.nextSibling());return f.set(t,i),i}{let r=[],i=new Set;return t.cursor().iterate((t=>{var o;if(n(t)&&t.matchContext(m)&&":"==(null===(o=t.node.nextSibling)||void 0===o?void 0:o.name)){let n=e.sliceString(t.from,t.to);i.has(n)||(i.add(n),r.push({label:n,type:"variable"}))}})),r}}const b=e=>t=>{let{state:n,pos:r}=t,o=(0,i.mv)(n).resolveInner(r,-1),a=o.type.isError&&o.from==o.to-1&&"-"==n.doc.sliceString(o.from,o.to);if("PropertyName"==o.name||(a||"TagName"==o.name)&&/^(Block|Styles)$/.test(o.resolve(o.to).name))return{from:o.from,options:s(),validFor:d};if("ValueName"==o.name)return{from:o.from,options:c,validFor:d};if("PseudoClassName"==o.name)return{from:o.from,options:l,validFor:d};if(e(o)||(t.explicit||a)&&function(e,t){var n;if(("("==e.name||e.type.isError)&&(e=e.parent||e),"ArgList"!=e.name)return!1;let r=null===(n=e.parent)||void 0===n?void 0:n.firstChild;return"Callee"==(null===r||void 0===r?void 0:r.name)&&"var"==t.sliceString(r.from,r.to)}(o,n.doc))return{from:e(o)||a?o.from:r,options:g(n.doc,p(o),e),validFor:h};if("TagName"==o.name){for(let{parent:e}=o;e;e=e.parent)if("Block"==e.name)return{from:o.from,options:s(),validFor:d};return{from:o.from,options:u,validFor:d}}if(!t.explicit)return null;let f=o.resolve(r),m=f.childBefore(r);return m&&":"==m.name&&"PseudoClassSelector"==f.name?{from:r,options:l,validFor:d}:m&&":"==m.name&&"Declaration"==f.name||"ArgList"==f.name?{from:r,options:c,validFor:d}:"Block"==f.name||"Styles"==f.name?{from:r,options:s(),validFor:d}:null},v=b((e=>"VariableName"==e.name)),y=i.bj.define({name:"css",parser:r.K.configure({props:[i.Oh.add({Declaration:(0,i.mz)()}),i.b_.add({"Block KeyframeList":i.yd})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"}},indentOnInput:/^\s*\}$/,wordChars:"-"}});function k(){return new i.Yy(y,y.data.of({autocomplete:v}))}},31162:(e,t,n)=>{n.r(t),n.d(t,{go:()=>y,goLanguage:()=>g,localCompletionSource:()=>p,snippets:()=>s});var r=n(6063),i=n(4859),o=n(55045),a=n(24450);const s=[(0,o.Gw)("func ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"declaration",type:"keyword"}),(0,o.Gw)("func (${receiver}) ${name}(${params}) ${type} {\n\t${}\n}",{label:"func",detail:"method declaration",type:"keyword"}),(0,o.Gw)("var ${name} = ${value}",{label:"var",detail:"declaration",type:"keyword"}),(0,o.Gw)("type ${name} ${type}",{label:"type",detail:"declaration",type:"keyword"}),(0,o.Gw)("const ${name} = ${value}",{label:"const",detail:"declaration",type:"keyword"}),(0,o.Gw)("type ${name} = ${type}",{label:"type",detail:"alias declaration",type:"keyword"}),(0,o.Gw)("for ${init}; ${test}; ${update} {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,o.Gw)("for ${i} := range ${value} {\n\t${}\n}",{label:"for",detail:"range",type:"keyword"}),(0,o.Gw)("select {\n\t${}\n}",{label:"select",detail:"statement",type:"keyword"}),(0,o.Gw)("case ${}:\n${}",{label:"case",type:"keyword"}),(0,o.Gw)("switch ${} {\n\t${}\n}",{label:"switch",detail:"statement",type:"keyword"}),(0,o.Gw)("switch ${}.(${type}) {\n\t${}\n}",{label:"switch",detail:"type statement",type:"keyword"}),(0,o.Gw)("if ${} {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,o.Gw)("if ${} {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),(0,o.Gw)('import ${name} from "${module}"\n${}',{label:"import",detail:"declaration",type:"keyword"})],l=new a.RY,c=new Set(["SourceFile","Block","FunctionDecl","MethodDecl","FunctionLiteral","ForStatement","SwitchStatement","TypeSwitchStatement","IfStatement"]);function u(e,t){return(n,r)=>{e:for(let i=n.node.firstChild,o=0,a=null;;){for(;!i;){if(!o)break e;o--,i=a.nextSibling,a=a.parent}t&&i.name==t||"SpecList"==i.name?(o++,a=i,i=i.firstChild):("DefName"==i.name&&r(i,e),i=i.nextSibling)}return!0}}const d={FunctionDecl:u("function"),VarDecl:u("var","VarSpec"),ConstDecl:u("constant","ConstSpec"),TypeDecl:u("type","TypeSpec"),ImportDecl:u("constant","ImportSpec"),Parameter:u("var"),__proto__:null};function h(e,t){let n=l.get(t);if(n)return n;let r=[],i=!0;function o(t,n){let i=e.sliceString(t.from,t.to);r.push({label:i,type:n})}return t.cursor(a.Qj.IncludeAnonymous).iterate((t=>{if(i)i=!1;else if(t.name){let e=d[t.name];if(e&&e(t,o)||c.has(t.name))return!1}else if(t.to-t.from>8192){for(let n of h(e,t.node))r.push(n);return!1}})),l.set(t,r),r}const f=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,m=["String","LineComment","BlockComment","DefName","LabelName","FieldName",".","?."],p=e=>{let t=(0,i.mv)(e.state).resolveInner(e.pos,-1);if(m.indexOf(t.name)>-1)return null;let n="VariableName"==t.name||t.to-t.from<20&&f.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)c.has(i.name)&&(r=r.concat(h(e.state.doc,i)));return{options:r,from:n?t.from:e.pos,validFor:f}},g=i.bj.define({name:"go",parser:r.K.configure({props:[i.Oh.add({IfStatement:(0,i.mz)({except:/^\s*({|else\b)/}),LabeledStatement:i._Y,"SwitchBlock SelectBlock":e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n||r?0:e.unit)},Block:(0,i.Ay)({closing:"}"}),BlockComment:()=>null,Statement:(0,i.mz)({except:/^{/})}),i.b_.add({"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList":i.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case\b|default\b|\})$/}});let b=e=>({label:e,type:"keyword"});const v="interface struct chan map package go return break continue goto fallthrough else defer range true false nil".split(" ").map(b);function y(){let e=s.concat(v);return new i.Yy(g,[g.data.of({autocomplete:(0,o.Ar)(m,(0,o.et)(e))}),g.data.of({autocomplete:p})])}},45079:(e,t,n)=>{n.r(t),n.d(t,{autoCloseTags:()=>N,html:()=>D,htmlCompletionSource:()=>E,htmlCompletionSourceWith:()=>$,htmlLanguage:()=>I,htmlPlain:()=>R});var r=n(46518),i=n(98487),o=n(83965),a=n(67538),s=n(8070),l=n(4859);const c=["_blank","_self","_top","_parent"],u=["ascii","utf-8","utf-16","latin1","latin1"],d=["get","post","put","delete"],h=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],f=["true","false"],m={},p={a:{attrs:{href:null,ping:null,type:null,media:null,target:c,hreflang:null}},abbr:m,address:m,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:null,hreflang:null,type:null,shape:["default","rect","circle","poly"]}},article:m,aside:m,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["autoplay"],loop:["loop"],controls:["controls"]}},b:m,base:{attrs:{href:null,target:c}},bdi:m,bdo:m,blockquote:{attrs:{cite:null}},body:m,br:m,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["autofocus"],disabled:["autofocus"],formenctype:h,formmethod:d,formnovalidate:["novalidate"],formtarget:c,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:m,center:m,cite:m,code:m,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["disabled"],checked:["checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["disabled"],multiple:["multiple"]}},datalist:{attrs:{data:null}},dd:m,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["open"]}},dfn:m,div:m,dl:m,dt:m,em:m,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["disabled"],form:null,name:null}},figcaption:m,figure:m,footer:m,form:{attrs:{action:null,name:null,"accept-charset":u,autocomplete:["on","off"],enctype:h,method:d,novalidate:["novalidate"],target:c}},h1:m,h2:m,h3:m,h4:m,h5:m,h6:m,head:{children:["title","base","link","style","meta","script","noscript","command"]},header:m,hgroup:m,hr:m,html:{attrs:{manifest:null}},i:m,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["autofocus"],checked:["checked"],disabled:["disabled"],formenctype:h,formmethod:d,formnovalidate:["novalidate"],formtarget:c,multiple:["multiple"],readonly:["readonly"],required:["required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:m,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["autofocus"],disabled:["disabled"],keytype:["RSA"]}},label:{attrs:{for:null,form:null}},legend:m,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:null,media:null,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:m,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:u,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:m,noscript:m,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["typemustmatch"]}},ol:{attrs:{reversed:["reversed"],start:null,type:["1","a","A","i","I"]},children:["li","script","template","ul","ol"]},optgroup:{attrs:{disabled:["disabled"],label:null}},option:{attrs:{disabled:["disabled"],label:null,selected:["selected"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:m,param:{attrs:{name:null,value:null}},pre:m,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:m,rt:m,ruby:m,samp:m,script:{attrs:{type:["text/javascript"],src:null,async:["async"],defer:["defer"],charset:u}},section:m,select:{attrs:{form:null,name:null,size:null,autofocus:["autofocus"],disabled:["disabled"],multiple:["multiple"]}},slot:{attrs:{name:null}},small:m,source:{attrs:{src:null,type:null,media:null}},span:m,strong:m,style:{attrs:{type:["text/css"],media:null,scoped:null}},sub:m,summary:m,sup:m,table:m,tbody:m,td:{attrs:{colspan:null,rowspan:null,headers:null}},template:m,textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["autofocus"],disabled:["disabled"],readonly:["readonly"],required:["required"],wrap:["soft","hard"]}},tfoot:m,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:m,time:{attrs:{datetime:null}},title:m,tr:m,track:{attrs:{src:null,label:null,default:null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:null}},ul:{children:["li","script","template","ul","ol"]},var:m,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["autoplay"],mediagroup:["movie"],muted:["muted"],controls:["controls"]}},wbr:m},g={accesskey:null,class:null,contenteditable:f,contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["ar","bn","de","en-GB","en-US","es","fr","hi","id","ja","pa","pt","ru","tr","zh"],spellcheck:f,autocorrect:f,autocapitalize:f,style:null,tabindex:null,title:null,translate:["yes","no"],rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"],role:"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer".split(" "),"aria-activedescendant":null,"aria-atomic":f,"aria-autocomplete":["inline","list","both","none"],"aria-busy":f,"aria-checked":["true","false","mixed","undefined"],"aria-controls":null,"aria-describedby":null,"aria-disabled":f,"aria-dropeffect":null,"aria-expanded":["true","false","undefined"],"aria-flowto":null,"aria-grabbed":["true","false","undefined"],"aria-haspopup":f,"aria-hidden":f,"aria-invalid":["true","false","grammar","spelling"],"aria-label":null,"aria-labelledby":null,"aria-level":null,"aria-live":["off","polite","assertive"],"aria-multiline":f,"aria-multiselectable":f,"aria-owns":null,"aria-posinset":null,"aria-pressed":["true","false","mixed","undefined"],"aria-readonly":f,"aria-relevant":null,"aria-required":f,"aria-selected":["true","false","undefined"],"aria-setsize":null,"aria-sort":["ascending","descending","none","other"],"aria-valuemax":null,"aria-valuemin":null,"aria-valuenow":null,"aria-valuetext":null},b="beforeunload copy cut dragstart dragover dragleave dragenter dragend drag paste focus blur change click load mousedown mouseenter mouseleave mouseup keydown keyup resize scroll unload".split(" ").map((e=>"on"+e));for(let L of b)g[L]=null;class v{constructor(e,t){this.tags=Object.assign(Object.assign({},p),e),this.globalAttrs=Object.assign(Object.assign({},g),t),this.allTags=Object.keys(this.tags),this.globalAttrNames=Object.keys(this.globalAttrs)}}function y(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;if(!t)return"";let r=t.firstChild,i=r&&r.getChild("TagName");return i?e.sliceString(i.from,Math.min(i.to,n)):""}function k(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];for(;e;e=e.parent)if("Element"==e.name){if(!t)return e;t=!1}return null}function O(e,t,n){let r=n.tags[y(e,k(t))];return(null===r||void 0===r?void 0:r.children)||n.allTags}function w(e,t){let n=[];for(let r=k(t);r&&!r.type.isTop;r=k(r.parent)){let i=y(e,r);if(i&&"CloseTag"==r.lastChild.name)break;i&&n.indexOf(i)<0&&("EndTag"==t.name||t.from>=r.firstChild.to)&&n.push(i)}return n}v.default=new v;const x=/^[:\-\.\w\u00b7-\uffff]*$/;function S(e,t,n,r,i){let o=/\s*>/.test(e.sliceDoc(i,i+5))?"":">",a=k(n,!0);return{from:r,to:i,options:O(e.doc,a,t).map((e=>({label:e,type:"type"}))).concat(w(e.doc,n).map(((e,t)=>({label:"/"+e,apply:"/"+e+o,type:"type",boost:99-t})))),validFor:/^\/?[:\-\.\w\u00b7-\uffff]*$/}}function _(e,t,n,r){let i=/\s*>/.test(e.sliceDoc(r,r+5))?"":">";return{from:n,to:r,options:w(e.doc,t).map(((e,t)=>({label:e,apply:e+i,type:"type",boost:99-t}))),validFor:x}}function T(e,t){let{state:n,pos:r}=t,i=(0,l.mv)(n).resolveInner(r,-1),o=i.resolve(r);for(let a,s=r;o==i&&(a=i.childBefore(s));){let e=a.lastChild;if(!e||!e.type.isError||e.from({label:e,type:"property"}))),validFor:x}}(n,e,i,"AttributeName"==i.name?i.from:r,r):"Is"==i.name||"AttributeValue"==i.name||"UnquotedAttributeValue"==i.name?function(e,t,n,r,i){var o;let a,s=null===(o=n.parent)||void 0===o?void 0:o.getChild("AttributeName"),l=[];if(s){let o=e.sliceDoc(s.from,s.to),c=t.globalAttrs[o];if(!c){let r=k(n),i=r?t.tags[y(e.doc,r)]:null;c=(null===i||void 0===i?void 0:i.attrs)&&i.attrs[o]}if(c){let t=e.sliceDoc(r,i).toLowerCase(),n='"',o='"';/^['"]/.test(t)?(a='"'==t[0]?/^[^"]*$/:/^[^']*$/,n="",o=e.sliceDoc(i,i+1)==t[0]?"":t[0],t=t.slice(1),r++):a=/^[^\s<>='"]*$/;for(let e of c)l.push({label:e,apply:n+e+o,type:"constant"})}}return{from:r,to:i,options:l,validFor:a}}(n,e,i,"Is"==i.name?r:i.from,r):!t.explicit||"Element"!=o.name&&"Text"!=o.name&&"Document"!=o.name?null:function(e,t,n,r){let i=[],o=0;for(let a of O(e.doc,n,t))i.push({label:"<"+a,type:"type"});for(let a of w(e.doc,n))i.push({label:"",type:"type",boost:99-o++});return{from:r,to:r,options:i,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}(n,e,i,r)}function E(e){return T(v.default,e)}function $(e){let{extraTags:t,extraGlobalAttributes:n}=e,r=n||t?new v(t,n):v.default;return e=>T(r,e)}const A=o.javascriptLanguage.parser.configure({top:"SingleExpression"}),C=[{tag:"script",attrs:e=>"text/typescript"==e.type||"ts"==e.lang,parser:o.typescriptLanguage.parser},{tag:"script",attrs:e=>"text/babel"==e.type||"text/jsx"==e.type,parser:o.jsxLanguage.parser},{tag:"script",attrs:e=>"text/typescript-jsx"==e.type,parser:o.tsxLanguage.parser},{tag:"script",attrs:e=>/^(importmap|speculationrules|application\/(.+\+)?json)$/i.test(e.type),parser:A},{tag:"script",attrs:e=>!e.type||/^(?:text|application)\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(e.type),parser:o.javascriptLanguage.parser},{tag:"style",attrs:e=>(!e.lang||"css"==e.lang)&&(!e.type||/^(text\/)?(x-)?(stylesheet|css)$/i.test(e.type)),parser:i.cssLanguage.parser}],P=[{name:"style",parser:i.cssLanguage.parser.configure({top:"Styles"})}].concat(b.map((e=>({name:e,parser:o.javascriptLanguage.parser})))),R=l.bj.define({name:"html",parser:r.K.configure({props:[l.Oh.add({Element(e){let t=/^(\s*)(<\/)?/.exec(e.textAfter);return e.node.to<=e.pos+t[0].length?e.continue():e.lineIndent(e.node.from)+(t[2]?0:e.unit)},"OpenTag CloseTag SelfClosingTag":e=>e.column(e.node.from)+e.unit,Document(e){if(e.pos+/\s*/.exec(e.textAfter)[0].lengthe.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/\w+\W$/,wordChars:"-._"}}),I=R.configure({wrap:(0,r.n)(C,P)});function D(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n="";!1===t.matchClosingTags&&(n="noMatch"),!0===t.selfClosingTags&&(n=(n?n+" ":"")+"selfClosing"),(t.nestedLanguages&&t.nestedLanguages.length||t.nestedAttributes&&t.nestedAttributes.length)&&(e=(0,r.n)((t.nestedLanguages||[]).concat(C),(t.nestedAttributes||[]).concat(P)));let a=e?R.configure({wrap:e,dialect:n}):n?I.configure({dialect:n}):I;return new l.Yy(a,[I.data.of({autocomplete:$(t)}),!1!==t.autoCloseTags?N:[],(0,o.javascript)().support,(0,i.css)().support])}const z=new Set("area base br col command embed frame hr img input keygen link meta param source track wbr menuitem".split(" ")),N=a.Lz.inputHandler.of(((e,t,n,r,i)=>{if(e.composing||e.state.readOnly||t!=n||">"!=r&&"/"!=r||!I.isActiveAt(e.state,t,-1))return!1;let o=i(),{state:a}=o,c=a.changeByRange((e=>{var t,n,i;let o,c=a.doc.sliceString(e.from-1,e.to)==r,{head:u}=e,d=(0,l.mv)(a).resolveInner(u,-1);if(c&&">"==r&&"EndTag"==d.name){let r=d.parent;if("CloseTag"!=(null===(n=null===(t=r.parent)||void 0===t?void 0:t.lastChild)||void 0===n?void 0:n.name)&&(o=y(a.doc,r.parent,u))&&!z.has(o)){return{range:e,changes:{from:u,to:u+(">"===a.doc.sliceString(u,u+1)?1:0),insert:"")}}}}else if(c&&"/"==r&&"IncompleteCloseTag"==d.name){let e=d.parent;if(d.from==u-2&&"CloseTag"!=(null===(i=e.lastChild)||void 0===i?void 0:i.name)&&(o=y(a.doc,e,u))&&!z.has(o)){let e=u+(">"===a.doc.sliceString(u,u+1)?1:0),t="".concat(o,">");return{range:s.OF.cursor(u+t.length,-1),changes:{from:u,to:e,insert:t}}}}return{range:e}}));return!c.changes.empty&&(e.dispatch([o,a.update(c,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}))},96068:(e,t,n)=>{n.r(t),n.d(t,{java:()=>a,javaLanguage:()=>o});var r=n(19889),i=n(4859);const o=i.bj.define({name:"java",parser:r.K.configure({props:[i.Oh.add({IfStatement:(0,i.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,i.mz)({except:/^\s*({|catch|finally)\b/}),LabeledStatement:i._Y,SwitchBlock:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:(0,i.Ay)({closing:"}"}),BlockComment:()=>null,Statement:(0,i.mz)({except:/^{/})}),i.b_.add({"Block SwitchBlock ClassBody ElementValueArrayInitializer ModuleBody EnumBody ConstructorBody InterfaceBody ArrayInitializer":i.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\})$/}});function a(){return new i.Yy(o)}},83965:(e,t,n)=>{n.r(t),n.d(t,{autoCloseTags:()=>D,completionPath:()=>O,esLint:()=>z,javascript:()=>P,javascriptLanguage:()=>x,jsxLanguage:()=>T,localCompletionSource:()=>y,scopeCompletionSource:()=>w,snippets:()=>c,tsxLanguage:()=>E,typescriptLanguage:()=>_,typescriptSnippets:()=>u});var r=n(27076),i=n(4859),o=n(8070),a=n(67538),s=n(55045),l=n(24450);const c=[(0,s.Gw)("function ${name}(${params}) {\n\t${}\n}",{label:"function",detail:"definition",type:"keyword"}),(0,s.Gw)("for (let ${index} = 0; ${index} < ${bound}; ${index}++) {\n\t${}\n}",{label:"for",detail:"loop",type:"keyword"}),(0,s.Gw)("for (let ${name} of ${collection}) {\n\t${}\n}",{label:"for",detail:"of loop",type:"keyword"}),(0,s.Gw)("do {\n\t${}\n} while (${})",{label:"do",detail:"loop",type:"keyword"}),(0,s.Gw)("while (${}) {\n\t${}\n}",{label:"while",detail:"loop",type:"keyword"}),(0,s.Gw)("try {\n\t${}\n} catch (${error}) {\n\t${}\n}",{label:"try",detail:"/ catch block",type:"keyword"}),(0,s.Gw)("if (${}) {\n\t${}\n}",{label:"if",detail:"block",type:"keyword"}),(0,s.Gw)("if (${}) {\n\t${}\n} else {\n\t${}\n}",{label:"if",detail:"/ else block",type:"keyword"}),(0,s.Gw)("class ${name} {\n\tconstructor(${params}) {\n\t\t${}\n\t}\n}",{label:"class",detail:"definition",type:"keyword"}),(0,s.Gw)('import {${names}} from "${module}"\n${}',{label:"import",detail:"named",type:"keyword"}),(0,s.Gw)('import ${name} from "${module}"\n${}',{label:"import",detail:"default",type:"keyword"})],u=c.concat([(0,s.Gw)("interface ${name} {\n\t${}\n}",{label:"interface",detail:"definition",type:"keyword"}),(0,s.Gw)("type ${name} = ${type}",{label:"type",detail:"definition",type:"keyword"}),(0,s.Gw)("enum ${name} {\n\t${}\n}",{label:"enum",detail:"definition",type:"keyword"})]),d=new l.RY,h=new Set(["Script","Block","FunctionExpression","FunctionDeclaration","ArrowFunction","MethodDeclaration","ForStatement"]);function f(e){return(t,n)=>{let r=t.node.getChild("VariableDefinition");return r&&n(r,e),!0}}const m=["FunctionDeclaration"],p={FunctionDeclaration:f("function"),ClassDeclaration:f("class"),ClassExpression:()=>!0,EnumDeclaration:f("constant"),TypeAliasDeclaration:f("type"),NamespaceDeclaration:f("namespace"),VariableDefinition(e,t){e.matchContext(m)||t(e,"variable")},TypeDefinition(e,t){t(e,"type")},__proto__:null};function g(e,t){let n=d.get(t);if(n)return n;let r=[],i=!0;function o(t,n){let i=e.sliceString(t.from,t.to);r.push({label:i,type:n})}return t.cursor(l.Qj.IncludeAnonymous).iterate((t=>{if(i)i=!1;else if(t.name){let e=p[t.name];if(e&&e(t,o)||h.has(t.name))return!1}else if(t.to-t.from>8192){for(let n of g(e,t.node))r.push(n);return!1}})),d.set(t,r),r}const b=/^[\w$\xa1-\uffff][\w$\d\xa1-\uffff]*$/,v=["TemplateString","String","RegExp","LineComment","BlockComment","VariableDefinition","TypeDefinition","Label","PropertyDefinition","PropertyName","PrivatePropertyDefinition","PrivatePropertyName",".","?."];function y(e){let t=(0,i.mv)(e.state).resolveInner(e.pos,-1);if(v.indexOf(t.name)>-1)return null;let n="VariableName"==t.name||t.to-t.from<20&&b.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)h.has(i.name)&&(r=r.concat(g(e.state.doc,i)));return{options:r,from:n?t.from:e.pos,validFor:b}}function k(e,t,n){var r;let i=[];for(;;){let o,a=t.firstChild;if("VariableName"==(null===a||void 0===a?void 0:a.name))return i.push(e(a)),{path:i.reverse(),name:n};if("MemberExpression"!=(null===a||void 0===a?void 0:a.name)||"PropertyName"!=(null===(r=o=a.lastChild)||void 0===r?void 0:r.name))return null;i.push(e(o)),t=a}}function O(e){let t=t=>e.state.doc.sliceString(t.from,t.to),n=(0,i.mv)(e.state).resolveInner(e.pos,-1);return"PropertyName"==n.name?k(t,n.parent,t(n)):"."!=n.name&&"?."!=n.name||"MemberExpression"!=n.parent.name?v.indexOf(n.name)>-1?null:"VariableName"==n.name||n.to-n.from<20&&b.test(t(n))?{path:[],name:t(n)}:"MemberExpression"==n.name?k(t,n,""):e.explicit?{path:[],name:""}:null:k(t,n.parent,"")}function w(e){let t=new Map;return n=>{let r=O(n);if(!r)return null;let i=e;for(let e of r.path)if(i=i[e],!i)return null;let o=t.get(i);return o||t.set(i,o=function(e,t){let n=[],r=new Set;for(let o=0;;o++){for(let s of(Object.getOwnPropertyNames||Object.keys)(e)){if(!/^[a-zA-Z_$\xaa-\uffdc][\w$\xaa-\uffdc]*$/.test(s)||r.has(s))continue;let a;r.add(s);try{a=e[s]}catch(i){continue}n.push({label:s,type:"function"==typeof a?/^[A-Z]/.test(s)?"class":t?"function":"method":t?"variable":"property",boost:-o})}let a=Object.getPrototypeOf(e);if(!a)return n;e=a}}(i,!r.path.length)),{from:n.pos-r.name.length,options:o,validFor:b}}}const x=i.bj.define({name:"javascript",parser:r.K.configure({props:[i.Oh.add({IfStatement:(0,i.mz)({except:/^\s*({|else\b)/}),TryStatement:(0,i.mz)({except:/^\s*({|catch\b|finally\b)/}),LabeledStatement:i._Y,SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},Block:(0,i.Ay)({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"TemplateString BlockComment":()=>null,"Statement Property":(0,i.mz)({except:/^{/}),JSXElement(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},JSXEscape(e){let t=/\s*\}/.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"JSXOpenTag JSXSelfClosingTag":e=>e.column(e.node.from)+e.unit}),i.b_.add({"Block ClassBody SwitchBody EnumBody ObjectExpression ArrayExpression ObjectType":i.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:case |default:|\{|\}|<\/)$/,wordChars:"$"}}),S={test:e=>/^JSX/.test(e.name),facet:(0,i.p9)({commentTokens:{block:{open:"{/*",close:"*/}"}}})},_=x.configure({dialect:"ts"},"typescript"),T=x.configure({dialect:"jsx",props:[i.Q0.add((e=>e.isTop?[S]:void 0))]}),E=x.configure({dialect:"jsx ts",props:[i.Q0.add((e=>e.isTop?[S]:void 0))]},"typescript");let $=e=>({label:e,type:"keyword"});const A="break case const continue default delete export extends false finally in instanceof let new return static super switch this throw true typeof var yield".split(" ").map($),C=A.concat(["declare","implements","private","protected","public"].map($));function P(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.jsx?e.typescript?E:T:e.typescript?_:x,n=e.typescript?u.concat(C):c.concat(A);return new i.Yy(t,[x.data.of({autocomplete:(0,s.Ar)(v,(0,s.et)(n))}),x.data.of({autocomplete:y}),e.jsx?D:[]])}function R(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;for(let r=null===t||void 0===t?void 0:t.firstChild;r;r=r.nextSibling)if("JSXIdentifier"==r.name||"JSXBuiltin"==r.name||"JSXNamespacedName"==r.name||"JSXMemberExpression"==r.name)return e.sliceString(r.from,Math.min(r.to,n));return""}const I="object"==typeof navigator&&/Android\b/.test(navigator.userAgent),D=a.Lz.inputHandler.of(((e,t,n,r,a)=>{if((I?e.composing:e.compositionStarted)||e.state.readOnly||t!=n||">"!=r&&"/"!=r||!x.isActiveAt(e.state,t,-1))return!1;let s=a(),{state:l}=s,c=l.changeByRange((e=>{var t;let n,{head:a}=e,s=(0,i.mv)(l).resolveInner(a-1,-1);if("JSXStartTag"==s.name&&(s=s.parent),l.doc.sliceString(a-1,a)!=r||"JSXAttributeValue"==s.name&&s.to>a);else{if(">"==r&&"JSXFragmentTag"==s.name)return{range:e,changes:{from:a,insert:""}};if("/"==r&&"JSXStartCloseTag"==s.name){let e=s.parent,r=e.parent;if(r&&e.from==a-2&&((n=R(l.doc,r.firstChild,a))||"JSXFragmentTag"==(null===(t=r.firstChild)||void 0===t?void 0:t.name))){let e="".concat(n,">");return{range:o.OF.cursor(a+e.length,-1),changes:{from:a,insert:e}}}}else if(">"==r){let t=function(e){for(;;){if("JSXOpenTag"==e.name||"JSXSelfClosingTag"==e.name||"JSXFragmentTag"==e.name)return e;if("JSXEscape"==e.name||!e.parent)return null;e=e.parent}}(s);if(t&&"JSXOpenTag"==t.name&&!/^\/?>|^<\//.test(l.doc.sliceString(a,a+2))&&(n=R(l.doc,t,a)))return{range:e,changes:{from:a,insert:"")}}}}return{range:e}}));return!c.changes.empty&&(e.dispatch([s,l.update(c,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}));function z(e,t){return t||(t={parserOptions:{ecmaVersion:2019,sourceType:"module"},env:{browser:!0,node:!0,es6:!0,es2015:!0,es2017:!0,es2020:!0},rules:{}},e.getRules().forEach(((e,n)=>{e.meta.docs.recommended&&(t.rules[n]=2)}))),n=>{let{state:r}=n,i=[];for(let{from:o,to:a}of x.findRegions(r)){let n=r.doc.lineAt(o),s={line:n.number-1,col:o-n.from,pos:o};for(let l of e.verify(r.sliceDoc(o,a),t))i.push(L(l,r.doc,s))}return i}}function N(e,t,n,r){return n.line(e+r.line).from+t+(1==e?r.col-1:-1)}function L(e,t,n){let r=N(e.line,e.column,t,n),i={from:r,to:null!=e.endLine&&1!=e.endColumn?N(e.endLine,e.endColumn,t,n):r,message:e.message,source:e.ruleId?"eslint:"+e.ruleId:"eslint",severity:1==e.severity?"warning":"error"};if(e.fix){let{range:t,text:o}=e.fix,a=t[0]+n.pos-r,s=t[1]+n.pos-r;i.actions=[{name:"fix",apply(e,t){e.dispatch({changes:{from:t+a,to:t+s,insert:o},scrollIntoView:!0})}}]}return i}},26338:(e,t,n)=>{n.r(t),n.d(t,{json:()=>s,jsonLanguage:()=>a,jsonParseLinter:()=>o});var r=n(45979),i=n(4859);const o=()=>e=>{try{JSON.parse(e.state.doc.toString())}catch(t){if(!(t instanceof SyntaxError))throw t;const n=function(e,t){let n;return(n=e.message.match(/at position (\d+)/))?Math.min(+n[1],t.length):(n=e.message.match(/at line (\d+) column (\d+)/))?Math.min(t.line(+n[1]).from+ +n[2]-1,t.length):0}(t,e.state.doc);return[{from:n,message:t.message,severity:"error",to:n}]}return[]};const a=i.bj.define({name:"json",parser:r.K.configure({props:[i.Oh.add({Object:(0,i.mz)({except:/^\s*\}/}),Array:(0,i.mz)({except:/^\s*\]/})}),i.b_.add({"Object Array":i.yd})]}),languageData:{closeBrackets:{brackets:["[","{",'"']},indentOnInput:/^\s*[\}\]]$/}});function s(){return new i.Yy(a)}},28615:(e,t,n)=>{n.r(t),n.d(t,{less:()=>v,lessCompletionSource:()=>b,lessLanguage:()=>g});var r=n(4859),i=n(98487),o=n(4179),a=n(1345);const s=[9,10,11,12,13,32,133,160,5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8232,8233,8239,8287,12288];function l(e){return e>=65&&e<=90||e>=97&&e<=122||e>=161}const c=new o.Lu(((e,t)=>{if(40==e.next){let t=e.peek(-1);(l(t)||(n=t)>=48&&n<=57||95==t||45==t)&&e.acceptToken(2,1)}var n})),u=new o.Lu((e=>{if(s.indexOf(e.peek(-1))>-1){let{next:t}=e;(l(t)||95==t||35==t||46==t||91==t||58==t||45==t)&&e.acceptToken(110)}})),d=new o.Lu((e=>{if(s.indexOf(e.peek(-1))<0){let{next:t}=e;if(37==t&&(e.advance(),e.acceptToken(1)),l(t)){do{e.advance()}while(l(e.next));e.acceptToken(1)}}})),h=(0,a.pn)({"import charset namespace keyframes media supports when":a._A.definitionKeyword,"from to selector":a._A.keyword,NamespaceName:a._A.namespace,KeyframeName:a._A.labelName,TagName:a._A.tagName,ClassName:a._A.className,PseudoClassName:a._A.constant(a._A.className),IdName:a._A.labelName,"FeatureName PropertyName PropertyVariable":a._A.propertyName,AttributeName:a._A.attributeName,NumberLiteral:a._A.number,KeywordQuery:a._A.keyword,UnaryQueryOp:a._A.operatorKeyword,"CallTag ValueName":a._A.atom,VariableName:a._A.variableName,"AtKeyword Interpolation":a._A.special(a._A.variableName),Callee:a._A.operatorKeyword,Unit:a._A.unit,"UniversalSelector NestingSelector":a._A.definitionOperator,MatchOp:a._A.compareOperator,"ChildOp SiblingOp, LogicOp":a._A.logicOperator,BinOp:a._A.arithmeticOperator,Important:a._A.modifier,"Comment LineComment":a._A.blockComment,ColorLiteral:a._A.color,"ParenthesizedContent StringLiteral":a._A.string,Escape:a._A.special(a._A.string),": ...":a._A.punctuation,"PseudoOp #":a._A.derefOperator,"; ,":a._A.separator,"( )":a._A.paren,"[ ]":a._A.squareBracket,"{ }":a._A.brace}),f={__proto__:null,lang:40,"nth-child":40,"nth-last-child":40,"nth-of-type":40,"nth-last-of-type":40,dir:40,"host-context":40,and:244,or:244,not:74,only:74,url:86,"url-prefix":86,domain:86,regexp:86,when:117,selector:142,from:172,to:174},m={__proto__:null,"@import":126,"@plugin":126,"@media":152,"@charset":156,"@namespace":160,"@keyframes":166,"@supports":178},p=o.U1.deserialize({version:14,states:"@^O!gQWOOO!nQaO'#CeOOQP'#Cd'#CdO$RQWO'#CgO$xQaO'#EaO%cQWO'#CiO%kQWO'#DZO%pQWO'#D^O%uQaO'#DfOOQP'#Es'#EsO'YQWO'#DlO'yQWO'#DyO(QQWO'#D{O(xQWO'#D}O)TQWO'#EQO'bQWO'#EWO)YQ`O'#FTO)]Q`O'#FTO)hQ`O'#FTO)vQWO'#EYOOQO'#Er'#ErOOQO'#FV'#FVOOQO'#Ec'#EcO){QWO'#EqO*WQWO'#EqQOQWOOOOQP'#Ch'#ChOOQP,59R,59RO$RQWO,59RO*bQWO'#EdO+PQWO,58|O+_QWO,59TO%kQWO,59uO%pQWO,59xO*bQWO,59{O*bQWO,59}OOQO'#De'#DeO*bQWO,5:OO,bQpO'#E}O,iQWO'#DkOOQO,58|,58|O(QQWO,58|O,pQWO,5:{OOQO,5:{,5:{OOQT'#Cl'#ClO-UQeO,59TO.cQ[O,59TOOQP'#D]'#D]OOQP,59u,59uOOQO'#D_'#D_O.hQpO,59xOOQO'#EZ'#EZO.pQ`O,5;oOOQO,5;o,5;oO/OQWO,5:WO/VQWO,5:WOOQS'#Dn'#DnO/rQWO'#DsO/yQ!fO'#FRO0eQWO'#DtOOQS'#FS'#FSO+YQWO,5:eO'bQWO'#DrOOQS'#Cu'#CuO(QQWO'#CwO0jQ!hO'#CyO2^Q!fO,5:gO2oQWO'#DWOOQS'#Ex'#ExO(QQWO'#DQOOQO'#EP'#EPO2tQWO,5:iO2yQWO,5:iOOQO'#ES'#ESO3RQWO,5:lO3WQ!fO,5:rO3iQ`O'#EkO.pQ`O,5;oOOQO,5:|,5:|O3zQWO,5:tOOQO,5:},5:}O4XQWO,5;]OOQO-E8a-E8aOOQP1G.m1G.mOOQP'#Ce'#CeO5RQaO,5;OOOQP'#Df'#DfOOQO-E8b-E8bOOQO1G.h1G.hO(QQWO1G.hO5fQWO1G.hO5nQeO1G.oO.cQ[O1G.oOOQP1G/a1G/aO6{QpO1G/dO7fQaO1G/gO8cQaO1G/iO9`QaO1G/jO:]Q!fO'#FOO:yQ!fO'#ExOOQO'#FO'#FOOOQO,5;i,5;iO<^QWO,5;iOWQWO1G/rO>]Q!fO'#DnO>qQWO,5:ZO>vQ!fO,5:_OOQO'#DP'#DPO'bQWO,5:]O?XQWO'#DwOOQS,5:b,5:bO?`QWO,5:dO'bQWO'#EiO?gQWO,5;mO*bQWO,5:`OOQO1G0P1G0PO?uQ!fO,5:^O@aQ!fO,59cOOQS,59e,59eO(QQWO,59iOOQS,59n,59nO@rQWO,59pOOQO1G0R1G0RO@yQ#tO,59rOARQ!fO,59lOOQO1G0T1G0TOBrQWO1G0TOBwQWO'#ETOOQO1G0W1G0WOOQO1G0^1G0^OOQO,5;V,5;VOOQO-E8i-E8iOCVQ!fO1G0bOCvQWO1G0`O%kQWO'#E_O$RQWO'#E`OEZQWO'#E^OOQO1G0b1G0bPEkQWO'#EcOUAN>UO!!RQWO,5;QOOQO-E8d-E8dO!!]QWOAN>dOOQS<S![;'S%T;'S;=`%f<%lO%Tm>ZY#m]|`Oy%Tz!Q%T!Q![>S![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%Tm?OY|`Oy%Tz{%T{|?n|}%T}!O?n!O!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm?sU|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@^U#m]|`Oy%Tz!Q%T!Q![@V![;'S%T;'S;=`%f<%lO%Tm@w[#m]|`Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TbAtS#xQ|`Oy%Tz;'S%T;'S;=`%f<%lO%TkBVScZOy%Tz;'S%T;'S;=`%f<%lO%TmBhXrWOy%Tz}%T}!OCT!O!P=k!P!Q%T!Q![@p![;'S%T;'S;=`%f<%lO%TmCYW|`Oy%Tz!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%TmCy[f]|`Oy%Tz}%T}!OCr!O!Q%T!Q![Cr![!c%T!c!}Cr!}#T%T#T#oCr#o;'S%T;'S;=`%f<%lO%ToDtW#iROy%Tz!O%T!O!PE^!P!Q%T!Q![>S![;'S%T;'S;=`%f<%lO%TlEcU|`Oy%Tz!O%T!O!PEu!P;'S%T;'S;=`%f<%lO%TlE|S#s[|`Oy%Tz;'S%T;'S;=`%f<%lO%T~F_VrWOy%Tz{Ft{!P%T!P!QIl!Q;'S%T;'S;=`%f<%lO%T~FyU|`OyFtyzG]z{Hd{;'SFt;'S;=`If<%lOFt~G`TOzG]z{Go{;'SG];'S;=`H^<%lOG]~GrVOzG]z{Go{!PG]!P!QHX!Q;'SG];'S;=`H^<%lOG]~H^OR~~HaP;=`<%lG]~HiW|`OyFtyzG]z{Hd{!PFt!P!QIR!Q;'SFt;'S;=`If<%lOFt~IYS|`R~Oy%Tz;'S%T;'S;=`%f<%lO%T~IiP;=`<%lFt~IsV|`S~OYIlYZ%TZyIlyzJYz;'SIl;'S;=`Jq<%lOIl~J_SS~OYJYZ;'SJY;'S;=`Jk<%lOJY~JnP;=`<%lJY~JtP;=`<%lIlmJ|[#m]Oy%Tz!O%T!O!P>S!P!Q%T!Q![@p![!g%T!g!h>y!h#X%T#X#Y>y#Y;'S%T;'S;=`%f<%lO%TkKwU^ZOy%Tz![%T![!]LZ!];'S%T;'S;=`%f<%lO%TcLbS_R|`Oy%Tz;'S%T;'S;=`%f<%lO%TkLsS!ZZOy%Tz;'S%T;'S;=`%f<%lO%ThMUUrWOy%Tz!_%T!_!`Mh!`;'S%T;'S;=`%f<%lO%ThMoS|`rWOy%Tz;'S%T;'S;=`%f<%lO%TlNSW!SSrWOy%Tz!^%T!^!_Mh!_!`%T!`!aMh!a;'S%T;'S;=`%f<%lO%TjNsV!UQrWOy%Tz!_%T!_!`Mh!`!a! Y!a;'S%T;'S;=`%f<%lO%Tb! aS!UQ|`Oy%Tz;'S%T;'S;=`%f<%lO%To! rYg]Oy%Tz!b%T!b!c!!b!c!}!#R!}#T%T#T#o!#R#o#p!$O#p;'S%T;'S;=`%f<%lO%Tm!!iWg]|`Oy%Tz!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%Tm!#Y[g]|`Oy%Tz}%T}!O!#R!O!Q%T!Q![!#R![!c%T!c!}!#R!}#T%T#T#o!#R#o;'S%T;'S;=`%f<%lO%To!$TW|`Oy%Tz!c%T!c!}!$m!}#T%T#T#o!$m#o;'S%T;'S;=`%f<%lO%To!$r^|`Oy%Tz}%T}!O!$m!O!Q%T!Q![!$m![!c%T!c!}!$m!}#T%T#T#o!$m#o#q%T#q#r!%n#r;'S%T;'S;=`%f<%lO%To!%uSp_|`Oy%Tz;'S%T;'S;=`%f<%lO%To!&W[#h_Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%To!'T[#h_|`Oy%Tz}%T}!O!&|!O!Q%T!Q![!&|![!c%T!c!}!&|!}#T%T#T#o!&|#o;'S%T;'S;=`%f<%lO%Tk!(OSyZOy%Tz;'S%T;'S;=`%f<%lO%Tm!(aSw]Oy%Tz;'S%T;'S;=`%f<%lO%Td!(pUOy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tk!)XS!^ZOy%Tz;'S%T;'S;=`%f<%lO%Tk!)jS!]ZOy%Tz;'S%T;'S;=`%f<%lO%To!){Y#oQOr%Trs!*ksw%Twx!.wxy%Tz!_%T!_!`6|!`;'S%T;'S;=`%f<%lO%Tm!*pZ|`OY!*kYZ%TZr!*krs!+csy!*kyz!+vz#O!*k#O#P!-j#P;'S!*k;'S;=`!.q<%lO!*km!+jSo]|`Oy%Tz;'S%T;'S;=`%f<%lO%T]!+yWOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d<%lO!+v]!,hOo]]!,kRO;'S!+v;'S;=`!,t;=`O!+v]!,wXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!+v<%lO!+v]!-gP;=`<%l!+vm!-oU|`Oy!*kyz!+vz;'S!*k;'S;=`!.R;=`<%l!+v<%lO!*km!.UXOY!+vZr!+vrs!,cs#O!+v#O#P!,h#P;'S!+v;'S;=`!-d;=`<%l!*k<%lO!+vm!.tP;=`<%l!*km!.|Z|`OY!.wYZ%TZw!.wwx!+cxy!.wyz!/oz#O!.w#O#P!1^#P;'S!.w;'S;=`!2e<%lO!.w]!/rWOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W<%lO!/o]!0_RO;'S!/o;'S;=`!0h;=`O!/o]!0kXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!/o<%lO!/o]!1ZP;=`<%l!/om!1cU|`Oy!.wyz!/oz;'S!.w;'S;=`!1u;=`<%l!/o<%lO!.wm!1xXOY!/oZw!/owx!,cx#O!/o#O#P!0[#P;'S!/o;'S;=`!1W;=`<%l!.w<%lO!/om!2hP;=`<%l!.w`!2nP;=`<%l$t",tokenizers:[u,d,c,0,1,2,3,4],topRules:{StyleSheet:[0,5]},specialized:[{term:116,get:e=>f[e]||-1},{term:23,get:e=>m[e]||-1}],tokenPrec:2180}),g=r.bj.define({name:"less",parser:p.configure({props:[r.Oh.add({Declaration:(0,r.mz)()}),r.b_.add({Block:r.yd})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"@-"}}),b=(0,i.defineCSSCompletionSource)((e=>"VariableName"==e.name||"AtKeyword"==e.name));function v(){return new r.Yy(g,g.data.of({autocomplete:b}))}},72882:(e,t,n)=>{n.d(t,{V:()=>a});var r=n(95297),i=n(4859);const o=i.bj.define({name:"lezer",parser:r.K.configure({props:[i.b_.add({"Body TokensBody SkipBody PrecedenceBody":i.yd})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/}});function a(){return new i.Yy(o)}},40004:(e,t,n)=>{n.r(t),n.d(t,{closePercentBrace:()=>S,liquid:()=>C,liquidCompletionSource:()=>x,liquidLanguage:()=>A});var r=n(4859),i=n(45079),o=n(1345),a=n(24450),s=n(4179),l=n(8070),c=n(67538);const u=new s.Lu((e=>{let t=e.pos;for(;;){let{next:n}=e;if(n<0)break;if(123==n){let n=e.peek(1);if(123==n){if(e.pos>t)break;return void e.acceptToken(1,2)}if(37==n){if(e.pos>t)break;let n=2,r=2;for(;;){let t=e.peek(n);if(32==t||10==t)++n;else if(35==t)for(++n;;){let t=e.peek(n);if(t<0||10==t)break;n++}else{if(45!=t||2!=r){let i=101==t&&110==e.peek(n+1)&&100==e.peek(n+2);return void e.acceptToken(i?3:2,r)}r=++n}}}}if(e.advance(),10==n)break}e.pos>t&&e.acceptToken(180)}));function d(e,t,n){return new s.Lu((r=>{let i=r.pos;for(;;){let{next:t}=r;if(123==t&&37==r.peek(1)){let t=2;for(;;t++){let e=r.peek(t);if(32!=e&&10!=e)break}let a="";for(;;t++){let e=r.peek(t);if(!((o=e)>=65&&o<=90||o>=97&&o<=122))break;a+=String.fromCharCode(e)}if(a==e){if(r.pos>i)break;r.acceptToken(n,2);break}}else if(t<0)break;if(r.advance(),10==t)break}var o;r.pos>i&&r.acceptToken(t)}))}const h=d("endcomment",182,5),f=d("endraw",181,4),m={__proto__:null,contains:32,or:36,and:36,true:50,false:50,empty:52,forloop:54,tablerowloop:56,continue:58,in:128,with:194,for:196,as:198,if:234,endif:238,unless:244,endunless:248,elsif:252,else:256,case:262,endcase:266,when:270,endfor:278,tablerow:284,endtablerow:288,break:292,cycle:298,echo:302,render:306,include:312,assign:316,capture:322,endcapture:326,increment:330,decrement:334},p={__proto__:null,if:82,endif:86,elsif:90,else:94,unless:100,endunless:104,case:110,endcase:114,when:118,for:126,endfor:136,tablerow:142,endtablerow:146,break:150,continue:154,cycle:158,comment:164,endcomment:170,raw:176,endraw:182,echo:186,render:190,include:202,assign:206,capture:212,endcapture:216,increment:220,decrement:224,liquid:228},g=s.U1.deserialize({version:14,states:"GYQYOPOOOOOP'#F{'#F{OeOXO'#CdOsQWO'#CfO!bQ`O'#DQO#{OPO'#DTO$ZOPO'#D^O$iOPO'#DcO$wOPO'#DkO%VOPO'#DsO%eOSO'#EOO%jOQO'#EUO%oOPO'#EhOOOP'#G`'#G`OOOP'#G]'#G]OOOP'#Fz'#FzQYOPOOOOOP-E9y-E9yOOQO'#Cg'#CgO&`QpO,59QO&gQpO'#G^OsQWO'#CsOOQO'#G^'#G^OOOP,59l,59lO)PQWO,59lOsQWO,59pOsQWO,59tO)WQWO,59vOsQWO,59yOsQWO,5:OOsQWO,5:SO!]QWO,5:WO!]QWO,5:`O)]QWO,5:dO)bQWO,5:fO)gQWO,5:hO)lQWO,5:kO)qQWO,5:qOsQWO,5:vOsQWO,5:xOsQWO,5;OOsQWO,5;QOsQWO,5;TOsQWO,5;XOsQWO,5;ZO+QQWO,5;]O+XOPO'#CdOOOP,59o,59oO#{OPO,59oO+gQ`O'#DWOOOP,59x,59xO$ZOPO,59xO+lQ`O'#DaOOOP,59},59}O$iOPO,59}O+qQ`O'#DfOOOP,5:V,5:VO$wOPO,5:VO+vQ`O'#DqOOOP,5:_,5:_O%VOPO,5:_O+{Q`O'#DvOOOS'#GQ'#GQO,QOSO'#ERO,YOSO,5:jOOOQ'#GR'#GRO,_OQO'#EXO,gOQO,5:pOOOP,5;S,5;SO%oOPO,5;SO,lQ`O'#EkOOOP-E9x-E9xO,qQ!bO,59SOsQWO,59VOsQWO,59VO,vQWO'#C|OOQO'#F|'#F|O,{QWO1G.lOOOP1G.l1G.lOsQWO,59VOsQWO,59ZO-TQpO,59_O-fQpO1G/WOOOP1G/W1G/WO-wQpO1G/[O.YQpO1G/`OOOP1G/b1G/bO.kQpO1G/eO.|QpO1G/jO/pQpO1G/nO/wQWO1G/rO/|QWO1G/zOOOP1G0O1G0OOOOP1G0Q1G0QO0RQWO1G0SOOOS1G0V1G0VOOOQ1G0]1G0]O0^QpO1G0bO0eQpO1G0dO1PQpO1G0jO1bQpO1G0lO1sQpO1G0oO2UQpO1G0sO2gQpO1G0uO2xQWO'#EsO3PQWO'#ExO3WQWO'#FRO3_QWO'#FYO3fQWO'#F^O3mQWO'#FqOOQO'#Ga'#GaOOQO'#GT'#GTO3tQWO1G0wOsQWO'#EtOsQWO'#EyOsQWO'#E}OOQO'#FP'#FPOsQWO'#FSOsQWO'#FWO!]QWO'#FZO!]QWO'#F_OOQO'#Fc'#FcOOQO'#Fe'#FeO3{QWO'#FfOsQWO'#FhOsQWO'#FjOsQWO'#FmOsQWO'#FoOsQWO'#FrOsQWO'#FvOsQWO'#FxOOOP1G0w1G0wOOOP1G/Z1G/ZO4QQWO,59rOOOP1G/d1G/dO4VQWO,59{OOOP1G/i1G/iO4[QWO,5:QOOOP1G/q1G/qO4aQWO,5:]OOOP1G/y1G/yO4fQWO,5:bOOOS-E:O-E:OOOOP1G0U1G0UO4kQ`O'#ESOOOQ-E:P-E:POOOP1G0[1G0[O4pQ`O'#EYOOOP1G0n1G0nO4uQWO,5;VOOQO1G.n1G.nOOQO1G.q1G.qO7ZQpO1G.qOOQO'#DO'#DOO7eQWO,59hOOQO-E9z-E9zOOOP7+$W7+$WO9_QpO1G.qO9iQpO1G.uOsQWO1G.yOOOP7+$r7+$rOOOP7+$v7+$vOOOP7+$z7+$zOOOP7+%P7+%POOOP7+%U7+%UOsQWO'#F}OkQpO,5;eO@UQpO,5;iOBRQpO,5;nOClQpO,5;rOE_QWO,5;uOEdQWO,5;yOEiQWO,5dOOOPAN>dAN>dO!5aQWOAN>lOOOPAN>lAN>lO!5iQWOAN>tOOOPAN>tAN>tOsQWO1G0fO!]QWO1G0fO!5qQpO7+&{O!7QQpO7+'PO!8aQWO7+'WO!:TQWO,5m[e]||-1},{term:37,get:e=>p[e]||-1}],tokenPrec:0});function b(e,t){return e.split(" ").map((e=>({label:e,type:t})))}const v=b("abs append at_least at_most capitalize ceil compact concat date default divided_by downcase escape escape_once first floor join last lstrip map minus modulo newline_to_br plus prepend remove remove_first replace replace_first reverse round rstrip size slice sort sort_natural split strip strip_html strip_newlines sum times truncate truncatewords uniq upcase url_decode url_encode where","function"),y=b("cycle comment endcomment raw endraw echo increment decrement liquid if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue assign capture endcapture render include","keyword"),k=b("empty forloop tablerowloop in with as contains","keyword"),O=b("first index index0 last length rindex","property"),w=b("col col0 col_first col_last first index index0 last length rindex rindex0 row","property");function x(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.filters?e.filters.concat(v):v,n=e.tags?e.tags.concat(y):y,i=e.variables?e.variables.concat(k):k,{properties:o}=e;return e=>{var a;let s=function(e){var t;let{state:n,pos:i}=e,o=(0,r.mv)(n).resolveInner(i,-1).enterUnfinishedNodesBefore(i),a=(null===(t=o.childBefore(i))||void 0===t?void 0:t.name)||o.name;if("FilterName"==o.name)return{type:"filter",node:o};if(e.explicit&&"|"==a)return{type:"filter"};if("TagName"==o.name)return{type:"tag",node:o};if(e.explicit&&"{%"==a)return{type:"tag"};if("PropertyName"==o.name&&"MemberExpression"==o.parent.name)return{type:"property",node:o,target:o.parent};if("."==o.name&&"MemberExpression"==o.parent.name)return{type:"property",target:o.parent};if("MemberExpression"==o.name&&"."==a)return{type:"property",target:o};if("VariableName"==o.name)return{type:"expression",from:o.from};let s=e.matchBefore(/[\w\u00c0-\uffff]+$/);return s?{type:"expression",from:s.from}:e.explicit&&"CommentText"!=o.name&&"StringLiteral"!=o.name&&"NumberLiteral"!=o.name&&"InlineComment"!=o.name?{type:"expression"}:null}(e);if(!s)return null;let l,c=null!==(a=s.from)&&void 0!==a?a:s.node?s.node.from:e.pos;return l="filter"==s.type?t:"tag"==s.type?n:"expression"==s.type?i:function(e,t,n,r){let i=[];for(;;){let n=t.getChild("Expression");if(!n)return[];if("forloop"==n.name)return i.length?[]:O;if("tablerowloop"==n.name)return i.length?[]:w;if("VariableName"==n.name){i.unshift(e.sliceDoc(n.from,n.to));break}if("MemberExpression"!=n.name)return[];{let r=n.getChild("PropertyName");r&&i.unshift(e.sliceDoc(r.from,r.to)),t=n}}return r?r(i,e,n):[]}(e.state,s.target,e,o),l.length?{options:l,from:c,validFor:/^[\w\u00c0-\uffff]*$/}:null}}const S=c.Lz.inputHandler.of(((e,t,n,r)=>"%"==r&&t==n&&"{}"==e.state.doc.sliceString(t-1,n+1)&&(e.dispatch(e.state.changeByRange((e=>({changes:{from:e.from,to:e.to,insert:"%%"},range:l.OF.cursor(e.from+1)}))),{scrollIntoView:!0,userEvent:"input.type"}),!0)));function _(e){return t=>{let n=e.test(t.textAfter);return t.lineIndent(t.node.from)+(n?0:t.unit)}}const T=r.bj.define({name:"liquid",parser:g.configure({props:[(0,o.pn)({"cycle comment endcomment raw endraw echo increment decrement liquid in with as":o._A.keyword,"empty forloop tablerowloop":o._A.atom,"if elsif else endif unless endunless case endcase for endfor tablerow endtablerow break continue":o._A.controlKeyword,"assign capture endcapture":o._A.definitionKeyword,contains:o._A.operatorKeyword,"render include":o._A.moduleKeyword,VariableName:o._A.variableName,TagName:o._A.tagName,FilterName:o._A.function(o._A.variableName),PropertyName:o._A.propertyName,CompareOp:o._A.compareOperator,AssignOp:o._A.definitionOperator,LogicOp:o._A.logicOperator,NumberLiteral:o._A.number,StringLiteral:o._A.string,BooleanLiteral:o._A.bool,InlineComment:o._A.lineComment,CommentText:o._A.blockComment,"{% %} {{ }}":o._A.brace,"( )":o._A.paren,".":o._A.derefOperator,", .. : |":o._A.punctuation}),r.Oh.add({Tag:(0,r.Ay)({closing:"%}"}),"UnlessDirective ForDirective TablerowDirective CaptureDirective":_(/^\s*(\{%-?\s*)?end\w/),IfDirective:_(/^\s*(\{%-?\s*)?(endif|else|elsif)\b/),CaseDirective:_(/^\s*(\{%-?\s*)?(endcase|when)\b/)}),r.b_.add({"UnlessDirective ForDirective TablerowDirective CaptureDirective IfDirective CaseDirective RawDirective Comment"(e){let t=e.firstChild,n=e.lastChild;return t&&"Tag"==t.name?{from:t.to,to:"EndTag"==n.name?n.from:e.to}:null}})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*{%-?\s*(?:end|elsif|else|when|)$/}}),E=(0,i.html)();function $(e){return T.configure({wrap:(0,a.$g)((t=>t.type.isTop?{parser:e.parser,overlay:e=>"Text"==e.name||"RawText"==e.name}:null))},"liquid")}const A=$(E.language);function C(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.base||E,n=t.language==E.language?A:$(t.language);return new r.Yy(n,[t.support,n.data.of({autocomplete:x(e)}),t.language.data.of({closeBrackets:{brackets:["{"]}}),S])}},78071:(e,t,n)=>{n.r(t),n.d(t,{commonmarkLanguage:()=>b,deleteMarkupBackward:()=>E,insertNewlineContinueMarkup:()=>S,markdown:()=>C,markdownKeymap:()=>$,markdownLanguage:()=>v});var r=n(8070),i=n(67538),o=n(4859),a=n(55045),s=n(40826),l=n(45079),c=n(24450);const u=(0,o.p9)({commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}}}),d=new c.uY,h=s.K3.configure({props:[o.b_.add((e=>!e.is("Block")||e.is("Document")||null!=f(e)||function(e){return"OrderedList"==e.name||"BulletList"==e.name}(e)?void 0:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to}))),d.add(f),o.Oh.add({Document:()=>null}),o.iB.add({Document:u})]});function f(e){let t=/^(?:ATX|Setext)Heading(\d)$/.exec(e.name);return t?+t[1]:void 0}function m(e,t){let n=e;for(;;){let e,r=n.nextSibling;if(!r||null!=(e=f(r.type))&&e<=t)break;n=r}return n.to}const p=o.t.of(((e,t,n)=>{for(let r=(0,o.mv)(e).resolveInner(n,-1);r&&!(r.fromn)return{from:n,to:t}}return null}));function g(e){return new o.TM(u,e,[p],"markdown")}const b=g(h),v=g(h.configure([s.Fz,s.E,s.Z3,s.zT,{props:[o.b_.add({Table:(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}]));class y{constructor(e,t,n,r,i,o,a){this.node=e,this.from=t,this.to=n,this.spaceBefore=r,this.spaceAfter=i,this.type=o,this.item=a}blank(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=this.spaceBefore+("Blockquote"==this.node.name?">":"");if(null!=e){for(;n.length0;r--)n+=" ";return n+(t?this.spaceAfter:"")}marker(e,t){let n="OrderedList"==this.node.name?String(+O(this.item,e)[2]+t):"";return this.spaceBefore+n+this.type+this.spaceAfter}}function k(e,t){let n=[];for(let i=e;i&&"Document"!=i.name;i=i.parent)"ListItem"!=i.name&&"Blockquote"!=i.name&&"FencedCode"!=i.name||n.push(i);let r=[];for(let i=n.length-1;i>=0;i--){let e,o=n[i],a=t.lineAt(o.from),s=o.from-a.from;if("FencedCode"==o.name)r.push(new y(o,s,s,"","","",null));else if("Blockquote"==o.name&&(e=/^ *>( ?)/.exec(a.text.slice(s))))r.push(new y(o,s,s+e[0].length,"",e[1],">",null));else if("ListItem"==o.name&&"OrderedList"==o.parent.name&&(e=/^( *)\d+([.)])( *)/.exec(a.text.slice(s)))){let t=e[3],n=e[0].length;t.length>=4&&(t=t.slice(0,t.length-4),n-=4),r.push(new y(o.parent,s,s+n,e[1],t,e[2],o))}else if("ListItem"==o.name&&"BulletList"==o.parent.name&&(e=/^( *)([-+*])( {1,4}\[[ xX]\])?( +)/.exec(a.text.slice(s)))){let t=e[4],n=e[0].length;t.length>4&&(t=t.slice(0,t.length-4),n-=4);let i=e[2];e[3]&&(i+=e[3].replace(/[xX]/," ")),r.push(new y(o.parent,s,s+n,e[1],t,i,o))}}return r}function O(e,t){return/^(\s*)(\d+)(?=[.)])/.exec(t.sliceString(e.from,e.from+10))}function w(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0;for(let i=-1,o=e;;){if("ListItem"==o.name){let e=O(o,t),a=+e[2];if(i>=0){if(a!=i+1)return;n.push({from:o.from+e[1].length,to:o.from+e[0].length,insert:String(i+2+r)})}i=a}let e=o.nextSibling;if(!e)break;o=e}}function x(e,t){let n=/^[ \t]*/.exec(e)[0].length;if(!n||"\t"!=t.facet(o.Xt))return e;let i="";for(let o=(0,r.y$)(e,4,n);o>0;)o>=4?(i+="\t",o-=4):(i+=" ",o--);return i+e.slice(n)}const S=e=>{let{state:t,dispatch:n}=e,i=(0,o.mv)(t),{doc:a}=t,s=null,l=t.changeByRange((e=>{if(!e.empty||!v.isActiveAt(t,e.from))return s={range:e};let n=e.from,o=a.lineAt(n),l=k(i.resolveInner(n,-1),a);for(;l.length&&l[l.length-1].from>n-o.from;)l.pop();if(!l.length)return s={range:e};let c=l[l.length-1];if(c.to-c.spaceAfter.length>n-o.from)return s={range:e};let u=n>=c.to-c.spaceAfter.length&&!/\S/.test(o.text.slice(c.to));if(c.item&&u){let e=c.node.firstChild,i=c.node.getChild("ListItem","ListItem");if(e.to>=n||i&&i.to0&&!/[^\s>]/.test(a.lineAt(o.from-1).text)){let e,t=l.length>1?l[l.length-2]:null,i="";t&&t.item?(e=o.from+t.from,i=t.marker(a,1)):e=o.from+(t?t.to:0);let s=[{from:e,to:n,insert:i}];return"OrderedList"==c.node.name&&w(c.item,a,s,-2),t&&"OrderedList"==t.node.name&&w(t.item,a,s),{range:r.OF.cursor(e+i.length),changes:s}}{let e=T(l,t,o);return{range:r.OF.cursor(n+e.length+1),changes:{from:o.from,insert:e+t.lineBreak}}}}if("Blockquote"==c.node.name&&u&&o.from){let n=a.lineAt(o.from-1),r=/>\s*$/.exec(n.text);if(r&&r.index==c.from){let i=t.changes([{from:n.from+r.index,to:n.to},{from:o.from+c.from,to:o.to}]);return{range:e.map(i),changes:i}}}let d=[];"OrderedList"==c.node.name&&w(c.item,a,d);let h=c.item&&c.item.from]*/.exec(o.text)[0].length>=c.to)for(let t=0,i=l.length-1;t<=i;t++)f+=t!=i||h?l[t].blank(to.from&&/\s/.test(o.text.charAt(m-o.from-1));)m--;return f=x(f,t),function(e,t){if("OrderedList"!=e.name&&"BulletList"!=e.name)return!1;let n=e.firstChild,r=e.getChild("ListItem","ListItem");if(!r)return!1;let i=t.lineAt(n.to),o=t.lineAt(r.from),a=/^[\s>]*$/.test(i.text);return i.number+(a?0:1){let{state:t,dispatch:n}=e,i=(0,o.mv)(t),a=null,s=t.changeByRange((e=>{let n=e.from,{doc:o}=t;if(e.empty&&v.isActiveAt(t,e.from)){let e=o.lineAt(n),a=k(function(e,t){let n=e.resolveInner(t,-1),r=t;_(n)&&(r=n.from,n=n.parent);for(let i;i=n.childBefore(r);)if(_(i))r=i.from;else{if("OrderedList"!=i.name&&"BulletList"!=i.name)break;n=i.lastChild,r=n.to}return n}(i,n),o);if(a.length){let i=a[a.length-1],o=i.to-i.spaceAfter.length+(i.spaceAfter?1:0);if(n-e.from>o&&!/\S/.test(e.text.slice(o,n-e.from)))return{range:r.OF.cursor(e.from+o),changes:{from:e.from+o,to:n}};if(n-e.from==o&&(!i.item||e.from<=i.item.from||!/\S/.test(e.text.slice(0,i.to)))){let o=e.from+i.from;if(i.item&&i.node.from0&&void 0!==arguments[0]?arguments[0]:{},{codeLanguages:t,defaultCodeLanguage:n,addKeymap:a=!0,base:{parser:l}=b,completeHTMLTags:c=!0}=e;if(!(l instanceof s.Fd))throw new RangeError("Base parser provided to `markdown` should be a Markdown parser");let u,d=e.extensions?[e.extensions]:[],h=[A.support];n instanceof o.Yy?(h.push(n.support),u=n.language):n&&(u=n);let f=t||u?(m=t,p=u,e=>{if(e&&m){let t=null;if(e=/\S*/.exec(e)[0],t="function"==typeof m?m(e):o.t$.matchLanguageName(m,e,!0),t instanceof o.t$)return t.support?t.support.language.parser:o.nq.getSkippingParser(t.load());if(t)return t.parser}return p?p.parser:null}):void 0;var m,p;d.push((0,s.Xp)({codeParser:f,htmlParser:A.language.parser})),a&&h.push(r.Nb.high(i.w4.of($)));let v=g(l.configure(d));return c&&h.push(v.data.of({autocomplete:P})),new o.Yy(v,h)}function P(e){let{state:t,pos:n}=e,r=/<[:\-\.\w\u00b7-\uffff]*$/.exec(t.sliceDoc(n-25,n));if(!r)return null;let i=(0,o.mv)(t).resolveInner(n,-1);for(;i&&!i.type.isTop;){if("CodeBlock"==i.name||"FencedCode"==i.name||"ProcessingInstructionBlock"==i.name||"CommentBlock"==i.name||"Link"==i.name||"Image"==i.name)return null;i=i.parent}return{from:n-r[0].length,to:n,options:I(),validFor:/^<[:\-\.\w\u00b7-\uffff]*$/}}let R=null;function I(){if(R)return R;let e=(0,l.htmlCompletionSource)(new a._5(r.$t.create({extensions:A}),0,!0));return R=e?e.options:[]}},96914:(e,t,n)=>{n.r(t),n.d(t,{php:()=>l,phpLanguage:()=>s});var r=n(19891),i=n(24450),o=n(45079),a=n(4859);const s=a.bj.define({name:"php",parser:r.K.configure({props:[a.Oh.add({IfStatement:(0,a.mz)({except:/^\s*({|else\b|elseif\b|endif\b)/}),TryStatement:(0,a.mz)({except:/^\s*({|catch\b|finally\b)/}),SwitchBody:e=>{let t=e.textAfter,n=/^\s*\}/.test(t),r=/^\s*(case|default)\b/.test(t);return e.baseIndent+(n?0:r?1:2)*e.unit},ColonBlock:e=>e.baseIndent+e.unit,"Block EnumBody DeclarationList":(0,a.Ay)({closing:"}"}),ArrowFunction:e=>e.baseIndent+e.unit,"String BlockComment":()=>null,Statement:(0,a.mz)({except:/^({|end(for|foreach|switch|while)\b)/})}),a.b_.add({"Block EnumBody DeclarationList SwitchBody ArrayExpression ValueList":a.yd,ColonBlock:e=>({from:e.from+1,to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*(?:case |default:|end(?:if|for(?:each)?|switch|while)|else(?:if)?|\{|\})$/,wordChars:"$",closeBrackets:{stringPrefixes:["b","B"]}}});function l(){let e,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=[];if(null===t.baseLanguage);else if(t.baseLanguage)e=t.baseLanguage;else{let t=(0,o.html)({matchClosingTags:!1});n.push(t.support),e=t.language}return new a.Yy(s.configure({wrap:e&&(0,i.$g)((t=>t.type.isTop?{parser:e.parser,overlay:e=>"Text"==e.name}:null)),top:t.plain?"Program":"Template"}),n)}},85318:(e,t,n)=>{n.r(t),n.d(t,{globalCompletion:()=>b,localCompletionSource:()=>m,python:()=>O,pythonLanguage:()=>k});var r=n(98539),i=n(4859),o=n(24450),a=n(55045);const s=new o.RY,l=new Set(["Script","Body","FunctionDefinition","ClassDefinition","LambdaExpression","ForStatement","MatchClause"]);function c(e){return(t,n,r)=>{if(r)return!1;let i=t.node.getChild("VariableName");return i&&n(i,e),!0}}const u={FunctionDefinition:c("function"),ClassDefinition:c("class"),ForStatement(e,t,n){if(n)for(let r=e.node.firstChild;r;r=r.nextSibling)if("VariableName"==r.name)t(r,"variable");else if("in"==r.name)break},ImportStatement(e,t){var n,r;let{node:i}=e,o="from"==(null===(n=i.firstChild)||void 0===n?void 0:n.name);for(let a=i.getChild("import");a;a=a.nextSibling)"VariableName"==a.name&&"as"!=(null===(r=a.nextSibling)||void 0===r?void 0:r.name)&&t(a,o?"variable":"namespace")},AssignStatement(e,t){for(let n=e.node.firstChild;n;n=n.nextSibling)if("VariableName"==n.name)t(n,"variable");else if(":"==n.name||"AssignOp"==n.name)break},ParamList(e,t){for(let n=null,r=e.node.firstChild;r;r=r.nextSibling)"VariableName"!=r.name||n&&/\*|AssignOp/.test(n.name)||t(r,"variable"),n=r},CapturePattern:c("variable"),AsPattern:c("variable"),__proto__:null};function d(e,t){let n=s.get(t);if(n)return n;let r=[],i=!0;function a(t,n){let i=e.sliceString(t.from,t.to);r.push({label:i,type:n})}return t.cursor(o.Qj.IncludeAnonymous).iterate((t=>{if(t.name){let e=u[t.name];if(e&&e(t,a,i)||!i&&l.has(t.name))return!1;i=!1}else if(t.to-t.from>8192){for(let n of d(e,t.node))r.push(n);return!1}})),s.set(t,r),r}const h=/^[\w\xa1-\uffff][\w\d\xa1-\uffff]*$/,f=["String","FormatString","Comment","PropertyName"];function m(e){let t=(0,i.mv)(e.state).resolveInner(e.pos,-1);if(f.indexOf(t.name)>-1)return null;let n="VariableName"==t.name||t.to-t.from<20&&h.test(e.state.sliceDoc(t.from,t.to));if(!n&&!e.explicit)return null;let r=[];for(let i=t;i;i=i.parent)l.has(i.name)&&(r=r.concat(d(e.state.doc,i)));return{options:r,from:n?t.from:e.pos,validFor:h}}const p=["__annotations__","__builtins__","__debug__","__doc__","__import__","__name__","__loader__","__package__","__spec__","False","None","True"].map((e=>({label:e,type:"constant"}))).concat(["ArithmeticError","AssertionError","AttributeError","BaseException","BlockingIOError","BrokenPipeError","BufferError","BytesWarning","ChildProcessError","ConnectionAbortedError","ConnectionError","ConnectionRefusedError","ConnectionResetError","DeprecationWarning","EOFError","Ellipsis","EncodingWarning","EnvironmentError","Exception","FileExistsError","FileNotFoundError","FloatingPointError","FutureWarning","GeneratorExit","IOError","ImportError","ImportWarning","IndentationError","IndexError","InterruptedError","IsADirectoryError","KeyError","KeyboardInterrupt","LookupError","MemoryError","ModuleNotFoundError","NameError","NotADirectoryError","NotImplemented","NotImplementedError","OSError","OverflowError","PendingDeprecationWarning","PermissionError","ProcessLookupError","RecursionError","ReferenceError","ResourceWarning","RuntimeError","RuntimeWarning","StopAsyncIteration","StopIteration","SyntaxError","SyntaxWarning","SystemError","SystemExit","TabError","TimeoutError","TypeError","UnboundLocalError","UnicodeDecodeError","UnicodeEncodeError","UnicodeError","UnicodeTranslateError","UnicodeWarning","UserWarning","ValueError","Warning","ZeroDivisionError"].map((e=>({label:e,type:"type"})))).concat(["bool","bytearray","bytes","classmethod","complex","float","frozenset","int","list","map","memoryview","object","range","set","staticmethod","str","super","tuple","type"].map((e=>({label:e,type:"class"})))).concat(["abs","aiter","all","anext","any","ascii","bin","breakpoint","callable","chr","compile","delattr","dict","dir","divmod","enumerate","eval","exec","exit","filter","format","getattr","globals","hasattr","hash","help","hex","id","input","isinstance","issubclass","iter","len","license","locals","max","min","next","oct","open","ord","pow","print","property","quit","repr","reversed","round","setattr","slice","sorted","sum","vars","zip"].map((e=>({label:e,type:"function"})))),g=[(0,a.Gw)("def ${name}(${params}):\n\t${}",{label:"def",detail:"function",type:"keyword"}),(0,a.Gw)("for ${name} in ${collection}:\n\t${}",{label:"for",detail:"loop",type:"keyword"}),(0,a.Gw)("while ${}:\n\t${}",{label:"while",detail:"loop",type:"keyword"}),(0,a.Gw)("try:\n\t${}\nexcept ${error}:\n\t${}",{label:"try",detail:"/ except block",type:"keyword"}),(0,a.Gw)("if ${}:\n\t\n",{label:"if",detail:"block",type:"keyword"}),(0,a.Gw)("if ${}:\n\t${}\nelse:\n\t${}",{label:"if",detail:"/ else block",type:"keyword"}),(0,a.Gw)("class ${name}:\n\tdef __init__(self, ${params}):\n\t\t\t${}",{label:"class",detail:"definition",type:"keyword"}),(0,a.Gw)("import ${module}",{label:"import",detail:"statement",type:"keyword"}),(0,a.Gw)("from ${module} import ${names}",{label:"from",detail:"import",type:"keyword"})],b=(0,a.Ar)(f,(0,a.et)(p.concat(g)));function v(e){let{node:t,pos:n}=e,r=e.lineIndent(n,-1),i=null;for(;;){let o=t.childBefore(n);if(!o)break;if("Comment"==o.name)n=o.from;else if("Body"==o.name)e.baseIndentFor(o)+e.unit<=r&&(i=o),t=o;else{if(!o.type.is("Statement"))break;t=o}}return i}function y(e,t){let n=e.baseIndentFor(t),r=e.lineAt(e.pos,-1),i=r.from+r.text.length;return/^\s*($|#)/.test(r.text)&&e.node.ton?null:n+e.unit}const k=i.bj.define({name:"python",parser:r.K.configure({props:[i.Oh.add({Body:e=>{var t;return null!==(t=y(e,v(e)||e.node))&&void 0!==t?t:e.continue()},IfStatement:e=>/^\s*(else:|elif )/.test(e.textAfter)?e.baseIndent:e.continue(),"ForStatement WhileStatement":e=>/^\s*else:/.test(e.textAfter)?e.baseIndent:e.continue(),TryStatement:e=>/^\s*(except |finally:|else:)/.test(e.textAfter)?e.baseIndent:e.continue(),"TupleExpression ComprehensionExpression ParamList ArgList ParenthesizedExpression":(0,i.Ay)({closing:")"}),"DictionaryExpression DictionaryComprehensionExpression SetExpression SetComprehensionExpression":(0,i.Ay)({closing:"}"}),"ArrayExpression ArrayComprehensionExpression":(0,i.Ay)({closing:"]"}),"String FormatString":()=>null,Script:e=>{var t;let n=v(e);return null!==(t=n&&y(e,n))&&void 0!==t?t:e.continue()}}),i.b_.add({"ArrayExpression DictionaryExpression SetExpression TupleExpression":i.yd,Body:(e,t)=>({from:e.from+1,to:e.to-(e.to==t.doc.length?0:1)})})]}),languageData:{closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""'],stringPrefixes:["f","fr","rf","r","u","b","br","rb","F","FR","RF","R","U","B","BR","RB"]},commentTokens:{line:"#"},indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/}});function O(){return new i.Yy(k,[k.data.of({autocomplete:m}),k.data.of({autocomplete:b})])}},28270:(e,t,n)=>{n.r(t),n.d(t,{rust:()=>a,rustLanguage:()=>o});var r=n(26735),i=n(4859);const o=i.bj.define({name:"rust",parser:r.K.configure({props:[i.Oh.add({IfExpression:(0,i.mz)({except:/^\s*({|else\b)/}),"String BlockComment":()=>null,AttributeItem:e=>e.continue(),"Statement MatchArm":(0,i.mz)()}),i.b_.add((e=>/(Block|edTokens|List)$/.test(e.name)?i.yd:"BlockComment"==e.name?e=>({from:e.from+2,to:e.to-2}):void 0))]}),languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},indentOnInput:/^\s*(?:\{|\})$/,closeBrackets:{stringPrefixes:["b","r","br"]}}});function a(){return new i.Yy(o)}},1130:(e,t,n)=>{n.r(t),n.d(t,{sass:()=>c,sassCompletionSource:()=>l,sassLanguage:()=>a});var r=n(59671),i=n(4859),o=n(98487);const a=i.bj.define({name:"sass",parser:r.K.configure({props:[i.b_.add({Block:i.yd,Comment:(e,t)=>({from:e.from+2,to:"*/"==t.sliceDoc(e.to-2,e.to)?e.to-2:e.to})}),i.Oh.add({Declaration:(0,i.mz)()})]}),languageData:{commentTokens:{block:{open:"/*",close:"*/"},line:"//"},indentOnInput:/^\s*\}$/,wordChars:"$-"}}),s=a.configure({dialect:"indented",props:[i.Oh.add({"Block RuleSet":e=>e.baseIndent+e.unit}),i.b_.add({Block:e=>({from:e.from,to:e.to})})]}),l=(0,o.defineCSSCompletionSource)((e=>"VariableName"==e.name||"SassVariableName"==e.name));function c(e){return new i.Yy((null===e||void 0===e?void 0:e.indented)?s:a,a.data.of({autocomplete:l}))}},28694:(e,t,n)=>{n.r(t),n.d(t,{Cassandra:()=>te,MSSQL:()=>J,MariaSQL:()=>K,MySQL:()=>H,PLSQL:()=>ne,PostgreSQL:()=>G,SQLDialect:()=>q,SQLite:()=>ee,StandardSQL:()=>V,keywordCompletion:()=>B,keywordCompletionSource:()=>W,schemaCompletion:()=>U,schemaCompletionSource:()=>F,sql:()=>j});var r=n(4859),i=n(1345),o=n(4179),a=n(55045);const s=5,l=6,c=20,u=21,d=24;function h(e){return e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57}function f(e,t,n){for(let r=!1;;){if(e.next<0)return;if(e.next==t&&!r)return void e.advance();r=n&&!r&&92==e.next,e.advance()}}function m(e,t){for(;95==e.next||h(e.next);)null!=t&&(t+=String.fromCharCode(e.next)),e.advance();return t}function p(e,t){for(;48==e.next||49==e.next;)e.advance();t&&e.next==t&&e.advance()}function g(e,t){for(;;){if(46==e.next){if(t)break;t=!0}else if(e.next<48||e.next>57)break;e.advance()}if(69==e.next||101==e.next)for(e.advance(),43!=e.next&&45!=e.next||e.advance();e.next>=48&&e.next<=57;)e.advance()}function b(e){for(;!(e.next<0||10==e.next);)e.advance()}function v(e,t){for(let n=0;n!=&|~^/",specialVar:"?",identifierQuotes:'"',words:k(w,O)};function S(e){return new o.Lu((t=>{var n;let{next:r}=t;if(t.advance(),v(r,y)){for(;v(t.next,y);)t.advance();t.acceptToken(36)}else if(36==r&&e.doubleDollarQuotedStrings){let e=m(t,"");36==t.next&&(t.advance(),function(e,t){e:for(;;){if(e.next<0)return console.log("exit at end",e.pos);if(36==e.next){e.advance();for(let n=0;n1){t.advance(),f(t,39,e.backslashEscapes),t.acceptToken(3);break}if(!h(t.next))break;t.advance()}else if(e.plsqlQuotingMechanism&&(113==r||81==r)&&39==t.next&&t.peek(1)>0&&!v(t.peek(1),y)){let e=t.peek(1);t.advance(2),function(e,t){let n="[{<(".indexOf(String.fromCharCode(t)),r=n<0?t:"]}>)".charCodeAt(n);for(;;){if(e.next<0)return;if(e.next==r&&39==e.peek(1))return void e.advance(2);e.advance()}}(t,e),t.acceptToken(3)}else if(40==r)t.acceptToken(7);else if(41==r)t.acceptToken(8);else if(123==r)t.acceptToken(9);else if(125==r)t.acceptToken(10);else if(91==r)t.acceptToken(11);else if(93==r)t.acceptToken(12);else if(59==r)t.acceptToken(13);else if(e.unquotedBitLiterals&&48==r&&98==t.next)t.advance(),p(t),t.acceptToken(22);else if(98!=r&&66!=r||39!=t.next&&34!=t.next){if(48==r&&(120==t.next||88==t.next)||(120==r||88==r)&&39==t.next){let e=39==t.next;for(t.advance();(i=t.next)>=48&&i<=57||i>=97&&i<=102||i>=65&&i<=70;)t.advance();e&&39==t.next&&t.advance(),t.acceptToken(4)}else if(46==r&&t.next>=48&&t.next<=57)g(t,!0),t.acceptToken(4);else if(46==r)t.acceptToken(14);else if(r>=48&&r<=57)g(t,!1),t.acceptToken(4);else if(v(r,e.operatorChars)){for(;v(t.next,e.operatorChars);)t.advance();t.acceptToken(15)}else if(v(r,e.specialVar))t.next==r&&t.advance(),function(e){if(39==e.next||34==e.next||96==e.next){let t=e.next;e.advance(),f(e,t,!1)}else m(e)}(t),t.acceptToken(17);else if(v(r,e.identifierQuotes))f(t,r,!1),t.acceptToken(19);else if(58==r||44==r)t.acceptToken(16);else if(h(r)){let i=m(t,String.fromCharCode(r));t.acceptToken(46==t.next||46==t.peek(-i.length-1)?18:null!==(n=e.words[i.toLowerCase()])&&void 0!==n?n:18)}}else{const n=t.next;t.advance(),e.treatBitsAsBytes?(f(t,n,e.backslashEscapes),t.acceptToken(23)):(p(t,n),t.acceptToken(22))}else t.advance(),f(t,39,e.backslashEscapes),t.acceptToken(3);else t.advance(),f(t,39,!0);else b(t),t.acceptToken(1);var i}))}const _=S(x),T=o.U1.deserialize({version:14,states:"%vQ]QQOOO#wQRO'#DSO$OQQO'#CwO%eQQO'#CxO%lQQO'#CyO%sQQO'#CzOOQQ'#DS'#DSOOQQ'#C}'#C}O'UQRO'#C{OOQQ'#Cv'#CvOOQQ'#C|'#C|Q]QQOOQOQQOOO'`QQO'#DOO(xQRO,59cO)PQQO,59cO)UQQO'#DSOOQQ,59d,59dO)cQQO,59dOOQQ,59e,59eO)jQQO,59eOOQQ,59f,59fO)qQQO,59fOOQQ-E6{-E6{OOQQ,59b,59bOOQQ-E6z-E6zOOQQ,59j,59jOOQQ-E6|-E6|O+VQRO1G.}O+^QQO,59cOOQQ1G/O1G/OOOQQ1G/P1G/POOQQ1G/Q1G/QP+kQQO'#C}O+rQQO1G.}O)PQQO,59cO,PQQO'#Cw",stateData:",[~OtOSPOSQOS~ORUOSUOTUOUUOVROXSOZTO]XO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O^]ORvXSvXTvXUvXVvXXvXZvX]vX_vX`vXavXbvXcvXdvXevXfvXgvXhvX~OsvX~P!jOa_Ob_Oc_O~ORUOSUOTUOUUOVROXSOZTO^tO_UO`UOa`Ob`Oc`OdUOeUOfUOgUOhUO~OWaO~P$ZOYcO~P$ZO[eO~P$ZORUOSUOTUOUUOVROXSOZTO^QO_UO`UOaPObPOcPOdUOeUOfUOgUOhUO~O]hOsoX~P%zOajObjOcjO~O^]ORkaSkaTkaUkaVkaXkaZka]ka_ka`kaakabkackadkaekafkagkahka~Oska~P'kO^]O~OWvXYvX[vX~P!jOWnO~P$ZOYoO~P$ZO[pO~P$ZO^]ORkiSkiTkiUkiVkiXkiZki]ki_ki`kiakibkickidkiekifkigkihki~Oski~P)xOWkaYka[ka~P'kO]hO~P$ZOWkiYki[ki~P)xOasObsOcsO~O",goto:"#hwPPPPPPPPPPPPPPPPPPPPPPPPPPx||||!Y!^!d!xPPP#[TYOZeUORSTWZbdfqT[OZQZORiZSWOZQbRQdSQfTZgWbdfqQ^PWk^lmrQl_Qm`RrseVORSTWZbdfq",nodeNames:"\u26a0 LineComment BlockComment String Number Bool Null ( ) { } [ ] ; . Operator Punctuation SpecialVar Identifier QuotedIdentifier Keyword Type Bits Bytes Builtin Script Statement CompositeIdentifier Parens Braces Brackets Statement",maxTerm:38,nodeProps:[["isolate",-4,1,2,3,19,""]],skippedNodes:[0,1,2],repeatNodeCount:3,tokenData:"RORO",tokenizers:[0,_],topRules:{Script:[0,25]},tokenPrec:0});function E(e){let t=e.cursor().moveTo(e.from,-1);for(;/Comment/.test(t.name);)t.moveTo(t.from,-1);return t.node}function $(e,t){let n=e.sliceString(t.from,t.to),r=/^([`'"])(.*)\1$/.exec(n);return r?r[2]:n}function A(e){return e&&("Identifier"==e.name||"QuotedIdentifier"==e.name)}function C(e,t){if("CompositeIdentifier"==t.name){let n=[];for(let r=t.firstChild;r;r=r.nextSibling)A(r)&&n.push($(e,r));return n}return[$(e,t)]}function P(e,t){for(let n=[];;){if(!t||"."!=t.name)return n;let r=E(t);if(!A(r))return n;n.unshift($(e,r)),t=E(r)}}function R(e,t){let n=(0,r.mv)(e).resolveInner(t,-1),i=function(e,t){let n;for(let i=t;!n;i=i.parent){if(!i)return null;"Statement"==i.name&&(n=i)}let r=null;for(let i=n.firstChild,o=!1,a=null;i;i=i.nextSibling){let t="Keyword"==i.name?e.sliceString(i.from,i.to).toLowerCase():null,n=null;if(o)if("as"==t&&a&&A(i.nextSibling))n=$(e,i.nextSibling);else{if(t&&I.has(t))break;a&&A(i)&&(n=$(e,i))}else o="from"==t;n&&(r||(r=Object.create(null)),r[n]=C(e,a)),a=/Identifier$/.test(i.name)?i:null}return r}(e.doc,n);return"Identifier"==n.name||"QuotedIdentifier"==n.name||"Keyword"==n.name?{from:n.from,quoted:"QuotedIdentifier"==n.name?e.doc.sliceString(n.from,n.from+1):null,parents:P(e.doc,E(n)),aliases:i}:"."==n.name?{from:t,quoted:null,parents:P(e.doc,n),aliases:i}:{from:t,quoted:null,parents:[],empty:!0,aliases:i}}const I=new Set("where group having order union intersect except all distinct limit offset fetch for".split(" "));const D=/^\w*$/,z=/^[`'"]?\w*[`'"]?$/;function N(e){return e.self&&"string"==typeof e.self.label}class L{constructor(e){this.idQuote=e,this.list=[],this.children=void 0}child(e){let t=this.children||(this.children=Object.create(null)),n=t[e];return n||(e&&!this.list.some((t=>t.label==e))&&this.list.push(M(e,"type",this.idQuote)),t[e]=new L(this.idQuote))}maybeChild(e){return this.children?this.children[e]:null}addCompletion(e){let t=this.list.findIndex((t=>t.label==e.label));t>-1?this.list[t]=e:this.list.push(e)}addCompletions(e){for(let t of e)this.addCompletion("string"==typeof t?M(t,"property",this.idQuote):t)}addNamespace(e){Array.isArray(e)?this.addCompletions(e):N(e)?this.addNamespace(e.children):this.addNamespaceObject(e)}addNamespaceObject(e){for(let t of Object.keys(e)){let n=e[t],r=null,i=t.replace(/\\?\./g,(e=>"."==e?"\0":e)).split("\0"),o=this;N(n)&&(r=n.self,n=n.children);for(let e=0;e({from:Math.min(e.from+100,t.doc.lineAt(e.from).to),to:e.to}),BlockComment:e=>({from:e.from+2,to:e.to-2})}),(0,i.pn)({Keyword:i._A.keyword,Type:i._A.typeName,Builtin:i._A.standard(i._A.name),Bits:i._A.number,Bytes:i._A.string,Bool:i._A.bool,Null:i._A.null,Number:i._A.number,String:i._A.string,Identifier:i._A.name,QuotedIdentifier:i._A.special(i._A.string),SpecialVar:i._A.special(i._A.name),LineComment:i._A.lineComment,BlockComment:i._A.blockComment,Operator:i._A.operator,"Semi Punctuation":i._A.punctuation,"( )":i._A.paren,"{ }":i._A.brace,"[ ]":i._A.squareBracket})]});class q{constructor(e,t,n){this.dialect=e,this.language=t,this.spec=n}get extension(){return this.language.extension}static define(e){let t=function(e,t,n,r){let i={};for(let o in x)i[o]=(e.hasOwnProperty(o)?e:x)[o];return t&&(i.words=k(t,n||"",r)),i}(e,e.keywords,e.types,e.builtin),n=r.bj.define({name:"sql",parser:Q.configure({tokenizers:[{from:_,to:S(t)}]}),languageData:{commentTokens:{line:"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}});return new q(t,n,e)}}function W(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return function(e,t){let n=Object.keys(e).map((n=>({label:t?n.toUpperCase():n,type:e[n]==u?"type":e[n]==c?"keyword":"variable",boost:-1})));return(0,a.Ar)(["QuotedIdentifier","SpecialVar","String","LineComment","BlockComment","."],(0,a.et)(n))}(e.dialect.words,t)}function B(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return e.language.data.of({autocomplete:W(e,t)})}function F(e){return e.schema?function(e,t,n,r,i,o){var a;let s=(null===(a=null===o||void 0===o?void 0:o.spec.identifierQuotes)||void 0===a?void 0:a[0])||'"',l=new L(s),c=i?l.child(i):null;return l.addNamespace(e),t&&(c||l).addCompletions(t),n&&l.addCompletions(n),c&&l.addCompletions(c.list),r&&l.addCompletions((c||l).child(r).list),e=>{let{parents:t,from:n,quoted:i,empty:o,aliases:a}=R(e.state,e.pos);if(o&&!e.explicit)return null;a&&1==t.length&&(t=a[t[0]]||t);let s=l;for(let m of t){for(;!s.children||!s.children[m];)if(s==l&&c)s=c;else{if(s!=c||!r)return null;s=s.child(r)}let e=s.maybeChild(m);if(!e)return null;s=e}let u=i&&e.state.sliceDoc(e.pos,e.pos+1)==i,d=s.list;return s==l&&a&&(d=d.concat(Object.keys(a).map((e=>({label:e,type:"constant"}))))),{from:n,to:u?e.pos+1:void 0,options:(h=i,f=d,h?f.map((e=>Object.assign(Object.assign({},e),{label:e.label[0]==h?e.label:h+e.label+h,apply:void 0}))):f),validFor:i?z:D};var h,f}}(e.schema,e.tables,e.schemas,e.defaultTable,e.defaultSchema,e.dialect||V):()=>null}function U(e){return e.schema?(e.dialect||V).language.data.of({autocomplete:F(e)}):[]}function j(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dialect||V;return new r.Yy(t.language,[U(e),B(t,!!e.upperCaseKeywords)])}const V=q.define({}),G=q.define({charSetCasts:!0,doubleDollarQuotedStrings:!0,operatorChars:"+-*/<>=~!@#%^&|`?",specialVar:"",keywords:w+"a abort abs absent access according ada admin aggregate alias also always analyse analyze array_agg array_max_cardinality asensitive assert assignment asymmetric atomic attach attribute attributes avg backward base64 begin_frame begin_partition bernoulli bit_length blocked bom c cache called cardinality catalog_name ceil ceiling chain char_length character_length character_set_catalog character_set_name character_set_schema characteristics characters checkpoint class class_origin cluster coalesce cobol collation_catalog collation_name collation_schema collect column_name columns command_function command_function_code comment comments committed concurrently condition_number configuration conflict connection_name constant constraint_catalog constraint_name constraint_schema contains content control conversion convert copy corr cost covar_pop covar_samp csv cume_dist current_catalog current_row current_schema cursor_name database datalink datatype datetime_interval_code datetime_interval_precision db debug defaults defined definer degree delimiter delimiters dense_rank depends derived detach detail dictionary disable discard dispatch dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue document dump dynamic_function dynamic_function_code element elsif empty enable encoding encrypted end_frame end_partition endexec enforced enum errcode error event every exclude excluding exclusive exp explain expression extension extract family file filter final first_value flag floor following force foreach fortran forward frame_row freeze fs functions fusion g generated granted greatest groups handler header hex hierarchy hint id ignore ilike immediately immutable implementation implicit import include including increment indent index indexes info inherit inherits inline insensitive instance instantiable instead integrity intersection invoker isnull k key_member key_type label lag last_value lead leakproof least length library like_regex link listen ln load location lock locked log logged lower m mapping matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text min minvalue mod mode more move multiset mumps name namespace nfc nfd nfkc nfkd nil normalize normalized nothing notice notify notnull nowait nth_value ntile nullable nullif nulls number occurrences_regex octet_length octets off offset oids operator options ordering others over overlay overriding owned owner p parallel parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partition pascal passing passthrough password percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding prepared print_strict_params procedural procedures program publication query quote raise range rank reassign recheck recovery refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex rename repeatable replace replica requiring reset respect restart restore result_oid returned_cardinality returned_length returned_octet_length returned_sqlstate returning reverse routine_catalog routine_name routine_schema routines row_count row_number rowtype rule scale schema_name schemas scope scope_catalog scope_name scope_schema security selective self sensitive sequence sequences serializable server server_name setof share show simple skip slice snapshot source specific_name sqlcode sqlerror sqrt stable stacked standalone statement statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time t table_name tables tablesample tablespace temp template ties token top_level_count transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex trigger_catalog trigger_name trigger_schema trim trim_array truncate trusted type types uescape unbounded uncommitted unencrypted unlink unlisten unlogged unnamed untyped upper uri use_column use_variable user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema vacuum valid validate validator value_of var_pop var_samp varbinary variable_conflict variadic verbose version versioning views volatile warning whitespace width_bucket window within wrapper xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate yes",types:O+"bigint int8 bigserial serial8 varbit bool box bytea cidr circle precision float8 inet int4 json jsonb line lseg macaddr macaddr8 money numeric pg_lsn point polygon float4 int2 smallserial serial2 serial serial4 text timetz timestamptz tsquery tsvector txid_snapshot uuid xml"}),X="accessible algorithm analyze asensitive authors auto_increment autocommit avg avg_row_length binlog btree cache catalog_name chain change changed checkpoint checksum class_origin client_statistics coalesce code collations columns comment committed completion concurrent consistent contains contributors convert database databases day_hour day_microsecond day_minute day_second delay_key_write delayed delimiter des_key_file dev_pop dev_samp deviance directory disable discard distinctrow div dual dumpfile enable enclosed ends engine engines enum errors escaped even event events every explain extended fast field fields flush force found_rows fulltext grants handler hash high_priority hosts hour_microsecond hour_minute hour_second ignore ignore_server_ids import index index_statistics infile innodb insensitive insert_method install invoker iterate keys kill linear lines list load lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modify mutex mysql_errno no_write_to_binlog offline offset one online optimize optionally outfile pack_keys parser partition partitions password phase plugin plugins prev processlist profile profiles purge query quick range read_write rebuild recover regexp relaylog remove rename reorganize repair repeatable replace require resume rlike row_format rtree schedule schema_name schemas second_microsecond security sensitive separator serializable server share show slave slow snapshot soname spatial sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result ssl starting starts std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace terminated triggers truncate uncommitted uninstall unlock upgrade use use_frm user_resources user_statistics utc_date utc_time utc_timestamp variables views warnings xa xor year_month zerofill",Y=O+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int1 int2 int3 int4 int8 float4 float8 varbinary varcharacter precision datetime unsigned signed",Z="charset clear edit ego help nopager notee nowarning pager print prompt quit rehash source status system tee",H=q.define({operatorChars:"*+-%<>!=&|^",charSetCasts:!0,doubleQuotedStrings:!0,unquotedBitLiterals:!0,hashComments:!0,spaceAfterDashes:!0,specialVar:"@?",identifierQuotes:"`",keywords:w+"group_concat "+X,types:Y,builtin:Z}),K=q.define({operatorChars:"*+-%<>!=&|^",charSetCasts:!0,doubleQuotedStrings:!0,unquotedBitLiterals:!0,hashComments:!0,spaceAfterDashes:!0,specialVar:"@?",identifierQuotes:"`",keywords:w+"always generated groupby_concat hard persistent shutdown soft virtual "+X,types:Y,builtin:Z}),J=q.define({keywords:w+"trigger proc view index for add constraint key primary foreign collate clustered nonclustered declare exec go if use index holdlock nolock nowait paglock pivot readcommitted readcommittedlock readpast readuncommitted repeatableread rowlock serializable snapshot tablock tablockx unpivot updlock with",types:O+"bigint smallint smallmoney tinyint money real text nvarchar ntext varbinary image hierarchyid uniqueidentifier sql_variant xml",builtin:"binary_checksum checksum connectionproperty context_info current_request_id error_line error_message error_number error_procedure error_severity error_state formatmessage get_filestream_transaction_context getansinull host_id host_name isnull isnumeric min_active_rowversion newid newsequentialid rowcount_big xact_state object_id",operatorChars:"*+-%<>!=^&|/",specialVar:"@"}),ee=q.define({keywords:w+"abort analyze attach autoincrement conflict database detach exclusive fail glob ignore index indexed instead isnull notnull offset plan pragma query raise regexp reindex rename replace temp vacuum virtual",types:O+"bool blob long longblob longtext medium mediumblob mediumint mediumtext tinyblob tinyint tinytext text bigint int2 int8 unsigned signed real",builtin:"auth backup bail changes clone databases dbinfo dump echo eqp explain fullschema headers help import imposter indexes iotrace lint load log mode nullvalue once print prompt quit restore save scanstats separator shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width",operatorChars:"*+-%<>!=&|/~",identifierQuotes:'`"',specialVar:"@:?$"}),te=q.define({keywords:"add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime infinity NaN",types:O+"ascii bigint blob counter frozen inet list map static text timeuuid tuple uuid varint",slashComments:!0}),ne=q.define({keywords:w+"abort accept access add all alter and any arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body by case cast char_base check close cluster clusters colauth column comment commit compress connected constant constraint crash create current currval cursor data_base database dba deallocate debugoff debugon declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry exception exception_init exchange exclusive exists external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base of off offline on online only option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw rebuild record ref references refresh rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work",builtin:"appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define echo editfile embedded feedback flagger flush heading headsep instance linesize lno loboffset logsource longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar repfooter repheader serveroutput shiftinout show showmode spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout timing trimout trimspool ttitle underline verify version wrap",types:O+"ascii bfile bfilename bigserial bit blob dec long number nvarchar nvarchar2 serial smallint string text uid varchar2 xml",operatorChars:"*/+-%<>!=~",doubleQuotedStrings:!0,charSetCasts:!0,plsqlQuotingMechanism:!0})},42066:(e,t,n)=>{n.r(t),n.d(t,{vue:()=>y,vueLanguage:()=>b});var r=n(4859),i=n(45079),o=n(83965),a=n(1345),s=n(24450),l=n(4179);const c=l.U1.deserialize({version:14,states:"%pOVOWOOObQPOOOpOSO'#C_OOOO'#Cp'#CpQVOWOOQxQPOOO!TQQOOQ!YQPOOOOOO,58y,58yO!_OSO,58yOOOO-E6n-E6nO!dQQO'#CqQ{QPOOO!iQPOOQ{QPOOO!qQPOOOOOO1G.e1G.eOOQO,59],59]OOQO-E6o-E6oO!yOpO'#CiO#RO`O'#CiQOQPOOO#ZO#tO'#CmO#fO!bO'#CmOOQO,59T,59TO#qOpO,59TO#vO`O,59TOOOO'#Cr'#CrO#{O#tO,59XOOQO,59X,59XOOOO'#Cs'#CsO$WO!bO,59XOOQO1G.o1G.oOOOO-E6p-E6pOOQO1G.s1G.sOOOO-E6q-E6q",stateData:"$g~OjOS~OQROUROkQO~OWTOXUOZUO`VO~OSXOTWO~OXUO[]OlZO~OY^O~O[_O~OT`O~OYaO~OmcOodO~OmfOogO~O^iOnhO~O_jOphO~ObkOqkOrmO~OcnOsnOtmO~OnpO~OppO~ObkOqkOrrO~OcnOsnOtrO~OWX`~",goto:"!^hPPPiPPPPPPPPPmPPPpPPsy!Q!WTROSRe]Re_QSORYSS[T^Rb[QlfRqlQogRso",nodeNames:"\u26a0 Content Text Interpolation InterpolationContent }} Entity Attribute VueAttributeName : Identifier @ Is ScriptAttributeValue AttributeScript AttributeScript AttributeName AttributeValue Entity Entity",maxTerm:36,nodeProps:[["isolate",-3,3,13,17,""]],skippedNodes:[0],repeatNodeCount:4,tokenData:"'y~RdXY!aYZ!a]^!apq!ars!rwx!w}!O!|!O!P#t!Q![#y![!]$s!_!`%g!b!c%l!c!}#y#R#S#y#T#j#y#j#k%q#k#o#y%W;'S#y;'S;:j$m<%lO#y~!fSj~XY!aYZ!a]^!apq!a~!wOm~~!|Oo~!b#RX`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|!b#qP;=`<%l!|~#yOl~%W$QXY#t`!b}!O!|!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y%W$pP;=`<%l#y~$zXX~`!b}!O!|!Q![!|![!]!|!c!}!|#R#S!|#T#o!|%W;'S!|;'S;:j#n<%lO!|~%lO[~~%qOZ~%W%xXY#t`!b}!O&e!Q![#y![!]!|!c!}#y#R#S#y#T#o#y%W;'S#y;'S;:j$m<%lO#y!b&jX`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|!b'^XW!b`!b}!O!|!Q![!|![!]!|!c!}'V#R#S!|#T#o'V%W;'S!|;'S;:j#n<%lO!|",tokenizers:[6,7,new l.uC("b~RP#q#rU~XP#q#r[~aOT~~",17,4),new l.uC("!k~RQvwX#o#p!_~^TU~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOU~~![P;=`<%lm~!bP#o#p!e~!jOk~~",72,2),new l.uC("[~RPwxU~ZOp~~",11,15),new l.uC("[~RPrsU~ZOn~~",11,14),new l.uC("!e~RQvwXwx!_~^Tc~Opmq!]m!^;'Sm;'S;=`!X<%lOm~pUOpmq!]m!]!^!S!^;'Sm;'S;=`!X<%lOm~!XOc~~![P;=`<%lm~!dOt~~",66,35),new l.uC("!e~RQrsXvw^~^Or~~cTb~Oprq!]r!^;'Sr;'S;=`!^<%lOr~uUOprq!]r!]!^!X!^;'Sr;'S;=`!^<%lOr~!^Ob~~!aP;=`<%lr~",66,33)],topRules:{Content:[0,1],Attribute:[1,7]},tokenPrec:157}),u=o.javascriptLanguage.parser.configure({top:"SingleExpression"}),d=c.configure({props:[(0,a.pn)({Text:a._A.content,Is:a._A.definitionOperator,AttributeName:a._A.attributeName,VueAttributeName:a._A.keyword,Identifier:a._A.variableName,"AttributeValue ScriptAttributeValue":a._A.attributeValue,Entity:a._A.character,"{{ }}":a._A.brace,"@ :":a._A.punctuation})]}),h={parser:u},f={parser:d.configure({wrap:(0,s.$g)(((e,t)=>"InterpolationContent"==e.name?h:null))})},m={parser:d.configure({wrap:(0,s.$g)(((e,t)=>"AttributeScript"==e.name?h:null)),top:"Attribute"})},p=(0,i.html)();function g(e){return e.configure({dialect:"selfClosing",wrap:(0,s.$g)(v)},"vue")}const b=g(p.language);function v(e,t){switch(e.name){case"Attribute":return/^(@|:|v-)/.test(t.read(e.from,e.from+2))?m:null;case"Text":return f}return null}function y(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=p;if(e.base){if("html"!=e.base.language.name||!(e.base.language instanceof r.bj))throw new RangeError("The base option must be the result of calling html(...)");t=e.base}return new r.Yy(t.language==p.language?b:g(t.language),[t.support,t.language.data.of({closeBrackets:{brackets:["{",'"']}})])}},47873:(e,t,n)=>{n.r(t),n.d(t,{wast:()=>c,wastLanguage:()=>l});var r=n(4859),i=n(1345),o=n(4179);const a={__proto__:null,anyref:34,dataref:34,eqref:34,externref:34,i31ref:34,funcref:34,i8:34,i16:34,i32:34,i64:34,f32:34,f64:34},s=o.U1.deserialize({version:14,states:"!^Q]QPOOOqQPO'#CbOOQO'#Cd'#CdOOQO'#Cl'#ClOOQO'#Ch'#ChQ]QPOOOOQO,58|,58|OxQPO,58|OOQO-E6f-E6fOOQO1G.h1G.h",stateData:"!P~O_OSPOSQOS~OTPOVROXROYROZROaQO~OSUO~P]OSXO~P]O",goto:"xaPPPPPPbPbPPPhPPPrXROPTVQTOQVPTWTVXSOPTV",nodeNames:"\u26a0 LineComment BlockComment Module ) ( App Identifier Type Keyword Number String",maxTerm:17,nodeProps:[["isolate",-3,1,2,11,""],["openedBy",4,"("],["closedBy",5,")"],["group",-6,6,7,8,9,10,11,"Expression"]],skippedNodes:[0,1,2],repeatNodeCount:1,tokenData:"0o~R^XY}YZ}]^}pq}rs!Stu#pxy'Uyz(e{|(j}!O(j!Q!R(s!R![*p!]!^.^#T#o.{~!SO_~~!VVOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j<%lO!S~!qOZ~~!tRO;'S!S;'S;=`!};=`O!S~#QWOr!Srs!ls#O!S#O#P!q#P;'S!S;'S;=`#j;=`<%l!S<%lO!S~#mP;=`<%l!S~#siqr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~%giV~qr%bst%btu%buv%bvw%bwx%bz{%b{|%b}!O%b!O!P%b!P!Q%b!Q![%b![!]%b!^!_%b!_!`%b!`!a%b!a!b%b!b!c%b!c!}%b#Q#R%b#R#S%b#S#T%b#T#o%b#p#q%b#r#s%b~'ZPT~!]!^'^~'aTO!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~'sVOy'^yz(Yz!]'^!]!^'p!^;'S'^;'S;=`(_<%lO'^~(_OQ~~(bP;=`<%l'^~(jOS~~(mQ!Q!R(s!R![*p~(xUY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){#l#m+[~)aRY~!Q![)j!g!h){#X#Y){~)oSY~!Q![)j!g!h){#R#S*j#X#Y){~*OR{|*X}!O*X!Q![*_~*[P!Q![*_~*dQY~!Q![*_#R#S*X~*mP!Q![)j~*uTY~!O!P)[!Q![*p!g!h){#R#S+U#X#Y){~+XP!Q![*p~+_R!Q![+h!c!i+h#T#Z+h~+mVY~!O!P,S!Q![+h!c!i+h!r!s-P#R#S+[#T#Z+h#d#e-P~,XTY~!Q![,h!c!i,h!r!s-P#T#Z,h#d#e-P~,mUY~!Q![,h!c!i,h!r!s-P#R#S.Q#T#Z,h#d#e-P~-ST{|-c}!O-c!Q![-o!c!i-o#T#Z-o~-fR!Q![-o!c!i-o#T#Z-o~-tSY~!Q![-o!c!i-o#R#S-c#T#Z-o~.TR!Q![,h!c!i,h#T#Z,h~.aP!]!^.d~.iSP~OY.dZ;'S.d;'S;=`.u<%lO.d~.xP;=`<%l.d~/QiX~qr.{st.{tu.{uv.{vw.{wx.{z{.{{|.{}!O.{!O!P.{!P!Q.{!Q![.{![!].{!^!_.{!_!`.{!`!a.{!a!b.{!b!c.{!c!}.{#Q#R.{#R#S.{#S#T.{#T#o.{#p#q.{#r#s.{",tokenizers:[0],topRules:{Module:[0,3]},specialized:[{term:9,get:e=>a[e]||-1}],tokenPrec:0}),l=r.bj.define({name:"wast",parser:s.configure({props:[r.Oh.add({App:(0,r.Ay)({closing:")",align:!1})}),r.b_.add({App:r.yd,BlockComment:e=>({from:e.from+2,to:e.to-2})}),(0,i.pn)({Keyword:i._A.keyword,Type:i._A.typeName,Number:i._A.number,String:i._A.string,Identifier:i._A.variableName,LineComment:i._A.lineComment,BlockComment:i._A.blockComment,"( )":i._A.paren})]}),languageData:{commentTokens:{line:";;",block:{open:"(;",close:";)"}},closeBrackets:{brackets:["(",'"']}}});function c(){return new r.Yy(l)}},56169:(e,t,n)=>{n.r(t),n.d(t,{autoCloseTags:()=>v,completeFromSchema:()=>m,xml:()=>g,xmlLanguage:()=>p});var r=n(31282),i=n(4859),o=n(8070),a=n(67538);function s(e,t){let n=t&&t.getChild("TagName");return n?e.sliceString(n.from,n.to):""}function l(e,t){let n=t&&t.firstChild;return n&&"OpenTag"==n.name?s(e,n):""}function c(e){for(let t=e&&e.parent;t;t=t.parent)if("Element"==t.name)return t;return null}class u{constructor(e,t,n){this.attrs=t,this.attrValues=n,this.children=[],this.name=e.name,this.completion=Object.assign(Object.assign({type:"type"},e.completion||{}),{label:this.name}),this.openCompletion=Object.assign(Object.assign({},this.completion),{label:"<"+this.name}),this.closeCompletion=Object.assign(Object.assign({},this.completion),{label:"",boost:2}),this.closeNameCompletion=Object.assign(Object.assign({},this.completion),{label:this.name+">"}),this.text=e.textContent?e.textContent.map((e=>({label:e,type:"text"}))):[]}}const d=/^[:\-\.\w\u00b7-\uffff]*$/;function h(e){return Object.assign(Object.assign({type:"property"},e.completion||{}),{label:e.name})}function f(e){return"string"==typeof e?{label:'"'.concat(e,'"'),type:"constant"}:/^"/.test(e.label)?e:Object.assign(Object.assign({},e),{label:'"'.concat(e.label,'"')})}function m(e,t){let n=[],r=[],o=Object.create(null);for(let i of t){let e=h(i);n.push(e),i.global&&r.push(e),i.values&&(o[i.name]=i.values.map(f))}let a=[],m=[],p=Object.create(null);for(let i of e){let e=r,t=o;i.attributes&&(e=e.concat(i.attributes.map((e=>"string"==typeof e?n.find((t=>t.label==e))||{label:e,type:"property"}:(e.values&&(t==o&&(t=Object.create(t)),t[e.name]=e.values.map(f)),h(e))))));let s=new u(i,e,t);p[s.name]=s,a.push(s),i.top&&m.push(s)}m.length||(m=a);for(let i=0;i{var t;let{doc:n}=e.state,u=function(e,t){var n;let r=(0,i.mv)(e).resolveInner(t,-1),o=null;for(let i=r;!o&&i.parent;i=i.parent)"OpenTag"!=i.name&&"CloseTag"!=i.name&&"SelfClosingTag"!=i.name&&"MismatchedCloseTag"!=i.name||(o=i);if(o&&(o.to>t||o.lastChild.type.isError)){let e=o.parent;if("TagName"==r.name)return"CloseTag"==o.name||"MismatchedCloseTag"==o.name?{type:"closeTag",from:r.from,context:e}:{type:"openTag",from:r.from,context:c(e)};if("AttributeName"==r.name)return{type:"attrName",from:r.from,context:o};if("AttributeValue"==r.name)return{type:"attrValue",from:r.from,context:o};let n=r==o||"Attribute"==r.name?r.childBefore(t):r;return"StartTag"==(null===n||void 0===n?void 0:n.name)?{type:"openTag",from:t,context:c(e)}:"StartCloseTag"==(null===n||void 0===n?void 0:n.name)&&n.to<=t?{type:"closeTag",from:t,context:e}:"Is"==(null===n||void 0===n?void 0:n.name)?{type:"attrValue",from:t,context:o}:n?{type:"attrName",from:t,context:o}:null}if("StartCloseTag"==r.name)return{type:"closeTag",from:t,context:r.parent};for(;r.parent&&r.to==t&&!(null===(n=r.lastChild)||void 0===n?void 0:n.type.isError);)r=r.parent;return"Element"==r.name||"Text"==r.name||"Document"==r.name?{type:"tag",from:t,context:"Element"==r.name?r:c(r)}:null}(e.state,e.pos);if(!u||"tag"==u.type&&!e.explicit)return null;let{type:h,from:f,context:g}=u;if("openTag"==h){let e=m,t=l(n,g);if(t){let n=p[t];e=(null===n||void 0===n?void 0:n.children)||a}return{from:f,options:e.map((e=>e.completion)),validFor:d}}if("closeTag"==h){let r=l(n,g);return r?{from:f,to:e.pos+(">"==n.sliceString(e.pos,e.pos+1)?1:0),options:[(null===(t=p[r])||void 0===t?void 0:t.closeNameCompletion)||{label:r+">",type:"type"}],validFor:d}:null}if("attrName"==h){let e=p[s(n,g)];return{from:f,options:(null===e||void 0===e?void 0:e.attrs)||r,validFor:d}}if("attrValue"==h){let t=function(e,t,n){let r=t&&t.getChildren("Attribute").find((e=>e.from<=n&&e.to>=n)),i=r&&r.getChild("AttributeName");return i?e.sliceString(i.from,i.to):""}(n,g,f);if(!t)return null;let r=p[s(n,g)],i=((null===r||void 0===r?void 0:r.attrValues)||o)[t];return i&&i.length?{from:f,to:e.pos+('"'==n.sliceString(e.pos,e.pos+1)?1:0),options:i,validFor:/^"[^"]*"?$/}:null}if("tag"==h){let t=l(n,g),r=p[t],i=[],o=g&&g.lastChild;!t||o&&"CloseTag"==o.name&&s(n,o)==t||i.push(r?r.closeCompletion:{label:"",type:"type",boost:2});let c=i.concat(((null===r||void 0===r?void 0:r.children)||(g?a:m)).map((e=>e.openCompletion)));if(g&&(null===r||void 0===r?void 0:r.text.length)){let t=g.firstChild;t.to>e.pos-20&&!/\S/.test(e.state.sliceDoc(t.to,e.pos))&&(c=c.concat(r.text))}return{from:f,options:c,validFor:/^<\/?[:\-\.\w\u00b7-\uffff]*$/}}return null}}const p=i.bj.define({name:"xml",parser:r.K.configure({props:[i.Oh.add({Element(e){let t=/^\s*<\//.test(e.textAfter);return e.lineIndent(e.node.from)+(t?0:e.unit)},"OpenTag CloseTag SelfClosingTag":e=>e.column(e.node.from)+e.unit}),i.b_.add({Element(e){let t=e.firstChild,n=e.lastChild;return t&&"OpenTag"==t.name?{from:t.to,to:"CloseTag"==n.name?n.from:e.to}:null}}),i.Q_.add({"OpenTag CloseTag":e=>e.getChild("TagName")})]}),languageData:{commentTokens:{block:{open:"\x3c!--",close:"--\x3e"}},indentOnInput:/^\s*<\/$/}});function g(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[p.data.of({autocomplete:m(e.elements||[],e.attributes||[])})];return!1!==e.autoCloseTags&&t.push(v),new i.Yy(p,t)}function b(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:e.length;if(!t)return"";let r=t.firstChild,i=r&&r.getChild("TagName");return i?e.sliceString(i.from,Math.min(i.to,n)):""}const v=a.Lz.inputHandler.of(((e,t,n,r,a)=>{if(e.composing||e.state.readOnly||t!=n||">"!=r&&"/"!=r||!p.isActiveAt(e.state,t,-1))return!1;let s=a(),{state:l}=s,c=l.changeByRange((e=>{var t,n,a;let s,{head:c}=e,u=l.doc.sliceString(c-1,c)==r,d=(0,i.mv)(l).resolveInner(c,-1);if(u&&">"==r&&"EndTag"==d.name){let r=d.parent;if("CloseTag"!=(null===(n=null===(t=r.parent)||void 0===t?void 0:t.lastChild)||void 0===n?void 0:n.name)&&(s=b(l.doc,r.parent,c))){return{range:e,changes:{from:c,to:c+(">"===l.doc.sliceString(c,c+1)?1:0),insert:"")}}}}else if(u&&"/"==r&&"StartCloseTag"==d.name){let e=d.parent;if(d.from==c-2&&"CloseTag"!=(null===(a=e.lastChild)||void 0===a?void 0:a.name)&&(s=b(l.doc,e,c))){let e=c+(">"===l.doc.sliceString(c,c+1)?1:0),t="".concat(s,">");return{range:o.OF.cursor(c+t.length,-1),changes:{from:c,to:e,insert:t}}}}return{range:e}}));return!c.changes.empty&&(e.dispatch([s,l.update(c,{userEvent:"input.complete",scrollIntoView:!0})]),!0)}))},85077:(e,t,n)=>{n.r(t),n.d(t,{yaml:()=>c,yamlFrontmatter:()=>d,yamlLanguage:()=>l});var r=n(76760),i=n(4859),o=n(24450),a=n(1345);const s=n(4179).U1.deserialize({version:14,states:"!vOQOPOOO]OPO'#C_OhOPO'#C^OOOO'#Cc'#CcOpOPO'#CaQOOOOOO{OPOOOOOO'#Cb'#CbO!WOPO'#C`O!`OPO,58xOOOO-E6a-E6aOOOO-E6`-E6`OOOO'#C_'#C_OOOO1G.d1G.d",stateData:"!h~OXPOYROWTP~OWVXXRXYRX~OYVOXSP~OXROYROWTX~OXROYROWTP~OYVOXSX~OX[O~OXY~",goto:"vWPPX[beioRUOQQOR]XRXQTTOUQWQRZWSSOURYS",nodeNames:"\u26a0 Document Frontmatter DashLine FrontmatterContent Body",maxTerm:10,skippedNodes:[0],repeatNodeCount:2,tokenData:"$z~RXOYnYZ!^Z]n]^!^^}n}!O!i!O;'Sn;'S;=`!c<%lOn~qXOYnYZ!^Z]n]^!^^;'Sn;'S;=`!c<%l~n~On~~!^~!cOY~~!fP;=`<%ln~!lZOYnYZ!^Z]n]^!^^}n}!O#_!O;'Sn;'S;=`!c<%l~n~On~~!^~#bZOYnYZ!^Z]n]^!^^}n}!O$T!O;'Sn;'S;=`!c<%l~n~On~~!^~$WXOYnYZ$sZ]n]^$s^;'Sn;'S;=`!c<%l~n~On~~$s~$zOX~Y~",tokenizers:[0],topRules:{Document:[0,1]},tokenPrec:67}),l=i.bj.define({name:"yaml",parser:r.K.configure({props:[i.Oh.add({Stream:e=>{for(let t=e.node.resolve(e.pos,-1);t&&t.to>=e.pos;t=t.parent){if("BlockLiteralContent"==t.name&&t.frome.pos)return null}}return null},FlowMapping:(0,i.Ay)({closing:"}"}),FlowSequence:(0,i.Ay)({closing:"]"})}),i.b_.add({"FlowMapping FlowSequence":i.yd,"BlockSequence Pair BlockLiteral":(e,t)=>({from:t.doc.lineAt(e.from).to,to:e.to})})]}),languageData:{commentTokens:{line:"#"},indentOnInput:/^\s*[\]\}]$/}});function c(){return new i.Yy(l)}const u=i.bj.define({name:"yaml-frontmatter",parser:s.configure({props:[(0,a.pn)({DashLine:a._A.meta})]})});function d(e){let{language:t,support:n}=e.content instanceof i.Yy?e.content:{language:e.content,support:[]};return new i.Yy(u.configure({wrap:(0,o.$g)((e=>"FrontmatterContent"==e.name?{parser:l.parser}:"Body"==e.name?{parser:t.parser}:null))}),n)}},3894:(e,t,n)=>{n.d(t,{e:()=>a});var r=n(4859);function i(e){return new r.Yy(r.Tg.define(e))}function o(e){return Promise.resolve().then(n.bind(n,28694)).then((t=>t.sql({dialect:t[e]})))}const a=[r.t$.of({name:"C",extensions:["c","h","ino"],load:()=>Promise.resolve().then(n.bind(n,34897)).then((e=>e.cpp()))}),r.t$.of({name:"C++",alias:["cpp"],extensions:["cpp","c++","cc","cxx","hpp","h++","hh","hxx"],load:()=>Promise.resolve().then(n.bind(n,34897)).then((e=>e.cpp()))}),r.t$.of({name:"CQL",alias:["cassandra"],extensions:["cql"],load:()=>o("Cassandra")}),r.t$.of({name:"CSS",extensions:["css"],load:()=>Promise.resolve().then(n.bind(n,98487)).then((e=>e.css()))}),r.t$.of({name:"Go",extensions:["go"],load:()=>Promise.all([n.e(9940),n.e(6063)]).then(n.bind(n,31162)).then((e=>e.go()))}),r.t$.of({name:"HTML",alias:["xhtml"],extensions:["html","htm","handlebars","hbs"],load:()=>Promise.resolve().then(n.bind(n,45079)).then((e=>e.html()))}),r.t$.of({name:"Java",extensions:["java"],load:()=>Promise.resolve().then(n.bind(n,96068)).then((e=>e.java()))}),r.t$.of({name:"JavaScript",alias:["ecmascript","js","node"],extensions:["js","mjs","cjs"],load:()=>Promise.resolve().then(n.bind(n,83965)).then((e=>e.javascript()))}),r.t$.of({name:"JSON",alias:["json5"],extensions:["json","map"],load:()=>Promise.resolve().then(n.bind(n,26338)).then((e=>e.json()))}),r.t$.of({name:"JSX",extensions:["jsx"],load:()=>Promise.resolve().then(n.bind(n,83965)).then((e=>e.javascript({jsx:!0})))}),r.t$.of({name:"LESS",extensions:["less"],load:()=>Promise.resolve().then(n.bind(n,28615)).then((e=>e.less()))}),r.t$.of({name:"Liquid",extensions:["liquid"],load:()=>Promise.resolve().then(n.bind(n,40004)).then((e=>e.liquid()))}),r.t$.of({name:"MariaDB SQL",load:()=>o("MariaSQL")}),r.t$.of({name:"Markdown",extensions:["md","markdown","mkd"],load:()=>Promise.resolve().then(n.bind(n,78071)).then((e=>e.markdown()))}),r.t$.of({name:"MS SQL",load:()=>o("MSSQL")}),r.t$.of({name:"MySQL",load:()=>o("MySQL")}),r.t$.of({name:"PHP",extensions:["php","php3","php4","php5","php7","phtml"],load:()=>Promise.resolve().then(n.bind(n,96914)).then((e=>e.php()))}),r.t$.of({name:"PLSQL",extensions:["pls"],load:()=>o("PLSQL")}),r.t$.of({name:"PostgreSQL",load:()=>o("PostgreSQL")}),r.t$.of({name:"Python",extensions:["BUILD","bzl","py","pyw"],filename:/^(BUCK|BUILD)$/,load:()=>Promise.resolve().then(n.bind(n,85318)).then((e=>e.python()))}),r.t$.of({name:"Rust",extensions:["rs"],load:()=>Promise.resolve().then(n.bind(n,28270)).then((e=>e.rust()))}),r.t$.of({name:"Sass",extensions:["sass"],load:()=>Promise.resolve().then(n.bind(n,1130)).then((e=>e.sass({indented:!0})))}),r.t$.of({name:"SCSS",extensions:["scss"],load:()=>Promise.resolve().then(n.bind(n,1130)).then((e=>e.sass()))}),r.t$.of({name:"SQL",extensions:["sql"],load:()=>o("StandardSQL")}),r.t$.of({name:"SQLite",load:()=>o("SQLite")}),r.t$.of({name:"TSX",extensions:["tsx"],load:()=>Promise.resolve().then(n.bind(n,83965)).then((e=>e.javascript({jsx:!0,typescript:!0})))}),r.t$.of({name:"TypeScript",alias:["ts"],extensions:["ts","mts","cts"],load:()=>Promise.resolve().then(n.bind(n,83965)).then((e=>e.javascript({typescript:!0})))}),r.t$.of({name:"WebAssembly",extensions:["wat","wast"],load:()=>Promise.resolve().then(n.bind(n,47873)).then((e=>e.wast()))}),r.t$.of({name:"XML",alias:["rss","wsdl","xsd"],extensions:["xml","xsl","xsd","svg"],load:()=>Promise.resolve().then(n.bind(n,56169)).then((e=>e.xml()))}),r.t$.of({name:"YAML",alias:["yml"],extensions:["yaml","yml"],load:()=>Promise.all([n.e(9940),n.e(6760)]).then(n.bind(n,85077)).then((e=>e.yaml()))}),r.t$.of({name:"APL",extensions:["dyalog","apl"],load:()=>Promise.resolve().then(n.bind(n,46175)).then((e=>i(e.apl)))}),r.t$.of({name:"PGP",alias:["asciiarmor"],extensions:["asc","pgp","sig"],load:()=>Promise.resolve().then(n.bind(n,49468)).then((e=>i(e.asciiArmor)))}),r.t$.of({name:"ASN.1",extensions:["asn","asn1"],load:()=>n.e(9940).then(n.bind(n,2007)).then((e=>i(e.asn1({}))))}),r.t$.of({name:"Asterisk",filename:/^extensions\.conf$/i,load:()=>Promise.resolve().then(n.bind(n,30866)).then((e=>i(e.asterisk)))}),r.t$.of({name:"Brainfuck",extensions:["b","bf"],load:()=>Promise.resolve().then(n.bind(n,6339)).then((e=>i(e.brainfuck)))}),r.t$.of({name:"Cobol",extensions:["cob","cpy"],load:()=>Promise.resolve().then(n.bind(n,86547)).then((e=>i(e.cobol)))}),r.t$.of({name:"C#",alias:["csharp","cs"],extensions:["cs"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.csharp)))}),r.t$.of({name:"Clojure",extensions:["clj","cljc","cljx"],load:()=>n.e(9940).then(n.bind(n,3368)).then((e=>i(e.clojure)))}),r.t$.of({name:"ClojureScript",extensions:["cljs"],load:()=>n.e(9940).then(n.bind(n,3368)).then((e=>i(e.clojure)))}),r.t$.of({name:"Closure Stylesheets (GSS)",extensions:["gss"],load:()=>n.e(9940).then(n.bind(n,92463)).then((e=>i(e.gss)))}),r.t$.of({name:"CMake",extensions:["cmake","cmake.in"],filename:/^CMakeLists\.txt$/,load:()=>Promise.resolve().then(n.bind(n,40935)).then((e=>i(e.cmake)))}),r.t$.of({name:"CoffeeScript",alias:["coffee","coffee-script"],extensions:["coffee"],load:()=>Promise.resolve().then(n.bind(n,25473)).then((e=>i(e.coffeeScript)))}),r.t$.of({name:"Common Lisp",alias:["lisp"],extensions:["cl","lisp","el"],load:()=>Promise.resolve().then(n.bind(n,97607)).then((e=>i(e.commonLisp)))}),r.t$.of({name:"Cypher",extensions:["cyp","cypher"],load:()=>Promise.resolve().then(n.bind(n,94269)).then((e=>i(e.cypher)))}),r.t$.of({name:"Cython",extensions:["pyx","pxd","pxi"],load:()=>n.e(9940).then(n.bind(n,94884)).then((e=>i(e.cython)))}),r.t$.of({name:"Crystal",extensions:["cr"],load:()=>Promise.resolve().then(n.bind(n,98130)).then((e=>i(e.crystal)))}),r.t$.of({name:"D",extensions:["d"],load:()=>Promise.resolve().then(n.bind(n,58448)).then((e=>i(e.d)))}),r.t$.of({name:"Dart",extensions:["dart"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.dart)))}),r.t$.of({name:"diff",extensions:["diff","patch"],load:()=>Promise.resolve().then(n.bind(n,4829)).then((e=>i(e.diff)))}),r.t$.of({name:"Dockerfile",filename:/^Dockerfile$/,load:()=>Promise.resolve().then(n.bind(n,45912)).then((e=>i(e.dockerFile)))}),r.t$.of({name:"DTD",extensions:["dtd"],load:()=>Promise.resolve().then(n.bind(n,16736)).then((e=>i(e.dtd)))}),r.t$.of({name:"Dylan",extensions:["dylan","dyl","intr"],load:()=>Promise.resolve().then(n.bind(n,68898)).then((e=>i(e.dylan)))}),r.t$.of({name:"EBNF",load:()=>Promise.resolve().then(n.bind(n,86013)).then((e=>i(e.ebnf)))}),r.t$.of({name:"ECL",extensions:["ecl"],load:()=>Promise.resolve().then(n.bind(n,13212)).then((e=>i(e.ecl)))}),r.t$.of({name:"edn",extensions:["edn"],load:()=>n.e(9940).then(n.bind(n,3368)).then((e=>i(e.clojure)))}),r.t$.of({name:"Eiffel",extensions:["e"],load:()=>Promise.resolve().then(n.bind(n,14989)).then((e=>i(e.eiffel)))}),r.t$.of({name:"Elm",extensions:["elm"],load:()=>Promise.resolve().then(n.bind(n,55208)).then((e=>i(e.elm)))}),r.t$.of({name:"Erlang",extensions:["erl"],load:()=>Promise.resolve().then(n.bind(n,47717)).then((e=>i(e.erlang)))}),r.t$.of({name:"Esper",load:()=>n.e(9940).then(n.bind(n,1188)).then((e=>i(e.esper)))}),r.t$.of({name:"Factor",extensions:["factor"],load:()=>Promise.resolve().then(n.bind(n,89553)).then((e=>i(e.factor)))}),r.t$.of({name:"FCL",load:()=>Promise.resolve().then(n.bind(n,76193)).then((e=>i(e.fcl)))}),r.t$.of({name:"Forth",extensions:["forth","fth","4th"],load:()=>Promise.resolve().then(n.bind(n,21899)).then((e=>i(e.forth)))}),r.t$.of({name:"Fortran",extensions:["f","for","f77","f90","f95"],load:()=>Promise.resolve().then(n.bind(n,13726)).then((e=>i(e.fortran)))}),r.t$.of({name:"F#",alias:["fsharp"],extensions:["fs"],load:()=>n.e(9940).then(n.bind(n,73492)).then((e=>i(e.fSharp)))}),r.t$.of({name:"Gas",extensions:["s"],load:()=>Promise.resolve().then(n.bind(n,685)).then((e=>i(e.gas)))}),r.t$.of({name:"Gherkin",extensions:["feature"],load:()=>Promise.resolve().then(n.bind(n,52678)).then((e=>i(e.gherkin)))}),r.t$.of({name:"Groovy",extensions:["groovy","gradle"],filename:/^Jenkinsfile$/,load:()=>Promise.resolve().then(n.bind(n,64388)).then((e=>i(e.groovy)))}),r.t$.of({name:"Haskell",extensions:["hs"],load:()=>Promise.resolve().then(n.bind(n,15692)).then((e=>i(e.haskell)))}),r.t$.of({name:"Haxe",extensions:["hx"],load:()=>Promise.resolve().then(n.bind(n,79354)).then((e=>i(e.haxe)))}),r.t$.of({name:"HXML",extensions:["hxml"],load:()=>Promise.resolve().then(n.bind(n,79354)).then((e=>i(e.hxml)))}),r.t$.of({name:"HTTP",load:()=>Promise.resolve().then(n.bind(n,93790)).then((e=>i(e.http)))}),r.t$.of({name:"IDL",extensions:["pro"],load:()=>Promise.resolve().then(n.bind(n,58219)).then((e=>i(e.idl)))}),r.t$.of({name:"JSON-LD",alias:["jsonld"],extensions:["jsonld"],load:()=>n.e(9940).then(n.bind(n,88437)).then((e=>i(e.jsonld)))}),r.t$.of({name:"Jinja2",extensions:["j2","jinja","jinja2"],load:()=>Promise.resolve().then(n.bind(n,7316)).then((e=>i(e.jinja2)))}),r.t$.of({name:"Julia",extensions:["jl"],load:()=>Promise.resolve().then(n.bind(n,37485)).then((e=>i(e.julia)))}),r.t$.of({name:"Kotlin",extensions:["kt","kts"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.kotlin)))}),r.t$.of({name:"LiveScript",alias:["ls"],extensions:["ls"],load:()=>Promise.resolve().then(n.bind(n,78063)).then((e=>i(e.liveScript)))}),r.t$.of({name:"Lua",extensions:["lua"],load:()=>Promise.resolve().then(n.bind(n,72682)).then((e=>i(e.lua)))}),r.t$.of({name:"mIRC",extensions:["mrc"],load:()=>Promise.resolve().then(n.bind(n,95039)).then((e=>i(e.mirc)))}),r.t$.of({name:"Mathematica",extensions:["m","nb","wl","wls"],load:()=>Promise.resolve().then(n.bind(n,75516)).then((e=>i(e.mathematica)))}),r.t$.of({name:"Modelica",extensions:["mo"],load:()=>Promise.resolve().then(n.bind(n,31086)).then((e=>i(e.modelica)))}),r.t$.of({name:"MUMPS",extensions:["mps"],load:()=>Promise.resolve().then(n.bind(n,83640)).then((e=>i(e.mumps)))}),r.t$.of({name:"Mbox",extensions:["mbox"],load:()=>Promise.resolve().then(n.bind(n,29986)).then((e=>i(e.mbox)))}),r.t$.of({name:"Nginx",filename:/nginx.*\.conf$/i,load:()=>Promise.resolve().then(n.bind(n,55188)).then((e=>i(e.nginx)))}),r.t$.of({name:"NSIS",extensions:["nsh","nsi"],load:()=>Promise.resolve().then(n.bind(n,81677)).then((e=>i(e.nsis)))}),r.t$.of({name:"NTriples",extensions:["nt","nq"],load:()=>Promise.resolve().then(n.bind(n,68945)).then((e=>i(e.ntriples)))}),r.t$.of({name:"Objective-C",alias:["objective-c","objc"],extensions:["m"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.objectiveC)))}),r.t$.of({name:"Objective-C++",alias:["objective-c++","objc++"],extensions:["mm"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.objectiveCpp)))}),r.t$.of({name:"OCaml",extensions:["ml","mli","mll","mly"],load:()=>n.e(9940).then(n.bind(n,73492)).then((e=>i(e.oCaml)))}),r.t$.of({name:"Octave",extensions:["m"],load:()=>Promise.resolve().then(n.bind(n,69750)).then((e=>i(e.octave)))}),r.t$.of({name:"Oz",extensions:["oz"],load:()=>Promise.resolve().then(n.bind(n,95395)).then((e=>i(e.oz)))}),r.t$.of({name:"Pascal",extensions:["p","pas"],load:()=>Promise.resolve().then(n.bind(n,84374)).then((e=>i(e.pascal)))}),r.t$.of({name:"Perl",extensions:["pl","pm"],load:()=>Promise.resolve().then(n.bind(n,31615)).then((e=>i(e.perl)))}),r.t$.of({name:"Pig",extensions:["pig"],load:()=>Promise.resolve().then(n.bind(n,21140)).then((e=>i(e.pig)))}),r.t$.of({name:"PowerShell",extensions:["ps1","psd1","psm1"],load:()=>Promise.resolve().then(n.bind(n,11839)).then((e=>i(e.powerShell)))}),r.t$.of({name:"Properties files",alias:["ini","properties"],extensions:["properties","ini","in"],load:()=>Promise.resolve().then(n.bind(n,95323)).then((e=>i(e.properties)))}),r.t$.of({name:"ProtoBuf",extensions:["proto"],load:()=>Promise.resolve().then(n.bind(n,22433)).then((e=>i(e.protobuf)))}),r.t$.of({name:"Pug",alias:["jade"],extensions:["pug","jade"],load:()=>n.e(9940).then(n.bind(n,63632)).then((e=>i(e.pug)))}),r.t$.of({name:"Puppet",extensions:["pp"],load:()=>Promise.resolve().then(n.bind(n,89484)).then((e=>i(e.puppet)))}),r.t$.of({name:"Q",extensions:["q"],load:()=>Promise.resolve().then(n.bind(n,53171)).then((e=>i(e.q)))}),r.t$.of({name:"R",alias:["rscript"],extensions:["r","R"],load:()=>Promise.resolve().then(n.bind(n,76054)).then((e=>i(e.r)))}),r.t$.of({name:"RPM Changes",load:()=>n.e(9940).then(n.bind(n,61993)).then((e=>i(e.rpmChanges)))}),r.t$.of({name:"RPM Spec",extensions:["spec"],load:()=>n.e(9940).then(n.bind(n,61993)).then((e=>i(e.rpmSpec)))}),r.t$.of({name:"Ruby",alias:["jruby","macruby","rake","rb","rbx"],extensions:["rb"],filename:/^(Gemfile|Rakefile)$/,load:()=>Promise.resolve().then(n.bind(n,74702)).then((e=>i(e.ruby)))}),r.t$.of({name:"SAS",extensions:["sas"],load:()=>Promise.resolve().then(n.bind(n,14505)).then((e=>i(e.sas)))}),r.t$.of({name:"Scala",extensions:["scala"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.scala)))}),r.t$.of({name:"Scheme",extensions:["scm","ss"],load:()=>Promise.resolve().then(n.bind(n,42565)).then((e=>i(e.scheme)))}),r.t$.of({name:"Shell",alias:["bash","sh","zsh"],extensions:["sh","ksh","bash"],filename:/^PKGBUILD$/,load:()=>Promise.resolve().then(n.bind(n,98226)).then((e=>i(e.shell)))}),r.t$.of({name:"Sieve",extensions:["siv","sieve"],load:()=>Promise.resolve().then(n.bind(n,20642)).then((e=>i(e.sieve)))}),r.t$.of({name:"Smalltalk",extensions:["st"],load:()=>Promise.resolve().then(n.bind(n,15381)).then((e=>i(e.smalltalk)))}),r.t$.of({name:"Solr",load:()=>Promise.resolve().then(n.bind(n,19562)).then((e=>i(e.solr)))}),r.t$.of({name:"SML",extensions:["sml","sig","fun","smackspec"],load:()=>n.e(9940).then(n.bind(n,73492)).then((e=>i(e.sml)))}),r.t$.of({name:"SPARQL",alias:["sparul"],extensions:["rq","sparql"],load:()=>Promise.resolve().then(n.bind(n,35311)).then((e=>i(e.sparql)))}),r.t$.of({name:"Spreadsheet",alias:["excel","formula"],load:()=>Promise.resolve().then(n.bind(n,53498)).then((e=>i(e.spreadsheet)))}),r.t$.of({name:"Squirrel",extensions:["nut"],load:()=>Promise.resolve().then(n.bind(n,12146)).then((e=>i(e.squirrel)))}),r.t$.of({name:"Stylus",extensions:["styl"],load:()=>Promise.resolve().then(n.bind(n,57164)).then((e=>i(e.stylus)))}),r.t$.of({name:"Swift",extensions:["swift"],load:()=>Promise.resolve().then(n.bind(n,57743)).then((e=>i(e.swift)))}),r.t$.of({name:"sTeX",load:()=>Promise.resolve().then(n.bind(n,73884)).then((e=>i(e.stex)))}),r.t$.of({name:"LaTeX",alias:["tex"],extensions:["text","ltx","tex"],load:()=>Promise.resolve().then(n.bind(n,73884)).then((e=>i(e.stex)))}),r.t$.of({name:"SystemVerilog",extensions:["v","sv","svh"],load:()=>Promise.resolve().then(n.bind(n,67062)).then((e=>i(e.verilog)))}),r.t$.of({name:"Tcl",extensions:["tcl"],load:()=>Promise.resolve().then(n.bind(n,76555)).then((e=>i(e.tcl)))}),r.t$.of({name:"Textile",extensions:["textile"],load:()=>Promise.resolve().then(n.bind(n,38373)).then((e=>i(e.textile)))}),r.t$.of({name:"TiddlyWiki",load:()=>Promise.resolve().then(n.bind(n,62290)).then((e=>i(e.tiddlyWiki)))}),r.t$.of({name:"Tiki wiki",load:()=>Promise.resolve().then(n.bind(n,94517)).then((e=>i(e.tiki)))}),r.t$.of({name:"TOML",extensions:["toml"],load:()=>Promise.resolve().then(n.bind(n,67534)).then((e=>i(e.toml)))}),r.t$.of({name:"Troff",extensions:["1","2","3","4","5","6","7","8","9"],load:()=>Promise.resolve().then(n.bind(n,3743)).then((e=>i(e.troff)))}),r.t$.of({name:"TTCN",extensions:["ttcn","ttcn3","ttcnpp"],load:()=>Promise.resolve().then(n.bind(n,1947)).then((e=>i(e.ttcn)))}),r.t$.of({name:"TTCN_CFG",extensions:["cfg"],load:()=>n.e(9940).then(n.bind(n,40588)).then((e=>i(e.ttcnCfg)))}),r.t$.of({name:"Turtle",extensions:["ttl"],load:()=>Promise.resolve().then(n.bind(n,37628)).then((e=>i(e.turtle)))}),r.t$.of({name:"Web IDL",extensions:["webidl"],load:()=>Promise.resolve().then(n.bind(n,28047)).then((e=>i(e.webIDL)))}),r.t$.of({name:"VB.NET",extensions:["vb"],load:()=>Promise.resolve().then(n.bind(n,29978)).then((e=>i(e.vb)))}),r.t$.of({name:"VBScript",extensions:["vbs"],load:()=>Promise.resolve().then(n.bind(n,76881)).then((e=>i(e.vbScript)))}),r.t$.of({name:"Velocity",extensions:["vtl"],load:()=>Promise.resolve().then(n.bind(n,79557)).then((e=>i(e.velocity)))}),r.t$.of({name:"Verilog",extensions:["v"],load:()=>Promise.resolve().then(n.bind(n,67062)).then((e=>i(e.verilog)))}),r.t$.of({name:"VHDL",extensions:["vhd","vhdl"],load:()=>Promise.resolve().then(n.bind(n,27472)).then((e=>i(e.vhdl)))}),r.t$.of({name:"XQuery",extensions:["xy","xquery"],load:()=>Promise.resolve().then(n.bind(n,30854)).then((e=>i(e.xQuery)))}),r.t$.of({name:"Yacas",extensions:["ys"],load:()=>Promise.resolve().then(n.bind(n,53067)).then((e=>i(e.yacas)))}),r.t$.of({name:"Z80",extensions:["z80"],load:()=>Promise.resolve().then(n.bind(n,58206)).then((e=>i(e.z80)))}),r.t$.of({name:"MscGen",extensions:["mscgen","mscin","msc"],load:()=>Promise.resolve().then(n.bind(n,55251)).then((e=>i(e.mscgen)))}),r.t$.of({name:"X\xf9",extensions:["xu"],load:()=>Promise.resolve().then(n.bind(n,55251)).then((e=>i(e.xu)))}),r.t$.of({name:"MsGenny",extensions:["msgenny"],load:()=>Promise.resolve().then(n.bind(n,55251)).then((e=>i(e.msgenny)))}),r.t$.of({name:"Vue",extensions:["vue"],load:()=>Promise.resolve().then(n.bind(n,42066)).then((e=>e.vue()))}),r.t$.of({name:"Angular Template",load:()=>Promise.resolve().then(n.bind(n,20624)).then((e=>e.angular()))})]},4859:(e,t,n)=>{n.d(t,{Ay:()=>Q,BH:()=>S,EI:()=>C,GY:()=>Oe,KB:()=>R,Lv:()=>me,Oh:()=>I,Q0:()=>d,Q_:()=>De,SG:()=>Ie,TM:()=>h,Tg:()=>Fe,WD:()=>U,Xt:()=>$,Yy:()=>_,Zt:()=>Se,_Y:()=>W,_v:()=>P,b_:()=>V,bj:()=>m,cr:()=>ge,f7:()=>oe,iB:()=>c,jU:()=>Le,mv:()=>p,mz:()=>B,nq:()=>v,p9:()=>u,t:()=>j,t$:()=>T,tp:()=>A,y9:()=>ke,yd:()=>G});var r,i=n(24450),o=n(8070),a=n(67538),s=n(1345),l=n(752);const c=new i.uY;function u(e){return o.sj.define({combine:e?t=>t.concat(e):void 0})}const d=new i.uY;class h{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"";this.data=e,this.name=r,o.$t.prototype.hasOwnProperty("tree")||Object.defineProperty(o.$t.prototype,"tree",{get(){return p(this)}}),this.parser=t,this.extension=[S.of(this),o.$t.languageData.of(((e,t,n)=>{let r=f(e,t,n),i=r.type.prop(c);if(!i)return[];let o=e.facet(i),a=r.type.prop(d);if(a){let i=r.resolve(t-r.from,n);for(let t of a)if(t.test(i,e)){let n=e.facet(t.facet);return"replace"==t.type?n:n.concat(o)}}return o}))].concat(n)}isActiveAt(e,t){return f(e,t,arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1).type.prop(c)==this.data}findRegions(e){let t=e.facet(S);if((null===t||void 0===t?void 0:t.data)==this.data)return[{from:0,to:e.doc.length}];if(!t||!t.allowsNesting)return[];let n=[],r=(e,t)=>{if(e.prop(c)==this.data)return void n.push({from:t,to:t+e.length});let o=e.prop(i.uY.mounted);if(o){if(o.tree.prop(c)==this.data){if(o.overlay)for(let e of o.overlay)n.push({from:e.from+t,to:e.to+t});else n.push({from:t,to:t+e.length});return}if(o.overlay){let e=n.length;if(r(o.tree,o.overlay[0].from+t),n.length>e)return}}for(let n=0;ne.isTop?t:void 0))]}),e.name)}configure(e,t){return new m(this.data,this.parser.configure(e),t||this.name)}get allowsNesting(){return this.parser.hasWrappers()}}function p(e){let t=e.field(h.state,!1);return t?t.tree:i.PH.empty}class g{constructor(e){this.doc=e,this.cursorPos=0,this.string="",this.cursor=e.iter()}get length(){return this.doc.length}syncTo(e){return this.string=this.cursor.next(e-this.cursorPos).value,this.cursorPos=e+this.string.length,this.cursorPos-this.string.length}chunk(e){return this.syncTo(e),this.string}get lineChunks(){return!0}read(e,t){let n=this.cursorPos-this.string.length;return e=this.cursorPos?this.doc.sliceString(e,t):this.string.slice(e-n,t-n)}}let b=null;class v{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],r=arguments.length>3?arguments[3]:void 0,i=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0,a=arguments.length>6?arguments[6]:void 0,s=arguments.length>7?arguments[7]:void 0;this.parser=e,this.state=t,this.fragments=n,this.tree=r,this.treeLen=i,this.viewport=o,this.skipped=a,this.scheduleOn=s,this.parse=null,this.tempSkipped=[]}static create(e,t,n){return new v(e,t,[],i.PH.empty,0,n,[],null)}startParse(){return this.parser.startParse(new g(this.state.doc),this.fragments)}work(e,t){return null!=t&&t>=this.state.doc.length&&(t=void 0),this.tree!=i.PH.empty&&this.isDone(null!==t&&void 0!==t?t:this.state.doc.length)?(this.takeTree(),!0):this.withContext((()=>{var n;if("number"==typeof e){let t=Date.now()+e;e=()=>Date.now()>t}for(this.parse||(this.parse=this.startParse()),null!=t&&(null==this.parse.stoppedAt||this.parse.stoppedAt>t)&&t=this.treeLen&&((null==this.parse.stoppedAt||this.parse.stoppedAt>e)&&this.parse.stopAt(e),this.withContext((()=>{for(;!(t=this.parse.advance()););})),this.treeLen=e,this.tree=t,this.fragments=this.withoutTempSkipped(i.rr.addTree(this.tree,this.fragments,!0)),this.parse=null)}withContext(e){let t=b;b=this;try{return e()}finally{b=t}}withoutTempSkipped(e){for(let t;t=this.tempSkipped.pop();)e=y(e,t.from,t.to);return e}changes(e,t){let{fragments:n,tree:r,treeLen:o,viewport:a,skipped:s}=this;if(this.takeTree(),!e.empty){let t=[];if(e.iterChangedRanges(((e,n,r,i)=>t.push({fromA:e,toA:n,fromB:r,toB:i}))),n=i.rr.applyChanges(n,t),r=i.PH.empty,o=0,a={from:e.mapPos(a.from,-1),to:e.mapPos(a.to,1)},this.skipped.length){s=[];for(let t of this.skipped){let n=e.mapPos(t.from,1),r=e.mapPos(t.to,-1);ne.from&&(this.fragments=y(this.fragments,t,r),this.skipped.splice(n--,1))}return!(this.skipped.length>=t)&&(this.reset(),!0)}reset(){this.parse&&(this.takeTree(),this.parse=null)}skipUntilInView(e,t){this.skipped.push({from:e,to:t})}static getSkippingParser(e){return new class extends i.iX{createParse(t,n,r){let o=r[0].from,a=r[r.length-1].to;return{parsedPos:o,advance(){let t=b;if(t){for(let e of r)t.tempSkipped.push(e);e&&(t.scheduleOn=t.scheduleOn?Promise.all([t.scheduleOn,e]):e)}return this.parsedPos=a,new i.PH(i.Z6.none,[],[],a-o)},stoppedAt:null,stopAt(){}}}}}isDone(e){e=Math.min(e,this.state.doc.length);let t=this.fragments;return this.treeLen>=e&&t.length&&0==t[0].from&&t[0].to>=e}static get(){return b}}function y(e,t,n){return i.rr.applyChanges(e,[{fromA:t,toA:n,fromB:t,toB:n}])}class k{constructor(e){this.context=e,this.tree=e.tree}apply(e){if(!e.docChanged&&this.tree==this.context.tree)return this;let t=this.context.changes(e.changes,e.state),n=this.context.treeLen==e.startState.doc.length?void 0:Math.max(e.changes.mapPos(this.context.treeLen),t.viewport.to);return t.work(20,n)||t.takeTree(),new k(t)}static init(e){let t=Math.min(3e3,e.doc.length),n=v.create(e.facet(S).parser,e,{from:0,to:t});return n.work(20,t)||n.takeTree(),new k(n)}}h.state=o.sU.define({create:k.init,update(e,t){for(let n of t.effects)if(n.is(h.setState))return n.value;return t.startState.facet(S)!=t.state.facet(S)?k.init(t.state):e.apply(t)}});let O=e=>{let t=setTimeout((()=>e()),500);return()=>clearTimeout(t)};"undefined"!=typeof requestIdleCallback&&(O=e=>{let t=-1,n=setTimeout((()=>{t=requestIdleCallback(e,{timeout:400})}),100);return()=>t<0?clearTimeout(n):cancelIdleCallback(t)});const w="undefined"!=typeof navigator&&(null===(r=navigator.scheduling)||void 0===r?void 0:r.isInputPending)?()=>navigator.scheduling.isInputPending():null,x=a.Z9.fromClass(class{constructor(e){this.view=e,this.working=null,this.workScheduled=0,this.chunkEnd=-1,this.chunkBudget=-1,this.work=this.work.bind(this),this.scheduleWork()}update(e){let t=this.view.state.field(h.state).context;(t.updateViewport(e.view.viewport)||this.view.viewport.to>t.treeLen)&&this.scheduleWork(),(e.docChanged||e.selectionSet)&&(this.view.hasFocus&&(this.chunkBudget+=50),this.scheduleWork()),this.checkAsyncSchedule(t)}scheduleWork(){if(this.working)return;let{state:e}=this.view,t=e.field(h.state);t.tree==t.context.tree&&t.context.isDone(e.doc.length)||(this.working=O(this.work))}work(e){this.working=null;let t=Date.now();if(this.chunkEndr+1e3,s=i.context.work((()=>w&&w()||Date.now()>o),r+(a?0:1e5));this.chunkBudget-=Date.now()-t,(s||this.chunkBudget<=0)&&(i.context.takeTree(),this.view.dispatch({effects:h.setState.of(new k(i.context))})),this.chunkBudget>0&&(!s||a)&&this.scheduleWork(),this.checkAsyncSchedule(i.context)}checkAsyncSchedule(e){e.scheduleOn&&(this.workScheduled++,e.scheduleOn.then((()=>this.scheduleWork())).catch((e=>(0,a.c_)(this.view.state,e))).then((()=>this.workScheduled--)),e.scheduleOn=null)}destroy(){this.working&&this.working()}isWorking(){return!!(this.working||this.workScheduled>0)}},{eventHandlers:{focus(){this.scheduleWork()}}}),S=o.sj.define({combine:e=>e.length?e[0]:null,enables:e=>[h.state,x,a.Lz.contentAttributes.compute([e],(t=>{let n=t.facet(e);return n&&n.name?{"data-language":n.name}:{}}))]});class _{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];this.language=e,this.support=t,this.extension=[e,t]}}class T{constructor(e,t,n,r,i){let o=arguments.length>5&&void 0!==arguments[5]?arguments[5]:void 0;this.name=e,this.alias=t,this.extensions=n,this.filename=r,this.loadFunc=i,this.support=o,this.loading=null}load(){return this.loading||(this.loading=this.loadFunc().then((e=>this.support=e),(e=>{throw this.loading=null,e})))}static of(e){let{load:t,support:n}=e;if(!t){if(!n)throw new RangeError("Must pass either 'load' or 'support' to LanguageDescription.of");t=()=>Promise.resolve(n)}return new T(e.name,(e.alias||[]).concat(e.name).map((e=>e.toLowerCase())),e.extensions||[],e.filename,t,n)}static matchFilename(e,t){for(let r of e)if(r.filename&&r.filename.test(t))return r;let n=/\.([^.]+)$/.exec(t);if(n)for(let r of e)if(r.extensions.indexOf(n[1])>-1)return r;return null}static matchLanguageName(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2];t=t.toLowerCase();for(let r of e)if(r.alias.some((e=>e==t)))return r;if(n)for(let r of e)for(let e of r.alias){let n=t.indexOf(e);if(n>-1&&(e.length>2||!/\w/.test(t[n-1])&&!/\w/.test(t[n+e.length])))return r}return null}}const E=o.sj.define(),$=o.sj.define({combine:e=>{if(!e.length)return" ";let t=e[0];if(!t||/\S/.test(t)||Array.from(t).some((e=>e!=t[0])))throw new Error("Invalid indent unit: "+JSON.stringify(e[0]));return t}});function A(e){let t=e.facet($);return 9==t.charCodeAt(0)?e.tabSize*t.length:t.length}function C(e,t){let n="",r=e.tabSize,i=e.facet($)[0];if("\t"==i){for(;t>=r;)n+="\t",t-=r;i=" "}for(let o=0;o=t?function(e,t,n){let r=t.resolveStack(n),i=r.node.enterUnfinishedNodesBefore(n);if(i!=r.node){let e=[];for(let t=i;t!=r.node;t=t.parent)e.push(t);for(let t=e.length-1;t>=0;t--)r={node:e[t],next:r}}return D(r,e,n)}(e,n,t):null}class R{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.state=e,this.options=t,this.unit=A(e)}lineAt(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,n=this.state.doc.lineAt(e),{simulateBreak:r,simulateDoubleBreak:i}=this.options;return null!=r&&r>=n.from&&r<=n.to?i&&r==e?{text:"",from:e}:(t<0?r1&&void 0!==arguments[1]?arguments[1]:1;if(this.options.simulateDoubleBreak&&e==this.options.simulateBreak)return"";let{text:n,from:r}=this.lineAt(e,t);return n.slice(e-r,Math.min(n.length,e+100-r))}column(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,{text:n,from:r}=this.lineAt(e,t),i=this.countColumn(n,e-r),o=this.options.overrideIndentation?this.options.overrideIndentation(r):-1;return o>-1&&(i+=o-this.countColumn(n,n.search(/\S|$/))),i}countColumn(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.length;return(0,o.y$)(e,this.state.tabSize,t)}lineIndent(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,{text:n,from:r}=this.lineAt(e,t),i=this.options.overrideIndentation;if(i){let e=i(r);if(e>-1)return e}return this.countColumn(n,n.search(/\S|$/))}get simulatedBreak(){return this.options.simulateBreak||null}}const I=new i.uY;function D(e,t,n){for(let r=e;r;r=r.next){let e=z(r.node);if(e)return e(L.create(t,n,r))}return 0}function z(e){let t=e.type.prop(I);if(t)return t;let n,r=e.firstChild;if(r&&(n=r.type.prop(i.uY.closedBy))){let t=e.lastChild,r=t&&n.indexOf(t.name)>-1;return e=>q(e,!0,1,void 0,r&&!function(e){return e.pos==e.options.simulateBreak&&e.options.simulateDoubleBreak}(e)?t.from:void 0)}return null==e.parent?N:null}function N(){return 0}class L extends R{constructor(e,t,n){super(e.state,e.options),this.base=e,this.pos=t,this.context=n}get node(){return this.context.node}static create(e,t,n){return new L(e,t,n)}get textAfter(){return this.textAfterPos(this.pos)}get baseIndent(){return this.baseIndentFor(this.node)}baseIndentFor(e){let t=this.state.doc.lineAt(e.from);for(;;){let n=e.resolve(t.from);for(;n.parent&&n.parent.from==n.from;)n=n.parent;if(M(n,e))break;t=this.state.doc.lineAt(n.from)}return this.lineIndent(t.from)}continue(){return D(this.context.next,this.base,this.pos)}}function M(e,t){for(let n=t;n;n=n.parent)if(e==n)return!0;return!1}function Q(e){let{closing:t,align:n=!0,units:r=1}=e;return e=>q(e,n,r,t)}function q(e,t,n,r,i){let o=e.textAfter,a=o.match(/^\s*/)[0].length,s=r&&o.slice(a,a+r.length)==r||i==e.pos+a,l=t?function(e){let t=e.node,n=t.childAfter(t.from),r=t.lastChild;if(!n)return null;let i=e.options.simulateBreak,o=e.state.doc.lineAt(n.from),a=null==i||i<=o.from?o.to:Math.min(o.to,i);for(let s=n.to;;){let e=t.childAfter(s);if(!e||e==r)return null;if(!e.type.isSkipped)return e.frome.baseIndent;function B(){let{except:e,units:t=1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return n=>{let r=e&&e.test(n.textAfter);return n.baseIndent+(r?0:t*n.unit)}}const F=200;function U(){return o.$t.transactionFilter.of((e=>{if(!e.docChanged||!e.isUserEvent("input.type")&&!e.isUserEvent("input.complete"))return e;let t=e.startState.languageDataAt("indentOnInput",e.startState.selection.main.head);if(!t.length)return e;let n=e.newDoc,{head:r}=e.newSelection.main,i=n.lineAt(r);if(r>i.from+F)return e;let o=n.sliceString(i.from,r);if(!t.some((e=>e.test(o))))return e;let{state:a}=e,s=-1,l=[];for(let{head:c}of a.selection.ranges){let e=a.doc.lineAt(c);if(e.from==s)continue;s=e.from;let t=P(a,e.from);if(null==t)continue;let n=/^\s*/.exec(e.text)[0],r=C(a,t);n!=r&&l.push({from:e.from,to:e.from+n.length,insert:r})}return l.length?[e,{changes:l,sequential:!0}]:e}))}const j=o.sj.define(),V=new i.uY;function G(e){let t=e.firstChild,n=e.lastChild;return t&&t.ton)continue;if(i&&a.from=t&&r.to>n&&(i=r)}}return i}(e,t,n)}function Z(e,t){let n=t.mapPos(e.from,1),r=t.mapPos(e.to,-1);return n>=r?void 0:{from:n,to:r}}const H=o.Pe.define({map:Z}),K=o.Pe.define({map:Z});function J(e){let t=[];for(let{head:n}of e.state.selection.ranges)t.some((e=>e.from<=n&&e.to>=n))||t.push(e.lineBlockAt(n));return t}const ee=o.sU.define({create:()=>a.NZ.none,update(e,t){e=e.map(t.changes);for(let n of t.effects)if(n.is(H)&&!ne(e,n.value.from,n.value.to)){let{preparePlaceholder:r}=t.state.facet(se),i=r?a.NZ.replace({widget:new de(r(t.state,n.value))}):ue;e=e.update({add:[i.range(n.value.from,n.value.to)]})}else n.is(K)&&(e=e.update({filter:(e,t)=>n.value.from!=e||n.value.to!=t,filterFrom:n.value.from,filterTo:n.value.to}));if(t.selection){let n=!1,{head:r}=t.selection.main;e.between(r,r,((e,t)=>{er&&(n=!0)})),n&&(e=e.update({filterFrom:r,filterTo:r,filter:(e,t)=>t<=r||e>=r}))}return e},provide:e=>a.Lz.decorations.from(e),toJSON(e,t){let n=[];return e.between(0,t.doc.length,((e,t)=>{n.push(e,t)})),n},fromJSON(e){if(!Array.isArray(e)||e.length%2)throw new RangeError("Invalid JSON for fold state");let t=[];for(let n=0;n{(!i||i.from>e)&&(i={from:e,to:t})})),i}function ne(e,t,n){let r=!1;return e.between(t,t,((e,i)=>{e==t&&i==n&&(r=!0)})),r}function re(e,t){return e.field(ee,!1)?t:t.concat(o.Pe.appendConfig.of(le()))}function ie(e,t){let n=!(arguments.length>2&&void 0!==arguments[2])||arguments[2],r=e.state.doc.lineAt(t.from).number,i=e.state.doc.lineAt(t.to).number;return a.Lz.announce.of("".concat(e.state.phrase(n?"Folded lines":"Unfolded lines")," ").concat(r," ").concat(e.state.phrase("to")," ").concat(i,"."))}const oe=[{key:"Ctrl-Shift-[",mac:"Cmd-Alt-[",run:e=>{for(let t of J(e)){let n=Y(e.state,t.from,t.to);if(n)return e.dispatch({effects:re(e.state,[H.of(n),ie(e,n)])}),!0}return!1}},{key:"Ctrl-Shift-]",mac:"Cmd-Alt-]",run:e=>{if(!e.state.field(ee,!1))return!1;let t=[];for(let n of J(e)){let r=te(e.state,n.from,n.to);r&&t.push(K.of(r),ie(e,r,!1))}return t.length&&e.dispatch({effects:t}),t.length>0}},{key:"Ctrl-Alt-[",run:e=>{let{state:t}=e,n=[];for(let r=0;r{let t=e.state.field(ee,!1);if(!t||!t.size)return!1;let n=[];return t.between(0,e.state.doc.length,((e,t)=>{n.push(K.of({from:e,to:t}))})),e.dispatch({effects:n}),!0}}],ae={placeholderDOM:null,preparePlaceholder:null,placeholderText:"\u2026"},se=o.sj.define({combine:e=>(0,o.QR)(e,ae)});function le(e){let t=[ee,pe];return e&&t.push(se.of(e)),t}function ce(e,t){let{state:n}=e,r=n.facet(se),i=t=>{let n=e.lineBlockAt(e.posAtDOM(t.target)),r=te(e.state,n.from,n.to);r&&e.dispatch({effects:K.of(r)}),t.preventDefault()};if(r.placeholderDOM)return r.placeholderDOM(e,i,t);let o=document.createElement("span");return o.textContent=r.placeholderText,o.setAttribute("aria-label",n.phrase("folded code")),o.title=n.phrase("unfold"),o.className="cm-foldPlaceholder",o.onclick=i,o}const ue=a.NZ.replace({widget:new class extends a.xO{toDOM(e){return ce(e,null)}}});class de extends a.xO{constructor(e){super(),this.value=e}eq(e){return this.value==e.value}toDOM(e){return ce(e,this.value)}}const he={openText:"\u2304",closedText:"\u203a",markerDOM:null,domEventHandlers:{},foldingChanged:()=>!1};class fe extends a.wJ{constructor(e,t){super(),this.config=e,this.open=t}eq(e){return this.config==e.config&&this.open==e.open}toDOM(e){if(this.config.markerDOM)return this.config.markerDOM(this.open);let t=document.createElement("span");return t.textContent=this.open?this.config.openText:this.config.closedText,t.title=e.state.phrase(this.open?"Fold line":"Unfold line"),t}}function me(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign(Object.assign({},he),e),n=new fe(t,!0),r=new fe(t,!1),i=a.Z9.fromClass(class{constructor(e){this.from=e.viewport.from,this.markers=this.buildMarkers(e)}update(e){(e.docChanged||e.viewportChanged||e.startState.facet(S)!=e.state.facet(S)||e.startState.field(ee,!1)!=e.state.field(ee,!1)||p(e.startState)!=p(e.state)||t.foldingChanged(e))&&(this.markers=this.buildMarkers(e.view))}buildMarkers(e){let t=new o.vB;for(let i of e.viewportLineBlocks){let o=te(e.state,i.from,i.to)?r:Y(e.state,i.from,i.to)?n:null;o&&t.add(i.from,i.from,o)}return t.finish()}}),{domEventHandlers:s}=t;return[i,(0,a.cU)({class:"cm-foldGutter",markers(e){var t;return(null===(t=e.plugin(i))||void 0===t?void 0:t.markers)||o.om.empty},initialSpacer:()=>new fe(t,!1),domEventHandlers:Object.assign(Object.assign({},s),{click:(e,t,n)=>{if(s.click&&s.click(e,t,n))return!0;let r=te(e.state,t.from,t.to);if(r)return e.dispatch({effects:K.of(r)}),!0;let i=Y(e.state,t.from,t.to);return!!i&&(e.dispatch({effects:H.of(i)}),!0)}})}),le()]}const pe=a.Lz.baseTheme({".cm-foldPlaceholder":{backgroundColor:"#eee",border:"1px solid #ddd",color:"#888",borderRadius:".2em",margin:"0 1px",padding:"0 1px",cursor:"pointer"},".cm-foldGutter span":{padding:"0 1px",cursor:"pointer"}});class ge{constructor(e,t){let n;function r(e){let t=l.G.newName();return(n||(n=Object.create(null)))["."+t]=e,t}this.specs=e;const i="string"==typeof t.all?t.all:t.all?r(t.all):void 0,o=t.scope;this.scope=o instanceof h?e=>e.prop(c)==o.data:o?e=>e==o:void 0,this.style=(0,s.az)(e.map((e=>({tag:e.tag,class:e.class||r(Object.assign({},e,{tag:null}))}))),{all:i}).style,this.module=n?new l.G(n):null,this.themeType=t.themeType}static define(e,t){return new ge(e,t||{})}}const be=o.sj.define(),ve=o.sj.define({combine:e=>e.length?[e[0]]:null});function ye(e){let t=e.facet(be);return t.length?t:e.facet(ve)}function ke(e,t){let n,r=[xe];return e instanceof ge&&(e.module&&r.push(a.Lz.styleModule.of(e.module)),n=e.themeType),(null===t||void 0===t?void 0:t.fallback)?r.push(ve.of(e)):n?r.push(be.computeN([a.Lz.darkTheme],(t=>t.facet(a.Lz.darkTheme)==("dark"==n)?[e]:[]))):r.push(be.of(e)),r}function Oe(e,t,n){let r=ye(e),i=null;if(r)for(let o of r)if(!o.scope||n&&o.scope(n)){let e=o.style(t);e&&(i=i?i+" "+e:e)}return i}class we{constructor(e){this.markCache=Object.create(null),this.tree=p(e.state),this.decorations=this.buildDeco(e,ye(e.state)),this.decoratedTo=e.viewport.to}update(e){let t=p(e.state),n=ye(e.state),r=n!=ye(e.startState),{viewport:i}=e.view,o=e.changes.mapPos(this.decoratedTo,1);t.length=i.to?(this.decorations=this.decorations.map(e.changes),this.decoratedTo=o):(t!=this.tree||e.viewportChanged||r)&&(this.tree=t,this.decorations=this.buildDeco(e.view,n),this.decoratedTo=i.to)}buildDeco(e,t){if(!t||!this.tree.length)return a.NZ.none;let n=new o.vB;for(let{from:r,to:i}of e.visibleRanges)(0,s.DM)(this.tree,t,((e,t,r)=>{n.add(e,t,this.markCache[r]||(this.markCache[r]=a.NZ.mark({class:r})))}),r,i);return n.finish()}}const xe=o.Nb.high(a.Z9.fromClass(we,{decorations:e=>e.decorations})),Se=ge.define([{tag:s._A.meta,color:"#404740"},{tag:s._A.link,textDecoration:"underline"},{tag:s._A.heading,textDecoration:"underline",fontWeight:"bold"},{tag:s._A.emphasis,fontStyle:"italic"},{tag:s._A.strong,fontWeight:"bold"},{tag:s._A.strikethrough,textDecoration:"line-through"},{tag:s._A.keyword,color:"#708"},{tag:[s._A.atom,s._A.bool,s._A.url,s._A.contentSeparator,s._A.labelName],color:"#219"},{tag:[s._A.literal,s._A.inserted],color:"#164"},{tag:[s._A.string,s._A.deleted],color:"#a11"},{tag:[s._A.regexp,s._A.escape,s._A.special(s._A.string)],color:"#e40"},{tag:s._A.definition(s._A.variableName),color:"#00f"},{tag:s._A.local(s._A.variableName),color:"#30a"},{tag:[s._A.typeName,s._A.namespace],color:"#085"},{tag:s._A.className,color:"#167"},{tag:[s._A.special(s._A.variableName),s._A.macroName],color:"#256"},{tag:s._A.definition(s._A.propertyName),color:"#00c"},{tag:s._A.comment,color:"#940"},{tag:s._A.invalid,color:"#f00"}]),_e=a.Lz.baseTheme({"&.cm-focused .cm-matchingBracket":{backgroundColor:"#328c8252"},"&.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bb555544"}}),Te=1e4,Ee="()[]{}",$e=o.sj.define({combine:e=>(0,o.QR)(e,{afterCursor:!0,brackets:Ee,maxScanDistance:Te,renderMatch:Pe})}),Ae=a.NZ.mark({class:"cm-matchingBracket"}),Ce=a.NZ.mark({class:"cm-nonmatchingBracket"});function Pe(e){let t=[],n=e.matched?Ae:Ce;return t.push(n.range(e.start.from,e.start.to)),e.end&&t.push(n.range(e.end.from,e.end.to)),t}const Re=[o.sU.define({create:()=>a.NZ.none,update(e,t){if(!t.docChanged&&!t.selection)return e;let n=[],r=t.state.facet($e);for(let i of t.state.selection.ranges){if(!i.empty)continue;let e=Le(t.state,i.head,-1,r)||i.head>0&&Le(t.state,i.head-1,1,r)||r.afterCursor&&(Le(t.state,i.head,1,r)||i.heada.Lz.decorations.from(e)}),_e];function Ie(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[$e.of(e),Re]}const De=new i.uY;function ze(e,t,n){let r=e.prop(t<0?i.uY.openedBy:i.uY.closedBy);if(r)return r;if(1==e.name.length){let r=n.indexOf(e.name);if(r>-1&&r%2==(t<0?1:0))return[n[r+t]]}return null}function Ne(e){let t=e.type.prop(De);return t?t(e.node):e}function Le(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.maxScanDistance||Te,o=r.brackets||Ee,a=p(e),s=a.resolveInner(t,n);for(let l=s;l;l=l.parent){let r=ze(l.type,n,o);if(r&&l.from0?t>=i.from&&ti.from&&t<=i.to))return Me(e,t,n,l,i,r,o)}}return function(e,t,n,r,i,o,a){let s=n<0?e.sliceDoc(t-1,t):e.sliceDoc(t,t+1),l=a.indexOf(s);if(l<0||l%2==0!=n>0)return null;let c={from:n<0?t-1:t,to:n>0?t+1:t},u=e.doc.iterRange(t,n>0?e.doc.length:0),d=0;for(let h=0;!u.next().done&&h<=o;){let e=u.value;n<0&&(h+=e.length);let o=t+h*n;for(let t=n>0?0:e.length-1,s=n>0?e.length:-1;t!=s;t+=n){let s=a.indexOf(e[t]);if(!(s<0||r.resolveInner(o+t,1).type!=i))if(s%2==0==n>0)d++;else{if(1==d)return{start:c,end:{from:o+t,to:o+t+1},matched:s>>1==l>>1};d--}}n>0&&(h+=e.length)}return u.done?{start:c,matched:!1}:null}(e,t,n,a,s.type,i,o)}function Me(e,t,n,r,i,o,a){let s=r.parent,l={from:i.from,to:i.to},c=0,u=null===s||void 0===s?void 0:s.cursor();if(u&&(n<0?u.childBefore(r.from):u.childAfter(r.to)))do{if(n<0?u.to<=r.from:u.from>=r.to){if(0==c&&o.indexOf(u.type.name)>-1&&u.from3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:0;null==t&&-1==(t=e.search(/[^\s\u00a0]/))&&(t=e.length);let o=i;for(let a=r;a=this.string.length}sol(){return 0==this.pos}peek(){return this.string.charAt(this.pos)||void 0}next(){if(this.post}eatSpace(){let e=this.pos;for(;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e}skipToEnd(){this.pos=this.string.length}skipTo(e){let t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0}backUp(e){this.pos-=e}column(){return this.lastColumnPosn?e.toLowerCase():e;return r(this.string.substr(this.pos,e.length))==r(e)?(!1!==t&&(this.pos+=e.length),!0):null}{let n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}}current(){return this.string.slice(this.start,this.pos)}}function We(e){if("object"!=typeof e)return e;let t={};for(let n in e){let r=e[n];t[n]=r instanceof Array?r.slice():r}return t}const Be=new WeakMap;class Fe extends h{constructor(e){let t,n=u(e.languageData),r={name:(o=e).name||"",token:o.token,blankLine:o.blankLine||(()=>{}),startState:o.startState||(()=>!0),copyState:o.copyState||We,indent:o.indent||(()=>null),languageData:o.languageData||{},tokenTable:o.tokenTable||Xe};var o;super(n,new class extends i.iX{createParse(e,n,r){return new Ve(t,e,n,r)}},[E.of(((e,t)=>this.getIndent(e,t)))],e.name),this.topNode=function(e){let t=i.Z6.define({id:Ye.length,name:"Document",props:[c.add((()=>e))],top:!0});return Ye.push(t),t}(n),t=this,this.streamParser=r,this.stateAfter=new i.uY({perNode:!0}),this.tokenTable=e.tokenTable?new et(r.tokenTable):tt}static define(e){return new Fe(e)}getIndent(e,t){let n,r=p(e.state),i=r.resolve(t);for(;i&&i.type!=this.topNode;)i=i.parent;if(!i)return null;let{overrideIndentation:o}=e.options;o&&(n=Be.get(e.state),null!=n&&n1e4)return null;for(;a=r&&n+t.length<=o&&t.prop(e.stateAfter);if(a)return{state:e.streamParser.copyState(a),pos:n+t.length};for(let s=t.children.length-1;s>=0;s--){let a=t.children[s],l=n+t.positions[s],c=a instanceof i.PH&&l=t.length)return t;o||t.type!=e.topNode||(o=!0);for(let a=t.children.length-1;a>=0;a--){let s,l=t.positions[a],c=t.children[a];if(ln&&Ue(e,i.tree,0-i.offset,n,o);if(a&&(t=je(e,i.tree,n+i.offset,a.pos+i.offset,!1)))return{state:a.state,tree:t}}return{state:e.streamParser.startState(r?A(r):4),tree:i.PH.empty}}(e,n,a,null===o||void 0===o?void 0:o.state);this.state=s,this.parsedPos=this.chunkStart=a+l.length;for(let i=0;i=t?this.finish():e&&this.parsedPos>=e.viewport.to?(e.skipUntilInView(this.parsedPos,t),this.finish()):null}stopAt(e){this.stoppedAt=e}lineAfter(e){let t=this.input.chunk(e);if(this.input.lineChunks)"\n"==t&&(t="");else{let e=t.indexOf("\n");e>-1&&(t=t.slice(0,e))}return e+t.length<=this.to?t:t.slice(0,this.to-e)}nextLine(){let e=this.parsedPos,t=this.lineAfter(e),n=e+t.length;for(let r=this.rangeIndex;;){let e=this.ranges[r].to;if(e>=n)break;if(t=t.slice(0,e-(n-t.length)),r++,r==this.ranges.length)break;let i=this.ranges[r].from,o=this.lineAfter(i);t+=o,n=i+o.length}return{line:t,end:n}}skipGapsTo(e,t,n){for(;;){let r=this.ranges[this.rangeIndex].to,i=e+t;if(n>0?r>i:r>=i)break;t+=this.ranges[++this.rangeIndex].from-r}return t}moveRangeIndex(){for(;this.ranges[this.rangeIndex].to1){t+=i=this.skipGapsTo(t,i,1);let e=this.chunk.length;n+=i=this.skipGapsTo(n,i,-1),r+=this.chunk.length-e}return this.chunk.push(e,t,n,r),i}parseLine(e){let{line:t,end:n}=this.nextLine(),r=0,{streamParser:i}=this.lang,o=new qe(t,e?e.state.tabSize:4,e?A(e.state):2);if(o.eol())i.blankLine(this.state,o.indentUnit);else for(;!o.eol();){let e=Ge(i.token,o,this.state);if(e&&(r=this.emitToken(this.lang.tokenTable.resolve(e),this.parsedPos+o.start,this.parsedPos+o.pos,4,r)),o.start>1e4)break}this.parsedPos=n,this.moveRangeIndex(),this.parsedPost.start)return r}throw new Error("Stream parser failed to advance stream.")}const Xe=Object.create(null),Ye=[i.Z6.none],Ze=new i.fI(Ye),He=[],Ke=Object.create(null),Je=Object.create(null);for(let[it,ot]of[["variable","variableName"],["variable-2","variableName.special"],["string-2","string.special"],["def","variableName.definition"],["tag","tagName"],["attribute","attributeName"],["type","typeName"],["builtin","variableName.standard"],["qualifier","modifier"],["error","invalid"],["header","heading"],["property","propertyName"]])Je[it]=rt(Xe,ot);class et{constructor(e){this.extra=e,this.table=Object.assign(Object.create(null),Je)}resolve(e){return e?this.table[e]||(this.table[e]=rt(this.extra,e)):0}}const tt=new et(Xe);function nt(e,t){He.indexOf(e)>-1||(He.push(e),console.warn(t))}function rt(e,t){let n=[];for(let i of t.split(" ")){let t=[];for(let n of i.split(".")){let r=e[n]||s._A[n];r?"function"==typeof r?t.length?t=t.map(r):nt(n,"Modifier ".concat(n," used at start of tag")):t.length?nt(n,"Tag ".concat(n," used as modifier")):t=Array.isArray(r)?r:[r]:nt(n,"Unknown highlighting tag ".concat(n))}for(let e of t)n.push(e)}if(!n.length)return 0;let r=t.replace(/ /g,"_"),o=r+" "+n.map((e=>e.id)),a=Ke[o];if(a)return a.id;let l=Ke[o]=i.Z6.define({id:Ye.length,name:r,props:[(0,s.pn)({[r]:n})]});return Ye.push(l),l.id}a.OP.RTL,a.OP.LTR},46175:(e,t,n)=>{n.r(t),n.d(t,{apl:()=>c});var r={"+":["conjugate","add"],"\u2212":["negate","subtract"],"\xd7":["signOf","multiply"],"\xf7":["reciprocal","divide"],"\u2308":["ceiling","greaterOf"],"\u230a":["floor","lesserOf"],"\u2223":["absolute","residue"],"\u2373":["indexGenerate","indexOf"],"?":["roll","deal"],"\u22c6":["exponentiate","toThePowerOf"],"\u235f":["naturalLog","logToTheBase"],"\u25cb":["piTimes","circularFuncs"],"!":["factorial","binomial"],"\u2339":["matrixInverse","matrixDivide"],"<":[null,"lessThan"],"\u2264":[null,"lessThanOrEqual"],"=":[null,"equals"],">":[null,"greaterThan"],"\u2265":[null,"greaterThanOrEqual"],"\u2260":[null,"notEqual"],"\u2261":["depth","match"],"\u2262":[null,"notMatch"],"\u2208":["enlist","membership"],"\u2377":[null,"find"],"\u222a":["unique","union"],"\u2229":[null,"intersection"],"\u223c":["not","without"],"\u2228":[null,"or"],"\u2227":[null,"and"],"\u2371":[null,"nor"],"\u2372":[null,"nand"],"\u2374":["shapeOf","reshape"],",":["ravel","catenate"],"\u236a":[null,"firstAxisCatenate"],"\u233d":["reverse","rotate"],"\u2296":["axis1Reverse","axis1Rotate"],"\u2349":["transpose",null],"\u2191":["first","take"],"\u2193":[null,"drop"],"\u2282":["enclose","partitionWithAxis"],"\u2283":["diclose","pick"],"\u2337":[null,"index"],"\u234b":["gradeUp",null],"\u2352":["gradeDown",null],"\u22a4":["encode",null],"\u22a5":["decode",null],"\u2355":["format","formatByExample"],"\u234e":["execute",null],"\u22a3":["stop","left"],"\u22a2":["pass","right"]},i=/[\.\/\u233f\u2340\xa8\u2363]/,o=/\u236c/,a=/[\+\u2212\xd7\xf7\u2308\u230a\u2223\u2373\?\u22c6\u235f\u25cb!\u2339<\u2264=>\u2265\u2260\u2261\u2262\u2208\u2377\u222a\u2229\u223c\u2228\u2227\u2371\u2372\u2374,\u236a\u233d\u2296\u2349\u2191\u2193\u2282\u2283\u2337\u234b\u2352\u22a4\u22a5\u2355\u234e\u22a3\u22a2]/,s=/\u2190/,l=/[\u235d#].*$/;const c={name:"apl",startState:function(){return{prev:!1,func:!1,op:!1,string:!1,escape:!1}},token:function(e,t){var n;return e.eatSpace()?null:'"'===(n=e.next())||"'"===n?(e.eatWhile(function(e){var t;return t=!1,function(n){return t=n,n!==e||"\\"===t}}(n)),e.next(),t.prev=!0,"string"):/[\[{\(]/.test(n)?(t.prev=!1,null):/[\]}\)]/.test(n)?(t.prev=!0,null):o.test(n)?(t.prev=!1,"atom"):/[\xaf\d]/.test(n)?(t.func?(t.func=!1,t.prev=!1):t.prev=!0,e.eatWhile(/[\w\.]/),"number"):i.test(n)||s.test(n)?"operator":a.test(n)?(t.func=!0,t.prev=!1,r[n]?"variableName.function.standard":"variableName.function"):l.test(n)?(e.skipToEnd(),"comment"):"\u2218"===n&&"."===e.peek()?(e.next(),"variableName.function"):(e.eatWhile(/[\w\$_]/),t.prev=!0,"keyword")}}},49468:(e,t,n)=>{function r(e){var t=e.match(/^\s*\S/);return e.skipToEnd(),t?"error":null}n.r(t),n.d(t,{asciiArmor:()=>i});const i={name:"asciiarmor",token:function(e,t){var n;if("top"==t.state)return e.sol()&&(n=e.match(/^-----BEGIN (.*)?-----\s*$/))?(t.state="headers",t.type=n[1],"tag"):r(e);if("headers"==t.state){if(e.sol()&&e.match(/^\w+:/))return t.state="header","atom";var i=r(e);return i&&(t.state="body"),i}return"header"==t.state?(e.skipToEnd(),t.state="headers","string"):"body"==t.state?e.sol()&&(n=e.match(/^-----END (.*)?-----\s*$/))?n[1]!=t.type?"error":(t.state="end","tag"):e.eatWhile(/[A-Za-z0-9+\/=]/)?null:(e.next(),"error"):"end"==t.state?r(e):void 0},blankLine:function(e){"headers"==e.state&&(e.state="body")},startState:function(){return{state:"top",type:null}}}},2007:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;ro});const i={keywords:r("DEFINITIONS OBJECTS IF DERIVED INFORMATION ACTION REPLY ANY NAMED CHARACTERIZED BEHAVIOUR REGISTERED WITH AS IDENTIFIED CONSTRAINED BY PRESENT BEGIN IMPORTS FROM UNITS SYNTAX MIN-ACCESS MAX-ACCESS MINACCESS MAXACCESS REVISION STATUS DESCRIPTION SEQUENCE SET COMPONENTS OF CHOICE DistinguishedName ENUMERATED SIZE MODULE END INDEX AUGMENTS EXTENSIBILITY IMPLIED EXPORTS"),cmipVerbs:r("ACTIONS ADD GET NOTIFICATIONS REPLACE REMOVE"),compareTypes:r("OPTIONAL DEFAULT MANAGED MODULE-TYPE MODULE_IDENTITY MODULE-COMPLIANCE OBJECT-TYPE OBJECT-IDENTITY OBJECT-COMPLIANCE MODE CONFIRMED CONDITIONAL SUBORDINATE SUPERIOR CLASS TRUE FALSE NULL TEXTUAL-CONVENTION"),status:r("current deprecated mandatory obsolete"),tags:r("APPLICATION AUTOMATIC EXPLICIT IMPLICIT PRIVATE TAGS UNIVERSAL"),storage:r("BOOLEAN INTEGER OBJECT IDENTIFIER BIT OCTET STRING UTCTime InterfaceIndex IANAifType CMIP-Attribute REAL PACKAGE PACKAGES IpAddress PhysAddress NetworkAddress BITS BMPString TimeStamp TimeTicks TruthValue RowStatus DisplayString GeneralString GraphicString IA5String NumericString PrintableString SnmpAdminString TeletexString UTF8String VideotexString VisibleString StringStore ISO646String T61String UniversalString Unsigned32 Integer32 Gauge Gauge32 Counter Counter32 Counter64"),modifier:r("ATTRIBUTE ATTRIBUTES MANDATORY-GROUP MANDATORY-GROUPS GROUP GROUPS ELEMENTS EQUALITY ORDERING SUBSTRINGS DEFINED"),accessTypes:r("not-accessible accessible-for-notify read-only read-create read-write"),multiLineStrings:!0};function o(e){var t,n=e.keywords||i.keywords,r=e.cmipVerbs||i.cmipVerbs,o=e.compareTypes||i.compareTypes,a=e.status||i.status,s=e.tags||i.tags,l=e.storage||i.storage,c=e.modifier||i.modifier,u=e.accessTypes||i.accessTypes,d=e.multiLineStrings||i.multiLineStrings,h=!1!==e.indentStatements,f=/[\|\^]/;function m(e,i){var h,m=e.next();if('"'==m||"'"==m)return i.tokenize=(h=m,function(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if(n==h&&!r){var o=e.peek();o&&("b"!=(o=o.toLowerCase())&&"h"!=o&&"o"!=o||e.next()),i=!0;break}r=!r&&"\\"==n}return(i||!r&&!d)&&(t.tokenize=null),"string"}),i.tokenize(e,i);if(/[\[\]\(\){}:=,;]/.test(m))return t=m,"punctuation";if("-"==m&&e.eat("-"))return e.skipToEnd(),"comment";if(/\d/.test(m))return e.eatWhile(/[\w\.]/),"number";if(f.test(m))return e.eatWhile(f),"operator";e.eatWhile(/[\w\-]/);var p=e.current();return n.propertyIsEnumerable(p)?"keyword":r.propertyIsEnumerable(p)?"variableName":o.propertyIsEnumerable(p)?"atom":a.propertyIsEnumerable(p)?"comment":s.propertyIsEnumerable(p)?"typeName":l.propertyIsEnumerable(p)||c.propertyIsEnumerable(p)||u.propertyIsEnumerable(p)?"modifier":"variableName"}function p(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function g(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new p(r,t,n,null,e.context)}function b(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}return{name:"asn1",startState:function(){return{tokenize:null,context:new p(-2,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,n){var r=n.context;if(e.sol()&&(null==r.align&&(r.align=!1),n.indented=e.indentation(),n.startOfLine=!0),e.eatSpace())return null;t=null;var i=(n.tokenize||m)(e,n);if("comment"==i)return i;if(null==r.align&&(r.align=!0),";"!=t&&":"!=t&&","!=t||"statement"!=r.type)if("{"==t)g(n,e.column(),"}");else if("["==t)g(n,e.column(),"]");else if("("==t)g(n,e.column(),")");else if("}"==t){for(;"statement"==r.type;)r=b(n);for("}"==r.type&&(r=b(n));"statement"==r.type;)r=b(n)}else t==r.type?b(n):h&&(("}"==r.type||"top"==r.type)&&";"!=t||"statement"==r.type&&"newstatement"==t)&&g(n,e.column(),"statement");else b(n);return n.startOfLine=!1,i},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"--"}}}}},30866:(e,t,n)=>{n.r(t),n.d(t,{asterisk:()=>a});var r=["exten","same","include","ignorepat","switch"],i=["#include","#exec"],o=["addqueuemember","adsiprog","aelsub","agentlogin","agentmonitoroutgoing","agi","alarmreceiver","amd","answer","authenticate","background","backgrounddetect","bridge","busy","callcompletioncancel","callcompletionrequest","celgenuserevent","changemonitor","chanisavail","channelredirect","chanspy","clearhash","confbridge","congestion","continuewhile","controlplayback","dahdiacceptr2call","dahdibarge","dahdiras","dahdiscan","dahdisendcallreroutingfacility","dahdisendkeypadfacility","datetime","dbdel","dbdeltree","deadagi","dial","dictate","directory","disa","dumpchan","eagi","echo","endwhile","exec","execif","execiftime","exitwhile","extenspy","externalivr","festival","flash","followme","forkcdr","getcpeid","gosub","gosubif","goto","gotoif","gotoiftime","hangup","iax2provision","ices","importvar","incomplete","ivrdemo","jabberjoin","jabberleave","jabbersend","jabbersendgroup","jabberstatus","jack","log","macro","macroexclusive","macroexit","macroif","mailboxexists","meetme","meetmeadmin","meetmechanneladmin","meetmecount","milliwatt","minivmaccmess","minivmdelete","minivmgreet","minivmmwi","minivmnotify","minivmrecord","mixmonitor","monitor","morsecode","mp3player","mset","musiconhold","nbscat","nocdr","noop","odbc","odbc","odbcfinish","originate","ospauth","ospfinish","osplookup","ospnext","page","park","parkandannounce","parkedcall","pausemonitor","pausequeuemember","pickup","pickupchan","playback","playtones","privacymanager","proceeding","progress","queue","queuelog","raiseexception","read","readexten","readfile","receivefax","receivefax","receivefax","record","removequeuemember","resetcdr","retrydial","return","ringing","sayalpha","saycountedadj","saycountednoun","saycountpl","saydigits","saynumber","sayphonetic","sayunixtime","senddtmf","sendfax","sendfax","sendfax","sendimage","sendtext","sendurl","set","setamaflags","setcallerpres","setmusiconhold","sipaddheader","sipdtmfmode","sipremoveheader","skel","slastation","slatrunk","sms","softhangup","speechactivategrammar","speechbackground","speechcreate","speechdeactivategrammar","speechdestroy","speechloadgrammar","speechprocessingsound","speechstart","speechunloadgrammar","stackpop","startmusiconhold","stopmixmonitor","stopmonitor","stopmusiconhold","stopplaytones","system","testclient","testserver","transfer","tryexec","trysystem","unpausemonitor","unpausequeuemember","userevent","verbose","vmauthenticate","vmsayname","voicemail","voicemailmain","wait","waitexten","waitfornoise","waitforring","waitforsilence","waitmusiconhold","waituntil","while","zapateller"];const a={name:"asterisk",startState:function(){return{blockComment:!1,extenStart:!1,extenSame:!1,extenInclude:!1,extenExten:!1,extenPriority:!1,extenApplication:!1}},token:function(e,t){var n="";return e.eatSpace()?null:t.extenStart?(e.eatWhile(/[^\s]/),n=e.current(),/^=>?$/.test(n)?(t.extenExten=!0,t.extenStart=!1,"strong"):(t.extenStart=!1,e.skipToEnd(),"error")):t.extenExten?(t.extenExten=!1,t.extenPriority=!0,e.eatWhile(/[^,]/),t.extenInclude&&(e.skipToEnd(),t.extenPriority=!1,t.extenInclude=!1),t.extenSame&&(t.extenPriority=!1,t.extenSame=!1,t.extenApplication=!0),"tag"):t.extenPriority?(t.extenPriority=!1,t.extenApplication=!0,e.next(),t.extenSame?null:(e.eatWhile(/[^,]/),"number")):t.extenApplication?(e.eatWhile(/,/),","===(n=e.current())?null:(e.eatWhile(/\w/),n=e.current().toLowerCase(),t.extenApplication=!1,-1!==o.indexOf(n)?"def":null)):function(e,t){var n="",o=e.next();if(t.blockComment)return"-"==o&&e.match("-;",!0)?t.blockComment=!1:e.skipTo("--;")?(e.next(),e.next(),e.next(),t.blockComment=!1):e.skipToEnd(),"comment";if(";"==o)return e.match("--",!0)&&!e.match("-",!1)?(t.blockComment=!0,"comment"):(e.skipToEnd(),"comment");if("["==o)return e.skipTo("]"),e.eat("]"),"header";if('"'==o)return e.skipTo('"'),"string";if("'"==o)return e.skipTo("'"),"string.special";if("#"==o&&(e.eatWhile(/\w/),n=e.current(),-1!==i.indexOf(n)))return e.skipToEnd(),"strong";if("$"==o&&"{"==e.peek())return e.skipTo("}"),e.eat("}"),"variableName.special";if(e.eatWhile(/\w/),n=e.current(),-1!==r.indexOf(n)){switch(t.extenStart=!0,n){case"same":t.extenSame=!0;break;case"include":case"switch":case"ignorepat":t.extenInclude=!0}return"atom"}}(e,t)},languageData:{commentTokens:{line:";",block:{open:";--",close:"--;"}}}}},6339:(e,t,n)=>{n.r(t),n.d(t,{brainfuck:()=>i});var r="><+-.,[]".split("");const i={name:"brainfuck",startState:function(){return{commentLine:!1,left:0,right:0,commentLoop:!1}},token:function(e,t){if(e.eatSpace())return null;e.sol()&&(t.commentLine=!1);var n=e.next().toString();return-1===r.indexOf(n)?(t.commentLine=!0,e.eol()&&(t.commentLine=!1),"comment"):!0===t.commentLine?(e.eol()&&(t.commentLine=!1),"comment"):"]"===n||"["===n?("["===n?t.left++:t.right++,"bracket"):"+"===n||"-"===n?"keyword":"<"===n||">"===n?"atom":"."===n||","===n?"def":void(e.eol()&&(t.commentLine=!1))}}},12146:(e,t,n)=>{function r(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.info=r,this.align=i,this.prev=o}function i(e,t,n,i){var o=e.indented;return e.context&&"statement"==e.context.type&&"statement"!=n&&(o=e.context.indented),e.context=new r(o,t,n,i,null,e.context)}function o(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}function a(e,t,n){return"variable"==t.prevToken||"type"==t.prevToken||(!!/\S(?:[^- ]>|[*\]])\s*$|\*$/.test(e.string.slice(0,n))||(!(!t.typeAtEndOfLine||e.column()!=e.indentation())||void 0))}function s(e){for(;;){if(!e||"top"==e.type)return!0;if("}"==e.type&&"namespace"!=e.prev.info)return!1;e=e.prev}}function l(e){var t,n,l=e.statementIndentUnit,c=e.dontAlignCalls,d=e.keywords||{},h=e.types||{},f=e.builtin||{},m=e.blockKeywords||{},p=e.defKeywords||{},g=e.atoms||{},b=e.hooks||{},v=e.multiLineStrings,y=!1!==e.indentStatements,k=!1!==e.indentSwitch,O=e.namespaceSeparator,w=e.isPunctuationChar||/[\[\]{}\(\),;\:\.]/,x=e.numberStart||/[\d\.]/,S=e.number||/^(?:0x[a-f\d]+|0b[01]+|(?:\d+\.?\d*|\.\d+)(?:e[-+]?\d+)?)(u|ll?|l|f)?/i,_=e.isOperatorChar||/[+\-*&%=<>!?|\/]/,T=e.isIdentifierChar||/[\w\$_\xa1-\uffff]/,E=e.isReservedIdentifier||!1;function $(e,r){var i,o=e.next();if(b[o]){var a=b[o](e,r);if(!1!==a)return a}if('"'==o||"'"==o)return r.tokenize=(i=o,function(e,t){for(var n,r=!1,o=!1;null!=(n=e.next());){if(n==i&&!r){o=!0;break}r=!r&&"\\"==n}return(o||!r&&!v)&&(t.tokenize=null),"string"}),r.tokenize(e,r);if(x.test(o)){if(e.backUp(1),e.match(S))return"number";e.next()}if(w.test(o))return t=o,null;if("/"==o){if(e.eat("*"))return r.tokenize=A,A(e,r);if(e.eat("/"))return e.skipToEnd(),"comment"}if(_.test(o)){for(;!e.match(/^\/[\/*]/,!1)&&e.eat(_););return"operator"}if(e.eatWhile(T),O)for(;e.match(O);)e.eatWhile(T);var s=e.current();return u(d,s)?(u(m,s)&&(t="newstatement"),u(p,s)&&(n=!0),"keyword"):u(h,s)?"type":u(f,s)||E&&E(s)?(u(m,s)&&(t="newstatement"),"builtin"):u(g,s)?"atom":"variable"}function A(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function C(t,n){e.typeFirstDefinitions&&t.eol()&&s(n.context)&&(n.typeAtEndOfLine=a(t,n,t.pos))}return{name:e.name,startState:function(e){return{tokenize:null,context:new r(-e,0,"top",null,!1),indented:0,startOfLine:!0,prevToken:null}},token:function(r,l){var c=l.context;if(r.sol()&&(null==c.align&&(c.align=!1),l.indented=r.indentation(),l.startOfLine=!0),r.eatSpace())return C(r,l),null;t=n=null;var u=(l.tokenize||$)(r,l);if("comment"==u||"meta"==u)return u;if(null==c.align&&(c.align=!0),";"==t||":"==t||","==t&&r.match(/^\s*(?:\/\/.*)?$/,!1))for(;"statement"==l.context.type;)o(l);else if("{"==t)i(l,r.column(),"}");else if("["==t)i(l,r.column(),"]");else if("("==t)i(l,r.column(),")");else if("}"==t){for(;"statement"==c.type;)c=o(l);for("}"==c.type&&(c=o(l));"statement"==c.type;)c=o(l)}else t==c.type?o(l):y&&(("}"==c.type||"top"==c.type)&&";"!=t||"statement"==c.type&&"newstatement"==t)&&i(l,r.column(),"statement",r.current());if("variable"==u&&("def"==l.prevToken||e.typeFirstDefinitions&&a(r,l,r.start)&&s(l.context)&&r.match(/^\s*\(/,!1))&&(u="def"),b.token){var d=b.token(r,l,u);void 0!==d&&(u=d)}return"def"==u&&!1===e.styleDefs&&(u="variable"),l.startOfLine=!1,l.prevToken=n?"def":u||t,C(r,l),u},indent:function(t,n,r){if(t.tokenize!=$&&null!=t.tokenize||t.typeAtEndOfLine&&s(t.context))return null;var i=t.context,o=n&&n.charAt(0),a=o==i.type;if("statement"==i.type&&"}"==o&&(i=i.prev),e.dontIndentStatements)for(;"statement"==i.type&&e.dontIndentStatements.test(i.info);)i=i.prev;if(b.indent){var u=b.indent(t,i,n,r.unit);if("number"==typeof u)return u}var d=i.prev&&"switch"==i.prev.info;if(e.allmanIndentation&&/[{(]/.test(o)){for(;"top"!=i.type&&"}"!=i.type;)i=i.prev;return i.indented}return"statement"==i.type?i.indented+("{"==o?0:l||r.unit):!i.align||c&&")"==i.type?")"!=i.type||a?i.indented+(a?0:r.unit)+(a||!d||/^(?:case|default)\b/.test(n)?0:r.unit):i.indented+(l||r.unit):i.column+(a?0:1)},languageData:{indentOnInput:k?/^\s*(?:case .*?:|default:|\{\}?|\})$/:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:Object.keys(d).concat(Object.keys(h)).concat(Object.keys(f)).concat(Object.keys(g)),...e.languageData}}}function c(e){for(var t={},n=e.split(" "),r=0;rA,ceylon:()=>U,clike:()=>l,cpp:()=>C,csharp:()=>R,dart:()=>Z,java:()=>P,kotlin:()=>N,nesC:()=>M,objectiveC:()=>Q,objectiveCpp:()=>q,scala:()=>z,shader:()=>L,squirrel:()=>W});var d="auto if break case register continue return default do sizeof static else struct switch extern typedef union for goto while enum const volatile inline restrict asm fortran",h="alignas alignof and and_eq audit axiom bitand bitor catch class compl concept constexpr const_cast decltype delete dynamic_cast explicit export final friend import module mutable namespace new noexcept not not_eq operator or or_eq override private protected public reinterpret_cast requires static_assert static_cast template this thread_local throw try typeid typename using virtual xor xor_eq",f="bycopy byref in inout oneway out self super atomic nonatomic retain copy readwrite readonly strong weak assign typeof nullable nonnull null_resettable _cmd @interface @implementation @end @protocol @encode @property @synthesize @dynamic @class @public @package @private @protected @required @optional @try @catch @finally @import @selector @encode @defs @synchronized @autoreleasepool @compatibility_alias @available",m="FOUNDATION_EXPORT FOUNDATION_EXTERN NS_INLINE NS_FORMAT_FUNCTION NS_RETURNS_RETAINEDNS_ERROR_ENUM NS_RETURNS_NOT_RETAINED NS_RETURNS_INNER_POINTER NS_DESIGNATED_INITIALIZER NS_ENUM NS_OPTIONS NS_REQUIRES_NIL_TERMINATION NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_SWIFT_NAME NS_REFINED_FOR_SWIFT",p=c("int long char short double float unsigned signed void bool"),g=c("SEL instancetype id Class Protocol BOOL");function b(e){return u(p,e)||/.+_t$/.test(e)}function v(e){return b(e)||u(g,e)}var y="case do else for if switch while struct enum union",k="struct enum union";function O(e,t){if(!t.startOfLine)return!1;for(var n,r=null;n=e.peek();){if("\\"==n&&e.match(/^.$/)){r=O;break}if("/"==n&&e.match(/^\/[\/\*]/,!1))break;e.next()}return t.tokenize=r,"meta"}function w(e,t){return"type"==t.prevToken&&"type"}function x(e){return!(!e||e.length<2)&&("_"==e[0]&&("_"==e[1]||e[1]!==e[1].toLowerCase()))}function S(e){return e.eatWhile(/[\w\.']/),"number"}function _(e,t){if(e.backUp(1),e.match(/^(?:R|u8R|uR|UR|LR)/)){var n=e.match(/^"([^\s\\()]{0,16})\(/);return!!n&&(t.cpp11RawStringDelim=n[1],t.tokenize=$,$(e,t))}return e.match(/^(?:u8|u|U|L)/)?!!e.match(/^["']/,!1)&&"string":(e.next(),!1)}function T(e){var t=/(\w+)::~?(\w+)$/.exec(e);return t&&t[1]==t[2]}function E(e,t){for(var n;null!=(n=e.next());)if('"'==n&&!e.eat('"')){t.tokenize=null;break}return"string"}function $(e,t){var n=t.cpp11RawStringDelim.replace(/[^\w\s]/g,"\\$&");return e.match(new RegExp(".*?\\)"+n+'"'))?t.tokenize=null:e.skipToEnd(),"string"}const A=l({name:"c",keywords:c(d),types:b,blockKeywords:c(y),defKeywords:c(k),typeFirstDefinitions:!0,atoms:c("NULL true false"),isReservedIdentifier:x,hooks:{"#":O,"*":w}}),C=l({name:"cpp",keywords:c(d+" "+h),types:b,blockKeywords:c(y+" class try catch"),defKeywords:c(k+" class namespace"),typeFirstDefinitions:!0,atoms:c("true false NULL nullptr"),dontIndentStatements:/^template$/,isIdentifierChar:/[\w\$_~\xa1-\uffff]/,isReservedIdentifier:x,hooks:{"#":O,"*":w,u:_,U:_,L:_,R:_,0:S,1:S,2:S,3:S,4:S,5:S,6:S,7:S,8:S,9:S,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&T(e.current()))return"def"}},namespaceSeparator:"::"}),P=l({name:"java",keywords:c("abstract assert break case catch class const continue default do else enum extends final finally for goto if implements import instanceof interface native new package private protected public return static strictfp super switch synchronized this throw throws transient try volatile while @interface"),types:c("var byte short int long float double boolean char void Boolean Byte Character Double Float Integer Long Number Object Short String StringBuffer StringBuilder Void"),blockKeywords:c("catch class do else finally for if switch try while"),defKeywords:c("class interface enum @interface"),typeFirstDefinitions:!0,atoms:c("true false null"),number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+\.?\d*|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,hooks:{"@":function(e){return!e.match("interface",!1)&&(e.eatWhile(/[\w\$_]/),"meta")},'"':function(e,t){return!!e.match(/""$/)&&(t.tokenize=I,t.tokenize(e,t))}}}),R=l({name:"csharp",keywords:c("abstract as async await base break case catch checked class const continue default delegate do else enum event explicit extern finally fixed for foreach goto if implicit in init interface internal is lock namespace new operator out override params private protected public readonly record ref required return sealed sizeof stackalloc static struct switch this throw try typeof unchecked unsafe using virtual void volatile while add alias ascending descending dynamic from get global group into join let orderby partial remove select set value var yield"),types:c("Action Boolean Byte Char DateTime DateTimeOffset Decimal Double Func Guid Int16 Int32 Int64 Object SByte Single String Task TimeSpan UInt16 UInt32 UInt64 bool byte char decimal double short int long object sbyte float string ushort uint ulong"),blockKeywords:c("catch class do else finally for foreach if struct switch try while"),defKeywords:c("class interface namespace record struct var"),typeFirstDefinitions:!0,atoms:c("true false null"),hooks:{"@":function(e,t){return e.eat('"')?(t.tokenize=E,E(e,t)):(e.eatWhile(/[\w\$_]/),"meta")}}});function I(e,t){for(var n=!1;!e.eol();){if(!n&&e.match('"""')){t.tokenize=null;break}n="\\"==e.next()&&!n}return"string"}function D(e){return function(t,n){for(var r;r=t.next();){if("*"==r&&t.eat("/")){if(1==e){n.tokenize=null;break}return n.tokenize=D(e-1),n.tokenize(t,n)}if("/"==r&&t.eat("*"))return n.tokenize=D(e+1),n.tokenize(t,n)}return"comment"}}const z=l({name:"scala",keywords:c("abstract case catch class def do else extends final finally for forSome if implicit import lazy match new null object override package private protected return sealed super this throw trait try type val var while with yield _ assert assume require print println printf readLine readBoolean readByte readShort readChar readInt readLong readFloat readDouble"),types:c("AnyVal App Application Array BufferedIterator BigDecimal BigInt Char Console Either Enumeration Equiv Error Exception Fractional Function IndexedSeq Int Integral Iterable Iterator List Map Numeric Nil NotNull Option Ordered Ordering PartialFunction PartialOrdering Product Proxy Range Responder Seq Serializable Set Specializable Stream StringBuilder StringContext Symbol Throwable Traversable TraversableOnce Tuple Unit Vector Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void"),multiLineStrings:!0,blockKeywords:c("catch class enum do else finally for forSome if match switch try while"),defKeywords:c("class enum def object package trait type val var"),atoms:c("true false null"),indentStatements:!1,indentSwitch:!1,isOperatorChar:/[+\-*&%=<>!?|\/#:@]/,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return!!e.match('""')&&(t.tokenize=I,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"character":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},"=":function(e,t){var n=t.context;return!("}"!=n.type||!n.align||!e.eat(">"))&&(t.context=new r(n.indented,n.column,n.type,n.info,null,n.prev),"operator")},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=D(1),t.tokenize(e,t))}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});const N=l({name:"kotlin",keywords:c("package as typealias class interface this super val operator var fun for is in This throw return annotation break continue object if else while do try when !in !is as? file import where by get set abstract enum open inner override private public internal protected catch finally out final vararg reified dynamic companion constructor init sealed field property receiver param sparam lateinit data inline noinline tailrec external annotation crossinline const operator infix suspend actual expect setparam"),types:c("Boolean Byte Character CharSequence Class ClassLoader Cloneable Comparable Compiler Double Exception Float Integer Long Math Number Object Package Pair Process Runtime Runnable SecurityManager Short StackTraceElement StrictMath String StringBuffer System Thread ThreadGroup ThreadLocal Throwable Triple Void Annotation Any BooleanArray ByteArray Char CharArray DeprecationLevel DoubleArray Enum FloatArray Function Int IntArray Lazy LazyThreadSafetyMode LongArray Nothing ShortArray Unit"),intendSwitch:!1,indentStatements:!1,multiLineStrings:!0,number:/^(?:0x[a-f\d_]+|0b[01_]+|(?:[\d_]+(\.\d+)?|\.\d+)(?:e[-+]?[\d_]+)?)(u|ll?|l|f)?/i,blockKeywords:c("catch class do else finally for if where try while enum"),defKeywords:c("class val var object interface fun"),atoms:c("true false null this"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},"*":function(e,t){return"."==t.prevToken?"variable":"operator"},'"':function(e,t){var n;return t.tokenize=(n=e.match('""'),function(e,t){for(var r,i=!1,o=!1;!e.eol();){if(!n&&!i&&e.match('"')){o=!0;break}if(n&&e.match('"""')){o=!0;break}r=e.next(),!i&&"$"==r&&e.match("{")&&e.skipTo("}"),i=!i&&"\\"==r&&!n}return!o&&n||(t.tokenize=null),"string"}),t.tokenize(e,t)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=D(1),t.tokenize(e,t))},indent:function(e,t,n,r){var i=n&&n.charAt(0);return"}"!=e.prevToken&&")"!=e.prevToken||""!=n?"operator"==e.prevToken&&"}"!=n&&"}"!=e.context.type||"variable"==e.prevToken&&"."==i||("}"==e.prevToken||")"==e.prevToken)&&"."==i?2*r+t.indented:t.align&&"}"==t.type?t.indented+(e.context.type==(n||"").charAt(0)?0:r):void 0:e.indented}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}}),L=l({name:"shader",keywords:c("sampler1D sampler2D sampler3D samplerCube sampler1DShadow sampler2DShadow const attribute uniform varying break continue discard return for while do if else struct in out inout"),types:c("float int bool void vec2 vec3 vec4 ivec2 ivec3 ivec4 bvec2 bvec3 bvec4 mat2 mat3 mat4"),blockKeywords:c("for while do if else struct"),builtin:c("radians degrees sin cos tan asin acos atan pow exp log exp2 sqrt inversesqrt abs sign floor ceil fract mod min max clamp mix step smoothstep length distance dot cross normalize ftransform faceforward reflect refract matrixCompMult lessThan lessThanEqual greaterThan greaterThanEqual equal notEqual any all not texture1D texture1DProj texture1DLod texture1DProjLod texture2D texture2DProj texture2DLod texture2DProjLod texture3D texture3DProj texture3DLod texture3DProjLod textureCube textureCubeLod shadow1D shadow2D shadow1DProj shadow2DProj shadow1DLod shadow2DLod shadow1DProjLod shadow2DProjLod dFdx dFdy fwidth noise1 noise2 noise3 noise4"),atoms:c("true false gl_FragColor gl_SecondaryColor gl_Normal gl_Vertex gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_FogCoord gl_PointCoord gl_Position gl_PointSize gl_ClipVertex gl_FrontColor gl_BackColor gl_FrontSecondaryColor gl_BackSecondaryColor gl_TexCoord gl_FogFragCoord gl_FragCoord gl_FrontFacing gl_FragData gl_FragDepth gl_ModelViewMatrix gl_ProjectionMatrix gl_ModelViewProjectionMatrix gl_TextureMatrix gl_NormalMatrix gl_ModelViewMatrixInverse gl_ProjectionMatrixInverse gl_ModelViewProjectionMatrixInverse gl_TextureMatrixTranspose gl_ModelViewMatrixInverseTranspose gl_ProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixInverseTranspose gl_TextureMatrixInverseTranspose gl_NormalScale gl_DepthRange gl_ClipPlane gl_Point gl_FrontMaterial gl_BackMaterial gl_LightSource gl_LightModel gl_FrontLightModelProduct gl_BackLightModelProduct gl_TextureColor gl_EyePlaneS gl_EyePlaneT gl_EyePlaneR gl_EyePlaneQ gl_FogParameters gl_MaxLights gl_MaxClipPlanes gl_MaxTextureUnits gl_MaxTextureCoords gl_MaxVertexAttribs gl_MaxVertexUniformComponents gl_MaxVaryingFloats gl_MaxVertexTextureImageUnits gl_MaxTextureImageUnits gl_MaxFragmentUniformComponents gl_MaxCombineTextureImageUnits gl_MaxDrawBuffers"),indentSwitch:!1,hooks:{"#":O}}),M=l({name:"nesc",keywords:c(d+" as atomic async call command component components configuration event generic implementation includes interface module new norace nx_struct nx_union post provides signal task uses abstract extends"),types:b,blockKeywords:c(y),atoms:c("null true false"),hooks:{"#":O}}),Q=l({name:"objectivec",keywords:c(d+" "+f),types:v,builtin:c(m),blockKeywords:c(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized"),defKeywords:c(k+" @interface @implementation @protocol @class"),dontIndentStatements:/^@.*$/,typeFirstDefinitions:!0,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":O,"*":w}}),q=l({name:"objectivecpp",keywords:c(d+" "+f+" "+h),types:v,builtin:c(m),blockKeywords:c(y+" @synthesize @try @catch @finally @autoreleasepool @synchronized class try catch"),defKeywords:c(k+" @interface @implementation @protocol @class class namespace"),dontIndentStatements:/^@.*$|^template$/,typeFirstDefinitions:!0,atoms:c("YES NO NULL Nil nil true false nullptr"),isReservedIdentifier:x,hooks:{"#":O,"*":w,u:_,U:_,L:_,R:_,0:S,1:S,2:S,3:S,4:S,5:S,6:S,7:S,8:S,9:S,token:function(e,t,n){if("variable"==n&&"("==e.peek()&&(";"==t.prevToken||null==t.prevToken||"}"==t.prevToken)&&T(e.current()))return"def"}},namespaceSeparator:"::"}),W=l({name:"squirrel",keywords:c("base break clone continue const default delete enum extends function in class foreach local resume return this throw typeof yield constructor instanceof static"),types:b,blockKeywords:c("case catch class else for foreach if switch try while"),defKeywords:c("function local class"),typeFirstDefinitions:!0,atoms:c("true false null"),hooks:{"#":O}});var B=null;function F(e){return function(t,n){for(var r,i=!1,o=!1;!t.eol();){if(!i&&t.match('"')&&("single"==e||t.match('""'))){o=!0;break}if(!i&&t.match("``")){B=F(e),o=!0;break}r=t.next(),i="single"==e&&!i&&"\\"==r}return o&&(n.tokenize=null),"string"}}const U=l({name:"ceylon",keywords:c("abstracts alias assembly assert assign break case catch class continue dynamic else exists extends finally for function given if import in interface is let module new nonempty object of out outer package return satisfies super switch then this throw try value void while"),types:function(e){var t=e.charAt(0);return t===t.toUpperCase()&&t!==t.toLowerCase()},blockKeywords:c("case catch class dynamic else finally for function if interface module new object switch try while"),defKeywords:c("class dynamic function interface module object package value"),builtin:c("abstract actual aliased annotation by default deprecated doc final formal late license native optional sealed see serializable shared suppressWarnings tagged throws variable"),isPunctuationChar:/[\[\]{}\(\),;\:\.`]/,isOperatorChar:/[+\-*&%=<>!?|^~:\/]/,numberStart:/[\d#$]/,number:/^(?:#[\da-fA-F_]+|\$[01_]+|[\d_]+[kMGTPmunpf]?|[\d_]+\.[\d_]+(?:[eE][-+]?\d+|[kMGTPmunpf]|)|)/i,multiLineStrings:!0,typeFirstDefinitions:!0,atoms:c("true false null larger smaller equal empty finished"),indentSwitch:!1,styleDefs:!1,hooks:{"@":function(e){return e.eatWhile(/[\w\$_]/),"meta"},'"':function(e,t){return t.tokenize=F(e.match('""')?"triple":"single"),t.tokenize(e,t)},"`":function(e,t){return!(!B||!e.match("`"))&&(t.tokenize=B,B=null,t.tokenize(e,t))},"'":function(e){return e.match(/^(\\[^'\s]+|[^\\'])'/)?"string.special":(e.eatWhile(/[\w\$_\xa1-\uffff]/),"atom")},token:function(e,t,n){if(("variable"==n||"type"==n)&&"."==t.prevToken)return"variableName.special"}},languageData:{closeBrackets:{brackets:["(","[","{","'",'"','"""']}}});function j(e){(e.interpolationStack||(e.interpolationStack=[])).push(e.tokenize)}function V(e){return(e.interpolationStack||(e.interpolationStack=[])).pop()}function G(e,t,n,r){var i=!1;if(t.eat(e)){if(!t.eat(e))return"string";i=!0}function o(t,n){for(var o=!1;!t.eol();){if(!r&&!o&&"$"==t.peek())return j(n),n.tokenize=X,"string";var a=t.next();if(a==e&&!o&&(!i||t.match(e+e))){n.tokenize=null;break}o=!r&&!o&&"\\"==a}return"string"}return n.tokenize=o,o(t,n)}function X(e,t){return e.eat("$"),e.eat("{")?t.tokenize=null:t.tokenize=Y,null}function Y(e,t){return e.eatWhile(/[\w_]/),t.tokenize=V(t),"variable"}const Z=l({name:"dart",keywords:c("this super static final const abstract class extends external factory implements mixin get native set typedef with enum throw rethrow assert break case continue default in return new deferred async await covariant try catch finally do else for if switch while import library export part of show hide is as extension on yield late required sealed base interface when inline"),blockKeywords:c("try catch finally do else for if switch while"),builtin:c("void bool num int double dynamic var String Null Never"),atoms:c("true false null"),hooks:{"@":function(e){return e.eatWhile(/[\w\$_\.]/),"meta"},"'":function(e,t){return G("'",e,t,!1)},'"':function(e,t){return G('"',e,t,!1)},r:function(e,t){var n=e.peek();return("'"==n||'"'==n)&&G(e.next(),e,t,!0)},"}":function(e,t){return function(e){return e.interpolationStack?e.interpolationStack.length:0}(t)>0&&(t.tokenize=V(t),null)},"/":function(e,t){return!!e.eat("*")&&(t.tokenize=D(1),t.tokenize(e,t))},token:function(e,t,n){if("variable"==n&&RegExp("^[_$]*[A-Z][a-zA-Z0-9_$]*$","g").test(e.current()))return"type"}}})},3368:(e,t,n)=>{n.r(t),n.d(t,{clojure:()=>y});var r=["false","nil","true"],i=[".","catch","def","do","if","monitor-enter","monitor-exit","new","quote","recur","set!","throw","try","var"],o=["*","*'","*1","*2","*3","*agent*","*allow-unresolved-vars*","*assert*","*clojure-version*","*command-line-args*","*compile-files*","*compile-path*","*compiler-options*","*data-readers*","*default-data-reader-fn*","*e","*err*","*file*","*flush-on-newline*","*fn-loader*","*in*","*math-context*","*ns*","*out*","*print-dup*","*print-length*","*print-level*","*print-meta*","*print-namespace-maps*","*print-readably*","*read-eval*","*reader-resolver*","*source-path*","*suppress-read*","*unchecked-math*","*use-context-classloader*","*verbose-defrecords*","*warn-on-reflection*","+","+'","-","-'","->","->>","->ArrayChunk","->Eduction","->Vec","->VecNode","->VecSeq","-cache-protocol-fn","-reset-methods","..","/","<","<=","=","==",">",">=","EMPTY-NODE","Inst","StackTraceElement->vec","Throwable->map","accessor","aclone","add-classpath","add-watch","agent","agent-error","agent-errors","aget","alength","alias","all-ns","alter","alter-meta!","alter-var-root","amap","ancestors","and","any?","apply","areduce","array-map","as->","aset","aset-boolean","aset-byte","aset-char","aset-double","aset-float","aset-int","aset-long","aset-short","assert","assoc","assoc!","assoc-in","associative?","atom","await","await-for","await1","bases","bean","bigdec","bigint","biginteger","binding","bit-and","bit-and-not","bit-clear","bit-flip","bit-not","bit-or","bit-set","bit-shift-left","bit-shift-right","bit-test","bit-xor","boolean","boolean-array","boolean?","booleans","bound-fn","bound-fn*","bound?","bounded-count","butlast","byte","byte-array","bytes","bytes?","case","cast","cat","char","char-array","char-escape-string","char-name-string","char?","chars","chunk","chunk-append","chunk-buffer","chunk-cons","chunk-first","chunk-next","chunk-rest","chunked-seq?","class","class?","clear-agent-errors","clojure-version","coll?","comment","commute","comp","comparator","compare","compare-and-set!","compile","complement","completing","concat","cond","cond->","cond->>","condp","conj","conj!","cons","constantly","construct-proxy","contains?","count","counted?","create-ns","create-struct","cycle","dec","dec'","decimal?","declare","dedupe","default-data-readers","definline","definterface","defmacro","defmethod","defmulti","defn","defn-","defonce","defprotocol","defrecord","defstruct","deftype","delay","delay?","deliver","denominator","deref","derive","descendants","destructure","disj","disj!","dissoc","dissoc!","distinct","distinct?","doall","dorun","doseq","dosync","dotimes","doto","double","double-array","double?","doubles","drop","drop-last","drop-while","eduction","empty","empty?","ensure","ensure-reduced","enumeration-seq","error-handler","error-mode","eval","even?","every-pred","every?","ex-data","ex-info","extend","extend-protocol","extend-type","extenders","extends?","false?","ffirst","file-seq","filter","filterv","find","find-keyword","find-ns","find-protocol-impl","find-protocol-method","find-var","first","flatten","float","float-array","float?","floats","flush","fn","fn?","fnext","fnil","for","force","format","frequencies","future","future-call","future-cancel","future-cancelled?","future-done?","future?","gen-class","gen-interface","gensym","get","get-in","get-method","get-proxy-class","get-thread-bindings","get-validator","group-by","halt-when","hash","hash-combine","hash-map","hash-ordered-coll","hash-set","hash-unordered-coll","ident?","identical?","identity","if-let","if-not","if-some","ifn?","import","in-ns","inc","inc'","indexed?","init-proxy","inst-ms","inst-ms*","inst?","instance?","int","int-array","int?","integer?","interleave","intern","interpose","into","into-array","ints","io!","isa?","iterate","iterator-seq","juxt","keep","keep-indexed","key","keys","keyword","keyword?","last","lazy-cat","lazy-seq","let","letfn","line-seq","list","list*","list?","load","load-file","load-reader","load-string","loaded-libs","locking","long","long-array","longs","loop","macroexpand","macroexpand-1","make-array","make-hierarchy","map","map-entry?","map-indexed","map?","mapcat","mapv","max","max-key","memfn","memoize","merge","merge-with","meta","method-sig","methods","min","min-key","mix-collection-hash","mod","munge","name","namespace","namespace-munge","nat-int?","neg-int?","neg?","newline","next","nfirst","nil?","nnext","not","not-any?","not-empty","not-every?","not=","ns","ns-aliases","ns-imports","ns-interns","ns-map","ns-name","ns-publics","ns-refers","ns-resolve","ns-unalias","ns-unmap","nth","nthnext","nthrest","num","number?","numerator","object-array","odd?","or","parents","partial","partition","partition-all","partition-by","pcalls","peek","persistent!","pmap","pop","pop!","pop-thread-bindings","pos-int?","pos?","pr","pr-str","prefer-method","prefers","primitives-classnames","print","print-ctor","print-dup","print-method","print-simple","print-str","printf","println","println-str","prn","prn-str","promise","proxy","proxy-call-with-super","proxy-mappings","proxy-name","proxy-super","push-thread-bindings","pvalues","qualified-ident?","qualified-keyword?","qualified-symbol?","quot","rand","rand-int","rand-nth","random-sample","range","ratio?","rational?","rationalize","re-find","re-groups","re-matcher","re-matches","re-pattern","re-seq","read","read-line","read-string","reader-conditional","reader-conditional?","realized?","record?","reduce","reduce-kv","reduced","reduced?","reductions","ref","ref-history-count","ref-max-history","ref-min-history","ref-set","refer","refer-clojure","reify","release-pending-sends","rem","remove","remove-all-methods","remove-method","remove-ns","remove-watch","repeat","repeatedly","replace","replicate","require","reset!","reset-meta!","reset-vals!","resolve","rest","restart-agent","resultset-seq","reverse","reversible?","rseq","rsubseq","run!","satisfies?","second","select-keys","send","send-off","send-via","seq","seq?","seqable?","seque","sequence","sequential?","set","set-agent-send-executor!","set-agent-send-off-executor!","set-error-handler!","set-error-mode!","set-validator!","set?","short","short-array","shorts","shuffle","shutdown-agents","simple-ident?","simple-keyword?","simple-symbol?","slurp","some","some->","some->>","some-fn","some?","sort","sort-by","sorted-map","sorted-map-by","sorted-set","sorted-set-by","sorted?","special-symbol?","spit","split-at","split-with","str","string?","struct","struct-map","subs","subseq","subvec","supers","swap!","swap-vals!","symbol","symbol?","sync","tagged-literal","tagged-literal?","take","take-last","take-nth","take-while","test","the-ns","thread-bound?","time","to-array","to-array-2d","trampoline","transduce","transient","tree-seq","true?","type","unchecked-add","unchecked-add-int","unchecked-byte","unchecked-char","unchecked-dec","unchecked-dec-int","unchecked-divide-int","unchecked-double","unchecked-float","unchecked-inc","unchecked-inc-int","unchecked-int","unchecked-long","unchecked-multiply","unchecked-multiply-int","unchecked-negate","unchecked-negate-int","unchecked-remainder-int","unchecked-short","unchecked-subtract","unchecked-subtract-int","underive","unquote","unquote-splicing","unreduced","unsigned-bit-shift-right","update","update-in","update-proxy","uri?","use","uuid?","val","vals","var-get","var-set","var?","vary-meta","vec","vector","vector-of","vector?","volatile!","volatile?","vreset!","vswap!","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn","xml-seq","zero?","zipmap"],a=b(r),s=b(i),l=b(o),c=b(["->","->>","as->","binding","bound-fn","case","catch","comment","cond","cond->","cond->>","condp","def","definterface","defmethod","defn","defmacro","defprotocol","defrecord","defstruct","deftype","do","doseq","dotimes","doto","extend","extend-protocol","extend-type","fn","for","future","if","if-let","if-not","if-some","let","letfn","locking","loop","ns","proxy","reify","struct-map","some->","some->>","try","when","when-first","when-let","when-not","when-some","while","with-bindings","with-bindings*","with-in-str","with-loading-context","with-local-vars","with-meta","with-open","with-out-str","with-precision","with-redefs","with-redefs-fn"]),u=/^(?:[\\\[\]\s"(),;@^`{}~]|$)/,d=/^(?:[+\-]?\d+(?:(?:N|(?:[eE][+\-]?\d+))|(?:\.?\d*(?:M|(?:[eE][+\-]?\d+))?)|\/\d+|[xX][0-9a-fA-F]+|r[0-9a-zA-Z]+)?(?=[\\\[\]\s"#'(),;@^`{}~]|$))/,h=/^(?:\\(?:backspace|formfeed|newline|return|space|tab|o[0-7]{3}|u[0-9A-Fa-f]{4}|x[0-9A-Fa-f]{4}|.)?(?=[\\\[\]\s"(),;@^`{}~]|$))/,f=/^(?:(?:[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*(?:\.[^\\\/\[\]\d\s"#'(),;@^`{}~.][^\\\[\]\s"(),;@^`{}~.\/]*)*\/)?(?:\/|[^\\\/\[\]\d\s"#'(),;@^`{}~][^\\\[\]\s"(),;@^`{}~]*)*(?=[\\\[\]\s"(),;@^`{}~]|$))/;function m(e,t){if(e.eatSpace()||e.eat(","))return["space",null];if(e.match(d))return[null,"number"];if(e.match(h))return[null,"string.special"];if(e.eat(/^"/))return(t.tokenize=p)(e,t);if(e.eat(/^[(\[{]/))return["open","bracket"];if(e.eat(/^[)\]}]/))return["close","bracket"];if(e.eat(/^;/))return e.skipToEnd(),["space","comment"];if(e.eat(/^[#'@^`~]/))return[null,"meta"];var n=e.match(f),r=n&&n[0];return r?"comment"===r&&"("===t.lastToken?(t.tokenize=g)(e,t):v(r,a)||":"===r.charAt(0)?["symbol","atom"]:v(r,s)||v(r,l)?["symbol","keyword"]:"("===t.lastToken?["symbol","builtin"]:["symbol","variable"]:(e.next(),e.eatWhile((function(e){return!v(e,u)})),[null,"error"])}function p(e,t){for(var n,r=!1;n=e.next();){if('"'===n&&!r){t.tokenize=m;break}r=!r&&"\\"===n}return[null,"string"]}function g(e,t){for(var n,r=1;n=e.next();)if(")"===n&&r--,"("===n&&r++,0===r){e.backUp(1),t.tokenize=m;break}return["space","comment"]}function b(e){for(var t={},n=0;n{n.r(t),n.d(t,{cmake:()=>o});var r=/({)?[a-zA-Z0-9_]+(})?/;function i(e,t){for(var n,r,i=!1;!e.eol()&&(n=e.next())!=t.pending;){if("$"===n&&"\\"!=r&&'"'==t.pending){i=!0;break}r=n}return i&&e.backUp(1),n==t.pending?t.continueString=!1:t.continueString=!0,"string"}const o={name:"cmake",startState:function(){var e={inDefinition:!1,inInclude:!1,continueString:!1,pending:!1};return e},token:function(e,t){return e.eatSpace()?null:function(e,t){var n=e.next();return"$"===n?e.match(r)?"variableName.special":"variable":t.continueString?(e.backUp(1),i(e,t)):e.match(/(\s+)?\w+\(/)||e.match(/(\s+)?\w+\ \(/)?(e.backUp(1),"def"):"#"==n?(e.skipToEnd(),"comment"):"'"==n||'"'==n?(t.pending=n,i(e,t)):"("==n||")"==n?"bracket":n.match(/[0-9]/)?"number":(e.eatWhile(/[\w-]/),null)}(e,t)}}},86547:(e,t,n)=>{n.r(t),n.d(t,{cobol:()=>u});var r="string",i="atom";function o(e){for(var t={},n=e.split(" "),r=0;r >= "),c={digit:/\d/,digit_or_colon:/[\d:]/,hex:/[0-9a-f]/i,sign:/[+-]/,exponent:/e/i,keyword_char:/[^\s\(\[\;\)\]]/,symbol:/[\w*+\-]/};const u={name:"cobol",startState:function(){return{indentStack:null,indentation:0,mode:!1}},token:function(e,t){if(null==t.indentStack&&e.sol()&&(t.indentation=6),e.eatSpace())return null;var n=null;if("string"===t.mode){for(var o=!1;null!=(o=e.next());)if(('"'==o||"'"==o)&&!e.match(/['"]/,!1)){t.mode=!1;break}n=r}else{var u=e.next(),d=e.column();if(d>=0&&d<=5)n="def";else if(d>=72&&d<=79)e.skipToEnd(),n="header";else if("*"==u&&6==d)e.skipToEnd(),n="comment";else if('"'==u||"'"==u)t.mode="string",n=r;else if("'"!=u||c.digit_or_colon.test(e.peek()))if("."==u)n="link";else if(function(e,t){return"0"===e&&t.eat(/x/i)?(t.eatWhile(c.hex),!0):("+"!=e&&"-"!=e||!c.digit.test(t.peek())||(t.eat(c.sign),e=t.next()),!!c.digit.test(e)&&(t.eat(e),t.eatWhile(c.digit),"."==t.peek()&&(t.eat("."),t.eatWhile(c.digit)),t.eat(c.exponent)&&(t.eat(c.sign),t.eatWhile(c.digit)),!0))}(u,e))n="number";else{if(e.current().match(c.symbol))for(;d<71&&void 0!==e.eat(c.symbol);)d++;n=s&&s.propertyIsEnumerable(e.current().toUpperCase())?"keyword":l&&l.propertyIsEnumerable(e.current().toUpperCase())?"builtin":a&&a.propertyIsEnumerable(e.current().toUpperCase())?i:null}else n=i}return n},indent:function(e){return null==e.indentStack?e.indentation:e.indentStack.indent}}},25473:(e,t,n)=>{n.r(t),n.d(t,{coffeeScript:()=>k});var r="error";function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}var o=/^(?:->|=>|\+[+=]?|-[\-=]?|\*[\*=]?|\/[\/=]?|[=!]=|<[><]?=?|>>?=?|%=?|&=?|\|=?|\^=?|\~|!|\?|(or|and|\|\||&&|\?)=)/,a=/^(?:[()\[\]{},:`=;]|\.\.?\.?)/,s=/^[_A-Za-z$][_A-Za-z$0-9]*/,l=/^@[_A-Za-z$][_A-Za-z$0-9]*/,c=i(["and","or","not","is","isnt","in","instanceof","typeof"]),u=["for","while","loop","if","unless","else","switch","try","catch","finally","class"],d=i(u.concat(["break","by","continue","debugger","delete","do","in","of","new","return","then","this","@","throw","when","until","extends"]));u=i(u);var h=/^('{3}|\"{3}|['\"])/,f=/^(\/{3}|\/)/,m=i(["Infinity","NaN","undefined","null","true","false","on","off","yes","no"]);function p(e,t){if(e.sol()){null===t.scope.align&&(t.scope.align=!1);var n=t.scope.offset;if(e.eatSpace()){var i=e.indentation();return i>n&&"coffee"==t.scope.type?"indent":i0&&y(e,t)}if(e.eatSpace())return null;var u=e.peek();if(e.match("####"))return e.skipToEnd(),"comment";if(e.match("###"))return t.tokenize=b,t.tokenize(e,t);if("#"===u)return e.skipToEnd(),"comment";if(e.match(/^-?[0-9\.]/,!1)){var p=!1;if(e.match(/^-?\d*\.\d+(e[\+\-]?\d+)?/i)&&(p=!0),e.match(/^-?\d+\.\d*/)&&(p=!0),e.match(/^-?\.\d+/)&&(p=!0),p)return"."==e.peek()&&e.backUp(1),"number";var v=!1;if(e.match(/^-?0x[0-9a-f]+/i)&&(v=!0),e.match(/^-?[1-9]\d*(e[\+\-]?\d+)?/)&&(v=!0),e.match(/^-?0(?![\dx])/i)&&(v=!0),v)return"number"}if(e.match(h))return t.tokenize=g(e.current(),!1,"string"),t.tokenize(e,t);if(e.match(f)){if("/"!=e.current()||e.match(/^.*\//,!1))return t.tokenize=g(e.current(),!0,"string.special"),t.tokenize(e,t);e.backUp(1)}return e.match(o)||e.match(c)?"operator":e.match(a)?"punctuation":e.match(m)?"atom":e.match(l)||t.prop&&e.match(s)?"property":e.match(d)?"keyword":e.match(s)?"variable":(e.next(),r)}function g(e,t,n){return function(r,i){for(;!r.eol();)if(r.eatWhile(/[^'"\/\\]/),r.eat("\\")){if(r.next(),t&&r.eol())return n}else{if(r.match(e))return i.tokenize=p,n;r.eat(/['"\/]/)}return t&&(i.tokenize=p),n}}function b(e,t){for(;!e.eol();){if(e.eatWhile(/[^#]/),e.match("###")){t.tokenize=p;break}e.eatWhile("#")}return"comment"}function v(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"coffee";for(var r=0,i=!1,o=null,a=t.scope;a;a=a.prev)if("coffee"===a.type||"}"==a.type){r=a.offset+e.indentUnit;break}"coffee"!==n?(i=null,o=e.column()+e.current().length):t.scope.align&&(t.scope.align=!1),t.scope={offset:r,type:n,prev:t.scope,align:i,alignOffset:o}}function y(e,t){if(t.scope.prev){if("coffee"===t.scope.type){for(var n=e.indentation(),r=!1,i=t.scope;i;i=i.prev)if(n===i.offset){r=!0;break}if(!r)return!0;for(;t.scope.prev&&t.scope.offset!==n;)t.scope=t.scope.prev;return!1}return t.scope=t.scope.prev,!1}}const k={name:"coffeescript",startState:function(){return{tokenize:p,scope:{offset:0,type:"coffee",prev:null,align:!1},prop:!1,dedent:0}},token:function(e,t){var n=null===t.scope.align&&t.scope;n&&e.sol()&&(n.align=!1);var i=function(e,t){var n=t.tokenize(e,t),i=e.current();"return"===i&&(t.dedent=!0),(("->"===i||"=>"===i)&&e.eol()||"indent"===n)&&v(e,t);var o="[({".indexOf(i);if(-1!==o&&v(e,t,"])}".slice(o,o+1)),u.exec(i)&&v(e,t),"then"==i&&y(e,t),"dedent"===n&&y(e,t))return r;if(-1!==(o="])}".indexOf(i))){for(;"coffee"==t.scope.type&&t.scope.prev;)t.scope=t.scope.prev;t.scope.type==i&&(t.scope=t.scope.prev)}return t.dedent&&e.eol()&&("coffee"==t.scope.type&&t.scope.prev&&(t.scope=t.scope.prev),t.dedent=!1),"indent"==n||"dedent"==n?null:n}(e,t);return i&&"comment"!=i&&(n&&(n.align=!0),t.prop="punctuation"==i&&"."==e.current()),i},indent:function(e,t){if(e.tokenize!=p)return 0;var n=e.scope,r=t&&"])}".indexOf(t.charAt(0))>-1;if(r)for(;"coffee"==n.type&&n.prev;)n=n.prev;var i=r&&n.type===t.charAt(0);return n.align?n.alignOffset-(i?1:0):(i?n.prev:n).offset},languageData:{commentTokens:{line:"#"}}}},97607:(e,t,n)=>{n.r(t),n.d(t,{commonLisp:()=>h});var r,i=/^(block|let*|return-from|catch|load-time-value|setq|eval-when|locally|symbol-macrolet|flet|macrolet|tagbody|function|multiple-value-call|the|go|multiple-value-prog1|throw|if|progn|unwind-protect|labels|progv|let|quote)$/,o=/^with|^def|^do|^prog|case$|^cond$|bind$|when$|unless$/,a=/^(?:[+\-]?(?:\d+|\d*\.\d+)(?:[efd][+\-]?\d+)?|[+\-]?\d+(?:\/[+\-]?\d+)?|#b[+\-]?[01]+|#o[+\-]?[0-7]+|#x[+\-]?[\da-f]+)/,s=/[^\s'`,@()\[\]";]/;function l(e){for(var t;t=e.next();)if("\\"==t)e.next();else if(!s.test(t)){e.backUp(1);break}return e.current()}function c(e,t){if(e.eatSpace())return r="ws",null;if(e.match(a))return"number";var n;if("\\"==(n=e.next())&&(n=e.next()),'"'==n)return(t.tokenize=u)(e,t);if("("==n)return r="open","bracket";if(")"==n||"]"==n)return r="close","bracket";if(";"==n)return e.skipToEnd(),r="ws","comment";if(/['`,@]/.test(n))return null;if("|"==n)return e.skipTo("|")?(e.next(),"variableName"):(e.skipToEnd(),"error");if("#"==n)return"("==(n=e.next())?(r="open","bracket"):/[+\-=\.']/.test(n)||/\d/.test(n)&&e.match(/^\d*#/)?null:"|"==n?(t.tokenize=d)(e,t):":"==n?(l(e),"meta"):"\\"==n?(e.next(),l(e),"string.special"):"error";var s=l(e);return"."==s?null:(r="symbol","nil"==s||"t"==s||":"==s.charAt(0)?"atom":"open"==t.lastType&&(i.test(s)||o.test(s))?"keyword":"&"==s.charAt(0)?"variableName.special":"variableName")}function u(e,t){for(var n,r=!1;n=e.next();){if('"'==n&&!r){t.tokenize=c;break}r=!r&&"\\"==n}return"string"}function d(e,t){for(var n,i;n=e.next();){if("#"==n&&"|"==i){t.tokenize=c;break}i=n}return r="ws","comment"}const h={name:"commonlisp",startState:function(){return{ctx:{prev:null,start:0,indentTo:0},lastType:null,tokenize:c}},token:function(e,t){e.sol()&&"number"!=typeof t.ctx.indentTo&&(t.ctx.indentTo=t.ctx.start+1),r=null;var n=t.tokenize(e,t);return"ws"!=r&&(null==t.ctx.indentTo?"symbol"==r&&o.test(e.current())?t.ctx.indentTo=t.ctx.start+e.indentUnit:t.ctx.indentTo="next":"next"==t.ctx.indentTo&&(t.ctx.indentTo=e.column()),t.lastType=r),"open"==r?t.ctx={prev:t.ctx,start:e.column(),indentTo:null}:"close"==r&&(t.ctx=t.ctx.prev||t.ctx),n},indent:function(e){var t=e.ctx.indentTo;return"number"==typeof t?t:e.ctx.start+1},languageData:{commentTokens:{line:";;",block:{open:"#|",close:"|#"}},closeBrackets:{brackets:["(","[","{",'"']}}}},98130:(e,t,n)=>{function r(e,t){return new RegExp((t?"":"^")+"(?:"+e.join("|")+")"+(t?"$":"\\b"))}function i(e,t,n){return n.tokenize.push(e),e(t,n)}n.r(t),n.d(t,{crystal:()=>E});var o=/^(?:[-+/%|&^]|\*\*?|[<>]{2})/,a=/^(?:[=!]~|===|<=>|[<>=!]=?|[|&]{2}|~)/,s=/^(?:\[\][?=]?)/,l=/^(?:\.(?:\.{2})?|->|[?:])/,c=/^[a-z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,u=/^[A-Z_\u009F-\uFFFF][a-zA-Z0-9_\u009F-\uFFFF]*/,d=r(["abstract","alias","as","asm","begin","break","case","class","def","do","else","elsif","end","ensure","enum","extend","for","fun","if","include","instance_sizeof","lib","macro","module","next","of","out","pointerof","private","protected","rescue","return","require","select","sizeof","struct","super","then","type","typeof","uninitialized","union","unless","until","when","while","with","yield","__DIR__","__END_LINE__","__FILE__","__LINE__"]),h=r(["true","false","nil","self"]),f=r(["def","fun","macro","class","module","struct","lib","enum","union","do","for"]),m=r(["if","unless","case","while","until","begin","then"]),p=["end","else","elsif","rescue","ensure"],g=r(p),b=["\\)","\\}","\\]"],v=new RegExp("^(?:"+b.join("|")+")$"),y={def:S,fun:S,macro:function(e,t){if(e.eatSpace())return null;var n;if(n=e.match(c)){if("def"==n)return"keyword";e.eat(/[?!]/)}return t.tokenize.pop(),"def"},class:_,module:_,struct:_,lib:_,enum:_,union:_},k={"[":"]","{":"}","(":")","<":">"};function O(e,t){if(e.eatSpace())return null;if("\\"!=t.lastToken&&e.match("{%",!1))return i(x("%","%"),e,t);if("\\"!=t.lastToken&&e.match("{{",!1))return i(x("{","}"),e,t);if("#"==e.peek())return e.skipToEnd(),"comment";var n;if(e.match(c))return e.eat(/[?!]/),n=e.current(),e.eat(":")?"atom":"."==t.lastToken?"property":d.test(n)?(f.test(n)?"fun"==n&&t.blocks.indexOf("lib")>=0||"def"==n&&"abstract"==t.lastToken||(t.blocks.push(n),t.currentIndent+=1):"operator"!=t.lastStyle&&t.lastStyle||!m.test(n)?"end"==n&&(t.blocks.pop(),t.currentIndent-=1):(t.blocks.push(n),t.currentIndent+=1),y.hasOwnProperty(n)&&t.tokenize.push(y[n]),"keyword"):h.test(n)?"atom":"variable";if(e.eat("@"))return"["==e.peek()?i(w("[","]","meta"),e,t):(e.eat("@"),e.match(c)||e.match(u),"propertyName");if(e.match(u))return"tag";if(e.eat(":"))return e.eat('"')?i(T('"',"atom",!1),e,t):e.match(c)||e.match(u)||e.match(o)||e.match(a)||e.match(s)?"atom":(e.eat(":"),"operator");if(e.eat('"'))return i(T('"',"string",!0),e,t);if("%"==e.peek()){var r,p="string",g=!0;if(e.match("%r"))p="string.special",r=e.next();else if(e.match("%w"))g=!1,r=e.next();else if(e.match("%q"))g=!1,r=e.next();else if(r=e.match(/^%([^\w\s=])/))r=r[1];else{if(e.match(/^%[a-zA-Z_\u009F-\uFFFF][\w\u009F-\uFFFF]*/))return"meta";if(e.eat("%"))return"operator"}return k.hasOwnProperty(r)&&(r=k[r]),i(T(r,p,g),e,t)}return(n=e.match(/^<<-('?)([A-Z]\w*)\1/))?i(function(e,t){return function(n,r){if(n.sol()&&(n.eatSpace(),n.match(e)))return r.tokenize.pop(),"string";for(var i=!1;n.peek();)if(i)n.next(),i=!1;else{if(n.match("{%",!1))return r.tokenize.push(x("%","%")),"string";if(n.match("{{",!1))return r.tokenize.push(x("{","}")),"string";if(t&&n.match("#{",!1))return r.tokenize.push(w("#{","}","meta")),"string";i="\\"==n.next()&&t}return"string"}}(n[2],!n[1]),e,t):e.eat("'")?(e.match(/^(?:[^']|\\(?:[befnrtv0'"]|[0-7]{3}|u(?:[0-9a-fA-F]{4}|\{[0-9a-fA-F]{1,6}\})))/),e.eat("'"),"atom"):e.eat("0")?(e.eat("x")?e.match(/^[0-9a-fA-F_]+/):e.eat("o")?e.match(/^[0-7_]+/):e.eat("b")&&e.match(/^[01_]+/),"number"):e.eat(/^\d/)?(e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+-]?\d+)?/),"number"):e.match(o)?(e.eat("="),"operator"):e.match(a)||e.match(l)?"operator":(n=e.match(/[({[]/,!1))?i(w(n=n[0],k[n],null),e,t):e.eat("\\")?(e.next(),"meta"):(e.next(),null)}function w(e,t,n,r){return function(i,o){if(!r&&i.match(e))return o.tokenize[o.tokenize.length-1]=w(e,t,n,!0),o.currentIndent+=1,n;var a=O(i,o);return i.current()===t&&(o.tokenize.pop(),o.currentIndent-=1,a=n),a}}function x(e,t,n){return function(r,i){return!n&&r.match("{"+e)?(i.currentIndent+=1,i.tokenize[i.tokenize.length-1]=x(e,t,!0),"meta"):r.match(t+"}")?(i.currentIndent-=1,i.tokenize.pop(),"meta"):O(r,i)}}function S(e,t){return e.eatSpace()?null:(e.match(c)?e.eat(/[!?]/):e.match(o)||e.match(a)||e.match(s),t.tokenize.pop(),"def")}function _(e,t){return e.eatSpace()?null:(e.match(u),t.tokenize.pop(),"def")}function T(e,t,n){return function(r,i){for(var o=!1;r.peek();)if(o)r.next(),o=!1;else{if(r.match("{%",!1))return i.tokenize.push(x("%","%")),t;if(r.match("{{",!1))return i.tokenize.push(x("{","}")),t;if(n&&r.match("#{",!1))return i.tokenize.push(w("#{","}","meta")),t;var a=r.next();if(a==e)return i.tokenize.pop(),t;o=n&&"\\"==a}return t}}const E={name:"crystal",startState:function(){return{tokenize:[O],currentIndent:0,lastToken:null,lastStyle:null,blocks:[]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t),r=e.current();return n&&"comment"!=n&&(t.lastToken=r,t.lastStyle=n),n},indent:function(e,t,n){return t=t.replace(/^\s*(?:\{%)?\s*|\s*(?:%\})?\s*$/g,""),g.test(t)||v.test(t)?n.unit*(e.currentIndent-1):n.unit*e.currentIndent},languageData:{indentOnInput:r(b.concat(p),!0),commentTokens:{line:"#"}}}},92463:(e,t,n)=>{function r(e){var t,n,r=(e={...T,...e}).inline,i=e.tokenHooks,o=e.documentTypes||{},a=e.mediaTypes||{},s=e.mediaFeatures||{},l=e.mediaValueKeywords||{},c=e.propertyKeywords||{},u=e.nonStandardPropertyKeywords||{},d=e.fontProperties||{},h=e.counterDescriptors||{},f=e.colorKeywords||{},m=e.valueKeywords||{},p=e.allowNested,g=e.lineComment,b=!0===e.supportsAtComponent,v=!1!==e.highlightNonStandardPropertyKeywords;function y(e,n){return t=n,e}function k(e,t){var n=e.next();if(i[n]){var r=i[n](e,t);if(!1!==r)return r}return"@"==n?(e.eatWhile(/[\w\\\-]/),y("def",e.current())):"="==n||("~"==n||"|"==n)&&e.eat("=")?y(null,"compare"):'"'==n||"'"==n?(t.tokenize=O(n),t.tokenize(e,t)):"#"==n?(e.eatWhile(/[\w\\\-]/),y("atom","hash")):"!"==n?(e.match(/^\s*\w*/),y("keyword","important")):/\d/.test(n)||"."==n&&e.eat(/\d/)?(e.eatWhile(/[\w.%]/),y("number","unit")):"-"!==n?/[,+>*\/]/.test(n)?y(null,"select-op"):"."==n&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?y("qualifier","qualifier"):/[:;{}\[\]\(\)]/.test(n)?y(null,n):e.match(/^[\w-.]+(?=\()/)?(/^(url(-prefix)?|domain|regexp)$/i.test(e.current())&&(t.tokenize=w),y("variableName.function","variable")):/[\w\\\-]/.test(n)?(e.eatWhile(/[\w\\\-]/),y("property","word")):y(null,null):/[\d.]/.test(e.peek())?(e.eatWhile(/[\w.%]/),y("number","unit")):e.match(/^-[\w\\\-]*/)?(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?y("def","variable-definition"):y("variableName","variable")):e.match(/^\w+-/)?y("meta","meta"):void 0}function O(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),y("string","string")}}function w(e,t){return e.next(),e.match(/^\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=O(")"),y(null,"(")}function x(e,t,n){this.type=e,this.indent=t,this.prev=n}function _(e,t,n,r){return e.context=new x(n,t.indentation()+(!1===r?0:t.indentUnit),e.context),n}function E(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function $(e,t,n){return P[n.context.type](e,t,n)}function A(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return $(e,t,n)}function C(e){var t=e.current().toLowerCase();n=m.hasOwnProperty(t)?"atom":f.hasOwnProperty(t)?"keyword":"variable"}var P={top:function(e,t,r){if("{"==e)return _(r,t,"block");if("}"==e&&r.context.prev)return E(r);if(b&&/@component/i.test(e))return _(r,t,"atComponentBlock");if(/^@(-moz-)?document$/i.test(e))return _(r,t,"documentTypes");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return _(r,t,"atBlock");if(/^@(font-face|counter-style)/i.test(e))return r.stateArg=e,"restricted_atBlock_before";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return"keyframes";if(e&&"@"==e.charAt(0))return _(r,t,"at");if("hash"==e)n="builtin";else if("word"==e)n="tag";else{if("variable-definition"==e)return"maybeprop";if("interpolation"==e)return _(r,t,"interpolation");if(":"==e)return"pseudo";if(p&&"("==e)return _(r,t,"parens")}return r.context.type},block:function(e,t,r){if("word"==e){var i=t.current().toLowerCase();return c.hasOwnProperty(i)?(n="property","maybeprop"):u.hasOwnProperty(i)?(n=v?"string.special":"property","maybeprop"):p?(n=t.match(/^\s*:(?:\s|$)/,!1)?"property":"tag","block"):(n="error","maybeprop")}return"meta"==e?"block":p||"hash"!=e&&"qualifier"!=e?P.top(e,t,r):(n="error","block")},maybeprop:function(e,t,n){return":"==e?_(n,t,"prop"):$(e,t,n)},prop:function(e,t,r){if(";"==e)return E(r);if("{"==e&&p)return _(r,t,"propBlock");if("}"==e||"{"==e)return A(e,t,r);if("("==e)return _(r,t,"parens");if("hash"!=e||/^#([0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/.test(t.current())){if("word"==e)C(t);else if("interpolation"==e)return _(r,t,"interpolation")}else n="error";return"prop"},propBlock:function(e,t,r){return"}"==e?E(r):"word"==e?(n="property","maybeprop"):r.context.type},parens:function(e,t,n){return"{"==e||"}"==e?A(e,t,n):")"==e?E(n):"("==e?_(n,t,"parens"):"interpolation"==e?_(n,t,"interpolation"):("word"==e&&C(t),"parens")},pseudo:function(e,t,r){return"meta"==e?"pseudo":"word"==e?(n="variableName.constant",r.context.type):$(e,t,r)},documentTypes:function(e,t,r){return"word"==e&&o.hasOwnProperty(t.current())?(n="tag",r.context.type):P.atBlock(e,t,r)},atBlock:function(e,t,r){if("("==e)return _(r,t,"atBlock_parens");if("}"==e||";"==e)return A(e,t,r);if("{"==e)return E(r)&&_(r,t,p?"block":"top");if("interpolation"==e)return _(r,t,"interpolation");if("word"==e){var i=t.current().toLowerCase();n="only"==i||"not"==i||"and"==i||"or"==i?"keyword":a.hasOwnProperty(i)?"attribute":s.hasOwnProperty(i)?"property":l.hasOwnProperty(i)?"keyword":c.hasOwnProperty(i)?"property":u.hasOwnProperty(i)?v?"string.special":"property":m.hasOwnProperty(i)?"atom":f.hasOwnProperty(i)?"keyword":"error"}return r.context.type},atComponentBlock:function(e,t,r){return"}"==e?A(e,t,r):"{"==e?E(r)&&_(r,t,p?"block":"top",!1):("word"==e&&(n="error"),r.context.type)},atBlock_parens:function(e,t,n){return")"==e?E(n):"{"==e||"}"==e?A(e,t,n,2):P.atBlock(e,t,n)},restricted_atBlock_before:function(e,t,r){return"{"==e?_(r,t,"restricted_atBlock"):"word"==e&&"@counter-style"==r.stateArg?(n="variable","restricted_atBlock_before"):$(e,t,r)},restricted_atBlock:function(e,t,r){return"}"==e?(r.stateArg=null,E(r)):"word"==e?(n="@font-face"==r.stateArg&&!d.hasOwnProperty(t.current().toLowerCase())||"@counter-style"==r.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())?"error":"property","maybeprop"):"restricted_atBlock"},keyframes:function(e,t,r){return"word"==e?(n="variable","keyframes"):"{"==e?_(r,t,"top"):$(e,t,r)},at:function(e,t,r){return";"==e?E(r):"{"==e||"}"==e?A(e,t,r):("word"==e?n="tag":"hash"==e&&(n="builtin"),"at")},interpolation:function(e,t,r){return"}"==e?E(r):"{"==e||";"==e?A(e,t,r):("word"==e?n="variable":"variable"!=e&&"("!=e&&")"!=e&&(n="error"),"interpolation")}};return{name:e.name,startState:function(){return{tokenize:null,state:r?"block":"top",stateArg:null,context:new x(r?"block":"top",0,null)}},token:function(e,r){if(!r.tokenize&&e.eatSpace())return null;var i=(r.tokenize||k)(e,r);return i&&"object"==typeof i&&(t=i[1],i=i[0]),n=i,"comment"!=t&&(r.state=P[r.state](t,e,r)),n},indent:function(e,t,n){var r=e.context,i=t&&t.charAt(0),o=r.indent;return"prop"!=r.type||"}"!=i&&")"!=i||(r=r.prev),r.prev&&("}"!=i||"block"!=r.type&&"top"!=r.type&&"interpolation"!=r.type&&"restricted_atBlock"!=r.type?(")"!=i||"parens"!=r.type&&"atBlock_parens"!=r.type)&&("{"!=i||"at"!=r.type&&"atBlock"!=r.type)||(o=Math.max(0,r.indent-n.unit)):o=(r=r.prev).indent),o},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:g,block:{open:"/*",close:"*/"}},autocomplete:S}}}function i(e){for(var t={},n=0;nE,gss:()=>P,keywords:()=>_,less:()=>C,mkCSS:()=>r,sCSS:()=>A});var o=["domain","regexp","url","url-prefix"],a=i(o),s=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],l=i(s),c=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","orientation","device-pixel-ratio","min-device-pixel-ratio","max-device-pixel-ratio","pointer","any-pointer","hover","any-hover","prefers-color-scheme","dynamic-range","video-dynamic-range"],u=i(c),d=["landscape","portrait","none","coarse","fine","on-demand","hover","interlace","progressive","dark","light","standard","high"],h=i(d),f=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","all","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backdrop-filter","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","baseline-shift","binding","bleed","block-size","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","caret-color","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-content","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","justify-content","justify-items","justify-self","left","letter-spacing","line-break","line-height","line-height-step","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","offset","offset-anchor","offset-distance","offset-path","offset-position","offset-rotate","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","place-content","place-items","place-self","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotate","rotation","rotation-point","row-gap","ruby-align","ruby-overhang","ruby-position","ruby-span","scale","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-skip-ink","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-orientation","text-outline","text-overflow","text-rendering","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","touch-action","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","user-select","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","paint-order","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode"],m=i(f),p=["accent-color","aspect-ratio","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","content-visibility","margin-block","margin-block-end","margin-block-start","margin-inline","margin-inline-end","margin-inline-start","overflow-anchor","overscroll-behavior","padding-block","padding-block-end","padding-block-start","padding-inline","padding-inline-end","padding-inline-start","scroll-snap-stop","scrollbar-3d-light-color","scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-track-color","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","shape-inside","zoom"],g=i(p),b=["font-display","font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],v=i(b),y=i(["additive-symbols","fallback","negative","pad","prefix","range","speak-as","suffix","symbols","system"]),k=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],O=i(k),w=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","auto-flow","avoid","avoid-column","avoid-page","avoid-region","axis-pan","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","blur","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","brightness","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","color","color-burn","color-dodge","column","column-reverse","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","contrast","copy","counter","counters","cover","crop","cross","crosshair","cubic-bezier","currentcolor","cursive","cyclic","darken","dashed","decimal","decimal-leading-zero","default","default-button","dense","destination-atop","destination-in","destination-out","destination-over","devanagari","difference","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","drop-shadow","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","exclusion","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fill-box","fixed","flat","flex","flex-end","flex-start","footnotes","forwards","from","geometricPrecision","georgian","grayscale","graytext","grid","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hard-light","hebrew","help","hidden","hide","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","hue","hue-rotate","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-grid","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","lighten","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","luminosity","malayalam","manipulation","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","multiple_mask_images","multiply","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","opacity","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","pinch-zoom","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row","row-resize","row-reverse","rtl","run-in","running","s-resize","sans-serif","saturate","saturation","scale","scale3d","scaleX","scaleY","scaleZ","screen","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","self-start","self-end","semi-condensed","semi-expanded","separate","sepia","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","soft-light","solid","somali","source-atop","source-in","source-out","source-over","space","space-around","space-between","space-evenly","spell-out","square","square-button","start","static","status-bar","stretch","stroke","stroke-box","sub","subpixel-antialiased","svg_masks","super","sw-resize","symbolic","symbols","system-ui","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","transform","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","unidirectional-pan","unset","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","view-box","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","wrap","wrap-reverse","x-large","x-small","xor","xx-large","xx-small"],x=i(w),S=o.concat(s).concat(c).concat(d).concat(f).concat(p).concat(k).concat(w);const _={properties:f,colors:k,fonts:b,values:w,all:S},T={documentTypes:a,mediaTypes:l,mediaFeatures:u,mediaValueKeywords:h,propertyKeywords:m,nonStandardPropertyKeywords:g,fontProperties:v,counterDescriptors:y,colorKeywords:O,valueKeywords:x,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=$,$(e,t))}}},E=r({name:"css"});function $(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}const A=r({name:"scss",mediaTypes:l,mediaFeatures:u,mediaValueKeywords:h,propertyKeywords:m,nonStandardPropertyKeywords:g,colorKeywords:O,valueKeywords:x,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=$,$(e,t)):["operator","operator"]},":":function(e){return!!e.match(/^\s*\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\w-]+/),e.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName.special","variable"]},"#":function(e){return!!e.eat("{")&&[null,"interpolation"]}}}),C=r({name:"less",mediaTypes:l,mediaFeatures:u,mediaValueKeywords:h,propertyKeywords:m,nonStandardPropertyKeywords:g,colorKeywords:O,valueKeywords:x,fontProperties:v,allowNested:!0,lineComment:"//",tokenHooks:{"/":function(e,t){return e.eat("/")?(e.skipToEnd(),["comment","comment"]):e.eat("*")?(t.tokenize=$,$(e,t)):["operator","operator"]},"@":function(e){return e.eat("{")?[null,"interpolation"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\b/i,!1)&&(e.eatWhile(/[\w\\\-]/),e.match(/^\s*:/,!1)?["def","variable-definition"]:["variableName","variable"])},"&":function(){return["atom","atom"]}}}),P=r({name:"gss",documentTypes:a,mediaTypes:l,mediaFeatures:u,propertyKeywords:m,nonStandardPropertyKeywords:g,fontProperties:v,counterDescriptors:y,colorKeywords:O,valueKeywords:x,supportsAtComponent:!0,tokenHooks:{"/":function(e,t){return!!e.eat("*")&&(t.tokenize=$,$(e,t))}}})},94269:(e,t,n)=>{n.r(t),n.d(t,{cypher:()=>f});var r,i=function(e){return new RegExp("^(?:"+e.join("|")+")$","i")},o=function(e){r=null;var t=e.next();if('"'===t)return e.match(/^.*?"/),"string";if("'"===t)return e.match(/^.*?'/),"string";if(/[{}\(\),\.;\[\]]/.test(t))return r=t,"punctuation";if("/"===t&&e.eat("/"))return e.skipToEnd(),"comment";if(h.test(t))return e.eatWhile(h),null;if(e.eatWhile(/[_\w\d]/),e.eat(":"))return e.eatWhile(/[\w\d_\-]/),"atom";var n=e.current();return l.test(n)?"builtin":c.test(n)?"def":u.test(n)||d.test(n)?"keyword":"variable"},a=function(e,t,n){return e.context={prev:e.context,indent:e.indent,col:n,type:t}},s=function(e){return e.indent=e.context.indent,e.context=e.context.prev},l=i(["abs","acos","allShortestPaths","asin","atan","atan2","avg","ceil","coalesce","collect","cos","cot","count","degrees","e","endnode","exp","extract","filter","floor","haversin","head","id","keys","labels","last","left","length","log","log10","lower","ltrim","max","min","node","nodes","percentileCont","percentileDisc","pi","radians","rand","range","reduce","rel","relationship","relationships","replace","reverse","right","round","rtrim","shortestPath","sign","sin","size","split","sqrt","startnode","stdev","stdevp","str","substring","sum","tail","tan","timestamp","toFloat","toInt","toString","trim","type","upper"]),c=i(["all","and","any","contains","exists","has","in","none","not","or","single","xor"]),u=i(["as","asc","ascending","assert","by","case","commit","constraint","create","csv","cypher","delete","desc","descending","detach","distinct","drop","else","end","ends","explain","false","fieldterminator","foreach","from","headers","in","index","is","join","limit","load","match","merge","null","on","optional","order","periodic","profile","remove","return","scan","set","skip","start","starts","then","true","union","unique","unwind","using","when","where","with","call","yield"]),d=i(["access","active","assign","all","alter","as","catalog","change","copy","create","constraint","constraints","current","database","databases","dbms","default","deny","drop","element","elements","exists","from","grant","graph","graphs","if","index","indexes","label","labels","management","match","name","names","new","node","nodes","not","of","on","or","password","populated","privileges","property","read","relationship","relationships","remove","replace","required","revoke","role","roles","set","show","start","status","stop","suspended","to","traverse","type","types","user","users","with","write"]),h=/[*+\-<>=&|~%^]/;const f={name:"cypher",startState:function(){return{tokenize:o,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"!==n&&t.context&&null==t.context.align&&"pattern"!==t.context.type&&(t.context.align=!0),"("===r)a(t,")",e.column());else if("["===r)a(t,"]",e.column());else if("{"===r)a(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"===t.context.type;)s(t);t.context&&r===t.context.type&&s(t)}else"."===r&&t.context&&"pattern"===t.context.type?s(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?a(t,"pattern",e.column()):"pattern"!==t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),i=e.context;if(/[\]\}]/.test(r))for(;i&&"pattern"===i.type;)i=i.prev;var o=i&&r===i.type;return i?"keywords"===i.type?null:i.align?i.col+(o?0:1):i.indent+(o?0:n.unit):0}}},58448:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rO});var i="body catch class do else enum for foreach foreach_reverse if in interface mixin out scope struct switch try union unittest version while with";const o={keywords:r("abstract alias align asm assert auto break case cast cdouble cent cfloat const continue debug default delegate delete deprecated export extern final finally function goto immutable import inout invariant is lazy macro module new nothrow override package pragma private protected public pure ref return shared short static super synchronized template this throw typedef typeid typeof volatile __FILE__ __LINE__ __gshared __traits __vector __parameters "+i),blockKeywords:r(i),builtin:r("bool byte char creal dchar double float idouble ifloat int ireal long real short ubyte ucent uint ulong ushort wchar wstring void size_t sizediff_t"),atoms:r("exit failure success true false null"),hooks:{"@":function(e,t){return e.eatWhile(/[\w\$_]/),"meta"}}};var a,s=o.statementIndentUnit,l=o.keywords,c=o.builtin,u=o.blockKeywords,d=o.atoms,h=o.hooks,f=o.multiLineStrings,m=/[+\-*&%=<>!?|\/]/;function p(e,t){var n,r=e.next();if(h[r]){var i=h[r](e,t);if(!1!==i)return i}if('"'==r||"'"==r||"`"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return(o||!i&&!f)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(r))return a=r,null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("+"))return t.tokenize=b,b(e,t);if(e.eat("*"))return t.tokenize=g,g(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(m.test(r))return e.eatWhile(m),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var o=e.current();return l.propertyIsEnumerable(o)?(u.propertyIsEnumerable(o)&&(a="newstatement"),"keyword"):c.propertyIsEnumerable(o)?(u.propertyIsEnumerable(o)&&(a="newstatement"),"builtin"):d.propertyIsEnumerable(o)?"atom":"variable"}function g(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function b(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="+"==n}return"comment"}function v(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function y(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new v(r,t,n,null,e.context)}function k(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const O={name:"d",startState:function(e){return{tokenize:null,context:new v(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;a=null;var r=(t.tokenize||p)(e,t);if("comment"==r||"meta"==r)return r;if(null==n.align&&(n.align=!0),";"!=a&&":"!=a&&","!=a||"statement"!=n.type)if("{"==a)y(t,e.column(),"}");else if("["==a)y(t,e.column(),"]");else if("("==a)y(t,e.column(),")");else if("}"==a){for(;"statement"==n.type;)n=k(t);for("}"==n.type&&(n=k(t));"statement"==n.type;)n=k(t)}else a==n.type?k(t):(("}"==n.type||"top"==n.type)&&";"!=a||"statement"==n.type&&"newstatement"==a)&&y(t,e.column(),"statement");else k(t);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=p&&null!=e.tokenize)return null;var r=e.context,i=t&&t.charAt(0);"statement"==r.type&&"}"==i&&(r=r.prev);var o=i==r.type;return"statement"==r.type?r.indented+("{"==i?0:s||n.unit):r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}},4829:(e,t,n)=>{n.r(t),n.d(t,{diff:()=>i});var r={"+":"inserted","-":"deleted","@":"meta"};const i={name:"diff",token:function(e){var t=e.string.search(/[\t ]+?$/);if(!e.sol()||0===t)return e.skipToEnd(),("error "+(r[e.string.charAt(0)]||"")).replace(/ $/,"");var n=r[e.peek()]||e.skipToEnd();return-1===t?e.skipToEnd():e.pos=t,n}}},45912:(e,t,n)=>{n.r(t),n.d(t,{dockerFile:()=>f});var r=n(94526),i="from",o=new RegExp("^(\\s*)\\b("+i+")\\b","i"),a=["run","cmd","entrypoint","shell"],s=new RegExp("^(\\s*)("+a.join("|")+")(\\s+\\[)","i"),l="expose",c=new RegExp("^(\\s*)("+l+")(\\s+)","i"),u="("+[i,l].concat(a).concat(["arg","from","maintainer","label","env","add","copy","volume","user","workdir","onbuild","stopsignal","healthcheck","shell"]).join("|")+")",d=new RegExp("^(\\s*)"+u+"(\\s*)(#.*)?$","i"),h=new RegExp("^(\\s*)"+u+"(\\s+)","i");const f=(0,r.I)({start:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:o,token:[null,"keyword"],sol:!0,next:"from"},{regex:d,token:[null,"keyword",null,"error"],sol:!0},{regex:s,token:[null,"keyword",null],sol:!0,next:"array"},{regex:c,token:[null,"keyword",null],sol:!0,next:"expose"},{regex:h,token:[null,"keyword",null],sol:!0,next:"arguments"},{regex:/./,token:null}],from:[{regex:/\s*$/,token:null,next:"start"},{regex:/(\s*)(#.*)$/,token:[null,"error"],next:"start"},{regex:/(\s*\S+\s+)(as)/i,token:[null,"keyword"],next:"start"},{token:null,next:"start"}],single:[{regex:/(?:[^\\']|\\.)/,token:"string"},{regex:/'/,token:"string",pop:!0}],double:[{regex:/(?:[^\\"]|\\.)/,token:"string"},{regex:/"/,token:"string",pop:!0}],array:[{regex:/\]/,token:null,next:"start"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"}],expose:[{regex:/\d+$/,token:"number",next:"start"},{regex:/[^\d]+$/,token:null,next:"start"},{regex:/\d+/,token:"number"},{regex:/[^\d]+/,token:null},{token:null,next:"start"}],arguments:[{regex:/^\s*#.*$/,sol:!0,token:"comment"},{regex:/"(?:[^\\"]|\\.)*"?$/,token:"string",next:"start"},{regex:/"/,token:"string",push:"double"},{regex:/'(?:[^\\']|\\.)*'?$/,token:"string",next:"start"},{regex:/'/,token:"string",push:"single"},{regex:/[^#"']+[\\`]$/,token:null},{regex:/[^#"']+$/,token:null,next:"start"},{regex:/[^#"']+/,token:null},{token:null,next:"start"}],languageData:{commentTokens:{line:"#"}}})},16736:(e,t,n)=>{var r;function i(e,t){return r=t,e}function o(e,t){var n,r,s,l=e.next();if("<"!=l||!e.eat("!")){if("<"==l&&e.eat("?"))return t.tokenize=(r="meta",s="?>",function(e,t){for(;!e.eol();){if(e.match(s)){t.tokenize=o;break}e.next()}return r}),i("meta",l);if("#"==l&&e.eatWhile(/[\w]/))return i("atom","tag");if("|"==l)return i("keyword","separator");if(l.match(/[\(\)\[\]\-\.,\+\?>]/))return i(null,l);if(l.match(/[\[\]]/))return i("rule",l);if('"'==l||"'"==l)return t.tokenize=(n=l,function(e,t){for(var r,a=!1;null!=(r=e.next());){if(r==n&&!a){t.tokenize=o;break}a=!a&&"\\"==r}return i("string","tag")}),t.tokenize(e,t);if(e.eatWhile(/[a-zA-Z\?\+\d]/)){var c=e.current();return null!==c.substr(c.length-1,c.length).match(/\?|\+/)&&e.backUp(1),i("tag","tag")}return"%"==l||"*"==l?i("number","number"):(e.eatWhile(/[\w\\\-_%.{,]/),i(null,null))}return e.eatWhile(/[\-]/)?(t.tokenize=a,a(e,t)):e.eatWhile(/[\w]/)?i("keyword","doindent"):void 0}function a(e,t){for(var n,r=0;null!=(n=e.next());){if(r>=2&&">"==n){t.tokenize=o;break}r="-"==n?r+1:0}return i("comment","comment")}n.r(t),n.d(t,{dtd:()=>s});const s={name:"dtd",startState:function(){return{tokenize:o,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;var n=t.tokenize(e,t),i=t.stack[t.stack.length-1];return"["==e.current()||"doindent"===r||"["==r?t.stack.push("rule"):"endtag"===r?t.stack[t.stack.length-1]="endtag":"]"==e.current()||"]"==r||">"==r&&"rule"==i?t.stack.pop():"["==r&&t.stack.push("["),n},indent:function(e,t,n){var i=e.stack.length;return"]"===t.charAt(0)?i--:">"===t.substr(t.length-1,t.length)&&("<"===t.substr(0,1)||"doindent"==r&&t.length>1||("doindent"==r?i--:">"==r&&t.length>1||"tag"==r&&">"!==t||("tag"==r&&"rule"==e.stack[e.stack.length-1]?i--:"tag"==r?i++:">"===t&&"rule"==e.stack[e.stack.length-1]&&">"===r?i--:">"===t&&"rule"==e.stack[e.stack.length-1]||("<"!==t.substr(0,1)&&">"===t.substr(0,1)?i-=1:">"===t||(i-=1)))),null!=r&&"]"!=r||i--),e.baseIndent+i*n.unit},languageData:{indentOnInput:/^\s*[\]>]$/}}},68898:(e,t,n)=>{function r(e,t){for(var n=0;nv});var o={unnamedDefinition:["interface"],namedDefinition:["module","library","macro","C-struct","C-union","C-function","C-callable-wrapper"],typeParameterizedDefinition:["class","C-subtype","C-mapped-subtype"],otherParameterizedDefinition:["method","function","C-variable","C-address"],constantSimpleDefinition:["constant"],variableSimpleDefinition:["variable"],otherSimpleDefinition:["generic","domain","C-pointer-type","table"],statement:["if","block","begin","method","case","for","select","when","unless","until","while","iterate","profiling","dynamic-bind"],separator:["finally","exception","cleanup","else","elseif","afterwards"],other:["above","below","by","from","handler","in","instance","let","local","otherwise","slot","subclass","then","to","keyed-by","virtual"],signalingCalls:["signal","error","cerror","break","check-type","abort"]};o.otherDefinition=o.unnamedDefinition.concat(o.namedDefinition).concat(o.otherParameterizedDefinition),o.definition=o.typeParameterizedDefinition.concat(o.otherDefinition),o.parameterizedDefinition=o.typeParameterizedDefinition.concat(o.otherParameterizedDefinition),o.simpleDefinition=o.constantSimpleDefinition.concat(o.variableSimpleDefinition).concat(o.otherSimpleDefinition),o.keyword=o.statement.concat(o.separator).concat(o.other);var a="[-_a-zA-Z?!*@<>$%]+",s=new RegExp("^"+a),l={symbolKeyword:a+":",symbolClass:"<"+a+">",symbolGlobal:"\\*"+a+"\\*",symbolConstant:"\\$"+a},c={symbolKeyword:"atom",symbolClass:"tag",symbolGlobal:"variableName.standard",symbolConstant:"variableName.constant"};for(var u in l)l.hasOwnProperty(u)&&(l[u]=new RegExp("^"+l[u]));l.keyword=[/^with(?:out)?-[-_a-zA-Z?!*@<>$%]+/];var d={keyword:"keyword",definition:"def",simpleDefinition:"def",signalingCalls:"builtin"},h={},f={};function m(e,t,n){return t.tokenize=n,n(e,t)}function p(e,t){var n=e.peek();if("'"==n||'"'==n)return e.next(),m(e,t,b(n,"string"));if("/"==n){if(e.next(),e.eat("*"))return m(e,t,g);if(e.eat("/"))return e.skipToEnd(),"comment";e.backUp(1)}else if(/[+\-\d\.]/.test(n)){if(e.match(/^[+-]?[0-9]*\.[0-9]*([esdx][+-]?[0-9]+)?/i)||e.match(/^[+-]?[0-9]+([esdx][+-]?[0-9]+)/i)||e.match(/^[+-]?\d+/))return"number"}else{if("#"==n)return e.next(),'"'==(n=e.peek())?(e.next(),m(e,t,b('"',"string"))):"b"==n?(e.next(),e.eatWhile(/[01]/),"number"):"x"==n?(e.next(),e.eatWhile(/[\da-f]/i),"number"):"o"==n?(e.next(),e.eatWhile(/[0-7]/),"number"):"#"==n?(e.next(),"punctuation"):"["==n||"("==n?(e.next(),"bracket"):e.match(/f|t|all-keys|include|key|next|rest/i)?"atom":(e.eatWhile(/[-a-zA-Z]/),"error");if("~"==n)return e.next(),"="==(n=e.peek())?(e.next(),"="==(n=e.peek())?(e.next(),"operator"):"operator"):"operator";if(":"==n){if(e.next(),"="==(n=e.peek()))return e.next(),"operator";if(":"==n)return e.next(),"punctuation"}else{if(-1!="[](){}".indexOf(n))return e.next(),"bracket";if(-1!=".,".indexOf(n))return e.next(),"punctuation";if(e.match("end"))return"keyword"}}for(var r in l)if(l.hasOwnProperty(r)){var o=l[r];if(o instanceof Array&&i(o,(function(t){return e.match(t)}))||e.match(o))return c[r]}return/[+\-*\/^=<>&|]/.test(n)?(e.next(),"operator"):e.match("define")?"def":(e.eatWhile(/[\w\-]/),h.hasOwnProperty(e.current())?f[e.current()]:e.current().match(s)?"variable":(e.next(),"variableName.standard"))}function g(e,t){for(var n,r=!1,i=!1,o=0;n=e.next();){if("/"==n&&r){if(!(o>0)){t.tokenize=p;break}o--}else"*"==n&&i&&o++;r="*"==n,i="/"==n}return"comment"}function b(e,t){return function(n,r){for(var i,o=!1,a=!1;null!=(i=n.next());){if(i==e&&!o){a=!0;break}o=!o&&"\\"==i}return!a&&o||(r.tokenize=p),t}}r(["keyword","definition","simpleDefinition","signalingCalls"],(function(e){r(o[e],(function(t){h[t]=e,f[t]=d[e]}))}));const v={name:"dylan",startState:function(){return{tokenize:p,currentIndent:0}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"/*",close:"*/"}}}}},86013:(e,t,n)=>{n.r(t),n.d(t,{ebnf:()=>l});var r=0,i=1,o=0,a=1,s=2;const l={name:"ebnf",startState:function(){return{stringType:null,commentType:null,braced:0,lhs:!0,localState:null,stack:[],inDefinition:!1}},token:function(e,t){if(e){switch(0===t.stack.length&&('"'==e.peek()||"'"==e.peek()?(t.stringType=e.peek(),e.next(),t.stack.unshift(a)):e.match("/*")?(t.stack.unshift(o),t.commentType=r):e.match("(*")&&(t.stack.unshift(o),t.commentType=i)),t.stack[0]){case a:for(;t.stack[0]===a&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string";case o:for(;t.stack[0]===o&&!e.eol();)t.commentType===r&&e.match("*/")||t.commentType===i&&e.match("*)")?(t.stack.shift(),t.commentType=null):e.match(/^.[^\*]*/);return"comment";case s:for(;t.stack[0]===s&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(".")||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift(s),"bracket";case":":case"|":case";":return e.next(),"operator";case"%":if(e.match("%%"))return"header";if(e.match(/[%][A-Za-z]+/))return"keyword";if(e.match(/[%][}]/))return"bracket";break;case"/":if(e.match(/[\/][A-Za-z]+/))return"keyword";case"\\":if(e.match(/[\][a-z]+/))return"string.special";case".":if(e.match("."))return"atom";case"*":case"-":case"+":case"^":if(e.match(n))return"atom";case"$":if(e.match("$$"))return"builtin";if(e.match(/[$][0-9]+/))return"variableName.special";case"<":if(e.match(/<<[a-zA-Z_]+>>/))return"builtin"}return e.match("//")?(e.skipToEnd(),"comment"):e.match("return")?"operator":e.match(/^[a-zA-Z_][a-zA-Z0-9_]*/)?e.match(/(?=[\(.])/)?"variable":e.match(/(?=[\s\n]*[:=])/)?"def":"variableName.special":-1!=["[","]","(",")"].indexOf(e.peek())?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}}},13212:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;ry});var i,o=r("abs acos allnodes ascii asin asstring atan atan2 ave case choose choosen choosesets clustersize combine correlation cos cosh count covariance cron dataset dedup define denormalize distribute distributed distribution ebcdic enth error evaluate event eventextra eventname exists exp failcode failmessage fetch fromunicode getisvalid global graph group hash hash32 hash64 hashcrc hashmd5 having if index intformat isvalid iterate join keyunicode length library limit ln local log loop map matched matchlength matchposition matchtext matchunicode max merge mergejoin min nolocal nonempty normalize parse pipe power preload process project pull random range rank ranked realformat recordof regexfind regexreplace regroup rejected rollup round roundup row rowdiff sample set sin sinh sizeof soapcall sort sorted sqrt stepped stored sum table tan tanh thisnode topn tounicode transfer trim truncate typeof ungroup unicodeorder variance which workunit xmldecode xmlencode xmltext xmlunicode"),a=r("apply assert build buildindex evaluate fail keydiff keypatch loadxml nothor notify output parallel sequential soapcall wait"),s=r("__compressed__ all and any as atmost before beginc++ best between case const counter csv descend encrypt end endc++ endmacro except exclusive expire export extend false few first flat from full function group header heading hole ifblock import in interface joined keep keyed last left limit load local locale lookup macro many maxcount maxlength min skew module named nocase noroot noscan nosort not of only opt or outer overwrite packed partition penalty physicallength pipe quote record relationship repeat return right scan self separator service shared skew skip sql store terminator thor threshold token transform trim true type unicodeorder unsorted validate virtual whole wild within xml xpath"),l=r("ascii big_endian boolean data decimal ebcdic integer pattern qstring real record rule set of string token udecimal unicode unsigned varstring varunicode"),c=r("checkpoint deprecated failcode failmessage failure global independent onwarning persist priority recovery stored success wait when"),u=r("catch class do else finally for if switch try while"),d=r("true false null"),h={"#":function(e,t){return!!t.startOfLine&&(e.skipToEnd(),"meta")}},f=/[+\-*&%=<>!?|\/]/;function m(e,t){var n,r=e.next();if(h[r]){var g=h[r](e,t);if(!1!==g)return g}if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return!o&&i||(t.tokenize=m),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\:\.]/.test(r))return i=r,null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("*"))return t.tokenize=p,p(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(f.test(r))return e.eatWhile(f),"operator";e.eatWhile(/[\w\$_]/);var b=e.current().toLowerCase();if(o.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(i="newstatement"),"keyword";if(a.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(i="newstatement"),"variable";if(s.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(i="newstatement"),"modifier";if(l.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(i="newstatement"),"type";if(c.propertyIsEnumerable(b))return u.propertyIsEnumerable(b)&&(i="newstatement"),"builtin";for(var v=b.length-1;v>=0&&(!isNaN(b[v])||"_"==b[v]);)--v;if(v>0){var y=b.substr(0,v+1);if(l.propertyIsEnumerable(y))return u.propertyIsEnumerable(y)&&(i="newstatement"),"type"}return d.propertyIsEnumerable(b)?"atom":null}function p(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=m;break}r="*"==n}return"comment"}function g(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function b(e,t,n){return e.context=new g(e.indented,t,n,null,e.context)}function v(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const y={name:"ecl",startState:function(e){return{tokenize:null,context:new g(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;i=null;var r=(t.tokenize||m)(e,t);if("comment"==r||"meta"==r)return r;if(null==n.align&&(n.align=!0),";"!=i&&":"!=i||"statement"!=n.type)if("{"==i)b(t,e.column(),"}");else if("["==i)b(t,e.column(),"]");else if("("==i)b(t,e.column(),")");else if("}"==i){for(;"statement"==n.type;)n=v(t);for("}"==n.type&&(n=v(t));"statement"==n.type;)n=v(t)}else i==n.type?v(t):("}"==n.type||"top"==n.type||"statement"==n.type&&"newstatement"==i)&&b(t,e.column(),"statement");else v(t);return t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=m&&null!=e.tokenize)return 0;var r=e.context,i=t&&t.charAt(0);"statement"==r.type&&"}"==i&&(r=r.prev);var o=i==r.type;return"statement"==r.type?r.indented+("{"==i?0:n.unit):r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/}}},14989:(e,t,n)=>{function r(e){for(var t={},n=0,r=e.length;ns});var i=r(["note","across","when","variant","until","unique","undefine","then","strip","select","retry","rescue","require","rename","reference","redefine","prefix","once","old","obsolete","loop","local","like","is","inspect","infix","include","if","frozen","from","external","export","ensure","end","elseif","else","do","creation","create","check","alias","agent","separate","invariant","inherit","indexing","feature","expanded","deferred","class","Void","True","Result","Precursor","False","Current","create","attached","detachable","as","and","implies","not","or"]),o=r([":=","and then","and","or","<<",">>"]);function a(e,t){if(e.eatSpace())return null;var n,r,i,o=e.next();return'"'==o||"'"==o?function(e,t,n){return n.tokenize.push(e),e(t,n)}((n=o,r="string",function(e,t){for(var o,a=!1;null!=(o=e.next());){if(o==n&&(i||!a)){t.tokenize.pop();break}a=!a&&"%"==o}return r}),e,t):"-"==o&&e.eat("-")?(e.skipToEnd(),"comment"):":"==o&&e.eat("=")?"operator":/[0-9]/.test(o)?(e.eatWhile(/[xXbBCc0-9\.]/),e.eat(/[\?\!]/),"variable"):/[a-zA-Z_0-9]/.test(o)?(e.eatWhile(/[a-zA-Z_0-9]/),e.eat(/[\?\!]/),"variable"):/[=+\-\/*^%<>~]/.test(o)?(e.eatWhile(/[=+\-\/*^%<>~]/),"operator"):null}const s={name:"eiffel",startState:function(){return{tokenize:[a]}},token:function(e,t){var n=t.tokenize[t.tokenize.length-1](e,t);if("variable"==n){var r=e.current();n=i.propertyIsEnumerable(e.current())?"keyword":o.propertyIsEnumerable(e.current())?"operator":/^[A-Z][A-Z_0-9]*$/g.test(r)?"tag":/^0[bB][0-1]+$/g.test(r)||/^0[cC][0-7]+$/g.test(r)||/^0[xX][a-fA-F0-9]+$/g.test(r)||/^([0-9]+\.[0-9]*)|([0-9]*\.[0-9]+)$/g.test(r)||/^[0-9]+$/g.test(r)?"number":"variable"}return n},languageData:{commentTokens:{line:"--"}}}},55208:(e,t,n)=>{function r(e,t,n){return t(n),n(e,t)}n.r(t),n.d(t,{elm:()=>y});var i=/[a-z]/,o=/[A-Z]/,a=/[a-zA-Z0-9_]/,s=/[0-9]/,l=/[0-9A-Fa-f]/,c=/[-&*+.\\/<>=?^|:]/,u=/[(),[\]{}]/,d=/[ \v\f]/;function h(){return function(e,t){if(e.eatWhile(d))return null;var n=e.next();if(u.test(n))return"{"===n&&e.eat("-")?r(e,t,f(1)):"["===n&&e.match("glsl|")?r(e,t,b):"builtin";if("'"===n)return r(e,t,g);if('"'===n)return e.eat('"')?e.eat('"')?r(e,t,m):"string":r(e,t,p);if(o.test(n))return e.eatWhile(a),"type";if(i.test(n)){var h=1===e.pos;return e.eatWhile(a),h?"def":"variable"}if(s.test(n)){if("0"===n){if(e.eat(/[xX]/))return e.eatWhile(l),"number"}else e.eatWhile(s);return e.eat(".")&&e.eatWhile(s),e.eat(/[eE]/)&&(e.eat(/[-+]/),e.eatWhile(s)),"number"}return c.test(n)?"-"===n&&e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(c),"keyword"):"_"===n?"keyword":"error"}}function f(e){return 0==e?h():function(t,n){for(;!t.eol();){var r=t.next();if("{"==r&&t.eat("-"))++e;else if("-"==r&&t.eat("}")&&0===--e)return n(h()),"comment"}return n(f(e)),"comment"}}function m(e,t){for(;!e.eol();){if('"'===e.next()&&e.eat('"')&&e.eat('"'))return t(h()),"string"}return"string"}function p(e,t){for(;e.skipTo('\\"');)e.next(),e.next();return e.skipTo('"')?(e.next(),t(h()),"string"):(e.skipToEnd(),t(h()),"error")}function g(e,t){for(;e.skipTo("\\'");)e.next(),e.next();return e.skipTo("'")?(e.next(),t(h()),"string"):(e.skipToEnd(),t(h()),"error")}function b(e,t){for(;!e.eol();){if("|"===e.next()&&e.eat("]"))return t(h()),"string"}return"string"}var v={case:1,of:1,as:1,if:1,then:1,else:1,let:1,in:1,type:1,alias:1,module:1,where:1,import:1,exposing:1,port:1};const y={name:"elm",startState:function(){return{f:h()}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,(function(e){t.f=e})),r=e.current();return v.hasOwnProperty(r)?"keyword":n},languageData:{commentTokens:{line:"--"}}}},47717:(e,t,n)=>{n.r(t),n.d(t,{erlang:()=>R});var r=["-type","-spec","-export_type","-opaque"],i=["after","begin","catch","case","cond","end","fun","if","let","of","query","receive","try","when"],o=/[\->,;]/,a=["->",";",","],s=["and","andalso","band","bnot","bor","bsl","bsr","bxor","div","not","or","orelse","rem","xor"],l=/[\+\-\*\/<>=\|:!]/,c=["=","+","-","*","/",">",">=","<","=<","=:=","==","=/=","/=","||","<-","!"],u=/[<\(\[\{]/,d=["<<","(","[","{"],h=/[>\)\]\}]/,f=["}","]",")",">>"],m=["is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_record","is_reference","is_tuple","atom","binary","bitstring","boolean","function","integer","list","number","pid","port","record","reference","tuple"],p=["abs","adler32","adler32_combine","alive","apply","atom_to_binary","atom_to_list","binary_to_atom","binary_to_existing_atom","binary_to_list","binary_to_term","bit_size","bitstring_to_list","byte_size","check_process_code","contact_binary","crc32","crc32_combine","date","decode_packet","delete_module","disconnect_node","element","erase","exit","float","float_to_list","garbage_collect","get","get_keys","group_leader","halt","hd","integer_to_list","internal_bif","iolist_size","iolist_to_binary","is_alive","is_atom","is_binary","is_bitstring","is_boolean","is_float","is_function","is_integer","is_list","is_number","is_pid","is_port","is_process_alive","is_record","is_reference","is_tuple","length","link","list_to_atom","list_to_binary","list_to_bitstring","list_to_existing_atom","list_to_float","list_to_integer","list_to_pid","list_to_tuple","load_module","make_ref","module_loaded","monitor_node","node","node_link","node_unlink","nodes","notalive","now","open_port","pid_to_list","port_close","port_command","port_connect","port_control","pre_loaded","process_flag","process_info","processes","purge_module","put","register","registered","round","self","setelement","size","spawn","spawn_link","spawn_monitor","spawn_opt","split_binary","statistics","term_to_binary","time","throw","tl","trunc","tuple_size","tuple_to_list","unlink","unregister","whereis"],g=/[\w@\xd8-\xde\xc0-\xd6\xdf-\xf6\xf8-\xff]/,b=/[0-7]{1,3}|[bdefnrstv\\"']|\^[a-zA-Z]|x[0-9a-zA-Z]{2}|x{[0-9a-zA-Z]+}/;function v(e,t,n){if(1==e.current().length&&t.test(e.current())){for(e.backUp(1);t.test(e.peek());)if(e.next(),x(e.current(),n))return!0;e.backUp(e.current().length-1)}return!1}function y(e,t,n){if(1==e.current().length&&t.test(e.current())){for(;t.test(e.peek());)e.next();for(;01&&"fun"===e[t].type&&"fun"===e[t-1].token)return e.slice(0,t-1);switch(e[t].token){case"}":return $(e,{g:["{"]});case"]":return $(e,{i:["["]});case")":return $(e,{i:["("]});case">>":return $(e,{i:["<<"]});case"end":return $(e,{i:["begin","case","fun","if","receive","try"]});case",":return $(e,{e:["begin","try","when","->",",","(","[","{","<<"]});case"->":return $(e,{r:["when"],m:["try","if","case","receive"]});case";":return $(e,{E:["case","fun","if","receive","try","when"]});case"catch":return $(e,{e:["try"]});case"of":return $(e,{e:["case"]});case"after":return $(e,{e:["receive","try"]});default:return e}}(e.tokenStack))}(e,function(e,t){return _(t.current(),t.column(),t.indentation(),e)}(n,t)),n){case"atom":case"boolean":return"atom";case"attribute":return"attribute";case"builtin":return"builtin";case"close_paren":case"colon":case"dot":case"open_paren":case"separator":default:return null;case"comment":return"comment";case"error":return"error";case"fun":return"meta";case"function":return"tag";case"guard":return"property";case"keyword":return"keyword";case"macro":return"macroName";case"number":return"number";case"operator":return"operator";case"record":return"bracket";case"string":return"string";case"type":return"def";case"variable":return"variable"}}function _(e,t,n,r){return{token:e,column:t,indent:n,type:r}}function T(e){return _(e,0,0,e)}function E(e,t){var n=e.tokenStack.length,r=t||1;return!(n({tokenStack:[],in_string:!1,in_atom:!1}),token:function(e,t){if(t.in_string)return t.in_string=!k(e),S(t,e,"string");if(t.in_atom)return t.in_atom=!O(e),S(t,e,"atom");if(e.eatSpace())return S(t,e,"whitespace");if(!E(t)&&e.match(/-\s*[a-z\xdf-\xf6\xf8-\xff][\w\xd8-\xde\xc0-\xd6\xdf-\xf6\xf8-\xff]*/))return x(e.current(),r)?S(t,e,"type"):S(t,e,"attribute");var n=e.next();if("%"==n)return e.skipToEnd(),S(t,e,"comment");if(":"==n)return S(t,e,"colon");if("?"==n)return e.eatSpace(),e.eatWhile(g),S(t,e,"macro");if("#"==n)return e.eatSpace(),e.eatWhile(g),S(t,e,"record");if("$"==n)return"\\"!=e.next()||e.match(b)?S(t,e,"number"):S(t,e,"error");if("."==n)return S(t,e,"dot");if("'"==n){if(!(t.in_atom=!O(e))){if(e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),S(t,e,"fun");if(e.match(/\s*\(/,!1)||e.match(/\s*:/,!1))return S(t,e,"function")}return S(t,e,"atom")}if('"'==n)return t.in_string=!k(e),S(t,e,"string");if(/[A-Z_\xd8-\xde\xc0-\xd6]/.test(n))return e.eatWhile(g),S(t,e,"variable");if(/[a-z_\xdf-\xf6\xf8-\xff]/.test(n)){if(e.eatWhile(g),e.match(/\s*\/\s*[0-9]/,!1))return e.match(/\s*\/\s*[0-9]/,!0),S(t,e,"fun");var w=e.current();return x(w,i)?S(t,e,"keyword"):x(w,s)?S(t,e,"operator"):e.match(/\s*\(/,!1)?!x(w,p)||":"==E(t).token&&"erlang"!=E(t,2).token?x(w,m)?S(t,e,"guard"):S(t,e,"function"):S(t,e,"builtin"):":"==function(e){var t=e.match(/^\s*([^\s%])/,!1);return t?t[1]:""}(e)?S(t,e,"erlang"==w?"builtin":"function"):x(w,["true","false"])?S(t,e,"boolean"):S(t,e,"atom")}var _=/[0-9]/;return _.test(n)?(e.eatWhile(_),e.eat("#")?e.eatWhile(/[0-9a-zA-Z]/)||e.backUp(1):e.eat(".")&&(e.eatWhile(_)?e.eat(/[eE]/)&&(e.eat(/[-+]/)?e.eatWhile(_)||e.backUp(2):e.eatWhile(_)||e.backUp(1)):e.backUp(1)),S(t,e,"number")):v(e,u,d)?S(t,e,"open_paren"):v(e,h,f)?S(t,e,"close_paren"):y(e,o,a)?S(t,e,"separator"):y(e,l,c)?S(t,e,"operator"):S(t,e,null)},indent:function(e,t,n){var r,i=function(e){var t=e.match(/,|[a-z]+|\}|\]|\)|>>|\|+|\(/);return P(t)&&0===t.index?t[0]:""}(t),o=E(e,1),a=E(e,2);return e.in_string||e.in_atom?null:a?"when"==o.token?o.column+n.unit:"when"===i&&"function"===a.type?a.indent+n.unit:"("===i&&"fun"===o.token?o.column+3:"catch"===i&&(r=A(e,["try"]))?r.column:x(i,["end","after","of"])?(r=A(e,["begin","case","fun","if","receive","try"]))?r.column:null:x(i,f)?(r=A(e,d))?r.column:null:x(o.token,[",","|","||"])||x(i,[",","|","||"])?(r=function(e){var t=e.tokenStack.slice(0,-1),n=C(t,"type",["open_paren"]);return!!P(t[n])&&t[n]}(e))?r.column+r.token.length:n.unit:"->"==o.token?x(a.token,["receive","case","if","try"])?a.column+n.unit+n.unit:a.column+n.unit:x(o.token,d)?o.column+o.token.length:(r=function(e){var t=e.tokenStack,n=C(t,"type",["open_paren","separator","keyword"]),r=C(t,"type",["operator"]);return P(n)&&P(r)&&n{n.r(t),n.d(t,{factor:()=>r});const r=(0,n(94526).I)({start:[{regex:/#?!.*/,token:"comment"},{regex:/"""/,token:"string",next:"string3"},{regex:/(STRING:)(\s)/,token:["keyword",null],next:"string2"},{regex:/\S*?"/,token:"string",next:"string"},{regex:/(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\-?\d+.?\d*)(?=\s)/,token:"number"},{regex:/((?:GENERIC)|\:?\:)(\s+)(\S+)(\s+)(\()/,token:["keyword",null,"def",null,"bracket"],next:"stack"},{regex:/(M\:)(\s+)(\S+)(\s+)(\S+)/,token:["keyword",null,"def",null,"tag"]},{regex:/USING\:/,token:"keyword",next:"vocabulary"},{regex:/(USE\:|IN\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"tag"]},{regex:/(\S+\:)(\s+)(\S+)(?=\s|$)/,token:["keyword",null,"def"]},{regex:/(?:;|\\|t|f|if|loop|while|until|do|PRIVATE>|\.\*\?]+(?=\s|$)/,token:"builtin"},{regex:/[\)><]+\S+(?=\s|$)/,token:"builtin"},{regex:/(?:[\+\-\=\/\*<>])(?=\s|$)/,token:"keyword"},{regex:/\S+/,token:"variable"},{regex:/\s+|./,token:null}],vocabulary:[{regex:/;/,token:"keyword",next:"start"},{regex:/\S+/,token:"tag"},{regex:/\s+|./,token:null}],string:[{regex:/(?:[^\\]|\\.)*?"/,token:"string",next:"start"},{regex:/.*/,token:"string"}],string2:[{regex:/^;/,token:"keyword",next:"start"},{regex:/.*/,token:"string"}],string3:[{regex:/(?:[^\\]|\\.)*?"""/,token:"string",next:"start"},{regex:/.*/,token:"string"}],stack:[{regex:/\)/,token:"bracket",next:"start"},{regex:/--/,token:"bracket"},{regex:/\S+/,token:"meta"},{regex:/\s+|./,token:null}],languageData:{name:"factor",dontIndentStates:["start","vocabulary","string","string3","stack"],commentTokens:{line:"!"}}})},76193:(e,t,n)=>{n.r(t),n.d(t,{fcl:()=>d});var r={term:!0,method:!0,accu:!0,rule:!0,then:!0,is:!0,and:!0,or:!0,if:!0,default:!0},i={var_input:!0,var_output:!0,fuzzify:!0,defuzzify:!0,function_block:!0,ruleblock:!0},o={end_ruleblock:!0,end_defuzzify:!0,end_function_block:!0,end_fuzzify:!0,end_var:!0},a={true:!0,false:!0,nan:!0,real:!0,min:!0,max:!0,cog:!0,cogs:!0},s=/[+\-*&^%:=<>!|\/]/;function l(e,t){var n=e.next();if(/[\d\.]/.test(n))return"."==n?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==n?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if("/"==n||"("==n){if(e.eat("*"))return t.tokenize=c,c(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(s.test(n))return e.eatWhile(s),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var l=e.current().toLowerCase();return r.propertyIsEnumerable(l)||i.propertyIsEnumerable(l)||o.propertyIsEnumerable(l)?"keyword":a.propertyIsEnumerable(l)?"atom":"variable"}function c(e,t){for(var n,r=!1;n=e.next();){if(("/"==n||")"==n)&&r){t.tokenize=l;break}r="*"==n}return"comment"}function u(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}const d={name:"fcl",startState:function(e){return{tokenize:null,context:new u(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;var r=(t.tokenize||l)(e,t);if("comment"==r)return r;null==n.align&&(n.align=!0);var a=e.current().toLowerCase();return i.propertyIsEnumerable(a)?function(e,t,n){e.context=new u(e.indented,t,n,null,e.context)}(t,e.column(),"end_block"):o.propertyIsEnumerable(a)&&function(e){if(e.context.prev)"end_block"==e.context.type&&(e.indented=e.context.indented),e.context=e.context.prev}(t),t.startOfLine=!1,r},indent:function(e,t,n){if(e.tokenize!=l&&null!=e.tokenize)return 0;var r=e.context,i=o.propertyIsEnumerable(t);return r.align?r.column+(i?0:1):r.indented+(i?0:n.unit)},languageData:{commentTokens:{line:"//",block:{open:"(*",close:"*)"}}}}},21899:(e,t,n)=>{function r(e){var t=[];return e.split(" ").forEach((function(e){t.push({name:e})})),t}n.r(t),n.d(t,{forth:()=>s});var i=r("INVERT AND OR XOR 2* 2/ LSHIFT RSHIFT 0= = 0< < > U< MIN MAX 2DROP 2DUP 2OVER 2SWAP ?DUP DEPTH DROP DUP OVER ROT SWAP >R R> R@ + - 1+ 1- ABS NEGATE S>D * M* UM* FM/MOD SM/REM UM/MOD */ */MOD / /MOD MOD HERE , @ ! CELL+ CELLS C, C@ C! CHARS 2@ 2! ALIGN ALIGNED +! ALLOT CHAR [CHAR] [ ] BL FIND EXECUTE IMMEDIATE COUNT LITERAL STATE ; DOES> >BODY EVALUATE SOURCE >IN <# # #S #> HOLD SIGN BASE >NUMBER HEX DECIMAL FILL MOVE . CR EMIT SPACE SPACES TYPE U. .R U.R ACCEPT TRUE FALSE <> U> 0<> 0> NIP TUCK ROLL PICK 2>R 2R@ 2R> WITHIN UNUSED MARKER I J TO COMPILE, [COMPILE] SAVE-INPUT RESTORE-INPUT PAD ERASE 2LITERAL DNEGATE D- D+ D0< D0= D2* D2/ D< D= DMAX DMIN D>S DABS M+ M*/ D. D.R 2ROT DU< CATCH THROW FREE RESIZE ALLOCATE CS-PICK CS-ROLL GET-CURRENT SET-CURRENT FORTH-WORDLIST GET-ORDER SET-ORDER PREVIOUS SEARCH-WORDLIST WORDLIST FIND ALSO ONLY FORTH DEFINITIONS ORDER -TRAILING /STRING SEARCH COMPARE CMOVE CMOVE> BLANK SLITERAL"),o=r("IF ELSE THEN BEGIN WHILE REPEAT UNTIL RECURSE [IF] [ELSE] [THEN] ?DO DO LOOP +LOOP UNLOOP LEAVE EXIT AGAIN CASE OF ENDOF ENDCASE");function a(e,t){var n;for(n=e.length-1;n>=0;n--)if(e[n].name===t.toUpperCase())return e[n]}const s={name:"forth",startState:function(){return{state:"",base:10,coreWordList:i,immediateWordList:o,wordList:[]}},token:function(e,t){var n;if(e.eatSpace())return null;if(""===t.state){if(e.match(/^(\]|:NONAME)(\s|$)/i))return t.state=" compilation","builtin";if(n=e.match(/^(\:)\s+(\S+)(\s|$)+/))return t.wordList.push({name:n[2].toUpperCase()}),t.state=" compilation","def";if(n=e.match(/^(VARIABLE|2VARIABLE|CONSTANT|2CONSTANT|CREATE|POSTPONE|VALUE|WORD)\s+(\S+)(\s|$)+/i))return t.wordList.push({name:n[2].toUpperCase()}),"def";if(n=e.match(/^(\'|\[\'\])\s+(\S+)(\s|$)+/))return"builtin"}else{if(e.match(/^(\;|\[)(\s)/))return t.state="",e.backUp(1),"builtin";if(e.match(/^(\;|\[)($)/))return t.state="","builtin";if(e.match(/^(POSTPONE)\s+\S+(\s|$)+/))return"builtin"}return(n=e.match(/^(\S+)(\s+|$)/))?void 0!==a(t.wordList,n[1])?"variable":"\\"===n[1]?(e.skipToEnd(),"comment"):void 0!==a(t.coreWordList,n[1])?"builtin":void 0!==a(t.immediateWordList,n[1])?"keyword":"("===n[1]?(e.eatWhile((function(e){return")"!==e})),e.eat(")"),"comment"):".("===n[1]?(e.eatWhile((function(e){return")"!==e})),e.eat(")"),"string"):'S"'===n[1]||'."'===n[1]||'C"'===n[1]?(e.eatWhile((function(e){return'"'!==e})),e.eat('"'),"string"):n[1]-68719476735?"number":"atom":void 0}}},13726:(e,t,n)=>{function r(e){for(var t={},n=0;nu});var i=r(["abstract","accept","allocatable","allocate","array","assign","asynchronous","backspace","bind","block","byte","call","case","class","close","common","contains","continue","cycle","data","deallocate","decode","deferred","dimension","do","elemental","else","encode","end","endif","entry","enumerator","equivalence","exit","external","extrinsic","final","forall","format","function","generic","go","goto","if","implicit","import","include","inquire","intent","interface","intrinsic","module","namelist","non_intrinsic","non_overridable","none","nopass","nullify","open","optional","options","parameter","pass","pause","pointer","print","private","program","protected","public","pure","read","recursive","result","return","rewind","save","select","sequence","stop","subroutine","target","then","to","type","use","value","volatile","where","while","write"]),o=r(["abort","abs","access","achar","acos","adjustl","adjustr","aimag","aint","alarm","all","allocated","alog","amax","amin","amod","and","anint","any","asin","associated","atan","besj","besjn","besy","besyn","bit_size","btest","cabs","ccos","ceiling","cexp","char","chdir","chmod","clog","cmplx","command_argument_count","complex","conjg","cos","cosh","count","cpu_time","cshift","csin","csqrt","ctime","c_funloc","c_loc","c_associated","c_null_ptr","c_null_funptr","c_f_pointer","c_null_char","c_alert","c_backspace","c_form_feed","c_new_line","c_carriage_return","c_horizontal_tab","c_vertical_tab","dabs","dacos","dasin","datan","date_and_time","dbesj","dbesj","dbesjn","dbesy","dbesy","dbesyn","dble","dcos","dcosh","ddim","derf","derfc","dexp","digits","dim","dint","dlog","dlog","dmax","dmin","dmod","dnint","dot_product","dprod","dsign","dsinh","dsin","dsqrt","dtanh","dtan","dtime","eoshift","epsilon","erf","erfc","etime","exit","exp","exponent","extends_type_of","fdate","fget","fgetc","float","floor","flush","fnum","fputc","fput","fraction","fseek","fstat","ftell","gerror","getarg","get_command","get_command_argument","get_environment_variable","getcwd","getenv","getgid","getlog","getpid","getuid","gmtime","hostnm","huge","iabs","iachar","iand","iargc","ibclr","ibits","ibset","ichar","idate","idim","idint","idnint","ieor","ierrno","ifix","imag","imagpart","index","int","ior","irand","isatty","ishft","ishftc","isign","iso_c_binding","is_iostat_end","is_iostat_eor","itime","kill","kind","lbound","len","len_trim","lge","lgt","link","lle","llt","lnblnk","loc","log","logical","long","lshift","lstat","ltime","matmul","max","maxexponent","maxloc","maxval","mclock","merge","move_alloc","min","minexponent","minloc","minval","mod","modulo","mvbits","nearest","new_line","nint","not","or","pack","perror","precision","present","product","radix","rand","random_number","random_seed","range","real","realpart","rename","repeat","reshape","rrspacing","rshift","same_type_as","scale","scan","second","selected_int_kind","selected_real_kind","set_exponent","shape","short","sign","signal","sinh","sin","sleep","sngl","spacing","spread","sqrt","srand","stat","sum","symlnk","system","system_clock","tan","tanh","time","tiny","transfer","transpose","trim","ttynam","ubound","umask","unlink","unpack","verify","xor","zabs","zcos","zexp","zlog","zsin","zsqrt"]),a=r(["c_bool","c_char","c_double","c_double_complex","c_float","c_float_complex","c_funptr","c_int","c_int16_t","c_int32_t","c_int64_t","c_int8_t","c_int_fast16_t","c_int_fast32_t","c_int_fast64_t","c_int_fast8_t","c_int_least16_t","c_int_least32_t","c_int_least64_t","c_int_least8_t","c_intmax_t","c_intptr_t","c_long","c_long_double","c_long_double_complex","c_long_long","c_ptr","c_short","c_signed_char","c_size_t","character","complex","double","integer","logical","real"]),s=/[+\-*&=<>\/\:]/,l=/^\.(and|or|eq|lt|le|gt|ge|ne|not|eqv|neqv)\./i;function c(e,t){if(e.match(l))return"operator";var n,r=e.next();if("!"==r)return e.skipToEnd(),"comment";if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return!o&&i||(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]\(\),]/.test(r))return null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(s.test(r))return e.eatWhile(s),"operator";e.eatWhile(/[\w\$_]/);var c=e.current().toLowerCase();return i.hasOwnProperty(c)?"keyword":o.hasOwnProperty(c)||a.hasOwnProperty(c)?"builtin":"variable"}const u={name:"fortran",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||c)(e,t);return n}}},685:(e,t,n)=>{function r(e){var t=[],n="",r={".abort":"builtin",".align":"builtin",".altmacro":"builtin",".ascii":"builtin",".asciz":"builtin",".balign":"builtin",".balignw":"builtin",".balignl":"builtin",".bundle_align_mode":"builtin",".bundle_lock":"builtin",".bundle_unlock":"builtin",".byte":"builtin",".cfi_startproc":"builtin",".comm":"builtin",".data":"builtin",".def":"builtin",".desc":"builtin",".dim":"builtin",".double":"builtin",".eject":"builtin",".else":"builtin",".elseif":"builtin",".end":"builtin",".endef":"builtin",".endfunc":"builtin",".endif":"builtin",".equ":"builtin",".equiv":"builtin",".eqv":"builtin",".err":"builtin",".error":"builtin",".exitm":"builtin",".extern":"builtin",".fail":"builtin",".file":"builtin",".fill":"builtin",".float":"builtin",".func":"builtin",".global":"builtin",".gnu_attribute":"builtin",".hidden":"builtin",".hword":"builtin",".ident":"builtin",".if":"builtin",".incbin":"builtin",".include":"builtin",".int":"builtin",".internal":"builtin",".irp":"builtin",".irpc":"builtin",".lcomm":"builtin",".lflags":"builtin",".line":"builtin",".linkonce":"builtin",".list":"builtin",".ln":"builtin",".loc":"builtin",".loc_mark_labels":"builtin",".local":"builtin",".long":"builtin",".macro":"builtin",".mri":"builtin",".noaltmacro":"builtin",".nolist":"builtin",".octa":"builtin",".offset":"builtin",".org":"builtin",".p2align":"builtin",".popsection":"builtin",".previous":"builtin",".print":"builtin",".protected":"builtin",".psize":"builtin",".purgem":"builtin",".pushsection":"builtin",".quad":"builtin",".reloc":"builtin",".rept":"builtin",".sbttl":"builtin",".scl":"builtin",".section":"builtin",".set":"builtin",".short":"builtin",".single":"builtin",".size":"builtin",".skip":"builtin",".sleb128":"builtin",".space":"builtin",".stab":"builtin",".string":"builtin",".struct":"builtin",".subsection":"builtin",".symver":"builtin",".tag":"builtin",".text":"builtin",".title":"builtin",".type":"builtin",".uleb128":"builtin",".val":"builtin",".version":"builtin",".vtable_entry":"builtin",".vtable_inherit":"builtin",".warning":"builtin",".weak":"builtin",".weakref":"builtin",".word":"builtin"},i={};function o(e,t){for(var n,r=!1;null!=(n=e.next());){if("/"===n&&r){t.tokenize=null;break}r="*"===n}return"comment"}return"x86"===e?(n="#",i.al="variable",i.ah="variable",i.ax="variable",i.eax="variableName.special",i.rax="variableName.special",i.bl="variable",i.bh="variable",i.bx="variable",i.ebx="variableName.special",i.rbx="variableName.special",i.cl="variable",i.ch="variable",i.cx="variable",i.ecx="variableName.special",i.rcx="variableName.special",i.dl="variable",i.dh="variable",i.dx="variable",i.edx="variableName.special",i.rdx="variableName.special",i.si="variable",i.esi="variableName.special",i.rsi="variableName.special",i.di="variable",i.edi="variableName.special",i.rdi="variableName.special",i.sp="variable",i.esp="variableName.special",i.rsp="variableName.special",i.bp="variable",i.ebp="variableName.special",i.rbp="variableName.special",i.ip="variable",i.eip="variableName.special",i.rip="variableName.special",i.cs="keyword",i.ds="keyword",i.ss="keyword",i.es="keyword",i.fs="keyword",i.gs="keyword"):"arm"!==e&&"armv6"!==e||(n="@",r.syntax="builtin",i.r0="variable",i.r1="variable",i.r2="variable",i.r3="variable",i.r4="variable",i.r5="variable",i.r6="variable",i.r7="variable",i.r8="variable",i.r9="variable",i.r10="variable",i.r11="variable",i.r12="variable",i.sp="variableName.special",i.lr="variableName.special",i.pc="variableName.special",i.r13=i.sp,i.r14=i.lr,i.r15=i.pc,t.push((function(e,t){if("#"===e)return t.eatWhile(/\w/),"number"}))),{name:"gas",startState:function(){return{tokenize:null}},token:function(e,a){if(a.tokenize)return a.tokenize(e,a);if(e.eatSpace())return null;var s,l,c=e.next();if("/"===c&&e.eat("*"))return a.tokenize=o,o(e,a);if(c===n)return e.skipToEnd(),"comment";if('"'===c)return function(e,t){for(var n,r=!1;null!=(n=e.next());){if(n===t&&!r)return!1;r=!r&&"\\"===n}}(e,'"'),"string";if("."===c)return e.eatWhile(/\w/),l=e.current().toLowerCase(),(s=r[l])||null;if("="===c)return e.eatWhile(/\w/),"tag";if("{"===c)return"bracket";if("}"===c)return"bracket";if(/\d/.test(c))return"0"===c&&e.eat("x")?(e.eatWhile(/[0-9a-fA-F]/),"number"):(e.eatWhile(/\d/),"number");if(/\w/.test(c))return e.eatWhile(/\w/),e.eat(":")?"tag":(l=e.current().toLowerCase(),(s=i[l])||null);for(var u=0;ui,gasArm:()=>o});const i=r("x86"),o=r("arm")},52678:(e,t,n)=>{n.r(t),n.d(t,{gherkin:()=>r});const r={name:"gherkin",startState:function(){return{lineNumber:0,tableHeaderLine:!1,allowFeature:!0,allowBackground:!1,allowScenario:!1,allowSteps:!1,allowPlaceholders:!1,allowMultilineArgument:!1,inMultilineString:!1,inMultilineTable:!1,inKeywordLine:!1}},token:function(e,t){if(e.sol()&&(t.lineNumber++,t.inKeywordLine=!1,t.inMultilineTable&&(t.tableHeaderLine=!1,e.match(/\s*\|/,!1)||(t.allowMultilineArgument=!1,t.inMultilineTable=!1))),e.eatSpace(),t.allowMultilineArgument){if(t.inMultilineString)return e.match('"""')?(t.inMultilineString=!1,t.allowMultilineArgument=!1):e.match(/.*/),"string";if(t.inMultilineTable)return e.match(/\|\s*/)?"bracket":(e.match(/[^\|]*/),t.tableHeaderLine?"header":"string");if(e.match('"""'))return t.inMultilineString=!0,"string";if(e.match("|"))return t.inMultilineTable=!0,t.tableHeaderLine=!0,"bracket"}return e.match(/#.*/)?"comment":!t.inKeywordLine&&e.match(/@\S+/)?"tag":!t.inKeywordLine&&t.allowFeature&&e.match(/(\u6a5f\u80fd|\u529f\u80fd|\u30d5\u30a3\u30fc\u30c1\u30e3|\uae30\ub2a5|\u0e42\u0e04\u0e23\u0e07\u0e2b\u0e25\u0e31\u0e01|\u0e04\u0e27\u0e32\u0e21\u0e2a\u0e32\u0e21\u0e32\u0e23\u0e16|\u0e04\u0e27\u0e32\u0e21\u0e15\u0e49\u0e2d\u0e07\u0e01\u0e32\u0e23\u0e17\u0e32\u0e07\u0e18\u0e38\u0e23\u0e01\u0e34\u0e08|\u0cb9\u0cc6\u0c9a\u0ccd\u0c9a\u0cb3|\u0c17\u0c41\u0c23\u0c2e\u0c41|\u0a2e\u0a41\u0a39\u0a3e\u0a02\u0a26\u0a30\u0a3e|\u0a28\u0a15\u0a36 \u0a28\u0a41\u0a39\u0a3e\u0a30|\u0a16\u0a3e\u0a38\u0a40\u0a05\u0a24|\u0930\u0942\u092a \u0932\u0947\u0916|\u0648\u0650\u06cc\u0698\u06af\u06cc|\u062e\u0627\u0635\u064a\u0629|\u05ea\u05db\u05d5\u05e0\u05d4|\u0424\u0443\u043d\u043a\u0446\u0456\u043e\u043d\u0430\u043b|\u0424\u0443\u043d\u043a\u0446\u0438\u044f|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u043e\u0441\u0442|\u0424\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b|\u04ae\u0437\u0435\u043d\u0447\u04d9\u043b\u0435\u043a\u043b\u0435\u043b\u0435\u043a|\u0421\u0432\u043e\u0439\u0441\u0442\u0432\u043e|\u041e\u0441\u043e\u0431\u0438\u043d\u0430|\u041c\u04e9\u043c\u043a\u0438\u043d\u043b\u0435\u043a|\u041c\u043e\u0433\u0443\u045b\u043d\u043e\u0441\u0442|\u039b\u03b5\u03b9\u03c4\u03bf\u03c5\u03c1\u03b3\u03af\u03b1|\u0394\u03c5\u03bd\u03b1\u03c4\u03cc\u03c4\u03b7\u03c4\u03b1|W\u0142a\u015bciwo\u015b\u0107|Vlastnos\u0165|Trajto|T\xednh n\u0103ng|Savyb\u0117|Pretty much|Po\u017eiadavka|Po\u017eadavek|Potrzeba biznesowa|\xd6zellik|Osobina|Ominaisuus|Omadus|OH HAI|Mogu\u0107nost|Mogucnost|Jellemz\u0151|Hw\xe6t|Hwaet|Funzionalit\xe0|Funktionalit\xe9it|Funktionalit\xe4t|Funkcja|Funkcionalnost|Funkcionalit\u0101te|Funkcia|Fungsi|Functionaliteit|Func\u021bionalitate|Func\u0163ionalitate|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalit\xe9|Fitur|F\u012b\u010da|Feature|Eiginleiki|Egenskap|Egenskab|Caracter\xedstica|Caracteristica|Business Need|Aspekt|Arwedd|Ahoy matey!|Ability):/)?(t.allowScenario=!0,t.allowBackground=!0,t.allowPlaceholders=!1,t.allowSteps=!1,t.allowMultilineArgument=!1,t.inKeywordLine=!0,"keyword"):!t.inKeywordLine&&t.allowBackground&&e.match(/(\u80cc\u666f|\ubc30\uacbd|\u0e41\u0e19\u0e27\u0e04\u0e34\u0e14|\u0cb9\u0cbf\u0ca8\u0ccd\u0ca8\u0cc6\u0cb2\u0cc6|\u0c28\u0c47\u0c2a\u0c25\u0c4d\u0c2f\u0c02|\u0a2a\u0a3f\u0a1b\u0a4b\u0a15\u0a5c|\u092a\u0943\u0937\u094d\u0920\u092d\u0942\u092e\u093f|\u0632\u0645\u06cc\u0646\u0647|\u0627\u0644\u062e\u0644\u0641\u064a\u0629|\u05e8\u05e7\u05e2|\u0422\u0430\u0440\u0438\u0445|\u041f\u0440\u0435\u0434\u044b\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u0440\u0435\u0434\u0438\u0441\u0442\u043e\u0440\u0438\u044f|\u041f\u043e\u0437\u0430\u0434\u0438\u043d\u0430|\u041f\u0435\u0440\u0435\u0434\u0443\u043c\u043e\u0432\u0430|\u041e\u0441\u043d\u043e\u0432\u0430|\u041a\u043e\u043d\u0442\u0435\u043a\u0441\u0442|\u041a\u0435\u0440\u0435\u0448|\u03a5\u03c0\u03cc\u03b2\u03b1\u03b8\u03c1\u03bf|Za\u0142o\u017cenia|Yo\-ho\-ho|Tausta|Taust|Situ\u0101cija|Rerefons|Pozadina|Pozadie|Pozad\xed|Osnova|Latar Belakang|Kontext|Konteksts|Kontekstas|Kontekst|H\xe1tt\xe9r|Hannergrond|Grundlage|Ge\xe7mi\u015f|Fundo|Fono|First off|Dis is what went down|Dasar|Contexto|Contexte|Context|Contesto|Cen\xe1rio de Fundo|Cenario de Fundo|Cefndir|B\u1ed1i c\u1ea3nh|Bakgrunnur|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|\xc6r|Aer|Achtergrond):/)?(t.allowPlaceholders=!1,t.allowSteps=!0,t.allowBackground=!1,t.allowMultilineArgument=!1,t.inKeywordLine=!0,"keyword"):!t.inKeywordLine&&t.allowScenario&&e.match(/(\u5834\u666f\u5927\u7db1|\u573a\u666f\u5927\u7eb2|\u5287\u672c\u5927\u7db1|\u5267\u672c\u5927\u7eb2|\u30c6\u30f3\u30d7\u30ec|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8|\u30b7\u30ca\u30ea\u30aa\u30c6\u30f3\u30d7\u30ec|\u30b7\u30ca\u30ea\u30aa\u30a2\u30a6\u30c8\u30e9\u30a4\u30f3|\uc2dc\ub098\ub9ac\uc624 \uac1c\uc694|\u0e2a\u0e23\u0e38\u0e1b\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e42\u0e04\u0e23\u0e07\u0e2a\u0e23\u0e49\u0e32\u0e07\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0cb5\u0cbf\u0cb5\u0cb0\u0ca3\u0cc6|\u0c15\u0c25\u0c28\u0c02|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a30\u0a42\u0a2a \u0a30\u0a47\u0a16\u0a3e|\u0a2a\u0a1f\u0a15\u0a25\u0a3e \u0a22\u0a3e\u0a02\u0a1a\u0a3e|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f \u0930\u0942\u092a\u0930\u0947\u0916\u093e|\u0633\u064a\u0646\u0627\u0631\u064a\u0648 \u0645\u062e\u0637\u0637|\u0627\u0644\u06af\u0648\u06cc \u0633\u0646\u0627\u0631\u06cc\u0648|\u05ea\u05d1\u05e0\u05d9\u05ea \u05ea\u05e8\u05d7\u05d9\u05e9|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439\u043d\u044b\u04a3 \u0442\u04e9\u0437\u0435\u043b\u0435\u0448\u0435|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u0441\u0438|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0456\u044e|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u044f|\u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0430|\u0421\u043a\u0438\u0446\u0430|\u0420\u0430\u043c\u043a\u0430 \u043d\u0430 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u041a\u043e\u043d\u0446\u0435\u043f\u0442|\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03a3\u03b5\u03bd\u03b1\u03c1\u03af\u03bf\u03c5|Wharrimean is|Template Situai|Template Senario|Template Keadaan|Tapausaihio|Szenariogrundriss|Szablon scenariusza|Swa hw\xe6r swa|Swa hwaer swa|Struktura scenarija|Structur\u0103 scenariu|Structura scenariu|Skica|Skenario konsep|Shiver me timbers|Senaryo tasla\u011f\u0131|Schema dello scenario|Scenariomall|Scenariomal|Scenario Template|Scenario Outline|Scenario Amlinellol|Scen\u0101rijs p\u0113c parauga|Scenarijaus \u0161ablonas|Reckon it's like|Raamstsenaarium|Plang vum Szenario|Plan du Sc\xe9nario|Plan du sc\xe9nario|Osnova sc\xe9n\xe1\u0159e|Osnova Scen\xe1ra|N\xe1\u010drt Scen\xe1ru|N\xe1\u010drt Sc\xe9n\xe1\u0159e|N\xe1\u010drt Scen\xe1ra|MISHUN SRSLY|Menggariskan Senario|L\xfdsing D\xe6ma|L\xfdsing Atbur\xf0ar\xe1sar|Konturo de la scenaro|Koncept|Khung t\xecnh hu\u1ed1ng|Khung k\u1ecbch b\u1ea3n|Forgat\xf3k\xf6nyv v\xe1zlat|Esquema do Cen\xe1rio|Esquema do Cenario|Esquema del escenario|Esquema de l'escenari|Esbozo do escenario|Delinea\xe7\xe3o do Cen\xe1rio|Delineacao do Cenario|All y'all|Abstrakt Scenario|Abstract Scenario):/)?(t.allowPlaceholders=!0,t.allowSteps=!0,t.allowMultilineArgument=!1,t.inKeywordLine=!0,"keyword"):t.allowScenario&&e.match(/(\u4f8b\u5b50|\u4f8b|\u30b5\u30f3\u30d7\u30eb|\uc608|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0e0a\u0e38\u0e14\u0e02\u0e2d\u0e07\u0e15\u0e31\u0e27\u0e2d\u0e22\u0e48\u0e32\u0e07|\u0c89\u0ca6\u0cbe\u0cb9\u0cb0\u0ca3\u0cc6\u0c97\u0cb3\u0cc1|\u0c09\u0c26\u0c3e\u0c39\u0c30\u0c23\u0c32\u0c41|\u0a09\u0a26\u0a3e\u0a39\u0a30\u0a28\u0a3e\u0a02|\u0909\u0926\u093e\u0939\u0930\u0923|\u0646\u0645\u0648\u0646\u0647 \u0647\u0627|\u0627\u0645\u062b\u0644\u0629|\u05d3\u05d5\u05d2\u05de\u05d0\u05d5\u05ea|\u04ae\u0440\u043d\u04d9\u043a\u043b\u04d9\u0440|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0458\u0438|\u041f\u0440\u0438\u043c\u0435\u0440\u044b|\u041f\u0440\u0438\u043c\u0435\u0440\u0438|\u041f\u0440\u0438\u043a\u043b\u0430\u0434\u0438|\u041c\u0438\u0441\u043e\u043b\u043b\u0430\u0440|\u041c\u0438\u0441\u0430\u043b\u043b\u0430\u0440|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03b1|\u03a0\u03b1\u03c1\u03b1\u03b4\u03b5\u03af\u03b3\u03bc\u03b1\u03c4\u03b1|You'll wanna|Voorbeelden|Variantai|Tapaukset|Se \xfee|Se the|Se \xf0e|Scenarios|Scenariji|Scenarijai|Przyk\u0142ady|Primjeri|Primeri|P\u0159\xedklady|Pr\xedklady|Piem\u0113ri|P\xe9ld\xe1k|Pavyzd\u017eiai|Paraugs|\xd6rnekler|Juhtumid|Exemplos|Exemples|Exemple|Exempel|EXAMPLZ|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|D\u1eef li\u1ec7u|Dead men tell no tales|D\xe6mi|Contoh|Cen\xe1rios|Cenarios|Beispiller|Beispiele|Atbur\xf0ar\xe1sir):/)?(t.allowPlaceholders=!1,t.allowSteps=!0,t.allowBackground=!1,t.allowMultilineArgument=!0,"keyword"):!t.inKeywordLine&&t.allowScenario&&e.match(/(\u5834\u666f|\u573a\u666f|\u5287\u672c|\u5267\u672c|\u30b7\u30ca\u30ea\u30aa|\uc2dc\ub098\ub9ac\uc624|\u0e40\u0e2b\u0e15\u0e38\u0e01\u0e32\u0e23\u0e13\u0e4c|\u0c95\u0ca5\u0cbe\u0cb8\u0cbe\u0cb0\u0cbe\u0c82\u0cb6|\u0c38\u0c28\u0c4d\u0c28\u0c3f\u0c35\u0c47\u0c36\u0c02|\u0a2a\u0a1f\u0a15\u0a25\u0a3e|\u092a\u0930\u093f\u0926\u0943\u0936\u094d\u092f|\u0633\u064a\u0646\u0627\u0631\u064a\u0648|\u0633\u0646\u0627\u0631\u06cc\u0648|\u05ea\u05e8\u05d7\u05d9\u05e9|\u0421\u0446\u0435\u043d\u0430\u0440\u0456\u0439|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u043e|\u0421\u0446\u0435\u043d\u0430\u0440\u0438\u0439|\u041f\u0440\u0438\u043c\u0435\u0440|\u03a3\u03b5\u03bd\u03ac\u03c1\u03b9\u03bf|T\xecnh hu\u1ed1ng|The thing of it is|Tapaus|Szenario|Swa|Stsenaarium|Skenario|Situai|Senaryo|Senario|Scenaro|Scenariusz|Scenariu|Sc\xe9nario|Scenario|Scenarijus|Scen\u0101rijs|Scenarij|Scenarie|Sc\xe9n\xe1\u0159|Scen\xe1r|Primer|MISHUN|K\u1ecbch b\u1ea3n|Keadaan|Heave to|Forgat\xf3k\xf6nyv|Escenario|Escenari|Cen\xe1rio|Cenario|Awww, look mate|Atbur\xf0ar\xe1s):/)?(t.allowPlaceholders=!1,t.allowSteps=!0,t.allowBackground=!1,t.allowMultilineArgument=!1,t.inKeywordLine=!0,"keyword"):!t.inKeywordLine&&t.allowSteps&&e.match(/(\u90a3\u9ebc|\u90a3\u4e48|\u800c\u4e14|\u7576|\u5f53|\u5e76\u4e14|\u540c\u6642|\u540c\u65f6|\u524d\u63d0|\u5047\u8bbe|\u5047\u8a2d|\u5047\u5b9a|\u5047\u5982|\u4f46\u662f|\u4f46\u3057|\u4e26\u4e14|\u3082\u3057|\u306a\u3089\u3070|\u305f\u3060\u3057|\u3057\u304b\u3057|\u304b\u3064|\ud558\uc9c0\ub9cc|\uc870\uac74|\uba3c\uc800|\ub9cc\uc77c|\ub9cc\uc57d|\ub2e8|\uadf8\ub9ac\uace0|\uadf8\ub7ec\uba74|\u0e41\u0e25\u0e30 |\u0e40\u0e21\u0e37\u0e48\u0e2d |\u0e41\u0e15\u0e48 |\u0e14\u0e31\u0e07\u0e19\u0e31\u0e49\u0e19 |\u0e01\u0e33\u0e2b\u0e19\u0e14\u0e43\u0e2b\u0e49 |\u0cb8\u0ccd\u0ca5\u0cbf\u0ca4\u0cbf\u0caf\u0ca8\u0ccd\u0ca8\u0cc1 |\u0cae\u0ca4\u0ccd\u0ca4\u0cc1 |\u0ca8\u0cbf\u0cd5\u0ca1\u0cbf\u0ca6 |\u0ca8\u0c82\u0ca4\u0cb0 |\u0c86\u0ca6\u0cb0\u0cc6 |\u0c2e\u0c30\u0c3f\u0c2f\u0c41 |\u0c1a\u0c46\u0c2a\u0c4d\u0c2a\u0c2c\u0c21\u0c3f\u0c28\u0c26\u0c3f |\u0c15\u0c3e\u0c28\u0c3f |\u0c08 \u0c2a\u0c30\u0c3f\u0c38\u0c4d\u0c25\u0c3f\u0c24\u0c3f\u0c32\u0c4b |\u0c05\u0c2a\u0c4d\u0c2a\u0c41\u0c21\u0c41 |\u0a2a\u0a30 |\u0a24\u0a26 |\u0a1c\u0a47\u0a15\u0a30 |\u0a1c\u0a3f\u0a35\u0a47\u0a02 \u0a15\u0a3f |\u0a1c\u0a26\u0a4b\u0a02 |\u0a05\u0a24\u0a47 |\u092f\u0926\u093f |\u092a\u0930\u0928\u094d\u0924\u0941 |\u092a\u0930 |\u0924\u092c |\u0924\u0926\u093e |\u0924\u0925\u093e |\u091c\u092c |\u091a\u0942\u0902\u0915\u093f |\u0915\u093f\u0928\u094d\u0924\u0941 |\u0915\u0926\u093e |\u0914\u0930 |\u0905\u0917\u0930 |\u0648 |\u0647\u0646\u06af\u0627\u0645\u06cc |\u0645\u062a\u0649 |\u0644\u0643\u0646 |\u0639\u0646\u062f\u0645\u0627 |\u062b\u0645 |\u0628\u0641\u0631\u0636 |\u0628\u0627 \u0641\u0631\u0636 |\u0627\u0645\u0627 |\u0627\u0630\u0627\u064b |\u0622\u0646\u06af\u0627\u0647 |\u05db\u05d0\u05e9\u05e8 |\u05d5\u05d2\u05dd |\u05d1\u05d4\u05d9\u05e0\u05ea\u05df |\u05d0\u05d6\u05d9 |\u05d0\u05d6 |\u05d0\u05d1\u05dc |\u042f\u043a\u0449\u043e |\u04ba\u04d9\u043c |\u0423\u043d\u0434\u0430 |\u0422\u043e\u0434\u0456 |\u0422\u043e\u0433\u0434\u0430 |\u0422\u043e |\u0422\u0430\u043a\u0436\u0435 |\u0422\u0430 |\u041f\u0443\u0441\u0442\u044c |\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e, \u0449\u043e |\u041f\u0440\u0438\u043f\u0443\u0441\u0442\u0438\u043c\u043e |\u041e\u043d\u0434\u0430 |\u041d\u043e |\u041d\u0435\u0445\u0430\u0439 |\u041d\u04d9\u0442\u0438\u0497\u04d9\u0434\u04d9 |\u041b\u0435\u043a\u0438\u043d |\u041b\u04d9\u043a\u0438\u043d |\u041a\u043e\u043b\u0438 |\u041a\u043e\u0433\u0434\u0430 |\u041a\u043e\u0433\u0430\u0442\u043e |\u041a\u0430\u0434\u0430 |\u041a\u0430\u0434 |\u041a \u0442\u043e\u043c\u0443 \u0436\u0435 |\u0406 |\u0418 |\u0417\u0430\u0434\u0430\u0442\u043e |\u0417\u0430\u0434\u0430\u0442\u0438 |\u0417\u0430\u0434\u0430\u0442\u0435 |\u0415\u0441\u043b\u0438 |\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c |\u0414\u0430\u043d\u043e |\u0414\u0430\u0434\u0435\u043d\u043e |\u0412\u04d9 |\u0412\u0430 |\u0411\u0438\u0440\u043e\u043a |\u04d8\u043c\u043c\u0430 |\u04d8\u0439\u0442\u0438\u043a |\u04d8\u0433\u04d9\u0440 |\u0410\u043c\u043c\u043e |\u0410\u043b\u0438 |\u0410\u043b\u0435 |\u0410\u0433\u0430\u0440 |\u0410 \u0442\u0430\u043a\u043e\u0436 |\u0410 |\u03a4\u03cc\u03c4\u03b5 |\u038c\u03c4\u03b1\u03bd |\u039a\u03b1\u03b9 |\u0394\u03b5\u03b4\u03bf\u03bc\u03ad\u03bd\u03bf\u03c5 |\u0391\u03bb\u03bb\u03ac |\xdeurh |\xdeegar |\xdea \xfee |\xde\xe1 |\xdea |Zatati |Zak\u0142adaj\u0105c |Zadato |Zadate |Zadano |Zadani |Zadan |Za p\u0159edpokladu |Za predpokladu |Youse know when youse got |Youse know like when |Yna |Yeah nah |Y'know |Y |Wun |Wtedy |When y'all |When |Wenn |WEN |wann |Ve |V\xe0 |Und |Un |ugeholl |Too right |Thurh |Th\xec |Then y'all |Then |Tha the |Tha |Tetapi |Tapi |Tak |Tada |Tad |Stel |Soit |Siis |\u0218i |\u015ei |Si |Sed |Se |S\xe5 |Quando |Quand |Quan |Pryd |Potom |Pokud |Pokia\u013e |Per\xf2 |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |Niin |Nh\u01b0ng |N\xe4r |N\xe5r |Mutta |Men |Mas |Maka |Majd |Maj\u0105c |Mais |Maar |m\xe4 |Ma |Lorsque |Lorsqu'|Logo |Let go and haul |Kun |Kuid |Kui |Kiedy |Khi |Ketika |Kemudian |Ke\u010f |Kdy\u017e |Kaj |Kai |Kada |Kad |Je\u017celi |Je\u015bli |Ja |It's just unbelievable |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y'all |Given |Gitt |Gegeven |Gegeben seien |Gegeben sei |Gdy |Gangway! |Fakat |\xc9tant donn\xe9s |Etant donn\xe9s |\xc9tant donn\xe9es |Etant donn\xe9es |\xc9tant donn\xe9e |Etant donn\xe9e |\xc9tant donn\xe9 |Etant donn\xe9 |Et |\xc9s |Entonces |Ent\xf3n |Ent\xe3o |Entao |En |E\u011fer ki |Ef |Eeldades |E |\xd0urh |Duota |Dun |Donita\u0135o |Donat |Donada |Do |Diyelim ki |Diberi |Dengan |Den youse gotta |DEN |De |Dato |Da\u021bi fiind |Da\u0163i fiind |Dati fiind |Dati |Date fiind |Date |Data |Dat fiind |Dar |Dann |dann |Dan |Dados |Dado |Dadas |Dada |\xd0a \xf0e |\xd0a |Cuando |Cho |Cando |C\xe2nd |Cand |Cal |But y'all |But at the end of the day I reckon |BUT |But |Buh |Blimey! |Bi\u1ebft |Bet |Bagi |Aye |awer |Avast! |Atunci |Atesa |At\xe8s |Apabila |Anrhegedig a |Angenommen |And y'all |And |AN |An |an |Amikor |Amennyiben |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Ak |Adott |Ac |Aber |A z\xe1rove\u0148 |A tie\u017e |A taktie\u017e |A tak\xe9 |A |a |7 |\* )/)?(t.inStep=!0,t.allowPlaceholders=!0,t.allowMultilineArgument=!0,t.inKeywordLine=!0,"keyword"):e.match(/"[^"]*"?/)?"string":t.allowPlaceholders&&e.match(/<[^>]*>?/)?"variable":(e.next(),e.eatWhile(/[^@"<#]/),null)}}},36888:(e,t,n)=>{n.d(t,{go:()=>h});var r,i={break:!0,case:!0,chan:!0,const:!0,continue:!0,default:!0,defer:!0,else:!0,fallthrough:!0,for:!0,func:!0,go:!0,goto:!0,if:!0,import:!0,interface:!0,map:!0,package:!0,range:!0,return:!0,select:!0,struct:!0,switch:!0,type:!0,var:!0,bool:!0,byte:!0,complex64:!0,complex128:!0,float32:!0,float64:!0,int8:!0,int16:!0,int32:!0,int64:!0,string:!0,uint8:!0,uint16:!0,uint32:!0,uint64:!0,int:!0,uint:!0,uintptr:!0,error:!0,rune:!0,any:!0,comparable:!0},o={true:!0,false:!0,iota:!0,nil:!0,append:!0,cap:!0,close:!0,complex:!0,copy:!0,delete:!0,imag:!0,len:!0,make:!0,new:!0,panic:!0,print:!0,println:!0,real:!0,recover:!0},a=/[+\-*&^%:=<>!|\/]/;function s(e,t){var n,c=e.next();if('"'==c||"'"==c||"`"==c)return t.tokenize=(n=c,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"`"!=n&&"\\"==r}return(o||!i&&"`"!=n)&&(t.tokenize=s),"string"}),t.tokenize(e,t);if(/[\d\.]/.test(c))return"."==c?e.match(/^[0-9]+([eE][\-+]?[0-9]+)?/):"0"==c?e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^0[0-7]+/):e.match(/^[0-9]*\.?[0-9]*([eE][\-+]?[0-9]+)?/),"number";if(/[\[\]{}\(\),;\:\.]/.test(c))return r=c,null;if("/"==c){if(e.eat("*"))return t.tokenize=l,l(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(a.test(c))return e.eatWhile(a),"operator";e.eatWhile(/[\w\$_\xa1-\uffff]/);var u=e.current();return i.propertyIsEnumerable(u)?("case"!=u&&"default"!=u||(r="case"),"keyword"):o.propertyIsEnumerable(u)?"atom":"variable"}function l(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=s;break}r="*"==n}return"comment"}function c(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function u(e,t,n){return e.context=new c(e.indented,t,n,null,e.context)}function d(e){if(e.context.prev){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}}const h={name:"go",startState:function(e){return{tokenize:null,context:new c(-e,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"case"==n.type&&(n.type="}")),e.eatSpace())return null;r=null;var i=(t.tokenize||s)(e,t);return"comment"==i||(null==n.align&&(n.align=!0),"{"==r?u(t,e.column(),"}"):"["==r?u(t,e.column(),"]"):"("==r?u(t,e.column(),")"):"case"==r?n.type="case":("}"==r&&"}"==n.type||r==n.type)&&d(t),t.startOfLine=!1),i},indent:function(e,t,n){if(e.tokenize!=s&&null!=e.tokenize)return null;var r=e.context,i=t&&t.charAt(0);if("case"==r.type&&/^(?:case|default)\b/.test(t))return r.indented;var o=i==r.type;return r.align?r.column+(o?0:1):r.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s([{}]|case |default\s*:)$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}},64388:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rv});var i,o=r("abstract as assert boolean break byte case catch char class const continue def default do double else enum extends final finally float for goto if implements import in instanceof int interface long native new package private protected public return short static strictfp super switch synchronized threadsafe throw throws trait transient try void volatile while"),a=r("catch class def do else enum finally for if interface switch trait try while"),s=r("return break continue"),l=r("null true false this");function c(e,t){var n=e.next();if('"'==n||"'"==n)return u(n,e,t);if(/[\[\]{}\(\),;\:\.]/.test(n))return i=n,null;if(/\d/.test(n))return e.eatWhile(/[\w\.]/),e.eat(/eE/)&&(e.eat(/\+\-/),e.eatWhile(/\d/)),"number";if("/"==n){if(e.eat("*"))return t.tokenize.push(f),f(e,t);if(e.eat("/"))return e.skipToEnd(),"comment";if(m(t.lastToken,!1))return u(n,e,t)}if("-"==n&&e.eat(">"))return i="->",null;if(/[+\-*&%=<>!?|\/~]/.test(n))return e.eatWhile(/[+\-*&%=<>|~]/),"operator";if(e.eatWhile(/[\w\$_]/),"@"==n)return e.eatWhile(/[\w\$_\.]/),"meta";if("."==t.lastToken)return"property";if(e.eat(":"))return i="proplabel","property";var r=e.current();return l.propertyIsEnumerable(r)?"atom":o.propertyIsEnumerable(r)?(a.propertyIsEnumerable(r)?i="newstatement":s.propertyIsEnumerable(r)&&(i="standalone"),"keyword"):"variable"}function u(e,t,n){var r=!1;if("/"!=e&&t.eat(e)){if(!t.eat(e))return"string";r=!0}function i(t,n){for(var i,o=!1,a=!r;null!=(i=t.next());){if(i==e&&!o){if(!r)break;if(t.match(e+e)){a=!0;break}}if('"'==e&&"$"==i&&!o){if(t.eat("{"))return n.tokenize.push(d()),"string";if(t.match(/^\w/,!1))return n.tokenize.push(h),"string"}o=!o&&"\\"==i}return a&&n.tokenize.pop(),"string"}return n.tokenize.push(i),i(t,n)}function d(){var e=1;function t(t,n){if("}"==t.peek()){if(0==--e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)}else"{"==t.peek()&&e++;return c(t,n)}return t.isBase=!0,t}function h(e,t){var n=e.match(/^(\.|[\w\$_]+)/);return n?"."==n[0]?null:"variable":(t.tokenize.pop(),t.tokenize[t.tokenize.length-1](e,t))}function f(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize.pop();break}r="*"==n}return"comment"}function m(e,t){return!e||"operator"==e||"->"==e||/[\.\[\{\(,;:]/.test(e)||"newstatement"==e||"keyword"==e||"proplabel"==e||"standalone"==e&&!t}function p(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function g(e,t,n){return e.context=new p(e.indented,t,n,null,e.context)}function b(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}c.isBase=!0;const v={name:"groovy",startState:function(e){return{tokenize:[c],context:new p(-e,0,"top",!1),indented:0,startOfLine:!0,lastToken:null}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0,"statement"!=n.type||m(t.lastToken,!0)||(b(t),n=t.context)),e.eatSpace())return null;i=null;var r=t.tokenize[t.tokenize.length-1](e,t);if("comment"==r)return r;if(null==n.align&&(n.align=!0),";"!=i&&":"!=i||"statement"!=n.type)if("->"==i&&"statement"==n.type&&"}"==n.prev.type)b(t),t.context.align=!1;else if("{"==i)g(t,e.column(),"}");else if("["==i)g(t,e.column(),"]");else if("("==i)g(t,e.column(),")");else if("}"==i){for(;"statement"==n.type;)n=b(t);for("}"==n.type&&(n=b(t));"statement"==n.type;)n=b(t)}else i==n.type?b(t):("}"==n.type||"top"==n.type||"statement"==n.type&&"newstatement"==i)&&g(t,e.column(),"statement");else b(t);return t.startOfLine=!1,t.lastToken=i||r,r},indent:function(e,t,n){if(!e.tokenize[e.tokenize.length-1].isBase)return null;var r=t&&t.charAt(0),i=e.context;"statement"!=i.type||m(e.lastToken,!0)||(i=i.prev);var o=r==i.type;return"statement"==i.type?i.indented+("{"==r?0:n.unit):i.align?i.column+(o?0:1):i.indented+(o?0:n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}},15692:(e,t,n)=>{function r(e,t,n){return t(n),n(e,t)}n.r(t),n.d(t,{haskell:()=>v});var i=/[a-z_]/,o=/[A-Z]/,a=/\d/,s=/[0-9A-Fa-f]/,l=/[0-7]/,c=/[a-z_A-Z0-9'\xa1-\uffff]/,u=/[-!#$%&*+.\/<=>?@\\^|~:]/,d=/[(),;[\]`{}]/,h=/[ \t\v\f]/;function f(e,t){if(e.eatWhile(h))return null;var n=e.next();if(d.test(n)){if("{"==n&&e.eat("-")){var f="comment";return e.eat("#")&&(f="meta"),r(e,t,m(f,1))}return null}if("'"==n)return e.eat("\\"),e.next(),e.eat("'")?"string":"error";if('"'==n)return r(e,t,p);if(o.test(n))return e.eatWhile(c),e.eat(".")?"qualifier":"type";if(i.test(n))return e.eatWhile(c),"variable";if(a.test(n)){if("0"==n){if(e.eat(/[xX]/))return e.eatWhile(s),"integer";if(e.eat(/[oO]/))return e.eatWhile(l),"number"}e.eatWhile(a);f="number";return e.match(/^\.\d+/)&&(f="number"),e.eat(/[eE]/)&&(f="number",e.eat(/[-+]/),e.eatWhile(a)),f}return"."==n&&e.eat(".")?"keyword":u.test(n)?"-"==n&&e.eat(/-/)&&(e.eatWhile(/-/),!e.eat(u))?(e.skipToEnd(),"comment"):(e.eatWhile(u),"variable"):"error"}function m(e,t){return 0==t?f:function(n,r){for(var i=t;!n.eol();){var o=n.next();if("{"==o&&n.eat("-"))++i;else if("-"==o&&n.eat("}")&&0==--i)return r(f),e}return r(m(e,i)),e}}function p(e,t){for(;!e.eol();){var n=e.next();if('"'==n)return t(f),"string";if("\\"==n){if(e.eol()||e.eat(h))return t(g),"string";e.eat("&")||e.next()}}return t(f),"error"}function g(e,t){return e.eat("\\")?r(e,t,p):(e.next(),t(f),"error")}var b=function(){var e={};function t(t){return function(){for(var n=0;n","@","~","=>"),t("builtin")("!!","$!","$","&&","+","++","-",".","/","/=","<","<*","<=","<$>","<*>","=<<","==",">",">=",">>",">>=","^","^^","||","*","*>","**"),t("builtin")("Applicative","Bool","Bounded","Char","Double","EQ","Either","Enum","Eq","False","FilePath","Float","Floating","Fractional","Functor","GT","IO","IOError","Int","Integer","Integral","Just","LT","Left","Maybe","Monad","Nothing","Num","Ord","Ordering","Rational","Read","ReadS","Real","RealFloat","RealFrac","Right","Show","ShowS","String","True"),t("builtin")("abs","acos","acosh","all","and","any","appendFile","asTypeOf","asin","asinh","atan","atan2","atanh","break","catch","ceiling","compare","concat","concatMap","const","cos","cosh","curry","cycle","decodeFloat","div","divMod","drop","dropWhile","either","elem","encodeFloat","enumFrom","enumFromThen","enumFromThenTo","enumFromTo","error","even","exp","exponent","fail","filter","flip","floatDigits","floatRadix","floatRange","floor","fmap","foldl","foldl1","foldr","foldr1","fromEnum","fromInteger","fromIntegral","fromRational","fst","gcd","getChar","getContents","getLine","head","id","init","interact","ioError","isDenormalized","isIEEE","isInfinite","isNaN","isNegativeZero","iterate","last","lcm","length","lex","lines","log","logBase","lookup","map","mapM","mapM_","max","maxBound","maximum","maybe","min","minBound","minimum","mod","negate","not","notElem","null","odd","or","otherwise","pi","pred","print","product","properFraction","pure","putChar","putStr","putStrLn","quot","quotRem","read","readFile","readIO","readList","readLn","readParen","reads","readsPrec","realToFrac","recip","rem","repeat","replicate","return","reverse","round","scaleFloat","scanl","scanl1","scanr","scanr1","seq","sequence","sequence_","show","showChar","showList","showParen","showString","shows","showsPrec","significand","signum","sin","sinh","snd","span","splitAt","sqrt","subtract","succ","sum","tail","take","takeWhile","tan","tanh","toEnum","toInteger","toRational","truncate","uncurry","undefined","unlines","until","unwords","unzip","unzip3","userError","words","writeFile","zip","zip3","zipWith","zipWith3"),e}();const v={name:"haskell",startState:function(){return{f:f}},copyState:function(e){return{f:e.f}},token:function(e,t){var n=t.f(e,(function(e){t.f=e})),r=e.current();return b.hasOwnProperty(r)?b[r]:n},languageData:{commentTokens:{line:"--",block:{open:"{-",close:"-}"}}}}},79354:(e,t,n)=>{function r(e){return{type:e,style:"keyword"}}n.r(t),n.d(t,{haxe:()=>ie,hxml:()=>oe});var i,o=r("keyword a"),a=r("keyword b"),s=r("keyword c"),l=r("operator"),c={type:"atom",style:"atom"},u={type:"attribute",style:"attribute"},d=r("typedef"),h={if:o,while:o,else:a,do:a,try:a,return:s,break:s,continue:s,new:s,throw:s,var:r("var"),inline:u,static:u,using:r("import"),public:u,private:u,cast:r("cast"),import:r("import"),macro:r("macro"),function:r("function"),catch:r("catch"),untyped:r("untyped"),callback:r("cb"),for:r("for"),switch:r("switch"),case:r("case"),default:r("default"),in:l,never:r("property_access"),trace:r("trace"),class:d,abstract:d,enum:d,interface:d,typedef:d,extends:d,implements:d,dynamic:d,true:c,false:c,null:c},f=/[+\-*&%=<>!?|]/;function m(e,t,n){return t.tokenize=n,n(e,t)}function p(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t&&!r)return!0;r=!r&&"\\"==n}}function g(e,t,n){return d=e,i=n,t}function b(e,t){var n=e.next();if('"'==n||"'"==n)return m(e,t,(r=n,function(e,t){return p(e,r)&&(t.tokenize=b),g("string","string")}));if(/[\[\]{}\(\),;\:\.]/.test(n))return g(n);if("0"==n&&e.eat(/x/i))return e.eatWhile(/[\da-f]/i),g("number","number");if(/\d/.test(n)||"-"==n&&e.eat(/\d/))return e.match(/^\d*(?:\.\d*(?!\.))?(?:[eE][+\-]?\d+)?/),g("number","number");if(t.reAllowed&&"~"==n&&e.eat(/\//))return p(e,"/"),e.eatWhile(/[gimsu]/),g("regexp","string.special");if("/"==n)return e.eat("*")?m(e,t,v):e.eat("/")?(e.skipToEnd(),g("comment","comment")):(e.eatWhile(f),g("operator",null,e.current()));if("#"==n)return e.skipToEnd(),g("conditional","meta");if("@"==n)return e.eat(/:/),e.eatWhile(/[\w_]/),g("metadata","meta");if(f.test(n))return e.eatWhile(f),g("operator",null,e.current());if(/[A-Z]/.test(n))return e.eatWhile(/[\w_<>]/),g("type","type",i=e.current());e.eatWhile(/[\w_]/);var r,i=e.current(),o=h.propertyIsEnumerable(i)&&h[i];return o&&t.kwAllowed?g(o.type,o.style,i):g("variable","variable",i)}function v(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=b;break}r="*"==n}return g("comment","comment")}var y={atom:!0,number:!0,variable:!0,string:!0,regexp:!0};function k(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function O(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0}function w(e,t){if(/[a-z]/.test(t.charAt(0)))return!1;for(var n=e.importedtypes.length,r=0;r=0;e--)S.cc.push(arguments[e])}function T(){return _.apply(null,arguments),!0}function E(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function $(e){var t=S.state;if(t.context){if(S.marked="def",E(e,t.localVars))return;t.localVars={name:e,next:t.localVars}}else if(t.globalVars){if(E(e,t.globalVars))return;t.globalVars={name:e,next:t.globalVars}}}var A={name:"this",next:null};function C(){S.state.context||(S.state.localVars=A),S.state.context={prev:S.state.context,vars:S.state.localVars}}function P(){S.state.localVars=S.state.context.vars,S.state.context=S.state.context.prev}function R(e,t){var n=function(){var n=S.state;n.lexical=new k(n.indented,S.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function I(){var e=S.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function D(e){return function t(n){return n==e?T():";"==e?_():T(t)}}function z(e){return"@"==e?T(q):"var"==e?T(R("vardef"),Y,D(";"),I):"keyword a"==e?T(R("form"),N,z,I):"keyword b"==e?T(R("form"),z,I):"{"==e?T(R("}"),C,X,I,P):";"==e?T():"attribute"==e?T(Q):"function"==e?T(J):"for"==e?T(R("form"),D("("),R(")"),H,D(")"),I,z,I):"variable"==e?T(R("stat"),U):"switch"==e?T(R("form"),N,R("}","switch"),D("{"),X,I,I):"case"==e?T(N,D(":")):"default"==e?T(D(":")):"catch"==e?T(R("form"),C,D("("),re,D(")"),z,I,P):"import"==e?T(B,D(";")):"typedef"==e?T(F):_(R("stat"),N,D(";"),I)}function N(e){return y.hasOwnProperty(e)||"type"==e?T(M):"function"==e?T(J):"keyword c"==e?T(L):"("==e?T(R(")"),L,D(")"),I,M):"operator"==e?T(N):"["==e?T(R("]"),G(L,"]"),I,M):"{"==e?T(R("}"),G(V,"}"),I,M):T()}function L(e){return e.match(/[;\}\)\],]/)?_():_(N)}function M(e,t){return"operator"==e&&/\+\+|--/.test(t)?T(M):"operator"==e||":"==e?T(N):";"!=e?"("==e?T(R(")"),G(N,")"),I,M):"."==e?T(j,M):"["==e?T(R("]"),N,D("]"),I,M):void 0:void 0}function Q(e){return"attribute"==e?T(Q):"function"==e?T(J):"var"==e?T(Y):void 0}function q(e){return":"==e||"variable"==e?T(q):"("==e?T(R(")"),G(W,")"),I,z):void 0}function W(e){if("variable"==e)return T()}function B(e,t){return"variable"==e&&/[A-Z]/.test(t.charAt(0))?(x(t),T()):"variable"==e||"property"==e||"."==e||"*"==t?T(B):void 0}function F(e,t){return"variable"==e&&/[A-Z]/.test(t.charAt(0))?(x(t),T()):"type"==e&&/[A-Z]/.test(t.charAt(0))?T():void 0}function U(e){return":"==e?T(I,z):_(M,D(";"),I)}function j(e){if("variable"==e)return S.marked="property",T()}function V(e){if("variable"==e&&(S.marked="property"),y.hasOwnProperty(e))return T(D(":"),N)}function G(e,t){function n(r){return","==r?T(e,n):r==t?T():T(D(t))}return function(r){return r==t?T():_(e,n)}}function X(e){return"}"==e?T():_(z,X)}function Y(e,t){return"variable"==e?($(t),T(ee,Z)):T()}function Z(e,t){return"="==t?T(N,Z):","==e?T(Y):void 0}function H(e,t){return"variable"==e?($(t),T(K,N)):_()}function K(e,t){if("in"==t)return T()}function J(e,t){return"variable"==e||"type"==e?($(t),T(J)):"new"==t?T(J):"("==e?T(R(")"),C,G(re,")"),I,ee,z,P):void 0}function ee(e){if(":"==e)return T(te)}function te(e){return"type"==e||"variable"==e?T():"{"==e?T(R("}"),G(ne,"}"),I):void 0}function ne(e){if("variable"==e)return T(ee)}function re(e,t){if("variable"==e)return $(t),T(ee)}P.lex=!0,I.lex=!0;const ie={name:"haxe",startState:function(e){return{tokenize:b,reAllowed:!0,kwAllowed:!0,cc:[],lexical:new k(-e,0,"block",!1),importedtypes:["Int","Float","String","Void","Std","Bool","Dynamic","Array"],context:null,indented:0}},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty("align")||(t.lexical.align=!1),t.indented=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"==d?n:(t.reAllowed=!("operator"!=d&&"keyword c"!=d&&!d.match(/^[\[{}\(,;:]$/)),t.kwAllowed="."!=d,function(e,t,n,r,i){var o=e.cc;for(S.state=e,S.stream=i,S.marked=null,S.cc=o,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((o.length?o.pop():z)(n,r)){for(;o.length&&o[o.length-1].lex;)o.pop()();return S.marked?S.marked:"variable"==n&&O(e,r)?"variableName.local":"variable"==n&&w(e,r)?"variableName.special":t}}(t,n,d,i,e))},indent:function(e,t,n){if(e.tokenize!=b)return 0;var r=t&&t.charAt(0),i=e.lexical;"stat"==i.type&&"}"==r&&(i=i.prev);var o=i.type,a=r==o;return"vardef"==o?i.indented+4:"form"==o&&"{"==r?i.indented:"stat"==o||"form"==o?i.indented+n.unit:"switch"!=i.info||a?i.align?i.column+(a?0:1):i.indented+(a?0:n.unit):i.indented+(/^(?:case|default)\b/.test(t)?n.unit:2*n.unit)},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}},oe={name:"hxml",startState:function(){return{define:!1,inString:!1}},token:function(e,t){var n=e.peek(),r=e.sol();if("#"==n)return e.skipToEnd(),"comment";if(r&&"-"==n){var i="variable-2";return e.eat(/-/),"-"==e.peek()&&(e.eat(/-/),i="keyword a"),"D"==e.peek()&&(e.eat(/[D]/),i="keyword c",t.define=!0),e.eatWhile(/[A-Z]/i),i}n=e.peek();return 0==t.inString&&"'"==n&&(t.inString=!0,e.next()),1==t.inString?(e.skipTo("'")||e.skipToEnd(),"'"==e.peek()&&(e.next(),t.inString=!1),"string"):(e.next(),null)},languageData:{commentTokens:{line:"#"}}}},93790:(e,t,n)=>{function r(e,t){return e.skipToEnd(),t.cur=c,"error"}function i(e,t){return e.match(/^HTTP\/\d\.\d/)?(t.cur=o,"keyword"):e.match(/^[A-Z]+/)&&/[ \t]/.test(e.peek())?(t.cur=s,"keyword"):r(e,t)}function o(e,t){var n=e.match(/^\d+/);if(!n)return r(e,t);t.cur=a;var i=Number(n[0]);return i>=100&&i<400?"atom":"error"}function a(e,t){return e.skipToEnd(),t.cur=c,null}function s(e,t){return e.eatWhile(/\S/),t.cur=l,"string.special"}function l(e,t){return e.match(/^HTTP\/\d\.\d$/)?(t.cur=c,"keyword"):r(e,t)}function c(e){return e.sol()&&!e.eat(/[ \t]/)?e.match(/^.*?:/)?"atom":(e.skipToEnd(),"error"):(e.skipToEnd(),"string")}function u(e){return e.skipToEnd(),null}n.r(t),n.d(t,{http:()=>d});const d={name:"http",token:function(e,t){var n=t.cur;return n!=c&&n!=u&&e.eatSpace()?null:n(e,t)},blankLine:function(e){e.cur=u},startState:function(){return{cur:i}}}},58219:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}n.r(t),n.d(t,{idl:()=>d});var i=["a_correlate","abs","acos","adapt_hist_equal","alog","alog2","alog10","amoeba","annotate","app_user_dir","app_user_dir_query","arg_present","array_equal","array_indices","arrow","ascii_template","asin","assoc","atan","axis","axis","bandpass_filter","bandreject_filter","barplot","bar_plot","beseli","beselj","beselk","besely","beta","biginteger","bilinear","bin_date","binary_template","bindgen","binomial","bit_ffs","bit_population","blas_axpy","blk_con","boolarr","boolean","boxplot","box_cursor","breakpoint","broyden","bubbleplot","butterworth","bytarr","byte","byteorder","bytscl","c_correlate","calendar","caldat","call_external","call_function","call_method","call_procedure","canny","catch","cd","cdf","ceil","chebyshev","check_math","chisqr_cvf","chisqr_pdf","choldc","cholsol","cindgen","cir_3pnt","clipboard","close","clust_wts","cluster","cluster_tree","cmyk_convert","code_coverage","color_convert","color_exchange","color_quan","color_range_map","colorbar","colorize_sample","colormap_applicable","colormap_gradient","colormap_rotation","colortable","comfit","command_line_args","common","compile_opt","complex","complexarr","complexround","compute_mesh_normals","cond","congrid","conj","constrained_min","contour","contour","convert_coord","convol","convol_fft","coord2to3","copy_lun","correlate","cos","cosh","cpu","cramer","createboxplotdata","create_cursor","create_struct","create_view","crossp","crvlength","ct_luminance","cti_test","cursor","curvefit","cv_coord","cvttobm","cw_animate","cw_animate_getp","cw_animate_load","cw_animate_run","cw_arcball","cw_bgroup","cw_clr_index","cw_colorsel","cw_defroi","cw_field","cw_filesel","cw_form","cw_fslider","cw_light_editor","cw_light_editor_get","cw_light_editor_set","cw_orient","cw_palette_editor","cw_palette_editor_get","cw_palette_editor_set","cw_pdmenu","cw_rgbslider","cw_tmpl","cw_zoom","db_exists","dblarr","dcindgen","dcomplex","dcomplexarr","define_key","define_msgblk","define_msgblk_from_file","defroi","defsysv","delvar","dendro_plot","dendrogram","deriv","derivsig","determ","device","dfpmin","diag_matrix","dialog_dbconnect","dialog_message","dialog_pickfile","dialog_printersetup","dialog_printjob","dialog_read_image","dialog_write_image","dictionary","digital_filter","dilate","dindgen","dissolve","dist","distance_measure","dlm_load","dlm_register","doc_library","double","draw_roi","edge_dog","efont","eigenql","eigenvec","ellipse","elmhes","emboss","empty","enable_sysrtn","eof","eos","erase","erf","erfc","erfcx","erode","errorplot","errplot","estimator_filter","execute","exit","exp","expand","expand_path","expint","extract","extract_slice","f_cvf","f_pdf","factorial","fft","file_basename","file_chmod","file_copy","file_delete","file_dirname","file_expand_path","file_gunzip","file_gzip","file_info","file_lines","file_link","file_mkdir","file_move","file_poll_input","file_readlink","file_same","file_search","file_tar","file_test","file_untar","file_unzip","file_which","file_zip","filepath","findgen","finite","fix","flick","float","floor","flow3","fltarr","flush","format_axis_values","forward_function","free_lun","fstat","fulstr","funct","function","fv_test","fx_root","fz_roots","gamma","gamma_ct","gauss_cvf","gauss_pdf","gauss_smooth","gauss2dfit","gaussfit","gaussian_function","gaussint","get_drive_list","get_dxf_objects","get_kbrd","get_login_info","get_lun","get_screen_size","getenv","getwindows","greg2jul","grib","grid_input","grid_tps","grid3","griddata","gs_iter","h_eq_ct","h_eq_int","hanning","hash","hdf","hdf5","heap_free","heap_gc","heap_nosave","heap_refcount","heap_save","help","hilbert","hist_2d","hist_equal","histogram","hls","hough","hqr","hsv","i18n_multibytetoutf8","i18n_multibytetowidechar","i18n_utf8tomultibyte","i18n_widechartomultibyte","ibeta","icontour","iconvertcoord","idelete","identity","idl_base64","idl_container","idl_validname","idlexbr_assistant","idlitsys_createtool","idlunit","iellipse","igamma","igetcurrent","igetdata","igetid","igetproperty","iimage","image","image_cont","image_statistics","image_threshold","imaginary","imap","indgen","int_2d","int_3d","int_tabulated","intarr","interpol","interpolate","interval_volume","invert","ioctl","iopen","ir_filter","iplot","ipolygon","ipolyline","iputdata","iregister","ireset","iresolve","irotate","isa","isave","iscale","isetcurrent","isetproperty","ishft","isocontour","isosurface","isurface","itext","itranslate","ivector","ivolume","izoom","journal","json_parse","json_serialize","jul2greg","julday","keyword_set","krig2d","kurtosis","kw_test","l64indgen","la_choldc","la_cholmprove","la_cholsol","la_determ","la_eigenproblem","la_eigenql","la_eigenvec","la_elmhes","la_gm_linear_model","la_hqr","la_invert","la_least_square_equality","la_least_squares","la_linear_equation","la_ludc","la_lumprove","la_lusol","la_svd","la_tridc","la_trimprove","la_triql","la_trired","la_trisol","label_date","label_region","ladfit","laguerre","lambda","lambdap","lambertw","laplacian","least_squares_filter","leefilt","legend","legendre","linbcg","lindgen","linfit","linkimage","list","ll_arc_distance","lmfit","lmgr","lngamma","lnp_test","loadct","locale_get","logical_and","logical_or","logical_true","lon64arr","lonarr","long","long64","lsode","lu_complex","ludc","lumprove","lusol","m_correlate","machar","make_array","make_dll","make_rt","map","mapcontinents","mapgrid","map_2points","map_continents","map_grid","map_image","map_patch","map_proj_forward","map_proj_image","map_proj_info","map_proj_init","map_proj_inverse","map_set","matrix_multiply","matrix_power","max","md_test","mean","meanabsdev","mean_filter","median","memory","mesh_clip","mesh_decimate","mesh_issolid","mesh_merge","mesh_numtriangles","mesh_obj","mesh_smooth","mesh_surfacearea","mesh_validate","mesh_volume","message","min","min_curve_surf","mk_html_help","modifyct","moment","morph_close","morph_distance","morph_gradient","morph_hitormiss","morph_open","morph_thin","morph_tophat","multi","n_elements","n_params","n_tags","ncdf","newton","noise_hurl","noise_pick","noise_scatter","noise_slur","norm","obj_class","obj_destroy","obj_hasmethod","obj_isa","obj_new","obj_valid","objarr","on_error","on_ioerror","online_help","openr","openu","openw","oplot","oploterr","orderedhash","p_correlate","parse_url","particle_trace","path_cache","path_sep","pcomp","plot","plot3d","plot","plot_3dbox","plot_field","ploterr","plots","polar_contour","polar_surface","polyfill","polyshade","pnt_line","point_lun","polarplot","poly","poly_2d","poly_area","poly_fit","polyfillv","polygon","polyline","polywarp","popd","powell","pref_commit","pref_get","pref_set","prewitt","primes","print","printf","printd","pro","product","profile","profiler","profiles","project_vol","ps_show_fonts","psafm","pseudo","ptr_free","ptr_new","ptr_valid","ptrarr","pushd","qgrid3","qhull","qromb","qromo","qsimp","query_*","query_ascii","query_bmp","query_csv","query_dicom","query_gif","query_image","query_jpeg","query_jpeg2000","query_mrsid","query_pict","query_png","query_ppm","query_srf","query_tiff","query_video","query_wav","r_correlate","r_test","radon","randomn","randomu","ranks","rdpix","read","readf","read_ascii","read_binary","read_bmp","read_csv","read_dicom","read_gif","read_image","read_interfile","read_jpeg","read_jpeg2000","read_mrsid","read_pict","read_png","read_ppm","read_spr","read_srf","read_sylk","read_tiff","read_video","read_wav","read_wave","read_x11_bitmap","read_xwd","reads","readu","real_part","rebin","recall_commands","recon3","reduce_colors","reform","region_grow","register_cursor","regress","replicate","replicate_inplace","resolve_all","resolve_routine","restore","retall","return","reverse","rk4","roberts","rot","rotate","round","routine_filepath","routine_info","rs_test","s_test","save","savgol","scale3","scale3d","scatterplot","scatterplot3d","scope_level","scope_traceback","scope_varfetch","scope_varname","search2d","search3d","sem_create","sem_delete","sem_lock","sem_release","set_plot","set_shading","setenv","sfit","shade_surf","shade_surf_irr","shade_volume","shift","shift_diff","shmdebug","shmmap","shmunmap","shmvar","show3","showfont","signum","simplex","sin","sindgen","sinh","size","skewness","skip_lun","slicer3","slide_image","smooth","sobel","socket","sort","spawn","sph_4pnt","sph_scat","spher_harm","spl_init","spl_interp","spline","spline_p","sprsab","sprsax","sprsin","sprstp","sqrt","standardize","stddev","stop","strarr","strcmp","strcompress","streamline","streamline","stregex","stretch","string","strjoin","strlen","strlowcase","strmatch","strmessage","strmid","strpos","strput","strsplit","strtrim","struct_assign","struct_hide","strupcase","surface","surface","surfr","svdc","svdfit","svsol","swap_endian","swap_endian_inplace","symbol","systime","t_cvf","t_pdf","t3d","tag_names","tan","tanh","tek_color","temporary","terminal_size","tetra_clip","tetra_surface","tetra_volume","text","thin","thread","threed","tic","time_test2","timegen","timer","timestamp","timestamptovalues","tm_test","toc","total","trace","transpose","tri_surf","triangulate","trigrid","triql","trired","trisol","truncate_lun","ts_coef","ts_diff","ts_fcast","ts_smooth","tv","tvcrs","tvlct","tvrd","tvscl","typename","uindgen","uint","uintarr","ul64indgen","ulindgen","ulon64arr","ulonarr","ulong","ulong64","uniq","unsharp_mask","usersym","value_locate","variance","vector","vector_field","vel","velovect","vert_t3d","voigt","volume","voronoi","voxel_proj","wait","warp_tri","watershed","wdelete","wf_draw","where","widget_base","widget_button","widget_combobox","widget_control","widget_displaycontextmenu","widget_draw","widget_droplist","widget_event","widget_info","widget_label","widget_list","widget_propertysheet","widget_slider","widget_tab","widget_table","widget_text","widget_tree","widget_tree_move","widget_window","wiener_filter","window","window","write_bmp","write_csv","write_gif","write_image","write_jpeg","write_jpeg2000","write_nrif","write_pict","write_png","write_ppm","write_spr","write_srf","write_sylk","write_tiff","write_video","write_wav","write_wave","writeu","wset","wshow","wtn","wv_applet","wv_cwt","wv_cw_wavelet","wv_denoise","wv_dwt","wv_fn_coiflet","wv_fn_daubechies","wv_fn_gaussian","wv_fn_haar","wv_fn_morlet","wv_fn_paul","wv_fn_symlet","wv_import_data","wv_import_wavelet","wv_plot3d_wps","wv_plot_multires","wv_pwt","wv_tool_denoise","xbm_edit","xdisplayfile","xdxf","xfont","xinteranimate","xloadct","xmanager","xmng_tmpl","xmtool","xobjview","xobjview_rotate","xobjview_write_image","xpalette","xpcolor","xplot3d","xregistered","xroi","xsq_test","xsurface","xvaredit","xvolume","xvolume_rotate","xvolume_write_image","xyouts","zlib_compress","zlib_uncompress","zoom","zoom_24"],o=r(i),a=["begin","end","endcase","endfor","endwhile","endif","endrep","endforeach","break","case","continue","for","foreach","goto","if","then","else","repeat","until","switch","while","do","pro","function"],s=r(a),l=new RegExp("^[_a-z\xa1-\uffff][_a-z0-9\xa1-\uffff]*","i"),c=/[+\-*&=<>\/@#~$]/,u=new RegExp("(and|or|eq|lt|le|gt|ge|ne|not)","i");const d={name:"idl",token:function(e){return function(e){if(e.eatSpace())return null;if(e.match(";"))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(s)?"keyword":e.match(o)?"builtin":e.match(l)?"variable":e.match(c)||e.match(u)?"operator":(e.next(),null)}(e)},languageData:{autocomplete:i.concat(a)}}},88437:(e,t,n)=>{function r(e){var t,n,r=e.statementIndent,i=e.jsonld,o=e.json||i,a=e.typescript,s=e.wordCharacters||/[\w$\xa1-\uffff]/,l=function(){function e(e){return{type:e,style:"keyword"}}var t=e("keyword a"),n=e("keyword b"),r=e("keyword c"),i=e("keyword d"),o=e("operator"),a={type:"atom",style:"atom"};return{if:e("if"),while:t,with:t,else:n,do:n,try:n,finally:n,return:i,break:i,continue:i,new:e("new"),delete:r,void:r,throw:r,debugger:e("debugger"),var:e("var"),const:e("var"),let:e("var"),function:e("function"),catch:e("catch"),for:e("for"),switch:e("switch"),case:e("case"),default:e("default"),in:o,typeof:o,instanceof:o,true:a,false:a,null:a,undefined:a,NaN:a,Infinity:a,this:e("this"),class:e("class"),super:e("atom"),yield:r,export:e("export"),import:e("import"),extends:r,await:r}}(),c=/[+\-*&%=<>!?|~^@]/,u=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)"/;function d(e,r,i){return t=e,n=i,r}function h(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){var r,o=!1;if(i&&"@"==e.peek()&&e.match(u))return t.tokenize=h,d("jsonld-keyword","meta");for(;null!=(r=e.next())&&(r!=n||o);)o=!o&&"\\"==r;return o||(t.tokenize=h),d("string","string")}),t.tokenize(e,t);if("."==r&&e.match(/^\d[\d_]*(?:[eE][+\-]?[\d_]+)?/))return d("number","number");if("."==r&&e.match(".."))return d("spread","meta");if(/[\[\]{}\(\),;\:\.]/.test(r))return d(r);if("="==r&&e.eat(">"))return d("=>","operator");if("0"==r&&e.match(/^(?:x[\dA-Fa-f_]+|o[0-7_]+|b[01_]+)n?/))return d("number","number");if(/\d/.test(r))return e.match(/^[\d_]*(?:n|(?:\.[\d_]*)?(?:[eE][+\-]?[\d_]+)?)?/),d("number","number");if("/"==r)return e.eat("*")?(t.tokenize=f,f(e,t)):e.eat("/")?(e.skipToEnd(),d("comment","comment")):function(e,t,n){return t.tokenize==h&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\[{}\(,;:]|=>)$/.test(t.lastType)||"quasi"==t.lastType&&/\{\s*$/.test(e.string.slice(0,e.pos-(n||0)))}(e,t,1)?(function(e){for(var t,n=!1,r=!1;null!=(t=e.next());){if(!n){if("/"==t&&!r)return;"["==t?r=!0:r&&"]"==t&&(r=!1)}n=!n&&"\\"==t}}(e),e.match(/^\b(([gimyus])(?![gimyus]*\2))+\b/),d("regexp","string.special")):(e.eat("="),d("operator","operator",e.current()));if("`"==r)return t.tokenize=m,m(e,t);if("#"==r&&"!"==e.peek())return e.skipToEnd(),d("meta","meta");if("#"==r&&e.eatWhile(s))return d("variable","property");if("<"==r&&e.match("!--")||"-"==r&&e.match("->")&&!/\S/.test(e.string.slice(0,e.start)))return e.skipToEnd(),d("comment","comment");if(c.test(r))return">"==r&&t.lexical&&">"==t.lexical.type||(e.eat("=")?"!"!=r&&"="!=r||e.eat("="):/[<>*+\-|&?]/.test(r)&&(e.eat(r),">"==r&&e.eat(r))),"?"==r&&e.eat(".")?d("."):d("operator","operator",e.current());if(s.test(r)){e.eatWhile(s);var o=e.current();if("."!=t.lastType){if(l.propertyIsEnumerable(o)){var a=l[o];return d(a.type,a.style,o)}if("async"==o&&e.match(/^(\s|\/\*([^*]|\*(?!\/))*?\*\/)*[\[\(\w]/,!1))return d("async","keyword",o)}return d("variable","variable",o)}}function f(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=h;break}r="*"==n}return d("comment","comment")}function m(e,t){for(var n,r=!1;null!=(n=e.next());){if(!r&&("`"==n||"$"==n&&e.eat("{"))){t.tokenize=h;break}r=!r&&"\\"==n}return d("quasi","string.special",e.current())}var p="([{}])";function g(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var n=e.string.indexOf("=>",e.start);if(!(n<0)){if(a){var r=/:\s*(?:\w+(?:<[^>]*>|\[\])?|\{[^}]*\})\s*$/.exec(e.string.slice(e.start,n));r&&(n=r.index)}for(var i=0,o=!1,l=n-1;l>=0;--l){var c=e.string.charAt(l),u=p.indexOf(c);if(u>=0&&u<3){if(!i){++l;break}if(0==--i){"("==c&&(o=!0);break}}else if(u>=3&&u<6)++i;else if(s.test(c))o=!0;else if(/["'\/`]/.test(c))for(;;--l){if(0==l)return;if(e.string.charAt(l-1)==c&&"\\"!=e.string.charAt(l-2)){l--;break}}else if(o&&!i){++l;break}}o&&!i&&(t.fatArrowAt=l)}}var b={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,import:!0,"jsonld-keyword":!0};function v(e,t,n,r,i,o){this.indented=e,this.column=t,this.type=n,this.prev=i,this.info=o,null!=r&&(this.align=r)}function y(e,t){for(var n=e.localVars;n;n=n.next)if(n.name==t)return!0;for(var r=e.context;r;r=r.prev)for(n=r.vars;n;n=n.next)if(n.name==t)return!0}var k={state:null,column:null,marked:null,cc:null};function O(){for(var e=arguments.length-1;e>=0;e--)k.cc.push(arguments[e])}function w(){return O.apply(null,arguments),!0}function x(e,t){for(var n=t;n;n=n.next)if(n.name==e)return!0;return!1}function S(t){var n=k.state;if(k.marked="def",n.context)if("var"==n.lexical.info&&n.context&&n.context.block){var r=_(t,n.context);if(null!=r)return void(n.context=r)}else if(!x(t,n.localVars))return void(n.localVars=new $(t,n.localVars));e.globalVars&&!x(t,n.globalVars)&&(n.globalVars=new $(t,n.globalVars))}function _(e,t){if(t){if(t.block){var n=_(e,t.prev);return n?n==t.prev?t:new E(n,t.vars,!0):null}return x(e,t.vars)?t:new E(t.prev,new $(e,t.vars),!1)}return null}function T(e){return"public"==e||"private"==e||"protected"==e||"abstract"==e||"readonly"==e}function E(e,t,n){this.prev=e,this.vars=t,this.block=n}function $(e,t){this.name=e,this.next=t}var A=new $("this",new $("arguments",null));function C(){k.state.context=new E(k.state.context,k.state.localVars,!1),k.state.localVars=A}function P(){k.state.context=new E(k.state.context,k.state.localVars,!0),k.state.localVars=null}function R(){k.state.localVars=k.state.context.vars,k.state.context=k.state.context.prev}function I(e,t){var n=function(){var n=k.state,r=n.indented;if("stat"==n.lexical.type)r=n.lexical.indented;else for(var i=n.lexical;i&&")"==i.type&&i.align;i=i.prev)r=i.indented;n.lexical=new v(r,k.stream.column(),e,null,n.lexical,t)};return n.lex=!0,n}function D(){var e=k.state;e.lexical.prev&&(")"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function z(e){return function t(n){return n==e?w():";"==e||"}"==n||")"==n||"]"==n?O():w(t)}}function N(e,t){return"var"==e?w(I("vardef",t),ke,z(";"),D):"keyword a"==e?w(I("form"),q,N,D):"keyword b"==e?w(I("form"),N,D):"keyword d"==e?k.stream.match(/^\s*$/,!1)?w():w(I("stat"),B,z(";"),D):"debugger"==e?w(z(";")):"{"==e?w(I("}"),P,ie,D,R):";"==e?w():"if"==e?("else"==k.state.lexical.info&&k.state.cc[k.state.cc.length-1]==D&&k.state.cc.pop()(),w(I("form"),q,N,D,Te)):"function"==e?w(Ce):"for"==e?w(I("form"),P,Ee,N,R,D):"class"==e||a&&"interface"==t?(k.marked="keyword",w(I("form","class"==e?e:t),ze,D)):"variable"==e?a&&"declare"==t?(k.marked="keyword",w(N)):a&&("module"==t||"enum"==t||"type"==t)&&k.stream.match(/^\s*\w/,!1)?(k.marked="keyword","enum"==t?w(Ge):"type"==t?w(Re,z("operator"),ce,z(";")):w(I("form"),Oe,z("{"),I("}"),ie,D,D)):a&&"namespace"==t?(k.marked="keyword",w(I("form"),M,N,D)):a&&"abstract"==t?(k.marked="keyword",w(N)):w(I("stat"),H):"switch"==e?w(I("form"),q,z("{"),I("}","switch"),P,ie,D,D,R):"case"==e?w(M,z(":")):"default"==e?w(z(":")):"catch"==e?w(I("form"),C,L,N,D,R):"export"==e?w(I("stat"),Qe,D):"import"==e?w(I("stat"),We,D):"async"==e?w(N):"@"==t?w(M,N):O(I("stat"),M,z(";"),D)}function L(e){if("("==e)return w(Ie,z(")"))}function M(e,t){return W(e,t,!1)}function Q(e,t){return W(e,t,!0)}function q(e){return"("!=e?O():w(I(")"),B,z(")"),D)}function W(e,t,n){if(k.state.fatArrowAt==k.stream.start){var r=n?X:G;if("("==e)return w(C,I(")"),ne(Ie,")"),D,z("=>"),r,R);if("variable"==e)return O(C,Oe,z("=>"),r,R)}var i=n?U:F;return b.hasOwnProperty(e)?w(i):"function"==e?w(Ce,i):"class"==e||a&&"interface"==t?(k.marked="keyword",w(I("form"),De,D)):"keyword c"==e||"async"==e?w(n?Q:M):"("==e?w(I(")"),B,z(")"),D,i):"operator"==e||"spread"==e?w(n?Q:M):"["==e?w(I("]"),Ve,D,i):"{"==e?re(J,"}",null,i):"quasi"==e?O(j,i):"new"==e?w(function(e){return function(t){return"."==t?w(e?Z:Y):"variable"==t&&a?w(be,e?U:F):O(e?Q:M)}}(n)):w()}function B(e){return e.match(/[;\}\)\],]/)?O():O(M)}function F(e,t){return","==e?w(B):U(e,t,!1)}function U(e,t,n){var r=0==n?F:U,i=0==n?M:Q;return"=>"==e?w(C,n?X:G,R):"operator"==e?/\+\+|--/.test(t)||a&&"!"==t?w(r):a&&"<"==t&&k.stream.match(/^([^<>]|<[^<>]*>)*>\s*\(/,!1)?w(I(">"),ne(ce,">"),D,r):"?"==t?w(M,z(":"),i):w(i):"quasi"==e?O(j,r):";"!=e?"("==e?re(Q,")","call",r):"."==e?w(K,r):"["==e?w(I("]"),B,z("]"),D,r):a&&"as"==t?(k.marked="keyword",w(ce,r)):"regexp"==e?(k.state.lastType=k.marked="operator",k.stream.backUp(k.stream.pos-k.stream.start-1),w(i)):void 0:void 0}function j(e,t){return"quasi"!=e?O():"${"!=t.slice(t.length-2)?w(j):w(B,V)}function V(e){if("}"==e)return k.marked="string.special",k.state.tokenize=m,w(j)}function G(e){return g(k.stream,k.state),O("{"==e?N:M)}function X(e){return g(k.stream,k.state),O("{"==e?N:Q)}function Y(e,t){if("target"==t)return k.marked="keyword",w(F)}function Z(e,t){if("target"==t)return k.marked="keyword",w(U)}function H(e){return":"==e?w(D,N):O(F,z(";"),D)}function K(e){if("variable"==e)return k.marked="property",w()}function J(e,t){return"async"==e?(k.marked="property",w(J)):"variable"==e||"keyword"==k.style?(k.marked="property","get"==t||"set"==t?w(ee):(a&&k.state.fatArrowAt==k.stream.start&&(n=k.stream.match(/^\s*:\s*/,!1))&&(k.state.fatArrowAt=k.stream.pos+n[0].length),w(te))):"number"==e||"string"==e?(k.marked=i?"property":k.style+" property",w(te)):"jsonld-keyword"==e?w(te):a&&T(t)?(k.marked="keyword",w(J)):"["==e?w(M,oe,z("]"),te):"spread"==e?w(Q,te):"*"==t?(k.marked="keyword",w(J)):":"==e?O(te):void 0;var n}function ee(e){return"variable"!=e?O(te):(k.marked="property",w(Ce))}function te(e){return":"==e?w(Q):"("==e?O(Ce):void 0}function ne(e,t,n){function r(i,o){if(n?n.indexOf(i)>-1:","==i){var a=k.state.lexical;return"call"==a.info&&(a.pos=(a.pos||0)+1),w((function(n,r){return n==t||r==t?O():O(e)}),r)}return i==t||o==t?w():n&&n.indexOf(";")>-1?O(e):w(z(t))}return function(n,i){return n==t||i==t?w():O(e,r)}}function re(e,t,n){for(var r=3;r"),ce):"quasi"==e?O(fe,ge):void 0}function ue(e){if("=>"==e)return w(ce)}function de(e){return e.match(/[\}\)\]]/)?w():","==e||";"==e?w(de):O(he,de)}function he(e,t){return"variable"==e||"keyword"==k.style?(k.marked="property",w(he)):"?"==t||"number"==e||"string"==e?w(he):":"==e?w(ce):"["==e?w(z("variable"),ae,z("]"),he):"("==e?O(Pe,he):e.match(/[;\}\)\],]/)?void 0:w()}function fe(e,t){return"quasi"!=e?O():"${"!=t.slice(t.length-2)?w(fe):w(ce,me)}function me(e){if("}"==e)return k.marked="string.special",k.state.tokenize=m,w(fe)}function pe(e,t){return"variable"==e&&k.stream.match(/^\s*[?:]/,!1)||"?"==t?w(pe):":"==e?w(ce):"spread"==e?w(pe):O(ce)}function ge(e,t){return"<"==t?w(I(">"),ne(ce,">"),D,ge):"|"==t||"."==e||"&"==t?w(ce):"["==e?w(ce,z("]"),ge):"extends"==t||"implements"==t?(k.marked="keyword",w(ce)):"?"==t?w(ce,z(":"),ce):void 0}function be(e,t){if("<"==t)return w(I(">"),ne(ce,">"),D,ge)}function ve(){return O(ce,ye)}function ye(e,t){if("="==t)return w(ce)}function ke(e,t){return"enum"==t?(k.marked="keyword",w(Ge)):O(Oe,oe,Se,_e)}function Oe(e,t){return a&&T(t)?(k.marked="keyword",w(Oe)):"variable"==e?(S(t),w()):"spread"==e?w(Oe):"["==e?re(xe,"]"):"{"==e?re(we,"}"):void 0}function we(e,t){return"variable"!=e||k.stream.match(/^\s*:/,!1)?("variable"==e&&(k.marked="property"),"spread"==e?w(Oe):"}"==e?O():"["==e?w(M,z("]"),z(":"),we):w(z(":"),Oe,Se)):(S(t),w(Se))}function xe(){return O(Oe,Se)}function Se(e,t){if("="==t)return w(Q)}function _e(e){if(","==e)return w(ke)}function Te(e,t){if("keyword b"==e&&"else"==t)return w(I("form","else"),N,D)}function Ee(e,t){return"await"==t?w(Ee):"("==e?w(I(")"),$e,D):void 0}function $e(e){return"var"==e?w(ke,Ae):"variable"==e?w(Ae):O(Ae)}function Ae(e,t){return")"==e?w():";"==e?w(Ae):"in"==t||"of"==t?(k.marked="keyword",w(M,Ae)):O(M,Ae)}function Ce(e,t){return"*"==t?(k.marked="keyword",w(Ce)):"variable"==e?(S(t),w(Ce)):"("==e?w(C,I(")"),ne(Ie,")"),D,se,N,R):a&&"<"==t?w(I(">"),ne(ve,">"),D,Ce):void 0}function Pe(e,t){return"*"==t?(k.marked="keyword",w(Pe)):"variable"==e?(S(t),w(Pe)):"("==e?w(C,I(")"),ne(Ie,")"),D,se,R):a&&"<"==t?w(I(">"),ne(ve,">"),D,Pe):void 0}function Re(e,t){return"keyword"==e||"variable"==e?(k.marked="type",w(Re)):"<"==t?w(I(">"),ne(ve,">"),D):void 0}function Ie(e,t){return"@"==t&&w(M,Ie),"spread"==e?w(Ie):a&&T(t)?(k.marked="keyword",w(Ie)):a&&"this"==e?w(oe,Se):O(Oe,oe,Se)}function De(e,t){return"variable"==e?ze(e,t):Ne(e,t)}function ze(e,t){if("variable"==e)return S(t),w(Ne)}function Ne(e,t){return"<"==t?w(I(">"),ne(ve,">"),D,Ne):"extends"==t||"implements"==t||a&&","==e?("implements"==t&&(k.marked="keyword"),w(a?ce:M,Ne)):"{"==e?w(I("}"),Le,D):void 0}function Le(e,t){return"async"==e||"variable"==e&&("static"==t||"get"==t||"set"==t||a&&T(t))&&k.stream.match(/^\s+#?[\w$\xa1-\uffff]/,!1)?(k.marked="keyword",w(Le)):"variable"==e||"keyword"==k.style?(k.marked="property",w(Me,Le)):"number"==e||"string"==e?w(Me,Le):"["==e?w(M,oe,z("]"),Me,Le):"*"==t?(k.marked="keyword",w(Le)):a&&"("==e?O(Pe,Le):";"==e||","==e?w(Le):"}"==e?w():"@"==t?w(M,Le):void 0}function Me(e,t){if("!"==t||"?"==t)return w(Me);if(":"==e)return w(ce,Se);if("="==t)return w(Q);var n=k.state.lexical.prev;return O(n&&"interface"==n.info?Pe:Ce)}function Qe(e,t){return"*"==t?(k.marked="keyword",w(je,z(";"))):"default"==t?(k.marked="keyword",w(M,z(";"))):"{"==e?w(ne(qe,"}"),je,z(";")):O(N)}function qe(e,t){return"as"==t?(k.marked="keyword",w(z("variable"))):"variable"==e?O(Q,qe):void 0}function We(e){return"string"==e?w():"("==e?O(M):"."==e?O(F):O(Be,Fe,je)}function Be(e,t){return"{"==e?re(Be,"}"):("variable"==e&&S(t),"*"==t&&(k.marked="keyword"),w(Ue))}function Fe(e){if(","==e)return w(Be,Fe)}function Ue(e,t){if("as"==t)return k.marked="keyword",w(Be)}function je(e,t){if("from"==t)return k.marked="keyword",w(M)}function Ve(e){return"]"==e?w():O(ne(Q,"]"))}function Ge(){return O(I("form"),Oe,z("{"),I("}"),ne(Xe,"}"),D,D)}function Xe(){return O(Oe,Se)}return C.lex=P.lex=!0,R.lex=!0,D.lex=!0,{name:e.name,startState:function(t){var n={tokenize:h,lastType:"sof",cc:[],lexical:new v(-t,0,"block",!1),localVars:e.localVars,context:e.localVars&&new E(null,null,!1),indented:0};return e.globalVars&&"object"==typeof e.globalVars&&(n.globalVars=e.globalVars),n},token:function(e,r){if(e.sol()&&(r.lexical.hasOwnProperty("align")||(r.lexical.align=!1),r.indented=e.indentation(),g(e,r)),r.tokenize!=f&&e.eatSpace())return null;var i=r.tokenize(e,r);return"comment"==t?i:(r.lastType="operator"!=t||"++"!=n&&"--"!=n?t:"incdec",function(e,t,n,r,i){var a=e.cc;for(k.state=e,k.stream=i,k.marked=null,k.cc=a,k.style=t,e.lexical.hasOwnProperty("align")||(e.lexical.align=!0);;)if((a.length?a.pop():o?M:N)(n,r)){for(;a.length&&a[a.length-1].lex;)a.pop()();return k.marked?k.marked:"variable"==n&&y(e,r)?"variableName.local":t}}(r,i,t,n,e))},indent:function(t,n,i){if(t.tokenize==f||t.tokenize==m)return null;if(t.tokenize!=h)return 0;var o,a=n&&n.charAt(0),s=t.lexical;if(!/^\s*else\b/.test(n))for(var l=t.cc.length-1;l>=0;--l){var u=t.cc[l];if(u==D)s=s.prev;else if(u!=Te&&u!=R)break}for(;("stat"==s.type||"form"==s.type)&&("}"==a||(o=t.cc[t.cc.length-1])&&(o==F||o==U)&&!/^[,\.=+\-*:?[\(]/.test(n));)s=s.prev;r&&")"==s.type&&"stat"==s.prev.type&&(s=s.prev);var d=s.type,p=a==d;return"vardef"==d?s.indented+("operator"==t.lastType||","==t.lastType?s.info.length+1:0):"form"==d&&"{"==a?s.indented:"form"==d?s.indented+i.unit:"stat"==d?s.indented+(function(e,t){return"operator"==e.lastType||","==e.lastType||c.test(t.charAt(0))||/[,.]/.test(t.charAt(0))}(t,n)?r||i.unit:0):"switch"!=s.info||p||0==e.doubleIndentSwitch?s.align?s.column+(p?0:1):s.indented+(p?0:i.unit):s.indented+(/^(?:case|default)\b/.test(n)?i.unit:2*i.unit)},languageData:{indentOnInput:/^\s*(?:case .*?:|default:|\{|\})$/,commentTokens:o?void 0:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]},wordChars:"$"}}}n.r(t),n.d(t,{javascript:()=>i,json:()=>o,jsonld:()=>a,typescript:()=>s});const i=r({name:"javascript"}),o=r({name:"json",json:!0}),a=r({name:"json",jsonld:!0}),s=r({name:"typescript",typescript:!0})},7316:(e,t,n)=>{n.r(t),n.d(t,{jinja2:()=>c});var r=["and","as","block","endblock","by","cycle","debug","else","elif","extends","filter","endfilter","firstof","do","for","endfor","if","endif","ifchanged","endifchanged","ifequal","endifequal","ifnotequal","set","raw","endraw","endifnotequal","in","include","load","not","now","or","parsed","regroup","reversed","spaceless","call","endcall","macro","endmacro","endspaceless","ssi","templatetag","openblock","closeblock","openvariable","closevariable","without","context","openbrace","closebrace","opencomment","closecomment","widthratio","url","with","endwith","get_current_language","trans","endtrans","noop","blocktrans","endblocktrans","get_available_languages","get_current_language_bidi","pluralize","autoescape","endautoescape"],i=/^[+\-*&%=<>!?|~^]/,o=/^[:\[\(\{]/,a=["true","false"],s=/^(\d[+\-\*\/])?\d+(\.\d+)?/;function l(e,t){var n=e.peek();if(t.incomment)return e.skipTo("#}")?(e.eatWhile(/\#|}/),t.incomment=!1):e.skipToEnd(),"comment";if(t.intag){if(t.operator){if(t.operator=!1,e.match(a))return"atom";if(e.match(s))return"number"}if(t.sign){if(t.sign=!1,e.match(a))return"atom";if(e.match(s))return"number"}if(t.instring)return n==t.instring&&(t.instring=!1),e.next(),"string";if("'"==n||'"'==n)return t.instring=n,e.next(),"string";if(t.inbraces>0&&")"==n)e.next(),t.inbraces--;else if("("==n)e.next(),t.inbraces++;else if(t.inbrackets>0&&"]"==n)e.next(),t.inbrackets--;else if("["==n)e.next(),t.inbrackets++;else{if(!t.lineTag&&(e.match(t.intag+"}")||e.eat("-")&&e.match(t.intag+"}")))return t.intag=!1,"tag";if(e.match(i))return t.operator=!0,"operator";if(e.match(o))t.sign=!0;else{if(1==e.column()&&t.lineTag&&e.match(r))return"keyword";if(e.eat(" ")||e.sol()){if(e.match(r))return"keyword";if(e.match(a))return"atom";if(e.match(s))return"number";e.sol()&&e.next()}else e.next()}}return"variable"}if(e.eat("{")){if(e.eat("#"))return t.incomment=!0,e.skipTo("#}")?(e.eatWhile(/\#|}/),t.incomment=!1):e.skipToEnd(),"comment";if(n=e.eat(/\{|%/))return t.intag=n,t.inbraces=0,t.inbrackets=0,"{"==n&&(t.intag="}"),e.eat("-"),"tag"}else if(e.eat("#")){if("#"==e.peek())return e.skipToEnd(),"comment";if(!e.eol())return t.intag=!0,t.lineTag=!0,t.inbraces=0,t.inbrackets=0,"tag"}e.next()}r=new RegExp("(("+r.join(")|(")+"))\\b"),a=new RegExp("(("+a.join(")|(")+"))\\b");const c={name:"jinja2",startState:function(){return{tokenize:l,inbrackets:0,inbraces:0}},token:function(e,t){var n=t.tokenize(e,t);return e.eol()&&t.lineTag&&!t.instring&&0==t.inbraces&&0==t.inbrackets&&(t.intag=!1,t.lineTag=!1),n},languageData:{commentTokens:{block:{open:"{#",close:"#}",line:"##"}}}}},37485:(e,t,n)=>{function r(e,t,n){return"undefined"===typeof n&&(n=""),"undefined"===typeof t&&(t="\\b"),new RegExp("^"+n+"(("+e.join(")|(")+"))"+t)}n.r(t),n.d(t,{julia:()=>T});var i=["[<>]:","[<>=]=","<<=?",">>>?=?","=>","--?>","<--[->]?","\\/\\/","\\.{2,3}","[\\.\\\\%*+\\-<>!\\/^|&]=?","\\?","\\$","~",":"],o=r(["[<>]:","[<>=]=","[!=]==","<<=?",">>>?=?","=>?","--?>","<--[->]?","\\/\\/","[\\\\%*+\\-<>!\\/^|&\\u00F7\\u22BB]=?","\\?","\\$","~",":","\\u00D7","\\u2208","\\u2209","\\u220B","\\u220C","\\u2218","\\u221A","\\u221B","\\u2229","\\u222A","\\u2260","\\u2264","\\u2265","\\u2286","\\u2288","\\u228A","\\u22C5","\\b(in|isa)\\b(?!.?\\()"],""),a=/^[;,()[\]{}]/,s=/^[_A-Za-z\u00A1-\u2217\u2219-\uFFFF][\w\u00A1-\u2217\u2219-\uFFFF]*!*/,l=r(["\\\\[0-7]{1,3}","\\\\x[A-Fa-f0-9]{1,2}","\\\\[abefnrtv0%?'\"\\\\]","([^\\u0027\\u005C\\uD800-\\uDFFF]|[\\uD800-\\uDFFF][\\uDC00-\\uDFFF])"],"'"),c=["if","else","elseif","while","for","begin","let","end","do","try","catch","finally","return","break","continue","global","local","const","export","import","importall","using","function","where","macro","module","baremodule","struct","type","mutable","immutable","quote","typealias","abstract","primitive","bitstype"],u=["true","false","nothing","NaN","Inf"],d=r(["begin","function","type","struct","immutable","let","macro","for","while","quote","if","else","elseif","try","finally","catch","do"]),h=r(["end","else","elseif","catch","finally"]),f=r(c),m=r(u),p=/^@[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,g=/^:[_A-Za-z\u00A1-\uFFFF][\w\u00A1-\uFFFF]*!*/,b=/^(`|([_A-Za-z\u00A1-\uFFFF]*"("")?))/,v=r(i,"","@"),y=r(i,"",":");function k(e){return e.nestedArrays>0}function O(e,t){return"undefined"===typeof t&&(t=0),e.scopes.length<=t?null:e.scopes[e.scopes.length-(t+1)]}function w(e,t){if(e.match("#=",!1))return t.tokenize=S,t.tokenize(e,t);var n=t.leavingExpr;if(e.sol()&&(n=!1),t.leavingExpr=!1,n&&e.match(/^'+/))return"operator";if(e.match(/\.{4,}/))return"error";if(e.match(/\.{1,3}/))return"operator";if(e.eatSpace())return null;var r,i=e.peek();if("#"===i)return e.skipToEnd(),"comment";if("["===i&&(t.scopes.push("["),t.nestedArrays++),"("===i&&(t.scopes.push("("),t.nestedGenerators++),k(t)&&"]"===i){for(;t.scopes.length&&"["!==O(t);)t.scopes.pop();t.scopes.pop(),t.nestedArrays--,t.leavingExpr=!0}if(function(e){return e.nestedGenerators>0}(t)&&")"===i){for(;t.scopes.length&&"("!==O(t);)t.scopes.pop();t.scopes.pop(),t.nestedGenerators--,t.leavingExpr=!0}if(k(t)){if("end"==t.lastToken&&e.match(":"))return"operator";if(e.match("end"))return"number"}if((r=e.match(d,!1))&&t.scopes.push(r[0]),e.match(h,!1)&&t.scopes.pop(),e.match(/^::(?![:\$])/))return t.tokenize=x,t.tokenize(e,t);if(!n&&(e.match(g)||e.match(y)))return"builtin";if(e.match(o))return"operator";if(e.match(/^\.?\d/,!1)){var l=RegExp(/^im\b/),c=!1;if(e.match(/^0x\.[0-9a-f_]+p[\+\-]?[_\d]+/i)&&(c=!0),e.match(/^0x[0-9a-f_]+/i)&&(c=!0),e.match(/^0b[01_]+/i)&&(c=!0),e.match(/^0o[0-7_]+/i)&&(c=!0),e.match(/^(?:(?:\d[_\d]*)?\.(?!\.)(?:\d[_\d]*)?|\d[_\d]*\.(?!\.)(?:\d[_\d]*))?([Eef][\+\-]?[_\d]+)?/i)&&(c=!0),e.match(/^\d[_\d]*(e[\+\-]?\d+)?/i)&&(c=!0),c)return e.match(l),t.leavingExpr=!0,"number"}if(e.match("'"))return t.tokenize=_,t.tokenize(e,t);if(e.match(b))return t.tokenize=function(e){'"""'===e.substr(-3)?e='"""':'"'===e.substr(-1)&&(e='"');function t(t,n){if(t.eat("\\"))t.next();else{if(t.match(e))return n.tokenize=w,n.leavingExpr=!0,"string";t.eat(/[`"]/)}return t.eatWhile(/[^\\`"]/),"string"}return t}(e.current()),t.tokenize(e,t);if(e.match(p)||e.match(v))return"meta";if(e.match(a))return null;if(e.match(f))return"keyword";if(e.match(m))return"builtin";var u=t.isDefinition||"function"==t.lastToken||"macro"==t.lastToken||"type"==t.lastToken||"struct"==t.lastToken||"immutable"==t.lastToken;return e.match(s)?u?"."===e.peek()?(t.isDefinition=!0,"variable"):(t.isDefinition=!1,"def"):(t.leavingExpr=!0,"variable"):(e.next(),"error")}function x(e,t){return e.match(/.*?(?=[,;{}()=\s]|$)/),e.match("{")?t.nestedParameters++:e.match("}")&&t.nestedParameters>0&&t.nestedParameters--,t.nestedParameters>0?e.match(/.*?(?={|})/)||e.next():0==t.nestedParameters&&(t.tokenize=w),"builtin"}function S(e,t){return e.match("#=")&&t.nestedComments++,e.match(/.*?(?=(#=|=#))/)||e.skipToEnd(),e.match("=#")&&(t.nestedComments--,0==t.nestedComments&&(t.tokenize=w)),"comment"}function _(e,t){var n,r=!1;if(e.match(l))r=!0;else if(n=e.match(/\\u([a-f0-9]{1,4})(?=')/i)){((i=parseInt(n[1],16))<=55295||i>=57344)&&(r=!0,e.next())}else if(n=e.match(/\\U([A-Fa-f0-9]{5,8})(?=')/)){var i;(i=parseInt(n[1],16))<=1114111&&(r=!0,e.next())}return r?(t.leavingExpr=!0,t.tokenize=w,"string"):(e.match(/^[^']+(?=')/)||e.skipToEnd(),e.match("'")&&(t.tokenize=w),"error")}const T={name:"julia",startState:function(){return{tokenize:w,scopes:[],lastToken:null,leavingExpr:!1,isDefinition:!1,nestedArrays:0,nestedComments:0,nestedGenerators:0,nestedParameters:0,firstParenPos:-1}},token:function(e,t){var n=t.tokenize(e,t),r=e.current();return r&&n&&(t.lastToken=r),n},indent:function(e,t,n){var r=0;return("]"===t||")"===t||/^end\b/.test(t)||/^else/.test(t)||/^catch\b/.test(t)||/^elseif\b/.test(t)||/^finally/.test(t))&&(r=-1),(e.scopes.length+r)*n.unit},languageData:{indentOnInput:/^\s*(end|else|catch|finally)\b$/,commentTokens:{line:"#",block:{open:"#=",close:"=#"}},closeBrackets:{brackets:["(","[","{",'"']},autocomplete:c.concat(u)}}},78063:(e,t,n)=>{n.r(t),n.d(t,{liveScript:()=>m});var r=function(e,t){var n=t.next||"start";if(n){t.next=t.next;var r=l[n];if(r.splice){for(var i=0;i|\\b(?:e(?:lse|xport)|d(?:o|efault)|t(?:ry|hen)|finally|import(?:\\s*all)?|const|var|let|new|catch(?:\\s*"+i+")?))\\s*$"),a="(?![$\\w]|-[A-Za-z]|\\s*:(?![:=]))",s={token:"string",regex:".+"},l={start:[{token:"docComment",regex:"/\\*",next:"comment"},{token:"comment",regex:"#.*"},{token:"keyword",regex:"(?:t(?:h(?:is|row|en)|ry|ypeof!?)|c(?:on(?:tinue|st)|a(?:se|tch)|lass)|i(?:n(?:stanceof)?|mp(?:ort(?:\\s+all)?|lements)|[fs])|d(?:e(?:fault|lete|bugger)|o)|f(?:or(?:\\s+own)?|inally|unction)|s(?:uper|witch)|e(?:lse|x(?:tends|port)|val)|a(?:nd|rguments)|n(?:ew|ot)|un(?:less|til)|w(?:hile|ith)|o[fr]|return|break|let|var|loop)"+a},{token:"atom",regex:"(?:true|false|yes|no|on|off|null|void|undefined)"+a},{token:"invalid",regex:"(?:p(?:ackage|r(?:ivate|otected)|ublic)|i(?:mplements|nterface)|enum|static|yield)"+a},{token:"className.standard",regex:"(?:R(?:e(?:gExp|ferenceError)|angeError)|S(?:tring|yntaxError)|E(?:rror|valError)|Array|Boolean|Date|Function|Number|Object|TypeError|URIError)"+a},{token:"variableName.function.standard",regex:"(?:is(?:NaN|Finite)|parse(?:Int|Float)|Math|JSON|(?:en|de)codeURI(?:Component)?)"+a},{token:"variableName.standard",regex:"(?:t(?:hat|il|o)|f(?:rom|allthrough)|it|by|e)"+a},{token:"variableName",regex:i+"\\s*:(?![:=])"},{token:"variableName",regex:i},{token:"operatorKeyword",regex:"(?:\\.{3}|\\s+\\?)"},{token:"keyword",regex:"(?:@+|::|\\.\\.)",next:"key"},{token:"operatorKeyword",regex:"\\.\\s*",next:"key"},{token:"string",regex:"\\\\\\S[^\\s,;)}\\]]*"},{token:"docString",regex:"'''",next:"qdoc"},{token:"docString",regex:'"""',next:"qqdoc"},{token:"string",regex:"'",next:"qstring"},{token:"string",regex:'"',next:"qqstring"},{token:"string",regex:"`",next:"js"},{token:"string",regex:"<\\[",next:"words"},{token:"regexp",regex:"//",next:"heregex"},{token:"regexp",regex:"\\/(?:[^[\\/\\n\\\\]*(?:(?:\\\\.|\\[[^\\]\\n\\\\]*(?:\\\\.[^\\]\\n\\\\]*)*\\])[^[\\/\\n\\\\]*)*)\\/[gimy$]{0,4}",next:"key"},{token:"number",regex:"(?:0x[\\da-fA-F][\\da-fA-F_]*|(?:[2-9]|[12]\\d|3[0-6])r[\\da-zA-Z][\\da-zA-Z_]*|(?:\\d[\\d_]*(?:\\.\\d[\\d_]*)?|\\.\\d[\\d_]*)(?:e[+-]?\\d[\\d_]*)?[\\w$]*)"},{token:"paren",regex:"[({[]"},{token:"paren",regex:"[)}\\]]",next:"key"},{token:"operatorKeyword",regex:"\\S+"},{token:"content",regex:"\\s+"}],heregex:[{token:"regexp",regex:".*?//[gimy$?]{0,4}",next:"start"},{token:"regexp",regex:"\\s*#{"},{token:"comment",regex:"\\s+(?:#.*)?"},{token:"regexp",regex:"\\S+"}],key:[{token:"operatorKeyword",regex:"[.?@!]+"},{token:"variableName",regex:i,next:"start"},{token:"content",regex:"",next:"start"}],comment:[{token:"docComment",regex:".*?\\*/",next:"start"},{token:"docComment",regex:".+"}],qdoc:[{token:"string",regex:".*?'''",next:"key"},s],qqdoc:[{token:"string",regex:'.*?"""',next:"key"},s],qstring:[{token:"string",regex:"[^\\\\']*(?:\\\\.[^\\\\']*)*'",next:"key"},s],qqstring:[{token:"string",regex:'[^\\\\"]*(?:\\\\.[^\\\\"]*)*"',next:"key"},s],js:[{token:"string",regex:"[^\\\\`]*(?:\\\\.[^\\\\`]*)*`",next:"key"},s],words:[{token:"string",regex:".*?\\]>",next:"key"},s]};for(var c in l){var u=l[c];if(u.splice)for(var d=0,h=u.length;d{function r(e){return new RegExp("^(?:"+e.join("|")+")$","i")}n.r(t),n.d(t,{lua:()=>h});var i=r(["_G","_VERSION","assert","collectgarbage","dofile","error","getfenv","getmetatable","ipairs","load","loadfile","loadstring","module","next","pairs","pcall","print","rawequal","rawget","rawset","require","select","setfenv","setmetatable","tonumber","tostring","type","unpack","xpcall","coroutine.create","coroutine.resume","coroutine.running","coroutine.status","coroutine.wrap","coroutine.yield","debug.debug","debug.getfenv","debug.gethook","debug.getinfo","debug.getlocal","debug.getmetatable","debug.getregistry","debug.getupvalue","debug.setfenv","debug.sethook","debug.setlocal","debug.setmetatable","debug.setupvalue","debug.traceback","close","flush","lines","read","seek","setvbuf","write","io.close","io.flush","io.input","io.lines","io.open","io.output","io.popen","io.read","io.stderr","io.stdin","io.stdout","io.tmpfile","io.type","io.write","math.abs","math.acos","math.asin","math.atan","math.atan2","math.ceil","math.cos","math.cosh","math.deg","math.exp","math.floor","math.fmod","math.frexp","math.huge","math.ldexp","math.log","math.log10","math.max","math.min","math.modf","math.pi","math.pow","math.rad","math.random","math.randomseed","math.sin","math.sinh","math.sqrt","math.tan","math.tanh","os.clock","os.date","os.difftime","os.execute","os.exit","os.getenv","os.remove","os.rename","os.setlocale","os.time","os.tmpname","package.cpath","package.loaded","package.loaders","package.loadlib","package.path","package.preload","package.seeall","string.byte","string.char","string.dump","string.find","string.format","string.gmatch","string.gsub","string.len","string.lower","string.match","string.rep","string.reverse","string.sub","string.upper","table.concat","table.insert","table.maxn","table.remove","table.sort"]),o=r(["and","break","elseif","false","nil","not","or","return","true","function","end","if","then","else","do","while","repeat","until","for","in","local"]),a=r(["function","if","repeat","do","\\(","{"]),s=r(["end","until","\\)","}"]),l=new RegExp("^(?:"+["end","until","\\)","}","else","elseif"].join("|")+")","i");function c(e){for(var t=0;e.eat("=");)++t;return e.eat("["),t}function u(e,t){var n,r=e.next();return"-"==r&&e.eat("-")?e.eat("[")&&e.eat("[")?(t.cur=d(c(e),"comment"))(e,t):(e.skipToEnd(),"comment"):'"'==r||"'"==r?(t.cur=(n=r,function(e,t){for(var r,i=!1;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(t.cur=u),"string"}))(e,t):"["==r&&/[\[=]/.test(e.peek())?(t.cur=d(c(e),"string"))(e,t):/\d/.test(r)?(e.eatWhile(/[\w.%]/),"number"):/[\w_]/.test(r)?(e.eatWhile(/[\w\\\-_.]/),"variable"):null}function d(e,t){return function(n,r){for(var i,o=null;null!=(i=n.next());)if(null==o)"]"==i&&(o=0);else if("="==i)++o;else{if("]"==i&&o==e){r.cur=u;break}o=null}return t}}const h={name:"lua",startState:function(){return{basecol:0,indentDepth:0,cur:u}},token:function(e,t){if(e.eatSpace())return null;var n=t.cur(e,t),r=e.current();return"variable"==n&&(o.test(r)?n="keyword":i.test(r)&&(n="builtin")),"comment"!=n&&"string"!=n&&(a.test(r)?++t.indentDepth:s.test(r)&&--t.indentDepth),n},indent:function(e,t,n){var r=l.test(t);return e.basecol+n.unit*(e.indentDepth-(r?1:0))},languageData:{indentOnInput:/^\s*(?:end|until|else|\)|\})$/,commentTokens:{line:"--",block:{open:"--[[",close:"]]--"}}}}},75516:(e,t,n)=>{n.r(t),n.d(t,{mathematica:()=>h});var r="[a-zA-Z\\$][a-zA-Z0-9\\$]*",i="(?:\\.\\d+|\\d+\\.\\d*|\\d+)",o="(?:`(?:`?"+i+")?)",a=new RegExp("(?:(?:\\d+)(?:\\^\\^(?:\\.\\w+|\\w+\\.\\w*|\\w+)"+o+"?(?:\\*\\^[+-]?\\d+)?))"),s=new RegExp("(?:"+i+o+"?(?:\\*\\^[+-]?\\d+)?)"),l=new RegExp("(?:`?)(?:"+r+")(?:`(?:"+r+"))*(?:`?)");function c(e,t){var n;return'"'===(n=e.next())?(t.tokenize=u,t.tokenize(e,t)):"("===n&&e.eat("*")?(t.commentLevel++,t.tokenize=d,t.tokenize(e,t)):(e.backUp(1),e.match(a,!0,!1)||e.match(s,!0,!1)?"number":e.match(/(?:In|Out)\[[0-9]*\]/,!0,!1)?"atom":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::usage)/,!0,!1)?"meta":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*(?:`[a-zA-Z0-9\$]+)*::[a-zA-Z\$][a-zA-Z0-9\$]*):?/,!0,!1)?"string.special":e.match(/([a-zA-Z\$][a-zA-Z0-9\$]*\s*:)(?:(?:[a-zA-Z\$][a-zA-Z0-9\$]*)|(?:[^:=>~@\^\&\*\)\[\]'\?,\|])).*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)||e.match(/[a-zA-Z\$][a-zA-Z0-9\$]*_+/,!0,!1)||e.match(/_+[a-zA-Z\$][a-zA-Z0-9\$]*/,!0,!1)?"variableName.special":e.match(/\\\[[a-zA-Z\$][a-zA-Z0-9\$]*\]/,!0,!1)?"character":e.match(/(?:\[|\]|{|}|\(|\))/,!0,!1)?"bracket":e.match(/(?:#[a-zA-Z\$][a-zA-Z0-9\$]*|#+[0-9]?)/,!0,!1)?"variableName.constant":e.match(l,!0,!1)?"keyword":e.match(/(?:\\|\+|\-|\*|\/|,|;|\.|:|@|~|=|>|<|&|\||_|`|'|\^|\?|!|%)/,!0,!1)?"operator":(e.next(),"error"))}function u(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if('"'===n&&!i){r=!0;break}i=!i&&"\\"===n}return r&&!i&&(t.tokenize=c),"string"}function d(e,t){for(var n,r;t.commentLevel>0&&null!=(r=e.next());)"("===n&&"*"===r&&t.commentLevel++,"*"===n&&")"===r&&t.commentLevel--,n=r;return t.commentLevel<=0&&(t.tokenize=c),"comment"}const h={name:"mathematica",startState:function(){return{tokenize:c,commentLevel:0}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"(*",close:"*)"}}}}},29986:(e,t,n)=>{n.r(t),n.d(t,{mbox:()=>m});var r=["From","Sender","Reply-To","To","Cc","Bcc","Message-ID","In-Reply-To","References","Resent-From","Resent-Sender","Resent-To","Resent-Cc","Resent-Bcc","Resent-Message-ID","Return-Path","Received"],i=["Date","Subject","Comments","Keywords","Resent-Date"],o=/^[ \t]/,a=/^From /,s=new RegExp("^("+r.join("|")+"): "),l=new RegExp("^("+i.join("|")+"): "),c=/^[^:]+:/,u=/^[^ ]+@[^ ]+/,d=/^.*?(?=[^ ]+?@[^ ]+)/,h=/^<.*?>/,f=/^.*?(?=<.*>)/;const m={name:"mbox",startState:function(){return{inSeparator:!1,inHeader:!1,emailPermitted:!1,header:null,inHeaders:!1}},token:function(e,t){if(e.sol()){if(t.inSeparator=!1,t.inHeader&&e.match(o))return null;if(t.inHeader=!1,t.header=null,e.match(a))return t.inHeaders=!0,t.inSeparator=!0,"atom";var n,r=!1;return(n=e.match(l))||(r=!0)&&(n=e.match(s))?(t.inHeaders=!0,t.inHeader=!0,t.emailPermitted=r,t.header=n[1],"atom"):t.inHeaders&&(n=e.match(c))?(t.inHeader=!0,t.emailPermitted=!0,t.header=n[1],"atom"):(t.inHeaders=!1,e.skipToEnd(),null)}if(t.inSeparator)return e.match(u)?"link":(e.match(d)||e.skipToEnd(),"atom");if(t.inHeader){var i=function(e){return"Subject"===e?"header":"string"}(t.header);if(t.emailPermitted){if(e.match(h))return i+" link";if(e.match(f))return i}return e.skipToEnd(),i}return e.skipToEnd(),null},blankLine:function(e){e.inHeaders=e.inSeparator=e.inHeader=!1},languageData:{autocomplete:r.concat(i)}}},95039:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rh});var i=r("$! $$ $& $? $+ $abook $abs $active $activecid $activewid $address $addtok $agent $agentname $agentstat $agentver $alias $and $anick $ansi2mirc $aop $appactive $appstate $asc $asctime $asin $atan $avoice $away $awaymsg $awaytime $banmask $base $bfind $binoff $biton $bnick $bvar $bytes $calc $cb $cd $ceil $chan $chanmodes $chantypes $chat $chr $cid $clevel $click $cmdbox $cmdline $cnick $color $com $comcall $comchan $comerr $compact $compress $comval $cos $count $cr $crc $creq $crlf $ctime $ctimer $ctrlenter $date $day $daylight $dbuh $dbuw $dccignore $dccport $dde $ddename $debug $decode $decompress $deltok $devent $dialog $did $didreg $didtok $didwm $disk $dlevel $dll $dllcall $dname $dns $duration $ebeeps $editbox $emailaddr $encode $error $eval $event $exist $feof $ferr $fgetc $file $filename $filtered $finddir $finddirn $findfile $findfilen $findtok $fline $floor $fopen $fread $fserve $fulladdress $fulldate $fullname $fullscreen $get $getdir $getdot $gettok $gmt $group $halted $hash $height $hfind $hget $highlight $hnick $hotline $hotlinepos $ial $ialchan $ibl $idle $iel $ifmatch $ignore $iif $iil $inelipse $ini $inmidi $inpaste $inpoly $input $inrect $inroundrect $insong $instok $int $inwave $ip $isalias $isbit $isdde $isdir $isfile $isid $islower $istok $isupper $keychar $keyrpt $keyval $knick $lactive $lactivecid $lactivewid $left $len $level $lf $line $lines $link $lock $lock $locked $log $logstamp $logstampfmt $longfn $longip $lower $ltimer $maddress $mask $matchkey $matchtok $md5 $me $menu $menubar $menucontext $menutype $mid $middir $mircdir $mircexe $mircini $mklogfn $mnick $mode $modefirst $modelast $modespl $mouse $msfile $network $newnick $nick $nofile $nopath $noqt $not $notags $notify $null $numeric $numok $oline $onpoly $opnick $or $ord $os $passivedcc $pic $play $pnick $port $portable $portfree $pos $prefix $prop $protect $puttok $qt $query $rand $r $rawmsg $read $readomo $readn $regex $regml $regsub $regsubex $remove $remtok $replace $replacex $reptok $result $rgb $right $round $scid $scon $script $scriptdir $scriptline $sdir $send $server $serverip $sfile $sha1 $shortfn $show $signal $sin $site $sline $snick $snicks $snotify $sock $sockbr $sockerr $sockname $sorttok $sound $sqrt $ssl $sreq $sslready $status $strip $str $stripped $syle $submenu $switchbar $tan $target $ticks $time $timer $timestamp $timestampfmt $timezone $tip $titlebar $toolbar $treebar $trust $ulevel $ulist $upper $uptime $url $usermode $v1 $v2 $var $vcmd $vcmdstat $vcmdver $version $vnick $vol $wid $width $wildsite $wildtok $window $wrap $xor"),o=r("abook ajinvite alias aline ame amsg anick aop auser autojoin avoice away background ban bcopy beep bread break breplace bset btrunc bunset bwrite channel clear clearall cline clipboard close cnick color comclose comopen comreg continue copy creq ctcpreply ctcps dcc dccserver dde ddeserver debug dec describe dialog did didtok disable disconnect dlevel dline dll dns dqwindow drawcopy drawdot drawfill drawline drawpic drawrect drawreplace drawrot drawsave drawscroll drawtext ebeeps echo editbox emailaddr enable events exit fclose filter findtext finger firewall flash flist flood flush flushini font fopen fseek fsend fserve fullname fwrite ghide gload gmove gopts goto gplay gpoint gqreq groups gshow gsize gstop gtalk gunload hadd halt haltdef hdec hdel help hfree hinc hload hmake hop hsave ial ialclear ialmark identd if ignore iline inc invite iuser join kick linesep links list load loadbuf localinfo log mdi me menubar mkdir mnick mode msg nick noop notice notify omsg onotice part partall pdcc perform play playctrl pop protect pvoice qme qmsg query queryn quit raw reload remini remote remove rename renwin reseterror resetidle return rlevel rline rmdir run ruser save savebuf saveini say scid scon server set showmirc signam sline sockaccept sockclose socklist socklisten sockmark sockopen sockpause sockread sockrename sockudp sockwrite sound speak splay sreq strip switchbar timer timestamp titlebar tnick tokenize toolbar topic tray treebar ulist unload unset unsetall updatenl url uwho var vcadd vcmd vcrem vol while whois window winhelp write writeint if isalnum isalpha isaop isavoice isban ischan ishop isignore isin isincs isletter islower isnotify isnum ison isop isprotect isreg isupper isvoice iswm iswmcs elseif else goto menu nicklist status title icon size option text edit button check radio box scroll list combo link tab item"),a=r("if elseif else and not or eq ne in ni for foreach while switch"),s=/[+\-*&%=<>!?^\/\|]/;function l(e,t,n){return t.tokenize=n,n(e,t)}function c(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if(/[\[\]{}\(\),\.]/.test(r))return"("==r&&n?t.inParams=!0:")"==r&&(t.inParams=!1),null;if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("\\"==r)return e.eat("\\"),e.eat(/./),"number";if("/"==r&&e.eat("*"))return l(e,t,u);if(";"==r&&e.match(/ *\( *\(/))return l(e,t,d);if(";"!=r||t.inParams){if('"'==r)return e.eat(/"/),"keyword";if("$"==r)return e.eatWhile(/[$_a-z0-9A-Z\.:]/),i&&i.propertyIsEnumerable(e.current().toLowerCase())?"keyword":(t.beforeParams=!0,"builtin");if("%"==r)return e.eatWhile(/[^,\s()]/),t.beforeParams=!0,"string";if(s.test(r))return e.eatWhile(s),"operator";e.eatWhile(/[\w\$_{}]/);var c=e.current().toLowerCase();return o&&o.propertyIsEnumerable(c)?"keyword":a&&a.propertyIsEnumerable(c)?(t.beforeParams=!0,"keyword"):null}return e.skipToEnd(),"comment"}function u(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=c;break}r="*"==n}return"comment"}function d(e,t){for(var n,r=0;n=e.next();){if(";"==n&&2==r){t.tokenize=c;break}")"==n?r++:" "!=n&&(r=0)}return"meta"}const h={name:"mirc",startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}}},73492:(e,t,n)=>{function r(e){var t={as:"keyword",do:"keyword",else:"keyword",end:"keyword",exception:"keyword",fun:"keyword",functor:"keyword",if:"keyword",in:"keyword",include:"keyword",let:"keyword",of:"keyword",open:"keyword",rec:"keyword",struct:"keyword",then:"keyword",type:"keyword",val:"keyword",while:"keyword",with:"keyword"},n=e.extraWords||{};for(var r in n)n.hasOwnProperty(r)&&(t[r]=e.extraWords[r]);var i=[];for(var o in t)i.push(o);function a(n,r){var i=n.next();if('"'===i)return r.tokenize=s,r.tokenize(n,r);if("{"===i&&n.eat("|"))return r.longString=!0,r.tokenize=c,r.tokenize(n,r);if("("===i&&n.match(/^\*(?!\))/))return r.commentLevel++,r.tokenize=l,r.tokenize(n,r);if("~"===i||"?"===i)return n.eatWhile(/\w/),"variableName.special";if("`"===i)return n.eatWhile(/\w/),"quote";if("/"===i&&e.slashComments&&n.eat("/"))return n.skipToEnd(),"comment";if(/\d/.test(i))return"0"===i&&n.eat(/[bB]/)&&n.eatWhile(/[01]/),"0"===i&&n.eat(/[xX]/)&&n.eatWhile(/[0-9a-fA-F]/),"0"===i&&n.eat(/[oO]/)?n.eatWhile(/[0-7]/):(n.eatWhile(/[\d_]/),n.eat(".")&&n.eatWhile(/[\d]/),n.eat(/[eE]/)&&n.eatWhile(/[\d\-+]/)),"number";if(/[+\-*&%=<>!?|@\.~:]/.test(i))return"operator";if(/[\w\xa1-\uffff]/.test(i)){n.eatWhile(/[\w\xa1-\uffff]/);var o=n.current();return t.hasOwnProperty(o)?t[o]:"variable"}return null}function s(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if('"'===n&&!i){r=!0;break}i=!i&&"\\"===n}return r&&!i&&(t.tokenize=a),"string"}function l(e,t){for(var n,r;t.commentLevel>0&&null!=(r=e.next());)"("===n&&"*"===r&&t.commentLevel++,"*"===n&&")"===r&&t.commentLevel--,n=r;return t.commentLevel<=0&&(t.tokenize=a),"comment"}function c(e,t){for(var n,r;t.longString&&null!=(r=e.next());)"|"===n&&"}"===r&&(t.longString=!1),n=r;return t.longString||(t.tokenize=a),"string"}return{startState:function(){return{tokenize:a,commentLevel:0,longString:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{autocomplete:i,commentTokens:{line:e.slashComments?"//":void 0,block:{open:"(*",close:"*)"}}}}}n.r(t),n.d(t,{fSharp:()=>o,oCaml:()=>i,sml:()=>a});const i=r({name:"ocaml",extraWords:{and:"keyword",assert:"keyword",begin:"keyword",class:"keyword",constraint:"keyword",done:"keyword",downto:"keyword",external:"keyword",function:"keyword",initializer:"keyword",lazy:"keyword",match:"keyword",method:"keyword",module:"keyword",mutable:"keyword",new:"keyword",nonrec:"keyword",object:"keyword",private:"keyword",sig:"keyword",to:"keyword",try:"keyword",value:"keyword",virtual:"keyword",when:"keyword",raise:"builtin",failwith:"builtin",true:"builtin",false:"builtin",asr:"builtin",land:"builtin",lor:"builtin",lsl:"builtin",lsr:"builtin",lxor:"builtin",mod:"builtin",or:"builtin",raise_notrace:"builtin",trace:"builtin",exit:"builtin",print_string:"builtin",print_endline:"builtin",int:"type",float:"type",bool:"type",char:"type",string:"type",unit:"type",List:"builtin"}}),o=r({name:"fsharp",extraWords:{abstract:"keyword",assert:"keyword",base:"keyword",begin:"keyword",class:"keyword",default:"keyword",delegate:"keyword","do!":"keyword",done:"keyword",downcast:"keyword",downto:"keyword",elif:"keyword",extern:"keyword",finally:"keyword",for:"keyword",function:"keyword",global:"keyword",inherit:"keyword",inline:"keyword",interface:"keyword",internal:"keyword",lazy:"keyword","let!":"keyword",match:"keyword",member:"keyword",module:"keyword",mutable:"keyword",namespace:"keyword",new:"keyword",null:"keyword",override:"keyword",private:"keyword",public:"keyword","return!":"keyword",return:"keyword",select:"keyword",static:"keyword",to:"keyword",try:"keyword",upcast:"keyword","use!":"keyword",use:"keyword",void:"keyword",when:"keyword","yield!":"keyword",yield:"keyword",atomic:"keyword",break:"keyword",checked:"keyword",component:"keyword",const:"keyword",constraint:"keyword",constructor:"keyword",continue:"keyword",eager:"keyword",event:"keyword",external:"keyword",fixed:"keyword",method:"keyword",mixin:"keyword",object:"keyword",parallel:"keyword",process:"keyword",protected:"keyword",pure:"keyword",sealed:"keyword",tailcall:"keyword",trait:"keyword",virtual:"keyword",volatile:"keyword",List:"builtin",Seq:"builtin",Map:"builtin",Set:"builtin",Option:"builtin",int:"builtin",string:"builtin",not:"builtin",true:"builtin",false:"builtin",raise:"builtin",failwith:"builtin"},slashComments:!0}),a=r({name:"sml",extraWords:{abstype:"keyword",and:"keyword",andalso:"keyword",case:"keyword",datatype:"keyword",fn:"keyword",handle:"keyword",infix:"keyword",infixr:"keyword",local:"keyword",nonfix:"keyword",op:"keyword",orelse:"keyword",raise:"keyword",withtype:"keyword",eqtype:"keyword",sharing:"keyword",sig:"keyword",signature:"keyword",structure:"keyword",where:"keyword",true:"keyword",false:"keyword",int:"builtin",real:"builtin",string:"builtin",char:"builtin",bool:"builtin"},slashComments:!0})},31086:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rv});var i=r("algorithm and annotation assert block break class connect connector constant constrainedby der discrete each else elseif elsewhen encapsulated end enumeration equation expandable extends external false final flow for function if import impure in initial inner input loop model not operator or outer output package parameter partial protected public pure record redeclare replaceable return stream then true type when while within"),o=r("abs acos actualStream asin atan atan2 cardinality ceil cos cosh delay div edge exp floor getInstanceName homotopy inStream integer log log10 mod pre reinit rem semiLinear sign sin sinh spatialDistribution sqrt tan tanh"),a=r("Real Boolean Integer String"),s=[].concat(Object.keys(i),Object.keys(o),Object.keys(a)),l=/[;=\(:\),{}.*<>+\-\/^\[\]]/,c=/(:=|<=|>=|==|<>|\.\+|\.\-|\.\*|\.\/|\.\^)/,u=/[0-9]/,d=/[_a-zA-Z]/;function h(e,t){return e.skipToEnd(),t.tokenize=null,"comment"}function f(e,t){for(var n,r=!1;n=e.next();){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return"comment"}function m(e,t){for(var n,r=!1;null!=(n=e.next());){if('"'==n&&!r){t.tokenize=null,t.sol=!1;break}r=!r&&"\\"==n}return"string"}function p(e,t){for(e.eatWhile(u);e.eat(u)||e.eat(d););var n=e.current();return!t.sol||"package"!=n&&"model"!=n&&"when"!=n&&"connector"!=n?t.sol&&"end"==n&&t.level>0&&t.level--:t.level++,t.tokenize=null,t.sol=!1,i.propertyIsEnumerable(n)?"keyword":o.propertyIsEnumerable(n)?"builtin":a.propertyIsEnumerable(n)?"atom":"variable"}function g(e,t){for(;e.eat(/[^']/););return t.tokenize=null,t.sol=!1,e.eat("'")?"variable":"error"}function b(e,t){return e.eatWhile(u),e.eat(".")&&e.eatWhile(u),(e.eat("e")||e.eat("E"))&&(e.eat("-")||e.eat("+"),e.eatWhile(u)),t.tokenize=null,t.sol=!1,"number"}const v={name:"modelica",startState:function(){return{tokenize:null,level:0,sol:!0}},token:function(e,t){if(null!=t.tokenize)return t.tokenize(e,t);if(e.sol()&&(t.sol=!0),e.eatSpace())return t.tokenize=null,null;var n=e.next();if("/"==n&&e.eat("/"))t.tokenize=h;else if("/"==n&&e.eat("*"))t.tokenize=f;else{if(c.test(n+e.peek()))return e.next(),t.tokenize=null,"operator";if(l.test(n))return t.tokenize=null,"operator";if(d.test(n))t.tokenize=p;else if("'"==n&&e.peek()&&"'"!=e.peek())t.tokenize=g;else if('"'==n)t.tokenize=m;else{if(!u.test(n))return t.tokenize=null,"error";t.tokenize=b}}return t.tokenize(e,t)},indent:function(e,t,n){if(null!=e.tokenize)return null;var r=e.level;return/(algorithm)/.test(t)&&r--,/(equation)/.test(t)&&r--,/(initial algorithm)/.test(t)&&r--,/(initial equation)/.test(t)&&r--,/(end)/.test(t)&&r--,r>0?n.unit*r:0},languageData:{commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:s}}},55251:(e,t,n)=>{function r(e){return{name:"mscgen",startState:c,copyState:u,token:(t=e,function(e,n){if(e.match(l(t.brackets),!0,!0))return"bracket";if(!n.inComment){if(e.match(/\/\*[^\*\/]*/,!0,!0))return n.inComment=!0,"comment";if(e.match(l(t.singlecomment),!0,!0))return e.skipToEnd(),"comment"}if(n.inComment)return e.match(/[^\*\/]*\*\//,!0,!0)?n.inComment=!1:e.skipToEnd(),"comment";if(!n.inString&&e.match(/\"(\\\"|[^\"])*/,!0,!0))return n.inString=!0,"string";if(n.inString)return e.match(/[^\"]*\"/,!0,!0)?n.inString=!1:e.skipToEnd(),"string";if(t.keywords&&e.match(s(t.keywords),!0,!0))return"keyword";if(e.match(s(t.options),!0,!0))return"keyword";if(e.match(s(t.arcsWords),!0,!0))return"keyword";if(e.match(l(t.arcsOthers),!0,!0))return"keyword";if(t.operators&&e.match(l(t.operators),!0,!0))return"operator";if(t.constants&&e.match(l(t.constants),!0,!0))return"variable";if(!t.inAttributeList&&t.attributes&&e.match("[",!0,!0))return t.inAttributeList=!0,"bracket";if(t.inAttributeList){if(null!==t.attributes&&e.match(s(t.attributes),!0,!0))return"attribute";if(e.match("]",!0,!0))return t.inAttributeList=!1,"bracket"}return e.next(),null}),languageData:{commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}};var t}n.r(t),n.d(t,{mscgen:()=>i,msgenny:()=>o,xu:()=>a});const i=r({keywords:["msc"],options:["hscale","width","arcgradient","wordwraparcs"],constants:["true","false","on","off"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),o=r({keywords:null,options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:null,brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]}),a=r({keywords:["msc","xu"],options:["hscale","width","arcgradient","wordwraparcs","wordwrapentities","watermark"],constants:["true","false","on","off","auto"],attributes:["label","idurl","id","url","linecolor","linecolour","textcolor","textcolour","textbgcolor","textbgcolour","arclinecolor","arclinecolour","arctextcolor","arctextcolour","arctextbgcolor","arctextbgcolour","arcskip","title","deactivate","activate","activation"],brackets:["\\{","\\}"],arcsWords:["note","abox","rbox","box","alt","else","opt","break","par","seq","strict","neg","critical","ignore","consider","assert","loop","ref","exc"],arcsOthers:["\\|\\|\\|","\\.\\.\\.","---","--","<->","==","<<=>>","<=>","\\.\\.","<<>>","::","<:>","->","=>>","=>",">>",":>","<-","<<=","<=","<<","<:","x-","-x"],singlecomment:["//","#"],operators:["="]});function s(e){return new RegExp("^\\b("+e.join("|")+")\\b","i")}function l(e){return new RegExp("^(?:"+e.join("|")+")","i")}function c(){return{inComment:!1,inString:!1,inAttributeList:!1,inScript:!1}}function u(e){return{inComment:e.inComment,inString:e.inString,inAttributeList:e.inAttributeList,inScript:e.inScript}}},83640:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}n.r(t),n.d(t,{mumps:()=>d});var i=new RegExp("^[\\+\\-\\*/&#!_?\\\\<>=\\'\\[\\]]"),o=new RegExp("^(('=)|(<=)|(>=)|('>)|('<)|([[)|(]])|(^$))"),a=new RegExp("^[\\.,:]"),s=new RegExp("[()]"),l=new RegExp("^[%A-Za-z][A-Za-z0-9]*"),c=r(["\\$ascii","\\$char","\\$data","\\$ecode","\\$estack","\\$etrap","\\$extract","\\$find","\\$fnumber","\\$get","\\$horolog","\\$io","\\$increment","\\$job","\\$justify","\\$length","\\$name","\\$next","\\$order","\\$piece","\\$qlength","\\$qsubscript","\\$query","\\$quit","\\$random","\\$reverse","\\$select","\\$stack","\\$test","\\$text","\\$translate","\\$view","\\$x","\\$y","\\$a","\\$c","\\$d","\\$e","\\$ec","\\$es","\\$et","\\$f","\\$fn","\\$g","\\$h","\\$i","\\$j","\\$l","\\$n","\\$na","\\$o","\\$p","\\$q","\\$ql","\\$qs","\\$r","\\$re","\\$s","\\$st","\\$t","\\$tr","\\$v","\\$z"]),u=r(["break","close","do","else","for","goto","halt","hang","if","job","kill","lock","merge","new","open","quit","read","set","tcommit","trollback","tstart","use","view","write","xecute","b","c","d","e","f","g","h","i","j","k","l","m","n","o","q","r","s","tc","tro","ts","u","v","w","x"]);const d={name:"mumps",startState:function(){return{label:!1,commandMode:0}},token:function(e,t){var n=function(e,t){e.sol()&&(t.label=!0,t.commandMode=0);var n=e.peek();return" "==n||"\t"==n?(t.label=!1,0==t.commandMode?t.commandMode=1:(t.commandMode<0||2==t.commandMode)&&(t.commandMode=0)):"."!=n&&t.commandMode>0&&(t.commandMode=":"==n?-1:2),"("!==n&&"\t"!==n||(t.label=!1),";"===n?(e.skipToEnd(),"comment"):e.match(/^[-+]?\d+(\.\d+)?([eE][-+]?\d+)?/)?"number":'"'==n?e.skipTo('"')?(e.next(),"string"):(e.skipToEnd(),"error"):e.match(o)||e.match(i)?"operator":e.match(a)?null:s.test(n)?(e.next(),"bracket"):t.commandMode>0&&e.match(u)?"controlKeyword":e.match(c)?"builtin":e.match(l)?"variable":"$"===n||"^"===n?(e.next(),"builtin"):"@"===n?(e.next(),"string.special"):/[\w%]/.test(n)?(e.eatWhile(/[\w%]/),"variable"):(e.next(),"error")}(e,t);return t.label?"tag":n}}},55188:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rh});var i,o=r("break return rewrite set accept_mutex accept_mutex_delay access_log add_after_body add_before_body add_header addition_types aio alias allow ancient_browser ancient_browser_value auth_basic auth_basic_user_file auth_http auth_http_header auth_http_timeout autoindex autoindex_exact_size autoindex_localtime charset charset_types client_body_buffer_size client_body_in_file_only client_body_in_single_buffer client_body_temp_path client_body_timeout client_header_buffer_size client_header_timeout client_max_body_size connection_pool_size create_full_put_path daemon dav_access dav_methods debug_connection debug_points default_type degradation degrade deny devpoll_changes devpoll_events directio directio_alignment empty_gif env epoll_events error_log eventport_events expires fastcgi_bind fastcgi_buffer_size fastcgi_buffers fastcgi_busy_buffers_size fastcgi_cache fastcgi_cache_key fastcgi_cache_methods fastcgi_cache_min_uses fastcgi_cache_path fastcgi_cache_use_stale fastcgi_cache_valid fastcgi_catch_stderr fastcgi_connect_timeout fastcgi_hide_header fastcgi_ignore_client_abort fastcgi_ignore_headers fastcgi_index fastcgi_intercept_errors fastcgi_max_temp_file_size fastcgi_next_upstream fastcgi_param fastcgi_pass_header fastcgi_pass_request_body fastcgi_pass_request_headers fastcgi_read_timeout fastcgi_send_lowat fastcgi_send_timeout fastcgi_split_path_info fastcgi_store fastcgi_store_access fastcgi_temp_file_write_size fastcgi_temp_path fastcgi_upstream_fail_timeout fastcgi_upstream_max_fails flv geoip_city geoip_country google_perftools_profiles gzip gzip_buffers gzip_comp_level gzip_disable gzip_hash gzip_http_version gzip_min_length gzip_no_buffer gzip_proxied gzip_static gzip_types gzip_vary gzip_window if_modified_since ignore_invalid_headers image_filter image_filter_buffer image_filter_jpeg_quality image_filter_transparency imap_auth imap_capabilities imap_client_buffer index ip_hash keepalive_requests keepalive_timeout kqueue_changes kqueue_events large_client_header_buffers limit_conn limit_conn_log_level limit_rate limit_rate_after limit_req limit_req_log_level limit_req_zone limit_zone lingering_time lingering_timeout lock_file log_format log_not_found log_subrequest map_hash_bucket_size map_hash_max_size master_process memcached_bind memcached_buffer_size memcached_connect_timeout memcached_next_upstream memcached_read_timeout memcached_send_timeout memcached_upstream_fail_timeout memcached_upstream_max_fails merge_slashes min_delete_depth modern_browser modern_browser_value msie_padding msie_refresh multi_accept open_file_cache open_file_cache_errors open_file_cache_events open_file_cache_min_uses open_file_cache_valid open_log_file_cache output_buffers override_charset perl perl_modules perl_require perl_set pid pop3_auth pop3_capabilities port_in_redirect postpone_gzipping postpone_output protocol proxy proxy_bind proxy_buffer proxy_buffer_size proxy_buffering proxy_buffers proxy_busy_buffers_size proxy_cache proxy_cache_key proxy_cache_methods proxy_cache_min_uses proxy_cache_path proxy_cache_use_stale proxy_cache_valid proxy_connect_timeout proxy_headers_hash_bucket_size proxy_headers_hash_max_size proxy_hide_header proxy_ignore_client_abort proxy_ignore_headers proxy_intercept_errors proxy_max_temp_file_size proxy_method proxy_next_upstream proxy_pass_error_message proxy_pass_header proxy_pass_request_body proxy_pass_request_headers proxy_read_timeout proxy_redirect proxy_send_lowat proxy_send_timeout proxy_set_body proxy_set_header proxy_ssl_session_reuse proxy_store proxy_store_access proxy_temp_file_write_size proxy_temp_path proxy_timeout proxy_upstream_fail_timeout proxy_upstream_max_fails random_index read_ahead real_ip_header recursive_error_pages request_pool_size reset_timedout_connection resolver resolver_timeout rewrite_log rtsig_overflow_events rtsig_overflow_test rtsig_overflow_threshold rtsig_signo satisfy secure_link_secret send_lowat send_timeout sendfile sendfile_max_chunk server_name_in_redirect server_names_hash_bucket_size server_names_hash_max_size server_tokens set_real_ip_from smtp_auth smtp_capabilities smtp_client_buffer smtp_greeting_delay so_keepalive source_charset ssi ssi_ignore_recycled_buffers ssi_min_file_chunk ssi_silent_errors ssi_types ssi_value_length ssl ssl_certificate ssl_certificate_key ssl_ciphers ssl_client_certificate ssl_crl ssl_dhparam ssl_engine ssl_prefer_server_ciphers ssl_protocols ssl_session_cache ssl_session_timeout ssl_verify_client ssl_verify_depth starttls stub_status sub_filter sub_filter_once sub_filter_types tcp_nodelay tcp_nopush thread_stack_size timeout timer_resolution types_hash_bucket_size types_hash_max_size underscores_in_headers uninitialized_variable_warn use user userid userid_domain userid_expires userid_mark userid_name userid_p3p userid_path userid_service valid_referers variables_hash_bucket_size variables_hash_max_size worker_connections worker_cpu_affinity worker_priority worker_processes worker_rlimit_core worker_rlimit_nofile worker_rlimit_sigpending worker_threads working_directory xclient xml_entities xslt_stylesheet xslt_typesdrew@li229-23"),a=r("http mail events server types location upstream charset_map limit_except if geo map"),s=r("include root server server_name listen internal proxy_pass memcached_pass fastcgi_pass try_files");function l(e,t){return i=t,e}function c(e,t){e.eatWhile(/[\w\$_]/);var n=e.current();if(o.propertyIsEnumerable(n))return"keyword";if(a.propertyIsEnumerable(n))return"controlKeyword";if(s.propertyIsEnumerable(n))return"controlKeyword";var r,i=e.next();return"@"==i?(e.eatWhile(/[\w\\\-]/),l("meta",e.current())):"/"==i&&e.eat("*")?(t.tokenize=u,u(e,t)):"<"==i&&e.eat("!")?(t.tokenize=d,d(e,t)):"="!=i?"~"!=i&&"|"!=i||!e.eat("=")?'"'==i||"'"==i?(t.tokenize=(r=i,function(e,t){for(var n,i=!1;null!=(n=e.next())&&(n!=r||i);)i=!i&&"\\"==n;return i||(t.tokenize=c),l("string","string")}),t.tokenize(e,t)):"#"==i?(e.skipToEnd(),l("comment","comment")):"!"==i?(e.match(/^\s*\w*/),l("keyword","important")):/\d/.test(i)?(e.eatWhile(/[\w.%]/),l("number","unit")):/[,.+>*\/]/.test(i)?l(null,"select-op"):/[;{}:\[\]]/.test(i)?l(null,i):(e.eatWhile(/[\w\\\-]/),l("variable","variable")):l(null,"compare"):void l(null,"compare")}function u(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=c;break}r="*"==n}return l("comment","comment")}function d(e,t){for(var n,r=0;null!=(n=e.next());){if(r>=2&&">"==n){t.tokenize=c;break}r="-"==n?r+1:0}return l("comment","comment")}const h={name:"nginx",startState:function(){return{tokenize:c,baseIndent:0,stack:[]}},token:function(e,t){if(e.eatSpace())return null;i=null;var n=t.tokenize(e,t),r=t.stack[t.stack.length-1];return"hash"==i&&"rule"==r?n="atom":"variable"==n&&("rule"==r?n="number":r&&"@media{"!=r||(n="tag")),"rule"==r&&/^[\{\};]$/.test(i)&&t.stack.pop(),"{"==i?"@media"==r?t.stack[t.stack.length-1]="@media{":t.stack.push("{"):"}"==i?t.stack.pop():"@media"==i?t.stack.push("@media"):"{"==r&&"comment"!=i&&t.stack.push("rule"),n},indent:function(e,t,n){var r=e.stack.length;return/^\}/.test(t)&&(r-="rule"==e.stack[e.stack.length-1]?2:1),e.baseIndent+r*n.unit},languageData:{indentOnInput:/^\s*\}$/}}},81677:(e,t,n)=>{n.r(t),n.d(t,{nsis:()=>r});const r=(0,n(94526).I)({start:[{regex:/(?:[+-]?)(?:0x[\d,a-f]+)|(?:0o[0-7]+)|(?:0b[0,1]+)|(?:\d+.?\d*)/,token:"number"},{regex:/"(?:[^\\"]|\\.)*"?/,token:"string"},{regex:/'(?:[^\\']|\\.)*'?/,token:"string"},{regex:/`(?:[^\\`]|\\.)*`?/,token:"string"},{regex:/^\s*(?:\!(addincludedir|addplugindir|appendfile|assert|cd|define|delfile|echo|error|execute|finalize|getdllversion|gettlbversion|include|insertmacro|macro|macroend|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|uninstfinalize|verbose|warning))\b/i,token:"keyword"},{regex:/^\s*(?:\!(if(?:n?def)?|ifmacron?def|macro))\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:\!(else|endif|macroend))\b/i,token:"keyword",dedent:!0},{regex:/^\s*(?:Abort|AddBrandingImage|AddSize|AllowRootDirInstall|AllowSkipFiles|AutoCloseWindow|BGFont|BGGradient|BrandingText|BringToFront|Call|CallInstDLL|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|CreateDirectory|CreateFont|CreateShortCut|Delete|DeleteINISec|DeleteINIStr|DeleteRegKey|DeleteRegValue|DetailPrint|DetailsButtonText|DirText|DirVar|DirVerify|EnableWindow|EnumRegKey|EnumRegValue|Exch|Exec|ExecShell|ExecShellWait|ExecWait|ExpandEnvStrings|File|FileBufSize|FileClose|FileErrorText|FileOpen|FileRead|FileReadByte|FileReadUTF16LE|FileReadWord|FileWriteUTF16LE|FileSeek|FileWrite|FileWriteByte|FileWriteWord|FindClose|FindFirst|FindNext|FindWindow|FlushINI|GetCurInstType|GetCurrentAddress|GetDlgItem|GetDLLVersion|GetDLLVersionLocal|GetErrorLevel|GetFileTime|GetFileTimeLocal|GetFullPathName|GetFunctionAddress|GetInstDirError|GetKnownFolderPath|GetLabelAddress|GetTempFileName|GetWinVer|Goto|HideWindow|Icon|IfAbort|IfErrors|IfFileExists|IfRebootFlag|IfRtlLanguage|IfShellVarContextAll|IfSilent|InitPluginsDir|InstallButtonText|InstallColors|InstallDir|InstallDirRegKey|InstProgressFlags|InstType|InstTypeGetText|InstTypeSetText|Int64Cmp|Int64CmpU|Int64Fmt|IntCmp|IntCmpU|IntFmt|IntOp|IntPtrCmp|IntPtrCmpU|IntPtrOp|IsWindow|LangString|LicenseBkColor|LicenseData|LicenseForceSelection|LicenseLangString|LicenseText|LoadAndSetImage|LoadLanguageFile|LockWindow|LogSet|LogText|ManifestDPIAware|ManifestLongPathAware|ManifestMaxVersionTested|ManifestSupportedOS|MessageBox|MiscButtonText|Name|Nop|OutFile|Page|PageCallbacks|PEAddResource|PEDllCharacteristics|PERemoveResource|PESubsysVer|Pop|Push|Quit|ReadEnvStr|ReadINIStr|ReadRegDWORD|ReadRegStr|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|SectionGetFlags|SectionGetInstTypes|SectionGetSize|SectionGetText|SectionIn|SectionSetFlags|SectionSetInstTypes|SectionSetSize|SectionSetText|SendMessage|SetAutoClose|SetBrandingImage|SetCompress|SetCompressor|SetCompressorDictSize|SetCtlColors|SetCurInstType|SetDatablockOptimize|SetDateSave|SetDetailsPrint|SetDetailsView|SetErrorLevel|SetErrors|SetFileAttributes|SetFont|SetOutPath|SetOverwrite|SetRebootFlag|SetRegView|SetShellVarContext|SetSilent|ShowInstDetails|ShowUninstDetails|ShowWindow|SilentInstall|SilentUnInstall|Sleep|SpaceTexts|StrCmp|StrCmpS|StrCpy|StrLen|SubCaption|Target|Unicode|UninstallButtonText|UninstallCaption|UninstallIcon|UninstallSubCaption|UninstallText|UninstPage|UnRegDLL|Var|VIAddVersionKey|VIFileVersion|VIProductVersion|WindowIcon|WriteINIStr|WriteRegBin|WriteRegDWORD|WriteRegExpandStr|WriteRegMultiStr|WriteRegNone|WriteRegStr|WriteUninstaller|XPStyle)\b/i,token:"keyword"},{regex:/^\s*(?:Function|PageEx|Section(?:Group)?)\b/i,token:"keyword",indent:!0},{regex:/^\s*(?:(Function|PageEx|Section(?:Group)?)End)\b/i,token:"keyword",dedent:!0},{regex:/\b(?:ARCHIVE|FILE_ATTRIBUTE_ARCHIVE|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_NORMAL|FILE_ATTRIBUTE_OFFLINE|FILE_ATTRIBUTE_READONLY|FILE_ATTRIBUTE_SYSTEM|FILE_ATTRIBUTE_TEMPORARY|HIDDEN|HKCC|HKCR(32|64)?|HKCU(32|64)?|HKDD|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_DYN_DATA|HKEY_LOCAL_MACHINE|HKEY_PERFORMANCE_DATA|HKEY_USERS|HKLM(32|64)?|HKPD|HKU|IDABORT|IDCANCEL|IDD_DIR|IDD_INST|IDD_INSTFILES|IDD_LICENSE|IDD_SELCOM|IDD_UNINST|IDD_VERIFY|IDIGNORE|IDNO|IDOK|IDRETRY|IDYES|MB_ABORTRETRYIGNORE|MB_DEFBUTTON1|MB_DEFBUTTON2|MB_DEFBUTTON3|MB_DEFBUTTON4|MB_ICONEXCLAMATION|MB_ICONINFORMATION|MB_ICONQUESTION|MB_ICONSTOP|MB_OK|MB_OKCANCEL|MB_RETRYCANCEL|MB_RIGHT|MB_RTLREADING|MB_SETFOREGROUND|MB_TOPMOST|MB_USERICON|MB_YESNO|MB_YESNOCANCEL|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SW_HIDE|SW_SHOWDEFAULT|SW_SHOWMAXIMIZED|SW_SHOWMINIMIZED|SW_SHOWNORMAL|SYSTEM|TEMPORARY)\b/i,token:"atom"},{regex:/\b(?:admin|all|amd64-unicode|auto|both|bottom|bzip2|components|current|custom|directory|false|force|hide|highest|ifdiff|ifnewer|instfiles|lastused|leave|left|license|listonly|lzma|nevershow|none|normal|notset|off|on|right|show|silent|silentlog|textonly|top|true|try|un\.components|un\.custom|un\.directory|un\.instfiles|un\.license|uninstConfirm|user|Win10|Win7|Win8|WinVista|x-86-(ansi|unicode)|zlib)\b/i,token:"builtin"},{regex:/\$\{(?:And(?:If(?:Not)?|Unless)|Break|Case(?:2|3|4|5|Else)?|Continue|Default|Do(?:Until|While)?|Else(?:If(?:Not)?|Unless)?|End(?:If|Select|Switch)|Exit(?:Do|For|While)|For(?:Each)?|If(?:Cmd|Not(?:Then)?|Then)?|Loop(?:Until|While)?|Or(?:If(?:Not)?|Unless)|Select|Switch|Unless|While)\}/i,token:"variable-2",indent:!0},{regex:/\$\{(?:BannerTrimPath|DirState|DriveSpace|Get(BaseName|Drives|ExeName|ExePath|FileAttributes|FileExt|FileName|FileVersion|Options|OptionsS|Parameters|Parent|Root|Size|Time)|Locate|RefreshShellIcons)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Memento(?:Section(?:Done|End|Restore|Save)?|UnselectedSection))\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:Config(?:Read|ReadS|Write|WriteS)|File(?:Join|ReadFromEnd|Recode)|Line(?:Find|Read|Sum)|Text(?:Compare|CompareS)|TrimNewLines)\}/i,token:"variable-2",dedent:!0},{regex:/\$\{(?:(?:At(?:Least|Most)|Is)(?:ServicePack|Win(?:7|8|10|95|98|200(?:0|3|8(?:R2)?)|ME|NT4|Vista|XP))|Is(?:NT|Server))\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:StrFilterS?|Version(?:Compare|Convert)|Word(?:AddS?|Find(?:(?:2|3)X)?S?|InsertS?|ReplaceS?))\}/i,token:"keyword",dedent:!0},{regex:/\$\{(?:RunningX64)\}/i,token:"variable",dedent:!0},{regex:/\$\{(?:Disable|Enable)X64FSRedirection\}/i,token:"keyword",dedent:!0},{regex:/(#|;).*/,token:"comment"},{regex:/\/\*/,token:"comment",next:"comment"},{regex:/[-+\/*=<>!]+/,token:"operator"},{regex:/\$\w[\w\.]*/,token:"variable"},{regex:/\${[\!\w\.:-]+}/,token:"variableName.constant"},{regex:/\$\([\!\w\.:-]+\)/,token:"atom"}],comment:[{regex:/.*?\*\//,token:"comment",next:"start"},{regex:/.*/,token:"comment"}],languageData:{name:"nsis",indentOnInput:/^\s*((Function|PageEx|Section|Section(Group)?)End|(\!(endif|macroend))|\$\{(End(If|Unless|While)|Loop(Until)|Next)\})$/i,commentTokens:{line:"#",block:{open:"/*",close:"*/"}}}})},68945:(e,t,n)=>{n.r(t),n.d(t,{ntriples:()=>b});var r=0,i=1,o=2,a=3,s=4,l=5,c=6,u=7,d=8,h=9,f=10,m=11,p=12;function g(e,t){var n,g=e.location;n=g==r&&"<"==t?i:g==r&&"_"==t?o:g==a&&"<"==t?s:g==l&&"<"==t?c:g==l&&"_"==t?u:g==l&&'"'==t?d:g==i&&">"==t||g==o&&" "==t?a:g==s&&">"==t?l:g==c&&">"==t||g==u&&" "==t||g==d&&'"'==t||g==h&&" "==t||g==f&&">"==t?m:g==d&&"@"==t?h:g==d&&"^"==t?f:" "!=t||g!=r&&g!=a&&g!=l&&g!=m?g==m&&"."==t?r:p:g,e.location=n}const b={name:"ntriples",startState:function(){return{location:r,uris:[],anchors:[],bnodes:[],langs:[],types:[]}},token:function(e,t){var n=e.next();if("<"==n){g(t,n);var r="";return e.eatWhile((function(e){return"#"!=e&&">"!=e&&(r+=e,!0)})),t.uris.push(r),e.match("#",!1)?"variable":(e.next(),g(t,">"),"variable")}if("#"==n){var i="";return e.eatWhile((function(e){return">"!=e&&" "!=e&&(i+=e,!0)})),t.anchors.push(i),"url"}if(">"==n)return g(t,">"),"variable";if("_"==n){g(t,n);var o="";return e.eatWhile((function(e){return" "!=e&&(o+=e,!0)})),t.bnodes.push(o),e.next(),g(t," "),"builtin"}if('"'==n)return g(t,n),e.eatWhile((function(e){return'"'!=e})),e.next(),"@"!=e.peek()&&"^"!=e.peek()&&g(t,'"'),"string";if("@"==n){g(t,"@");var a="";return e.eatWhile((function(e){return" "!=e&&(a+=e,!0)})),t.langs.push(a),e.next(),g(t," "),"string.special"}if("^"==n){e.next(),g(t,"^");var s="";return e.eatWhile((function(e){return">"!=e&&(s+=e,!0)})),t.types.push(s),e.next(),g(t,">"),"variable"}" "==n&&g(t,n),"."==n&&g(t,n)}}},69750:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{octave:()=>g});var i=new RegExp("^[\\+\\-\\*/&|\\^~<>!@'\\\\]"),o=new RegExp("^[\\(\\[\\{\\},:=;\\.]"),a=new RegExp("^((==)|(~=)|(<=)|(>=)|(<<)|(>>)|(\\.[\\+\\-\\*/\\^\\\\]))"),s=new RegExp("^((!=)|(\\+=)|(\\-=)|(\\*=)|(/=)|(&=)|(\\|=)|(\\^=))"),l=new RegExp("^((>>=)|(<<=))"),c=new RegExp("^[\\]\\)]"),u=new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*"),d=r(["error","eval","function","abs","acos","atan","asin","cos","cosh","exp","log","prod","sum","log10","max","min","sign","sin","sinh","sqrt","tan","reshape","break","zeros","default","margin","round","ones","rand","syn","ceil","floor","size","clear","zeros","eye","mean","std","cov","det","eig","inv","norm","rank","trace","expm","logm","sqrtm","linspace","plot","title","xlabel","ylabel","legend","text","grid","meshgrid","mesh","num2str","fft","ifft","arrayfun","cellfun","input","fliplr","flipud","ismember"]),h=r(["return","case","switch","else","elseif","end","endif","endfunction","if","otherwise","do","for","while","try","catch","classdef","properties","events","methods","global","persistent","endfor","endwhile","printf","sprintf","disp","until","continue","pkg"]);function f(e,t){return e.sol()||"'"!==e.peek()?(t.tokenize=p,p(e,t)):(e.next(),t.tokenize=p,"operator")}function m(e,t){return e.match(/^.*%}/)?(t.tokenize=p,"comment"):(e.skipToEnd(),"comment")}function p(e,t){if(e.eatSpace())return null;if(e.match("%{"))return t.tokenize=m,e.skipToEnd(),"comment";if(e.match(/^[%#]/))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+[ij]?/))return e.tokenize=p,"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?[ij]?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?[ij]?/))return"number"}if(e.match(r(["nan","NaN","inf","Inf"])))return"number";var n=e.match(/^"(?:[^"]|"")*("|$)/)||e.match(/^'(?:[^']|'')*('|$)/);return n?n[1]?"string":"error":e.match(h)?"keyword":e.match(d)?"builtin":e.match(u)?"variable":e.match(i)||e.match(a)?"operator":e.match(o)||e.match(s)||e.match(l)?null:e.match(c)?(t.tokenize=f,null):(e.next(),"error")}const g={name:"octave",startState:function(){return{tokenize:p}},token:function(e,t){var n=t.tokenize(e,t);return"number"!==n&&"variable"!==n||(t.tokenize=f),n},languageData:{commentTokens:{line:"%"}}}},95395:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{oz:()=>y});var i=/[\^@!\|<>#~\.\*\-\+\\/,=]/,o=/(<-)|(:=)|(=<)|(>=)|(<=)|(<:)|(>:)|(=:)|(\\=)|(\\=:)|(!!)|(==)|(::)/,a=/(:::)|(\.\.\.)|(=<:)|(>=:)/,s=["in","then","else","of","elseof","elsecase","elseif","catch","finally","with","require","prepare","import","export","define","do"],l=["end"],c=r(["true","false","nil","unit"]),u=r(["andthen","at","attr","declare","feat","from","lex","mod","div","mode","orelse","parser","prod","prop","scanner","self","syn","token"]),d=r(["local","proc","fun","case","class","if","cond","or","dis","choice","not","thread","try","raise","lock","for","suchthat","meth","functor"]),h=r(s),f=r(l);function m(e,t){if(e.eatSpace())return null;if(e.match(/[{}]/))return"bracket";if(e.match("[]"))return"keyword";if(e.match(a)||e.match(o))return"operator";if(e.match(c))return"atom";var n=e.match(d);if(n)return t.doInCurrentLine?t.doInCurrentLine=!1:t.currentIndent++,"proc"==n[0]||"fun"==n[0]?t.tokenize=b:"class"==n[0]?t.tokenize=p:"meth"==n[0]&&(t.tokenize=g),"keyword";if(e.match(h)||e.match(u))return"keyword";if(e.match(f))return t.currentIndent--,"keyword";var r,s=e.next();if('"'==s||"'"==s)return t.tokenize=(r=s,function(e,t){for(var n,i=!1,o=!1;null!=(n=e.next());){if(n==r&&!i){o=!0;break}i=!i&&"\\"==n}return!o&&i||(t.tokenize=m),"string"}),t.tokenize(e,t);if(/[~\d]/.test(s)){if("~"==s){if(!/^[0-9]/.test(e.peek()))return null;if("0"==e.next()&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/))return"number"}return"0"==s&&e.match(/^[xX][0-9a-fA-F]+/)||e.match(/^[0-9]*(\.[0-9]+)?([eE][~+]?[0-9]+)?/)?"number":null}return"%"==s?(e.skipToEnd(),"comment"):"/"==s&&e.eat("*")?(t.tokenize=v,v(e,t)):i.test(s)?"operator":(e.eatWhile(/\w/),"variable")}function p(e,t){return e.eatSpace()?null:(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=m,"type")}function g(e,t){return e.eatSpace()?null:(e.match(/([a-zA-Z][A-Za-z0-9_]*)|(`.+`)/),t.tokenize=m,"def")}function b(e,t){return e.eatSpace()?null:!t.hasPassedFirstStage&&e.eat("{")?(t.hasPassedFirstStage=!0,"bracket"):t.hasPassedFirstStage?(e.match(/([A-Z][A-Za-z0-9_]*)|(`.+`)|\$/),t.hasPassedFirstStage=!1,t.tokenize=m,"def"):(t.tokenize=m,null)}function v(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=m;break}r="*"==n}return"comment"}const y={name:"oz",startState:function(){return{tokenize:m,currentIndent:0,doInCurrentLine:!1,hasPassedFirstStage:!1}},token:function(e,t){return e.sol()&&(t.doInCurrentLine=0),t.tokenize(e,t)},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(f)||r.match(h)||r.match(/(\[])/)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{indentOnInut:function(){var e=s.concat(l);return new RegExp("[\\[\\]]|("+e.join("|")+")$")}(),commentTokens:{line:"%",block:{open:"/*",close:"*/"}}}}},84374:(e,t,n)=>{n.r(t),n.d(t,{pascal:()=>c});var r=function(e){for(var t={},n=e.split(" "),r=0;r!?|\/]/;function a(e,t){var n,a=e.next();if("#"==a&&t.startOfLine)return e.skipToEnd(),"meta";if('"'==a||"'"==a)return t.tokenize=(n=a,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return!o&&i||(t.tokenize=null),"string"}),t.tokenize(e,t);if("("==a&&e.eat("*"))return t.tokenize=s,s(e,t);if("{"==a)return t.tokenize=l,l(e,t);if(/[\[\]\(\),;\:\.]/.test(a))return null;if(/\d/.test(a))return e.eatWhile(/[\w\.]/),"number";if("/"==a&&e.eat("/"))return e.skipToEnd(),"comment";if(o.test(a))return e.eatWhile(o),"operator";e.eatWhile(/[\w\$_]/);var c=e.current();return r.propertyIsEnumerable(c)?"keyword":i.propertyIsEnumerable(c)?"atom":"variable"}function s(e,t){for(var n,r=!1;n=e.next();){if(")"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function l(e,t){for(var n;n=e.next();)if("}"==n){t.tokenize=null;break}return"comment"}const c={name:"pascal",startState:function(){return{tokenize:null}},token:function(e,t){if(e.eatSpace())return null;var n=(t.tokenize||a)(e,t);return n},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{block:{open:"(*",close:"*)"}}}}},31615:(e,t,n)=>{function r(e,t){return e.string.charAt(e.pos+(t||0))}function i(e,t){if(t){var n=e.pos-t;return e.string.substr(n>=0?n:0,t)}return e.string.substr(0,e.pos-1)}function o(e,t){var n=e.string.length,r=n-e.pos+1;return e.string.substr(e.pos,t&&t=(n=e.string.length-1)?e.pos=n:e.pos=r}n.r(t),n.d(t,{perl:()=>f});var s={"->":4,"++":4,"--":4,"**":4,"=~":4,"!~":4,"*":4,"/":4,"%":4,x:4,"+":4,"-":4,".":4,"<<":4,">>":4,"<":4,">":4,"<=":4,">=":4,lt:4,gt:4,le:4,ge:4,"==":4,"!=":4,"<=>":4,eq:4,ne:4,cmp:4,"~~":4,"&":4,"|":4,"^":4,"&&":4,"||":4,"//":4,"..":4,"...":4,"?":4,":":4,"=":4,"+=":4,"-=":4,"*=":4,",":4,"=>":4,"::":4,not:4,and:4,or:4,xor:4,BEGIN:[5,1],END:[5,1],PRINT:[5,1],PRINTF:[5,1],GETC:[5,1],READ:[5,1],READLINE:[5,1],DESTROY:[5,1],TIE:[5,1],TIEHANDLE:[5,1],UNTIE:[5,1],STDIN:5,STDIN_TOP:5,STDOUT:5,STDOUT_TOP:5,STDERR:5,STDERR_TOP:5,$ARG:5,$_:5,"@ARG":5,"@_":5,$LIST_SEPARATOR:5,'$"':5,$PROCESS_ID:5,$PID:5,$$:5,$REAL_GROUP_ID:5,$GID:5,"$(":5,$EFFECTIVE_GROUP_ID:5,$EGID:5,"$)":5,$PROGRAM_NAME:5,$0:5,$SUBSCRIPT_SEPARATOR:5,$SUBSEP:5,"$;":5,$REAL_USER_ID:5,$UID:5,"$<":5,$EFFECTIVE_USER_ID:5,$EUID:5,"$>":5,$a:5,$b:5,$COMPILING:5,"$^C":5,$DEBUGGING:5,"$^D":5,"${^ENCODING}":5,$ENV:5,"%ENV":5,$SYSTEM_FD_MAX:5,"$^F":5,"@F":5,"${^GLOBAL_PHASE}":5,"$^H":5,"%^H":5,"@INC":5,"%INC":5,$INPLACE_EDIT:5,"$^I":5,"$^M":5,$OSNAME:5,"$^O":5,"${^OPEN}":5,$PERLDB:5,"$^P":5,$SIG:5,"%SIG":5,$BASETIME:5,"$^T":5,"${^TAINT}":5,"${^UNICODE}":5,"${^UTF8CACHE}":5,"${^UTF8LOCALE}":5,$PERL_VERSION:5,"$^V":5,"${^WIN32_SLOPPY_STAT}":5,$EXECUTABLE_NAME:5,"$^X":5,$1:5,$MATCH:5,"$&":5,"${^MATCH}":5,$PREMATCH:5,"$`":5,"${^PREMATCH}":5,$POSTMATCH:5,"$'":5,"${^POSTMATCH}":5,$LAST_PAREN_MATCH:5,"$+":5,$LAST_SUBMATCH_RESULT:5,"$^N":5,"@LAST_MATCH_END":5,"@+":5,"%LAST_PAREN_MATCH":5,"%+":5,"@LAST_MATCH_START":5,"@-":5,"%LAST_MATCH_START":5,"%-":5,$LAST_REGEXP_CODE_RESULT:5,"$^R":5,"${^RE_DEBUG_FLAGS}":5,"${^RE_TRIE_MAXBUF}":5,$ARGV:5,"@ARGV":5,ARGV:5,ARGVOUT:5,$OUTPUT_FIELD_SEPARATOR:5,$OFS:5,"$,":5,$INPUT_LINE_NUMBER:5,$NR:5,"$.":5,$INPUT_RECORD_SEPARATOR:5,$RS:5,"$/":5,$OUTPUT_RECORD_SEPARATOR:5,$ORS:5,"$\\":5,$OUTPUT_AUTOFLUSH:5,"$|":5,$ACCUMULATOR:5,"$^A":5,$FORMAT_FORMFEED:5,"$^L":5,$FORMAT_PAGE_NUMBER:5,"$%":5,$FORMAT_LINES_LEFT:5,"$-":5,$FORMAT_LINE_BREAK_CHARACTERS:5,"$:":5,$FORMAT_LINES_PER_PAGE:5,"$=":5,$FORMAT_TOP_NAME:5,"$^":5,$FORMAT_NAME:5,"$~":5,"${^CHILD_ERROR_NATIVE}":5,$EXTENDED_OS_ERROR:5,"$^E":5,$EXCEPTIONS_BEING_CAUGHT:5,"$^S":5,$WARNING:5,"$^W":5,"${^WARNING_BITS}":5,$OS_ERROR:5,$ERRNO:5,"$!":5,"%OS_ERROR":5,"%ERRNO":5,"%!":5,$CHILD_ERROR:5,"$?":5,$EVAL_ERROR:5,"$@":5,$OFMT:5,"$#":5,"$*":5,$ARRAY_BASE:5,"$[":5,$OLD_PERL_VERSION:5,"$]":5,if:[1,1],elsif:[1,1],else:[1,1],while:[1,1],unless:[1,1],for:[1,1],foreach:[1,1],abs:1,accept:1,alarm:1,atan2:1,bind:1,binmode:1,bless:1,bootstrap:1,break:1,caller:1,chdir:1,chmod:1,chomp:1,chop:1,chown:1,chr:1,chroot:1,close:1,closedir:1,connect:1,continue:[1,1],cos:1,crypt:1,dbmclose:1,dbmopen:1,default:1,defined:1,delete:1,die:1,do:1,dump:1,each:1,endgrent:1,endhostent:1,endnetent:1,endprotoent:1,endpwent:1,endservent:1,eof:1,eval:1,exec:1,exists:1,exit:1,exp:1,fcntl:1,fileno:1,flock:1,fork:1,format:1,formline:1,getc:1,getgrent:1,getgrgid:1,getgrnam:1,gethostbyaddr:1,gethostbyname:1,gethostent:1,getlogin:1,getnetbyaddr:1,getnetbyname:1,getnetent:1,getpeername:1,getpgrp:1,getppid:1,getpriority:1,getprotobyname:1,getprotobynumber:1,getprotoent:1,getpwent:1,getpwnam:1,getpwuid:1,getservbyname:1,getservbyport:1,getservent:1,getsockname:1,getsockopt:1,given:1,glob:1,gmtime:1,goto:1,grep:1,hex:1,import:1,index:1,int:1,ioctl:1,join:1,keys:1,kill:1,last:1,lc:1,lcfirst:1,length:1,link:1,listen:1,local:2,localtime:1,lock:1,log:1,lstat:1,m:null,map:1,mkdir:1,msgctl:1,msgget:1,msgrcv:1,msgsnd:1,my:2,new:1,next:1,no:1,oct:1,open:1,opendir:1,ord:1,our:2,pack:1,package:1,pipe:1,pop:1,pos:1,print:1,printf:1,prototype:1,push:1,q:null,qq:null,qr:null,quotemeta:null,qw:null,qx:null,rand:1,read:1,readdir:1,readline:1,readlink:1,readpipe:1,recv:1,redo:1,ref:1,rename:1,require:1,reset:1,return:1,reverse:1,rewinddir:1,rindex:1,rmdir:1,s:null,say:1,scalar:1,seek:1,seekdir:1,select:1,semctl:1,semget:1,semop:1,send:1,setgrent:1,sethostent:1,setnetent:1,setpgrp:1,setpriority:1,setprotoent:1,setpwent:1,setservent:1,setsockopt:1,shift:1,shmctl:1,shmget:1,shmread:1,shmwrite:1,shutdown:1,sin:1,sleep:1,socket:1,socketpair:1,sort:1,splice:1,split:1,sprintf:1,sqrt:1,srand:1,stat:1,state:1,study:1,sub:1,substr:1,symlink:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,tell:1,telldir:1,tie:1,tied:1,time:1,times:1,tr:null,truncate:1,uc:1,ucfirst:1,umask:1,undef:1,unlink:1,unpack:1,unshift:1,untie:1,use:1,utime:1,values:1,vec:1,wait:1,waitpid:1,wantarray:1,warn:1,when:1,write:1,y:null},l="string.special",c=/[goseximacplud]/;function u(e,t,n,r,i){return t.chain=null,t.style=null,t.tail=null,t.tokenize=function(e,t){for(var o,a=!1,s=0;o=e.next();){if(o===n[s]&&!a)return void 0!==n[++s]?(t.chain=n[s],t.style=r,t.tail=i):i&&e.eatWhile(i),t.tokenize=h,r;a=!a&&"\\"==o}return r},t.tokenize(e,t)}function d(e,t,n){return t.tokenize=function(e,t){return e.string==n&&(t.tokenize=h),e.skipToEnd(),"string"},t.tokenize(e,t)}function h(e,t){if(e.eatSpace())return null;if(t.chain)return u(e,t,t.chain,t.style,t.tail);if(e.match(/^(\-?((\d[\d_]*)?\.\d+(e[+-]?\d+)?|\d+\.\d*)|0x[\da-fA-F_]+|0b[01_]+|\d[\d_]*(e[+-]?\d+)?)/))return"number";if(e.match(/^<<(?=[_a-zA-Z])/))return e.eatWhile(/\w/),d(e,t,e.current().substr(2));if(e.sol()&&e.match(/^\=item(?!\w)/))return d(e,t,"=cut");var n=e.next();if('"'==n||"'"==n){if(i(e,3)=="<<"+n){var h=e.pos;e.eatWhile(/\w/);var f=e.current().substr(1);if(f&&e.eat(n))return d(e,t,f);e.pos=h}return u(e,t,[n],"string")}if("q"==n&&(!(m=r(e,-2))||!/\w/.test(m)))if("x"==(m=r(e,0))){if("("==(m=r(e,1)))return a(e,2),u(e,t,[")"],l,c);if("["==m)return a(e,2),u(e,t,["]"],l,c);if("{"==m)return a(e,2),u(e,t,["}"],l,c);if("<"==m)return a(e,2),u(e,t,[">"],l,c);if(/[\^'"!~\/]/.test(m))return a(e,1),u(e,t,[e.eat(m)],l,c)}else if("q"==m){if("("==(m=r(e,1)))return a(e,2),u(e,t,[")"],"string");if("["==m)return a(e,2),u(e,t,["]"],"string");if("{"==m)return a(e,2),u(e,t,["}"],"string");if("<"==m)return a(e,2),u(e,t,[">"],"string");if(/[\^'"!~\/]/.test(m))return a(e,1),u(e,t,[e.eat(m)],"string")}else if("w"==m){if("("==(m=r(e,1)))return a(e,2),u(e,t,[")"],"bracket");if("["==m)return a(e,2),u(e,t,["]"],"bracket");if("{"==m)return a(e,2),u(e,t,["}"],"bracket");if("<"==m)return a(e,2),u(e,t,[">"],"bracket");if(/[\^'"!~\/]/.test(m))return a(e,1),u(e,t,[e.eat(m)],"bracket")}else if("r"==m){if("("==(m=r(e,1)))return a(e,2),u(e,t,[")"],l,c);if("["==m)return a(e,2),u(e,t,["]"],l,c);if("{"==m)return a(e,2),u(e,t,["}"],l,c);if("<"==m)return a(e,2),u(e,t,[">"],l,c);if(/[\^'"!~\/]/.test(m))return a(e,1),u(e,t,[e.eat(m)],l,c)}else if(/[\^'"!~\/(\[{<]/.test(m)){if("("==m)return a(e,1),u(e,t,[")"],"string");if("["==m)return a(e,1),u(e,t,["]"],"string");if("{"==m)return a(e,1),u(e,t,["}"],"string");if("<"==m)return a(e,1),u(e,t,[">"],"string");if(/[\^'"!~\/]/.test(m))return u(e,t,[e.eat(m)],"string")}if("m"==n&&((!(m=r(e,-2))||!/\w/.test(m))&&(m=e.eat(/[(\[{<\^'"!~\/]/)))){if(/[\^'"!~\/]/.test(m))return u(e,t,[m],l,c);if("("==m)return u(e,t,[")"],l,c);if("["==m)return u(e,t,["]"],l,c);if("{"==m)return u(e,t,["}"],l,c);if("<"==m)return u(e,t,[">"],l,c)}if("s"==n&&(!(m=/[\/>\]})\w]/.test(r(e,-2)))&&(m=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==m?["]","]"]:"{"==m?["}","}"]:"<"==m?[">",">"]:"("==m?[")",")"]:[m,m],l,c);if("y"==n&&(!(m=/[\/>\]})\w]/.test(r(e,-2)))&&(m=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==m?["]","]"]:"{"==m?["}","}"]:"<"==m?[">",">"]:"("==m?[")",")"]:[m,m],l,c);if("t"==n&&(!(m=/[\/>\]})\w]/.test(r(e,-2)))&&(m=e.eat("r"))&&(m=e.eat(/[(\[{<\^'"!~\/]/))))return u(e,t,"["==m?["]","]"]:"{"==m?["}","}"]:"<"==m?[">",">"]:"("==m?[")",")"]:[m,m],l,c);if("`"==n)return u(e,t,[n],"builtin");if("/"==n)return/~\s*$/.test(i(e))?u(e,t,[n],l,c):"operator";if("$"==n){h=e.pos;if(e.eatWhile(/\d/)||e.eat("{")&&e.eatWhile(/\d/)&&e.eat("}"))return"builtin";e.pos=h}if(/[$@%]/.test(n)){h=e.pos;if(e.eat("^")&&e.eat(/[A-Z]/)||!/[@$%&]/.test(r(e,-2))&&e.eat(/[=|\\\-#?@;:&`~\^!\[\]*'"$+.,\/<>()]/)){var m=e.current();if(s[m])return"builtin"}e.pos=h}if(/[$@%&]/.test(n)&&(e.eatWhile(/[\w$]/)||e.eat("{")&&e.eatWhile(/[\w$]/)&&e.eat("}"))){m=e.current();return s[m]?"builtin":"variable"}if("#"==n&&"$"!=r(e,-2))return e.skipToEnd(),"comment";if(/[:+\-\^*$&%@=<>!?|\/~\.]/.test(n)){h=e.pos;if(e.eatWhile(/[:+\-\^*$&%@=<>!?|\/~\.]/),s[e.current()])return"operator";e.pos=h}if("_"==n&&1==e.pos){if("_END__"==o(e,6))return u(e,t,["\0"],"comment");if("_DATA__"==o(e,7))return u(e,t,["\0"],"builtin");if("_C__"==o(e,7))return u(e,t,["\0"],"string")}if(/\w/.test(n)){h=e.pos;if("{"==r(e,-2)&&("}"==r(e,0)||e.eatWhile(/\w/)&&"}"==r(e,0)))return"string";e.pos=h}if(/[A-Z]/.test(n)){var p=r(e,-2);h=e.pos;if(e.eatWhile(/[A-Z_]/),!/[\da-z]/.test(r(e,0)))return(m=s[e.current()])?(m[1]&&(m=m[0]),":"!=p?1==m?"keyword":2==m?"def":3==m?"atom":4==m?"operator":5==m?"builtin":"meta":"meta"):"meta";e.pos=h}if(/[a-zA-Z_]/.test(n)){p=r(e,-2);return e.eatWhile(/\w/),(m=s[e.current()])?(m[1]&&(m=m[0]),":"!=p?1==m?"keyword":2==m?"def":3==m?"atom":4==m?"operator":5==m?"builtin":"meta":"meta"):"meta"}return null}const f={name:"perl",startState:function(){return{tokenize:h,chain:null,style:null,tail:null}},token:function(e,t){return(t.tokenize||h)(e,t)},languageData:{commentTokens:{line:"#"},wordChars:"$"}}},21140:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rm});var i="ABS ACOS ARITY ASIN ATAN AVG BAGSIZE BINSTORAGE BLOOM BUILDBLOOM CBRT CEIL CONCAT COR COS COSH COUNT COUNT_STAR COV CONSTANTSIZE CUBEDIMENSIONS DIFF DISTINCT DOUBLEABS DOUBLEAVG DOUBLEBASE DOUBLEMAX DOUBLEMIN DOUBLEROUND DOUBLESUM EXP FLOOR FLOATABS FLOATAVG FLOATMAX FLOATMIN FLOATROUND FLOATSUM GENERICINVOKER INDEXOF INTABS INTAVG INTMAX INTMIN INTSUM INVOKEFORDOUBLE INVOKEFORFLOAT INVOKEFORINT INVOKEFORLONG INVOKEFORSTRING INVOKER ISEMPTY JSONLOADER JSONMETADATA JSONSTORAGE LAST_INDEX_OF LCFIRST LOG LOG10 LOWER LONGABS LONGAVG LONGMAX LONGMIN LONGSUM MAX MIN MAPSIZE MONITOREDUDF NONDETERMINISTIC OUTPUTSCHEMA PIGSTORAGE PIGSTREAMING RANDOM REGEX_EXTRACT REGEX_EXTRACT_ALL REPLACE ROUND SIN SINH SIZE SQRT STRSPLIT SUBSTRING SUM STRINGCONCAT STRINGMAX STRINGMIN STRINGSIZE TAN TANH TOBAG TOKENIZE TOMAP TOP TOTUPLE TRIM TEXTLOADER TUPLESIZE UCFIRST UPPER UTF8STORAGECONVERTER ",o="VOID IMPORT RETURNS DEFINE LOAD FILTER FOREACH ORDER CUBE DISTINCT COGROUP JOIN CROSS UNION SPLIT INTO IF OTHERWISE ALL AS BY USING INNER OUTER ONSCHEMA PARALLEL PARTITION GROUP AND OR NOT GENERATE FLATTEN ASC DESC IS STREAM THROUGH STORE MAPREDUCE SHIP CACHE INPUT OUTPUT STDERROR STDIN STDOUT LIMIT SAMPLE LEFT RIGHT FULL EQ GT LT GTE LTE NEQ MATCHES TRUE FALSE DUMP",a="BOOLEAN INT LONG FLOAT DOUBLE CHARARRAY BYTEARRAY BAG TUPLE MAP ",s=r(i),l=r(o),c=r(a),u=/[*+\-%<>=&?:\/!|]/;function d(e,t,n){return t.tokenize=n,n(e,t)}function h(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=f;break}r="*"==n}return"comment"}function f(e,t){var n,r=e.next();return'"'==r||"'"==r?d(e,t,(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){o=!0;break}i=!i&&"\\"==r}return!o&&i||(t.tokenize=f),"error"})):/[\[\]{}\(\),;\.]/.test(r)?null:/\d/.test(r)?(e.eatWhile(/[\w\.]/),"number"):"/"==r?e.eat("*")?d(e,t,h):(e.eatWhile(u),"operator"):"-"==r?e.eat("-")?(e.skipToEnd(),"comment"):(e.eatWhile(u),"operator"):u.test(r)?(e.eatWhile(u),"operator"):(e.eatWhile(/[\w\$_]/),l&&l.propertyIsEnumerable(e.current().toUpperCase())&&!e.eat(")")&&!e.eat(".")?"keyword":s&&s.propertyIsEnumerable(e.current().toUpperCase())?"builtin":c&&c.propertyIsEnumerable(e.current().toUpperCase())?"type":"variable")}const m={name:"pig",startState:function(){return{tokenize:f,startOfLine:!0}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{autocomplete:(i+a+o).split(" ")}}},11839:(e,t,n)=>{function r(e,t){for(var n=void 0!==(t=t||{}).prefix?t.prefix:"^",r=void 0!==t.suffix?t.suffix:"\\b",i=0;iw});var i="(?=[^A-Za-z\\d\\-_]|$)",o=/[\w\-:]/,a=r([/begin|break|catch|continue|data|default|do|dynamicparam/,/else|elseif|end|exit|filter|finally|for|foreach|from|function|if|in/,/param|process|return|switch|throw|trap|try|until|where|while/],{suffix:i}),s=r(["f",/b?not/,/[ic]?split/,"join",/is(not)?/,"as",/[ic]?(eq|ne|[gl][te])/,/[ic]?(not)?(like|match|contains)/,/[ic]?replace/,/b?(and|or|xor)/],{prefix:"-"}),l=r([s,/[+\-*\/%]=|\+\+|--|\.\.|[+\-*&^%:=!|\/]|<(?!#)|(?!#)>/],{suffix:""}),c=r([/Add-(Computer|Content|History|Member|PSSnapin|Type)/,/Checkpoint-Computer/,/Clear-(Content|EventLog|History|Host|Item(Property)?|Variable)/,/Compare-Object/,/Complete-Transaction/,/Connect-PSSession/,/ConvertFrom-(Csv|Json|SecureString|StringData)/,/Convert-Path/,/ConvertTo-(Csv|Html|Json|SecureString|Xml)/,/Copy-Item(Property)?/,/Debug-Process/,/Disable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/Disconnect-PSSession/,/Enable-(ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)/,/(Enter|Exit)-PSSession/,/Export-(Alias|Clixml|Console|Counter|Csv|FormatData|ModuleMember|PSSession)/,/ForEach-Object/,/Format-(Custom|List|Table|Wide)/,new RegExp("Get-(Acl|Alias|AuthenticodeSignature|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Counter|Credential|Culture|Date|Event|EventLog|EventSubscriber|ExecutionPolicy|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|PfxCertificate|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|Verb|WinEvent|WmiObject)"),/Group-Object/,/Import-(Alias|Clixml|Counter|Csv|LocalizedData|Module|PSSession)/,/ImportSystemModules/,/Invoke-(Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)/,/Join-Path/,/Limit-EventLog/,/Measure-(Command|Object)/,/Move-Item(Property)?/,new RegExp("New-(Alias|Event|EventLog|Item(Property)?|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy|WinEvent)"),/Out-(Default|File|GridView|Host|Null|Printer|String)/,/Pause/,/(Pop|Push)-Location/,/Read-Host/,/Receive-(Job|PSSession)/,/Register-(EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)/,/Remove-(Computer|Event|EventLog|Item(Property)?|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)/,/Rename-(Computer|Item(Property)?)/,/Reset-ComputerMachinePassword/,/Resolve-Path/,/Restart-(Computer|Service)/,/Restore-Computer/,/Resume-(Job|Service)/,/Save-Help/,/Select-(Object|String|Xml)/,/Send-MailMessage/,new RegExp("Set-(Acl|Alias|AuthenticodeSignature|Content|Date|ExecutionPolicy|Item(Property)?|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)"),/Show-(Command|ControlPanelItem|EventLog)/,/Sort-Object/,/Split-Path/,/Start-(Job|Process|Service|Sleep|Transaction|Transcript)/,/Stop-(Computer|Job|Process|Service|Transcript)/,/Suspend-(Job|Service)/,/TabExpansion2/,/Tee-Object/,/Test-(ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)/,/Trace-Command/,/Unblock-File/,/Undo-Transaction/,/Unregister-(Event|PSSessionConfiguration)/,/Update-(FormatData|Help|List|TypeData)/,/Use-Transaction/,/Wait-(Event|Job|Process)/,/Where-Object/,/Write-(Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning)/,/cd|help|mkdir|more|oss|prompt/,/ac|asnp|cat|cd|chdir|clc|clear|clhy|cli|clp|cls|clv|cnsn|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|dnsn|ebp/,/echo|epal|epcsv|epsn|erase|etsn|exsn|fc|fl|foreach|ft|fw|gal|gbp|gc|gci|gcm|gcs|gdr|ghy|gi|gjb|gl|gm|gmo|gp|gps/,/group|gsn|gsnp|gsv|gu|gv|gwmi|h|history|icm|iex|ihy|ii|ipal|ipcsv|ipmo|ipsn|irm|ise|iwmi|iwr|kill|lp|ls|man|md/,/measure|mi|mount|move|mp|mv|nal|ndr|ni|nmo|npssc|nsn|nv|ogv|oh|popd|ps|pushd|pwd|r|rbp|rcjb|rcsn|rd|rdr|ren|ri/,/rjb|rm|rmdir|rmo|rni|rnp|rp|rsn|rsnp|rujb|rv|rvpa|rwmi|sajb|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls/,/sort|sp|spjb|spps|spsv|start|sujb|sv|swmi|tee|trcm|type|where|wjb|write/],{prefix:"",suffix:""}),u=r([/[$?^_]|Args|ConfirmPreference|ConsoleFileName|DebugPreference|Error|ErrorActionPreference|ErrorView|ExecutionContext/,/FormatEnumerationLimit|Home|Host|Input|MaximumAliasCount|MaximumDriveCount|MaximumErrorCount|MaximumFunctionCount/,/MaximumHistoryCount|MaximumVariableCount|MyInvocation|NestedPromptLevel|OutputEncoding|Pid|Profile|ProgressPreference/,/PSBoundParameters|PSCommandPath|PSCulture|PSDefaultParameterValues|PSEmailServer|PSHome|PSScriptRoot|PSSessionApplicationName/,/PSSessionConfigurationName|PSSessionOption|PSUICulture|PSVersionTable|Pwd|ShellId|StackTrace|VerbosePreference/,/WarningPreference|WhatIfPreference/,/Event|EventArgs|EventSubscriber|Sender/,/Matches|Ofs|ForEach|LastExitCode|PSCmdlet|PSItem|PSSenderInfo|This/,/true|false|null/],{prefix:"\\$",suffix:""}),d={keyword:a,number:/^((0x[\da-f]+)|((\d+\.\d+|\d\.|\.\d+|\d+)(e[\+\-]?\d+)?))[ld]?([kmgtp]b)?/i,operator:l,builtin:r([/[A-Z]:|%|\?/i,c,u],{suffix:i}),punctuation:/[\[\]{},;`\\\.]|@[({]/,variable:/^[A-Za-z\_][A-Za-z\-\_\d]*\b/};function h(e,t){var n=t.returnStack[t.returnStack.length-1];if(n&&n.shouldReturnFrom(t))return t.tokenize=n.tokenize,t.returnStack.pop(),t.tokenize(e,t);if(e.eatSpace())return null;if(e.eat("("))return t.bracketNesting+=1,"punctuation";if(e.eat(")"))return t.bracketNesting-=1,"punctuation";for(var r in d)if(e.match(d[r]))return r;var i=e.next();if("'"===i)return function(e,t){var n;for(;null!=(n=e.peek());)if(e.next(),"'"===n&&!e.eat("'"))return t.tokenize=h,"string";return"error"}(e,t);if("$"===i)return y(e,t);if('"'===i)return f(e,t);if("<"===i&&e.eat("#"))return t.tokenize=v,v(e,t);if("#"===i)return e.skipToEnd(),"comment";if("@"===i){var a=e.eat(/["']/);if(a&&e.eol())return t.tokenize=O,t.startQuote=a[0],O(e,t);if(e.eol())return"error";if(e.peek().match(/[({]/))return"punctuation";if(e.peek().match(o))return y(e,t)}return"error"}function f(e,t){for(var n;null!=(n=e.peek());){if("$"===n)return t.tokenize=m,"string";if(e.next(),"`"!==n){if('"'===n&&!e.eat('"'))return t.tokenize=h,"string"}else e.next()}return"error"}function m(e,t){return b(e,t,f)}function p(e,t){return t.tokenize=O,t.startQuote='"',O(e,t)}function g(e,t){return b(e,t,p)}function b(e,t,n){if(e.match("$(")){var r=t.bracketNesting;return t.returnStack.push({shouldReturnFrom:function(e){return e.bracketNesting===r},tokenize:n}),t.tokenize=h,t.bracketNesting+=1,"punctuation"}return e.next(),t.returnStack.push({shouldReturnFrom:function(){return!0},tokenize:n}),t.tokenize=y,t.tokenize(e,t)}function v(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&">"==n){t.tokenize=h;break}r="#"===n}return"comment"}function y(e,t){var n=e.peek();return e.eat("{")?(t.tokenize=k,k(e,t)):void 0!=n&&n.match(o)?(e.eatWhile(o),t.tokenize=h,"variable"):(t.tokenize=h,"error")}function k(e,t){for(var n;null!=(n=e.next());)if("}"===n){t.tokenize=h;break}return"variable"}function O(e,t){var n=t.startQuote;if(e.sol()&&e.match(new RegExp(n+"@")))t.tokenize=h;else if('"'===n)for(;!e.eol();){var r=e.peek();if("$"===r)return t.tokenize=g,"string";e.next(),"`"===r&&e.next()}else e.skipToEnd();return"string"}const w={name:"powershell",startState:function(){return{returnStack:[],bracketNesting:0,tokenize:h}},token:function(e,t){return t.tokenize(e,t)},languageData:{commentTokens:{line:"#",block:{open:"<#",close:"#>"}}}}},95323:(e,t,n)=>{n.r(t),n.d(t,{properties:()=>r});const r={name:"properties",token:function(e,t){var n=e.sol()||t.afterSection,r=e.eol();if(t.afterSection=!1,n&&(t.nextMultiline?(t.inMultiline=!0,t.nextMultiline=!1):t.position="def"),r&&!t.nextMultiline&&(t.inMultiline=!1,t.position="def"),n)for(;e.eatSpace(););var i=e.next();return!n||"#"!==i&&"!"!==i&&";"!==i?n&&"["===i?(t.afterSection=!0,e.skipTo("]"),e.eat("]"),"header"):"="===i||":"===i?(t.position="quote",null):("\\"===i&&"quote"===t.position&&e.eol()&&(t.nextMultiline=!0),t.position):(t.position="comment",e.skipToEnd(),"comment")},startState:function(){return{position:"def",nextMultiline:!1,inMultiline:!1,afterSection:!1}}}},22433:(e,t,n)=>{n.r(t),n.d(t,{protobuf:()=>a});var r=["package","message","import","syntax","required","optional","repeated","reserved","default","extensions","packed","bool","bytes","double","enum","float","string","int32","int64","uint32","uint64","sint32","sint64","fixed32","fixed64","sfixed32","sfixed64","option","service","rpc","returns"],i=new RegExp("^(("+r.join(")|(")+"))\\b","i"),o=new RegExp("^[_A-Za-z\xa1-\uffff][_A-Za-z0-9\xa1-\uffff]*");const a={name:"protobuf",token:function(e){if(e.eatSpace())return null;if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(/^[0-9\.+-]/,!1)){if(e.match(/^[+-]?0x[0-9a-fA-F]+/))return"number";if(e.match(/^[+-]?\d*\.\d+([EeDd][+-]?\d+)?/))return"number";if(e.match(/^[+-]?\d+([EeDd][+-]?\d+)?/))return"number"}return e.match(/^"([^"]|(""))*"/)||e.match(/^'([^']|(''))*'/)?"string":e.match(i)?"keyword":e.match(o)?"variable":(e.next(),null)},languageData:{autocomplete:r}}},63632:(e,t,n)=>{n.r(t),n.d(t,{pug:()=>d});var r=n(88437),i={"{":"}","(":")","[":"]"};function o(e){if("object"!=typeof e)return e;let t={};for(let n in e){let r=e[n];t[n]=r instanceof Array?r.slice():r}return t}class a{constructor(e){this.indentUnit=e,this.javaScriptLine=!1,this.javaScriptLineExcludesColon=!1,this.javaScriptArguments=!1,this.javaScriptArgumentsDepth=0,this.isInterpolating=!1,this.interpolationNesting=0,this.jsState=r.javascript.startState(e),this.restOfLine="",this.isIncludeFiltered=!1,this.isEach=!1,this.lastTag="",this.isAttrs=!1,this.attrsNest=[],this.inAttributeName=!0,this.attributeIsType=!1,this.attrValue="",this.indentOf=1/0,this.indentToken=""}copy(){var e=new a(this.indentUnit);return e.javaScriptLine=this.javaScriptLine,e.javaScriptLineExcludesColon=this.javaScriptLineExcludesColon,e.javaScriptArguments=this.javaScriptArguments,e.javaScriptArgumentsDepth=this.javaScriptArgumentsDepth,e.isInterpolating=this.isInterpolating,e.interpolationNesting=this.interpolationNesting,e.jsState=(r.javascript.copyState||o)(this.jsState),e.restOfLine=this.restOfLine,e.isIncludeFiltered=this.isIncludeFiltered,e.isEach=this.isEach,e.lastTag=this.lastTag,e.isAttrs=this.isAttrs,e.attrsNest=this.attrsNest.slice(),e.inAttributeName=this.inAttributeName,e.attributeIsType=this.attributeIsType,e.attrValue=this.attrValue,e.indentOf=this.indentOf,e.indentToken=this.indentToken,e}}function s(e,t){if(e.match("#{"))return t.isInterpolating=!0,t.interpolationNesting=0,"punctuation"}function l(e,t){if(e.match(/^:([\w\-]+)/))return u(e,t),"atom"}function c(e,t){if(t.isAttrs){if(i[e.peek()]&&t.attrsNest.push(i[e.peek()]),t.attrsNest[t.attrsNest.length-1]===e.peek())t.attrsNest.pop();else if(e.eat(")"))return t.isAttrs=!1,"punctuation";if(t.inAttributeName&&e.match(/^[^=,\)!]+/))return"="!==e.peek()&&"!"!==e.peek()||(t.inAttributeName=!1,t.jsState=r.javascript.startState(2),"script"===t.lastTag&&"type"===e.current().trim().toLowerCase()?t.attributeIsType=!0:t.attributeIsType=!1),"attribute";var n=r.javascript.token(e,t.jsState);if(0===t.attrsNest.length&&("string"===n||"variable"===n||"keyword"===n))try{return Function("","var x "+t.attrValue.replace(/,\s*$/,"").replace(/^!/,"")),t.inAttributeName=!0,t.attrValue="",e.backUp(e.current().length),c(e,t)}catch(o){}return t.attrValue+=e.current(),n||!0}}function u(e,t){t.indentOf=e.indentation(),t.indentToken="string"}const d={startState:function(e){return new a(e)},copyState:function(e){return e.copy()},token:function(e,t){var n=function(e,t){if(e.sol()&&(t.restOfLine=""),t.restOfLine){e.skipToEnd();var n=t.restOfLine;return t.restOfLine="",n}}(e,t)||function(e,t){if(t.isInterpolating){if("}"===e.peek()){if(t.interpolationNesting--,t.interpolationNesting<0)return e.next(),t.isInterpolating=!1,"punctuation"}else"{"===e.peek()&&t.interpolationNesting++;return r.javascript.token(e,t.jsState)||!0}}(e,t)||function(e,t){if(t.isIncludeFiltered){var n=l(e,t);return t.isIncludeFiltered=!1,t.restOfLine="string",n}}(e,t)||function(e,t){if(t.isEach){if(e.match(/^ in\b/))return t.javaScriptLine=!0,t.isEach=!1,"keyword";if(e.sol()||e.eol())t.isEach=!1;else if(e.next()){for(;!e.match(/^ in\b/,!1)&&e.next(););return"variable"}}}(e,t)||c(e,t)||function(e,t){if(e.sol()&&(t.javaScriptLine=!1,t.javaScriptLineExcludesColon=!1),t.javaScriptLine){if(t.javaScriptLineExcludesColon&&":"===e.peek())return t.javaScriptLine=!1,void(t.javaScriptLineExcludesColon=!1);var n=r.javascript.token(e,t.jsState);return e.eol()&&(t.javaScriptLine=!1),n||!0}}(e,t)||function(e,t){if(t.javaScriptArguments)return 0===t.javaScriptArgumentsDepth&&"("!==e.peek()?void(t.javaScriptArguments=!1):("("===e.peek()?t.javaScriptArgumentsDepth++:")"===e.peek()&&t.javaScriptArgumentsDepth--,0===t.javaScriptArgumentsDepth?void(t.javaScriptArguments=!1):r.javascript.token(e,t.jsState)||!0)}(e,t)||function(e,t){if(t.mixinCallAfter)return t.mixinCallAfter=!1,e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),!0}(e,t)||function(e){if(e.match(/^yield\b/))return"keyword"}(e)||function(e){if(e.match(/^(?:doctype) *([^\n]+)?/))return"meta"}(e)||s(e,t)||function(e,t){if(e.match(/^case\b/))return t.javaScriptLine=!0,"keyword"}(e,t)||function(e,t){if(e.match(/^when\b/))return t.javaScriptLine=!0,t.javaScriptLineExcludesColon=!0,"keyword"}(e,t)||function(e){if(e.match(/^default\b/))return"keyword"}(e)||function(e,t){if(e.match(/^extends?\b/))return t.restOfLine="string","keyword"}(e,t)||function(e,t){if(e.match(/^append\b/))return t.restOfLine="variable","keyword"}(e,t)||function(e,t){if(e.match(/^prepend\b/))return t.restOfLine="variable","keyword"}(e,t)||function(e,t){if(e.match(/^block\b *(?:(prepend|append)\b)?/))return t.restOfLine="variable","keyword"}(e,t)||function(e,t){if(e.match(/^include\b/))return t.restOfLine="string","keyword"}(e,t)||function(e,t){if(e.match(/^include:([a-zA-Z0-9\-]+)/,!1)&&e.match("include"))return t.isIncludeFiltered=!0,"keyword"}(e,t)||function(e,t){if(e.match(/^mixin\b/))return t.javaScriptLine=!0,"keyword"}(e,t)||function(e,t){return e.match(/^\+([-\w]+)/)?(e.match(/^\( *[-\w]+ *=/,!1)||(t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0),"variable"):e.match("+#{",!1)?(e.next(),t.mixinCallAfter=!0,s(e,t)):void 0}(e,t)||function(e,t){if(e.match(/^(if|unless|else if|else)\b/))return t.javaScriptLine=!0,"keyword"}(e,t)||function(e,t){if(e.match(/^(- *)?(each|for)\b/))return t.isEach=!0,"keyword"}(e,t)||function(e,t){if(e.match(/^while\b/))return t.javaScriptLine=!0,"keyword"}(e,t)||function(e,t){var n;if(n=e.match(/^(\w(?:[-:\w]*\w)?)\/?/))return t.lastTag=n[1].toLowerCase(),"tag"}(e,t)||l(e,t)||function(e,t){if(e.match(/^(!?=|-)/))return t.javaScriptLine=!0,"punctuation"}(e,t)||function(e){if(e.match(/^#([\w-]+)/))return"builtin"}(e)||function(e){if(e.match(/^\.([\w-]+)/))return"className"}(e)||function(e,t){if("("==e.peek())return e.next(),t.isAttrs=!0,t.attrsNest=[],t.inAttributeName=!0,t.attrValue="",t.attributeIsType=!1,"punctuation"}(e,t)||function(e,t){if(e.match(/^&attributes\b/))return t.javaScriptArguments=!0,t.javaScriptArgumentsDepth=0,"keyword"}(e,t)||function(e){if(e.sol()&&e.eatSpace())return"indent"}(e)||function(e,t){return e.match(/^(?:\| ?| )([^\n]+)/)?"string":e.match(/^(<[^\n]*)/,!1)?(u(e,t),e.skipToEnd(),t.indentToken):void 0}(e,t)||function(e,t){if(e.match(/^ *\/\/(-)?([^\n]*)/))return t.indentOf=e.indentation(),t.indentToken="comment","comment"}(e,t)||function(e){if(e.match(/^: */))return"colon"}(e)||function(e,t){if(e.eat("."))return u(e,t),"dot"}(e,t)||function(e){return e.next(),null}(e);return!0===n?null:n}}},89484:(e,t,n)=>{n.r(t),n.d(t,{puppet:()=>s});var r={},i=/({)?([a-z][a-z0-9_]*)?((::[a-z][a-z0-9_]*)*::)?[a-zA-Z0-9_]+(})?/;function o(e,t){for(var n=t.split(" "),i=0;i.*/,!1),s=e.match(/(\s+)?[\w:_]+(\s+)?{/,!1),l=e.match(/(\s+)?[@]{1,2}[\w:_]+(\s+)?{/,!1),c=e.next();if("$"===c)return e.match(i)?t.continueString?"variableName.special":"variable":"error";if(t.continueString)return e.backUp(1),a(e,t);if(t.inDefinition){if(e.match(/(\s+)?[\w:_]+(\s+)?/))return"def";e.match(/\s+{/),t.inDefinition=!1}return t.inInclude?(e.match(/(\s+)?\S+(\s+)?/),t.inInclude=!1,"def"):e.match(/(\s+)?\w+\(/)?(e.backUp(1),"def"):o?(e.match(/(\s+)?\w+/),"tag"):n&&r.hasOwnProperty(n)?(e.backUp(1),e.match(/[\w]+/),e.match(/\s+\S+\s+{/,!1)&&(t.inDefinition=!0),"include"==n&&(t.inInclude=!0),r[n]):/(^|\s+)[A-Z][\w:_]+/.test(n)?(e.backUp(1),e.match(/(^|\s+)[A-Z][\w:_]+/),"def"):s?(e.match(/(\s+)?[\w:_]+/),"def"):l?(e.match(/(\s+)?[@]{1,2}/),"atom"):"#"==c?(e.skipToEnd(),"comment"):"'"==c||'"'==c?(t.pending=c,a(e,t)):"{"==c||"}"==c?"bracket":"/"==c?(e.match(/^[^\/]*\//),"string.special"):c.match(/[0-9]/)?(e.eatWhile(/[0-9]+/),"number"):"="==c?(">"==e.peek()&&e.next(),"operator"):(e.eatWhile(/[\w-]/),null)}(e,t)}}},94884:(e,t,n)=>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{cython:()=>u,mkPython:()=>l,python:()=>c});var i=r(["and","or","not","is"]),o=["as","assert","break","class","continue","def","del","elif","else","except","finally","for","from","global","if","import","lambda","pass","raise","return","try","while","with","yield","in","False","True"],a=["abs","all","any","bin","bool","bytearray","callable","chr","classmethod","compile","complex","delattr","dict","dir","divmod","enumerate","eval","filter","float","format","frozenset","getattr","globals","hasattr","hash","help","hex","id","input","int","isinstance","issubclass","iter","len","list","locals","map","max","memoryview","min","next","object","oct","open","ord","pow","property","range","repr","reversed","round","set","setattr","slice","sorted","staticmethod","str","sum","super","tuple","type","vars","zip","__import__","NotImplemented","Ellipsis","__debug__"];function s(e){return e.scopes[e.scopes.length-1]}function l(e){for(var t="error",n=e.delimiters||e.singleDelimiters||/^[\(\)\[\]\{\}@,:`=;\.\\]/,l=[e.singleOperators,e.doubleOperators,e.doubleDelimiters,e.tripleDelimiters,e.operators||/^([-+*/%\/&|^]=?|[<>=]+|\/\/=?|\*\*=?|!=|[~!@]|\.\.\.)/],c=0;ci?k(e,n):o0&&O(e,n)&&(a+=" "+t),a}return y(e,n)}function y(r,o,a){if(r.eatSpace())return null;if(!a&&r.match(/^#.*/))return"comment";if(r.match(/^[0-9\.]/,!1)){var s=!1;if(r.match(/^[\d_]*\.\d+(e[\+\-]?\d+)?/i)&&(s=!0),r.match(/^[\d_]+\.\d*/)&&(s=!0),r.match(/^\.\d+/)&&(s=!0),s)return r.eat(/J/i),"number";var c=!1;if(r.match(/^0x[0-9a-f_]+/i)&&(c=!0),r.match(/^0b[01_]+/i)&&(c=!0),r.match(/^0o[0-7_]+/i)&&(c=!0),r.match(/^[1-9][\d_]*(e[\+\-]?[\d_]+)?/)&&(r.eat(/J/i),c=!0),r.match(/^0(?![\dx])/i)&&(c=!0),c)return r.eat(/L/i),"number"}if(r.match(p))return-1!==r.current().toLowerCase().indexOf("f")?(o.tokenize=function(n,r){for(;"rubf".indexOf(n.charAt(0).toLowerCase())>=0;)n=n.substr(1);var i=1==n.length,o="string";function a(e){return function(t,n){var r=y(t,n,!0);return"punctuation"==r&&("{"==t.current()?n.tokenize=a(e+1):"}"==t.current()&&(n.tokenize=e>1?a(e-1):s)),r}}function s(s,l){for(;!s.eol();)if(s.eatWhile(/[^'"\{\}\\]/),s.eat("\\")){if(s.next(),i&&s.eol())return o}else{if(s.match(n))return l.tokenize=r,o;if(s.match("{{"))return o;if(s.match("{",!1))return l.tokenize=a(0),s.current()?o:l.tokenize(s,l);if(s.match("}}"))return o;if(s.match("}"))return t;s.eat(/['"]/)}if(i){if(e.singleLineStringErrors)return t;l.tokenize=r}return o}return s.isString=!0,s}(r.current(),o.tokenize),o.tokenize(r,o)):(o.tokenize=function(n,r){for(;"rubf".indexOf(n.charAt(0).toLowerCase())>=0;)n=n.substr(1);var i=1==n.length,o="string";function a(a,s){for(;!a.eol();)if(a.eatWhile(/[^'"\\]/),a.eat("\\")){if(a.next(),i&&a.eol())return o}else{if(a.match(n))return s.tokenize=r,o;a.eat(/['"]/)}if(i){if(e.singleLineStringErrors)return t;s.tokenize=r}return o}return a.isString=!0,a}(r.current(),o.tokenize),o.tokenize(r,o));for(var u=0;u1&&s(t).offset>n;){if("py"!=s(t).type)return!0;t.scopes.pop()}return s(t).offset!=n}function w(e,n){e.sol()&&(n.beginningOfLine=!0,n.dedent=!1);var r=n.tokenize(e,n),i=e.current();if(n.beginningOfLine&&"@"==i)return e.match(m,!1)?"meta":f?"operator":t;if(/\S/.test(i)&&(n.beginningOfLine=!1),"variable"!=r&&"builtin"!=r||"meta"!=n.lastToken||(r="meta"),"pass"!=i&&"return"!=i||(n.dedent=!0),"lambda"==i&&(n.lambda=!0),":"==i&&!n.lambda&&"py"==s(n).type&&e.match(/^\s*(?:#|$)/,!1)&&k(e,n),1==i.length&&!/string|comment/.test(r)){var o="[({".indexOf(i);if(-1!=o&&function(e,t,n){var r=e.match(/^[\s\[\{\(]*(?:#|$)/,!1)?null:e.column()+1;t.scopes.push({offset:t.indent+(u||e.indentUnit),type:n,align:r})}(e,n,"])}".slice(o,o+1)),-1!=(o="])}".indexOf(i))){if(s(n).type!=i)return t;n.indent=n.scopes.pop().offset-(u||e.indentUnit)}}return n.dedent&&e.eol()&&"py"==s(n).type&&n.scopes.length>1&&n.scopes.pop(),r}return{name:"python",startState:function(){return{tokenize:v,scopes:[{offset:0,type:"py",align:null}],indent:0,lastToken:null,lambda:!1,dedent:0}},token:function(e,n){var r=n.errorToken;r&&(n.errorToken=!1);var i=w(e,n);return i&&"comment"!=i&&(n.lastToken="keyword"==i||"punctuation"==i?e.current():i),"punctuation"==i&&(i=null),e.eol()&&n.lambda&&(n.lambda=!1),r?t:i},indent:function(e,t,n){if(e.tokenize!=v)return e.tokenize.isString?null:0;var r=s(e),i=r.type==t.charAt(0)||"py"==r.type&&!e.dedent&&/^(else:|elif |except |finally:)/.test(t);return null!=r.align?r.align-(i?1:0):r.offset-(i?u||n.unit:0)},languageData:{autocomplete:o.concat(a).concat(["exec","print"]),indentOnInput:/^\s*([\}\]\)]|else:|elif |except |finally:)$/,commentTokens:{line:"#"},closeBrackets:{brackets:["(","[","{","'",'"',"'''",'"""']}}}}const c=l({}),u=l({extra_keywords:(d="by cdef cimport cpdef ctypedef enum except extern gil include nogil property public readonly struct union DEF IF ELIF ELSE",d.split(" "))});var d},53171:(e,t,n)=>{n.r(t),n.d(t,{q:()=>f});var r,i=new RegExp("^("+["abs","acos","aj","aj0","all","and","any","asc","asin","asof","atan","attr","avg","avgs","bin","by","ceiling","cols","cor","cos","count","cov","cross","csv","cut","delete","deltas","desc","dev","differ","distinct","div","do","each","ej","enlist","eval","except","exec","exit","exp","fby","fills","first","fkeys","flip","floor","from","get","getenv","group","gtime","hclose","hcount","hdel","hopen","hsym","iasc","idesc","if","ij","in","insert","inter","inv","key","keys","last","like","list","lj","load","log","lower","lsq","ltime","ltrim","mavg","max","maxs","mcount","md5","mdev","med","meta","min","mins","mmax","mmin","mmu","mod","msum","neg","next","not","null","or","over","parse","peach","pj","plist","prd","prds","prev","prior","rand","rank","ratios","raze","read0","read1","reciprocal","reverse","rload","rotate","rsave","rtrim","save","scan","select","set","setenv","show","signum","sin","sqrt","ss","ssr","string","sublist","sum","sums","sv","system","tables","tan","til","trim","txf","type","uj","ungroup","union","update","upper","upsert","value","var","view","views","vs","wavg","where","where","while","within","wj","wj1","wsum","xasc","xbar","xcol","xcols","xdesc","xexp","xgroup","xkey","xlog","xprev","xrank"].join("|")+")$"),o=/[|/&^!+:\\\-*%$=~#;@><,?_\'\"\[\(\]\)\s{}]/;function a(e,t){var n=e.sol(),l=e.next();if(r=null,n){if("/"==l)return(t.tokenize=s)(e,t);if("\\"==l)return e.eol()||/\s/.test(e.peek())?(e.skipToEnd(),/^\\\s*$/.test(e.current())?(t.tokenize=c)(e):t.tokenize=a,"comment"):(t.tokenize=a,"builtin")}if(/\s/.test(l))return"/"==e.peek()?(e.skipToEnd(),"comment"):"null";if('"'==l)return(t.tokenize=u)(e,t);if("`"==l)return e.eatWhile(/[A-Za-z\d_:\/.]/),"macroName";if("."==l&&/\d/.test(e.peek())||/\d/.test(l)){var d=null;return e.backUp(1),e.match(/^\d{4}\.\d{2}(m|\.\d{2}([DT](\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)?)?)/)||e.match(/^\d+D(\d{2}(:\d{2}(:\d{2}(\.\d{1,9})?)?)?)/)||e.match(/^\d{2}:\d{2}(:\d{2}(\.\d{1,9})?)?/)||e.match(/^\d+[ptuv]{1}/)?d="temporal":(e.match(/^0[NwW]{1}/)||e.match(/^0x[\da-fA-F]*/)||e.match(/^[01]+[b]{1}/)||e.match(/^\d+[chijn]{1}/)||e.match(/-?\d*(\.\d*)?(e[+\-]?\d+)?(e|f)?/))&&(d="number"),!d||(l=e.peek())&&!o.test(l)?(e.next(),"error"):d}return/[A-Za-z]|\./.test(l)?(e.eatWhile(/[A-Za-z._\d]/),i.test(e.current())?"keyword":"variable"):/[|/&^!+:\\\-*%$=~#;@><\.,?_\']/.test(l)||/[{}\(\[\]\)]/.test(l)?null:"error"}function s(e,t){return e.skipToEnd(),/\/\s*$/.test(e.current())?(t.tokenize=l)(e,t):t.tokenize=a,"comment"}function l(e,t){var n=e.sol()&&"\\"==e.peek();return e.skipToEnd(),n&&/^\\\s*$/.test(e.current())&&(t.tokenize=a),"comment"}function c(e){return e.skipToEnd(),"comment"}function u(e,t){for(var n,r=!1,i=!1;n=e.next();){if('"'==n&&!r){i=!0;break}r=!r&&"\\"==n}return i&&(t.tokenize=a),"string"}function d(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function h(e){e.indent=e.context.indent,e.context=e.context.prev}const f={name:"q",startState:function(){return{tokenize:a,context:null,indent:0,col:0}},token:function(e,t){e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation());var n=t.tokenize(e,t);if("comment"!=n&&t.context&&null==t.context.align&&"pattern"!=t.context.type&&(t.context.align=!0),"("==r)d(t,")",e.column());else if("["==r)d(t,"]",e.column());else if("{"==r)d(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"==t.context.type;)h(t);t.context&&r==t.context.type&&h(t)}else"."==r&&t.context&&"pattern"==t.context.type?h(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?d(t,"pattern",e.column()):"pattern"!=t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),i=e.context;if(/[\]\}]/.test(r))for(;i&&"pattern"==i.type;)i=i.prev;var o=i&&r==i.type;return i?"pattern"==i.type?i.col:i.align?i.col+(o?0:1):i.indent+(o?0:n.unit):0}}},76054:(e,t,n)=>{function r(e){for(var t={},n=0;nb});var i,o=["NULL","NA","Inf","NaN","NA_integer_","NA_real_","NA_complex_","NA_character_","TRUE","FALSE"],a=["list","quote","bquote","eval","return","call","parse","deparse"],s=["if","else","repeat","while","function","for","in","next","break"],l=r(o),c=r(a),u=r(s),d=r(["if","else","repeat","while","function","for"]),h=/[+\-*\/^<>=!&|~$:]/;function f(e,t){i=null;var n,r=e.next();if("#"==r)return e.skipToEnd(),"comment";if("0"==r&&e.eat("x"))return e.eatWhile(/[\da-f]/i),"number";if("."==r&&e.eat(/\d/))return e.match(/\d*(?:e[+\-]?\d+)?/),"number";if(/\d/.test(r))return e.match(/\d*(?:\.\d+)?(?:e[+\-]\d+)?L?/),"number";if("'"==r||'"'==r)return t.tokenize=(n=r,function(e,t){if(e.eat("\\")){var r=e.next();return"x"==r?e.match(/^[a-f0-9]{2}/i):("u"==r||"U"==r)&&e.eat("{")&&e.skipTo("}")?e.next():"u"==r?e.match(/^[a-f0-9]{4}/i):"U"==r?e.match(/^[a-f0-9]{8}/i):/[0-7]/.test(r)&&e.match(/^[0-7]{1,2}/),"string.special"}for(var i;null!=(i=e.next());){if(i==n){t.tokenize=f;break}if("\\"==i){e.backUp(1);break}}return"string"}),"string";if("`"==r)return e.match(/[^`]+`/),"string.special";if("."==r&&e.match(/.(?:[.]|\d+)/))return"keyword";if(/[a-zA-Z\.]/.test(r)){e.eatWhile(/[\w\.]/);var o=e.current();return l.propertyIsEnumerable(o)?"atom":u.propertyIsEnumerable(o)?(d.propertyIsEnumerable(o)&&!e.match(/\s*if(\s+|$)/,!1)&&(i="block"),"keyword"):c.propertyIsEnumerable(o)?"builtin":"variable"}return"%"==r?(e.skipTo("%")&&e.next(),"variableName.special"):"<"==r&&e.eat("-")||"<"==r&&e.match("<-")||"-"==r&&e.match(/>>?/)||"="==r&&t.ctx.argList?"operator":h.test(r)?("$"==r||e.eatWhile(h),"operator"):/[\(\){}\[\];]/.test(r)?(i=r,";"==r?"punctuation":null):null}function m(e,t,n){e.ctx={type:t,indent:e.indent,flags:0,column:n.column(),prev:e.ctx}}function p(e,t){var n=e.ctx;e.ctx={type:n.type,indent:n.indent,flags:n.flags|t,column:n.column,prev:n.prev}}function g(e){e.indent=e.ctx.indent,e.ctx=e.ctx.prev}const b={name:"r",startState:function(e){return{tokenize:f,ctx:{type:"top",indent:-e,flags:2},indent:0,afterIdent:!1}},token:function(e,t){if(e.sol()&&(0==(3&t.ctx.flags)&&(t.ctx.flags|=2),4&t.ctx.flags&&g(t),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);return"comment"!=n&&0==(2&t.ctx.flags)&&p(t,1),";"!=i&&"{"!=i&&"}"!=i||"block"!=t.ctx.type||g(t),"{"==i?m(t,"}",e):"("==i?(m(t,")",e),t.afterIdent&&(t.ctx.argList=!0)):"["==i?m(t,"]",e):"block"==i?m(t,"block",e):i==t.ctx.type?g(t):"block"==t.ctx.type&&"comment"!=n&&p(t,4),t.afterIdent="variable"==n||"keyword"==n,n},indent:function(e,t,n){if(e.tokenize!=f)return 0;var r=t&&t.charAt(0),i=e.ctx,o=r==i.type;return 4&i.flags&&(i=i.prev),"block"==i.type?i.indent+("{"==r?0:n.unit):1&i.flags?i.column+(o?0:1):i.indent+(o?0:n.unit)},languageData:{wordChars:".",commentTokens:{line:"#"},autocomplete:o.concat(a,s)}}},61993:(e,t,n)=>{n.r(t),n.d(t,{rpmChanges:()=>a,rpmSpec:()=>f});var r=/^-+$/,i=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ?\d{1,2} \d{2}:\d{2}(:\d{2})? [A-Z]{3,4} \d{4} - /,o=/^[\w+.-]+@[\w.-]+/;const a={name:"rpmchanges",token:function(e){if(e.sol()){if(e.match(r))return"tag";if(e.match(i))return"tag"}return e.match(o)?"string":(e.next(),null)}};var s=/^(i386|i586|i686|x86_64|ppc64le|ppc64|ppc|ia64|s390x|s390|sparc64|sparcv9|sparc|noarch|alphaev6|alpha|hppa|mipsel)/,l=/^[a-zA-Z0-9()]+:/,c=/^%(debug_package|package|description|prep|build|install|files|clean|changelog|preinstall|preun|postinstall|postun|pretrans|posttrans|pre|post|triggerin|triggerun|verifyscript|check|triggerpostun|triggerprein|trigger)/,u=/^%(ifnarch|ifarch|if)/,d=/^%(else|endif)/,h=/^(\!|\?|\<\=|\<|\>\=|\>|\=\=|\&\&|\|\|)/;const f={name:"rpmspec",startState:function(){return{controlFlow:!1,macroParameters:!1,section:!1}},token:function(e,t){if("#"==e.peek())return e.skipToEnd(),"comment";if(e.sol()){if(e.match(l))return"header";if(e.match(c))return"atom"}if(e.match(/^\$\w+/))return"def";if(e.match(/^\$\{\w+\}/))return"def";if(e.match(d))return"keyword";if(e.match(u))return t.controlFlow=!0,"keyword";if(t.controlFlow){if(e.match(h))return"operator";if(e.match(/^(\d+)/))return"number";e.eol()&&(t.controlFlow=!1)}if(e.match(s))return e.eol()&&(t.controlFlow=!1),"number";if(e.match(/^%[\w]+/))return e.match("(")&&(t.macroParameters=!0),"keyword";if(t.macroParameters){if(e.match(/^\d+/))return"number";if(e.match(")"))return t.macroParameters=!1,"keyword"}return e.match(/^%\{\??[\w \-\:\!]+\}/)?(e.eol()&&(t.controlFlow=!1),"def"):(e.next(),null)}}},74702:(e,t,n)=>{function r(e){for(var t={},n=0,r=e.length;nb});var i,o=["alias","and","BEGIN","begin","break","case","class","def","defined?","do","else","elsif","END","end","ensure","false","for","if","in","module","next","not","or","redo","rescue","retry","return","self","super","then","true","undef","unless","until","when","while","yield","nil","raise","throw","catch","fail","loop","callcc","caller","lambda","proc","public","protected","private","require","load","require_relative","extend","autoload","__END__","__FILE__","__LINE__","__dir__"],a=r(o),s=r(["def","class","case","for","while","until","module","catch","loop","proc","begin"]),l=r(["end","until"]),c={"[":"]","{":"}","(":")"},u={"]":"[","}":"{",")":"("};function d(e,t,n){return n.tokenize.push(e),e(t,n)}function h(e,t){if(e.sol()&&e.match("=begin")&&e.eol())return t.tokenize.push(g),"comment";if(e.eatSpace())return null;var n,r,o,a=e.next();if("`"==a||"'"==a||'"'==a)return d(p(a,"string",'"'==a||"`"==a),e,t);if("/"==a)return function(e){var t,n=e.pos,r=0,i=!1,o=!1;for(;null!=(t=e.next());)if(o)o=!1;else{if("[{(".indexOf(t)>-1)r++;else if("]})".indexOf(t)>-1){if(--r<0)break}else if("/"==t&&0==r){i=!0;break}o="\\"==t}return e.backUp(e.pos-n),i}(e)?d(p(a,"string.special",!0),e,t):"operator";if("%"==a){var s="string",l=!0;e.eat("s")?s="atom":e.eat(/[WQ]/)?s="string":e.eat(/[r]/)?s="string.special":e.eat(/[wxq]/)&&(s="string",l=!1);var u=e.eat(/[^\w\s=]/);return u?(c.propertyIsEnumerable(u)&&(u=c[u]),d(p(u,s,l,!0),e,t)):"operator"}if("#"==a)return e.skipToEnd(),"comment";if("<"==a&&(n=e.match(/^<([-~])[\`\"\']?([a-zA-Z_?]\w*)[\`\"\']?(?:;|$)/)))return d((r=n[2],o=n[1],function(e,t){return o&&e.eatSpace(),e.match(r)?t.tokenize.pop():e.skipToEnd(),"string"}),e,t);if("0"==a)return e.eat("x")?e.eatWhile(/[\da-fA-F]/):e.eat("b")?e.eatWhile(/[01]/):e.eatWhile(/[0-7]/),"number";if(/\d/.test(a))return e.match(/^[\d_]*(?:\.[\d_]+)?(?:[eE][+\-]?[\d_]+)?/),"number";if("?"==a){for(;e.match(/^\\[CM]-/););return e.eat("\\")?e.eatWhile(/\w/):e.next(),"string"}if(":"==a)return e.eat("'")?d(p("'","atom",!1),e,t):e.eat('"')?d(p('"',"atom",!0),e,t):e.eat(/[\<\>]/)?(e.eat(/[\<\>]/),"atom"):e.eat(/[\+\-\*\/\&\|\:\!]/)?"atom":e.eat(/[a-zA-Z$@_\xa1-\uffff]/)?(e.eatWhile(/[\w$\xa1-\uffff]/),e.eat(/[\?\!\=]/),"atom"):"operator";if("@"==a&&e.match(/^@?[a-zA-Z_\xa1-\uffff]/))return e.eat("@"),e.eatWhile(/[\w\xa1-\uffff]/),"propertyName";if("$"==a)return e.eat(/[a-zA-Z_]/)?e.eatWhile(/[\w]/):e.eat(/\d/)?e.eat(/\d/):e.next(),"variableName.special";if(/[a-zA-Z_\xa1-\uffff]/.test(a))return e.eatWhile(/[\w\xa1-\uffff]/),e.eat(/[\?\!]/),e.eat(":")?"atom":"variable";if("|"!=a||!t.varList&&"{"!=t.lastTok&&"do"!=t.lastTok){if(/[\(\)\[\]{}\\;]/.test(a))return i=a,null;if("-"==a&&e.eat(">"))return"operator";if(/[=+\-\/*:\.^%<>~|]/.test(a)){var h=e.eatWhile(/[=+\-\/*:\.^%<>~|]/);return"."!=a||h||(i="."),"operator"}return null}return i="|",null}function f(e){return e||(e=1),function(t,n){if("}"==t.peek()){if(1==e)return n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);n.tokenize[n.tokenize.length-1]=f(e-1)}else"{"==t.peek()&&(n.tokenize[n.tokenize.length-1]=f(e+1));return h(t,n)}}function m(){var e=!1;return function(t,n){return e?(n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n)):(e=!0,h(t,n))}}function p(e,t,n,r){return function(i,o){var a,s=!1;for("read-quoted-paused"===o.context.type&&(o.context=o.context.prev,i.eat("}"));null!=(a=i.next());){if(a==e&&(r||!s)){o.tokenize.pop();break}if(n&&"#"==a&&!s){if(i.eat("{")){"}"==e&&(o.context={prev:o.context,type:"read-quoted-paused"}),o.tokenize.push(f());break}if(/[@\$]/.test(i.peek())){o.tokenize.push(m());break}}s=!s&&"\\"==a}return t}}function g(e,t){return e.sol()&&e.match("=end")&&e.eol()&&t.tokenize.pop(),e.skipToEnd(),"comment"}const b={name:"ruby",startState:function(e){return{tokenize:[h],indented:0,context:{type:"top",indented:-e},continuedLine:!1,lastTok:null,varList:!1}},token:function(e,t){i=null,e.sol()&&(t.indented=e.indentation());var n,r=t.tokenize[t.tokenize.length-1](e,t),o=i;if("variable"==r){var c=e.current();"keyword"==(r="."==t.lastTok?"property":a.propertyIsEnumerable(e.current())?"keyword":/^[A-Z]/.test(c)?"tag":"def"==t.lastTok||"class"==t.lastTok||t.varList?"def":"variable")&&(o=c,s.propertyIsEnumerable(c)?n="indent":l.propertyIsEnumerable(c)?n="dedent":"if"!=c&&"unless"!=c||e.column()!=e.indentation()?"do"==c&&t.context.indented{n.r(t),n.d(t,{sas:()=>l});var r={},i={eq:"operator",lt:"operator",le:"operator",gt:"operator",ge:"operator",in:"operator",ne:"operator",or:"operator"},o=/(<=|>=|!=|<>)/,a=/[=\(:\),{}.*<>+\-\/^\[\]]/;function s(e,t,n){if(n)for(var i=t.split(" "),o=0;o{n.r(t),n.d(t,{scheme:()=>x});var r="comment",i="string",o="symbol",a="atom",s="number",l="bracket";function c(e){for(var t={},n=e.split(" "),r=0;rinteger char-alphabetic? char-ci<=? char-ci=? char-ci>? char-downcase char-lower-case? char-numeric? char-ready? char-upcase char-upper-case? char-whitespace? char<=? char=? char>? char? close-input-port close-output-port complex? cons cos current-input-port current-output-port denominator display eof-object? eq? equal? eqv? eval even? exact->inexact exact? exp expt #f floor force gcd imag-part inexact->exact inexact? input-port? integer->char integer? interaction-environment lcm length list list->string list->vector list-ref list-tail list? load log magnitude make-polar make-rectangular make-string make-vector max member memq memv min modulo negative? newline not null-environment null? number->string number? numerator odd? open-input-file open-output-file output-port? pair? peek-char port? positive? procedure? quasiquote quote quotient rational? rationalize read read-char real-part real? remainder reverse round scheme-report-environment set! set-car! set-cdr! sin sqrt string string->list string->number string->symbol string-append string-ci<=? string-ci=? string-ci>? string-copy string-fill! string-length string-ref string-set! string<=? string=? string>? string? substring symbol->string symbol? #t tan transcript-off transcript-on truncate values vector vector->list vector-fill! vector-length vector-ref vector-set! with-input-from-file with-output-to-file write write-char zero?"),d=c("define let letrec let* lambda define-macro defmacro let-syntax letrec-syntax let-values let*-values define-syntax syntax-rules define-values when unless");function h(e,t,n){this.indent=e,this.type=t,this.prev=n}function f(e,t,n){e.indentStack=new h(t,n,e.indentStack)}var m=new RegExp(/^(?:[-+]i|[-+][01]+#*(?:\/[01]+#*)?i|[-+]?[01]+#*(?:\/[01]+#*)?@[-+]?[01]+#*(?:\/[01]+#*)?|[-+]?[01]+#*(?:\/[01]+#*)?[-+](?:[01]+#*(?:\/[01]+#*)?)?i|[-+]?[01]+#*(?:\/[01]+#*)?)(?=[()\s;"]|$)/i),p=new RegExp(/^(?:[-+]i|[-+][0-7]+#*(?:\/[0-7]+#*)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?@[-+]?[0-7]+#*(?:\/[0-7]+#*)?|[-+]?[0-7]+#*(?:\/[0-7]+#*)?[-+](?:[0-7]+#*(?:\/[0-7]+#*)?)?i|[-+]?[0-7]+#*(?:\/[0-7]+#*)?)(?=[()\s;"]|$)/i),g=new RegExp(/^(?:[-+]i|[-+][\da-f]+#*(?:\/[\da-f]+#*)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?@[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?[-+](?:[\da-f]+#*(?:\/[\da-f]+#*)?)?i|[-+]?[\da-f]+#*(?:\/[\da-f]+#*)?)(?=[()\s;"]|$)/i),b=new RegExp(/^(?:[-+]i|[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)i|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)@[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)|[-+]?(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)[-+](?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*)?i|(?:(?:(?:\d+#+\.?#*|\d+\.\d*#*|\.\d+#*|\d+)(?:[esfdl][-+]?\d+)?)|\d+#*\/\d+#*))(?=[()\s;"]|$)/i);function v(e){return e.match(m)}function y(e){return e.match(p)}function k(e,t){return!0===t&&e.backUp(1),e.match(b)}function O(e){return e.match(g)}function w(e,t){for(var n,r=!1;null!=(n=e.next());){if(n==t.token&&!r){t.state.mode=!1;break}r=!r&&"\\"==n}}const x={name:"scheme",startState:function(){return{indentStack:null,indentation:0,mode:!1,sExprComment:!1,sExprQuote:!1}},token:function(e,t){if(null==t.indentStack&&e.sol()&&(t.indentation=e.indentation()),e.eatSpace())return null;var n=null;switch(t.mode){case"string":w(e,{token:'"',state:t}),n=i;break;case"symbol":w(e,{token:"|",state:t}),n=o;break;case"comment":for(var c,h=!1;null!=(c=e.next());){if("#"==c&&h){t.mode=!1;break}h="|"==c}n=r;break;case"s-expr-comment":if(t.mode=!1,"("!=e.peek()&&"["!=e.peek()){e.eatWhile(/[^\s\(\)\[\]]/),n=r;break}t.sExprComment=0;default:var m=e.next();if('"'==m)t.mode="string",n=i;else if("'"==m)"("==e.peek()||"["==e.peek()?("number"!=typeof t.sExprQuote&&(t.sExprQuote=0),n=a):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=a);else if("|"==m)t.mode="symbol",n=o;else if("#"==m)if(e.eat("|"))t.mode="comment",n=r;else if(e.eat(/[tf]/i))n=a;else if(e.eat(";"))t.mode="s-expr-comment",n=r;else{var p=null,g=!1,b=!0;e.eat(/[ei]/i)?g=!0:e.backUp(1),e.match(/^#b/i)?p=v:e.match(/^#o/i)?p=y:e.match(/^#x/i)?p=O:e.match(/^#d/i)?p=k:e.match(/^[-+0-9.]/,!1)?(b=!1,p=k):g||e.eat("#"),null!=p&&(b&&!g&&e.match(/^#[ei]/i),p(e)&&(n=s))}else if(/^[-+0-9.]/.test(m)&&k(e,!0))n=s;else if(";"==m)e.skipToEnd(),n=r;else if("("==m||"["==m){for(var x,S="",_=e.column();null!=(x=e.eat(/[^\s\(\[\;\)\]]/));)S+=x;S.length>0&&d.propertyIsEnumerable(S)?f(t,_+2,m):(e.eatSpace(),e.eol()||";"==e.peek()?f(t,_+1,m):f(t,_+e.current().length,m)),e.backUp(e.current().length-1),"number"==typeof t.sExprComment&&t.sExprComment++,"number"==typeof t.sExprQuote&&t.sExprQuote++,n=l}else")"==m||"]"==m?(n=l,null!=t.indentStack&&t.indentStack.type==(")"==m?"(":"[")&&(!function(e){e.indentStack=e.indentStack.prev}(t),"number"==typeof t.sExprComment&&0==--t.sExprComment&&(n=r,t.sExprComment=!1),"number"==typeof t.sExprQuote&&0==--t.sExprQuote&&(n=a,t.sExprQuote=!1))):(e.eatWhile(/[\w_\-!$%&*+\.\/:<=>?@\^~]/),n=u&&u.propertyIsEnumerable(e.current())?"builtin":"variable")}return"number"==typeof t.sExprComment?r:"number"==typeof t.sExprQuote?a:n},indent:function(e){return null==e.indentStack?e.indentation:e.indentStack.indent},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:";;"}}}},98226:(e,t,n)=>{n.r(t),n.d(t,{shell:()=>f});var r={};function i(e,t){for(var n=0;n1&&e.eat("$");var n=e.next();return/['"({]/.test(n)?(t.tokens[0]=c(n,"("==n?"quote":"{"==n?"def":"string"),h(e,t)):(/\d/.test(n)||e.eatWhile(/\w/),t.tokens.shift(),"def")};function h(e,t){return(t.tokens[0]||l)(e,t)}const f={name:"shell",startState:function(){return{tokens:[]}},token:function(e,t){return h(e,t)},languageData:{autocomplete:o.concat(a,s),closeBrackets:{brackets:["(","[","{","'",'"',"`"]},commentTokens:{line:"#"}}}},20642:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rc});var i=r("if elsif else stop require"),o=r("true false not");function a(e,t){var n,r=e.next();if("/"==r&&e.eat("*"))return t.tokenize=l,l(e,t);if("#"===r)return e.skipToEnd(),"comment";if('"'==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1;null!=(r=e.next())&&(r!=n||i);)i=!i&&"\\"==r;return i||(t.tokenize=a),"string"}),t.tokenize(e,t);if("("==r)return t._indent.push("("),t._indent.push("{"),null;if("{"===r)return t._indent.push("{"),null;if(")"==r&&(t._indent.pop(),t._indent.pop()),"}"===r)return t._indent.pop(),null;if(","==r)return null;if(";"==r)return null;if(/[{}\(\),;]/.test(r))return null;if(/\d/.test(r))return e.eatWhile(/[\d]/),e.eat(/[KkMmGg]/),"number";if(":"==r)return e.eatWhile(/[a-zA-Z_]/),e.eatWhile(/[a-zA-Z0-9_]/),"operator";e.eatWhile(/\w/);var c=e.current();return"text"==c&&e.eat(":")?(t.tokenize=s,"string"):i.propertyIsEnumerable(c)?"keyword":o.propertyIsEnumerable(c)?"atom":null}function s(e,t){return t._multiLineString=!0,e.sol()?("."==e.next()&&e.eol()&&(t._multiLineString=!1,t.tokenize=a),"string"):(e.eatSpace(),"#"==e.peek()?(e.skipToEnd(),"comment"):(e.skipToEnd(),"string"))}function l(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=a;break}r="*"==n}return"comment"}const c={name:"sieve",startState:function(e){return{tokenize:a,baseIndent:e||0,_indent:[]}},token:function(e,t){return e.eatSpace()?null:(t.tokenize||a)(e,t)},indent:function(e,t,n){var r=e._indent.length;return t&&"}"==t[0]&&r--,r<0&&(r=0),r*n.unit},languageData:{indentOnInput:/^\s*\}$/}}},94526:(e,t,n)=>{function r(e){i(e,"start");var t={},n=e.languageData||{},r=!1;for(var l in e)if(l!=n&&e.hasOwnProperty(l))for(var c=t[l]=[],u=e[l],d=0;d2&&a.token&&"string"!=typeof a.token){n.pending=[];for(var c=2;c-1)return null;var i=n.indent.length-1,o=e[n.state];e:for(;;){for(var a=0;ar})},15381:(e,t,n)=>{n.r(t),n.d(t,{smalltalk:()=>f});var r=/[+\-\/\\*~<>=@%|&?!.,:;^]/,i=/true|false|nil|self|super|thisContext/,o=function(e,t){this.next=e,this.parent=t},a=function(e,t,n){this.name=e,this.context=t,this.eos=n},s=function(){this.context=new o(l,null),this.expectVariable=!0,this.indentation=0,this.userIndentationDelta=0};s.prototype.userIndent=function(e,t){this.userIndentationDelta=e>0?e/t-this.indentation:0};var l=function(e,t,n){var s=new a(null,t,!1),l=e.next();return'"'===l?s=c(e,new o(c,t)):"'"===l?s=u(e,new o(u,t)):"#"===l?"'"===e.peek()?(e.next(),s=d(e,new o(d,t))):e.eatWhile(/[^\s.{}\[\]()]/)?s.name="string.special":s.name="meta":"$"===l?("<"===e.next()&&(e.eatWhile(/[^\s>]/),e.next()),s.name="string.special"):"|"===l&&n.expectVariable?s.context=new o(h,t):/[\[\]{}()]/.test(l)?(s.name="bracket",s.eos=/[\[{(]/.test(l),"["===l?n.indentation++:"]"===l&&(n.indentation=Math.max(0,n.indentation-1))):r.test(l)?(e.eatWhile(r),s.name="operator",s.eos=";"!==l):/\d/.test(l)?(e.eatWhile(/[\w\d]/),s.name="number"):/[\w_]/.test(l)?(e.eatWhile(/[\w\d_]/),s.name=n.expectVariable?i.test(e.current())?"keyword":"variable":null):s.eos=n.expectVariable,s},c=function(e,t){return e.eatWhile(/[^"]/),new a("comment",e.eat('"')?t.parent:t,!0)},u=function(e,t){return e.eatWhile(/[^']/),new a("string",e.eat("'")?t.parent:t,!1)},d=function(e,t){return e.eatWhile(/[^']/),new a("string.special",e.eat("'")?t.parent:t,!1)},h=function(e,t){var n=new a(null,t,!1);return"|"===e.next()?(n.context=t.parent,n.eos=!0):(e.eatWhile(/[^|]/),n.name="variable"),n};const f={name:"smalltalk",startState:function(){return new s},token:function(e,t){if(t.userIndent(e.indentation(),e.indentUnit),e.eatSpace())return null;var n=t.context.next(e,t.context,t);return t.context=n.context,t.expectVariable=n.eos,n.name},blankLine:function(e,t){e.userIndent(0,t)},indent:function(e,t,n){var r=e.context.next===l&&t&&"]"===t.charAt(0)?-1:e.userIndentationDelta;return(e.indentation+r)*n.unit},languageData:{indentOnInput:/^\s*\]$/}}},19562:(e,t,n)=>{n.r(t),n.d(t,{solr:()=>l});var r=/[^\s\|\!\+\-\*\?\~\^\&\:\(\)\[\]\{\}\"\\]/,i=/[\|\!\+\-\*\?\~\^\&]/,o=/^(OR|AND|NOT|TO)$/;function a(e){return function(t,n){for(var i=e;(e=t.peek())&&null!=e.match(r);)i+=t.next();return n.tokenize=s,o.test(i)?"operator":function(e){return parseFloat(e).toString()===e}(i)?"number":":"==t.peek()?"propertyName":"string"}}function s(e,t){var n,o,l=e.next();return'"'==l?t.tokenize=(o=l,function(e,t){for(var n,r=!1;null!=(n=e.next())&&(n!=o||r);)r=!r&&"\\"==n;return r||(t.tokenize=s),"string"}):i.test(l)?t.tokenize=(n=l,function(e,t){return"|"==n?e.eat(/\|/):"&"==n&&e.eat(/\&/),t.tokenize=s,"operator"}):r.test(l)&&(t.tokenize=a(l)),t.tokenize!=s?t.tokenize(e,t):null}const l={name:"solr",startState:function(){return{tokenize:s}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}}},35311:(e,t,n)=>{var r;function i(e){return new RegExp("^(?:"+e.join("|")+")$","i")}n.r(t),n.d(t,{sparql:()=>p});var o=i(["str","lang","langmatches","datatype","bound","sameterm","isiri","isuri","iri","uri","bnode","count","sum","min","max","avg","sample","group_concat","rand","abs","ceil","floor","round","concat","substr","strlen","replace","ucase","lcase","encode_for_uri","contains","strstarts","strends","strbefore","strafter","year","month","day","hours","minutes","seconds","timezone","tz","now","uuid","struuid","md5","sha1","sha256","sha384","sha512","coalesce","if","strlang","strdt","isnumeric","regex","exists","isblank","isliteral","a","bind"]),a=i(["base","prefix","select","distinct","reduced","construct","describe","ask","from","named","where","order","limit","offset","filter","optional","graph","by","asc","desc","as","having","undef","values","group","minus","in","not","service","silent","using","insert","delete","union","true","false","with","data","copy","to","move","add","create","drop","clear","load","into"]),s=/[*+\-<>=&|\^\/!\?]/,l="[A-Za-z_\\-0-9]",c=new RegExp("[A-Za-z]"),u=new RegExp("(("+l+"|\\.)*("+l+"))?:");function d(e,t){var n,i=e.next();if(r=null,"$"==i||"?"==i)return"?"==i&&e.match(/\s/,!1)?"operator":(e.match(/^[A-Za-z0-9_\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][A-Za-z0-9_\u00B7\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u037D\u037F-\u1FFF\u200C-\u200D\u203F-\u2040\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]*/),"variableName.local");if("<"==i&&!e.match(/^[\s\u00a0=]/,!1))return e.match(/^[^\s\u00a0>]*>?/),"atom";if('"'==i||"'"==i)return t.tokenize=(n=i,function(e,t){for(var r,i=!1;null!=(r=e.next());){if(r==n&&!i){t.tokenize=d;break}i=!i&&"\\"==r}return"string"}),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(i))return r=i,"bracket";if("#"==i)return e.skipToEnd(),"comment";if(s.test(i))return"operator";if(":"==i)return h(e),"atom";if("@"==i)return e.eatWhile(/[a-z\d\-]/i),"meta";if(c.test(i)&&e.match(u))return h(e),"atom";e.eatWhile(/[_\w\d]/);var l=e.current();return o.test(l)?"builtin":a.test(l)?"keyword":"variable"}function h(e){e.match(/(\.(?=[\w_\-\\%])|[:\w_-]|\\[-\\_~.!$&'()*+,;=/?#@%]|%[a-f\d][a-f\d])+/i)}function f(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function m(e){e.indent=e.context.indent,e.context=e.context.prev}const p={name:"sparql",startState:function(){return{tokenize:d,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"!=n&&t.context&&null==t.context.align&&"pattern"!=t.context.type&&(t.context.align=!0),"("==r)f(t,")",e.column());else if("["==r)f(t,"]",e.column());else if("{"==r)f(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"==t.context.type;)m(t);t.context&&r==t.context.type&&(m(t),"}"==r&&t.context&&"pattern"==t.context.type&&m(t))}else"."==r&&t.context&&"pattern"==t.context.type?m(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?f(t,"pattern",e.column()):"pattern"!=t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),i=e.context;if(/[\]\}]/.test(r))for(;i&&"pattern"==i.type;)i=i.prev;var o=i&&r==i.type;return i?"pattern"==i.type?i.col:i.align?i.col+(o?0:1):i.indent+(o?0:n.unit):0},languageData:{commentTokens:{line:"#"}}}},53498:(e,t,n)=>{n.r(t),n.d(t,{spreadsheet:()=>r});const r={name:"spreadsheet",startState:function(){return{stringType:null,stack:[]}},token:function(e,t){if(e){switch(0===t.stack.length&&('"'!=e.peek()&&"'"!=e.peek()||(t.stringType=e.peek(),e.next(),t.stack.unshift("string"))),t.stack[0]){case"string":for(;"string"===t.stack[0]&&!e.eol();)e.peek()===t.stringType?(e.next(),t.stack.shift()):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return"string";case"characterClass":for(;"characterClass"===t.stack[0]&&!e.eol();)e.match(/^[^\]\\]+/)||e.match(/^\\./)||t.stack.shift();return"operator"}var n=e.peek();switch(n){case"[":return e.next(),t.stack.unshift("characterClass"),"bracket";case":":return e.next(),"operator";case"\\":return e.match(/\\[a-z]+/)?"string.special":(e.next(),"atom");case".":case",":case";":case"*":case"-":case"+":case"^":case"<":case"/":case"=":return e.next(),"atom";case"$":return e.next(),"builtin"}return e.match(/\d+/)?e.match(/^\w+/)?"error":"number":e.match(/^[a-zA-Z_]\w*/)?e.match(/(?=[\(.])/,!1)?"keyword":"variable":-1!=["[","]","(",")","{","}"].indexOf(n)?(e.next(),"bracket"):(e.eatSpace()||e.next(),null)}}}},1188:(e,t,n)=>{function r(e){var t=e.client||{},n=e.atoms||{false:!0,true:!0,null:!0},r=e.builtin||l(c),i=e.keywords||l(s),o=e.operatorChars||/^[*+\-%<>!=&|~^\/]/,a=e.support||{},u=e.hooks||{},d=e.dateSQL||{date:!0,time:!0,timestamp:!0},h=!1!==e.backslashStringEscapes,f=e.brackets||/^[\{}\(\)\[\]]/,m=e.punctuation||/^[;.,:]/;function p(e,s){var l=e.next();if(u[l]){var c=u[l](e,s);if(!1!==c)return c}if(a.hexNumber&&("0"==l&&e.match(/^[xX][0-9a-fA-F]+/)||("x"==l||"X"==l)&&e.match(/^'[0-9a-fA-F]*'/)))return"number";if(a.binaryNumber&&(("b"==l||"B"==l)&&e.match(/^'[01]+'/)||"0"==l&&e.match(/^b[01]*/)))return"number";if(l.charCodeAt(0)>47&&l.charCodeAt(0)<58)return e.match(/^[0-9]*(\.[0-9]+)?([eE][-+]?[0-9]+)?/),a.decimallessFloat&&e.match(/^\.(?!\.)/),"number";if("?"==l&&(e.eatSpace()||e.eol()||e.eat(";")))return"macroName";if("'"==l||'"'==l&&a.doubleQuote)return s.tokenize=g(l),s.tokenize(e,s);if((a.nCharCast&&("n"==l||"N"==l)||a.charsetCast&&"_"==l&&e.match(/[a-z][a-z0-9]*/i))&&("'"==e.peek()||'"'==e.peek()))return"keyword";if(a.escapeConstant&&("e"==l||"E"==l)&&("'"==e.peek()||'"'==e.peek()&&a.doubleQuote))return s.tokenize=function(e,t){return(t.tokenize=g(e.next(),!0))(e,t)},"keyword";if(a.commentSlashSlash&&"/"==l&&e.eat("/"))return e.skipToEnd(),"comment";if(a.commentHash&&"#"==l||"-"==l&&e.eat("-")&&(!a.commentSpaceRequired||e.eat(" ")))return e.skipToEnd(),"comment";if("/"==l&&e.eat("*"))return s.tokenize=b(1),s.tokenize(e,s);if("."!=l){if(o.test(l))return e.eatWhile(o),"operator";if(f.test(l))return"bracket";if(m.test(l))return e.eatWhile(m),"punctuation";if("{"==l&&(e.match(/^( )*(d|D|t|T|ts|TS)( )*'[^']*'( )*}/)||e.match(/^( )*(d|D|t|T|ts|TS)( )*"[^"]*"( )*}/)))return"number";e.eatWhile(/^[_\w\d]/);var h=e.current().toLowerCase();return d.hasOwnProperty(h)&&(e.match(/^( )+'[^']*'/)||e.match(/^( )+"[^"]*"/))?"number":n.hasOwnProperty(h)?"atom":r.hasOwnProperty(h)?"type":i.hasOwnProperty(h)?"keyword":t.hasOwnProperty(h)?"builtin":null}return a.zerolessFloat&&e.match(/^(?:\d+(?:e[+-]?\d+)?)/i)?"number":e.match(/^\.+/)?null:a.ODBCdotTable&&e.match(/^[\w\d_$#]+/)?"type":void 0}function g(e,t){return function(n,r){for(var i,o=!1;null!=(i=n.next());){if(i==e&&!o){r.tokenize=p;break}o=(h||t)&&!o&&"\\"==i}return"string"}}function b(e){return function(t,n){var r=t.match(/^.*?(\/\*|\*\/)/);return r?"/*"==r[1]?n.tokenize=b(e+1):n.tokenize=e>1?b(e-1):p:t.skipToEnd(),"comment"}}function v(e,t,n){t.context={prev:t.context,indent:e.indentation(),col:e.column(),type:n}}return{name:"sql",startState:function(){return{tokenize:p,context:null}},token:function(e,t){if(e.sol()&&t.context&&null==t.context.align&&(t.context.align=!1),t.tokenize==p&&e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"==n)return n;t.context&&null==t.context.align&&(t.context.align=!0);var r=e.current();return"("==r?v(e,t,")"):"["==r?v(e,t,"]"):t.context&&t.context.type==r&&function(e){e.indent=e.context.indent,e.context=e.context.prev}(t),n},indent:function(e,t,n){var r=e.context;if(!r)return null;var i=t.charAt(0)==r.type;return r.align?r.col+(i?0:1):r.indent+(i?0:n.unit)},languageData:{commentTokens:{line:a.commentSlashSlash?"//":a.commentHash?"#":"--",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}}function i(e){for(var t;null!=(t=e.next());)if("`"==t&&!e.eat("`"))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null}function o(e){return e.eat("@")&&(e.match("session."),e.match("local."),e.match("global.")),e.eat("'")?(e.match(/^.*'/),"string.special"):e.eat('"')?(e.match(/^.*"/),"string.special"):e.eat("`")?(e.match(/^.*`/),"string.special"):e.match(/^[0-9a-zA-Z$\.\_]+/)?"string.special":null}function a(e){return e.eat("N")?"atom":e.match(/^[a-zA-Z.#!?]/)?"string.special":null}n.r(t),n.d(t,{cassandra:()=>p,esper:()=>w,gpSQL:()=>k,gql:()=>y,hive:()=>b,mariaDB:()=>f,msSQL:()=>d,mySQL:()=>h,pgSQL:()=>v,plSQL:()=>g,sparkSQL:()=>O,sql:()=>r,sqlite:()=>m,standardSQL:()=>u});var s="alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit ";function l(e){for(var t={},n=e.split(" "),r=0;r!=^\&|\/]/,brackets:/^[\{}\(\)]/,punctuation:/^[;.,:/]/,backslashStringEscapes:!1,dateSQL:l("date datetimeoffset datetime2 smalldatetime datetime time"),hooks:{"@":o}}),h=r({client:l("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:l(s+"accessible action add after algorithm all analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general get global grant grants group group_concat handler hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show signal slave slow smallint snapshot soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":o,"`":i,"\\":a}}),f=r({client:l("charset clear connect edit ego exit go help nopager notee nowarning pager print prompt quit rehash source status system tee"),keywords:l(s+"accessible action add after algorithm all always analyze asensitive at authors auto_increment autocommit avg avg_row_length before binary binlog both btree cache call cascade cascaded case catalog_name chain change changed character check checkpoint checksum class_origin client_statistics close coalesce code collate collation collations column columns comment commit committed completion concurrent condition connection consistent constraint contains continue contributors convert cross current current_date current_time current_timestamp current_user cursor data database databases day_hour day_microsecond day_minute day_second deallocate dec declare default delay_key_write delayed delimiter des_key_file describe deterministic dev_pop dev_samp deviance diagnostics directory disable discard distinctrow div dual dumpfile each elseif enable enclosed end ends engine engines enum errors escape escaped even event events every execute exists exit explain extended fast fetch field fields first flush for force foreign found_rows full fulltext function general generated get global grant grants group group_concat handler hard hash help high_priority hosts hour_microsecond hour_minute hour_second if ignore ignore_server_ids import index index_statistics infile inner innodb inout insensitive insert_method install interval invoker isolation iterate key keys kill language last leading leave left level limit linear lines list load local localtime localtimestamp lock logs low_priority master master_heartbeat_period master_ssl_verify_server_cert masters match max max_rows maxvalue message_text middleint migrate min min_rows minute_microsecond minute_second mod mode modifies modify mutex mysql_errno natural next no no_write_to_binlog offline offset one online open optimize option optionally out outer outfile pack_keys parser partition partitions password persistent phase plugin plugins prepare preserve prev primary privileges procedure processlist profile profiles purge query quick range read read_write reads real rebuild recover references regexp relaylog release remove rename reorganize repair repeatable replace require resignal restrict resume return returns revoke right rlike rollback rollup row row_format rtree savepoint schedule schema schema_name schemas second_microsecond security sensitive separator serializable server session share show shutdown signal slave slow smallint snapshot soft soname spatial specific sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_no_cache sql_small_result sqlexception sqlstate sqlwarning ssl start starting starts status std stddev stddev_pop stddev_samp storage straight_join subclass_origin sum suspend table_name table_statistics tables tablespace temporary terminated to trailing transaction trigger triggers truncate uncommitted undo uninstall unique unlock upgrade usage use use_frm user user_resources user_statistics using utc_date utc_time utc_timestamp value variables varying view views virtual warnings when while with work write xa xor year_month zerofill begin do then else loop repeat"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text bigint int int1 int2 int3 int4 int8 integer float float4 float8 double char varbinary varchar varcharacter precision date datetime year unsigned signed numeric"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber doubleQuote nCharCast charsetCast commentHash commentSpaceRequired"),hooks:{"@":o,"`":i,"\\":a}}),m=r({client:l("auth backup bail binary changes check clone databases dbinfo dump echo eqp exit explain fullschema headers help import imposter indexes iotrace limit lint load log mode nullvalue once open output print prompt quit read restore save scanstats schema separator session shell show stats system tables testcase timeout timer trace vfsinfo vfslist vfsname width"),keywords:l(s+"abort action add after all analyze attach autoincrement before begin cascade case cast check collate column commit conflict constraint cross current_date current_time current_timestamp database default deferrable deferred detach each else end escape except exclusive exists explain fail for foreign full glob if ignore immediate index indexed initially inner instead intersect isnull key left limit match natural no notnull null of offset outer plan pragma primary query raise recursive references regexp reindex release rename replace restrict right rollback row savepoint temp temporary then to transaction trigger unique using vacuum view virtual when with without"),builtin:l("bool boolean bit blob decimal double float long longblob longtext medium mediumblob mediumint mediumtext time timestamp tinyblob tinyint tinytext text clob bigint int int2 int8 integer float double char varchar date datetime year unsigned signed numeric real"),atoms:l("null current_date current_time current_timestamp"),operatorChars:/^[*+\-%<>!=&|/~]/,dateSQL:l("date time timestamp datetime"),support:l("decimallessFloat zerolessFloat"),identifierQuote:'"',hooks:{"@":o,":":o,"?":o,$:o,'"':function(e){for(var t;null!=(t=e.next());)if('"'==t&&!e.eat('"'))return"string.special";return e.backUp(e.current().length-1),e.eatWhile(/\w/)?"string.special":null},"`":i}}),p=r({client:{},keywords:l("add all allow alter and any apply as asc authorize batch begin by clustering columnfamily compact consistency count create custom delete desc distinct drop each_quorum exists filtering from grant if in index insert into key keyspace keyspaces level limit local_one local_quorum modify nan norecursive nosuperuser not of on one order password permission permissions primary quorum rename revoke schema select set storage superuser table three to token truncate ttl two type unlogged update use user users using values where with writetime"),builtin:l("ascii bigint blob boolean counter decimal double float frozen inet int list map static text timestamp timeuuid tuple uuid varchar varint"),atoms:l("false true infinity NaN"),operatorChars:/^[<>=]/,dateSQL:{},support:l("commentSlashSlash decimallessFloat"),hooks:{}}),g=r({client:l("appinfo arraysize autocommit autoprint autorecovery autotrace blockterminator break btitle cmdsep colsep compatibility compute concat copycommit copytypecheck define describe echo editfile embedded escape exec execute feedback flagger flush heading headsep instance linesize lno loboffset logsource long longchunksize markup native newpage numformat numwidth pagesize pause pno recsep recsepchar release repfooter repheader serveroutput shiftinout show showmode size spool sqlblanklines sqlcase sqlcode sqlcontinue sqlnumber sqlpluscompatibility sqlprefix sqlprompt sqlterminator suffix tab term termout time timing trimout trimspool ttitle underline verify version wrap"),keywords:l("abort accept access add all alter and any array arraylen as asc assert assign at attributes audit authorization avg base_table begin between binary_integer body boolean by case cast char char_base check close cluster clusters colauth column comment commit compress connect connected constant constraint crash create current currval cursor data_base database date dba deallocate debugoff debugon decimal declare default definition delay delete desc digits dispose distinct do drop else elseif elsif enable end entry escape exception exception_init exchange exclusive exists exit external fast fetch file for force form from function generic goto grant group having identified if immediate in increment index indexes indicator initial initrans insert interface intersect into is key level library like limited local lock log logging long loop master maxextents maxtrans member minextents minus mislabel mode modify multiset new next no noaudit nocompress nologging noparallel not nowait number_base object of off offline on online only open option or order out package parallel partition pctfree pctincrease pctused pls_integer positive positiven pragma primary prior private privileges procedure public raise range raw read rebuild record ref references refresh release rename replace resource restrict return returning returns reverse revoke rollback row rowid rowlabel rownum rows run savepoint schema segment select separate session set share snapshot some space split sql start statement storage subtype successful synonym tabauth table tables tablespace task terminate then to trigger truncate type union unique unlimited unrecoverable unusable update use using validate value values variable view views when whenever where while with work"),builtin:l("abs acos add_months ascii asin atan atan2 average bfile bfilename bigserial bit blob ceil character chartorowid chr clob concat convert cos cosh count dec decode deref dual dump dup_val_on_index empty error exp false float floor found glb greatest hextoraw initcap instr instrb int integer isopen last_day least length lengthb ln lower lpad ltrim lub make_ref max min mlslabel mod months_between natural naturaln nchar nclob new_time next_day nextval nls_charset_decl_len nls_charset_id nls_charset_name nls_initcap nls_lower nls_sort nls_upper nlssort no_data_found notfound null number numeric nvarchar2 nvl others power rawtohex real reftohex round rowcount rowidtochar rowtype rpad rtrim serial sign signtype sin sinh smallint soundex sqlcode sqlerrm sqrt stddev string substr substrb sum sysdate tan tanh to_char text to_date to_label to_multi_byte to_number to_single_byte translate true trunc uid unlogged upper user userenv varchar varchar2 variance varying vsize xml"),operatorChars:/^[*\/+\-%<>!=~]/,dateSQL:l("date time timestamp"),support:l("doubleQuote nCharCast zerolessFloat binaryNumber hexNumber")}),b=r({keywords:l("select alter $elem$ $key$ $value$ add after all analyze and archive as asc before between binary both bucket buckets by cascade case cast change cluster clustered clusterstatus collection column columns comment compute concatenate continue create cross cursor data database databases dbproperties deferred delete delimited desc describe directory disable distinct distribute drop else enable end escaped exclusive exists explain export extended external fetch fields fileformat first format formatted from full function functions grant group having hold_ddltime idxproperties if import in index indexes inpath inputdriver inputformat insert intersect into is items join keys lateral left like limit lines load local location lock locks mapjoin materialized minus msck no_drop nocompress not of offline on option or order out outer outputdriver outputformat overwrite partition partitioned partitions percent plus preserve procedure purge range rcfile read readonly reads rebuild recordreader recordwriter recover reduce regexp rename repair replace restrict revoke right rlike row schema schemas semi sequencefile serde serdeproperties set shared show show_database sort sorted ssl statistics stored streamtable table tables tablesample tblproperties temporary terminated textfile then tmp to touch transform trigger unarchive undo union uniquejoin unlock update use using utc utc_tmestamp view when where while with admin authorization char compact compactions conf cube current current_date current_timestamp day decimal defined dependency directories elem_type exchange file following for grouping hour ignore inner interval jar less logical macro minute month more none noscan over owner partialscan preceding pretty principals protection reload rewrite role roles rollup rows second server sets skewed transactions truncate unbounded unset uri user values window year"),builtin:l("bool boolean long timestamp tinyint smallint bigint int float double date datetime unsigned string array struct map uniontype key_type utctimestamp value_type varchar"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=]/,dateSQL:l("date timestamp"),support:l("ODBCdotTable doubleQuote binaryNumber hexNumber")}),v=r({client:l("source"),keywords:l(s+"a abort abs absent absolute access according action ada add admin after aggregate alias all allocate also alter always analyse analyze and any are array array_agg array_max_cardinality as asc asensitive assert assertion assignment asymmetric at atomic attach attribute attributes authorization avg backward base64 before begin begin_frame begin_partition bernoulli between bigint binary bit bit_length blob blocked bom boolean both breadth by c cache call called cardinality cascade cascaded case cast catalog catalog_name ceil ceiling chain char char_length character character_length character_set_catalog character_set_name character_set_schema characteristics characters check checkpoint class class_origin clob close cluster coalesce cobol collate collation collation_catalog collation_name collation_schema collect column column_name columns command_function command_function_code comment comments commit committed concurrently condition condition_number configuration conflict connect connection connection_name constant constraint constraint_catalog constraint_name constraint_schema constraints constructor contains content continue control conversion convert copy corr corresponding cost count covar_pop covar_samp create cross csv cube cume_dist current current_catalog current_date current_default_transform_group current_path current_role current_row current_schema current_time current_timestamp current_transform_group_for_type current_user cursor cursor_name cycle data database datalink datatype date datetime_interval_code datetime_interval_precision day db deallocate debug dec decimal declare default defaults deferrable deferred defined definer degree delete delimiter delimiters dense_rank depends depth deref derived desc describe descriptor detach detail deterministic diagnostics dictionary disable discard disconnect dispatch distinct dlnewcopy dlpreviouscopy dlurlcomplete dlurlcompleteonly dlurlcompletewrite dlurlpath dlurlpathonly dlurlpathwrite dlurlscheme dlurlserver dlvalue do document domain double drop dump dynamic dynamic_function dynamic_function_code each element else elseif elsif empty enable encoding encrypted end end_frame end_partition endexec enforced enum equals errcode error escape event every except exception exclude excluding exclusive exec execute exists exit exp explain expression extension external extract false family fetch file filter final first first_value flag float floor following for force foreach foreign fortran forward found frame_row free freeze from fs full function functions fusion g general generated get global go goto grant granted greatest group grouping groups handler having header hex hierarchy hint hold hour id identity if ignore ilike immediate immediately immutable implementation implicit import in include including increment indent index indexes indicator info inherit inherits initially inline inner inout input insensitive insert instance instantiable instead int integer integrity intersect intersection interval into invoker is isnull isolation join k key key_member key_type label lag language large last last_value lateral lead leading leakproof least left length level library like like_regex limit link listen ln load local localtime localtimestamp location locator lock locked log logged loop lower m map mapping match matched materialized max max_cardinality maxvalue member merge message message_length message_octet_length message_text method min minute minvalue mod mode modifies module month more move multiset mumps name names namespace national natural nchar nclob nesting new next nfc nfd nfkc nfkd nil no none normalize normalized not nothing notice notify notnull nowait nth_value ntile null nullable nullif nulls number numeric object occurrences_regex octet_length octets of off offset oids old on only open operator option options or order ordering ordinality others out outer output over overlaps overlay overriding owned owner p pad parallel parameter parameter_mode parameter_name parameter_ordinal_position parameter_specific_catalog parameter_specific_name parameter_specific_schema parser partial partition pascal passing passthrough password path percent percent_rank percentile_cont percentile_disc perform period permission pg_context pg_datatype_name pg_exception_context pg_exception_detail pg_exception_hint placing plans pli policy portion position position_regex power precedes preceding precision prepare prepared preserve primary print_strict_params prior privileges procedural procedure procedures program public publication query quote raise range rank read reads real reassign recheck recovery recursive ref references referencing refresh regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy regr_syy reindex relative release rename repeatable replace replica requiring reset respect restart restore restrict result result_oid return returned_cardinality returned_length returned_octet_length returned_sqlstate returning returns reverse revoke right role rollback rollup routine routine_catalog routine_name routine_schema routines row row_count row_number rows rowtype rule savepoint scale schema schema_name schemas scope scope_catalog scope_name scope_schema scroll search second section security select selective self sensitive sequence sequences serializable server server_name session session_user set setof sets share show similar simple size skip slice smallint snapshot some source space specific specific_name specifictype sql sqlcode sqlerror sqlexception sqlstate sqlwarning sqrt stable stacked standalone start state statement static statistics stddev_pop stddev_samp stdin stdout storage strict strip structure style subclass_origin submultiset subscription substring substring_regex succeeds sum symmetric sysid system system_time system_user t table table_name tables tablesample tablespace temp template temporary text then ties time timestamp timezone_hour timezone_minute to token top_level_count trailing transaction transaction_active transactions_committed transactions_rolled_back transform transforms translate translate_regex translation treat trigger trigger_catalog trigger_name trigger_schema trim trim_array true truncate trusted type types uescape unbounded uncommitted under unencrypted union unique unknown unlink unlisten unlogged unnamed unnest until untyped update upper uri usage use_column use_variable user user_defined_type_catalog user_defined_type_code user_defined_type_name user_defined_type_schema using vacuum valid validate validator value value_of values var_pop var_samp varbinary varchar variable_conflict variadic varying verbose version versioning view views volatile warning when whenever where while whitespace width_bucket window with within without work wrapper write xml xmlagg xmlattributes xmlbinary xmlcast xmlcomment xmlconcat xmldeclaration xmldocument xmlelement xmlexists xmlforest xmliterate xmlnamespaces xmlparse xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltext xmlvalidate year yes zone"),builtin:l("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:l("false true null unknown"),operatorChars:/^[*\/+\-%<>!=&|^\/#@?~]/,backslashStringEscapes:!1,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast escapeConstant")}),y=r({keywords:l("ancestor and asc by contains desc descendant distinct from group has in is limit offset on order select superset where"),atoms:l("false true"),builtin:l("blob datetime first key __key__ string integer double boolean null"),operatorChars:/^[*+\-%<>!=]/}),k=r({client:l("source"),keywords:l("abort absolute access action active add admin after aggregate all also alter always analyse analyze and any array as asc assertion assignment asymmetric at authorization backward before begin between bigint binary bit boolean both by cache called cascade cascaded case cast chain char character characteristics check checkpoint class close cluster coalesce codegen collate column comment commit committed concurrency concurrently configuration connection constraint constraints contains content continue conversion copy cost cpu_rate_limit create createdb createexttable createrole createuser cross csv cube current current_catalog current_date current_role current_schema current_time current_timestamp current_user cursor cycle data database day deallocate dec decimal declare decode default defaults deferrable deferred definer delete delimiter delimiters deny desc dictionary disable discard distinct distributed do document domain double drop dxl each else enable encoding encrypted end enum errors escape every except exchange exclude excluding exclusive execute exists explain extension external extract false family fetch fields filespace fill filter first float following for force foreign format forward freeze from full function global grant granted greatest group group_id grouping handler hash having header hold host hour identity if ignore ilike immediate immutable implicit in including inclusive increment index indexes inherit inherits initially inline inner inout input insensitive insert instead int integer intersect interval into invoker is isnull isolation join key language large last leading least left level like limit list listen load local localtime localtimestamp location lock log login mapping master match maxvalue median merge minute minvalue missing mode modifies modify month move name names national natural nchar new newline next no nocreatedb nocreateexttable nocreaterole nocreateuser noinherit nologin none noovercommit nosuperuser not nothing notify notnull nowait null nullif nulls numeric object of off offset oids old on only operator option options or order ordered others out outer over overcommit overlaps overlay owned owner parser partial partition partitions passing password percent percentile_cont percentile_disc placing plans position preceding precision prepare prepared preserve primary prior privileges procedural procedure protocol queue quote randomly range read readable reads real reassign recheck recursive ref references reindex reject relative release rename repeatable replace replica reset resource restart restrict returning returns revoke right role rollback rollup rootpartition row rows rule savepoint scatter schema scroll search second security segment select sequence serializable session session_user set setof sets share show similar simple smallint some split sql stable standalone start statement statistics stdin stdout storage strict strip subpartition subpartitions substring superuser symmetric sysid system table tablespace temp template temporary text then threshold ties time timestamp to trailing transaction treat trigger trim true truncate trusted type unbounded uncommitted unencrypted union unique unknown unlisten until update user using vacuum valid validation validator value values varchar variadic varying verbose version view volatile web when where whitespace window with within without work writable write xml xmlattributes xmlconcat xmlelement xmlexists xmlforest xmlparse xmlpi xmlroot xmlserialize year yes zone"),builtin:l("bigint int8 bigserial serial8 bit varying varbit boolean bool box bytea character char varchar cidr circle date double precision float float8 inet integer int int4 interval json jsonb line lseg macaddr macaddr8 money numeric decimal path pg_lsn point polygon real float4 smallint int2 smallserial serial2 serial serial4 text time without zone with timetz timestamp timestamptz tsquery tsvector txid_snapshot uuid xml"),atoms:l("false true null unknown"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable decimallessFloat zerolessFloat binaryNumber hexNumber nCharCast charsetCast")}),O=r({keywords:l("add after all alter analyze and anti archive array as asc at between bucket buckets by cache cascade case cast change clear cluster clustered codegen collection column columns comment commit compact compactions compute concatenate cost create cross cube current current_date current_timestamp database databases data dbproperties defined delete delimited deny desc describe dfs directories distinct distribute drop else end escaped except exchange exists explain export extended external false fields fileformat first following for format formatted from full function functions global grant group grouping having if ignore import in index indexes inner inpath inputformat insert intersect interval into is items join keys last lateral lazy left like limit lines list load local location lock locks logical macro map minus msck natural no not null nulls of on optimize option options or order out outer outputformat over overwrite partition partitioned partitions percent preceding principals purge range recordreader recordwriter recover reduce refresh regexp rename repair replace reset restrict revoke right rlike role roles rollback rollup row rows schema schemas select semi separated serde serdeproperties set sets show skewed sort sorted start statistics stored stratify struct table tables tablesample tblproperties temp temporary terminated then to touch transaction transactions transform true truncate unarchive unbounded uncache union unlock unset use using values view when where window with"),builtin:l("tinyint smallint int bigint boolean float double string binary timestamp decimal array map struct uniontype delimited serde sequencefile textfile rcfile inputformat outputformat"),atoms:l("false true null"),operatorChars:/^[*\/+\-%<>!=~&|^]/,dateSQL:l("date time timestamp"),support:l("ODBCdotTable doubleQuote zerolessFloat")}),w=r({client:l("source"),keywords:l("alter and as asc between by count create delete desc distinct drop from group having in insert into is join like not on or order select set table union update values where limit after all and as at asc avedev avg between by case cast coalesce count create current_timestamp day days delete define desc distinct else end escape events every exists false first from full group having hour hours in inner insert instanceof into irstream is istream join last lastweekday left limit like max match_recognize matches median measures metadatasql min minute minutes msec millisecond milliseconds not null offset on or order outer output partition pattern prev prior regexp retain-union retain-intersection right rstream sec second seconds select set some snapshot sql stddev sum then true unidirectional until update variable weekday when where window"),builtin:{},atoms:l("false true null"),operatorChars:/^[*+\-%<>!=&|^\/#@?~]/,dateSQL:l("time"),support:l("decimallessFloat zerolessFloat binaryNumber hexNumber")})},73884:(e,t,n)=>{function r(e){function t(e,t){e.cmdState.push(t)}function n(e){return e.cmdState.length>0?e.cmdState[e.cmdState.length-1]:null}function r(e,t,n){return function(){this.name=e,this.bracketNo=0,this.style=t,this.styles=n,this.argument=null,this.styleIdentifier=function(){return this.styles[this.bracketNo-1]||null},this.openBracket=function(){return this.bracketNo++,"bracket"},this.closeBracket=function(){}}}var i={};function o(e,t){e.f=t}function a(e,r){var a;if(e.match(/^\\[a-zA-Z@\xc0-\u1fff\u2060-\uffff]+/)){var c=e.current().slice(1);return t(r,a=new(a=i.hasOwnProperty(c)?i[c]:i.DEFAULT)),o(r,l),a.style}if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/\\]/))return"tag";if(e.match("\\["))return o(r,(function(e,t){return s(e,t,"\\]")})),"keyword";if(e.match("\\("))return o(r,(function(e,t){return s(e,t,"\\)")})),"keyword";if(e.match("$$"))return o(r,(function(e,t){return s(e,t,"$$")})),"keyword";if(e.match("$"))return o(r,(function(e,t){return s(e,t,"$")})),"keyword";var u=e.next();return"%"==u?(e.skipToEnd(),"comment"):"}"==u||"]"==u?(a=n(r))?(a.closeBracket(u),o(r,l),"bracket"):"error":"{"==u||"["==u?(t(r,a=new(a=i.DEFAULT)),"bracket"):/\d/.test(u)?(e.eatWhile(/[\w.%]/),"atom"):(e.eatWhile(/[\w\-_]/),a=function(e){for(var t=e.cmdState,n=t.length-1;n>=0;n--){var r=t[n];if("DEFAULT"!=r.name)return r}return{styleIdentifier:function(){return null}}}(r),"begin"==a.name&&(a.argument=e.current()),a.styleIdentifier())}function s(e,t,n){if(e.eatSpace())return null;if(n&&e.match(n))return o(t,a),"keyword";if(e.match(/^\\[a-zA-Z@]+/))return"tag";if(e.match(/^[a-zA-Z]+/))return"variableName.special";if(e.match(/^\\[$&%#{}_]/))return"tag";if(e.match(/^\\[,;!\/]/))return"tag";if(e.match(/^[\^_&]/))return"tag";if(e.match(/^[+\-<>|=,\/@!*:;'"`~#?]/))return null;if(e.match(/^(\d+\.\d*|\d*\.\d+|\d+)/))return"number";var r=e.next();return"{"==r||"}"==r||"["==r||"]"==r||"("==r||")"==r?"bracket":"%"==r?(e.skipToEnd(),"comment"):"error"}function l(e,t){var r=e.peek();return"{"==r||"["==r?(n(t).openBracket(r),e.eat(r),o(t,a),"bracket"):/[ \t\r]/.test(r)?(e.eat(r),null):(o(t,a),function(e){var t=e.cmdState.pop();t&&t.closeBracket()}(t),a(e,t))}return i.importmodule=r("importmodule","tag",["string","builtin"]),i.documentclass=r("documentclass","tag",["","atom"]),i.usepackage=r("usepackage","tag",["atom"]),i.begin=r("begin","tag",["atom"]),i.end=r("end","tag",["atom"]),i.label=r("label","tag",["atom"]),i.ref=r("ref","tag",["atom"]),i.eqref=r("eqref","tag",["atom"]),i.cite=r("cite","tag",["atom"]),i.bibitem=r("bibitem","tag",["atom"]),i.Bibitem=r("Bibitem","tag",["atom"]),i.RBibitem=r("RBibitem","tag",["atom"]),i.DEFAULT=function(){this.name="DEFAULT",this.style="tag",this.styleIdentifier=this.openBracket=this.closeBracket=function(){}},{name:"stex",startState:function(){return{cmdState:[],f:e?function(e,t){return s(e,t)}:a}},copyState:function(e){return{cmdState:e.cmdState.slice(),f:e.f}},token:function(e,t){return t.f(e,t)},blankLine:function(e){e.f=a,e.cmdState.length=0},languageData:{commentTokens:{line:"%"}}}}n.r(t),n.d(t,{stex:()=>i,stexMath:()=>o});const i=r(!1),o=r(!0)},57164:(e,t,n)=>{n.r(t),n.d(t,{stylus:()=>oe});var r=["a","abbr","address","area","article","aside","audio","b","base","bdi","bdo","bgsound","blockquote","body","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","div","dl","dt","em","embed","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","img","input","ins","kbd","keygen","label","legend","li","link","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","pre","progress","q","rp","rt","ruby","s","samp","script","section","select","small","source","span","strong","style","sub","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","track","u","ul","var","video"],i=["domain","regexp","url-prefix","url"],o=["all","aural","braille","handheld","print","projection","screen","tty","tv","embossed"],a=["width","min-width","max-width","height","min-height","max-height","device-width","min-device-width","max-device-width","device-height","min-device-height","max-device-height","aspect-ratio","min-aspect-ratio","max-aspect-ratio","device-aspect-ratio","min-device-aspect-ratio","max-device-aspect-ratio","color","min-color","max-color","color-index","min-color-index","max-color-index","monochrome","min-monochrome","max-monochrome","resolution","min-resolution","max-resolution","scan","grid","dynamic-range","video-dynamic-range"],s=["align-content","align-items","align-self","alignment-adjust","alignment-baseline","anchor-point","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","azimuth","backface-visibility","background","background-attachment","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","binding","bleed","bookmark-label","bookmark-level","bookmark-state","bookmark-target","border","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","caption-side","clear","clip","color","color-profile","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","content","counter-increment","counter-reset","crop","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","drop-initial-after-adjust","drop-initial-after-align","drop-initial-before-adjust","drop-initial-before-align","drop-initial-size","drop-initial-value","elevation","empty-cells","fit","fit-position","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","float-offset","flow-from","flow-into","font","font-feature-settings","font-family","font-kerning","font-language-override","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-weight","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-position","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","inline-box-align","justify-content","left","letter-spacing","line-break","line-height","line-stacking","line-stacking-ruby","line-stacking-shift","line-stacking-strategy","list-style","list-style-image","list-style-position","list-style-type","margin","margin-bottom","margin-left","margin-right","margin-top","marker-offset","marks","marquee-direction","marquee-loop","marquee-play-count","marquee-speed","marquee-style","max-height","max-width","min-height","min-width","move-to","nav-down","nav-index","nav-left","nav-right","nav-up","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-style","overflow-wrap","overflow-x","overflow-y","padding","padding-bottom","padding-left","padding-right","padding-top","page","page-break-after","page-break-before","page-break-inside","page-policy","pause","pause-after","pause-before","perspective","perspective-origin","pitch","pitch-range","play-during","position","presentation-level","punctuation-trim","quotes","region-break-after","region-break-before","region-break-inside","region-fragment","rendering-intent","resize","rest","rest-after","rest-before","richness","right","rotation","rotation-point","ruby-align","ruby-overhang","ruby-position","ruby-span","shape-image-threshold","shape-inside","shape-margin","shape-outside","size","speak","speak-as","speak-header","speak-numeral","speak-punctuation","speech-rate","stress","string-set","tab-size","table-layout","target","target-name","target-new","target-position","text-align","text-align-last","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip","text-decoration-style","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-height","text-indent","text-justify","text-outline","text-overflow","text-shadow","text-size-adjust","text-space-collapse","text-transform","text-underline-position","text-wrap","top","transform","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","unicode-bidi","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","z-index","clip-path","clip-rule","mask","enable-background","filter","flood-color","flood-opacity","lighting-color","stop-color","stop-opacity","pointer-events","color-interpolation","color-interpolation-filters","color-rendering","fill","fill-opacity","fill-rule","image-rendering","marker","marker-end","marker-mid","marker-start","shape-rendering","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","text-rendering","baseline-shift","dominant-baseline","glyph-orientation-horizontal","glyph-orientation-vertical","text-anchor","writing-mode","font-smoothing","osx-font-smoothing"],l=["scrollbar-arrow-color","scrollbar-base-color","scrollbar-dark-shadow-color","scrollbar-face-color","scrollbar-highlight-color","scrollbar-shadow-color","scrollbar-3d-light-color","scrollbar-track-color","shape-inside","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","zoom"],c=["font-family","src","unicode-range","font-variant","font-feature-settings","font-stretch","font-weight","font-style"],u=["aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen"],d=["above","absolute","activeborder","additive","activecaption","afar","after-white-space","ahead","alias","all","all-scroll","alphabetic","alternate","always","amharic","amharic-abegede","antialiased","appworkspace","arabic-indic","armenian","asterisks","attr","auto","avoid","avoid-column","avoid-page","avoid-region","background","backwards","baseline","below","bidi-override","binary","bengali","blink","block","block-axis","bold","bolder","border","border-box","both","bottom","break","break-all","break-word","bullets","button","buttonface","buttonhighlight","buttonshadow","buttontext","calc","cambodian","capitalize","caps-lock-indicator","caption","captiontext","caret","cell","center","checkbox","circle","cjk-decimal","cjk-earthly-branch","cjk-heavenly-stem","cjk-ideographic","clear","clip","close-quote","col-resize","collapse","column","compact","condensed","conic-gradient","contain","content","contents","content-box","context-menu","continuous","copy","counter","counters","cover","crop","cross","crosshair","currentcolor","cursive","cyclic","dashed","decimal","decimal-leading-zero","default","default-button","destination-atop","destination-in","destination-out","destination-over","devanagari","disc","discard","disclosure-closed","disclosure-open","document","dot-dash","dot-dot-dash","dotted","double","down","e-resize","ease","ease-in","ease-in-out","ease-out","element","ellipse","ellipsis","embed","end","ethiopic","ethiopic-abegede","ethiopic-abegede-am-et","ethiopic-abegede-gez","ethiopic-abegede-ti-er","ethiopic-abegede-ti-et","ethiopic-halehame-aa-er","ethiopic-halehame-aa-et","ethiopic-halehame-am-et","ethiopic-halehame-gez","ethiopic-halehame-om-et","ethiopic-halehame-sid-et","ethiopic-halehame-so-et","ethiopic-halehame-ti-er","ethiopic-halehame-ti-et","ethiopic-halehame-tig","ethiopic-numeric","ew-resize","expanded","extends","extra-condensed","extra-expanded","fantasy","fast","fill","fixed","flat","flex","footnotes","forwards","from","geometricPrecision","georgian","graytext","groove","gujarati","gurmukhi","hand","hangul","hangul-consonant","hebrew","help","hidden","hide","high","higher","highlight","highlighttext","hiragana","hiragana-iroha","horizontal","hsl","hsla","icon","ignore","inactiveborder","inactivecaption","inactivecaptiontext","infinite","infobackground","infotext","inherit","initial","inline","inline-axis","inline-block","inline-flex","inline-table","inset","inside","intrinsic","invert","italic","japanese-formal","japanese-informal","justify","kannada","katakana","katakana-iroha","keep-all","khmer","korean-hangul-formal","korean-hanja-formal","korean-hanja-informal","landscape","lao","large","larger","left","level","lighter","line-through","linear","linear-gradient","lines","list-item","listbox","listitem","local","logical","loud","lower","lower-alpha","lower-armenian","lower-greek","lower-hexadecimal","lower-latin","lower-norwegian","lower-roman","lowercase","ltr","malayalam","match","matrix","matrix3d","media-play-button","media-slider","media-sliderthumb","media-volume-slider","media-volume-sliderthumb","medium","menu","menulist","menulist-button","menutext","message-box","middle","min-intrinsic","mix","mongolian","monospace","move","multiple","myanmar","n-resize","narrower","ne-resize","nesw-resize","no-close-quote","no-drop","no-open-quote","no-repeat","none","normal","not-allowed","nowrap","ns-resize","numbers","numeric","nw-resize","nwse-resize","oblique","octal","open-quote","optimizeLegibility","optimizeSpeed","oriya","oromo","outset","outside","outside-shape","overlay","overline","padding","padding-box","painted","page","paused","persian","perspective","plus-darker","plus-lighter","pointer","polygon","portrait","pre","pre-line","pre-wrap","preserve-3d","progress","push-button","radial-gradient","radio","read-only","read-write","read-write-plaintext-only","rectangle","region","relative","repeat","repeating-linear-gradient","repeating-radial-gradient","repeating-conic-gradient","repeat-x","repeat-y","reset","reverse","rgb","rgba","ridge","right","rotate","rotate3d","rotateX","rotateY","rotateZ","round","row-resize","rtl","run-in","running","s-resize","sans-serif","scale","scale3d","scaleX","scaleY","scaleZ","scroll","scrollbar","scroll-position","se-resize","searchfield","searchfield-cancel-button","searchfield-decoration","searchfield-results-button","searchfield-results-decoration","semi-condensed","semi-expanded","separate","serif","show","sidama","simp-chinese-formal","simp-chinese-informal","single","skew","skewX","skewY","skip-white-space","slide","slider-horizontal","slider-vertical","sliderthumb-horizontal","sliderthumb-vertical","slow","small","small-caps","small-caption","smaller","solid","somali","source-atop","source-in","source-out","source-over","space","spell-out","square","square-button","standard","start","static","status-bar","stretch","stroke","sub","subpixel-antialiased","super","sw-resize","symbolic","symbols","table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row","table-row-group","tamil","telugu","text","text-bottom","text-top","textarea","textfield","thai","thick","thin","threeddarkshadow","threedface","threedhighlight","threedlightshadow","threedshadow","tibetan","tigre","tigrinya-er","tigrinya-er-abegede","tigrinya-et","tigrinya-et-abegede","to","top","trad-chinese-formal","trad-chinese-informal","translate","translate3d","translateX","translateY","translateZ","transparent","ultra-condensed","ultra-expanded","underline","up","upper-alpha","upper-armenian","upper-greek","upper-hexadecimal","upper-latin","upper-norwegian","upper-roman","uppercase","urdu","url","var","vertical","vertical-text","visible","visibleFill","visiblePainted","visibleStroke","visual","w-resize","wait","wave","wider","window","windowframe","windowtext","words","x-large","x-small","xor","xx-large","xx-small","bicubic","optimizespeed","grayscale","row","row-reverse","wrap","wrap-reverse","column-reverse","flex-start","flex-end","space-between","space-around","unset"],h=["in","and","or","not","is not","is a","is","isnt","defined","if unless"],f=["for","if","else","unless","from","to"],m=["null","true","false","href","title","type","not-allowed","readonly","disabled"],p=r.concat(i,o,a,s,l,u,d,c,h,f,m,["@font-face","@keyframes","@media","@viewport","@page","@host","@supports","@block","@css"]);function g(e){return e=e.sort((function(e,t){return t>e})),new RegExp("^(("+e.join(")|(")+"))\\b")}function b(e){for(var t={},n=0;n]=?|\?:|\~)/,D=g(h),z=b(f),N=new RegExp(/^\-(moz|ms|o|webkit)-/i),L=b(m),M="",Q={};function q(e,t){if(M=e.string.match(/(^[\w-]+\s*=\s*$)|(^\s*[\w-]+\s*=\s*[\w-])|(^\s*(\.|#|@|\$|\&|\[|\d|\+|::?|\{|\>|~|\/)?\s*[\w-]*([a-z0-9-]|\*|\/\*)(\(|,)?)/),t.context.line.firstWord=M?M[0].replace(/^\s*/,""):"",t.context.line.indent=e.indentation(),v=e.peek(),e.match("//"))return e.skipToEnd(),["comment","comment"];if(e.match("/*"))return t.tokenize=W,W(e,t);if('"'==v||"'"==v)return e.next(),t.tokenize=B(v),t.tokenize(e,t);if("@"==v)return e.next(),e.eatWhile(/[\w\\-]/),["def",e.current()];if("#"==v){if(e.next(),e.match(/^[0-9a-f]{3}([0-9a-f]([0-9a-f]{2}){0,2})?\b(?!-)/i))return["atom","atom"];if(e.match(/^[a-z][\w-]*/i))return["builtin","hash"]}return e.match(N)?["meta","vendor-prefixes"]:e.match(/^-?[0-9]?\.?[0-9]/)?(e.eatWhile(/[a-z%]/i),["number","unit"]):"!"==v?(e.next(),[e.match(/^(important|optional)/i)?"keyword":"operator","important"]):"."==v&&e.match(/^\.[a-z][\w-]*/i)?["qualifier","qualifier"]:e.match(A)?("("==e.peek()&&(t.tokenize=F),["property","word"]):e.match(/^[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","mixin"]):e.match(/^(\+|-)[a-z][\w-]*\(/i)?(e.backUp(1),["keyword","block-mixin"]):e.string.match(/^\s*&/)&&e.match(/^[-_]+[a-z][\w-]*/)?["qualifier","qualifier"]:e.match(/^(\/|&)(-|_|:|\.|#|[a-z])/)?(e.backUp(1),["variableName.special","reference"]):e.match(/^&{1}\s*$/)?["variableName.special","reference"]:e.match(D)?["operator","operator"]:e.match(/^\$?[-_]*[a-z0-9]+[\w-]*/i)?e.match(/^(\.|\[)[\w-\'\"\]]+/i,!1)&&!X(e.current())?(e.match("."),["variable","variable-name"]):["variable","word"]:e.match(I)?["operator",e.current()]:/[:;,{}\[\]\(\)]/.test(v)?(e.next(),[null,v]):(e.next(),[null,null])}function W(e,t){for(var n,r=!1;null!=(n=e.next());){if(r&&"/"==n){t.tokenize=null;break}r="*"==n}return["comment","comment"]}function B(e){return function(t,n){for(var r,i=!1;null!=(r=t.next());){if(r==e&&!i){")"==e&&t.backUp(1);break}i=!i&&"\\"==r}return(r==e||!i&&")"!=e)&&(n.tokenize=null),["string","string"]}}function F(e,t){return e.next(),e.match(/\s*[\"\')]/,!1)?t.tokenize=null:t.tokenize=B(")"),[null,"("]}function U(e,t,n,r){this.type=e,this.indent=t,this.prev=n,this.line=r||{firstWord:"",indent:0}}function j(e,t,n,r){return r=r>=0?r:t.indentUnit,e.context=new U(n,t.indentation()+r,e.context),n}function V(e,t,n){var r=e.context.indent-t.indentUnit;return n=n||!1,e.context=e.context.prev,n&&(e.context.indent=r),e.context.type}function G(e,t,n,r){for(var i=r||1;i>0;i--)n.context=n.context.prev;return function(e,t,n){return Q[n.context.type](e,t,n)}(e,t,n)}function X(e){return e.toLowerCase()in w}function Y(e){return(e=e.toLowerCase())in S||e in R}function Z(e){return e.toLowerCase()in z}function H(e){return e.toLowerCase().match(N)}function K(e){var t=e.toLowerCase(),n="variable";return X(e)?n="tag":Z(e)?n="block-keyword":Y(e)?n="property":t in T||t in L?n="atom":"return"==t||t in E?n="keyword":e.match(/^[A-Z]/)&&(n="string"),n}function J(e,t){return re(t)&&("{"==e||"]"==e||"hash"==e||"qualifier"==e)||"block-mixin"==e}function ee(e,t){return"{"==e&&t.match(/^\s*\$?[\w-]+/i,!1)}function te(e,t){return":"==e&&t.match(/^[a-z-]+/,!1)}function ne(e){return e.sol()||e.string.match(new RegExp("^\\s*"+e.current().replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")))}function re(e){return e.eol()||e.match(/^\s*$/,!1)}function ie(e){var t=/^\s*[-_]*[a-z0-9]+[\w-]*/i,n="string"==typeof e?e.match(t):e.string.match(t);return n?n[0].replace(/^\s*/,""):""}Q.block=function(e,t,n){if("comment"==e&&ne(t)||","==e&&re(t)||"mixin"==e)return j(n,t,"block",0);if(ee(e,t))return j(n,t,"interpolation");if(re(t)&&"]"==e&&!/^\s*(\.|#|:|\[|\*|&)/.test(t.string)&&!X(ie(t)))return j(n,t,"block",0);if(J(e,t))return j(n,t,"block");if("}"==e&&re(t))return j(n,t,"block",0);if("variable-name"==e)return t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/)||Z(ie(t))?j(n,t,"variableName"):j(n,t,"variableName",0);if("="==e)return re(t)||Z(ie(t))?j(n,t,"block"):j(n,t,"block",0);if("*"==e&&(re(t)||t.match(/\s*(,|\.|#|\[|:|{)/,!1)))return O="tag",j(n,t,"block");if(te(e,t))return j(n,t,"pseudo");if(/@(font-face|media|supports|(-moz-)?document)/.test(e))return j(n,t,re(t)?"block":"atBlock");if(/@(-(moz|ms|o|webkit)-)?keyframes$/.test(e))return j(n,t,"keyframes");if(/@extends?/.test(e))return j(n,t,"extend",0);if(e&&"@"==e.charAt(0))return t.indentation()>0&&Y(t.current().slice(1))?(O="variable","block"):/(@import|@require|@charset)/.test(e)?j(n,t,"block",0):j(n,t,"block");if("reference"==e&&re(t))return j(n,t,"block");if("("==e)return j(n,t,"parens");if("vendor-prefixes"==e)return j(n,t,"vendorPrefixes");if("word"==e){var r=t.current();if("property"==(O=K(r)))return ne(t)?j(n,t,"block",0):(O="atom","block");if("tag"==O){if(/embed|menu|pre|progress|sub|table/.test(r)&&Y(ie(t)))return O="atom","block";if(t.string.match(new RegExp("\\[\\s*"+r+"|"+r+"\\s*\\]")))return O="atom","block";if(x.test(r)&&(ne(t)&&t.string.match(/=/)||!ne(t)&&!t.string.match(/^(\s*\.|#|\&|\[|\/|>|\*)/)&&!X(ie(t))))return O="variable",Z(ie(t))?"block":j(n,t,"block",0);if(re(t))return j(n,t,"block")}if("block-keyword"==O)return O="keyword",t.current(/(if|unless)/)&&!ne(t)?"block":j(n,t,"block");if("return"==r)return j(n,t,"block",0);if("variable"==O&&t.string.match(/^\s?\$[\w-\.\[\]\'\"]+$/))return j(n,t,"block")}return n.context.type},Q.parens=function(e,t,n){if("("==e)return j(n,t,"parens");if(")"==e)return"parens"==n.context.prev.type?V(n,t):t.string.match(/^[a-z][\w-]*\(/i)&&re(t)||Z(ie(t))||/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(ie(t))||!t.string.match(/^-?[a-z][\w-\.\[\]\'\"]*\s*=/)&&X(ie(t))?j(n,t,"block"):t.string.match(/^[\$-]?[a-z][\w-\.\[\]\'\"]*\s*=/)||t.string.match(/^\s*(\(|\)|[0-9])/)||t.string.match(/^\s+[a-z][\w-]*\(/i)||t.string.match(/^\s+[\$-]?[a-z]/i)?j(n,t,"block",0):re(t)?j(n,t,"block"):j(n,t,"block",0);if(e&&"@"==e.charAt(0)&&Y(t.current().slice(1))&&(O="variable"),"word"==e){var r=t.current();"tag"==(O=K(r))&&x.test(r)&&(O="variable"),"property"!=O&&"to"!=r||(O="atom")}return"variable-name"==e?j(n,t,"variableName"):te(e,t)?j(n,t,"pseudo"):n.context.type},Q.vendorPrefixes=function(e,t,n){return"word"==e?(O="property",j(n,t,"block",0)):V(n,t)},Q.pseudo=function(e,t,n){return Y(ie(t.string))?G(e,t,n):(t.match(/^[a-z-]+/),O="variableName.special",re(t)?j(n,t,"block"):V(n,t))},Q.atBlock=function(e,t,n){if("("==e)return j(n,t,"atBlock_parens");if(J(e,t))return j(n,t,"block");if(ee(e,t))return j(n,t,"interpolation");if("word"==e){var r=t.current().toLowerCase();if("tag"==(O=/^(only|not|and|or)$/.test(r)?"keyword":$.hasOwnProperty(r)?"tag":P.hasOwnProperty(r)?"attribute":C.hasOwnProperty(r)?"property":_.hasOwnProperty(r)?"string.special":K(t.current()))&&re(t))return j(n,t,"block")}return"operator"==e&&/^(not|and|or)$/.test(t.current())&&(O="keyword"),n.context.type},Q.atBlock_parens=function(e,t,n){if("{"==e||"}"==e)return n.context.type;if(")"==e)return re(t)?j(n,t,"block"):j(n,t,"atBlock");if("word"==e){var r=t.current().toLowerCase();return O=K(r),/^(max|min)/.test(r)&&(O="property"),"tag"==O&&(O=x.test(r)?"variable":"atom"),n.context.type}return Q.atBlock(e,t,n)},Q.keyframes=function(e,t,n){return"0"==t.indentation()&&("}"==e&&ne(t)||"]"==e||"hash"==e||"qualifier"==e||X(t.current()))?G(e,t,n):"{"==e?j(n,t,"keyframes"):"}"==e?ne(t)?V(n,t,!0):j(n,t,"keyframes"):"unit"==e&&/^[0-9]+\%$/.test(t.current())?j(n,t,"keyframes"):"word"==e&&"block-keyword"==(O=K(t.current()))?(O="keyword",j(n,t,"keyframes")):/@(font-face|media|supports|(-moz-)?document)/.test(e)?j(n,t,re(t)?"block":"atBlock"):"mixin"==e?j(n,t,"block",0):n.context.type},Q.interpolation=function(e,t,n){return"{"==e&&V(n,t)&&j(n,t,"block"),"}"==e?t.string.match(/^\s*(\.|#|:|\[|\*|&|>|~|\+|\/)/i)||t.string.match(/^\s*[a-z]/i)&&X(ie(t))?j(n,t,"block"):!t.string.match(/^(\{|\s*\&)/)||t.match(/\s*[\w-]/,!1)?j(n,t,"block",0):j(n,t,"block"):"variable-name"==e?j(n,t,"variableName",0):("word"==e&&"tag"==(O=K(t.current()))&&(O="atom"),n.context.type)},Q.extend=function(e,t,n){return"["==e||"="==e?"extend":"]"==e?V(n,t):"word"==e?(O=K(t.current()),"extend"):V(n,t)},Q.variableName=function(e,t,n){return"string"==e||"["==e||"]"==e||t.current().match(/^(\.|\$)/)?(t.current().match(/^\.[\w-]+/i)&&(O="variable"),"variableName"):G(e,t,n)};const oe={name:"stylus",startState:function(){return{tokenize:null,state:"block",context:new U("block",0,null)}},token:function(e,t){return!t.tokenize&&e.eatSpace()?null:((y=(t.tokenize||q)(e,t))&&"object"==typeof y&&(k=y[1],y=y[0]),O=y,t.state=Q[t.state](k,e,t),O)},indent:function(e,t,n){var r=e.context,i=t&&t.charAt(0),o=r.indent,a=ie(t),s=n.lineIndent(n.pos),l=e.context.prev?e.context.prev.line.firstWord:"",c=e.context.prev?e.context.prev.line.indent:s;return r.prev&&("}"==i&&("block"==r.type||"atBlock"==r.type||"keyframes"==r.type)||")"==i&&("parens"==r.type||"atBlock_parens"==r.type)||"{"==i&&"at"==r.type)?o=r.indent-n.unit:/(\})/.test(i)||(/@|\$|\d/.test(i)||/^\{/.test(t)||/^\s*\/(\/|\*)/.test(t)||/^\s*\/\*/.test(l)||/^\s*[\w-\.\[\]\'\"]+\s*(\?|:|\+)?=/i.test(t)||/^(\+|-)?[a-z][\w-]*\(/i.test(t)||/^return/.test(t)||Z(a)?o=s:/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(i)||X(a)?o=/\,\s*$/.test(l)?c:e.sol()||!/(\.|#|:|\[|\*|&|>|~|\+|\/)/.test(l)&&!X(l)?s:s<=c?c:c+n.unit:/,\s*$/.test(t)||!H(a)&&!Y(a)||(o=Z(l)?s<=c?c:c+n.unit:/^\{/.test(l)?s<=c?s:c+n.unit:H(l)||Y(l)?s>=c?c:s:/^(\.|#|:|\[|\*|&|@|\+|\-|>|~|\/)/.test(l)||/=\s*$/.test(l)||X(l)||/^\$[\w-\.\[\]\'\"]/.test(l)?c+n.unit:s)),o},languageData:{indentOnInput:/^\s*\}$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:p}}},57743:(e,t,n)=>{function r(e){for(var t={},n=0;n_});var i=r(["_","var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","open","public","internal","fileprivate","private","deinit","init","new","override","self","subscript","super","convenience","dynamic","final","indirect","lazy","required","static","unowned","unowned(safe)","unowned(unsafe)","weak","as","is","break","case","continue","default","else","fallthrough","for","guard","if","in","repeat","switch","where","while","defer","return","inout","mutating","nonmutating","isolated","nonisolated","catch","do","rethrows","throw","throws","async","await","try","didSet","get","set","willSet","assignment","associativity","infix","left","none","operator","postfix","precedence","precedencegroup","prefix","right","Any","AnyObject","Type","dynamicType","Self","Protocol","__COLUMN__","__FILE__","__FUNCTION__","__LINE__"]),o=r(["var","let","actor","class","enum","extension","import","protocol","struct","func","typealias","associatedtype","for"]),a=r(["true","false","nil","self","super","_"]),s=r(["Array","Bool","Character","Dictionary","Double","Float","Int","Int8","Int16","Int32","Int64","Never","Optional","Set","String","UInt8","UInt16","UInt32","UInt64","Void"]),l="+-/*%=|&<>~^?!",c=":;,.(){}[]",u=/^\-?0b[01][01_]*/,d=/^\-?0o[0-7][0-7_]*/,h=/^\-?0x[\dA-Fa-f][\dA-Fa-f_]*(?:(?:\.[\dA-Fa-f][\dA-Fa-f_]*)?[Pp]\-?\d[\d_]*)?/,f=/^\-?\d[\d_]*(?:\.\d[\d_]*)?(?:[Ee]\-?\d[\d_]*)?/,m=/^\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1/,p=/^\.(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/,g=/^\#[A-Za-z]+/,b=/^@(?:\$\d+|(`?)[_A-Za-z][_A-Za-z$0-9]*\1)/;function v(e,t,n){if(e.sol()&&(t.indented=e.indentation()),e.eatSpace())return null;var r,v=e.peek();if("/"==v){if(e.match("//"))return e.skipToEnd(),"comment";if(e.match("/*"))return t.tokenize.push(O),O(e,t)}if(e.match(g))return"builtin";if(e.match(b))return"attribute";if(e.match(u))return"number";if(e.match(d))return"number";if(e.match(h))return"number";if(e.match(f))return"number";if(e.match(p))return"property";if(l.indexOf(v)>-1)return e.next(),"operator";if(c.indexOf(v)>-1)return e.next(),e.match(".."),"punctuation";if(r=e.match(/("""|"|')/)){var y=k.bind(null,r[0]);return t.tokenize.push(y),y(e,t)}if(e.match(m)){var w=e.current();return s.hasOwnProperty(w)?"type":a.hasOwnProperty(w)?"atom":i.hasOwnProperty(w)?(o.hasOwnProperty(w)&&(t.prev="define"),"keyword"):"define"==n?"def":"variable"}return e.next(),null}function y(){var e=0;return function(t,n,r){var i=v(t,n,r);if("punctuation"==i)if("("==t.current())++e;else if(")"==t.current()){if(0==e)return t.backUp(1),n.tokenize.pop(),n.tokenize[n.tokenize.length-1](t,n);--e}return i}}function k(e,t,n){for(var r,i=1==e.length,o=!1;r=t.peek();)if(o){if(t.next(),"("==r)return n.tokenize.push(y()),"string";o=!1}else{if(t.match(e))return n.tokenize.pop(),"string";t.next(),o="\\"==r}return i&&n.tokenize.pop(),"string"}function O(e,t){for(var n;n=e.next();)if("/"===n&&e.eat("*"))t.tokenize.push(O);else if("*"===n&&e.eat("/")){t.tokenize.pop();break}return"comment"}function w(e,t,n){this.prev=e,this.align=t,this.indented=n}function x(e,t){var n=t.match(/^\s*($|\/[\/\*]|[)}\]])/,!1)?null:t.column()+1;e.context=new w(e.context,n,e.indented)}function S(e){e.context&&(e.indented=e.context.indented,e.context=e.context.prev)}const _={name:"swift",startState:function(){return{prev:null,context:null,indented:0,tokenize:[]}},token:function(e,t){var n=t.prev;t.prev=null;var r=(t.tokenize[t.tokenize.length-1]||v)(e,t,n);if(r&&"comment"!=r?t.prev||(t.prev=r):t.prev=n,"punctuation"==r){var i=/[\(\[\{]|([\]\)\}])/.exec(e.current());i&&(i[1]?S:x)(t,e)}return r},indent:function(e,t,n){var r=e.context;if(!r)return 0;var i=/^[\]\}\)]/.test(t);return null!=r.align?r.align-(i?1:0):r.indented+(i?0:n.unit)},languageData:{indentOnInput:/^\s*[\)\}\]]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},closeBrackets:{brackets:["(","[","{","'",'"',"`"]}}}},76555:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rd});var i=r("Tcl safe after append array auto_execok auto_import auto_load auto_mkindex auto_mkindex_old auto_qualify auto_reset bgerror binary break catch cd close concat continue dde eof encoding error eval exec exit expr fblocked fconfigure fcopy file fileevent filename filename flush for foreach format gets glob global history http if incr info interp join lappend lindex linsert list llength load lrange lreplace lsearch lset lsort memory msgcat namespace open package parray pid pkg::create pkg_mkIndex proc puts pwd re_syntax read regex regexp registry regsub rename resource return scan seek set socket source split string subst switch tcl_endOfWord tcl_findLibrary tcl_startOfNextWord tcl_wordBreakAfter tcl_startOfPreviousWord tcl_wordBreakBefore tcltest tclvars tell time trace unknown unset update uplevel upvar variable vwait"),o=r("if elseif else and not or eq ne in ni for foreach while switch"),a=/[+\-*&%=<>!?^\/\|]/;function s(e,t,n){return t.tokenize=n,n(e,t)}function l(e,t){var n=t.beforeParams;t.beforeParams=!1;var r,d=e.next();if('"'!=d&&"'"!=d||!t.inParams){if(/[\[\]{}\(\),;\.]/.test(d))return"("==d&&n?t.inParams=!0:")"==d&&(t.inParams=!1),null;if(/\d/.test(d))return e.eatWhile(/[\w\.]/),"number";if("#"==d)return e.eat("*")?s(e,t,c):"#"==d&&e.match(/ *\[ *\[/)?s(e,t,u):(e.skipToEnd(),"comment");if('"'==d)return e.skipTo(/"/),"comment";if("$"==d)return e.eatWhile(/[$_a-z0-9A-Z\.{:]/),e.eatWhile(/}/),t.beforeParams=!0,"builtin";if(a.test(d))return e.eatWhile(a),"comment";e.eatWhile(/[\w\$_{}\xa1-\uffff]/);var h=e.current().toLowerCase();return i&&i.propertyIsEnumerable(h)?"keyword":o&&o.propertyIsEnumerable(h)?(t.beforeParams=!0,"keyword"):null}return s(e,t,(r=d,function(e,t){for(var n,i=!1,o=!1;null!=(n=e.next());){if(n==r&&!i){o=!0;break}i=!i&&"\\"==n}return o&&(t.tokenize=l),"string"}))}function c(e,t){for(var n,r=!1;n=e.next();){if("#"==n&&r){t.tokenize=l;break}r="*"==n}return"comment"}function u(e,t){for(var n,r=0;n=e.next();){if("#"==n&&2==r){t.tokenize=l;break}"]"==n?r++:" "!=n&&(r=0)}return"meta"}const d={name:"tcl",startState:function(){return{tokenize:l,beforeParams:!1,inParams:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"#"}}}},38373:(e,t,n)=>{n.r(t),n.d(t,{textile:()=>d});var r={addition:"inserted",attributes:"propertyName",bold:"strong",cite:"keyword",code:"monospace",definitionList:"list",deletion:"deleted",div:"punctuation",em:"emphasis",footnote:"variable",footCite:"qualifier",header:"heading",html:"comment",image:"atom",italic:"emphasis",link:"link",linkDefinition:"link",list1:"list",list2:"list.special",list3:"list",notextile:"string.special",pre:"operator",p:"content",quote:"bracket",span:"quote",specialChar:"character",strong:"strong",sub:"content.special",sup:"content.special",table:"variableName.special",tableHeading:"operator"};function i(e,t,n){if("_"===n)return e.eat("_")?o(e,t,"italic",/__/,2):o(e,t,"em",/_/,1);if("*"===n)return e.eat("*")?o(e,t,"bold",/\*\*/,2):o(e,t,"strong",/\*/,1);if("["===n)return e.match(/\d+\]/)&&(t.footCite=!0),a(t);if("("===n&&e.match(/^(r|tm|c)\)/))return r.specialChar;if("<"===n&&e.match(/(\w+)[^>]+>[^<]+<\/\1>/))return r.html;if("?"===n&&e.eat("?"))return o(e,t,"cite",/\?\?/,2);if("="===n&&e.eat("="))return o(e,t,"notextile",/==/,2);if("-"===n&&!e.eat("-"))return o(e,t,"deletion",/-/,1);if("+"===n)return o(e,t,"addition",/\+/,1);if("~"===n)return o(e,t,"sub",/~/,1);if("^"===n)return o(e,t,"sup",/\^/,1);if("%"===n)return o(e,t,"span",/%/,1);if("@"===n)return o(e,t,"code",/@/,1);if("!"===n){var i=o(e,t,"image",/(?:\([^\)]+\))?!/,1);return e.match(/^:\S+/),i}return a(t)}function o(e,t,n,r,i){var o=e.pos>i?e.string.charAt(e.pos-i-1):null,s=e.peek();if(t[n]){if((!s||/\W/.test(s))&&o&&/\S/.test(o)){var l=a(t);return t[n]=!1,l}}else(!o||/\W/.test(o))&&s&&/\S/.test(s)&&e.match(new RegExp("^.*\\S"+r.source+"(?:\\W|$)"),!1)&&(t[n]=!0,t.mode=u.attributes);return a(t)}function a(e){var t=s(e);if(t)return t;var n=[];return e.layoutType&&n.push(r[e.layoutType]),n=n.concat(function(e){for(var t=[],n=1;n]+)?>(?:[^<]+<\/\1>)?/,link:/[^"]+":\S/,linkDefinition:/\[[^\s\]]+\]\S+/,list:/(?:#+|\*+)/,notextile:"notextile",para:"p",pre:"pre",table:"table",tableCellAttributes:/[\/\\]\d+/,tableHeading:/\|_\./,tableText:/[^"_\*\[\(\?\+~\^%@|-]+/,text:/[^!"_=\*\[\(<\?\+~\^%@-]+/},attributes:{align:/(?:<>|<|>|=)/,selector:/\([^\(][^\)]+\)/,lang:/\[[^\[\]]+\]/,pad:/(?:\(+|\)+){1,2}/,css:/\{[^\}]+\}/},createRe:function(e){switch(e){case"drawTable":return l.makeRe("^",l.single.drawTable,"$");case"html":return l.makeRe("^",l.single.html,"(?:",l.single.html,")*","$");case"linkDefinition":return l.makeRe("^",l.single.linkDefinition,"$");case"listLayout":return l.makeRe("^",l.single.list,c("allAttributes"),"*\\s+");case"tableCellAttributes":return l.makeRe("^",l.choiceRe(l.single.tableCellAttributes,c("allAttributes")),"+\\.");case"type":return l.makeRe("^",c("allTypes"));case"typeLayout":return l.makeRe("^",c("allTypes"),c("allAttributes"),"*\\.\\.?","(\\s+|$)");case"attributes":return l.makeRe("^",c("allAttributes"),"+");case"allTypes":return l.choiceRe(l.single.div,l.single.foot,l.single.header,l.single.bc,l.single.bq,l.single.notextile,l.single.pre,l.single.table,l.single.para);case"allAttributes":return l.choiceRe(l.attributes.selector,l.attributes.css,l.attributes.lang,l.attributes.align,l.attributes.pad);default:return l.makeRe("^",l.single[e])}},makeRe:function(){for(var e="",t=0;t{n.r(t),n.d(t,{tiddlyWiki:()=>T});var r={},i={allTags:!0,closeAll:!0,list:!0,newJournal:!0,newTiddler:!0,permaview:!0,saveChanges:!0,search:!0,slider:!0,tabs:!0,tag:!0,tagging:!0,tags:!0,tiddler:!0,timeline:!0,today:!0,version:!0,option:!0,with:!0,filter:!0},o=/[\w_\-]/i,a=/^\-\-\-\-+$/,s=/^\/\*\*\*$/,l=/^\*\*\*\/$/,c=/^<<<$/,u=/^\/\/\{\{\{$/,d=/^\/\/\}\}\}$/,h=/^$/,f=/^$/,m=/^\{\{\{$/,p=/^\}\}\}$/,g=/.*?\}\}\}/;function b(e,t,n){return t.tokenize=n,n(e,t)}function v(e,t){var n=e.sol(),i=e.peek();if(t.block=!1,n&&/[<\/\*{}\-]/.test(i)){if(e.match(m))return t.block=!0,b(e,t,O);if(e.match(c))return"quote";if(e.match(s)||e.match(l))return"comment";if(e.match(u)||e.match(d)||e.match(h)||e.match(f))return"comment";if(e.match(a))return"contentSeparator"}if(e.next(),n&&/[\/\*!#;:>|]/.test(i)){if("!"==i)return e.skipToEnd(),"header";if("*"==i)return e.eatWhile("*"),"comment";if("#"==i)return e.eatWhile("#"),"comment";if(";"==i)return e.eatWhile(";"),"comment";if(":"==i)return e.eatWhile(":"),"comment";if(">"==i)return e.eatWhile(">"),"quote";if("|"==i)return"header"}if("{"==i&&e.match("{{"))return b(e,t,O);if(/[hf]/i.test(i)&&/[ti]/i.test(e.peek())&&e.match(/\b(ttps?|tp|ile):\/\/[\-A-Z0-9+&@#\/%?=~_|$!:,.;]*[A-Z0-9+&@#\/%=~_|$]/i))return"link";if('"'==i)return"string";if("~"==i)return"brace";if(/[\[\]]/.test(i)&&e.match(i))return"brace";if("@"==i)return e.eatWhile(o),"link";if(/\d/.test(i))return e.eatWhile(/\d/),"number";if("/"==i){if(e.eat("%"))return b(e,t,y);if(e.eat("/"))return b(e,t,w)}if("_"==i&&e.eat("_"))return b(e,t,x);if("-"==i&&e.eat("-")){if(" "!=e.peek())return b(e,t,S);if(" "==e.peek())return"brace"}return"'"==i&&e.eat("'")?b(e,t,k):"<"==i&&e.eat("<")?b(e,t,_):(e.eatWhile(/[\w\$_]/),r.propertyIsEnumerable(e.current())?"keyword":null)}function y(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=v;break}r="%"==n}return"comment"}function k(e,t){for(var n,r=!1;n=e.next();){if("'"==n&&r){t.tokenize=v;break}r="'"==n}return"strong"}function O(e,t){var n=t.block;return n&&e.current()?"comment":!n&&e.match(g)||n&&e.sol()&&e.match(p)?(t.tokenize=v,"comment"):(e.next(),"comment")}function w(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=v;break}r="/"==n}return"emphasis"}function x(e,t){for(var n,r=!1;n=e.next();){if("_"==n&&r){t.tokenize=v;break}r="_"==n}return"link"}function S(e,t){for(var n,r=!1;n=e.next();){if("-"==n&&r){t.tokenize=v;break}r="-"==n}return"deleted"}function _(e,t){if("<<"==e.current())return"meta";var n=e.next();return n?">"==n&&">"==e.peek()?(e.next(),t.tokenize=v,"meta"):(e.eatWhile(/[\w\$_]/),i.propertyIsEnumerable(e.current())?"keyword":null):(t.tokenize=v,null)}const T={name:"tiddlywiki",startState:function(){return{tokenize:v}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)}}},94517:(e,t,n)=>{function r(e,t,n){return function(r,i){for(;!r.eol();){if(r.match(t)){i.tokenize=o;break}r.next()}return n&&(i.tokenize=n),e}}function i(e){return function(t,n){for(;!t.eol();)t.next();return n.tokenize=o,e}}function o(e,t){function n(n){return t.tokenize=n,n(e,t)}var a=e.sol(),s=e.next();switch(s){case"{":return e.eat("/"),e.eatSpace(),e.eatWhile(/[^\s\u00a0=\"\'\/?(}]/),t.tokenize=u,"tag";case"_":if(e.eat("_"))return n(r("strong","__",o));break;case"'":if(e.eat("'"))return n(r("em","''",o));break;case"(":if(e.eat("("))return n(r("link","))",o));break;case"[":return n(r("url","]",o));case"|":if(e.eat("|"))return n(r("comment","||"));break;case"-":if(e.eat("="))return n(r("header string","=-",o));if(e.eat("-"))return n(r("error tw-deleted","--",o));break;case"=":if(e.match("=="))return n(r("tw-underline","===",o));break;case":":if(e.eat(":"))return n(r("comment","::"));break;case"^":return n(r("tw-box","^"));case"~":if(e.match("np~"))return n(r("meta","~/np~"))}if(a)switch(s){case"!":return e.match("!!!!!")||e.match("!!!!")||e.match("!!!")||e.match("!!"),n(i("header string"));case"*":case"#":case"+":return n(i("tw-listitem bracket"))}return null}var a,s,l,c;function u(e,t){var n,r=e.next(),i=e.peek();return"}"==r?(t.tokenize=o,"tag"):"("==r||")"==r?"bracket":"="==r?(s="equals",">"==i&&(e.next(),i=e.peek()),/[\'\"]/.test(i)||(t.tokenize=function(e,t){for(;!e.eol();){var n=e.next(),r=e.peek();if(" "==n||","==n||/[ )}]/.test(r)){t.tokenize=u;break}}return"string"}),"operator"):/[\'\"]/.test(r)?(t.tokenize=(n=r,function(e,t){for(;!e.eol();)if(e.next()==n){t.tokenize=u;break}return"string"}),t.tokenize(e,t)):(e.eatWhile(/[^\s\u00a0=\"\'\/?]/),"keyword")}function d(){for(var e=arguments.length-1;e>=0;e--)l.cc.push(arguments[e])}function h(){return d.apply(null,arguments),!0}function f(e,t){var n=l.context&&l.context.noIndent;l.context={prev:l.context,pluginName:e,indent:l.indented,startOfLine:t,noIndent:n}}function m(){l.context&&(l.context=l.context.prev)}function p(e){if("openPlugin"==e)return l.pluginName=a,h(g,(n=l.startOfLine,function(e){return"selfclosePlugin"==e||"endPlugin"==e?h():"endPlugin"==e?(f(l.pluginName,n),h()):h()}));if("closePlugin"==e){var t=!1;return l.context?(t=l.context.pluginName!=a,m()):t=!0,t&&(c="error"),h(function(e){return function(t){return e&&(c="error"),"endPlugin"==t?h():d()}}(t))}return"string"==e?(l.context&&"!cdata"==l.context.name||f("!cdata"),l.tokenize==o&&m(),h()):h();var n}function g(e){return"keyword"==e?(c="attribute",h(g)):"equals"==e?h(b,g):d()}function b(e){return"keyword"==e?(c="string",h()):"string"==e?h(v):d()}function v(e){return"string"==e?h(v):d()}n.r(t),n.d(t,{tiki:()=>y});const y={name:"tiki",startState:function(){return{tokenize:o,cc:[],indented:0,startOfLine:!0,pluginName:null,context:null}},token:function(e,t){if(e.sol()&&(t.startOfLine=!0,t.indented=e.indentation()),e.eatSpace())return null;c=s=a=null;var n=t.tokenize(e,t);if((n||s)&&"comment"!=n)for(l=t;;){if((t.cc.pop()||p)(s||n))break}return t.startOfLine=!1,c||n},indent:function(e,t,n){var r=e.context;if(r&&r.noIndent)return 0;for(r&&/^{\//.test(t)&&(r=r.prev);r&&!r.startOfLine;)r=r.prev;return r?r.indent+n.unit:0}}},67534:(e,t,n)=>{n.r(t),n.d(t,{toml:()=>r});const r={name:"toml",startState:function(){return{inString:!1,stringType:"",lhs:!0,inArray:0}},token:function(e,t){if(t.inString||'"'!=e.peek()&&"'"!=e.peek()||(t.stringType=e.peek(),e.next(),t.inString=!0),e.sol()&&0===t.inArray&&(t.lhs=!0),t.inString){for(;t.inString&&!e.eol();)e.peek()===t.stringType?(e.next(),t.inString=!1):"\\"===e.peek()?(e.next(),e.next()):e.match(/^.[^\\\"\']*/);return t.lhs?"property":"string"}return t.inArray&&"]"===e.peek()?(e.next(),t.inArray--,"bracket"):t.lhs&&"["===e.peek()&&e.skipTo("]")?(e.next(),"]"===e.peek()&&e.next(),"atom"):"#"===e.peek()?(e.skipToEnd(),"comment"):e.eatSpace()?null:t.lhs&&e.eatWhile((function(e){return"="!=e&&" "!=e}))?"property":t.lhs&&"="===e.peek()?(e.next(),t.lhs=!1,null):!t.lhs&&e.match(/^\d\d\d\d[\d\-\:\.T]*Z/)?"atom":t.lhs||!e.match("true")&&!e.match("false")?t.lhs||"["!==e.peek()?!t.lhs&&e.match(/^\-?\d+(?:\.\d+)?/)?"number":(e.eatSpace()||e.next(),null):(t.inArray++,e.next(),"bracket"):"atom"},languageData:{commentTokens:{line:"#"}}}},3743:(e,t,n)=>{n.r(t),n.d(t,{troff:()=>a});var r={};function i(e){if(e.eatSpace())return null;var t=e.sol(),n=e.next();if("\\"===n)return e.match("fB")||e.match("fR")||e.match("fI")||e.match("u")||e.match("d")||e.match("%")||e.match("&")?"string":e.match("m[")?(e.skipTo("]"),e.next(),"string"):e.match("s+")||e.match("s-")?(e.eatWhile(/[\d-]/),"string"):e.match("(")||e.match("*(")?(e.eatWhile(/[\w-]/),"string"):"string";if(t&&("."===n||"'"===n)&&e.eat("\\")&&e.eat('"'))return e.skipToEnd(),"comment";if(t&&"."===n){if(e.match("B ")||e.match("I ")||e.match("R "))return"attribute";if(e.match("TH ")||e.match("SH ")||e.match("SS ")||e.match("HP "))return e.skipToEnd(),"quote";if(e.match(/[A-Z]/)&&e.match(/[A-Z]/)||e.match(/[a-z]/)&&e.match(/[a-z]/))return"attribute"}e.eatWhile(/[\w-]/);var i=e.current();return r.hasOwnProperty(i)?r[i]:null}function o(e,t){return(t.tokens[0]||i)(e,t)}const a={name:"troff",startState:function(){return{tokens:[]}},token:function(e,t){return o(e,t)}}},40588:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rg});const i={name:"ttcn-cfg",keywords:r("Yes No LogFile FileMask ConsoleMask AppendFile TimeStampFormat LogEventTypes SourceInfoFormat LogEntityName LogSourceInfo DiskFullAction LogFileNumber LogFileSize MatchingHints Detailed Compact SubCategories Stack Single None Seconds DateTime Time Stop Error Retry Delete TCPPort KillTimer NumHCs UnixSocketsEnabled LocalAddress"),fileNCtrlMaskOptions:r("TTCN_EXECUTOR TTCN_ERROR TTCN_WARNING TTCN_PORTEVENT TTCN_TIMEROP TTCN_VERDICTOP TTCN_DEFAULTOP TTCN_TESTCASE TTCN_ACTION TTCN_USER TTCN_FUNCTION TTCN_STATISTICS TTCN_PARALLEL TTCN_MATCHING TTCN_DEBUG EXECUTOR ERROR WARNING PORTEVENT TIMEROP VERDICTOP DEFAULTOP TESTCASE ACTION USER FUNCTION STATISTICS PARALLEL MATCHING DEBUG LOG_ALL LOG_NOTHING ACTION_UNQUALIFIED DEBUG_ENCDEC DEBUG_TESTPORT DEBUG_UNQUALIFIED DEFAULTOP_ACTIVATE DEFAULTOP_DEACTIVATE DEFAULTOP_EXIT DEFAULTOP_UNQUALIFIED ERROR_UNQUALIFIED EXECUTOR_COMPONENT EXECUTOR_CONFIGDATA EXECUTOR_EXTCOMMAND EXECUTOR_LOGOPTIONS EXECUTOR_RUNTIME EXECUTOR_UNQUALIFIED FUNCTION_RND FUNCTION_UNQUALIFIED MATCHING_DONE MATCHING_MCSUCCESS MATCHING_MCUNSUCC MATCHING_MMSUCCESS MATCHING_MMUNSUCC MATCHING_PCSUCCESS MATCHING_PCUNSUCC MATCHING_PMSUCCESS MATCHING_PMUNSUCC MATCHING_PROBLEM MATCHING_TIMEOUT MATCHING_UNQUALIFIED PARALLEL_PORTCONN PARALLEL_PORTMAP PARALLEL_PTC PARALLEL_UNQUALIFIED PORTEVENT_DUALRECV PORTEVENT_DUALSEND PORTEVENT_MCRECV PORTEVENT_MCSEND PORTEVENT_MMRECV PORTEVENT_MMSEND PORTEVENT_MQUEUE PORTEVENT_PCIN PORTEVENT_PCOUT PORTEVENT_PMIN PORTEVENT_PMOUT PORTEVENT_PQUEUE PORTEVENT_STATE PORTEVENT_UNQUALIFIED STATISTICS_UNQUALIFIED STATISTICS_VERDICT TESTCASE_FINISH TESTCASE_START TESTCASE_UNQUALIFIED TIMEROP_GUARD TIMEROP_READ TIMEROP_START TIMEROP_STOP TIMEROP_TIMEOUT TIMEROP_UNQUALIFIED USER_UNQUALIFIED VERDICTOP_FINAL VERDICTOP_GETVERDICT VERDICTOP_SETVERDICT VERDICTOP_UNQUALIFIED WARNING_UNQUALIFIED"),externalCommands:r("BeginControlPart EndControlPart BeginTestCase EndTestCase"),multiLineStrings:!0};var o,a=i.keywords,s=i.fileNCtrlMaskOptions,l=i.externalCommands,c=i.multiLineStrings,u=!1!==i.indentStatements,d=/[\|]/;function h(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){var a=e.peek();a&&("b"!=(a=a.toLowerCase())&&"h"!=a&&"o"!=a||e.next()),o=!0;break}i=!i&&"\\"==r}return(o||!i&&!c)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[:=]/.test(r))return o=r,"punctuation";if("#"==r)return e.skipToEnd(),"comment";if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if(d.test(r))return e.eatWhile(d),"operator";if("["==r)return e.eatWhile(/[\w_\]]/),"number";e.eatWhile(/[\w\$_]/);var i=e.current();return a.propertyIsEnumerable(i)?"keyword":s.propertyIsEnumerable(i)?"atom":l.propertyIsEnumerable(i)?"deleted":"variable"}function f(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function m(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new f(r,t,n,null,e.context)}function p(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const g={name:"ttcn",startState:function(){return{tokenize:null,context:new f(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;o=null;var r=(t.tokenize||h)(e,t);if("comment"==r)return r;if(null==n.align&&(n.align=!0),";"!=o&&":"!=o&&","!=o||"statement"!=n.type)if("{"==o)m(t,e.column(),"}");else if("["==o)m(t,e.column(),"]");else if("("==o)m(t,e.column(),")");else if("}"==o){for(;"statement"==n.type;)n=p(t);for("}"==n.type&&(n=p(t));"statement"==n.type;)n=p(t)}else o==n.type?p(t):u&&(("}"==n.type||"top"==n.type)&&";"!=o||"statement"==n.type&&"newstatement"==o)&&m(t,e.column(),"statement");else p(t);return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"#"}}}},1947:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rC});const i={name:"ttcn",keywords:r("activate address alive all alt altstep and and4b any break case component const continue control deactivate display do else encode enumerated except exception execute extends extension external for from function goto group if import in infinity inout interleave label language length log match message mixed mod modifies module modulepar mtc noblock not not4b nowait of on optional or or4b out override param pattern port procedure record recursive rem repeat return runs select self sender set signature system template testcase to type union value valueof var variant while with xor xor4b"),builtin:r("bit2hex bit2int bit2oct bit2str char2int char2oct encvalue decomp decvalue float2int float2str hex2bit hex2int hex2oct hex2str int2bit int2char int2float int2hex int2oct int2str int2unichar isbound ischosen ispresent isvalue lengthof log2str oct2bit oct2char oct2hex oct2int oct2str regexp replace rnd sizeof str2bit str2float str2hex str2int str2oct substr unichar2int unichar2char enum2int"),types:r("anytype bitstring boolean char charstring default float hexstring integer objid octetstring universal verdicttype timer"),timerOps:r("read running start stop timeout"),portOps:r("call catch check clear getcall getreply halt raise receive reply send trigger"),configOps:r("create connect disconnect done kill killed map unmap"),verdictOps:r("getverdict setverdict"),sutOps:r("action"),functionOps:r("apply derefers refers"),verdictConsts:r("error fail inconc none pass"),booleanConsts:r("true false"),otherConsts:r("null NULL omit"),visibilityModifiers:r("private public friend"),templateMatch:r("complement ifpresent subset superset permutation"),multiLineStrings:!0};var o=[];function a(e){if(e)for(var t in e)e.hasOwnProperty(t)&&o.push(t)}a(i.keywords),a(i.builtin),a(i.timerOps),a(i.portOps);var s,l=i.keywords||{},c=i.builtin||{},u=i.timerOps||{},d=i.portOps||{},h=i.configOps||{},f=i.verdictOps||{},m=i.sutOps||{},p=i.functionOps||{},g=i.verdictConsts||{},b=i.booleanConsts||{},v=i.otherConsts||{},y=i.types||{},k=i.visibilityModifiers||{},O=i.templateMatch||{},w=i.multiLineStrings,x=!1!==i.indentStatements,S=/[+\-*&@=<>!\/]/;function _(e,t){var n,r=e.next();if('"'==r||"'"==r)return t.tokenize=(n=r,function(e,t){for(var r,i=!1,o=!1;null!=(r=e.next());){if(r==n&&!i){var a=e.peek();a&&("b"!=(a=a.toLowerCase())&&"h"!=a&&"o"!=a||e.next()),o=!0;break}i=!i&&"\\"==r}return(o||!i&&!w)&&(t.tokenize=null),"string"}),t.tokenize(e,t);if(/[\[\]{}\(\),;\\:\?\.]/.test(r))return s=r,"punctuation";if("#"==r)return e.skipToEnd(),"atom";if("%"==r)return e.eatWhile(/\b/),"atom";if(/\d/.test(r))return e.eatWhile(/[\w\.]/),"number";if("/"==r){if(e.eat("*"))return t.tokenize=T,T(e,t);if(e.eat("/"))return e.skipToEnd(),"comment"}if(S.test(r))return"@"==r&&(e.match("try")||e.match("catch")||e.match("lazy"))?"keyword":(e.eatWhile(S),"operator");e.eatWhile(/[\w\$_\xa1-\uffff]/);var i=e.current();return l.propertyIsEnumerable(i)?"keyword":c.propertyIsEnumerable(i)?"builtin":u.propertyIsEnumerable(i)||h.propertyIsEnumerable(i)||f.propertyIsEnumerable(i)||d.propertyIsEnumerable(i)||m.propertyIsEnumerable(i)||p.propertyIsEnumerable(i)?"def":g.propertyIsEnumerable(i)||b.propertyIsEnumerable(i)||v.propertyIsEnumerable(i)?"string":y.propertyIsEnumerable(i)?"typeName.standard":k.propertyIsEnumerable(i)?"modifier":O.propertyIsEnumerable(i)?"atom":"variable"}function T(e,t){for(var n,r=!1;n=e.next();){if("/"==n&&r){t.tokenize=null;break}r="*"==n}return"comment"}function E(e,t,n,r,i){this.indented=e,this.column=t,this.type=n,this.align=r,this.prev=i}function $(e,t,n){var r=e.indented;return e.context&&"statement"==e.context.type&&(r=e.context.indented),e.context=new E(r,t,n,null,e.context)}function A(e){var t=e.context.type;return")"!=t&&"]"!=t&&"}"!=t||(e.indented=e.context.indented),e.context=e.context.prev}const C={name:"ttcn",startState:function(){return{tokenize:null,context:new E(0,0,"top",!1),indented:0,startOfLine:!0}},token:function(e,t){var n=t.context;if(e.sol()&&(null==n.align&&(n.align=!1),t.indented=e.indentation(),t.startOfLine=!0),e.eatSpace())return null;s=null;var r=(t.tokenize||_)(e,t);if("comment"==r)return r;if(null==n.align&&(n.align=!0),";"!=s&&":"!=s&&","!=s||"statement"!=n.type)if("{"==s)$(t,e.column(),"}");else if("["==s)$(t,e.column(),"]");else if("("==s)$(t,e.column(),")");else if("}"==s){for(;"statement"==n.type;)n=A(t);for("}"==n.type&&(n=A(t));"statement"==n.type;)n=A(t)}else s==n.type?A(t):x&&(("}"==n.type||"top"==n.type)&&";"!=s||"statement"==n.type&&"newstatement"==s)&&$(t,e.column(),"statement");else A(t);return t.startOfLine=!1,r},languageData:{indentOnInput:/^\s*[{}]$/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}},autocomplete:o}}},37628:(e,t,n)=>{var r;function i(e){return new RegExp("^(?:"+e.join("|")+")$","i")}n.r(t),n.d(t,{turtle:()=>u});i([]);var o=i(["@prefix","@base","a"]),a=/[*+\-<>=&|]/;function s(e,t){var n,i=e.next();if(r=null,"<"!=i||e.match(/^[\s\u00a0=]/,!1)){if('"'==i||"'"==i)return t.tokenize=(n=i,function(e,t){for(var r,i=!1;null!=(r=e.next());){if(r==n&&!i){t.tokenize=s;break}i=!i&&"\\"==r}return"string"}),t.tokenize(e,t);if(/[{}\(\),\.;\[\]]/.test(i))return r=i,null;if("#"==i)return e.skipToEnd(),"comment";if(a.test(i))return e.eatWhile(a),null;if(":"==i)return"operator";if(e.eatWhile(/[_\w\d]/),":"==e.peek())return"variableName.special";var l=e.current();return o.test(l)?"meta":i>="A"&&i<="Z"?"comment":"keyword"}return e.match(/^[^\s\u00a0>]*>?/),"atom"}function l(e,t,n){e.context={prev:e.context,indent:e.indent,col:n,type:t}}function c(e){e.indent=e.context.indent,e.context=e.context.prev}const u={name:"turtle",startState:function(){return{tokenize:s,context:null,indent:0,col:0}},token:function(e,t){if(e.sol()&&(t.context&&null==t.context.align&&(t.context.align=!1),t.indent=e.indentation()),e.eatSpace())return null;var n=t.tokenize(e,t);if("comment"!=n&&t.context&&null==t.context.align&&"pattern"!=t.context.type&&(t.context.align=!0),"("==r)l(t,")",e.column());else if("["==r)l(t,"]",e.column());else if("{"==r)l(t,"}",e.column());else if(/[\]\}\)]/.test(r)){for(;t.context&&"pattern"==t.context.type;)c(t);t.context&&r==t.context.type&&c(t)}else"."==r&&t.context&&"pattern"==t.context.type?c(t):/atom|string|variable/.test(n)&&t.context&&(/[\}\]]/.test(t.context.type)?l(t,"pattern",e.column()):"pattern"!=t.context.type||t.context.align||(t.context.align=!0,t.context.col=e.column()));return n},indent:function(e,t,n){var r=t&&t.charAt(0),i=e.context;if(/[\]\}]/.test(r))for(;i&&"pattern"==i.type;)i=i.prev;var o=i&&r==i.type;return i?"pattern"==i.type?i.col:i.align?i.col+(o?0:1):i.indent+(o?0:n.unit):0},languageData:{commentTokens:{line:"#"}}}},29978:(e,t,n)=>{n.r(t),n.d(t,{vb:()=>A});var r="error";function i(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var o=new RegExp("^[\\+\\-\\*/%&\\\\|\\^~<>!]"),a=new RegExp("^[\\(\\)\\[\\]\\{\\}@,:`=;\\.]"),s=new RegExp("^((==)|(<>)|(<=)|(>=)|(<>)|(<<)|(>>)|(//)|(\\*\\*))"),l=new RegExp("^((\\+=)|(\\-=)|(\\*=)|(%=)|(/=)|(&=)|(\\|=)|(\\^=))"),c=new RegExp("^((//=)|(>>=)|(<<=)|(\\*\\*=))"),u=new RegExp("^[_A-Za-z][_A-Za-z0-9]*"),d=["class","module","sub","enum","select","while","if","function","get","set","property","try","structure","synclock","using","with"],h=["else","elseif","case","catch","finally"],f=["next","loop"],m=["and","andalso","or","orelse","xor","in","not","is","isnot","like"],p=i(m),g=["#const","#else","#elseif","#end","#if","#region","addhandler","addressof","alias","as","byref","byval","cbool","cbyte","cchar","cdate","cdbl","cdec","cint","clng","cobj","compare","const","continue","csbyte","cshort","csng","cstr","cuint","culng","cushort","declare","default","delegate","dim","directcast","each","erase","error","event","exit","explicit","false","for","friend","gettype","goto","handles","implements","imports","infer","inherits","interface","isfalse","istrue","lib","me","mod","mustinherit","mustoverride","my","mybase","myclass","namespace","narrowing","new","nothing","notinheritable","notoverridable","of","off","on","operator","option","optional","out","overloads","overridable","overrides","paramarray","partial","private","protected","public","raiseevent","readonly","redim","removehandler","resume","return","shadows","shared","static","step","stop","strict","then","throw","to","true","trycast","typeof","until","until","when","widening","withevents","writeonly"],b=["object","boolean","char","string","byte","sbyte","short","ushort","int16","uint16","integer","uinteger","int32","uint32","long","ulong","int64","uint64","decimal","single","double","float","date","datetime","intptr","uintptr"],v=i(g),y=i(b),k='"',O=i(d),w=i(h),x=i(f),S=i(["end"]),_=i(["do"]);function T(e,t){t.currentIndent++}function E(e,t){t.currentIndent--}function $(e,t){if(e.eatSpace())return null;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.a-f]/i,!1)){var n=!1;if((e.match(/^\d*\.\d+F?/i)||e.match(/^\d+\.\d*F?/)||e.match(/^\.\d+F?/))&&(n=!0),n)return e.eat(/J/i),"number";var i=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?i=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),i=!0):e.match(/^0(?![\dx])/i)&&(i=!0),i)return e.eat(/L/i),"number"}return e.match(k)?(t.tokenize=function(e){var t=1==e.length,n="string";return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=$,n;r.eat(/['"]/)}return t&&(i.tokenize=$),n}}(e.current()),t.tokenize(e,t)):e.match(c)||e.match(l)?null:e.match(s)||e.match(o)||e.match(p)?"operator":e.match(a)?null:e.match(_)?(T(0,t),t.doInCurrentLine=!0,"keyword"):e.match(O)?(t.doInCurrentLine?t.doInCurrentLine=!1:T(0,t),"keyword"):e.match(w)?"keyword":e.match(S)?(E(0,t),E(0,t),"keyword"):e.match(x)?(E(0,t),"keyword"):e.match(y)||e.match(v)?"keyword":e.match(u)?"variable":(e.next(),r)}const A={name:"vb",startState:function(){return{tokenize:$,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1}},token:function(e,t){e.sol()&&(t.currentIndent+=t.nextLineIndent,t.nextLineIndent=0,t.doInCurrentLine=0);var n=function(e,t){var n=t.tokenize(e,t),i=e.current();if("."===i)return"variable"===(n=t.tokenize(e,t))?"variable":r;var o="[({".indexOf(i);return-1!==o&&T(0,t),-1!==(o="])}".indexOf(i))&&E(0,t)?r:n}(e,t);return t.lastToken={style:n,content:e.current()},n},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(x)||r.match(S)||r.match(w)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit},languageData:{closeBrackets:{brackets:["(","[","{",'"']},commentTokens:{line:"'"},autocomplete:d.concat(h).concat(f).concat(m).concat(g).concat(b)}}},76881:(e,t,n)=>{function r(e){var t="error";function n(e){return new RegExp("^(("+e.join(")|(")+"))\\b","i")}var r=new RegExp("^[\\+\\-\\*/&\\\\\\^<>=]"),i=new RegExp("^((<>)|(<=)|(>=))"),o=new RegExp("^[\\.,]"),a=new RegExp("^[\\(\\)]"),s=new RegExp("^[A-Za-z][_A-Za-z0-9]*"),l=n(["and","or","not","xor","is","mod","eqv","imp"]),c=["WScript","err","debug","RegExp"],u=["clear","execute","raise","replace","test","write","writeline","close","open","state","eof","update","addnew","end","createobject","quit"].concat(["description","firstindex","global","helpcontext","helpfile","ignorecase","length","number","pattern","source","value","count"]);c=c.concat(["vbBlack","vbRed","vbGreen","vbYellow","vbBlue","vbMagenta","vbCyan","vbWhite","vbBinaryCompare","vbTextCompare","vbSunday","vbMonday","vbTuesday","vbWednesday","vbThursday","vbFriday","vbSaturday","vbUseSystemDayOfWeek","vbFirstJan1","vbFirstFourDays","vbFirstFullWeek","vbGeneralDate","vbLongDate","vbShortDate","vbLongTime","vbShortTime","vbObjectError","vbOKOnly","vbOKCancel","vbAbortRetryIgnore","vbYesNoCancel","vbYesNo","vbRetryCancel","vbCritical","vbQuestion","vbExclamation","vbInformation","vbDefaultButton1","vbDefaultButton2","vbDefaultButton3","vbDefaultButton4","vbApplicationModal","vbSystemModal","vbOK","vbCancel","vbAbort","vbRetry","vbIgnore","vbYes","vbNo","vbCr","VbCrLf","vbFormFeed","vbLf","vbNewLine","vbNullChar","vbNullString","vbTab","vbVerticalTab","vbUseDefault","vbTrue","vbFalse","vbEmpty","vbNull","vbInteger","vbLong","vbSingle","vbDouble","vbCurrency","vbDate","vbString","vbObject","vbError","vbBoolean","vbVariant","vbDataObject","vbDecimal","vbByte","vbArray"]),e.isASP&&(c=c.concat(["server","response","request","session","application"]),u=u.concat(["addheader","appendtolog","binarywrite","end","flush","redirect","binaryread","remove","removeall","lock","unlock","abandon","getlasterror","htmlencode","mappath","transfer","urlencode"],["buffer","cachecontrol","charset","contenttype","expires","expiresabsolute","isclientconnected","pics","status","clientcertificate","cookies","form","querystring","servervariables","totalbytes","contents","staticobjects","codepage","lcid","sessionid","timeout","scripttimeout"]));var d=n(["dim","redim","then","until","randomize","byval","byref","new","property","exit","in","const","private","public","get","set","let","stop","on error resume next","on error goto 0","option explicit","call","me"]),h=n(["true","false","nothing","empty","null"]),f=n(["abs","array","asc","atn","cbool","cbyte","ccur","cdate","cdbl","chr","cint","clng","cos","csng","cstr","date","dateadd","datediff","datepart","dateserial","datevalue","day","escape","eval","execute","exp","filter","formatcurrency","formatdatetime","formatnumber","formatpercent","getlocale","getobject","getref","hex","hour","inputbox","instr","instrrev","int","fix","isarray","isdate","isempty","isnull","isnumeric","isobject","join","lbound","lcase","left","len","loadpicture","log","ltrim","rtrim","trim","maths","mid","minute","month","monthname","msgbox","now","oct","replace","rgb","right","rnd","round","scriptengine","scriptenginebuildversion","scriptenginemajorversion","scriptengineminorversion","second","setlocale","sgn","sin","space","split","sqr","strcomp","string","strreverse","tan","time","timer","timeserial","timevalue","typename","ubound","ucase","unescape","vartype","weekday","weekdayname","year"]),m=n(c),p=n(u),g='"',b=n(["class","sub","select","while","if","function","property","with","for"]),v=n(["else","elseif","case"]),y=n(["next","loop","wend"]),k=n(["end"]),O=n(["do"]),w=n(["on error resume next","exit"]),x=n(["rem"]);function S(e,t){t.currentIndent++}function _(e,t){t.currentIndent--}function T(e,n){if(e.eatSpace())return null;if("'"===e.peek())return e.skipToEnd(),"comment";if(e.match(x))return e.skipToEnd(),"comment";if(e.match(/^((&H)|(&O))?[0-9\.]/i,!1)&&!e.match(/^((&H)|(&O))?[0-9\.]+[a-z_]/i,!1)){var c=!1;if((e.match(/^\d*\.\d+/i)||e.match(/^\d+\.\d*/)||e.match(/^\.\d+/))&&(c=!0),c)return e.eat(/J/i),"number";var u=!1;if(e.match(/^&H[0-9a-f]+/i)||e.match(/^&O[0-7]+/i)?u=!0:e.match(/^[1-9]\d*F?/)?(e.eat(/J/i),u=!0):e.match(/^0(?![\dx])/i)&&(u=!0),u)return e.eat(/L/i),"number"}return e.match(g)?(n.tokenize=function(e){var t=1==e.length,n="string";return function(r,i){for(;!r.eol();){if(r.eatWhile(/[^'"]/),r.match(e))return i.tokenize=T,n;r.eat(/['"]/)}return t&&(i.tokenize=T),n}}(e.current()),n.tokenize(e,n)):e.match(i)||e.match(r)||e.match(l)?"operator":e.match(o)?null:e.match(a)?"bracket":e.match(w)?(n.doInCurrentLine=!0,"keyword"):e.match(O)?(S(0,n),n.doInCurrentLine=!0,"keyword"):e.match(b)?(n.doInCurrentLine?n.doInCurrentLine=!1:S(0,n),"keyword"):e.match(v)?"keyword":e.match(k)?(_(0,n),_(0,n),"keyword"):e.match(y)?(n.doInCurrentLine?n.doInCurrentLine=!1:_(0,n),"keyword"):e.match(d)?"keyword":e.match(h)?"atom":e.match(p)?"variableName.special":e.match(f)||e.match(m)?"builtin":e.match(s)?"variable":(e.next(),t)}return{name:"vbscript",startState:function(){return{tokenize:T,lastToken:null,currentIndent:0,nextLineIndent:0,doInCurrentLine:!1,ignoreKeyword:!1}},token:function(e,n){e.sol()&&(n.currentIndent+=n.nextLineIndent,n.nextLineIndent=0,n.doInCurrentLine=0);var r=function(e,n){var r=n.tokenize(e,n),i=e.current();return"."===i?(r=n.tokenize(e,n),i=e.current(),!r||"variable"!==r.substr(0,8)&&"builtin"!==r&&"keyword"!==r?t:("builtin"!==r&&"keyword"!==r||(r="variable"),u.indexOf(i.substr(1))>-1&&(r="keyword"),r)):r}(e,n);return n.lastToken={style:r,content:e.current()},null===r&&(r=null),r},indent:function(e,t,n){var r=t.replace(/^\s+|\s+$/g,"");return r.match(y)||r.match(k)||r.match(v)?n.unit*(e.currentIndent-1):e.currentIndent<0?0:e.currentIndent*n.unit}}}n.r(t),n.d(t,{vbScript:()=>i,vbScriptASP:()=>o});const i=r({}),o=r({isASP:!0})},79557:(e,t,n)=>{function r(e){for(var t={},n=e.split(" "),r=0;rf});var i=r("#end #else #break #stop #[[ #]] #{end} #{else} #{break} #{stop}"),o=r("#if #elseif #foreach #set #include #parse #macro #define #evaluate #{if} #{elseif} #{foreach} #{set} #{include} #{parse} #{macro} #{define} #{evaluate}"),a=r("$foreach.count $foreach.hasNext $foreach.first $foreach.last $foreach.topmost $foreach.parent.count $foreach.parent.hasNext $foreach.parent.first $foreach.parent.last $foreach.parent $velocityCount $!bodyContent $bodyContent"),s=/[+\-*&%=<>!?:\/|]/;function l(e,t,n){return t.tokenize=n,n(e,t)}function c(e,t){var n=t.beforeParams;t.beforeParams=!1;var r=e.next();if("'"==r&&!t.inString&&t.inParams)return t.lastTokenWasBuiltin=!1,l(e,t,u(r));if('"'!=r){if(/[\[\]{}\(\),;\.]/.test(r))return"("==r&&n?t.inParams=!0:")"==r&&(t.inParams=!1,t.lastTokenWasBuiltin=!0),null;if(/\d/.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(/[\w\.]/),"number";if("#"==r&&e.eat("*"))return t.lastTokenWasBuiltin=!1,l(e,t,d);if("#"==r&&e.match(/ *\[ *\[/))return t.lastTokenWasBuiltin=!1,l(e,t,h);if("#"==r&&e.eat("#"))return t.lastTokenWasBuiltin=!1,e.skipToEnd(),"comment";if("$"==r)return e.eat("!"),e.eatWhile(/[\w\d\$_\.{}-]/),a&&a.propertyIsEnumerable(e.current())?"keyword":(t.lastTokenWasBuiltin=!0,t.beforeParams=!0,"builtin");if(s.test(r))return t.lastTokenWasBuiltin=!1,e.eatWhile(s),"operator";e.eatWhile(/[\w\$_{}@]/);var c=e.current();return i&&i.propertyIsEnumerable(c)?"keyword":o&&o.propertyIsEnumerable(c)||e.current().match(/^#@?[a-z0-9_]+ *$/i)&&"("==e.peek()&&(!o||!o.propertyIsEnumerable(c.toLowerCase()))?(t.beforeParams=!0,t.lastTokenWasBuiltin=!1,"keyword"):t.inString?(t.lastTokenWasBuiltin=!1,"string"):e.pos>c.length&&"."==e.string.charAt(e.pos-c.length-1)&&t.lastTokenWasBuiltin?"builtin":(t.lastTokenWasBuiltin=!1,null)}return t.lastTokenWasBuiltin=!1,t.inString?(t.inString=!1,"string"):t.inParams?l(e,t,u(r)):void 0}function u(e){return function(t,n){for(var r,i=!1,o=!1;null!=(r=t.next());){if(r==e&&!i){o=!0;break}if('"'==e&&"$"==t.peek()&&!i){n.inString=!0,o=!0;break}i=!i&&"\\"==r}return o&&(n.tokenize=c),"string"}}function d(e,t){for(var n,r=!1;n=e.next();){if("#"==n&&r){t.tokenize=c;break}r="*"==n}return"comment"}function h(e,t){for(var n,r=0;n=e.next();){if("#"==n&&2==r){t.tokenize=c;break}"]"==n?r++:" "!=n&&(r=0)}return"meta"}const f={name:"velocity",startState:function(){return{tokenize:c,beforeParams:!1,inParams:!1,inString:!1,lastTokenWasBuiltin:!1}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{line:"##",block:{open:"#*",close:"*#"}}}}},67062:(e,t,n)=>{function r(e){var t=e.statementIndentUnit,n=e.dontAlignCalls,r=e.noIndentKeywords||[],i=e.multiLineStrings,o=e.hooks||{};function a(e){for(var t={},n=e.split(" "),r=0;r=0)return a}var s=e.context,l=r&&r.charAt(0);"statement"==s.type&&"}"==l&&(s=s.prev);var c=!1,u=r.match(v);return u&&(c=C(u[0],s.type)),"statement"==s.type?s.indented+("{"==l?0:t||i.unit):y.test(s.type)&&s.align&&!n?s.column+(c?0:1):")"!=s.type||c?s.indented+(c?0:i.unit):s.indented+(t||i.unit)},languageData:{indentOnInput:function(){var e=[];for(var t in O)if(O[t]){var n=O[t].split(";");for(var r in n)e.push(n[r])}return new RegExp("[{}()\\[\\]]|("+e.join("|")+")$")}(),commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}}n.r(t),n.d(t,{tlv:()=>u,verilog:()=>i});const i=r({});var o={"|":"link",">":"property",$:"variable",$$:"variable","?$":"qualifier","?*":"qualifier","-":"contentSeparator","/":"property","/-":"property","@":"variableName.special","@-":"variableName.special","@++":"variableName.special","@+=":"variableName.special","@+=-":"variableName.special","@--":"variableName.special","@-=":"variableName.special","%+":"tag","%-":"tag","%":"tag",">>":"tag","<<":"tag","<>":"tag","#":"tag","^":"attribute","^^":"attribute","^!":"attribute","*":"variable","**":"variable","\\":"keyword",'"':"comment"},a={"/":"beh-hier",">":"beh-hier","-":"phys-hier","|":"pipe","?":"when","@":"stage","\\":"keyword"},s=/^([~!@#\$%\^&\*-\+=\?\/\\\|'"<>]+)([\d\w_]*)/,l=/^[! ] */,c=/^\/[\/\*]/;const u=r({hooks:{electricInput:!1,token:function(e,t){var n=void 0;if(e.sol()&&!t.tlvInBlockComment){"\\"==e.peek()&&(n="def",e.skipToEnd(),e.string.match(/\\SV/)?t.tlvCodeActive=!1:e.string.match(/\\TLV/)&&(t.tlvCodeActive=!0)),t.tlvCodeActive&&0==e.pos&&0==t.indented&&(m=e.match(l,!1))&&(t.indented=m[0].length);var r=t.indented,i=r/3;if(i<=t.tlvIndentationStyle.length){var u=e.string.length==r,d=3*i;if(d0||(t.tlvIndentationStyle[i]=a[f],i++))}if(!u)for(;t.tlvIndentationStyle.length>i;)t.tlvIndentationStyle.pop()}t.tlvNextIndent=r}if(t.tlvCodeActive){var m;if(void 0!==n);else if(t.tlvInBlockComment)e.match(/^.*?\*\//)?t.tlvInBlockComment=!1:e.skipToEnd(),n="comment";else if((m=e.match(c))&&!t.tlvInBlockComment)"//"==m[0]?e.skipToEnd():t.tlvInBlockComment=!0,n="comment";else if(m=e.match(s)){var p=m[1],g=m[2];o.hasOwnProperty(p)&&(g.length>0||e.eol())?n=o[p]:e.backUp(e.current().length-1)}else e.match(/^\t+/)?n="invalid":e.match(/^[\[\]{}\(\);\:]+/)?n="meta":(m=e.match(/^[mM]4([\+_])?[\w\d_]*/))?n="+"==m[1]?"keyword.special":"keyword":e.match(/^ +/)?e.eol()&&(n="error"):e.match(/^[\w\d_]+/)?n="number":e.next()}else e.match(/^[mM]4([\w\d_]*)/)&&(n="keyword");return n},indent:function(e){return 1==e.tlvCodeActive?e.tlvNextIndent:-1},startState:function(e){e.tlvIndentationStyle=[],e.tlvCodeActive=!0,e.tlvNextIndent=-1,e.tlvInBlockComment=!1}}})},27472:(e,t,n)=>{function r(e){for(var t={},n=e.split(","),r=0;rg});var o,a=r("null"),s={"`":i,$:i},l=!1,c=r("abs,access,after,alias,all,and,architecture,array,assert,attribute,begin,block,body,buffer,bus,case,component,configuration,constant,disconnect,downto,else,elsif,end,end block,end case,end component,end for,end generate,end if,end loop,end process,end record,end units,entity,exit,file,for,function,generate,generic,generic map,group,guarded,if,impure,in,inertial,inout,is,label,library,linkage,literal,loop,map,mod,nand,new,next,nor,null,of,on,open,or,others,out,package,package body,port,port map,postponed,procedure,process,pure,range,record,register,reject,rem,report,return,rol,ror,select,severity,signal,sla,sll,sra,srl,subtype,then,to,transport,type,unaffected,units,until,use,variable,wait,when,while,with,xnor,xor"),u=r("architecture,entity,begin,case,port,else,elsif,end,for,function,if"),d=/[&|~>{function r(e){return new RegExp("^(("+e.join(")|(")+"))\\b")}n.r(t),n.d(t,{webIDL:()=>x});var i=["Clamp","Constructor","EnforceRange","Exposed","ImplicitThis","Global","PrimaryGlobal","LegacyArrayClass","LegacyUnenumerableNamedProperties","LenientThis","NamedConstructor","NewObject","NoInterfaceObject","OverrideBuiltins","PutForwards","Replaceable","SameObject","TreatNonObjectAsNull","TreatNullAs","EmptyString","Unforgeable","Unscopeable"],o=r(i),a=["unsigned","short","long","unrestricted","float","double","boolean","byte","octet","Promise","ArrayBuffer","DataView","Int8Array","Int16Array","Int32Array","Uint8Array","Uint16Array","Uint32Array","Uint8ClampedArray","Float32Array","Float64Array","ByteString","DOMString","USVString","sequence","object","RegExp","Error","DOMException","FrozenArray","any","void"],s=r(a),l=["attribute","callback","const","deleter","dictionary","enum","getter","implements","inherit","interface","iterable","legacycaller","maplike","partial","required","serializer","setlike","setter","static","stringifier","typedef","optional","readonly","or"],c=r(l),u=["true","false","Infinity","NaN","null"],d=r(u),h=r(["callback","dictionary","enum","interface"]),f=r(["typedef"]),m=/^[:<=>?]/,p=/^-?([1-9][0-9]*|0[Xx][0-9A-Fa-f]+|0[0-7]*)/,g=/^-?(([0-9]+\.[0-9]*|[0-9]*\.[0-9]+)([Ee][+-]?[0-9]+)?|[0-9]+[Ee][+-]?[0-9]+)/,b=/^_?[A-Za-z][0-9A-Z_a-z-]*/,v=/^_?[A-Za-z][0-9A-Z_a-z-]*(?=\s*;)/,y=/^"[^"]*"/,k=/^\/\*.*?\*\//,O=/^\/\*.*/,w=/^.*?\*\//;const x={name:"webidl",startState:function(){return{inComment:!1,lastToken:"",startDef:!1,endDef:!1}},token:function(e,t){var n=function(e,t){if(e.eatSpace())return null;if(t.inComment)return e.match(w)?(t.inComment=!1,"comment"):(e.skipToEnd(),"comment");if(e.match("//"))return e.skipToEnd(),"comment";if(e.match(k))return"comment";if(e.match(O))return t.inComment=!0,"comment";if(e.match(/^-?[0-9\.]/,!1)&&(e.match(p)||e.match(g)))return"number";if(e.match(y))return"string";if(t.startDef&&e.match(b))return"def";if(t.endDef&&e.match(v))return t.endDef=!1,"def";if(e.match(c))return"keyword";if(e.match(s)){var n=t.lastToken,r=(e.match(/^\s*(.+?)\b/,!1)||[])[1];return":"===n||"implements"===n||"implements"===r||"="===r?"builtin":"type"}return e.match(o)?"builtin":e.match(d)?"atom":e.match(b)?"variable":e.match(m)?"operator":(e.next(),null)}(e,t);if(n){var r=e.current();t.lastToken=r,"keyword"===n?(t.startDef=h.test(r),t.endDef=t.endDef||f.test(r)):t.startDef=!1}return n},languageData:{autocomplete:i.concat(a).concat(l).concat(u)}}},30854:(e,t,n)=>{n.r(t),n.d(t,{xQuery:()=>v});var r=function(){function e(e){return{type:e,style:"keyword"}}for(var t=e("operator"),n={type:"atom",style:"atom"},r={type:"axis_specifier",style:"qualifier"},i={",":{type:"punctuation",style:null}},o=["after","all","allowing","ancestor","ancestor-or-self","any","array","as","ascending","at","attribute","base-uri","before","boundary-space","by","case","cast","castable","catch","child","collation","comment","construction","contains","content","context","copy","copy-namespaces","count","decimal-format","declare","default","delete","descendant","descendant-or-self","descending","diacritics","different","distance","document","document-node","element","else","empty","empty-sequence","encoding","end","entire","every","exactly","except","external","first","following","following-sibling","for","from","ftand","ftnot","ft-option","ftor","function","fuzzy","greatest","group","if","import","in","inherit","insensitive","insert","instance","intersect","into","invoke","is","item","language","last","lax","least","let","levels","lowercase","map","modify","module","most","namespace","next","no","node","nodes","no-inherit","no-preserve","not","occurs","of","only","option","order","ordered","ordering","paragraph","paragraphs","parent","phrase","preceding","preceding-sibling","preserve","previous","processing-instruction","relationship","rename","replace","return","revalidation","same","satisfies","schema","schema-attribute","schema-element","score","self","sensitive","sentence","sentences","sequence","skip","sliding","some","stable","start","stemming","stop","strict","strip","switch","text","then","thesaurus","times","to","transform","treat","try","tumbling","type","typeswitch","union","unordered","update","updating","uppercase","using","validate","value","variable","version","weight","when","where","wildcards","window","with","without","word","words","xquery"],a=0,s=o.length;a",">=","<","<=",".","|","?","and","or","div","idiv","mod","*","/","+","-"];for(a=0,s=c.length;a\"\'\/?]/);)O+=k;return i(e,t,function(e,t){return function(n,r){return n.eatSpace(),t&&n.eat(">")?(b(r),r.tokenize=o,"tag"):(n.eat("/")||g(r,{type:"tag",name:e,tokenize:o}),n.eat(">")?(r.tokenize=o,"tag"):(r.tokenize=c,"tag"))}}(O,y))}if("{"==n)return g(t,{type:"codeblock"}),null;if("}"==n)return b(t),null;if(f(t))return">"==n?"tag":"/"==n&&e.eat(">")?(b(t),"tag"):"variable";if(/\d/.test(n))return e.match(/^\d*(?:\.\d*)?(?:E[+\-]?\d+)?/),"atom";if("("===n&&e.eat(":"))return g(t,{type:"comment"}),i(e,t,a);if(v||'"'!==n&&"'"!==n){if("$"===n)return i(e,t,l);if(":"===n&&e.eat("="))return"keyword";if("("===n)return g(t,{type:"paren"}),null;if(")"===n)return b(t),null;if("["===n)return g(t,{type:"bracket"}),null;if("]"===n)return b(t),null;var w=r.propertyIsEnumerable(n)&&r[n];if(v&&'"'===n)for(;'"'!==e.next(););if(v&&"'"===n)for(;"'"!==e.next(););w||e.eatWhile(/[\w\$_-]/);var x=e.eat(":");!e.eat(":")&&x&&e.eatWhile(/[\w\$_-]/),e.match(/^[ \t]*\(/,!1)&&(m=!0);var S=e.current();return w=r.propertyIsEnumerable(S)&&r[S],m&&!w&&(w={type:"function_call",style:"def"}),function(e){return p(e,"xmlconstructor")}(t)?(b(t),"variable"):("element"!=S&&"attribute"!=S&&"axis_specifier"!=w.type||g(t,{type:"xmlconstructor"}),w?w.style:"variable")}return i(e,t,s(n))}function a(e,t){for(var n,r=!1,i=!1,o=0;n=e.next();){if(")"==n&&r){if(!(o>0)){b(t);break}o--}else":"==n&&i&&o++;r=":"==n,i="("==n}return"comment"}function s(e,t){return function(n,r){var i;if(function(e){return p(e,"string")}(r)&&n.current()==e)return b(r),t&&(r.tokenize=t),"string";if(g(r,{type:"string",name:e,tokenize:s(e,t)}),n.match("{",!1)&&m(r))return r.tokenize=o,"string";for(;i=n.next();){if(i==e){b(r),t&&(r.tokenize=t);break}if(n.match("{",!1)&&m(r))return r.tokenize=o,"string"}return"string"}}function l(e,t){var n=/[\w\$_-]/;if(e.eat('"')){for(;'"'!==e.next(););e.eat(":")}else e.eatWhile(n),e.match(":=",!1)||e.eat(":");return e.eatWhile(n),t.tokenize=o,"variable"}function c(e,t){var n=e.next();return"/"==n&&e.eat(">")?(m(t)&&b(t),f(t)&&b(t),"tag"):">"==n?(m(t)&&b(t),"tag"):"="==n?null:'"'==n||"'"==n?i(e,t,s(n,c)):(m(t)||g(t,{type:"attribute",tokenize:c}),e.eat(/[a-zA-Z_:]/),e.eatWhile(/[-a-zA-Z0-9_:.]/),e.eatSpace(),(e.match(">",!1)||e.match("/",!1))&&(b(t),t.tokenize=o),"attribute")}function u(e,t){for(var n;n=e.next();)if("-"==n&&e.match("->",!0))return t.tokenize=o,"comment"}function d(e,t){for(var n;n=e.next();)if("]"==n&&e.match("]",!0))return t.tokenize=o,"comment"}function h(e,t){for(var n;n=e.next();)if("?"==n&&e.match(">",!0))return t.tokenize=o,"processingInstruction"}function f(e){return p(e,"tag")}function m(e){return p(e,"attribute")}function p(e,t){return e.stack.length&&e.stack[e.stack.length-1].type==t}function g(e,t){e.stack.push(t)}function b(e){e.stack.pop();var t=e.stack.length&&e.stack[e.stack.length-1].tokenize;e.tokenize=t||o}const v={name:"xquery",startState:function(){return{tokenize:o,cc:[],stack:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},languageData:{commentTokens:{block:{open:"(:",close:":)"}}}}},53067:(e,t,n)=>{n.r(t),n.d(t,{yacas:()=>f});var r=function(e){for(var t={},n=e.split(" "),r=0;r|<|&|\||_|`|'|\^|\?|!|%|#)/,!0,!1)?"operator":"error"}function u(e,t){for(var n,r=!1,i=!1;null!=(n=e.next());){if('"'===n&&!i){r=!0;break}i=!i&&"\\"===n}return r&&!i&&(t.tokenize=c),"string"}function d(e,t){for(var n,r;null!=(r=e.next());){if("*"===n&&"/"===r){t.tokenize=c;break}n=r}return"comment"}function h(e){var t=null;return e.scopes.length>0&&(t=e.scopes[e.scopes.length-1]),t}const f={name:"yacas",startState:function(){return{tokenize:c,scopes:[]}},token:function(e,t){return e.eatSpace()?null:t.tokenize(e,t)},indent:function(e,t,n){if(e.tokenize!==c&&null!==e.tokenize)return null;var r=0;return"]"!==t&&"];"!==t&&"}"!==t&&"};"!==t&&");"!==t||(r=-1),(e.scopes.length+r)*n.unit},languageData:{electricInput:/[{}\[\]()\;]/,commentTokens:{line:"//",block:{open:"/*",close:"*/"}}}}},82673:(e,t,n)=>{n.d(t,{o:()=>i});var r=new RegExp("\\b(("+["true","false","on","off","yes","no"].join(")|(")+"))$","i");const i={name:"yaml",token:function(e,t){var n=e.peek(),i=t.escaped;if(t.escaped=!1,"#"==n&&(0==e.pos||/\s/.test(e.string.charAt(e.pos-1))))return e.skipToEnd(),"comment";if(e.match(/^('([^']|\\.)*'?|"([^"]|\\.)*"?)/))return"string";if(t.literal&&e.indentation()>t.keyCol)return e.skipToEnd(),"string";if(t.literal&&(t.literal=!1),e.sol()){if(t.keyCol=0,t.pair=!1,t.pairStart=!1,e.match("---"))return"def";if(e.match("..."))return"def";if(e.match(/^\s*-\s+/))return"meta"}if(e.match(/^(\{|\}|\[|\])/))return"{"==n?t.inlinePairs++:"}"==n?t.inlinePairs--:"["==n?t.inlineList++:t.inlineList--,"meta";if(t.inlineList>0&&!i&&","==n)return e.next(),"meta";if(t.inlinePairs>0&&!i&&","==n)return t.keyCol=0,t.pair=!1,t.pairStart=!1,e.next(),"meta";if(t.pairStart){if(e.match(/^\s*(\||\>)\s*/))return t.literal=!0,"meta";if(e.match(/^\s*(\&|\*)[a-z0-9\._-]+\b/i))return"variable";if(0==t.inlinePairs&&e.match(/^\s*-?[0-9\.\,]+\s?$/))return"number";if(t.inlinePairs>0&&e.match(/^\s*-?[0-9\.\,]+\s?(?=(,|}))/))return"number";if(e.match(r))return"keyword"}return!t.pair&&e.match(/^\s*(?:[,\[\]{}&*!|>'"%@`][^\s'":]|[^,\[\]{}#&*!|>'"%@`])[^#]*?(?=\s*:($|\s))/)?(t.pair=!0,t.keyCol=e.indentation(),"atom"):t.pair&&e.match(/^:\s*/)?(t.pairStart=!0,"meta"):(t.pairStart=!1,t.escaped="\\"==n,e.next(),null)},startState:function(){return{pair:!1,pairStart:!1,keyCol:0,inlinePairs:0,inlineList:0,literal:!1,escaped:!1}},languageData:{commentTokens:{line:"#"}}}},58206:(e,t,n)=>{function r(e){var t,n;e?(t=/^(exx?|(ld|cp)([di]r?)?|[lp]ea|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|[de]i|halt|im|in([di]mr?|ir?|irx|2r?)|ot(dmr?|[id]rx|imr?)|out(0?|[di]r?|[di]2r?)|tst(io)?|slp)(\.([sl]?i)?[sl])?\b/i,n=/^(((call|j[pr]|rst|ret[in]?)(\.([sl]?i)?[sl])?)|(rs|st)mix)\b/i):(t=/^(exx?|(ld|cp|in)([di]r?)?|pop|push|ad[cd]|cpl|daa|dec|inc|neg|sbc|sub|and|bit|[cs]cf|x?or|res|set|r[lr]c?a?|r[lr]d|s[lr]a|srl|djnz|nop|rst|[de]i|halt|im|ot[di]r|out[di]?)\b/i,n=/^(call|j[pr]|ret[in]?|b_?(call|jump))\b/i);var r=/^(af?|bc?|c|de?|e|hl?|l|i[xy]?|r|sp)\b/i,i=/^(n?[zc]|p[oe]?|m)\b/i,o=/^([hl][xy]|i[xy][hl]|slia|sll)\b/i,a=/^([\da-f]+h|[0-7]+o|[01]+b|\d+d?)\b/i;return{name:"z80",startState:function(){return{context:0}},token:function(s,l){if(s.column()||(l.context=0),s.eatSpace())return null;var c;if(s.eatWhile(/\w/)){if(e&&s.eat(".")&&s.eatWhile(/\w/),c=s.current(),!s.indentation())return s.match(a)?"number":null;if((1==l.context||4==l.context)&&r.test(c))return l.context=4,"variable";if(2==l.context&&i.test(c))return l.context=4,"variableName.special";if(t.test(c))return l.context=1,"keyword";if(n.test(c))return l.context=2,"keyword";if(4==l.context&&a.test(c))return"number";if(o.test(c))return"error"}else{if(s.eat(";"))return s.skipToEnd(),"comment";if(s.eat('"')){for(;(c=s.next())&&'"'!=c;)"\\"==c&&s.next();return"string"}if(s.eat("'")){if(s.match(/\\?.'/))return"number"}else if(s.eat(".")||s.sol()&&s.eat("#")){if(l.context=5,s.eatWhile(/\w/))return"def"}else if(s.eat("$")){if(s.eatWhile(/[\da-f]/i))return"number"}else if(s.eat("%")){if(s.eatWhile(/[01]/))return"number"}else s.next()}return null}}}n.r(t),n.d(t,{ez80:()=>o,z80:()=>i});const i=r(!1),o=r(!0)},28294:(e,t,n)=>{n.d(t,{$w:()=>y});var r=n(67538),i=n(8070),o=n(21525);class a{constructor(e,t,n){this.from=e,this.to=t,this.diagnostic=n}}class s{constructor(e,t,n){this.diagnostics=e,this.panel=t,this.selected=n}static init(e,t,n){let i=e,o=n.facet(k).markerFilter;o&&(i=o(i,n));let a=r.NZ.set(i.map((e=>e.from==e.to||e.from==e.to-1&&n.doc.lineAt(e.from).to==e.from?r.NZ.widget({widget:new x(e),diagnostic:e}).range(e.from):r.NZ.mark({attributes:{class:"cm-lintRange cm-lintRange-"+e.severity+(e.markClass?" "+e.markClass:"")},diagnostic:e,inclusive:!0}).range(e.from,e.to))),!0);return new s(a,t,l(a))}}function l(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=null;return e.between(n,1e9,((e,n,i)=>{let{spec:o}=i;if(!t||o.diagnostic==t)return r=new a(e,n,o.diagnostic),!1})),r}function c(e,t){let n=t.pos,r=t.end||n,i=e.state.facet(k).hideOn(e,n,r);if(null!=i)return i;let o=e.startState.doc.lineAt(t.pos);return!(!e.effects.some((e=>e.is(d)))&&!e.changes.touchesRange(o.from,Math.max(o.to,r)))}function u(e,t){return e.field(m,!1)?t:t.concat(i.Pe.appendConfig.of(A))}const d=i.Pe.define(),h=i.Pe.define(),f=i.Pe.define(),m=i.sU.define({create:()=>new s(r.NZ.none,null,null),update(e,t){if(t.docChanged){let n=e.diagnostics.map(t.changes),r=null;if(e.selected){let i=t.changes.mapPos(e.selected.from,1);r=l(n,e.selected.diagnostic,i)||l(n,null,i)}e=new s(n,e.panel,r)}for(let n of t.effects)n.is(d)?e=s.init(n.value,e.panel,t.state):n.is(h)?e=new s(e.diagnostics,n.value?_.open:null,e.selected):n.is(f)&&(e=new s(e.diagnostics,e.panel,n.value));return e},provide:e=>[r.S7.from(e,(e=>e.panel)),r.Lz.decorations.from(e,(e=>e.diagnostics))]});const p=r.NZ.mark({class:"cm-lintRange cm-lintRange-active",inclusive:!0});function g(e,t,n){let{diagnostics:r}=e.state.field(m),i=[],o=2e8,a=0;r.between(t-(n<0?1:0),t+(n>0?1:0),((e,r,s)=>{let{spec:l}=s;t>=e&&t<=r&&(e==r||(t>e||n>0)&&(t({dom:b(e,i)})}:null}function b(e,t){return(0,o.A)("ul",{class:"cm-tooltip-lint"},t.map((t=>w(e,t,!1))))}const v=e=>{let t=e.state.field(m,!1);return!(!t||!t.panel)&&(e.dispatch({effects:h.of(!1)}),!0)},y=[{key:"Mod-Shift-m",run:e=>{let t=e.state.field(m,!1);t&&t.panel||e.dispatch({effects:u(e.state,[h.of(!0)])});let n=(0,r.ld)(e,_.open);return n&&n.dom.querySelector(".cm-panel-lint ul").focus(),!0},preventDefault:!0},{key:"F8",run:e=>{let t=e.state.field(m,!1);if(!t)return!1;let n=e.state.selection.main,r=t.diagnostics.iter(n.to+1);return!(!r.value&&(r=t.diagnostics.iter(0),!r.value||r.from==n.from&&r.to==n.to))&&(e.dispatch({selection:{anchor:r.from,head:r.to},scrollIntoView:!0}),!0)}}],k=i.sj.define({combine:e=>Object.assign({sources:e.map((e=>e.source)).filter((e=>null!=e))},(0,i.QR)(e.map((e=>e.config)),{delay:750,markerFilter:null,tooltipFilter:null,needsRefresh:null,hideOn:()=>null},{needsRefresh:(e,t)=>e?t?n=>e(n)||t(n):e:t}))});function O(e){let t=[];if(e)e:for(let{name:n}of e){for(let e=0;ee.toLowerCase()==r.toLowerCase()))){t.push(r);continue e}}t.push("")}return t}function w(e,t,n){var r;let i=n?O(t.actions):[];return(0,o.A)("li",{class:"cm-diagnostic cm-diagnostic-"+t.severity},(0,o.A)("span",{class:"cm-diagnosticText"},t.renderMessage?t.renderMessage(e):t.message),null===(r=t.actions)||void 0===r?void 0:r.map(((n,r)=>{let a=!1,s=r=>{if(r.preventDefault(),a)return;a=!0;let i=l(e.state.field(m).diagnostics,t);i&&n.apply(e,i.from,i.to)},{name:c}=n,u=i[r]?c.indexOf(i[r]):-1,d=u<0?c:[c.slice(0,u),(0,o.A)("u",c.slice(u,u+1)),c.slice(u+1)];return(0,o.A)("button",{type:"button",class:"cm-diagnosticAction",onclick:s,onmousedown:s,"aria-label":" Action: ".concat(c).concat(u<0?"":' (access key "'.concat(i[r],')"'),".")},d)})),t.source&&(0,o.A)("div",{class:"cm-diagnosticSource"},t.source))}class x extends r.xO{constructor(e){super(),this.diagnostic=e}eq(e){return e.diagnostic==this.diagnostic}toDOM(){return(0,o.A)("span",{class:"cm-lintPoint cm-lintPoint-"+this.diagnostic.severity})}}class S{constructor(e,t){this.diagnostic=t,this.id="item_"+Math.floor(4294967295*Math.random()).toString(16),this.dom=w(e,t,!0),this.dom.id=this.id,this.dom.setAttribute("role","option")}}class _{constructor(e){this.view=e,this.items=[];this.list=(0,o.A)("ul",{tabIndex:0,role:"listbox","aria-label":this.view.state.phrase("Diagnostics"),onkeydown:t=>{if(27==t.keyCode)v(this.view),this.view.focus();else if(38==t.keyCode||33==t.keyCode)this.moveSelection((this.selectedIndex-1+this.items.length)%this.items.length);else if(40==t.keyCode||34==t.keyCode)this.moveSelection((this.selectedIndex+1)%this.items.length);else if(36==t.keyCode)this.moveSelection(0);else if(35==t.keyCode)this.moveSelection(this.items.length-1);else if(13==t.keyCode)this.view.focus();else{if(!(t.keyCode>=65&&t.keyCode<=90&&this.selectedIndex>=0))return;{let{diagnostic:n}=this.items[this.selectedIndex],r=O(n.actions);for(let i=0;i{for(let t=0;tv(this.view)},"\xd7")),this.update()}get selectedIndex(){let e=this.view.state.field(m).selected;if(!e)return-1;for(let t=0;t{let s,{spec:l}=a,c=-1;for(let t=n;tn&&(this.items.splice(n,c-n),r=!0)),t&&s.diagnostic==t.diagnostic?s.dom.hasAttribute("aria-selected")||(s.dom.setAttribute("aria-selected","true"),i=s):s.dom.hasAttribute("aria-selected")&&s.dom.removeAttribute("aria-selected"),n++}));n({sel:i.dom.getBoundingClientRect(),panel:this.list.getBoundingClientRect()}),write:e=>{let{sel:t,panel:n}=e,r=n.height/this.list.offsetHeight;t.topn.bottom&&(this.list.scrollTop+=(t.bottom-n.bottom)/r)}})):this.selectedIndex<0&&this.list.removeAttribute("aria-activedescendant"),r&&this.sync()}sync(){let e=this.list.firstChild;function t(){let t=e;e=t.nextSibling,t.remove()}for(let n of this.items)if(n.dom.parentNode==this.list){for(;e!=n.dom;)t();e=n.dom.nextSibling}else this.list.insertBefore(n.dom,e);for(;e;)t()}moveSelection(e){if(this.selectedIndex<0)return;let t=l(this.view.state.field(m).diagnostics,this.items[e].diagnostic);t&&this.view.dispatch({selection:{anchor:t.from,head:t.to},scrollIntoView:!0,effects:f.of(t)})}static open(e){return new _(e)}}function T(e){return'url(\'data:image/svg+xml,1&&void 0!==arguments[1]?arguments[1]:'viewBox="0 0 40 40"',">").concat(encodeURIComponent(e),"')")}function E(e){return T(''),'width="6" height="3"')}const $=r.Lz.baseTheme({".cm-diagnostic":{padding:"3px 6px 3px 8px",marginLeft:"-1px",display:"block",whiteSpace:"pre-wrap"},".cm-diagnostic-error":{borderLeft:"5px solid #d11"},".cm-diagnostic-warning":{borderLeft:"5px solid orange"},".cm-diagnostic-info":{borderLeft:"5px solid #999"},".cm-diagnostic-hint":{borderLeft:"5px solid #66d"},".cm-diagnosticAction":{font:"inherit",border:"none",padding:"2px 4px",backgroundColor:"#444",color:"white",borderRadius:"3px",marginLeft:"8px",cursor:"pointer"},".cm-diagnosticSource":{fontSize:"70%",opacity:.7},".cm-lintRange":{backgroundPosition:"left bottom",backgroundRepeat:"repeat-x",paddingBottom:"0.7px"},".cm-lintRange-error":{backgroundImage:E("#d11")},".cm-lintRange-warning":{backgroundImage:E("orange")},".cm-lintRange-info":{backgroundImage:E("#999")},".cm-lintRange-hint":{backgroundImage:E("#66d")},".cm-lintRange-active":{backgroundColor:"#ffdd9980"},".cm-tooltip-lint":{padding:0,margin:0},".cm-lintPoint":{position:"relative","&:after":{content:'""',position:"absolute",bottom:0,left:"-2px",borderLeft:"3px solid transparent",borderRight:"3px solid transparent",borderBottom:"4px solid #d11"}},".cm-lintPoint-warning":{"&:after":{borderBottomColor:"orange"}},".cm-lintPoint-info":{"&:after":{borderBottomColor:"#999"}},".cm-lintPoint-hint":{"&:after":{borderBottomColor:"#66d"}},".cm-panel.cm-panel-lint":{position:"relative","& ul":{maxHeight:"100px",overflowY:"auto","& [aria-selected]":{backgroundColor:"#ddd","& u":{textDecoration:"underline"}},"&:focus [aria-selected]":{background_fallback:"#bdf",backgroundColor:"Highlight",color_fallback:"white",color:"HighlightText"},"& u":{textDecoration:"none"},padding:0,margin:0},"& [name=close]":{position:"absolute",top:"0",right:"2px",background:"inherit",border:"none",font:"inherit",padding:0,margin:0}}});r.wJ;const A=[m,r.Lz.decorations.compute([m],(e=>{let{selected:t,panel:n}=e.field(m);return t&&n&&t.from!=t.to?r.NZ.set([p.range(t.from,t.to)]):r.NZ.none})),(0,r.Ux)(g,{hideOn:c}),$]},60125:(e,t,n)=>{n.d(t,{SV:()=>de});var r=n(67538),i=n(8070),o=n(752);n(4859),n(1345);class a{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}offset(e,t){return new a(this.fromA+e,this.toA+e,this.fromB+t,this.toB+t)}}function s(e,t,n,r,i,o){if(e==r)return[];let c=m(e,t,n,r,i,o),f=p(e,t+c,n,r,i+c,o),g=(n-=f)-(t+=c),y=(o-=f)-(i+=c);if(!g||!y)return[new a(t,n,i,o)];if(g>y){let s=e.slice(t,n).indexOf(r.slice(i,o));if(s>-1)return[new a(t,t+s,i,i),new a(t+s+y,n,o,o)]}else if(y>g){let s=r.slice(i,o).indexOf(e.slice(t,n));if(s>-1)return[new a(t,t,i,i+s),new a(n,n,i+s+g,o)]}if(1==g||1==y)return[new a(t,n,i,o)];let k=b(e,t,n,r,i,o);if(k){let[a,l,c]=k;return s(e,t,a,r,i,l).concat(s(e,a+c,n,r,l+c,o))}return function(e,t,n,r,i,o){let s=n-t,c=o-i;if(l<1e9&&Math.min(s,c)>16*l)return Math.min(s,c)>64*l?[new a(t,n,i,o)]:v(e,t,n,r,i,o);let f=Math.ceil((s+c)/2);u.reset(f),d.reset(f);let m=(n,o)=>e.charCodeAt(t+n)==r.charCodeAt(i+o),p=(t,i)=>e.charCodeAt(n-t-1)==r.charCodeAt(o-i-1),g=(s-c)%2!=0?d:null,b=g?null:u;for(let a=0;al)return v(e,t,n,r,i,o);let y=u.advance(a,s,c,f,g,!1,m)||d.advance(a,s,c,f,b,!0,p);if(y)return h(e,t,n,t+y[0],r,i,o,i+y[1])}return[new a(t,n,i,o)]}(e,t,n,r,i,o)}let l=1e9;class c{constructor(){this.vec=[]}reset(e){this.len=e<<1;for(let t=0;tt)this.end+=2;else if(u>n)this.start+=2;else if(i){let e=r+(t-n)-s;if(e>=0&&e=t-c)return[n,r+n-e]}else{if(c>=t-i.vec[e])return[c,u]}}}return null}}const u=new c,d=new c;function h(e,t,n,r,i,o,l,c){let u=!1;return A(e,r)||++r!=n||(u=!0),A(i,c)||++c!=l||(u=!0),u?[new a(t,n,o,l)]:s(e,t,r,i,o,c).concat(s(e,r,n,i,c,l))}function f(e,t){let n=1,r=Math.min(e,t);for(;nn||c>o||e.slice(s,i)!=r.slice(l,c)){if(1==a)return s-t-(A(e,s)?0:1);a>>=1}else{if(i==n||c==o)return i-t;s=i,l=c}}}function p(e,t,n,r,i,o){if(t==n||i==o||e.charCodeAt(n-1)!=r.charCodeAt(o-1))return 0;let a=f(n-t,o-i);for(let s=n,l=o;;){let o=s-a,c=l-a;if(o>=1}else{if(o==t||c==i)return n-o;s=o,l=c}}}function g(e,t,n,r,i,o,a,s){let l=r.slice(i,o),c=null;for(;;){if(c||a=n)break;let d=e.slice(s,u),h=-1;for(;-1!=(h=l.indexOf(d,h+1));){let a=m(e,u,n,r,i+h+d.length,o),l=p(e,t,s,r,i,i+h),f=d.length+a+l;(!c||c[2]>=1}}function b(e,t,n,r,i,o){let a=n-t,s=o-i;if(ai.fromA-t&&r.toB>i.fromB-t&&(e[n-1]=new a(r.fromA,i.toA,r.fromB,i.toB),e.splice(n--,1))}}let k;try{k=new RegExp("[\\p{Alphabetic}\\p{Number}]","u")}catch(fe){}function O(e){return e>48&&e<58||e>64&&e<91||e>96&&e<123}function w(e,t){if(t==e.length)return 0;let n=e.charCodeAt(t);return n<192?O(n)?1:0:k?E(n)&&t!=e.length-1?k.test(e.slice(t,t+2))?2:0:k.test(String.fromCharCode(n))?1:0:0}function x(e,t){if(!t)return 0;let n=e.charCodeAt(t-1);return n<192?O(n)?1:0:k?$(n)&&1!=t?k.test(e.slice(t-2,t))?2:0:k.test(String.fromCharCode(n))?1:0:0}function S(e,t,n){if(t==e.length||!x(e,t))return t;for(let r=t,i=t+n;;){let n=w(e,r);if(!n)return r;if(r+=n,r>i)return t}}function _(e,t,n){if(!t||!w(e,t))return t;for(let r=t,i=t-n;;){let n=x(e,r);if(!n)return r;if(r-=n,re>=55296&&e<=56319,$=e=>e>=56320&&e<=57343;function A(e,t){return!t||t==e.length||!E(e.charCodeAt(t-1))||!$(e.charCodeAt(t))}function C(e,t,n){var r;return l=(null!==(r=null===n||void 0===n?void 0:n.scanLimit)&&void 0!==r?r:1e9)>>1,function(e,t,n){for(;;){y(n,1);let r=!1;for(let i=0;i3||l>3){let c=i==e.length-1?t.length:e[i+1].fromA,u=o.fromA-r,d=c-o.toA,h=_(t,o.fromA,Math.min(u,5)),f=S(t,o.toA,Math.min(d,5)),m=o.fromA-h,p=f-o.toA;if(!s||!l){let d,g,b=Math.max(s,l),[v,y,k]=s?[t,o.fromA,o.toA]:[n,o.fromB,o.toB];m&&p?(b>m&&t.slice(h,o.fromA)==v.slice(k-m,k)?(o=e[i]=new a(h,h+s,o.fromB-m,o.toB-m),h=o.fromA,f=S(t,o.toA,Math.min(c-o.toA,5))):b>p&&t.slice(o.toA,f)==v.slice(y,y+p)&&(o=e[i]=new a(f-s,f,o.fromB+p,o.toB+p),f=o.toA,h=_(t,o.fromA,Math.min(o.fromA-r,5))),m=o.fromA-h,p=f-o.toA):m||p||!(g=o.fromA-(d=T(t,o.fromA,u)))||t.slice(d,o.fromA)!=v.slice(k-g,k)||(o=e[i]=new a(d,d+s,o.fromB-g,o.toB-g))}(m||p)&&(o=e[i]=new a(o.fromA-m,o.toA+p,o.fromB-m,o.toB+p)),r=o.toA}}return y(e,3),e}(C(e,t,n),e,t)}const R=i.sj.define({combine:e=>e[0]}),I=i.Pe.define(),D=i.sU.define({create:e=>null,update(e,t){for(let n of t.effects)n.is(I)&&(e=n.value);return e}});class z{constructor(e,t,n,r,i){this.changes=e,this.fromA=t,this.toA=n,this.fromB=r,this.toB=i}offset(e,t){return e||t?new z(this.changes,this.fromA+e,this.toA+e,this.fromB+t,this.toB+t):this}get endA(){return Math.max(this.fromA,this.toA-1)}get endB(){return Math.max(this.fromB,this.toB-1)}static build(e,t,n){return M(P(e.toString(),t.toString(),n),e,t,0,0)}static updateA(e,t,n,r,i){return B(W(e,r,!0,n.length),e,t,n,i)}static updateB(e,t,n,r,i){return B(W(e,r,!1,t.length),e,t,n,i)}}function N(e,t,n,r){let i=n.lineAt(e),o=r.lineAt(t);return i.to==e&&o.to==t&&eu+1&&f>d+1)break;h.push(o.offset(-l+r,-c+i)),[u,d]=L(o.toA+r,o.toB+i,t,n),a++}o.push(new z(h,l,Math.max(l,u),c,Math.max(c,d)))}return o}const Q=1e3;function q(e,t,n,r){let i=0,o=e.length;for(;;){if(i==o){let r=0,o=0;i&&({toA:r,toB:o}=e[i-1]);let a=t-(n?r:o);return[r+a,o+a]}let a=i+o>>1,s=e[a],[l,c]=n?[s.fromA,s.toA]:[s.fromB,s.toB];if(l>t)o=a;else{if(!(c<=t))return r?[s.fromA,s.fromB]:[s.toA,s.toB];i=a+1}}}function W(e,t,n,r){let i=[];return t.iterChangedRanges(((o,a,s,l)=>{let c=0,u=n?t.length:r,d=0,h=n?r:t.length;o>Q&&([c,d]=q(e,o-Q,n,!0)),a=c?i[i.length-1]={fromA:f.fromA,fromB:f.fromB,toA:u,toB:h,diffA:f.diffA+p,diffB:f.diffB+g}:i.push({fromA:c,toA:u,fromB:d,toB:h,diffA:p,diffB:g})})),i}function B(e,t,n,r,i){if(!e.length)return t;let o=[];for(let a=0,s=0,l=0,c=0;;a++){let u=a==e.length?null:e[a],d=u?u.fromA+s:n.length,h=u?u.fromB+l:r.length;for(;cd||e.toB+l>h)break;o.push(e.offset(s,l)),c++}if(!u)break;let f=u.toA+s+u.diffA,m=u.toB+l+u.diffB,p=P(n.sliceString(d,f),r.sliceString(h,m),i);for(let e of M(p,n,r,d,h))o.push(e);for(s+=u.diffA,l+=u.diffB;cf&&e.fromB+l>m)break;c++}}return o}const F=r.Z9.fromClass(class{constructor(e){({deco:this.deco,gutter:this.gutter}=H(e))}update(e){var t,n;(e.docChanged||e.viewportChanged||(t=e.startState,n=e.state,t.field(D,!1)!=n.field(D,!1))||function(e,t){return e.facet(R)!=t.facet(R)}(e.startState,e.state))&&({deco:this.deco,gutter:this.gutter}=H(e.view))}},{decorations:e=>e.deco}),U=i.Nb.low((0,r.cU)({class:"cm-changeGutter",markers:e=>{var t;return(null===(t=e.plugin(F))||void 0===t?void 0:t.gutter)||i.om.empty}}));const j=r.NZ.line({class:"cm-changedLine"}),V=r.NZ.mark({class:"cm-changedText"}),G=r.NZ.mark({tagName:"ins",class:"cm-insertedLine"}),X=r.NZ.mark({tagName:"del",class:"cm-deletedLine"}),Y=new class extends r.wJ{constructor(){super(...arguments),this.elementClass="cm-changedLineGutter"}};function Z(e,t,n,r,i,o){let a=n?e.fromA:e.fromB,s=n?e.toA:e.toB,l=0;if(a!=s){i.add(a,a,j),i.add(a,s,n?X:G),o&&o.add(a,a,Y);for(let c=t.iterRange(a,s-1),u=a;!c.next().done;){if(c.lineBreak){u++,i.add(u,u,j),o&&o.add(u,u,Y);continue}let t=u+c.value.length;if(r)for(;l=u)break;(a?i.toA:i.toB)>c&&Z(i,e.state.doc,a,r,s,l)}return{deco:s.finish(),gutter:l&&l.finish()}}class K extends r.xO{constructor(e){super(),this.height=e}eq(e){return this.height==e.height}toDOM(){let e=document.createElement("div");return e.className="cm-mergeSpacer",e.style.height=this.height+"px",e}updateDOM(e){return e.style.height=this.height+"px",!0}get estimatedHeight(){return this.height}ignoreEvent(){return!1}}const J=i.Pe.define({map:(e,t)=>e.map(t)}),ee=i.sU.define({create:()=>r.NZ.none,update:(e,t)=>{for(let n of t.effects)if(n.is(J))return n.value;return e.map(t.changes)},provide:e=>r.Lz.decorations.from(e)}),te=.01;const ne=i.Pe.define({map:(e,t)=>t.mapPos(e)});class re extends r.xO{constructor(e){super(),this.lines=e}eq(e){return this.lines==e.lines}toDOM(e){let t=document.createElement("div");return t.className="cm-collapsedLines",t.textContent="\u299a "+e.state.phrase("$ unchanged lines",this.lines)+" \u299a",t.addEventListener("click",(t=>{let n=e.posAtDOM(t.target);e.dispatch({effects:ne.of(n)});let{side:r,sibling:i}=e.state.facet(R);i&&i().dispatch({effects:ne.of(ie(n,e.state.field(D),"a"==r))})})),t}ignoreEvent(e){return e instanceof MouseEvent}get estimatedHeight(){return 27}}function ie(e,t,n){let r=0,i=0;for(let o=0;;o++){let a=o=e)return i+(e-r);[r,i]=n?[a.toA,a.toB]:[a.toB,a.toA]}}const oe=i.sU.define({create:e=>r.NZ.none,update(e,t){e=e.map(t.changes);for(let n of t.effects)n.is(ne)&&(e=e.update({filter:e=>e!=n.value}));return e},provide:e=>r.Lz.decorations.from(e)});function ae(e){let{margin:t=3,minSize:n=4}=e;return oe.init((e=>function(e,t,n){let o=new i.vB,a="a"==e.facet(R).side,s=e.field(D),l=1;for(let i=0;;i++){let c=i=n&&o.add(e.doc.line(u).from,e.doc.line(d).to,r.NZ.replace({widget:new re(h),block:!0})),!c)break;l=e.doc.lineAt(Math.min(e.doc.length,a?c.toA:c.toB)).number}return o.finish()}(e,t,n)))}const se=r.Lz.styleModule.of(new o.G({".cm-mergeView":{overflowY:"auto"},".cm-mergeViewEditors":{display:"flex",alignItems:"stretch"},".cm-mergeViewEditor":{flexGrow:1,flexBasis:0,overflow:"hidden"},".cm-merge-revert":{width:"1.6em",flexGrow:0,flexShrink:0,position:"relative"},".cm-merge-revert button":{position:"absolute",display:"block",width:"100%",boxSizing:"border-box",textAlign:"center",background:"none",border:"none",font:"inherit",cursor:"pointer"}})),le=r.Lz.baseTheme({".cm-mergeView & .cm-scroller, .cm-mergeView &":{height:"auto !important",overflowY:"visible !important"},"&.cm-merge-a .cm-changedLine, .cm-deletedChunk":{backgroundColor:"rgba(160, 128, 100, .08)"},"&.cm-merge-b .cm-changedLine":{backgroundColor:"rgba(100, 160, 128, .08)"},"&light.cm-merge-a .cm-changedText, &light .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ee443366, #ee443366) bottom/100% 2px no-repeat"},"&dark.cm-merge-a .cm-changedText, &dark .cm-deletedChunk .cm-deletedText":{background:"linear-gradient(#ffaa9966, #ffaa9966) bottom/100% 2px no-repeat"},"&light.cm-merge-b .cm-changedText":{background:"linear-gradient(#22bb2266, #22bb2266) bottom/100% 2px no-repeat"},"&dark.cm-merge-b .cm-changedText":{background:"linear-gradient(#88ff8866, #88ff8866) bottom/100% 2px no-repeat"},".cm-insertedLine, .cm-deletedLine":{textDecoration:"none"},".cm-deletedChunk":{paddingLeft:"6px","& .cm-chunkButtons":{position:"absolute",insetInlineEnd:"5px"},"& button":{border:"none",cursor:"pointer",color:"white",margin:"0 2px",borderRadius:"3px","&[name=accept]":{background:"#2a2"},"&[name=reject]":{background:"#d43"}}},".cm-collapsedLines":{padding:"5px 5px 5px 10px",cursor:"pointer"},"&light .cm-collapsedLines":{color:"#444",background:"linear-gradient(to bottom, transparent 0, #f3f3f3 30%, #f3f3f3 70%, transparent 100%)"},"&dark .cm-collapsedLines":{color:"#ddd",background:"linear-gradient(to bottom, transparent 0, #222 30%, #222 70%, transparent 100%)"},".cm-changeGutter":{width:"3px",paddingLeft:"1px"},"&light.cm-merge-a .cm-changedLineGutter, &light .cm-deletedLineGutter":{background:"#e43"},"&dark.cm-merge-a .cm-changedLineGutter, &dark .cm-deletedLineGutter":{background:"#fa9"},"&light.cm-merge-b .cm-changedLineGutter":{background:"#2b2"},"&dark.cm-merge-b .cm-changedLineGutter":{background:"#8f8"}}),ce=new i.xx,ue=new i.xx;class de{constructor(e){this.revertDOM=null,this.revertToA=!1,this.revertToLeft=!1,this.measuring=-1,this.diffConf=e.diffConfig;let t=[i.Nb.low(F),le,se,ee,r.Lz.updateListener.of((e=>{this.measuring<0&&(e.heightChanged||e.viewportChanged)&&!e.transactions.some((e=>e.effects.some((e=>e.is(J)))))&&this.measure()}))],n=[R.of({side:"a",sibling:()=>this.b,highlightChanges:!1!==e.highlightChanges,markGutter:!1!==e.gutter})];!1!==e.gutter&&n.push(U);let o=i.$t.create({doc:e.a.doc,selection:e.a.selection,extensions:[e.a.extensions||[],r.Lz.editorAttributes.of({class:"cm-merge-a"}),ue.of(n),t]}),a=[R.of({side:"b",sibling:()=>this.a,highlightChanges:!1!==e.highlightChanges,markGutter:!1!==e.gutter})];!1!==e.gutter&&a.push(U);let s=i.$t.create({doc:e.b.doc,selection:e.b.selection,extensions:[e.b.extensions||[],r.Lz.editorAttributes.of({class:"cm-merge-b"}),ue.of(a),t]});this.chunks=z.build(o.doc,s.doc,this.diffConf);let l=[D.init((()=>this.chunks)),ce.of(e.collapseUnchanged?ae(e.collapseUnchanged):[])];o=o.update({effects:i.Pe.appendConfig.of(l)}).state,s=s.update({effects:i.Pe.appendConfig.of(l)}).state,this.dom=document.createElement("div"),this.dom.className="cm-mergeView",this.editorDOM=this.dom.appendChild(document.createElement("div")),this.editorDOM.className="cm-mergeViewEditors";let c=e.orientation||"a-b",u=document.createElement("div");u.className="cm-mergeViewEditor";let d=document.createElement("div");d.className="cm-mergeViewEditor",this.editorDOM.appendChild("a-b"==c?u:d),this.editorDOM.appendChild("a-b"==c?d:u),this.a=new r.Lz({state:o,parent:u,root:e.root,dispatchTransactions:e=>this.dispatch(e,this.a)}),this.b=new r.Lz({state:s,parent:d,root:e.root,dispatchTransactions:e=>this.dispatch(e,this.b)}),this.setupRevertControls(!!e.revertControls,"b-to-a"==e.revertControls,e.renderRevertControl),e.parent&&e.parent.appendChild(this.dom),this.scheduleMeasure()}dispatch(e,t){if(e.some((e=>e.docChanged))){let n=e[e.length-1],r=e.reduce(((e,t)=>e.compose(t.changes)),i.VR.empty(e[0].startState.doc.length));this.chunks=t==this.a?z.updateA(this.chunks,n.newDoc,this.b.state.doc,r,this.diffConf):z.updateB(this.chunks,this.a.state.doc,n.newDoc,r,this.diffConf),t.update([...e,n.state.update({effects:I.of(this.chunks)})]);let o=t==this.a?this.b:this.a;o.update([o.state.update({effects:I.of(this.chunks)})]),this.scheduleMeasure()}else t.update(e)}reconfigure(e){if("diffConfig"in e&&(this.diffConf=e.diffConfig),"orientation"in e){let t="b-a"!=e.orientation;if(t!=(this.editorDOM.firstChild==this.a.dom.parentNode)){let e=this.a.dom.parentNode,n=this.b.dom.parentNode;e.remove(),n.remove(),this.editorDOM.insertBefore(t?e:n,this.editorDOM.firstChild),this.editorDOM.appendChild(t?n:e),this.revertToLeft=!this.revertToLeft,this.revertDOM&&(this.revertDOM.textContent="")}}if("revertControls"in e||"renderRevertControl"in e){let t=!!this.revertDOM,n=this.revertToA,r=this.renderRevert;"revertControls"in e&&(t=!!e.revertControls,n="b-to-a"==e.revertControls),"renderRevertControl"in e&&(r=e.renderRevertControl),this.setupRevertControls(t,n,r)}let t="highlightChanges"in e,n="gutter"in e,r="collapseUnchanged"in e;if(t||n||r){let i=[],o=[];if(t||n){let r=this.a.state.facet(R),a=n?!1!==e.gutter:r.markGutter,s=t?!1!==e.highlightChanges:r.highlightChanges;i.push(ue.reconfigure([R.of({side:"a",sibling:()=>this.b,highlightChanges:s,markGutter:a}),a?U:[]])),o.push(ue.reconfigure([R.of({side:"b",sibling:()=>this.a,highlightChanges:s,markGutter:a}),a?U:[]]))}if(r){let t=ce.reconfigure(e.collapseUnchanged?ae(e.collapseUnchanged):[]);i.push(t),o.push(t)}this.a.dispatch({effects:i}),this.b.dispatch({effects:o})}this.scheduleMeasure()}setupRevertControls(e,t,n){this.revertToA=t,this.revertToLeft=this.revertToA==(this.editorDOM.firstChild==this.a.dom.parentNode),this.renderRevert=n,!e&&this.revertDOM?(this.revertDOM.remove(),this.revertDOM=null):e&&!this.revertDOM?(this.revertDOM=this.editorDOM.insertBefore(document.createElement("div"),this.editorDOM.firstChild.nextSibling),this.revertDOM.addEventListener("mousedown",(e=>this.revertClicked(e))),this.revertDOM.className="cm-merge-revert"):this.revertDOM&&(this.revertDOM.textContent="")}scheduleMeasure(){if(this.measuring<0){let e=this.dom.ownerDocument.defaultView||window;this.measuring=e.requestAnimationFrame((()=>{this.measuring=-1,this.measure()}))}}measure(){!function(e,t,n){let o=new i.vB,a=new i.vB,s=e.state.field(ee).iter(),l=t.state.field(ee).iter(),c=0,u=0,d=0,h=0;for(let i=0;;i++){let f=ite&&(h+=n,a.add(u,u,r.NZ.widget({widget:new K(n),block:!0,side:-1})))}if(!f)break;for(c=f.toA,u=f.toB;s.value&&s.fromte&&a.add(t.state.doc.length,t.state.doc.length,r.NZ.widget({widget:new K(f),block:!0,side:1}));let m=o.finish(),p=a.finish();i.om.eq([m],[e.state.field(ee)])||e.dispatch({effects:J.of(m)}),i.om.eq([p],[t.state.field(ee)])||t.dispatch({effects:J.of(p)})}(this.a,this.b,this.chunks),this.revertDOM&&this.updateRevertButtons()}updateRevertButtons(){let e=this.revertDOM,t=e.firstChild,n=this.a.viewport,r=this.b.viewport;for(let i=0;in.to||o.fromB>r.to)break;if(o.fromA-1&&(this.dom.ownerDocument.defaultView||window).cancelAnimationFrame(this.measuring),this.dom.remove()}}function he(e){let t=e.nextSibling;return e.remove(),t}r.xO},95341:(e,t,n)=>{n.d(t,{Eo:()=>te,gN:()=>O});var r=n(67538),i=n(8070),o=n(21525);const a="function"==typeof String.prototype.normalize?e=>e.normalize("NFKD"):e=>e;class s{constructor(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:e.length,i=arguments.length>4?arguments[4]:void 0,o=arguments.length>5?arguments[5]:void 0;this.test=o,this.value={from:0,to:0},this.done=!1,this.matches=[],this.buffer="",this.bufferPos=0,this.iter=e.iterRange(n,r),this.bufferStart=n,this.normalize=i?e=>i(a(e)):a,this.query=this.normalize(t)}peek(){if(this.bufferPos==this.buffer.length){if(this.bufferStart+=this.buffer.length,this.iter.next(),this.iter.done)return-1;this.bufferPos=0,this.buffer=this.iter.value}return(0,i.vS)(this.buffer,this.bufferPos)}next(){for(;this.matches.length;)this.matches.pop();return this.nextOverlapping()}nextOverlapping(){for(;;){let e=this.peek();if(e<0)return this.done=!0,this;let t=(0,i.MK)(e),n=this.bufferStart+this.bufferPos;this.bufferPos+=(0,i.Fh)(e);let r=this.normalize(t);for(let i=0,o=n;;i++){let e=r.charCodeAt(i),a=this.match(e,o,this.bufferPos+this.bufferStart);if(i==r.length-1){if(a)return this.value=a,this;break}o==n&&i3&&void 0!==arguments[3]?arguments[3]:0,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:e.length;if(this.text=e,this.to=i,this.curLine="",this.done=!1,this.value=l,/\\[sWDnr]|\n|\r|\[\^/.test(t))return new f(e,t,n,r,i);this.re=new RegExp(t,c+((null===n||void 0===n?void 0:n.ignoreCase)?"i":"")),this.test=null===n||void 0===n?void 0:n.test,this.iter=e.iter();let o=e.lineAt(r);this.curLineStart=o.from,this.matchPos=m(e,r),this.getLine(this.curLineStart)}getLine(e){this.iter.next(e),this.iter.lineBreak?this.curLine="":(this.curLine=this.iter.value,this.curLineStart+this.curLine.length>this.to&&(this.curLine=this.curLine.slice(0,this.to-this.curLineStart)),this.iter.next())}nextLine(){this.curLineStart=this.curLineStart+this.curLine.length+1,this.curLineStart>this.to?this.curLine="":this.getLine(0)}next(){for(let e=this.matchPos-this.curLineStart;;){this.re.lastIndex=e;let t=this.matchPos<=this.to&&this.re.exec(this.curLine);if(t){let n=this.curLineStart+t.index,r=n+t[0].length;if(this.matchPos=m(this.text,r+(n==r?1:0)),n==this.curLineStart+this.curLine.length&&this.nextLine(),(nthis.value.to)&&(!this.test||this.test(n,r,t)))return this.value={from:n,to:r,match:t},this;e=this.matchPos-this.curLineStart}else{if(!(this.curLineStart+this.curLine.length=n||r.to<=t){let r=new h(t,e.sliceString(t,n));return d.set(e,r),r}if(r.from==t&&r.to==n)return r;let{text:i,from:o}=r;return o>t&&(i=e.sliceString(t,o)+i,o=t),r.to=this.to?this.to:this.text.lineAt(e).to}next(){for(;;){let e=this.re.lastIndex=this.matchPos-this.flat.from,t=this.re.exec(this.flat.text);if(t&&!t[0]&&t.index==e&&(this.re.lastIndex=e+1,t=this.re.exec(this.flat.text)),t){let e=this.flat.from+t.index,n=e+t[0].length;if((this.flat.to>=this.to||t.index+t[0].length<=this.flat.text.length-10)&&(!this.test||this.test(e,n,t)))return this.value={from:e,to:n,match:t},this.matchPos=m(this.text,n+(e==n?1:0)),this}if(this.flat.to==this.to)return this.done=!0,this;this.flat=h.get(this.text,this.flat.from,this.chunkEnd(this.flat.from+2*this.flat.text.length))}}}function m(e,t){if(t>=e.length)return t;let n,r=e.lineAt(t);for(;t=56320&&n<57344;)t++;return t}function p(e){let t=String(e.state.doc.lineAt(e.state.selection.main.head).number),n=(0,o.A)("input",{class:"cm-textfield",name:"line",value:t});function a(){let t=/^([+-])?(\d+)?(:\d+)?(%)?$/.exec(n.value);if(!t)return;let{state:o}=e,a=o.doc.lineAt(o.selection.main.head),[,s,l,c,u]=t,d=c?+c.slice(1):0,h=l?+l:a.number;if(l&&u){let e=h/100;s&&(e=e*("-"==s?-1:1)+a.number/o.doc.lines),h=Math.round(o.doc.lines*e)}else l&&s&&(h=h*("-"==s?-1:1)+a.number);let f=o.doc.line(Math.max(1,Math.min(o.doc.lines,h))),m=i.OF.cursor(f.from+Math.max(0,Math.min(d,f.length)));e.dispatch({effects:[g.of(!1),r.Lz.scrollIntoView(m.from,{y:"center"})],selection:m}),e.focus()}return{dom:(0,o.A)("form",{class:"cm-gotoLine",onkeydown:t=>{27==t.keyCode?(t.preventDefault(),e.dispatch({effects:g.of(!1)}),e.focus()):13==t.keyCode&&(t.preventDefault(),a())},onsubmit:e=>{e.preventDefault(),a()}},(0,o.A)("label",e.state.phrase("Go to line"),": ",n)," ",(0,o.A)("button",{class:"cm-button",type:"submit"},e.state.phrase("go")))}}"undefined"!=typeof Symbol&&(u.prototype[Symbol.iterator]=f.prototype[Symbol.iterator]=function(){return this});const g=i.Pe.define(),b=i.sU.define({create:()=>!0,update(e,t){for(let n of t.effects)n.is(g)&&(e=n.value);return e},provide:e=>r.S7.from(e,(e=>e?p:null))}),v=r.Lz.baseTheme({".cm-panel.cm-gotoLine":{padding:"2px 6px 4px","& label":{fontSize:"80%"}}}),y={highlightWordAroundCursor:!1,minSelectionLength:1,maxMatches:100,wholeWords:!1},k=i.sj.define({combine:e=>(0,i.QR)(e,y,{highlightWordAroundCursor:(e,t)=>e||t,minSelectionLength:Math.min,maxMatches:Math.min})});function O(e){let t=[T,_];return e&&t.push(k.of(e)),t}const w=r.NZ.mark({class:"cm-selectionMatch"}),x=r.NZ.mark({class:"cm-selectionMatch cm-selectionMatch-main"});function S(e,t,n,r){return(0==n||e(t.sliceDoc(n-1,n))!=i.Je.Word)&&(r==t.doc.length||e(t.sliceDoc(r,r+1))!=i.Je.Word)}const _=r.Z9.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.selectionSet||e.docChanged||e.viewportChanged)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=e.state.facet(k),{state:n}=e,o=n.selection;if(o.ranges.length>1)return r.NZ.none;let a,l=o.main,c=null;if(l.empty){if(!t.highlightWordAroundCursor)return r.NZ.none;let e=n.wordAt(l.head);if(!e)return r.NZ.none;c=n.charCategorizer(l.head),a=n.sliceDoc(e.from,e.to)}else{let e=l.to-l.from;if(e200)return r.NZ.none;if(t.wholeWords){if(a=n.sliceDoc(l.from,l.to),c=n.charCategorizer(l.head),!S(c,n,l.from,l.to)||!function(e,t,n,r){return e(t.sliceDoc(n,n+1))==i.Je.Word&&e(t.sliceDoc(r-1,r))==i.Je.Word}(c,n,l.from,l.to))return r.NZ.none}else if(a=n.sliceDoc(l.from,l.to),!a)return r.NZ.none}let u=[];for(let i of e.visibleRanges){let e=new s(n.doc,a,i.from,i.to);for(;!e.next().done;){let{from:i,to:o}=e.value;if((!c||S(c,n,i,o))&&(l.empty&&i<=l.from&&o>=l.to?u.push(x.range(i,o)):(i>=l.to||o<=l.from)&&u.push(w.range(i,o)),u.length>t.maxMatches))return r.NZ.none}}return r.NZ.set(u)}},{decorations:e=>e.decorations}),T=r.Lz.baseTheme({".cm-selectionMatch":{backgroundColor:"#99ff7780"},".cm-searchMatch .cm-selectionMatch":{backgroundColor:"transparent"}});const E=i.sj.define({combine:e=>(0,i.QR)(e,{top:!1,caseSensitive:!1,literal:!1,regexp:!1,wholeWord:!1,createPanel:e=>new ne(e),scrollToMatch:e=>r.Lz.scrollIntoView(e)})});class ${constructor(e){this.search=e.search,this.caseSensitive=!!e.caseSensitive,this.literal=!!e.literal,this.regexp=!!e.regexp,this.replace=e.replace||"",this.valid=!!this.search&&(!this.regexp||function(e){try{return new RegExp(e,c),!0}catch(t){return!1}}(this.search)),this.unquoted=this.unquote(this.search),this.wholeWord=!!e.wholeWord}unquote(e){return this.literal?e:e.replace(/\\([nrt\\])/g,((e,t)=>"n"==t?"\n":"r"==t?"\r":"t"==t?"\t":"\\"))}eq(e){return this.search==e.search&&this.replace==e.replace&&this.caseSensitive==e.caseSensitive&&this.regexp==e.regexp&&this.wholeWord==e.wholeWord}create(){return this.regexp?new z(this):new P(this)}getCursor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,r=e.doc?e:i.$t.create({doc:e});return null==n&&(n=r.doc.length),this.regexp?R(this,r,t,n):C(this,r,t,n)}}class A{constructor(e){this.spec=e}}function C(e,t,n,r){return new s(t.doc,e.unquoted,n,r,e.caseSensitive?void 0:e=>e.toLowerCase(),e.wholeWord?(o=t.doc,a=t.charCategorizer(t.selection.main.head),(e,t,n,r)=>((r>e||r+n.length=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=C(this.spec,e,Math.max(0,t-this.spec.unquoted.length),Math.min(n+this.spec.unquoted.length,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}}function R(e,t,n,r){return new u(t.doc,e.search,{ignoreCase:!e.caseSensitive,test:e.wholeWord?(o=t.charCategorizer(t.selection.main.head),(e,t,n)=>!n[0].length||(o(I(n.input,n.index))!=i.Je.Word||o(D(n.input,n.index))!=i.Je.Word)&&(o(D(n.input,n.index+n[0].length))!=i.Je.Word||o(I(n.input,n.index+n[0].length))!=i.Je.Word)):void 0},n,r);var o}function I(e,t){return e.slice((0,i.zK)(e,t,!1),t)}function D(e,t){return e.slice(t,(0,i.zK)(e,t))}class z extends A{nextMatch(e,t,n){let r=R(this.spec,e,n,e.doc.length).next();return r.done&&(r=R(this.spec,e,0,t).next()),r.done?null:r.value}prevMatchInRange(e,t,n){for(let r=1;;r++){let i=Math.max(t,n-1e4*r),o=R(this.spec,e,i,n),a=null;for(;!o.next().done;)a=o.value;if(a&&(i==t||a.from>i+10))return a;if(i==t)return null}}prevMatch(e,t,n){return this.prevMatchInRange(e,0,t)||this.prevMatchInRange(e,n,e.doc.length)}getReplacement(e){return this.spec.unquote(this.spec.replace).replace(/\$([$&\d+])/g,((t,n)=>"$"==n?"$":"&"==n?e.match[0]:"0"!=n&&+n=t)return null;r.push(n.value)}return r}highlight(e,t,n,r){let i=R(this.spec,e,Math.max(0,t-250),Math.min(n+250,e.doc.length));for(;!i.next().done;)r(i.value.from,i.value.to)}}const N=i.Pe.define(),L=i.Pe.define(),M=i.sU.define({create:e=>new Q(Z(e).create(),null),update(e,t){for(let n of t.effects)n.is(N)?e=new Q(n.value.create(),e.panel):n.is(L)&&(e=new Q(e.query,n.value?Y:null));return e},provide:e=>r.S7.from(e,(e=>e.panel))});class Q{constructor(e,t){this.query=e,this.panel=t}}const q=r.NZ.mark({class:"cm-searchMatch"}),W=r.NZ.mark({class:"cm-searchMatch cm-searchMatch-selected"}),B=r.Z9.fromClass(class{constructor(e){this.view=e,this.decorations=this.highlight(e.state.field(M))}update(e){let t=e.state.field(M);(t!=e.startState.field(M)||e.docChanged||e.selectionSet||e.viewportChanged)&&(this.decorations=this.highlight(t))}highlight(e){let{query:t,panel:n}=e;if(!n||!t.spec.valid)return r.NZ.none;let{view:o}=this,a=new i.vB;for(let r=0,i=o.visibleRanges,s=i.length;ri[r+1].from-500;)n=i[++r].to;t.highlight(o.state,e,n,((e,t)=>{let n=o.state.selection.ranges.some((n=>n.from==e&&n.to==t));a.add(e,t,n?W:q)}))}return a.finish()}},{decorations:e=>e.decorations});function F(e){return t=>{let n=t.state.field(M,!1);return n&&n.query.spec.valid?e(t,n):J(t)}}const U=F(((e,t)=>{let{query:n}=t,{to:r}=e.state.selection.main,o=n.nextMatch(e.state,r,r);if(!o)return!1;let a=i.OF.single(o.from,o.to),s=e.state.facet(E);return e.dispatch({selection:a,effects:[ae(e,o),s.scrollToMatch(a.main,e)],userEvent:"select.search"}),K(e),!0})),j=F(((e,t)=>{let{query:n}=t,{state:r}=e,{from:o}=r.selection.main,a=n.prevMatch(r,o,o);if(!a)return!1;let s=i.OF.single(a.from,a.to),l=e.state.facet(E);return e.dispatch({selection:s,effects:[ae(e,a),l.scrollToMatch(s.main,e)],userEvent:"select.search"}),K(e),!0})),V=F(((e,t)=>{let{query:n}=t,r=n.matchAll(e.state,1e3);return!(!r||!r.length)&&(e.dispatch({selection:i.OF.create(r.map((e=>i.OF.range(e.from,e.to)))),userEvent:"select.search.matches"}),!0)})),G=F(((e,t)=>{let{query:n}=t,{state:o}=e,{from:a,to:s}=o.selection.main;if(o.readOnly)return!1;let l=n.nextMatch(o,a,a);if(!l)return!1;let c,u,d=[],h=[];if(l.from==a&&l.to==s&&(u=o.toText(n.getReplacement(l)),d.push({from:l.from,to:l.to,insert:u}),l=n.nextMatch(o,l.from,l.to),h.push(r.Lz.announce.of(o.phrase("replaced match on line $",o.doc.lineAt(a).number)+"."))),l){let t=0==d.length||d[0].from>=l.to?0:l.to-l.from-u.length;c=i.OF.single(l.from-t,l.to-t),h.push(ae(e,l)),h.push(o.facet(E).scrollToMatch(c.main,e))}return e.dispatch({changes:d,selection:c,effects:h,userEvent:"input.replace"}),!0})),X=F(((e,t)=>{let{query:n}=t;if(e.state.readOnly)return!1;let i=n.matchAll(e.state,1e9).map((e=>{let{from:t,to:r}=e;return{from:t,to:r,insert:n.getReplacement(e)}}));if(!i.length)return!1;let o=e.state.phrase("replaced $ matches",i.length)+".";return e.dispatch({changes:i,effects:r.Lz.announce.of(o),userEvent:"input.replace.all"}),!0}));function Y(e){return e.state.facet(E).createPanel(e)}function Z(e,t){var n,r,i,o,a;let s=e.selection.main,l=s.empty||s.to>s.from+100?"":e.sliceDoc(s.from,s.to);if(t&&!l)return t;let c=e.facet(E);return new $({search:(null!==(n=null===t||void 0===t?void 0:t.literal)&&void 0!==n?n:c.literal)?l:l.replace(/\n/g,"\\n"),caseSensitive:null!==(r=null===t||void 0===t?void 0:t.caseSensitive)&&void 0!==r?r:c.caseSensitive,literal:null!==(i=null===t||void 0===t?void 0:t.literal)&&void 0!==i?i:c.literal,regexp:null!==(o=null===t||void 0===t?void 0:t.regexp)&&void 0!==o?o:c.regexp,wholeWord:null!==(a=null===t||void 0===t?void 0:t.wholeWord)&&void 0!==a?a:c.wholeWord})}function H(e){let t=(0,r.ld)(e,Y);return t&&t.dom.querySelector("[main-field]")}function K(e){let t=H(e);t&&t==e.root.activeElement&&t.select()}const J=e=>{let t=e.state.field(M,!1);if(t&&t.panel){let n=H(e);if(n&&n!=e.root.activeElement){let r=Z(e.state,t.query.spec);r.valid&&e.dispatch({effects:N.of(r)}),n.focus(),n.select()}}else e.dispatch({effects:[L.of(!0),t?N.of(Z(e.state,t.query.spec)):i.Pe.appendConfig.of(le)]});return!0},ee=e=>{let t=e.state.field(M,!1);if(!t||!t.panel)return!1;let n=(0,r.ld)(e,Y);return n&&n.dom.contains(e.root.activeElement)&&e.focus(),e.dispatch({effects:L.of(!1)}),!0},te=[{key:"Mod-f",run:J,scope:"editor search-panel"},{key:"F3",run:U,shift:j,scope:"editor search-panel",preventDefault:!0},{key:"Mod-g",run:U,shift:j,scope:"editor search-panel",preventDefault:!0},{key:"Escape",run:ee,scope:"editor search-panel"},{key:"Mod-Shift-l",run:e=>{let{state:t,dispatch:n}=e,r=t.selection;if(r.ranges.length>1||r.main.empty)return!1;let{from:o,to:a}=r.main,l=[],c=0;for(let u=new s(t.doc,t.sliceDoc(o,a));!u.next().done;){if(l.length>1e3)return!1;u.value.from==o&&(c=l.length),l.push(i.OF.range(u.value.from,u.value.to))}return n(t.update({selection:i.OF.create(l,c),userEvent:"select.search.matches"})),!0}},{key:"Mod-Alt-g",run:e=>{let t=(0,r.ld)(e,p);if(!t){let n=[g.of(!0)];null==e.state.field(b,!1)&&n.push(i.Pe.appendConfig.of([b,v])),e.dispatch({effects:n}),t=(0,r.ld)(e,p)}return t&&t.dom.querySelector("input").select(),!0}},{key:"Mod-d",run:e=>{let{state:t,dispatch:n}=e,{ranges:o}=t.selection;if(o.some((e=>e.from===e.to)))return(e=>{let{state:t,dispatch:n}=e,{selection:r}=t,o=i.OF.create(r.ranges.map((e=>t.wordAt(e.head)||i.OF.cursor(e.head))),r.mainIndex);return!o.eq(r)&&(n(t.update({selection:o})),!0)})({state:t,dispatch:n});let a=t.sliceDoc(o[0].from,o[0].to);if(t.selection.ranges.some((e=>t.sliceDoc(e.from,e.to)!=a)))return!1;let l=function(e,t){let{main:n,ranges:r}=e.selection,i=e.wordAt(n.head),o=i&&i.from==n.from&&i.to==n.to;for(let a=!1,l=new s(e.doc,t,r[r.length-1].to);;){if(l.next(),!l.done){if(a&&r.some((e=>e.from==l.value.from)))continue;if(o){let t=e.wordAt(l.value.from);if(!t||t.from!=l.value.from||t.to!=l.value.to)continue}return l.value}if(a)return null;l=new s(e.doc,t,0,Math.max(0,r[r.length-1].from-1)),a=!0}}(t,a);return!!l&&(n(t.update({selection:t.selection.addRange(i.OF.range(l.from,l.to),!1),effects:r.Lz.scrollIntoView(l.to)})),!0)},preventDefault:!0}];class ne{constructor(e){this.view=e;let t=this.query=e.state.field(M).query.spec;function n(e,t,n){return(0,o.A)("button",{class:"cm-button",name:e,onclick:t,type:"button"},n)}this.commit=this.commit.bind(this),this.searchField=(0,o.A)("input",{value:t.search,placeholder:re(e,"Find"),"aria-label":re(e,"Find"),class:"cm-textfield",name:"search",form:"","main-field":"true",onchange:this.commit,onkeyup:this.commit}),this.replaceField=(0,o.A)("input",{value:t.replace,placeholder:re(e,"Replace"),"aria-label":re(e,"Replace"),class:"cm-textfield",name:"replace",form:"",onchange:this.commit,onkeyup:this.commit}),this.caseField=(0,o.A)("input",{type:"checkbox",name:"case",form:"",checked:t.caseSensitive,onchange:this.commit}),this.reField=(0,o.A)("input",{type:"checkbox",name:"re",form:"",checked:t.regexp,onchange:this.commit}),this.wordField=(0,o.A)("input",{type:"checkbox",name:"word",form:"",checked:t.wholeWord,onchange:this.commit}),this.dom=(0,o.A)("div",{onkeydown:e=>this.keydown(e),class:"cm-search"},[this.searchField,n("next",(()=>U(e)),[re(e,"next")]),n("prev",(()=>j(e)),[re(e,"previous")]),n("select",(()=>V(e)),[re(e,"all")]),(0,o.A)("label",null,[this.caseField,re(e,"match case")]),(0,o.A)("label",null,[this.reField,re(e,"regexp")]),(0,o.A)("label",null,[this.wordField,re(e,"by word")]),...e.state.readOnly?[]:[(0,o.A)("br"),this.replaceField,n("replace",(()=>G(e)),[re(e,"replace")]),n("replaceAll",(()=>X(e)),[re(e,"replace all")])],(0,o.A)("button",{name:"close",onclick:()=>ee(e),"aria-label":re(e,"close"),type:"button"},["\xd7"])])}commit(){let e=new $({search:this.searchField.value,caseSensitive:this.caseField.checked,regexp:this.reField.checked,wholeWord:this.wordField.checked,replace:this.replaceField.value});e.eq(this.query)||(this.query=e,this.view.dispatch({effects:N.of(e)}))}keydown(e){(0,r.TS)(this.view,e,"search-panel")?e.preventDefault():13==e.keyCode&&e.target==this.searchField?(e.preventDefault(),(e.shiftKey?j:U)(this.view)):13==e.keyCode&&e.target==this.replaceField&&(e.preventDefault(),G(this.view))}update(e){for(let t of e.transactions)for(let e of t.effects)e.is(N)&&!e.value.eq(this.query)&&this.setQuery(e.value)}setQuery(e){this.query=e,this.searchField.value=e.search,this.replaceField.value=e.replace,this.caseField.checked=e.caseSensitive,this.reField.checked=e.regexp,this.wordField.checked=e.wholeWord}mount(){this.searchField.select()}get pos(){return 80}get top(){return this.view.state.facet(E).top}}function re(e,t){return e.state.phrase(t)}const ie=30,oe=/[\s\.,:;?!]/;function ae(e,t){let{from:n,to:i}=t,o=e.state.doc.lineAt(n),a=e.state.doc.lineAt(i).to,s=Math.max(o.from,n-ie),l=Math.min(a,i+ie),c=e.state.sliceDoc(s,l);if(s!=o.from)for(let r=0;rc.length-ie;r--)if(!oe.test(c[r-1])&&oe.test(c[r])){c=c.slice(0,r);break}return r.Lz.announce.of("".concat(e.state.phrase("current match"),". ").concat(c," ").concat(e.state.phrase("on line")," ").concat(o.number,"."))}const se=r.Lz.baseTheme({".cm-panel.cm-search":{padding:"2px 6px 4px",position:"relative","& [name=close]":{position:"absolute",top:"0",right:"4px",backgroundColor:"inherit",border:"none",font:"inherit",padding:0,margin:0},"& input, & button, & label":{margin:".2em .6em .2em 0"},"& input[type=checkbox]":{marginRight:".2em"},"& label":{fontSize:"80%",whiteSpace:"pre"}},"&light .cm-searchMatch":{backgroundColor:"#ffff0054"},"&dark .cm-searchMatch":{backgroundColor:"#00ffff8a"},"&light .cm-searchMatch-selected":{backgroundColor:"#ff6a0054"},"&dark .cm-searchMatch-selected":{backgroundColor:"#ff00ff8a"}}),le=[M,i.Nb.low(B),se]},8070:(e,t,n)=>{n.d(t,{$t:()=>Ee,DA:()=>me,EY:()=>r,FB:()=>Ae,Fh:()=>S,Gu:()=>E,Je:()=>xe,MK:()=>x,N1:()=>d,Nb:()=>K,OF:()=>N,Pe:()=>pe,Q6:()=>Ce,QR:()=>$e,UJ:()=>fe,VR:()=>$,YH:()=>he,ZX:()=>ge,iR:()=>T,kn:()=>Ve,om:()=>Ie,sU:()=>V,sj:()=>Q,vB:()=>De,vS:()=>w,xx:()=>ee,y$:()=>je,yn:()=>z,zK:()=>b});class r{lineAt(e){if(e<0||e>this.length)throw new RangeError("Invalid position ".concat(e," in document of length ").concat(this.length));return this.lineInner(e,!1,1,0)}line(e){if(e<1||e>this.lines)throw new RangeError("Invalid line number ".concat(e," in ").concat(this.lines,"-line document"));return this.lineInner(e,!0,1,0)}replace(e,t,n){[e,t]=h(this,e,t);let r=[];return this.decompose(0,e,r,2),n.length&&n.decompose(0,n.length,r,3),this.decompose(t,this.length,r,1),o.from(r,this.length-(t-e)+n.length)}append(e){return this.replace(this.length,this.length,e)}slice(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length;[e,t]=h(this,e,t);let n=[];return this.decompose(e,t,n,0),o.from(n,t-e)}eq(e){if(e==this)return!0;if(e.length!=this.length||e.lines!=this.lines)return!1;let t=this.scanIdentical(e,1),n=this.length-this.scanIdentical(e,-1),r=new l(this),i=new l(e);for(let o=t,a=t;;){if(r.next(o),i.next(o),o=0,r.lineBreak!=i.lineBreak||r.done!=i.done||r.value!=i.value)return!1;if(a+=r.value.length,r.done||a>=n)return!0}}iter(){return new l(this,arguments.length>0&&void 0!==arguments[0]?arguments[0]:1)}iterRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length;return new c(this,e,t)}iterLines(e,t){let n;if(null==e)n=this.iter();else{null==t&&(t=this.lines+1);let r=this.line(e).from;n=this.iterRange(r,Math.max(r,t==this.lines+1?this.length:t<=1?0:this.line(t-1).to))}return new u(n)}toString(){return this.sliceString(0)}toJSON(){let e=[];return this.flatten(e),e}constructor(){}static of(e){if(0==e.length)throw new RangeError("A document must have at least one line");return 1!=e.length||e[0]?e.length<=32?new i(e):o.from(i.split(e,[])):r.empty}}class i extends r{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(e){let t=-1;for(let n of e)t+=n.length+1;return t}(e);super(),this.text=e,this.length=t}get lines(){return this.text.length}get children(){return null}lineInner(e,t,n,r){for(let i=0;;i++){let o=this.text[i],a=r+o.length;if((t?n:a)>=e)return new d(r,a,n,o);r=a+1,n++}}decompose(e,t,n,r){let o=e<=0&&t>=this.length?this:new i(s(this.text,e,t),Math.min(t,this.length)-Math.max(0,e));if(1&r){let e=n.pop(),t=a(o.text,e.text.slice(),0,o.length);if(t.length<=32)n.push(new i(t,e.length+o.length));else{let e=t.length>>1;n.push(new i(t.slice(0,e)),new i(t.slice(e)))}}else n.push(o)}replace(e,t,n){if(!(n instanceof i))return super.replace(e,t,n);[e,t]=h(this,e,t);let r=a(this.text,a(n.text,s(this.text,0,e)),t),l=this.length+n.length-(t-e);return r.length<=32?new i(r,l):o.from(i.split(r,[]),l)}sliceString(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n";[e,t]=h(this,e,t);let r="";for(let i=0,o=0;i<=t&&oe&&o&&(r+=n),ei&&(r+=a.slice(Math.max(0,e-i),t-i)),i=s+1}return r}flatten(e){for(let t of this.text)e.push(t)}scanIdentical(){return 0}static split(e,t){let n=[],r=-1;for(let o of e)n.push(o),r+=o.length+1,32==n.length&&(t.push(new i(n,r)),n=[],r=-1);return r>-1&&t.push(new i(n,r)),t}}class o extends r{constructor(e,t){super(),this.children=e,this.length=t,this.lines=0;for(let n of e)this.lines+=n.lines}lineInner(e,t,n,r){for(let i=0;;i++){let o=this.children[i],a=r+o.length,s=n+o.lines-1;if((t?s:a)>=e)return o.lineInner(e,t,n,r);r=a+1,n=s+1}}decompose(e,t,n,r){for(let i=0,o=0;o<=t&&i=o){let i=r&((o<=e?1:0)|(s>=t?2:0));o>=e&&s<=t&&!i?n.push(a):a.decompose(e-o,t-o,n,i)}o=s+1}}replace(e,t,n){if([e,t]=h(this,e,t),n.lines=i&&t<=s){let l=a.replace(e-i,t-i,n),c=this.lines-a.lines+l.lines;if(l.lines>4&&l.lines>c>>6){let i=this.children.slice();return i[r]=l,new o(i,this.length-(t-e)+n.length)}return super.replace(i,s,l)}i=s+1}return super.replace(e,t,n)}sliceString(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.length,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"\n";[e,t]=h(this,e,t);let r="";for(let i=0,o=0;ie&&i&&(r+=n),eo&&(r+=a.sliceString(e-o,t-o,n)),o=s+1}return r}flatten(e){for(let t of this.children)t.flatten(e)}scanIdentical(e,t){if(!(e instanceof o))return 0;let n=0,[r,i,a,s]=t>0?[0,0,this.children.length,e.children.length]:[this.children.length-1,e.children.length-1,-1,-1];for(;;r+=t,i+=t){if(r==a||i==s)return n;let o=this.children[r],l=e.children[i];if(o!=l)return n+o.scanIdentical(l,t);n+=o.length+1}}static from(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e.reduce(((e,t)=>e+t.length+1),-1),n=0;for(let i of e)n+=i.lines;if(n<32){let n=[];for(let t of e)t.flatten(n);return new i(n,t)}let r=Math.max(32,n>>5),a=r<<1,s=r>>1,l=[],c=0,u=-1,d=[];function h(e){let t;if(e.lines>a&&e instanceof o)for(let n of e.children)h(n);else e.lines>s&&(c>s||!c)?(f(),l.push(e)):e instanceof i&&c&&(t=d[d.length-1])instanceof i&&e.lines+t.lines<=32?(c+=e.lines,u+=e.length+1,d[d.length-1]=new i(t.text.concat(e.text),t.length+1+e.length)):(c+e.lines>r&&f(),c+=e.lines,u+=e.length+1,d.push(e))}function f(){0!=c&&(l.push(1==d.length?d[0]:o.from(d,u)),u=-1,c=d.length=0)}for(let i of e)h(i);return f(),1==l.length?l[0]:new o(l,t)}}function a(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:1e9;for(let i=0,o=0,a=!0;o=n&&(l>r&&(s=s.slice(0,r-i)),i1&&void 0!==arguments[1]?arguments[1]:1;this.dir=t,this.done=!1,this.lineBreak=!1,this.value="",this.nodes=[e],this.offsets=[t>0?1:(e instanceof i?e.text.length:e.children.length)<<1]}nextInner(e,t){for(this.done=this.lineBreak=!1;;){let n=this.nodes.length-1,r=this.nodes[n],o=this.offsets[n],a=o>>1,s=r instanceof i?r.text.length:r.children.length;if(a==(t>0?s:0)){if(0==n)return this.done=!0,this.value="",this;t>0&&this.offsets[n-1]++,this.nodes.pop(),this.offsets.pop()}else if((1&o)==(t>0?0:1)){if(this.offsets[n]+=t,0==e)return this.lineBreak=!0,this.value="\n",this;e--}else if(r instanceof i){let i=r.text[a+(t<0?-1:0)];if(this.offsets[n]+=t,i.length>Math.max(0,e))return this.value=0==e?i:t>0?i.slice(e):i.slice(0,i.length-e),this;e-=i.length}else{let o=r.children[a+(t<0?-1:0)];e>o.length?(e-=o.length,this.offsets[n]+=t):(t<0&&this.offsets[n]--,this.nodes.push(o),this.offsets.push(t>0?1:(o instanceof i?o.text.length:o.children.length)<<1))}}}next(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e<0&&(this.nextInner(-e,-this.dir),e=this.value.length),this.nextInner(e,this.dir)}}class c{constructor(e,t,n){this.value="",this.done=!1,this.cursor=new l(e,t>n?-1:1),this.pos=t>n?e.length:0,this.from=Math.min(t,n),this.to=Math.max(t,n)}nextInner(e,t){if(t<0?this.pos<=this.from:this.pos>=this.to)return this.value="",this.done=!0,this;e+=Math.max(0,t<0?this.pos-this.to:this.from-this.pos);let n=t<0?this.pos-this.from:this.to-this.pos;e>n&&(e=n),n-=e;let{value:r}=this.cursor.next(e);return this.pos+=(r.length+e)*t,this.value=r.length<=n?r:t<0?r.slice(r.length-n):r.slice(0,n),this.done=!this.value,this}next(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return e<0?e=Math.max(e,this.from-this.pos):e>0&&(e=Math.min(e,this.to-this.pos)),this.nextInner(e,this.cursor.dir)}get lineBreak(){return this.cursor.lineBreak&&""!=this.value}}class u{constructor(e){this.inner=e,this.afterBreak=!0,this.value="",this.done=!1}next(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,{done:t,lineBreak:n,value:r}=this.inner.next(e);return t&&this.afterBreak?(this.value="",this.afterBreak=!1):t?(this.done=!0,this.value=""):n?this.afterBreak?this.value="":(this.afterBreak=!0,this.next()):(this.value=r,this.afterBreak=!1),this}get lineBreak(){return!1}}"undefined"!=typeof Symbol&&(r.prototype[Symbol.iterator]=function(){return this.iter()},l.prototype[Symbol.iterator]=c.prototype[Symbol.iterator]=u.prototype[Symbol.iterator]=function(){return this});class d{constructor(e,t,n,r){this.from=e,this.to=t,this.number=n,this.text=r}get length(){return this.to-this.from}}function h(e,t,n){return[t=Math.max(0,Math.min(e.length,t)),Math.max(t,Math.min(e.length,n))]}let f="lc,34,7n,7,7b,19,,,,2,,2,,,20,b,1c,l,g,,2t,7,2,6,2,2,,4,z,,u,r,2j,b,1m,9,9,,o,4,,9,,3,,5,17,3,3b,f,,w,1j,,,,4,8,4,,3,7,a,2,t,,1m,,,,2,4,8,,9,,a,2,q,,2,2,1l,,4,2,4,2,2,3,3,,u,2,3,,b,2,1l,,4,5,,2,4,,k,2,m,6,,,1m,,,2,,4,8,,7,3,a,2,u,,1n,,,,c,,9,,14,,3,,1l,3,5,3,,4,7,2,b,2,t,,1m,,2,,2,,3,,5,2,7,2,b,2,s,2,1l,2,,,2,4,8,,9,,a,2,t,,20,,4,,2,3,,,8,,29,,2,7,c,8,2q,,2,9,b,6,22,2,r,,,,,,1j,e,,5,,2,5,b,,10,9,,2u,4,,6,,2,2,2,p,2,4,3,g,4,d,,2,2,6,,f,,jj,3,qa,3,t,3,t,2,u,2,1s,2,,7,8,,2,b,9,,19,3,3b,2,y,,3a,3,4,2,9,,6,3,63,2,2,,1m,,,7,,,,,2,8,6,a,2,,1c,h,1r,4,1c,7,,,5,,14,9,c,2,w,4,2,2,,3,1k,,,2,3,,,3,1m,8,2,2,48,3,,d,,7,4,,6,,3,2,5i,1m,,5,ek,,5f,x,2da,3,3x,,2o,w,fe,6,2x,2,n9w,4,,a,w,2,28,2,7k,,3,,4,,p,2,5,,47,2,q,i,d,,12,8,p,b,1a,3,1c,,2,4,2,2,13,,1v,6,2,2,2,2,c,,8,,1b,,1f,,,3,2,2,5,2,,,16,2,8,,6m,,2,,4,,fn4,,kh,g,g,g,a6,2,gt,,6a,,45,5,1ae,3,,2,5,4,14,3,4,,4l,2,fx,4,ar,2,49,b,4w,,1i,f,1k,3,1d,4,2,2,1x,3,10,5,,8,1q,,c,2,1g,9,a,4,2,,2n,3,2,,,2,6,,4g,,3,8,l,2,1l,2,,,,,m,,e,7,3,5,5f,8,2,3,,,n,,29,,2,6,,,2,,,2,,2,6j,,2,4,6,2,,2,r,2,2d,8,2,,,2,2y,,,,2,6,,,2t,3,2,4,,5,77,9,,2,6t,,a,2,,,4,,40,4,2,2,4,,w,a,14,6,2,4,8,,9,6,2,3,1a,d,,2,ba,7,,6,,,2a,m,2,7,,2,,2,3e,6,3,,,2,,7,,,20,2,3,,,,9n,2,f0b,5,1n,7,t4,,1r,4,29,,f5k,2,43q,,,3,4,5,8,8,2,7,u,4,44,3,1iz,1j,4,1e,8,,e,,m,5,,f,11s,7,,h,2,7,,2,,5,79,7,c5,4,15s,7,31,7,240,5,gx7k,2o,3k,6o".split(",").map((e=>e?parseInt(e,36):1));for(let Xe=1;Xee)return f[t-1]<=e;return!1}function p(e){return e>=127462&&e<=127487}const g=8205;function b(e,t){return(!(arguments.length>2&&void 0!==arguments[2])||arguments[2]?v:y)(e,t,!(arguments.length>3&&void 0!==arguments[3])||arguments[3])}function v(e,t,n){if(t==e.length)return t;t&&k(e.charCodeAt(t))&&O(e.charCodeAt(t-1))&&t--;let r=w(e,t);for(t+=S(r);t=0&&p(w(e,r));)n++,r-=2;if(n%2==0)break;t+=2}}}return t}function y(e,t,n){for(;t>0;){let r=v(e,t-2,n);if(r=56320&&e<57344}function O(e){return e>=55296&&e<56320}function w(e,t){let n=e.charCodeAt(t);if(!O(n)||t+1==e.length)return n;let r=e.charCodeAt(t+1);return k(r)?r-56320+(n-55296<<10)+65536:n}function x(e){return e<=65535?String.fromCharCode(e):(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e)))}function S(e){return e<65536?1:2}const _=/\r\n?|\n/;var T=function(e){return e[e.Simple=0]="Simple",e[e.TrackDel=1]="TrackDel",e[e.TrackBefore=2]="TrackBefore",e[e.TrackAfter=3]="TrackAfter",e}(T||(T={}));class E{constructor(e){this.sections=e}get length(){let e=0;for(let t=0;t1&&void 0!==arguments[1]&&arguments[1])}get invertedDesc(){let e=[];for(let t=0;t1&&void 0!==arguments[1]&&arguments[1];return e.empty?this:R(this,e,t)}mapPos(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:T.Simple,r=0,i=0;for(let o=0;oe)return i+(e-r);i+=a}else{if(n!=T.Simple&&l>=e&&(n==T.TrackDel&&re||n==T.TrackBefore&&re))return null;if(l>e||l==e&&t<0&&!a)return e==r||t<0?i:i+s;i+=s}r=l}if(e>r)throw new RangeError("Position ".concat(e," is out of range for changeset of length ").concat(r));return i}touchesRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;for(let n=0,r=0;n=0&&r<=t&&i>=e)return!(rt)||"cover";r=i}return!1}toString(){let e="";for(let t=0;t=0?":"+r:"")}return e}toJSON(){return this.sections}static fromJSON(e){if(!Array.isArray(e)||e.length%2||e.some((e=>"number"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeDesc");return new E(e)}static create(e){return new E(e)}}class $ extends E{constructor(e,t){super(e),this.inserted=t}apply(e){if(this.length!=e.length)throw new RangeError("Applying change set to a document with the wrong length");return P(this,((t,n,r,i,o)=>e=e.replace(r,r+(n-t),o)),!1),e}mapDesc(e){return R(this,e,arguments.length>1&&void 0!==arguments[1]&&arguments[1],!0)}invert(e){let t=this.sections.slice(),n=[];for(let i=0,o=0;i=0){t[i]=s,t[i+1]=a;let l=i>>1;for(;n.length1&&void 0!==arguments[1]&&arguments[1];return e.empty?this:R(this,e,t,!0)}iterChanges(e){P(this,e,arguments.length>1&&void 0!==arguments[1]&&arguments[1])}get desc(){return E.create(this.sections)}filter(e){let t=[],n=[],r=[],i=new D(this);e:for(let o=0,a=0;;){let s=o==e.length?1e9:e[o++];for(;a0&&C(n,t,i.text),i.forward(e),a+=e}let l=e[o++];for(;a>1].toJSON()))}return e}static of(e,t,n){let i=[],o=[],a=0,s=null;function l(){if(!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&!i.length)return;as||e<0||s>t)throw new RangeError("Invalid change range ".concat(e," to ").concat(s," (in doc of length ").concat(t,")"));let d=u?"string"==typeof u?r.of(u.split(n||_)):u:r.empty,h=d.length;if(e==s&&0==h)return;ea&&A(i,e-a,-1),A(i,s-e,h),C(o,i,d),a=s}}(e),l(!s),s}static empty(e){return new $(e?[e,-1]:[],[])}static fromJSON(e){if(!Array.isArray(e))throw new RangeError("Invalid JSON representation of ChangeSet");let t=[],n=[];for(let i=0;it&&"string"!=typeof e)))throw new RangeError("Invalid JSON representation of ChangeSet");if(1==o.length)t.push(o[0],0);else{for(;n.length3&&void 0!==arguments[3]&&arguments[3];if(0==t&&n<=0)return;let i=e.length-2;i>=0&&n<=0&&n==e[i+1]?e[i]+=t:0==t&&0==e[i]?e[i+1]+=n:r?(e[i]+=t,e[i+1]+=n):e.push(t,n)}function C(e,t,n){if(0==n.length)return;let i=t.length-2>>1;if(i>1])),!(n||s==e.sections.length||e.sections[s+1]<0);)l=e.sections[s++],c=e.sections[s++];t(o,u,a,d,h),o=u,a=d}}}function R(e,t,n){let r=[],i=arguments.length>3&&void 0!==arguments[3]&&arguments[3]?[]:null,o=new D(e),a=new D(t);for(let s=-1;;)if(-1==o.ins&&-1==a.ins){let e=Math.min(o.len,a.len);A(r,e,-1),o.forward(e),a.forward(e)}else if(a.ins>=0&&(o.ins<0||s==o.i||0==o.off&&(a.len=0&&s=0)){if(o.done&&a.done)return i?$.createSet(r,i):E.create(r);throw new Error("Mismatched change set lengths")}{let e=0,t=o.len;for(;t;)if(-1==a.ins){let n=Math.min(t,a.len);e+=n,t-=n,a.forward(n)}else{if(!(0==a.ins&&a.len2&&void 0!==arguments[2]&&arguments[2]?[]:null,i=new D(e),o=new D(t);for(let a=!1;;){if(i.done&&o.done)return r?$.createSet(n,r):E.create(n);if(0==i.ins)A(n,i.len,0,a),i.next();else if(0!=o.len||o.done){if(i.done||o.done)throw new Error("Mismatched change set lengths");{let e=Math.min(i.len2,o.len),t=n.length;if(-1==i.ins){let t=-1==o.ins?-1:o.off?0:o.ins;A(n,e,t,a),r&&t&&C(r,n,o.text)}else-1==o.ins?(A(n,i.off?0:i.len,e,a),r&&C(r,n,i.textBit(e))):(A(n,i.off?0:i.len,o.off?0:o.ins,a),r&&!o.off&&C(r,n,o.text));a=(i.ins>e||o.ins>=0&&o.len>e)&&(a||n.length>t),i.forward2(e),o.forward(e)}}else A(n,0,o.ins,a),r&&C(r,n,o.text),o.next()}}class D{constructor(e){this.set=e,this.i=0,this.next()}next(){let{sections:e}=this.set;this.i>1;return t>=e.length?r.empty:e[t]}textBit(e){let{inserted:t}=this.set,n=this.i-2>>1;return n>=t.length&&!e?r.empty:t[n].slice(this.off,null==e?void 0:this.off+e)}forward(e){e==this.len?this.next():(this.len-=e,this.off+=e)}forward2(e){-1==this.ins?this.forward(e):e==this.ins?this.next():(this.ins-=e,this.off+=e)}}class z{constructor(e,t,n){this.from=e,this.to=t,this.flags=n}get anchor(){return 32&this.flags?this.to:this.from}get head(){return 32&this.flags?this.from:this.to}get empty(){return this.from==this.to}get assoc(){return 8&this.flags?-1:16&this.flags?1:0}get bidiLevel(){let e=7&this.flags;return 7==e?null:e}get goalColumn(){let e=this.flags>>6;return 16777215==e?void 0:e}map(e){let t,n,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return this.empty?t=n=e.mapPos(this.from,r):(t=e.mapPos(this.from,1),n=e.mapPos(this.to,-1)),t==this.from&&n==this.to?this:new z(t,n,this.flags)}extend(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(e<=this.anchor&&t>=this.anchor)return N.range(e,t);let n=Math.abs(e-this.anchor)>Math.abs(t-this.anchor)?e:t;return N.range(this.anchor,n)}eq(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return this.anchor==e.anchor&&this.head==e.head&&(!t||!this.empty||this.assoc==e.assoc)}toJSON(){return{anchor:this.anchor,head:this.head}}static fromJSON(e){if(!e||"number"!=typeof e.anchor||"number"!=typeof e.head)throw new RangeError("Invalid JSON representation for SelectionRange");return N.range(e.anchor,e.head)}static create(e,t,n){return new z(e,t,n)}}class N{constructor(e,t){this.ranges=e,this.mainIndex=t}map(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1;return e.empty?this:N.create(this.ranges.map((n=>n.map(e,t))),this.mainIndex)}eq(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(this.ranges.length!=e.ranges.length||this.mainIndex!=e.mainIndex)return!1;for(let n=0;n1&&void 0!==arguments[1])||arguments[1];return N.create([e].concat(this.ranges),t?0:this.mainIndex+1)}replaceRange(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.mainIndex,n=this.ranges.slice();return n[t]=e,N.create(n,this.mainIndex)}toJSON(){return{ranges:this.ranges.map((e=>e.toJSON())),main:this.mainIndex}}static fromJSON(e){if(!e||!Array.isArray(e.ranges)||"number"!=typeof e.main||e.main>=e.ranges.length)throw new RangeError("Invalid JSON representation for EditorSelection");return new N(e.ranges.map((e=>z.fromJSON(e))),e.main)}static single(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return new N([N.range(e,t)],0)}static create(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;if(0==e.length)throw new RangeError("A selection needs at least one range");for(let n=0,r=0;r1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0;return z.create(e,e,(0==t?0:t<0?8:16)|(null==n?7:Math.min(6,n))|(null!==r&&void 0!==r?r:16777215)<<6)}static range(e,t,n,r){let i=(null!==n&&void 0!==n?n:16777215)<<6|(null==r?7:Math.min(6,r));return te?8:0)|i)}static normalized(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=e[t];e.sort(((e,t)=>e.from-t.from)),t=e.indexOf(n);for(let r=1;rn.head?N.range(a,o):N.range(o,a))}}return new N(e,t)}}function L(e,t){for(let n of e.ranges)if(n.to>t)throw new RangeError("Selection points outside of document")}let M=0;class Q{constructor(e,t,n,r,i){this.combine=e,this.compareInput=t,this.compare=n,this.isStatic=r,this.id=M++,this.default=e([]),this.extensions="function"==typeof i?i(this):i}get reader(){return this}static define(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new Q(e.combine||(e=>e),e.compareInput||((e,t)=>e===t),e.compare||(e.combine?(e,t)=>e===t:q),!!e.static,e.enables)}of(e){return new W([],this,0,e)}compute(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new W(e,this,1,t)}computeN(e,t){if(this.isStatic)throw new Error("Can't compute a static facet");return new W(e,this,2,t)}from(e,t){return t||(t=e=>e),this.compute([e],(n=>t(n.field(e))))}}function q(e,t){return e==t||e.length==t.length&&e.every(((e,n)=>e===t[n]))}class W{constructor(e,t,n,r){this.dependencies=e,this.facet=t,this.type=n,this.value=r,this.id=M++}dynamicSlot(e){var t;let n=this.value,r=this.facet.compareInput,i=this.id,o=e[i]>>1,a=2==this.type,s=!1,l=!1,c=[];for(let u of this.dependencies)"doc"==u?s=!0:"selection"==u?l=!0:0==(1&(null!==(t=e[u.id])&&void 0!==t?t:1))&&c.push(e[u.id]);return{create:e=>(e.values[o]=n(e),1),update(e,t){if(s&&t.docChanged||l&&(t.docChanged||t.selection)||F(e,c)){let t=n(e);if(a?!B(t,e.values[o],r):!r(t,e.values[o]))return e.values[o]=t,1}return 0},reconfigure:(e,t)=>{let s,l=t.config.address[i];if(null!=l){let i=ie(t,l);if(this.dependencies.every((n=>n instanceof Q?t.facet(n)===e.facet(n):!(n instanceof V)||t.field(n,!1)==e.field(n,!1)))||(a?B(s=n(e),i,r):r(s=n(e),i)))return e.values[o]=i,0}else s=n(e);return e.values[o]=s,1}}}}function B(e,t,n){if(e.length!=t.length)return!1;for(let r=0;re[t.id])),i=n.map((e=>e.type)),o=r.filter((e=>!(1&e))),a=e[t.id]>>1;function s(e){let n=[];for(let t=0;te===t),e);return e.provide&&(t.provides=e.provide(t)),t}create(e){let t=e.facet(j).find((e=>e.field==this));return((null===t||void 0===t?void 0:t.create)||this.createF)(e)}slot(e){let t=e[this.id]>>1;return{create:e=>(e.values[t]=this.create(e),1),update:(e,n)=>{let r=e.values[t],i=this.updateF(r,n);return this.compareF(r,i)?0:(e.values[t]=i,1)},reconfigure:(e,n)=>null!=n.config.address[this.id]?(e.values[t]=n.field(this),0):(e.values[t]=this.create(e),1)}}init(e){return[this,j.of({field:this,create:e})]}get extension(){return this}}const G=4,X=3,Y=2,Z=1;function H(e){return t=>new J(t,e)}const K={highest:H(0),high:H(Z),default:H(Y),low:H(X),lowest:H(G)};class J{constructor(e,t){this.inner=e,this.prec=t}}class ee{of(e){return new te(this,e)}reconfigure(e){return ee.reconfigure.of({compartment:this,extension:e})}get(e){return e.config.compartments.get(this)}}class te{constructor(e,t){this.compartment=e,this.inner=t}}class ne{constructor(e,t,n,r,i,o){for(this.base=e,this.compartments=t,this.dynamicSlots=n,this.address=r,this.staticValues=i,this.facets=o,this.statusTemplate=[];this.statusTemplate.length>1]}static resolve(e,t,n){let r=[],i=Object.create(null),o=new Map;for(let d of function(e,t,n){let r=[[],[],[],[],[]],i=new Map;function o(e,a){let s=i.get(e);if(null!=s){if(s<=a)return;let t=r[s].indexOf(e);t>-1&&r[s].splice(t,1),e instanceof te&&n.delete(e.compartment)}if(i.set(e,a),Array.isArray(e))for(let t of e)o(t,a);else if(e instanceof te){if(n.has(e.compartment))throw new RangeError("Duplicate use of compartment in extensions");let r=t.get(e.compartment)||e.inner;n.set(e.compartment,r),o(r,a)}else if(e instanceof J)o(e.inner,e.prec);else if(e instanceof V)r[a].push(e),e.provides&&o(e.provides,a);else if(e instanceof W)r[a].push(e),e.facet.extensions&&o(e.facet.extensions,Y);else{let t=e.extension;if(!t)throw new Error("Unrecognized extension value in extension set (".concat(e,"). This sometimes happens because multiple instances of @codemirror/state are loaded, breaking instanceof checks."));o(t,a)}}return o(e,Y),r.reduce(((e,t)=>e.concat(t)))}(e,t,o))d instanceof V?r.push(d):(i[d.facet.id]||(i[d.facet.id]=[])).push(d);let a=Object.create(null),s=[],l=[];for(let d of r)a[d.id]=l.length<<1,l.push((e=>d.slot(e)));let c=null===n||void 0===n?void 0:n.config.facets;for(let d in i){let e=i[d],t=e[0].facet,r=c&&c[d]||[];if(e.every((e=>0==e.type)))if(a[t.id]=s.length<<1|1,q(r,e))s.push(n.facet(t));else{let r=t.combine(e.map((e=>e.value)));s.push(n&&t.compare(r,n.facet(t))?n.facet(t):r)}else{for(let t of e)0==t.type?(a[t.id]=s.length<<1|1,s.push(t.value)):(a[t.id]=l.length<<1,l.push((e=>t.dynamicSlot(e))));a[t.id]=l.length<<1,l.push((n=>U(n,t,e)))}}let u=l.map((e=>e(a)));return new ne(e,o,u,a,s,i)}}function re(e,t){if(1&t)return 2;let n=t>>1,r=e.status[n];if(4==r)throw new Error("Cyclic dependency between fields and/or facets");if(2&r)return r;e.status[n]=4;let i=e.computeSlot(e,e.config.dynamicSlots[n]);return e.status[n]=2|i}function ie(e,t){return 1&t?e.config.staticValues[t>>1]:e.values[t>>1]}const oe=Q.define(),ae=Q.define({combine:e=>e.some((e=>e)),static:!0}),se=Q.define({combine:e=>e.length?e[0]:void 0,static:!0}),le=Q.define(),ce=Q.define(),ue=Q.define(),de=Q.define({combine:e=>!!e.length&&e[0]});class he{constructor(e,t){this.type=e,this.value=t}static define(){return new fe}}class fe{of(e){return new he(this,e)}}class me{constructor(e){this.map=e}of(e){return new pe(this,e)}}class pe{constructor(e,t){this.type=e,this.value=t}map(e){let t=this.type.map(this.value,e);return void 0===t?void 0:t==this.value?this:new pe(this.type,t)}is(e){return this.type==e}static define(){return new me((arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}).map||(e=>e))}static mapEffects(e,t){if(!e.length)return e;let n=[];for(let r of e){let e=r.map(t);e&&n.push(e)}return n}}pe.reconfigure=pe.define(),pe.appendConfig=pe.define();class ge{constructor(e,t,n,r,i,o){this.startState=e,this.changes=t,this.selection=n,this.effects=r,this.annotations=i,this.scrollIntoView=o,this._doc=null,this._state=null,n&&L(n,t.newLength),i.some((e=>e.type==ge.time))||(this.annotations=i.concat(ge.time.of(Date.now())))}static create(e,t,n,r,i,o){return new ge(e,t,n,r,i,o)}get newDoc(){return this._doc||(this._doc=this.changes.apply(this.startState.doc))}get newSelection(){return this.selection||this.startState.selection.map(this.changes)}get state(){return this._state||this.startState.applyTransaction(this),this._state}annotation(e){for(let t of this.annotations)if(t.type==e)return t.value}get docChanged(){return!this.changes.empty}get reconfigured(){return this.startState.config!=this.state.config}isUserEvent(e){let t=this.annotation(ge.userEvent);return!(!t||!(t==e||t.length>e.length&&t.slice(0,e.length)==e&&"."==t[e.length]))}}function be(e,t){let n=[];for(let r=0,i=0;;){let o,a;if(r=e[r]))o=e[r++],a=e[r++];else{if(!(i=0;i--){let o=n[i](e);o&&Object.keys(o).length&&(r=ve(r,ye(t,o,e.changes.newLength),!0))}return r==e?e:ge.create(t,e.changes,e.selection,r.effects,r.annotations,r.scrollIntoView)}(n?function(e){let t=e.startState,n=!0;for(let i of t.facet(le)){let t=i(e);if(!1===t){n=!1;break}Array.isArray(t)&&(n=!0===n?t:be(n,t))}if(!0!==n){let r,i;if(!1===n)i=e.changes.invertedDesc,r=$.empty(t.doc.length);else{let t=e.changes.filter(n);r=t.changes,i=t.filtered.mapDesc(t.changes).invertedDesc}e=ge.create(t,r,e.selection&&e.selection.map(i),pe.mapEffects(e.effects,i),e.annotations,e.scrollIntoView)}let r=t.facet(ce);for(let i=r.length-1;i>=0;i--){let n=r[i](e);e=n instanceof ge?n:Array.isArray(n)&&1==n.length&&n[0]instanceof ge?n[0]:ke(t,we(n),!1)}return e}(i):i)}ge.time=he.define(),ge.userEvent=he.define(),ge.addToHistory=he.define(),ge.remote=he.define();const Oe=[];function we(e){return null==e?Oe:Array.isArray(e)?e:[e]}var xe=function(e){return e[e.Word=0]="Word",e[e.Space=1]="Space",e[e.Other=2]="Other",e}(xe||(xe={}));const Se=/[\u00df\u0587\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/;let _e;try{_e=new RegExp("[\\p{Alphabetic}\\p{Number}_]","u")}catch(Ge){}function Te(e){return t=>{if(!/\S/.test(t))return xe.Space;if(function(e){if(_e)return _e.test(e);for(let t=0;t"\x80"&&(n.toUpperCase()!=n.toLowerCase()||Se.test(n)))return!0}return!1}(t))return xe.Word;for(let n=0;n-1)return xe.Word;return xe.Other}}class Ee{constructor(e,t,n,r,i,o){this.config=e,this.doc=t,this.selection=n,this.values=r,this.status=e.statusTemplate.slice(),this.computeSlot=i,o&&(o._state=this);for(let a=0;a1&&void 0!==arguments[1])||arguments[1],n=this.config.address[e.id];if(null!=n)return re(this,n),ie(this,n);if(t)throw new RangeError("Field is not present in this state")}update(){for(var e=arguments.length,t=new Array(e),n=0;ni.set(t,e))),n=null),i.set(a.value.compartment,a.value.extension)):a.is(pe.reconfigure)?(n=null,r=a.value):a.is(pe.appendConfig)&&(n=null,r=we(r).concat(a.value));if(n)t=e.startState.values.slice();else{n=ne.resolve(r,i,this),t=new Ee(n,this.doc,this.selection,n.dynamicSlots.map((()=>null)),((e,t)=>t.reconfigure(e,this)),null).values}let o=e.startState.facet(ae)?e.newSelection:e.newSelection.asSingle();new Ee(n,e.newDoc,o,t,((t,n)=>n.update(t,e)),e)}replaceSelection(e){return"string"==typeof e&&(e=this.toText(e)),this.changeByRange((t=>({changes:{from:t.from,to:t.to,insert:e},range:N.cursor(t.from+e.length)})))}changeByRange(e){let t=this.selection,n=e(t.ranges[0]),r=this.changes(n.changes),i=[n.range],o=we(n.effects);for(let a=1;a0&&void 0!==arguments[0]?arguments[0]:[];return e instanceof $?e:$.of(e,this.doc.length,this.facet(Ee.lineSeparator))}toText(e){return r.of(e.split(this.facet(Ee.lineSeparator)||_))}sliceDoc(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.doc.length;return this.doc.sliceString(e,t,this.lineBreak)}facet(e){let t=this.config.address[e.id];return null==t?e.default:(re(this,t),ie(this,t))}toJSON(e){let t={doc:this.sliceDoc(),selection:this.selection.toJSON()};if(e)for(let n in e){let r=e[n];r instanceof V&&null!=this.config.address[r.id]&&(t[n]=r.spec.toJSON(this.field(e[n]),this))}return t}static fromJSON(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;if(!e||"string"!=typeof e.doc)throw new RangeError("Invalid JSON representation for EditorState");let r=[];if(n)for(let i in n)if(Object.prototype.hasOwnProperty.call(e,i)){let t=n[i],o=e[i];r.push(t.init((e=>t.spec.fromJSON(o,e))))}return Ee.create({doc:e.doc,selection:N.fromJSON(e.selection),extensions:t.extensions?r.concat([t.extensions]):r})}static create(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=ne.resolve(e.extensions||[],new Map),n=e.doc instanceof r?e.doc:r.of((e.doc||"").split(t.staticFacet(Ee.lineSeparator)||_)),i=e.selection?e.selection instanceof N?e.selection:N.single(e.selection.anchor,e.selection.head):N.single(0);return L(i,n.length),t.staticFacet(ae)||(i=i.asSingle()),new Ee(t,n,i,t.dynamicSlots.map((()=>null)),((e,t)=>t.create(e)),null)}get tabSize(){return this.facet(Ee.tabSize)}get lineBreak(){return this.facet(Ee.lineSeparator)||"\n"}get readOnly(){return this.facet(de)}phrase(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r{if("$"==t)return"$";let r=+(t||1);return!r||r>n.length?e:n[r-1]}))),e}languageDataAt(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=[];for(let i of this.facet(oe))for(let o of i(this,t,n))Object.prototype.hasOwnProperty.call(o,e)&&r.push(o[e]);return r}charCategorizer(e){return Te(this.languageDataAt("wordChars",e).join(""))}wordAt(e){let{text:t,from:n,length:r}=this.doc.lineAt(e),i=this.charCategorizer(e),o=e-n,a=e-n;for(;o>0;){let e=b(t,o,!1);if(i(t.slice(e,o))!=xe.Word)break;o=e}for(;a2&&void 0!==arguments[2]?arguments[2]:{},r={};for(let i of e)for(let e of Object.keys(i)){let t=i[e],o=r[e];if(void 0===o)r[e]=t;else if(o===t||void 0===t);else{if(!Object.hasOwnProperty.call(n,e))throw new Error("Config merge conflict for field "+e);r[e]=n[e](o,t)}}for(let i in t)void 0===r[i]&&(r[i]=t[i]);return r}Ee.allowMultipleSelections=ae,Ee.tabSize=Q.define({combine:e=>e.length?e[0]:4}),Ee.lineSeparator=se,Ee.readOnly=de,Ee.phrases=Q.define({compare(e,t){let n=Object.keys(e),r=Object.keys(t);return n.length==r.length&&n.every((n=>e[n]==t[n]))}}),Ee.languageData=oe,Ee.changeFilter=le,Ee.transactionFilter=ce,Ee.transactionExtender=ue,ee.reconfigure=pe.define();class Ae{eq(e){return this==e}range(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;return Ce.create(e,t,this)}}Ae.prototype.startSide=Ae.prototype.endSide=0,Ae.prototype.point=!1,Ae.prototype.mapMode=T.TrackDel;class Ce{constructor(e,t,n){this.from=e,this.to=t,this.value=n}static create(e,t,n){return new Ce(e,t,n)}}function Pe(e,t){return e.from-t.from||e.value.startSide-t.value.startSide}class Re{constructor(e,t,n,r){this.from=e,this.to=t,this.value=n,this.maxPoint=r}get length(){return this.to[this.to.length-1]}findIndex(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=n?this.to:this.from;for(let o=r,a=i.length;;){if(o==a)return o;let r=o+a>>1,s=i[r]-e||(n?this.value[r].endSide:this.value[r].startSide)-t;if(r==o)return s>=0?o:a;s>=0?a=r:o=r+1}}between(e,t,n,r){for(let i=this.findIndex(t,-1e9,!0),o=this.findIndex(n,1e9,!1,i);ic||l==c&&u.startSide>0&&u.endSide<=0)continue;(c-l||u.endSide-u.startSide)<0||(o<0&&(o=l),u.point&&(a=Math.max(a,c-l)),n.push(u),r.push(l-o),i.push(c-o))}return{mapped:n.length?new Re(r,i,n,a):null,pos:o}}}class Ie{constructor(e,t,n,r){this.chunkPos=e,this.chunk=t,this.nextLayer=n,this.maxPoint=r}static create(e,t,n,r){return new Ie(e,t,n,r)}get length(){let e=this.chunk.length-1;return e<0?0:Math.max(this.chunkEnd(e),this.nextLayer.length)}get size(){if(this.isEmpty)return 0;let e=this.nextLayer.size;for(let t of this.chunk)e+=t.value.length;return e}chunkEnd(e){return this.chunkPos[e]+this.chunk[e].length}update(e){let{add:t=[],sort:n=!1,filterFrom:r=0,filterTo:i=this.length}=e,o=e.filter;if(0==t.length&&!o)return this;if(n&&(t=t.slice().sort(Pe)),this.isEmpty)return t.length?Ie.of(t):this;let a=new Ne(this,null,-1).goto(0),s=0,l=[],c=new De;for(;a.value||s=0){let e=t[s++];c.addInner(e.from,e.to,e.value)||l.push(e)}else 1==a.rangeIndex&&a.chunkIndexthis.chunkEnd(a.chunkIndex)||ia.to||i=i&&e<=i+o.length&&!1===o.between(i,e-i,t-i,n))return}this.nextLayer.between(e,t,n)}}iter(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;return Le.from([this]).goto(e)}get isEmpty(){return this.nextLayer==this}static iter(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return Le.from(e).goto(t)}static compare(e,t,n,r){let i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1,o=e.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i)),a=t.filter((e=>e.maxPoint>0||!e.isEmpty&&e.maxPoint>=i)),s=ze(o,a,n),l=new Qe(o,s,i),c=new Qe(a,s,i);n.iterGaps(((e,t,n)=>qe(l,e,c,t,n,r))),n.empty&&0==n.length&&qe(l,0,c,0,0,r)}static eq(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=arguments.length>3?arguments[3]:void 0;null==r&&(r=999999999);let i=e.filter((e=>!e.isEmpty&&t.indexOf(e)<0)),o=t.filter((t=>!t.isEmpty&&e.indexOf(t)<0));if(i.length!=o.length)return!1;if(!i.length)return!0;let a=ze(i,o),s=new Qe(i,a,0).goto(n),l=new Qe(o,a,0).goto(n);for(;;){if(s.to!=l.to||!We(s.active,l.active)||s.point&&(!l.point||!s.point.eq(l.point)))return!1;if(s.to>r)return!0;s.next(),l.next()}}static spans(e,t,n,r){let i=new Qe(e,null,arguments.length>4&&void 0!==arguments[4]?arguments[4]:-1).goto(t),o=t,a=i.openStart;for(;;){let e=Math.min(i.to,n);if(i.point){let n=i.activeForPoint(i.to),s=i.pointFromo&&(r.span(o,e,i.active,a),a=i.openEnd(e));if(i.to>n)return a+(i.point&&i.to>n?1:0);o=i.to,i.next()}}static of(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],n=new De;for(let r of e instanceof Ce?[e]:t?function(e){if(e.length>1)for(let t=e[0],n=1;n0)return e.slice().sort(Pe);t=r}return e}(e):e)n.add(r.from,r.to,r.value);return n.finish()}static join(e){if(!e.length)return Ie.empty;let t=e[e.length-1];for(let n=e.length-2;n>=0;n--)for(let r=e[n];r!=Ie.empty;r=r.nextLayer)t=new Ie(r.chunkPos,r.chunk,t,Math.max(r.maxPoint,t.maxPoint));return t}}Ie.empty=new Ie([],[],null,-1),Ie.empty.nextLayer=Ie.empty;class De{finishChunk(e){this.chunks.push(new Re(this.from,this.to,this.value,this.maxPoint)),this.chunkPos.push(this.chunkStart),this.chunkStart=-1,this.setMaxPoint=Math.max(this.setMaxPoint,this.maxPoint),this.maxPoint=-1,e&&(this.from=[],this.to=[],this.value=[])}constructor(){this.chunks=[],this.chunkPos=[],this.chunkStart=-1,this.last=null,this.lastFrom=-1e9,this.lastTo=-1e9,this.from=[],this.to=[],this.value=[],this.maxPoint=-1,this.setMaxPoint=-1,this.nextLayer=null}add(e,t,n){this.addInner(e,t,n)||(this.nextLayer||(this.nextLayer=new De)).add(e,t,n)}addInner(e,t,n){let r=e-this.lastTo||n.startSide-this.last.endSide;if(r<=0&&(e-this.lastFrom||n.startSide-this.last.startSide)<0)throw new Error("Ranges must be added sorted by `from` position and `startSide`");return!(r<0)&&(250==this.from.length&&this.finishChunk(!0),this.chunkStart<0&&(this.chunkStart=e),this.from.push(e-this.chunkStart),this.to.push(t-this.chunkStart),this.last=n,this.lastFrom=e,this.lastTo=t,this.value.push(n),n.point&&(this.maxPoint=Math.max(this.maxPoint,t-e)),!0)}addChunk(e,t){if((e-this.lastTo||t.value[0].startSide-this.last.endSide)<0)return!1;this.from.length&&this.finishChunk(!0),this.setMaxPoint=Math.max(this.setMaxPoint,t.maxPoint),this.chunks.push(t),this.chunkPos.push(e);let n=t.value.length-1;return this.last=t.value[n],this.lastFrom=t.from[n]+e,this.lastTo=t.to[n]+e,!0}finish(){return this.finishInner(Ie.empty)}finishInner(e){if(this.from.length&&this.finishChunk(!1),0==this.chunks.length)return e;let t=Ie.create(this.chunkPos,this.chunks,this.nextLayer?this.nextLayer.finishInner(e):e,this.setMaxPoint);return this.from=null,t}}function ze(e,t,n){let r=new Map;for(let o of e)for(let e=0;e3&&void 0!==arguments[3]?arguments[3]:0;this.layer=e,this.skip=t,this.minPoint=n,this.rank=r}get startSide(){return this.value?this.value.startSide:0}get endSide(){return this.value?this.value.endSide:0}goto(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;return this.chunkIndex=this.rangeIndex=0,this.gotoInner(e,t,!1),this}gotoInner(e,t,n){for(;this.chunkIndex=this.minPoint)break}}}setRangeIndex(e){if(e==this.layer.chunk[this.chunkIndex].value.length){if(this.chunkIndex++,this.skip)for(;this.chunkIndex1&&void 0!==arguments[1]?arguments[1]:null,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:-1,r=[];for(let i=0;i=n&&r.push(new Ne(o,t,n,i));return 1==r.length?r[0]:new Le(r)}get startSide(){return this.value?this.value.startSide:0}goto(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;for(let n of this.heap)n.goto(e,t);for(let n=this.heap.length>>1;n>=0;n--)Me(this.heap,n);return this.next(),this}forward(e,t){for(let n of this.heap)n.forward(e,t);for(let n=this.heap.length>>1;n>=0;n--)Me(this.heap,n);(this.to-e||this.value.endSide-t)<0&&this.next()}next(){if(0==this.heap.length)this.from=this.to=1e9,this.value=null,this.rank=-1;else{let e=this.heap[0];this.from=e.from,this.to=e.to,this.value=e.value,this.rank=e.rank,e.value&&e.next(),Me(this.heap,0)}}}function Me(e,t){for(let n=e[t];;){let r=1+(t<<1);if(r>=e.length)break;let i=e[r];if(r+1=0&&(i=e[r+1],r++),n.compare(i)<0)break;e[r]=n,e[t]=i,t=r}}class Qe{constructor(e,t,n){this.minPoint=n,this.active=[],this.activeTo=[],this.activeRank=[],this.minActive=-1,this.point=null,this.pointFrom=0,this.pointRank=0,this.to=-1e9,this.endSide=0,this.openStart=-1,this.cursor=Le.from(e,t,n)}goto(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:-1e9;return this.cursor.goto(e,t),this.active.length=this.activeTo.length=this.activeRank.length=0,this.minActive=-1,this.to=e,this.endSide=t,this.openStart=-1,this.next(),this}forward(e,t){for(;this.minActive>-1&&(this.activeTo[this.minActive]-e||this.active[this.minActive].endSide-t)<0;)this.removeActive(this.minActive);this.cursor.forward(e,t)}removeActive(e){Be(this.active,e),Be(this.activeTo,e),Be(this.activeRank,e),this.minActive=Ue(this.active,this.activeTo)}addActive(e){let t=0,{value:n,to:r,rank:i}=this.cursor;for(;t0;)t++;Fe(this.active,t,n),Fe(this.activeTo,t,r),Fe(this.activeRank,t,i),e&&Fe(e,t,this.cursor.from),this.minActive=Ue(this.active,this.activeTo)}next(){let e=this.to,t=this.point;this.point=null;let n=this.openStart<0?[]:null;for(;;){let r=this.minActive;if(r>-1&&(this.activeTo[r]-this.cursor.from||this.active[r].endSide-this.cursor.startSide)<0){if(this.activeTo[r]>e){this.to=this.activeTo[r],this.endSide=this.active[r].endSide;break}this.removeActive(r),n&&Be(n,r)}else{if(!this.cursor.value){this.to=this.endSide=1e9;break}if(this.cursor.from>e){this.to=this.cursor.from,this.endSide=this.cursor.startSide;break}{let e=this.cursor.value;if(e.point){if(!(t&&this.cursor.to==this.to&&this.cursor.from=0&&n[t]=0&&!(this.activeRank[n]e||this.activeTo[n]==e&&this.active[n].endSide>=this.point.endSide)&&t.push(this.active[n]);return t.reverse()}openEnd(e){let t=0;for(let n=this.activeTo.length-1;n>=0&&this.activeTo[n]>e;n--)t++;return t}}function qe(e,t,n,r,i,o){e.goto(t),n.goto(r);let a=r+i,s=r,l=r-t;for(;;){let t=e.to+l-n.to||e.endSide-n.endSide,r=t<0?e.to+l:n.to,i=Math.min(r,a);if(e.point||n.point?e.point&&n.point&&(e.point==n.point||e.point.eq(n.point))&&We(e.activeForPoint(e.to),n.activeForPoint(n.to))||o.comparePoint(s,i,e.point,n.point):i>s&&!We(e.active,n.active)&&o.compareRange(s,i,e.active,n.active),r>a)break;s=r,t<=0&&e.next(),t>=0&&n.next()}}function We(e,t){if(e.length!=t.length)return!1;for(let n=0;n=t;r--)e[r+1]=e[r];e[t]=n}function Ue(e,t){let n=-1,r=1e9;for(let i=0;i2&&void 0!==arguments[2]?arguments[2]:e.length,r=0;for(let i=0;i=t)return i;if(i==e.length)break;o+=9==e.charCodeAt(i)?n-o%n:1,i=b(e,i)}return!0===r?-1:e.length}},13884:(e,t,n)=>{n.d(t,{bM:()=>_,kS:()=>S,y:()=>x,yW:()=>w});var r=n(67538),i=n(4859),o=n(1345);const a="#e5c07b",s="#e06c75",l="#56b6c2",c="#ffffff",u="#abb2bf",d="#7d8799",h="#61afef",f="#98c379",m="#d19a66",p="#c678dd",g="#21252b",b="#2c313a",v="#282c34",y="#353a42",k="#3E4451",O="#528bff",w={chalky:a,coral:s,cyan:l,invalid:c,ivory:u,stone:d,malibu:h,sage:f,whiskey:m,violet:p,darkBackground:g,highlightBackground:b,background:v,tooltipBackground:y,selection:k,cursor:O},x=r.Lz.theme({"&":{color:u,backgroundColor:v},".cm-content":{caretColor:O},".cm-cursor, .cm-dropCursor":{borderLeftColor:O},"&.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground, .cm-selectionBackground, .cm-content ::selection":{backgroundColor:k},".cm-panels":{backgroundColor:g,color:u},".cm-panels.cm-panels-top":{borderBottom:"2px solid black"},".cm-panels.cm-panels-bottom":{borderTop:"2px solid black"},".cm-searchMatch":{backgroundColor:"#72a1ff59",outline:"1px solid #457dff"},".cm-searchMatch.cm-searchMatch-selected":{backgroundColor:"#6199ff2f"},".cm-activeLine":{backgroundColor:"#6699ff0b"},".cm-selectionMatch":{backgroundColor:"#aafe661a"},"&.cm-focused .cm-matchingBracket, &.cm-focused .cm-nonmatchingBracket":{backgroundColor:"#bad0f847"},".cm-gutters":{backgroundColor:v,color:d,border:"none"},".cm-activeLineGutter":{backgroundColor:b},".cm-foldPlaceholder":{backgroundColor:"transparent",border:"none",color:"#ddd"},".cm-tooltip":{border:"none",backgroundColor:y},".cm-tooltip .cm-tooltip-arrow:before":{borderTopColor:"transparent",borderBottomColor:"transparent"},".cm-tooltip .cm-tooltip-arrow:after":{borderTopColor:y,borderBottomColor:y},".cm-tooltip-autocomplete":{"& > ul > li[aria-selected]":{backgroundColor:b,color:u}}},{dark:!0}),S=i.cr.define([{tag:o._A.keyword,color:p},{tag:[o._A.name,o._A.deleted,o._A.character,o._A.propertyName,o._A.macroName],color:s},{tag:[o._A.function(o._A.variableName),o._A.labelName],color:h},{tag:[o._A.color,o._A.constant(o._A.name),o._A.standard(o._A.name)],color:m},{tag:[o._A.definition(o._A.name),o._A.separator],color:u},{tag:[o._A.typeName,o._A.className,o._A.number,o._A.changed,o._A.annotation,o._A.modifier,o._A.self,o._A.namespace],color:a},{tag:[o._A.operator,o._A.operatorKeyword,o._A.url,o._A.escape,o._A.regexp,o._A.link,o._A.special(o._A.string)],color:l},{tag:[o._A.meta,o._A.comment],color:d},{tag:o._A.strong,fontWeight:"bold"},{tag:o._A.emphasis,fontStyle:"italic"},{tag:o._A.strikethrough,textDecoration:"line-through"},{tag:o._A.link,color:d,textDecoration:"underline"},{tag:o._A.heading,fontWeight:"bold",color:s},{tag:[o._A.atom,o._A.bool,o._A.special(o._A.variableName)],color:m},{tag:[o._A.processingInstruction,o._A.string,o._A.inserted],color:f},{tag:o._A.invalid,color:c}]),_=[x,(0,i.y9)(S)]},67538:(e,t,n)=>{n.d(t,{$G:()=>Or,$K:()=>Yi,A:()=>Pr,BE:()=>Ur,C3:()=>_i,D4:()=>Jr,DK:()=>hi,EV:()=>Ri,Eg:()=>yi,HJ:()=>ni,Hm:()=>Li,Ip:()=>hr,Lz:()=>Hn,N$:()=>Qr,NZ:()=>ce,OP:()=>ve,Pq:()=>xi,S7:()=>Ci,TS:()=>lr,Ux:()=>vi,VH:()=>kr,Wu:()=>Ji,X3:()=>ft,Yq:()=>ro,Z9:()=>et,_B:()=>le,cU:()=>zi,c_:()=>Ze,dT:()=>Ir,dz:()=>jr,ld:()=>Ti,n6:()=>ki,pK:()=>Ui,qd:()=>br,qf:()=>Yr,rU:()=>ao,tF:()=>$e,uF:()=>cn,vX:()=>oi,vo:()=>wi,w4:()=>or,wJ:()=>Pi,wu:()=>oo,xO:()=>se});var r=n(8070),i=n(752),o=n(65351);function a(e){let t;return t=11==e.nodeType?e.getSelection?e:e.ownerDocument:e,t.getSelection()}function s(e,t){return!!t&&(e==t||e.contains(1!=t.nodeType?t.parentNode:t))}function l(e,t){if(!t.anchorNode)return!1;try{return s(e,t.anchorNode)}catch(n){return!1}}function c(e){return 3==e.nodeType?w(e,0,e.nodeValue.length).getClientRects():1==e.nodeType?e.getClientRects():[]}function u(e,t,n,r){return!!n&&(f(e,t,n,r,-1)||f(e,t,n,r,1))}function d(e){for(var t=0;;t++)if(!(e=e.previousSibling))return t}function h(e){return 1==e.nodeType&&/^(DIV|P|LI|UL|OL|BLOCKQUOTE|DD|DT|H\d|SECTION|PRE)$/.test(e.nodeName)}function f(e,t,n,r,i){for(;;){if(e==n&&t==r)return!0;if(t==(i<0?0:m(e))){if("DIV"==e.nodeName)return!1;let n=e.parentNode;if(!n||1!=n.nodeType)return!1;t=d(e)+(i<0?0:1),e=n}else{if(1!=e.nodeType)return!1;if(1==(e=e.childNodes[t+(i<0?-1:0)]).nodeType&&"false"==e.contentEditable)return!1;t=i<0?m(e):0}}}function m(e){return 3==e.nodeType?e.nodeValue.length:e.childNodes.length}function p(e,t){let n=t?e.left:e.right;return{left:n,right:n,top:e.top,bottom:e.bottom}}function g(e){let t=e.visualViewport;return t?{left:0,right:t.width,top:0,bottom:t.height}:{left:0,right:e.innerWidth,top:0,bottom:e.innerHeight}}function b(e,t){let n=t.width/e.offsetWidth,r=t.height/e.offsetHeight;return(n>.995&&n<1.005||!isFinite(n)||Math.abs(t.width-e.offsetWidth)<1)&&(n=1),(r>.995&&r<1.005||!isFinite(r)||Math.abs(t.height-e.offsetHeight)<1)&&(r=1),{scaleX:n,scaleY:r}}class v{constructor(){this.anchorNode=null,this.anchorOffset=0,this.focusNode=null,this.focusOffset=0}eq(e){return this.anchorNode==e.anchorNode&&this.anchorOffset==e.anchorOffset&&this.focusNode==e.focusNode&&this.focusOffset==e.focusOffset}setRange(e){let{anchorNode:t,focusNode:n}=e;this.set(t,Math.min(e.anchorOffset,t?m(t):0),n,Math.min(e.focusOffset,n?m(n):0))}set(e,t,n,r){this.anchorNode=e,this.anchorOffset=t,this.focusNode=n,this.focusOffset=r}}let y,k=null;function O(e){if(e.setActive)return e.setActive();if(k)return e.focus(k);let t=[];for(let n=e;n&&(t.push(n,n.scrollTop,n.scrollLeft),n!=n.ownerDocument);n=n.parentNode);if(e.focus(null==k?{get preventScroll(){return k={preventScroll:!0},!0}}:void 0),!k){k=!1;for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:t,r=y||(y=document.createRange());return r.setEnd(e,n),r.setStart(e,t),r}function x(e,t,n,r){let i={key:t,code:t,keyCode:n,which:n,cancelable:!0};r&&({altKey:i.altKey,ctrlKey:i.ctrlKey,shiftKey:i.shiftKey,metaKey:i.metaKey}=r);let o=new KeyboardEvent("keydown",i);o.synthetic=!0,e.dispatchEvent(o);let a=new KeyboardEvent("keyup",i);return a.synthetic=!0,e.dispatchEvent(a),o.defaultPrevented||a.defaultPrevented}function S(e){for(;e.attributes.length;)e.removeAttributeNode(e.attributes[0])}function _(e){return e.scrollTop>Math.max(1,e.scrollHeight-e.clientHeight-4)}function T(e,t){for(let n=e,r=t;;){if(3==n.nodeType&&r>0)return{node:n,offset:r};if(1==n.nodeType&&r>0){if("false"==n.contentEditable)return null;n=n.childNodes[r-1],r=m(n)}else{if(!n.parentNode||h(n))return null;r=d(n),n=n.parentNode}}}function E(e,t){for(let n=e,r=t;;){if(3==n.nodeType&&r2&&void 0!==arguments[2])||arguments[2];this.node=e,this.offset=t,this.precise=n}static before(e,t){return new $(e.parentNode,d(e),t)}static after(e,t){return new $(e.parentNode,d(e)+1,t)}}const A=[];class C{constructor(){this.parent=null,this.dom=null,this.flags=2}get overrideDOMText(){return null}get posAtStart(){return this.parent?this.parent.posBefore(this):0}get posAtEnd(){return this.posAtStart+this.length}posBefore(e){let t=this.posAtStart;for(let n of this.children){if(n==e)return t;t+=n.length+n.breakAfter}throw new RangeError("Invalid child in posBefore")}posAfter(e){return this.posBefore(e)+e.length}sync(e,t){if(2&this.flags){let n,r=this.dom,i=null;for(let o of this.children){if(7&o.flags){if(!o.dom&&(n=i?i.nextSibling:r.firstChild)){let e=C.get(n);(!e||!e.parent&&e.canReuseDOM(o))&&o.reuseDOM(n)}o.sync(e,t),o.flags&=-8}if(n=i?i.nextSibling:r.firstChild,t&&!t.written&&t.node==r&&n!=o.dom&&(t.written=!0),o.dom.parentNode==r)for(;n&&n!=o.dom;)n=P(n);else r.insertBefore(o.dom,n);i=o.dom}for(n=i?i.nextSibling:r.firstChild,n&&t&&t.node==r&&(t.written=!0);n;)n=P(n)}else if(1&this.flags)for(let n of this.children)7&n.flags&&(n.sync(e,t),n.flags&=-8)}reuseDOM(e){}localPosFromDOM(e,t){let n;if(e==this.dom)n=this.dom.childNodes[t];else{let r=0==m(e)?0:0==t?-1:1;for(;;){let t=e.parentNode;if(t==this.dom)break;0==r&&t.firstChild!=t.lastChild&&(r=e==t.firstChild?-1:1),e=t}n=r<0?e:e.nextSibling}if(n==this.dom.firstChild)return 0;for(;n&&!C.get(n);)n=n.nextSibling;if(!n)return this.length;for(let r=0,i=0;;r++){let e=this.children[r];if(e.dom==n)return i;i+=e.length+e.breakAfter}}domBoundsAround(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0,r=-1,i=-1,o=-1,a=-1;for(let s=0,l=n,c=n;st)return n.domBoundsAround(e,t,l);if(u>=e&&-1==r&&(r=s,i=l),l>t&&n.dom.parentNode==this.dom){o=s,a=c;break}c=u,l=u+n.breakAfter}return{from:i,to:a<0?n+this.length:a,startDOM:(r?this.children[r-1].dom.nextSibling:null)||this.dom.firstChild,endDOM:o=0?this.children[o].dom:null}}markDirty(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];this.flags|=2,this.markParentsDirty(e)}markParentsDirty(e){for(let t=this.parent;t;t=t.parent){if(e&&(t.flags|=2),1&t.flags)return;t.flags|=1,e=!1}}setParent(e){this.parent!=e&&(this.parent=e,7&this.flags&&this.markParentsDirty(!0))}setDOM(e){this.dom!=e&&(this.dom&&(this.dom.cmView=null),this.dom=e,e.cmView=this)}get rootView(){for(let e=this;;){let t=e.parent;if(!t)return e;e=t}}replaceChildren(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:A;this.markDirty();for(let r=e;r0&&void 0!==arguments[0]?arguments[0]:this.length;return new R(this.children,e,this.children.length)}childPos(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;return this.childCursor().findPos(e,t)}toString(){let e=this.constructor.name.replace("View","");return e+(this.children.length?"("+this.children.join()+")":this.length?"["+("Text"==e?this.text:this.length)+"]":"")+(this.breakAfter?"#":"")}static get(e){return e.cmView}get isEditable(){return!0}get isWidget(){return!1}get isHidden(){return!1}merge(e,t,n,r,i,o){return!1}become(e){return!1}canReuseDOM(e){return e.constructor==this.constructor&&!(8&(this.flags|e.flags))}getSide(){return 0}destroy(){for(let e of this.children)e.parent==this&&e.destroy();this.parent=null}}function P(e){let t=e.nextSibling;return e.parentNode.removeChild(e),t}C.prototype.breakAfter=0;class R{constructor(e,t,n){this.children=e,this.pos=t,this.i=n,this.off=0}findPos(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;for(;;){if(e>this.pos||e==this.pos&&(t>0||0==this.i||this.children[this.i-1].breakAfter))return this.off=e-this.pos,this;let n=this.children[--this.i];this.pos-=n.length+n.breakAfter}}}function I(e,t,n,r,i,o,a,s,l){let{children:c}=e,u=c.length?c[t]:null,d=o.length?o[o.length-1]:null,h=d?d.breakAfter:a;if(!(t==r&&u&&!a&&!h&&o.length<2&&u.merge(n,i,o.length?d:null,0==n,s,l))){if(r0&&(!a&&o.length&&u.merge(n,u.length,o[0],!1,s,0)?u.breakAfter=o.shift().breakAfter:(n2);var V={mac:j||/Mac/.test(z.platform),windows:/Win/.test(z.platform),linux:/Linux|X11/.test(z.platform),ie:q,ie_version:M?N.documentMode||6:Q?+Q[1]:L?+L[1]:0,gecko:W,gecko_version:W?+(/Firefox\/(\d+)/.exec(z.userAgent)||[0,0])[1]:0,chrome:!!B,chrome_version:B?+B[1]:0,ios:j,android:/Android\b/.test(z.userAgent),webkit:F,safari:U,webkit_version:F?+(/\bAppleWebKit\/(\d+)/.exec(navigator.userAgent)||[0,0])[1]:0,tabSize:null!=N.documentElement.style.tabSize?"tab-size":"-moz-tab-size"};class G extends C{constructor(e){super(),this.text=e}get length(){return this.text.length}createDOM(e){this.setDOM(e||document.createTextNode(this.text))}sync(e,t){this.dom||this.createDOM(),this.dom.nodeValue!=this.text&&(t&&t.node==this.dom&&(t.written=!0),this.dom.nodeValue=this.text)}reuseDOM(e){3==e.nodeType&&this.createDOM(e)}merge(e,t,n){return!(8&this.flags||n&&(!(n instanceof G)||this.length-(t-e)+n.length>256||8&n.flags))&&(this.text=this.text.slice(0,e)+(n?n.text:"")+this.text.slice(t),this.markDirty(),!0)}split(e){let t=new G(this.text.slice(e));return this.text=this.text.slice(0,e),this.markDirty(),t.flags|=8&this.flags,t}localPosFromDOM(e,t){return e==this.dom?t:t?this.text.length:0}domAtPos(e){return new $(this.dom,e)}domBoundsAround(e,t,n){return{from:n,to:n+this.length,startDOM:this.dom,endDOM:this.dom.nextSibling}}coordsAt(e,t){return function(e,t,n){let r=e.nodeValue.length;t>r&&(t=r);let i=t,o=t,a=0;0==t&&n<0||t==r&&n>=0?V.chrome||V.gecko||(t?(i--,a=1):o=0)?0:s.length-1];V.safari&&!a&&0==l.width&&(l=Array.prototype.find.call(s,(e=>e.width))||l);return a?p(l,a<0):l||null}(this.dom,e,t)}}class X extends C{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;super(),this.mark=e,this.children=t,this.length=n;for(let r of t)r.setParent(this)}setAttrs(e){if(S(e),this.mark.class&&(e.className=this.mark.class),this.mark.attrs)for(let t in this.mark.attrs)e.setAttribute(t,this.mark.attrs[t]);return e}canReuseDOM(e){return super.canReuseDOM(e)&&!(8&(this.flags|e.flags))}reuseDOM(e){e.nodeName==this.mark.tagName.toUpperCase()&&(this.setDOM(e),this.flags|=6)}sync(e,t){this.dom?4&this.flags&&this.setAttrs(this.dom):this.setDOM(this.setAttrs(document.createElement(this.mark.tagName))),super.sync(e,t)}merge(e,t,n,r,i,o){return(!n||!(!(n instanceof X&&n.mark.eq(this.mark))||e&&i<=0||te&&t.push(n=e&&(r=i),n=o,i++}let o=this.length-e;return this.length=e,r>-1&&(this.children.length=r,this.markDirty()),new X(this.mark,t,o)}domAtPos(e){return H(this,e)}coordsAt(e,t){return J(this,e,t)}}class Y extends C{static create(e,t,n){return new Y(e,t,n)}constructor(e,t,n){super(),this.widget=e,this.length=t,this.side=n,this.prevWidget=null}split(e){let t=Y.create(this.widget,this.length-e,this.side);return this.length-=e,t}sync(e){this.dom&&this.widget.updateDOM(this.dom,e)||(this.dom&&this.prevWidget&&this.prevWidget.destroy(this.dom),this.prevWidget=null,this.setDOM(this.widget.toDOM(e)),this.widget.editable||(this.dom.contentEditable="false"))}getSide(){return this.side}merge(e,t,n,r,i,o){return!(n&&(!(n instanceof Y&&this.widget.compare(n.widget))||e>0&&i<=0||t0)?$.before(this.dom):$.after(this.dom,e==this.length)}domBoundsAround(){return null}coordsAt(e,t){let n=this.widget.coordsAt(this.dom,e,t);if(n)return n;let r=this.dom.getClientRects(),i=null;if(!r.length)return null;let o=this.side?this.side<0:e>0;for(let a=o?r.length-1:0;i=r[a],!(e>0?0==a:a==r.length-1||i.top0?$.before(this.dom):$.after(this.dom)}localPosFromDOM(){return 0}domBoundsAround(){return null}coordsAt(e){return this.dom.getBoundingClientRect()}get overrideDOMText(){return r.EY.empty}get isHidden(){return!0}}function H(e,t){let n=e.dom,{children:r}=e,i=0;for(let o=0;io&&t0;o--){let e=r[o-1];if(e.dom.parentNode==n)return e.domAtPos(e.length)}for(let o=i;o0&&t instanceof X&&i.length&&(r=i[i.length-1])instanceof X&&r.mark.eq(t.mark)?K(r,t.children[0],n-1):(i.push(t),t.setParent(e)),e.length+=t.length}function J(e,t,n){let r=null,i=-1,o=null,a=-1;!function e(t,s){for(let l=0,c=0;l=s&&(u.children.length?e(u,s-c):(!o||o.isHidden&&n>0)&&(d>s||c==d&&u.getSide()>0)?(o=u,a=s-c):(c-1?1:0)!=i.length-(n&&i.indexOf(n)>-1?1:0))return!1;for(let o of r)if(o!=n&&(-1==i.indexOf(o)||e[o]!==t[o]))return!1;return!0}function re(e,t,n){let r=!1;if(t)for(let i in t)n&&i in n||(r=!0,"style"==i?e.style.cssText="":e.removeAttribute(i));if(n)for(let i in n)t&&t[i]==n[i]||(r=!0,"style"==i?e.style.cssText=n[i]:e.setAttribute(i,n[i]));return r}function ie(e){let t=Object.create(null);for(let n=0;n0&&0==this.children[n-1].length;)this.children[--n].destroy();return this.children.length=n,this.markDirty(),this.length=e,t}transferDOM(e){this.dom&&(this.markDirty(),e.setDOM(this.dom),e.prevAttrs=void 0===this.prevAttrs?this.attrs:this.prevAttrs,this.prevAttrs=void 0,this.dom=null)}setDeco(e){ne(this.attrs,e)||(this.dom&&(this.prevAttrs=this.attrs,this.markDirty()),this.attrs=e)}append(e,t){K(this,e,t)}addLineDeco(e){let t=e.spec.attributes,n=e.spec.class;t&&(this.attrs=ee(t,this.attrs||{})),n&&(this.attrs=ee({class:n},this.attrs||{}))}domAtPos(e){return H(this,e)}reuseDOM(e){"DIV"==e.nodeName&&(this.setDOM(e),this.flags|=6)}sync(e,t){var n;this.dom?4&this.flags&&(S(this.dom),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0):(this.setDOM(document.createElement("div")),this.dom.className="cm-line",this.prevAttrs=this.attrs?null:void 0),void 0!==this.prevAttrs&&(re(this.dom,this.prevAttrs,this.attrs),this.dom.classList.add("cm-line"),this.prevAttrs=void 0),super.sync(e,t);let r=this.dom.lastChild;for(;r&&C.get(r)instanceof X;)r=r.lastChild;if(!r||!this.length||"BR"!=r.nodeName&&0==(null===(n=C.get(r))||void 0===n?void 0:n.isEditable)&&(!V.ios||!this.children.some((e=>e instanceof G)))){let e=document.createElement("BR");e.cmIgnore=!0,this.dom.appendChild(e)}}measureTextSize(){if(0==this.children.length||this.length>20)return null;let e,t=0;for(let n of this.children){if(!(n instanceof G)||/[^ -~]/.test(n.text))return null;let r=c(n.dom);if(1!=r.length)return null;t+=r[0].width,e=r[0].height}return t?{lineHeight:this.dom.getBoundingClientRect().height,charWidth:t/this.length,textHeight:e}:null}coordsAt(e,t){let n=J(this,e,t);if(!this.children.length&&n&&this.parent){let{heightOracle:e}=this.parent.view.viewState,t=n.bottom-n.top;if(Math.abs(t-e.lineHeight)<2&&e.textHeight=t){if(i instanceof oe)return i;if(o>t)break}r=o+i.breakAfter}return null}}class ae extends C{constructor(e,t,n){super(),this.widget=e,this.length=t,this.deco=n,this.breakAfter=0,this.prevWidget=null}merge(e,t,n,r,i,o){return!(n&&(!(n instanceof ae&&this.widget.compare(n.widget))||e>0&&i<=0||t0)}}class se{eq(e){return!1}updateDOM(e,t){return!1}compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}get estimatedHeight(){return-1}get lineBreaks(){return 0}ignoreEvent(e){return!0}coordsAt(e,t,n){return null}get isHidden(){return!1}get editable(){return!1}destroy(e){}}var le=function(e){return e[e.Text=0]="Text",e[e.WidgetBefore=1]="WidgetBefore",e[e.WidgetAfter=2]="WidgetAfter",e[e.WidgetRange=3]="WidgetRange",e}(le||(le={}));class ce extends r.FB{constructor(e,t,n,r){super(),this.startSide=e,this.endSide=t,this.widget=n,this.spec=r}get heightRelevant(){return!1}static mark(e){return new ue(e)}static widget(e){let t=Math.max(-1e4,Math.min(1e4,e.side||0)),n=!!e.block;return t+=n&&!e.inlineOrder?t>0?3e8:-4e8:t>0?1e8:-1e8,new he(e,t,t,n,e.widget||null,!1)}static replace(e){let t,n,r=!!e.block;if(e.isBlockGap)t=-5e8,n=4e8;else{let{start:i,end:o}=fe(e,r);t=(i?r?-3e8:-1:5e8)-1,n=1+(o?r?2e8:1:-6e8)}return new he(e,t,n,r,e.widget||null,!0)}static line(e){return new de(e)}static set(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return r.om.of(e,t)}hasHeight(){return!!this.widget&&this.widget.estimatedHeight>-1}}ce.none=r.om.empty;class ue extends ce{constructor(e){let{start:t,end:n}=fe(e);super(t?-1:5e8,n?1:-6e8,null,e),this.tagName=e.tagName||"span",this.class=e.class||"",this.attrs=e.attributes||null}eq(e){var t,n;return this==e||e instanceof ue&&this.tagName==e.tagName&&(this.class||(null===(t=this.attrs)||void 0===t?void 0:t.class))==(e.class||(null===(n=e.attrs)||void 0===n?void 0:n.class))&&ne(this.attrs,e.attrs,"class")}range(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(e>=t)throw new RangeError("Mark decorations may not be empty");return super.range(e,t)}}ue.prototype.point=!1;class de extends ce{constructor(e){super(-2e8,-2e8,null,e)}eq(e){return e instanceof de&&this.spec.class==e.spec.class&&ne(this.spec.attributes,e.spec.attributes)}range(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(t!=e)throw new RangeError("Line decoration ranges must be zero-length");return super.range(e,t)}}de.prototype.mapMode=r.iR.TrackBefore,de.prototype.point=!0;class he extends ce{constructor(e,t,n,i,o,a){super(t,n,o,e),this.block=i,this.isReplace=a,this.mapMode=i?t<=0?r.iR.TrackBefore:r.iR.TrackAfter:r.iR.TrackDel}get type(){return this.startSide!=this.endSide?le.WidgetRange:this.startSide<=0?le.WidgetBefore:le.WidgetAfter}get heightRelevant(){return this.block||!!this.widget&&(this.widget.estimatedHeight>=5||this.widget.lineBreaks>0)}eq(e){return e instanceof he&&(t=this.widget,n=e.widget,t==n||!!(t&&n&&t.compare(n)))&&this.block==e.block&&this.startSide==e.startSide&&this.endSide==e.endSide;var t,n}range(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e;if(this.isReplace&&(e>t||e==t&&this.startSide>0&&this.endSide<=0))throw new RangeError("Invalid range for replacement decoration");if(!this.isReplace&&t!=e)throw new RangeError("Widget decorations can only have zero-length ranges");return super.range(e,t)}}function fe(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],{inclusiveStart:n,inclusiveEnd:r}=e;return null==n&&(n=e.inclusive),null==r&&(r=e.inclusive),{start:null!==n&&void 0!==n?n:t,end:null!==r&&void 0!==r?r:t}}function me(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:0,i=n.length-1;i>=0&&n[i]+r>=e?n[i]=Math.max(n[i],t):n.push(e,t)}he.prototype.point=!0;class pe{constructor(e,t,n,r){this.doc=e,this.pos=t,this.end=n,this.disallowBlockEffectsFor=r,this.content=[],this.curLine=null,this.breakAtStart=0,this.pendingBuffer=0,this.bufferMarks=[],this.atCursorPos=!0,this.openStart=-1,this.openEnd=-1,this.text="",this.textOff=0,this.cursor=e.iter(),this.skip=t}posCovered(){if(0==this.content.length)return!this.breakAtStart&&this.doc.lineAt(this.pos).from!=this.pos;let e=this.content[this.content.length-1];return!(e.breakAfter||e instanceof ae&&e.deco.endSide<0)}getLine(){return this.curLine||(this.content.push(this.curLine=new oe),this.atCursorPos=!0),this.curLine}flushBuffer(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.bufferMarks;this.pendingBuffer&&(this.curLine.append(ge(new Z(-1),e),e.length),this.pendingBuffer=0)}addBlockWidget(e){this.flushBuffer(),this.curLine=null,this.content.push(e)}finish(e){this.pendingBuffer&&e<=this.bufferMarks.length?this.flushBuffer():this.pendingBuffer=0,this.posCovered()||e&&this.content.length&&this.content[this.content.length-1]instanceof ae||this.getLine()}buildText(e,t,n){for(;e>0;){if(this.textOff==this.text.length){let{value:t,lineBreak:n,done:r}=this.cursor.next(this.skip);if(this.skip=0,r)throw new Error("Ran out of text content when drawing inline views");if(n){this.posCovered()||this.getLine(),this.content.length?this.content[this.content.length-1].breakAfter=1:this.breakAtStart=1,this.flushBuffer(),this.curLine=null,this.atCursorPos=!0,e--;continue}this.text=t,this.textOff=0}let r=Math.min(this.text.length-this.textOff,e,512);this.flushBuffer(t.slice(t.length-n)),this.getLine().append(ge(new G(this.text.slice(this.textOff,this.textOff+r)),t),n),this.atCursorPos=!0,this.textOff+=r,e-=r,n=0}}span(e,t,n,r){this.buildText(t-e,n,r),this.pos=t,this.openStart<0&&(this.openStart=r)}point(e,t,n,r,i,o){if(this.disallowBlockEffectsFor[o]&&n instanceof he){if(n.block)throw new RangeError("Block decorations may not be specified via plugins");if(t>this.doc.lineAt(this.pos).to)throw new RangeError("Decorations that replace line breaks may not be specified via plugins")}let a=t-e;if(n instanceof he)if(n.block)n.startSide>0&&!this.posCovered()&&this.getLine(),this.addBlockWidget(new ae(n.widget||be.block,a,n));else{let o=Y.create(n.widget||be.inline,a,a?0:n.startSide),s=this.atCursorPos&&!o.isEditable&&i<=r.length&&(e0),l=!o.isEditable&&(er.length||n.startSide<=0),c=this.getLine();2!=this.pendingBuffer||s||o.isEditable||(this.pendingBuffer=0),this.flushBuffer(r),s&&(c.append(ge(new Z(1),r),i),i=r.length+Math.max(0,i-r.length)),c.append(ge(o,r),i),this.atCursorPos=l,this.pendingBuffer=l?er.length?1:2:0,this.pendingBuffer&&(this.bufferMarks=r.slice())}else this.doc.lineAt(this.pos).from==this.pos&&this.getLine().addLineDeco(n);a&&(this.textOff+a<=this.text.length?this.textOff+=a:(this.skip+=a-(this.text.length-this.textOff),this.text="",this.textOff=0),this.pos=t),this.openStart<0&&(this.openStart=i)}static build(e,t,n,i,o){let a=new pe(e,t,n,o);return a.openEnd=r.om.spans(i,t,n,a),a.openStart<0&&(a.openStart=a.openEnd),a.finish(a.openEnd),a}}function ge(e,t){for(let n of t)e=new X(n,[e],e.length);return e}class be extends se{constructor(e){super(),this.tag=e}eq(e){return e.tag==this.tag}toDOM(){return document.createElement(this.tag)}updateDOM(e){return e.nodeName.toLowerCase()==this.tag}get isHidden(){return!0}}be.inline=new be("span"),be.block=new be("div");var ve=function(e){return e[e.LTR=0]="LTR",e[e.RTL=1]="RTL",e}(ve||(ve={}));const ye=ve.LTR,ke=ve.RTL;function Oe(e){let t=[];for(let n=0;n=t){if(a.level==n)return o;(i<0||(0!=r?r<0?a.fromt:e[i].level>a.level))&&(i=o)}}if(i<0)throw new RangeError("Index out of range");return i}}function Ae(e,t){if(e.length!=t.length)return!1;for(let n=0;nl&&a.push(new $e(l,m.from,h)),Re(e,m.direction==ye!=!(h%2)?r+1:r,i,m.inner,m.from,m.to,a),l=m.to}f=m.to}else{if(f==n||(t?Ce[f]!=s:Ce[f]==s))break;f++}d?Pe(e,l,f,r+1,i,d,a):lt;){let n=!0,u=!1;if(!c||l>o[c-1].to){let e=Ce[l-1];e!=s&&(n=!1,u=16==e)}let d=n||1!=s?null:[],h=n?r:r+1,f=l;e:for(;;)if(c&&f==o[c-1].to){if(u)break e;let m=o[--c];if(!n)for(let e=m.from,n=c;;){if(e==t)break e;if(!n||o[n-1].to!=e){if(Ce[e-1]==s)break e;break}e=o[--n].from}if(d)d.push(m);else{m.to=0;e-=3)if(_e[e+1]==-n){let t=_e[e+2],n=2&t?i:4&t?1&t?o:i:0;n&&(Ce[a]=Ce[_e[e]]=n),s=e;break}}else{if(189==_e.length)break;_e[s++]=a,_e[s++]=t,_e[s++]=l}else if(2==(r=Ce[a])||1==r){let e=r==i;l=e?0:1;for(let t=s-3;t>=0;t-=3){let n=_e[t+2];if(2&n)break;if(e)_e[t+2]|=2;else{if(4&n)break;_e[t+2]|=4}}}}}(e,i,o,r,s),function(e,t,n,r){for(let i=0,o=r;i<=n.length;i++){let a=i?n[i-1].to:e,s=il;)t==o&&(t=n[--r].from,o=r?n[r-1].to:e),Ce[--t]=u;l=a}else o=a,l++}}}(i,o,r,s),Pe(e,i,o,t,n,r,a)}function Ie(e,t,n){if(!e)return[new $e(0,0,t==ke?1:0)];if(t==ye&&!n.length&&!Ee.test(e))return De(e.length);if(n.length)for(;e.length>Ce.length;)Ce[Ce.length]=256;let r=[],i=t==ye?0:1;return Re(e,i,i,n,0,e.length,r),r}function De(e){return[new $e(0,e,0)]}let ze="";function Ne(e,t,n,i,o){var a;let s=i.head-e.from,l=$e.find(t,s,null!==(a=i.bidiLevel)&&void 0!==a?a:-1,i.assoc),c=t[l],u=c.side(o,n);if(s==u){let e=l+=o?1:-1;if(e<0||e>=t.length)return null;c=t[l=e],s=c.side(!o,n),u=c.side(o,n)}let d=(0,r.zK)(e.text,s,c.forward(o,n));(dc.to)&&(d=u),ze=e.text.slice(Math.min(s,d),Math.max(s,d));let h=l==(o?t.length-1:0)?null:t[l+(o?1:-1)];return h&&d==u&&h.level+(o?0:1)e.some((e=>e))}),Ve=r.sj.define({combine:e=>e.some((e=>e))}),Ge=r.sj.define();class Xe{constructor(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"nearest",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"nearest",r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5,i=arguments.length>4&&void 0!==arguments[4]?arguments[4]:5,o=arguments.length>5&&void 0!==arguments[5]&&arguments[5];this.range=e,this.y=t,this.x=n,this.yMargin=r,this.xMargin=i,this.isSnapshot=o}map(e){return e.empty?this:new Xe(this.range.map(e),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}clip(e){return this.range.to<=e.doc.length?this:new Xe(r.OF.cursor(e.doc.length),this.y,this.x,this.yMargin,this.xMargin,this.isSnapshot)}}const Ye=r.Pe.define({map:(e,t)=>e.map(t)});function Ze(e,t,n){let r=e.facet(We);r.length?r[0](t):window.onerror?window.onerror(String(t),n,void 0,void 0,t):n?console.error(n+":",t):console.error(t)}const He=r.sj.define({combine:e=>!e.length||e[0]});let Ke=0;const Je=r.sj.define();class et{constructor(e,t,n,r,i){this.id=e,this.create=t,this.domEventHandlers=n,this.domEventObservers=r,this.extension=i(this)}static define(e,t){const{eventHandlers:n,eventObservers:r,provide:i,decorations:o}=t||{};return new et(Ke++,e,n,r,(e=>{let t=[Je.of(e)];return o&&t.push(it.of((t=>{let n=t.plugin(e);return n?o(n):ce.none}))),i&&t.push(i(e)),t}))}static fromClass(e,t){return et.define((t=>new e(t)),t)}}class tt{constructor(e){this.spec=e,this.mustUpdate=null,this.value=null}update(e){if(this.value){if(this.mustUpdate){let e=this.mustUpdate;if(this.mustUpdate=null,this.value.update)try{this.value.update(e)}catch(t){if(Ze(e.state,t,"CodeMirror plugin crashed"),this.value.destroy)try{this.value.destroy()}catch(n){}this.deactivate()}}}else if(this.spec)try{this.value=this.spec.create(e)}catch(t){Ze(e.state,t,"CodeMirror plugin crashed"),this.deactivate()}return this}destroy(e){var t;if(null===(t=this.value)||void 0===t?void 0:t.destroy)try{this.value.destroy()}catch(n){Ze(e.state,n,"CodeMirror plugin crashed")}}deactivate(){this.spec=this.value=null}}const nt=r.sj.define(),rt=r.sj.define(),it=r.sj.define(),ot=r.sj.define(),at=r.sj.define(),st=r.sj.define();function lt(e,t){let n=e.state.facet(st);if(!n.length)return n;let i=n.map((t=>t instanceof Function?t(e):t)),o=[];return r.om.spans(i,t.from,t.to,{point(){},span(e,n,r,i){let a=e-t.from,s=n-t.from,l=o;for(let o=r.length-1;o>=0;o--,i--){let e,n=r[o].spec.bidiIsolate;if(null==n&&(n=Le(t.text,a,s)),i>0&&l.length&&(e=l[l.length-1]).to==a&&e.direction==n)e.to=s,l=e.inner;else{let e={from:a,to:s,direction:n,inner:[]};l.push(e),l=e.inner}}}}),o}const ct=r.sj.define();function ut(e){let t=0,n=0,r=0,i=0;for(let o of e.state.facet(ct)){let a=o(e);a&&(null!=a.left&&(t=Math.max(t,a.left)),null!=a.right&&(n=Math.max(n,a.right)),null!=a.top&&(r=Math.max(r,a.top)),null!=a.bottom&&(i=Math.max(i,a.bottom)))}return{left:t,right:n,top:r,bottom:i}}const dt=r.sj.define();class ht{constructor(e,t,n,r){this.fromA=e,this.toA=t,this.fromB=n,this.toB=r}join(e){return new ht(Math.min(this.fromA,e.fromA),Math.max(this.toA,e.toA),Math.min(this.fromB,e.fromB),Math.max(this.toB,e.toB))}addToSet(e){let t=e.length,n=this;for(;t>0;t--){let r=e[t-1];if(!(r.fromA>n.toA)){if(r.toAc)break;i+=2}if(!s)return n;new ht(s.fromA,s.toA,s.fromB,s.toB).addToSet(n),o=s.toA,a=s.toB}}}class ft{constructor(e,t,n){this.view=e,this.state=t,this.transactions=n,this.flags=0,this.startState=e.state,this.changes=r.VR.empty(this.startState.doc.length);for(let r of n)this.changes=this.changes.compose(r.changes);let i=[];this.changes.iterChangedRanges(((e,t,n,r)=>i.push(new ht(e,t,n,r)))),this.changedRanges=i}static create(e,t,n){return new ft(e,t,n)}get viewportChanged(){return(4&this.flags)>0}get heightChanged(){return(2&this.flags)>0}get geometryChanged(){return this.docChanged||(10&this.flags)>0}get focusChanged(){return(1&this.flags)>0}get docChanged(){return!this.changes.empty}get selectionSet(){return this.transactions.some((e=>e.selection))}get empty(){return 0==this.flags&&0==this.transactions.length}}class mt extends C{get length(){return this.view.state.doc.length}constructor(e){super(),this.view=e,this.decorations=[],this.dynamicDecorationMap=[],this.domChanged=null,this.hasComposition=null,this.markedForComposition=new Set,this.lastCompositionAfterCursor=!1,this.minWidth=0,this.minWidthFrom=0,this.minWidthTo=0,this.impreciseAnchor=null,this.impreciseHead=null,this.forceSelection=!1,this.lastUpdate=Date.now(),this.setDOM(e.contentDOM),this.children=[new oe],this.children[0].setParent(this),this.updateDeco(),this.updateInner([new ht(0,0,0,e.state.doc.length)],0,null)}update(e){var t;let n=e.changedRanges;this.minWidth>0&&n.length&&(n.every((e=>{let{fromA:t,toA:n}=e;return nthis.minWidthTo}))?(this.minWidthFrom=e.changes.mapPos(this.minWidthFrom,1),this.minWidthTo=e.changes.mapPos(this.minWidthTo,1)):this.minWidth=this.minWidthFrom=this.minWidthTo=0);let i=-1;this.view.inputState.composing>=0&&((null===(t=this.domChanged)||void 0===t?void 0:t.newSel)?i=this.domChanged.newSel.head:function(e,t){let n=!1;t&&e.iterChangedRanges(((e,r)=>{et.from&&(n=!0)}));return n}(e.changes,this.hasComposition)||e.selectionSet||(i=e.state.selection.main.head));let o=i>-1?function(e,t,n){let r=gt(e,n);if(!r)return null;let{node:i,from:o,to:a}=r,s=i.nodeValue;if(/[\n\r]/.test(s))return null;if(e.state.doc.sliceString(r.from,r.to)!=s)return null;let l=t.invertedDesc,c=new ht(l.mapPos(o),l.mapPos(a),o,a),u=[];for(let d=i.parentNode;;d=d.parentNode){let t=C.get(d);if(t instanceof X)u.push({node:d,deco:t.mark});else{if(t instanceof oe||"DIV"==d.nodeName&&d.parentNode==e.contentDOM)return{range:c,text:i,marks:u,line:d};if(d==e.contentDOM)return null;u.push({node:d,deco:new ue({inclusive:!0,attributes:ie(d),tagName:d.tagName.toLowerCase()})})}}}(this.view,e.changes,i):null;if(this.domChanged=null,this.hasComposition){this.markedForComposition.clear();let{from:t,to:r}=this.hasComposition;n=new ht(t,r,e.changes.mapPos(t,-1),e.changes.mapPos(r,1)).addToSet(n.slice())}this.hasComposition=o?{from:o.range.fromB,to:o.range.toB}:null,(V.ie||V.chrome)&&!o&&e&&e.state.doc.lines!=e.startState.doc.lines&&(this.forceSelection=!0);let a=function(e,t,n){let i=new bt;return r.om.compare(e,t,n,i),i.changes}(this.decorations,this.updateDeco(),e.changes);return n=ht.extendWithRanges(n,a),!!(7&this.flags||0!=n.length)&&(this.updateInner(n,e.startState.doc.length,o),e.transactions.length&&(this.lastUpdate=Date.now()),!0)}updateInner(e,t,n){this.view.viewState.mustMeasureContent=!0,this.updateChildren(e,t,n);let{observer:r}=this.view;r.ignore((()=>{this.dom.style.height=this.view.viewState.contentHeight/this.view.scaleY+"px",this.dom.style.flexBasis=this.minWidth?this.minWidth+"px":"";let e=V.chrome||V.ios?{node:r.selectionRange.focusNode,written:!1}:void 0;this.sync(this.view,e),this.flags&=-8,e&&(e.written||r.selectionRange.focusNode!=e.node)&&(this.forceSelection=!0),this.dom.style.height=""})),this.markedForComposition.forEach((e=>e.flags&=-9));let i=[];if(this.view.viewport.from||this.view.viewport.to=0?r[o]:null;if(!e)break;let t,a,s,l,{fromA:c,toA:u,fromB:d,toB:h}=e;if(n&&n.range.fromBd){let e=pe.build(this.view.state.doc,d,n.range.fromB,this.decorations,this.dynamicDecorationMap),r=pe.build(this.view.state.doc,n.range.toB,h,this.decorations,this.dynamicDecorationMap);a=e.breakAtStart,s=e.openStart,l=r.openEnd;let i=this.compositionView(n);r.breakAtStart?i.breakAfter=1:r.content.length&&i.merge(i.length,i.length,r.content[0],!1,r.openStart,0)&&(i.breakAfter=r.content[0].breakAfter,r.content.shift()),e.content.length&&i.merge(0,0,e.content[e.content.length-1],!0,0,e.openEnd)&&e.content.pop(),t=e.content.concat(i).concat(r.content)}else({content:t,breakAtStart:a,openStart:s,openEnd:l}=pe.build(this.view.state.doc,d,h,this.decorations,this.dynamicDecorationMap));let{i:f,off:m}=i.findPos(u,1),{i:p,off:g}=i.findPos(c,-1);I(this,p,g,f,m,t,a,s,l)}n&&this.fixCompositionDOM(n)}compositionView(e){let t=new G(e.text.nodeValue);t.flags|=8;for(let{deco:r}of e.marks)t=new X(r,[t],t.length);let n=new oe;return n.append(t,0),n}fixCompositionDOM(e){let t=(e,t)=>{t.flags|=8|(t.children.some((e=>7&e.flags))?1:0),this.markedForComposition.add(t);let n=C.get(e);n&&n!=t&&(n.dom=null),t.setDOM(e)},n=this.childPos(e.range.fromB,1),r=this.children[n.i];t(e.line,r);for(let i=e.marks.length-1;i>=-1;i--)n=r.childPos(n.off,1),r=r.children[n.i],t(i>=0?e.marks[i].node:e.text,r)}updateSelection(){let e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];!(arguments.length>0&&void 0!==arguments[0]&&arguments[0])&&this.view.observer.selectionRange.focusNode||this.view.observer.readSelectionRange();let t=this.view.root.activeElement,n=t==this.dom,r=!n&&l(this.dom,this.view.observer.selectionRange)&&!(t&&this.dom.contains(t));if(!(n||e||r))return;let i=this.forceSelection;this.forceSelection=!1;let o=this.view.state.selection.main,s=this.moveToLine(this.domAtPos(o.anchor)),c=o.empty?s:this.moveToLine(this.domAtPos(o.head));if(V.gecko&&o.empty&&!this.hasComposition&&(1==(d=s).node.nodeType&&d.node.firstChild&&(0==d.offset||"false"==d.node.childNodes[d.offset-1].contentEditable)&&(d.offset==d.node.childNodes.length||"false"==d.node.childNodes[d.offset].contentEditable))){let e=document.createTextNode("");this.view.observer.ignore((()=>s.node.insertBefore(e,s.node.childNodes[s.offset]||null))),s=c=new $(e,0),i=!0}var d;let h=this.view.observer.selectionRange;!i&&h.focusNode&&(u(s.node,s.offset,h.anchorNode,h.anchorOffset)&&u(c.node,c.offset,h.focusNode,h.focusOffset)||this.suppressWidgetCursorChange(h,o))||(this.view.observer.ignore((()=>{V.android&&V.chrome&&this.dom.contains(h.focusNode)&&function(e,t){for(let n=e;n&&n!=t;n=n.assignedSlot||n.parentNode)if(1==n.nodeType&&"false"==n.contentEditable)return!0;return!1}(h.focusNode,this.dom)&&(this.dom.blur(),this.dom.focus({preventScroll:!0}));let e=a(this.view.root);if(e)if(o.empty){if(V.gecko){let e=(n=s.node,i=s.offset,1!=n.nodeType?0:(i&&"false"==n.childNodes[i-1].contentEditable?1:0)|(io.head&&([s,c]=[c,s]),t.setEnd(c.node,c.offset),t.setStart(s.node,s.offset),e.removeAllRanges(),e.addRange(t)}else;var n,i;r&&this.view.root.activeElement==this.dom&&(this.dom.blur(),t&&t.focus())})),this.view.observer.setSelectionRange(s,c)),this.impreciseAnchor=s.precise?null:new $(h.anchorNode,h.anchorOffset),this.impreciseHead=c.precise?null:new $(h.focusNode,h.focusOffset)}suppressWidgetCursorChange(e,t){return this.hasComposition&&t.empty&&u(e.focusNode,e.focusOffset,e.anchorNode,e.anchorOffset)&&this.posFromDOM(e.focusNode,e.focusOffset)==t.head}enforceCursorAssoc(){if(this.hasComposition)return;let{view:e}=this,t=e.state.selection.main,n=a(e.root),{anchorNode:r,anchorOffset:i}=e.observer.selectionRange;if(!n||!t.empty||!t.assoc||!n.modify)return;let o=oe.find(this,t.head);if(!o)return;let s=o.posAtStart;if(t.head==s||t.head==s+o.length)return;let l=this.coordsAt(t.head,-1),c=this.coordsAt(t.head,1);if(!l||!c||l.bottom>c.top)return;let u=this.domAtPos(t.head+t.assoc);n.collapse(u.node,u.offset),n.modify("move",t.assoc<0?"forward":"backward","lineboundary"),e.observer.readSelectionRange();let d=e.observer.selectionRange;e.docView.posFromDOM(d.anchorNode,d.anchorOffset)!=t.from&&n.collapse(r,i)}moveToLine(e){let t,n=this.dom;if(e.node!=n)return e;for(let r=e.offset;!t&&r=0;r--){let e=C.get(n.childNodes[r]);e instanceof oe&&(t=e.domAtPos(e.length))}return t?new $(t.node,t.offset,!0):e}nearest(e){for(let t=e;t;){let e=C.get(t);if(e&&e.rootView==this)return e;t=t.parentNode}return null}posFromDOM(e,t){let n=this.nearest(e);if(!n)throw new RangeError("Trying to find position for a DOM position outside of the document");return n.localPosFromDOM(e,t)+n.posAtStart}domAtPos(e){let{i:t,off:n}=this.childCursor().findPos(e,-1);for(;t=0;o--){let a=this.children[o],s=i-a.breakAfter,l=s-a.length;if(se||a.covers(1))&&(!n||a instanceof oe&&!(n instanceof oe&&t>=0))&&(n=a,r=l),i=l}return n?n.coordsAt(e-r,t):null}coordsForChar(e){let{i:t,off:n}=this.childPos(e,1),i=this.children[t];if(!(i instanceof oe))return null;for(;i.children.length;){let{i:e,off:t}=i.childPos(n,1);for(;;e++){if(e==i.children.length)return null;if((i=i.children[e]).length)break}n=t}if(!(i instanceof G))return null;let o=(0,r.zK)(i.text,n);if(o==n)return null;let a=w(i.dom,n,o).getClientRects();for(let r=0;rMath.max(this.view.scrollDOM.clientWidth,this.minWidth)+1,a=-1,s=this.view.textDirection==ve.LTR;for(let l=0,u=0;ur)break;if(l>=n){let n=e.dom.getBoundingClientRect();if(t.push(n.height),o){let t=e.dom.lastChild,r=t?c(t):[];if(r.length){let e=r[r.length-1],t=s?e.right-n.left:n.right-e.left;t>a&&(a=t,this.minWidth=i,this.minWidthFrom=l,this.minWidthTo=d)}}}l=d+e.breakAfter}return t}textDirectionAt(e){let{i:t}=this.childPos(e,1);return"rtl"==getComputedStyle(this.children[t].dom).direction?ve.RTL:ve.LTR}measureTextSize(){for(let i of this.children)if(i instanceof oe){let e=i.measureTextSize();if(e)return e}let e,t,n,r=document.createElement("div");return r.className="cm-line",r.style.width="99999px",r.style.position="absolute",r.textContent="abc def ghi jkl mno pqr stu",this.view.observer.ignore((()=>{this.dom.appendChild(r);let i=c(r.firstChild)[0];e=r.getBoundingClientRect().height,t=i?i.width/27:7,n=i?i.height:e,r.remove()})),{lineHeight:e,charWidth:t,textHeight:n}}childCursor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:this.length,t=this.children.length;return t&&(e-=this.children[--t].length),new R(this.children,e,t)}computeBlockGapDeco(){let e=[],t=this.view.viewState;for(let n=0,r=0;;r++){let i=r==t.viewports.length?null:t.viewports[r],o=i?i.from-1:this.length;if(o>n){let r=(t.lineBlockAt(o).bottom-t.lineBlockAt(n).top)/this.view.scaleY;e.push(ce.replace({widget:new pt(r),block:!0,inclusive:!0,isBlockGap:!0}).range(n,o))}if(!i)break;n=i.to+1}return ce.set(e)}updateDeco(){let e=0,t=this.view.state.facet(it).map((t=>(this.dynamicDecorationMap[e++]="function"==typeof t)?t(this.view):t)),n=!1,i=this.view.state.facet(ot).map(((e,t)=>{let r="function"==typeof e;return r&&(n=!0),r?e(this.view):e}));for(i.length&&(this.dynamicDecorationMap[e++]=n,t.push(r.om.join(i))),this.decorations=[...t,this.computeBlockGapDeco(),this.view.viewState.lineGapDeco];en.anchor?-1:1);if(!r)return;!n.empty&&(t=this.coordsAt(n.anchor,n.anchor>n.head?-1:1))&&(r={left:Math.min(r.left,t.left),top:Math.min(r.top,t.top),right:Math.max(r.right,t.right),bottom:Math.max(r.bottom,t.bottom)});let i=ut(this.view),o={left:r.left-i.left,top:r.top-i.top,right:r.right+i.right,bottom:r.bottom+i.bottom},{offsetWidth:a,offsetHeight:s}=this.view.scrollDOM;!function(e,t,n,r,i,o,a,s){let l=e.ownerDocument,c=l.defaultView||window;for(let u=e,d=!1;u&&!d;)if(1==u.nodeType){let e,h=u==l.body,f=1,m=1;if(h)e=g(c);else{if(/^(fixed|sticky)$/.test(getComputedStyle(u).position)&&(d=!0),u.scrollHeight<=u.clientHeight&&u.scrollWidth<=u.clientWidth){u=u.assignedSlot||u.parentNode;continue}let t=u.getBoundingClientRect();({scaleX:f,scaleY:m}=b(u,t)),e={left:t.left,right:t.left+u.clientWidth*f,top:t.top,bottom:t.top+u.clientHeight*m}}let p=0,v=0;if("nearest"==i)t.top0&&t.bottom>e.bottom+v&&(v=t.bottom-e.bottom+v+a)):t.bottom>e.bottom&&(v=t.bottom-e.bottom+a,n<0&&t.top-v0&&t.right>e.right+p&&(p=t.right-e.right+p+o)):t.right>e.right&&(p=t.right-e.right+o,n<0&&t.lefte?t.left-e:Math.max(0,e-t.right)}function yt(e,t){return t.top>e?t.top-e:Math.max(0,e-t.bottom)}function kt(e,t){return e.topt.top+1}function Ot(e,t){return te.bottom?{top:e.top,left:e.left,right:e.right,bottom:t}:e}function xt(e,t,n){let r,i,o,a,s,l,u,d,h=!1;for(let m=e.firstChild;m;m=m.nextSibling){let e=c(m);for(let c=0;cg||a==g&&o>p){r=m,i=f,o=p,a=g;let s=g?n0?c0)}0==p?n>f.bottom&&(!u||u.bottomf.top)&&(l=m,d=f):u&&kt(u,f)?u=wt(u,f.bottom):d&&kt(d,f)&&(d=Ot(d,f.top))}}if(u&&u.bottom>=n?(r=s,i=u):d&&d.top<=n&&(r=l,i=d),!r)return{node:e,offset:0};let f=Math.max(i.left,Math.min(i.right,t));return 3==r.nodeType?St(r,f,n):h&&"false"!=r.contentEditable?xt(r,f,n):{node:e,offset:Array.prototype.indexOf.call(e.childNodes,r)+(t>=(i.left+i.right)/2?1:0)}}function St(e,t,n){let r=e.nodeValue.length,i=-1,o=1e9,a=0;for(let s=0;sn?c.top-n:n-c.bottom)-1;if(c.left-1<=t&&c.right+1>=t&&u=(c.left+c.right)/2,r=n;if(V.chrome||V.gecko){w(e,s).getBoundingClientRect().left==c.right&&(r=!n)}if(u<=0)return{node:e,offset:s+(r?1:0)};i=s+(r?1:0),o=u}}}return{node:e,offset:i>-1?i:a>0?e.nodeValue.length:0}}function _t(e,t,n){let r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:-1;var i,o;let a,s=e.contentDOM.getBoundingClientRect(),l=s.top+e.viewState.paddingTop,{docHeight:c}=e.viewState,{x:u,y:d}=t,h=d-l;if(h<0)return 0;if(h>c)return e.state.doc.length;for(let k=e.viewState.heightOracle.textHeight/2,O=!1;a=e.elementAtHeight(h),a.type!=le.Text;)for(;h=r>0?a.bottom+k:a.top-k,!(h>=0&&h<=c);){if(O)return n?null:0;O=!0,r=-r}d=l+h;let f=a.from;if(fe.viewport.to)return e.viewport.to==e.state.doc.length?e.state.doc.length:n?null:Tt(e,s,a,u,d);let m=e.dom.ownerDocument,p=e.root.elementFromPoint?e.root:m,g=p.elementFromPoint(u,d);g&&!e.contentDOM.contains(g)&&(g=null),g||(u=Math.max(s.left+1,Math.min(s.right-1,u)),g=p.elementFromPoint(u,d),g&&!e.contentDOM.contains(g)&&(g=null));let b,v=-1;if(g&&0!=(null===(i=e.docView.nearest(g))||void 0===i?void 0:i.isEditable))if(m.caretPositionFromPoint){let e=m.caretPositionFromPoint(u,d);e&&({offsetNode:b,offset:v}=e)}else if(m.caretRangeFromPoint){let t=m.caretRangeFromPoint(u,d);t&&(({startContainer:b,startOffset:v}=t),(!e.contentDOM.contains(b)||V.safari&&function(e,t,n){let r;if(3!=e.nodeType||t!=(r=e.nodeValue.length))return!1;for(let i=e.nextSibling;i;i=i.nextSibling)if(1!=i.nodeType||"BR"!=i.nodeName)return!1;return w(e,r-1,r).getBoundingClientRect().left>n}(b,v,u)||V.chrome&&function(e,t,n){if(0!=t)return!1;for(let i=e;;){let e=i.parentNode;if(!e||1!=e.nodeType||e.firstChild!=i)return!1;if(e.classList.contains("cm-line"))break;i=e}let r=1==e.nodeType?e.getBoundingClientRect():w(e,0,Math.max(e.nodeValue.length,1)).getBoundingClientRect();return n-r.left>5}(b,v,u))&&(b=void 0))}if(!b||!e.docView.dom.contains(b)){let t=oe.find(e.docView,f);if(!t)return h>a.top+a.height/2?a.to:a.from;({node:b,offset:v}=xt(t.dom,u,d))}let y=e.docView.nearest(b);if(!y)return null;if(y.isWidget&&1==(null===(o=y.dom)||void 0===o?void 0:o.nodeType)){let e=y.dom.getBoundingClientRect();return t.y1.5*e.defaultLineHeight){let t=e.viewState.heightOracle.textHeight;a+=Math.floor((o-n.top-.5*(e.defaultLineHeight-t))/t)*e.viewState.heightOracle.lineLength}let s=e.state.sliceDoc(n.from,n.to);return n.from+(0,r.kn)(s,a,e.state.tabSize)}function Et(e,t){let n=e.lineBlockAt(t);if(Array.isArray(n.type))for(let r of n.type)if(r.to>t||r.to==t&&(r.to==n.to||r.type==le.Text))return r;return n}function $t(e,t,n,r){let i=e.state.doc.lineAt(t.head),o=e.bidiSpans(i),a=e.textDirectionAt(i.from);for(let s=t,l=null;;){let t=Ne(i,o,a,s,n),c=ze;if(!t){if(i.number==(n?e.state.doc.lines:1))return s;c="\n",i=e.state.doc.line(i.number+(n?1:-1)),o=e.bidiSpans(i),t=e.visualLineSide(i,!n)}if(l){if(!l(c))return s}else{if(!r)return t;l=r(c)}s=t}}function At(e,t,n){for(;;){let r=0;for(let i of e)i.between(t-1,t+1,((e,i,o)=>{if(t>e&&tt(e))),n.from,t.head>n.from?-1:1);return i==n.from?n:r.OF.cursor(i,inull)),V.gecko&&function(e){on.has(e)||(on.add(e),e.addEventListener("copy",(()=>{})),e.addEventListener("cut",(()=>{})))}(e.contentDOM.ownerDocument)}handleEvent(e){(function(e,t){if(!t.bubbles)return!0;if(t.defaultPrevented)return!1;for(let n,r=t.target;r!=e.contentDOM;r=r.parentNode)if(!r||11==r.nodeType||(n=C.get(r))&&n.ignoreEvent(t))return!1;return!0})(this.view,e)&&!this.ignoreDuringComposition(e)&&("keydown"==e.type&&this.keydown(e)||this.runHandlers(e.type,e))}runHandlers(e,t){let n=this.handlers[e];if(n){for(let e of n.observers)e(this.view,t);for(let e of n.handlers){if(t.defaultPrevented)break;if(e(this.view,t)){t.preventDefault();break}}}}ensureHandlers(e){let t=It(e),n=this.handlers,r=this.view.contentDOM;for(let i in t)if("scroll"!=i){let e=!t[i].handlers.length,o=n[i];o&&e!=!o.handlers.length&&(r.removeEventListener(i,this.handleEvent),o=null),o||r.addEventListener(i,this.handleEvent,{passive:e})}for(let i in n)"scroll"==i||t[i]||r.removeEventListener(i,this.handleEvent);this.handlers=t}keydown(e){if(this.lastKeyCode=e.keyCode,this.lastKeyTime=Date.now(),9==e.keyCode&&Date.now()t.keyCode==e.keyCode)))&&!e.ctrlKey||zt.indexOf(e.key)>-1&&e.ctrlKey&&!e.shiftKey)?(229!=e.keyCode&&this.view.observer.forceFlush(),!1):(this.pendingIOSKey=t||e,setTimeout((()=>this.flushIOSKey()),250),!0)}flushIOSKey(e){let t=this.pendingIOSKey;return!!t&&(!("Enter"==t.key&&e&&e.from0||!!(V.safari&&!V.ios&&this.compositionPendingKey&&Date.now()-this.compositionEndedAt<100)&&(this.compositionPendingKey=!1,!0))}startMouseSelection(e){this.mouseSelection&&this.mouseSelection.destroy(),this.mouseSelection=e}update(e){this.mouseSelection&&this.mouseSelection.update(e),this.draggedContent&&e.docChanged&&(this.draggedContent=this.draggedContent.map(e.changes)),e.transactions.length&&(this.lastKeyCode=this.lastSelectionTime=0)}destroy(){this.mouseSelection&&this.mouseSelection.destroy()}}function Rt(e,t){return(n,r)=>{try{return t.call(e,r,n)}catch(i){Ze(n.state,i)}}}function It(e){let t=Object.create(null);function n(e){return t[e]||(t[e]={observers:[],handlers:[]})}for(let r of e){let e=r.spec;if(e&&e.domEventHandlers)for(let t in e.domEventHandlers){let i=e.domEventHandlers[t];i&&n(t).handlers.push(Rt(r.value,i))}if(e&&e.domEventObservers)for(let t in e.domEventObservers){let i=e.domEventObservers[t];i&&n(t).observers.push(Rt(r.value,i))}}for(let r in Qt)n(r).handlers.push(Qt[r]);for(let r in qt)n(r).observers.push(qt[r]);return t}const Dt=[{key:"Backspace",keyCode:8,inputType:"deleteContentBackward"},{key:"Enter",keyCode:13,inputType:"insertParagraph"},{key:"Enter",keyCode:13,inputType:"insertLineBreak"},{key:"Delete",keyCode:46,inputType:"deleteContentForward"}],zt="dthko",Nt=[16,17,18,20,91,92,224,225];function Lt(e){return.7*Math.max(0,e)+8}class Mt{constructor(e,t,n,i){this.view=e,this.startEvent=t,this.style=n,this.mustSelect=i,this.scrollSpeed={x:0,y:0},this.scrolling=-1,this.lastEvent=t,this.scrollParent=function(e){let t=e.ownerDocument;for(let n=e.parentNode;n&&n!=t.body;)if(1==n.nodeType){if(n.scrollHeight>n.clientHeight||n.scrollWidth>n.clientWidth)return n;n=n.assignedSlot||n.parentNode}else{if(11!=n.nodeType)break;n=n.host}return null}(e.contentDOM),this.atoms=e.state.facet(at).map((t=>t(e)));let o=e.contentDOM.ownerDocument;o.addEventListener("mousemove",this.move=this.move.bind(this)),o.addEventListener("mouseup",this.up=this.up.bind(this)),this.extend=t.shiftKey,this.multiple=e.state.facet(r.$t.allowMultipleSelections)&&function(e,t){let n=e.state.facet(Me);return n.length?n[0](t):V.mac?t.metaKey:t.ctrlKey}(e,t),this.dragging=!(!function(e,t){let{main:n}=e.state.selection;if(n.empty)return!1;let r=a(e.root);if(!r||0==r.rangeCount)return!0;let i=r.getRangeAt(0).getClientRects();for(let o=0;o=t.clientX&&e.top<=t.clientY&&e.bottom>=t.clientY)return!0}return!1}(e,t)||1!=Kt(t))&&null}start(e){!1===this.dragging&&this.select(e)}move(e){var t,n,r;if(0==e.buttons)return this.destroy();if(this.dragging||null==this.dragging&&(n=this.startEvent,r=e,Math.max(Math.abs(n.clientX-r.clientX),Math.abs(n.clientY-r.clientY))<10))return;this.select(this.lastEvent=e);let i=0,o=0,a=(null===(t=this.scrollParent)||void 0===t?void 0:t.getBoundingClientRect())||{left:0,top:0,right:this.view.win.innerWidth,bottom:this.view.win.innerHeight},s=ut(this.view);e.clientX-s.left<=a.left+6?i=-Lt(a.left-e.clientX):e.clientX+s.right>=a.right-6&&(i=Lt(e.clientX-a.right)),e.clientY-s.top<=a.top+6?o=-Lt(a.top-e.clientY):e.clientY+s.bottom>=a.bottom-6&&(o=Lt(e.clientY-a.bottom)),this.setScrollSpeed(i,o)}up(e){null==this.dragging&&this.select(this.lastEvent),this.dragging||e.preventDefault(),this.destroy()}destroy(){this.setScrollSpeed(0,0);let e=this.view.contentDOM.ownerDocument;e.removeEventListener("mousemove",this.move),e.removeEventListener("mouseup",this.up),this.view.inputState.mouseSelection=this.view.inputState.draggedContent=null}setScrollSpeed(e,t){this.scrollSpeed={x:e,y:t},e||t?this.scrolling<0&&(this.scrolling=setInterval((()=>this.scroll()),50)):this.scrolling>-1&&(clearInterval(this.scrolling),this.scrolling=-1)}scroll(){this.scrollParent?(this.scrollParent.scrollLeft+=this.scrollSpeed.x,this.scrollParent.scrollTop+=this.scrollSpeed.y):this.view.win.scrollBy(this.scrollSpeed.x,this.scrollSpeed.y),!1===this.dragging&&this.select(this.lastEvent)}skipAtoms(e){let t=null;for(let n=0;nthis.select(this.lastEvent)),20)}}const Qt=Object.create(null),qt=Object.create(null),Wt=V.ie&&V.ie_version<15||V.ios&&V.webkit_version<604;function Bt(e,t){let n,{state:i}=e,o=1,a=i.toText(t),s=a.lines==i.selection.ranges.length;if(null!=en&&i.selection.ranges.every((e=>e.empty))&&en==a.toString()){let e=-1;n=i.changeByRange((n=>{let l=i.doc.lineAt(n.from);if(l.from==e)return{range:n};e=l.from;let c=i.toText((s?a.line(o++).text:t)+i.lineBreak);return{changes:{from:l.from,insert:c},range:r.OF.cursor(n.from+c.length)}}))}else n=s?i.changeByRange((e=>{let t=a.line(o++);return{changes:{from:e.from,to:e.to,insert:t.text},range:r.OF.cursor(e.from+t.length)}})):i.replaceSelection(a);e.dispatch(n,{userEvent:"input.paste",scrollIntoView:!0})}function Ft(e,t,n,i){if(1==i)return r.OF.cursor(t,n);if(2==i)return function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:1,i=e.charCategorizer(t),o=e.doc.lineAt(t),a=t-o.from;if(0==o.length)return r.OF.cursor(t);0==a?n=1:a==o.length&&(n=-1);let s=a,l=a;n<0?s=(0,r.zK)(o.text,a,!1):l=(0,r.zK)(o.text,a);let c=i(o.text.slice(s,l));for(;s>0;){let e=(0,r.zK)(o.text,s,!1);if(i(o.text.slice(e,s))!=c)break;s=e}for(;l{e.inputState.lastScrollTop=e.scrollDOM.scrollTop,e.inputState.lastScrollLeft=e.scrollDOM.scrollLeft},Qt.keydown=(e,t)=>(e.inputState.setSelectionOrigin("select"),27==t.keyCode&&(e.inputState.lastEscPress=Date.now()),!1),qt.touchstart=(e,t)=>{e.inputState.lastTouchTime=Date.now(),e.inputState.setSelectionOrigin("select.pointer")},qt.touchmove=e=>{e.inputState.setSelectionOrigin("select.pointer")},Qt.mousedown=(e,t)=>{if(e.observer.flush(),e.inputState.lastTouchTime>Date.now()-2e3)return!1;let n=null;for(let r of e.state.facet(qe))if(n=r(e,t),n)break;if(n||0!=t.button||(n=function(e,t){let n=Gt(e,t),i=Kt(t),o=e.state.selection;return{update(e){e.docChanged&&(n.pos=e.changes.mapPos(n.pos),o=o.map(e.changes))},get(t,a,s){let l,c=Gt(e,t),u=Ft(e,c.pos,c.bias,i);if(n.pos!=c.pos&&!a){let t=Ft(e,n.pos,n.bias,i),o=Math.min(t.from,u.from),a=Math.max(t.to,u.to);u=o1&&(l=function(e,t){for(let n=0;n=t)return r.OF.create(e.ranges.slice(0,n).concat(e.ranges.slice(n+1)),e.mainIndex==n?0:e.mainIndex-(e.mainIndex>n?1:0))}return null}(o,c.pos))?l:s?o.addRange(u):r.OF.create([u])}}}(e,t)),n){let r=!e.hasFocus;e.inputState.startMouseSelection(new Mt(e,t,n,r)),r&&e.observer.ignore((()=>O(e.contentDOM)));let i=e.inputState.mouseSelection;if(i)return i.start(t),!1===i.dragging}return!1};let Ut=(e,t)=>e>=t.top&&e<=t.bottom,jt=(e,t,n)=>Ut(t,n)&&e>=n.left&&e<=n.right;function Vt(e,t,n,r){let i=oe.find(e.docView,t);if(!i)return 1;let o=t-i.posAtStart;if(0==o)return 1;if(o==i.length)return-1;let a=i.coordsAt(o,-1);if(a&&jt(n,r,a))return-1;let s=i.coordsAt(o,1);return s&&jt(n,r,s)?1:a&&Ut(r,a)?-1:1}function Gt(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1);return{pos:n,bias:Vt(e,n,t.clientX,t.clientY)}}const Xt=V.ie&&V.ie_version<=11;let Yt=null,Zt=0,Ht=0;function Kt(e){if(!Xt)return e.detail;let t=Yt,n=Ht;return Yt=e,Ht=Date.now(),Zt=!t||n>Date.now()-400&&Math.abs(t.clientX-e.clientX)<2&&Math.abs(t.clientY-e.clientY)<2?(Zt+1)%3:1}function Jt(e,t,n,r){if(!n)return;let i=e.posAtCoords({x:t.clientX,y:t.clientY},!1),{draggedContent:o}=e.inputState,a=r&&o&&function(e,t){let n=e.state.facet(Qe);return n.length?n[0](t):V.mac?!t.altKey:!t.ctrlKey}(e,t)?{from:o.from,to:o.to}:null,s={from:i,insert:n},l=e.state.changes(a?[a,s]:s);e.focus(),e.dispatch({changes:l,selection:{anchor:l.mapPos(i,-1),head:l.mapPos(i,1)},userEvent:a?"move.drop":"input.drop"}),e.inputState.draggedContent=null}Qt.dragstart=(e,t)=>{let{selection:{main:n}}=e.state;if(t.target.draggable){let i=e.docView.nearest(t.target);if(i&&i.isWidget){let e=i.posAtStart,t=e+i.length;(e>=n.to||t<=n.from)&&(n=r.OF.range(e,t))}}let{inputState:i}=e;return i.mouseSelection&&(i.mouseSelection.dragging=!0),i.draggedContent=n,t.dataTransfer&&(t.dataTransfer.setData("Text",e.state.sliceDoc(n.from,n.to)),t.dataTransfer.effectAllowed="copyMove"),!1},Qt.dragend=e=>(e.inputState.draggedContent=null,!1),Qt.drop=(e,t)=>{if(!t.dataTransfer)return!1;if(e.state.readOnly)return!0;let n=t.dataTransfer.files;if(n&&n.length){let r=Array(n.length),i=0,o=()=>{++i==n.length&&Jt(e,t,r.filter((e=>null!=e)).join(e.state.lineBreak),!1)};for(let e=0;e{/[\x00-\x08\x0e-\x1f]{2}/.test(t.result)||(r[e]=t.result),o()},t.readAsText(n[e])}return!0}{let n=t.dataTransfer.getData("Text");if(n)return Jt(e,t,n,!0),!0}return!1},Qt.paste=(e,t)=>{if(e.state.readOnly)return!0;e.observer.flush();let n=Wt?null:t.clipboardData;return n?(Bt(e,n.getData("text/plain")||n.getData("text/uri-list")),!0):(function(e){let t=e.dom.parentNode;if(!t)return;let n=t.appendChild(document.createElement("textarea"));n.style.cssText="position: fixed; left: -10000px; top: 10px",n.focus(),setTimeout((()=>{e.focus(),n.remove(),Bt(e,n.value)}),50)}(e),!1)};let en=null;Qt.copy=Qt.cut=(e,t)=>{let{text:n,ranges:r,linewise:i}=function(e){let t=[],n=[],r=!1;for(let i of e.selection.ranges)i.empty||(t.push(e.sliceDoc(i.from,i.to)),n.push(i));if(!t.length){let i=-1;for(let{from:r}of e.selection.ranges){let o=e.doc.lineAt(r);o.number>i&&(t.push(o.text),n.push({from:o.from,to:Math.min(e.doc.length,o.to+1)})),i=o.number}r=!0}return{text:t.join(e.lineBreak),ranges:n,linewise:r}}(e.state);if(!n&&!i)return!1;en=i?n:null,"cut"!=t.type||e.state.readOnly||e.dispatch({changes:r,scrollIntoView:!0,userEvent:"delete.cut"});let o=Wt?null:t.clipboardData;return o?(o.clearData(),o.setData("text/plain",n),!0):(function(e,t){let n=e.dom.parentNode;if(!n)return;let r=n.appendChild(document.createElement("textarea"));r.style.cssText="position: fixed; left: -10000px; top: 10px",r.value=t,r.focus(),r.selectionEnd=t.length,r.selectionStart=0,setTimeout((()=>{r.remove(),e.focus()}),50)}(e,n),!1)};const tn=r.YH.define();function nn(e,t){let n=[];for(let r of e.facet(Ue)){let i=r(e,t);i&&n.push(i)}return n?e.update({effects:n,annotations:tn.of(!0)}):null}function rn(e){setTimeout((()=>{let t=e.hasFocus;if(t!=e.inputState.notifiedFocused){let n=nn(e.state,t);n?e.dispatch(n):e.update([])}}),10)}qt.focus=e=>{e.inputState.lastFocusTime=Date.now(),e.scrollDOM.scrollTop||!e.inputState.lastScrollTop&&!e.inputState.lastScrollLeft||(e.scrollDOM.scrollTop=e.inputState.lastScrollTop,e.scrollDOM.scrollLeft=e.inputState.lastScrollLeft),rn(e)},qt.blur=e=>{e.observer.clearSelectionRange(),rn(e)},qt.compositionstart=qt.compositionupdate=e=>{null==e.inputState.compositionFirstChange&&(e.inputState.compositionFirstChange=!0),e.inputState.composing<0&&(e.inputState.composing=0)},qt.compositionend=e=>{e.inputState.composing=-1,e.inputState.compositionEndedAt=Date.now(),e.inputState.compositionPendingKey=!0,e.inputState.compositionPendingChange=e.observer.pendingRecords().length>0,e.inputState.compositionFirstChange=null,V.chrome&&V.android?e.observer.flushSoon():e.inputState.compositionPendingChange?Promise.resolve().then((()=>e.observer.flush())):setTimeout((()=>{e.inputState.composing<0&&e.docView.hasComposition&&e.update([])}),50)},qt.contextmenu=e=>{e.inputState.lastContextMenu=Date.now()},Qt.beforeinput=(e,t)=>{var n;let r;if(V.chrome&&V.android&&(r=Dt.find((e=>e.inputType==t.inputType)))&&(e.observer.delayAndroidKey(r.key,r.keyCode),"Backspace"==r.key||"Delete"==r.key)){let t=(null===(n=window.visualViewport)||void 0===n?void 0:n.height)||0;setTimeout((()=>{var n;((null===(n=window.visualViewport)||void 0===n?void 0:n.height)||0)>t+10&&e.hasFocus&&(e.contentDOM.blur(),e.focus())}),100)}return V.ios&&"deleteContentForward"==t.inputType&&e.observer.flushSoon(),V.safari&&"insertText"==t.inputType&&e.inputState.composing>=0&&setTimeout((()=>qt.compositionend(e,t)),20),!1};const on=new Set;const an=["pre-wrap","normal","pre-line","break-spaces"];class sn{constructor(e){this.lineWrapping=e,this.doc=r.EY.empty,this.heightSamples={},this.lineHeight=14,this.charWidth=7,this.textHeight=14,this.lineLength=30,this.heightChanged=!1}heightForGap(e,t){let n=this.doc.lineAt(t).number-this.doc.lineAt(e).number+1;return this.lineWrapping&&(n+=Math.max(0,Math.ceil((t-e-n*this.lineLength*.5)/this.lineLength))),this.lineHeight*n}heightForLine(e){if(!this.lineWrapping)return this.lineHeight;return(1+Math.max(0,Math.ceil((e-this.lineLength)/(this.lineLength-5))))*this.lineHeight}setDoc(e){return this.doc=e,this}mustRefreshForWrapping(e){return an.indexOf(e)>-1!=this.lineWrapping}mustRefreshForHeights(e){let t=!1;for(let n=0;n-1,s=Math.round(t)!=Math.round(this.lineHeight)||this.lineWrapping!=a;if(this.lineWrapping=a,this.lineHeight=t,this.charWidth=n,this.textHeight=r,this.lineLength=i,s){this.heightSamples={};for(let e=0;e2&&void 0!==arguments[2]?arguments[2]:2;this.length=e,this.height=t,this.flags=n}get outdated(){return(2&this.flags)>0}set outdated(e){this.flags=(e?2:0)|-3&this.flags}setHeight(e,t){this.height!=t&&(Math.abs(this.height-t)>dn&&(e.heightChanged=!0),this.height=t)}replace(e,t,n){return hn.of(n)}decomposeLeft(e,t){t.push(this)}decomposeRight(e,t){t.push(this)}applyChanges(e,t,n,r){let i=this,o=n.doc;for(let a=r.length-1;a>=0;a--){let{fromA:s,toA:l,fromB:c,toB:u}=r[a],d=i.lineAt(s,un.ByPosNoHeight,n.setDoc(t),0,0),h=d.to>=l?d:i.lineAt(l,un.ByPosNoHeight,n,0,0);for(u+=h.to-l,l=h.to;a>0&&d.from<=r[a-1].toA;)s=r[a-1].fromA,c=r[a-1].fromB,a--,s2*i){let i=e[t-1];i.break?e.splice(--t,1,i.left,null,i.right):e.splice(--t,1,i.left,i.right),n+=1+i.break,r-=i.size}else{if(!(i>2*r))break;{let t=e[n];t.break?e.splice(n,1,t.left,null,t.right):e.splice(n,1,t.left,t.right),n+=2+t.break,i-=t.size}}else if(r=i&&o(this.blockAt(0,n,r,i))}updateHeight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>3?arguments[3]:void 0;return n&&n.from<=t&&n.more&&this.setHeight(e,n.heights[n.index++]),this.outdated=!1,this}toString(){return"block(".concat(this.length,")")}}class mn extends fn{constructor(e,t){super(e,t,null),this.collapsed=0,this.widgetHeight=0,this.breaks=0}blockAt(e,t,n,r){return new cn(r,this.length,n,this.height,this.breaks)}replace(e,t,n){let r=n[0];return 1==n.length&&(r instanceof mn||r instanceof pn&&4&r.flags)&&Math.abs(this.length-r.length)<10?(r instanceof pn?r=new mn(r.length,this.height):r.height=this.height,this.outdated||(r.outdated=!1),r):hn.of(n)}updateHeight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0;return r&&r.from<=t&&r.more?this.setHeight(e,r.heights[r.index++]):(n||this.outdated)&&this.setHeight(e,Math.max(this.widgetHeight,e.heightForLine(this.length-this.collapsed))+this.breaks*e.lineHeight),this.outdated=!1,this}toString(){return"line(".concat(this.length).concat(this.collapsed?-this.collapsed:"").concat(this.widgetHeight?":"+this.widgetHeight:"",")")}}class pn extends hn{constructor(e){super(e,0)}heightMetrics(e,t){let n,r=e.doc.lineAt(t).number,i=e.doc.lineAt(t+this.length).number,o=i-r+1,a=0;if(e.lineWrapping){let t=Math.min(this.height,e.lineHeight*o);n=t/o,this.length>o+1&&(a=(this.height-t)/(this.length-o-1))}else n=this.height/o;return{firstLine:r,lastLine:i,perLine:n,perChar:a}}blockAt(e,t,n,r){let{firstLine:i,lastLine:o,perLine:a,perChar:s}=this.heightMetrics(t,r);if(t.lineWrapping){let i=r+(e0){let e=n[n.length-1];e instanceof pn?n[n.length-1]=new pn(e.length+r):n.push(null,new pn(r-1))}if(e>0){let t=n[0];t instanceof pn?n[0]=new pn(e+t.length):n.unshift(new pn(e-1),null)}return hn.of(n)}decomposeLeft(e,t){t.push(new pn(e-1),null)}decomposeRight(e,t){t.push(null,new pn(this.length-e-1))}updateHeight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,i=t+this.length;if(r&&r.from<=t+this.length&&r.more){let n=[],o=Math.max(t,r.from),a=-1;for(r.from>t&&n.push(new pn(r.from-t-1).updateHeight(e,t));o<=i&&r.more;){let t=e.doc.lineAt(o).length;n.length&&n.push(null);let i=r.heights[r.index++];-1==a?a=i:Math.abs(i-a)>=dn&&(a=-2);let s=new mn(t,i);s.outdated=!1,n.push(s),o+=t+1}o<=i&&n.push(null,new pn(i-o).updateHeight(e,o));let s=hn.of(n);return(a<0||Math.abs(s.height-this.height)>=dn||Math.abs(a-this.heightMetrics(e,t).perLine)>=dn)&&(e.heightChanged=!0),s}return(n||this.outdated)&&(this.setHeight(e,e.heightForGap(t,t+this.length)),this.outdated=!1),this}toString(){return"gap(".concat(this.length,")")}}class gn extends hn{constructor(e,t,n){super(e.length+t+n.length,e.height+n.height,t|(e.outdated||n.outdated?2:0)),this.left=e,this.right=n,this.size=e.size+n.size}get break(){return 1&this.flags}blockAt(e,t,n,r){let i=n+this.left.height;return ea))return l;let c=t==un.ByPosNoHeight?un.ByPosNoHeight:un.ByPos;return s?l.join(this.right.lineAt(a,c,n,o,a)):this.left.lineAt(a,c,n,r,i).join(l)}forEachLine(e,t,n,r,i,o){let a=r+this.left.height,s=i+this.left.length+this.break;if(this.break)e=s&&this.right.forEachLine(e,t,n,a,s,o);else{let l=this.lineAt(s,un.ByPos,n,r,i);e=e&&l.from<=t&&o(l),t>l.to&&this.right.forEachLine(l.to+1,t,n,a,s,o)}}replace(e,t,n){let r=this.left.length+this.break;if(tthis.left.length)return this.balanced(this.left,this.right.replace(e-r,t-r,n));let i=[];e>0&&this.decomposeLeft(e,i);let o=i.length;for(let a of n)i.push(a);if(e>0&&bn(i,o-1),t=n&&t.push(null)),e>n&&this.right.decomposeLeft(e-n,t)}decomposeRight(e,t){let n=this.left.length,r=n+this.break;if(e>=r)return this.right.decomposeRight(e-r,t);e2*t.size||t.size>2*e.size?hn.of(this.break?[e,null,t]:[e,t]):(this.left=e,this.right=t,this.height=e.height+t.height,this.outdated=e.outdated||t.outdated,this.size=e.size+t.size,this.length=e.length+this.break+t.length,this)}updateHeight(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=arguments.length>2&&void 0!==arguments[2]&&arguments[2],r=arguments.length>3?arguments[3]:void 0,{left:i,right:o}=this,a=t+i.length+this.break,s=null;return r&&r.from<=t+i.length&&r.more?s=i=i.updateHeight(e,t,n,r):i.updateHeight(e,t,n),r&&r.from<=a+o.length&&r.more?s=o=o.updateHeight(e,a,n,r):o.updateHeight(e,a,n),s?this.balanced(i,o):(this.height=this.left.height+this.right.height,this.outdated=!1,this)}toString(){return this.left+(this.break?" ":"-")+this.right}}function bn(e,t){let n,r;null==e[t]&&(n=e[t-1])instanceof pn&&(r=e[t+1])instanceof pn&&e.splice(t-1,3,new pn(n.length+1+r.length))}class vn{constructor(e,t){this.pos=e,this.oracle=t,this.nodes=[],this.lineStart=-1,this.lineEnd=-1,this.covering=null,this.writtenTo=e}get isCovered(){return this.covering&&this.nodes[this.nodes.length-1]==this.covering}span(e,t){if(this.lineStart>-1){let e=Math.min(t,this.lineEnd),n=this.nodes[this.nodes.length-1];n instanceof mn?n.length+=e-this.pos:(e>this.pos||!this.isCovered)&&this.nodes.push(new mn(e-this.pos,-1)),this.writtenTo=e,t>e&&(this.nodes.push(null),this.writtenTo++,this.lineStart=-1)}this.pos=t}point(e,t,n){if(e=5)&&this.addLineDeco(r,i,o)}else t>e&&this.span(e,t);this.lineEnd>-1&&this.lineEnd-1)return;let{from:e,to:t}=this.oracle.doc.lineAt(this.pos);this.lineStart=e,this.lineEnd=t,this.writtenToe&&this.nodes.push(new mn(this.pos-e,-1)),this.writtenTo=this.pos}blankContent(e,t){let n=new pn(t-e);return this.oracle.doc.lineAt(e).to==t&&(n.flags|=4),n}ensureLine(){this.enterLine();let e=this.nodes.length?this.nodes[this.nodes.length-1]:null;if(e instanceof mn)return e;let t=new mn(0,-1);return this.nodes.push(t),t}addBlock(e){this.enterLine();let t=e.deco;t&&t.startSide>0&&!this.isCovered&&this.ensureLine(),this.nodes.push(e),this.writtenTo=this.pos=this.pos+e.length,t&&t.endSide>0&&(this.covering=e)}addLineDeco(e,t,n){let r=this.ensureLine();r.length+=n,r.collapsed+=n,r.widgetHeight=Math.max(r.widgetHeight,e),r.breaks+=t,this.writtenTo=this.pos=this.pos+n}finish(e){let t=0==this.nodes.length?null:this.nodes[this.nodes.length-1];!(this.lineStart>-1)||t instanceof mn||this.isCovered?(this.writtenTot.clientHeight||t.scrollWidth>t.clientWidth)&&"visible"!=n.overflow){let n=t.getBoundingClientRect();o=Math.max(o,n.left),a=Math.min(a,n.right),s=Math.max(s,n.top),l=c==e.parentNode?n.bottom:Math.min(l,n.bottom)}c="absolute"==n.position||"fixed"==n.position?t.offsetParent:t.parentNode}else{if(11!=c.nodeType)break;c=c.host}return{left:o-n.left,right:Math.max(o,a)-n.left,top:s-(n.top+t),bottom:Math.max(s,l)-(n.top+t)}}function On(e,t){let n=e.getBoundingClientRect();return{left:0,right:n.right-n.left,top:t,bottom:n.bottom-(n.top+t)}}class wn{constructor(e,t,n){this.from=e,this.to=t,this.size=n}static same(e,t){if(e.length!=t.length)return!1;for(let n=0;n"function"!=typeof e&&"cm-lineWrapping"==e.class));this.heightOracle=new sn(t),this.stateDeco=e.facet(it).filter((e=>"function"!=typeof e)),this.heightMap=hn.empty().applyChanges(this.stateDeco,r.EY.empty,this.heightOracle.setDoc(e.doc),[new ht(0,0,0,e.doc.length)]),this.viewport=this.getViewport(0,null),this.updateViewportLines(),this.updateForViewport(),this.lineGaps=this.ensureLineGaps([]),this.lineGapDeco=ce.set(this.lineGaps.map((e=>e.draw(this,!1)))),this.computeVisibleRanges()}updateForViewport(){let e=[this.viewport],{main:t}=this.state.selection;for(let n=0;n<=1;n++){let r=n?t.head:t.anchor;if(!e.some((e=>{let{from:t,to:n}=e;return r>=t&&r<=n}))){let{from:t,to:n}=this.lineBlockAt(r);e.push(new _n(t,n))}}this.viewports=e.sort(((e,t)=>e.from-t.from)),this.scaler=this.heightMap.height<=7e6?An:new Cn(this.heightOracle,this.heightMap,this.viewports)}updateViewportLines(){this.viewportLines=[],this.heightMap.forEachLine(this.viewport.from,this.viewport.to,this.heightOracle.setDoc(this.state.doc),0,0,(e=>{this.viewportLines.push(1==this.scaler.scale?e:Pn(e,this.scaler))}))}update(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;this.state=e.state;let n=this.stateDeco;this.stateDeco=this.state.facet(it).filter((e=>"function"!=typeof e));let i=e.changedRanges,o=ht.extendWithRanges(i,function(e,t,n){let i=new yn;return r.om.compare(e,t,n,i,0),i.changes}(n,this.stateDeco,e?e.changes:r.VR.empty(this.state.doc.length))),a=this.heightMap.height,s=this.scrolledToBottom?null:this.scrollAnchorAt(this.scrollTop);this.heightMap=this.heightMap.applyChanges(this.stateDeco,e.startState.doc,this.heightOracle.setDoc(this.state.doc),o),this.heightMap.height!=a&&(e.flags|=2),s?(this.scrollAnchorPos=e.changes.mapPos(s.from,-1),this.scrollAnchorHeight=s.top):(this.scrollAnchorPos=-1,this.scrollAnchorHeight=this.heightMap.height);let l=o.length?this.mapViewport(this.viewport,e.changes):this.viewport;(t&&(t.range.headl.to)||!this.viewportIsAppropriate(l))&&(l=this.getViewport(0,t));let c=!e.changes.empty||2&e.flags||l.from!=this.viewport.from||l.to!=this.viewport.to;this.viewport=l,this.updateForViewport(),c&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(this.mapLineGaps(this.lineGaps,e.changes))),e.flags|=this.computeVisibleRanges(),t&&(this.scrollTarget=t),!this.mustEnforceCursorAssoc&&e.selectionSet&&e.view.lineWrapping&&e.state.selection.main.empty&&e.state.selection.main.assoc&&!e.state.facet(Ve)&&(this.mustEnforceCursorAssoc=!0)}measure(e){let t=e.contentDOM,n=window.getComputedStyle(t),i=this.heightOracle,o=n.whiteSpace;this.defaultTextDirection="rtl"==n.direction?ve.RTL:ve.LTR;let a=this.heightOracle.mustRefreshForWrapping(o),s=t.getBoundingClientRect(),l=a||this.mustMeasureContent||this.contentDOMHeight!=s.height;this.contentDOMHeight=s.height,this.mustMeasureContent=!1;let c=0,u=0;if(s.width&&s.height){let{scaleX:e,scaleY:n}=b(t,s);(e>.005&&Math.abs(this.scaleX-e)>.005||n>.005&&Math.abs(this.scaleY-n)>.005)&&(this.scaleX=e,this.scaleY=n,c|=8,a=l=!0)}let d=(parseInt(n.paddingTop)||0)*this.scaleY,h=(parseInt(n.paddingBottom)||0)*this.scaleY;this.paddingTop==d&&this.paddingBottom==h||(this.paddingTop=d,this.paddingBottom=h,c|=10),this.editorWidth!=e.scrollDOM.clientWidth&&(i.lineWrapping&&(l=!0),this.editorWidth=e.scrollDOM.clientWidth,c|=8);let f=e.scrollDOM.scrollTop*this.scaleY;this.scrollTop!=f&&(this.scrollAnchorHeight=-1,this.scrollTop=f),this.scrolledToBottom=_(e.scrollDOM);let m=(this.printing?On:kn)(t,this.paddingTop),p=m.top-this.pixelViewport.top,g=m.bottom-this.pixelViewport.bottom;this.pixelViewport=m;let v=this.pixelViewport.bottom>this.pixelViewport.top&&this.pixelViewport.right>this.pixelViewport.left;if(v!=this.inView&&(this.inView=v,v&&(l=!0)),!this.inView&&!this.scrollTarget)return 0;let y=s.width;if(this.contentDOMWidth==y&&this.editorHeight==e.scrollDOM.clientHeight||(this.contentDOMWidth=s.width,this.editorHeight=e.scrollDOM.clientHeight,c|=8),l){let t=e.docView.measureVisibleLineHeights(this.viewport);if(i.mustRefreshForHeights(t)&&(a=!0),a||i.lineWrapping&&Math.abs(y-this.contentDOMWidth)>i.charWidth){let{lineHeight:n,charWidth:r,textHeight:s}=e.docView.measureTextSize();a=n>0&&i.refresh(o,n,r,s,y/r,t),a&&(e.docView.minWidth=0,c|=8)}p>0&&g>0?u=Math.max(p,g):p<0&&g<0&&(u=Math.min(p,g)),i.heightChanged=!1;for(let n of this.viewports){let o=n.from==this.viewport.from?t:e.docView.measureVisibleLineHeights(n);this.heightMap=(a?hn.empty().applyChanges(this.stateDeco,r.EY.empty,this.heightOracle,[new ht(0,0,0,e.state.doc.length)]):this.heightMap).updateHeight(i,0,a,new ln(n.from,o))}i.heightChanged&&(c|=2)}let k=!this.viewportIsAppropriate(this.viewport,u)||this.scrollTarget&&(this.scrollTarget.range.headthis.viewport.to);return k&&(this.viewport=this.getViewport(u,this.scrollTarget)),this.updateForViewport(),(2&c||k)&&this.updateViewportLines(),(this.lineGaps.length||this.viewport.to-this.viewport.from>4e3)&&this.updateLineGaps(this.ensureLineGaps(a?[]:this.lineGaps,e)),c|=this.computeVisibleRanges(),this.mustEnforceCursorAssoc&&(this.mustEnforceCursorAssoc=!1,e.docView.enforceCursorAssoc()),c}get visibleTop(){return this.scaler.fromDOM(this.pixelViewport.top)}get visibleBottom(){return this.scaler.fromDOM(this.pixelViewport.bottom)}getViewport(e,t){let n=.5-Math.max(-.5,Math.min(.5,e/1e3/2)),r=this.heightMap,i=this.heightOracle,{visibleTop:o,visibleBottom:a}=this,s=new _n(r.lineAt(o-1e3*n,un.ByHeight,i,0,0).from,r.lineAt(a+1e3*(1-n),un.ByHeight,i,0,0).to);if(t){let{head:e}=t.range;if(es.to){let n,o=Math.min(this.editorHeight,this.pixelViewport.bottom-this.pixelViewport.top),a=r.lineAt(e,un.ByPos,i,0,0);n="center"==t.y?(a.top+a.bottom)/2-o/2:"start"==t.y||"nearest"==t.y&&e1&&void 0!==arguments[1]?arguments[1]:0;if(!this.inView)return!0;let{top:i}=this.heightMap.lineAt(t,un.ByPos,this.heightOracle,0,0),{bottom:o}=this.heightMap.lineAt(n,un.ByPos,this.heightOracle,0,0),{visibleTop:a,visibleBottom:s}=this;return(0==t||i<=a-Math.max(10,Math.min(-r,250)))&&(n==this.state.doc.length||o>=s+Math.max(10,Math.min(r,250)))&&i>a-2e3&&o>1,a=i<<1;if(this.defaultTextDirection!=ve.LTR&&!n)return[];let s=[],l=(i,a,c,u)=>{if(a-ii&&ee.from>=c.from&&e.to<=c.to&&Math.abs(e.from-i)e.fromt))));if(!f){if(ae.from<=a&&e.to>=a))){let e=t.moveToLineBoundary(r.OF.cursor(a),!1,!0).head;e>i&&(a=e)}f=new wn(i,a,this.gapSize(c,i,a,u))}s.push(f)};for(let r of this.viewportLines){if(r.lengthr.from&&l(r.from,t,r,e),oe.draw(this,this.heightOracle.lineWrapping)))))}computeVisibleRanges(){let e=this.stateDeco;this.lineGaps.length&&(e=e.concat(this.lineGapDeco));let t=[];r.om.spans(e,this.viewport.from,this.viewport.to,{span(e,n){t.push({from:e,to:n})},point(){}},20);let n=t.length!=this.visibleRanges.length||this.visibleRanges.some(((e,n)=>e.from!=t[n].from||e.to!=t[n].to));return this.visibleRanges=t,n?4:0}lineBlockAt(e){return e>=this.viewport.from&&e<=this.viewport.to&&this.viewportLines.find((t=>t.from<=e&&t.to>=e))||Pn(this.heightMap.lineAt(e,un.ByPos,this.heightOracle,0,0),this.scaler)}lineBlockAtHeight(e){return Pn(this.heightMap.lineAt(this.scaler.fromDOM(e),un.ByHeight,this.heightOracle,0,0),this.scaler)}scrollAnchorAt(e){let t=this.lineBlockAtHeight(e+8);return t.from>=this.viewport.from||this.viewportLines[0].top-e>200?t:this.viewportLines[0]}elementAtHeight(e){return Pn(this.heightMap.blockAt(this.scaler.fromDOM(e),this.heightOracle,0,0),this.scaler)}get docHeight(){return this.scaler.toDOM(this.heightMap.height)}get contentHeight(){return this.docHeight+this.paddingTop+this.paddingBottom}}class _n{constructor(e,t){this.from=e,this.to=t}}function Tn(e,t,n){let i=[],o=e,a=0;return r.om.spans(n,e,t,{span(){},point(e,t){e>o&&(i.push({from:o,to:e}),a+=e-o),o=t}},20),o=1)return r[r.length-1].to;let i=Math.floor(n*t);for(let o=0;;o++){let{from:e,to:t}=r[o],n=t-e;if(i<=n)return e+i;i-=n}}function $n(e,t){let n=0;for(let{from:r,to:i}of e.ranges){if(t<=i){n+=t-r;break}n+=i-r}return n/e.total}const An={toDOM:e=>e,fromDOM:e=>e,scale:1};class Cn{constructor(e,t,n){let r=0,i=0,o=0;this.viewports=n.map((n=>{let{from:i,to:o}=n,a=t.lineAt(i,un.ByPos,e,0,0).top,s=t.lineAt(o,un.ByPos,e,0,0).bottom;return r+=s-a,{from:i,to:o,top:a,bottom:s,domTop:0,domBottom:0}})),this.scale=(7e6-r)/(t.height-r);for(let a of this.viewports)a.domTop=o+(a.top-i)*this.scale,o=a.domBottom=a.domTop+(a.bottom-a.top),i=a.bottom}toDOM(e){for(let t=0,n=0,r=0;;t++){let i=tPn(e,t))):e._content)}const Rn=r.sj.define({combine:e=>e.join(" ")}),In=r.sj.define({combine:e=>e.indexOf(!0)>-1}),Dn=i.G.newName(),zn=i.G.newName(),Nn=i.G.newName(),Ln={"&light":"."+zn,"&dark":"."+Nn};function Mn(e,t,n){return new i.G(t,{finish:t=>/&/.test(t)?t.replace(/&\w*/,(t=>{if("&"==t)return e;if(!n||!n[t])throw new RangeError("Unsupported selector: ".concat(t));return n[t]})):e+" "+t})}const Qn=Mn("."+Dn,{"&":{position:"relative !important",boxSizing:"border-box","&.cm-focused":{outline:"1px dotted #212121"},display:"flex !important",flexDirection:"column"},".cm-scroller":{display:"flex !important",alignItems:"flex-start !important",fontFamily:"monospace",lineHeight:1.4,height:"100%",overflowX:"auto",position:"relative",zIndex:0},".cm-content":{margin:0,flexGrow:2,flexShrink:0,display:"block",whiteSpace:"pre",wordWrap:"normal",boxSizing:"border-box",minHeight:"100%",padding:"4px 0",outline:"none","&[contenteditable=true]":{WebkitUserModify:"read-write-plaintext-only"}},".cm-lineWrapping":{whiteSpace_fallback:"pre-wrap",whiteSpace:"break-spaces",wordBreak:"break-word",overflowWrap:"anywhere",flexShrink:1},"&light .cm-content":{caretColor:"black"},"&dark .cm-content":{caretColor:"white"},".cm-line":{display:"block",padding:"0 2px 0 6px"},".cm-layer":{position:"absolute",left:0,top:0,contain:"size style","& > *":{position:"absolute"}},"&light .cm-selectionBackground":{background:"#d9d9d9"},"&dark .cm-selectionBackground":{background:"#222"},"&light.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#d7d4f0"},"&dark.cm-focused > .cm-scroller > .cm-selectionLayer .cm-selectionBackground":{background:"#233"},".cm-cursorLayer":{pointerEvents:"none"},"&.cm-focused > .cm-scroller > .cm-cursorLayer":{animation:"steps(1) cm-blink 1.2s infinite"},"@keyframes cm-blink":{"0%":{},"50%":{opacity:0},"100%":{}},"@keyframes cm-blink2":{"0%":{},"50%":{opacity:0},"100%":{}},".cm-cursor, .cm-dropCursor":{borderLeft:"1.2px solid black",marginLeft:"-0.6px",pointerEvents:"none"},".cm-cursor":{display:"none"},"&dark .cm-cursor":{borderLeftColor:"#444"},".cm-dropCursor":{position:"absolute"},"&.cm-focused > .cm-scroller > .cm-cursorLayer .cm-cursor":{display:"block"},".cm-iso":{unicodeBidi:"isolate"},".cm-announced":{position:"fixed",top:"-10000px"},"@media print":{".cm-announced":{display:"none"}},"&light .cm-activeLine":{backgroundColor:"#cceeff44"},"&dark .cm-activeLine":{backgroundColor:"#99eeff33"},"&light .cm-specialChar":{color:"red"},"&dark .cm-specialChar":{color:"#f78"},".cm-gutters":{flexShrink:0,display:"flex",height:"100%",boxSizing:"border-box",insetInlineStart:0,zIndex:200},"&light .cm-gutters":{backgroundColor:"#f5f5f5",color:"#6c6c6c",borderRight:"1px solid #ddd"},"&dark .cm-gutters":{backgroundColor:"#333338",color:"#ccc"},".cm-gutter":{display:"flex !important",flexDirection:"column",flexShrink:0,boxSizing:"border-box",minHeight:"100%",overflow:"hidden"},".cm-gutterElement":{boxSizing:"border-box"},".cm-lineNumbers .cm-gutterElement":{padding:"0 3px 0 5px",minWidth:"20px",textAlign:"right",whiteSpace:"nowrap"},"&light .cm-activeLineGutter":{backgroundColor:"#e2f2ff"},"&dark .cm-activeLineGutter":{backgroundColor:"#222227"},".cm-panels":{boxSizing:"border-box",position:"sticky",left:0,right:0},"&light .cm-panels":{backgroundColor:"#f5f5f5",color:"black"},"&light .cm-panels-top":{borderBottom:"1px solid #ddd"},"&light .cm-panels-bottom":{borderTop:"1px solid #ddd"},"&dark .cm-panels":{backgroundColor:"#333338",color:"white"},".cm-tab":{display:"inline-block",overflow:"hidden",verticalAlign:"bottom"},".cm-widgetBuffer":{verticalAlign:"text-top",height:"1em",width:0,display:"inline"},".cm-placeholder":{color:"#888",display:"inline-block",verticalAlign:"top"},".cm-highlightSpace:before":{content:"attr(data-display)",position:"absolute",pointerEvents:"none",color:"#888"},".cm-highlightTab":{backgroundImage:'url(\'data:image/svg+xml,\')',backgroundSize:"auto 100%",backgroundPosition:"right 90%",backgroundRepeat:"no-repeat"},".cm-trailingSpace":{backgroundColor:"#ff332255"},".cm-button":{verticalAlign:"middle",color:"inherit",fontSize:"70%",padding:".2em 1em",borderRadius:"1px"},"&light .cm-button":{backgroundImage:"linear-gradient(#eff1f5, #d9d9df)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#b4b4b4, #d0d3d6)"}},"&dark .cm-button":{backgroundImage:"linear-gradient(#393939, #111)",border:"1px solid #888","&:active":{backgroundImage:"linear-gradient(#111, #333)"}},".cm-textfield":{verticalAlign:"middle",color:"inherit",fontSize:"70%",border:"1px solid silver",padding:".2em .5em"},"&light .cm-textfield":{backgroundColor:"white"},"&dark .cm-textfield":{border:"1px solid #555",backgroundColor:"inherit"}},Ln),qn="\uffff";class Wn{constructor(e,t){this.points=e,this.text="",this.lineSeparator=t.facet(r.$t.lineSeparator)}append(e){this.text+=e}lineBreak(){this.text+=qn}readRange(e,t){if(!e)return this;let n=e.parentNode;for(let r=e;;){this.findPointBefore(n,r);let e=this.text.length;this.readNode(r);let i=r.nextSibling;if(i==t)break;let o=C.get(r),a=C.get(i);(o&&a?o.breakAfter:(o?o.breakAfter:h(r))||h(i)&&("BR"!=r.nodeName||r.cmIgnore)&&this.text.length>e)&&this.lineBreak(),r=i}return this.findPointBefore(n,t),this}readTextNode(e){let t=e.nodeValue;for(let n of this.points)n.node==e&&(n.pos=this.text.length+Math.min(n.offset,t.length));for(let n=0,r=this.lineSeparator?null:/\r\n?|\n/g;;){let i,o=-1,a=1;if(this.lineSeparator?(o=t.indexOf(this.lineSeparator,n),a=this.lineSeparator.length):(i=r.exec(t))&&(o=i.index,a=i[0].length),this.append(t.slice(n,o<0?t.length:o)),o<0)break;if(this.lineBreak(),a>1)for(let t of this.points)t.node==e&&t.pos>this.text.length&&(t.pos-=a-1);n=o+a}}readNode(e){if(e.cmIgnore)return;let t=C.get(e),n=t&&t.overrideDOMText;if(null!=n){this.findPointInside(e,n.length);for(let e=n.iter();!e.next().done;)e.lineBreak?this.lineBreak():this.append(e.value)}else 3==e.nodeType?this.readTextNode(e):"BR"==e.nodeName?e.nextSibling&&this.lineBreak():1==e.nodeType&&this.readRange(e.firstChild,null)}findPointBefore(e,t){for(let n of this.points)n.node==e&&e.childNodes[n.offset]==t&&(n.pos=this.text.length)}findPointInside(e,t){for(let n of this.points)(3==e.nodeType?n.node==e:e.contains(n.node))&&(n.pos=this.text.length+(Bn(e,n.node,n.offset)?t:0))}}function Bn(e,t,n){for(;;){if(!t||n-1)this.newSel=null;else if(t>-1&&(this.bounds=e.docView.domBoundsAround(t,n,0))){let t=o||a?[]:function(e){let t=[];if(e.root.activeElement!=e.contentDOM)return t;let{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:o}=e.observer.selectionRange;n&&(t.push(new Fn(n,r)),i==n&&o==r||t.push(new Fn(i,o)));return t}(e),n=new Wn(t,e.state);n.readRange(this.bounds.startDOM,this.bounds.endDOM),this.text=n.text,this.newSel=function(e,t){if(0==e.length)return null;let n=e[0].pos,i=2==e.length?e[1].pos:n;return n>-1&&i>-1?r.OF.single(n+t,i+t):null}(t,this.bounds.from)}else{let t=e.observer.selectionRange,n=o&&o.node==t.focusNode&&o.offset==t.focusOffset||!s(e.contentDOM,t.focusNode)?e.state.selection.main.head:e.docView.posFromDOM(t.focusNode,t.focusOffset),i=a&&a.node==t.anchorNode&&a.offset==t.anchorOffset||!s(e.contentDOM,t.anchorNode)?e.state.selection.main.anchor:e.docView.posFromDOM(t.anchorNode,t.anchorOffset),l=e.viewport;if((V.ios||V.chrome)&&e.state.selection.main.empty&&n!=i&&(l.from>0||l.toDate.now()-100?e.inputState.lastKeyCode:-1;if(t.bounds){let{from:i,to:s}=t.bounds,l=o.from,c=null;(8===a||V.android&&t.text.length0&&s>0&&e.charCodeAt(a-1)==t.charCodeAt(s-1);)a--,s--;if("end"==r){n-=a+Math.max(0,o-Math.min(a,s))-o}if(a=a?o-n:0,s=o+(s-a),a=o}else if(s=s?o-n:0,a=o+(a-s),s=o}return{from:o,toA:a,toB:s}}(e.state.doc.sliceString(i,s,qn),t.text,l-i,c);u&&(V.chrome&&13==a&&u.toB==u.from+2&&t.text.slice(u.from,u.toB)==qn+qn&&u.toB--,n={from:i+u.from,to:i+u.toA,insert:r.EY.of(t.text.slice(u.from,u.toB).split(qn))})}else i&&(!e.hasFocus&&e.state.facet(He)||i.main.eq(o))&&(i=null);if(!n&&!i)return!1;if(!n&&t.typeOver&&!o.empty&&i&&i.main.empty?n={from:o.from,to:o.to,insert:e.state.doc.slice(o.from,o.to)}:n&&n.from>=o.from&&n.to<=o.to&&(n.from!=o.from||n.to!=o.to)&&o.to-o.from-(n.to-n.from)<=4?n={from:o.from,to:o.to,insert:e.state.doc.slice(o.from,n.from).append(n.insert).append(e.state.doc.slice(n.to,o.to))}:(V.mac||V.android)&&n&&n.from==n.to&&n.from==o.head-1&&/^\. ?$/.test(n.insert.toString())&&"off"==e.contentDOM.getAttribute("autocorrect")?(i&&2==n.insert.length&&(i=r.OF.single(i.main.anchor-1,i.main.head-1)),n={from:o.from,to:o.to,insert:r.EY.of([" "])}):V.chrome&&n&&n.from==n.to&&n.from==o.head&&"\n "==n.insert.toString()&&e.lineWrapping&&(i&&(i=r.OF.single(i.main.anchor-1,i.main.head-1)),n={from:o.from,to:o.to,insert:r.EY.of([" "])}),n){if(V.ios&&e.inputState.flushIOSKey(n))return!0;if(V.android&&(n.to==o.to&&(n.from==o.from||n.from==o.from-1&&" "==e.state.sliceDoc(n.from,o.from))&&1==n.insert.length&&2==n.insert.lines&&x(e.contentDOM,"Enter",13)||(n.from==o.from-1&&n.to==o.to&&0==n.insert.length||8==a&&n.insert.lengtho.head)&&x(e.contentDOM,"Backspace",8)||n.from==o.from&&n.to==o.to+1&&0==n.insert.length&&x(e.contentDOM,"Delete",46)))return!0;let t,s=n.insert.toString();e.inputState.composing>=0&&e.inputState.composing++;let l=()=>t||(t=function(e,t,n){let i,o=e.state,a=o.selection.main;if(t.from>=a.from&&t.to<=a.to&&t.to-t.from>=(a.to-a.from)/3&&(!n||n.main.empty&&n.main.from==t.from+t.insert.length)&&e.inputState.composing<0){let n=a.fromt.to?o.sliceDoc(t.to,a.to):"";i=o.replaceSelection(e.state.toText(n+t.insert.sliceString(0,void 0,e.state.lineBreak)+r))}else{let s=o.changes(t),l=n&&n.main.to<=s.newLength?n.main:void 0;if(o.selection.ranges.length>1&&e.inputState.composing>=0&&t.to<=a.to&&t.to>=a.to-10){let c,u=e.state.sliceDoc(t.from,t.to),d=n&>(e,n.main.head);if(d){let e=t.insert.length-(t.to-t.from);c={from:d.from,to:d.to-e}}else c=e.state.doc.lineAt(a.head);let h=a.to-t.to,f=a.to-a.from;i=o.changeByRange((n=>{if(n.from==a.from&&n.to==a.to)return{changes:s,range:l||n.map(s)};let i=n.to-h,d=i-u.length;if(n.to-n.from!=f||e.state.sliceDoc(d,i)!=u||n.to>=c.from&&n.from<=c.to)return{range:n};let m=o.changes({from:d,to:i,insert:t.insert}),p=n.to-a.to;return{changes:m,range:l?r.OF.range(Math.max(0,l.anchor+p),Math.max(0,l.head+p)):n.map(m)}}))}else i={changes:s,selection:l&&o.selection.replaceRange(l)}}let s="input.type";(e.composing||e.inputState.compositionPendingChange&&e.inputState.compositionEndedAt>Date.now()-50)&&(e.inputState.compositionPendingChange=!1,s+=".compose",e.inputState.compositionFirstChange&&(s+=".start",e.inputState.compositionFirstChange=!1));return o.update(i,{userEvent:s,scrollIntoView:!0})}(e,n,i));return e.state.facet(Fe).some((t=>t(e,n.from,n.to,s,l)))||e.dispatch(l()),!0}if(i&&!i.main.eq(o)){let t=!1,n="select";return e.inputState.lastSelectionTime>Date.now()-50&&("select"==e.inputState.lastSelectionOrigin&&(t=!0),n=e.inputState.lastSelectionOrigin),e.dispatch({selection:i,scrollIntoView:t,userEvent:n}),!0}return!1}const Vn={childList:!0,characterData:!0,subtree:!0,attributes:!0,characterDataOldValue:!0},Gn=V.ie&&V.ie_version<=11;class Xn{constructor(e){this.view=e,this.active=!1,this.selectionRange=new v,this.selectionChanged=!1,this.delayedFlush=-1,this.resizeTimeout=-1,this.queue=[],this.delayedAndroidKey=null,this.flushingAndroidKey=-1,this.lastChange=0,this.scrollTargets=[],this.intersection=null,this.resizeScroll=null,this.intersecting=!1,this.gapIntersection=null,this.gaps=[],this.printQuery=null,this.parentCheck=-1,this.dom=e.contentDOM,this.observer=new MutationObserver((t=>{for(let e of t)this.queue.push(e);(V.ie&&V.ie_version<=11||V.ios&&e.composing)&&t.some((e=>"childList"==e.type&&e.removedNodes.length||"characterData"==e.type&&e.oldValue.length>e.target.nodeValue.length))?this.flushSoon():this.flush()})),Gn&&(this.onCharData=e=>{this.queue.push({target:e.target,type:"characterData",oldValue:e.prevValue}),this.flushSoon()}),this.onSelectionChange=this.onSelectionChange.bind(this),this.onResize=this.onResize.bind(this),this.onPrint=this.onPrint.bind(this),this.onScroll=this.onScroll.bind(this),window.matchMedia&&(this.printQuery=window.matchMedia("print")),"function"==typeof ResizeObserver&&(this.resizeScroll=new ResizeObserver((()=>{var e;(null===(e=this.view.docView)||void 0===e?void 0:e.lastUpdate){this.parentCheck<0&&(this.parentCheck=setTimeout(this.listenForScroll.bind(this),1e3)),e.length>0&&e[e.length-1].intersectionRatio>0!=this.intersecting&&(this.intersecting=!this.intersecting,this.intersecting!=this.view.inView&&this.onScrollChanged(document.createEvent("Event")))}),{threshold:[0,.001]}),this.intersection.observe(this.dom),this.gapIntersection=new IntersectionObserver((e=>{e.length>0&&e[e.length-1].intersectionRatio>0&&this.onScrollChanged(document.createEvent("Event"))}),{})),this.listenForScroll(),this.readSelectionRange()}onScrollChanged(e){this.view.inputState.runHandlers("scroll",e),this.intersecting&&this.view.measure()}onScroll(e){this.intersecting&&this.flush(!1),this.onScrollChanged(e)}onResize(){this.resizeTimeout<0&&(this.resizeTimeout=setTimeout((()=>{this.resizeTimeout=-1,this.view.requestMeasure()}),50))}onPrint(e){("change"!=e.type||e.matches)&&(this.view.viewState.printing=!0,this.view.measure(),setTimeout((()=>{this.view.viewState.printing=!1,this.view.requestMeasure()}),500))}updateGaps(e){if(this.gapIntersection&&(e.length!=this.gaps.length||this.gaps.some(((t,n)=>t!=e[n])))){this.gapIntersection.disconnect();for(let t of e)this.gapIntersection.observe(t);this.gaps=e}}onSelectionChange(e){let t=this.selectionChanged;if(!this.readSelectionRange()||this.delayedAndroidKey)return;let{view:n}=this,r=this.selectionRange;if(n.state.facet(He)?n.root.activeElement!=this.dom:!l(n.dom,r))return;let i=r.anchorNode&&n.docView.nearest(r.anchorNode);i&&i.ignoreEvent(e)?t||(this.selectionChanged=!1):(V.ie&&V.ie_version<=11||V.android&&V.chrome)&&!n.state.selection.main.empty&&r.focusNode&&u(r.focusNode,r.focusOffset,r.anchorNode,r.anchorOffset)?this.flushSoon():this.flush(!1)}readSelectionRange(){let{view:e}=this,t=a(e.root);if(!t)return!1;let n=V.safari&&11==e.root.nodeType&&function(e){let t=e.activeElement;for(;t&&t.shadowRoot;)t=t.shadowRoot.activeElement;return t}(this.dom.ownerDocument)==this.dom&&function(e,t){if(t.getComposedRanges){let n=t.getComposedRanges(e.root)[0];if(n)return Zn(e,n)}let n=null;function r(e){e.preventDefault(),e.stopImmediatePropagation(),n=e.getTargetRanges()[0]}return e.contentDOM.addEventListener("beforeinput",r,!0),e.dom.ownerDocument.execCommand("indent"),e.contentDOM.removeEventListener("beforeinput",r,!0),n?Zn(e,n):null}(this.view,t)||t;if(!n||this.selectionRange.eq(n))return!1;let r=l(this.dom,n);return r&&!this.selectionChanged&&e.inputState.lastFocusTime>Date.now()-200&&e.inputState.lastTouchTime{let e=this.delayedAndroidKey;if(e){this.clearDelayedAndroidKey(),this.view.inputState.lastKeyCode=e.keyCode,this.view.inputState.lastKeyTime=Date.now(),!this.flush()&&e.force&&x(this.dom,e.key,e.keyCode)}};this.flushingAndroidKey=this.view.win.requestAnimationFrame(e)}this.delayedAndroidKey&&"Enter"!=e||(this.delayedAndroidKey={key:e,keyCode:t,force:this.lastChange{this.delayedFlush=-1,this.flush()})))}forceFlush(){this.delayedFlush>=0&&(this.view.win.cancelAnimationFrame(this.delayedFlush),this.delayedFlush=-1),this.flush()}pendingRecords(){for(let e of this.observer.takeRecords())this.queue.push(e);return this.queue}processRecords(){let e=this.pendingRecords();e.length&&(this.queue=[]);let t=-1,n=-1,r=!1;for(let i of e){let e=this.readMutation(i);e&&(e.typeOver&&(r=!0),-1==t?({from:t,to:n}=e):(t=Math.min(e.from,t),n=Math.max(e.to,n)))}return{from:t,to:n,typeOver:r}}readChange(){let{from:e,to:t,typeOver:n}=this.processRecords(),r=this.selectionChanged&&l(this.dom,this.selectionRange);if(e<0&&!r)return null;e>-1&&(this.lastChange=Date.now()),this.view.inputState.lastFocusTime=0,this.selectionChanged=!1;let i=new Un(this.view,e,t,n);return this.view.docView.domChanged={newSel:i.newSel?i.newSel.main:null},i}flush(){let e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];if(this.delayedFlush>=0||this.delayedAndroidKey)return!1;e&&this.readSelectionRange();let t=this.readChange();if(!t)return this.view.requestMeasure(),!1;let n=this.view.state,r=jn(this.view,t);return this.view.state==n&&this.view.update([]),r}readMutation(e){let t=this.view.docView.nearest(e.target);if(!t||t.ignoreMutation(e))return null;if(t.markDirty("attributes"==e.type),"attributes"==e.type&&(t.flags|=4),"childList"==e.type){let n=Yn(t,e.previousSibling||e.target.previousSibling,-1),r=Yn(t,e.nextSibling||e.target.nextSibling,1);return{from:n?t.posAfter(n):t.posAtStart,to:r?t.posBefore(r):t.posAtEnd,typeOver:!1}}return"characterData"==e.type?{from:t.posAtStart,to:t.posAtEnd,typeOver:e.target.nodeValue==e.oldValue}:null}setWindow(e){e!=this.win&&(this.removeWindowListeners(this.win),this.win=e,this.addWindowListeners(this.win))}addWindowListeners(e){e.addEventListener("resize",this.onResize),this.printQuery?this.printQuery.addEventListener("change",this.onPrint):e.addEventListener("beforeprint",this.onPrint),e.addEventListener("scroll",this.onScroll),e.document.addEventListener("selectionchange",this.onSelectionChange)}removeWindowListeners(e){e.removeEventListener("scroll",this.onScroll),e.removeEventListener("resize",this.onResize),this.printQuery?this.printQuery.removeEventListener("change",this.onPrint):e.removeEventListener("beforeprint",this.onPrint),e.document.removeEventListener("selectionchange",this.onSelectionChange)}destroy(){var e,t,n;this.stop(),null===(e=this.intersection)||void 0===e||e.disconnect(),null===(t=this.gapIntersection)||void 0===t||t.disconnect(),null===(n=this.resizeScroll)||void 0===n||n.disconnect();for(let r of this.scrollTargets)r.removeEventListener("scroll",this.onScroll);this.removeWindowListeners(this.win),clearTimeout(this.parentCheck),clearTimeout(this.resizeTimeout),this.win.cancelAnimationFrame(this.delayedFlush),this.win.cancelAnimationFrame(this.flushingAndroidKey)}}function Yn(e,t,n){for(;t;){let r=C.get(t);if(r&&r.parent==e)return r;let i=t.parentNode;t=i!=e.dom?i:n>0?t.nextSibling:t.previousSibling}return null}function Zn(e,t){let n=t.startContainer,r=t.startOffset,i=t.endContainer,o=t.endOffset,a=e.docView.domAtPos(e.state.selection.main.anchor);return u(a.node,a.offset,i,o)&&([n,r,i,o]=[i,o,n,r]),{anchorNode:n,anchorOffset:r,focusNode:i,focusOffset:o}}class Hn{get state(){return this.viewState.state}get viewport(){return this.viewState.viewport}get visibleRanges(){return this.viewState.visibleRanges}get inView(){return this.viewState.inView}get composing(){return this.inputState.composing>0}get compositionStarted(){return this.inputState.composing>=0}get root(){return this._root}get win(){return this.dom.ownerDocument.defaultView||window}constructor(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.plugins=[],this.pluginMap=new Map,this.editorAttrs={},this.contentAttrs={},this.bidiCache=[],this.destroyed=!1,this.updateState=2,this.measureScheduled=-1,this.measureRequests=[],this.contentDOM=document.createElement("div"),this.scrollDOM=document.createElement("div"),this.scrollDOM.tabIndex=-1,this.scrollDOM.className="cm-scroller",this.scrollDOM.appendChild(this.contentDOM),this.announceDOM=document.createElement("div"),this.announceDOM.className="cm-announced",this.announceDOM.setAttribute("aria-live","polite"),this.dom=document.createElement("div"),this.dom.appendChild(this.announceDOM),this.dom.appendChild(this.scrollDOM),e.parent&&e.parent.appendChild(this.dom);let{dispatch:t}=e;this.dispatchTransactions=e.dispatchTransactions||t&&(e=>e.forEach((e=>t(e,this))))||(e=>this.update(e)),this.dispatch=this.dispatch.bind(this),this._root=e.root||function(e){for(;e;){if(e&&(9==e.nodeType||11==e.nodeType&&e.host))return e;e=e.assignedSlot||e.parentNode}return null}(e.parent)||document,this.viewState=new Sn(e.state||r.$t.create(e)),e.scrollTo&&e.scrollTo.is(Ye)&&(this.viewState.scrollTarget=e.scrollTo.value.clip(this.viewState.state)),this.plugins=this.state.facet(Je).map((e=>new tt(e)));for(let n of this.plugins)n.update(this);this.observer=new Xn(this),this.inputState=new Pt(this),this.inputState.ensureHandlers(this.plugins),this.docView=new mt(this),this.mountStyles(),this.updateAttrs(),this.updateState=0,this.requestMeasure()}dispatch(){for(var e=arguments.length,t=new Array(e),n=0;ne.annotation(tn)))?(this.inputState.notifiedFocused=a,s=1):a!=this.inputState.notifiedFocused&&(this.inputState.notifiedFocused=a,l=nn(o,a),l||(s=1));let c=this.observer.delayedAndroidKey,u=null;if(c?(this.observer.clearDelayedAndroidKey(),u=this.observer.readChange(),(u&&!this.state.doc.eq(o.doc)||!this.state.selection.eq(o.selection))&&(u=null)):this.observer.clear(),o.facet(r.$t.phrases)!=this.state.facet(r.$t.phrases))return this.setState(o);t=ft.create(this,o,e),t.flags|=s;let d=this.viewState.scrollTarget;try{this.updateState=2;for(let t of e){if(d&&(d=d.map(t.changes)),t.scrollIntoView){let{main:e}=t.state.selection;d=new Xe(e.empty?e:r.OF.cursor(e.head,e.head>e.anchor?-1:1))}for(let e of t.effects)e.is(Ye)&&(d=e.value.clip(this.state))}this.viewState.update(t,d),this.bidiCache=er.update(this.bidiCache,t.changes),t.empty||(this.updatePlugins(t),this.inputState.update(t)),n=this.docView.update(t),this.state.facet(dt)!=this.styleModules&&this.mountStyles(),i=this.updateAttrs(),this.showAnnouncements(e),this.docView.updateSelection(n,e.some((e=>e.isUserEvent("select.pointer"))))}finally{this.updateState=0}if(t.startState.facet(Rn)!=t.state.facet(Rn)&&(this.viewState.mustMeasureContent=!0),(n||i||d||this.viewState.mustEnforceCursorAssoc||this.viewState.mustMeasureContent)&&this.requestMeasure(),n&&this.docViewUpdate(),!t.empty)for(let r of this.state.facet(Be))try{r(t)}catch(h){Ze(this.state,h,"update listener")}(l||u)&&Promise.resolve().then((()=>{l&&this.state==l.startState&&this.dispatch(l),u&&!jn(this,u)&&c.force&&x(this.contentDOM,c.key,c.keyCode)}))}setState(e){if(0!=this.updateState)throw new Error("Calls to EditorView.setState are not allowed while an update is in progress");if(this.destroyed)return void(this.viewState.state=e);this.updateState=2;let t=this.hasFocus;try{for(let e of this.plugins)e.destroy(this);this.viewState=new Sn(e),this.plugins=e.facet(Je).map((e=>new tt(e))),this.pluginMap.clear();for(let e of this.plugins)e.update(this);this.docView.destroy(),this.docView=new mt(this),this.inputState.ensureHandlers(this.plugins),this.mountStyles(),this.updateAttrs(),this.bidiCache=[]}finally{this.updateState=0}t&&this.focus(),this.requestMeasure()}updatePlugins(e){let t=e.startState.facet(Je),n=e.state.facet(Je);if(t!=n){let r=[];for(let i of n){let n=t.indexOf(i);if(n<0)r.push(new tt(i));else{let t=this.plugins[n];t.mustUpdate=e,r.push(t)}}for(let t of this.plugins)t.mustUpdate!=e&&t.destroy(this);this.plugins=r,this.pluginMap.clear()}else for(let r of this.plugins)r.mustUpdate=e;for(let r=0;r0&&void 0!==arguments[0])||arguments[0];if(this.destroyed)return;if(this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.observer.delayedAndroidKey)return this.measureScheduled=-1,void this.requestMeasure();this.measureScheduled=0,e&&this.observer.forceFlush();let t=null,n=this.scrollDOM,r=n.scrollTop*this.scaleY,{scrollAnchorPos:i,scrollAnchorHeight:o}=this.viewState;Math.abs(r-this.viewState.scrollTop)>1&&(o=-1),this.viewState.scrollAnchorHeight=-1;try{for(let e=0;;e++){if(o<0)if(_(n))i=-1,o=this.viewState.heightMap.height;else{let e=this.viewState.scrollAnchorAt(r);i=e.from,o=e.top}this.updateState=1;let s=this.viewState.measure(this);if(!s&&!this.measureRequests.length&&null==this.viewState.scrollTarget)break;if(e>5){console.warn(this.measureRequests.length?"Measure loop restarted more than 5 times":"Viewport failed to stabilize");break}let l=[];4&s||([this.measureRequests,l]=[l,this.measureRequests]);let c=l.map((e=>{try{return e.read(this)}catch(t){return Ze(this.state,t),Jn}})),u=ft.create(this,this.state,[]),d=!1;u.flags|=s,t?t.flags|=s:t=u,this.updateState=2,u.empty||(this.updatePlugins(u),this.inputState.update(u),this.updateAttrs(),d=this.docView.update(u),d&&this.docViewUpdate());for(let e=0;e1||e<-1){r+=e,n.scrollTop=r/this.scaleY,o=-1;continue}}}break}}}finally{this.updateState=0,this.measureScheduled=-1}if(t&&!t.empty)for(let s of this.state.facet(Be))s(t)}get themeClasses(){return Dn+" "+(this.state.facet(In)?Nn:zn)+" "+this.state.facet(Rn)}updateAttrs(){let e=tr(this,nt,{class:"cm-editor"+(this.hasFocus?" cm-focused ":" ")+this.themeClasses}),t={spellcheck:"false",autocorrect:"off",autocapitalize:"off",translate:"no",contenteditable:this.state.facet(He)?"true":"false",class:"cm-content",style:"".concat(V.tabSize,": ").concat(this.state.tabSize),role:"textbox","aria-multiline":"true"};this.state.readOnly&&(t["aria-readonly"]="true"),tr(this,rt,t);let n=this.observer.ignore((()=>{let n=re(this.contentDOM,this.contentAttrs,t),r=re(this.dom,this.editorAttrs,e);return n||r}));return this.editorAttrs=e,this.contentAttrs=t,n}showAnnouncements(e){let t=!0;for(let n of e)for(let e of n.effects)if(e.is(Hn.announce)){t&&(this.announceDOM.textContent=""),t=!1,this.announceDOM.appendChild(document.createElement("div")).textContent=e.value}}mountStyles(){this.styleModules=this.state.facet(dt);let e=this.state.facet(Hn.cspNonce);i.G.mount(this.root,this.styleModules.concat(Qn).reverse(),e?{nonce:e}:void 0)}readMeasured(){if(2==this.updateState)throw new Error("Reading the editor layout isn't allowed during an update");0==this.updateState&&this.measureScheduled>-1&&this.measure(!1)}requestMeasure(e){if(this.measureScheduled<0&&(this.measureScheduled=this.win.requestAnimationFrame((()=>this.measure()))),e){if(this.measureRequests.indexOf(e)>-1)return;if(null!=e.key)for(let t=0;tt.spec==e))||null),t&&t.update(this).value}get documentTop(){return this.contentDOM.getBoundingClientRect().top+this.viewState.paddingTop}get documentPadding(){return{top:this.viewState.paddingTop,bottom:this.viewState.paddingBottom}}get scaleX(){return this.viewState.scaleX}get scaleY(){return this.viewState.scaleY}elementAtHeight(e){return this.readMeasured(),this.viewState.elementAtHeight(e)}lineBlockAtHeight(e){return this.readMeasured(),this.viewState.lineBlockAtHeight(e)}get viewportLineBlocks(){return this.viewState.viewportLines}lineBlockAt(e){return this.viewState.lineBlockAt(e)}get contentHeight(){return this.viewState.contentHeight}moveByChar(e,t,n){return Ct(this,e,$t(this,e,t,n))}moveByGroup(e,t){return Ct(this,e,$t(this,e,t,(t=>function(e,t,n){let i=e.state.charCategorizer(t),o=i(n);return e=>{let t=i(e);return o==r.Je.Space&&(o=t),o==t}}(this,e.head,t))))}visualLineSide(e,t){let n=this.bidiSpans(e),i=this.textDirectionAt(e.from),o=n[t?n.length-1:0];return r.OF.cursor(o.side(t,i)+e.from,o.forward(!t,i)?1:-1)}moveToLineBoundary(e,t){return function(e,t,n,i){let o=Et(e,t.head),a=i&&o.type==le.Text&&(e.lineWrapping||o.widgetLineBreaks)?e.coordsAtPos(t.assoc<0&&t.head>o.from?t.head-1:t.head):null;if(a){let t=e.dom.getBoundingClientRect(),i=e.textDirectionAt(o.from),s=e.posAtCoords({x:n==(i==ve.LTR)?t.right-1:t.left+1,y:(a.top+a.bottom)/2});if(null!=s)return r.OF.cursor(s,n?-1:1)}return r.OF.cursor(n?o.to:o.from,n?-1:1)}(this,e,t,!(arguments.length>2&&void 0!==arguments[2])||arguments[2])}moveVertically(e,t,n){return Ct(this,e,function(e,t,n,i){let o=t.head,a=n?1:-1;if(o==(n?e.state.doc.length:0))return r.OF.cursor(o,t.assoc);let s,l=t.goalColumn,c=e.contentDOM.getBoundingClientRect(),u=e.coordsAtPos(o,t.assoc||-1),d=e.documentTop;if(u)null==l&&(l=u.left-c.left),s=a<0?u.top:u.bottom;else{let t=e.viewState.lineBlockAt(o);null==l&&(l=Math.min(c.right-c.left,e.defaultCharacterWidth*(o-t.from))),s=(a<0?t.top:t.bottom)+d}let h=c.left+l,f=null!==i&&void 0!==i?i:e.viewState.heightOracle.textHeight>>1;for(let m=0;;m+=10){let t=s+(f+m)*a,n=_t(e,{x:h,y:t},!1,a);if(tc.bottom||(a<0?no)){let i=e.docView.coordsForChar(n),o=!i||t1&&void 0!==arguments[1]?arguments[1]:0;return this.docView.posFromDOM(e,t)}posAtCoords(e){let t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return this.readMeasured(),_t(this,e,t)}coordsAtPos(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1;this.readMeasured();let n=this.docView.coordsAt(e,t);if(!n||n.left==n.right)return n;let r=this.state.doc.lineAt(e),i=this.bidiSpans(r);return p(n,i[$e.find(i,e-r.from,-1,t)].dir==ve.LTR==t>0)}coordsForChar(e){return this.readMeasured(),this.docView.coordsForChar(e)}get defaultCharacterWidth(){return this.viewState.heightOracle.charWidth}get defaultLineHeight(){return this.viewState.heightOracle.lineHeight}get textDirection(){return this.viewState.defaultTextDirection}textDirectionAt(e){return!this.state.facet(je)||ethis.viewport.to?this.textDirection:(this.readMeasured(),this.docView.textDirectionAt(e))}get lineWrapping(){return this.viewState.heightOracle.lineWrapping}bidiSpans(e){if(e.length>Kn)return De(e.length);let t,n=this.textDirectionAt(e.from);for(let i of this.bidiCache)if(i.from==e.from&&i.dir==n&&(i.fresh||Ae(i.isolates,t=lt(this,e))))return i.order;t||(t=lt(this,e));let r=Ie(e.text,n,t);return this.bidiCache.push(new er(e.from,e.to,n,t,!0,r)),r}get hasFocus(){var e;return(this.dom.ownerDocument.hasFocus()||V.safari&&(null===(e=this.inputState)||void 0===e?void 0:e.lastContextMenu)>Date.now()-3e4)&&this.root.activeElement==this.contentDOM}focus(){this.observer.ignore((()=>{O(this.contentDOM),this.docView.updateSelection()}))}setRoot(e){this._root!=e&&(this._root=e,this.observer.setWindow((9==e.nodeType?e:e.ownerDocument).defaultView||window),this.mountStyles())}destroy(){for(let e of this.plugins)e.destroy(this);this.plugins=[],this.inputState.destroy(),this.docView.destroy(),this.dom.remove(),this.observer.destroy(),this.measureScheduled>-1&&this.win.cancelAnimationFrame(this.measureScheduled),this.destroyed=!0}static scrollIntoView(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return Ye.of(new Xe("number"==typeof e?r.OF.cursor(e):e,t.y,t.x,t.yMargin,t.xMargin))}scrollSnapshot(){let{scrollTop:e,scrollLeft:t}=this.scrollDOM,n=this.viewState.scrollAnchorAt(e);return Ye.of(new Xe(r.OF.cursor(n.from),"start","start",n.top-e,t,!0))}static domEventHandlers(e){return et.define((()=>({})),{eventHandlers:e})}static domEventObservers(e){return et.define((()=>({})),{eventObservers:e})}static theme(e,t){let n=i.G.newName(),r=[Rn.of(n),dt.of(Mn(".".concat(n),e))];return t&&t.dark&&r.push(In.of(!0)),r}static baseTheme(e){return r.Nb.lowest(dt.of(Mn("."+Dn,e,Ln)))}static findFromDOM(e){var t;let n=e.querySelector(".cm-content"),r=n&&C.get(n)||C.get(e);return(null===(t=null===r||void 0===r?void 0:r.rootView)||void 0===t?void 0:t.view)||null}}Hn.styleModule=dt,Hn.inputHandler=Fe,Hn.scrollHandler=Ge,Hn.focusChangeEffect=Ue,Hn.perLineTextDirection=je,Hn.exceptionSink=We,Hn.updateListener=Be,Hn.editable=He,Hn.mouseSelectionStyle=qe,Hn.dragMovesSelection=Qe,Hn.clickAddsSelectionRange=Me,Hn.decorations=it,Hn.outerDecorations=ot,Hn.atomicRanges=at,Hn.bidiIsolatedRanges=st,Hn.scrollMargins=ct,Hn.darkTheme=In,Hn.cspNonce=r.sj.define({combine:e=>e.length?e[0]:""}),Hn.contentAttributes=rt,Hn.editorAttributes=nt,Hn.lineWrapping=Hn.contentAttributes.of({class:"cm-lineWrapping"}),Hn.announce=r.Pe.define();const Kn=4096,Jn={};class er{constructor(e,t,n,r,i,o){this.from=e,this.to=t,this.dir=n,this.isolates=r,this.fresh=i,this.order=o}static update(e,t){if(t.empty&&!e.some((e=>e.fresh)))return e;let n=[],r=e.length?e[e.length-1].dir:ve.LTR;for(let i=Math.max(0,e.length-10);i=0;i--){let t=r[i],o="function"==typeof t?t(e):t;o&&ee(o,n)}return n}const nr=V.mac?"mac":V.windows?"win":V.linux?"linux":"key";function rr(e,t,n){return t.altKey&&(e="Alt-"+e),t.ctrlKey&&(e="Ctrl-"+e),t.metaKey&&(e="Meta-"+e),!1!==n&&t.shiftKey&&(e="Shift-"+e),e}const ir=r.Nb.default(Hn.domEventHandlers({keydown:(e,t)=>dr(sr(t.state),e,t,"editor")})),or=r.sj.define({enables:ir}),ar=new WeakMap;function sr(e){let t=e.facet(or),n=ar.get(t);return n||ar.set(t,n=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:nr,n=Object.create(null),r=Object.create(null),i=(e,t)=>{let n=r[e];if(null==n)r[e]=t;else if(n!=t)throw new Error("Key binding "+e+" is used both as a regular binding and as a multi-stroke prefix")},o=(e,r,o,a,s)=>{var l,c;let u=n[e]||(n[e]=Object.create(null)),d=r.split(/ (?!$)/).map((e=>function(e,t){const n=e.split(/-(?!$)/);let r,i,o,a,s=n[n.length-1];"Space"==s&&(s=" ");for(let l=0;l{let r=cr={view:t,prefix:n,scope:e};return setTimeout((()=>{cr==r&&(cr=null)}),ur),!0}]})}let h=d.join(" ");i(h,!1);let f=u[h]||(u[h]={preventDefault:!1,stopPropagation:!1,run:(null===(c=null===(l=u._any)||void 0===l?void 0:l.run)||void 0===c?void 0:c.slice())||[]});o&&f.run.push(o),a&&(f.preventDefault=!0),s&&(f.stopPropagation=!0)};for(let a of e){let e=a.scope?a.scope.split(" "):["editor"];if(a.any)for(let t of e){let e=n[t]||(n[t]=Object.create(null));e._any||(e._any={preventDefault:!1,stopPropagation:!1,run:[]});for(let t in e)e[t].run.push(a.any)}let r=a[t]||a.key;if(r)for(let t of e)o(t,r,a.run,a.preventDefault,a.stopPropagation),a.shift&&o(t,"Shift-"+r,a.shift,a.preventDefault,a.stopPropagation)}return n}(t.reduce(((e,t)=>e.concat(t)),[]))),n}function lr(e,t,n){return dr(sr(e.state),t,e,n)}let cr=null;const ur=4e3;function dr(e,t,n,i){let a=(0,o.xT)(t),s=(0,r.vS)(a,0),l=(0,r.Fh)(s)==a.length&&" "!=a,c="",u=!1,d=!1,h=!1;cr&&cr.view==n&&cr.scope==i&&(c=cr.prefix+" ",Nt.indexOf(t.keyCode)<0&&(d=!0,cr=null));let f,m,p=new Set,g=e=>{if(e){for(let r of e.run)if(!p.has(r)&&(p.add(r),r(n,t)))return e.stopPropagation&&(h=!0),!0;e.preventDefault&&(e.stopPropagation&&(h=!0),d=!0)}return!1},b=e[i];return b&&(g(b[c+rr(a,t,!l)])?u=!0:l&&(t.altKey||t.metaKey||t.ctrlKey)&&!(V.windows&&t.ctrlKey&&t.altKey)&&(f=o.E3[t.keyCode])&&f!=a?(g(b[c+rr(f,t,!0)])||t.shiftKey&&(m=o.BN[t.keyCode])!=a&&m!=f&&g(b[c+rr(m,t,!1)]))&&(u=!0):l&&t.shiftKey&&g(b[c+rr(a,t,!0)])&&(u=!0),!u&&g(b._any)&&(u=!0)),d&&(u=!0),u&&h&&t.stopPropagation(),u}class hr{constructor(e,t,n,r,i){this.className=e,this.left=t,this.top=n,this.width=r,this.height=i}draw(){let e=document.createElement("div");return e.className=this.className,this.adjust(e),e}update(e,t){return t.className==this.className&&(this.adjust(e),!0)}adjust(e){e.style.left=this.left+"px",e.style.top=this.top+"px",null!=this.width&&(e.style.width=this.width+"px"),e.style.height=this.height+"px"}eq(e){return this.left==e.left&&this.top==e.top&&this.width==e.width&&this.height==e.height&&this.className==e.className}static forRange(e,t,n){if(n.empty){let r=e.coordsAtPos(n.head,n.assoc||1);if(!r)return[];let i=fr(e);return[new hr(t,r.left-i.left,r.top-i.top,null,r.bottom-r.top)]}return function(e,t,n){if(n.to<=e.viewport.from||n.from>=e.viewport.to)return[];let r=Math.max(n.from,e.viewport.from),i=Math.min(n.to,e.viewport.to),o=e.textDirection==ve.LTR,a=e.contentDOM,s=a.getBoundingClientRect(),l=fr(e),c=a.querySelector(".cm-line"),u=c&&window.getComputedStyle(c),d=s.left+(u?parseInt(u.paddingLeft)+Math.min(0,parseInt(u.textIndent)):0),h=s.right-(u?parseInt(u.paddingRight):0),f=Et(e,r),m=Et(e,i),p=f.type==le.Text?f:null,g=m.type==le.Text?m:null;p&&(e.lineWrapping||f.widgetLineBreaks)&&(p=mr(e,r,p));g&&(e.lineWrapping||m.widgetLineBreaks)&&(g=mr(e,i,g));if(p&&g&&p.from==g.from)return v(y(n.from,n.to,p));{let t=p?y(n.from,null,p):k(f,!1),r=g?y(null,n.to,g):k(m,!0),i=[];return(p||f).to<(g||m).from-(p&&g?1:0)||f.widgetLineBreaks>1&&t.bottom+e.defaultLineHeight/2c&&o.from=i)break;s>r&&l(Math.max(e,r),null==t&&e<=c,Math.min(s,i),null==n&&s>=u,a.dir)}if(r=o.to+1,r>=i)break}return 0==s.length&&l(c,null==t,u,null==n,e.textDirection),{top:i,bottom:a,horizontal:s}}function k(e,t){let n=s.top+(t?e.top:e.bottom);return{top:n,bottom:n,horizontal:[]}}}(e,t,n)}}function fr(e){let t=e.scrollDOM.getBoundingClientRect();return{left:(e.textDirection==ve.LTR?t.left:t.right-e.scrollDOM.clientWidth*e.scaleX)-e.scrollDOM.scrollLeft*e.scaleX,top:t.top-e.scrollDOM.scrollTop*e.scaleY}}function mr(e,t,n){let i=r.OF.cursor(t);return{from:Math.max(n.from,e.moveToLineBoundary(i,!1,!0).from),to:Math.min(n.to,e.moveToLineBoundary(i,!0,!0).from),type:le.Text}}class pr{constructor(e,t){this.view=e,this.layer=t,this.drawn=[],this.scaleX=1,this.scaleY=1,this.measureReq={read:this.measure.bind(this),write:this.draw.bind(this)},this.dom=e.scrollDOM.appendChild(document.createElement("div")),this.dom.classList.add("cm-layer"),t.above&&this.dom.classList.add("cm-layer-above"),t.class&&this.dom.classList.add(t.class),this.scale(),this.dom.setAttribute("aria-hidden","true"),this.setOrder(e.state),e.requestMeasure(this.measureReq),t.mount&&t.mount(this.dom,e)}update(e){e.startState.facet(gr)!=e.state.facet(gr)&&this.setOrder(e.state),(this.layer.update(e,this.dom)||e.geometryChanged)&&(this.scale(),e.view.requestMeasure(this.measureReq))}docViewUpdate(e){!1!==this.layer.updateOnDocViewUpdate&&e.requestMeasure(this.measureReq)}setOrder(e){let t=0,n=e.facet(gr);for(;t{return n=e,r=this.drawn[t],!(n.constructor==r.constructor&&n.eq(r));var n,r}))){let t=this.dom.firstChild,n=0;for(let r of e)r.update&&t&&r.constructor&&this.drawn[n].constructor&&r.update(t,this.drawn[n])?(t=t.nextSibling,n++):this.dom.insertBefore(r.draw(),t);for(;t;){let e=t.nextSibling;t.remove(),t=e}this.drawn=e}}destroy(){this.layer.destroy&&this.layer.destroy(this.dom,this.view),this.dom.remove()}}const gr=r.sj.define();function br(e){return[et.define((t=>new pr(t,e))),gr.of(e)]}const vr=!V.ios,yr=r.sj.define({combine:e=>(0,r.QR)(e,{cursorBlinkRate:1200,drawRangeCursor:!0},{cursorBlinkRate:(e,t)=>Math.min(e,t),drawRangeCursor:(e,t)=>e||t})});function kr(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[yr.of(e),xr,_r,Er,Ve.of(!0)]}function Or(e){return e.facet(yr)}function wr(e){return e.startState.facet(yr)!=e.state.facet(yr)}const xr=br({above:!0,markers(e){let{state:t}=e,n=t.facet(yr),i=[];for(let o of t.selection.ranges){let a=o==t.selection.main;if(o.empty?!a||vr:n.drawRangeCursor){let t=a?"cm-cursor cm-cursor-primary":"cm-cursor cm-cursor-secondary",n=o.empty?o:r.OF.cursor(o.head,o.head>o.anchor?-1:1);for(let r of hr.forRange(e,t,n))i.push(r)}}return i},update(e,t){e.transactions.some((e=>e.selection))&&(t.style.animationName="cm-blink"==t.style.animationName?"cm-blink2":"cm-blink");let n=wr(e);return n&&Sr(e.state,t),e.docChanged||e.selectionSet||n},mount(e,t){Sr(t.state,e)},class:"cm-cursorLayer"});function Sr(e,t){t.style.animationDuration=e.facet(yr).cursorBlinkRate+"ms"}const _r=br({above:!1,markers:e=>e.state.selection.ranges.map((t=>t.empty?[]:hr.forRange(e,"cm-selectionBackground",t))).reduce(((e,t)=>e.concat(t))),update:(e,t)=>e.docChanged||e.selectionSet||e.viewportChanged||wr(e),class:"cm-selectionLayer"}),Tr={".cm-line":{"& ::selection":{backgroundColor:"transparent !important"},"&::selection":{backgroundColor:"transparent !important"}}};vr&&(Tr[".cm-line"].caretColor="transparent !important",Tr[".cm-content"]={caretColor:"transparent !important"});const Er=r.Nb.highest(Hn.theme(Tr)),$r=r.Pe.define({map:(e,t)=>null==e?null:t.mapPos(e)}),Ar=r.sU.define({create:()=>null,update:(e,t)=>(null!=e&&(e=t.changes.mapPos(e)),t.effects.reduce(((e,t)=>t.is($r)?t.value:e),e))}),Cr=et.fromClass(class{constructor(e){this.view=e,this.cursor=null,this.measureReq={read:this.readPos.bind(this),write:this.drawCursor.bind(this)}}update(e){var t;let n=e.state.field(Ar);null==n?null!=this.cursor&&(null===(t=this.cursor)||void 0===t||t.remove(),this.cursor=null):(this.cursor||(this.cursor=this.view.scrollDOM.appendChild(document.createElement("div")),this.cursor.className="cm-dropCursor"),(e.startState.field(Ar)!=n||e.docChanged||e.geometryChanged)&&this.view.requestMeasure(this.measureReq))}readPos(){let{view:e}=this,t=e.state.field(Ar),n=null!=t&&e.coordsAtPos(t);if(!n)return null;let r=e.scrollDOM.getBoundingClientRect();return{left:n.left-r.left+e.scrollDOM.scrollLeft*e.scaleX,top:n.top-r.top+e.scrollDOM.scrollTop*e.scaleY,height:n.bottom-n.top}}drawCursor(e){if(this.cursor){let{scaleX:t,scaleY:n}=this.view;e?(this.cursor.style.left=e.left/t+"px",this.cursor.style.top=e.top/n+"px",this.cursor.style.height=e.height/n+"px"):this.cursor.style.left="-100000px"}}destroy(){this.cursor&&this.cursor.remove()}setDropPos(e){this.view.state.field(Ar)!=e&&this.view.dispatch({effects:$r.of(e)})}},{eventObservers:{dragover(e){this.setDropPos(this.view.posAtCoords({x:e.clientX,y:e.clientY}))},dragleave(e){e.target!=this.view.contentDOM&&this.view.contentDOM.contains(e.relatedTarget)||this.setDropPos(null)},dragend(){this.setDropPos(null)},drop(){this.setDropPos(null)}}});function Pr(){return[Ar,Cr]}function Rr(e,t,n,r,i){t.lastIndex=0;for(let o,a=e.iterRange(n,r),s=n;!a.next().done;s+=a.value.length)if(!a.lineBreak)for(;o=t.exec(a.value);)i(s+o.index,o)}class Ir{constructor(e){const{regexp:t,decoration:n,decorate:r,boundary:i,maxLength:o=1e3}=e;if(!t.global)throw new RangeError("The regular expression given to MatchDecorator should have its 'g' flag set");if(this.regexp=t,r)this.addMatch=(e,t,n,i)=>r(i,n,n+e[0].length,e,t);else if("function"==typeof n)this.addMatch=(e,t,r,i)=>{let o=n(e,t,r);o&&i(r,r+e[0].length,o)};else{if(!n)throw new RangeError("Either 'decorate' or 'decoration' should be provided to MatchDecorator");this.addMatch=(e,t,r,i)=>i(r,r+e[0].length,n)}this.boundary=i,this.maxLength=o}createDeco(e){let t=new r.vB,n=t.add.bind(t);for(let{from:r,to:i}of function(e,t){let n=e.visibleRanges;if(1==n.length&&n[0].from==e.viewport.from&&n[0].to==e.viewport.to)return n;let r=[];for(let{from:i,to:o}of n)i=Math.max(e.state.doc.lineAt(i).from,i-t),o=Math.min(e.state.doc.lineAt(o).to,o+t),r.length&&r[r.length-1].to>=i?r[r.length-1].to=o:r.push({from:i,to:o});return r}(e,this.maxLength))Rr(e.state.doc,this.regexp,r,i,((t,r)=>this.addMatch(r,e,t,n)));return t.finish()}updateDeco(e,t){let n=1e9,r=-1;return e.docChanged&&e.changes.iterChanges(((t,i,o,a)=>{a>e.view.viewport.from&&o1e3?this.createDeco(e.view):r>-1?this.updateRange(e.view,t.map(e.changes),n,r):t}updateRange(e,t,n,r){for(let i of e.visibleRanges){let o=Math.max(i.from,n),a=Math.min(i.to,r);if(a>o){let n=e.state.doc.lineAt(o),r=n.ton.from;o--)if(this.boundary.test(n.text[o-1-n.from])){s=o;break}for(;au.push(n.range(e,t));if(n==r)for(this.regexp.lastIndex=s-n.from;(c=this.regexp.exec(n.text))&&c.indexthis.addMatch(n,e,t,d)));t=t.update({filterFrom:s,filterTo:l,filter:(e,t)=>el,add:u})}}return t}}const Dr=null!=/x/.unicode?"gu":"g",zr=new RegExp("[\0-\b\n-\x1f\x7f-\x9f\xad\u061c\u200b\u200e\u200f\u2028\u2029\u202d\u202e\u2066\u2067\u2069\ufeff\ufff9-\ufffc]",Dr),Nr={0:"null",7:"bell",8:"backspace",10:"newline",11:"vertical tab",13:"carriage return",27:"escape",8203:"zero width space",8204:"zero width non-joiner",8205:"zero width joiner",8206:"left-to-right mark",8207:"right-to-left mark",8232:"line separator",8237:"left-to-right override",8238:"right-to-left override",8294:"left-to-right isolate",8295:"right-to-left isolate",8297:"pop directional isolate",8233:"paragraph separator",65279:"zero width no-break space",65532:"object replacement"};let Lr=null;const Mr=r.sj.define({combine(e){let t=(0,r.QR)(e,{render:null,specialChars:zr,addSpecialChars:null});return(t.replaceTabs=!function(){var e;if(null==Lr&&"undefined"!=typeof document&&document.body){let t=document.body.style;Lr=null!=(null!==(e=t.tabSize)&&void 0!==e?e:t.MozTabSize)}return Lr||!1}())&&(t.specialChars=new RegExp("\t|"+t.specialChars.source,Dr)),t.addSpecialChars&&(t.specialChars=new RegExp(t.specialChars.source+"|"+t.addSpecialChars.source,Dr)),t}});function Qr(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[Mr.of(e),qr||(qr=et.fromClass(class{constructor(e){this.view=e,this.decorations=ce.none,this.decorationCache=Object.create(null),this.decorator=this.makeDecorator(e.state.facet(Mr)),this.decorations=this.decorator.createDeco(e)}makeDecorator(e){return new Ir({regexp:e.specialChars,decoration:(t,n,i)=>{let{doc:o}=n.state,a=(0,r.vS)(t[0],0);if(9==a){let e=o.lineAt(i),t=n.state.tabSize,a=(0,r.y$)(e.text,t,i-e.from);return ce.replace({widget:new Br((t-a%t)*this.view.defaultCharacterWidth/this.view.scaleX)})}return this.decorationCache[a]||(this.decorationCache[a]=ce.replace({widget:new Wr(e,a)}))},boundary:e.replaceTabs?void 0:/[^]/})}update(e){let t=e.state.facet(Mr);e.startState.facet(Mr)!=t?(this.decorator=this.makeDecorator(t),this.decorations=this.decorator.createDeco(e.view)):this.decorations=this.decorator.updateDeco(e,this.decorations)}},{decorations:e=>e.decorations}))]}let qr=null;class Wr extends se{constructor(e,t){super(),this.options=e,this.code=t}eq(e){return e.code==this.code}toDOM(e){let t=(n=this.code)>=32?"\u2022":10==n?"\u2424":String.fromCharCode(9216+n);var n;let r=e.state.phrase("Control character")+" "+(Nr[this.code]||"0x"+this.code.toString(16)),i=this.options.render&&this.options.render(this.code,r,t);if(i)return i;let o=document.createElement("span");return o.textContent=t,o.title=r,o.setAttribute("aria-label",r),o.className="cm-specialChar",o}ignoreEvent(){return!1}}class Br extends se{constructor(e){super(),this.width=e}eq(e){return e.width==this.width}toDOM(){let e=document.createElement("span");return e.textContent="\t",e.className="cm-tab",e.style.width=this.width+"px",e}ignoreEvent(){return!1}}const Fr=et.fromClass(class{constructor(){this.height=1e3,this.attrs={style:"padding-bottom: 1000px"}}update(e){let{view:t}=e,n=t.viewState.editorHeight-t.defaultLineHeight-t.documentPadding.top-.5;n>=0&&n!=this.height&&(this.height=n,this.attrs={style:"padding-bottom: ".concat(n,"px")})}});function Ur(){return[Fr,rt.of((e=>{var t;return(null===(t=e.plugin(Fr))||void 0===t?void 0:t.attrs)||null}))]}function jr(){return Gr}const Vr=ce.line({class:"cm-activeLine"}),Gr=et.fromClass(class{constructor(e){this.decorations=this.getDeco(e)}update(e){(e.docChanged||e.selectionSet)&&(this.decorations=this.getDeco(e.view))}getDeco(e){let t=-1,n=[];for(let r of e.state.selection.ranges){let i=e.lineBlockAt(r.head);i.from>t&&(n.push(Vr.range(i.from)),t=i.from)}return ce.set(n)}},{decorations:e=>e.decorations});class Xr extends se{constructor(e){super(),this.content=e}toDOM(){let e=document.createElement("span");return e.className="cm-placeholder",e.style.pointerEvents="none",e.appendChild("string"==typeof this.content?document.createTextNode(this.content):this.content),"string"==typeof this.content?e.setAttribute("aria-label","placeholder "+this.content):e.setAttribute("aria-hidden","true"),e}coordsAt(e){let t=e.firstChild?c(e.firstChild):[];if(!t.length)return null;let n=window.getComputedStyle(e.parentNode),r=p(t[0],"rtl"!=n.direction),i=parseInt(n.lineHeight);return r.bottom-r.top>1.5*i?{left:r.left,right:r.right,top:r.top,bottom:r.top+i}:r}ignoreEvent(){return!1}}function Yr(e){return et.fromClass(class{constructor(t){this.view=t,this.placeholder=e?ce.set([ce.widget({widget:new Xr(e),side:1}).range(0)]):ce.none}get decorations(){return this.view.state.doc.length?ce.none:this.placeholder}},{decorations:e=>e.decorations})}const Zr=2e3;function Hr(e,t){let n=e.posAtCoords({x:t.clientX,y:t.clientY},!1),i=e.state.doc.lineAt(n),o=n-i.from,a=o>Zr?-1:o==i.length?function(e,t){let n=e.coordsAtPos(e.viewport.from);return n?Math.round(Math.abs((n.left-t)/e.defaultCharacterWidth)):-1}(e,t.clientX):(0,r.y$)(i.text,e.state.tabSize,n-i.from);return{line:i.number,col:a,off:o}}function Kr(e,t){let n=Hr(e,t),i=e.state.selection;return n?{update(e){if(e.docChanged){let t=e.changes.mapPos(e.startState.doc.line(n.line).from),r=e.state.doc.lineAt(t);n={line:r.number,col:n.col,off:Math.min(n.off,r.length)},i=i.map(e.changes)}},get(t,o,a){let s=Hr(e,t);if(!s)return i;let l=function(e,t,n){let i=Math.min(t.line,n.line),o=Math.max(t.line,n.line),a=[];if(t.off>Zr||n.off>Zr||t.col<0||n.col<0){let s=Math.min(t.off,n.off),l=Math.max(t.off,n.off);for(let t=i;t<=o;t++){let n=e.doc.line(t);n.length<=l&&a.push(r.OF.range(n.from+s,n.to+l))}}else{let s=Math.min(t.col,n.col),l=Math.max(t.col,n.col);for(let t=i;t<=o;t++){let n=e.doc.line(t),i=(0,r.kn)(n.text,s,e.tabSize,!0);if(i<0)a.push(r.OF.cursor(n.to));else{let t=(0,r.kn)(n.text,l,e.tabSize);a.push(r.OF.range(n.from+i,n.from+t))}}}return a}(e.state,n,s);return l.length?a?r.OF.create(l.concat(i.ranges)):r.OF.create(l):i}}:null}function Jr(e){let t=(null===e||void 0===e?void 0:e.eventFilter)||(e=>e.altKey&&0==e.button);return Hn.mouseSelectionStyle.of(((e,n)=>t(n)?Kr(e,n):null))}const ei={Alt:[18,e=>!!e.altKey],Control:[17,e=>!!e.ctrlKey],Shift:[16,e=>!!e.shiftKey],Meta:[91,e=>!!e.metaKey]},ti={style:"cursor: crosshair"};function ni(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},[t,n]=ei[e.key||"Alt"],r=et.fromClass(class{constructor(e){this.view=e,this.isDown=!1}set(e){this.isDown!=e&&(this.isDown=e,this.view.update([]))}},{eventObservers:{keydown(e){this.set(e.keyCode==t||n(e))},keyup(e){e.keyCode!=t&&n(e)||this.set(!1)},mousemove(e){this.set(n(e))}}});return[r,Hn.contentAttributes.of((e=>{var t;return(null===(t=e.plugin(r))||void 0===t?void 0:t.isDown)?ti:null}))]}const ri="-10000px";class ii{constructor(e,t,n,r){this.facet=t,this.createTooltipView=n,this.removeTooltipView=r,this.input=e.state.facet(t),this.tooltips=this.input.filter((e=>e));let i=null;this.tooltipViews=this.tooltips.map((e=>i=n(e,i)))}update(e,t){var n;let r=e.state.facet(this.facet),i=r.filter((e=>e));if(r===this.input){for(let t of this.tooltipViews)t.update&&t.update(e);return!1}let o=[],a=t?[]:null;for(let s=0;st[n]=e)),t.length=a.length),this.input=r,this.tooltips=i,this.tooltipViews=o,!0}}function oi(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return si.of(e)}function ai(e){let{win:t}=e;return{top:0,left:0,bottom:t.innerHeight,right:t.innerWidth}}const si=r.sj.define({combine:e=>{var t,n,r;return{position:V.ios?"absolute":(null===(t=e.find((e=>e.position)))||void 0===t?void 0:t.position)||"fixed",parent:(null===(n=e.find((e=>e.parent)))||void 0===n?void 0:n.parent)||null,tooltipSpace:(null===(r=e.find((e=>e.tooltipSpace)))||void 0===r?void 0:r.tooltipSpace)||ai}}}),li=new WeakMap,ci=et.fromClass(class{constructor(e){this.view=e,this.above=[],this.inView=!0,this.madeAbsolute=!1,this.lastTransaction=0,this.measureTimeout=-1;let t=e.state.facet(si);this.position=t.position,this.parent=t.parent,this.classes=e.themeClasses,this.createContainer(),this.measureReq={read:this.readMeasure.bind(this),write:this.writeMeasure.bind(this),key:this},this.resizeObserver="function"==typeof ResizeObserver?new ResizeObserver((()=>this.measureSoon())):null,this.manager=new ii(e,hi,((e,t)=>this.createTooltip(e,t)),(e=>{this.resizeObserver&&this.resizeObserver.unobserve(e.dom),e.dom.remove()})),this.above=this.manager.tooltips.map((e=>!!e.above)),this.intersectionObserver="function"==typeof IntersectionObserver?new IntersectionObserver((e=>{Date.now()>this.lastTransaction-50&&e.length>0&&e[e.length-1].intersectionRatio<1&&this.measureSoon()}),{threshold:[1]}):null,this.observeIntersection(),e.win.addEventListener("resize",this.measureSoon=this.measureSoon.bind(this)),this.maybeMeasure()}createContainer(){this.parent?(this.container=document.createElement("div"),this.container.style.position="relative",this.container.className=this.view.themeClasses,this.parent.appendChild(this.container)):this.container=this.view.dom}observeIntersection(){if(this.intersectionObserver){this.intersectionObserver.disconnect();for(let e of this.manager.tooltipViews)this.intersectionObserver.observe(e.dom)}}measureSoon(){this.measureTimeout<0&&(this.measureTimeout=setTimeout((()=>{this.measureTimeout=-1,this.maybeMeasure()}),50))}update(e){e.transactions.length&&(this.lastTransaction=Date.now());let t=this.manager.update(e,this.above);t&&this.observeIntersection();let n=t||e.geometryChanged,r=e.state.facet(si);if(r.position!=this.position&&!this.madeAbsolute){this.position=r.position;for(let e of this.manager.tooltipViews)e.dom.style.position=this.position;n=!0}if(r.parent!=this.parent){this.parent&&this.container.remove(),this.parent=r.parent,this.createContainer();for(let e of this.manager.tooltipViews)this.container.appendChild(e.dom);n=!0}else this.parent&&this.view.themeClasses!=this.classes&&(this.classes=this.container.className=this.view.themeClasses);n&&this.maybeMeasure()}createTooltip(e,t){let n=e.create(this.view),r=t?t.dom:null;if(n.dom.classList.add("cm-tooltip"),e.arrow&&!n.dom.querySelector(".cm-tooltip > .cm-tooltip-arrow")){let e=document.createElement("div");e.className="cm-tooltip-arrow",n.dom.appendChild(e)}return n.dom.style.position=this.position,n.dom.style.top=ri,n.dom.style.left="0px",this.container.insertBefore(n.dom,r),n.mount&&n.mount(this.view),this.resizeObserver&&this.resizeObserver.observe(n.dom),n}destroy(){var e,t,n;this.view.win.removeEventListener("resize",this.measureSoon);for(let r of this.manager.tooltipViews)r.dom.remove(),null===(e=r.destroy)||void 0===e||e.call(r);this.parent&&this.container.remove(),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),null===(n=this.intersectionObserver)||void 0===n||n.disconnect(),clearTimeout(this.measureTimeout)}readMeasure(){let e=this.view.dom.getBoundingClientRect(),t=1,n=1,r=!1;if("fixed"==this.position&&this.manager.tooltipViews.length){let{dom:e}=this.manager.tooltipViews[0];if(V.gecko)r=e.offsetParent!=this.container.ownerDocument.body;else if(e.style.top==ri&&"0px"==e.style.left){let t=e.getBoundingClientRect();r=Math.abs(t.top+1e4)>1||Math.abs(t.left)>1}}if(r||"absolute"==this.position)if(this.parent){let e=this.parent.getBoundingClientRect();e.width&&e.height&&(t=e.width/this.parent.offsetWidth,n=e.height/this.parent.offsetHeight)}else({scaleX:t,scaleY:n}=this.view.viewState);return{editor:e,parent:this.parent?this.container.getBoundingClientRect():e,pos:this.manager.tooltips.map(((e,t)=>{let n=this.manager.tooltipViews[t];return n.getCoords?n.getCoords(e.pos):this.view.coordsAtPos(e.pos)})),size:this.manager.tooltipViews.map((e=>{let{dom:t}=e;return t.getBoundingClientRect()})),space:this.view.state.facet(si).tooltipSpace(this.view),scaleX:t,scaleY:n,makeAbsolute:r}}writeMeasure(e){var t;if(e.makeAbsolute){this.madeAbsolute=!0,this.position="absolute";for(let e of this.manager.tooltipViews)e.dom.style.position="absolute"}let{editor:n,space:r,scaleX:i,scaleY:o}=e,a=[];for(let s=0;s=Math.min(n.bottom,r.bottom)||d.rightMath.min(n.right,r.right)+.1){u.style.top=ri;continue}let f=l.arrow?c.dom.querySelector(".cm-tooltip-arrow"):null,m=f?7:0,p=h.right-h.left,g=null!==(t=li.get(c))&&void 0!==t?t:h.bottom-h.top,b=c.offset||di,v=this.view.textDirection==ve.LTR,y=h.width>r.right-r.left?v?r.left:r.right-h.width:v?Math.min(d.left-(f?14:0)+b.x,r.right-p):Math.max(r.left,d.left-p+(f?14:0)-b.x),k=this.above[s];!l.strictSide&&(k?d.top-(h.bottom-h.top)-b.yr.bottom)&&k==r.bottom-d.bottom>d.top-r.top&&(k=this.above[s]=!k);let O=(k?d.top-r.top:r.bottom-d.bottom)-m;if(Oy&&e.topw&&(w=k?e.top-g-2-m:e.bottom+m+2);if("absolute"==this.position?(u.style.top=(w-e.parent.top)/o+"px",u.style.left=(y-e.parent.left)/i+"px"):(u.style.top=w/o+"px",u.style.left=y/i+"px"),f){let e=d.left+(v?b.x:-b.x)-(y+14-7);f.style.left=e/i+"px"}!0!==c.overlap&&a.push({left:y,top:w,right:x,bottom:w+g}),u.classList.toggle("cm-tooltip-above",k),u.classList.toggle("cm-tooltip-below",!k),c.positioned&&c.positioned(e.space)}}maybeMeasure(){if(this.manager.tooltips.length&&(this.view.inView&&this.view.requestMeasure(this.measureReq),this.inView!=this.view.inView&&(this.inView=this.view.inView,!this.inView)))for(let e of this.manager.tooltipViews)e.dom.style.top=ri}},{eventObservers:{scroll(){this.maybeMeasure()}}}),ui=Hn.baseTheme({".cm-tooltip":{zIndex:100,boxSizing:"border-box"},"&light .cm-tooltip":{border:"1px solid #bbb",backgroundColor:"#f5f5f5"},"&light .cm-tooltip-section:not(:first-child)":{borderTop:"1px solid #bbb"},"&dark .cm-tooltip":{backgroundColor:"#333338",color:"white"},".cm-tooltip-arrow":{height:"".concat(7,"px"),width:"".concat(14,"px"),position:"absolute",zIndex:-1,overflow:"hidden","&:before, &:after":{content:"''",position:"absolute",width:0,height:0,borderLeft:"".concat(7,"px solid transparent"),borderRight:"".concat(7,"px solid transparent")},".cm-tooltip-above &":{bottom:"-".concat(7,"px"),"&:before":{borderTop:"".concat(7,"px solid #bbb")},"&:after":{borderTop:"".concat(7,"px solid #f5f5f5"),bottom:"1px"}},".cm-tooltip-below &":{top:"-".concat(7,"px"),"&:before":{borderBottom:"".concat(7,"px solid #bbb")},"&:after":{borderBottom:"".concat(7,"px solid #f5f5f5"),top:"1px"}}},"&dark .cm-tooltip .cm-tooltip-arrow":{"&:before":{borderTopColor:"#333338",borderBottomColor:"#333338"},"&:after":{borderTopColor:"transparent",borderBottomColor:"transparent"}}}),di={x:0,y:0},hi=r.sj.define({enables:[ci,ui]}),fi=r.sj.define({combine:e=>e.reduce(((e,t)=>e.concat(t)),[])});class mi{static create(e){return new mi(e)}constructor(e){this.view=e,this.mounted=!1,this.dom=document.createElement("div"),this.dom.classList.add("cm-tooltip-hover"),this.manager=new ii(e,fi,((e,t)=>this.createHostedView(e,t)),(e=>e.dom.remove()))}createHostedView(e,t){let n=e.create(this.view);return n.dom.classList.add("cm-tooltip-section"),this.dom.insertBefore(n.dom,t?t.dom.nextSibling:this.dom.firstChild),this.mounted&&n.mount&&n.mount(this.view),n}mount(e){for(let t of this.manager.tooltipViews)t.mount&&t.mount(e);this.mounted=!0}positioned(e){for(let t of this.manager.tooltipViews)t.positioned&&t.positioned(e)}update(e){this.manager.update(e)}destroy(){var e;for(let t of this.manager.tooltipViews)null===(e=t.destroy)||void 0===e||e.call(t)}passProp(e){let t;for(let n of this.manager.tooltipViews){let r=n[e];if(void 0!==r)if(void 0===t)t=r;else if(t!==r)return}return t}get offset(){return this.passProp("offset")}get getCoords(){return this.passProp("getCoords")}get overlap(){return this.passProp("overlap")}get resize(){return this.passProp("resize")}}const pi=hi.compute([fi],(e=>{let t=e.facet(fi);return 0===t.length?null:{pos:Math.min(...t.map((e=>e.pos))),end:Math.max(...t.map((e=>{var t;return null!==(t=e.end)&&void 0!==t?t:e.pos}))),create:mi.create,above:t[0].above,arrow:t.some((e=>e.arrow))}}));class gi{constructor(e,t,n,r,i){this.view=e,this.source=t,this.field=n,this.setHover=r,this.hoverTime=i,this.hoverTimeout=-1,this.restartTimeout=-1,this.pending=null,this.lastMove={x:0,y:0,target:e.dom,time:0},this.checkHover=this.checkHover.bind(this),e.dom.addEventListener("mouseleave",this.mouseleave=this.mouseleave.bind(this)),e.dom.addEventListener("mousemove",this.mousemove=this.mousemove.bind(this))}update(){this.pending&&(this.pending=null,clearTimeout(this.restartTimeout),this.restartTimeout=setTimeout((()=>this.startHover()),20))}get active(){return this.view.state.field(this.field)}checkHover(){if(this.hoverTimeout=-1,this.active.length)return;let e=Date.now()-this.lastMove.time;en.bottom||t.xn.right+e.defaultCharacterWidth)return;let o=e.bidiSpans(e.state.doc.lineAt(r)).find((e=>e.from<=r&&e.to>=r)),a=o&&o.dir==ve.RTL?-1:1;i=t.x{this.pending==t&&(this.pending=null,!n||Array.isArray(n)&&!n.length||e.dispatch({effects:this.setHover.of(Array.isArray(n)?n:[n])}))}),(t=>Ze(e.state,t,"hover tooltip")))}else!o||Array.isArray(o)&&!o.length||e.dispatch({effects:this.setHover.of(Array.isArray(o)?o:[o])})}get tooltip(){let e=this.view.plugin(ci),t=e?e.manager.tooltips.findIndex((e=>e.create==mi.create)):-1;return t>-1?e.manager.tooltipViews[t]:null}mousemove(e){var t,n;this.lastMove={x:e.clientX,y:e.clientY,target:e.target,time:Date.now()},this.hoverTimeout<0&&(this.hoverTimeout=setTimeout(this.checkHover,this.hoverTime));let{active:r,tooltip:i}=this;if(r.length&&i&&!function(e,t){let n=e.getBoundingClientRect();return t.clientX>=n.left-bi&&t.clientX<=n.right+bi&&t.clientY>=n.top-bi&&t.clientY<=n.bottom+bi}(i.dom,e)||this.pending){let{pos:i}=r[0]||this.pending,o=null!==(n=null===(t=r[0])||void 0===t?void 0:t.end)&&void 0!==n?n:i;(i==o?this.view.posAtCoords(this.lastMove)==i:function(e,t,n,r,i,o){let a=e.scrollDOM.getBoundingClientRect(),s=e.documentTop+e.documentPadding.top+e.contentHeight;if(a.left>r||a.righti||Math.min(a.bottom,s)=t&&l<=n}(this.view,i,o,e.clientX,e.clientY))||(this.view.dispatch({effects:this.setHover.of([])}),this.pending=null)}}mouseleave(e){clearTimeout(this.hoverTimeout),this.hoverTimeout=-1;let{active:t}=this;if(t.length){let{tooltip:t}=this;t&&t.dom.contains(e.relatedTarget)?this.watchTooltipLeave(t.dom):this.view.dispatch({effects:this.setHover.of([])})}}watchTooltipLeave(e){let t=n=>{e.removeEventListener("mouseleave",t),this.active.length&&!this.view.dom.contains(n.relatedTarget)&&this.view.dispatch({effects:this.setHover.of([])})};e.addEventListener("mouseleave",t)}destroy(){clearTimeout(this.hoverTimeout),this.view.dom.removeEventListener("mouseleave",this.mouseleave),this.view.dom.removeEventListener("mousemove",this.mousemove)}}const bi=4;function vi(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=r.Pe.define(),i=r.sU.define({create:()=>[],update(e,i){if(e.length&&(t.hideOnChange&&(i.docChanged||i.selection)?e=[]:t.hideOn&&(e=e.filter((e=>!t.hideOn(i,e)))),i.docChanged)){let t=[];for(let n of e){let e=i.changes.mapPos(n.pos,-1,r.iR.TrackDel);if(null!=e){let r=Object.assign(Object.create(null),n);r.pos=e,null!=r.end&&(r.end=i.changes.mapPos(r.end)),t.push(r)}}e=t}for(let t of i.effects)t.is(n)&&(e=t.value),t.is(Oi)&&(e=[]);return e},provide:e=>fi.from(e)});return[i,et.define((r=>new gi(r,e,i,n,t.hoverTime||300))),pi]}function yi(e,t){let n=e.plugin(ci);if(!n)return null;let r=n.manager.tooltips.indexOf(t);return r<0?null:n.manager.tooltipViews[r]}function ki(e){return e.facet(fi).some((e=>e))}const Oi=r.Pe.define(),wi=Oi.of(null);function xi(e){let t=e.plugin(ci);t&&t.maybeMeasure()}const Si=r.sj.define({combine(e){let t,n;for(let r of e)t=t||r.topContainer,n=n||r.bottomContainer;return{topContainer:t,bottomContainer:n}}});function _i(e){return e?[Si.of(e)]:[]}function Ti(e,t){let n=e.plugin(Ei),r=n?n.specs.indexOf(t):-1;return r>-1?n.panels[r]:null}const Ei=et.fromClass(class{constructor(e){this.input=e.state.facet(Ci),this.specs=this.input.filter((e=>e)),this.panels=this.specs.map((t=>t(e)));let t=e.state.facet(Si);this.top=new $i(e,!0,t.topContainer),this.bottom=new $i(e,!1,t.bottomContainer),this.top.sync(this.panels.filter((e=>e.top))),this.bottom.sync(this.panels.filter((e=>!e.top)));for(let n of this.panels)n.dom.classList.add("cm-panel"),n.mount&&n.mount()}update(e){let t=e.state.facet(Si);this.top.container!=t.topContainer&&(this.top.sync([]),this.top=new $i(e.view,!0,t.topContainer)),this.bottom.container!=t.bottomContainer&&(this.bottom.sync([]),this.bottom=new $i(e.view,!1,t.bottomContainer)),this.top.syncClasses(),this.bottom.syncClasses();let n=e.state.facet(Ci);if(n!=this.input){let t=n.filter((e=>e)),r=[],i=[],o=[],a=[];for(let n of t){let t,s=this.specs.indexOf(n);s<0?(t=n(e.view),a.push(t)):(t=this.panels[s],t.update&&t.update(e)),r.push(t),(t.top?i:o).push(t)}this.specs=t,this.panels=r,this.top.sync(i),this.bottom.sync(o);for(let e of a)e.dom.classList.add("cm-panel"),e.mount&&e.mount()}else for(let r of this.panels)r.update&&r.update(e)}destroy(){this.top.sync([]),this.bottom.sync([])}},{provide:e=>Hn.scrollMargins.of((t=>{let n=t.plugin(e);return n&&{top:n.top.scrollMargin(),bottom:n.bottom.scrollMargin()}}))});class $i{constructor(e,t,n){this.view=e,this.top=t,this.container=n,this.dom=void 0,this.classes="",this.panels=[],this.syncClasses()}sync(e){for(let t of this.panels)t.destroy&&e.indexOf(t)<0&&t.destroy();this.panels=e,this.syncDOM()}syncDOM(){if(0==this.panels.length)return void(this.dom&&(this.dom.remove(),this.dom=void 0));if(!this.dom){this.dom=document.createElement("div"),this.dom.className=this.top?"cm-panels cm-panels-top":"cm-panels cm-panels-bottom",this.dom.style[this.top?"top":"bottom"]="0";let e=this.container||this.view.dom;e.insertBefore(this.dom,this.top?e.firstChild:null)}let e=this.dom.firstChild;for(let t of this.panels)if(t.dom.parentNode==this.dom){for(;e!=t.dom;)e=Ai(e);e=e.nextSibling}else this.dom.insertBefore(t.dom,e);for(;e;)e=Ai(e)}scrollMargin(){return!this.dom||this.container?0:Math.max(0,this.top?this.dom.getBoundingClientRect().bottom-Math.max(0,this.view.scrollDOM.getBoundingClientRect().top):Math.min(innerHeight,this.view.scrollDOM.getBoundingClientRect().bottom)-this.dom.getBoundingClientRect().top)}syncClasses(){if(this.container&&this.classes!=this.view.themeClasses){for(let e of this.classes.split(" "))e&&this.container.classList.remove(e);for(let e of(this.classes=this.view.themeClasses).split(" "))e&&this.container.classList.add(e)}}}function Ai(e){let t=e.nextSibling;return e.remove(),t}const Ci=r.sj.define({enables:Ei});class Pi extends r.FB{compare(e){return this==e||this.constructor==e.constructor&&this.eq(e)}eq(e){return!1}destroy(e){}}Pi.prototype.elementClass="",Pi.prototype.toDOM=void 0,Pi.prototype.mapMode=r.iR.TrackBefore,Pi.prototype.startSide=Pi.prototype.endSide=-1,Pi.prototype.point=!0;const Ri=r.sj.define(),Ii={class:"",renderEmptyElements:!1,elementStyle:"",markers:()=>r.om.empty,lineMarker:()=>null,widgetMarker:()=>null,lineMarkerChange:null,initialSpacer:null,updateSpacer:null,domEventHandlers:{}},Di=r.sj.define();function zi(e){return[Li(),Di.of(Object.assign(Object.assign({},Ii),e))]}const Ni=r.sj.define({combine:e=>e.some((e=>e))});function Li(e){let t=[Mi];return e&&!1===e.fixed&&t.push(Ni.of(!0)),t}const Mi=et.fromClass(class{constructor(e){this.view=e,this.prevViewport=e.viewport,this.dom=document.createElement("div"),this.dom.className="cm-gutters",this.dom.setAttribute("aria-hidden","true"),this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px",this.gutters=e.state.facet(Di).map((t=>new Bi(e,t)));for(let t of this.gutters)this.dom.appendChild(t.dom);this.fixed=!e.state.facet(Ni),this.fixed&&(this.dom.style.position="sticky"),this.syncGutters(!1),e.scrollDOM.insertBefore(this.dom,e.contentDOM)}update(e){if(this.updateGutters(e)){let t=this.prevViewport,n=e.view.viewport,r=Math.min(t.to,n.to)-Math.max(t.from,n.from);this.syncGutters(r<.8*(n.to-n.from))}e.geometryChanged&&(this.dom.style.minHeight=this.view.contentHeight/this.view.scaleY+"px"),this.view.state.facet(Ni)!=!this.fixed&&(this.fixed=!this.fixed,this.dom.style.position=this.fixed?"sticky":""),this.prevViewport=e.view.viewport}syncGutters(e){let t=this.dom.nextSibling;e&&this.dom.remove();let n=r.om.iter(this.view.state.facet(Ri),this.view.viewport.from),i=[],o=this.gutters.map((e=>new Wi(e,this.view.viewport,-this.view.documentPadding.top)));for(let r of this.view.viewportLineBlocks)if(i.length&&(i=[]),Array.isArray(r.type)){let e=!0;for(let t of r.type)if(t.type==le.Text&&e){qi(n,i,t.from);for(let e of o)e.line(this.view,t,i);e=!1}else if(t.widget)for(let e of o)e.widget(this.view,t)}else if(r.type==le.Text){qi(n,i,r.from);for(let e of o)e.line(this.view,r,i)}else if(r.widget)for(let e of o)e.widget(this.view,r);for(let r of o)r.finish();e&&this.view.scrollDOM.insertBefore(this.dom,t)}updateGutters(e){let t=e.startState.facet(Di),n=e.state.facet(Di),i=e.docChanged||e.heightChanged||e.viewportChanged||!r.om.eq(e.startState.facet(Ri),e.state.facet(Ri),e.view.viewport.from,e.view.viewport.to);if(t==n)for(let r of this.gutters)r.update(e)&&(i=!0);else{i=!0;let r=[];for(let i of n){let n=t.indexOf(i);n<0?r.push(new Bi(this.view,i)):(this.gutters[n].update(e),r.push(this.gutters[n]))}for(let e of this.gutters)e.dom.remove(),r.indexOf(e)<0&&e.destroy();for(let e of r)this.dom.appendChild(e.dom);this.gutters=r}return i}destroy(){for(let e of this.gutters)e.destroy();this.dom.remove()}},{provide:e=>Hn.scrollMargins.of((t=>{let n=t.plugin(e);return n&&0!=n.gutters.length&&n.fixed?t.textDirection==ve.LTR?{left:n.dom.offsetWidth*t.scaleX}:{right:n.dom.offsetWidth*t.scaleX}:null}))});function Qi(e){return Array.isArray(e)?e:[e]}function qi(e,t,n){for(;e.value&&e.from<=n;)e.from==n&&t.push(e.value),e.next()}class Wi{constructor(e,t,n){this.gutter=e,this.height=n,this.i=0,this.cursor=r.om.iter(e.markers,t.from)}addElement(e,t,n){let{gutter:r}=this,i=(t.top-this.height)/e.scaleY,o=t.height/e.scaleY;if(this.i==r.elements.length){let t=new Fi(e,o,i,n);r.elements.push(t),r.dom.appendChild(t.dom)}else r.elements[this.i].update(e,o,i,n);this.height=t.bottom,this.i++}line(e,t,n){let r=[];qi(this.cursor,r,t.from),n.length&&(r=r.concat(n));let i=this.gutter.config.lineMarker(e,t,r);i&&r.unshift(i);let o=this.gutter;(0!=r.length||o.config.renderEmptyElements)&&this.addElement(e,t,r)}widget(e,t){let n=this.gutter.config.widgetMarker(e,t.widget,t);n&&this.addElement(e,t,[n])}finish(){let e=this.gutter;for(;e.elements.length>this.i;){let t=e.elements.pop();e.dom.removeChild(t.dom),t.destroy()}}}class Bi{constructor(e,t){this.view=e,this.config=t,this.elements=[],this.spacer=null,this.dom=document.createElement("div"),this.dom.className="cm-gutter"+(this.config.class?" "+this.config.class:"");for(let n in t.domEventHandlers)this.dom.addEventListener(n,(r=>{let i,o=r.target;if(o!=this.dom&&this.dom.contains(o)){for(;o.parentNode!=this.dom;)o=o.parentNode;let e=o.getBoundingClientRect();i=(e.top+e.bottom)/2}else i=r.clientY;let a=e.lineBlockAtHeight(i-e.documentTop);t.domEventHandlers[n](e,a,r)&&r.preventDefault()}));this.markers=Qi(t.markers(e)),t.initialSpacer&&(this.spacer=new Fi(e,0,0,[t.initialSpacer(e)]),this.dom.appendChild(this.spacer.dom),this.spacer.dom.style.cssText+="visibility: hidden; pointer-events: none")}update(e){let t=this.markers;if(this.markers=Qi(this.config.markers(e.view)),this.spacer&&this.config.updateSpacer){let t=this.config.updateSpacer(this.spacer.markers[0],e);t!=this.spacer.markers[0]&&this.spacer.update(e.view,0,0,[t])}let n=e.view.viewport;return!r.om.eq(this.markers,t,n.from,n.to)||!!this.config.lineMarkerChange&&this.config.lineMarkerChange(e)}destroy(){for(let e of this.elements)e.destroy()}}class Fi{constructor(e,t,n,r){this.height=-1,this.above=0,this.markers=[],this.dom=document.createElement("div"),this.dom.className="cm-gutterElement",this.update(e,t,n,r)}update(e,t,n,r){this.height!=t&&(this.height=t,this.dom.style.height=t+"px"),this.above!=n&&(this.dom.style.marginTop=(this.above=n)?n+"px":""),function(e,t){if(e.length!=t.length)return!1;for(let n=0;n(0,r.QR)(e,{formatNumber:String,domEventHandlers:{}},{domEventHandlers(e,t){let n=Object.assign({},e);for(let r in t){let e=n[r],i=t[r];n[r]=e?(t,n,r)=>e(t,n,r)||i(t,n,r):i}return n}})});class Vi extends Pi{constructor(e){super(),this.number=e}eq(e){return this.number==e.number}toDOM(){return document.createTextNode(this.number)}}function Gi(e,t){return e.state.facet(ji).formatNumber(t,e.state)}const Xi=Di.compute([ji],(e=>({class:"cm-lineNumbers",renderEmptyElements:!1,markers:e=>e.state.facet(Ui),lineMarker:(e,t,n)=>n.some((e=>e.toDOM))?null:new Vi(Gi(e,e.state.doc.lineAt(t.from).number)),widgetMarker:()=>null,lineMarkerChange:e=>e.startState.facet(ji)!=e.state.facet(ji),initialSpacer:e=>new Vi(Gi(e,Zi(e.state.doc.lines))),updateSpacer(e,t){let n=Gi(t.view,Zi(t.view.state.doc.lines));return n==e.number?e:new Vi(n)},domEventHandlers:e.facet(ji).domEventHandlers})));function Yi(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return[ji.of(e),Li(),Xi]}function Zi(e){let t=9;for(;t{let t=[],n=-1;for(let r of e.selection.ranges){let i=e.doc.lineAt(r.head).from;i>n&&(n=i,t.push(Hi.range(i)))}return r.om.of(t)}));function Ji(){return Ki}const eo=new Map;function to(e){return et.define((t=>({decorations:e.createDeco(t),update(t){this.decorations=e.updateDeco(t,this.decorations)}})),{decorations:e=>e.decorations})}const no=to(new Ir({regexp:/\t| +/g,decoration:e=>function(e){let t=eo.get(e);return t||eo.set(e,t=ce.mark({attributes:"\t"===e?{class:"cm-highlightTab"}:{class:"cm-highlightSpace","data-display":e.replace(/ /g,"\xb7")}})),t}(e[0]),boundary:/\S/}));function ro(){return no}const io=to(new Ir({regexp:/\s+$/g,decoration:ce.mark({class:"cm-trailingSpace"}),boundary:/\S/}));function oo(){return io}const ao={HeightMap:hn,HeightOracle:sn,MeasuredHeights:ln,QueryType:un,ChangedRange:ht,computeOrder:Ie,moveVisually:Ne}}}]); +//# sourceMappingURL=codemirror-vendor.e72bd391.js.map \ No newline at end of file diff --git a/static/js/codemirror-vendor.e72bd391.js.map b/static/js/codemirror-vendor.e72bd391.js.map new file mode 100644 index 000000000..67d1e76b7 --- /dev/null +++ b/static/js/codemirror-vendor.e72bd391.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/codemirror-vendor.e72bd391.js","mappings":"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","sources":["../../node_modules/@codemirror/autocomplete/dist/index.js","../../node_modules/@codemirror/commands/dist/index.js","../../node_modules/@codemirror/lang-angular/dist/index.js","../../node_modules/@codemirror/lang-cpp/dist/index.js","../../node_modules/@codemirror/lang-css/dist/index.js","../../node_modules/@codemirror/lang-go/dist/index.js","../../node_modules/@codemirror/lang-html/dist/index.js","../../node_modules/@codemirror/lang-java/dist/index.js","../../node_modules/@codemirror/lang-javascript/dist/index.js","../../node_modules/@codemirror/lang-json/dist/index.js","../../node_modules/@codemirror/lang-less/dist/index.js","../../node_modules/@codemirror/lang-lezer/dist/index.js","../../node_modules/@codemirror/lang-liquid/dist/index.js","../../node_modules/@codemirror/lang-markdown/dist/index.js","../../node_modules/@codemirror/lang-php/dist/index.js","../../node_modules/@codemirror/lang-python/dist/index.js","../../node_modules/@codemirror/lang-rust/dist/index.js","../../node_modules/@codemirror/lang-sass/dist/index.js","../../node_modules/@codemirror/lang-sql/dist/index.js","../../node_modules/@codemirror/lang-vue/dist/index.js","../../node_modules/@codemirror/lang-wast/dist/index.js","../../node_modules/@codemirror/lang-xml/dist/index.js","../../node_modules/@codemirror/lang-yaml/dist/index.js","../../node_modules/@codemirror/language-data/dist/index.js","../../node_modules/@codemirror/language/dist/index.js","../../node_modules/@codemirror/legacy-modes/mode/apl.js","../../node_modules/@codemirror/legacy-modes/mode/asciiarmor.js","../../node_modules/@codemirror/legacy-modes/mode/asn1.js","../../node_modules/@codemirror/legacy-modes/mode/asterisk.js","../../node_modules/@codemirror/legacy-modes/mode/brainfuck.js","../../node_modules/@codemirror/legacy-modes/mode/clike.js","../../node_modules/@codemirror/legacy-modes/mode/clojure.js","../../node_modules/@codemirror/legacy-modes/mode/cmake.js","../../node_modules/@codemirror/legacy-modes/mode/cobol.js","../../node_modules/@codemirror/legacy-modes/mode/coffeescript.js","../../node_modules/@codemirror/legacy-modes/mode/commonlisp.js","../../node_modules/@codemirror/legacy-modes/mode/crystal.js","../../node_modules/@codemirror/legacy-modes/mode/css.js","../../node_modules/@codemirror/legacy-modes/mode/cypher.js","../../node_modules/@codemirror/legacy-modes/mode/d.js","../../node_modules/@codemirror/legacy-modes/mode/diff.js","../../node_modules/@codemirror/legacy-modes/mode/dockerfile.js","../../node_modules/@codemirror/legacy-modes/mode/dtd.js","../../node_modules/@codemirror/legacy-modes/mode/dylan.js","../../node_modules/@codemirror/legacy-modes/mode/ebnf.js","../../node_modules/@codemirror/legacy-modes/mode/ecl.js","../../node_modules/@codemirror/legacy-modes/mode/eiffel.js","../../node_modules/@codemirror/legacy-modes/mode/elm.js","../../node_modules/@codemirror/legacy-modes/mode/erlang.js","../../node_modules/@codemirror/legacy-modes/mode/factor.js","../../node_modules/@codemirror/legacy-modes/mode/fcl.js","../../node_modules/@codemirror/legacy-modes/mode/forth.js","../../node_modules/@codemirror/legacy-modes/mode/fortran.js","../../node_modules/@codemirror/legacy-modes/mode/gas.js","../../node_modules/@codemirror/legacy-modes/mode/gherkin.js","../../node_modules/@codemirror/legacy-modes/mode/go.js","../../node_modules/@codemirror/legacy-modes/mode/groovy.js","../../node_modules/@codemirror/legacy-modes/mode/haskell.js","../../node_modules/@codemirror/legacy-modes/mode/haxe.js","../../node_modules/@codemirror/legacy-modes/mode/http.js","../../node_modules/@codemirror/legacy-modes/mode/idl.js","../../node_modules/@codemirror/legacy-modes/mode/javascript.js","../../node_modules/@codemirror/legacy-modes/mode/jinja2.js","../../node_modules/@codemirror/legacy-modes/mode/julia.js","../../node_modules/@codemirror/legacy-modes/mode/livescript.js","../../node_modules/@codemirror/legacy-modes/mode/lua.js","../../node_modules/@codemirror/legacy-modes/mode/mathematica.js","../../node_modules/@codemirror/legacy-modes/mode/mbox.js","../../node_modules/@codemirror/legacy-modes/mode/mirc.js","../../node_modules/@codemirror/legacy-modes/mode/mllike.js","../../node_modules/@codemirror/legacy-modes/mode/modelica.js","../../node_modules/@codemirror/legacy-modes/mode/mscgen.js","../../node_modules/@codemirror/legacy-modes/mode/mumps.js","../../node_modules/@codemirror/legacy-modes/mode/nginx.js","../../node_modules/@codemirror/legacy-modes/mode/nsis.js","../../node_modules/@codemirror/legacy-modes/mode/ntriples.js","../../node_modules/@codemirror/legacy-modes/mode/octave.js","../../node_modules/@codemirror/legacy-modes/mode/oz.js","../../node_modules/@codemirror/legacy-modes/mode/pascal.js","../../node_modules/@codemirror/legacy-modes/mode/perl.js","../../node_modules/@codemirror/legacy-modes/mode/pig.js","../../node_modules/@codemirror/legacy-modes/mode/powershell.js","../../node_modules/@codemirror/legacy-modes/mode/properties.js","../../node_modules/@codemirror/legacy-modes/mode/protobuf.js","../../node_modules/@codemirror/legacy-modes/mode/pug.js","../../node_modules/@codemirror/legacy-modes/mode/puppet.js","../../node_modules/@codemirror/legacy-modes/mode/python.js","../../node_modules/@codemirror/legacy-modes/mode/q.js","../../node_modules/@codemirror/legacy-modes/mode/r.js","../../node_modules/@codemirror/legacy-modes/mode/rpm.js","../../node_modules/@codemirror/legacy-modes/mode/ruby.js","../../node_modules/@codemirror/legacy-modes/mode/sas.js","../../node_modules/@codemirror/legacy-modes/mode/scheme.js","../../node_modules/@codemirror/legacy-modes/mode/shell.js","../../node_modules/@codemirror/legacy-modes/mode/sieve.js","../../node_modules/@codemirror/legacy-modes/mode/simple-mode.js","../../node_modules/@codemirror/legacy-modes/mode/smalltalk.js","../../node_modules/@codemirror/legacy-modes/mode/solr.js","../../node_modules/@codemirror/legacy-modes/mode/sparql.js","../../node_modules/@codemirror/legacy-modes/mode/spreadsheet.js","../../node_modules/@codemirror/legacy-modes/mode/sql.js","../../node_modules/@codemirror/legacy-modes/mode/stex.js","../../node_modules/@codemirror/legacy-modes/mode/stylus.js","../../node_modules/@codemirror/legacy-modes/mode/swift.js","../../node_modules/@codemirror/legacy-modes/mode/tcl.js","../../node_modules/@codemirror/legacy-modes/mode/textile.js","../../node_modules/@codemirror/legacy-modes/mode/tiddlywiki.js","../../node_modules/@codemirror/legacy-modes/mode/tiki.js","../../node_modules/@codemirror/legacy-modes/mode/toml.js","../../node_modules/@codemirror/legacy-modes/mode/troff.js","../../node_modules/@codemirror/legacy-modes/mode/ttcn-cfg.js","../../node_modules/@codemirror/legacy-modes/mode/ttcn.js","../../node_modules/@codemirror/legacy-modes/mode/turtle.js","../../node_modules/@codemirror/legacy-modes/mode/vb.js","../../node_modules/@codemirror/legacy-modes/mode/vbscript.js","../../node_modules/@codemirror/legacy-modes/mode/velocity.js","../../node_modules/@codemirror/legacy-modes/mode/verilog.js","../../node_modules/@codemirror/legacy-modes/mode/vhdl.js","../../node_modules/@codemirror/legacy-modes/mode/webidl.js","../../node_modules/@codemirror/legacy-modes/mode/xquery.js","../../node_modules/@codemirror/legacy-modes/mode/yacas.js","../../node_modules/@codemirror/legacy-modes/mode/yaml.js","../../node_modules/@codemirror/legacy-modes/mode/z80.js","../../node_modules/@codemirror/lint/dist/index.js","../../node_modules/@codemirror/merge/dist/index.js","../../node_modules/@codemirror/search/dist/index.js","../../node_modules/@codemirror/state/dist/index.js","../../node_modules/@codemirror/theme-one-dark/dist/index.js","../../node_modules/@codemirror/view/dist/index.js"],"sourcesContent":["import { Annotation, StateEffect, EditorSelection, codePointAt, codePointSize, fromCodePoint, Facet, combineConfig, StateField, Prec, Text, Transaction, MapMode, RangeValue, RangeSet, CharCategory } from '@codemirror/state';\nimport { Direction, logException, showTooltip, EditorView, ViewPlugin, getTooltip, Decoration, WidgetType, keymap } from '@codemirror/view';\nimport { syntaxTree, indentUnit } from '@codemirror/language';\n\n/**\nAn instance of this is passed to completion source functions.\n*/\nclass CompletionContext {\n /**\n Create a new completion context. (Mostly useful for testing\n completion sources—in the editor, the extension will create\n these for you.)\n */\n constructor(\n /**\n The editor state that the completion happens in.\n */\n state, \n /**\n The position at which the completion is happening.\n */\n pos, \n /**\n Indicates whether completion was activated explicitly, or\n implicitly by typing. The usual way to respond to this is to\n only return completions when either there is part of a\n completable entity before the cursor, or `explicit` is true.\n */\n explicit) {\n this.state = state;\n this.pos = pos;\n this.explicit = explicit;\n /**\n @internal\n */\n this.abortListeners = [];\n }\n /**\n Get the extent, content, and (if there is a token) type of the\n token before `this.pos`.\n */\n tokenBefore(types) {\n let token = syntaxTree(this.state).resolveInner(this.pos, -1);\n while (token && types.indexOf(token.name) < 0)\n token = token.parent;\n return token ? { from: token.from, to: this.pos,\n text: this.state.sliceDoc(token.from, this.pos),\n type: token.type } : null;\n }\n /**\n Get the match of the given expression directly before the\n cursor.\n */\n matchBefore(expr) {\n let line = this.state.doc.lineAt(this.pos);\n let start = Math.max(line.from, this.pos - 250);\n let str = line.text.slice(start - line.from, this.pos - line.from);\n let found = str.search(ensureAnchor(expr, false));\n return found < 0 ? null : { from: start + found, to: this.pos, text: str.slice(found) };\n }\n /**\n Yields true when the query has been aborted. Can be useful in\n asynchronous queries to avoid doing work that will be ignored.\n */\n get aborted() { return this.abortListeners == null; }\n /**\n Allows you to register abort handlers, which will be called when\n the query is\n [aborted](https://codemirror.net/6/docs/ref/#autocomplete.CompletionContext.aborted).\n */\n addEventListener(type, listener) {\n if (type == \"abort\" && this.abortListeners)\n this.abortListeners.push(listener);\n }\n}\nfunction toSet(chars) {\n let flat = Object.keys(chars).join(\"\");\n let words = /\\w/.test(flat);\n if (words)\n flat = flat.replace(/\\w/g, \"\");\n return `[${words ? \"\\\\w\" : \"\"}${flat.replace(/[^\\w\\s]/g, \"\\\\$&\")}]`;\n}\nfunction prefixMatch(options) {\n let first = Object.create(null), rest = Object.create(null);\n for (let { label } of options) {\n first[label[0]] = true;\n for (let i = 1; i < label.length; i++)\n rest[label[i]] = true;\n }\n let source = toSet(first) + toSet(rest) + \"*$\";\n return [new RegExp(\"^\" + source), new RegExp(source)];\n}\n/**\nGiven a a fixed array of options, return an autocompleter that\ncompletes them.\n*/\nfunction completeFromList(list) {\n let options = list.map(o => typeof o == \"string\" ? { label: o } : o);\n let [validFor, match] = options.every(o => /^\\w+$/.test(o.label)) ? [/\\w*$/, /\\w+$/] : prefixMatch(options);\n return (context) => {\n let token = context.matchBefore(match);\n return token || context.explicit ? { from: token ? token.from : context.pos, options, validFor } : null;\n };\n}\n/**\nWrap the given completion source so that it will only fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return source(context);\n if (pos.type.isTop)\n break;\n }\n return null;\n };\n}\n/**\nWrap the given completion source so that it will not fire when the\ncursor is in a syntax node with one of the given names.\n*/\nfunction ifNotIn(nodes, source) {\n return (context) => {\n for (let pos = syntaxTree(context.state).resolveInner(context.pos, -1); pos; pos = pos.parent) {\n if (nodes.indexOf(pos.name) > -1)\n return null;\n if (pos.type.isTop)\n break;\n }\n return source(context);\n };\n}\nclass Option {\n constructor(completion, source, match, score) {\n this.completion = completion;\n this.source = source;\n this.match = match;\n this.score = score;\n }\n}\nfunction cur(state) { return state.selection.main.from; }\n// Make sure the given regexp has a $ at its end and, if `start` is\n// true, a ^ at its start.\nfunction ensureAnchor(expr, start) {\n var _a;\n let { source } = expr;\n let addStart = start && source[0] != \"^\", addEnd = source[source.length - 1] != \"$\";\n if (!addStart && !addEnd)\n return expr;\n return new RegExp(`${addStart ? \"^\" : \"\"}(?:${source})${addEnd ? \"$\" : \"\"}`, (_a = expr.flags) !== null && _a !== void 0 ? _a : (expr.ignoreCase ? \"i\" : \"\"));\n}\n/**\nThis annotation is added to transactions that are produced by\npicking a completion.\n*/\nconst pickedCompletion = /*@__PURE__*/Annotation.define();\n/**\nHelper function that returns a transaction spec which inserts a\ncompletion's text in the main selection range, and any other\nselection range that has the same text in front of it.\n*/\nfunction insertCompletionText(state, text, from, to) {\n let { main } = state.selection, fromOff = from - main.from, toOff = to - main.from;\n return Object.assign(Object.assign({}, state.changeByRange(range => {\n if (range != main && from != to &&\n state.sliceDoc(range.from + fromOff, range.from + toOff) != state.sliceDoc(from, to))\n return { range };\n return {\n changes: { from: range.from + fromOff, to: to == main.from ? range.to : range.from + toOff, insert: text },\n range: EditorSelection.cursor(range.from + fromOff + text.length)\n };\n })), { scrollIntoView: true, userEvent: \"input.complete\" });\n}\nconst SourceCache = /*@__PURE__*/new WeakMap();\nfunction asSource(source) {\n if (!Array.isArray(source))\n return source;\n let known = SourceCache.get(source);\n if (!known)\n SourceCache.set(source, known = completeFromList(source));\n return known;\n}\nconst startCompletionEffect = /*@__PURE__*/StateEffect.define();\nconst closeCompletionEffect = /*@__PURE__*/StateEffect.define();\n\n// A pattern matcher for fuzzy completion matching. Create an instance\n// once for a pattern, and then use that to match any number of\n// completions.\nclass FuzzyMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.chars = [];\n this.folded = [];\n // Buffers reused by calls to `match` to track matched character\n // positions.\n this.any = [];\n this.precise = [];\n this.byWord = [];\n this.score = 0;\n this.matched = [];\n for (let p = 0; p < pattern.length;) {\n let char = codePointAt(pattern, p), size = codePointSize(char);\n this.chars.push(char);\n let part = pattern.slice(p, p + size), upper = part.toUpperCase();\n this.folded.push(codePointAt(upper == part ? part.toLowerCase() : upper, 0));\n p += size;\n }\n this.astral = pattern.length != this.chars.length;\n }\n ret(score, matched) {\n this.score = score;\n this.matched = matched;\n return this;\n }\n // Matches a given word (completion) against the pattern (input).\n // Will return a boolean indicating whether there was a match and,\n // on success, set `this.score` to the score, `this.matched` to an\n // array of `from, to` pairs indicating the matched parts of `word`.\n //\n // The score is a number that is more negative the worse the match\n // is. See `Penalty` above.\n match(word) {\n if (this.pattern.length == 0)\n return this.ret(-100 /* Penalty.NotFull */, []);\n if (word.length < this.pattern.length)\n return null;\n let { chars, folded, any, precise, byWord } = this;\n // For single-character queries, only match when they occur right\n // at the start\n if (chars.length == 1) {\n let first = codePointAt(word, 0), firstSize = codePointSize(first);\n let score = firstSize == word.length ? 0 : -100 /* Penalty.NotFull */;\n if (first == chars[0]) ;\n else if (first == folded[0])\n score += -200 /* Penalty.CaseFold */;\n else\n return null;\n return this.ret(score, [0, firstSize]);\n }\n let direct = word.indexOf(this.pattern);\n if (direct == 0)\n return this.ret(word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */, [0, this.pattern.length]);\n let len = chars.length, anyTo = 0;\n if (direct < 0) {\n for (let i = 0, e = Math.min(word.length, 200); i < e && anyTo < len;) {\n let next = codePointAt(word, i);\n if (next == chars[anyTo] || next == folded[anyTo])\n any[anyTo++] = i;\n i += codePointSize(next);\n }\n // No match, exit immediately\n if (anyTo < len)\n return null;\n }\n // This tracks the extent of the precise (non-folded, not\n // necessarily adjacent) match\n let preciseTo = 0;\n // Tracks whether there is a match that hits only characters that\n // appear to be starting words. `byWordFolded` is set to true when\n // a case folded character is encountered in such a match\n let byWordTo = 0, byWordFolded = false;\n // If we've found a partial adjacent match, these track its state\n let adjacentTo = 0, adjacentStart = -1, adjacentEnd = -1;\n let hasLower = /[a-z]/.test(word), wordAdjacent = true;\n // Go over the option's text, scanning for the various kinds of matches\n for (let i = 0, e = Math.min(word.length, 200), prevType = 0 /* Tp.NonWord */; i < e && byWordTo < len;) {\n let next = codePointAt(word, i);\n if (direct < 0) {\n if (preciseTo < len && next == chars[preciseTo])\n precise[preciseTo++] = i;\n if (adjacentTo < len) {\n if (next == chars[adjacentTo] || next == folded[adjacentTo]) {\n if (adjacentTo == 0)\n adjacentStart = i;\n adjacentEnd = i + 1;\n adjacentTo++;\n }\n else {\n adjacentTo = 0;\n }\n }\n }\n let ch, type = next < 0xff\n ? (next >= 48 && next <= 57 || next >= 97 && next <= 122 ? 2 /* Tp.Lower */ : next >= 65 && next <= 90 ? 1 /* Tp.Upper */ : 0 /* Tp.NonWord */)\n : ((ch = fromCodePoint(next)) != ch.toLowerCase() ? 1 /* Tp.Upper */ : ch != ch.toUpperCase() ? 2 /* Tp.Lower */ : 0 /* Tp.NonWord */);\n if (!i || type == 1 /* Tp.Upper */ && hasLower || prevType == 0 /* Tp.NonWord */ && type != 0 /* Tp.NonWord */) {\n if (chars[byWordTo] == next || (folded[byWordTo] == next && (byWordFolded = true)))\n byWord[byWordTo++] = i;\n else if (byWord.length)\n wordAdjacent = false;\n }\n prevType = type;\n i += codePointSize(next);\n }\n if (byWordTo == len && byWord[0] == 0 && wordAdjacent)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0), byWord, word);\n if (adjacentTo == len && adjacentStart == 0)\n return this.ret(-200 /* Penalty.CaseFold */ - word.length + (adjacentEnd == word.length ? 0 : -100 /* Penalty.NotFull */), [0, adjacentEnd]);\n if (direct > -1)\n return this.ret(-700 /* Penalty.NotStart */ - word.length, [direct, direct + this.pattern.length]);\n if (adjacentTo == len)\n return this.ret(-200 /* Penalty.CaseFold */ + -700 /* Penalty.NotStart */ - word.length, [adjacentStart, adjacentEnd]);\n if (byWordTo == len)\n return this.result(-100 /* Penalty.ByWord */ + (byWordFolded ? -200 /* Penalty.CaseFold */ : 0) + -700 /* Penalty.NotStart */ +\n (wordAdjacent ? 0 : -1100 /* Penalty.Gap */), byWord, word);\n return chars.length == 2 ? null\n : this.result((any[0] ? -700 /* Penalty.NotStart */ : 0) + -200 /* Penalty.CaseFold */ + -1100 /* Penalty.Gap */, any, word);\n }\n result(score, positions, word) {\n let result = [], i = 0;\n for (let pos of positions) {\n let to = pos + (this.astral ? codePointSize(codePointAt(word, pos)) : 1);\n if (i && result[i - 1] == pos)\n result[i - 1] = to;\n else {\n result[i++] = pos;\n result[i++] = to;\n }\n }\n return this.ret(score - word.length, result);\n }\n}\nclass StrictMatcher {\n constructor(pattern) {\n this.pattern = pattern;\n this.matched = [];\n this.score = 0;\n this.folded = pattern.toLowerCase();\n }\n match(word) {\n if (word.length < this.pattern.length)\n return null;\n let start = word.slice(0, this.pattern.length);\n let match = start == this.pattern ? 0 : start.toLowerCase() == this.folded ? -200 /* Penalty.CaseFold */ : null;\n if (match == null)\n return null;\n this.matched = [0, start.length];\n this.score = match + (word.length == this.pattern.length ? 0 : -100 /* Penalty.NotFull */);\n return this;\n }\n}\n\nconst completionConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n activateOnTyping: true,\n activateOnCompletion: () => false,\n activateOnTypingDelay: 100,\n selectOnOpen: true,\n override: null,\n closeOnBlur: true,\n maxRenderedOptions: 100,\n defaultKeymap: true,\n tooltipClass: () => \"\",\n optionClass: () => \"\",\n aboveCursor: false,\n icons: true,\n addToOptions: [],\n positionInfo: defaultPositionInfo,\n filterStrict: false,\n compareCompletions: (a, b) => a.label.localeCompare(b.label),\n interactionDelay: 75,\n updateSyncTime: 100\n }, {\n defaultKeymap: (a, b) => a && b,\n closeOnBlur: (a, b) => a && b,\n icons: (a, b) => a && b,\n tooltipClass: (a, b) => c => joinClass(a(c), b(c)),\n optionClass: (a, b) => c => joinClass(a(c), b(c)),\n addToOptions: (a, b) => a.concat(b),\n filterStrict: (a, b) => a || b,\n });\n }\n});\nfunction joinClass(a, b) {\n return a ? b ? a + \" \" + b : a : b;\n}\nfunction defaultPositionInfo(view, list, option, info, space, tooltip) {\n let rtl = view.textDirection == Direction.RTL, left = rtl, narrow = false;\n let side = \"top\", offset, maxWidth;\n let spaceLeft = list.left - space.left, spaceRight = space.right - list.right;\n let infoWidth = info.right - info.left, infoHeight = info.bottom - info.top;\n if (left && spaceLeft < Math.min(infoWidth, spaceRight))\n left = false;\n else if (!left && spaceRight < Math.min(infoWidth, spaceLeft))\n left = true;\n if (infoWidth <= (left ? spaceLeft : spaceRight)) {\n offset = Math.max(space.top, Math.min(option.top, space.bottom - infoHeight)) - list.top;\n maxWidth = Math.min(400 /* Info.Width */, left ? spaceLeft : spaceRight);\n }\n else {\n narrow = true;\n maxWidth = Math.min(400 /* Info.Width */, (rtl ? list.right : space.right - list.left) - 30 /* Info.Margin */);\n let spaceBelow = space.bottom - list.bottom;\n if (spaceBelow >= infoHeight || spaceBelow > list.top) { // Below the completion\n offset = option.bottom - list.top;\n }\n else { // Above it\n side = \"bottom\";\n offset = list.bottom - option.top;\n }\n }\n let scaleY = (list.bottom - list.top) / tooltip.offsetHeight;\n let scaleX = (list.right - list.left) / tooltip.offsetWidth;\n return {\n style: `${side}: ${offset / scaleY}px; max-width: ${maxWidth / scaleX}px`,\n class: \"cm-completionInfo-\" + (narrow ? (rtl ? \"left-narrow\" : \"right-narrow\") : left ? \"left\" : \"right\")\n };\n}\n\nfunction optionContent(config) {\n let content = config.addToOptions.slice();\n if (config.icons)\n content.push({\n render(completion) {\n let icon = document.createElement(\"div\");\n icon.classList.add(\"cm-completionIcon\");\n if (completion.type)\n icon.classList.add(...completion.type.split(/\\s+/g).map(cls => \"cm-completionIcon-\" + cls));\n icon.setAttribute(\"aria-hidden\", \"true\");\n return icon;\n },\n position: 20\n });\n content.push({\n render(completion, _s, _v, match) {\n let labelElt = document.createElement(\"span\");\n labelElt.className = \"cm-completionLabel\";\n let label = completion.displayLabel || completion.label, off = 0;\n for (let j = 0; j < match.length;) {\n let from = match[j++], to = match[j++];\n if (from > off)\n labelElt.appendChild(document.createTextNode(label.slice(off, from)));\n let span = labelElt.appendChild(document.createElement(\"span\"));\n span.appendChild(document.createTextNode(label.slice(from, to)));\n span.className = \"cm-completionMatchedText\";\n off = to;\n }\n if (off < label.length)\n labelElt.appendChild(document.createTextNode(label.slice(off)));\n return labelElt;\n },\n position: 50\n }, {\n render(completion) {\n if (!completion.detail)\n return null;\n let detailElt = document.createElement(\"span\");\n detailElt.className = \"cm-completionDetail\";\n detailElt.textContent = completion.detail;\n return detailElt;\n },\n position: 80\n });\n return content.sort((a, b) => a.position - b.position).map(a => a.render);\n}\nfunction rangeAroundSelected(total, selected, max) {\n if (total <= max)\n return { from: 0, to: total };\n if (selected < 0)\n selected = 0;\n if (selected <= (total >> 1)) {\n let off = Math.floor(selected / max);\n return { from: off * max, to: (off + 1) * max };\n }\n let off = Math.floor((total - selected) / max);\n return { from: total - (off + 1) * max, to: total - off * max };\n}\nclass CompletionTooltip {\n constructor(view, stateField, applyCompletion) {\n this.view = view;\n this.stateField = stateField;\n this.applyCompletion = applyCompletion;\n this.info = null;\n this.infoDestroy = null;\n this.placeInfoReq = {\n read: () => this.measureInfo(),\n write: (pos) => this.placeInfo(pos),\n key: this\n };\n this.space = null;\n this.currentClass = \"\";\n let cState = view.state.field(stateField);\n let { options, selected } = cState.open;\n let config = view.state.facet(completionConfig);\n this.optionContent = optionContent(config);\n this.optionClass = config.optionClass;\n this.tooltipClass = config.tooltipClass;\n this.range = rangeAroundSelected(options.length, selected, config.maxRenderedOptions);\n this.dom = document.createElement(\"div\");\n this.dom.className = \"cm-tooltip-autocomplete\";\n this.updateTooltipClass(view.state);\n this.dom.addEventListener(\"mousedown\", (e) => {\n let { options } = view.state.field(stateField).open;\n for (let dom = e.target, match; dom && dom != this.dom; dom = dom.parentNode) {\n if (dom.nodeName == \"LI\" && (match = /-(\\d+)$/.exec(dom.id)) && +match[1] < options.length) {\n this.applyCompletion(view, options[+match[1]]);\n e.preventDefault();\n return;\n }\n }\n });\n this.dom.addEventListener(\"focusout\", (e) => {\n let state = view.state.field(this.stateField, false);\n if (state && state.tooltip && view.state.facet(completionConfig).closeOnBlur &&\n e.relatedTarget != view.contentDOM)\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n });\n this.showOptions(options, cState.id);\n }\n mount() { this.updateSel(); }\n showOptions(options, id) {\n if (this.list)\n this.list.remove();\n this.list = this.dom.appendChild(this.createListBox(options, id, this.range));\n this.list.addEventListener(\"scroll\", () => {\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n });\n }\n update(update) {\n var _a;\n let cState = update.state.field(this.stateField);\n let prevState = update.startState.field(this.stateField);\n this.updateTooltipClass(update.state);\n if (cState != prevState) {\n let { options, selected, disabled } = cState.open;\n if (!prevState.open || prevState.open.options != options) {\n this.range = rangeAroundSelected(options.length, selected, update.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(options, cState.id);\n }\n this.updateSel();\n if (disabled != ((_a = prevState.open) === null || _a === void 0 ? void 0 : _a.disabled))\n this.dom.classList.toggle(\"cm-tooltip-autocomplete-disabled\", !!disabled);\n }\n }\n updateTooltipClass(state) {\n let cls = this.tooltipClass(state);\n if (cls != this.currentClass) {\n for (let c of this.currentClass.split(\" \"))\n if (c)\n this.dom.classList.remove(c);\n for (let c of cls.split(\" \"))\n if (c)\n this.dom.classList.add(c);\n this.currentClass = cls;\n }\n }\n positioned(space) {\n this.space = space;\n if (this.info)\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSel() {\n let cState = this.view.state.field(this.stateField), open = cState.open;\n if (open.selected > -1 && open.selected < this.range.from || open.selected >= this.range.to) {\n this.range = rangeAroundSelected(open.options.length, open.selected, this.view.state.facet(completionConfig).maxRenderedOptions);\n this.showOptions(open.options, cState.id);\n }\n if (this.updateSelectedOption(open.selected)) {\n this.destroyInfo();\n let { completion } = open.options[open.selected];\n let { info } = completion;\n if (!info)\n return;\n let infoResult = typeof info === \"string\" ? document.createTextNode(info) : info(completion);\n if (!infoResult)\n return;\n if (\"then\" in infoResult) {\n infoResult.then(obj => {\n if (obj && this.view.state.field(this.stateField, false) == cState)\n this.addInfoPane(obj, completion);\n }).catch(e => logException(this.view.state, e, \"completion info\"));\n }\n else {\n this.addInfoPane(infoResult, completion);\n }\n }\n }\n addInfoPane(content, completion) {\n this.destroyInfo();\n let wrap = this.info = document.createElement(\"div\");\n wrap.className = \"cm-tooltip cm-completionInfo\";\n if (content.nodeType != null) {\n wrap.appendChild(content);\n this.infoDestroy = null;\n }\n else {\n let { dom, destroy } = content;\n wrap.appendChild(dom);\n this.infoDestroy = destroy || null;\n }\n this.dom.appendChild(wrap);\n this.view.requestMeasure(this.placeInfoReq);\n }\n updateSelectedOption(selected) {\n let set = null;\n for (let opt = this.list.firstChild, i = this.range.from; opt; opt = opt.nextSibling, i++) {\n if (opt.nodeName != \"LI\" || !opt.id) {\n i--; // A section header\n }\n else if (i == selected) {\n if (!opt.hasAttribute(\"aria-selected\")) {\n opt.setAttribute(\"aria-selected\", \"true\");\n set = opt;\n }\n }\n else {\n if (opt.hasAttribute(\"aria-selected\"))\n opt.removeAttribute(\"aria-selected\");\n }\n }\n if (set)\n scrollIntoView(this.list, set);\n return set;\n }\n measureInfo() {\n let sel = this.dom.querySelector(\"[aria-selected]\");\n if (!sel || !this.info)\n return null;\n let listRect = this.dom.getBoundingClientRect();\n let infoRect = this.info.getBoundingClientRect();\n let selRect = sel.getBoundingClientRect();\n let space = this.space;\n if (!space) {\n let win = this.dom.ownerDocument.defaultView || window;\n space = { left: 0, top: 0, right: win.innerWidth, bottom: win.innerHeight };\n }\n if (selRect.top > Math.min(space.bottom, listRect.bottom) - 10 ||\n selRect.bottom < Math.max(space.top, listRect.top) + 10)\n return null;\n return this.view.state.facet(completionConfig).positionInfo(this.view, listRect, selRect, infoRect, space, this.dom);\n }\n placeInfo(pos) {\n if (this.info) {\n if (pos) {\n if (pos.style)\n this.info.style.cssText = pos.style;\n this.info.className = \"cm-tooltip cm-completionInfo \" + (pos.class || \"\");\n }\n else {\n this.info.style.cssText = \"top: -1e6px\";\n }\n }\n }\n createListBox(options, id, range) {\n const ul = document.createElement(\"ul\");\n ul.id = id;\n ul.setAttribute(\"role\", \"listbox\");\n ul.setAttribute(\"aria-expanded\", \"true\");\n ul.setAttribute(\"aria-label\", this.view.state.phrase(\"Completions\"));\n let curSection = null;\n for (let i = range.from; i < range.to; i++) {\n let { completion, match } = options[i], { section } = completion;\n if (section) {\n let name = typeof section == \"string\" ? section : section.name;\n if (name != curSection && (i > range.from || range.from == 0)) {\n curSection = name;\n if (typeof section != \"string\" && section.header) {\n ul.appendChild(section.header(section));\n }\n else {\n let header = ul.appendChild(document.createElement(\"completion-section\"));\n header.textContent = name;\n }\n }\n }\n const li = ul.appendChild(document.createElement(\"li\"));\n li.id = id + \"-\" + i;\n li.setAttribute(\"role\", \"option\");\n let cls = this.optionClass(completion);\n if (cls)\n li.className = cls;\n for (let source of this.optionContent) {\n let node = source(completion, this.view.state, this.view, match);\n if (node)\n li.appendChild(node);\n }\n }\n if (range.from)\n ul.classList.add(\"cm-completionListIncompleteTop\");\n if (range.to < options.length)\n ul.classList.add(\"cm-completionListIncompleteBottom\");\n return ul;\n }\n destroyInfo() {\n if (this.info) {\n if (this.infoDestroy)\n this.infoDestroy();\n this.info.remove();\n this.info = null;\n }\n }\n destroy() {\n this.destroyInfo();\n }\n}\nfunction completionTooltip(stateField, applyCompletion) {\n return (view) => new CompletionTooltip(view, stateField, applyCompletion);\n}\nfunction scrollIntoView(container, element) {\n let parent = container.getBoundingClientRect();\n let self = element.getBoundingClientRect();\n let scaleY = parent.height / container.offsetHeight;\n if (self.top < parent.top)\n container.scrollTop -= (parent.top - self.top) / scaleY;\n else if (self.bottom > parent.bottom)\n container.scrollTop += (self.bottom - parent.bottom) / scaleY;\n}\n\n// Used to pick a preferred option when two options with the same\n// label occur in the result.\nfunction score(option) {\n return (option.boost || 0) * 100 + (option.apply ? 10 : 0) + (option.info ? 5 : 0) +\n (option.type ? 1 : 0);\n}\nfunction sortOptions(active, state) {\n let options = [];\n let sections = null;\n let addOption = (option) => {\n options.push(option);\n let { section } = option.completion;\n if (section) {\n if (!sections)\n sections = [];\n let name = typeof section == \"string\" ? section : section.name;\n if (!sections.some(s => s.name == name))\n sections.push(typeof section == \"string\" ? { name } : section);\n }\n };\n let conf = state.facet(completionConfig);\n for (let a of active)\n if (a.hasResult()) {\n let getMatch = a.result.getMatch;\n if (a.result.filter === false) {\n for (let option of a.result.options) {\n addOption(new Option(option, a.source, getMatch ? getMatch(option) : [], 1e9 - options.length));\n }\n }\n else {\n let pattern = state.sliceDoc(a.from, a.to), match;\n let matcher = conf.filterStrict ? new StrictMatcher(pattern) : new FuzzyMatcher(pattern);\n for (let option of a.result.options)\n if (match = matcher.match(option.label)) {\n let matched = !option.displayLabel ? match.matched : getMatch ? getMatch(option, match.matched) : [];\n addOption(new Option(option, a.source, matched, match.score + (option.boost || 0)));\n }\n }\n }\n if (sections) {\n let sectionOrder = Object.create(null), pos = 0;\n let cmp = (a, b) => { var _a, _b; return ((_a = a.rank) !== null && _a !== void 0 ? _a : 1e9) - ((_b = b.rank) !== null && _b !== void 0 ? _b : 1e9) || (a.name < b.name ? -1 : 1); };\n for (let s of sections.sort(cmp)) {\n pos -= 1e5;\n sectionOrder[s.name] = pos;\n }\n for (let option of options) {\n let { section } = option.completion;\n if (section)\n option.score += sectionOrder[typeof section == \"string\" ? section : section.name];\n }\n }\n let result = [], prev = null;\n let compare = conf.compareCompletions;\n for (let opt of options.sort((a, b) => (b.score - a.score) || compare(a.completion, b.completion))) {\n let cur = opt.completion;\n if (!prev || prev.label != cur.label || prev.detail != cur.detail ||\n (prev.type != null && cur.type != null && prev.type != cur.type) ||\n prev.apply != cur.apply || prev.boost != cur.boost)\n result.push(opt);\n else if (score(opt.completion) > score(prev))\n result[result.length - 1] = opt;\n prev = opt.completion;\n }\n return result;\n}\nclass CompletionDialog {\n constructor(options, attrs, tooltip, timestamp, selected, disabled) {\n this.options = options;\n this.attrs = attrs;\n this.tooltip = tooltip;\n this.timestamp = timestamp;\n this.selected = selected;\n this.disabled = disabled;\n }\n setSelected(selected, id) {\n return selected == this.selected || selected >= this.options.length ? this\n : new CompletionDialog(this.options, makeAttrs(id, selected), this.tooltip, this.timestamp, selected, this.disabled);\n }\n static build(active, state, id, prev, conf) {\n let options = sortOptions(active, state);\n if (!options.length) {\n return prev && active.some(a => a.state == 1 /* State.Pending */) ?\n new CompletionDialog(prev.options, prev.attrs, prev.tooltip, prev.timestamp, prev.selected, true) : null;\n }\n let selected = state.facet(completionConfig).selectOnOpen ? 0 : -1;\n if (prev && prev.selected != selected && prev.selected != -1) {\n let selectedValue = prev.options[prev.selected].completion;\n for (let i = 0; i < options.length; i++)\n if (options[i].completion == selectedValue) {\n selected = i;\n break;\n }\n }\n return new CompletionDialog(options, makeAttrs(id, selected), {\n pos: active.reduce((a, b) => b.hasResult() ? Math.min(a, b.from) : a, 1e8),\n create: createTooltip,\n above: conf.aboveCursor,\n }, prev ? prev.timestamp : Date.now(), selected, false);\n }\n map(changes) {\n return new CompletionDialog(this.options, this.attrs, Object.assign(Object.assign({}, this.tooltip), { pos: changes.mapPos(this.tooltip.pos) }), this.timestamp, this.selected, this.disabled);\n }\n}\nclass CompletionState {\n constructor(active, id, open) {\n this.active = active;\n this.id = id;\n this.open = open;\n }\n static start() {\n return new CompletionState(none, \"cm-ac-\" + Math.floor(Math.random() * 2e6).toString(36), null);\n }\n update(tr) {\n let { state } = tr, conf = state.facet(completionConfig);\n let sources = conf.override ||\n state.languageDataAt(\"autocomplete\", cur(state)).map(asSource);\n let active = sources.map(source => {\n let value = this.active.find(s => s.source == source) ||\n new ActiveSource(source, this.active.some(a => a.state != 0 /* State.Inactive */) ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n return value.update(tr, conf);\n });\n if (active.length == this.active.length && active.every((a, i) => a == this.active[i]))\n active = this.active;\n let open = this.open;\n if (open && tr.docChanged)\n open = open.map(tr.changes);\n if (tr.selection || active.some(a => a.hasResult() && tr.changes.touchesRange(a.from, a.to)) ||\n !sameResults(active, this.active))\n open = CompletionDialog.build(active, state, this.id, open, conf);\n else if (open && open.disabled && !active.some(a => a.state == 1 /* State.Pending */))\n open = null;\n if (!open && active.every(a => a.state != 1 /* State.Pending */) && active.some(a => a.hasResult()))\n active = active.map(a => a.hasResult() ? new ActiveSource(a.source, 0 /* State.Inactive */) : a);\n for (let effect of tr.effects)\n if (effect.is(setSelectedEffect))\n open = open && open.setSelected(effect.value, this.id);\n return active == this.active && open == this.open ? this : new CompletionState(active, this.id, open);\n }\n get tooltip() { return this.open ? this.open.tooltip : null; }\n get attrs() { return this.open ? this.open.attrs : baseAttrs; }\n}\nfunction sameResults(a, b) {\n if (a == b)\n return true;\n for (let iA = 0, iB = 0;;) {\n while (iA < a.length && !a[iA].hasResult)\n iA++;\n while (iB < b.length && !b[iB].hasResult)\n iB++;\n let endA = iA == a.length, endB = iB == b.length;\n if (endA || endB)\n return endA == endB;\n if (a[iA++].result != b[iB++].result)\n return false;\n }\n}\nconst baseAttrs = {\n \"aria-autocomplete\": \"list\"\n};\nfunction makeAttrs(id, selected) {\n let result = {\n \"aria-autocomplete\": \"list\",\n \"aria-haspopup\": \"listbox\",\n \"aria-controls\": id\n };\n if (selected > -1)\n result[\"aria-activedescendant\"] = id + \"-\" + selected;\n return result;\n}\nconst none = [];\nfunction getUserEvent(tr, conf) {\n if (tr.isUserEvent(\"input.complete\")) {\n let completion = tr.annotation(pickedCompletion);\n if (completion && conf.activateOnCompletion(completion))\n return \"input\";\n }\n return tr.isUserEvent(\"input.type\") ? \"input\" : tr.isUserEvent(\"delete.backward\") ? \"delete\" : null;\n}\nclass ActiveSource {\n constructor(source, state, explicitPos = -1) {\n this.source = source;\n this.state = state;\n this.explicitPos = explicitPos;\n }\n hasResult() { return false; }\n update(tr, conf) {\n let event = getUserEvent(tr, conf), value = this;\n if (event)\n value = value.handleUserEvent(tr, event, conf);\n else if (tr.docChanged)\n value = value.handleChange(tr);\n else if (tr.selection && value.state != 0 /* State.Inactive */)\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n for (let effect of tr.effects) {\n if (effect.is(startCompletionEffect))\n value = new ActiveSource(value.source, 1 /* State.Pending */, effect.value ? cur(tr.state) : -1);\n else if (effect.is(closeCompletionEffect))\n value = new ActiveSource(value.source, 0 /* State.Inactive */);\n else if (effect.is(setActiveEffect))\n for (let active of effect.value)\n if (active.source == value.source)\n value = active;\n }\n return value;\n }\n handleUserEvent(tr, type, conf) {\n return type == \"delete\" || !conf.activateOnTyping ? this.map(tr.changes) : new ActiveSource(this.source, 1 /* State.Pending */);\n }\n handleChange(tr) {\n return tr.changes.touchesRange(cur(tr.startState)) ? new ActiveSource(this.source, 0 /* State.Inactive */) : this.map(tr.changes);\n }\n map(changes) {\n return changes.empty || this.explicitPos < 0 ? this : new ActiveSource(this.source, this.state, changes.mapPos(this.explicitPos));\n }\n}\nclass ActiveResult extends ActiveSource {\n constructor(source, explicitPos, result, from, to) {\n super(source, 2 /* State.Result */, explicitPos);\n this.result = result;\n this.from = from;\n this.to = to;\n }\n hasResult() { return true; }\n handleUserEvent(tr, type, conf) {\n var _a;\n let result = this.result;\n if (result.map && !tr.changes.empty)\n result = result.map(result, tr.changes);\n let from = tr.changes.mapPos(this.from), to = tr.changes.mapPos(this.to, 1);\n let pos = cur(tr.state);\n if ((this.explicitPos < 0 ? pos <= from : pos < this.from) ||\n pos > to || !result ||\n type == \"delete\" && cur(tr.startState) == this.from)\n return new ActiveSource(this.source, type == \"input\" && conf.activateOnTyping ? 1 /* State.Pending */ : 0 /* State.Inactive */);\n let explicitPos = this.explicitPos < 0 ? -1 : tr.changes.mapPos(this.explicitPos);\n if (checkValid(result.validFor, tr.state, from, to))\n return new ActiveResult(this.source, explicitPos, result, from, to);\n if (result.update &&\n (result = result.update(result, from, to, new CompletionContext(tr.state, pos, explicitPos >= 0))))\n return new ActiveResult(this.source, explicitPos, result, result.from, (_a = result.to) !== null && _a !== void 0 ? _a : cur(tr.state));\n return new ActiveSource(this.source, 1 /* State.Pending */, explicitPos);\n }\n handleChange(tr) {\n return tr.changes.touchesRange(this.from, this.to) ? new ActiveSource(this.source, 0 /* State.Inactive */) : this.map(tr.changes);\n }\n map(mapping) {\n if (mapping.empty)\n return this;\n let result = this.result.map ? this.result.map(this.result, mapping) : this.result;\n if (!result)\n return new ActiveSource(this.source, 0 /* State.Inactive */);\n return new ActiveResult(this.source, this.explicitPos < 0 ? -1 : mapping.mapPos(this.explicitPos), this.result, mapping.mapPos(this.from), mapping.mapPos(this.to, 1));\n }\n}\nfunction checkValid(validFor, state, from, to) {\n if (!validFor)\n return false;\n let text = state.sliceDoc(from, to);\n return typeof validFor == \"function\" ? validFor(text, from, to, state) : ensureAnchor(validFor, true).test(text);\n}\nconst setActiveEffect = /*@__PURE__*/StateEffect.define({\n map(sources, mapping) { return sources.map(s => s.map(mapping)); }\n});\nconst setSelectedEffect = /*@__PURE__*/StateEffect.define();\nconst completionState = /*@__PURE__*/StateField.define({\n create() { return CompletionState.start(); },\n update(value, tr) { return value.update(tr); },\n provide: f => [\n showTooltip.from(f, val => val.tooltip),\n EditorView.contentAttributes.from(f, state => state.attrs)\n ]\n});\nfunction applyCompletion(view, option) {\n const apply = option.completion.apply || option.completion.label;\n let result = view.state.field(completionState).active.find(a => a.source == option.source);\n if (!(result instanceof ActiveResult))\n return false;\n if (typeof apply == \"string\")\n view.dispatch(Object.assign(Object.assign({}, insertCompletionText(view.state, apply, result.from, result.to)), { annotations: pickedCompletion.of(option.completion) }));\n else\n apply(view, option.completion, result.from, result.to);\n return true;\n}\nconst createTooltip = /*@__PURE__*/completionTooltip(completionState, applyCompletion);\n\n/**\nReturns a command that moves the completion selection forward or\nbackward by the given amount.\n*/\nfunction moveCompletionSelection(forward, by = \"option\") {\n return (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.open || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n let step = 1, tooltip;\n if (by == \"page\" && (tooltip = getTooltip(view, cState.open.tooltip)))\n step = Math.max(2, Math.floor(tooltip.dom.offsetHeight /\n tooltip.dom.querySelector(\"li\").offsetHeight) - 1);\n let { length } = cState.open.options;\n let selected = cState.open.selected > -1 ? cState.open.selected + step * (forward ? 1 : -1) : forward ? 0 : length - 1;\n if (selected < 0)\n selected = by == \"page\" ? 0 : length - 1;\n else if (selected >= length)\n selected = by == \"page\" ? length - 1 : 0;\n view.dispatch({ effects: setSelectedEffect.of(selected) });\n return true;\n };\n}\n/**\nAccept the current completion.\n*/\nconst acceptCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (view.state.readOnly || !cState || !cState.open || cState.open.selected < 0 || cState.open.disabled ||\n Date.now() - cState.open.timestamp < view.state.facet(completionConfig).interactionDelay)\n return false;\n return applyCompletion(view, cState.open.options[cState.open.selected]);\n};\n/**\nExplicitly start autocompletion.\n*/\nconst startCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState)\n return false;\n view.dispatch({ effects: startCompletionEffect.of(true) });\n return true;\n};\n/**\nClose the currently active completion.\n*/\nconst closeCompletion = (view) => {\n let cState = view.state.field(completionState, false);\n if (!cState || !cState.active.some(a => a.state != 0 /* State.Inactive */))\n return false;\n view.dispatch({ effects: closeCompletionEffect.of(null) });\n return true;\n};\nclass RunningQuery {\n constructor(active, context) {\n this.active = active;\n this.context = context;\n this.time = Date.now();\n this.updates = [];\n // Note that 'undefined' means 'not done yet', whereas 'null' means\n // 'query returned null'.\n this.done = undefined;\n }\n}\nconst MaxUpdateCount = 50, MinAbortTime = 1000;\nconst completionPlugin = /*@__PURE__*/ViewPlugin.fromClass(class {\n constructor(view) {\n this.view = view;\n this.debounceUpdate = -1;\n this.running = [];\n this.debounceAccept = -1;\n this.pendingStart = false;\n this.composing = 0 /* CompositionState.None */;\n for (let active of view.state.field(completionState).active)\n if (active.state == 1 /* State.Pending */)\n this.startQuery(active);\n }\n update(update) {\n let cState = update.state.field(completionState);\n let conf = update.state.facet(completionConfig);\n if (!update.selectionSet && !update.docChanged && update.startState.field(completionState) == cState)\n return;\n let doesReset = update.transactions.some(tr => {\n return (tr.selection || tr.docChanged) && !getUserEvent(tr, conf);\n });\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (doesReset ||\n query.updates.length + update.transactions.length > MaxUpdateCount && Date.now() - query.time > MinAbortTime) {\n for (let handler of query.context.abortListeners) {\n try {\n handler();\n }\n catch (e) {\n logException(this.view.state, e);\n }\n }\n query.context.abortListeners = null;\n this.running.splice(i--, 1);\n }\n else {\n query.updates.push(...update.transactions);\n }\n }\n if (this.debounceUpdate > -1)\n clearTimeout(this.debounceUpdate);\n if (update.transactions.some(tr => tr.effects.some(e => e.is(startCompletionEffect))))\n this.pendingStart = true;\n let delay = this.pendingStart ? 50 : conf.activateOnTypingDelay;\n this.debounceUpdate = cState.active.some(a => a.state == 1 /* State.Pending */ && !this.running.some(q => q.active.source == a.source))\n ? setTimeout(() => this.startUpdate(), delay) : -1;\n if (this.composing != 0 /* CompositionState.None */)\n for (let tr of update.transactions) {\n if (getUserEvent(tr, conf) == \"input\")\n this.composing = 2 /* CompositionState.Changed */;\n else if (this.composing == 2 /* CompositionState.Changed */ && tr.selection)\n this.composing = 3 /* CompositionState.ChangedAndMoved */;\n }\n }\n startUpdate() {\n this.debounceUpdate = -1;\n this.pendingStart = false;\n let { state } = this.view, cState = state.field(completionState);\n for (let active of cState.active) {\n if (active.state == 1 /* State.Pending */ && !this.running.some(r => r.active.source == active.source))\n this.startQuery(active);\n }\n }\n startQuery(active) {\n let { state } = this.view, pos = cur(state);\n let context = new CompletionContext(state, pos, active.explicitPos == pos);\n let pending = new RunningQuery(active, context);\n this.running.push(pending);\n Promise.resolve(active.source(context)).then(result => {\n if (!pending.context.aborted) {\n pending.done = result || null;\n this.scheduleAccept();\n }\n }, err => {\n this.view.dispatch({ effects: closeCompletionEffect.of(null) });\n logException(this.view.state, err);\n });\n }\n scheduleAccept() {\n if (this.running.every(q => q.done !== undefined))\n this.accept();\n else if (this.debounceAccept < 0)\n this.debounceAccept = setTimeout(() => this.accept(), this.view.state.facet(completionConfig).updateSyncTime);\n }\n // For each finished query in this.running, try to create a result\n // or, if appropriate, restart the query.\n accept() {\n var _a;\n if (this.debounceAccept > -1)\n clearTimeout(this.debounceAccept);\n this.debounceAccept = -1;\n let updated = [];\n let conf = this.view.state.facet(completionConfig);\n for (let i = 0; i < this.running.length; i++) {\n let query = this.running[i];\n if (query.done === undefined)\n continue;\n this.running.splice(i--, 1);\n if (query.done) {\n let active = new ActiveResult(query.active.source, query.active.explicitPos, query.done, query.done.from, (_a = query.done.to) !== null && _a !== void 0 ? _a : cur(query.updates.length ? query.updates[0].startState : this.view.state));\n // Replay the transactions that happened since the start of\n // the request and see if that preserves the result\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.hasResult()) {\n updated.push(active);\n continue;\n }\n }\n let current = this.view.state.field(completionState).active.find(a => a.source == query.active.source);\n if (current && current.state == 1 /* State.Pending */) {\n if (query.done == null) {\n // Explicitly failed. Should clear the pending status if it\n // hasn't been re-set in the meantime.\n let active = new ActiveSource(query.active.source, 0 /* State.Inactive */);\n for (let tr of query.updates)\n active = active.update(tr, conf);\n if (active.state != 1 /* State.Pending */)\n updated.push(active);\n }\n else {\n // Cleared by subsequent transactions. Restart.\n this.startQuery(current);\n }\n }\n }\n if (updated.length)\n this.view.dispatch({ effects: setActiveEffect.of(updated) });\n }\n}, {\n eventHandlers: {\n blur(event) {\n let state = this.view.state.field(completionState, false);\n if (state && state.tooltip && this.view.state.facet(completionConfig).closeOnBlur) {\n let dialog = state.open && getTooltip(this.view, state.open.tooltip);\n if (!dialog || !dialog.dom.contains(event.relatedTarget))\n setTimeout(() => this.view.dispatch({ effects: closeCompletionEffect.of(null) }), 10);\n }\n },\n compositionstart() {\n this.composing = 1 /* CompositionState.Started */;\n },\n compositionend() {\n if (this.composing == 3 /* CompositionState.ChangedAndMoved */) {\n // Safari fires compositionend events synchronously, possibly\n // from inside an update, so dispatch asynchronously to avoid reentrancy\n setTimeout(() => this.view.dispatch({ effects: startCompletionEffect.of(false) }), 20);\n }\n this.composing = 0 /* CompositionState.None */;\n }\n }\n});\nconst windows = typeof navigator == \"object\" && /*@__PURE__*//Win/.test(navigator.platform);\nconst commitCharacters = /*@__PURE__*/Prec.highest(/*@__PURE__*/EditorView.domEventHandlers({\n keydown(event, view) {\n let field = view.state.field(completionState, false);\n if (!field || !field.open || field.open.disabled || field.open.selected < 0 ||\n event.key.length > 1 || event.ctrlKey && !(windows && event.altKey) || event.metaKey)\n return false;\n let option = field.open.options[field.open.selected];\n let result = field.active.find(a => a.source == option.source);\n let commitChars = option.completion.commitCharacters || result.result.commitCharacters;\n if (commitChars && commitChars.indexOf(event.key) > -1)\n applyCompletion(view, option);\n return false;\n }\n}));\n\nconst baseTheme = /*@__PURE__*/EditorView.baseTheme({\n \".cm-tooltip.cm-tooltip-autocomplete\": {\n \"& > ul\": {\n fontFamily: \"monospace\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden auto\",\n maxWidth_fallback: \"700px\",\n maxWidth: \"min(700px, 95vw)\",\n minWidth: \"250px\",\n maxHeight: \"10em\",\n height: \"100%\",\n listStyle: \"none\",\n margin: 0,\n padding: 0,\n \"& > li, & > completion-section\": {\n padding: \"1px 3px\",\n lineHeight: 1.2\n },\n \"& > li\": {\n overflowX: \"hidden\",\n textOverflow: \"ellipsis\",\n cursor: \"pointer\"\n },\n \"& > completion-section\": {\n display: \"list-item\",\n borderBottom: \"1px solid silver\",\n paddingLeft: \"0.5em\",\n opacity: 0.7\n }\n }\n },\n \"&light .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#17c\",\n color: \"white\",\n },\n \"&light .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#777\",\n },\n \"&dark .cm-tooltip-autocomplete ul li[aria-selected]\": {\n background: \"#347\",\n color: \"white\",\n },\n \"&dark .cm-tooltip-autocomplete-disabled ul li[aria-selected]\": {\n background: \"#444\",\n },\n \".cm-completionListIncompleteTop:before, .cm-completionListIncompleteBottom:after\": {\n content: '\"···\"',\n opacity: 0.5,\n display: \"block\",\n textAlign: \"center\"\n },\n \".cm-tooltip.cm-completionInfo\": {\n position: \"absolute\",\n padding: \"3px 9px\",\n width: \"max-content\",\n maxWidth: `${400 /* Info.Width */}px`,\n boxSizing: \"border-box\"\n },\n \".cm-completionInfo.cm-completionInfo-left\": { right: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-right\": { left: \"100%\" },\n \".cm-completionInfo.cm-completionInfo-left-narrow\": { right: `${30 /* Info.Margin */}px` },\n \".cm-completionInfo.cm-completionInfo-right-narrow\": { left: `${30 /* Info.Margin */}px` },\n \"&light .cm-snippetField\": { backgroundColor: \"#00000022\" },\n \"&dark .cm-snippetField\": { backgroundColor: \"#ffffff22\" },\n \".cm-snippetFieldPosition\": {\n verticalAlign: \"text-top\",\n width: 0,\n height: \"1.15em\",\n display: \"inline-block\",\n margin: \"0 -0.7px -.7em\",\n borderLeft: \"1.4px dotted #888\"\n },\n \".cm-completionMatchedText\": {\n textDecoration: \"underline\"\n },\n \".cm-completionDetail\": {\n marginLeft: \"0.5em\",\n fontStyle: \"italic\"\n },\n \".cm-completionIcon\": {\n fontSize: \"90%\",\n width: \".8em\",\n display: \"inline-block\",\n textAlign: \"center\",\n paddingRight: \".6em\",\n opacity: \"0.6\",\n boxSizing: \"content-box\"\n },\n \".cm-completionIcon-function, .cm-completionIcon-method\": {\n \"&:after\": { content: \"'ƒ'\" }\n },\n \".cm-completionIcon-class\": {\n \"&:after\": { content: \"'○'\" }\n },\n \".cm-completionIcon-interface\": {\n \"&:after\": { content: \"'◌'\" }\n },\n \".cm-completionIcon-variable\": {\n \"&:after\": { content: \"'𝑥'\" }\n },\n \".cm-completionIcon-constant\": {\n \"&:after\": { content: \"'𝐶'\" }\n },\n \".cm-completionIcon-type\": {\n \"&:after\": { content: \"'𝑡'\" }\n },\n \".cm-completionIcon-enum\": {\n \"&:after\": { content: \"'∪'\" }\n },\n \".cm-completionIcon-property\": {\n \"&:after\": { content: \"'□'\" }\n },\n \".cm-completionIcon-keyword\": {\n \"&:after\": { content: \"'🔑\\uFE0E'\" } // Disable emoji rendering\n },\n \".cm-completionIcon-namespace\": {\n \"&:after\": { content: \"'▢'\" }\n },\n \".cm-completionIcon-text\": {\n \"&:after\": { content: \"'abc'\", fontSize: \"50%\", verticalAlign: \"middle\" }\n }\n});\n\nclass FieldPos {\n constructor(field, line, from, to) {\n this.field = field;\n this.line = line;\n this.from = from;\n this.to = to;\n }\n}\nclass FieldRange {\n constructor(field, from, to) {\n this.field = field;\n this.from = from;\n this.to = to;\n }\n map(changes) {\n let from = changes.mapPos(this.from, -1, MapMode.TrackDel);\n let to = changes.mapPos(this.to, 1, MapMode.TrackDel);\n return from == null || to == null ? null : new FieldRange(this.field, from, to);\n }\n}\nclass Snippet {\n constructor(lines, fieldPositions) {\n this.lines = lines;\n this.fieldPositions = fieldPositions;\n }\n instantiate(state, pos) {\n let text = [], lineStart = [pos];\n let lineObj = state.doc.lineAt(pos), baseIndent = /^\\s*/.exec(lineObj.text)[0];\n for (let line of this.lines) {\n if (text.length) {\n let indent = baseIndent, tabs = /^\\t*/.exec(line)[0].length;\n for (let i = 0; i < tabs; i++)\n indent += state.facet(indentUnit);\n lineStart.push(pos + indent.length - tabs);\n line = indent + line.slice(tabs);\n }\n text.push(line);\n pos += line.length + 1;\n }\n let ranges = this.fieldPositions.map(pos => new FieldRange(pos.field, lineStart[pos.line] + pos.from, lineStart[pos.line] + pos.to));\n return { text, ranges };\n }\n static parse(template) {\n let fields = [];\n let lines = [], positions = [], m;\n for (let line of template.split(/\\r\\n?|\\n/)) {\n while (m = /[#$]\\{(?:(\\d+)(?::([^}]*))?|([^}]*))\\}/.exec(line)) {\n let seq = m[1] ? +m[1] : null, name = m[2] || m[3] || \"\", found = -1;\n for (let i = 0; i < fields.length; i++) {\n if (seq != null ? fields[i].seq == seq : name ? fields[i].name == name : false)\n found = i;\n }\n if (found < 0) {\n let i = 0;\n while (i < fields.length && (seq == null || (fields[i].seq != null && fields[i].seq < seq)))\n i++;\n fields.splice(i, 0, { seq, name });\n found = i;\n for (let pos of positions)\n if (pos.field >= found)\n pos.field++;\n }\n positions.push(new FieldPos(found, lines.length, m.index, m.index + name.length));\n line = line.slice(0, m.index) + name + line.slice(m.index + m[0].length);\n }\n for (let esc; esc = /\\\\([{}])/.exec(line);) {\n line = line.slice(0, esc.index) + esc[1] + line.slice(esc.index + esc[0].length);\n for (let pos of positions)\n if (pos.line == lines.length && pos.from > esc.index) {\n pos.from--;\n pos.to--;\n }\n }\n lines.push(line);\n }\n return new Snippet(lines, positions);\n }\n}\nlet fieldMarker = /*@__PURE__*/Decoration.widget({ widget: /*@__PURE__*/new class extends WidgetType {\n toDOM() {\n let span = document.createElement(\"span\");\n span.className = \"cm-snippetFieldPosition\";\n return span;\n }\n ignoreEvent() { return false; }\n } });\nlet fieldRange = /*@__PURE__*/Decoration.mark({ class: \"cm-snippetField\" });\nclass ActiveSnippet {\n constructor(ranges, active) {\n this.ranges = ranges;\n this.active = active;\n this.deco = Decoration.set(ranges.map(r => (r.from == r.to ? fieldMarker : fieldRange).range(r.from, r.to)));\n }\n map(changes) {\n let ranges = [];\n for (let r of this.ranges) {\n let mapped = r.map(changes);\n if (!mapped)\n return null;\n ranges.push(mapped);\n }\n return new ActiveSnippet(ranges, this.active);\n }\n selectionInsideField(sel) {\n return sel.ranges.every(range => this.ranges.some(r => r.field == this.active && r.from <= range.from && r.to >= range.to));\n }\n}\nconst setActive = /*@__PURE__*/StateEffect.define({\n map(value, changes) { return value && value.map(changes); }\n});\nconst moveToField = /*@__PURE__*/StateEffect.define();\nconst snippetState = /*@__PURE__*/StateField.define({\n create() { return null; },\n update(value, tr) {\n for (let effect of tr.effects) {\n if (effect.is(setActive))\n return effect.value;\n if (effect.is(moveToField) && value)\n return new ActiveSnippet(value.ranges, effect.value);\n }\n if (value && tr.docChanged)\n value = value.map(tr.changes);\n if (value && tr.selection && !value.selectionInsideField(tr.selection))\n value = null;\n return value;\n },\n provide: f => EditorView.decorations.from(f, val => val ? val.deco : Decoration.none)\n});\nfunction fieldSelection(ranges, field) {\n return EditorSelection.create(ranges.filter(r => r.field == field).map(r => EditorSelection.range(r.from, r.to)));\n}\n/**\nConvert a snippet template to a function that can\n[apply](https://codemirror.net/6/docs/ref/#autocomplete.Completion.apply) it. Snippets are written\nusing syntax like this:\n\n \"for (let ${index} = 0; ${index} < ${end}; ${index}++) {\\n\\t${}\\n}\"\n\nEach `${}` placeholder (you may also use `#{}`) indicates a field\nthat the user can fill in. Its name, if any, will be the default\ncontent for the field.\n\nWhen the snippet is activated by calling the returned function,\nthe code is inserted at the given position. Newlines in the\ntemplate are indented by the indentation of the start line, plus\none [indent unit](https://codemirror.net/6/docs/ref/#language.indentUnit) per tab character after\nthe newline.\n\nOn activation, (all instances of) the first field are selected.\nThe user can move between fields with Tab and Shift-Tab as long as\nthe fields are active. Moving to the last field or moving the\ncursor out of the current field deactivates the fields.\n\nThe order of fields defaults to textual order, but you can add\nnumbers to placeholders (`${1}` or `${1:defaultText}`) to provide\na custom order.\n\nTo include a literal `{` or `}` in your template, put a backslash\nin front of it. This will be removed and the brace will not be\ninterpreted as indicating a placeholder.\n*/\nfunction snippet(template) {\n let snippet = Snippet.parse(template);\n return (editor, completion, from, to) => {\n let { text, ranges } = snippet.instantiate(editor.state, from);\n let spec = {\n changes: { from, to, insert: Text.of(text) },\n scrollIntoView: true,\n annotations: completion ? [pickedCompletion.of(completion), Transaction.userEvent.of(\"input.complete\")] : undefined\n };\n if (ranges.length)\n spec.selection = fieldSelection(ranges, 0);\n if (ranges.some(r => r.field > 0)) {\n let active = new ActiveSnippet(ranges, 0);\n let effects = spec.effects = [setActive.of(active)];\n if (editor.state.field(snippetState, false) === undefined)\n effects.push(StateEffect.appendConfig.of([snippetState, addSnippetKeymap, snippetPointerHandler, baseTheme]));\n }\n editor.dispatch(editor.state.update(spec));\n };\n}\nfunction moveField(dir) {\n return ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active || dir < 0 && active.active == 0)\n return false;\n let next = active.active + dir, last = dir > 0 && !active.ranges.some(r => r.field == next + dir);\n dispatch(state.update({\n selection: fieldSelection(active.ranges, next),\n effects: setActive.of(last ? null : new ActiveSnippet(active.ranges, next)),\n scrollIntoView: true\n }));\n return true;\n };\n}\n/**\nA command that clears the active snippet, if any.\n*/\nconst clearSnippet = ({ state, dispatch }) => {\n let active = state.field(snippetState, false);\n if (!active)\n return false;\n dispatch(state.update({ effects: setActive.of(null) }));\n return true;\n};\n/**\nMove to the next snippet field, if available.\n*/\nconst nextSnippetField = /*@__PURE__*/moveField(1);\n/**\nMove to the previous snippet field, if available.\n*/\nconst prevSnippetField = /*@__PURE__*/moveField(-1);\n/**\nCheck if there is an active snippet with a next field for\n`nextSnippetField` to move to.\n*/\nfunction hasNextSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.ranges.some(r => r.field == active.active + 1));\n}\n/**\nReturns true if there is an active snippet and a previous field\nfor `prevSnippetField` to move to.\n*/\nfunction hasPrevSnippetField(state) {\n let active = state.field(snippetState, false);\n return !!(active && active.active > 0);\n}\nconst defaultSnippetKeymap = [\n { key: \"Tab\", run: nextSnippetField, shift: prevSnippetField },\n { key: \"Escape\", run: clearSnippet }\n];\n/**\nA facet that can be used to configure the key bindings used by\nsnippets. The default binds Tab to\n[`nextSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.nextSnippetField), Shift-Tab to\n[`prevSnippetField`](https://codemirror.net/6/docs/ref/#autocomplete.prevSnippetField), and Escape\nto [`clearSnippet`](https://codemirror.net/6/docs/ref/#autocomplete.clearSnippet).\n*/\nconst snippetKeymap = /*@__PURE__*/Facet.define({\n combine(maps) { return maps.length ? maps[0] : defaultSnippetKeymap; }\n});\nconst addSnippetKeymap = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.compute([snippetKeymap], state => state.facet(snippetKeymap)));\n/**\nCreate a completion from a snippet. Returns an object with the\nproperties from `completion`, plus an `apply` function that\napplies the snippet.\n*/\nfunction snippetCompletion(template, completion) {\n return Object.assign(Object.assign({}, completion), { apply: snippet(template) });\n}\nconst snippetPointerHandler = /*@__PURE__*/EditorView.domEventHandlers({\n mousedown(event, view) {\n let active = view.state.field(snippetState, false), pos;\n if (!active || (pos = view.posAtCoords({ x: event.clientX, y: event.clientY })) == null)\n return false;\n let match = active.ranges.find(r => r.from <= pos && r.to >= pos);\n if (!match || match.field == active.active)\n return false;\n view.dispatch({\n selection: fieldSelection(active.ranges, match.field),\n effects: setActive.of(active.ranges.some(r => r.field > match.field)\n ? new ActiveSnippet(active.ranges, match.field) : null),\n scrollIntoView: true\n });\n return true;\n }\n});\n\nfunction wordRE(wordChars) {\n let escaped = wordChars.replace(/[\\]\\-\\\\]/g, \"\\\\$&\");\n try {\n return new RegExp(`[\\\\p{Alphabetic}\\\\p{Number}_${escaped}]+`, \"ug\");\n }\n catch (_a) {\n return new RegExp(`[\\w${escaped}]`, \"g\");\n }\n}\nfunction mapRE(re, f) {\n return new RegExp(f(re.source), re.unicode ? \"u\" : \"\");\n}\nconst wordCaches = /*@__PURE__*/Object.create(null);\nfunction wordCache(wordChars) {\n return wordCaches[wordChars] || (wordCaches[wordChars] = new WeakMap);\n}\nfunction storeWords(doc, wordRE, result, seen, ignoreAt) {\n for (let lines = doc.iterLines(), pos = 0; !lines.next().done;) {\n let { value } = lines, m;\n wordRE.lastIndex = 0;\n while (m = wordRE.exec(value)) {\n if (!seen[m[0]] && pos + m.index != ignoreAt) {\n result.push({ type: \"text\", label: m[0] });\n seen[m[0]] = true;\n if (result.length >= 2000 /* C.MaxList */)\n return;\n }\n }\n pos += value.length + 1;\n }\n}\nfunction collectWords(doc, cache, wordRE, to, ignoreAt) {\n let big = doc.length >= 1000 /* C.MinCacheLen */;\n let cached = big && cache.get(doc);\n if (cached)\n return cached;\n let result = [], seen = Object.create(null);\n if (doc.children) {\n let pos = 0;\n for (let ch of doc.children) {\n if (ch.length >= 1000 /* C.MinCacheLen */) {\n for (let c of collectWords(ch, cache, wordRE, to - pos, ignoreAt - pos)) {\n if (!seen[c.label]) {\n seen[c.label] = true;\n result.push(c);\n }\n }\n }\n else {\n storeWords(ch, wordRE, result, seen, ignoreAt - pos);\n }\n pos += ch.length + 1;\n }\n }\n else {\n storeWords(doc, wordRE, result, seen, ignoreAt);\n }\n if (big && result.length < 2000 /* C.MaxList */)\n cache.set(doc, result);\n return result;\n}\n/**\nA completion source that will scan the document for words (using a\n[character categorizer](https://codemirror.net/6/docs/ref/#state.EditorState.charCategorizer)), and\nreturn those as completions.\n*/\nconst completeAnyWord = context => {\n let wordChars = context.state.languageDataAt(\"wordChars\", context.pos).join(\"\");\n let re = wordRE(wordChars);\n let token = context.matchBefore(mapRE(re, s => s + \"$\"));\n if (!token && !context.explicit)\n return null;\n let from = token ? token.from : context.pos;\n let options = collectWords(context.state.doc, wordCache(wordChars), re, 50000 /* C.Range */, from);\n return { from, options, validFor: mapRE(re, s => \"^\" + s) };\n};\n\nconst defaults = {\n brackets: [\"(\", \"[\", \"{\", \"'\", '\"'],\n before: \")]}:;>\",\n stringPrefixes: []\n};\nconst closeBracketEffect = /*@__PURE__*/StateEffect.define({\n map(value, mapping) {\n let mapped = mapping.mapPos(value, -1, MapMode.TrackAfter);\n return mapped == null ? undefined : mapped;\n }\n});\nconst closedBracket = /*@__PURE__*/new class extends RangeValue {\n};\nclosedBracket.startSide = 1;\nclosedBracket.endSide = -1;\nconst bracketState = /*@__PURE__*/StateField.define({\n create() { return RangeSet.empty; },\n update(value, tr) {\n value = value.map(tr.changes);\n if (tr.selection) {\n let line = tr.state.doc.lineAt(tr.selection.main.head);\n value = value.update({ filter: from => from >= line.from && from <= line.to });\n }\n for (let effect of tr.effects)\n if (effect.is(closeBracketEffect))\n value = value.update({ add: [closedBracket.range(effect.value, effect.value + 1)] });\n return value;\n }\n});\n/**\nExtension to enable bracket-closing behavior. When a closeable\nbracket is typed, its closing bracket is immediately inserted\nafter the cursor. When closing a bracket directly in front of a\nclosing bracket inserted by the extension, the cursor moves over\nthat bracket.\n*/\nfunction closeBrackets() {\n return [inputHandler, bracketState];\n}\nconst definedClosing = \"()[]{}<>\";\nfunction closing(ch) {\n for (let i = 0; i < definedClosing.length; i += 2)\n if (definedClosing.charCodeAt(i) == ch)\n return definedClosing.charAt(i + 1);\n return fromCodePoint(ch < 128 ? ch : ch + 1);\n}\nfunction config(state, pos) {\n return state.languageDataAt(\"closeBrackets\", pos)[0] || defaults;\n}\nconst android = typeof navigator == \"object\" && /*@__PURE__*//Android\\b/.test(navigator.userAgent);\nconst inputHandler = /*@__PURE__*/EditorView.inputHandler.of((view, from, to, insert) => {\n if ((android ? view.composing : view.compositionStarted) || view.state.readOnly)\n return false;\n let sel = view.state.selection.main;\n if (insert.length > 2 || insert.length == 2 && codePointSize(codePointAt(insert, 0)) == 1 ||\n from != sel.from || to != sel.to)\n return false;\n let tr = insertBracket(view.state, insert);\n if (!tr)\n return false;\n view.dispatch(tr);\n return true;\n});\n/**\nCommand that implements deleting a pair of matching brackets when\nthe cursor is between them.\n*/\nconst deleteBracketPair = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty) {\n let before = prevChar(state.doc, range.head);\n for (let token of tokens) {\n if (token == before && nextChar(state.doc, range.head) == closing(codePointAt(token, 0)))\n return { changes: { from: range.head - token.length, to: range.head + token.length },\n range: EditorSelection.cursor(range.head - token.length) };\n }\n }\n return { range: dont = range };\n });\n if (!dont)\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"delete.backward\" }));\n return !dont;\n};\n/**\nClose-brackets related key bindings. Binds Backspace to\n[`deleteBracketPair`](https://codemirror.net/6/docs/ref/#autocomplete.deleteBracketPair).\n*/\nconst closeBracketsKeymap = [\n { key: \"Backspace\", run: deleteBracketPair }\n];\n/**\nImplements the extension's behavior on text insertion. If the\ngiven string counts as a bracket in the language around the\nselection, and replacing the selection with it requires custom\nbehavior (inserting a closing version or skipping past a\npreviously-closed bracket), this function returns a transaction\nrepresenting that custom behavior. (You only need this if you want\nto programmatically insert brackets—the\n[`closeBrackets`](https://codemirror.net/6/docs/ref/#autocomplete.closeBrackets) extension will\ntake care of running this for user input.)\n*/\nfunction insertBracket(state, bracket) {\n let conf = config(state, state.selection.main.head);\n let tokens = conf.brackets || defaults.brackets;\n for (let tok of tokens) {\n let closed = closing(codePointAt(tok, 0));\n if (bracket == tok)\n return closed == tok ? handleSame(state, tok, tokens.indexOf(tok + tok + tok) > -1, conf)\n : handleOpen(state, tok, closed, conf.before || defaults.before);\n if (bracket == closed && closedBracketAt(state, state.selection.main.from))\n return handleClose(state, tok, closed);\n }\n return null;\n}\nfunction closedBracketAt(state, pos) {\n let found = false;\n state.field(bracketState).between(0, state.doc.length, from => {\n if (from == pos)\n found = true;\n });\n return found;\n}\nfunction nextChar(doc, pos) {\n let next = doc.sliceString(pos, pos + 2);\n return next.slice(0, codePointSize(codePointAt(next, 0)));\n}\nfunction prevChar(doc, pos) {\n let prev = doc.sliceString(pos - 2, pos);\n return codePointSize(codePointAt(prev, 0)) == prev.length ? prev : prev.slice(1);\n}\nfunction handleOpen(state, open, close, closeBefore) {\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: open, from: range.from }, { insert: close, from: range.to }],\n effects: closeBracketEffect.of(range.to + open.length),\n range: EditorSelection.range(range.anchor + open.length, range.head + open.length) };\n let next = nextChar(state.doc, range.head);\n if (!next || /\\s/.test(next) || closeBefore.indexOf(next) > -1)\n return { changes: { insert: open + close, from: range.head },\n effects: closeBracketEffect.of(range.head + open.length),\n range: EditorSelection.cursor(range.head + open.length) };\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction handleClose(state, _open, close) {\n let dont = null, changes = state.changeByRange(range => {\n if (range.empty && nextChar(state.doc, range.head) == close)\n return { changes: { from: range.head, to: range.head + close.length, insert: close },\n range: EditorSelection.cursor(range.head + close.length) };\n return dont = { range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\n// Handles cases where the open and close token are the same, and\n// possibly triple quotes (as in `\"\"\"abc\"\"\"`-style quoting).\nfunction handleSame(state, token, allowTriple, config) {\n let stringPrefixes = config.stringPrefixes || defaults.stringPrefixes;\n let dont = null, changes = state.changeByRange(range => {\n if (!range.empty)\n return { changes: [{ insert: token, from: range.from }, { insert: token, from: range.to }],\n effects: closeBracketEffect.of(range.to + token.length),\n range: EditorSelection.range(range.anchor + token.length, range.head + token.length) };\n let pos = range.head, next = nextChar(state.doc, pos), start;\n if (next == token) {\n if (nodeStart(state, pos)) {\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (closedBracketAt(state, pos)) {\n let isTriple = allowTriple && state.sliceDoc(pos, pos + token.length * 3) == token + token + token;\n let content = isTriple ? token + token + token : token;\n return { changes: { from: pos, to: pos + content.length, insert: content },\n range: EditorSelection.cursor(pos + content.length) };\n }\n }\n else if (allowTriple && state.sliceDoc(pos - 2 * token.length, pos) == token + token &&\n (start = canStartStringAt(state, pos - 2 * token.length, stringPrefixes)) > -1 &&\n nodeStart(state, start)) {\n return { changes: { insert: token + token + token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n else if (state.charCategorizer(pos)(next) != CharCategory.Word) {\n if (canStartStringAt(state, pos, stringPrefixes) > -1 && !probablyInString(state, pos, token, stringPrefixes))\n return { changes: { insert: token + token, from: pos },\n effects: closeBracketEffect.of(pos + token.length),\n range: EditorSelection.cursor(pos + token.length) };\n }\n return { range: dont = range };\n });\n return dont ? null : state.update(changes, {\n scrollIntoView: true,\n userEvent: \"input.type\"\n });\n}\nfunction nodeStart(state, pos) {\n let tree = syntaxTree(state).resolveInner(pos + 1);\n return tree.parent && tree.from == pos;\n}\nfunction probablyInString(state, pos, quoteToken, prefixes) {\n let node = syntaxTree(state).resolveInner(pos, -1);\n let maxPrefix = prefixes.reduce((m, p) => Math.max(m, p.length), 0);\n for (let i = 0; i < 5; i++) {\n let start = state.sliceDoc(node.from, Math.min(node.to, node.from + quoteToken.length + maxPrefix));\n let quotePos = start.indexOf(quoteToken);\n if (!quotePos || quotePos > -1 && prefixes.indexOf(start.slice(0, quotePos)) > -1) {\n let first = node.firstChild;\n while (first && first.from == node.from && first.to - first.from > quoteToken.length + quotePos) {\n if (state.sliceDoc(first.to - quoteToken.length, first.to) == quoteToken)\n return false;\n first = first.firstChild;\n }\n return true;\n }\n let parent = node.to == pos && node.parent;\n if (!parent)\n break;\n node = parent;\n }\n return false;\n}\nfunction canStartStringAt(state, pos, prefixes) {\n let charCat = state.charCategorizer(pos);\n if (charCat(state.sliceDoc(pos - 1, pos)) != CharCategory.Word)\n return pos;\n for (let prefix of prefixes) {\n let start = pos - prefix.length;\n if (state.sliceDoc(start, pos) == prefix && charCat(state.sliceDoc(start - 1, start)) != CharCategory.Word)\n return start;\n }\n return -1;\n}\n\n/**\nReturns an extension that enables autocompletion.\n*/\nfunction autocompletion(config = {}) {\n return [\n commitCharacters,\n completionState,\n completionConfig.of(config),\n completionPlugin,\n completionKeymapExt,\n baseTheme\n ];\n}\n/**\nBasic keybindings for autocompletion.\n\n - Ctrl-Space: [`startCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.startCompletion)\n - Escape: [`closeCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.closeCompletion)\n - ArrowDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true)`\n - ArrowUp: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(false)`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - PageDown: [`moveCompletionSelection`](https://codemirror.net/6/docs/ref/#autocomplete.moveCompletionSelection)`(true, \"page\")`\n - Enter: [`acceptCompletion`](https://codemirror.net/6/docs/ref/#autocomplete.acceptCompletion)\n*/\nconst completionKeymap = [\n { key: \"Ctrl-Space\", run: startCompletion },\n { key: \"Escape\", run: closeCompletion },\n { key: \"ArrowDown\", run: /*@__PURE__*/moveCompletionSelection(true) },\n { key: \"ArrowUp\", run: /*@__PURE__*/moveCompletionSelection(false) },\n { key: \"PageDown\", run: /*@__PURE__*/moveCompletionSelection(true, \"page\") },\n { key: \"PageUp\", run: /*@__PURE__*/moveCompletionSelection(false, \"page\") },\n { key: \"Enter\", run: acceptCompletion }\n];\nconst completionKeymapExt = /*@__PURE__*/Prec.highest(/*@__PURE__*/keymap.computeN([completionConfig], state => state.facet(completionConfig).defaultKeymap ? [completionKeymap] : []));\n/**\nGet the current completion status. When completions are available,\nthis will return `\"active\"`. When completions are pending (in the\nprocess of being queried), this returns `\"pending\"`. Otherwise, it\nreturns `null`.\n*/\nfunction completionStatus(state) {\n let cState = state.field(completionState, false);\n return cState && cState.active.some(a => a.state == 1 /* State.Pending */) ? \"pending\"\n : cState && cState.active.some(a => a.state != 0 /* State.Inactive */) ? \"active\" : null;\n}\nconst completionArrayCache = /*@__PURE__*/new WeakMap;\n/**\nReturns the available completions as an array.\n*/\nfunction currentCompletions(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n if (!open || open.disabled)\n return [];\n let completions = completionArrayCache.get(open.options);\n if (!completions)\n completionArrayCache.set(open.options, completions = open.options.map(o => o.completion));\n return completions;\n}\n/**\nReturn the currently selected completion, if any.\n*/\nfunction selectedCompletion(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.options[open.selected].completion : null;\n}\n/**\nReturns the currently selected position in the active completion\nlist, or null if no completions are active.\n*/\nfunction selectedCompletionIndex(state) {\n var _a;\n let open = (_a = state.field(completionState, false)) === null || _a === void 0 ? void 0 : _a.open;\n return open && !open.disabled && open.selected >= 0 ? open.selected : null;\n}\n/**\nCreate an effect that can be attached to a transaction to change\nthe currently selected completion.\n*/\nfunction setSelectedCompletion(index) {\n return setSelectedEffect.of(index);\n}\n\nexport { CompletionContext, acceptCompletion, autocompletion, clearSnippet, closeBrackets, closeBracketsKeymap, closeCompletion, completeAnyWord, completeFromList, completionKeymap, completionStatus, currentCompletions, deleteBracketPair, hasNextSnippetField, hasPrevSnippetField, ifIn, ifNotIn, insertBracket, insertCompletionText, moveCompletionSelection, nextSnippetField, pickedCompletion, prevSnippetField, selectedCompletion, selectedCompletionIndex, setSelectedCompletion, snippet, snippetCompletion, snippetKeymap, startCompletion };\n","import { Annotation, Facet, combineConfig, StateField, Transaction, ChangeSet, ChangeDesc, EditorSelection, StateEffect, Text, findClusterBreak, countColumn, CharCategory } from '@codemirror/state';\nimport { EditorView, Direction } from '@codemirror/view';\nimport { IndentContext, getIndentation, indentString, matchBrackets, syntaxTree, getIndentUnit, indentUnit } from '@codemirror/language';\nimport { NodeProp } from '@lezer/common';\n\n/**\nComment or uncomment the current selection. Will use line comments\nif available, otherwise falling back to block comments.\n*/\nconst toggleComment = target => {\n let { state } = target, line = state.doc.lineAt(state.selection.main.from), config = getConfig(target.state, line.from);\n return config.line ? toggleLineComment(target) : config.block ? toggleBlockCommentByLine(target) : false;\n};\nfunction command(f, option) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let tr = f(option, state);\n if (!tr)\n return false;\n dispatch(state.update(tr));\n return true;\n };\n}\n/**\nComment or uncomment the current selection using line comments.\nThe line comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleLineComment = /*@__PURE__*/command(changeLineComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using line comments.\n*/\nconst lineComment = /*@__PURE__*/command(changeLineComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using line comments.\n*/\nconst lineUncomment = /*@__PURE__*/command(changeLineComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the current selection using block comments.\nThe block comment syntax is taken from the\n[`commentTokens`](https://codemirror.net/6/docs/ref/#commands.CommentTokens) [language\ndata](https://codemirror.net/6/docs/ref/#state.EditorState.languageDataAt).\n*/\nconst toggleBlockComment = /*@__PURE__*/command(changeBlockComment, 0 /* CommentOption.Toggle */);\n/**\nComment the current selection using block comments.\n*/\nconst blockComment = /*@__PURE__*/command(changeBlockComment, 1 /* CommentOption.Comment */);\n/**\nUncomment the current selection using block comments.\n*/\nconst blockUncomment = /*@__PURE__*/command(changeBlockComment, 2 /* CommentOption.Uncomment */);\n/**\nComment or uncomment the lines around the current selection using\nblock comments.\n*/\nconst toggleBlockCommentByLine = /*@__PURE__*/command((o, s) => changeBlockComment(o, s, selectedLineRanges(s)), 0 /* CommentOption.Toggle */);\nfunction getConfig(state, pos) {\n let data = state.languageDataAt(\"commentTokens\", pos);\n return data.length ? data[0] : {};\n}\nconst SearchMargin = 50;\n/**\nDetermines if the given range is block-commented in the given\nstate.\n*/\nfunction findBlockComment(state, { open, close }, from, to) {\n let textBefore = state.sliceDoc(from - SearchMargin, from);\n let textAfter = state.sliceDoc(to, to + SearchMargin);\n let spaceBefore = /\\s*$/.exec(textBefore)[0].length, spaceAfter = /^\\s*/.exec(textAfter)[0].length;\n let beforeOff = textBefore.length - spaceBefore;\n if (textBefore.slice(beforeOff - open.length, beforeOff) == open &&\n textAfter.slice(spaceAfter, spaceAfter + close.length) == close) {\n return { open: { pos: from - spaceBefore, margin: spaceBefore && 1 },\n close: { pos: to + spaceAfter, margin: spaceAfter && 1 } };\n }\n let startText, endText;\n if (to - from <= 2 * SearchMargin) {\n startText = endText = state.sliceDoc(from, to);\n }\n else {\n startText = state.sliceDoc(from, from + SearchMargin);\n endText = state.sliceDoc(to - SearchMargin, to);\n }\n let startSpace = /^\\s*/.exec(startText)[0].length, endSpace = /\\s*$/.exec(endText)[0].length;\n let endOff = endText.length - endSpace - close.length;\n if (startText.slice(startSpace, startSpace + open.length) == open &&\n endText.slice(endOff, endOff + close.length) == close) {\n return { open: { pos: from + startSpace + open.length,\n margin: /\\s/.test(startText.charAt(startSpace + open.length)) ? 1 : 0 },\n close: { pos: to - endSpace - close.length,\n margin: /\\s/.test(endText.charAt(endOff - 1)) ? 1 : 0 } };\n }\n return null;\n}\nfunction selectedLineRanges(state) {\n let ranges = [];\n for (let r of state.selection.ranges) {\n let fromLine = state.doc.lineAt(r.from);\n let toLine = r.to <= fromLine.to ? fromLine : state.doc.lineAt(r.to);\n let last = ranges.length - 1;\n if (last >= 0 && ranges[last].to > fromLine.from)\n ranges[last].to = toLine.to;\n else\n ranges.push({ from: fromLine.from + /^\\s*/.exec(fromLine.text)[0].length, to: toLine.to });\n }\n return ranges;\n}\n// Performs toggle, comment and uncomment of block comments in\n// languages that support them.\nfunction changeBlockComment(option, state, ranges = state.selection.ranges) {\n let tokens = ranges.map(r => getConfig(state, r.from).block);\n if (!tokens.every(c => c))\n return null;\n let comments = ranges.map((r, i) => findBlockComment(state, tokens[i], r.from, r.to));\n if (option != 2 /* CommentOption.Uncomment */ && !comments.every(c => c)) {\n return { changes: state.changes(ranges.map((range, i) => {\n if (comments[i])\n return [];\n return [{ from: range.from, insert: tokens[i].open + \" \" }, { from: range.to, insert: \" \" + tokens[i].close }];\n })) };\n }\n else if (option != 1 /* CommentOption.Comment */ && comments.some(c => c)) {\n let changes = [];\n for (let i = 0, comment; i < comments.length; i++)\n if (comment = comments[i]) {\n let token = tokens[i], { open, close } = comment;\n changes.push({ from: open.pos - token.open.length, to: open.pos + open.margin }, { from: close.pos - close.margin, to: close.pos + token.close.length });\n }\n return { changes };\n }\n return null;\n}\n// Performs toggle, comment and uncomment of line comments.\nfunction changeLineComment(option, state, ranges = state.selection.ranges) {\n let lines = [];\n let prevLine = -1;\n for (let { from, to } of ranges) {\n let startI = lines.length, minIndent = 1e9;\n let token = getConfig(state, from).line;\n if (!token)\n continue;\n for (let pos = from; pos <= to;) {\n let line = state.doc.lineAt(pos);\n if (line.from > prevLine && (from == to || to > line.from)) {\n prevLine = line.from;\n let indent = /^\\s*/.exec(line.text)[0].length;\n let empty = indent == line.length;\n let comment = line.text.slice(indent, indent + token.length) == token ? indent : -1;\n if (indent < line.text.length && indent < minIndent)\n minIndent = indent;\n lines.push({ line, comment, token, indent, empty, single: false });\n }\n pos = line.to + 1;\n }\n if (minIndent < 1e9)\n for (let i = startI; i < lines.length; i++)\n if (lines[i].indent < lines[i].line.text.length)\n lines[i].indent = minIndent;\n if (lines.length == startI + 1)\n lines[startI].single = true;\n }\n if (option != 2 /* CommentOption.Uncomment */ && lines.some(l => l.comment < 0 && (!l.empty || l.single))) {\n let changes = [];\n for (let { line, token, indent, empty, single } of lines)\n if (single || !empty)\n changes.push({ from: line.from + indent, insert: token + \" \" });\n let changeSet = state.changes(changes);\n return { changes: changeSet, selection: state.selection.map(changeSet, 1) };\n }\n else if (option != 1 /* CommentOption.Comment */ && lines.some(l => l.comment >= 0)) {\n let changes = [];\n for (let { line, comment, token } of lines)\n if (comment >= 0) {\n let from = line.from + comment, to = from + token.length;\n if (line.text[to - line.from] == \" \")\n to++;\n changes.push({ from, to });\n }\n return { changes };\n }\n return null;\n}\n\nconst fromHistory = /*@__PURE__*/Annotation.define();\n/**\nTransaction annotation that will prevent that transaction from\nbeing combined with other transactions in the undo history. Given\n`\"before\"`, it'll prevent merging with previous transactions. With\n`\"after\"`, subsequent transactions won't be combined with this\none. With `\"full\"`, the transaction is isolated on both sides.\n*/\nconst isolateHistory = /*@__PURE__*/Annotation.define();\n/**\nThis facet provides a way to register functions that, given a\ntransaction, provide a set of effects that the history should\nstore when inverting the transaction. This can be used to\nintegrate some kinds of effects in the history, so that they can\nbe undone (and redone again).\n*/\nconst invertedEffects = /*@__PURE__*/Facet.define();\nconst historyConfig = /*@__PURE__*/Facet.define({\n combine(configs) {\n return combineConfig(configs, {\n minDepth: 100,\n newGroupDelay: 500,\n joinToEvent: (_t, isAdjacent) => isAdjacent,\n }, {\n minDepth: Math.max,\n newGroupDelay: Math.min,\n joinToEvent: (a, b) => (tr, adj) => a(tr, adj) || b(tr, adj)\n });\n }\n});\nconst historyField_ = /*@__PURE__*/StateField.define({\n create() {\n return HistoryState.empty;\n },\n update(state, tr) {\n let config = tr.state.facet(historyConfig);\n let fromHist = tr.annotation(fromHistory);\n if (fromHist) {\n let item = HistEvent.fromTransaction(tr, fromHist.selection), from = fromHist.side;\n let other = from == 0 /* BranchName.Done */ ? state.undone : state.done;\n if (item)\n other = updateBranch(other, other.length, config.minDepth, item);\n else\n other = addSelection(other, tr.startState.selection);\n return new HistoryState(from == 0 /* BranchName.Done */ ? fromHist.rest : other, from == 0 /* BranchName.Done */ ? other : fromHist.rest);\n }\n let isolate = tr.annotation(isolateHistory);\n if (isolate == \"full\" || isolate == \"before\")\n state = state.isolate();\n if (tr.annotation(Transaction.addToHistory) === false)\n return !tr.changes.empty ? state.addMapping(tr.changes.desc) : state;\n let event = HistEvent.fromTransaction(tr);\n let time = tr.annotation(Transaction.time), userEvent = tr.annotation(Transaction.userEvent);\n if (event)\n state = state.addChanges(event, time, userEvent, config, tr);\n else if (tr.selection)\n state = state.addSelection(tr.startState.selection, time, userEvent, config.newGroupDelay);\n if (isolate == \"full\" || isolate == \"after\")\n state = state.isolate();\n return state;\n },\n toJSON(value) {\n return { done: value.done.map(e => e.toJSON()), undone: value.undone.map(e => e.toJSON()) };\n },\n fromJSON(json) {\n return new HistoryState(json.done.map(HistEvent.fromJSON), json.undone.map(HistEvent.fromJSON));\n }\n});\n/**\nCreate a history extension with the given configuration.\n*/\nfunction history(config = {}) {\n return [\n historyField_,\n historyConfig.of(config),\n EditorView.domEventHandlers({\n beforeinput(e, view) {\n let command = e.inputType == \"historyUndo\" ? undo : e.inputType == \"historyRedo\" ? redo : null;\n if (!command)\n return false;\n e.preventDefault();\n return command(view);\n }\n })\n ];\n}\n/**\nThe state field used to store the history data. Should probably\nonly be used when you want to\n[serialize](https://codemirror.net/6/docs/ref/#state.EditorState.toJSON) or\n[deserialize](https://codemirror.net/6/docs/ref/#state.EditorState^fromJSON) state objects in a way\nthat preserves history.\n*/\nconst historyField = historyField_;\nfunction cmd(side, selection) {\n return function ({ state, dispatch }) {\n if (!selection && state.readOnly)\n return false;\n let historyState = state.field(historyField_, false);\n if (!historyState)\n return false;\n let tr = historyState.pop(side, state, selection);\n if (!tr)\n return false;\n dispatch(tr);\n return true;\n };\n}\n/**\nUndo a single group of history events. Returns false if no group\nwas available.\n*/\nconst undo = /*@__PURE__*/cmd(0 /* BranchName.Done */, false);\n/**\nRedo a group of history events. Returns false if no group was\navailable.\n*/\nconst redo = /*@__PURE__*/cmd(1 /* BranchName.Undone */, false);\n/**\nUndo a change or selection change.\n*/\nconst undoSelection = /*@__PURE__*/cmd(0 /* BranchName.Done */, true);\n/**\nRedo a change or selection change.\n*/\nconst redoSelection = /*@__PURE__*/cmd(1 /* BranchName.Undone */, true);\nfunction depth(side) {\n return function (state) {\n let histState = state.field(historyField_, false);\n if (!histState)\n return 0;\n let branch = side == 0 /* BranchName.Done */ ? histState.done : histState.undone;\n return branch.length - (branch.length && !branch[0].changes ? 1 : 0);\n };\n}\n/**\nThe amount of undoable change events available in a given state.\n*/\nconst undoDepth = /*@__PURE__*/depth(0 /* BranchName.Done */);\n/**\nThe amount of redoable change events available in a given state.\n*/\nconst redoDepth = /*@__PURE__*/depth(1 /* BranchName.Undone */);\n// History events store groups of changes or effects that need to be\n// undone/redone together.\nclass HistEvent {\n constructor(\n // The changes in this event. Normal events hold at least one\n // change or effect. But it may be necessary to store selection\n // events before the first change, in which case a special type of\n // instance is created which doesn't hold any changes, with\n // changes == startSelection == undefined\n changes, \n // The effects associated with this event\n effects, \n // Accumulated mapping (from addToHistory==false) that should be\n // applied to events below this one.\n mapped, \n // The selection before this event\n startSelection, \n // Stores selection changes after this event, to be used for\n // selection undo/redo.\n selectionsAfter) {\n this.changes = changes;\n this.effects = effects;\n this.mapped = mapped;\n this.startSelection = startSelection;\n this.selectionsAfter = selectionsAfter;\n }\n setSelAfter(after) {\n return new HistEvent(this.changes, this.effects, this.mapped, this.startSelection, after);\n }\n toJSON() {\n var _a, _b, _c;\n return {\n changes: (_a = this.changes) === null || _a === void 0 ? void 0 : _a.toJSON(),\n mapped: (_b = this.mapped) === null || _b === void 0 ? void 0 : _b.toJSON(),\n startSelection: (_c = this.startSelection) === null || _c === void 0 ? void 0 : _c.toJSON(),\n selectionsAfter: this.selectionsAfter.map(s => s.toJSON())\n };\n }\n static fromJSON(json) {\n return new HistEvent(json.changes && ChangeSet.fromJSON(json.changes), [], json.mapped && ChangeDesc.fromJSON(json.mapped), json.startSelection && EditorSelection.fromJSON(json.startSelection), json.selectionsAfter.map(EditorSelection.fromJSON));\n }\n // This does not check `addToHistory` and such, it assumes the\n // transaction needs to be converted to an item. Returns null when\n // there are no changes or effects in the transaction.\n static fromTransaction(tr, selection) {\n let effects = none;\n for (let invert of tr.startState.facet(invertedEffects)) {\n let result = invert(tr);\n if (result.length)\n effects = effects.concat(result);\n }\n if (!effects.length && tr.changes.empty)\n return null;\n return new HistEvent(tr.changes.invert(tr.startState.doc), effects, undefined, selection || tr.startState.selection, none);\n }\n static selection(selections) {\n return new HistEvent(undefined, none, undefined, undefined, selections);\n }\n}\nfunction updateBranch(branch, to, maxLen, newEvent) {\n let start = to + 1 > maxLen + 20 ? to - maxLen - 1 : 0;\n let newBranch = branch.slice(start, to);\n newBranch.push(newEvent);\n return newBranch;\n}\nfunction isAdjacent(a, b) {\n let ranges = [], isAdjacent = false;\n a.iterChangedRanges((f, t) => ranges.push(f, t));\n b.iterChangedRanges((_f, _t, f, t) => {\n for (let i = 0; i < ranges.length;) {\n let from = ranges[i++], to = ranges[i++];\n if (t >= from && f <= to)\n isAdjacent = true;\n }\n });\n return isAdjacent;\n}\nfunction eqSelectionShape(a, b) {\n return a.ranges.length == b.ranges.length &&\n a.ranges.filter((r, i) => r.empty != b.ranges[i].empty).length === 0;\n}\nfunction conc(a, b) {\n return !a.length ? b : !b.length ? a : a.concat(b);\n}\nconst none = [];\nconst MaxSelectionsPerEvent = 200;\nfunction addSelection(branch, selection) {\n if (!branch.length) {\n return [HistEvent.selection([selection])];\n }\n else {\n let lastEvent = branch[branch.length - 1];\n let sels = lastEvent.selectionsAfter.slice(Math.max(0, lastEvent.selectionsAfter.length - MaxSelectionsPerEvent));\n if (sels.length && sels[sels.length - 1].eq(selection))\n return branch;\n sels.push(selection);\n return updateBranch(branch, branch.length - 1, 1e9, lastEvent.setSelAfter(sels));\n }\n}\n// Assumes the top item has one or more selectionAfter values\nfunction popSelection(branch) {\n let last = branch[branch.length - 1];\n let newBranch = branch.slice();\n newBranch[branch.length - 1] = last.setSelAfter(last.selectionsAfter.slice(0, last.selectionsAfter.length - 1));\n return newBranch;\n}\n// Add a mapping to the top event in the given branch. If this maps\n// away all the changes and effects in that item, drop it and\n// propagate the mapping to the next item.\nfunction addMappingToBranch(branch, mapping) {\n if (!branch.length)\n return branch;\n let length = branch.length, selections = none;\n while (length) {\n let event = mapEvent(branch[length - 1], mapping, selections);\n if (event.changes && !event.changes.empty || event.effects.length) { // Event survived mapping\n let result = branch.slice(0, length);\n result[length - 1] = event;\n return result;\n }\n else { // Drop this event, since there's no changes or effects left\n mapping = event.mapped;\n length--;\n selections = event.selectionsAfter;\n }\n }\n return selections.length ? [HistEvent.selection(selections)] : none;\n}\nfunction mapEvent(event, mapping, extraSelections) {\n let selections = conc(event.selectionsAfter.length ? event.selectionsAfter.map(s => s.map(mapping)) : none, extraSelections);\n // Change-less events don't store mappings (they are always the last event in a branch)\n if (!event.changes)\n return HistEvent.selection(selections);\n let mappedChanges = event.changes.map(mapping), before = mapping.mapDesc(event.changes, true);\n let fullMapping = event.mapped ? event.mapped.composeDesc(before) : before;\n return new HistEvent(mappedChanges, StateEffect.mapEffects(event.effects, mapping), fullMapping, event.startSelection.map(before), selections);\n}\nconst joinableUserEvent = /^(input\\.type|delete)($|\\.)/;\nclass HistoryState {\n constructor(done, undone, prevTime = 0, prevUserEvent = undefined) {\n this.done = done;\n this.undone = undone;\n this.prevTime = prevTime;\n this.prevUserEvent = prevUserEvent;\n }\n isolate() {\n return this.prevTime ? new HistoryState(this.done, this.undone) : this;\n }\n addChanges(event, time, userEvent, config, tr) {\n let done = this.done, lastEvent = done[done.length - 1];\n if (lastEvent && lastEvent.changes && !lastEvent.changes.empty && event.changes &&\n (!userEvent || joinableUserEvent.test(userEvent)) &&\n ((!lastEvent.selectionsAfter.length &&\n time - this.prevTime < config.newGroupDelay &&\n config.joinToEvent(tr, isAdjacent(lastEvent.changes, event.changes))) ||\n // For compose (but not compose.start) events, always join with previous event\n userEvent == \"input.type.compose\")) {\n done = updateBranch(done, done.length - 1, config.minDepth, new HistEvent(event.changes.compose(lastEvent.changes), conc(event.effects, lastEvent.effects), lastEvent.mapped, lastEvent.startSelection, none));\n }\n else {\n done = updateBranch(done, done.length, config.minDepth, event);\n }\n return new HistoryState(done, none, time, userEvent);\n }\n addSelection(selection, time, userEvent, newGroupDelay) {\n let last = this.done.length ? this.done[this.done.length - 1].selectionsAfter : none;\n if (last.length > 0 &&\n time - this.prevTime < newGroupDelay &&\n userEvent == this.prevUserEvent && userEvent && /^select($|\\.)/.test(userEvent) &&\n eqSelectionShape(last[last.length - 1], selection))\n return this;\n return new HistoryState(addSelection(this.done, selection), this.undone, time, userEvent);\n }\n addMapping(mapping) {\n return new HistoryState(addMappingToBranch(this.done, mapping), addMappingToBranch(this.undone, mapping), this.prevTime, this.prevUserEvent);\n }\n pop(side, state, onlySelection) {\n let branch = side == 0 /* BranchName.Done */ ? this.done : this.undone;\n if (branch.length == 0)\n return null;\n let event = branch[branch.length - 1], selection = event.selectionsAfter[0] || state.selection;\n if (onlySelection && event.selectionsAfter.length) {\n return state.update({\n selection: event.selectionsAfter[event.selectionsAfter.length - 1],\n annotations: fromHistory.of({ side, rest: popSelection(branch), selection }),\n userEvent: side == 0 /* BranchName.Done */ ? \"select.undo\" : \"select.redo\",\n scrollIntoView: true\n });\n }\n else if (!event.changes) {\n return null;\n }\n else {\n let rest = branch.length == 1 ? none : branch.slice(0, branch.length - 1);\n if (event.mapped)\n rest = addMappingToBranch(rest, event.mapped);\n return state.update({\n changes: event.changes,\n selection: event.startSelection,\n effects: event.effects,\n annotations: fromHistory.of({ side, rest, selection }),\n filter: false,\n userEvent: side == 0 /* BranchName.Done */ ? \"undo\" : \"redo\",\n scrollIntoView: true\n });\n }\n }\n}\nHistoryState.empty = /*@__PURE__*/new HistoryState(none, none);\n/**\nDefault key bindings for the undo history.\n\n- Mod-z: [`undo`](https://codemirror.net/6/docs/ref/#commands.undo).\n- Mod-y (Mod-Shift-z on macOS) + Ctrl-Shift-z on Linux: [`redo`](https://codemirror.net/6/docs/ref/#commands.redo).\n- Mod-u: [`undoSelection`](https://codemirror.net/6/docs/ref/#commands.undoSelection).\n- Alt-u (Mod-Shift-u on macOS): [`redoSelection`](https://codemirror.net/6/docs/ref/#commands.redoSelection).\n*/\nconst historyKeymap = [\n { key: \"Mod-z\", run: undo, preventDefault: true },\n { key: \"Mod-y\", mac: \"Mod-Shift-z\", run: redo, preventDefault: true },\n { linux: \"Ctrl-Shift-z\", run: redo, preventDefault: true },\n { key: \"Mod-u\", run: undoSelection, preventDefault: true },\n { key: \"Alt-u\", mac: \"Mod-Shift-u\", run: redoSelection, preventDefault: true }\n];\n\nfunction updateSel(sel, by) {\n return EditorSelection.create(sel.ranges.map(by), sel.mainIndex);\n}\nfunction setSel(state, selection) {\n return state.update({ selection, scrollIntoView: true, userEvent: \"select\" });\n}\nfunction moveSel({ state, dispatch }, how) {\n let selection = updateSel(state.selection, how);\n if (selection.eq(state.selection, true))\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\nfunction rangeEnd(range, forward) {\n return EditorSelection.cursor(forward ? range.to : range.from);\n}\nfunction cursorByChar(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByChar(range, forward) : rangeEnd(range, forward));\n}\nfunction ltrAtCursor(view) {\n return view.textDirectionAt(view.state.selection.main.head) == Direction.LTR;\n}\n/**\nMove the selection one character to the left (which is backward in\nleft-to-right text, forward in right-to-left text).\n*/\nconst cursorCharLeft = view => cursorByChar(view, !ltrAtCursor(view));\n/**\nMove the selection one character to the right.\n*/\nconst cursorCharRight = view => cursorByChar(view, ltrAtCursor(view));\n/**\nMove the selection one character forward.\n*/\nconst cursorCharForward = view => cursorByChar(view, true);\n/**\nMove the selection one character backward.\n*/\nconst cursorCharBackward = view => cursorByChar(view, false);\nfunction cursorByGroup(view, forward) {\n return moveSel(view, range => range.empty ? view.moveByGroup(range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection to the left across one group of word or\nnon-word (but also non-space) characters.\n*/\nconst cursorGroupLeft = view => cursorByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection one group to the right.\n*/\nconst cursorGroupRight = view => cursorByGroup(view, ltrAtCursor(view));\n/**\nMove the selection one group forward.\n*/\nconst cursorGroupForward = view => cursorByGroup(view, true);\n/**\nMove the selection one group backward.\n*/\nconst cursorGroupBackward = view => cursorByGroup(view, false);\nconst segmenter = typeof Intl != \"undefined\" && Intl.Segmenter ?\n /*@__PURE__*/new (Intl.Segmenter)(undefined, { granularity: \"word\" }) : null;\nfunction moveBySubword(view, range, forward) {\n let categorize = view.state.charCategorizer(range.from);\n let cat = CharCategory.Space, pos = range.from, steps = 0;\n let done = false, sawUpper = false, sawLower = false;\n let step = (next) => {\n if (done)\n return false;\n pos += forward ? next.length : -next.length;\n let nextCat = categorize(next), ahead;\n if (nextCat == CharCategory.Word && next.charCodeAt(0) < 128 && /[\\W_]/.test(next))\n nextCat = -1; // Treat word punctuation specially\n if (cat == CharCategory.Space)\n cat = nextCat;\n if (cat != nextCat)\n return false;\n if (cat == CharCategory.Word) {\n if (next.toLowerCase() == next) {\n if (!forward && sawUpper)\n return false;\n sawLower = true;\n }\n else if (sawLower) {\n if (forward)\n return false;\n done = true;\n }\n else {\n if (sawUpper && forward && categorize(ahead = view.state.sliceDoc(pos, pos + 1)) == CharCategory.Word &&\n ahead.toLowerCase() == ahead)\n return false;\n sawUpper = true;\n }\n }\n steps++;\n return true;\n };\n let end = view.moveByChar(range, forward, start => {\n step(start);\n return step;\n });\n if (segmenter && cat == CharCategory.Word && end.from == range.from + steps * (forward ? 1 : -1)) {\n let from = Math.min(range.head, end.head), to = Math.max(range.head, end.head);\n let skipped = view.state.sliceDoc(from, to);\n if (skipped.length > 1 && /[\\u4E00-\\uffff]/.test(skipped)) {\n let segments = Array.from(segmenter.segment(skipped));\n if (segments.length > 1) {\n if (forward)\n return EditorSelection.cursor(range.head + segments[1].index, -1);\n return EditorSelection.cursor(end.head + segments[segments.length - 1].index, 1);\n }\n }\n }\n return end;\n}\nfunction cursorBySubword(view, forward) {\n return moveSel(view, range => range.empty ? moveBySubword(view, range, forward) : rangeEnd(range, forward));\n}\n/**\nMove the selection one group or camel-case subword forward.\n*/\nconst cursorSubwordForward = view => cursorBySubword(view, true);\n/**\nMove the selection one group or camel-case subword backward.\n*/\nconst cursorSubwordBackward = view => cursorBySubword(view, false);\nfunction interestingNode(state, node, bracketProp) {\n if (node.type.prop(bracketProp))\n return true;\n let len = node.to - node.from;\n return len && (len > 2 || /[^\\s,.;:]/.test(state.sliceDoc(node.from, node.to))) || node.firstChild;\n}\nfunction moveBySyntax(state, start, forward) {\n let pos = syntaxTree(state).resolveInner(start.head);\n let bracketProp = forward ? NodeProp.closedBy : NodeProp.openedBy;\n // Scan forward through child nodes to see if there's an interesting\n // node ahead.\n for (let at = start.head;;) {\n let next = forward ? pos.childAfter(at) : pos.childBefore(at);\n if (!next)\n break;\n if (interestingNode(state, next, bracketProp))\n pos = next;\n else\n at = forward ? next.to : next.from;\n }\n let bracket = pos.type.prop(bracketProp), match, newPos;\n if (bracket && (match = forward ? matchBrackets(state, pos.from, 1) : matchBrackets(state, pos.to, -1)) && match.matched)\n newPos = forward ? match.end.to : match.end.from;\n else\n newPos = forward ? pos.to : pos.from;\n return EditorSelection.cursor(newPos, forward ? -1 : 1);\n}\n/**\nMove the cursor over the next syntactic element to the left.\n*/\nconst cursorSyntaxLeft = view => moveSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the cursor over the next syntactic element to the right.\n*/\nconst cursorSyntaxRight = view => moveSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction cursorByLine(view, forward) {\n return moveSel(view, range => {\n if (!range.empty)\n return rangeEnd(range, forward);\n let moved = view.moveVertically(range, forward);\n return moved.head != range.head ? moved : view.moveToLineBoundary(range, forward);\n });\n}\n/**\nMove the selection one line up.\n*/\nconst cursorLineUp = view => cursorByLine(view, false);\n/**\nMove the selection one line down.\n*/\nconst cursorLineDown = view => cursorByLine(view, true);\nfunction pageInfo(view) {\n let selfScroll = view.scrollDOM.clientHeight < view.scrollDOM.scrollHeight - 2;\n let marginTop = 0, marginBottom = 0, height;\n if (selfScroll) {\n for (let source of view.state.facet(EditorView.scrollMargins)) {\n let margins = source(view);\n if (margins === null || margins === void 0 ? void 0 : margins.top)\n marginTop = Math.max(margins === null || margins === void 0 ? void 0 : margins.top, marginTop);\n if (margins === null || margins === void 0 ? void 0 : margins.bottom)\n marginBottom = Math.max(margins === null || margins === void 0 ? void 0 : margins.bottom, marginBottom);\n }\n height = view.scrollDOM.clientHeight - marginTop - marginBottom;\n }\n else {\n height = (view.dom.ownerDocument.defaultView || window).innerHeight;\n }\n return { marginTop, marginBottom, selfScroll,\n height: Math.max(view.defaultLineHeight, height - 5) };\n}\nfunction cursorByPage(view, forward) {\n let page = pageInfo(view);\n let { state } = view, selection = updateSel(state.selection, range => {\n return range.empty ? view.moveVertically(range, forward, page.height)\n : rangeEnd(range, forward);\n });\n if (selection.eq(state.selection))\n return false;\n let effect;\n if (page.selfScroll) {\n let startPos = view.coordsAtPos(state.selection.main.head);\n let scrollRect = view.scrollDOM.getBoundingClientRect();\n let scrollTop = scrollRect.top + page.marginTop, scrollBottom = scrollRect.bottom - page.marginBottom;\n if (startPos && startPos.top > scrollTop && startPos.bottom < scrollBottom)\n effect = EditorView.scrollIntoView(selection.main.head, { y: \"start\", yMargin: startPos.top - scrollTop });\n }\n view.dispatch(setSel(state, selection), { effects: effect });\n return true;\n}\n/**\nMove the selection one page up.\n*/\nconst cursorPageUp = view => cursorByPage(view, false);\n/**\nMove the selection one page down.\n*/\nconst cursorPageDown = view => cursorByPage(view, true);\nfunction moveByLineBoundary(view, start, forward) {\n let line = view.lineBlockAt(start.head), moved = view.moveToLineBoundary(start, forward);\n if (moved.head == start.head && moved.head != (forward ? line.to : line.from))\n moved = view.moveToLineBoundary(start, forward, false);\n if (!forward && moved.head == line.from && line.length) {\n let space = /^\\s*/.exec(view.state.sliceDoc(line.from, Math.min(line.from + 100, line.to)))[0].length;\n if (space && start.head != line.from + space)\n moved = EditorSelection.cursor(line.from + space);\n }\n return moved;\n}\n/**\nMove the selection to the next line wrap point, or to the end of\nthe line if there isn't one left on this line.\n*/\nconst cursorLineBoundaryForward = view => moveSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection to previous line wrap point, or failing that to\nthe start of the line. If the line is indented, and the cursor\nisn't already at the end of the indentation, this will move to the\nend of the indentation instead of the start of the line.\n*/\nconst cursorLineBoundaryBackward = view => moveSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection one line wrap point to the left.\n*/\nconst cursorLineBoundaryLeft = view => moveSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection one line wrap point to the right.\n*/\nconst cursorLineBoundaryRight = view => moveSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection to the start of the line.\n*/\nconst cursorLineStart = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from, 1));\n/**\nMove the selection to the end of the line.\n*/\nconst cursorLineEnd = view => moveSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to, -1));\nfunction toMatchingBracket(state, dispatch, extend) {\n let found = false, selection = updateSel(state.selection, range => {\n let matching = matchBrackets(state, range.head, -1)\n || matchBrackets(state, range.head, 1)\n || (range.head > 0 && matchBrackets(state, range.head - 1, 1))\n || (range.head < state.doc.length && matchBrackets(state, range.head + 1, -1));\n if (!matching || !matching.end)\n return range;\n found = true;\n let head = matching.start.from == range.head ? matching.end.to : matching.end.from;\n return extend ? EditorSelection.range(range.anchor, head) : EditorSelection.cursor(head);\n });\n if (!found)\n return false;\n dispatch(setSel(state, selection));\n return true;\n}\n/**\nMove the selection to the bracket matching the one it is currently\non, if any.\n*/\nconst cursorMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, false);\n/**\nExtend the selection to the bracket matching the one the selection\nhead is currently on, if any.\n*/\nconst selectMatchingBracket = ({ state, dispatch }) => toMatchingBracket(state, dispatch, true);\nfunction extendSel(view, how) {\n let selection = updateSel(view.state.selection, range => {\n let head = how(range);\n return EditorSelection.range(range.anchor, head.head, head.goalColumn, head.bidiLevel || undefined);\n });\n if (selection.eq(view.state.selection))\n return false;\n view.dispatch(setSel(view.state, selection));\n return true;\n}\nfunction selectByChar(view, forward) {\n return extendSel(view, range => view.moveByChar(range, forward));\n}\n/**\nMove the selection head one character to the left, while leaving\nthe anchor in place.\n*/\nconst selectCharLeft = view => selectByChar(view, !ltrAtCursor(view));\n/**\nMove the selection head one character to the right.\n*/\nconst selectCharRight = view => selectByChar(view, ltrAtCursor(view));\n/**\nMove the selection head one character forward.\n*/\nconst selectCharForward = view => selectByChar(view, true);\n/**\nMove the selection head one character backward.\n*/\nconst selectCharBackward = view => selectByChar(view, false);\nfunction selectByGroup(view, forward) {\n return extendSel(view, range => view.moveByGroup(range, forward));\n}\n/**\nMove the selection head one [group](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) to\nthe left.\n*/\nconst selectGroupLeft = view => selectByGroup(view, !ltrAtCursor(view));\n/**\nMove the selection head one group to the right.\n*/\nconst selectGroupRight = view => selectByGroup(view, ltrAtCursor(view));\n/**\nMove the selection head one group forward.\n*/\nconst selectGroupForward = view => selectByGroup(view, true);\n/**\nMove the selection head one group backward.\n*/\nconst selectGroupBackward = view => selectByGroup(view, false);\nfunction selectBySubword(view, forward) {\n return extendSel(view, range => moveBySubword(view, range, forward));\n}\n/**\nMove the selection head one group or camel-case subword forward.\n*/\nconst selectSubwordForward = view => selectBySubword(view, true);\n/**\nMove the selection head one group or subword backward.\n*/\nconst selectSubwordBackward = view => selectBySubword(view, false);\n/**\nMove the selection head over the next syntactic element to the left.\n*/\nconst selectSyntaxLeft = view => extendSel(view, range => moveBySyntax(view.state, range, !ltrAtCursor(view)));\n/**\nMove the selection head over the next syntactic element to the right.\n*/\nconst selectSyntaxRight = view => extendSel(view, range => moveBySyntax(view.state, range, ltrAtCursor(view)));\nfunction selectByLine(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward));\n}\n/**\nMove the selection head one line up.\n*/\nconst selectLineUp = view => selectByLine(view, false);\n/**\nMove the selection head one line down.\n*/\nconst selectLineDown = view => selectByLine(view, true);\nfunction selectByPage(view, forward) {\n return extendSel(view, range => view.moveVertically(range, forward, pageInfo(view).height));\n}\n/**\nMove the selection head one page up.\n*/\nconst selectPageUp = view => selectByPage(view, false);\n/**\nMove the selection head one page down.\n*/\nconst selectPageDown = view => selectByPage(view, true);\n/**\nMove the selection head to the next line boundary.\n*/\nconst selectLineBoundaryForward = view => extendSel(view, range => moveByLineBoundary(view, range, true));\n/**\nMove the selection head to the previous line boundary.\n*/\nconst selectLineBoundaryBackward = view => extendSel(view, range => moveByLineBoundary(view, range, false));\n/**\nMove the selection head one line boundary to the left.\n*/\nconst selectLineBoundaryLeft = view => extendSel(view, range => moveByLineBoundary(view, range, !ltrAtCursor(view)));\n/**\nMove the selection head one line boundary to the right.\n*/\nconst selectLineBoundaryRight = view => extendSel(view, range => moveByLineBoundary(view, range, ltrAtCursor(view)));\n/**\nMove the selection head to the start of the line.\n*/\nconst selectLineStart = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).from));\n/**\nMove the selection head to the end of the line.\n*/\nconst selectLineEnd = view => extendSel(view, range => EditorSelection.cursor(view.lineBlockAt(range.head).to));\n/**\nMove the selection to the start of the document.\n*/\nconst cursorDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: 0 }));\n return true;\n};\n/**\nMove the selection to the end of the document.\n*/\nconst cursorDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.doc.length }));\n return true;\n};\n/**\nMove the selection head to the start of the document.\n*/\nconst selectDocStart = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: 0 }));\n return true;\n};\n/**\nMove the selection head to the end of the document.\n*/\nconst selectDocEnd = ({ state, dispatch }) => {\n dispatch(setSel(state, { anchor: state.selection.main.anchor, head: state.doc.length }));\n return true;\n};\n/**\nSelect the entire document.\n*/\nconst selectAll = ({ state, dispatch }) => {\n dispatch(state.update({ selection: { anchor: 0, head: state.doc.length }, userEvent: \"select\" }));\n return true;\n};\n/**\nExpand the selection to cover entire lines.\n*/\nconst selectLine = ({ state, dispatch }) => {\n let ranges = selectedLineBlocks(state).map(({ from, to }) => EditorSelection.range(from, Math.min(to + 1, state.doc.length)));\n dispatch(state.update({ selection: EditorSelection.create(ranges), userEvent: \"select\" }));\n return true;\n};\n/**\nSelect the next syntactic construct that is larger than the\nselection. Note that this will only work insofar as the language\n[provider](https://codemirror.net/6/docs/ref/#language.language) you use builds up a full\nsyntax tree.\n*/\nconst selectParentSyntax = ({ state, dispatch }) => {\n let selection = updateSel(state.selection, range => {\n var _a;\n let stack = syntaxTree(state).resolveStack(range.from, 1);\n for (let cur = stack; cur; cur = cur.next) {\n let { node } = cur;\n if (((node.from < range.from && node.to >= range.to) ||\n (node.to > range.to && node.from <= range.from)) &&\n ((_a = node.parent) === null || _a === void 0 ? void 0 : _a.parent))\n return EditorSelection.range(node.to, node.from);\n }\n return range;\n });\n dispatch(setSel(state, selection));\n return true;\n};\n/**\nSimplify the current selection. When multiple ranges are selected,\nreduce it to its main range. Otherwise, if the selection is\nnon-empty, convert it to a cursor selection.\n*/\nconst simplifySelection = ({ state, dispatch }) => {\n let cur = state.selection, selection = null;\n if (cur.ranges.length > 1)\n selection = EditorSelection.create([cur.main]);\n else if (!cur.main.empty)\n selection = EditorSelection.create([EditorSelection.cursor(cur.main.head)]);\n if (!selection)\n return false;\n dispatch(setSel(state, selection));\n return true;\n};\nfunction deleteBy(target, by) {\n if (target.state.readOnly)\n return false;\n let event = \"delete.selection\", { state } = target;\n let changes = state.changeByRange(range => {\n let { from, to } = range;\n if (from == to) {\n let towards = by(range);\n if (towards < from) {\n event = \"delete.backward\";\n towards = skipAtomic(target, towards, false);\n }\n else if (towards > from) {\n event = \"delete.forward\";\n towards = skipAtomic(target, towards, true);\n }\n from = Math.min(from, towards);\n to = Math.max(to, towards);\n }\n else {\n from = skipAtomic(target, from, false);\n to = skipAtomic(target, to, true);\n }\n return from == to ? { range } : { changes: { from, to }, range: EditorSelection.cursor(from, from < range.head ? -1 : 1) };\n });\n if (changes.changes.empty)\n return false;\n target.dispatch(state.update(changes, {\n scrollIntoView: true,\n userEvent: event,\n effects: event == \"delete.selection\" ? EditorView.announce.of(state.phrase(\"Selection deleted\")) : undefined\n }));\n return true;\n}\nfunction skipAtomic(target, pos, forward) {\n if (target instanceof EditorView)\n for (let ranges of target.state.facet(EditorView.atomicRanges).map(f => f(target)))\n ranges.between(pos, pos, (from, to) => {\n if (from < pos && to > pos)\n pos = forward ? to : from;\n });\n return pos;\n}\nconst deleteByChar = (target, forward, byIndentUnit) => deleteBy(target, range => {\n let pos = range.from, { state } = target, line = state.doc.lineAt(pos), before, targetPos;\n if (byIndentUnit && !forward && pos > line.from && pos < line.from + 200 &&\n !/[^ \\t]/.test(before = line.text.slice(0, pos - line.from))) {\n if (before[before.length - 1] == \"\\t\")\n return pos - 1;\n let col = countColumn(before, state.tabSize), drop = col % getIndentUnit(state) || getIndentUnit(state);\n for (let i = 0; i < drop && before[before.length - 1 - i] == \" \"; i++)\n pos--;\n targetPos = pos;\n }\n else {\n targetPos = findClusterBreak(line.text, pos - line.from, forward, forward) + line.from;\n if (targetPos == pos && line.number != (forward ? state.doc.lines : 1))\n targetPos += forward ? 1 : -1;\n else if (!forward && /[\\ufe00-\\ufe0f]/.test(line.text.slice(targetPos - line.from, pos - line.from)))\n targetPos = findClusterBreak(line.text, targetPos - line.from, false, false) + line.from;\n }\n return targetPos;\n});\n/**\nDelete the selection, or, for cursor selections, the character or\nindentation unit before the cursor.\n*/\nconst deleteCharBackward = view => deleteByChar(view, false, true);\n/**\nDelete the selection or the character before the cursor. Does not\nimplement any extended behavior like deleting whole indentation\nunits in one go.\n*/\nconst deleteCharBackwardStrict = view => deleteByChar(view, false, false);\n/**\nDelete the selection or the character after the cursor.\n*/\nconst deleteCharForward = view => deleteByChar(view, true, false);\nconst deleteByGroup = (target, forward) => deleteBy(target, range => {\n let pos = range.head, { state } = target, line = state.doc.lineAt(pos);\n let categorize = state.charCategorizer(pos);\n for (let cat = null;;) {\n if (pos == (forward ? line.to : line.from)) {\n if (pos == range.head && line.number != (forward ? state.doc.lines : 1))\n pos += forward ? 1 : -1;\n break;\n }\n let next = findClusterBreak(line.text, pos - line.from, forward) + line.from;\n let nextChar = line.text.slice(Math.min(pos, next) - line.from, Math.max(pos, next) - line.from);\n let nextCat = categorize(nextChar);\n if (cat != null && nextCat != cat)\n break;\n if (nextChar != \" \" || pos != range.head)\n cat = nextCat;\n pos = next;\n }\n return pos;\n});\n/**\nDelete the selection or backward until the end of the next\n[group](https://codemirror.net/6/docs/ref/#view.EditorView.moveByGroup), only skipping groups of\nwhitespace when they consist of a single space.\n*/\nconst deleteGroupBackward = target => deleteByGroup(target, false);\n/**\nDelete the selection or forward until the end of the next group.\n*/\nconst deleteGroupForward = target => deleteByGroup(target, true);\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line. If the cursor is directly at the end of the\nline, delete the line break after it.\n*/\nconst deleteToLineEnd = view => deleteBy(view, range => {\n let lineEnd = view.lineBlockAt(range.head).to;\n return range.head < lineEnd ? lineEnd : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line. If the cursor is directly at the start of the\nline, delete the line break before it.\n*/\nconst deleteToLineStart = view => deleteBy(view, range => {\n let lineStart = view.lineBlockAt(range.head).from;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe start of the line or the next line wrap before the cursor.\n*/\nconst deleteLineBoundaryBackward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, false).head;\n return range.head > lineStart ? lineStart : Math.max(0, range.head - 1);\n});\n/**\nDelete the selection, or, if it is a cursor selection, delete to\nthe end of the line or the next line wrap after the cursor.\n*/\nconst deleteLineBoundaryForward = view => deleteBy(view, range => {\n let lineStart = view.moveToLineBoundary(range, true).head;\n return range.head < lineStart ? lineStart : Math.min(view.state.doc.length, range.head + 1);\n});\n/**\nDelete all whitespace directly before a line end from the\ndocument.\n*/\nconst deleteTrailingWhitespace = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let pos = 0, prev = \"\", iter = state.doc.iter();;) {\n iter.next();\n if (iter.lineBreak || iter.done) {\n let trailing = prev.search(/\\s+$/);\n if (trailing > -1)\n changes.push({ from: pos - (prev.length - trailing), to: pos });\n if (iter.done)\n break;\n prev = \"\";\n }\n else {\n prev = iter.value;\n }\n pos += iter.value.length;\n }\n if (!changes.length)\n return false;\n dispatch(state.update({ changes, userEvent: \"delete\" }));\n return true;\n};\n/**\nReplace each selection range with a line break, leaving the cursor\non the line before the break.\n*/\nconst splitLine = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n return { changes: { from: range.from, to: range.to, insert: Text.of([\"\", \"\"]) },\n range: EditorSelection.cursor(range.from) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nFlip the characters before and after the cursor(s).\n*/\nconst transposeChars = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n if (!range.empty || range.from == 0 || range.from == state.doc.length)\n return { range };\n let pos = range.from, line = state.doc.lineAt(pos);\n let from = pos == line.from ? pos - 1 : findClusterBreak(line.text, pos - line.from, false) + line.from;\n let to = pos == line.to ? pos + 1 : findClusterBreak(line.text, pos - line.from, true) + line.from;\n return { changes: { from, to, insert: state.doc.slice(pos, to).append(state.doc.slice(from, pos)) },\n range: EditorSelection.cursor(to) };\n });\n if (changes.changes.empty)\n return false;\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"move.character\" }));\n return true;\n};\nfunction selectedLineBlocks(state) {\n let blocks = [], upto = -1;\n for (let range of state.selection.ranges) {\n let startLine = state.doc.lineAt(range.from), endLine = state.doc.lineAt(range.to);\n if (!range.empty && range.to == endLine.from)\n endLine = state.doc.lineAt(range.to - 1);\n if (upto >= startLine.number) {\n let prev = blocks[blocks.length - 1];\n prev.to = endLine.to;\n prev.ranges.push(range);\n }\n else {\n blocks.push({ from: startLine.from, to: endLine.to, ranges: [range] });\n }\n upto = endLine.number + 1;\n }\n return blocks;\n}\nfunction moveLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [], ranges = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward ? block.to == state.doc.length : block.from == 0)\n continue;\n let nextLine = state.doc.lineAt(forward ? block.to + 1 : block.from - 1);\n let size = nextLine.length + 1;\n if (forward) {\n changes.push({ from: block.to, to: nextLine.to }, { from: block.from, insert: nextLine.text + state.lineBreak });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(Math.min(state.doc.length, r.anchor + size), Math.min(state.doc.length, r.head + size)));\n }\n else {\n changes.push({ from: nextLine.from, to: block.from }, { from: block.to, insert: state.lineBreak + nextLine.text });\n for (let r of block.ranges)\n ranges.push(EditorSelection.range(r.anchor - size, r.head - size));\n }\n }\n if (!changes.length)\n return false;\n dispatch(state.update({\n changes,\n scrollIntoView: true,\n selection: EditorSelection.create(ranges, state.selection.mainIndex),\n userEvent: \"move.line\"\n }));\n return true;\n}\n/**\nMove the selected lines up one line.\n*/\nconst moveLineUp = ({ state, dispatch }) => moveLine(state, dispatch, false);\n/**\nMove the selected lines down one line.\n*/\nconst moveLineDown = ({ state, dispatch }) => moveLine(state, dispatch, true);\nfunction copyLine(state, dispatch, forward) {\n if (state.readOnly)\n return false;\n let changes = [];\n for (let block of selectedLineBlocks(state)) {\n if (forward)\n changes.push({ from: block.from, insert: state.doc.slice(block.from, block.to) + state.lineBreak });\n else\n changes.push({ from: block.to, insert: state.lineBreak + state.doc.slice(block.from, block.to) });\n }\n dispatch(state.update({ changes, scrollIntoView: true, userEvent: \"input.copyline\" }));\n return true;\n}\n/**\nCreate a copy of the selected lines. Keep the selection in the top copy.\n*/\nconst copyLineUp = ({ state, dispatch }) => copyLine(state, dispatch, false);\n/**\nCreate a copy of the selected lines. Keep the selection in the bottom copy.\n*/\nconst copyLineDown = ({ state, dispatch }) => copyLine(state, dispatch, true);\n/**\nDelete selected lines.\n*/\nconst deleteLine = view => {\n if (view.state.readOnly)\n return false;\n let { state } = view, changes = state.changes(selectedLineBlocks(state).map(({ from, to }) => {\n if (from > 0)\n from--;\n else if (to < state.doc.length)\n to++;\n return { from, to };\n }));\n let selection = updateSel(state.selection, range => {\n let dist = undefined;\n if (view.lineWrapping) {\n let block = view.lineBlockAt(range.head), pos = view.coordsAtPos(range.head, range.assoc || 1);\n if (pos)\n dist = (block.bottom + view.documentTop) - pos.bottom + view.defaultLineHeight / 2;\n }\n return view.moveVertically(range, true, dist);\n }).map(changes);\n view.dispatch({ changes, selection, scrollIntoView: true, userEvent: \"delete.line\" });\n return true;\n};\n/**\nReplace the selection with a newline.\n*/\nconst insertNewline = ({ state, dispatch }) => {\n dispatch(state.update(state.replaceSelection(state.lineBreak), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nReplace the selection with a newline and the same amount of\nindentation as the line above.\n*/\nconst insertNewlineKeepIndent = ({ state, dispatch }) => {\n dispatch(state.update(state.changeByRange(range => {\n let indent = /^\\s*/.exec(state.doc.lineAt(range.from).text)[0];\n return {\n changes: { from: range.from, to: range.to, insert: state.lineBreak + indent },\n range: EditorSelection.cursor(range.from + indent.length + 1)\n };\n }), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\nfunction isBetweenBrackets(state, pos) {\n if (/\\(\\)|\\[\\]|\\{\\}/.test(state.sliceDoc(pos - 1, pos + 1)))\n return { from: pos, to: pos };\n let context = syntaxTree(state).resolveInner(pos);\n let before = context.childBefore(pos), after = context.childAfter(pos), closedBy;\n if (before && after && before.to <= pos && after.from >= pos &&\n (closedBy = before.type.prop(NodeProp.closedBy)) && closedBy.indexOf(after.name) > -1 &&\n state.doc.lineAt(before.to).from == state.doc.lineAt(after.from).from &&\n !/\\S/.test(state.sliceDoc(before.to, after.from)))\n return { from: before.to, to: after.from };\n return null;\n}\n/**\nReplace the selection with a newline and indent the newly created\nline(s). If the current line consists only of whitespace, this\nwill also delete that whitespace. When the cursor is between\nmatching brackets, an additional newline will be inserted after\nthe cursor.\n*/\nconst insertNewlineAndIndent = /*@__PURE__*/newlineAndIndent(false);\n/**\nCreate a blank, indented line below the current line.\n*/\nconst insertBlankLine = /*@__PURE__*/newlineAndIndent(true);\nfunction newlineAndIndent(atEof) {\n return ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let changes = state.changeByRange(range => {\n let { from, to } = range, line = state.doc.lineAt(from);\n let explode = !atEof && from == to && isBetweenBrackets(state, from);\n if (atEof)\n from = to = (to <= line.to ? line : state.doc.lineAt(to)).to;\n let cx = new IndentContext(state, { simulateBreak: from, simulateDoubleBreak: !!explode });\n let indent = getIndentation(cx, from);\n if (indent == null)\n indent = countColumn(/^\\s*/.exec(state.doc.lineAt(from).text)[0], state.tabSize);\n while (to < line.to && /\\s/.test(line.text[to - line.from]))\n to++;\n if (explode)\n ({ from, to } = explode);\n else if (from > line.from && from < line.from + 100 && !/\\S/.test(line.text.slice(0, from)))\n from = line.from;\n let insert = [\"\", indentString(state, indent)];\n if (explode)\n insert.push(indentString(state, cx.lineIndent(line.from, -1)));\n return { changes: { from, to, insert: Text.of(insert) },\n range: EditorSelection.cursor(from + 1 + insert[1].length) };\n });\n dispatch(state.update(changes, { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n };\n}\nfunction changeBySelectedLine(state, f) {\n let atLine = -1;\n return state.changeByRange(range => {\n let changes = [];\n for (let pos = range.from; pos <= range.to;) {\n let line = state.doc.lineAt(pos);\n if (line.number > atLine && (range.empty || range.to > line.from)) {\n f(line, changes, range);\n atLine = line.number;\n }\n pos = line.to + 1;\n }\n let changeSet = state.changes(changes);\n return { changes,\n range: EditorSelection.range(changeSet.mapPos(range.anchor, 1), changeSet.mapPos(range.head, 1)) };\n });\n}\n/**\nAuto-indent the selected lines. This uses the [indentation service\nfacet](https://codemirror.net/6/docs/ref/#language.indentService) as source for auto-indent\ninformation.\n*/\nconst indentSelection = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n let updated = Object.create(null);\n let context = new IndentContext(state, { overrideIndentation: start => {\n let found = updated[start];\n return found == null ? -1 : found;\n } });\n let changes = changeBySelectedLine(state, (line, changes, range) => {\n let indent = getIndentation(context, line.from);\n if (indent == null)\n return;\n if (!/\\S/.test(line.text))\n indent = 0;\n let cur = /^\\s*/.exec(line.text)[0];\n let norm = indentString(state, indent);\n if (cur != norm || range.from < line.from + cur.length) {\n updated[line.from] = indent;\n changes.push({ from: line.from, to: line.from + cur.length, insert: norm });\n }\n });\n if (!changes.changes.empty)\n dispatch(state.update(changes, { userEvent: \"indent\" }));\n return true;\n};\n/**\nAdd a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation to all selected\nlines.\n*/\nconst indentMore = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n changes.push({ from: line.from, insert: state.facet(indentUnit) });\n }), { userEvent: \"input.indent\" }));\n return true;\n};\n/**\nRemove a [unit](https://codemirror.net/6/docs/ref/#language.indentUnit) of indentation from all\nselected lines.\n*/\nconst indentLess = ({ state, dispatch }) => {\n if (state.readOnly)\n return false;\n dispatch(state.update(changeBySelectedLine(state, (line, changes) => {\n let space = /^\\s*/.exec(line.text)[0];\n if (!space)\n return;\n let col = countColumn(space, state.tabSize), keep = 0;\n let insert = indentString(state, Math.max(0, col - getIndentUnit(state)));\n while (keep < space.length && keep < insert.length && space.charCodeAt(keep) == insert.charCodeAt(keep))\n keep++;\n changes.push({ from: line.from + keep, to: line.from + space.length, insert: insert.slice(keep) });\n }), { userEvent: \"delete.dedent\" }));\n return true;\n};\n/**\nInsert a tab character at the cursor or, if something is selected,\nuse [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) to indent the entire\nselection.\n*/\nconst insertTab = ({ state, dispatch }) => {\n if (state.selection.ranges.some(r => !r.empty))\n return indentMore({ state, dispatch });\n dispatch(state.update(state.replaceSelection(\"\\t\"), { scrollIntoView: true, userEvent: \"input\" }));\n return true;\n};\n/**\nArray of key bindings containing the Emacs-style bindings that are\navailable on macOS by default.\n\n - Ctrl-b: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - Ctrl-f: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-p: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - Ctrl-n: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Ctrl-a: [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Ctrl-e: [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - Ctrl-d: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-h: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Ctrl-k: [`deleteToLineEnd`](https://codemirror.net/6/docs/ref/#commands.deleteToLineEnd)\n - Ctrl-Alt-h: [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-o: [`splitLine`](https://codemirror.net/6/docs/ref/#commands.splitLine)\n - Ctrl-t: [`transposeChars`](https://codemirror.net/6/docs/ref/#commands.transposeChars)\n - Ctrl-v: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown)\n - Alt-v: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp)\n*/\nconst emacsStyleKeymap = [\n { key: \"Ctrl-b\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Ctrl-f\", run: cursorCharRight, shift: selectCharRight },\n { key: \"Ctrl-p\", run: cursorLineUp, shift: selectLineUp },\n { key: \"Ctrl-n\", run: cursorLineDown, shift: selectLineDown },\n { key: \"Ctrl-a\", run: cursorLineStart, shift: selectLineStart },\n { key: \"Ctrl-e\", run: cursorLineEnd, shift: selectLineEnd },\n { key: \"Ctrl-d\", run: deleteCharForward },\n { key: \"Ctrl-h\", run: deleteCharBackward },\n { key: \"Ctrl-k\", run: deleteToLineEnd },\n { key: \"Ctrl-Alt-h\", run: deleteGroupBackward },\n { key: \"Ctrl-o\", run: splitLine },\n { key: \"Ctrl-t\", run: transposeChars },\n { key: \"Ctrl-v\", run: cursorPageDown },\n];\n/**\nAn array of key bindings closely sticking to platform-standard or\nwidely used bindings. (This includes the bindings from\n[`emacsStyleKeymap`](https://codemirror.net/6/docs/ref/#commands.emacsStyleKeymap), with their `key`\nproperty changed to `mac`.)\n\n - ArrowLeft: [`cursorCharLeft`](https://codemirror.net/6/docs/ref/#commands.cursorCharLeft) ([`selectCharLeft`](https://codemirror.net/6/docs/ref/#commands.selectCharLeft) with Shift)\n - ArrowRight: [`cursorCharRight`](https://codemirror.net/6/docs/ref/#commands.cursorCharRight) ([`selectCharRight`](https://codemirror.net/6/docs/ref/#commands.selectCharRight) with Shift)\n - Ctrl-ArrowLeft (Alt-ArrowLeft on macOS): [`cursorGroupLeft`](https://codemirror.net/6/docs/ref/#commands.cursorGroupLeft) ([`selectGroupLeft`](https://codemirror.net/6/docs/ref/#commands.selectGroupLeft) with Shift)\n - Ctrl-ArrowRight (Alt-ArrowRight on macOS): [`cursorGroupRight`](https://codemirror.net/6/docs/ref/#commands.cursorGroupRight) ([`selectGroupRight`](https://codemirror.net/6/docs/ref/#commands.selectGroupRight) with Shift)\n - Cmd-ArrowLeft (on macOS): [`cursorLineStart`](https://codemirror.net/6/docs/ref/#commands.cursorLineStart) ([`selectLineStart`](https://codemirror.net/6/docs/ref/#commands.selectLineStart) with Shift)\n - Cmd-ArrowRight (on macOS): [`cursorLineEnd`](https://codemirror.net/6/docs/ref/#commands.cursorLineEnd) ([`selectLineEnd`](https://codemirror.net/6/docs/ref/#commands.selectLineEnd) with Shift)\n - ArrowUp: [`cursorLineUp`](https://codemirror.net/6/docs/ref/#commands.cursorLineUp) ([`selectLineUp`](https://codemirror.net/6/docs/ref/#commands.selectLineUp) with Shift)\n - ArrowDown: [`cursorLineDown`](https://codemirror.net/6/docs/ref/#commands.cursorLineDown) ([`selectLineDown`](https://codemirror.net/6/docs/ref/#commands.selectLineDown) with Shift)\n - Cmd-ArrowUp (on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Cmd-ArrowDown (on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Ctrl-ArrowUp (on macOS): [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - Ctrl-ArrowDown (on macOS): [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - PageUp: [`cursorPageUp`](https://codemirror.net/6/docs/ref/#commands.cursorPageUp) ([`selectPageUp`](https://codemirror.net/6/docs/ref/#commands.selectPageUp) with Shift)\n - PageDown: [`cursorPageDown`](https://codemirror.net/6/docs/ref/#commands.cursorPageDown) ([`selectPageDown`](https://codemirror.net/6/docs/ref/#commands.selectPageDown) with Shift)\n - Home: [`cursorLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryBackward) ([`selectLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryBackward) with Shift)\n - End: [`cursorLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.cursorLineBoundaryForward) ([`selectLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.selectLineBoundaryForward) with Shift)\n - Ctrl-Home (Cmd-Home on macOS): [`cursorDocStart`](https://codemirror.net/6/docs/ref/#commands.cursorDocStart) ([`selectDocStart`](https://codemirror.net/6/docs/ref/#commands.selectDocStart) with Shift)\n - Ctrl-End (Cmd-Home on macOS): [`cursorDocEnd`](https://codemirror.net/6/docs/ref/#commands.cursorDocEnd) ([`selectDocEnd`](https://codemirror.net/6/docs/ref/#commands.selectDocEnd) with Shift)\n - Enter: [`insertNewlineAndIndent`](https://codemirror.net/6/docs/ref/#commands.insertNewlineAndIndent)\n - Ctrl-a (Cmd-a on macOS): [`selectAll`](https://codemirror.net/6/docs/ref/#commands.selectAll)\n - Backspace: [`deleteCharBackward`](https://codemirror.net/6/docs/ref/#commands.deleteCharBackward)\n - Delete: [`deleteCharForward`](https://codemirror.net/6/docs/ref/#commands.deleteCharForward)\n - Ctrl-Backspace (Alt-Backspace on macOS): [`deleteGroupBackward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupBackward)\n - Ctrl-Delete (Alt-Delete on macOS): [`deleteGroupForward`](https://codemirror.net/6/docs/ref/#commands.deleteGroupForward)\n - Cmd-Backspace (macOS): [`deleteLineBoundaryBackward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryBackward).\n - Cmd-Delete (macOS): [`deleteLineBoundaryForward`](https://codemirror.net/6/docs/ref/#commands.deleteLineBoundaryForward).\n*/\nconst standardKeymap = /*@__PURE__*/[\n { key: \"ArrowLeft\", run: cursorCharLeft, shift: selectCharLeft, preventDefault: true },\n { key: \"Mod-ArrowLeft\", mac: \"Alt-ArrowLeft\", run: cursorGroupLeft, shift: selectGroupLeft, preventDefault: true },\n { mac: \"Cmd-ArrowLeft\", run: cursorLineBoundaryLeft, shift: selectLineBoundaryLeft, preventDefault: true },\n { key: \"ArrowRight\", run: cursorCharRight, shift: selectCharRight, preventDefault: true },\n { key: \"Mod-ArrowRight\", mac: \"Alt-ArrowRight\", run: cursorGroupRight, shift: selectGroupRight, preventDefault: true },\n { mac: \"Cmd-ArrowRight\", run: cursorLineBoundaryRight, shift: selectLineBoundaryRight, preventDefault: true },\n { key: \"ArrowUp\", run: cursorLineUp, shift: selectLineUp, preventDefault: true },\n { mac: \"Cmd-ArrowUp\", run: cursorDocStart, shift: selectDocStart },\n { mac: \"Ctrl-ArrowUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"ArrowDown\", run: cursorLineDown, shift: selectLineDown, preventDefault: true },\n { mac: \"Cmd-ArrowDown\", run: cursorDocEnd, shift: selectDocEnd },\n { mac: \"Ctrl-ArrowDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"PageUp\", run: cursorPageUp, shift: selectPageUp },\n { key: \"PageDown\", run: cursorPageDown, shift: selectPageDown },\n { key: \"Home\", run: cursorLineBoundaryBackward, shift: selectLineBoundaryBackward, preventDefault: true },\n { key: \"Mod-Home\", run: cursorDocStart, shift: selectDocStart },\n { key: \"End\", run: cursorLineBoundaryForward, shift: selectLineBoundaryForward, preventDefault: true },\n { key: \"Mod-End\", run: cursorDocEnd, shift: selectDocEnd },\n { key: \"Enter\", run: insertNewlineAndIndent },\n { key: \"Mod-a\", run: selectAll },\n { key: \"Backspace\", run: deleteCharBackward, shift: deleteCharBackward },\n { key: \"Delete\", run: deleteCharForward },\n { key: \"Mod-Backspace\", mac: \"Alt-Backspace\", run: deleteGroupBackward },\n { key: \"Mod-Delete\", mac: \"Alt-Delete\", run: deleteGroupForward },\n { mac: \"Mod-Backspace\", run: deleteLineBoundaryBackward },\n { mac: \"Mod-Delete\", run: deleteLineBoundaryForward }\n].concat(/*@__PURE__*/emacsStyleKeymap.map(b => ({ mac: b.key, run: b.run, shift: b.shift })));\n/**\nThe default keymap. Includes all bindings from\n[`standardKeymap`](https://codemirror.net/6/docs/ref/#commands.standardKeymap) plus the following:\n\n- Alt-ArrowLeft (Ctrl-ArrowLeft on macOS): [`cursorSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxLeft) ([`selectSyntaxLeft`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxLeft) with Shift)\n- Alt-ArrowRight (Ctrl-ArrowRight on macOS): [`cursorSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.cursorSyntaxRight) ([`selectSyntaxRight`](https://codemirror.net/6/docs/ref/#commands.selectSyntaxRight) with Shift)\n- Alt-ArrowUp: [`moveLineUp`](https://codemirror.net/6/docs/ref/#commands.moveLineUp)\n- Alt-ArrowDown: [`moveLineDown`](https://codemirror.net/6/docs/ref/#commands.moveLineDown)\n- Shift-Alt-ArrowUp: [`copyLineUp`](https://codemirror.net/6/docs/ref/#commands.copyLineUp)\n- Shift-Alt-ArrowDown: [`copyLineDown`](https://codemirror.net/6/docs/ref/#commands.copyLineDown)\n- Escape: [`simplifySelection`](https://codemirror.net/6/docs/ref/#commands.simplifySelection)\n- Ctrl-Enter (Cmd-Enter on macOS): [`insertBlankLine`](https://codemirror.net/6/docs/ref/#commands.insertBlankLine)\n- Alt-l (Ctrl-l on macOS): [`selectLine`](https://codemirror.net/6/docs/ref/#commands.selectLine)\n- Ctrl-i (Cmd-i on macOS): [`selectParentSyntax`](https://codemirror.net/6/docs/ref/#commands.selectParentSyntax)\n- Ctrl-[ (Cmd-[ on macOS): [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess)\n- Ctrl-] (Cmd-] on macOS): [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore)\n- Ctrl-Alt-\\\\ (Cmd-Alt-\\\\ on macOS): [`indentSelection`](https://codemirror.net/6/docs/ref/#commands.indentSelection)\n- Shift-Ctrl-k (Shift-Cmd-k on macOS): [`deleteLine`](https://codemirror.net/6/docs/ref/#commands.deleteLine)\n- Shift-Ctrl-\\\\ (Shift-Cmd-\\\\ on macOS): [`cursorMatchingBracket`](https://codemirror.net/6/docs/ref/#commands.cursorMatchingBracket)\n- Ctrl-/ (Cmd-/ on macOS): [`toggleComment`](https://codemirror.net/6/docs/ref/#commands.toggleComment).\n- Shift-Alt-a: [`toggleBlockComment`](https://codemirror.net/6/docs/ref/#commands.toggleBlockComment).\n*/\nconst defaultKeymap = /*@__PURE__*/[\n { key: \"Alt-ArrowLeft\", mac: \"Ctrl-ArrowLeft\", run: cursorSyntaxLeft, shift: selectSyntaxLeft },\n { key: \"Alt-ArrowRight\", mac: \"Ctrl-ArrowRight\", run: cursorSyntaxRight, shift: selectSyntaxRight },\n { key: \"Alt-ArrowUp\", run: moveLineUp },\n { key: \"Shift-Alt-ArrowUp\", run: copyLineUp },\n { key: \"Alt-ArrowDown\", run: moveLineDown },\n { key: \"Shift-Alt-ArrowDown\", run: copyLineDown },\n { key: \"Escape\", run: simplifySelection },\n { key: \"Mod-Enter\", run: insertBlankLine },\n { key: \"Alt-l\", mac: \"Ctrl-l\", run: selectLine },\n { key: \"Mod-i\", run: selectParentSyntax, preventDefault: true },\n { key: \"Mod-[\", run: indentLess },\n { key: \"Mod-]\", run: indentMore },\n { key: \"Mod-Alt-\\\\\", run: indentSelection },\n { key: \"Shift-Mod-k\", run: deleteLine },\n { key: \"Shift-Mod-\\\\\", run: cursorMatchingBracket },\n { key: \"Mod-/\", run: toggleComment },\n { key: \"Alt-A\", run: toggleBlockComment }\n].concat(standardKeymap);\n/**\nA binding that binds Tab to [`indentMore`](https://codemirror.net/6/docs/ref/#commands.indentMore) and\nShift-Tab to [`indentLess`](https://codemirror.net/6/docs/ref/#commands.indentLess).\nPlease see the [Tab example](../../examples/tab/) before using\nthis.\n*/\nconst indentWithTab = { key: \"Tab\", run: indentMore, shift: indentLess };\n\nexport { blockComment, blockUncomment, copyLineDown, copyLineUp, cursorCharBackward, cursorCharForward, cursorCharLeft, cursorCharRight, cursorDocEnd, cursorDocStart, cursorGroupBackward, cursorGroupForward, cursorGroupLeft, cursorGroupRight, cursorLineBoundaryBackward, cursorLineBoundaryForward, cursorLineBoundaryLeft, cursorLineBoundaryRight, cursorLineDown, cursorLineEnd, cursorLineStart, cursorLineUp, cursorMatchingBracket, cursorPageDown, cursorPageUp, cursorSubwordBackward, cursorSubwordForward, cursorSyntaxLeft, cursorSyntaxRight, defaultKeymap, deleteCharBackward, deleteCharBackwardStrict, deleteCharForward, deleteGroupBackward, deleteGroupForward, deleteLine, deleteLineBoundaryBackward, deleteLineBoundaryForward, deleteToLineEnd, deleteToLineStart, deleteTrailingWhitespace, emacsStyleKeymap, history, historyField, historyKeymap, indentLess, indentMore, indentSelection, indentWithTab, insertBlankLine, insertNewline, insertNewlineAndIndent, insertNewlineKeepIndent, insertTab, invertedEffects, isolateHistory, lineComment, lineUncomment, moveLineDown, moveLineUp, redo, redoDepth, redoSelection, selectAll, selectCharBackward, selectCharForward, selectCharLeft, selectCharRight, selectDocEnd, selectDocStart, selectGroupBackward, selectGroupForward, selectGroupLeft, selectGroupRight, selectLine, selectLineBoundaryBackward, selectLineBoundaryForward, selectLineBoundaryLeft, selectLineBoundaryRight, selectLineDown, selectLineEnd, selectLineStart, selectLineUp, selectMatchingBracket, selectPageDown, selectPageUp, selectParentSyntax, selectSubwordBackward, selectSubwordForward, selectSyntaxLeft, selectSyntaxRight, simplifySelection, splitLine, standardKeymap, toggleBlockComment, toggleBlockCommentByLine, toggleComment, toggleLineComment, transposeChars, undo, undoDepth, undoSelection };\n","import { LRLanguage, LanguageSupport } from '@codemirror/language';\nimport { html } from '@codemirror/lang-html';\nimport { javascriptLanguage } from '@codemirror/lang-javascript';\nimport { styleTags, tags } from '@lezer/highlight';\nimport { parseMixed } from '@lezer/common';\nimport { ExternalTokenizer, LRParser } from '@lezer/lr';\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst Text = 1,\n attributeContentSingle = 33,\n attributeContentDouble = 34,\n scriptAttributeContentSingle = 35,\n scriptAttributeContentDouble = 36;\n\nconst text = /*@__PURE__*/new ExternalTokenizer(input => {\n let start = input.pos;\n for (;;) {\n if (input.next == 10 /* Ch.Newline */) {\n input.advance();\n break;\n }\n else if (input.next == 123 /* Ch.BraceL */ && input.peek(1) == 123 /* Ch.BraceL */ || input.next < 0) {\n break;\n }\n input.advance();\n }\n if (input.pos > start)\n input.acceptToken(Text);\n});\nfunction attrContent(quote, token, script) {\n return new ExternalTokenizer(input => {\n let start = input.pos;\n while (input.next != quote && input.next >= 0 &&\n (script || input.next != 38 /* Ch.Ampersand */ && (input.next != 123 /* Ch.BraceL */ || input.peek(1) != 123 /* Ch.BraceL */)))\n input.advance();\n if (input.pos > start)\n input.acceptToken(token);\n });\n}\nconst attrSingle = /*@__PURE__*/attrContent(39 /* Ch.SingleQuote */, attributeContentSingle, false);\nconst attrDouble = /*@__PURE__*/attrContent(34 /* Ch.DoubleQuote */, attributeContentDouble, false);\nconst scriptAttrSingle = /*@__PURE__*/attrContent(39 /* Ch.SingleQuote */, scriptAttributeContentSingle, true);\nconst scriptAttrDouble = /*@__PURE__*/attrContent(34 /* Ch.DoubleQuote */, scriptAttributeContentDouble, true);\n\n// This file was generated by lezer-generator. You probably shouldn't edit it.\nconst parser = /*@__PURE__*/LRParser.deserialize({\n version: 14,\n states: \"(jOVOqOOOeQpOOOvO!bO'#CaOOOP'#Cx'#CxQVOqOOO!OQpO'#CfO!WQpO'#ClO!]QpO'#CrO!bQpO'#CsOOQO'#Cv'#CvQ!gQpOOQ!lQpOOQ!qQpOOOOOV,58{,58{O!vOpO,58{OOOP-E6v-E6vO!{QpO,59QO#TQpO,59QOOQO,59W,59WO#YQpO,59^OOQO,59_,59_O#_QpOOO#_QpOOO#gQpOOOOOV1G.g1G.gO#oQpO'#CyO#tQpO1G.lOOQO1G.l1G.lO#|QpO1G.lOOQO1G.x1G.xO$UO`O'#DUO$ZOWO'#DUOOQO'#Co'#CoQOQpOOOOQO'#Cu'#CuO$`OtO'#CwO$qOrO'#CwOOQO,59e,59eOOQO-E6w-E6wOOQO7+$W7+$WO%SQpO7+$WO%[QpO7+$WOOOO'#Cp'#CpO%aOpO,59pOOOO'#Cq'#CqO%fOpO,59pOOOS'#Cz'#CzO%kOtO,59cOOQO,59c,59cOOOQ'#C{'#C{O%|OrO,59cO&_QpO< node.name == \"InterpolationContent\" ? exprMixed : null),\n});\nconst attrParser = /*@__PURE__*/baseParser.configure({\n wrap: /*@__PURE__*/parseMixed((node, input) => {\n var _a;\n return node.name == \"InterpolationContent\" ? exprMixed\n : node.name != \"AttributeInterpolation\" ? null\n : ((_a = node.node.parent) === null || _a === void 0 ? void 0 : _a.name) == \"StatementAttributeValue\" ? statementMixed : exprMixed;\n }),\n top: \"Attribute\"\n});\nconst textMixed = { parser: textParser }, attrMixed = { parser: attrParser };\nconst baseHTML = /*@__PURE__*/html();\nfunction mkAngular(language) {\n return language.configure({ wrap: parseMixed(mixAngular) }, \"angular\");\n}\n/**\nA language provider for Angular Templates.\n*/\nconst angularLanguage = /*@__PURE__*/mkAngular(baseHTML.language);\nfunction mixAngular(node, input) {\n switch (node.name) {\n case \"Attribute\":\n return /^[*#(\\[]|\\{\\{/.test(input.read(node.from, node.to)) ? attrMixed : null;\n case \"Text\":\n return textMixed;\n }\n return null;\n}\n/**\nAngular Template language support.\n*/\nfunction angular(config = {}) {\n let base = baseHTML;\n if (config.base) {\n if (config.base.language.name != \"html\" || !(config.base.language instanceof LRLanguage))\n throw new RangeError(\"The base option must be the result of calling html(...)\");\n base = config.base;\n }\n return new LanguageSupport(base.language == baseHTML.language ? angularLanguage : mkAngular(base.language), [base.support, base.language.data.of({\n closeBrackets: { brackets: [\"[\", \"{\", '\"'] },\n indentOnInput: /^\\s*[\\}\\]]$/\n })]);\n}\n\nexport { angular, angularLanguage };\n","import { parser } from '@lezer/cpp';\nimport { LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\n\n/**\nA language provider based on the [Lezer C++\nparser](https://github.com/lezer-parser/cpp), extended with\nhighlighting and indentation information.\n*/\nconst cppLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"cpp\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n TryStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|catch)\\b/ }),\n LabeledStatement: flatIndent,\n CaseStatement: context => context.baseIndent + context.unit,\n BlockComment: () => null,\n CompoundStatement: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n Statement: /*@__PURE__*/continuedIndent({ except: /^{/ })\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"DeclarationList CompoundStatement EnumeratorList FieldDeclarationList InitializerList\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n })\n ]\n }),\n languageData: {\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case |default:|\\{|\\})$/,\n closeBrackets: { stringPrefixes: [\"L\", \"u\", \"U\", \"u8\", \"LR\", \"UR\", \"uR\", \"u8R\", \"R\"] }\n }\n});\n/**\nLanguage support for C++.\n*/\nfunction cpp() {\n return new LanguageSupport(cppLanguage);\n}\n\nexport { cpp, cppLanguage };\n","import { parser } from '@lezer/css';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\nlet _properties = null;\nfunction properties() {\n if (!_properties && typeof document == \"object\" && document.body) {\n let { style } = document.body, names = [], seen = new Set;\n for (let prop in style)\n if (prop != \"cssText\" && prop != \"cssFloat\") {\n if (typeof style[prop] == \"string\") {\n if (/[A-Z]/.test(prop))\n prop = prop.replace(/[A-Z]/g, ch => \"-\" + ch.toLowerCase());\n if (!seen.has(prop)) {\n names.push(prop);\n seen.add(prop);\n }\n }\n }\n _properties = names.sort().map(name => ({ type: \"property\", label: name }));\n }\n return _properties || [];\n}\nconst pseudoClasses = /*@__PURE__*/[\n \"active\", \"after\", \"any-link\", \"autofill\", \"backdrop\", \"before\",\n \"checked\", \"cue\", \"default\", \"defined\", \"disabled\", \"empty\",\n \"enabled\", \"file-selector-button\", \"first\", \"first-child\",\n \"first-letter\", \"first-line\", \"first-of-type\", \"focus\",\n \"focus-visible\", \"focus-within\", \"fullscreen\", \"has\", \"host\",\n \"host-context\", \"hover\", \"in-range\", \"indeterminate\", \"invalid\",\n \"is\", \"lang\", \"last-child\", \"last-of-type\", \"left\", \"link\", \"marker\",\n \"modal\", \"not\", \"nth-child\", \"nth-last-child\", \"nth-last-of-type\",\n \"nth-of-type\", \"only-child\", \"only-of-type\", \"optional\", \"out-of-range\",\n \"part\", \"placeholder\", \"placeholder-shown\", \"read-only\", \"read-write\",\n \"required\", \"right\", \"root\", \"scope\", \"selection\", \"slotted\", \"target\",\n \"target-text\", \"valid\", \"visited\", \"where\"\n].map(name => ({ type: \"class\", label: name }));\nconst values = /*@__PURE__*/[\n \"above\", \"absolute\", \"activeborder\", \"additive\", \"activecaption\", \"after-white-space\",\n \"ahead\", \"alias\", \"all\", \"all-scroll\", \"alphabetic\", \"alternate\", \"always\",\n \"antialiased\", \"appworkspace\", \"asterisks\", \"attr\", \"auto\", \"auto-flow\", \"avoid\", \"avoid-column\",\n \"avoid-page\", \"avoid-region\", \"axis-pan\", \"background\", \"backwards\", \"baseline\", \"below\",\n \"bidi-override\", \"blink\", \"block\", \"block-axis\", \"bold\", \"bolder\", \"border\", \"border-box\",\n \"both\", \"bottom\", \"break\", \"break-all\", \"break-word\", \"bullets\", \"button\", \"button-bevel\",\n \"buttonface\", \"buttonhighlight\", \"buttonshadow\", \"buttontext\", \"calc\", \"capitalize\",\n \"caps-lock-indicator\", \"caption\", \"captiontext\", \"caret\", \"cell\", \"center\", \"checkbox\", \"circle\",\n \"cjk-decimal\", \"clear\", \"clip\", \"close-quote\", \"col-resize\", \"collapse\", \"color\", \"color-burn\",\n \"color-dodge\", \"column\", \"column-reverse\", \"compact\", \"condensed\", \"contain\", \"content\",\n \"contents\", \"content-box\", \"context-menu\", \"continuous\", \"copy\", \"counter\", \"counters\", \"cover\",\n \"crop\", \"cross\", \"crosshair\", \"currentcolor\", \"cursive\", \"cyclic\", \"darken\", \"dashed\", \"decimal\",\n \"decimal-leading-zero\", \"default\", \"default-button\", \"dense\", \"destination-atop\", \"destination-in\",\n \"destination-out\", \"destination-over\", \"difference\", \"disc\", \"discard\", \"disclosure-closed\",\n \"disclosure-open\", \"document\", \"dot-dash\", \"dot-dot-dash\", \"dotted\", \"double\", \"down\", \"e-resize\",\n \"ease\", \"ease-in\", \"ease-in-out\", \"ease-out\", \"element\", \"ellipse\", \"ellipsis\", \"embed\", \"end\",\n \"ethiopic-abegede-gez\", \"ethiopic-halehame-aa-er\", \"ethiopic-halehame-gez\", \"ew-resize\", \"exclusion\",\n \"expanded\", \"extends\", \"extra-condensed\", \"extra-expanded\", \"fantasy\", \"fast\", \"fill\", \"fill-box\",\n \"fixed\", \"flat\", \"flex\", \"flex-end\", \"flex-start\", \"footnotes\", \"forwards\", \"from\",\n \"geometricPrecision\", \"graytext\", \"grid\", \"groove\", \"hand\", \"hard-light\", \"help\", \"hidden\", \"hide\",\n \"higher\", \"highlight\", \"highlighttext\", \"horizontal\", \"hsl\", \"hsla\", \"hue\", \"icon\", \"ignore\",\n \"inactiveborder\", \"inactivecaption\", \"inactivecaptiontext\", \"infinite\", \"infobackground\", \"infotext\",\n \"inherit\", \"initial\", \"inline\", \"inline-axis\", \"inline-block\", \"inline-flex\", \"inline-grid\",\n \"inline-table\", \"inset\", \"inside\", \"intrinsic\", \"invert\", \"italic\", \"justify\", \"keep-all\",\n \"landscape\", \"large\", \"larger\", \"left\", \"level\", \"lighter\", \"lighten\", \"line-through\", \"linear\",\n \"linear-gradient\", \"lines\", \"list-item\", \"listbox\", \"listitem\", \"local\", \"logical\", \"loud\", \"lower\",\n \"lower-hexadecimal\", \"lower-latin\", \"lower-norwegian\", \"lowercase\", \"ltr\", \"luminosity\", \"manipulation\",\n \"match\", \"matrix\", \"matrix3d\", \"medium\", \"menu\", \"menutext\", \"message-box\", \"middle\", \"min-intrinsic\",\n \"mix\", \"monospace\", \"move\", \"multiple\", \"multiple_mask_images\", \"multiply\", \"n-resize\", \"narrower\",\n \"ne-resize\", \"nesw-resize\", \"no-close-quote\", \"no-drop\", \"no-open-quote\", \"no-repeat\", \"none\",\n \"normal\", \"not-allowed\", \"nowrap\", \"ns-resize\", \"numbers\", \"numeric\", \"nw-resize\", \"nwse-resize\",\n \"oblique\", \"opacity\", \"open-quote\", \"optimizeLegibility\", \"optimizeSpeed\", \"outset\", \"outside\",\n \"outside-shape\", \"overlay\", \"overline\", \"padding\", \"padding-box\", \"painted\", \"page\", \"paused\",\n \"perspective\", \"pinch-zoom\", \"plus-darker\", \"plus-lighter\", \"pointer\", \"polygon\", \"portrait\",\n \"pre\", \"pre-line\", \"pre-wrap\", \"preserve-3d\", \"progress\", \"push-button\", \"radial-gradient\", \"radio\",\n \"read-only\", \"read-write\", \"read-write-plaintext-only\", \"rectangle\", \"region\", \"relative\", \"repeat\",\n \"repeating-linear-gradient\", \"repeating-radial-gradient\", \"repeat-x\", \"repeat-y\", \"reset\", \"reverse\",\n \"rgb\", \"rgba\", \"ridge\", \"right\", \"rotate\", \"rotate3d\", \"rotateX\", \"rotateY\", \"rotateZ\", \"round\",\n \"row\", \"row-resize\", \"row-reverse\", \"rtl\", \"run-in\", \"running\", \"s-resize\", \"sans-serif\", \"saturation\",\n \"scale\", \"scale3d\", \"scaleX\", \"scaleY\", \"scaleZ\", \"screen\", \"scroll\", \"scrollbar\", \"scroll-position\",\n \"se-resize\", \"self-start\", \"self-end\", \"semi-condensed\", \"semi-expanded\", \"separate\", \"serif\", \"show\",\n \"single\", \"skew\", \"skewX\", \"skewY\", \"skip-white-space\", \"slide\", \"slider-horizontal\",\n \"slider-vertical\", \"sliderthumb-horizontal\", \"sliderthumb-vertical\", \"slow\", \"small\", \"small-caps\",\n \"small-caption\", \"smaller\", \"soft-light\", \"solid\", \"source-atop\", \"source-in\", \"source-out\",\n \"source-over\", \"space\", \"space-around\", \"space-between\", \"space-evenly\", \"spell-out\", \"square\", \"start\",\n \"static\", \"status-bar\", \"stretch\", \"stroke\", \"stroke-box\", \"sub\", \"subpixel-antialiased\", \"svg_masks\",\n \"super\", \"sw-resize\", \"symbolic\", \"symbols\", \"system-ui\", \"table\", \"table-caption\", \"table-cell\",\n \"table-column\", \"table-column-group\", \"table-footer-group\", \"table-header-group\", \"table-row\",\n \"table-row-group\", \"text\", \"text-bottom\", \"text-top\", \"textarea\", \"textfield\", \"thick\", \"thin\",\n \"threeddarkshadow\", \"threedface\", \"threedhighlight\", \"threedlightshadow\", \"threedshadow\", \"to\", \"top\",\n \"transform\", \"translate\", \"translate3d\", \"translateX\", \"translateY\", \"translateZ\", \"transparent\",\n \"ultra-condensed\", \"ultra-expanded\", \"underline\", \"unidirectional-pan\", \"unset\", \"up\", \"upper-latin\",\n \"uppercase\", \"url\", \"var\", \"vertical\", \"vertical-text\", \"view-box\", \"visible\", \"visibleFill\",\n \"visiblePainted\", \"visibleStroke\", \"visual\", \"w-resize\", \"wait\", \"wave\", \"wider\", \"window\", \"windowframe\",\n \"windowtext\", \"words\", \"wrap\", \"wrap-reverse\", \"x-large\", \"x-small\", \"xor\", \"xx-large\", \"xx-small\"\n].map(name => ({ type: \"keyword\", label: name })).concat(/*@__PURE__*/[\n \"aliceblue\", \"antiquewhite\", \"aqua\", \"aquamarine\", \"azure\", \"beige\",\n \"bisque\", \"black\", \"blanchedalmond\", \"blue\", \"blueviolet\", \"brown\",\n \"burlywood\", \"cadetblue\", \"chartreuse\", \"chocolate\", \"coral\", \"cornflowerblue\",\n \"cornsilk\", \"crimson\", \"cyan\", \"darkblue\", \"darkcyan\", \"darkgoldenrod\",\n \"darkgray\", \"darkgreen\", \"darkkhaki\", \"darkmagenta\", \"darkolivegreen\",\n \"darkorange\", \"darkorchid\", \"darkred\", \"darksalmon\", \"darkseagreen\",\n \"darkslateblue\", \"darkslategray\", \"darkturquoise\", \"darkviolet\",\n \"deeppink\", \"deepskyblue\", \"dimgray\", \"dodgerblue\", \"firebrick\",\n \"floralwhite\", \"forestgreen\", \"fuchsia\", \"gainsboro\", \"ghostwhite\",\n \"gold\", \"goldenrod\", \"gray\", \"grey\", \"green\", \"greenyellow\", \"honeydew\",\n \"hotpink\", \"indianred\", \"indigo\", \"ivory\", \"khaki\", \"lavender\",\n \"lavenderblush\", \"lawngreen\", \"lemonchiffon\", \"lightblue\", \"lightcoral\",\n \"lightcyan\", \"lightgoldenrodyellow\", \"lightgray\", \"lightgreen\", \"lightpink\",\n \"lightsalmon\", \"lightseagreen\", \"lightskyblue\", \"lightslategray\",\n \"lightsteelblue\", \"lightyellow\", \"lime\", \"limegreen\", \"linen\", \"magenta\",\n \"maroon\", \"mediumaquamarine\", \"mediumblue\", \"mediumorchid\", \"mediumpurple\",\n \"mediumseagreen\", \"mediumslateblue\", \"mediumspringgreen\", \"mediumturquoise\",\n \"mediumvioletred\", \"midnightblue\", \"mintcream\", \"mistyrose\", \"moccasin\",\n \"navajowhite\", \"navy\", \"oldlace\", \"olive\", \"olivedrab\", \"orange\", \"orangered\",\n \"orchid\", \"palegoldenrod\", \"palegreen\", \"paleturquoise\", \"palevioletred\",\n \"papayawhip\", \"peachpuff\", \"peru\", \"pink\", \"plum\", \"powderblue\",\n \"purple\", \"rebeccapurple\", \"red\", \"rosybrown\", \"royalblue\", \"saddlebrown\",\n \"salmon\", \"sandybrown\", \"seagreen\", \"seashell\", \"sienna\", \"silver\", \"skyblue\",\n \"slateblue\", \"slategray\", \"snow\", \"springgreen\", \"steelblue\", \"tan\",\n \"teal\", \"thistle\", \"tomato\", \"turquoise\", \"violet\", \"wheat\", \"white\",\n \"whitesmoke\", \"yellow\", \"yellowgreen\"\n].map(name => ({ type: \"constant\", label: name })));\nconst tags = /*@__PURE__*/[\n \"a\", \"abbr\", \"address\", \"article\", \"aside\", \"b\", \"bdi\", \"bdo\", \"blockquote\", \"body\",\n \"br\", \"button\", \"canvas\", \"caption\", \"cite\", \"code\", \"col\", \"colgroup\", \"dd\", \"del\",\n \"details\", \"dfn\", \"dialog\", \"div\", \"dl\", \"dt\", \"em\", \"figcaption\", \"figure\", \"footer\",\n \"form\", \"header\", \"hgroup\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"hr\", \"html\", \"i\", \"iframe\",\n \"img\", \"input\", \"ins\", \"kbd\", \"label\", \"legend\", \"li\", \"main\", \"meter\", \"nav\", \"ol\", \"output\",\n \"p\", \"pre\", \"ruby\", \"section\", \"select\", \"small\", \"source\", \"span\", \"strong\", \"sub\", \"summary\",\n \"sup\", \"table\", \"tbody\", \"td\", \"template\", \"textarea\", \"tfoot\", \"th\", \"thead\", \"tr\", \"u\", \"ul\"\n].map(name => ({ type: \"type\", label: name }));\nconst identifier = /^(\\w[\\w-]*|-\\w[\\w-]*|)$/, variable = /^-(-[\\w-]*)?$/;\nfunction isVarArg(node, doc) {\n var _a;\n if (node.name == \"(\" || node.type.isError)\n node = node.parent || node;\n if (node.name != \"ArgList\")\n return false;\n let callee = (_a = node.parent) === null || _a === void 0 ? void 0 : _a.firstChild;\n if ((callee === null || callee === void 0 ? void 0 : callee.name) != \"Callee\")\n return false;\n return doc.sliceString(callee.from, callee.to) == \"var\";\n}\nconst VariablesByNode = /*@__PURE__*/new NodeWeakMap();\nconst declSelector = [\"Declaration\"];\nfunction astTop(node) {\n for (let cur = node;;) {\n if (cur.type.isTop)\n return cur;\n if (!(cur = cur.parent))\n return node;\n }\n}\nfunction variableNames(doc, node, isVariable) {\n if (node.to - node.from > 4096) {\n let known = VariablesByNode.get(node);\n if (known)\n return known;\n let result = [], seen = new Set, cursor = node.cursor(IterMode.IncludeAnonymous);\n if (cursor.firstChild())\n do {\n for (let option of variableNames(doc, cursor.node, isVariable))\n if (!seen.has(option.label)) {\n seen.add(option.label);\n result.push(option);\n }\n } while (cursor.nextSibling());\n VariablesByNode.set(node, result);\n return result;\n }\n else {\n let result = [], seen = new Set;\n node.cursor().iterate(node => {\n var _a;\n if (isVariable(node) && node.matchContext(declSelector) && ((_a = node.node.nextSibling) === null || _a === void 0 ? void 0 : _a.name) == \":\") {\n let name = doc.sliceString(node.from, node.to);\n if (!seen.has(name)) {\n seen.add(name);\n result.push({ label: name, type: \"variable\" });\n }\n }\n });\n return result;\n }\n}\n/**\nCreate a completion source for a CSS dialect, providing a\npredicate for determining what kind of syntax node can act as a\ncompletable variable. This is used by language modes like Sass and\nLess to reuse this package's completion logic.\n*/\nconst defineCSSCompletionSource = (isVariable) => context => {\n let { state, pos } = context, node = syntaxTree(state).resolveInner(pos, -1);\n let isDash = node.type.isError && node.from == node.to - 1 && state.doc.sliceString(node.from, node.to) == \"-\";\n if (node.name == \"PropertyName\" ||\n (isDash || node.name == \"TagName\") && /^(Block|Styles)$/.test(node.resolve(node.to).name))\n return { from: node.from, options: properties(), validFor: identifier };\n if (node.name == \"ValueName\")\n return { from: node.from, options: values, validFor: identifier };\n if (node.name == \"PseudoClassName\")\n return { from: node.from, options: pseudoClasses, validFor: identifier };\n if (isVariable(node) || (context.explicit || isDash) && isVarArg(node, state.doc))\n return { from: isVariable(node) || isDash ? node.from : pos,\n options: variableNames(state.doc, astTop(node), isVariable),\n validFor: variable };\n if (node.name == \"TagName\") {\n for (let { parent } = node; parent; parent = parent.parent)\n if (parent.name == \"Block\")\n return { from: node.from, options: properties(), validFor: identifier };\n return { from: node.from, options: tags, validFor: identifier };\n }\n if (!context.explicit)\n return null;\n let above = node.resolve(pos), before = above.childBefore(pos);\n if (before && before.name == \":\" && above.name == \"PseudoClassSelector\")\n return { from: pos, options: pseudoClasses, validFor: identifier };\n if (before && before.name == \":\" && above.name == \"Declaration\" || above.name == \"ArgList\")\n return { from: pos, options: values, validFor: identifier };\n if (above.name == \"Block\" || above.name == \"Styles\")\n return { from: pos, options: properties(), validFor: identifier };\n return null;\n};\n/**\nCSS property, variable, and value keyword completion source.\n*/\nconst cssCompletionSource = /*@__PURE__*/defineCSSCompletionSource(n => n.name == \"VariableName\");\n\n/**\nA language provider based on the [Lezer CSS\nparser](https://github.com/lezer-parser/css), extended with\nhighlighting and indentation information.\n*/\nconst cssLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"css\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n Declaration: /*@__PURE__*/continuedIndent()\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block KeyframeList\": foldInside\n })\n ]\n }),\n languageData: {\n commentTokens: { block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*\\}$/,\n wordChars: \"-\"\n }\n});\n/**\nLanguage support for CSS.\n*/\nfunction css() {\n return new LanguageSupport(cssLanguage, cssLanguage.data.of({ autocomplete: cssCompletionSource }));\n}\n\nexport { css, cssCompletionSource, cssLanguage, defineCSSCompletionSource };\n","import { parser } from '@lezer/go';\nimport { syntaxTree, LRLanguage, indentNodeProp, continuedIndent, flatIndent, delimitedIndent, foldNodeProp, foldInside, LanguageSupport } from '@codemirror/language';\nimport { snippetCompletion, ifNotIn, completeFromList } from '@codemirror/autocomplete';\nimport { NodeWeakMap, IterMode } from '@lezer/common';\n\n/**\nA collection of Go-related [snippets](https://codemirror.net/6/docs/ref/#autocomplete.snippet).\n*/\nconst snippets = [\n /*@__PURE__*/snippetCompletion(\"func ${name}(${params}) ${type} {\\n\\t${}\\n}\", {\n label: \"func\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"func (${receiver}) ${name}(${params}) ${type} {\\n\\t${}\\n}\", {\n label: \"func\",\n detail: \"method declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"var ${name} = ${value}\", {\n label: \"var\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} ${type}\", {\n label: \"type\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"const ${name} = ${value}\", {\n label: \"const\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"type ${name} = ${type}\", {\n label: \"type\",\n detail: \"alias declaration\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for ${init}; ${test}; ${update} {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"loop\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"for ${i} := range ${value} {\\n\\t${}\\n}\", {\n label: \"for\",\n detail: \"range\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"select {\\n\\t${}\\n}\", {\n label: \"select\",\n detail: \"statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"case ${}:\\n${}\", {\n label: \"case\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"switch ${} {\\n\\t${}\\n}\", {\n label: \"switch\",\n detail: \"statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"switch ${}.(${type}) {\\n\\t${}\\n}\", {\n label: \"switch\",\n detail: \"type statement\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if ${} {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"if ${} {\\n\\t${}\\n} else {\\n\\t${}\\n}\", {\n label: \"if\",\n detail: \"/ else block\",\n type: \"keyword\"\n }),\n /*@__PURE__*/snippetCompletion(\"import ${name} from \\\"${module}\\\"\\n${}\", {\n label: \"import\",\n detail: \"declaration\",\n type: \"keyword\"\n }),\n];\n\nconst cache = /*@__PURE__*/new NodeWeakMap();\nconst ScopeNodes = /*@__PURE__*/new Set([\n \"SourceFile\", \"Block\",\n \"FunctionDecl\", \"MethodDecl\", \"FunctionLiteral\",\n \"ForStatement\", \"SwitchStatement\", \"TypeSwitchStatement\", \"IfStatement\",\n]);\nfunction defIDs(type, spec) {\n return (node, def) => {\n outer: for (let cur = node.node.firstChild, depth = 0, parent = null;;) {\n while (!cur) {\n if (!depth)\n break outer;\n depth--;\n cur = parent.nextSibling;\n parent = parent.parent;\n }\n if (spec && cur.name == spec || cur.name == \"SpecList\") {\n depth++;\n parent = cur;\n cur = cur.firstChild;\n }\n else {\n if (cur.name == \"DefName\")\n def(cur, type);\n cur = cur.nextSibling;\n }\n }\n return true;\n };\n}\nconst gatherCompletions = {\n FunctionDecl: /*@__PURE__*/defIDs(\"function\"),\n VarDecl: /*@__PURE__*/defIDs(\"var\", \"VarSpec\"),\n ConstDecl: /*@__PURE__*/defIDs(\"constant\", \"ConstSpec\"),\n TypeDecl: /*@__PURE__*/defIDs(\"type\", \"TypeSpec\"),\n ImportDecl: /*@__PURE__*/defIDs(\"constant\", \"ImportSpec\"),\n Parameter: /*@__PURE__*/defIDs(\"var\"),\n __proto__: null\n};\nfunction getScope(doc, node) {\n let cached = cache.get(node);\n if (cached)\n return cached;\n let completions = [], top = true;\n function def(node, type) {\n let name = doc.sliceString(node.from, node.to);\n completions.push({ label: name, type });\n }\n node.cursor(IterMode.IncludeAnonymous).iterate(node => {\n if (top) {\n top = false;\n }\n else if (node.name) {\n let gather = gatherCompletions[node.name];\n if (gather && gather(node, def) || ScopeNodes.has(node.name))\n return false;\n }\n else if (node.to - node.from > 8192) {\n // Allow caching for bigger internal nodes\n for (let c of getScope(doc, node.node))\n completions.push(c);\n return false;\n }\n });\n cache.set(node, completions);\n return completions;\n}\nconst Identifier = /^[\\w$\\xa1-\\uffff][\\w$\\d\\xa1-\\uffff]*$/;\nconst dontComplete = [\n \"String\", \"LineComment\", \"BlockComment\",\n \"DefName\", \"LabelName\", \"FieldName\",\n \".\", \"?.\"\n];\n/**\nCompletion source that looks up locally defined names in Go code.\n*/\nconst localCompletionSource = context => {\n let inner = syntaxTree(context.state).resolveInner(context.pos, -1);\n if (dontComplete.indexOf(inner.name) > -1)\n return null;\n let isWord = inner.name == \"VariableName\" ||\n inner.to - inner.from < 20 && Identifier.test(context.state.sliceDoc(inner.from, inner.to));\n if (!isWord && !context.explicit)\n return null;\n let options = [];\n for (let pos = inner; pos; pos = pos.parent) {\n if (ScopeNodes.has(pos.name))\n options = options.concat(getScope(context.state.doc, pos));\n }\n return {\n options,\n from: isWord ? inner.from : context.pos,\n validFor: Identifier\n };\n};\n\n/**\nA language provider based on the [Lezer Go\nparser](https://github.com/lezer-parser/go), extended with\nfolding and indentation information.\n*/\nconst goLanguage = /*@__PURE__*/LRLanguage.define({\n name: \"go\",\n parser: /*@__PURE__*/parser.configure({\n props: [\n /*@__PURE__*/indentNodeProp.add({\n IfStatement: /*@__PURE__*/continuedIndent({ except: /^\\s*({|else\\b)/ }),\n LabeledStatement: flatIndent,\n \"SwitchBlock SelectBlock\": context => {\n let after = context.textAfter, closed = /^\\s*\\}/.test(after), isCase = /^\\s*(case|default)\\b/.test(after);\n return context.baseIndent + (closed || isCase ? 0 : context.unit);\n },\n Block: /*@__PURE__*/delimitedIndent({ closing: \"}\" }),\n BlockComment: () => null,\n Statement: /*@__PURE__*/continuedIndent({ except: /^{/ }),\n }),\n /*@__PURE__*/foldNodeProp.add({\n \"Block SwitchBlock SelectBlock LiteralValue InterfaceType StructType SpecList\": foldInside,\n BlockComment(tree) { return { from: tree.from + 2, to: tree.to - 2 }; }\n })\n ]\n }),\n languageData: {\n closeBrackets: { brackets: [\"(\", \"[\", \"{\", \"'\", '\"', \"`\"] },\n commentTokens: { line: \"//\", block: { open: \"/*\", close: \"*/\" } },\n indentOnInput: /^\\s*(?:case\\b|default\\b|\\})$/\n }\n});\nlet kwCompletion = (name) => ({ label: name, type: \"keyword\" });\nconst keywords = /*@__PURE__*/\"interface struct chan map package go return break continue goto fallthrough else defer range true false nil\".split(\" \").map(kwCompletion);\n/**\nGo support. Includes [snippet](https://codemirror.net/6/docs/ref/#lang-go.snippets) and local\nvariable completion.\n*/\nfunction go() {\n let completions = snippets.concat(keywords);\n return new LanguageSupport(goLanguage, [\n goLanguage.data.of({\n autocomplete: ifNotIn(dontComplete, completeFromList(completions))\n }),\n goLanguage.data.of({\n autocomplete: localCompletionSource\n })\n ]);\n}\n\nexport { go, goLanguage, localCompletionSource, snippets };\n","import { parser, configureNesting } from '@lezer/html';\nimport { cssLanguage, css } from '@codemirror/lang-css';\nimport { javascriptLanguage, typescriptLanguage, jsxLanguage, tsxLanguage, javascript } from '@codemirror/lang-javascript';\nimport { EditorView } from '@codemirror/view';\nimport { EditorSelection } from '@codemirror/state';\nimport { syntaxTree, LRLanguage, indentNodeProp, foldNodeProp, bracketMatchingHandle, LanguageSupport } from '@codemirror/language';\n\nconst Targets = [\"_blank\", \"_self\", \"_top\", \"_parent\"];\nconst Charsets = [\"ascii\", \"utf-8\", \"utf-16\", \"latin1\", \"latin1\"];\nconst Methods = [\"get\", \"post\", \"put\", \"delete\"];\nconst Encs = [\"application/x-www-form-urlencoded\", \"multipart/form-data\", \"text/plain\"];\nconst Bool = [\"true\", \"false\"];\nconst S = {}; // Empty tag spec\nconst Tags = {\n a: {\n attrs: {\n href: null, ping: null, type: null,\n media: null,\n target: Targets,\n hreflang: null\n }\n },\n abbr: S,\n address: S,\n area: {\n attrs: {\n alt: null, coords: null, href: null, target: null, ping: null,\n media: null, hreflang: null, type: null,\n shape: [\"default\", \"rect\", \"circle\", \"poly\"]\n }\n },\n article: S,\n aside: S,\n audio: {\n attrs: {\n src: null, mediagroup: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"none\", \"metadata\", \"auto\"],\n autoplay: [\"autoplay\"],\n loop: [\"loop\"],\n controls: [\"controls\"]\n }\n },\n b: S,\n base: { attrs: { href: null, target: Targets } },\n bdi: S,\n bdo: S,\n blockquote: { attrs: { cite: null } },\n body: S,\n br: S,\n button: {\n attrs: {\n form: null, formaction: null, name: null, value: null,\n autofocus: [\"autofocus\"],\n disabled: [\"autofocus\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n type: [\"submit\", \"reset\", \"button\"]\n }\n },\n canvas: { attrs: { width: null, height: null } },\n caption: S,\n center: S,\n cite: S,\n code: S,\n col: { attrs: { span: null } },\n colgroup: { attrs: { span: null } },\n command: {\n attrs: {\n type: [\"command\", \"checkbox\", \"radio\"],\n label: null, icon: null, radiogroup: null, command: null, title: null,\n disabled: [\"disabled\"],\n checked: [\"checked\"]\n }\n },\n data: { attrs: { value: null } },\n datagrid: { attrs: { disabled: [\"disabled\"], multiple: [\"multiple\"] } },\n datalist: { attrs: { data: null } },\n dd: S,\n del: { attrs: { cite: null, datetime: null } },\n details: { attrs: { open: [\"open\"] } },\n dfn: S,\n div: S,\n dl: S,\n dt: S,\n em: S,\n embed: { attrs: { src: null, type: null, width: null, height: null } },\n eventsource: { attrs: { src: null } },\n fieldset: { attrs: { disabled: [\"disabled\"], form: null, name: null } },\n figcaption: S,\n figure: S,\n footer: S,\n form: {\n attrs: {\n action: null, name: null,\n \"accept-charset\": Charsets,\n autocomplete: [\"on\", \"off\"],\n enctype: Encs,\n method: Methods,\n novalidate: [\"novalidate\"],\n target: Targets\n }\n },\n h1: S, h2: S, h3: S, h4: S, h5: S, h6: S,\n head: {\n children: [\"title\", \"base\", \"link\", \"style\", \"meta\", \"script\", \"noscript\", \"command\"]\n },\n header: S,\n hgroup: S,\n hr: S,\n html: {\n attrs: { manifest: null }\n },\n i: S,\n iframe: {\n attrs: {\n src: null, srcdoc: null, name: null, width: null, height: null,\n sandbox: [\"allow-top-navigation\", \"allow-same-origin\", \"allow-forms\", \"allow-scripts\"],\n seamless: [\"seamless\"]\n }\n },\n img: {\n attrs: {\n alt: null, src: null, ismap: null, usemap: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"]\n }\n },\n input: {\n attrs: {\n alt: null, dirname: null, form: null, formaction: null,\n height: null, list: null, max: null, maxlength: null, min: null,\n name: null, pattern: null, placeholder: null, size: null, src: null,\n step: null, value: null, width: null,\n accept: [\"audio/*\", \"video/*\", \"image/*\"],\n autocomplete: [\"on\", \"off\"],\n autofocus: [\"autofocus\"],\n checked: [\"checked\"],\n disabled: [\"disabled\"],\n formenctype: Encs,\n formmethod: Methods,\n formnovalidate: [\"novalidate\"],\n formtarget: Targets,\n multiple: [\"multiple\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n type: [\"hidden\", \"text\", \"search\", \"tel\", \"url\", \"email\", \"password\", \"datetime\", \"date\", \"month\",\n \"week\", \"time\", \"datetime-local\", \"number\", \"range\", \"color\", \"checkbox\", \"radio\",\n \"file\", \"submit\", \"image\", \"reset\", \"button\"]\n }\n },\n ins: { attrs: { cite: null, datetime: null } },\n kbd: S,\n keygen: {\n attrs: {\n challenge: null, form: null, name: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n keytype: [\"RSA\"]\n }\n },\n label: { attrs: { for: null, form: null } },\n legend: S,\n li: { attrs: { value: null } },\n link: {\n attrs: {\n href: null, type: null,\n hreflang: null,\n media: null,\n sizes: [\"all\", \"16x16\", \"16x16 32x32\", \"16x16 32x32 64x64\"]\n }\n },\n map: { attrs: { name: null } },\n mark: S,\n menu: { attrs: { label: null, type: [\"list\", \"context\", \"toolbar\"] } },\n meta: {\n attrs: {\n content: null,\n charset: Charsets,\n name: [\"viewport\", \"application-name\", \"author\", \"description\", \"generator\", \"keywords\"],\n \"http-equiv\": [\"content-language\", \"content-type\", \"default-style\", \"refresh\"]\n }\n },\n meter: { attrs: { value: null, min: null, low: null, high: null, max: null, optimum: null } },\n nav: S,\n noscript: S,\n object: {\n attrs: {\n data: null, type: null, name: null, usemap: null, form: null, width: null, height: null,\n typemustmatch: [\"typemustmatch\"]\n }\n },\n ol: { attrs: { reversed: [\"reversed\"], start: null, type: [\"1\", \"a\", \"A\", \"i\", \"I\"] },\n children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n optgroup: { attrs: { disabled: [\"disabled\"], label: null } },\n option: { attrs: { disabled: [\"disabled\"], label: null, selected: [\"selected\"], value: null } },\n output: { attrs: { for: null, form: null, name: null } },\n p: S,\n param: { attrs: { name: null, value: null } },\n pre: S,\n progress: { attrs: { value: null, max: null } },\n q: { attrs: { cite: null } },\n rp: S,\n rt: S,\n ruby: S,\n samp: S,\n script: {\n attrs: {\n type: [\"text/javascript\"],\n src: null,\n async: [\"async\"],\n defer: [\"defer\"],\n charset: Charsets\n }\n },\n section: S,\n select: {\n attrs: {\n form: null, name: null, size: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n multiple: [\"multiple\"]\n }\n },\n slot: { attrs: { name: null } },\n small: S,\n source: { attrs: { src: null, type: null, media: null } },\n span: S,\n strong: S,\n style: {\n attrs: {\n type: [\"text/css\"],\n media: null,\n scoped: null\n }\n },\n sub: S,\n summary: S,\n sup: S,\n table: S,\n tbody: S,\n td: { attrs: { colspan: null, rowspan: null, headers: null } },\n template: S,\n textarea: {\n attrs: {\n dirname: null, form: null, maxlength: null, name: null, placeholder: null,\n rows: null, cols: null,\n autofocus: [\"autofocus\"],\n disabled: [\"disabled\"],\n readonly: [\"readonly\"],\n required: [\"required\"],\n wrap: [\"soft\", \"hard\"]\n }\n },\n tfoot: S,\n th: { attrs: { colspan: null, rowspan: null, headers: null, scope: [\"row\", \"col\", \"rowgroup\", \"colgroup\"] } },\n thead: S,\n time: { attrs: { datetime: null } },\n title: S,\n tr: S,\n track: {\n attrs: {\n src: null, label: null, default: null,\n kind: [\"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\"],\n srclang: null\n }\n },\n ul: { children: [\"li\", \"script\", \"template\", \"ul\", \"ol\"] },\n var: S,\n video: {\n attrs: {\n src: null, poster: null, width: null, height: null,\n crossorigin: [\"anonymous\", \"use-credentials\"],\n preload: [\"auto\", \"metadata\", \"none\"],\n autoplay: [\"autoplay\"],\n mediagroup: [\"movie\"],\n muted: [\"muted\"],\n controls: [\"controls\"]\n }\n },\n wbr: S\n};\nconst GlobalAttrs = {\n accesskey: null,\n class: null,\n contenteditable: Bool,\n contextmenu: null,\n dir: [\"ltr\", \"rtl\", \"auto\"],\n draggable: [\"true\", \"false\", \"auto\"],\n dropzone: [\"copy\", \"move\", \"link\", \"string:\", \"file:\"],\n hidden: [\"hidden\"],\n id: null,\n inert: [\"inert\"],\n itemid: null,\n itemprop: null,\n itemref: null,\n itemscope: [\"itemscope\"],\n itemtype: null,\n lang: [\"ar\", \"bn\", \"de\", \"en-GB\", \"en-US\", \"es\", \"fr\", \"hi\", \"id\", \"ja\", \"pa\", \"pt\", \"ru\", \"tr\", \"zh\"],\n spellcheck: Bool,\n autocorrect: Bool,\n autocapitalize: Bool,\n style: null,\n tabindex: null,\n title: null,\n translate: [\"yes\", \"no\"],\n rel: [\"stylesheet\", \"alternate\", \"author\", \"bookmark\", \"help\", \"license\", \"next\", \"nofollow\", \"noreferrer\", \"prefetch\", \"prev\", \"search\", \"tag\"],\n role: /*@__PURE__*/\"alert application article banner button cell checkbox complementary contentinfo dialog document feed figure form grid gridcell heading img list listbox listitem main navigation region row rowgroup search switch tab table tabpanel textbox timer\".split(\" \"),\n \"aria-activedescendant\": null,\n \"aria-atomic\": Bool,\n \"aria-autocomplete\": [\"inline\", \"list\", \"both\", \"none\"],\n \"aria-busy\": Bool,\n \"aria-checked\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-controls\": null,\n \"aria-describedby\": null,\n \"aria-disabled\": Bool,\n \"aria-dropeffect\": null,\n \"aria-expanded\": [\"true\", \"false\", \"undefined\"],\n \"aria-flowto\": null,\n \"aria-grabbed\": [\"true\", \"false\", \"undefined\"],\n \"aria-haspopup\": Bool,\n \"aria-hidden\": Bool,\n \"aria-invalid\": [\"true\", \"false\", \"grammar\", \"spelling\"],\n \"aria-label\": null,\n \"aria-labelledby\": null,\n \"aria-level\": null,\n \"aria-live\": [\"off\", \"polite\", \"assertive\"],\n \"aria-multiline\": Bool,\n \"aria-multiselectable\": Bool,\n \"aria-owns\": null,\n \"aria-posinset\": null,\n \"aria-pressed\": [\"true\", \"false\", \"mixed\", \"undefined\"],\n \"aria-readonly\": Bool,\n \"aria-relevant\": null,\n \"aria-required\": Bool,\n \"aria-selected\": [\"true\", \"false\", \"undefined\"],\n \"aria-setsize\": null,\n \"aria-sort\": [\"ascending\", \"descending\", \"none\", \"other\"],\n \"aria-valuemax\": null,\n \"aria-valuemin\": null,\n \"aria-valuenow\": null,\n \"aria-valuetext\": null\n};\nconst eventAttributes = /*@__PURE__*/(\"beforeunload copy cut dragstart dragover dragleave dragenter dragend \" +\n \"drag paste focus blur change click load mousedown mouseenter mouseleave \" +\n \"mouseup keydown keyup resize scroll unload\").split(\" \").map(n => \"on\" + n);\nfor (let a of eventAttributes)\n GlobalAttrs[a] = null;\nclass Schema {\n constructor(extraTags, extraAttrs) {\n this.tags = Object.assign(Object.assign({}, Tags), extraTags);\n this.globalAttrs = Object.assign(Object.assign({}, GlobalAttrs), extraAttrs);\n this.allTags = Object.keys(this.tags);\n this.globalAttrNames = Object.keys(this.globalAttrs);\n }\n}\nSchema.default = /*@__PURE__*/new Schema;\nfunction elementName(doc, tree, max = doc.length) {\n if (!tree)\n return \"\";\n let tag = tree.firstChild;\n let name = tag && tag.getChild(\"TagName\");\n return name ? doc.sliceString(name.from, Math.min(name.to, max)) : \"\";\n}\nfunction findParentElement(tree, skip = false) {\n for (; tree; tree = tree.parent)\n if (tree.name == \"Element\") {\n if (skip)\n skip = false;\n else\n return tree;\n }\n return null;\n}\nfunction allowedChildren(doc, tree, schema) {\n let parentInfo = schema.tags[elementName(doc, findParentElement(tree))];\n return (parentInfo === null || parentInfo === void 0 ? void 0 : parentInfo.children) || schema.allTags;\n}\nfunction openTags(doc, tree) {\n let open = [];\n for (let parent = findParentElement(tree); parent && !parent.type.isTop; parent = findParentElement(parent.parent)) {\n let tagName = elementName(doc, parent);\n if (tagName && parent.lastChild.name == \"CloseTag\")\n break;\n if (tagName && open.indexOf(tagName) < 0 && (tree.name == \"EndTag\" || tree.from >= parent.firstChild.to))\n open.push(tagName);\n }\n return open;\n}\nconst identifier = /^[:\\-\\.\\w\\u00b7-\\uffff]*$/;\nfunction completeTag(state, schema, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n let parent = findParentElement(tree, true);\n return { from, to,\n options: allowedChildren(state.doc, parent, schema).map(tagName => ({ label: tagName, type: \"type\" })).concat(openTags(state.doc, tree).map((tag, i) => ({ label: \"/\" + tag, apply: \"/\" + tag + end,\n type: \"type\", boost: 99 - i }))),\n validFor: /^\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeCloseTag(state, tree, from, to) {\n let end = /\\s*>/.test(state.sliceDoc(to, to + 5)) ? \"\" : \">\";\n return { from, to,\n options: openTags(state.doc, tree).map((tag, i) => ({ label: tag, apply: tag + end, type: \"type\", boost: 99 - i })),\n validFor: identifier };\n}\nfunction completeStartTag(state, schema, tree, pos) {\n let options = [], level = 0;\n for (let tagName of allowedChildren(state.doc, tree, schema))\n options.push({ label: \"<\" + tagName, type: \"type\" });\n for (let open of openTags(state.doc, tree))\n options.push({ label: \"\", type: \"type\", boost: 99 - level++ });\n return { from: pos, to: pos, options, validFor: /^<\\/?[:\\-\\.\\w\\u00b7-\\uffff]*$/ };\n}\nfunction completeAttrName(state, schema, tree, from, to) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n let localAttrs = info && info.attrs ? Object.keys(info.attrs) : [];\n let names = info && info.globalAttrs === false ? localAttrs\n : localAttrs.length ? localAttrs.concat(schema.globalAttrNames) : schema.globalAttrNames;\n return { from, to,\n options: names.map(attrName => ({ label: attrName, type: \"property\" })),\n validFor: identifier };\n}\nfunction completeAttrValue(state, schema, tree, from, to) {\n var _a;\n let nameNode = (_a = tree.parent) === null || _a === void 0 ? void 0 : _a.getChild(\"AttributeName\");\n let options = [], token = undefined;\n if (nameNode) {\n let attrName = state.sliceDoc(nameNode.from, nameNode.to);\n let attrs = schema.globalAttrs[attrName];\n if (!attrs) {\n let elt = findParentElement(tree), info = elt ? schema.tags[elementName(state.doc, elt)] : null;\n attrs = (info === null || info === void 0 ? void 0 : info.attrs) && info.attrs[attrName];\n }\n if (attrs) {\n let base = state.sliceDoc(from, to).toLowerCase(), quoteStart = '\"', quoteEnd = '\"';\n if (/^['\"]/.test(base)) {\n token = base[0] == '\"' ? /^[^\"]*$/ : /^[^']*$/;\n quoteStart = \"\";\n quoteEnd = state.sliceDoc(to, to + 1) == base[0] ? \"\" : base[0];\n base = base.slice(1);\n from++;\n }\n else {\n token = /^[^\\s<>='\"]*$/;\n }\n for (let value of attrs)\n options.push({ label: value, apply: quoteStart + value + quoteEnd, type: \"constant\" });\n }\n }\n return { from, to, options, validFor: token };\n}\nfunction htmlCompletionFor(schema, context) {\n let { state, pos } = context, tree = syntaxTree(state).resolveInner(pos, -1), around = tree.resolve(pos);\n for (let scan = pos, before; around == tree && (before = tree.childBefore(scan));) {\n let last = before.lastChild;\n if (!last || !last.type.isError || last.from < last.to)\n break;\n around = tree = before;\n scan = last.from;\n }\n if (tree.name == \"TagName\") {\n return tree.parent && /CloseTag$/.test(tree.parent.name) ? completeCloseTag(state, tree, tree.from, pos)\n : completeTag(state, schema, tree, tree.from, pos);\n }\n else if (tree.name == \"StartTag\") {\n return completeTag(state, schema, tree, pos, pos);\n }\n else if (tree.name == \"StartCloseTag\" || tree.name == \"IncompleteCloseTag\") {\n return completeCloseTag(state, tree, pos, pos);\n }\n else if (tree.name == \"OpenTag\" || tree.name == \"SelfClosingTag\" || tree.name == \"AttributeName\") {\n return completeAttrName(state, schema, tree, tree.name == \"AttributeName\" ? tree.from : pos, pos);\n }\n else if (tree.name == \"Is\" || tree.name == \"AttributeValue\" || tree.name == \"UnquotedAttributeValue\") {\n return completeAttrValue(state, schema, tree, tree.name == \"Is\" ? pos : tree.from, pos);\n }\n else if (context.explicit && (around.name == \"Element\" || around.name == \"Text\" || around.name == \"Document\")) {\n return completeStartTag(state, schema, tree, pos);\n }\n else {\n return null;\n }\n}\n/**\nHTML tag completion. Opens and closes tags and attributes in a\ncontext-aware way.\n*/\nfunction htmlCompletionSource(context) {\n return htmlCompletionFor(Schema.default, context);\n}\n/**\nCreate a completion source for HTML extended with additional tags\nor attributes.\n*/\nfunction htmlCompletionSourceWith(config) {\n let { extraTags, extraGlobalAttributes: extraAttrs } = config;\n let schema = extraAttrs || extraTags ? new Schema(extraTags, extraAttrs) : Schema.default;\n return (context) => htmlCompletionFor(schema, context);\n}\n\nconst jsonParser = /*@__PURE__*/javascriptLanguage.parser.configure({ top: \"SingleExpression\" });\nconst defaultNesting = [\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript\" || attrs.lang == \"ts\",\n parser: typescriptLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/babel\" || attrs.type == \"text/jsx\",\n parser: jsxLanguage.parser },\n { tag: \"script\",\n attrs: attrs => attrs.type == \"text/typescript-jsx\",\n parser: tsxLanguage.parser },\n { tag: \"script\",\n attrs(attrs) {\n return /^(importmap|speculationrules|application\\/(.+\\+)?json)$/i.test(attrs.type);\n },\n parser: jsonParser },\n { tag: \"script\",\n attrs(attrs) {\n return !attrs.type || /^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i.test(attrs.type);\n },\n parser: javascriptLanguage.parser },\n { tag: \"style\",\n attrs(attrs) {\n return (!attrs.lang || attrs.lang == \"css\") && (!attrs.type || /^(text\\/)?(x-)?(stylesheet|css)$/i.test(attrs.type));\n },\n parser: cssLanguage.parser }\n];\nconst defaultAttrs = /*@__PURE__*/[\n { name: \"style\",\n parser: /*@__PURE__*/cssLanguage.parser.configure({ top: \"Styles\" }) }\n].concat(/*@__PURE__*/eventAttributes.map(name => ({ name, parser: javascriptLanguage.parser })));\n/**\nA language provider based on the [Lezer HTML\nparser](https://github.com/lezer-parser/html), extended with the\nJavaScript and CSS parsers to parse the content of `\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationRawTagOpen(code) {\n if (code === 47) {\n effects.consume(code);\n buffer = '';\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In raw continuation, after ` | \n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function continuationRawEndTag(code) {\n if (code === 62) {\n const name = buffer.toLowerCase();\n if (htmlRawNames.includes(name)) {\n effects.consume(code);\n return continuationClose;\n }\n return continuation(code);\n }\n if (asciiAlpha(code) && buffer.length < 8) {\n effects.consume(code);\n // @ts-expect-error: not null.\n buffer += String.fromCharCode(code);\n return continuationRawEndTag;\n }\n return continuation(code);\n }\n\n /**\n * In cdata continuation, after `]`, expecting `]>`.\n *\n * ```markdown\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationCdataInside(code) {\n if (code === 93) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In declaration or instruction continuation, at `>`.\n *\n * ```markdown\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | \n * ^\n * > | &<]]>\n * ^\n * ```\n *\n * @type {State}\n */\n function continuationDeclarationInside(code) {\n if (code === 62) {\n effects.consume(code);\n return continuationClose;\n }\n\n // More dashes.\n if (code === 45 && marker === 2) {\n effects.consume(code);\n return continuationDeclarationInside;\n }\n return continuation(code);\n }\n\n /**\n * In closed continuation: everything we get until the eol/eof is part of it.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationClose(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"htmlFlowData\");\n return continuationAfter(code);\n }\n effects.consume(code);\n return continuationClose;\n }\n\n /**\n * Done.\n *\n * ```markdown\n * > | \n * ^\n * ```\n *\n * @type {State}\n */\n function continuationAfter(code) {\n effects.exit(\"htmlFlow\");\n // // Feel free to interrupt.\n // tokenizer.interrupt = false\n // // No longer concrete.\n // tokenizer.concrete = false\n return ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuationStart(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * At eol, before continuation.\n *\n * ```markdown\n * > | * ```js\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * A continuation.\n *\n * ```markdown\n * | * ```js\n * > | b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeBlankLineBefore(effects, ok, nok) {\n return start;\n\n /**\n * Before eol, expecting blank line.\n *\n * ```markdown\n * > |
\n * ^\n * |\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return effects.attempt(blankLine, ok, nok);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nconst nonLazyContinuation = {\n tokenize: tokenizeNonLazyContinuation,\n partial: true\n};\n\n/** @type {Construct} */\nexport const codeFenced = {\n name: 'codeFenced',\n tokenize: tokenizeCodeFenced,\n concrete: true\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeFenced(effects, ok, nok) {\n const self = this;\n /** @type {Construct} */\n const closeStart = {\n tokenize: tokenizeCloseStart,\n partial: true\n };\n let initialPrefix = 0;\n let sizeOpen = 0;\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Start of code.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // To do: parse whitespace like `markdown-rs`.\n return beforeSequenceOpen(code);\n }\n\n /**\n * In opening fence, after prefix, at sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeSequenceOpen(code) {\n const tail = self.events[self.events.length - 1];\n initialPrefix = tail && tail[1].type === \"linePrefix\" ? tail[2].sliceSerialize(tail[1], true).length : 0;\n marker = code;\n effects.enter(\"codeFenced\");\n effects.enter(\"codeFencedFence\");\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening fence sequence.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === marker) {\n sizeOpen++;\n effects.consume(code);\n return sequenceOpen;\n }\n if (sizeOpen < 3) {\n return nok(code);\n }\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, infoBefore, \"whitespace\")(code) : infoBefore(code);\n }\n\n /**\n * In opening fence, after the sequence (and optional whitespace), before info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function infoBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return self.interrupt ? ok(code) : effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFencedFenceInfo\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return info(code);\n }\n\n /**\n * In info.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function info(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return infoBefore(code);\n }\n if (markdownSpace(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceInfo\");\n return factorySpace(effects, metaBefore, \"whitespace\")(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return info;\n }\n\n /**\n * In opening fence, after info and whitespace, before meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function metaBefore(code) {\n if (code === null || markdownLineEnding(code)) {\n return infoBefore(code);\n }\n effects.enter(\"codeFencedFenceMeta\");\n effects.enter(\"chunkString\", {\n contentType: \"string\"\n });\n return meta(code);\n }\n\n /**\n * In meta.\n *\n * ```markdown\n * > | ~~~js eval\n * ^\n * | alert(1)\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function meta(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"chunkString\");\n effects.exit(\"codeFencedFenceMeta\");\n return infoBefore(code);\n }\n if (code === 96 && code === marker) {\n return nok(code);\n }\n effects.consume(code);\n return meta;\n }\n\n /**\n * At eol/eof in code, before a non-lazy closing fence or content.\n *\n * ```markdown\n * > | ~~~js\n * ^\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function atNonLazyBreak(code) {\n return effects.attempt(closeStart, after, contentBefore)(code);\n }\n\n /**\n * Before code content, not a closing fence, at eol.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return contentStart;\n }\n\n /**\n * Before code content, not a closing fence.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentStart(code) {\n return initialPrefix > 0 && markdownSpace(code) ? factorySpace(effects, beforeContentChunk, \"linePrefix\", initialPrefix + 1)(code) : beforeContentChunk(code);\n }\n\n /**\n * Before code content, after optional prefix.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function beforeContentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n return effects.check(nonLazyContinuation, atNonLazyBreak, after)(code);\n }\n effects.enter(\"codeFlowValue\");\n return contentChunk(code);\n }\n\n /**\n * In code content.\n *\n * ```markdown\n * | ~~~js\n * > | alert(1)\n * ^^^^^^^^\n * | ~~~\n * ```\n *\n * @type {State}\n */\n function contentChunk(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFlowValue\");\n return beforeContentChunk(code);\n }\n effects.consume(code);\n return contentChunk;\n }\n\n /**\n * After code.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n effects.exit(\"codeFenced\");\n return ok(code);\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeCloseStart(effects, ok, nok) {\n let size = 0;\n return startBefore;\n\n /**\n *\n *\n * @type {State}\n */\n function startBefore(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return start;\n }\n\n /**\n * Before closing fence, at optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Always populated by defaults.\n\n // To do: `enter` here or in next state?\n effects.enter(\"codeFencedFence\");\n return markdownSpace(code) ? factorySpace(effects, beforeSequenceClose, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : beforeSequenceClose(code);\n }\n\n /**\n * In closing fence, after optional whitespace, at sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function beforeSequenceClose(code) {\n if (code === marker) {\n effects.enter(\"codeFencedFenceSequence\");\n return sequenceClose(code);\n }\n return nok(code);\n }\n\n /**\n * In closing fence sequence.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n if (code === marker) {\n size++;\n effects.consume(code);\n return sequenceClose;\n }\n if (size >= sizeOpen) {\n effects.exit(\"codeFencedFenceSequence\");\n return markdownSpace(code) ? factorySpace(effects, sequenceCloseAfter, \"whitespace\")(code) : sequenceCloseAfter(code);\n }\n return nok(code);\n }\n\n /**\n * After closing fence sequence, after optional whitespace.\n *\n * ```markdown\n * | ~~~js\n * | alert(1)\n * > | ~~~\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceCloseAfter(code) {\n if (code === null || markdownLineEnding(code)) {\n effects.exit(\"codeFencedFence\");\n return ok(code);\n }\n return nok(code);\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeNonLazyContinuation(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n *\n *\n * @type {State}\n */\n function start(code) {\n if (code === null) {\n return nok(code);\n }\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineStart;\n }\n\n /**\n *\n *\n * @type {State}\n */\n function lineStart(code) {\n return self.parser.lazy[self.now().line] ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { decodeNamedCharacterReference } from 'decode-named-character-reference';\nimport { asciiAlphanumeric, asciiDigit, asciiHexDigit } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterReference = {\n name: 'characterReference',\n tokenize: tokenizeCharacterReference\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterReference(effects, ok, nok) {\n const self = this;\n let size = 0;\n /** @type {number} */\n let max;\n /** @type {(code: Code) => boolean} */\n let test;\n return start;\n\n /**\n * Start of character reference.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterReference\");\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n return open;\n }\n\n /**\n * After `&`, at `#` for numeric references or alphanumeric for named\n * references.\n *\n * ```markdown\n * > | a&b\n * ^\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 35) {\n effects.enter(\"characterReferenceMarkerNumeric\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerNumeric\");\n return numeric;\n }\n effects.enter(\"characterReferenceValue\");\n max = 31;\n test = asciiAlphanumeric;\n return value(code);\n }\n\n /**\n * After `#`, at `x` for hexadecimals or digit for decimals.\n *\n * ```markdown\n * > | a{b\n * ^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function numeric(code) {\n if (code === 88 || code === 120) {\n effects.enter(\"characterReferenceMarkerHexadecimal\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarkerHexadecimal\");\n effects.enter(\"characterReferenceValue\");\n max = 6;\n test = asciiHexDigit;\n return value;\n }\n effects.enter(\"characterReferenceValue\");\n max = 7;\n test = asciiDigit;\n return value(code);\n }\n\n /**\n * After markers (`&#x`, `&#`, or `&`), in value, before `;`.\n *\n * The character reference kind defines what and how many characters are\n * allowed.\n *\n * ```markdown\n * > | a&b\n * ^^^\n * > | a{b\n * ^^^\n * > | a b\n * ^\n * ```\n *\n * @type {State}\n */\n function value(code) {\n if (code === 59 && size) {\n const token = effects.exit(\"characterReferenceValue\");\n if (test === asciiAlphanumeric && !decodeNamedCharacterReference(self.sliceSerialize(token))) {\n return nok(code);\n }\n\n // To do: `markdown-rs` uses a different name:\n // `CharacterReferenceMarkerSemi`.\n effects.enter(\"characterReferenceMarker\");\n effects.consume(code);\n effects.exit(\"characterReferenceMarker\");\n effects.exit(\"characterReference\");\n return ok;\n }\n if (test(code) && size++ < max) {\n effects.consume(code);\n return value;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiPunctuation } from 'micromark-util-character';\n/** @type {Construct} */\nexport const characterEscape = {\n name: 'characterEscape',\n tokenize: tokenizeCharacterEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCharacterEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of character escape.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"characterEscape\");\n effects.enter(\"escapeMarker\");\n effects.consume(code);\n effects.exit(\"escapeMarker\");\n return inside;\n }\n\n /**\n * After `\\`, at punctuation.\n *\n * ```markdown\n * > | a\\*b\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // ASCII punctuation.\n if (asciiPunctuation(code)) {\n effects.enter(\"characterEscapeValue\");\n effects.consume(code);\n effects.exit(\"characterEscapeValue\");\n effects.exit(\"characterEscape\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const lineEnding = {\n name: 'lineEnding',\n tokenize: tokenizeLineEnding\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLineEnding(effects, ok) {\n return start;\n\n /** @type {State} */\n function start(code) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return factorySpace(effects, ok, \"linePrefix\");\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factoryDestination } from 'micromark-factory-destination';\nimport { factoryLabel } from 'micromark-factory-label';\nimport { factoryTitle } from 'micromark-factory-title';\nimport { factoryWhitespace } from 'micromark-factory-whitespace';\nimport { markdownLineEndingOrSpace } from 'micromark-util-character';\nimport { push, splice } from 'micromark-util-chunked';\nimport { normalizeIdentifier } from 'micromark-util-normalize-identifier';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const labelEnd = {\n name: 'labelEnd',\n tokenize: tokenizeLabelEnd,\n resolveTo: resolveToLabelEnd,\n resolveAll: resolveAllLabelEnd\n};\n\n/** @type {Construct} */\nconst resourceConstruct = {\n tokenize: tokenizeResource\n};\n/** @type {Construct} */\nconst referenceFullConstruct = {\n tokenize: tokenizeReferenceFull\n};\n/** @type {Construct} */\nconst referenceCollapsedConstruct = {\n tokenize: tokenizeReferenceCollapsed\n};\n\n/** @type {Resolver} */\nfunction resolveAllLabelEnd(events) {\n let index = -1;\n while (++index < events.length) {\n const token = events[index][1];\n if (token.type === \"labelImage\" || token.type === \"labelLink\" || token.type === \"labelEnd\") {\n // Remove the marker.\n events.splice(index + 1, token.type === \"labelImage\" ? 4 : 2);\n token.type = \"data\";\n index++;\n }\n }\n return events;\n}\n\n/** @type {Resolver} */\nfunction resolveToLabelEnd(events, context) {\n let index = events.length;\n let offset = 0;\n /** @type {Token} */\n let token;\n /** @type {number | undefined} */\n let open;\n /** @type {number | undefined} */\n let close;\n /** @type {Array} */\n let media;\n\n // Find an opening.\n while (index--) {\n token = events[index][1];\n if (open) {\n // If we see another link, or inactive link label, we’ve been here before.\n if (token.type === \"link\" || token.type === \"labelLink\" && token._inactive) {\n break;\n }\n\n // Mark other link openings as inactive, as we can’t have links in\n // links.\n if (events[index][0] === 'enter' && token.type === \"labelLink\") {\n token._inactive = true;\n }\n } else if (close) {\n if (events[index][0] === 'enter' && (token.type === \"labelImage\" || token.type === \"labelLink\") && !token._balanced) {\n open = index;\n if (token.type !== \"labelLink\") {\n offset = 2;\n break;\n }\n }\n } else if (token.type === \"labelEnd\") {\n close = index;\n }\n }\n const group = {\n type: events[open][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n };\n const label = {\n type: \"label\",\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[close][1].end)\n };\n const text = {\n type: \"labelText\",\n start: Object.assign({}, events[open + offset + 2][1].end),\n end: Object.assign({}, events[close - 2][1].start)\n };\n media = [['enter', group, context], ['enter', label, context]];\n\n // Opening marker.\n media = push(media, events.slice(open + 1, open + offset + 3));\n\n // Text open.\n media = push(media, [['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n media = push(media, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + offset + 4, close - 3), context));\n\n // Text close, marker close, label close.\n media = push(media, [['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context]]);\n\n // Reference, resource, or so.\n media = push(media, events.slice(close + 1));\n\n // Media close.\n media = push(media, [['exit', group, context]]);\n splice(events, open, events.length, media);\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelEnd(effects, ok, nok) {\n const self = this;\n let index = self.events.length;\n /** @type {Token} */\n let labelStart;\n /** @type {boolean} */\n let defined;\n\n // Find an opening.\n while (index--) {\n if ((self.events[index][1].type === \"labelImage\" || self.events[index][1].type === \"labelLink\") && !self.events[index][1]._balanced) {\n labelStart = self.events[index][1];\n break;\n }\n }\n return start;\n\n /**\n * Start of label end.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // If there is not an okay opening.\n if (!labelStart) {\n return nok(code);\n }\n\n // If the corresponding label (link) start is marked as inactive,\n // it means we’d be wrapping a link, like this:\n //\n // ```markdown\n // > | a [b [c](d) e](f) g.\n // ^\n // ```\n //\n // We can’t have that, so it’s just balanced brackets.\n if (labelStart._inactive) {\n return labelEndNok(code);\n }\n defined = self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })));\n effects.enter(\"labelEnd\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelEnd\");\n return after;\n }\n\n /**\n * After `]`.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Note: `markdown-rs` also parses GFM footnotes here, which for us is in\n // an extension.\n\n // Resource (`[asd](fgh)`)?\n if (code === 40) {\n return effects.attempt(resourceConstruct, labelEndOk, defined ? labelEndOk : labelEndNok)(code);\n }\n\n // Full (`[asd][fgh]`) or collapsed (`[asd][]`) reference?\n if (code === 91) {\n return effects.attempt(referenceFullConstruct, labelEndOk, defined ? referenceNotFull : labelEndNok)(code);\n }\n\n // Shortcut (`[asd]`) reference?\n return defined ? labelEndOk(code) : labelEndNok(code);\n }\n\n /**\n * After `]`, at `[`, but not at a full reference.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceNotFull(code) {\n return effects.attempt(referenceCollapsedConstruct, labelEndOk, labelEndNok)(code);\n }\n\n /**\n * Done, we found something.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * > | [a][b] c\n * ^\n * > | [a][] b\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndOk(code) {\n // Note: `markdown-rs` does a bunch of stuff here.\n return ok(code);\n }\n\n /**\n * Done, it’s nothing.\n *\n * There was an okay opening, but we didn’t match anything.\n *\n * ```markdown\n * > | [a](b c\n * ^\n * > | [a][b c\n * ^\n * > | [a] b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEndNok(code) {\n labelStart._balanced = true;\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeResource(effects, ok, nok) {\n return resourceStart;\n\n /**\n * At a resource.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceStart(code) {\n effects.enter(\"resource\");\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n return resourceBefore;\n }\n\n /**\n * In resource, after `(`, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBefore(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceOpen)(code) : resourceOpen(code);\n }\n\n /**\n * In resource, after optional whitespace, at `)` or a destination.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceOpen(code) {\n if (code === 41) {\n return resourceEnd(code);\n }\n return factoryDestination(effects, resourceDestinationAfter, resourceDestinationMissing, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(code);\n }\n\n /**\n * In resource, after destination, at optional whitespace.\n *\n * ```markdown\n * > | [a](b) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceBetween)(code) : resourceEnd(code);\n }\n\n /**\n * At invalid destination.\n *\n * ```markdown\n * > | [a](<<) b\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceDestinationMissing(code) {\n return nok(code);\n }\n\n /**\n * In resource, after destination and whitespace, at `(` or title.\n *\n * ```markdown\n * > | [a](b ) c\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceBetween(code) {\n if (code === 34 || code === 39 || code === 40) {\n return factoryTitle(effects, resourceTitleAfter, nok, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(code);\n }\n return resourceEnd(code);\n }\n\n /**\n * In resource, after title, at optional whitespace.\n *\n * ```markdown\n * > | [a](b \"c\") d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceTitleAfter(code) {\n return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, resourceEnd)(code) : resourceEnd(code);\n }\n\n /**\n * In resource, at `)`.\n *\n * ```markdown\n * > | [a](b) d\n * ^\n * ```\n *\n * @type {State}\n */\n function resourceEnd(code) {\n if (code === 41) {\n effects.enter(\"resourceMarker\");\n effects.consume(code);\n effects.exit(\"resourceMarker\");\n effects.exit(\"resource\");\n return ok;\n }\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceFull(effects, ok, nok) {\n const self = this;\n return referenceFull;\n\n /**\n * In a reference (full), at the `[`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFull(code) {\n return factoryLabel.call(self, effects, referenceFullAfter, referenceFullMissing, \"reference\", \"referenceMarker\", \"referenceString\")(code);\n }\n\n /**\n * In a reference (full), after `]`.\n *\n * ```markdown\n * > | [a][b] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullAfter(code) {\n return self.parser.defined.includes(normalizeIdentifier(self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1))) ? ok(code) : nok(code);\n }\n\n /**\n * In reference (full) that was missing.\n *\n * ```markdown\n * > | [a][b d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceFullMissing(code) {\n return nok(code);\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeReferenceCollapsed(effects, ok, nok) {\n return referenceCollapsedStart;\n\n /**\n * In reference (collapsed), at `[`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedStart(code) {\n // We only attempt a collapsed label if there’s a `[`.\n\n effects.enter(\"reference\");\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n return referenceCollapsedOpen;\n }\n\n /**\n * In reference (collapsed), at `]`.\n *\n * > 👉 **Note**: we only get here if the label is defined.\n *\n * ```markdown\n * > | [a][] d\n * ^\n * ```\n *\n * @type {State}\n */\n function referenceCollapsedOpen(code) {\n if (code === 93) {\n effects.enter(\"referenceMarker\");\n effects.consume(code);\n effects.exit(\"referenceMarker\");\n effects.exit(\"reference\");\n return ok;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartImage = {\n name: 'labelStartImage',\n tokenize: tokenizeLabelStartImage,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartImage(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (image) start.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelImage\");\n effects.enter(\"labelImageMarker\");\n effects.consume(code);\n effects.exit(\"labelImageMarker\");\n return open;\n }\n\n /**\n * After `!`, at `[`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 91) {\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelImage\");\n return after;\n }\n return nok(code);\n }\n\n /**\n * After `![`.\n *\n * ```markdown\n * > | a ![b] c\n * ^\n * ```\n *\n * This is needed in because, when GFM footnotes are enabled, images never\n * form when started with a `^`.\n * Instead, links form:\n *\n * ```markdown\n * ![^a](b)\n *\n * ![^a][b]\n *\n * [b]: c\n * ```\n *\n * ```html\n *

!^a

\n *

!^a

\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // To do: use a new field to do this, this is still needed for\n // `micromark-extension-gfm-footnote`, but the `label-start-link`\n // behavior isn’t.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n */\n\nimport {\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\n/**\n * Classify whether a code represents whitespace, punctuation, or something\n * else.\n *\n * Used for attention (emphasis, strong), whose sequences can open or close\n * based on the class of surrounding characters.\n *\n * > 👉 **Note**: eof (`null`) is seen as whitespace.\n *\n * @param {Code} code\n * Code.\n * @returns {typeof constants.characterGroupWhitespace | typeof constants.characterGroupPunctuation | undefined}\n * Group.\n */\nexport function classifyCharacter(code) {\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return 1\n }\n if (unicodePunctuation(code)) {\n return 2\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { push, splice } from 'micromark-util-chunked';\nimport { classifyCharacter } from 'micromark-util-classify-character';\nimport { resolveAll } from 'micromark-util-resolve-all';\n/** @type {Construct} */\nexport const attention = {\n name: 'attention',\n tokenize: tokenizeAttention,\n resolveAll: resolveAllAttention\n};\n\n/**\n * Take all events and resolve attention to emphasis or strong.\n *\n * @type {Resolver}\n */\n// eslint-disable-next-line complexity\nfunction resolveAllAttention(events, context) {\n let index = -1;\n /** @type {number} */\n let open;\n /** @type {Token} */\n let group;\n /** @type {Token} */\n let text;\n /** @type {Token} */\n let openingSequence;\n /** @type {Token} */\n let closingSequence;\n /** @type {number} */\n let use;\n /** @type {Array} */\n let nextEvents;\n /** @type {number} */\n let offset;\n\n // Walk through all events.\n //\n // Note: performance of this is fine on an mb of normal markdown, but it’s\n // a bottleneck for malicious stuff.\n while (++index < events.length) {\n // Find a token that can close.\n if (events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close) {\n open = index;\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && events[open][1]._open &&\n // If the markers are the same:\n context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0)) {\n // If the opening can close or the closing can open,\n // and the close size *is not* a multiple of three,\n // but the sum of the opening and closing size *is* multiple of three,\n // then don’t match.\n if ((events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && !((events[open][1].end.offset - events[open][1].start.offset + events[index][1].end.offset - events[index][1].start.offset) % 3)) {\n continue;\n }\n\n // Number of markers to use from the sequence.\n use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 ? 2 : 1;\n const start = Object.assign({}, events[open][1].end);\n const end = Object.assign({}, events[index][1].start);\n movePoint(start, -use);\n movePoint(end, use);\n openingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start,\n end: Object.assign({}, events[open][1].end)\n };\n closingSequence = {\n type: use > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: Object.assign({}, events[index][1].start),\n end\n };\n text = {\n type: use > 1 ? \"strongText\" : \"emphasisText\",\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n };\n group = {\n type: use > 1 ? \"strong\" : \"emphasis\",\n start: Object.assign({}, openingSequence.start),\n end: Object.assign({}, closingSequence.end)\n };\n events[open][1].end = Object.assign({}, openingSequence.start);\n events[index][1].start = Object.assign({}, closingSequence.end);\n nextEvents = [];\n\n // If there are more markers in the opening, add them before.\n if (events[open][1].end.offset - events[open][1].start.offset) {\n nextEvents = push(nextEvents, [['enter', events[open][1], context], ['exit', events[open][1], context]]);\n }\n\n // Opening.\n nextEvents = push(nextEvents, [['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context]]);\n\n // Always populated by defaults.\n\n // Between.\n nextEvents = push(nextEvents, resolveAll(context.parser.constructs.insideSpan.null, events.slice(open + 1, index), context));\n\n // Closing.\n nextEvents = push(nextEvents, [['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context]]);\n\n // If there are more markers in the closing, add them after.\n if (events[index][1].end.offset - events[index][1].start.offset) {\n offset = 2;\n nextEvents = push(nextEvents, [['enter', events[index][1], context], ['exit', events[index][1], context]]);\n } else {\n offset = 0;\n }\n splice(events, open - 1, index - open + 3, nextEvents);\n index = open + nextEvents.length - offset - 2;\n break;\n }\n }\n }\n }\n\n // Remove remaining sequences.\n index = -1;\n while (++index < events.length) {\n if (events[index][1].type === 'attentionSequence') {\n events[index][1].type = 'data';\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAttention(effects, ok) {\n const attentionMarkers = this.parser.constructs.attentionMarkers.null;\n const previous = this.previous;\n const before = classifyCharacter(previous);\n\n /** @type {NonNullable} */\n let marker;\n return start;\n\n /**\n * Before a sequence.\n *\n * ```markdown\n * > | **\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n marker = code;\n effects.enter('attentionSequence');\n return inside(code);\n }\n\n /**\n * In a sequence.\n *\n * ```markdown\n * > | **\n * ^^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n if (code === marker) {\n effects.consume(code);\n return inside;\n }\n const token = effects.exit('attentionSequence');\n\n // To do: next major: move this to resolver, just like `markdown-rs`.\n const after = classifyCharacter(code);\n\n // Always populated by defaults.\n\n const open = !after || after === 2 && before || attentionMarkers.includes(code);\n const close = !before || before === 2 && after || attentionMarkers.includes(previous);\n token._open = Boolean(marker === 42 ? open : open && (before || !close));\n token._close = Boolean(marker === 42 ? close : close && (after || !open));\n return ok(code);\n }\n}\n\n/**\n * Move a point a bit.\n *\n * Note: `move` only works inside lines! It’s not possible to move past other\n * chunks (replacement characters, tabs, or line endings).\n *\n * @param {Point} point\n * @param {number} offset\n * @returns {undefined}\n */\nfunction movePoint(point, offset) {\n point.column += offset;\n point.offset += offset;\n point._bufferIndex += offset;\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { asciiAlpha, asciiAlphanumeric, asciiAtext, asciiControl } from 'micromark-util-character';\n/** @type {Construct} */\nexport const autolink = {\n name: 'autolink',\n tokenize: tokenizeAutolink\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeAutolink(effects, ok, nok) {\n let size = 0;\n return start;\n\n /**\n * Start of an autolink.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"autolink\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.enter(\"autolinkProtocol\");\n return open;\n }\n\n /**\n * After `<`, at protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (asciiAlpha(code)) {\n effects.consume(code);\n return schemeOrEmailAtext;\n }\n if (code === 64) {\n return nok(code);\n }\n return emailAtext(code);\n }\n\n /**\n * At second byte of protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeOrEmailAtext(code) {\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) {\n // Count the previous alphabetical from `open` too.\n size = 1;\n return schemeInsideOrEmailAtext(code);\n }\n return emailAtext(code);\n }\n\n /**\n * In ambiguous protocol or atext.\n *\n * ```markdown\n * > | ab\n * ^\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function schemeInsideOrEmailAtext(code) {\n if (code === 58) {\n effects.consume(code);\n size = 0;\n return urlInside;\n }\n\n // ASCII alphanumeric and `+`, `-`, and `.`.\n if ((code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32) {\n effects.consume(code);\n return schemeInsideOrEmailAtext;\n }\n size = 0;\n return emailAtext(code);\n }\n\n /**\n * After protocol, in URL.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function urlInside(code) {\n if (code === 62) {\n effects.exit(\"autolinkProtocol\");\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n\n // ASCII control, space, or `<`.\n if (code === null || code === 32 || code === 60 || asciiControl(code)) {\n return nok(code);\n }\n effects.consume(code);\n return urlInside;\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailAtext(code) {\n if (code === 64) {\n effects.consume(code);\n return emailAtSignOrDot;\n }\n if (asciiAtext(code)) {\n effects.consume(code);\n return emailAtext;\n }\n return nok(code);\n }\n\n /**\n * In label, after at-sign or dot.\n *\n * ```markdown\n * > | ab\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function emailAtSignOrDot(code) {\n return asciiAlphanumeric(code) ? emailLabel(code) : nok(code);\n }\n\n /**\n * In label, where `.` and `>` are allowed.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailLabel(code) {\n if (code === 46) {\n effects.consume(code);\n size = 0;\n return emailAtSignOrDot;\n }\n if (code === 62) {\n // Exit, then change the token type.\n effects.exit(\"autolinkProtocol\").type = \"autolinkEmail\";\n effects.enter(\"autolinkMarker\");\n effects.consume(code);\n effects.exit(\"autolinkMarker\");\n effects.exit(\"autolink\");\n return ok;\n }\n return emailValue(code);\n }\n\n /**\n * In label, where `.` and `>` are *not* allowed.\n *\n * Though, this is also used in `emailLabel` to parse other values.\n *\n * ```markdown\n * > | ab\n * ^\n * ```\n *\n * @type {State}\n */\n function emailValue(code) {\n // ASCII alphanumeric or `-`.\n if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) {\n const next = code === 45 ? emailValue : emailLabel;\n effects.consume(code);\n return next;\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { factorySpace } from 'micromark-factory-space';\nimport { asciiAlpha, asciiAlphanumeric, markdownLineEnding, markdownLineEndingOrSpace, markdownSpace } from 'micromark-util-character';\n/** @type {Construct} */\nexport const htmlText = {\n name: 'htmlText',\n tokenize: tokenizeHtmlText\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHtmlText(effects, ok, nok) {\n const self = this;\n /** @type {NonNullable | undefined} */\n let marker;\n /** @type {number} */\n let index;\n /** @type {State} */\n let returnState;\n return start;\n\n /**\n * Start of HTML (text).\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"htmlText\");\n effects.enter(\"htmlTextData\");\n effects.consume(code);\n return open;\n }\n\n /**\n * After `<`, at tag name or other stuff.\n *\n * ```markdown\n * > | a c\n * ^\n * > | a c\n * ^\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (code === 33) {\n effects.consume(code);\n return declarationOpen;\n }\n if (code === 47) {\n effects.consume(code);\n return tagCloseStart;\n }\n if (code === 63) {\n effects.consume(code);\n return instruction;\n }\n\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagOpen;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * > | a c\n * ^\n * > | a &<]]> c\n * ^\n * ```\n *\n * @type {State}\n */\n function declarationOpen(code) {\n if (code === 45) {\n effects.consume(code);\n return commentOpenInside;\n }\n if (code === 91) {\n effects.consume(code);\n index = 0;\n return cdataOpenInside;\n }\n if (asciiAlpha(code)) {\n effects.consume(code);\n return declaration;\n }\n return nok(code);\n }\n\n /**\n * In a comment, after ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentOpenInside(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return nok(code);\n }\n\n /**\n * In comment.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function comment(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 45) {\n effects.consume(code);\n return commentClose;\n }\n if (markdownLineEnding(code)) {\n returnState = comment;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return comment;\n }\n\n /**\n * In comment, after `-`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentClose(code) {\n if (code === 45) {\n effects.consume(code);\n return commentEnd;\n }\n return comment(code);\n }\n\n /**\n * In comment, after `--`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function commentEnd(code) {\n return code === 62 ? end(code) : code === 45 ? commentClose(code) : comment(code);\n }\n\n /**\n * After ` | a &<]]> b\n * ^^^^^^\n * ```\n *\n * @type {State}\n */\n function cdataOpenInside(code) {\n const value = \"CDATA[\";\n if (code === value.charCodeAt(index++)) {\n effects.consume(code);\n return index === value.length ? cdata : cdataOpenInside;\n }\n return nok(code);\n }\n\n /**\n * In CDATA.\n *\n * ```markdown\n * > | a &<]]> b\n * ^^^\n * ```\n *\n * @type {State}\n */\n function cdata(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataClose;\n }\n if (markdownLineEnding(code)) {\n returnState = cdata;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return cdata;\n }\n\n /**\n * In CDATA, after `]`, at another `]`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataClose(code) {\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In CDATA, after `]]`, at `>`.\n *\n * ```markdown\n * > | a &<]]> b\n * ^\n * ```\n *\n * @type {State}\n */\n function cdataEnd(code) {\n if (code === 62) {\n return end(code);\n }\n if (code === 93) {\n effects.consume(code);\n return cdataEnd;\n }\n return cdata(code);\n }\n\n /**\n * In declaration.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function declaration(code) {\n if (code === null || code === 62) {\n return end(code);\n }\n if (markdownLineEnding(code)) {\n returnState = declaration;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return declaration;\n }\n\n /**\n * In instruction.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instruction(code) {\n if (code === null) {\n return nok(code);\n }\n if (code === 63) {\n effects.consume(code);\n return instructionClose;\n }\n if (markdownLineEnding(code)) {\n returnState = instruction;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return instruction;\n }\n\n /**\n * In instruction, after `?`, at `>`.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function instructionClose(code) {\n return code === 62 ? end(code) : instruction(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseStart(code) {\n // ASCII alphabetical.\n if (asciiAlpha(code)) {\n effects.consume(code);\n return tagClose;\n }\n return nok(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagClose(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagClose;\n }\n return tagCloseBetween(code);\n }\n\n /**\n * In closing tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagCloseBetween(code) {\n if (markdownLineEnding(code)) {\n returnState = tagCloseBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagCloseBetween;\n }\n return end(code);\n }\n\n /**\n * After ` | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpen(code) {\n // ASCII alphanumerical and `-`.\n if (code === 45 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpen;\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In opening tag, after tag name.\n *\n * ```markdown\n * > | a c\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenBetween(code) {\n if (code === 47) {\n effects.consume(code);\n return end;\n }\n\n // ASCII alphabetical and `:` and `_`.\n if (code === 58 || code === 95 || asciiAlpha(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenBetween;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenBetween;\n }\n return end(code);\n }\n\n /**\n * In attribute name.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeName(code) {\n // ASCII alphabetical and `-`, `.`, `:`, and `_`.\n if (code === 45 || code === 46 || code === 58 || code === 95 || asciiAlphanumeric(code)) {\n effects.consume(code);\n return tagOpenAttributeName;\n }\n return tagOpenAttributeNameAfter(code);\n }\n\n /**\n * After attribute name, before initializer, the end of the tag, or\n * whitespace.\n *\n * ```markdown\n * > | a d\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeNameAfter(code) {\n if (code === 61) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeNameAfter;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeNameAfter;\n }\n return tagOpenBetween(code);\n }\n\n /**\n * Before unquoted, double quoted, or single quoted attribute value, allowing\n * whitespace.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueBefore(code) {\n if (code === null || code === 60 || code === 61 || code === 62 || code === 96) {\n return nok(code);\n }\n if (code === 34 || code === 39) {\n effects.consume(code);\n marker = code;\n return tagOpenAttributeValueQuoted;\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueBefore;\n return lineEndingBefore(code);\n }\n if (markdownSpace(code)) {\n effects.consume(code);\n return tagOpenAttributeValueBefore;\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * In double or single quoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuoted(code) {\n if (code === marker) {\n effects.consume(code);\n marker = undefined;\n return tagOpenAttributeValueQuotedAfter;\n }\n if (code === null) {\n return nok(code);\n }\n if (markdownLineEnding(code)) {\n returnState = tagOpenAttributeValueQuoted;\n return lineEndingBefore(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueQuoted;\n }\n\n /**\n * In unquoted attribute value.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueUnquoted(code) {\n if (code === null || code === 34 || code === 39 || code === 60 || code === 61 || code === 96) {\n return nok(code);\n }\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n effects.consume(code);\n return tagOpenAttributeValueUnquoted;\n }\n\n /**\n * After double or single quoted attribute value, before whitespace or the end\n * of the tag.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function tagOpenAttributeValueQuotedAfter(code) {\n if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) {\n return tagOpenBetween(code);\n }\n return nok(code);\n }\n\n /**\n * In certain circumstances of a tag where only an `>` is allowed.\n *\n * ```markdown\n * > | a e\n * ^\n * ```\n *\n * @type {State}\n */\n function end(code) {\n if (code === 62) {\n effects.consume(code);\n effects.exit(\"htmlTextData\");\n effects.exit(\"htmlText\");\n return ok;\n }\n return nok(code);\n }\n\n /**\n * At eol.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * > | a \n * ```\n *\n * @type {State}\n */\n function lineEndingBefore(code) {\n effects.exit(\"htmlTextData\");\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return lineEndingAfter;\n }\n\n /**\n * After eol, at optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfter(code) {\n // Always populated by defaults.\n\n return markdownSpace(code) ? factorySpace(effects, lineEndingAfterPrefix, \"linePrefix\", self.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4)(code) : lineEndingAfterPrefix(code);\n }\n\n /**\n * After eol, after optional whitespace.\n *\n * > 👉 **Note**: we can’t have blank lines in text, so no need to worry about\n * > empty tokens.\n *\n * ```markdown\n * | a \n * ^\n * ```\n *\n * @type {State}\n */\n function lineEndingAfterPrefix(code) {\n effects.enter(\"htmlTextData\");\n return returnState(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { labelEnd } from './label-end.js';\n\n/** @type {Construct} */\nexport const labelStartLink = {\n name: 'labelStartLink',\n tokenize: tokenizeLabelStartLink,\n resolveAll: labelEnd.resolveAll\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeLabelStartLink(effects, ok, nok) {\n const self = this;\n return start;\n\n /**\n * Start of label (link) start.\n *\n * ```markdown\n * > | a [b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"labelLink\");\n effects.enter(\"labelMarker\");\n effects.consume(code);\n effects.exit(\"labelMarker\");\n effects.exit(\"labelLink\");\n return after;\n }\n\n /** @type {State} */\n function after(code) {\n // To do: this isn’t needed in `micromark-extension-gfm-footnote`,\n // remove.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const hardBreakEscape = {\n name: 'hardBreakEscape',\n tokenize: tokenizeHardBreakEscape\n};\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeHardBreakEscape(effects, ok, nok) {\n return start;\n\n /**\n * Start of a hard break (escape).\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"hardBreakEscape\");\n effects.consume(code);\n return after;\n }\n\n /**\n * After `\\`, at eol.\n *\n * ```markdown\n * > | a\\\n * ^\n * | b\n * ```\n *\n * @type {State}\n */\n function after(code) {\n if (markdownLineEnding(code)) {\n effects.exit(\"hardBreakEscape\");\n return ok(code);\n }\n return nok(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Construct} Construct\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport { markdownLineEnding } from 'micromark-util-character';\n/** @type {Construct} */\nexport const codeText = {\n name: 'codeText',\n tokenize: tokenizeCodeText,\n resolve: resolveCodeText,\n previous\n};\n\n// To do: next major: don’t resolve, like `markdown-rs`.\n/** @type {Resolver} */\nfunction resolveCodeText(events) {\n let tailExitIndex = events.length - 4;\n let headEnterIndex = 3;\n /** @type {number} */\n let index;\n /** @type {number | undefined} */\n let enter;\n\n // If we start and end with an EOL or a space.\n if ((events[headEnterIndex][1].type === \"lineEnding\" || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === \"lineEnding\" || events[tailExitIndex][1].type === 'space')) {\n index = headEnterIndex;\n\n // And we have data.\n while (++index < tailExitIndex) {\n if (events[index][1].type === \"codeTextData\") {\n // Then we have padding.\n events[headEnterIndex][1].type = \"codeTextPadding\";\n events[tailExitIndex][1].type = \"codeTextPadding\";\n headEnterIndex += 2;\n tailExitIndex -= 2;\n break;\n }\n }\n }\n\n // Merge adjacent spaces and data.\n index = headEnterIndex - 1;\n tailExitIndex++;\n while (++index <= tailExitIndex) {\n if (enter === undefined) {\n if (index !== tailExitIndex && events[index][1].type !== \"lineEnding\") {\n enter = index;\n }\n } else if (index === tailExitIndex || events[index][1].type === \"lineEnding\") {\n events[enter][1].type = \"codeTextData\";\n if (index !== enter + 2) {\n events[enter][1].end = events[index - 1][1].end;\n events.splice(enter + 2, index - enter - 2);\n tailExitIndex -= index - enter - 2;\n index = enter + 2;\n }\n enter = undefined;\n }\n }\n return events;\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previous(code) {\n // If there is a previous code, there will always be a tail.\n return code !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeCodeText(effects, ok, nok) {\n const self = this;\n let sizeOpen = 0;\n /** @type {number} */\n let size;\n /** @type {Token} */\n let token;\n return start;\n\n /**\n * Start of code (text).\n *\n * ```markdown\n * > | `a`\n * ^\n * > | \\`a`\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter(\"codeText\");\n effects.enter(\"codeTextSequence\");\n return sequenceOpen(code);\n }\n\n /**\n * In opening sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceOpen(code) {\n if (code === 96) {\n effects.consume(code);\n sizeOpen++;\n return sequenceOpen;\n }\n effects.exit(\"codeTextSequence\");\n return between(code);\n }\n\n /**\n * Between something and something else.\n *\n * ```markdown\n * > | `a`\n * ^^\n * ```\n *\n * @type {State}\n */\n function between(code) {\n // EOF.\n if (code === null) {\n return nok(code);\n }\n\n // To do: next major: don’t do spaces in resolve, but when compiling,\n // like `markdown-rs`.\n // Tabs don’t work, and virtual spaces don’t make sense.\n if (code === 32) {\n effects.enter('space');\n effects.consume(code);\n effects.exit('space');\n return between;\n }\n\n // Closing fence? Could also be data.\n if (code === 96) {\n token = effects.enter(\"codeTextSequence\");\n size = 0;\n return sequenceClose(code);\n }\n if (markdownLineEnding(code)) {\n effects.enter(\"lineEnding\");\n effects.consume(code);\n effects.exit(\"lineEnding\");\n return between;\n }\n\n // Data.\n effects.enter(\"codeTextData\");\n return data(code);\n }\n\n /**\n * In data.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function data(code) {\n if (code === null || code === 32 || code === 96 || markdownLineEnding(code)) {\n effects.exit(\"codeTextData\");\n return between(code);\n }\n effects.consume(code);\n return data;\n }\n\n /**\n * In closing sequence.\n *\n * ```markdown\n * > | `a`\n * ^\n * ```\n *\n * @type {State}\n */\n function sequenceClose(code) {\n // More.\n if (code === 96) {\n effects.consume(code);\n size++;\n return sequenceClose;\n }\n\n // Done!\n if (size === sizeOpen) {\n effects.exit(\"codeTextSequence\");\n effects.exit(\"codeText\");\n return ok(code);\n }\n\n // More or less accents: mark as data.\n token.type = \"codeTextData\";\n return data(code);\n }\n}","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n */\n\nimport {\n attention,\n autolink,\n blockQuote,\n characterEscape,\n characterReference,\n codeFenced,\n codeIndented,\n codeText,\n definition,\n hardBreakEscape,\n headingAtx,\n htmlFlow,\n htmlText,\n labelEnd,\n labelStartImage,\n labelStartLink,\n lineEnding,\n list,\n setextUnderline,\n thematicBreak\n} from 'micromark-core-commonmark'\nimport {resolver as resolveText} from './initialize/text.js'\n\n/** @satisfies {Extension['document']} */\nexport const document = {\n [42]: list,\n [43]: list,\n [45]: list,\n [48]: list,\n [49]: list,\n [50]: list,\n [51]: list,\n [52]: list,\n [53]: list,\n [54]: list,\n [55]: list,\n [56]: list,\n [57]: list,\n [62]: blockQuote\n}\n\n/** @satisfies {Extension['contentInitial']} */\nexport const contentInitial = {\n [91]: definition\n}\n\n/** @satisfies {Extension['flowInitial']} */\nexport const flowInitial = {\n [-2]: codeIndented,\n [-1]: codeIndented,\n [32]: codeIndented\n}\n\n/** @satisfies {Extension['flow']} */\nexport const flow = {\n [35]: headingAtx,\n [42]: thematicBreak,\n [45]: [setextUnderline, thematicBreak],\n [60]: htmlFlow,\n [61]: setextUnderline,\n [95]: thematicBreak,\n [96]: codeFenced,\n [126]: codeFenced\n}\n\n/** @satisfies {Extension['string']} */\nexport const string = {\n [38]: characterReference,\n [92]: characterEscape\n}\n\n/** @satisfies {Extension['text']} */\nexport const text = {\n [-5]: lineEnding,\n [-4]: lineEnding,\n [-3]: lineEnding,\n [33]: labelStartImage,\n [38]: characterReference,\n [42]: attention,\n [60]: [autolink, htmlText],\n [91]: labelStartLink,\n [92]: [hardBreakEscape, characterEscape],\n [93]: labelEnd,\n [95]: attention,\n [96]: codeText\n}\n\n/** @satisfies {Extension['insideSpan']} */\nexport const insideSpan = {\n null: [attention, resolveText]\n}\n\n/** @satisfies {Extension['attentionMarkers']} */\nexport const attentionMarkers = {\n null: [42, 95]\n}\n\n/** @satisfies {Extension['disable']} */\nexport const disable = {\n null: []\n}\n","/**\n * @typedef {import('micromark-util-types').Chunk} Chunk\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Value} Value\n */\n\n/**\n * @callback Preprocessor\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {boolean | null | undefined} [end=false]\n * @returns {Array}\n */\n\nconst search = /[\\0\\t\\n\\r]/g\n\n/**\n * @returns {Preprocessor}\n */\nexport function preprocess() {\n let column = 1\n let buffer = ''\n /** @type {boolean | undefined} */\n let start = true\n /** @type {boolean | undefined} */\n let atCarriageReturn\n return preprocessor\n\n /** @type {Preprocessor} */\n // eslint-disable-next-line complexity\n function preprocessor(value, encoding, end) {\n /** @type {Array} */\n const chunks = []\n /** @type {RegExpMatchArray | null} */\n let match\n /** @type {number} */\n let next\n /** @type {number} */\n let startPosition\n /** @type {number} */\n let endPosition\n /** @type {Code} */\n let code\n value =\n buffer +\n (typeof value === 'string'\n ? value.toString()\n : new TextDecoder(encoding || undefined).decode(value))\n startPosition = 0\n buffer = ''\n if (start) {\n // To do: `markdown-rs` actually parses BOMs (byte order mark).\n if (value.charCodeAt(0) === 65279) {\n startPosition++\n }\n start = undefined\n }\n while (startPosition < value.length) {\n search.lastIndex = startPosition\n match = search.exec(value)\n endPosition =\n match && match.index !== undefined ? match.index : value.length\n code = value.charCodeAt(endPosition)\n if (!match) {\n buffer = value.slice(startPosition)\n break\n }\n if (code === 10 && startPosition === endPosition && atCarriageReturn) {\n chunks.push(-3)\n atCarriageReturn = undefined\n } else {\n if (atCarriageReturn) {\n chunks.push(-5)\n atCarriageReturn = undefined\n }\n if (startPosition < endPosition) {\n chunks.push(value.slice(startPosition, endPosition))\n column += endPosition - startPosition\n }\n switch (code) {\n case 0: {\n chunks.push(65533)\n column++\n break\n }\n case 9: {\n next = Math.ceil(column / 4) * 4\n chunks.push(-2)\n while (column++ < next) chunks.push(-1)\n break\n }\n case 10: {\n chunks.push(-4)\n column = 1\n break\n }\n default: {\n atCarriageReturn = true\n column = 1\n }\n }\n }\n startPosition = endPosition + 1\n }\n if (end) {\n if (atCarriageReturn) chunks.push(-5)\n if (buffer) chunks.push(buffer)\n chunks.push(null)\n }\n return chunks\n }\n}\n","/**\n * Turn the number (in string form as either hexa- or plain decimal) coming from\n * a numeric character reference into a character.\n *\n * Sort of like `String.fromCodePoint(Number.parseInt(value, base))`, but makes\n * non-characters and control characters safe.\n *\n * @param {string} value\n * Value to decode.\n * @param {number} base\n * Numeric base.\n * @returns {string}\n * Character.\n */\nexport function decodeNumericCharacterReference(value, base) {\n const code = Number.parseInt(value, base);\n if (\n // C0 except for HT, LF, FF, CR, space.\n code < 9 || code === 11 || code > 13 && code < 32 ||\n // Control character (DEL) of C0, and C1 controls.\n code > 126 && code < 160 ||\n // Lone high surrogates and low surrogates.\n code > 55_295 && code < 57_344 ||\n // Noncharacters.\n code > 64_975 && code < 65_008 || /* eslint-disable no-bitwise */\n (code & 65_535) === 65_535 || (code & 65_535) === 65_534 || /* eslint-enable no-bitwise */\n // Out of range\n code > 1_114_111) {\n return \"\\uFFFD\";\n }\n return String.fromCodePoint(code);\n}","import {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nconst characterEscapeOrReference =\n /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi\n\n/**\n * Decode markdown strings (which occur in places such as fenced code info\n * strings, destinations, labels, and titles).\n *\n * The “string” content type allows character escapes and -references.\n * This decodes those.\n *\n * @param {string} value\n * Value to decode.\n * @returns {string}\n * Decoded value.\n */\nexport function decodeString(value) {\n return value.replace(characterEscapeOrReference, decode)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @param {string} $2\n * @returns {string}\n */\nfunction decode($0, $1, $2) {\n if ($1) {\n // Escape.\n return $1\n }\n\n // Reference.\n const head = $2.charCodeAt(0)\n if (head === 35) {\n const head = $2.charCodeAt(1)\n const hex = head === 120 || head === 88\n return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10)\n }\n return decodeNamedCharacterReference($2) || $0\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parent} Parent\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').ReferenceType} ReferenceType\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('mdast').Text} Text\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n *\n * @typedef {import('micromark-util-types').Encoding} Encoding\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Value} Value\n *\n * @typedef {import('unist').Point} Point\n *\n * @typedef {import('../index.js').CompileData} CompileData\n */\n\n/**\n * @typedef {Omit & {type: 'fragment', children: Array}} Fragment\n */\n\n/**\n * @callback Transform\n * Extra transform, to change the AST afterwards.\n * @param {Root} tree\n * Tree to transform.\n * @returns {Root | null | undefined | void}\n * New tree or nothing (in which case the current tree is used).\n *\n * @callback Handle\n * Handle a token.\n * @param {CompileContext} this\n * Context.\n * @param {Token} token\n * Current token.\n * @returns {undefined | void}\n * Nothing.\n *\n * @typedef {Record} Handles\n * Token types mapping to handles\n *\n * @callback OnEnterError\n * Handle the case where the `right` token is open, but it is closed (by the\n * `left` token) or because we reached the end of the document.\n * @param {Omit} this\n * Context.\n * @param {Token | undefined} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @callback OnExitError\n * Handle the case where the `right` token is open but it is closed by\n * exiting the `left` token.\n * @param {Omit} this\n * Context.\n * @param {Token} left\n * Left token.\n * @param {Token} right\n * Right token.\n * @returns {undefined}\n * Nothing.\n *\n * @typedef {[Token, OnEnterError | undefined]} TokenTuple\n * Open token on the stack, with an optional error handler for when\n * that token isn’t closed properly.\n */\n\n/**\n * @typedef Config\n * Configuration.\n *\n * We have our defaults, but extensions will add more.\n * @property {Array} canContainEols\n * Token types where line endings are used.\n * @property {Handles} enter\n * Opening handles.\n * @property {Handles} exit\n * Closing handles.\n * @property {Array} transforms\n * Tree transforms.\n *\n * @typedef {Partial} Extension\n * Change how markdown tokens from micromark are turned into mdast.\n *\n * @typedef CompileContext\n * mdast compiler context.\n * @property {Array} stack\n * Stack of nodes.\n * @property {Array} tokenStack\n * Stack of tokens.\n * @property {(this: CompileContext) => undefined} buffer\n * Capture some of the output data.\n * @property {(this: CompileContext) => string} resume\n * Stop capturing and access the output data.\n * @property {(this: CompileContext, node: Nodes, token: Token, onError?: OnEnterError) => undefined} enter\n * Enter a node.\n * @property {(this: CompileContext, token: Token, onError?: OnExitError) => undefined} exit\n * Exit a node.\n * @property {TokenizeContext['sliceSerialize']} sliceSerialize\n * Get the string value of a token.\n * @property {Config} config\n * Configuration.\n * @property {CompileData} data\n * Info passed around; key/value store.\n *\n * @typedef FromMarkdownOptions\n * Configuration for how to build mdast.\n * @property {Array> | null | undefined} [mdastExtensions]\n * Extensions for this utility to change how tokens are turned into a tree.\n *\n * @typedef {ParseOptions & FromMarkdownOptions} Options\n * Configuration.\n */\n\nimport {toString} from 'mdast-util-to-string'\nimport {parse, postprocess, preprocess} from 'micromark'\nimport {decodeNumericCharacterReference} from 'micromark-util-decode-numeric-character-reference'\nimport {decodeString} from 'micromark-util-decode-string'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nimport {decodeNamedCharacterReference} from 'decode-named-character-reference'\nimport {stringifyPosition} from 'unist-util-stringify-position'\nconst own = {}.hasOwnProperty\n\n/**\n * Turn markdown into a syntax tree.\n *\n * @overload\n * @param {Value} value\n * @param {Encoding | null | undefined} [encoding]\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @overload\n * @param {Value} value\n * @param {Options | null | undefined} [options]\n * @returns {Root}\n *\n * @param {Value} value\n * Markdown to parse.\n * @param {Encoding | Options | null | undefined} [encoding]\n * Character encoding for when `value` is `Buffer`.\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {Root}\n * mdast tree.\n */\nexport function fromMarkdown(value, encoding, options) {\n if (typeof encoding !== 'string') {\n options = encoding\n encoding = undefined\n }\n return compiler(options)(\n postprocess(\n parse(options).document().write(preprocess()(value, encoding, true))\n )\n )\n}\n\n/**\n * Note this compiler only understand complete buffering, not streaming.\n *\n * @param {Options | null | undefined} [options]\n */\nfunction compiler(options) {\n /** @type {Config} */\n const config = {\n transforms: [],\n canContainEols: ['emphasis', 'fragment', 'heading', 'paragraph', 'strong'],\n enter: {\n autolink: opener(link),\n autolinkProtocol: onenterdata,\n autolinkEmail: onenterdata,\n atxHeading: opener(heading),\n blockQuote: opener(blockQuote),\n characterEscape: onenterdata,\n characterReference: onenterdata,\n codeFenced: opener(codeFlow),\n codeFencedFenceInfo: buffer,\n codeFencedFenceMeta: buffer,\n codeIndented: opener(codeFlow, buffer),\n codeText: opener(codeText, buffer),\n codeTextData: onenterdata,\n data: onenterdata,\n codeFlowValue: onenterdata,\n definition: opener(definition),\n definitionDestinationString: buffer,\n definitionLabelString: buffer,\n definitionTitleString: buffer,\n emphasis: opener(emphasis),\n hardBreakEscape: opener(hardBreak),\n hardBreakTrailing: opener(hardBreak),\n htmlFlow: opener(html, buffer),\n htmlFlowData: onenterdata,\n htmlText: opener(html, buffer),\n htmlTextData: onenterdata,\n image: opener(image),\n label: buffer,\n link: opener(link),\n listItem: opener(listItem),\n listItemValue: onenterlistitemvalue,\n listOrdered: opener(list, onenterlistordered),\n listUnordered: opener(list),\n paragraph: opener(paragraph),\n reference: onenterreference,\n referenceString: buffer,\n resourceDestinationString: buffer,\n resourceTitleString: buffer,\n setextHeading: opener(heading),\n strong: opener(strong),\n thematicBreak: opener(thematicBreak)\n },\n exit: {\n atxHeading: closer(),\n atxHeadingSequence: onexitatxheadingsequence,\n autolink: closer(),\n autolinkEmail: onexitautolinkemail,\n autolinkProtocol: onexitautolinkprotocol,\n blockQuote: closer(),\n characterEscapeValue: onexitdata,\n characterReferenceMarkerHexadecimal: onexitcharacterreferencemarker,\n characterReferenceMarkerNumeric: onexitcharacterreferencemarker,\n characterReferenceValue: onexitcharacterreferencevalue,\n codeFenced: closer(onexitcodefenced),\n codeFencedFence: onexitcodefencedfence,\n codeFencedFenceInfo: onexitcodefencedfenceinfo,\n codeFencedFenceMeta: onexitcodefencedfencemeta,\n codeFlowValue: onexitdata,\n codeIndented: closer(onexitcodeindented),\n codeText: closer(onexitcodetext),\n codeTextData: onexitdata,\n data: onexitdata,\n definition: closer(),\n definitionDestinationString: onexitdefinitiondestinationstring,\n definitionLabelString: onexitdefinitionlabelstring,\n definitionTitleString: onexitdefinitiontitlestring,\n emphasis: closer(),\n hardBreakEscape: closer(onexithardbreak),\n hardBreakTrailing: closer(onexithardbreak),\n htmlFlow: closer(onexithtmlflow),\n htmlFlowData: onexitdata,\n htmlText: closer(onexithtmltext),\n htmlTextData: onexitdata,\n image: closer(onexitimage),\n label: onexitlabel,\n labelText: onexitlabeltext,\n lineEnding: onexitlineending,\n link: closer(onexitlink),\n listItem: closer(),\n listOrdered: closer(),\n listUnordered: closer(),\n paragraph: closer(),\n referenceString: onexitreferencestring,\n resourceDestinationString: onexitresourcedestinationstring,\n resourceTitleString: onexitresourcetitlestring,\n resource: onexitresource,\n setextHeading: closer(onexitsetextheading),\n setextHeadingLineSequence: onexitsetextheadinglinesequence,\n setextHeadingText: onexitsetextheadingtext,\n strong: closer(),\n thematicBreak: closer()\n }\n }\n configure(config, (options || {}).mdastExtensions || [])\n\n /** @type {CompileData} */\n const data = {}\n return compile\n\n /**\n * Turn micromark events into an mdast tree.\n *\n * @param {Array} events\n * Events.\n * @returns {Root}\n * mdast tree.\n */\n function compile(events) {\n /** @type {Root} */\n let tree = {\n type: 'root',\n children: []\n }\n /** @type {Omit} */\n const context = {\n stack: [tree],\n tokenStack: [],\n config,\n enter,\n exit,\n buffer,\n resume,\n data\n }\n /** @type {Array} */\n const listStack = []\n let index = -1\n while (++index < events.length) {\n // We preprocess lists to add `listItem` tokens, and to infer whether\n // items the list itself are spread out.\n if (\n events[index][1].type === 'listOrdered' ||\n events[index][1].type === 'listUnordered'\n ) {\n if (events[index][0] === 'enter') {\n listStack.push(index)\n } else {\n const tail = listStack.pop()\n index = prepareList(events, tail, index)\n }\n }\n }\n index = -1\n while (++index < events.length) {\n const handler = config[events[index][0]]\n if (own.call(handler, events[index][1].type)) {\n handler[events[index][1].type].call(\n Object.assign(\n {\n sliceSerialize: events[index][2].sliceSerialize\n },\n context\n ),\n events[index][1]\n )\n }\n }\n\n // Handle tokens still being open.\n if (context.tokenStack.length > 0) {\n const tail = context.tokenStack[context.tokenStack.length - 1]\n const handler = tail[1] || defaultOnError\n handler.call(context, undefined, tail[0])\n }\n\n // Figure out `root` position.\n tree.position = {\n start: point(\n events.length > 0\n ? events[0][1].start\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n ),\n end: point(\n events.length > 0\n ? events[events.length - 2][1].end\n : {\n line: 1,\n column: 1,\n offset: 0\n }\n )\n }\n\n // Call transforms.\n index = -1\n while (++index < config.transforms.length) {\n tree = config.transforms[index](tree) || tree\n }\n return tree\n }\n\n /**\n * @param {Array} events\n * @param {number} start\n * @param {number} length\n * @returns {number}\n */\n function prepareList(events, start, length) {\n let index = start - 1\n let containerBalance = -1\n let listSpread = false\n /** @type {Token | undefined} */\n let listItem\n /** @type {number | undefined} */\n let lineIndex\n /** @type {number | undefined} */\n let firstBlankLineIndex\n /** @type {boolean | undefined} */\n let atMarker\n while (++index <= length) {\n const event = events[index]\n switch (event[1].type) {\n case 'listUnordered':\n case 'listOrdered':\n case 'blockQuote': {\n if (event[0] === 'enter') {\n containerBalance++\n } else {\n containerBalance--\n }\n atMarker = undefined\n break\n }\n case 'lineEndingBlank': {\n if (event[0] === 'enter') {\n if (\n listItem &&\n !atMarker &&\n !containerBalance &&\n !firstBlankLineIndex\n ) {\n firstBlankLineIndex = index\n }\n atMarker = undefined\n }\n break\n }\n case 'linePrefix':\n case 'listItemValue':\n case 'listItemMarker':\n case 'listItemPrefix':\n case 'listItemPrefixWhitespace': {\n // Empty.\n\n break\n }\n default: {\n atMarker = undefined\n }\n }\n if (\n (!containerBalance &&\n event[0] === 'enter' &&\n event[1].type === 'listItemPrefix') ||\n (containerBalance === -1 &&\n event[0] === 'exit' &&\n (event[1].type === 'listUnordered' ||\n event[1].type === 'listOrdered'))\n ) {\n if (listItem) {\n let tailIndex = index\n lineIndex = undefined\n while (tailIndex--) {\n const tailEvent = events[tailIndex]\n if (\n tailEvent[1].type === 'lineEnding' ||\n tailEvent[1].type === 'lineEndingBlank'\n ) {\n if (tailEvent[0] === 'exit') continue\n if (lineIndex) {\n events[lineIndex][1].type = 'lineEndingBlank'\n listSpread = true\n }\n tailEvent[1].type = 'lineEnding'\n lineIndex = tailIndex\n } else if (\n tailEvent[1].type === 'linePrefix' ||\n tailEvent[1].type === 'blockQuotePrefix' ||\n tailEvent[1].type === 'blockQuotePrefixWhitespace' ||\n tailEvent[1].type === 'blockQuoteMarker' ||\n tailEvent[1].type === 'listItemIndent'\n ) {\n // Empty\n } else {\n break\n }\n }\n if (\n firstBlankLineIndex &&\n (!lineIndex || firstBlankLineIndex < lineIndex)\n ) {\n listItem._spread = true\n }\n\n // Fix position.\n listItem.end = Object.assign(\n {},\n lineIndex ? events[lineIndex][1].start : event[1].end\n )\n events.splice(lineIndex || index, 0, ['exit', listItem, event[2]])\n index++\n length++\n }\n\n // Create a new list item.\n if (event[1].type === 'listItemPrefix') {\n /** @type {Token} */\n const item = {\n type: 'listItem',\n _spread: false,\n start: Object.assign({}, event[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: undefined\n }\n listItem = item\n events.splice(index, 0, ['enter', item, event[2]])\n index++\n length++\n firstBlankLineIndex = undefined\n atMarker = true\n }\n }\n }\n events[start][1]._spread = listSpread\n return length\n }\n\n /**\n * Create an opener handle.\n *\n * @param {(token: Token) => Nodes} create\n * Create a node.\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function opener(create, and) {\n return open\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function open(token) {\n enter.call(this, create(token), token)\n if (and) and.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @returns {undefined}\n */\n function buffer() {\n this.stack.push({\n type: 'fragment',\n children: []\n })\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Nodes} node\n * Node to enter.\n * @param {Token} token\n * Corresponding token.\n * @param {OnEnterError | undefined} [errorHandler]\n * Handle the case where this token is open, but it is closed by something else.\n * @returns {undefined}\n * Nothing.\n */\n function enter(node, token, errorHandler) {\n const parent = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = parent.children\n siblings.push(node)\n this.stack.push(node)\n this.tokenStack.push([token, errorHandler])\n node.position = {\n start: point(token.start),\n // @ts-expect-error: `end` will be patched later.\n end: undefined\n }\n }\n\n /**\n * Create a closer handle.\n *\n * @param {Handle | undefined} [and]\n * Optional function to also run.\n * @returns {Handle}\n * Handle.\n */\n function closer(and) {\n return close\n\n /**\n * @this {CompileContext}\n * @param {Token} token\n * @returns {undefined}\n */\n function close(token) {\n if (and) and.call(this, token)\n exit.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * Context.\n * @param {Token} token\n * Corresponding token.\n * @param {OnExitError | undefined} [onExitError]\n * Handle the case where another token is open.\n * @returns {undefined}\n * Nothing.\n */\n function exit(token, onExitError) {\n const node = this.stack.pop()\n const open = this.tokenStack.pop()\n if (!open) {\n throw new Error(\n 'Cannot close `' +\n token.type +\n '` (' +\n stringifyPosition({\n start: token.start,\n end: token.end\n }) +\n '): it’s not open'\n )\n } else if (open[0].type !== token.type) {\n if (onExitError) {\n onExitError.call(this, token, open[0])\n } else {\n const handler = open[1] || defaultOnError\n handler.call(this, token, open[0])\n }\n }\n node.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @returns {string}\n */\n function resume() {\n return toString(this.stack.pop())\n }\n\n //\n // Handlers.\n //\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistordered() {\n this.data.expectingFirstListItemValue = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onenterlistitemvalue(token) {\n if (this.data.expectingFirstListItemValue) {\n const ancestor = this.stack[this.stack.length - 2]\n ancestor.start = Number.parseInt(this.sliceSerialize(token), 10)\n this.data.expectingFirstListItemValue = undefined\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfenceinfo() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.lang = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfencemeta() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.meta = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefencedfence() {\n // Exit if this is the closing fence.\n if (this.data.flowCodeInside) return\n this.buffer()\n this.data.flowCodeInside = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodefenced() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, '')\n this.data.flowCodeInside = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcodeindented() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data.replace(/(\\r?\\n|\\r)$/g, '')\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitionlabelstring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiontitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitdefinitiondestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitatxheadingsequence(token) {\n const node = this.stack[this.stack.length - 1]\n if (!node.depth) {\n const depth = this.sliceSerialize(token).length\n node.depth = depth\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadingtext() {\n this.data.setextHeadingSlurpLineEnding = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheadinglinesequence(token) {\n const node = this.stack[this.stack.length - 1]\n node.depth = this.sliceSerialize(token).codePointAt(0) === 61 ? 1 : 2\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitsetextheading() {\n this.data.setextHeadingSlurpLineEnding = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterdata(token) {\n const node = this.stack[this.stack.length - 1]\n /** @type {Array} */\n const siblings = node.children\n let tail = siblings[siblings.length - 1]\n if (!tail || tail.type !== 'text') {\n // Add a new text node.\n tail = text()\n tail.position = {\n start: point(token.start),\n // @ts-expect-error: we’ll add `end` later.\n end: undefined\n }\n siblings.push(tail)\n }\n this.stack.push(tail)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitdata(token) {\n const tail = this.stack.pop()\n tail.value += this.sliceSerialize(token)\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlineending(token) {\n const context = this.stack[this.stack.length - 1]\n // If we’re at a hard break, include the line ending in there.\n if (this.data.atHardBreak) {\n const tail = context.children[context.children.length - 1]\n tail.position.end = point(token.end)\n this.data.atHardBreak = undefined\n return\n }\n if (\n !this.data.setextHeadingSlurpLineEnding &&\n config.canContainEols.includes(context.type)\n ) {\n onenterdata.call(this, token)\n onexitdata.call(this, token)\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithardbreak() {\n this.data.atHardBreak = true\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmlflow() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexithtmltext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcodetext() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.value = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlink() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitimage() {\n const node = this.stack[this.stack.length - 1]\n // Note: there are also `identifier` and `label` fields on this link node!\n // These are used / cleaned here.\n // To do: clean.\n if (this.data.inReference) {\n /** @type {ReferenceType} */\n const referenceType = this.data.referenceType || 'shortcut'\n node.type += 'Reference'\n // @ts-expect-error: mutate.\n node.referenceType = referenceType\n // @ts-expect-error: mutate.\n delete node.url\n delete node.title\n } else {\n // @ts-expect-error: mutate.\n delete node.identifier\n // @ts-expect-error: mutate.\n delete node.label\n }\n this.data.referenceType = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabeltext(token) {\n const string = this.sliceSerialize(token)\n const ancestor = this.stack[this.stack.length - 2]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n ancestor.label = decodeString(string)\n // @ts-expect-error: same as above.\n ancestor.identifier = normalizeIdentifier(string).toLowerCase()\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitlabel() {\n const fragment = this.stack[this.stack.length - 1]\n const value = this.resume()\n const node = this.stack[this.stack.length - 1]\n // Assume a reference.\n this.data.inReference = true\n if (node.type === 'link') {\n /** @type {Array} */\n const children = fragment.children\n node.children = children\n } else {\n node.alt = value\n }\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcedestinationstring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.url = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresourcetitlestring() {\n const data = this.resume()\n const node = this.stack[this.stack.length - 1]\n node.title = data\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitresource() {\n this.data.inReference = undefined\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onenterreference() {\n this.data.referenceType = 'collapsed'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitreferencestring(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n // @ts-expect-error: stash this on the node, as it might become a reference\n // later.\n node.label = label\n // @ts-expect-error: same as above.\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n this.data.referenceType = 'full'\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n\n function onexitcharacterreferencemarker(token) {\n this.data.characterReferenceType = token.type\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitcharacterreferencevalue(token) {\n const data = this.sliceSerialize(token)\n const type = this.data.characterReferenceType\n /** @type {string} */\n let value\n if (type) {\n value = decodeNumericCharacterReference(\n data,\n type === 'characterReferenceMarkerNumeric' ? 10 : 16\n )\n this.data.characterReferenceType = undefined\n } else {\n const result = decodeNamedCharacterReference(data)\n value = result\n }\n const tail = this.stack.pop()\n tail.value += value\n tail.position.end = point(token.end)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkprotocol(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = this.sliceSerialize(token)\n }\n\n /**\n * @this {CompileContext}\n * @type {Handle}\n */\n function onexitautolinkemail(token) {\n onexitdata.call(this, token)\n const node = this.stack[this.stack.length - 1]\n node.url = 'mailto:' + this.sliceSerialize(token)\n }\n\n //\n // Creaters.\n //\n\n /** @returns {Blockquote} */\n function blockQuote() {\n return {\n type: 'blockquote',\n children: []\n }\n }\n\n /** @returns {Code} */\n function codeFlow() {\n return {\n type: 'code',\n lang: null,\n meta: null,\n value: ''\n }\n }\n\n /** @returns {InlineCode} */\n function codeText() {\n return {\n type: 'inlineCode',\n value: ''\n }\n }\n\n /** @returns {Definition} */\n function definition() {\n return {\n type: 'definition',\n identifier: '',\n label: null,\n title: null,\n url: ''\n }\n }\n\n /** @returns {Emphasis} */\n function emphasis() {\n return {\n type: 'emphasis',\n children: []\n }\n }\n\n /** @returns {Heading} */\n function heading() {\n return {\n type: 'heading',\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n }\n }\n\n /** @returns {Break} */\n function hardBreak() {\n return {\n type: 'break'\n }\n }\n\n /** @returns {Html} */\n function html() {\n return {\n type: 'html',\n value: ''\n }\n }\n\n /** @returns {Image} */\n function image() {\n return {\n type: 'image',\n title: null,\n url: '',\n alt: null\n }\n }\n\n /** @returns {Link} */\n function link() {\n return {\n type: 'link',\n title: null,\n url: '',\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {List}\n */\n function list(token) {\n return {\n type: 'list',\n ordered: token.type === 'listOrdered',\n start: null,\n spread: token._spread,\n children: []\n }\n }\n\n /**\n * @param {Token} token\n * @returns {ListItem}\n */\n function listItem(token) {\n return {\n type: 'listItem',\n spread: token._spread,\n checked: null,\n children: []\n }\n }\n\n /** @returns {Paragraph} */\n function paragraph() {\n return {\n type: 'paragraph',\n children: []\n }\n }\n\n /** @returns {Strong} */\n function strong() {\n return {\n type: 'strong',\n children: []\n }\n }\n\n /** @returns {Text} */\n function text() {\n return {\n type: 'text',\n value: ''\n }\n }\n\n /** @returns {ThematicBreak} */\n function thematicBreak() {\n return {\n type: 'thematicBreak'\n }\n }\n}\n\n/**\n * Copy a point-like value.\n *\n * @param {Point} d\n * Point-like value.\n * @returns {Point}\n * unist point.\n */\nfunction point(d) {\n return {\n line: d.line,\n column: d.column,\n offset: d.offset\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Array | Extension>} extensions\n * @returns {undefined}\n */\nfunction configure(combined, extensions) {\n let index = -1\n while (++index < extensions.length) {\n const value = extensions[index]\n if (Array.isArray(value)) {\n configure(combined, value)\n } else {\n extension(combined, value)\n }\n }\n}\n\n/**\n * @param {Config} combined\n * @param {Extension} extension\n * @returns {undefined}\n */\nfunction extension(combined, extension) {\n /** @type {keyof Extension} */\n let key\n for (key in extension) {\n if (own.call(extension, key)) {\n switch (key) {\n case 'canContainEols': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'transforms': {\n const right = extension[key]\n if (right) {\n combined[key].push(...right)\n }\n break\n }\n case 'enter':\n case 'exit': {\n const right = extension[key]\n if (right) {\n Object.assign(combined[key], right)\n }\n break\n }\n // No default\n }\n }\n }\n}\n\n/** @type {OnEnterError} */\nfunction defaultOnError(left, right) {\n if (left) {\n throw new Error(\n 'Cannot close `' +\n left.type +\n '` (' +\n stringifyPosition({\n start: left.start,\n end: left.end\n }) +\n '): a different token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is open'\n )\n } else {\n throw new Error(\n 'Cannot close document, a token (`' +\n right.type +\n '`, ' +\n stringifyPosition({\n start: right.start,\n end: right.end\n }) +\n ') is still open'\n )\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\nimport {subtokenize} from 'micromark-util-subtokenize'\n\n/**\n * @param {Array} events\n * @returns {Array}\n */\nexport function postprocess(events) {\n while (!subtokenize(events)) {\n // Empty\n }\n return events\n}\n","/**\n * @typedef {import('micromark-util-types').Create} Create\n * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension\n * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct\n * @typedef {import('micromark-util-types').ParseContext} ParseContext\n * @typedef {import('micromark-util-types').ParseOptions} ParseOptions\n */\n\nimport {combineExtensions} from 'micromark-util-combine-extensions'\nimport {content} from './initialize/content.js'\nimport {document} from './initialize/document.js'\nimport {flow} from './initialize/flow.js'\nimport {string, text} from './initialize/text.js'\nimport {createTokenizer} from './create-tokenizer.js'\nimport * as defaultConstructs from './constructs.js'\n\n/**\n * @param {ParseOptions | null | undefined} [options]\n * @returns {ParseContext}\n */\nexport function parse(options) {\n const settings = options || {}\n const constructs =\n /** @type {FullNormalizedExtension} */\n combineExtensions([defaultConstructs, ...(settings.extensions || [])])\n\n /** @type {ParseContext} */\n const parser = {\n defined: [],\n lazy: {},\n constructs,\n content: create(content),\n document: create(document),\n flow: create(flow),\n string: create(string),\n text: create(text)\n }\n return parser\n\n /**\n * @param {InitialConstruct} initial\n */\n function create(initial) {\n return creator\n /** @type {Create} */\n function creator(from) {\n return createTokenizer(parser, initial, from)\n }\n }\n}\n","/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-from-markdown').Options} FromMarkdownOptions\n * @typedef {import('unified').Parser} Parser\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {Omit} Options\n */\n\nimport {fromMarkdown} from 'mdast-util-from-markdown'\n\n/**\n * Aadd support for parsing from markdown.\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkParse(options) {\n /** @type {Processor} */\n // @ts-expect-error: TS in JSDoc generates wrong types if `this` is typed regularly.\n const self = this\n\n self.parser = parser\n\n /**\n * @type {Parser}\n */\n function parser(doc) {\n return fromMarkdown(doc, {\n ...self.data('settings'),\n ...options,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: self.data('micromarkExtensions') || [],\n mdastExtensions: self.data('fromMarkdownExtensions') || []\n })\n }\n}\n","import {asciiAlphanumeric} from 'micromark-util-character'\nimport {encode} from 'micromark-util-encode'\n/**\n * Make a value safe for injection as a URL.\n *\n * This encodes unsafe characters with percent-encoding and skips already\n * encoded sequences (see `normalizeUri`).\n * Further unsafe characters are encoded as character references (see\n * `micromark-util-encode`).\n *\n * A regex of allowed protocols can be given, in which case the URL is\n * sanitized.\n * For example, `/^(https?|ircs?|mailto|xmpp)$/i` can be used for `a[href]`, or\n * `/^https?$/i` for `img[src]` (this is what `github.com` allows).\n * If the URL includes an unknown protocol (one not matched by `protocol`, such\n * as a dangerous example, `javascript:`), the value is ignored.\n *\n * @param {string | null | undefined} url\n * URI to sanitize.\n * @param {RegExp | null | undefined} [protocol]\n * Allowed protocols.\n * @returns {string}\n * Sanitized URI.\n */\nexport function sanitizeUri(url, protocol) {\n const value = encode(normalizeUri(url || ''))\n if (!protocol) {\n return value\n }\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n protocol.test(value.slice(0, colon))\n ) {\n return value\n }\n return ''\n}\n\n/**\n * Normalize a URL.\n *\n * Encode unsafe characters with percent-encoding, skipping already encoded\n * sequences.\n *\n * @param {string} value\n * URI to normalize.\n * @returns {string}\n * Normalized URI.\n */\nexport function normalizeUri(value) {\n /** @type {Array} */\n const result = []\n let index = -1\n let start = 0\n let skip = 0\n while (++index < value.length) {\n const code = value.charCodeAt(index)\n /** @type {string} */\n let replace = ''\n\n // A correct percent encoded value.\n if (\n code === 37 &&\n asciiAlphanumeric(value.charCodeAt(index + 1)) &&\n asciiAlphanumeric(value.charCodeAt(index + 2))\n ) {\n skip = 2\n }\n // ASCII.\n else if (code < 128) {\n if (!/[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(code))) {\n replace = String.fromCharCode(code)\n }\n }\n // Astral.\n else if (code > 55_295 && code < 57_344) {\n const next = value.charCodeAt(index + 1)\n\n // A correct surrogate pair.\n if (code < 56_320 && next > 56_319 && next < 57_344) {\n replace = String.fromCharCode(code, next)\n skip = 1\n }\n // Lone surrogate.\n else {\n replace = '\\uFFFD'\n }\n }\n // Unicode.\n else {\n replace = String.fromCharCode(code)\n }\n if (replace) {\n result.push(value.slice(start, index), encodeURIComponent(replace))\n start = index + skip + 1\n replace = ''\n }\n if (skip) {\n index += skip\n skip = 0\n }\n }\n return result.join('') + value.slice(start)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('./state.js').State} State\n */\n\n/**\n * @callback FootnoteBackContentTemplate\n * Generate content for the backreference dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array | ElementContent | string}\n * Content for the backreference when linking back from definitions to their\n * reference.\n *\n * @callback FootnoteBackLabelTemplate\n * Generate a back label dynamically.\n *\n * For the following markdown:\n *\n * ```markdown\n * Alpha[^micromark], bravo[^micromark], and charlie[^remark].\n *\n * [^remark]: things about remark\n * [^micromark]: things about micromark\n * ```\n *\n * This function will be called with:\n *\n * * `0` and `0` for the backreference from `things about micromark` to\n * `alpha`, as it is the first used definition, and the first call to it\n * * `0` and `1` for the backreference from `things about micromark` to\n * `bravo`, as it is the first used definition, and the second call to it\n * * `1` and `0` for the backreference from `things about remark` to\n * `charlie`, as it is the second used definition\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Back label to use when linking back from definitions to their reference.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Generate the default content that GitHub uses on backreferences.\n *\n * @param {number} _\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {Array}\n * Content.\n */\nexport function defaultFootnoteBackContent(_, rereferenceIndex) {\n /** @type {Array} */\n const result = [{type: 'text', value: '↩'}]\n\n if (rereferenceIndex > 1) {\n result.push({\n type: 'element',\n tagName: 'sup',\n properties: {},\n children: [{type: 'text', value: String(rereferenceIndex)}]\n })\n }\n\n return result\n}\n\n/**\n * Generate the default label that GitHub uses on backreferences.\n *\n * @param {number} referenceIndex\n * Index of the definition in the order that they are first referenced,\n * 0-indexed.\n * @param {number} rereferenceIndex\n * Index of calls to the same definition, 0-indexed.\n * @returns {string}\n * Label.\n */\nexport function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n return (\n 'Back to reference ' +\n (referenceIndex + 1) +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n )\n}\n\n/**\n * Generate a hast footer for called footnote definitions.\n *\n * @param {State} state\n * Info passed around.\n * @returns {Element | undefined}\n * `section` element or `undefined`.\n */\n// eslint-disable-next-line complexity\nexport function footer(state) {\n const clobberPrefix =\n typeof state.options.clobberPrefix === 'string'\n ? state.options.clobberPrefix\n : 'user-content-'\n const footnoteBackContent =\n state.options.footnoteBackContent || defaultFootnoteBackContent\n const footnoteBackLabel =\n state.options.footnoteBackLabel || defaultFootnoteBackLabel\n const footnoteLabel = state.options.footnoteLabel || 'Footnotes'\n const footnoteLabelTagName = state.options.footnoteLabelTagName || 'h2'\n const footnoteLabelProperties = state.options.footnoteLabelProperties || {\n className: ['sr-only']\n }\n /** @type {Array} */\n const listItems = []\n let referenceIndex = -1\n\n while (++referenceIndex < state.footnoteOrder.length) {\n const def = state.footnoteById.get(state.footnoteOrder[referenceIndex])\n\n if (!def) {\n continue\n }\n\n const content = state.all(def)\n const id = String(def.identifier).toUpperCase()\n const safeId = normalizeUri(id.toLowerCase())\n let rereferenceIndex = 0\n /** @type {Array} */\n const backReferences = []\n const counts = state.footnoteCounts.get(id)\n\n // eslint-disable-next-line no-unmodified-loop-condition\n while (counts !== undefined && ++rereferenceIndex <= counts) {\n if (backReferences.length > 0) {\n backReferences.push({type: 'text', value: ' '})\n }\n\n let children =\n typeof footnoteBackContent === 'string'\n ? footnoteBackContent\n : footnoteBackContent(referenceIndex, rereferenceIndex)\n\n if (typeof children === 'string') {\n children = {type: 'text', value: children}\n }\n\n backReferences.push({\n type: 'element',\n tagName: 'a',\n properties: {\n href:\n '#' +\n clobberPrefix +\n 'fnref-' +\n safeId +\n (rereferenceIndex > 1 ? '-' + rereferenceIndex : ''),\n dataFootnoteBackref: '',\n ariaLabel:\n typeof footnoteBackLabel === 'string'\n ? footnoteBackLabel\n : footnoteBackLabel(referenceIndex, rereferenceIndex),\n className: ['data-footnote-backref']\n },\n children: Array.isArray(children) ? children : [children]\n })\n }\n\n const tail = content[content.length - 1]\n\n if (tail && tail.type === 'element' && tail.tagName === 'p') {\n const tailTail = tail.children[tail.children.length - 1]\n if (tailTail && tailTail.type === 'text') {\n tailTail.value += ' '\n } else {\n tail.children.push({type: 'text', value: ' '})\n }\n\n tail.children.push(...backReferences)\n } else {\n content.push(...backReferences)\n }\n\n /** @type {Element} */\n const listItem = {\n type: 'element',\n tagName: 'li',\n properties: {id: clobberPrefix + 'fn-' + safeId},\n children: state.wrap(content, true)\n }\n\n state.patch(def, listItem)\n\n listItems.push(listItem)\n }\n\n if (listItems.length === 0) {\n return\n }\n\n return {\n type: 'element',\n tagName: 'section',\n properties: {dataFootnotes: true, className: ['footnotes']},\n children: [\n {\n type: 'element',\n tagName: footnoteLabelTagName,\n properties: {\n ...structuredClone(footnoteLabelProperties),\n id: 'footnote-label'\n },\n children: [{type: 'text', value: footnoteLabel}]\n },\n {type: 'text', value: '\\n'},\n {\n type: 'element',\n tagName: 'ol',\n properties: {},\n children: state.wrap(listItems, true)\n },\n {type: 'text', value: '\\n'}\n ]\n }\n}\n","/**\n * @typedef {import('hast').ElementContent} ElementContent\n *\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Reference} Reference\n *\n * @typedef {import('./state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Return the content of a reference without definition as plain text.\n *\n * @param {State} state\n * Info passed around.\n * @param {Extract} node\n * Reference node (image, link).\n * @returns {Array}\n * hast content.\n */\nexport function revert(state, node) {\n const subtype = node.referenceType\n let suffix = ']'\n\n if (subtype === 'collapsed') {\n suffix += '[]'\n } else if (subtype === 'full') {\n suffix += '[' + (node.label || node.identifier) + ']'\n }\n\n if (node.type === 'imageReference') {\n return [{type: 'text', value: '![' + node.alt + suffix}]\n }\n\n const contents = state.all(node)\n const head = contents[0]\n\n if (head && head.type === 'text') {\n head.value = '[' + head.value\n } else {\n contents.unshift({type: 'text', value: '['})\n }\n\n const tail = contents[contents.length - 1]\n\n if (tail && tail.type === 'text') {\n tail.value += suffix\n } else {\n contents.push({type: 'text', value: suffix})\n }\n\n return contents\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `listItem` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {ListItem} node\n * mdast node.\n * @param {Parents | undefined} parent\n * Parent of `node`.\n * @returns {Element}\n * hast node.\n */\nexport function listItem(state, node, parent) {\n const results = state.all(node)\n const loose = parent ? listLoose(parent) : listItemLoose(node)\n /** @type {Properties} */\n const properties = {}\n /** @type {Array} */\n const children = []\n\n if (typeof node.checked === 'boolean') {\n const head = results[0]\n /** @type {Element} */\n let paragraph\n\n if (head && head.type === 'element' && head.tagName === 'p') {\n paragraph = head\n } else {\n paragraph = {type: 'element', tagName: 'p', properties: {}, children: []}\n results.unshift(paragraph)\n }\n\n if (paragraph.children.length > 0) {\n paragraph.children.unshift({type: 'text', value: ' '})\n }\n\n paragraph.children.unshift({\n type: 'element',\n tagName: 'input',\n properties: {type: 'checkbox', checked: node.checked, disabled: true},\n children: []\n })\n\n // According to github-markdown-css, this class hides bullet.\n // See: .\n properties.className = ['task-list-item']\n }\n\n let index = -1\n\n while (++index < results.length) {\n const child = results[index]\n\n // Add eols before nodes, except if this is a loose, first paragraph.\n if (\n loose ||\n index !== 0 ||\n child.type !== 'element' ||\n child.tagName !== 'p'\n ) {\n children.push({type: 'text', value: '\\n'})\n }\n\n if (child.type === 'element' && child.tagName === 'p' && !loose) {\n children.push(...child.children)\n } else {\n children.push(child)\n }\n }\n\n const tail = results[results.length - 1]\n\n // Add a final eol.\n if (tail && (loose || tail.type !== 'element' || tail.tagName !== 'p')) {\n children.push({type: 'text', value: '\\n'})\n }\n\n /** @type {Element} */\n const result = {type: 'element', tagName: 'li', properties, children}\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * @param {Parents} node\n * @return {Boolean}\n */\nfunction listLoose(node) {\n let loose = false\n if (node.type === 'list') {\n loose = node.spread || false\n const children = node.children\n let index = -1\n\n while (!loose && ++index < children.length) {\n loose = listItemLoose(children[index])\n }\n }\n\n return loose\n}\n\n/**\n * @param {ListItem} node\n * @return {Boolean}\n */\nfunction listItemLoose(node) {\n const spread = node.spread\n\n return spread === null || spread === undefined\n ? node.children.length > 1\n : spread\n}\n","const tab = 9 /* `\\t` */\nconst space = 32 /* ` ` */\n\n/**\n * Remove initial and final spaces and tabs at the line breaks in `value`.\n * Does not trim initial and final spaces and tabs of the value itself.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Trimmed value.\n */\nexport function trimLines(value) {\n const source = String(value)\n const search = /\\r?\\n|\\r/g\n let match = search.exec(source)\n let last = 0\n /** @type {Array} */\n const lines = []\n\n while (match) {\n lines.push(\n trimLine(source.slice(last, match.index), last > 0, true),\n match[0]\n )\n\n last = match.index + match[0].length\n match = search.exec(source)\n }\n\n lines.push(trimLine(source.slice(last), last > 0, false))\n\n return lines.join('')\n}\n\n/**\n * @param {string} value\n * Line to trim.\n * @param {boolean} start\n * Whether to trim the start of the line.\n * @param {boolean} end\n * Whether to trim the end of the line.\n * @returns {string}\n * Trimmed line.\n */\nfunction trimLine(value, start, end) {\n let startIndex = 0\n let endIndex = value.length\n\n if (start) {\n let code = value.codePointAt(startIndex)\n\n while (code === tab || code === space) {\n startIndex++\n code = value.codePointAt(startIndex)\n }\n }\n\n if (end) {\n let code = value.codePointAt(endIndex - 1)\n\n while (code === tab || code === space) {\n endIndex--\n code = value.codePointAt(endIndex - 1)\n }\n }\n\n return endIndex > startIndex ? value.slice(startIndex, endIndex) : ''\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {strikethrough} from './delete.js'\nimport {emphasis} from './emphasis.js'\nimport {footnoteReference} from './footnote-reference.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {imageReference} from './image-reference.js'\nimport {image} from './image.js'\nimport {inlineCode} from './inline-code.js'\nimport {linkReference} from './link-reference.js'\nimport {link} from './link.js'\nimport {listItem} from './list-item.js'\nimport {list} from './list.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {table} from './table.js'\nimport {tableRow} from './table-row.js'\nimport {tableCell} from './table-cell.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default handlers for nodes.\n *\n * @satisfies {import('../state.js').Handlers}\n */\nexport const handlers = {\n blockquote,\n break: hardBreak,\n code,\n delete: strikethrough,\n emphasis,\n footnoteReference,\n heading,\n html,\n imageReference,\n image,\n inlineCode,\n linkReference,\n link,\n listItem,\n list,\n paragraph,\n // @ts-expect-error: root is different, but hard to type.\n root,\n strong,\n table,\n tableCell,\n tableRow,\n text,\n thematicBreak,\n toml: ignore,\n yaml: ignore,\n definition: ignore,\n footnoteDefinition: ignore\n}\n\n// Return nothing for nodes that are ignored.\nfunction ignore() {\n return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `blockquote` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Blockquote} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function blockquote(state, node) {\n /** @type {Element} */\n const result = {\n type: 'element',\n tagName: 'blockquote',\n properties: {},\n children: state.wrap(state.all(node), true)\n }\n state.patch(node, result)\n return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').Break} Break\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `break` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Break} node\n * mdast node.\n * @returns {Array}\n * hast element content.\n */\nexport function hardBreak(state, node) {\n /** @type {Element} */\n const result = {type: 'element', tagName: 'br', properties: {}, children: []}\n state.patch(node, result)\n return [state.applyData(node, result), {type: 'text', value: '\\n'}]\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `code` node into hast.\n *\n * @param {State} state\n * Info passed around.\n * @param {Code} node\n * mdast node.\n * @returns {Element}\n * hast node.\n */\nexport function code(state, node) {\n const value = node.value ? node.value + '\\n' : ''\n /** @type {Properties} */\n const properties = {}\n\n if (node.lang) {\n properties.className = ['language-' + node.lang]\n }\n\n // Create ``.\n /** @type {Element} */\n let result = {\n type: 'element',\n tagName: 'code',\n properties,\n children: [{type: 'text', value}]\n }\n\n if (node.meta) {\n result.data = {meta: node.meta}\n }\n\n state.patch(node, result)\n result = state.applyData(node, result)\n\n // Create `
`.\n  result = {type: 'element', tagName: 'pre', properties: {}, children: [result]}\n  state.patch(node, result)\n  return result\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Delete} Delete\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `delete` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Delete} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strikethrough(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'del',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `emphasis` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Emphasis} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function emphasis(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'em',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `footnoteReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {FootnoteReference} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function footnoteReference(state, node) {\n  const clobberPrefix =\n    typeof state.options.clobberPrefix === 'string'\n      ? state.options.clobberPrefix\n      : 'user-content-'\n  const id = String(node.identifier).toUpperCase()\n  const safeId = normalizeUri(id.toLowerCase())\n  const index = state.footnoteOrder.indexOf(id)\n  /** @type {number} */\n  let counter\n\n  let reuseCounter = state.footnoteCounts.get(id)\n\n  if (reuseCounter === undefined) {\n    reuseCounter = 0\n    state.footnoteOrder.push(id)\n    counter = state.footnoteOrder.length\n  } else {\n    counter = index + 1\n  }\n\n  reuseCounter += 1\n  state.footnoteCounts.set(id, reuseCounter)\n\n  /** @type {Element} */\n  const link = {\n    type: 'element',\n    tagName: 'a',\n    properties: {\n      href: '#' + clobberPrefix + 'fn-' + safeId,\n      id:\n        clobberPrefix +\n        'fnref-' +\n        safeId +\n        (reuseCounter > 1 ? '-' + reuseCounter : ''),\n      dataFootnoteRef: true,\n      ariaDescribedBy: ['footnote-label']\n    },\n    children: [{type: 'text', value: String(counter)}]\n  }\n  state.patch(node, link)\n\n  /** @type {Element} */\n  const sup = {\n    type: 'element',\n    tagName: 'sup',\n    properties: {},\n    children: [link]\n  }\n  state.patch(node, sup)\n  return state.applyData(node, sup)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `heading` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Heading} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function heading(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'h' + node.depth,\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Html} Html\n * @typedef {import('../state.js').State} State\n * @typedef {import('../../index.js').Raw} Raw\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `html` node into hast (`raw` node in dangerous mode, otherwise\n * nothing).\n *\n * @param {State} state\n *   Info passed around.\n * @param {Html} node\n *   mdast node.\n * @returns {Element | Raw | undefined}\n *   hast node.\n */\nexport function html(state, node) {\n  if (state.options.allowDangerousHtml) {\n    /** @type {Raw} */\n    const result = {type: 'raw', value: node.value}\n    state.patch(node, result)\n    return state.applyData(node, result)\n  }\n\n  return undefined\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `imageReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ImageReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function imageReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(def.url || ''), alt: node.alt}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Image} Image\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `image` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Image} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function image(state, node) {\n  /** @type {Properties} */\n  const properties = {src: normalizeUri(node.url)}\n\n  if (node.alt !== null && node.alt !== undefined) {\n    properties.alt = node.alt\n  }\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {type: 'element', tagName: 'img', properties, children: []}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Text} Text\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `inlineCode` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {InlineCode} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function inlineCode(state, node) {\n  /** @type {Text} */\n  const text = {type: 'text', value: node.value.replace(/\\r?\\n|\\r/g, ' ')}\n  state.patch(node, text)\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'code',\n    properties: {},\n    children: [text]\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\nimport {revert} from '../revert.js'\n\n/**\n * Turn an mdast `linkReference` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {LinkReference} node\n *   mdast node.\n * @returns {Array | ElementContent}\n *   hast node.\n */\nexport function linkReference(state, node) {\n  const id = String(node.identifier).toUpperCase()\n  const def = state.definitionById.get(id)\n\n  if (!def) {\n    return revert(state, node)\n  }\n\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(def.url || '')}\n\n  if (def.title !== null && def.title !== undefined) {\n    properties.title = def.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../state.js').State} State\n */\n\nimport {normalizeUri} from 'micromark-util-sanitize-uri'\n\n/**\n * Turn an mdast `link` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Link} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function link(state, node) {\n  /** @type {Properties} */\n  const properties = {href: normalizeUri(node.url)}\n\n  if (node.title !== null && node.title !== undefined) {\n    properties.title = node.title\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'a',\n    properties,\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').List} List\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `list` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {List} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function list(state, node) {\n  /** @type {Properties} */\n  const properties = {}\n  const results = state.all(node)\n  let index = -1\n\n  if (typeof node.start === 'number' && node.start !== 1) {\n    properties.start = node.start\n  }\n\n  // Like GitHub, add a class for custom styling.\n  while (++index < results.length) {\n    const child = results[index]\n\n    if (\n      child.type === 'element' &&\n      child.tagName === 'li' &&\n      child.properties &&\n      Array.isArray(child.properties.className) &&\n      child.properties.className.includes('task-list-item')\n    ) {\n      properties.className = ['contains-task-list']\n      break\n    }\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: node.ordered ? 'ol' : 'ul',\n    properties,\n    children: state.wrap(results, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `paragraph` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Paragraph} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function paragraph(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'p',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Parents} HastParents\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `root` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastRoot} node\n *   mdast node.\n * @returns {HastParents}\n *   hast node.\n */\nexport function root(state, node) {\n  /** @type {HastRoot} */\n  const result = {type: 'root', children: state.wrap(state.all(node))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `strong` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Strong} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function strong(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'strong',\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').Table} Table\n * @typedef {import('../state.js').State} State\n */\n\nimport {pointEnd, pointStart} from 'unist-util-position'\n\n/**\n * Turn an mdast `table` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {Table} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function table(state, node) {\n  const rows = state.all(node)\n  const firstRow = rows.shift()\n  /** @type {Array} */\n  const tableContent = []\n\n  if (firstRow) {\n    /** @type {Element} */\n    const head = {\n      type: 'element',\n      tagName: 'thead',\n      properties: {},\n      children: state.wrap([firstRow], true)\n    }\n    state.patch(node.children[0], head)\n    tableContent.push(head)\n  }\n\n  if (rows.length > 0) {\n    /** @type {Element} */\n    const body = {\n      type: 'element',\n      tagName: 'tbody',\n      properties: {},\n      children: state.wrap(rows, true)\n    }\n\n    const start = pointStart(node.children[1])\n    const end = pointEnd(node.children[node.children.length - 1])\n    if (start && end) body.position = {start, end}\n    tableContent.push(body)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'table',\n    properties: {},\n    children: state.wrap(tableContent, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableCell` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableCell} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function tableCell(state, node) {\n  // Note: this function is normally not called: see `table-row` for how rows\n  // and their cells are compiled.\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'td', // Assume body cell.\n    properties: {},\n    children: state.all(node)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').TableRow} TableRow\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `tableRow` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {TableRow} node\n *   mdast node.\n * @param {Parents | undefined} parent\n *   Parent of `node`.\n * @returns {Element}\n *   hast node.\n */\nexport function tableRow(state, node, parent) {\n  const siblings = parent ? parent.children : undefined\n  // Generate a body row when without parent.\n  const rowIndex = siblings ? siblings.indexOf(node) : 1\n  const tagName = rowIndex === 0 ? 'th' : 'td'\n  // To do: option to use `style`?\n  const align = parent && parent.type === 'table' ? parent.align : undefined\n  const length = align ? align.length : node.children.length\n  let cellIndex = -1\n  /** @type {Array} */\n  const cells = []\n\n  while (++cellIndex < length) {\n    // Note: can also be undefined.\n    const cell = node.children[cellIndex]\n    /** @type {Properties} */\n    const properties = {}\n    const alignValue = align ? align[cellIndex] : undefined\n\n    if (alignValue) {\n      properties.align = alignValue\n    }\n\n    /** @type {Element} */\n    let result = {type: 'element', tagName, properties, children: []}\n\n    if (cell) {\n      result.children = state.all(cell)\n      state.patch(cell, result)\n      result = state.applyData(cell, result)\n    }\n\n    cells.push(result)\n  }\n\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'tr',\n    properties: {},\n    children: state.wrap(cells, true)\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').Text} HastText\n * @typedef {import('mdast').Text} MdastText\n * @typedef {import('../state.js').State} State\n */\n\nimport {trimLines} from 'trim-lines'\n\n/**\n * Turn an mdast `text` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {MdastText} node\n *   mdast node.\n * @returns {HastElement | HastText}\n *   hast node.\n */\nexport function text(state, node) {\n  /** @type {HastText} */\n  const result = {type: 'text', value: trimLines(String(node.value))}\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../state.js').State} State\n */\n\n// Make VS Code show references to the above types.\n''\n\n/**\n * Turn an mdast `thematicBreak` node into hast.\n *\n * @param {State} state\n *   Info passed around.\n * @param {ThematicBreak} node\n *   mdast node.\n * @returns {Element}\n *   hast node.\n */\nexport function thematicBreak(state, node) {\n  /** @type {Element} */\n  const result = {\n    type: 'element',\n    tagName: 'hr',\n    properties: {},\n    children: []\n  }\n  state.patch(node, result)\n  return state.applyData(node, result)\n}\n","/**\n * @typedef {import('hast').Element} HastElement\n * @typedef {import('hast').ElementContent} HastElementContent\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('hast').Properties} HastProperties\n * @typedef {import('hast').RootContent} HastRootContent\n * @typedef {import('hast').Text} HastText\n *\n * @typedef {import('mdast').Definition} MdastDefinition\n * @typedef {import('mdast').FootnoteDefinition} MdastFootnoteDefinition\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('mdast').Parents} MdastParents\n *\n * @typedef {import('vfile').VFile} VFile\n *\n * @typedef {import('./footer.js').FootnoteBackContentTemplate} FootnoteBackContentTemplate\n * @typedef {import('./footer.js').FootnoteBackLabelTemplate} FootnoteBackLabelTemplate\n */\n\n/**\n * @callback Handler\n *   Handle a node.\n * @param {State} state\n *   Info passed around.\n * @param {any} node\n *   mdast node to handle.\n * @param {MdastParents | undefined} parent\n *   Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n *   hast node.\n *\n * @typedef {Partial>} Handlers\n *   Handle nodes.\n *\n * @typedef Options\n *   Configuration (optional).\n * @property {boolean | null | undefined} [allowDangerousHtml=false]\n *   Whether to persist raw HTML in markdown in the hast tree (default:\n *   `false`).\n * @property {string | null | undefined} [clobberPrefix='user-content-']\n *   Prefix to use before the `id` property on footnotes to prevent them from\n *   *clobbering* (default: `'user-content-'`).\n *\n *   Pass `''` for trusted markdown and when you are careful with\n *   polyfilling.\n *   You could pass a different prefix.\n *\n *   DOM clobbering is this:\n *\n *   ```html\n *   

\n * \n * ```\n *\n * The above example shows that elements are made available by browsers, by\n * their ID, on the `window` object.\n * This is a security risk because you might be expecting some other variable\n * at that place.\n * It can also break polyfills.\n * Using a prefix solves these problems.\n * @property {VFile | null | undefined} [file]\n * Corresponding virtual file representing the input document (optional).\n * @property {FootnoteBackContentTemplate | string | null | undefined} [footnoteBackContent]\n * Content of the backreference back to references (default: `defaultFootnoteBackContent`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackContent(_, rereferenceIndex) {\n * const result = [{type: 'text', value: '↩'}]\n *\n * if (rereferenceIndex > 1) {\n * result.push({\n * type: 'element',\n * tagName: 'sup',\n * properties: {},\n * children: [{type: 'text', value: String(rereferenceIndex)}]\n * })\n * }\n *\n * return result\n * }\n * ```\n *\n * This content is used in the `a` element of each backreference (the `↩`\n * links).\n * @property {FootnoteBackLabelTemplate | string | null | undefined} [footnoteBackLabel]\n * Label to describe the backreference back to references (default:\n * `defaultFootnoteBackLabel`).\n *\n * The default value is:\n *\n * ```js\n * function defaultFootnoteBackLabel(referenceIndex, rereferenceIndex) {\n * return (\n * 'Back to reference ' +\n * (referenceIndex + 1) +\n * (rereferenceIndex > 1 ? '-' + rereferenceIndex : '')\n * )\n * }\n * ```\n *\n * Change it when the markdown is not in English.\n *\n * This label is used in the `ariaLabel` property on each backreference\n * (the `↩` links).\n * It affects users of assistive technology.\n * @property {string | null | undefined} [footnoteLabel='Footnotes']\n * Textual label to use for the footnotes section (default: `'Footnotes'`).\n *\n * Change it when the markdown is not in English.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {HastProperties | null | undefined} [footnoteLabelProperties={className: ['sr-only']}]\n * Properties to use on the footnote label (default: `{className:\n * ['sr-only']}`).\n *\n * Change it to show the label and add other properties.\n *\n * This label is typically hidden visually (assuming an `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass an empty string.\n * You can also add different properties.\n *\n * > 👉 **Note**: `id: 'footnote-label'` is always added, because footnote\n * > calls use it with `aria-describedby` to provide an accessible label.\n * @property {string | null | undefined} [footnoteLabelTagName='h2']\n * HTML tag name to use for the footnote label element (default: `'h2'`).\n *\n * Change it to match your document structure.\n *\n * This label is typically hidden visually (assuming a `sr-only` CSS class\n * is defined that does that) and so affects screen readers only.\n * If you do have such a class, but want to show this section to everyone,\n * pass different properties with the `footnoteLabelProperties` option.\n * @property {Handlers | null | undefined} [handlers]\n * Extra handlers for nodes (optional).\n * @property {Array | null | undefined} [passThrough]\n * List of custom mdast node types to pass through (keep) in hast (note that\n * the node itself is passed, but eventual children are transformed)\n * (optional).\n * @property {Handler | null | undefined} [unknownHandler]\n * Handler for all unknown nodes (optional).\n *\n * @typedef State\n * Info passed around.\n * @property {(node: MdastNodes) => Array} all\n * Transform the children of an mdast parent to hast.\n * @property {(from: MdastNodes, to: Type) => HastElement | Type} applyData\n * Honor the `data` of `from`, and generate an element instead of `node`.\n * @property {Map} definitionById\n * Definitions by their identifier.\n * @property {Map} footnoteById\n * Footnote definitions by their identifier.\n * @property {Map} footnoteCounts\n * Counts for how often the same footnote was called.\n * @property {Array} footnoteOrder\n * Identifiers of order when footnote calls first appear in tree order.\n * @property {Handlers} handlers\n * Applied handlers.\n * @property {(node: MdastNodes, parent: MdastParents | undefined) => Array | HastElementContent | undefined} one\n * Transform an mdast node to hast.\n * @property {Options} options\n * Configuration.\n * @property {(from: MdastNodes, node: HastNodes) => undefined} patch\n * Copy a node’s positional info.\n * @property {(nodes: Array, loose?: boolean | undefined) => Array} wrap\n * Wrap `nodes` with line endings between each node, adds initial/final line endings when `loose`.\n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {visit} from 'unist-util-visit'\nimport {position} from 'unist-util-position'\nimport {handlers as defaultHandlers} from './handlers/index.js'\n\nconst own = {}.hasOwnProperty\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Create `state` from an mdast tree.\n *\n * @param {MdastNodes} tree\n * mdast node to transform.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {State}\n * `state` function.\n */\nexport function createState(tree, options) {\n const settings = options || emptyOptions\n /** @type {Map} */\n const definitionById = new Map()\n /** @type {Map} */\n const footnoteById = new Map()\n /** @type {Map} */\n const footnoteCounts = new Map()\n /** @type {Handlers} */\n // @ts-expect-error: the root handler returns a root.\n // Hard to type.\n const handlers = {...defaultHandlers, ...settings.handlers}\n\n /** @type {State} */\n const state = {\n all,\n applyData,\n definitionById,\n footnoteById,\n footnoteCounts,\n footnoteOrder: [],\n handlers,\n one,\n options: settings,\n patch,\n wrap\n }\n\n visit(tree, function (node) {\n if (node.type === 'definition' || node.type === 'footnoteDefinition') {\n const map = node.type === 'definition' ? definitionById : footnoteById\n const id = String(node.identifier).toUpperCase()\n\n // Mimick CM behavior of link definitions.\n // See: .\n if (!map.has(id)) {\n // @ts-expect-error: node type matches map.\n map.set(id, node)\n }\n }\n })\n\n return state\n\n /**\n * Transform an mdast node into a hast node.\n *\n * @param {MdastNodes} node\n * mdast node.\n * @param {MdastParents | undefined} [parent]\n * Parent of `node`.\n * @returns {Array | HastElementContent | undefined}\n * Resulting hast node.\n */\n function one(node, parent) {\n const type = node.type\n const handle = state.handlers[type]\n\n if (own.call(state.handlers, type) && handle) {\n return handle(state, node, parent)\n }\n\n if (state.options.passThrough && state.options.passThrough.includes(type)) {\n if ('children' in node) {\n const {children, ...shallow} = node\n const result = structuredClone(shallow)\n // @ts-expect-error: TS doesn’t understand…\n result.children = state.all(node)\n // @ts-expect-error: TS doesn’t understand…\n return result\n }\n\n // @ts-expect-error: it’s custom.\n return structuredClone(node)\n }\n\n const unknown = state.options.unknownHandler || defaultUnknownHandler\n\n return unknown(state, node, parent)\n }\n\n /**\n * Transform the children of an mdast node into hast nodes.\n *\n * @param {MdastNodes} parent\n * mdast node to compile\n * @returns {Array}\n * Resulting hast nodes.\n */\n function all(parent) {\n /** @type {Array} */\n const values = []\n\n if ('children' in parent) {\n const nodes = parent.children\n let index = -1\n while (++index < nodes.length) {\n const result = state.one(nodes[index], parent)\n\n // To do: see if we van clean this? Can we merge texts?\n if (result) {\n if (index && nodes[index - 1].type === 'break') {\n if (!Array.isArray(result) && result.type === 'text') {\n result.value = trimMarkdownSpaceStart(result.value)\n }\n\n if (!Array.isArray(result) && result.type === 'element') {\n const head = result.children[0]\n\n if (head && head.type === 'text') {\n head.value = trimMarkdownSpaceStart(head.value)\n }\n }\n }\n\n if (Array.isArray(result)) {\n values.push(...result)\n } else {\n values.push(result)\n }\n }\n }\n }\n\n return values\n }\n}\n\n/**\n * Copy a node’s positional info.\n *\n * @param {MdastNodes} from\n * mdast node to copy from.\n * @param {HastNodes} to\n * hast node to copy into.\n * @returns {undefined}\n * Nothing.\n */\nfunction patch(from, to) {\n if (from.position) to.position = position(from)\n}\n\n/**\n * Honor the `data` of `from` and maybe generate an element instead of `to`.\n *\n * @template {HastNodes} Type\n * Node type.\n * @param {MdastNodes} from\n * mdast node to use data from.\n * @param {Type} to\n * hast node to change.\n * @returns {HastElement | Type}\n * Nothing.\n */\nfunction applyData(from, to) {\n /** @type {HastElement | Type} */\n let result = to\n\n // Handle `data.hName`, `data.hProperties, `data.hChildren`.\n if (from && from.data) {\n const hName = from.data.hName\n const hChildren = from.data.hChildren\n const hProperties = from.data.hProperties\n\n if (typeof hName === 'string') {\n // Transforming the node resulted in an element with a different name\n // than wanted:\n if (result.type === 'element') {\n result.tagName = hName\n }\n // Transforming the node resulted in a non-element, which happens for\n // raw, text, and root nodes (unless custom handlers are passed).\n // The intent of `hName` is to create an element, but likely also to keep\n // the content around (otherwise: pass `hChildren`).\n else {\n /** @type {Array} */\n // @ts-expect-error: assume no doctypes in `root`.\n const children = 'children' in result ? result.children : [result]\n result = {type: 'element', tagName: hName, properties: {}, children}\n }\n }\n\n if (result.type === 'element' && hProperties) {\n Object.assign(result.properties, structuredClone(hProperties))\n }\n\n if (\n 'children' in result &&\n result.children &&\n hChildren !== null &&\n hChildren !== undefined\n ) {\n result.children = hChildren\n }\n }\n\n return result\n}\n\n/**\n * Transform an unknown node.\n *\n * @param {State} state\n * Info passed around.\n * @param {MdastNodes} node\n * Unknown mdast node.\n * @returns {HastElement | HastText}\n * Resulting hast node.\n */\nfunction defaultUnknownHandler(state, node) {\n const data = node.data || {}\n /** @type {HastElement | HastText} */\n const result =\n 'value' in node &&\n !(own.call(data, 'hProperties') || own.call(data, 'hChildren'))\n ? {type: 'text', value: node.value}\n : {\n type: 'element',\n tagName: 'div',\n properties: {},\n children: state.all(node)\n }\n\n state.patch(node, result)\n return state.applyData(node, result)\n}\n\n/**\n * Wrap `nodes` with line endings between each node.\n *\n * @template {HastRootContent} Type\n * Node type.\n * @param {Array} nodes\n * List of nodes to wrap.\n * @param {boolean | undefined} [loose=false]\n * Whether to add line endings at start and end (default: `false`).\n * @returns {Array}\n * Wrapped nodes.\n */\nexport function wrap(nodes, loose) {\n /** @type {Array} */\n const result = []\n let index = -1\n\n if (loose) {\n result.push({type: 'text', value: '\\n'})\n }\n\n while (++index < nodes.length) {\n if (index) result.push({type: 'text', value: '\\n'})\n result.push(nodes[index])\n }\n\n if (loose && nodes.length > 0) {\n result.push({type: 'text', value: '\\n'})\n }\n\n return result\n}\n\n/**\n * Trim spaces and tabs at the start of `value`.\n *\n * @param {string} value\n * Value to trim.\n * @returns {string}\n * Result.\n */\nfunction trimMarkdownSpaceStart(value) {\n let index = 0\n let code = value.charCodeAt(index)\n\n while (code === 9 || code === 32) {\n index++\n code = value.charCodeAt(index)\n }\n\n return value.slice(index)\n}\n","/**\n * @typedef {import('hast').Nodes} HastNodes\n * @typedef {import('mdast').Nodes} MdastNodes\n * @typedef {import('./state.js').Options} Options\n */\n\nimport {ok as assert} from 'devlop'\nimport {footer} from './footer.js'\nimport {createState} from './state.js'\n\n/**\n * Transform mdast to hast.\n *\n * ##### Notes\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most utilities ignore `raw` nodes but two notable ones don’t:\n *\n * * `hast-util-to-html` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful\n * if you completely trust authors\n * * `hast-util-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only\n * way to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `mdast-util-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * Example: headings (DOM clobbering) in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @param {MdastNodes} tree\n * mdast tree.\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {HastNodes}\n * hast tree.\n */\nexport function toHast(tree, options) {\n const state = createState(tree, options)\n const node = state.one(tree, undefined)\n const foot = footer(state)\n /** @type {HastNodes} */\n const result = Array.isArray(node)\n ? {type: 'root', children: node}\n : node || {type: 'root', children: []}\n\n if (foot) {\n // If there’s a footer, there were definitions, meaning block\n // content.\n // So `result` is a parent node.\n assert('children' in result)\n result.children.push({type: 'text', value: '\\n'}, foot)\n }\n\n return result\n}\n","// Include `data` fields in mdast and `raw` nodes in hast.\n/// \n\n/**\n * @typedef {import('hast').Root} HastRoot\n * @typedef {import('mdast').Root} MdastRoot\n * @typedef {import('mdast-util-to-hast').Options} ToHastOptions\n * @typedef {import('unified').Processor} Processor\n * @typedef {import('vfile').VFile} VFile\n */\n\n/**\n * @typedef {Omit} Options\n *\n * @callback TransformBridge\n * Bridge-mode.\n *\n * Runs the destination with the new hast tree.\n * Discards result.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {Promise}\n * Nothing.\n *\n * @callback TransformMutate\n * Mutate-mode.\n *\n * Further transformers run on the hast tree.\n * @param {MdastRoot} tree\n * Tree.\n * @param {VFile} file\n * File.\n * @returns {HastRoot}\n * Tree (hast).\n */\n\nimport {toHast} from 'mdast-util-to-hast'\n\n/**\n * Turn markdown into HTML.\n *\n * ##### Notes\n *\n * ###### Signature\n *\n * * if a processor is given, runs the (rehype) plugins used on it with a\n * hast tree, then discards the result (*bridge mode*)\n * * otherwise, returns a hast tree, the plugins used after `remarkRehype`\n * are rehype plugins (*mutate mode*)\n *\n * > 👉 **Note**: It’s highly unlikely that you want to pass a `processor`.\n *\n * ###### HTML\n *\n * Raw HTML is available in mdast as `html` nodes and can be embedded in hast\n * as semistandard `raw` nodes.\n * Most plugins ignore `raw` nodes but two notable ones don’t:\n *\n * * `rehype-stringify` also has an option `allowDangerousHtml` which will\n * output the raw HTML.\n * This is typically discouraged as noted by the option name but is useful if\n * you completely trust authors\n * * `rehype-raw` can handle the raw embedded HTML strings by parsing them\n * into standard hast nodes (`element`, `text`, etc).\n * This is a heavy task as it needs a full HTML parser, but it is the only way\n * to support untrusted content\n *\n * ###### Footnotes\n *\n * Many options supported here relate to footnotes.\n * Footnotes are not specified by CommonMark, which we follow by default.\n * They are supported by GitHub, so footnotes can be enabled in markdown with\n * `remark-gfm`.\n *\n * The options `footnoteBackLabel` and `footnoteLabel` define natural language\n * that explains footnotes, which is hidden for sighted users but shown to\n * assistive technology.\n * When your page is not in English, you must define translated values.\n *\n * Back references use ARIA attributes, but the section label itself uses a\n * heading that is hidden with an `sr-only` class.\n * To show it to sighted users, define different attributes in\n * `footnoteLabelProperties`.\n *\n * ###### Clobbering\n *\n * Footnotes introduces a problem, as it links footnote calls to footnote\n * definitions on the page through `id` attributes generated from user content,\n * which results in DOM clobbering.\n *\n * DOM clobbering is this:\n *\n * ```html\n *

\n * \n * ```\n *\n * Elements by their ID are made available by browsers on the `window` object,\n * which is a security risk.\n * Using a prefix solves this problem.\n *\n * More information on how to handle clobbering and the prefix is explained in\n * *Example: headings (DOM clobbering)* in `rehype-sanitize`.\n *\n * ###### Unknown nodes\n *\n * Unknown nodes are nodes with a type that isn’t in `handlers` or `passThrough`.\n * The default behavior for unknown nodes is:\n *\n * * when the node has a `value` (and doesn’t have `data.hName`,\n * `data.hProperties`, or `data.hChildren`, see later), create a hast `text`\n * node\n * * otherwise, create a `
` element (which could be changed with\n * `data.hName`), with its children mapped from mdast to hast as well\n *\n * This behavior can be changed by passing an `unknownHandler`.\n *\n * @overload\n * @param {Processor} processor\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformBridge}\n *\n * @overload\n * @param {Readonly | null | undefined} [options]\n * @returns {TransformMutate}\n *\n * @param {Readonly | Processor | null | undefined} [destination]\n * Processor or configuration (optional).\n * @param {Readonly | null | undefined} [options]\n * When a processor was given, configuration (optional).\n * @returns {TransformBridge | TransformMutate}\n * Transform.\n */\nexport default function remarkRehype(destination, options) {\n if (destination && 'run' in destination) {\n /**\n * @type {TransformBridge}\n */\n return async function (tree, file) {\n // Cast because root in -> root out.\n const hastTree = /** @type {HastRoot} */ (\n toHast(tree, {file, ...options})\n )\n await destination.run(hastTree, file)\n }\n }\n\n /**\n * @type {TransformMutate}\n */\n return function (tree, file) {\n // Cast because root in -> root out.\n return /** @type {HastRoot} */ (\n toHast(tree, {file, ...(options || destination)})\n )\n }\n}\n","/**\n * Throw a given error.\n *\n * @param {Error|null|undefined} [error]\n * Maybe error.\n * @returns {asserts error is null|undefined}\n */\nexport function bail(error) {\n if (error) {\n throw error\n }\n}\n","export default function isPlainObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\n\tconst prototype = Object.getPrototypeOf(value);\n\treturn (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in value) && !(Symbol.iterator in value);\n}\n","// To do: remove `void`s\n// To do: remove `null` from output of our APIs, allow it as user APIs.\n\n/**\n * @typedef {(error?: Error | null | undefined, ...output: Array) => void} Callback\n * Callback.\n *\n * @typedef {(...input: Array) => any} Middleware\n * Ware.\n *\n * @typedef Pipeline\n * Pipeline.\n * @property {Run} run\n * Run the pipeline.\n * @property {Use} use\n * Add middleware.\n *\n * @typedef {(...input: Array) => void} Run\n * Call all middleware.\n *\n * Calls `done` on completion with either an error or the output of the\n * last middleware.\n *\n * > 👉 **Note**: as the length of input defines whether async functions get a\n * > `next` function,\n * > it’s recommended to keep `input` at one value normally.\n\n *\n * @typedef {(fn: Middleware) => Pipeline} Use\n * Add middleware.\n */\n\n/**\n * Create new middleware.\n *\n * @returns {Pipeline}\n * Pipeline.\n */\nexport function trough() {\n /** @type {Array} */\n const fns = []\n /** @type {Pipeline} */\n const pipeline = {run, use}\n\n return pipeline\n\n /** @type {Run} */\n function run(...values) {\n let middlewareIndex = -1\n /** @type {Callback} */\n const callback = values.pop()\n\n if (typeof callback !== 'function') {\n throw new TypeError('Expected function as last argument, not ' + callback)\n }\n\n next(null, ...values)\n\n /**\n * Run the next `fn`, or we’re done.\n *\n * @param {Error | null | undefined} error\n * @param {Array} output\n */\n function next(error, ...output) {\n const fn = fns[++middlewareIndex]\n let index = -1\n\n if (error) {\n callback(error)\n return\n }\n\n // Copy non-nullish input into values.\n while (++index < values.length) {\n if (output[index] === null || output[index] === undefined) {\n output[index] = values[index]\n }\n }\n\n // Save the newly created `output` for the next call.\n values = output\n\n // Next or done.\n if (fn) {\n wrap(fn, next)(...output)\n } else {\n callback(null, ...output)\n }\n }\n }\n\n /** @type {Use} */\n function use(middelware) {\n if (typeof middelware !== 'function') {\n throw new TypeError(\n 'Expected `middelware` to be a function, not ' + middelware\n )\n }\n\n fns.push(middelware)\n return pipeline\n }\n}\n\n/**\n * Wrap `middleware` into a uniform interface.\n *\n * You can pass all input to the resulting function.\n * `callback` is then called with the output of `middleware`.\n *\n * If `middleware` accepts more arguments than the later given in input,\n * an extra `done` function is passed to it after that input,\n * which must be called by `middleware`.\n *\n * The first value in `input` is the main input value.\n * All other input values are the rest input values.\n * The values given to `callback` are the input values,\n * merged with every non-nullish output value.\n *\n * * if `middleware` throws an error,\n * returns a promise that is rejected,\n * or calls the given `done` function with an error,\n * `callback` is called with that error\n * * if `middleware` returns a value or returns a promise that is resolved,\n * that value is the main output value\n * * if `middleware` calls `done`,\n * all non-nullish values except for the first one (the error) overwrite the\n * output values\n *\n * @param {Middleware} middleware\n * Function to wrap.\n * @param {Callback} callback\n * Callback called with the output of `middleware`.\n * @returns {Run}\n * Wrapped middleware.\n */\nexport function wrap(middleware, callback) {\n /** @type {boolean} */\n let called\n\n return wrapped\n\n /**\n * Call `middleware`.\n * @this {any}\n * @param {Array} parameters\n * @returns {void}\n */\n function wrapped(...parameters) {\n const fnExpectsCallback = middleware.length > parameters.length\n /** @type {any} */\n let result\n\n if (fnExpectsCallback) {\n parameters.push(done)\n }\n\n try {\n result = middleware.apply(this, parameters)\n } catch (error) {\n const exception = /** @type {Error} */ (error)\n\n // Well, this is quite the pickle.\n // `middleware` received a callback and called it synchronously, but that\n // threw an error.\n // The only thing left to do is to throw the thing instead.\n if (fnExpectsCallback && called) {\n throw exception\n }\n\n return done(exception)\n }\n\n if (!fnExpectsCallback) {\n if (result && result.then && typeof result.then === 'function') {\n result.then(then, done)\n } else if (result instanceof Error) {\n done(result)\n } else {\n then(result)\n }\n }\n }\n\n /**\n * Call `callback`, only once.\n *\n * @type {Callback}\n */\n function done(error, ...output) {\n if (!called) {\n called = true\n callback(error, ...output)\n }\n }\n\n /**\n * Call `done` with one value.\n *\n * @param {any} [value]\n */\n function then(value) {\n done(null, value)\n }\n}\n","// A derivative work based on:\n// .\n// Which is licensed:\n//\n// MIT License\n//\n// Copyright (c) 2013 James Halliday\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy of\n// this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to\n// use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\n// the Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in all\n// copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\n// FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\n// COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\n// IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\n// CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A derivative work based on:\n//\n// Parts of that are extracted from Node’s internal `path` module:\n// .\n// Which is licensed:\n//\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nexport const path = {basename, dirname, extname, join, sep: '/'}\n\n/* eslint-disable max-depth, complexity */\n\n/**\n * Get the basename from a path.\n *\n * @param {string} path\n * File path.\n * @param {string | null | undefined} [ext]\n * Extension to strip.\n * @returns {string}\n * Stem or basename.\n */\nfunction basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') {\n throw new TypeError('\"ext\" argument must be a string')\n }\n\n assertPath(path)\n let start = 0\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let seenNonSlash\n\n if (ext === undefined || ext.length === 0 || ext.length > path.length) {\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // path component.\n seenNonSlash = true\n end = index + 1\n }\n }\n\n return end < 0 ? '' : path.slice(start, end)\n }\n\n if (ext === path) {\n return ''\n }\n\n let firstNonSlashEnd = -1\n let extIndex = ext.length - 1\n\n while (index--) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (seenNonSlash) {\n start = index + 1\n break\n }\n } else {\n if (firstNonSlashEnd < 0) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching.\n seenNonSlash = true\n firstNonSlashEnd = index + 1\n }\n\n if (extIndex > -1) {\n // Try to match the explicit extension.\n if (path.codePointAt(index) === ext.codePointAt(extIndex--)) {\n if (extIndex < 0) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = index\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIndex = -1\n end = firstNonSlashEnd\n }\n }\n }\n }\n\n if (start === end) {\n end = firstNonSlashEnd\n } else if (end < 0) {\n end = path.length\n }\n\n return path.slice(start, end)\n}\n\n/**\n * Get the dirname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\nfunction dirname(path) {\n assertPath(path)\n\n if (path.length === 0) {\n return '.'\n }\n\n let end = -1\n let index = path.length\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n // Prefix `--` is important to not run on `0`.\n while (--index) {\n if (path.codePointAt(index) === 47 /* `/` */) {\n if (unmatchedSlash) {\n end = index\n break\n }\n } else if (!unmatchedSlash) {\n // We saw the first non-path separator\n unmatchedSlash = true\n }\n }\n\n return end < 0\n ? path.codePointAt(0) === 47 /* `/` */\n ? '/'\n : '.'\n : end === 1 && path.codePointAt(0) === 47 /* `/` */\n ? '//'\n : path.slice(0, end)\n}\n\n/**\n * Get an extname from a path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * Extname.\n */\nfunction extname(path) {\n assertPath(path)\n\n let index = path.length\n\n let end = -1\n let startPart = 0\n let startDot = -1\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find.\n let preDotState = 0\n /** @type {boolean | undefined} */\n let unmatchedSlash\n\n while (index--) {\n const code = path.codePointAt(index)\n\n if (code === 47 /* `/` */) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now.\n if (unmatchedSlash) {\n startPart = index + 1\n break\n }\n\n continue\n }\n\n if (end < 0) {\n // We saw the first non-path separator, mark this as the end of our\n // extension.\n unmatchedSlash = true\n end = index + 1\n }\n\n if (code === 46 /* `.` */) {\n // If this is our first dot, mark it as the start of our extension.\n if (startDot < 0) {\n startDot = index\n } else if (preDotState !== 1) {\n preDotState = 1\n }\n } else if (startDot > -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension.\n preDotState = -1\n }\n }\n\n if (\n startDot < 0 ||\n end < 0 ||\n // We saw a non-dot character immediately before the dot.\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly `..`.\n (preDotState === 1 && startDot === end - 1 && startDot === startPart + 1)\n ) {\n return ''\n }\n\n return path.slice(startDot, end)\n}\n\n/**\n * Join segments from a path.\n *\n * @param {Array} segments\n * Path segments.\n * @returns {string}\n * File path.\n */\nfunction join(...segments) {\n let index = -1\n /** @type {string | undefined} */\n let joined\n\n while (++index < segments.length) {\n assertPath(segments[index])\n\n if (segments[index]) {\n joined =\n joined === undefined ? segments[index] : joined + '/' + segments[index]\n }\n }\n\n return joined === undefined ? '.' : normalize(joined)\n}\n\n/**\n * Normalize a basic file path.\n *\n * @param {string} path\n * File path.\n * @returns {string}\n * File path.\n */\n// Note: `normalize` is not exposed as `path.normalize`, so some code is\n// manually removed from it.\nfunction normalize(path) {\n assertPath(path)\n\n const absolute = path.codePointAt(0) === 47 /* `/` */\n\n // Normalize the path according to POSIX rules.\n let value = normalizeString(path, !absolute)\n\n if (value.length === 0 && !absolute) {\n value = '.'\n }\n\n if (value.length > 0 && path.codePointAt(path.length - 1) === 47 /* / */) {\n value += '/'\n }\n\n return absolute ? '/' + value : value\n}\n\n/**\n * Resolve `.` and `..` elements in a path with directory names.\n *\n * @param {string} path\n * File path.\n * @param {boolean} allowAboveRoot\n * Whether `..` can move above root.\n * @returns {string}\n * File path.\n */\nfunction normalizeString(path, allowAboveRoot) {\n let result = ''\n let lastSegmentLength = 0\n let lastSlash = -1\n let dots = 0\n let index = -1\n /** @type {number | undefined} */\n let code\n /** @type {number} */\n let lastSlashIndex\n\n while (++index <= path.length) {\n if (index < path.length) {\n code = path.codePointAt(index)\n } else if (code === 47 /* `/` */) {\n break\n } else {\n code = 47 /* `/` */\n }\n\n if (code === 47 /* `/` */) {\n if (lastSlash === index - 1 || dots === 1) {\n // Empty.\n } else if (lastSlash !== index - 1 && dots === 2) {\n if (\n result.length < 2 ||\n lastSegmentLength !== 2 ||\n result.codePointAt(result.length - 1) !== 46 /* `.` */ ||\n result.codePointAt(result.length - 2) !== 46 /* `.` */\n ) {\n if (result.length > 2) {\n lastSlashIndex = result.lastIndexOf('/')\n\n if (lastSlashIndex !== result.length - 1) {\n if (lastSlashIndex < 0) {\n result = ''\n lastSegmentLength = 0\n } else {\n result = result.slice(0, lastSlashIndex)\n lastSegmentLength = result.length - 1 - result.lastIndexOf('/')\n }\n\n lastSlash = index\n dots = 0\n continue\n }\n } else if (result.length > 0) {\n result = ''\n lastSegmentLength = 0\n lastSlash = index\n dots = 0\n continue\n }\n }\n\n if (allowAboveRoot) {\n result = result.length > 0 ? result + '/..' : '..'\n lastSegmentLength = 2\n }\n } else {\n if (result.length > 0) {\n result += '/' + path.slice(lastSlash + 1, index)\n } else {\n result = path.slice(lastSlash + 1, index)\n }\n\n lastSegmentLength = index - lastSlash - 1\n }\n\n lastSlash = index\n dots = 0\n } else if (code === 46 /* `.` */ && dots > -1) {\n dots++\n } else {\n dots = -1\n }\n }\n\n return result\n}\n\n/**\n * Make sure `path` is a string.\n *\n * @param {string} path\n * File path.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError(\n 'Path must be a string. Received ' + JSON.stringify(path)\n )\n }\n}\n\n/* eslint-enable max-depth, complexity */\n","// Somewhat based on:\n// .\n// But I don’t think one tiny line of code can be copyrighted. 😅\nexport const proc = {cwd}\n\nfunction cwd() {\n return '/'\n}\n","/**\n * Checks if a value has the shape of a WHATWG URL object.\n *\n * Using a symbol or instanceof would not be able to recognize URL objects\n * coming from other implementations (e.g. in Electron), so instead we are\n * checking some well known properties for a lack of a better test.\n *\n * We use `href` and `protocol` as they are the only properties that are\n * easy to retrieve and calculate due to the lazy nature of the getters.\n *\n * We check for auth attribute to distinguish legacy url instance with\n * WHATWG URL instance.\n *\n * @param {unknown} fileUrlOrPath\n * File path or URL.\n * @returns {fileUrlOrPath is URL}\n * Whether it’s a URL.\n */\n// From: \nexport function isUrl(fileUrlOrPath) {\n return Boolean(\n fileUrlOrPath !== null &&\n typeof fileUrlOrPath === 'object' &&\n 'href' in fileUrlOrPath &&\n fileUrlOrPath.href &&\n 'protocol' in fileUrlOrPath &&\n fileUrlOrPath.protocol &&\n // @ts-expect-error: indexing is fine.\n fileUrlOrPath.auth === undefined\n )\n}\n","import {isUrl} from './minurl.shared.js'\n\nexport {isUrl} from './minurl.shared.js'\n\n// See: \n\n/**\n * @param {URL | string} path\n * File URL.\n * @returns {string}\n * File URL.\n */\nexport function urlToPath(path) {\n if (typeof path === 'string') {\n path = new URL(path)\n } else if (!isUrl(path)) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' +\n path +\n '`'\n )\n error.code = 'ERR_INVALID_ARG_TYPE'\n throw error\n }\n\n if (path.protocol !== 'file:') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError('The URL must be of scheme file')\n error.code = 'ERR_INVALID_URL_SCHEME'\n throw error\n }\n\n return getPathFromURLPosix(path)\n}\n\n/**\n * Get a path from a POSIX URL.\n *\n * @param {URL} url\n * URL.\n * @returns {string}\n * File path.\n */\nfunction getPathFromURLPosix(url) {\n if (url.hostname !== '') {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n )\n error.code = 'ERR_INVALID_FILE_URL_HOST'\n throw error\n }\n\n const pathname = url.pathname\n let index = -1\n\n while (++index < pathname.length) {\n if (\n pathname.codePointAt(index) === 37 /* `%` */ &&\n pathname.codePointAt(index + 1) === 50 /* `2` */\n ) {\n const third = pathname.codePointAt(index + 2)\n if (third === 70 /* `F` */ || third === 102 /* `f` */) {\n /** @type {NodeJS.ErrnoException} */\n const error = new TypeError(\n 'File URL path must not include encoded / characters'\n )\n error.code = 'ERR_INVALID_FILE_URL_PATH'\n throw error\n }\n }\n }\n\n return decodeURIComponent(pathname)\n}\n","/**\n * @typedef {import('unist').Node} Node\n * @typedef {import('unist').Point} Point\n * @typedef {import('unist').Position} Position\n * @typedef {import('vfile-message').Options} MessageOptions\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Value} Value\n */\n\n/**\n * @typedef {object & {type: string, position?: Position | undefined}} NodeLike\n *\n * @typedef {Options | URL | VFile | Value} Compatible\n * Things that can be passed to the constructor.\n *\n * @typedef VFileCoreOptions\n * Set multiple values.\n * @property {string | null | undefined} [basename]\n * Set `basename` (name).\n * @property {string | null | undefined} [cwd]\n * Set `cwd` (working directory).\n * @property {Data | null | undefined} [data]\n * Set `data` (associated info).\n * @property {string | null | undefined} [dirname]\n * Set `dirname` (path w/o basename).\n * @property {string | null | undefined} [extname]\n * Set `extname` (extension with dot).\n * @property {Array | null | undefined} [history]\n * Set `history` (paths the file moved between).\n * @property {URL | string | null | undefined} [path]\n * Set `path` (current path).\n * @property {string | null | undefined} [stem]\n * Set `stem` (name without extension).\n * @property {Value | null | undefined} [value]\n * Set `value` (the contents of the file).\n *\n * @typedef Map\n * Raw source map.\n *\n * See:\n * .\n * @property {number} version\n * Which version of the source map spec this map is following.\n * @property {Array} sources\n * An array of URLs to the original source files.\n * @property {Array} names\n * An array of identifiers which can be referenced by individual mappings.\n * @property {string | undefined} [sourceRoot]\n * The URL root from which all sources are relative.\n * @property {Array | undefined} [sourcesContent]\n * An array of contents of the original source files.\n * @property {string} mappings\n * A string of base64 VLQs which contain the actual mappings.\n * @property {string} file\n * The generated file this source map is associated with.\n *\n * @typedef {Record & VFileCoreOptions} Options\n * Configuration.\n *\n * A bunch of keys that will be shallow copied over to the new file.\n *\n * @typedef {Record} ReporterSettings\n * Configuration for reporters.\n */\n\n/**\n * @template [Settings=ReporterSettings]\n * Options type.\n * @callback Reporter\n * Type for a reporter.\n * @param {Array} files\n * Files to report.\n * @param {Settings} options\n * Configuration.\n * @returns {string}\n * Report.\n */\n\nimport {VFileMessage} from 'vfile-message'\nimport {path} from 'vfile/do-not-use-conditional-minpath'\nimport {proc} from 'vfile/do-not-use-conditional-minproc'\nimport {urlToPath, isUrl} from 'vfile/do-not-use-conditional-minurl'\n\n/**\n * Order of setting (least specific to most), we need this because otherwise\n * `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a\n * stem can be set.\n */\nconst order = /** @type {const} */ ([\n 'history',\n 'path',\n 'basename',\n 'stem',\n 'extname',\n 'dirname'\n])\n\nexport class VFile {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(value) {\n /** @type {Options | VFile} */\n let options\n\n if (!value) {\n options = {}\n } else if (isUrl(value)) {\n options = {path: value}\n } else if (typeof value === 'string' || isUint8Array(value)) {\n options = {value}\n } else {\n options = value\n }\n\n /* eslint-disable no-unused-expressions */\n\n /**\n * Base of `path` (default: `process.cwd()` or `'/'` in browsers).\n *\n * @type {string}\n */\n this.cwd = proc.cwd()\n\n /**\n * Place to store custom info (default: `{}`).\n *\n * It’s OK to store custom data directly on the file but moving it to\n * `data` is recommended.\n *\n * @type {Data}\n */\n this.data = {}\n\n /**\n * List of file paths the file moved between.\n *\n * The first is the original path and the last is the current path.\n *\n * @type {Array}\n */\n this.history = []\n\n /**\n * List of messages associated with the file.\n *\n * @type {Array}\n */\n this.messages = []\n\n /**\n * Raw value.\n *\n * @type {Value}\n */\n this.value\n\n // The below are non-standard, they are “well-known”.\n // As in, used in several tools.\n /**\n * Source map.\n *\n * This type is equivalent to the `RawSourceMap` type from the `source-map`\n * module.\n *\n * @type {Map | null | undefined}\n */\n this.map\n\n /**\n * Custom, non-string, compiled, representation.\n *\n * This is used by unified to store non-string results.\n * One example is when turning markdown into React nodes.\n *\n * @type {unknown}\n */\n this.result\n\n /**\n * Whether a file was saved to disk.\n *\n * This is used by vfile reporters.\n *\n * @type {boolean}\n */\n this.stored\n /* eslint-enable no-unused-expressions */\n\n // Set path related properties in the correct order.\n let index = -1\n\n while (++index < order.length) {\n const prop = order[index]\n\n // Note: we specifically use `in` instead of `hasOwnProperty` to accept\n // `vfile`s too.\n if (\n prop in options &&\n options[prop] !== undefined &&\n options[prop] !== null\n ) {\n // @ts-expect-error: TS doesn’t understand basic reality.\n this[prop] = prop === 'history' ? [...options[prop]] : options[prop]\n }\n }\n\n /** @type {string} */\n let prop\n\n // Set non-path related properties.\n for (prop in options) {\n // @ts-expect-error: fine to set other things.\n if (!order.includes(prop)) {\n // @ts-expect-error: fine to set other things.\n this[prop] = options[prop]\n }\n }\n }\n\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path === 'string' ? path.basename(this.path) : undefined\n }\n\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(basename) {\n assertNonEmpty(basename, 'basename')\n assertPart(basename, 'basename')\n this.path = path.join(this.dirname || '', basename)\n }\n\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path === 'string' ? path.dirname(this.path) : undefined\n }\n\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(dirname) {\n assertPath(this.basename, 'dirname')\n this.path = path.join(dirname || '', this.basename)\n }\n\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path === 'string' ? path.extname(this.path) : undefined\n }\n\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(extname) {\n assertPart(extname, 'extname')\n assertPath(this.dirname, 'extname')\n\n if (extname) {\n if (extname.codePointAt(0) !== 46 /* `.` */) {\n throw new Error('`extname` must start with `.`')\n }\n\n if (extname.includes('.', 1)) {\n throw new Error('`extname` cannot contain multiple dots')\n }\n }\n\n this.path = path.join(this.dirname, this.stem + (extname || ''))\n }\n\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1]\n }\n\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(path) {\n if (isUrl(path)) {\n path = urlToPath(path)\n }\n\n assertNonEmpty(path, 'path')\n\n if (this.path !== path) {\n this.history.push(path)\n }\n }\n\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path === 'string'\n ? path.basename(this.path, this.extname)\n : undefined\n }\n\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(stem) {\n assertNonEmpty(stem, 'stem')\n assertPart(stem, 'stem')\n this.path = path.join(this.dirname || '', stem + (this.extname || ''))\n }\n\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = true\n\n throw message\n }\n\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(causeOrReason, optionsOrParentOrPlace, origin) {\n // @ts-expect-error: the overloads are fine.\n const message = this.message(causeOrReason, optionsOrParentOrPlace, origin)\n\n message.fatal = undefined\n\n return message\n }\n\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(causeOrReason, optionsOrParentOrPlace, origin) {\n const message = new VFileMessage(\n // @ts-expect-error: the overloads are fine.\n causeOrReason,\n optionsOrParentOrPlace,\n origin\n )\n\n if (this.path) {\n message.name = this.path + ':' + message.name\n message.file = this.path\n }\n\n message.fatal = false\n\n this.messages.push(message)\n\n return message\n }\n\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > .\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(encoding) {\n if (this.value === undefined) {\n return ''\n }\n\n if (typeof this.value === 'string') {\n return this.value\n }\n\n const decoder = new TextDecoder(encoding || undefined)\n return decoder.decode(this.value)\n }\n}\n\n/**\n * Assert that `part` is not a path (as in, does not contain `path.sep`).\n *\n * @param {string | null | undefined} part\n * File path part.\n * @param {string} name\n * Part name.\n * @returns {undefined}\n * Nothing.\n */\nfunction assertPart(part, name) {\n if (part && part.includes(path.sep)) {\n throw new Error(\n '`' + name + '` cannot be a path: did not expect `' + path.sep + '`'\n )\n }\n}\n\n/**\n * Assert that `part` is not empty.\n *\n * @param {string | undefined} part\n * Thing.\n * @param {string} name\n * Part name.\n * @returns {asserts part is string}\n * Nothing.\n */\nfunction assertNonEmpty(part, name) {\n if (!part) {\n throw new Error('`' + name + '` cannot be empty')\n }\n}\n\n/**\n * Assert `path` exists.\n *\n * @param {string | undefined} path\n * Path.\n * @param {string} name\n * Dependency name.\n * @returns {asserts path is string}\n * Nothing.\n */\nfunction assertPath(path, name) {\n if (!path) {\n throw new Error('Setting `' + name + '` requires `path` to be set too')\n }\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","export const CallableInstance =\n /**\n * @type {new , Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n (\n /** @type {unknown} */\n (\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array) => unknown}\n */\n function (property) {\n const self = this\n const constr = self.constructor\n const proto = /** @type {Record} */ (\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n constr.prototype\n )\n const func = proto[property]\n /** @type {(...parameters: Array) => unknown} */\n const apply = function () {\n return func.apply(apply, arguments)\n }\n\n Object.setPrototypeOf(apply, proto)\n\n const names = Object.getOwnPropertyNames(func)\n\n for (const p of names) {\n const descriptor = Object.getOwnPropertyDescriptor(func, p)\n if (descriptor) Object.defineProperty(apply, p, descriptor)\n }\n\n return apply\n }\n )\n )\n","/**\n * @typedef {import('trough').Pipeline} Pipeline\n *\n * @typedef {import('unist').Node} Node\n *\n * @typedef {import('vfile').Compatible} Compatible\n * @typedef {import('vfile').Value} Value\n *\n * @typedef {import('../index.js').CompileResultMap} CompileResultMap\n * @typedef {import('../index.js').Data} Data\n * @typedef {import('../index.js').Settings} Settings\n */\n\n/**\n * @typedef {CompileResultMap[keyof CompileResultMap]} CompileResults\n * Acceptable results from compilers.\n *\n * To register custom results, add them to\n * {@link CompileResultMap `CompileResultMap`}.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the compiler receives (default: `Node`).\n * @template {CompileResults} [Result=CompileResults]\n * The thing that the compiler yields (default: `CompileResults`).\n * @callback Compiler\n * A **compiler** handles the compiling of a syntax tree to something else\n * (in most cases, text) (TypeScript type).\n *\n * It is used in the stringify phase and called with a {@link Node `Node`}\n * and {@link VFile `VFile`} representation of the document to compile.\n * It should return the textual representation of the given tree (typically\n * `string`).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n * @param {Tree} tree\n * Tree to compile.\n * @param {VFile} file\n * File associated with `tree`.\n * @returns {Result}\n * New content: compiled text (`string` or `Uint8Array`, for `file.value`) or\n * something else (for `file.result`).\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The node that the parser yields (default: `Node`)\n * @callback Parser\n * A **parser** handles the parsing of text to a syntax tree.\n *\n * It is used in the parse phase and is called with a `string` and\n * {@link VFile `VFile`} of the document to parse.\n * It must return the syntax tree representation of the given file\n * ({@link Node `Node`}).\n * @param {string} document\n * Document to parse.\n * @param {VFile} file\n * File associated with `document`.\n * @returns {Tree}\n * Node representing the given file.\n */\n\n/**\n * @typedef {(\n * Plugin, any, any> |\n * PluginTuple, any, any> |\n * Preset\n * )} Pluggable\n * Union of the different ways to add plugins and settings.\n */\n\n/**\n * @typedef {Array} PluggableList\n * List of plugins and presets.\n */\n\n// Note: we can’t use `callback` yet as it messes up `this`:\n// .\n/**\n * @template {Array} [PluginParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=Node]\n * Value that is expected as input (default: `Node`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=Input]\n * Value that is yielded as output (default: `Input`).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * (this: Processor, ...parameters: PluginParameters) =>\n * Input extends string ? // Parser.\n * Output extends Node | undefined ? undefined | void : never :\n * Output extends CompileResults ? // Compiler.\n * Input extends Node | undefined ? undefined | void : never :\n * Transformer<\n * Input extends Node ? Input : Node,\n * Output extends Node ? Output : Node\n * > | undefined | void\n * )} Plugin\n * Single plugin.\n *\n * Plugins configure the processors they are applied on in the following\n * ways:\n *\n * * they change the processor, such as the parser, the compiler, or by\n * configuring data\n * * they specify how to handle trees and files\n *\n * In practice, they are functions that can receive options and configure the\n * processor (`this`).\n *\n * > 👉 **Note**: plugins are called when the processor is *frozen*, not when\n * > they are applied.\n */\n\n/**\n * Tuple of a plugin and its configuration.\n *\n * The first item is a plugin, the rest are its parameters.\n *\n * @template {Array} [TupleParameters=[]]\n * Arguments passed to the plugin (default: `[]`, the empty tuple).\n * @template {Node | string | undefined} [Input=undefined]\n * Value that is expected as input (optional).\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node it expects.\n * * If the plugin sets a {@link Parser `Parser`}, this should be\n * `string`.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be the\n * node it expects.\n * @template [Output=undefined] (optional).\n * Value that is yielded as output.\n *\n * * If the plugin returns a {@link Transformer `Transformer`}, this\n * should be the node that that yields.\n * * If the plugin sets a {@link Parser `Parser`}, this should be the\n * node that it yields.\n * * If the plugin sets a {@link Compiler `Compiler`}, this should be\n * result it yields.\n * @typedef {(\n * [\n * plugin: Plugin,\n * ...parameters: TupleParameters\n * ]\n * )} PluginTuple\n */\n\n/**\n * @typedef Preset\n * Sharable configuration.\n *\n * They can contain plugins and settings.\n * @property {PluggableList | undefined} [plugins]\n * List of plugins and presets (optional).\n * @property {Settings | undefined} [settings]\n * Shared settings for parsers and compilers (optional).\n */\n\n/**\n * @template {VFile} [File=VFile]\n * The file that the callback receives (default: `VFile`).\n * @callback ProcessCallback\n * Callback called when the process is done.\n *\n * Called with either an error or a result.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {File | undefined} [file]\n * Processed file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Tree=Node]\n * The tree that the callback receives (default: `Node`).\n * @callback RunCallback\n * Callback called when transformers are done.\n *\n * Called with either an error or results.\n * @param {Error | undefined} [error]\n * Fatal error (optional).\n * @param {Tree | undefined} [tree]\n * Transformed tree (optional).\n * @param {VFile | undefined} [file]\n * File (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Output=Node]\n * Node type that the transformer yields (default: `Node`).\n * @callback TransformCallback\n * Callback passed to transforms.\n *\n * If the signature of a `transformer` accepts a third argument, the\n * transformer may perform asynchronous operations, and must call it.\n * @param {Error | undefined} [error]\n * Fatal error to stop the process (optional).\n * @param {Output | undefined} [tree]\n * New, changed, tree (optional).\n * @param {VFile | undefined} [file]\n * New, changed, file (optional).\n * @returns {undefined}\n * Nothing.\n */\n\n/**\n * @template {Node} [Input=Node]\n * Node type that the transformer expects (default: `Node`).\n * @template {Node} [Output=Input]\n * Node type that the transformer yields (default: `Input`).\n * @callback Transformer\n * Transformers handle syntax trees and files.\n *\n * They are functions that are called each time a syntax tree and file are\n * passed through the run phase.\n * When an error occurs in them (either because it’s thrown, returned,\n * rejected, or passed to `next`), the process stops.\n *\n * The run phase is handled by [`trough`][trough], see its documentation for\n * the exact semantics of these functions.\n *\n * > 👉 **Note**: you should likely ignore `next`: don’t accept it.\n * > it supports callback-style async work.\n * > But promises are likely easier to reason about.\n *\n * [trough]: https://github.com/wooorm/trough#function-fninput-next\n * @param {Input} tree\n * Tree to handle.\n * @param {VFile} file\n * File to handle.\n * @param {TransformCallback} next\n * Callback.\n * @returns {(\n * Promise |\n * Promise | // For some reason this is needed separately.\n * Output |\n * Error |\n * undefined |\n * void\n * )}\n * If you accept `next`, nothing.\n * Otherwise:\n *\n * * `Error` — fatal error to stop the process\n * * `Promise` or `undefined` — the next transformer keeps using\n * same tree\n * * `Promise` or `Node` — new, changed, tree\n */\n\n/**\n * @template {Node | undefined} ParseTree\n * Output of `parse`.\n * @template {Node | undefined} HeadTree\n * Input for `run`.\n * @template {Node | undefined} TailTree\n * Output for `run`.\n * @template {Node | undefined} CompileTree\n * Input of `stringify`.\n * @template {CompileResults | undefined} CompileResult\n * Output of `stringify`.\n * @template {Node | string | undefined} Input\n * Input of plugin.\n * @template Output\n * Output of plugin (optional).\n * @typedef {(\n * Input extends string\n * ? Output extends Node | undefined\n * ? // Parser.\n * Processor<\n * Output extends undefined ? ParseTree : Output,\n * HeadTree,\n * TailTree,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : Output extends CompileResults\n * ? Input extends Node | undefined\n * ? // Compiler.\n * Processor<\n * ParseTree,\n * HeadTree,\n * TailTree,\n * Input extends undefined ? CompileTree : Input,\n * Output extends undefined ? CompileResult : Output\n * >\n * : // Unknown.\n * Processor\n * : Input extends Node | undefined\n * ? Output extends Node | undefined\n * ? // Transform.\n * Processor<\n * ParseTree,\n * HeadTree extends undefined ? Input : HeadTree,\n * Output extends undefined ? TailTree : Output,\n * CompileTree,\n * CompileResult\n * >\n * : // Unknown.\n * Processor\n * : // Unknown.\n * Processor\n * )} UsePlugin\n * Create a processor based on the input/output of a {@link Plugin plugin}.\n */\n\n/**\n * @template {CompileResults | undefined} Result\n * Node type that the transformer yields.\n * @typedef {(\n * Result extends Value | undefined ?\n * VFile :\n * VFile & {result: Result}\n * )} VFileWithOutput\n * Type to generate a {@link VFile `VFile`} corresponding to a compiler result.\n *\n * If a result that is not acceptable on a `VFile` is used, that will\n * be stored on the `result` field of {@link VFile `VFile`}.\n */\n\nimport {bail} from 'bail'\nimport extend from 'extend'\nimport {ok as assert} from 'devlop'\nimport isPlainObj from 'is-plain-obj'\nimport {trough} from 'trough'\nimport {VFile} from 'vfile'\nimport {CallableInstance} from './callable-instance.js'\n\n// To do: next major: drop `Compiler`, `Parser`: prefer lowercase.\n\n// To do: we could start yielding `never` in TS when a parser is missing and\n// `parse` is called.\n// Currently, we allow directly setting `processor.parser`, which is untyped.\n\nconst own = {}.hasOwnProperty\n\n/**\n * @template {Node | undefined} [ParseTree=undefined]\n * Output of `parse` (optional).\n * @template {Node | undefined} [HeadTree=undefined]\n * Input for `run` (optional).\n * @template {Node | undefined} [TailTree=undefined]\n * Output for `run` (optional).\n * @template {Node | undefined} [CompileTree=undefined]\n * Input of `stringify` (optional).\n * @template {CompileResults | undefined} [CompileResult=undefined]\n * Output of `stringify` (optional).\n * @extends {CallableInstance<[], Processor>}\n */\nexport class Processor extends CallableInstance {\n /**\n * Create a processor.\n */\n constructor() {\n // If `Processor()` is called (w/o new), `copy` is called instead.\n super('copy')\n\n /**\n * Compiler to use (deprecated).\n *\n * @deprecated\n * Use `compiler` instead.\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.Compiler = undefined\n\n /**\n * Parser to use (deprecated).\n *\n * @deprecated\n * Use `parser` instead.\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.Parser = undefined\n\n // Note: the following fields are considered private.\n // However, they are needed for tests, and TSC generates an untyped\n // `private freezeIndex` field for, which trips `type-coverage` up.\n // Instead, we use `@deprecated` to visualize that they shouldn’t be used.\n /**\n * Internal list of configured plugins.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Array>>}\n */\n this.attachers = []\n\n /**\n * Compiler to use.\n *\n * @type {(\n * Compiler<\n * CompileTree extends undefined ? Node : CompileTree,\n * CompileResult extends undefined ? CompileResults : CompileResult\n * > |\n * undefined\n * )}\n */\n this.compiler = undefined\n\n /**\n * Internal state to track where we are while freezing.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {number}\n */\n this.freezeIndex = -1\n\n /**\n * Internal state to track whether we’re frozen.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {boolean | undefined}\n */\n this.frozen = undefined\n\n /**\n * Internal state.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Data}\n */\n this.namespace = {}\n\n /**\n * Parser to use.\n *\n * @type {(\n * Parser |\n * undefined\n * )}\n */\n this.parser = undefined\n\n /**\n * Internal list of configured transformers.\n *\n * @deprecated\n * This is a private internal property and should not be used.\n * @type {Pipeline}\n */\n this.transformers = trough()\n }\n\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor}\n * New *unfrozen* processor ({@link Processor `Processor`}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n // Cast as the type parameters will be the same after attaching.\n const destination =\n /** @type {Processor} */ (\n new Processor()\n )\n let index = -1\n\n while (++index < this.attachers.length) {\n const attacher = this.attachers[index]\n destination.use(...attacher)\n }\n\n destination.data(extend(true, {}, this.namespace))\n\n return destination\n }\n\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > 👉 **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > 👉 **Note**: to register custom data in TypeScript, augment the\n * > {@link Data `Data`} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(key, value) {\n if (typeof key === 'string') {\n // Set `key`.\n if (arguments.length === 2) {\n assertUnfrozen('data', this.frozen)\n this.namespace[key] = value\n return this\n }\n\n // Get `key`.\n return (own.call(this.namespace, key) && this.namespace[key]) || undefined\n }\n\n // Set space.\n if (key) {\n assertUnfrozen('data', this.frozen)\n this.namespace = key\n return this\n }\n\n // Get space.\n return this.namespace\n }\n\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor}\n * The current processor.\n */\n freeze() {\n if (this.frozen) {\n return this\n }\n\n // Cast so that we can type plugins easier.\n // Plugins are supposed to be usable on different processors, not just on\n // this exact processor.\n const self = /** @type {Processor} */ (/** @type {unknown} */ (this))\n\n while (++this.freezeIndex < this.attachers.length) {\n const [attacher, ...options] = this.attachers[this.freezeIndex]\n\n if (options[0] === false) {\n continue\n }\n\n if (options[0] === true) {\n options[0] = undefined\n }\n\n const transformer = attacher.call(self, ...options)\n\n if (typeof transformer === 'function') {\n this.transformers.use(transformer)\n }\n }\n\n this.frozen = true\n this.freezeIndex = Number.POSITIVE_INFINITY\n\n return this\n }\n\n /**\n * Parse text to a syntax tree.\n *\n * > 👉 **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(file) {\n this.freeze()\n const realFile = vfile(file)\n const parser = this.parser || this.Parser\n assertParser('parse', parser)\n return parser(String(realFile), realFile)\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * > 👉 **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback> | undefined} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(file, done) {\n const self = this\n\n this.freeze()\n assertParser('process', this.parser || this.Parser)\n assertCompiler('process', this.compiler || this.Compiler)\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {((file: VFileWithOutput) => undefined | void) | undefined} resolve\n * @param {(error: Error | undefined) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n const realFile = vfile(file)\n // Assume `ParseTree` (the result of the parser) matches `HeadTree` (the\n // input of the first transform).\n const parseTree =\n /** @type {HeadTree extends undefined ? Node : HeadTree} */ (\n /** @type {unknown} */ (self.parse(realFile))\n )\n\n self.run(parseTree, realFile, function (error, tree, file) {\n if (error || !tree || !file) {\n return realDone(error)\n }\n\n // Assume `TailTree` (the output of the last transform) matches\n // `CompileTree` (the input of the compiler).\n const compileTree =\n /** @type {CompileTree extends undefined ? Node : CompileTree} */ (\n /** @type {unknown} */ (tree)\n )\n\n const compileResult = self.stringify(compileTree, file)\n\n if (looksLikeAValue(compileResult)) {\n file.value = compileResult\n } else {\n file.result = compileResult\n }\n\n realDone(error, /** @type {VFileWithOutput} */ (file))\n })\n\n /**\n * @param {Error | undefined} error\n * @param {VFileWithOutput | undefined} [file]\n * @returns {undefined}\n */\n function realDone(error, file) {\n if (error || !file) {\n reject(error)\n } else if (resolve) {\n resolve(file)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, file)\n }\n }\n }\n }\n\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(file) {\n /** @type {boolean} */\n let complete = false\n /** @type {VFileWithOutput | undefined} */\n let result\n\n this.freeze()\n assertParser('processSync', this.parser || this.Parser)\n assertCompiler('processSync', this.compiler || this.Compiler)\n\n this.process(file, realDone)\n assertDone('processSync', 'process', complete)\n assert(result, 'we either bailed on an error or have a tree')\n\n return result\n\n /**\n * @type {ProcessCallback>}\n */\n function realDone(error, file) {\n complete = true\n bail(error)\n result = file\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * > 👉 **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback} [done]\n * Callback (optional).\n * @returns {Promise | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(tree, file, done) {\n assertNode(tree)\n this.freeze()\n\n const transformers = this.transformers\n\n if (!done && typeof file === 'function') {\n done = file\n file = undefined\n }\n\n return done ? executor(undefined, done) : new Promise(executor)\n\n // Note: `void`s needed for TS.\n /**\n * @param {(\n * ((tree: TailTree extends undefined ? Node : TailTree) => undefined | void) |\n * undefined\n * )} resolve\n * @param {(error: Error) => undefined | void} reject\n * @returns {undefined}\n */\n function executor(resolve, reject) {\n assert(\n typeof file !== 'function',\n '`file` can’t be a `done` anymore, we checked'\n )\n const realFile = vfile(file)\n transformers.run(tree, realFile, realDone)\n\n /**\n * @param {Error | undefined} error\n * @param {Node} outputTree\n * @param {VFile} file\n * @returns {undefined}\n */\n function realDone(error, outputTree, file) {\n const resultingTree =\n /** @type {TailTree extends undefined ? Node : TailTree} */ (\n outputTree || tree\n )\n\n if (error) {\n reject(error)\n } else if (resolve) {\n resolve(resultingTree)\n } else {\n assert(done, '`done` is defined if `resolve` is not')\n done(undefined, resultingTree, file)\n }\n }\n }\n }\n\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > 👉 **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(tree, file) {\n /** @type {boolean} */\n let complete = false\n /** @type {(TailTree extends undefined ? Node : TailTree) | undefined} */\n let result\n\n this.run(tree, file, realDone)\n\n assertDone('runSync', 'run', complete)\n assert(result, 'we either bailed on an error or have a tree')\n return result\n\n /**\n * @type {RunCallback}\n */\n function realDone(error, tree) {\n bail(error)\n result = tree\n complete = true\n }\n }\n\n /**\n * Compile a syntax tree.\n *\n * > 👉 **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > 👉 **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > 👉 **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@link CompileResultMap `CompileResultMap`}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(tree, file) {\n this.freeze()\n const realFile = vfile(file)\n const compiler = this.compiler || this.Compiler\n assertCompiler('stringify', compiler)\n assertNode(tree)\n\n return compiler(tree, realFile)\n }\n\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > 👉 **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor}\n *\n * @overload\n * @param {Plugin} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor}\n * Current processor.\n */\n use(value, ...parameters) {\n const attachers = this.attachers\n const namespace = this.namespace\n\n assertUnfrozen('use', this.frozen)\n\n if (value === null || value === undefined) {\n // Empty.\n } else if (typeof value === 'function') {\n addPlugin(value, parameters)\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n addList(value)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n\n return this\n\n /**\n * @param {Pluggable} value\n * @returns {undefined}\n */\n function add(value) {\n if (typeof value === 'function') {\n addPlugin(value, [])\n } else if (typeof value === 'object') {\n if (Array.isArray(value)) {\n const [plugin, ...parameters] =\n /** @type {PluginTuple>} */ (value)\n addPlugin(plugin, parameters)\n } else {\n addPreset(value)\n }\n } else {\n throw new TypeError('Expected usable value, not `' + value + '`')\n }\n }\n\n /**\n * @param {Preset} result\n * @returns {undefined}\n */\n function addPreset(result) {\n if (!('plugins' in result) && !('settings' in result)) {\n throw new Error(\n 'Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither'\n )\n }\n\n addList(result.plugins)\n\n if (result.settings) {\n namespace.settings = extend(true, namespace.settings, result.settings)\n }\n }\n\n /**\n * @param {PluggableList | null | undefined} plugins\n * @returns {undefined}\n */\n function addList(plugins) {\n let index = -1\n\n if (plugins === null || plugins === undefined) {\n // Empty.\n } else if (Array.isArray(plugins)) {\n while (++index < plugins.length) {\n const thing = plugins[index]\n add(thing)\n }\n } else {\n throw new TypeError('Expected a list of plugins, not `' + plugins + '`')\n }\n }\n\n /**\n * @param {Plugin} plugin\n * @param {Array} parameters\n * @returns {undefined}\n */\n function addPlugin(plugin, parameters) {\n let index = -1\n let entryIndex = -1\n\n while (++index < attachers.length) {\n if (attachers[index][0] === plugin) {\n entryIndex = index\n break\n }\n }\n\n if (entryIndex === -1) {\n attachers.push([plugin, ...parameters])\n }\n // Only set if there was at least a `primary` value, otherwise we’d change\n // `arguments.length`.\n else if (parameters.length > 0) {\n let [primary, ...rest] = parameters\n const currentPrimary = attachers[entryIndex][1]\n if (isPlainObj(currentPrimary) && isPlainObj(primary)) {\n primary = extend(true, currentPrimary, primary)\n }\n\n attachers[entryIndex] = [plugin, primary, ...rest]\n }\n }\n }\n}\n\n// Note: this returns a *callable* instance.\n// That’s why it’s documented as a function.\n/**\n * Create a new processor.\n *\n * @example\n * This example shows how a new processor can be created (from `remark`) and linked\n * to **stdin**(4) and **stdout**(4).\n *\n * ```js\n * import process from 'node:process'\n * import concatStream from 'concat-stream'\n * import {remark} from 'remark'\n *\n * process.stdin.pipe(\n * concatStream(function (buf) {\n * process.stdout.write(String(remark().processSync(buf)))\n * })\n * )\n * ```\n *\n * @returns\n * New *unfrozen* processor (`processor`).\n *\n * This processor is configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\nexport const unified = new Processor().freeze()\n\n/**\n * Assert a parser is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Parser}\n */\nfunction assertParser(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `parser`')\n }\n}\n\n/**\n * Assert a compiler is available.\n *\n * @param {string} name\n * @param {unknown} value\n * @returns {asserts value is Compiler}\n */\nfunction assertCompiler(name, value) {\n if (typeof value !== 'function') {\n throw new TypeError('Cannot `' + name + '` without `compiler`')\n }\n}\n\n/**\n * Assert the processor is not frozen.\n *\n * @param {string} name\n * @param {unknown} frozen\n * @returns {asserts frozen is false}\n */\nfunction assertUnfrozen(name, frozen) {\n if (frozen) {\n throw new Error(\n 'Cannot call `' +\n name +\n '` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.'\n )\n }\n}\n\n/**\n * Assert `node` is a unist node.\n *\n * @param {unknown} node\n * @returns {asserts node is Node}\n */\nfunction assertNode(node) {\n // `isPlainObj` unfortunately uses `any` instead of `unknown`.\n // type-coverage:ignore-next-line\n if (!isPlainObj(node) || typeof node.type !== 'string') {\n throw new TypeError('Expected node, got `' + node + '`')\n // Fine.\n }\n}\n\n/**\n * Assert that `complete` is `true`.\n *\n * @param {string} name\n * @param {string} asyncName\n * @param {unknown} complete\n * @returns {asserts complete is true}\n */\nfunction assertDone(name, asyncName, complete) {\n if (!complete) {\n throw new Error(\n '`' + name + '` finished async. Use `' + asyncName + '` instead'\n )\n }\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {VFile}\n */\nfunction vfile(value) {\n return looksLikeAVFile(value) ? value : new VFile(value)\n}\n\n/**\n * @param {Compatible | undefined} [value]\n * @returns {value is VFile}\n */\nfunction looksLikeAVFile(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'message' in value &&\n 'messages' in value\n )\n}\n\n/**\n * @param {unknown} [value]\n * @returns {value is Value}\n */\nfunction looksLikeAValue(value) {\n return typeof value === 'string' || isUint8Array(value)\n}\n\n/**\n * Assert `value` is an `Uint8Array`.\n *\n * @param {unknown} value\n * thing.\n * @returns {value is Uint8Array}\n * Whether `value` is an `Uint8Array`.\n */\nfunction isUint8Array(value) {\n return Boolean(\n value &&\n typeof value === 'object' &&\n 'byteLength' in value &&\n 'byteOffset' in value\n )\n}\n","// Register `Raw` in tree:\n/// \n\n/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Nodes} Nodes\n * @typedef {import('hast').Parents} Parents\n * @typedef {import('hast').Root} Root\n * @typedef {import('hast-util-to-jsx-runtime').Components} JsxRuntimeComponents\n * @typedef {import('remark-rehype').Options} RemarkRehypeOptions\n * @typedef {import('unist-util-visit').BuildVisitor} Visitor\n * @typedef {import('unified').PluggableList} PluggableList\n */\n\n/**\n * @callback AllowElement\n * Filter elements.\n * @param {Readonly} element\n * Element to check.\n * @param {number} index\n * Index of `element` in `parent`.\n * @param {Readonly | undefined} parent\n * Parent of `element`.\n * @returns {boolean | null | undefined}\n * Whether to allow `element` (default: `false`).\n *\n * @typedef {Partial} Components\n * Map tag names to components.\n *\n * @typedef Deprecation\n * Deprecation.\n * @property {string} from\n * Old field.\n * @property {string} id\n * ID in readme.\n * @property {keyof Options} [to]\n * New field.\n *\n * @typedef Options\n * Configuration.\n * @property {AllowElement | null | undefined} [allowElement]\n * Filter elements (optional);\n * `allowedElements` / `disallowedElements` is used first.\n * @property {ReadonlyArray | null | undefined} [allowedElements]\n * Tag names to allow (default: all tag names);\n * cannot combine w/ `disallowedElements`.\n * @property {string | null | undefined} [children]\n * Markdown.\n * @property {string | null | undefined} [className]\n * Wrap in a `div` with this class name.\n * @property {Components | null | undefined} [components]\n * Map tag names to components.\n * @property {ReadonlyArray | null | undefined} [disallowedElements]\n * Tag names to disallow (default: `[]`);\n * cannot combine w/ `allowedElements`.\n * @property {PluggableList | null | undefined} [rehypePlugins]\n * List of rehype plugins to use.\n * @property {PluggableList | null | undefined} [remarkPlugins]\n * List of remark plugins to use.\n * @property {Readonly | null | undefined} [remarkRehypeOptions]\n * Options to pass through to `remark-rehype`.\n * @property {boolean | null | undefined} [skipHtml=false]\n * Ignore HTML in markdown completely (default: `false`).\n * @property {boolean | null | undefined} [unwrapDisallowed=false]\n * Extract (unwrap) what’s in disallowed elements (default: `false`);\n * normally when say `strong` is not allowed, it and it’s children are dropped,\n * with `unwrapDisallowed` the element itself is replaced by its children.\n * @property {UrlTransform | null | undefined} [urlTransform]\n * Change URLs (default: `defaultUrlTransform`)\n *\n * @callback UrlTransform\n * Transform all URLs.\n * @param {string} url\n * URL.\n * @param {string} key\n * Property name (example: `'href'`).\n * @param {Readonly} node\n * Node.\n * @returns {string | null | undefined}\n * Transformed URL (optional).\n */\n\nimport {unreachable} from 'devlop'\nimport {toJsxRuntime} from 'hast-util-to-jsx-runtime'\nimport {urlAttributes} from 'html-url-attributes'\n// @ts-expect-error: untyped.\nimport {Fragment, jsx, jsxs} from 'react/jsx-runtime'\nimport remarkParse from 'remark-parse'\nimport remarkRehype from 'remark-rehype'\nimport {unified} from 'unified'\nimport {visit} from 'unist-util-visit'\nimport {VFile} from 'vfile'\n\nconst changelog =\n 'https://github.com/remarkjs/react-markdown/blob/main/changelog.md'\n\n/** @type {PluggableList} */\nconst emptyPlugins = []\n/** @type {Readonly} */\nconst emptyRemarkRehypeOptions = {allowDangerousHtml: true}\nconst safeProtocol = /^(https?|ircs?|mailto|xmpp)$/i\n\n// Mutable because we `delete` any time it’s used and a message is sent.\n/** @type {ReadonlyArray>} */\nconst deprecations = [\n {from: 'astPlugins', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'allowDangerousHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {\n from: 'allowNode',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowElement'\n },\n {\n from: 'allowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'allowedElements'\n },\n {\n from: 'disallowedTypes',\n id: 'replace-allownode-allowedtypes-and-disallowedtypes',\n to: 'disallowedElements'\n },\n {from: 'escapeHtml', id: 'remove-buggy-html-in-markdown-parser'},\n {from: 'includeElementIndex', id: '#remove-includeelementindex'},\n {\n from: 'includeNodeIndex',\n id: 'change-includenodeindex-to-includeelementindex'\n },\n {from: 'linkTarget', id: 'remove-linktarget'},\n {from: 'plugins', id: 'change-plugins-to-remarkplugins', to: 'remarkPlugins'},\n {from: 'rawSourcePos', id: '#remove-rawsourcepos'},\n {from: 'renderers', id: 'change-renderers-to-components', to: 'components'},\n {from: 'source', id: 'change-source-to-children', to: 'children'},\n {from: 'sourcePos', id: '#remove-sourcepos'},\n {from: 'transformImageUri', id: '#add-urltransform', to: 'urlTransform'},\n {from: 'transformLinkUri', id: '#add-urltransform', to: 'urlTransform'}\n]\n\n/**\n * Component to render markdown.\n *\n * @param {Readonly} options\n * Props.\n * @returns {JSX.Element}\n * React element.\n */\nexport function Markdown(options) {\n const allowedElements = options.allowedElements\n const allowElement = options.allowElement\n const children = options.children || ''\n const className = options.className\n const components = options.components\n const disallowedElements = options.disallowedElements\n const rehypePlugins = options.rehypePlugins || emptyPlugins\n const remarkPlugins = options.remarkPlugins || emptyPlugins\n const remarkRehypeOptions = options.remarkRehypeOptions\n ? {...options.remarkRehypeOptions, ...emptyRemarkRehypeOptions}\n : emptyRemarkRehypeOptions\n const skipHtml = options.skipHtml\n const unwrapDisallowed = options.unwrapDisallowed\n const urlTransform = options.urlTransform || defaultUrlTransform\n\n const processor = unified()\n .use(remarkParse)\n .use(remarkPlugins)\n .use(remarkRehype, remarkRehypeOptions)\n .use(rehypePlugins)\n\n const file = new VFile()\n\n if (typeof children === 'string') {\n file.value = children\n } else {\n unreachable(\n 'Unexpected value `' +\n children +\n '` for `children` prop, expected `string`'\n )\n }\n\n if (allowedElements && disallowedElements) {\n unreachable(\n 'Unexpected combined `allowedElements` and `disallowedElements`, expected one or the other'\n )\n }\n\n for (const deprecation of deprecations) {\n if (Object.hasOwn(options, deprecation.from)) {\n unreachable(\n 'Unexpected `' +\n deprecation.from +\n '` prop, ' +\n (deprecation.to\n ? 'use `' + deprecation.to + '` instead'\n : 'remove it') +\n ' (see <' +\n changelog +\n '#' +\n deprecation.id +\n '> for more info)'\n )\n }\n }\n\n const mdastTree = processor.parse(file)\n /** @type {Nodes} */\n let hastTree = processor.runSync(mdastTree, file)\n\n // Wrap in `div` if there’s a class name.\n if (className) {\n hastTree = {\n type: 'element',\n tagName: 'div',\n properties: {className},\n // Assume no doctypes.\n children: /** @type {Array} */ (\n hastTree.type === 'root' ? hastTree.children : [hastTree]\n )\n }\n }\n\n visit(hastTree, transform)\n\n return toJsxRuntime(hastTree, {\n Fragment,\n components,\n ignoreInvalidStyle: true,\n jsx,\n jsxs,\n passKeys: true,\n passNode: true\n })\n\n /** @type {Visitor} */\n function transform(node, index, parent) {\n if (node.type === 'raw' && parent && typeof index === 'number') {\n if (skipHtml) {\n parent.children.splice(index, 1)\n } else {\n parent.children[index] = {type: 'text', value: node.value}\n }\n\n return index\n }\n\n if (node.type === 'element') {\n /** @type {string} */\n let key\n\n for (key in urlAttributes) {\n if (\n Object.hasOwn(urlAttributes, key) &&\n Object.hasOwn(node.properties, key)\n ) {\n const value = node.properties[key]\n const test = urlAttributes[key]\n if (test === null || test.includes(node.tagName)) {\n node.properties[key] = urlTransform(String(value || ''), key, node)\n }\n }\n }\n }\n\n if (node.type === 'element') {\n let remove = allowedElements\n ? !allowedElements.includes(node.tagName)\n : disallowedElements\n ? disallowedElements.includes(node.tagName)\n : false\n\n if (!remove && allowElement && typeof index === 'number') {\n remove = !allowElement(node, index, parent)\n }\n\n if (remove && parent && typeof index === 'number') {\n if (unwrapDisallowed && node.children) {\n parent.children.splice(index, 1, ...node.children)\n } else {\n parent.children.splice(index, 1)\n }\n\n return index\n }\n }\n }\n}\n\n/**\n * Make a URL safe.\n *\n * @satisfies {UrlTransform}\n * @param {string} value\n * URL.\n * @returns {string}\n * Safe URL.\n */\nexport function defaultUrlTransform(value) {\n // Same as:\n // \n // But without the `encode` part.\n const colon = value.indexOf(':')\n const questionMark = value.indexOf('?')\n const numberSign = value.indexOf('#')\n const slash = value.indexOf('/')\n\n if (\n // If there is no protocol, it’s relative.\n colon < 0 ||\n // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n (slash > -1 && colon > slash) ||\n (questionMark > -1 && colon > questionMark) ||\n (numberSign > -1 && colon > numberSign) ||\n // It is a protocol, it should be allowed.\n safeProtocol.test(value.slice(0, colon))\n ) {\n return value\n }\n\n return ''\n}\n","/**\n * Count how often a character (or substring) is used in a string.\n *\n * @param {string} value\n * Value to search in.\n * @param {string} character\n * Character (or substring) to look for.\n * @return {number}\n * Number of times `character` occurred in `value`.\n */\nexport function ccount(value, character) {\n const source = String(value)\n\n if (typeof character !== 'string') {\n throw new TypeError('Expected character')\n }\n\n let count = 0\n let index = source.indexOf(character)\n\n while (index !== -1) {\n count++\n index = source.indexOf(character, index + character.length)\n }\n\n return count\n}\n","/**\n * @typedef {import('mdast').Nodes} Nodes\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast').Text} Text\n * @typedef {import('unist-util-visit-parents').Test} Test\n * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult\n */\n\n/**\n * @typedef RegExpMatchObject\n * Info on the match.\n * @property {number} index\n * The index of the search at which the result was found.\n * @property {string} input\n * A copy of the search string in the text node.\n * @property {[...Array, Text]} stack\n * All ancestors of the text node, where the last node is the text itself.\n *\n * @typedef {RegExp | string} Find\n * Pattern to find.\n *\n * Strings are escaped and then turned into global expressions.\n *\n * @typedef {Array} FindAndReplaceList\n * Several find and replaces, in array form.\n *\n * @typedef {[Find, Replace?]} FindAndReplaceTuple\n * Find and replace in tuple form.\n *\n * @typedef {ReplaceFunction | string | null | undefined} Replace\n * Thing to replace with.\n *\n * @callback ReplaceFunction\n * Callback called when a search matches.\n * @param {...any} parameters\n * The parameters are the result of corresponding search expression:\n *\n * * `value` (`string`) — whole match\n * * `...capture` (`Array`) — matches from regex capture groups\n * * `match` (`RegExpMatchObject`) — info on the match\n * @returns {Array | PhrasingContent | string | false | null | undefined}\n * Thing to replace with.\n *\n * * when `null`, `undefined`, `''`, remove the match\n * * …or when `false`, do not replace at all\n * * …or when `string`, replace with a text node of that value\n * * …or when `Node` or `Array`, replace with those nodes\n *\n * @typedef {[RegExp, ReplaceFunction]} Pair\n * Normalized find and replace.\n *\n * @typedef {Array} Pairs\n * All find and replaced.\n *\n * @typedef Options\n * Configuration.\n * @property {Test | null | undefined} [ignore]\n * Test for which nodes to ignore (optional).\n */\n\nimport escape from 'escape-string-regexp'\nimport {visitParents} from 'unist-util-visit-parents'\nimport {convert} from 'unist-util-is'\n\n/**\n * Find patterns in a tree and replace them.\n *\n * The algorithm searches the tree in *preorder* for complete values in `Text`\n * nodes.\n * Partial matches are not supported.\n *\n * @param {Nodes} tree\n * Tree to change.\n * @param {FindAndReplaceList | FindAndReplaceTuple} list\n * Patterns to find.\n * @param {Options | null | undefined} [options]\n * Configuration (when `find` is not `Find`).\n * @returns {undefined}\n * Nothing.\n */\nexport function findAndReplace(tree, list, options) {\n const settings = options || {}\n const ignored = convert(settings.ignore || [])\n const pairs = toPairs(list)\n let pairIndex = -1\n\n while (++pairIndex < pairs.length) {\n visitParents(tree, 'text', visitor)\n }\n\n /** @type {import('unist-util-visit-parents').BuildVisitor} */\n function visitor(node, parents) {\n let index = -1\n /** @type {Parents | undefined} */\n let grandparent\n\n while (++index < parents.length) {\n const parent = parents[index]\n /** @type {Array | undefined} */\n const siblings = grandparent ? grandparent.children : undefined\n\n if (\n ignored(\n parent,\n siblings ? siblings.indexOf(parent) : undefined,\n grandparent\n )\n ) {\n return\n }\n\n grandparent = parent\n }\n\n if (grandparent) {\n return handler(node, parents)\n }\n }\n\n /**\n * Handle a text node which is not in an ignored parent.\n *\n * @param {Text} node\n * Text node.\n * @param {Array} parents\n * Parents.\n * @returns {VisitorResult}\n * Result.\n */\n function handler(node, parents) {\n const parent = parents[parents.length - 1]\n const find = pairs[pairIndex][0]\n const replace = pairs[pairIndex][1]\n let start = 0\n /** @type {Array} */\n const siblings = parent.children\n const index = siblings.indexOf(node)\n let change = false\n /** @type {Array} */\n let nodes = []\n\n find.lastIndex = 0\n\n let match = find.exec(node.value)\n\n while (match) {\n const position = match.index\n /** @type {RegExpMatchObject} */\n const matchObject = {\n index: match.index,\n input: match.input,\n stack: [...parents, node]\n }\n let value = replace(...match, matchObject)\n\n if (typeof value === 'string') {\n value = value.length > 0 ? {type: 'text', value} : undefined\n }\n\n // It wasn’t a match after all.\n if (value === false) {\n // False acts as if there was no match.\n // So we need to reset `lastIndex`, which currently being at the end of\n // the current match, to the beginning.\n find.lastIndex = position + 1\n } else {\n if (start !== position) {\n nodes.push({\n type: 'text',\n value: node.value.slice(start, position)\n })\n }\n\n if (Array.isArray(value)) {\n nodes.push(...value)\n } else if (value) {\n nodes.push(value)\n }\n\n start = position + match[0].length\n change = true\n }\n\n if (!find.global) {\n break\n }\n\n match = find.exec(node.value)\n }\n\n if (change) {\n if (start < node.value.length) {\n nodes.push({type: 'text', value: node.value.slice(start)})\n }\n\n parent.children.splice(index, 1, ...nodes)\n } else {\n nodes = [node]\n }\n\n return index + nodes.length\n }\n}\n\n/**\n * Turn a tuple or a list of tuples into pairs.\n *\n * @param {FindAndReplaceList | FindAndReplaceTuple} tupleOrList\n * Schema.\n * @returns {Pairs}\n * Clean pairs.\n */\nfunction toPairs(tupleOrList) {\n /** @type {Pairs} */\n const result = []\n\n if (!Array.isArray(tupleOrList)) {\n throw new TypeError('Expected find and replace tuple or list of tuples')\n }\n\n /** @type {FindAndReplaceList} */\n // @ts-expect-error: correct.\n const list =\n !tupleOrList[0] || Array.isArray(tupleOrList[0])\n ? tupleOrList\n : [tupleOrList]\n\n let index = -1\n\n while (++index < list.length) {\n const tuple = list[index]\n result.push([toExpression(tuple[0]), toFunction(tuple[1])])\n }\n\n return result\n}\n\n/**\n * Turn a find into an expression.\n *\n * @param {Find} find\n * Find.\n * @returns {RegExp}\n * Expression.\n */\nfunction toExpression(find) {\n return typeof find === 'string' ? new RegExp(escape(find), 'g') : find\n}\n\n/**\n * Turn a replace into a function.\n *\n * @param {Replace} replace\n * Replace.\n * @returns {ReplaceFunction}\n * Function.\n */\nfunction toFunction(replace) {\n return typeof replace === 'function'\n ? replace\n : function () {\n return replace\n }\n}\n","export default function escapeStringRegexp(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError('Expected a string');\n\t}\n\n\t// Escape characters with special meaning either inside or outside character sets.\n\t// Use a simple backslash escape when it’s always valid, and a `\\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar.\n\treturn string\n\t\t.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&')\n\t\t.replace(/-/g, '\\\\x2d');\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n *\n * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject\n * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction\n */\n\nimport {ccount} from 'ccount'\nimport {ok as assert} from 'devlop'\nimport {unicodePunctuation, unicodeWhitespace} from 'micromark-util-character'\nimport {findAndReplace} from 'mdast-util-find-and-replace'\n\n/** @type {ConstructName} */\nconst inConstruct = 'phrasing'\n/** @type {Array} */\nconst notInConstruct = ['autolink', 'link', 'image', 'label']\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralFromMarkdown() {\n return {\n transforms: [transformGfmAutolinkLiterals],\n enter: {\n literalAutolink: enterLiteralAutolink,\n literalAutolinkEmail: enterLiteralAutolinkValue,\n literalAutolinkHttp: enterLiteralAutolinkValue,\n literalAutolinkWww: enterLiteralAutolinkValue\n },\n exit: {\n literalAutolink: exitLiteralAutolink,\n literalAutolinkEmail: exitLiteralAutolinkEmail,\n literalAutolinkHttp: exitLiteralAutolinkHttp,\n literalAutolinkWww: exitLiteralAutolinkWww\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM autolink\n * literals in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM autolink literals.\n */\nexport function gfmAutolinkLiteralToMarkdown() {\n return {\n unsafe: [\n {\n character: '@',\n before: '[+\\\\-.\\\\w]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: '.',\n before: '[Ww]',\n after: '[\\\\-.\\\\w]',\n inConstruct,\n notInConstruct\n },\n {\n character: ':',\n before: '[ps]',\n after: '\\\\/',\n inConstruct,\n notInConstruct\n }\n ]\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolink(token) {\n this.enter({type: 'link', title: null, url: '', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterLiteralAutolinkValue(token) {\n this.config.enter.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkHttp(token) {\n this.config.exit.autolinkProtocol.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkWww(token) {\n this.config.exit.data.call(this, token)\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'link')\n node.url = 'http://' + this.sliceSerialize(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolinkEmail(token) {\n this.config.exit.autolinkEmail.call(this, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitLiteralAutolink(token) {\n this.exit(token)\n}\n\n/** @type {FromMarkdownTransform} */\nfunction transformGfmAutolinkLiterals(tree) {\n findAndReplace(\n tree,\n [\n [/(https?:\\/\\/|www(?=\\.))([-.\\w]+)([^ \\t\\r\\n]*)/gi, findUrl],\n [/([-.\\w+]+)@([-\\w]+(?:\\.[-\\w]+)+)/g, findEmail]\n ],\n {ignore: ['link', 'linkReference']}\n )\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} protocol\n * @param {string} domain\n * @param {string} path\n * @param {RegExpMatchObject} match\n * @returns {Array | Link | false}\n */\n// eslint-disable-next-line max-params\nfunction findUrl(_, protocol, domain, path, match) {\n let prefix = ''\n\n // Not an expected previous character.\n if (!previous(match)) {\n return false\n }\n\n // Treat `www` as part of the domain.\n if (/^w/i.test(protocol)) {\n domain = protocol + domain\n protocol = ''\n prefix = 'http://'\n }\n\n if (!isCorrectDomain(domain)) {\n return false\n }\n\n const parts = splitUrl(domain + path)\n\n if (!parts[0]) return false\n\n /** @type {Link} */\n const result = {\n type: 'link',\n title: null,\n url: prefix + protocol + parts[0],\n children: [{type: 'text', value: protocol + parts[0]}]\n }\n\n if (parts[1]) {\n return [result, {type: 'text', value: parts[1]}]\n }\n\n return result\n}\n\n/**\n * @type {ReplaceFunction}\n * @param {string} _\n * @param {string} atext\n * @param {string} label\n * @param {RegExpMatchObject} match\n * @returns {Link | false}\n */\nfunction findEmail(_, atext, label, match) {\n if (\n // Not an expected previous character.\n !previous(match, true) ||\n // Label ends in not allowed character.\n /[-\\d_]$/.test(label)\n ) {\n return false\n }\n\n return {\n type: 'link',\n title: null,\n url: 'mailto:' + atext + '@' + label,\n children: [{type: 'text', value: atext + '@' + label}]\n }\n}\n\n/**\n * @param {string} domain\n * @returns {boolean}\n */\nfunction isCorrectDomain(domain) {\n const parts = domain.split('.')\n\n if (\n parts.length < 2 ||\n (parts[parts.length - 1] &&\n (/_/.test(parts[parts.length - 1]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 1]))) ||\n (parts[parts.length - 2] &&\n (/_/.test(parts[parts.length - 2]) ||\n !/[a-zA-Z\\d]/.test(parts[parts.length - 2])))\n ) {\n return false\n }\n\n return true\n}\n\n/**\n * @param {string} url\n * @returns {[string, string | undefined]}\n */\nfunction splitUrl(url) {\n const trailExec = /[!\"&'),.:;<>?\\]}]+$/.exec(url)\n\n if (!trailExec) {\n return [url, undefined]\n }\n\n url = url.slice(0, trailExec.index)\n\n let trail = trailExec[0]\n let closingParenIndex = trail.indexOf(')')\n const openingParens = ccount(url, '(')\n let closingParens = ccount(url, ')')\n\n while (closingParenIndex !== -1 && openingParens > closingParens) {\n url += trail.slice(0, closingParenIndex + 1)\n trail = trail.slice(closingParenIndex + 1)\n closingParenIndex = trail.indexOf(')')\n closingParens++\n }\n\n return [url, trail]\n}\n\n/**\n * @param {RegExpMatchObject} match\n * @param {boolean | null | undefined} [email=false]\n * @returns {boolean}\n */\nfunction previous(match, email) {\n const code = match.input.charCodeAt(match.index - 1)\n\n return (\n (match.index === 0 ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)) &&\n (!email || code !== 47)\n )\n}\n","/**\n * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition\n * @typedef {import('mdast').FootnoteReference} FootnoteReference\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Map} Map\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\nimport {ok as assert} from 'devlop'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\n\nfootnoteReference.peek = footnoteReferencePeek\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown`.\n */\nexport function gfmFootnoteFromMarkdown() {\n return {\n enter: {\n gfmFootnoteDefinition: enterFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: enterFootnoteDefinitionLabelString,\n gfmFootnoteCall: enterFootnoteCall,\n gfmFootnoteCallString: enterFootnoteCallString\n },\n exit: {\n gfmFootnoteDefinition: exitFootnoteDefinition,\n gfmFootnoteDefinitionLabelString: exitFootnoteDefinitionLabelString,\n gfmFootnoteCall: exitFootnoteCall,\n gfmFootnoteCallString: exitFootnoteCallString\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM footnotes\n * in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown`.\n */\nexport function gfmFootnoteToMarkdown() {\n return {\n // This is on by default already.\n unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}],\n handlers: {footnoteDefinition, footnoteReference}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinition(token) {\n this.enter(\n {type: 'footnoteDefinition', identifier: '', label: '', children: []},\n token\n )\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteDefinitionLabelString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinitionLabelString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteDefinition')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteDefinition(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCall(token) {\n this.enter({type: 'footnoteReference', identifier: '', label: ''}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterFootnoteCallString() {\n this.buffer()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCallString(token) {\n const label = this.resume()\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'footnoteReference')\n node.label = label\n node.identifier = normalizeIdentifier(\n this.sliceSerialize(token)\n ).toLowerCase()\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitFootnoteCall(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteReference} node\n */\nfunction footnoteReference(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteReference')\n const subexit = state.enter('reference')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n exit()\n value += tracker.move(']')\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction footnoteReferencePeek() {\n return '['\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {FootnoteDefinition} node\n */\nfunction footnoteDefinition(node, _, state, info) {\n const tracker = state.createTracker(info)\n let value = tracker.move('[^')\n const exit = state.enter('footnoteDefinition')\n const subexit = state.enter('label')\n value += tracker.move(\n state.safe(state.associationId(node), {\n ...tracker.current(),\n before: value,\n after: ']'\n })\n )\n subexit()\n value += tracker.move(\n ']:' + (node.children && node.children.length > 0 ? ' ' : '')\n )\n tracker.shift(4)\n value += tracker.move(\n state.indentLines(state.containerFlow(node, tracker.current()), map)\n )\n exit()\n\n return value\n}\n\n/** @type {Map} */\nfunction map(line, index, blank) {\n if (index === 0) {\n return line\n }\n\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('mdast').Delete} Delete\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').ConstructName} ConstructName\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * List of constructs that occur in phrasing (paragraphs, headings), but cannot\n * contain strikethrough.\n * So they sort of cancel each other out.\n * Note: could use a better name.\n *\n * Note: keep in sync with: \n *\n * @type {Array}\n */\nconst constructsWithoutStrikethrough = [\n 'autolink',\n 'destinationLiteral',\n 'destinationRaw',\n 'reference',\n 'titleQuote',\n 'titleApostrophe'\n]\n\nhandleDelete.peek = peekDelete\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughFromMarkdown() {\n return {\n canContainEols: ['delete'],\n enter: {strikethrough: enterStrikethrough},\n exit: {strikethrough: exitStrikethrough}\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM\n * strikethrough in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM strikethrough.\n */\nexport function gfmStrikethroughToMarkdown() {\n return {\n unsafe: [\n {\n character: '~',\n inConstruct: 'phrasing',\n notInConstruct: constructsWithoutStrikethrough\n }\n ],\n handlers: {delete: handleDelete}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterStrikethrough(token) {\n this.enter({type: 'delete', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitStrikethrough(token) {\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {Delete} node\n */\nfunction handleDelete(node, _, state, info) {\n const tracker = state.createTracker(info)\n const exit = state.enter('strikethrough')\n let value = tracker.move('~~')\n value += state.containerPhrasing(node, {\n ...tracker.current(),\n before: value,\n after: '~'\n })\n value += tracker.move('~~')\n exit()\n return value\n}\n\n/** @type {ToMarkdownHandle} */\nfunction peekDelete() {\n return '~'\n}\n","/**\n * @typedef Options\n * Configuration (optional).\n * @property {string|null|ReadonlyArray} [align]\n * One style for all columns, or styles for their respective columns.\n * Each style is either `'l'` (left), `'r'` (right), or `'c'` (center).\n * Other values are treated as `''`, which doesn’t place the colon in the\n * alignment row but does align left.\n * *Only the lowercased first character is used, so `Right` is fine.*\n * @property {boolean} [padding=true]\n * Whether to add a space of padding between delimiters and cells.\n *\n * When `true`, there is padding:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there is no padding:\n *\n * ```markdown\n * |Alpha|B |\n * |-----|-----|\n * |C |Delta|\n * ```\n * @property {boolean} [delimiterStart=true]\n * Whether to begin each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are starting delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no starting delimiters:\n *\n * ```markdown\n * Alpha | B |\n * ----- | ----- |\n * C | Delta |\n * ```\n * @property {boolean} [delimiterEnd=true]\n * Whether to end each row with the delimiter.\n *\n * > 👉 **Note**: please don’t use this: it could create fragile structures\n * > that aren’t understandable to some markdown parsers.\n *\n * When `true`, there are ending delimiters:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * When `false`, there are no ending delimiters:\n *\n * ```markdown\n * | Alpha | B\n * | ----- | -----\n * | C | Delta\n * ```\n * @property {boolean} [alignDelimiters=true]\n * Whether to align the delimiters.\n * By default, they are aligned:\n *\n * ```markdown\n * | Alpha | B |\n * | ----- | ----- |\n * | C | Delta |\n * ```\n *\n * Pass `false` to make them staggered:\n *\n * ```markdown\n * | Alpha | B |\n * | - | - |\n * | C | Delta |\n * ```\n * @property {(value: string) => number} [stringLength]\n * Function to detect the length of table cell content.\n * This is used when aligning the delimiters (`|`) between table cells.\n * Full-width characters and emoji mess up delimiter alignment when viewing\n * the markdown source.\n * To fix this, you can pass this function, which receives the cell content\n * and returns its “visible” size.\n * Note that what is and isn’t visible depends on where the text is displayed.\n *\n * Without such a function, the following:\n *\n * ```js\n * markdownTable([\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ])\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | - | - |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n *\n * With [`string-width`](https://github.com/sindresorhus/string-width):\n *\n * ```js\n * import stringWidth from 'string-width'\n *\n * markdownTable(\n * [\n * ['Alpha', 'Bravo'],\n * ['中文', 'Charlie'],\n * ['👩‍❤️‍👩', 'Delta']\n * ],\n * {stringLength: stringWidth}\n * )\n * ```\n *\n * Yields:\n *\n * ```markdown\n * | Alpha | Bravo |\n * | ----- | ------- |\n * | 中文 | Charlie |\n * | 👩‍❤️‍👩 | Delta |\n * ```\n */\n\n/**\n * @typedef {Options} MarkdownTableOptions\n * @todo\n * Remove next major.\n */\n\n/**\n * Generate a markdown ([GFM](https://docs.github.com/en/github/writing-on-github/working-with-advanced-formatting/organizing-information-with-tables)) table..\n *\n * @param {ReadonlyArray>} table\n * Table data (matrix of strings).\n * @param {Options} [options]\n * Configuration (optional).\n * @returns {string}\n */\nexport function markdownTable(table, options = {}) {\n const align = (options.align || []).concat()\n const stringLength = options.stringLength || defaultStringLength\n /** @type {Array} Character codes as symbols for alignment per column. */\n const alignments = []\n /** @type {Array>} Cells per row. */\n const cellMatrix = []\n /** @type {Array>} Sizes of each cell per row. */\n const sizeMatrix = []\n /** @type {Array} */\n const longestCellByColumn = []\n let mostCellsPerRow = 0\n let rowIndex = -1\n\n // This is a superfluous loop if we don’t align delimiters, but otherwise we’d\n // do superfluous work when aligning, so optimize for aligning.\n while (++rowIndex < table.length) {\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n let columnIndex = -1\n\n if (table[rowIndex].length > mostCellsPerRow) {\n mostCellsPerRow = table[rowIndex].length\n }\n\n while (++columnIndex < table[rowIndex].length) {\n const cell = serialize(table[rowIndex][columnIndex])\n\n if (options.alignDelimiters !== false) {\n const size = stringLength(cell)\n sizes[columnIndex] = size\n\n if (\n longestCellByColumn[columnIndex] === undefined ||\n size > longestCellByColumn[columnIndex]\n ) {\n longestCellByColumn[columnIndex] = size\n }\n }\n\n row.push(cell)\n }\n\n cellMatrix[rowIndex] = row\n sizeMatrix[rowIndex] = sizes\n }\n\n // Figure out which alignments to use.\n let columnIndex = -1\n\n if (typeof align === 'object' && 'length' in align) {\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = toAlignment(align[columnIndex])\n }\n } else {\n const code = toAlignment(align)\n\n while (++columnIndex < mostCellsPerRow) {\n alignments[columnIndex] = code\n }\n }\n\n // Inject the alignment row.\n columnIndex = -1\n /** @type {Array} */\n const row = []\n /** @type {Array} */\n const sizes = []\n\n while (++columnIndex < mostCellsPerRow) {\n const code = alignments[columnIndex]\n let before = ''\n let after = ''\n\n if (code === 99 /* `c` */) {\n before = ':'\n after = ':'\n } else if (code === 108 /* `l` */) {\n before = ':'\n } else if (code === 114 /* `r` */) {\n after = ':'\n }\n\n // There *must* be at least one hyphen-minus in each alignment cell.\n let size =\n options.alignDelimiters === false\n ? 1\n : Math.max(\n 1,\n longestCellByColumn[columnIndex] - before.length - after.length\n )\n\n const cell = before + '-'.repeat(size) + after\n\n if (options.alignDelimiters !== false) {\n size = before.length + size + after.length\n\n if (size > longestCellByColumn[columnIndex]) {\n longestCellByColumn[columnIndex] = size\n }\n\n sizes[columnIndex] = size\n }\n\n row[columnIndex] = cell\n }\n\n // Inject the alignment row.\n cellMatrix.splice(1, 0, row)\n sizeMatrix.splice(1, 0, sizes)\n\n rowIndex = -1\n /** @type {Array} */\n const lines = []\n\n while (++rowIndex < cellMatrix.length) {\n const row = cellMatrix[rowIndex]\n const sizes = sizeMatrix[rowIndex]\n columnIndex = -1\n /** @type {Array} */\n const line = []\n\n while (++columnIndex < mostCellsPerRow) {\n const cell = row[columnIndex] || ''\n let before = ''\n let after = ''\n\n if (options.alignDelimiters !== false) {\n const size =\n longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0)\n const code = alignments[columnIndex]\n\n if (code === 114 /* `r` */) {\n before = ' '.repeat(size)\n } else if (code === 99 /* `c` */) {\n if (size % 2) {\n before = ' '.repeat(size / 2 + 0.5)\n after = ' '.repeat(size / 2 - 0.5)\n } else {\n before = ' '.repeat(size / 2)\n after = before\n }\n } else {\n after = ' '.repeat(size)\n }\n }\n\n if (options.delimiterStart !== false && !columnIndex) {\n line.push('|')\n }\n\n if (\n options.padding !== false &&\n // Don’t add the opening space if we’re not aligning and the cell is\n // empty: there will be a closing space.\n !(options.alignDelimiters === false && cell === '') &&\n (options.delimiterStart !== false || columnIndex)\n ) {\n line.push(' ')\n }\n\n if (options.alignDelimiters !== false) {\n line.push(before)\n }\n\n line.push(cell)\n\n if (options.alignDelimiters !== false) {\n line.push(after)\n }\n\n if (options.padding !== false) {\n line.push(' ')\n }\n\n if (\n options.delimiterEnd !== false ||\n columnIndex !== mostCellsPerRow - 1\n ) {\n line.push('|')\n }\n }\n\n lines.push(\n options.delimiterEnd === false\n ? line.join('').replace(/ +$/, '')\n : line.join('')\n )\n }\n\n return lines.join('\\n')\n}\n\n/**\n * @param {string|null|undefined} [value]\n * @returns {string}\n */\nfunction serialize(value) {\n return value === null || value === undefined ? '' : String(value)\n}\n\n/**\n * @param {string} value\n * @returns {number}\n */\nfunction defaultStringLength(value) {\n return value.length\n}\n\n/**\n * @param {string|null|undefined} value\n * @returns {number}\n */\nfunction toAlignment(value) {\n const code = typeof value === 'string' ? value.codePointAt(0) : 0\n\n return code === 67 /* `C` */ || code === 99 /* `c` */\n ? 99 /* `c` */\n : code === 76 /* `L` */ || code === 108 /* `l` */\n ? 108 /* `l` */\n : code === 82 /* `R` */ || code === 114 /* `r` */\n ? 114 /* `r` */\n : 0\n}\n","/**\n * @typedef {import('mdast').Blockquote} Blockquote\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Blockquote} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function blockquote(node, _, state, info) {\n const exit = state.enter('blockquote')\n const tracker = state.createTracker(info)\n tracker.move('> ')\n tracker.shift(2)\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return '>' + (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').ConstructName} ConstructName\n * @typedef {import('../types.js').Unsafe} Unsafe\n */\n\n/**\n * @param {Array} stack\n * @param {Unsafe} pattern\n * @returns {boolean}\n */\nexport function patternInScope(stack, pattern) {\n return (\n listInScope(stack, pattern.inConstruct, true) &&\n !listInScope(stack, pattern.notInConstruct, false)\n )\n}\n\n/**\n * @param {Array} stack\n * @param {Unsafe['inConstruct']} list\n * @param {boolean} none\n * @returns {boolean}\n */\nfunction listInScope(stack, list, none) {\n if (typeof list === 'string') {\n list = [list]\n }\n\n if (!list || list.length === 0) {\n return none\n }\n\n let index = -1\n\n while (++index < list.length) {\n if (stack.includes(list[index])) {\n return true\n }\n }\n\n return false\n}\n","/**\n * @typedef {import('mdast').Break} Break\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {patternInScope} from '../util/pattern-in-scope.js'\n\n/**\n * @param {Break} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function hardBreak(_, _1, state, info) {\n let index = -1\n\n while (++index < state.unsafe.length) {\n // If we can’t put eols in this construct (setext headings, tables), use a\n // space instead.\n if (\n state.unsafe[index].character === '\\n' &&\n patternInScope(state.stack, state.unsafe[index])\n ) {\n return /[ \\t]/.test(info.before) ? '' : ' '\n }\n }\n\n return '\\\\\\n'\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {longestStreak} from 'longest-streak'\nimport {formatCodeAsIndented} from '../util/format-code-as-indented.js'\nimport {checkFence} from '../util/check-fence.js'\n\n/**\n * @param {Code} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function code(node, _, state, info) {\n const marker = checkFence(state)\n const raw = node.value || ''\n const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'\n\n if (formatCodeAsIndented(node, state)) {\n const exit = state.enter('codeIndented')\n const value = state.indentLines(raw, map)\n exit()\n return value\n }\n\n const tracker = state.createTracker(info)\n const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3))\n const exit = state.enter('codeFenced')\n let value = tracker.move(sequence)\n\n if (node.lang) {\n const subexit = state.enter(`codeFencedLang${suffix}`)\n value += tracker.move(\n state.safe(node.lang, {\n before: value,\n after: ' ',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n if (node.lang && node.meta) {\n const subexit = state.enter(`codeFencedMeta${suffix}`)\n value += tracker.move(' ')\n value += tracker.move(\n state.safe(node.meta, {\n before: value,\n after: '\\n',\n encode: ['`'],\n ...tracker.current()\n })\n )\n subexit()\n }\n\n value += tracker.move('\\n')\n\n if (raw) {\n value += tracker.move(raw + '\\n')\n }\n\n value += tracker.move(sequence)\n exit()\n return value\n}\n\n/** @type {Map} */\nfunction map(line, _, blank) {\n return (blank ? '' : ' ') + line\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkQuote(state) {\n const marker = state.options.quote || '\"'\n\n if (marker !== '\"' && marker !== \"'\") {\n throw new Error(\n 'Cannot serialize title with `' +\n marker +\n '` for `options.quote`, expected `\"`, or `\\'`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Emphasis} Emphasis\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkEmphasis} from '../util/check-emphasis.js'\n\nemphasis.peek = emphasisPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Emphasis} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function emphasis(node, _, state, info) {\n const marker = checkEmphasis(state)\n const exit = state.enter('emphasis')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker)\n exit()\n return value\n}\n\n/**\n * @param {Emphasis} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction emphasisPeek(_, _1, state) {\n return state.options.emphasis || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkEmphasis(state) {\n const marker = state.options.emphasis || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize emphasis with `' +\n marker +\n '` for `options.emphasis`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n */\n\nhtml.peek = htmlPeek\n\n/**\n * @param {Html} node\n * @returns {string}\n */\nexport function html(node) {\n return node.value || ''\n}\n\n/**\n * @returns {string}\n */\nfunction htmlPeek() {\n return '<'\n}\n","/**\n * @typedef {import('mdast').Image} Image\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\nimage.peek = imagePeek\n\n/**\n * @param {Image} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function image(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('image')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n value += tracker.move(\n state.safe(node.alt, {before: value, after: ']', ...tracker.current()})\n )\n value += tracker.move('](')\n\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n exit()\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imagePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').ImageReference} ImageReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimageReference.peek = imageReferencePeek\n\n/**\n * @param {ImageReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function imageReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('imageReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('![')\n const alt = state.safe(node.alt, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(alt + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !alt || alt !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction imageReferencePeek() {\n return '!'\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').State} State\n */\n\ninlineCode.peek = inlineCodePeek\n\n/**\n * @param {InlineCode} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nexport function inlineCode(node, _, state) {\n let value = node.value || ''\n let sequence = '`'\n let index = -1\n\n // If there is a single grave accent on its own in the code, use a fence of\n // two.\n // If there are two in a row, use one.\n while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) {\n sequence += '`'\n }\n\n // If this is not just spaces or eols (tabs don’t count), and either the\n // first or last character are a space, eol, or tick, then pad with spaces.\n if (\n /[^ \\r\\n]/.test(value) &&\n ((/^[ \\r\\n]/.test(value) && /[ \\r\\n]$/.test(value)) || /^`|`$/.test(value))\n ) {\n value = ' ' + value + ' '\n }\n\n // We have a potential problem: certain characters after eols could result in\n // blocks being seen.\n // For example, if someone injected the string `'\\n# b'`, then that would\n // result in an ATX heading.\n // We can’t escape characters in `inlineCode`, but because eols are\n // transformed to spaces when going from markdown to HTML anyway, we can swap\n // them out.\n while (++index < state.unsafe.length) {\n const pattern = state.unsafe[index]\n const expression = state.compilePattern(pattern)\n /** @type {RegExpExecArray | null} */\n let match\n\n // Only look for `atBreak`s.\n // Btw: note that `atBreak` patterns will always start the regex at LF or\n // CR.\n if (!pattern.atBreak) continue\n\n while ((match = expression.exec(value))) {\n let position = match.index\n\n // Support CRLF (patterns only look for one of the characters).\n if (\n value.charCodeAt(position) === 10 /* `\\n` */ &&\n value.charCodeAt(position - 1) === 13 /* `\\r` */\n ) {\n position--\n }\n\n value = value.slice(0, position) + ' ' + value.slice(match.index + 1)\n }\n }\n\n return sequence + value + sequence\n}\n\n/**\n * @returns {string}\n */\nfunction inlineCodePeek() {\n return '`'\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('../types.js').State} State\n */\n\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Link} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatLinkAsAutolink(node, state) {\n const raw = toString(node)\n\n return Boolean(\n !state.options.resourceLink &&\n // If there’s a url…\n node.url &&\n // And there’s a no title…\n !node.title &&\n // And the content of `node` is a single text node…\n node.children &&\n node.children.length === 1 &&\n node.children[0].type === 'text' &&\n // And if the url is the same as the content…\n (raw === node.url || 'mailto:' + raw === node.url) &&\n // And that starts w/ a protocol…\n /^[a-z][a-z+.-]+:/i.test(node.url) &&\n // And that doesn’t contain ASCII control codes (character escapes and\n // references don’t work), space, or angle brackets…\n !/[\\0- <>\\u007F]/.test(node.url)\n )\n}\n","/**\n * @typedef {import('mdast').Link} Link\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Exit} Exit\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\nimport {formatLinkAsAutolink} from '../util/format-link-as-autolink.js'\n\nlink.peek = linkPeek\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function link(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const tracker = state.createTracker(info)\n /** @type {Exit} */\n let exit\n /** @type {Exit} */\n let subexit\n\n if (formatLinkAsAutolink(node, state)) {\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n exit = state.enter('autolink')\n let value = tracker.move('<')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '>',\n ...tracker.current()\n })\n )\n value += tracker.move('>')\n exit()\n state.stack = stack\n return value\n }\n\n exit = state.enter('link')\n subexit = state.enter('label')\n let value = tracker.move('[')\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: '](',\n ...tracker.current()\n })\n )\n value += tracker.move('](')\n subexit()\n\n if (\n // If there’s no url but there is a title…\n (!node.url && node.title) ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : ')',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n value += tracker.move(')')\n\n exit()\n return value\n}\n\n/**\n * @param {Link} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @returns {string}\n */\nfunction linkPeek(node, _, state) {\n return formatLinkAsAutolink(node, state) ? '<' : '['\n}\n","/**\n * @typedef {import('mdast').LinkReference} LinkReference\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nlinkReference.peek = linkReferencePeek\n\n/**\n * @param {LinkReference} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function linkReference(node, _, state, info) {\n const type = node.referenceType\n const exit = state.enter('linkReference')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n const text = state.containerPhrasing(node, {\n before: value,\n after: ']',\n ...tracker.current()\n })\n value += tracker.move(text + '][')\n\n subexit()\n // Hide the fact that we’re in phrasing, because escapes don’t work.\n const stack = state.stack\n state.stack = []\n subexit = state.enter('reference')\n // Note: for proper tracking, we should reset the output positions when we end\n // up making a `shortcut` reference, because then there is no brace output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n const reference = state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n subexit()\n state.stack = stack\n exit()\n\n if (type === 'full' || !text || text !== reference) {\n value += tracker.move(reference + ']')\n } else if (type === 'shortcut') {\n // Remove the unwanted `[`.\n value = value.slice(0, -1)\n } else {\n value += tracker.move(']')\n }\n\n return value\n}\n\n/**\n * @returns {string}\n */\nfunction linkReferencePeek() {\n return '['\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBullet(state) {\n const marker = state.options.bullet || '*'\n\n if (marker !== '*' && marker !== '+' && marker !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bullet`, expected `*`, `+`, or `-`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRule(state) {\n const marker = state.options.rule || '*'\n\n if (marker !== '*' && marker !== '-' && marker !== '_') {\n throw new Error(\n 'Cannot serialize rules with `' +\n marker +\n '` for `options.rule`, expected `*`, `-`, or `_`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Html} Html\n * @typedef {import('mdast').PhrasingContent} PhrasingContent\n */\n\nimport {convert} from 'unist-util-is'\n\n/**\n * Check if the given value is *phrasing content*.\n *\n * > 👉 **Note**: Excludes `html`, which can be both phrasing or flow.\n *\n * @param node\n * Thing to check, typically `Node`.\n * @returns\n * Whether `value` is phrasing content.\n */\n\nexport const phrasing =\n /** @type {(node?: unknown) => node is Exclude} */\n (\n convert([\n 'break',\n 'delete',\n 'emphasis',\n // To do: next major: removed since footnotes were added to GFM.\n 'footnote',\n 'footnoteReference',\n 'image',\n 'imageReference',\n 'inlineCode',\n // Enabled by `mdast-util-math`:\n 'inlineMath',\n 'link',\n 'linkReference',\n // Enabled by `mdast-util-mdx`:\n 'mdxJsxTextElement',\n // Enabled by `mdast-util-mdx`:\n 'mdxTextExpression',\n 'strong',\n 'text',\n // Enabled by `mdast-util-directive`:\n 'textDirective'\n ])\n )\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Strong} Strong\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkStrong} from '../util/check-strong.js'\n\nstrong.peek = strongPeek\n\n// To do: there are cases where emphasis cannot “form” depending on the\n// previous or next character of sequences.\n// There’s no way around that though, except for injecting zero-width stuff.\n// Do we need to safeguard against that?\n/**\n * @param {Strong} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function strong(node, _, state, info) {\n const marker = checkStrong(state)\n const exit = state.enter('strong')\n const tracker = state.createTracker(info)\n let value = tracker.move(marker + marker)\n value += tracker.move(\n state.containerPhrasing(node, {\n before: value,\n after: marker,\n ...tracker.current()\n })\n )\n value += tracker.move(marker + marker)\n exit()\n return value\n}\n\n/**\n * @param {Strong} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nfunction strongPeek(_, _1, state) {\n return state.options.strong || '*'\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkStrong(state) {\n const marker = state.options.strong || '*'\n\n if (marker !== '*' && marker !== '_') {\n throw new Error(\n 'Cannot serialize strong with `' +\n marker +\n '` for `options.strong`, expected `*`, or `_`'\n )\n }\n\n return marker\n}\n","import {blockquote} from './blockquote.js'\nimport {hardBreak} from './break.js'\nimport {code} from './code.js'\nimport {definition} from './definition.js'\nimport {emphasis} from './emphasis.js'\nimport {heading} from './heading.js'\nimport {html} from './html.js'\nimport {image} from './image.js'\nimport {imageReference} from './image-reference.js'\nimport {inlineCode} from './inline-code.js'\nimport {link} from './link.js'\nimport {linkReference} from './link-reference.js'\nimport {list} from './list.js'\nimport {listItem} from './list-item.js'\nimport {paragraph} from './paragraph.js'\nimport {root} from './root.js'\nimport {strong} from './strong.js'\nimport {text} from './text.js'\nimport {thematicBreak} from './thematic-break.js'\n\n/**\n * Default (CommonMark) handlers.\n */\nexport const handle = {\n blockquote,\n break: hardBreak,\n code,\n definition,\n emphasis,\n hardBreak,\n heading,\n html,\n image,\n imageReference,\n inlineCode,\n link,\n linkReference,\n list,\n listItem,\n paragraph,\n root,\n strong,\n text,\n thematicBreak\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkFence(state) {\n const marker = state.options.fence || '`'\n\n if (marker !== '`' && marker !== '~') {\n throw new Error(\n 'Cannot serialize code with `' +\n marker +\n '` for `options.fence`, expected `` ` `` or `~`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('mdast').Code} Code\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Code} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatCodeAsIndented(node, state) {\n return Boolean(\n state.options.fences === false &&\n node.value &&\n // If there’s no info…\n !node.lang &&\n // And there’s a non-whitespace character…\n /[^ \\r\\n]/.test(node.value) &&\n // And the value doesn’t start or end in a blank…\n !/^[\\t ]*(?:[\\r\\n]|$)|(?:^|[\\r\\n])[\\t ]*$/.test(node.value)\n )\n}\n","/**\n * Get the count of the longest repeating streak of `substring` in `value`.\n *\n * @param {string} value\n * Content to search in.\n * @param {string} substring\n * Substring to look for, typically one character.\n * @returns {number}\n * Count of most frequent adjacent `substring`s in `value`.\n */\nexport function longestStreak(value, substring) {\n const source = String(value)\n let index = source.indexOf(substring)\n let expected = index\n let count = 0\n let max = 0\n\n if (typeof substring !== 'string') {\n throw new TypeError('Expected substring')\n }\n\n while (index !== -1) {\n if (index === expected) {\n if (++count > max) {\n max = count\n }\n } else {\n count = 1\n }\n\n expected = index + substring.length\n index = source.indexOf(substring, expected)\n }\n\n return max\n}\n","/**\n * @typedef {import('mdast').Definition} Definition\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkQuote} from '../util/check-quote.js'\n\n/**\n * @param {Definition} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function definition(node, _, state, info) {\n const quote = checkQuote(state)\n const suffix = quote === '\"' ? 'Quote' : 'Apostrophe'\n const exit = state.enter('definition')\n let subexit = state.enter('label')\n const tracker = state.createTracker(info)\n let value = tracker.move('[')\n value += tracker.move(\n state.safe(state.associationId(node), {\n before: value,\n after: ']',\n ...tracker.current()\n })\n )\n value += tracker.move(']: ')\n\n subexit()\n\n if (\n // If there’s no url, or…\n !node.url ||\n // If there are control characters or whitespace.\n /[\\0- \\u007F]/.test(node.url)\n ) {\n subexit = state.enter('destinationLiteral')\n value += tracker.move('<')\n value += tracker.move(\n state.safe(node.url, {before: value, after: '>', ...tracker.current()})\n )\n value += tracker.move('>')\n } else {\n // No whitespace, raw is prettier.\n subexit = state.enter('destinationRaw')\n value += tracker.move(\n state.safe(node.url, {\n before: value,\n after: node.title ? ' ' : '\\n',\n ...tracker.current()\n })\n )\n }\n\n subexit()\n\n if (node.title) {\n subexit = state.enter(`title${suffix}`)\n value += tracker.move(' ' + quote)\n value += tracker.move(\n state.safe(node.title, {\n before: value,\n after: quote,\n ...tracker.current()\n })\n )\n value += tracker.move(quote)\n subexit()\n }\n\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {formatHeadingAsSetext} from '../util/format-heading-as-setext.js'\n\n/**\n * @param {Heading} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function heading(node, _, state, info) {\n const rank = Math.max(Math.min(6, node.depth || 1), 1)\n const tracker = state.createTracker(info)\n\n if (formatHeadingAsSetext(node, state)) {\n const exit = state.enter('headingSetext')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...tracker.current(),\n before: '\\n',\n after: '\\n'\n })\n subexit()\n exit()\n\n return (\n value +\n '\\n' +\n (rank === 1 ? '=' : '-').repeat(\n // The whole size…\n value.length -\n // Minus the position of the character after the last EOL (or\n // 0 if there is none)…\n (Math.max(value.lastIndexOf('\\r'), value.lastIndexOf('\\n')) + 1)\n )\n )\n }\n\n const sequence = '#'.repeat(rank)\n const exit = state.enter('headingAtx')\n const subexit = state.enter('phrasing')\n\n // Note: for proper tracking, we should reset the output positions when there\n // is no content returned, because then the space is not output.\n // Practically, in that case, there is no content, so it doesn’t matter that\n // we’ve tracked one too many characters.\n tracker.move(sequence + ' ')\n\n let value = state.containerPhrasing(node, {\n before: '# ',\n after: '\\n',\n ...tracker.current()\n })\n\n if (/^[\\t ]/.test(value)) {\n // To do: what effect has the character reference on tracking?\n value =\n '&#x' +\n value.charCodeAt(0).toString(16).toUpperCase() +\n ';' +\n value.slice(1)\n }\n\n value = value ? sequence + ' ' + value : sequence\n\n if (state.options.closeAtx) {\n value += ' ' + sequence\n }\n\n subexit()\n exit()\n\n return value\n}\n","/**\n * @typedef {import('mdast').Heading} Heading\n * @typedef {import('../types.js').State} State\n */\n\nimport {EXIT, visit} from 'unist-util-visit'\nimport {toString} from 'mdast-util-to-string'\n\n/**\n * @param {Heading} node\n * @param {State} state\n * @returns {boolean}\n */\nexport function formatHeadingAsSetext(node, state) {\n let literalWithBreak = false\n\n // Look for literals with a line break.\n // Note that this also\n visit(node, function (node) {\n if (\n ('value' in node && /\\r?\\n|\\r/.test(node.value)) ||\n node.type === 'break'\n ) {\n literalWithBreak = true\n return EXIT\n }\n })\n\n return Boolean(\n (!node.depth || node.depth < 3) &&\n toString(node) &&\n (state.options.setext || literalWithBreak)\n )\n}\n","/**\n * @typedef {import('mdast').List} List\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkBulletOther} from '../util/check-bullet-other.js'\nimport {checkBulletOrdered} from '../util/check-bullet-ordered.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {List} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function list(node, parent, state, info) {\n const exit = state.enter('list')\n const bulletCurrent = state.bulletCurrent\n /** @type {string} */\n let bullet = node.ordered ? checkBulletOrdered(state) : checkBullet(state)\n /** @type {string} */\n const bulletOther = node.ordered\n ? bullet === '.'\n ? ')'\n : '.'\n : checkBulletOther(state)\n let useDifferentMarker =\n parent && state.bulletLastUsed ? bullet === state.bulletLastUsed : false\n\n if (!node.ordered) {\n const firstListItem = node.children ? node.children[0] : undefined\n\n // If there’s an empty first list item directly in two list items,\n // we have to use a different bullet:\n //\n // ```markdown\n // * - *\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (\n // Bullet could be used as a thematic break marker:\n (bullet === '*' || bullet === '-') &&\n // Empty first list item:\n firstListItem &&\n (!firstListItem.children || !firstListItem.children[0]) &&\n // Directly in two other list items:\n state.stack[state.stack.length - 1] === 'list' &&\n state.stack[state.stack.length - 2] === 'listItem' &&\n state.stack[state.stack.length - 3] === 'list' &&\n state.stack[state.stack.length - 4] === 'listItem' &&\n // That are each the first child.\n state.indexStack[state.indexStack.length - 1] === 0 &&\n state.indexStack[state.indexStack.length - 2] === 0 &&\n state.indexStack[state.indexStack.length - 3] === 0\n ) {\n useDifferentMarker = true\n }\n\n // If there’s a thematic break at the start of the first list item,\n // we have to use a different bullet:\n //\n // ```markdown\n // * ---\n // ```\n //\n // …because otherwise it would become one big thematic break.\n if (checkRule(state) === bullet && firstListItem) {\n let index = -1\n\n while (++index < node.children.length) {\n const item = node.children[index]\n\n if (\n item &&\n item.type === 'listItem' &&\n item.children &&\n item.children[0] &&\n item.children[0].type === 'thematicBreak'\n ) {\n useDifferentMarker = true\n break\n }\n }\n }\n }\n\n if (useDifferentMarker) {\n bullet = bulletOther\n }\n\n state.bulletCurrent = bullet\n const value = state.containerFlow(node, info)\n state.bulletLastUsed = bullet\n state.bulletCurrent = bulletCurrent\n exit()\n return value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOrdered(state) {\n const marker = state.options.bulletOrdered || '.'\n\n if (marker !== '.' && marker !== ')') {\n throw new Error(\n 'Cannot serialize items with `' +\n marker +\n '` for `options.bulletOrdered`, expected `.` or `)`'\n )\n }\n\n return marker\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from './check-bullet.js'\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkBulletOther(state) {\n const bullet = checkBullet(state)\n const bulletOther = state.options.bulletOther\n\n if (!bulletOther) {\n return bullet === '*' ? '-' : '*'\n }\n\n if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') {\n throw new Error(\n 'Cannot serialize items with `' +\n bulletOther +\n '` for `options.bulletOther`, expected `*`, `+`, or `-`'\n )\n }\n\n if (bulletOther === bullet) {\n throw new Error(\n 'Expected `bullet` (`' +\n bullet +\n '`) and `bulletOther` (`' +\n bulletOther +\n '`) to be different'\n )\n }\n\n return bulletOther\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').Map} Map\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkBullet} from '../util/check-bullet.js'\nimport {checkListItemIndent} from '../util/check-list-item-indent.js'\n\n/**\n * @param {ListItem} node\n * @param {Parents | undefined} parent\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function listItem(node, parent, state, info) {\n const listItemIndent = checkListItemIndent(state)\n let bullet = state.bulletCurrent || checkBullet(state)\n\n // Add the marker value for ordered lists.\n if (parent && parent.type === 'list' && parent.ordered) {\n bullet =\n (typeof parent.start === 'number' && parent.start > -1\n ? parent.start\n : 1) +\n (state.options.incrementListMarker === false\n ? 0\n : parent.children.indexOf(node)) +\n bullet\n }\n\n let size = bullet.length + 1\n\n if (\n listItemIndent === 'tab' ||\n (listItemIndent === 'mixed' &&\n ((parent && parent.type === 'list' && parent.spread) || node.spread))\n ) {\n size = Math.ceil(size / 4) * 4\n }\n\n const tracker = state.createTracker(info)\n tracker.move(bullet + ' '.repeat(size - bullet.length))\n tracker.shift(size)\n const exit = state.enter('listItem')\n const value = state.indentLines(\n state.containerFlow(node, tracker.current()),\n map\n )\n exit()\n\n return value\n\n /** @type {Map} */\n function map(line, index, blank) {\n if (index) {\n return (blank ? '' : ' '.repeat(size)) + line\n }\n\n return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line\n }\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkListItemIndent(state) {\n const style = state.options.listItemIndent || 'one'\n\n if (style !== 'tab' && style !== 'one' && style !== 'mixed') {\n throw new Error(\n 'Cannot serialize items with `' +\n style +\n '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`'\n )\n }\n\n return style\n}\n","/**\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Paragraph} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function paragraph(node, _, state, info) {\n const exit = state.enter('paragraph')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, info)\n subexit()\n exit()\n return value\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Root} Root\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\nimport {phrasing} from 'mdast-util-phrasing'\n\n/**\n * @param {Root} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function root(node, _, state, info) {\n // Note: `html` nodes are ambiguous.\n const hasPhrasing = node.children.some(function (d) {\n return phrasing(d)\n })\n const fn = hasPhrasing ? state.containerPhrasing : state.containerFlow\n return fn.call(state, node, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').Text} Text\n * @typedef {import('../types.js').Info} Info\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {Text} node\n * @param {Parents | undefined} _\n * @param {State} state\n * @param {Info} info\n * @returns {string}\n */\nexport function text(node, _, state, info) {\n return state.safe(node.value, info)\n}\n","/**\n * @typedef {import('mdast').Parents} Parents\n * @typedef {import('mdast').ThematicBreak} ThematicBreak\n * @typedef {import('../types.js').State} State\n */\n\nimport {checkRuleRepetition} from '../util/check-rule-repetition.js'\nimport {checkRule} from '../util/check-rule.js'\n\n/**\n * @param {ThematicBreak} _\n * @param {Parents | undefined} _1\n * @param {State} state\n * @returns {string}\n */\nexport function thematicBreak(_, _1, state) {\n const value = (\n checkRule(state) + (state.options.ruleSpaces ? ' ' : '')\n ).repeat(checkRuleRepetition(state))\n\n return state.options.ruleSpaces ? value.slice(0, -1) : value\n}\n","/**\n * @typedef {import('../types.js').Options} Options\n * @typedef {import('../types.js').State} State\n */\n\n/**\n * @param {State} state\n * @returns {Exclude}\n */\nexport function checkRuleRepetition(state) {\n const repetition = state.options.ruleRepetition || 3\n\n if (repetition < 3) {\n throw new Error(\n 'Cannot serialize rules with repetition `' +\n repetition +\n '` for `options.ruleRepetition`, expected `3` or more'\n )\n }\n\n return repetition\n}\n","/**\n * @typedef {import('mdast').InlineCode} InlineCode\n * @typedef {import('mdast').Table} Table\n * @typedef {import('mdast').TableCell} TableCell\n * @typedef {import('mdast').TableRow} TableRow\n *\n * @typedef {import('markdown-table').Options} MarkdownTableOptions\n *\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n *\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').State} State\n * @typedef {import('mdast-util-to-markdown').Info} Info\n */\n\n/**\n * @typedef Options\n * Configuration.\n * @property {boolean | null | undefined} [tableCellPadding=true]\n * Whether to add a space of padding between delimiters and cells (default:\n * `true`).\n * @property {boolean | null | undefined} [tablePipeAlign=true]\n * Whether to align the delimiters (default: `true`).\n * @property {MarkdownTableOptions['stringLength'] | null | undefined} [stringLength]\n * Function to detect the length of table cell content, used when aligning\n * the delimiters between cells (optional).\n */\n\nimport {ok as assert} from 'devlop'\nimport {markdownTable} from 'markdown-table'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM tables in\n * markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM tables.\n */\nexport function gfmTableFromMarkdown() {\n return {\n enter: {\n table: enterTable,\n tableData: enterCell,\n tableHeader: enterCell,\n tableRow: enterRow\n },\n exit: {\n codeText: exitCodeText,\n table: exitTable,\n tableData: exit,\n tableHeader: exit,\n tableRow: exit\n }\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterTable(token) {\n const align = token._align\n assert(align, 'expected `_align` on table')\n this.enter(\n {\n type: 'table',\n align: align.map(function (d) {\n return d === 'none' ? null : d\n }),\n children: []\n },\n token\n )\n this.data.inTable = true\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitTable(token) {\n this.exit(token)\n this.data.inTable = undefined\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterRow(token) {\n this.enter({type: 'tableRow', children: []}, token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exit(token) {\n this.exit(token)\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction enterCell(token) {\n this.enter({type: 'tableCell', children: []}, token)\n}\n\n// Overwrite the default code text data handler to unescape escaped pipes when\n// they are in tables.\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCodeText(token) {\n let value = this.resume()\n\n if (this.data.inTable) {\n value = value.replace(/\\\\([\\\\|])/g, replace)\n }\n\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'inlineCode')\n node.value = value\n this.exit(token)\n}\n\n/**\n * @param {string} $0\n * @param {string} $1\n * @returns {string}\n */\nfunction replace($0, $1) {\n // Pipes work, backslashes don’t (but can’t escape pipes).\n return $1 === '|' ? $1 : $0\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM tables in\n * markdown.\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM tables.\n */\nexport function gfmTableToMarkdown(options) {\n const settings = options || {}\n const padding = settings.tableCellPadding\n const alignDelimiters = settings.tablePipeAlign\n const stringLength = settings.stringLength\n const around = padding ? ' ' : '|'\n\n return {\n unsafe: [\n {character: '\\r', inConstruct: 'tableCell'},\n {character: '\\n', inConstruct: 'tableCell'},\n // A pipe, when followed by a tab or space (padding), or a dash or colon\n // (unpadded delimiter row), could result in a table.\n {atBreak: true, character: '|', after: '[\\t :-]'},\n // A pipe in a cell must be encoded.\n {character: '|', inConstruct: 'tableCell'},\n // A colon must be followed by a dash, in which case it could start a\n // delimiter row.\n {atBreak: true, character: ':', after: '-'},\n // A delimiter row can also start with a dash, when followed by more\n // dashes, a colon, or a pipe.\n // This is a stricter version than the built in check for lists, thematic\n // breaks, and setex heading underlines though:\n // \n {atBreak: true, character: '-', after: '[:|-]'}\n ],\n handlers: {\n inlineCode: inlineCodeWithTable,\n table: handleTable,\n tableCell: handleTableCell,\n tableRow: handleTableRow\n }\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {Table} node\n */\n function handleTable(node, _, state, info) {\n return serializeData(handleTableAsData(node, state, info), node.align)\n }\n\n /**\n * This function isn’t really used normally, because we handle rows at the\n * table level.\n * But, if someone passes in a table row, this ensures we make somewhat sense.\n *\n * @type {ToMarkdownHandle}\n * @param {TableRow} node\n */\n function handleTableRow(node, _, state, info) {\n const row = handleTableRowAsData(node, state, info)\n const value = serializeData([row])\n // `markdown-table` will always add an align row\n return value.slice(0, value.indexOf('\\n'))\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {TableCell} node\n */\n function handleTableCell(node, _, state, info) {\n const exit = state.enter('tableCell')\n const subexit = state.enter('phrasing')\n const value = state.containerPhrasing(node, {\n ...info,\n before: around,\n after: around\n })\n subexit()\n exit()\n return value\n }\n\n /**\n * @param {Array>} matrix\n * @param {Array | null | undefined} [align]\n */\n function serializeData(matrix, align) {\n return markdownTable(matrix, {\n align,\n // @ts-expect-error: `markdown-table` types should support `null`.\n alignDelimiters,\n // @ts-expect-error: `markdown-table` types should support `null`.\n padding,\n // @ts-expect-error: `markdown-table` types should support `null`.\n stringLength\n })\n }\n\n /**\n * @param {Table} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array>} */\n const result = []\n const subexit = state.enter('table')\n\n while (++index < children.length) {\n result[index] = handleTableRowAsData(children[index], state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @param {TableRow} node\n * @param {State} state\n * @param {Info} info\n */\n function handleTableRowAsData(node, state, info) {\n const children = node.children\n let index = -1\n /** @type {Array} */\n const result = []\n const subexit = state.enter('tableRow')\n\n while (++index < children.length) {\n // Note: the positional info as used here is incorrect.\n // Making it correct would be impossible due to aligning cells?\n // And it would need copy/pasting `markdown-table` into this project.\n result[index] = handleTableCell(children[index], node, state, info)\n }\n\n subexit()\n\n return result\n }\n\n /**\n * @type {ToMarkdownHandle}\n * @param {InlineCode} node\n */\n function inlineCodeWithTable(node, parent, state) {\n let value = defaultHandlers.inlineCode(node, parent, state)\n\n if (state.stack.includes('tableCell')) {\n value = value.replace(/\\|/g, '\\\\$&')\n }\n\n return value\n }\n}\n","/**\n * @typedef {import('mdast').ListItem} ListItem\n * @typedef {import('mdast').Paragraph} Paragraph\n * @typedef {import('mdast-util-from-markdown').CompileContext} CompileContext\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle\n */\n\nimport {ok as assert} from 'devlop'\nimport {defaultHandlers} from 'mdast-util-to-markdown'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM task\n * list items in markdown.\n *\n * @returns {FromMarkdownExtension}\n * Extension for `mdast-util-from-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemFromMarkdown() {\n return {\n exit: {\n taskListCheckValueChecked: exitCheck,\n taskListCheckValueUnchecked: exitCheck,\n paragraph: exitParagraphWithTaskListItem\n }\n }\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM task list\n * items in markdown.\n *\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM task list items.\n */\nexport function gfmTaskListItemToMarkdown() {\n return {\n unsafe: [{atBreak: true, character: '-', after: '[:|-]'}],\n handlers: {listItem: listItemWithTaskListItem}\n }\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitCheck(token) {\n // We’re always in a paragraph, in a list item.\n const node = this.stack[this.stack.length - 2]\n assert(node.type === 'listItem')\n node.checked = token.type === 'taskListCheckValueChecked'\n}\n\n/**\n * @this {CompileContext}\n * @type {FromMarkdownHandle}\n */\nfunction exitParagraphWithTaskListItem(token) {\n const parent = this.stack[this.stack.length - 2]\n\n if (\n parent &&\n parent.type === 'listItem' &&\n typeof parent.checked === 'boolean'\n ) {\n const node = this.stack[this.stack.length - 1]\n assert(node.type === 'paragraph')\n const head = node.children[0]\n\n if (head && head.type === 'text') {\n const siblings = parent.children\n let index = -1\n /** @type {Paragraph | undefined} */\n let firstParaghraph\n\n while (++index < siblings.length) {\n const sibling = siblings[index]\n if (sibling.type === 'paragraph') {\n firstParaghraph = sibling\n break\n }\n }\n\n if (firstParaghraph === node) {\n // Must start with a space or a tab.\n head.value = head.value.slice(1)\n\n if (head.value.length === 0) {\n node.children.shift()\n } else if (\n node.position &&\n head.position &&\n typeof head.position.start.offset === 'number'\n ) {\n head.position.start.column++\n head.position.start.offset++\n node.position.start = Object.assign({}, head.position.start)\n }\n }\n }\n }\n\n this.exit(token)\n}\n\n/**\n * @type {ToMarkdownHandle}\n * @param {ListItem} node\n */\nfunction listItemWithTaskListItem(node, parent, state, info) {\n const head = node.children[0]\n const checkable =\n typeof node.checked === 'boolean' && head && head.type === 'paragraph'\n const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '\n const tracker = state.createTracker(info)\n\n if (checkable) {\n tracker.move(checkbox)\n }\n\n let value = defaultHandlers.listItem(node, parent, state, {\n ...info,\n ...tracker.current()\n })\n\n if (checkable) {\n value = value.replace(/^(?:[*+-]|\\d+\\.)([\\r\\n]| {1,3})/, check)\n }\n\n return value\n\n /**\n * @param {string} $0\n * @returns {string}\n */\n function check($0) {\n return $0 + checkbox\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Code} Code\n * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Previous} Previous\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {\n asciiAlpha,\n asciiAlphanumeric,\n asciiControl,\n markdownLineEndingOrSpace,\n unicodePunctuation,\n unicodeWhitespace\n} from 'micromark-util-character'\nconst wwwPrefix = {\n tokenize: tokenizeWwwPrefix,\n partial: true\n}\nconst domain = {\n tokenize: tokenizeDomain,\n partial: true\n}\nconst path = {\n tokenize: tokenizePath,\n partial: true\n}\nconst trail = {\n tokenize: tokenizeTrail,\n partial: true\n}\nconst emailDomainDotTrail = {\n tokenize: tokenizeEmailDomainDotTrail,\n partial: true\n}\nconst wwwAutolink = {\n tokenize: tokenizeWwwAutolink,\n previous: previousWww\n}\nconst protocolAutolink = {\n tokenize: tokenizeProtocolAutolink,\n previous: previousProtocol\n}\nconst emailAutolink = {\n tokenize: tokenizeEmailAutolink,\n previous: previousEmail\n}\n\n/** @type {ConstructRecord} */\nconst text = {}\n\n/**\n * Create an extension for `micromark` to support GitHub autolink literal\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * autolink literal syntax.\n */\nexport function gfmAutolinkLiteral() {\n return {\n text\n }\n}\n\n/** @type {Code} */\nlet code = 48\n\n// Add alphanumerics.\nwhile (code < 123) {\n text[code] = emailAutolink\n code++\n if (code === 58) code = 65\n else if (code === 91) code = 97\n}\ntext[43] = emailAutolink\ntext[45] = emailAutolink\ntext[46] = emailAutolink\ntext[95] = emailAutolink\ntext[72] = [emailAutolink, protocolAutolink]\ntext[104] = [emailAutolink, protocolAutolink]\ntext[87] = [emailAutolink, wwwAutolink]\ntext[119] = [emailAutolink, wwwAutolink]\n\n// To do: perform email autolink literals on events, afterwards.\n// That’s where `markdown-rs` and `cmark-gfm` perform it.\n// It should look for `@`, then for atext backwards, and then for a label\n// forwards.\n// To do: `mailto:`, `xmpp:` protocol as prefix.\n\n/**\n * Email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailAutolink(effects, ok, nok) {\n const self = this\n /** @type {boolean | undefined} */\n let dot\n /** @type {boolean} */\n let data\n return start\n\n /**\n * Start of email autolink literal.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n if (\n !gfmAtext(code) ||\n !previousEmail.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkEmail')\n return atext(code)\n }\n\n /**\n * In email atext.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function atext(code) {\n if (gfmAtext(code)) {\n effects.consume(code)\n return atext\n }\n if (code === 64) {\n effects.consume(code)\n return emailDomain\n }\n return nok(code)\n }\n\n /**\n * In email domain.\n *\n * The reference code is a bit overly complex as it handles the `@`, of which\n * there may be just one.\n * Source: \n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomain(code) {\n // Dot followed by alphanumerical (not `-` or `_`).\n if (code === 46) {\n return effects.check(\n emailDomainDotTrail,\n emailDomainAfter,\n emailDomainDot\n )(code)\n }\n\n // Alphanumerical, `-`, and `_`.\n if (code === 45 || code === 95 || asciiAlphanumeric(code)) {\n data = true\n effects.consume(code)\n return emailDomain\n }\n\n // To do: `/` if xmpp.\n\n // Note: normally we’d truncate trailing punctuation from the link.\n // However, email autolink literals cannot contain any of those markers,\n // except for `.`, but that can only occur if it isn’t trailing.\n // So we can ignore truncating!\n return emailDomainAfter(code)\n }\n\n /**\n * In email domain, on dot that is not a trail.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainDot(code) {\n effects.consume(code)\n dot = true\n return emailDomain\n }\n\n /**\n * After email domain.\n *\n * ```markdown\n * > | a contact@example.org b\n * ^\n * ```\n *\n * @type {State}\n */\n function emailDomainAfter(code) {\n // Domain must not be empty, must include a dot, and must end in alphabetical.\n // Source: .\n if (data && dot && asciiAlpha(self.previous)) {\n effects.exit('literalAutolinkEmail')\n effects.exit('literalAutolink')\n return ok(code)\n }\n return nok(code)\n }\n}\n\n/**\n * `www` autolink literal.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwAutolink(effects, ok, nok) {\n const self = this\n return wwwStart\n\n /**\n * Start of www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwStart(code) {\n if (\n (code !== 87 && code !== 119) ||\n !previousWww.call(self, self.previous) ||\n previousUnbalanced(self.events)\n ) {\n return nok(code)\n }\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkWww')\n // Note: we *check*, so we can discard the `www.` we parsed.\n // If it worked, we consider it as a part of the domain.\n return effects.check(\n wwwPrefix,\n effects.attempt(domain, effects.attempt(path, wwwAfter), nok),\n nok\n )(code)\n }\n\n /**\n * After a www autolink literal.\n *\n * ```markdown\n * > | www.example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwAfter(code) {\n effects.exit('literalAutolinkWww')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * Protocol autolink literal.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeProtocolAutolink(effects, ok, nok) {\n const self = this\n let buffer = ''\n let seen = false\n return protocolStart\n\n /**\n * Start of protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolStart(code) {\n if (\n (code === 72 || code === 104) &&\n previousProtocol.call(self, self.previous) &&\n !previousUnbalanced(self.events)\n ) {\n effects.enter('literalAutolink')\n effects.enter('literalAutolinkHttp')\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n return nok(code)\n }\n\n /**\n * In protocol.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^^^^\n * ```\n *\n * @type {State}\n */\n function protocolPrefixInside(code) {\n // `5` is size of `https`\n if (asciiAlpha(code) && buffer.length < 5) {\n // @ts-expect-error: definitely number.\n buffer += String.fromCodePoint(code)\n effects.consume(code)\n return protocolPrefixInside\n }\n if (code === 58) {\n const protocol = buffer.toLowerCase()\n if (protocol === 'http' || protocol === 'https') {\n effects.consume(code)\n return protocolSlashesInside\n }\n }\n return nok(code)\n }\n\n /**\n * In slashes.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^^\n * ```\n *\n * @type {State}\n */\n function protocolSlashesInside(code) {\n if (code === 47) {\n effects.consume(code)\n if (seen) {\n return afterProtocol\n }\n seen = true\n return protocolSlashesInside\n }\n return nok(code)\n }\n\n /**\n * After protocol, before domain.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function afterProtocol(code) {\n // To do: this is different from `markdown-rs`:\n // https://github.com/wooorm/markdown-rs/blob/b3a921c761309ae00a51fe348d8a43adbc54b518/src/construct/gfm_autolink_literal.rs#L172-L182\n return code === null ||\n asciiControl(code) ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n unicodePunctuation(code)\n ? nok(code)\n : effects.attempt(domain, effects.attempt(path, protocolAfter), nok)(code)\n }\n\n /**\n * After a protocol autolink literal.\n *\n * ```markdown\n * > | https://example.com/a?b#c\n * ^\n * ```\n *\n * @type {State}\n */\n function protocolAfter(code) {\n effects.exit('literalAutolinkHttp')\n effects.exit('literalAutolink')\n return ok(code)\n }\n}\n\n/**\n * `www` prefix.\n *\n * ```markdown\n * > | a www.example.org b\n * ^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeWwwPrefix(effects, ok, nok) {\n let size = 0\n return wwwPrefixInside\n\n /**\n * In www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^^^^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixInside(code) {\n if ((code === 87 || code === 119) && size < 3) {\n size++\n effects.consume(code)\n return wwwPrefixInside\n }\n if (code === 46 && size === 3) {\n effects.consume(code)\n return wwwPrefixAfter\n }\n return nok(code)\n }\n\n /**\n * After www prefix.\n *\n * ```markdown\n * > | www.example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function wwwPrefixAfter(code) {\n // If there is *anything*, we can link.\n return code === null ? nok(code) : ok(code)\n }\n}\n\n/**\n * Domain.\n *\n * ```markdown\n * > | a https://example.org b\n * ^^^^^^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDomain(effects, ok, nok) {\n /** @type {boolean | undefined} */\n let underscoreInLastSegment\n /** @type {boolean | undefined} */\n let underscoreInLastLastSegment\n /** @type {boolean | undefined} */\n let seen\n return domainInside\n\n /**\n * In domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^^^^^^^^^^\n * ```\n *\n * @type {State}\n */\n function domainInside(code) {\n // Check whether this marker, which is a trailing punctuation\n // marker, optionally followed by more trailing markers, and then\n // followed by an end.\n if (code === 46 || code === 95) {\n return effects.check(trail, domainAfter, domainAtPunctuation)(code)\n }\n\n // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can\n // occur, which sounds like ASCII only, but they also support `www.點看.com`,\n // so that’s Unicode.\n // Instead of some new production for Unicode alphanumerics, markdown\n // already has that for Unicode punctuation and whitespace, so use those.\n // Source: .\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code) ||\n (code !== 45 && unicodePunctuation(code))\n ) {\n return domainAfter(code)\n }\n seen = true\n effects.consume(code)\n return domainInside\n }\n\n /**\n * In domain, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com\n * ^\n * ```\n *\n * @type {State}\n */\n function domainAtPunctuation(code) {\n // There is an underscore in the last segment of the domain\n if (code === 95) {\n underscoreInLastSegment = true\n }\n // Otherwise, it’s a `.`: save the last segment underscore in the\n // penultimate segment slot.\n else {\n underscoreInLastLastSegment = underscoreInLastSegment\n underscoreInLastSegment = undefined\n }\n effects.consume(code)\n return domainInside\n }\n\n /**\n * After domain.\n *\n * ```markdown\n * > | https://example.com/a\n * ^\n * ```\n *\n * @type {State} */\n function domainAfter(code) {\n // Note: that’s GH says a dot is needed, but it’s not true:\n // \n if (underscoreInLastLastSegment || underscoreInLastSegment || !seen) {\n return nok(code)\n }\n return ok(code)\n }\n}\n\n/**\n * Path.\n *\n * ```markdown\n * > | a https://example.org/stuff b\n * ^^^^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePath(effects, ok) {\n let sizeOpen = 0\n let sizeClose = 0\n return pathInside\n\n /**\n * In path.\n *\n * ```markdown\n * > | https://example.com/a\n * ^^\n * ```\n *\n * @type {State}\n */\n function pathInside(code) {\n if (code === 40) {\n sizeOpen++\n effects.consume(code)\n return pathInside\n }\n\n // To do: `markdown-rs` also needs this.\n // If this is a paren, and there are less closings than openings,\n // we don’t check for a trail.\n if (code === 41 && sizeClose < sizeOpen) {\n return pathAtPunctuation(code)\n }\n\n // Check whether this trailing punctuation marker is optionally\n // followed by more trailing markers, and then followed\n // by an end.\n if (\n code === 33 ||\n code === 34 ||\n code === 38 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 60 ||\n code === 63 ||\n code === 93 ||\n code === 95 ||\n code === 126\n ) {\n return effects.check(trail, ok, pathAtPunctuation)(code)\n }\n if (\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n effects.consume(code)\n return pathInside\n }\n\n /**\n * In path, at potential trailing punctuation, that was not trailing.\n *\n * ```markdown\n * > | https://example.com/a\"b\n * ^\n * ```\n *\n * @type {State}\n */\n function pathAtPunctuation(code) {\n // Count closing parens.\n if (code === 41) {\n sizeClose++\n }\n effects.consume(code)\n return pathInside\n }\n}\n\n/**\n * Trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the entire trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | https://example.com\").\n * ^^^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTrail(effects, ok, nok) {\n return trail\n\n /**\n * In trail of domain or path.\n *\n * ```markdown\n * > | https://example.com\").\n * ^\n * ```\n *\n * @type {State}\n */\n function trail(code) {\n // Regular trailing punctuation.\n if (\n code === 33 ||\n code === 34 ||\n code === 39 ||\n code === 41 ||\n code === 42 ||\n code === 44 ||\n code === 46 ||\n code === 58 ||\n code === 59 ||\n code === 63 ||\n code === 95 ||\n code === 126\n ) {\n effects.consume(code)\n return trail\n }\n\n // `&` followed by one or more alphabeticals and then a `;`, is\n // as a whole considered as trailing punctuation.\n // In all other cases, it is considered as continuation of the URL.\n if (code === 38) {\n effects.consume(code)\n return trailCharRefStart\n }\n\n // Needed because we allow literals after `[`, as we fix:\n // .\n // Check that it is not followed by `(` or `[`.\n if (code === 93) {\n effects.consume(code)\n return trailBracketAfter\n }\n if (\n // `<` is an end.\n code === 60 ||\n // So is whitespace.\n code === null ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return nok(code)\n }\n\n /**\n * In trail, after `]`.\n *\n * > 👉 **Note**: this deviates from `cmark-gfm` to fix a bug.\n * > See end of for more.\n *\n * ```markdown\n * > | https://example.com](\n * ^\n * ```\n *\n * @type {State}\n */\n function trailBracketAfter(code) {\n // Whitespace or something that could start a resource or reference is the end.\n // Switch back to trail otherwise.\n if (\n code === null ||\n code === 40 ||\n code === 91 ||\n markdownLineEndingOrSpace(code) ||\n unicodeWhitespace(code)\n ) {\n return ok(code)\n }\n return trail(code)\n }\n\n /**\n * In character-reference like trail, after `&`.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefStart(code) {\n // When non-alpha, it’s not a trail.\n return asciiAlpha(code) ? trailCharRefInside(code) : nok(code)\n }\n\n /**\n * In character-reference like trail.\n *\n * ```markdown\n * > | https://example.com&).\n * ^\n * ```\n *\n * @type {State}\n */\n function trailCharRefInside(code) {\n // Switch back to trail if this is well-formed.\n if (code === 59) {\n effects.consume(code)\n return trail\n }\n if (asciiAlpha(code)) {\n effects.consume(code)\n return trailCharRefInside\n }\n\n // It’s not a trail.\n return nok(code)\n }\n}\n\n/**\n * Dot in email domain trail.\n *\n * This calls `ok` if this *is* the trail, followed by an end, which means\n * the trail is not part of the link.\n * It calls `nok` if this *is* part of the link.\n *\n * ```markdown\n * > | contact@example.org.\n * ^\n * ```\n *\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeEmailDomainDotTrail(effects, ok, nok) {\n return start\n\n /**\n * Dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n // Must be dot.\n effects.consume(code)\n return after\n }\n\n /**\n * After dot.\n *\n * ```markdown\n * > | contact@example.org.\n * ^ ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // Not a trail if alphanumeric.\n return asciiAlphanumeric(code) ? nok(code) : ok(code)\n }\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousWww(code) {\n return (\n code === null ||\n code === 40 ||\n code === 42 ||\n code === 95 ||\n code === 91 ||\n code === 93 ||\n code === 126 ||\n markdownLineEndingOrSpace(code)\n )\n}\n\n/**\n * See:\n * .\n *\n * @type {Previous}\n */\nfunction previousProtocol(code) {\n return !asciiAlpha(code)\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Previous}\n */\nfunction previousEmail(code) {\n // Do not allow a slash “inside” atext.\n // The reference code is a bit weird, but that’s what it results in.\n // Source: .\n // Other than slash, every preceding character is allowed.\n return !(code === 47 || gfmAtext(code))\n}\n\n/**\n * @param {Code} code\n * @returns {boolean}\n */\nfunction gfmAtext(code) {\n return (\n code === 43 ||\n code === 45 ||\n code === 46 ||\n code === 95 ||\n asciiAlphanumeric(code)\n )\n}\n\n/**\n * @param {Array} events\n * @returns {boolean}\n */\nfunction previousUnbalanced(events) {\n let index = events.length\n let result = false\n while (index--) {\n const token = events[index][1]\n if (\n (token.type === 'labelLink' || token.type === 'labelImage') &&\n !token._balanced\n ) {\n result = true\n break\n }\n\n // If we’ve seen this token, and it was marked as not having any unbalanced\n // bracket before it, we can exit.\n if (token._gfmAutolinkLiteralWalkedInto) {\n result = false\n break\n }\n }\n if (events.length > 0 && !result) {\n // Mark the last token as “walked into” w/o finding\n // anything.\n events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true\n }\n return result\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Exiter} Exiter\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {blankLine} from 'micromark-core-commonmark'\nimport {factorySpace} from 'micromark-factory-space'\nimport {markdownLineEndingOrSpace} from 'micromark-util-character'\nimport {normalizeIdentifier} from 'micromark-util-normalize-identifier'\nconst indent = {\n tokenize: tokenizeIndent,\n partial: true\n}\n\n// To do: micromark should support a `_hiddenGfmFootnoteSupport`, which only\n// affects label start (image).\n// That will let us drop `tokenizePotentialGfmFootnote*`.\n// It currently has a `_hiddenFootnoteSupport`, which affects that and more.\n// That can be removed when `micromark-extension-footnote` is archived.\n\n/**\n * Create an extension for `micromark` to enable GFM footnote syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to\n * enable GFM footnote syntax.\n */\nexport function gfmFootnote() {\n /** @type {Extension} */\n return {\n document: {\n [91]: {\n tokenize: tokenizeDefinitionStart,\n continuation: {\n tokenize: tokenizeDefinitionContinuation\n },\n exit: gfmFootnoteDefinitionEnd\n }\n },\n text: {\n [91]: {\n tokenize: tokenizeGfmFootnoteCall\n },\n [93]: {\n add: 'after',\n tokenize: tokenizePotentialGfmFootnoteCall,\n resolveTo: resolveToPotentialGfmFootnoteCall\n }\n }\n }\n}\n\n// To do: remove after micromark update.\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizePotentialGfmFootnoteCall(effects, ok, nok) {\n const self = this\n let index = self.events.length\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {Token} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n const token = self.events[index][1]\n if (token.type === 'labelImage') {\n labelStart = token\n break\n }\n\n // Exit if we’ve walked far enough.\n if (\n token.type === 'gfmFootnoteCall' ||\n token.type === 'labelLink' ||\n token.type === 'label' ||\n token.type === 'image' ||\n token.type === 'link'\n ) {\n break\n }\n }\n return start\n\n /**\n * @type {State}\n */\n function start(code) {\n if (!labelStart || !labelStart._balanced) {\n return nok(code)\n }\n const id = normalizeIdentifier(\n self.sliceSerialize({\n start: labelStart.end,\n end: self.now()\n })\n )\n if (id.codePointAt(0) !== 94 || !defined.includes(id.slice(1))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return ok(code)\n }\n}\n\n// To do: remove after micromark update.\n/** @type {Resolver} */\nfunction resolveToPotentialGfmFootnoteCall(events, context) {\n let index = events.length\n /** @type {Token | undefined} */\n let labelStart\n\n // Find an opening.\n while (index--) {\n if (\n events[index][1].type === 'labelImage' &&\n events[index][0] === 'enter'\n ) {\n labelStart = events[index][1]\n break\n }\n }\n // Change the `labelImageMarker` to a `data`.\n events[index + 1][1].type = 'data'\n events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'\n\n // The whole (without `!`):\n /** @type {Token} */\n const call = {\n type: 'gfmFootnoteCall',\n start: Object.assign({}, events[index + 3][1].start),\n end: Object.assign({}, events[events.length - 1][1].end)\n }\n // The `^` marker\n /** @type {Token} */\n const marker = {\n type: 'gfmFootnoteCallMarker',\n start: Object.assign({}, events[index + 3][1].end),\n end: Object.assign({}, events[index + 3][1].end)\n }\n // Increment the end 1 character.\n marker.end.column++\n marker.end.offset++\n marker.end._bufferIndex++\n /** @type {Token} */\n const string = {\n type: 'gfmFootnoteCallString',\n start: Object.assign({}, marker.end),\n end: Object.assign({}, events[events.length - 1][1].start)\n }\n /** @type {Token} */\n const chunk = {\n type: 'chunkString',\n contentType: 'string',\n start: Object.assign({}, string.start),\n end: Object.assign({}, string.end)\n }\n\n /** @type {Array} */\n const replacement = [\n // Take the `labelImageMarker` (now `data`, the `!`)\n events[index + 1],\n events[index + 2],\n ['enter', call, context],\n // The `[`\n events[index + 3],\n events[index + 4],\n // The `^`.\n ['enter', marker, context],\n ['exit', marker, context],\n // Everything in between.\n ['enter', string, context],\n ['enter', chunk, context],\n ['exit', chunk, context],\n ['exit', string, context],\n // The ending (`]`, properly parsed and labelled).\n events[events.length - 2],\n events[events.length - 1],\n ['exit', call, context]\n ]\n events.splice(index, events.length - index + 1, ...replacement)\n return events\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeGfmFootnoteCall(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n let size = 0\n /** @type {boolean} */\n let data\n\n // Note: the implementation of `markdown-rs` is different, because it houses\n // core *and* extensions in one project.\n // Therefore, it can include footnote logic inside `label-end`.\n // We can’t do that, but luckily, we can parse footnotes in a simpler way than\n // needed for labels.\n return start\n\n /**\n * Start of footnote label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteCall')\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n return callStart\n }\n\n /**\n * After `[`, at `^`.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callStart(code) {\n if (code !== 94) return nok(code)\n effects.enter('gfmFootnoteCallMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallMarker')\n effects.enter('gfmFootnoteCallString')\n effects.enter('chunkString').contentType = 'string'\n return callData\n }\n\n /**\n * In label.\n *\n * ```markdown\n * > | a [^b] c\n * ^\n * ```\n *\n * @type {State}\n */\n function callData(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteCallString')\n if (!defined.includes(normalizeIdentifier(self.sliceSerialize(token)))) {\n return nok(code)\n }\n effects.enter('gfmFootnoteCallLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteCallLabelMarker')\n effects.exit('gfmFootnoteCall')\n return ok\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? callEscape : callData\n }\n\n /**\n * On character after escape.\n *\n * ```markdown\n * > | a [^b\\c] d\n * ^\n * ```\n *\n * @type {State}\n */\n function callEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return callData\n }\n return callData(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionStart(effects, ok, nok) {\n const self = this\n const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = [])\n /** @type {string} */\n let identifier\n let size = 0\n /** @type {boolean | undefined} */\n let data\n return start\n\n /**\n * Start of GFM footnote definition.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function start(code) {\n effects.enter('gfmFootnoteDefinition')._container = true\n effects.enter('gfmFootnoteDefinitionLabel')\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n return labelAtMarker\n }\n\n /**\n * In label, at caret.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAtMarker(code) {\n if (code === 94) {\n effects.enter('gfmFootnoteDefinitionMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionMarker')\n effects.enter('gfmFootnoteDefinitionLabelString')\n effects.enter('chunkString').contentType = 'string'\n return labelInside\n }\n return nok(code)\n }\n\n /**\n * In label.\n *\n * > 👉 **Note**: `cmark-gfm` prevents whitespace from occurring in footnote\n * > definition labels.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelInside(code) {\n if (\n // Too long.\n size > 999 ||\n // Closing brace with nothing.\n (code === 93 && !data) ||\n // Space or tab is not supported by GFM for some reason.\n // `\\n` and `[` not being supported makes sense.\n code === null ||\n code === 91 ||\n markdownLineEndingOrSpace(code)\n ) {\n return nok(code)\n }\n if (code === 93) {\n effects.exit('chunkString')\n const token = effects.exit('gfmFootnoteDefinitionLabelString')\n identifier = normalizeIdentifier(self.sliceSerialize(token))\n effects.enter('gfmFootnoteDefinitionLabelMarker')\n effects.consume(code)\n effects.exit('gfmFootnoteDefinitionLabelMarker')\n effects.exit('gfmFootnoteDefinitionLabel')\n return labelAfter\n }\n if (!markdownLineEndingOrSpace(code)) {\n data = true\n }\n size++\n effects.consume(code)\n return code === 92 ? labelEscape : labelInside\n }\n\n /**\n * After `\\`, at a special character.\n *\n * > 👉 **Note**: `cmark-gfm` currently does not support escaped brackets:\n * > \n *\n * ```markdown\n * > | [^a\\*b]: c\n * ^\n * ```\n *\n * @type {State}\n */\n function labelEscape(code) {\n if (code === 91 || code === 92 || code === 93) {\n effects.consume(code)\n size++\n return labelInside\n }\n return labelInside(code)\n }\n\n /**\n * After definition label.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function labelAfter(code) {\n if (code === 58) {\n effects.enter('definitionMarker')\n effects.consume(code)\n effects.exit('definitionMarker')\n if (!defined.includes(identifier)) {\n defined.push(identifier)\n }\n\n // Any whitespace after the marker is eaten, forming indented code\n // is not possible.\n // No space is also fine, just like a block quote marker.\n return factorySpace(\n effects,\n whitespaceAfter,\n 'gfmFootnoteDefinitionWhitespace'\n )\n }\n return nok(code)\n }\n\n /**\n * After definition prefix.\n *\n * ```markdown\n * > | [^a]: b\n * ^\n * ```\n *\n * @type {State}\n */\n function whitespaceAfter(code) {\n // `markdown-rs` has a wrapping token for the prefix that is closed here.\n return ok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeDefinitionContinuation(effects, ok, nok) {\n /// Start of footnote definition continuation.\n ///\n /// ```markdown\n /// | [^a]: b\n /// > | c\n /// ^\n /// ```\n //\n // Either a blank line, which is okay, or an indented thing.\n return effects.check(blankLine, ok, effects.attempt(indent, ok, nok))\n}\n\n/** @type {Exiter} */\nfunction gfmFootnoteDefinitionEnd(effects) {\n effects.exit('gfmFootnoteDefinition')\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeIndent(effects, ok, nok) {\n const self = this\n return factorySpace(\n effects,\n afterPrefix,\n 'gfmFootnoteDefinitionIndent',\n 4 + 1\n )\n\n /**\n * @type {State}\n */\n function afterPrefix(code) {\n const tail = self.events[self.events.length - 1]\n return tail &&\n tail[1].type === 'gfmFootnoteDefinitionIndent' &&\n tail[2].sliceSerialize(tail[1], true).length === 4\n ? ok(code)\n : nok(code)\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n *\n * @typedef Options\n * Configuration (optional).\n * @property {boolean | null | undefined} [singleTilde=true]\n * Whether to support strikethrough with a single tilde (default: `true`).\n *\n * Single tildes work on github.com, but are technically prohibited by the\n * GFM spec.\n */\n\nimport {splice} from 'micromark-util-chunked'\nimport {classifyCharacter} from 'micromark-util-classify-character'\nimport {resolveAll} from 'micromark-util-resolve-all'\n/**\n * Create an extension for `micromark` to enable GFM strikethrough syntax.\n *\n * @param {Options | null | undefined} [options={}]\n * Configuration.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions`, to\n * enable GFM strikethrough syntax.\n */\nexport function gfmStrikethrough(options) {\n const options_ = options || {}\n let single = options_.singleTilde\n const tokenizer = {\n tokenize: tokenizeStrikethrough,\n resolveAll: resolveAllStrikethrough\n }\n if (single === null || single === undefined) {\n single = true\n }\n return {\n text: {\n [126]: tokenizer\n },\n insideSpan: {\n null: [tokenizer]\n },\n attentionMarkers: {\n null: [126]\n }\n }\n\n /**\n * Take events and resolve strikethrough.\n *\n * @type {Resolver}\n */\n function resolveAllStrikethrough(events, context) {\n let index = -1\n\n // Walk through all events.\n while (++index < events.length) {\n // Find a token that can close.\n if (\n events[index][0] === 'enter' &&\n events[index][1].type === 'strikethroughSequenceTemporary' &&\n events[index][1]._close\n ) {\n let open = index\n\n // Now walk back to find an opener.\n while (open--) {\n // Find a token that can open the closer.\n if (\n events[open][0] === 'exit' &&\n events[open][1].type === 'strikethroughSequenceTemporary' &&\n events[open][1]._open &&\n // If the sizes are the same:\n events[index][1].end.offset - events[index][1].start.offset ===\n events[open][1].end.offset - events[open][1].start.offset\n ) {\n events[index][1].type = 'strikethroughSequence'\n events[open][1].type = 'strikethroughSequence'\n\n /** @type {Token} */\n const strikethrough = {\n type: 'strikethrough',\n start: Object.assign({}, events[open][1].start),\n end: Object.assign({}, events[index][1].end)\n }\n\n /** @type {Token} */\n const text = {\n type: 'strikethroughText',\n start: Object.assign({}, events[open][1].end),\n end: Object.assign({}, events[index][1].start)\n }\n\n // Opening.\n /** @type {Array} */\n const nextEvents = [\n ['enter', strikethrough, context],\n ['enter', events[open][1], context],\n ['exit', events[open][1], context],\n ['enter', text, context]\n ]\n const insideSpan = context.parser.constructs.insideSpan.null\n if (insideSpan) {\n // Between.\n splice(\n nextEvents,\n nextEvents.length,\n 0,\n resolveAll(insideSpan, events.slice(open + 1, index), context)\n )\n }\n\n // Closing.\n splice(nextEvents, nextEvents.length, 0, [\n ['exit', text, context],\n ['enter', events[index][1], context],\n ['exit', events[index][1], context],\n ['exit', strikethrough, context]\n ])\n splice(events, open - 1, index - open + 3, nextEvents)\n index = open + nextEvents.length - 2\n break\n }\n }\n }\n }\n index = -1\n while (++index < events.length) {\n if (events[index][1].type === 'strikethroughSequenceTemporary') {\n events[index][1].type = 'data'\n }\n }\n return events\n }\n\n /**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\n function tokenizeStrikethrough(effects, ok, nok) {\n const previous = this.previous\n const events = this.events\n let size = 0\n return start\n\n /** @type {State} */\n function start(code) {\n if (\n previous === 126 &&\n events[events.length - 1][1].type !== 'characterEscape'\n ) {\n return nok(code)\n }\n effects.enter('strikethroughSequenceTemporary')\n return more(code)\n }\n\n /** @type {State} */\n function more(code) {\n const before = classifyCharacter(previous)\n if (code === 126) {\n // If this is the third marker, exit.\n if (size > 1) return nok(code)\n effects.consume(code)\n size++\n return more\n }\n if (size < 2 && !single) return nok(code)\n const token = effects.exit('strikethroughSequenceTemporary')\n const after = classifyCharacter(code)\n token._open = !after || (after === 2 && Boolean(before))\n token._close = !before || (before === 2 && Boolean(after))\n return ok(code)\n }\n }\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n// Port of `edit_map.rs` from `markdown-rs`.\n// This should move to `markdown-js` later.\n\n// Deal with several changes in events, batching them together.\n//\n// Preferably, changes should be kept to a minimum.\n// Sometimes, it’s needed to change the list of events, because parsing can be\n// messy, and it helps to expose a cleaner interface of events to the compiler\n// and other users.\n// It can also help to merge many adjacent similar events.\n// And, in other cases, it’s needed to parse subcontent: pass some events\n// through another tokenizer and inject the result.\n\n/**\n * @typedef {[number, number, Array]} Change\n * @typedef {[number, number, number]} Jump\n */\n\n/**\n * Tracks a bunch of edits.\n */\nexport class EditMap {\n /**\n * Create a new edit map.\n */\n constructor() {\n /**\n * Record of changes.\n *\n * @type {Array}\n */\n this.map = []\n }\n\n /**\n * Create an edit: a remove and/or add at a certain place.\n *\n * @param {number} index\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\n add(index, remove, add) {\n addImpl(this, index, remove, add)\n }\n\n // To do: add this when moving to `micromark`.\n // /**\n // * Create an edit: but insert `add` before existing additions.\n // *\n // * @param {number} index\n // * @param {number} remove\n // * @param {Array} add\n // * @returns {undefined}\n // */\n // addBefore(index, remove, add) {\n // addImpl(this, index, remove, add, true)\n // }\n\n /**\n * Done, change the events.\n *\n * @param {Array} events\n * @returns {undefined}\n */\n consume(events) {\n this.map.sort(function (a, b) {\n return a[0] - b[0]\n })\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (this.map.length === 0) {\n return\n }\n\n // To do: if links are added in events, like they are in `markdown-rs`,\n // this is needed.\n // // Calculate jumps: where items in the current list move to.\n // /** @type {Array} */\n // const jumps = []\n // let index = 0\n // let addAcc = 0\n // let removeAcc = 0\n // while (index < this.map.length) {\n // const [at, remove, add] = this.map[index]\n // removeAcc += remove\n // addAcc += add.length\n // jumps.push([at, removeAcc, addAcc])\n // index += 1\n // }\n //\n // . shiftLinks(events, jumps)\n\n let index = this.map.length\n /** @type {Array>} */\n const vecs = []\n while (index > 0) {\n index -= 1\n vecs.push(\n events.slice(this.map[index][0] + this.map[index][1]),\n this.map[index][2]\n )\n\n // Truncate rest.\n events.length = this.map[index][0]\n }\n vecs.push([...events])\n events.length = 0\n let slice = vecs.pop()\n while (slice) {\n events.push(...slice)\n slice = vecs.pop()\n }\n\n // Truncate everything.\n this.map.length = 0\n }\n}\n\n/**\n * Create an edit.\n *\n * @param {EditMap} editMap\n * @param {number} at\n * @param {number} remove\n * @param {Array} add\n * @returns {undefined}\n */\nfunction addImpl(editMap, at, remove, add) {\n let index = 0\n\n /* c8 ignore next 3 -- `resolve` is never called without tables, so without edits. */\n if (remove === 0 && add.length === 0) {\n return\n }\n while (index < editMap.map.length) {\n if (editMap.map[index][0] === at) {\n editMap.map[index][1] += remove\n\n // To do: before not used by tables, use when moving to micromark.\n // if (before) {\n // add.push(...editMap.map[index][2])\n // editMap.map[index][2] = add\n // } else {\n editMap.map[index][2].push(...add)\n // }\n\n return\n }\n index += 1\n }\n editMap.map.push([at, remove, add])\n}\n\n// /**\n// * Shift `previous` and `next` links according to `jumps`.\n// *\n// * This fixes links in case there are events removed or added between them.\n// *\n// * @param {Array} events\n// * @param {Array} jumps\n// */\n// function shiftLinks(events, jumps) {\n// let jumpIndex = 0\n// let index = 0\n// let add = 0\n// let rm = 0\n\n// while (index < events.length) {\n// const rmCurr = rm\n\n// while (jumpIndex < jumps.length && jumps[jumpIndex][0] <= index) {\n// add = jumps[jumpIndex][2]\n// rm = jumps[jumpIndex][1]\n// jumpIndex += 1\n// }\n\n// // Ignore items that will be removed.\n// if (rm > rmCurr) {\n// index += rm - rmCurr\n// } else {\n// // ?\n// // if let Some(link) = &events[index].link {\n// // if let Some(next) = link.next {\n// // events[next].link.as_mut().unwrap().previous = Some(index + add - rm);\n// // while jumpIndex < jumps.len() && jumps[jumpIndex].0 <= next {\n// // add = jumps[jumpIndex].2;\n// // rm = jumps[jumpIndex].1;\n// // jumpIndex += 1;\n// // }\n// // events[index].link.as_mut().unwrap().next = Some(next + add - rm);\n// // index = next;\n// // continue;\n// // }\n// // }\n// index += 1\n// }\n// }\n// }\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n */\n\n/**\n * @typedef {'center' | 'left' | 'none' | 'right'} Align\n */\n\n/**\n * Figure out the alignment of a GFM table.\n *\n * @param {Readonly>} events\n * List of events.\n * @param {number} index\n * Table enter event.\n * @returns {Array}\n * List of aligns.\n */\nexport function gfmTableAlign(events, index) {\n let inDelimiterRow = false\n /** @type {Array} */\n const align = []\n while (index < events.length) {\n const event = events[index]\n if (inDelimiterRow) {\n if (event[0] === 'enter') {\n // Start of alignment value: set a new column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n if (event[1].type === 'tableContent') {\n align.push(\n events[index + 1][1].type === 'tableDelimiterMarker'\n ? 'left'\n : 'none'\n )\n }\n }\n // Exits:\n // End of alignment value: change the column.\n // To do: `markdown-rs` uses `tableDelimiterCellValue`.\n else if (event[1].type === 'tableContent') {\n if (events[index - 1][1].type === 'tableDelimiterMarker') {\n const alignIndex = align.length - 1\n align[alignIndex] = align[alignIndex] === 'left' ? 'center' : 'right'\n }\n }\n // Done!\n else if (event[1].type === 'tableDelimiterRow') {\n break\n }\n } else if (event[0] === 'enter' && event[1].type === 'tableDelimiterRow') {\n inDelimiterRow = true\n }\n index += 1\n }\n return align\n}\n","/**\n * @typedef {import('micromark-util-types').Event} Event\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').Point} Point\n * @typedef {import('micromark-util-types').Resolver} Resolver\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').Token} Token\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\n/**\n * @typedef {[number, number, number, number]} Range\n * Cell info.\n *\n * @typedef {0 | 1 | 2 | 3} RowKind\n * Where we are: `1` for head row, `2` for delimiter row, `3` for body row.\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nimport {EditMap} from './edit-map.js'\nimport {gfmTableAlign} from './infer.js'\n\n/**\n * Create an HTML extension for `micromark` to support GitHub tables syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * table syntax.\n */\nexport function gfmTable() {\n return {\n flow: {\n null: {\n tokenize: tokenizeTable,\n resolveAll: resolveTable\n }\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTable(effects, ok, nok) {\n const self = this\n let size = 0\n let sizeB = 0\n /** @type {boolean | undefined} */\n let seen\n return start\n\n /**\n * Start of a GFM table.\n *\n * If there is a valid table row or table head before, then we try to parse\n * another row.\n * Otherwise, we try to parse a head.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * > | | b |\n * ^\n * ```\n * @type {State}\n */\n function start(code) {\n let index = self.events.length - 1\n while (index > -1) {\n const type = self.events[index][1].type\n if (\n type === 'lineEnding' ||\n // Note: markdown-rs uses `whitespace` instead of `linePrefix`\n type === 'linePrefix'\n )\n index--\n else break\n }\n const tail = index > -1 ? self.events[index][1].type : null\n const next =\n tail === 'tableHead' || tail === 'tableRow' ? bodyRowStart : headRowBefore\n\n // Don’t allow lazy body rows.\n if (next === bodyRowStart && self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n return next(code)\n }\n\n /**\n * Before table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBefore(code) {\n effects.enter('tableHead')\n effects.enter('tableRow')\n return headRowStart(code)\n }\n\n /**\n * Before table head row, after whitespace.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowStart(code) {\n if (code === 124) {\n return headRowBreak(code)\n }\n\n // To do: micromark-js should let us parse our own whitespace in extensions,\n // like `markdown-rs`:\n //\n // ```js\n // // 4+ spaces.\n // if (markdownSpace(code)) {\n // return nok(code)\n // }\n // ```\n\n seen = true\n // Count the first character, that isn’t a pipe, double.\n sizeB += 1\n return headRowBreak(code)\n }\n\n /**\n * At break in table head row.\n *\n * ```markdown\n * > | | a |\n * ^\n * ^\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowBreak(code) {\n if (code === null) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownLineEnding(code)) {\n // If anything other than one pipe (ignoring whitespace) was used, it’s fine.\n if (sizeB > 1) {\n sizeB = 0\n // To do: check if this works.\n // Feel free to interrupt:\n self.interrupt = true\n effects.exit('tableRow')\n effects.enter('lineEnding')\n effects.consume(code)\n effects.exit('lineEnding')\n return headDelimiterStart\n }\n\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n if (markdownSpace(code)) {\n // To do: check if this is fine.\n // effects.attempt(State::Next(StateName::GfmTableHeadRowBreak), State::Nok)\n // State::Retry(space_or_tab(tokenizer))\n return factorySpace(effects, headRowBreak, 'whitespace')(code)\n }\n sizeB += 1\n if (seen) {\n seen = false\n // Header cell count.\n size += 1\n }\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n // Whether a delimiter was seen.\n seen = true\n return headRowBreak\n }\n\n // Anything else is cell data.\n effects.enter('data')\n return headRowData(code)\n }\n\n /**\n * In table head row data.\n *\n * ```markdown\n * > | | a |\n * ^\n * | | - |\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return headRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? headRowEscape : headRowData\n }\n\n /**\n * In table head row escape.\n *\n * ```markdown\n * > | | a\\-b |\n * ^\n * | | ---- |\n * | | c |\n * ```\n *\n * @type {State}\n */\n function headRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return headRowData\n }\n return headRowData(code)\n }\n\n /**\n * Before delimiter row.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterStart(code) {\n // Reset `interrupt`.\n self.interrupt = false\n\n // Note: in `markdown-rs`, we need to handle piercing here too.\n if (self.parser.lazy[self.now().line]) {\n return nok(code)\n }\n effects.enter('tableDelimiterRow')\n // Track if we’ve seen a `:` or `|`.\n seen = false\n if (markdownSpace(code)) {\n return factorySpace(\n effects,\n headDelimiterBefore,\n 'linePrefix',\n self.parser.constructs.disable.null.includes('codeIndented')\n ? undefined\n : 4\n )(code)\n }\n return headDelimiterBefore(code)\n }\n\n /**\n * Before delimiter row, after optional whitespace.\n *\n * Reused when a `|` is found later, to parse another cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * | | b |\n * ```\n *\n * @type {State}\n */\n function headDelimiterBefore(code) {\n if (code === 45 || code === 58) {\n return headDelimiterValueBefore(code)\n }\n if (code === 124) {\n seen = true\n // If we start with a pipe, we open a cell marker.\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return headDelimiterCellBefore\n }\n\n // More whitespace / empty row not allowed at start.\n return headDelimiterNok(code)\n }\n\n /**\n * After `|`, before delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellBefore(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterValueBefore, 'whitespace')(code)\n }\n return headDelimiterValueBefore(code)\n }\n\n /**\n * Before delimiter cell value.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterValueBefore(code) {\n // Align: left.\n if (code === 58) {\n sizeB += 1\n seen = true\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterLeftAlignmentAfter\n }\n\n // Align: none.\n if (code === 45) {\n sizeB += 1\n // To do: seems weird that this *isn’t* left aligned, but that state is used?\n return headDelimiterLeftAlignmentAfter(code)\n }\n if (code === null || markdownLineEnding(code)) {\n return headDelimiterCellAfter(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * After delimiter cell left alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | :- |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterLeftAlignmentAfter(code) {\n if (code === 45) {\n effects.enter('tableDelimiterFiller')\n return headDelimiterFiller(code)\n }\n\n // Anything else is not ok after the left-align colon.\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter cell filler.\n *\n * ```markdown\n * | | a |\n * > | | - |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterFiller(code) {\n if (code === 45) {\n effects.consume(code)\n return headDelimiterFiller\n }\n\n // Align is `center` if it was `left`, `right` otherwise.\n if (code === 58) {\n seen = true\n effects.exit('tableDelimiterFiller')\n effects.enter('tableDelimiterMarker')\n effects.consume(code)\n effects.exit('tableDelimiterMarker')\n return headDelimiterRightAlignmentAfter\n }\n effects.exit('tableDelimiterFiller')\n return headDelimiterRightAlignmentAfter(code)\n }\n\n /**\n * After delimiter cell right alignment marker.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterRightAlignmentAfter(code) {\n if (markdownSpace(code)) {\n return factorySpace(effects, headDelimiterCellAfter, 'whitespace')(code)\n }\n return headDelimiterCellAfter(code)\n }\n\n /**\n * After delimiter cell.\n *\n * ```markdown\n * | | a |\n * > | | -: |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterCellAfter(code) {\n if (code === 124) {\n return headDelimiterBefore(code)\n }\n if (code === null || markdownLineEnding(code)) {\n // Exit when:\n // * there was no `:` or `|` at all (it’s a thematic break or setext\n // underline instead)\n // * the header cell count is not the delimiter cell count\n if (!seen || size !== sizeB) {\n return headDelimiterNok(code)\n }\n\n // Note: in markdown-rs`, a reset is needed here.\n effects.exit('tableDelimiterRow')\n effects.exit('tableHead')\n // To do: in `markdown-rs`, resolvers need to be registered manually.\n // effects.register_resolver(ResolveName::GfmTable)\n return ok(code)\n }\n return headDelimiterNok(code)\n }\n\n /**\n * In delimiter row, at a disallowed byte.\n *\n * ```markdown\n * | | a |\n * > | | x |\n * ^\n * ```\n *\n * @type {State}\n */\n function headDelimiterNok(code) {\n // Note: in `markdown-rs`, we need to reset, in `micromark-js` we don‘t.\n return nok(code)\n }\n\n /**\n * Before table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowStart(code) {\n // Note: in `markdown-rs` we need to manually take care of a prefix,\n // but in `micromark-js` that is done for us, so if we’re here, we’re\n // never at whitespace.\n effects.enter('tableRow')\n return bodyRowBreak(code)\n }\n\n /**\n * At break in table body row.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ^\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowBreak(code) {\n if (code === 124) {\n effects.enter('tableCellDivider')\n effects.consume(code)\n effects.exit('tableCellDivider')\n return bodyRowBreak\n }\n if (code === null || markdownLineEnding(code)) {\n effects.exit('tableRow')\n return ok(code)\n }\n if (markdownSpace(code)) {\n return factorySpace(effects, bodyRowBreak, 'whitespace')(code)\n }\n\n // Anything else is cell content.\n effects.enter('data')\n return bodyRowData(code)\n }\n\n /**\n * In table body row data.\n *\n * ```markdown\n * | | a |\n * | | - |\n * > | | b |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowData(code) {\n if (code === null || code === 124 || markdownLineEndingOrSpace(code)) {\n effects.exit('data')\n return bodyRowBreak(code)\n }\n effects.consume(code)\n return code === 92 ? bodyRowEscape : bodyRowData\n }\n\n /**\n * In table body row escape.\n *\n * ```markdown\n * | | a |\n * | | ---- |\n * > | | b\\-c |\n * ^\n * ```\n *\n * @type {State}\n */\n function bodyRowEscape(code) {\n if (code === 92 || code === 124) {\n effects.consume(code)\n return bodyRowData\n }\n return bodyRowData(code)\n }\n}\n\n/** @type {Resolver} */\n\nfunction resolveTable(events, context) {\n let index = -1\n let inFirstCellAwaitingPipe = true\n /** @type {RowKind} */\n let rowKind = 0\n /** @type {Range} */\n let lastCell = [0, 0, 0, 0]\n /** @type {Range} */\n let cell = [0, 0, 0, 0]\n let afterHeadAwaitingFirstBodyRow = false\n let lastTableEnd = 0\n /** @type {Token | undefined} */\n let currentTable\n /** @type {Token | undefined} */\n let currentBody\n /** @type {Token | undefined} */\n let currentCell\n const map = new EditMap()\n while (++index < events.length) {\n const event = events[index]\n const token = event[1]\n if (event[0] === 'enter') {\n // Start of head.\n if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = false\n\n // Inject previous (body end and) table end.\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n currentBody = undefined\n lastTableEnd = 0\n }\n\n // Inject table start.\n currentTable = {\n type: 'table',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentTable, context]])\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n inFirstCellAwaitingPipe = true\n currentCell = undefined\n lastCell = [0, 0, 0, 0]\n cell = [0, index + 1, 0, 0]\n\n // Inject table body start.\n if (afterHeadAwaitingFirstBodyRow) {\n afterHeadAwaitingFirstBodyRow = false\n currentBody = {\n type: 'tableBody',\n start: Object.assign({}, token.start),\n // Note: correct end is set later.\n end: Object.assign({}, token.end)\n }\n map.add(index, 0, [['enter', currentBody, context]])\n }\n rowKind = token.type === 'tableDelimiterRow' ? 2 : currentBody ? 3 : 1\n }\n // Cell data.\n else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n inFirstCellAwaitingPipe = false\n\n // First value in cell.\n if (cell[2] === 0) {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n lastCell = [0, 0, 0, 0]\n }\n cell[2] = index\n }\n } else if (token.type === 'tableCellDivider') {\n if (inFirstCellAwaitingPipe) {\n inFirstCellAwaitingPipe = false\n } else {\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n undefined,\n currentCell\n )\n }\n lastCell = cell\n cell = [lastCell[1], index, 0, 0]\n }\n }\n }\n // Exit events.\n else if (token.type === 'tableHead') {\n afterHeadAwaitingFirstBodyRow = true\n lastTableEnd = index\n } else if (\n token.type === 'tableRow' ||\n token.type === 'tableDelimiterRow'\n ) {\n lastTableEnd = index\n if (lastCell[1] !== 0) {\n cell[0] = cell[1]\n currentCell = flushCell(\n map,\n context,\n lastCell,\n rowKind,\n index,\n currentCell\n )\n } else if (cell[1] !== 0) {\n currentCell = flushCell(map, context, cell, rowKind, index, currentCell)\n }\n rowKind = 0\n } else if (\n rowKind &&\n (token.type === 'data' ||\n token.type === 'tableDelimiterMarker' ||\n token.type === 'tableDelimiterFiller')\n ) {\n cell[3] = index\n }\n }\n if (lastTableEnd !== 0) {\n flushTableEnd(map, context, lastTableEnd, currentTable, currentBody)\n }\n map.consume(context.events)\n\n // To do: move this into `html`, when events are exposed there.\n // That’s what `markdown-rs` does.\n // That needs updates to `mdast-util-gfm-table`.\n index = -1\n while (++index < context.events.length) {\n const event = context.events[index]\n if (event[0] === 'enter' && event[1].type === 'table') {\n event[1]._align = gfmTableAlign(context.events, index)\n }\n }\n return events\n}\n\n/**\n * Generate a cell.\n *\n * @param {EditMap} map\n * @param {Readonly} context\n * @param {Readonly} range\n * @param {RowKind} rowKind\n * @param {number | undefined} rowEnd\n * @param {Token | undefined} previousCell\n * @returns {Token | undefined}\n */\n// eslint-disable-next-line max-params\nfunction flushCell(map, context, range, rowKind, rowEnd, previousCell) {\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCell' : 'tableCell'\n const groupName =\n rowKind === 1\n ? 'tableHeader'\n : rowKind === 2\n ? 'tableDelimiter'\n : 'tableData'\n // `markdown-rs` uses:\n // rowKind === 2 ? 'tableDelimiterCellValue' : 'tableCellText'\n const valueName = 'tableContent'\n\n // Insert an exit for the previous cell, if there is one.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[0] !== 0) {\n previousCell.end = Object.assign({}, getPoint(context.events, range[0]))\n map.add(range[0], 0, [['exit', previousCell, context]])\n }\n\n // Insert enter of this cell.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^^^^-- this cell\n // ```\n const now = getPoint(context.events, range[1])\n previousCell = {\n type: groupName,\n start: Object.assign({}, now),\n // Note: correct end is set later.\n end: Object.assign({}, now)\n }\n map.add(range[1], 0, [['enter', previousCell, context]])\n\n // Insert text start at first data start and end at last data end, and\n // remove events between.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- enter\n // ^-- exit\n // ^^^^-- this cell\n // ```\n if (range[2] !== 0) {\n const relatedStart = getPoint(context.events, range[2])\n const relatedEnd = getPoint(context.events, range[3])\n /** @type {Token} */\n const valueToken = {\n type: valueName,\n start: Object.assign({}, relatedStart),\n end: Object.assign({}, relatedEnd)\n }\n map.add(range[2], 0, [['enter', valueToken, context]])\n if (rowKind !== 2) {\n // Fix positional info on remaining events\n const start = context.events[range[2]]\n const end = context.events[range[3]]\n start[1].end = Object.assign({}, end[1].end)\n start[1].type = 'chunkText'\n start[1].contentType = 'text'\n\n // Remove if needed.\n if (range[3] > range[2] + 1) {\n const a = range[2] + 1\n const b = range[3] - range[2] - 1\n map.add(a, b, [])\n }\n }\n map.add(range[3] + 1, 0, [['exit', valueToken, context]])\n }\n\n // Insert an exit for the last cell, if at the row end.\n //\n // ```markdown\n // > | | aa | bb | cc |\n // ^-- exit\n // ^^^^^^-- this cell (the last one contains two “between” parts)\n // ```\n if (rowEnd !== undefined) {\n previousCell.end = Object.assign({}, getPoint(context.events, rowEnd))\n map.add(rowEnd, 0, [['exit', previousCell, context]])\n previousCell = undefined\n }\n return previousCell\n}\n\n/**\n * Generate table end (and table body end).\n *\n * @param {Readonly} map\n * @param {Readonly} context\n * @param {number} index\n * @param {Token} table\n * @param {Token | undefined} tableBody\n */\n// eslint-disable-next-line max-params\nfunction flushTableEnd(map, context, index, table, tableBody) {\n /** @type {Array} */\n const exits = []\n const related = getPoint(context.events, index)\n if (tableBody) {\n tableBody.end = Object.assign({}, related)\n exits.push(['exit', tableBody, context])\n }\n table.end = Object.assign({}, related)\n exits.push(['exit', table, context])\n map.add(index + 1, 0, exits)\n}\n\n/**\n * @param {Readonly>} events\n * @param {number} index\n * @returns {Readonly}\n */\nfunction getPoint(events, index) {\n const event = events[index]\n const side = event[0] === 'enter' ? 'start' : 'end'\n return event[1][side]\n}\n","/**\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').State} State\n * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext\n * @typedef {import('micromark-util-types').Tokenizer} Tokenizer\n */\n\nimport {factorySpace} from 'micromark-factory-space'\nimport {\n markdownLineEnding,\n markdownLineEndingOrSpace,\n markdownSpace\n} from 'micromark-util-character'\nconst tasklistCheck = {\n tokenize: tokenizeTasklistCheck\n}\n\n/**\n * Create an HTML extension for `micromark` to support GFM task list items\n * syntax.\n *\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM task list items when serializing to HTML.\n */\nexport function gfmTaskListItem() {\n return {\n text: {\n [91]: tasklistCheck\n }\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction tokenizeTasklistCheck(effects, ok, nok) {\n const self = this\n return open\n\n /**\n * At start of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function open(code) {\n if (\n // Exit if there’s stuff before.\n self.previous !== null ||\n // Exit if not in the first content that is the first child of a list\n // item.\n !self._gfmTasklistFirstContentOfListItem\n ) {\n return nok(code)\n }\n effects.enter('taskListCheck')\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n return inside\n }\n\n /**\n * In task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function inside(code) {\n // Currently we match how GH works in files.\n // To match how GH works in comments, use `markdownSpace` (`[\\t ]`) instead\n // of `markdownLineEndingOrSpace` (`[\\t\\n\\r ]`).\n if (markdownLineEndingOrSpace(code)) {\n effects.enter('taskListCheckValueUnchecked')\n effects.consume(code)\n effects.exit('taskListCheckValueUnchecked')\n return close\n }\n if (code === 88 || code === 120) {\n effects.enter('taskListCheckValueChecked')\n effects.consume(code)\n effects.exit('taskListCheckValueChecked')\n return close\n }\n return nok(code)\n }\n\n /**\n * At close of task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function close(code) {\n if (code === 93) {\n effects.enter('taskListCheckMarker')\n effects.consume(code)\n effects.exit('taskListCheckMarker')\n effects.exit('taskListCheck')\n return after\n }\n return nok(code)\n }\n\n /**\n * @type {State}\n */\n function after(code) {\n // EOL in paragraph means there must be something else after it.\n if (markdownLineEnding(code)) {\n return ok(code)\n }\n\n // Space or tab?\n // Check what comes after.\n if (markdownSpace(code)) {\n return effects.check(\n {\n tokenize: spaceThenNonSpace\n },\n ok,\n nok\n )(code)\n }\n\n // EOF, or non-whitespace, both wrong.\n return nok(code)\n }\n}\n\n/**\n * @this {TokenizeContext}\n * @type {Tokenizer}\n */\nfunction spaceThenNonSpace(effects, ok, nok) {\n return factorySpace(effects, after, 'whitespace')\n\n /**\n * After whitespace, after task list item check.\n *\n * ```markdown\n * > | * [x] y.\n * ^\n * ```\n *\n * @type {State}\n */\n function after(code) {\n // EOF means there was nothing, so bad.\n // EOL means there’s content after it, so good.\n // Impossible to have more spaces.\n // Anything else is good.\n return code === null ? nok(code) : ok(code)\n }\n}\n","/// \n/// \n\n/**\n * @typedef {import('mdast').Root} Root\n * @typedef {import('mdast-util-gfm').Options} MdastOptions\n * @typedef {import('micromark-extension-gfm').Options} MicromarkOptions\n * @typedef {import('unified').Processor} Processor\n */\n\n/**\n * @typedef {MicromarkOptions & MdastOptions} Options\n * Configuration.\n */\n\nimport {gfmFromMarkdown, gfmToMarkdown} from 'mdast-util-gfm'\nimport {gfm} from 'micromark-extension-gfm'\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add support GFM (autolink literals, footnotes, strikethrough, tables,\n * tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns {undefined}\n * Nothing.\n */\nexport default function remarkGfm(options) {\n // @ts-expect-error: TS is wrong about `this`.\n // eslint-disable-next-line unicorn/no-this-assignment\n const self = /** @type {Processor} */ (this)\n const settings = options || emptyOptions\n const data = self.data()\n\n const micromarkExtensions =\n data.micromarkExtensions || (data.micromarkExtensions = [])\n const fromMarkdownExtensions =\n data.fromMarkdownExtensions || (data.fromMarkdownExtensions = [])\n const toMarkdownExtensions =\n data.toMarkdownExtensions || (data.toMarkdownExtensions = [])\n\n micromarkExtensions.push(gfm(settings))\n fromMarkdownExtensions.push(gfmFromMarkdown())\n toMarkdownExtensions.push(gfmToMarkdown(settings))\n}\n","/**\n * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions\n * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options\n * @typedef {import('micromark-util-types').Extension} Extension\n * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension\n */\n\nimport {\n combineExtensions,\n combineHtmlExtensions\n} from 'micromark-util-combine-extensions'\nimport {\n gfmAutolinkLiteral,\n gfmAutolinkLiteralHtml\n} from 'micromark-extension-gfm-autolink-literal'\nimport {gfmFootnote, gfmFootnoteHtml} from 'micromark-extension-gfm-footnote'\nimport {\n gfmStrikethrough,\n gfmStrikethroughHtml\n} from 'micromark-extension-gfm-strikethrough'\nimport {gfmTable, gfmTableHtml} from 'micromark-extension-gfm-table'\nimport {gfmTagfilterHtml} from 'micromark-extension-gfm-tagfilter'\nimport {\n gfmTaskListItem,\n gfmTaskListItemHtml\n} from 'micromark-extension-gfm-task-list-item'\n\n/**\n * Create an extension for `micromark` to enable GFM syntax.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-strikethrough`.\n * @returns {Extension}\n * Extension for `micromark` that can be passed in `extensions` to enable GFM\n * syntax.\n */\nexport function gfm(options) {\n return combineExtensions([\n gfmAutolinkLiteral(),\n gfmFootnote(),\n gfmStrikethrough(options),\n gfmTable(),\n gfmTaskListItem()\n ])\n}\n\n/**\n * Create an extension for `micromark` to support GFM when serializing to HTML.\n *\n * @param {HtmlOptions | null | undefined} [options]\n * Configuration (optional).\n *\n * Passed to `micromark-extens-gfm-footnote`.\n * @returns {HtmlExtension}\n * Extension for `micromark` that can be passed in `htmlExtensions` to\n * support GFM when serializing to HTML.\n */\nexport function gfmHtml(options) {\n return combineHtmlExtensions([\n gfmAutolinkLiteralHtml(),\n gfmFootnoteHtml(options),\n gfmStrikethroughHtml(),\n gfmTableHtml(),\n gfmTagfilterHtml(),\n gfmTaskListItemHtml()\n ])\n}\n","/**\n * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension\n * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension\n */\n\n/**\n * @typedef {import('mdast-util-gfm-table').Options} Options\n * Configuration.\n */\n\nimport {\n gfmAutolinkLiteralFromMarkdown,\n gfmAutolinkLiteralToMarkdown\n} from 'mdast-util-gfm-autolink-literal'\nimport {\n gfmFootnoteFromMarkdown,\n gfmFootnoteToMarkdown\n} from 'mdast-util-gfm-footnote'\nimport {\n gfmStrikethroughFromMarkdown,\n gfmStrikethroughToMarkdown\n} from 'mdast-util-gfm-strikethrough'\nimport {gfmTableFromMarkdown, gfmTableToMarkdown} from 'mdast-util-gfm-table'\nimport {\n gfmTaskListItemFromMarkdown,\n gfmTaskListItemToMarkdown\n} from 'mdast-util-gfm-task-list-item'\n\n/**\n * Create an extension for `mdast-util-from-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @returns {Array}\n * Extension for `mdast-util-from-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmFromMarkdown() {\n return [\n gfmAutolinkLiteralFromMarkdown(),\n gfmFootnoteFromMarkdown(),\n gfmStrikethroughFromMarkdown(),\n gfmTableFromMarkdown(),\n gfmTaskListItemFromMarkdown()\n ]\n}\n\n/**\n * Create an extension for `mdast-util-to-markdown` to enable GFM (autolink\n * literals, footnotes, strikethrough, tables, tasklists).\n *\n * @param {Options | null | undefined} [options]\n * Configuration.\n * @returns {ToMarkdownExtension}\n * Extension for `mdast-util-to-markdown` to enable GFM (autolink literals,\n * footnotes, strikethrough, tables, tasklists).\n */\nexport function gfmToMarkdown(options) {\n return {\n extensions: [\n gfmAutolinkLiteralToMarkdown(),\n gfmFootnoteToMarkdown(),\n gfmStrikethroughToMarkdown(),\n gfmTableToMarkdown(options),\n gfmTaskListItemToMarkdown()\n ]\n }\n}\n","import { visit } from 'unist-util-visit';\nimport type { Plugin } from 'unified';\nimport type { Root, PhrasingContent } from \"mdast\";\n\nconst alertRegex = /^\\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)\\]/i;\nconst alertLegacyRegex = /^\\[!(NOTE|TIP|IMPORTANT|WARNING|CAUTION)(\\/.*)?\\]/i;\n\ntype Option = {\n /**\n * Use the legacy title format, which includes a slash and a title after the alert type.\n * \n * Enabling legacyTitle allows modifying the title, but this is not GitHub standard.\n */\n legacyTitle?: boolean\n}\n\n/**\n * Alerts are a Markdown extension based on the blockquote syntax that you can use to emphasize critical information.\n * On GitHub, they are displayed with distinctive colors and icons to indicate the significance of the content.\n * https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax#alerts\n */\nexport const remarkAlert: Plugin<[Option?], Root> = ({ legacyTitle = false } = {}) => {\n return (tree) => {\n visit(tree, \"blockquote\", (node, index, parent) => {\n let alertType = '';\n let title = '';\n let isNext = true;\n let child = node.children.map((item) => {\n if (isNext && item.type === \"paragraph\") {\n const firstNode = item.children[0];\n const text = firstNode.type === 'text' ? firstNode.value : '';\n const reg = legacyTitle ? alertLegacyRegex : alertRegex;\n const match = text.match(reg);\n if (match) {\n isNext = false;\n alertType = match[1].toLocaleLowerCase();\n title = legacyTitle ? match[2] || alertType.toLocaleUpperCase() : alertType.toLocaleUpperCase();\n if (text.includes('\\n')) {\n item.children[0] = {\n type: 'text',\n value: text.replace(reg, '').replace(/^\\n+/, ''),\n };\n }\n\n if (!text.includes('\\n')) {\n const itemChild: Array = [];\n item.children.forEach((item, idx) => {\n if (idx == 0) return;\n if (idx == 1 && item.type === 'break') {\n return;\n }\n itemChild.push(item);\n });\n item.children = [...itemChild];\n }\n }\n }\n return item;\n })\n\n if (!!alertType) {\n node.data = {\n hName: \"div\",\n hProperties: {\n class: `markdown-alert markdown-alert-${alertType}`,\n dir: 'auto'\n },\n }\n child.unshift({\n type: \"paragraph\",\n children: [\n getAlertIcon(alertType as IconType),\n {\n type: \"text\",\n value: title.replace(/^\\//, ''),\n }\n ],\n data: {\n hProperties: {\n class: \"markdown-alert-title\",\n dir: \"auto\"\n }\n }\n })\n }\n node.children = [...child];\n });\n };\n};\n\nexport function getAlertIcon(type: IconType): PhrasingContent {\n let pathD = pathData[type] ?? '';\n return {\n type: \"emphasis\",\n data: {\n hName: \"svg\",\n hProperties: {\n class: \"octicon\",\n viewBox: '0 0 16 16',\n width: '16',\n height: '16',\n ariaHidden: 'true',\n },\n },\n children: [\n {\n type: \"emphasis\",\n data: {\n hName: \"path\",\n hProperties: {\n d: pathD\n }\n },\n children: []\n }\n ]\n }\n}\n\ntype IconType = 'note' | 'tip' | 'important' | 'warning' | 'caution';\n\nconst pathData: Record = {\n note: 'M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z',\n tip: 'M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z',\n important:\n 'M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v9.5A1.75 1.75 0 0 1 14.25 13H8.06l-2.573 2.573A1.458 1.458 0 0 1 3 14.543V13H1.75A1.75 1.75 0 0 1 0 11.25Zm1.75-.25a.25.25 0 0 0-.25.25v9.5c0 .138.112.25.25.25h2a.75.75 0 0 1 .75.75v2.19l2.72-2.72a.749.749 0 0 1 .53-.22h6.5a.25.25 0 0 0 .25-.25v-9.5a.25.25 0 0 0-.25-.25Zm7 2.25v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 9a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z',\n warning:\n 'M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z',\n caution:\n 'M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z',\n};\n","import copyTextToClipboard from '@uiw/copy-to-clipboard';\nimport { useEffect } from 'react';\nfunction getParentElement(target) {\n if (!target) return null;\n var dom = target;\n if (dom.dataset.code && dom.classList.contains('copied')) {\n return dom;\n }\n if (dom.parentElement) {\n return getParentElement(dom.parentElement);\n }\n return null;\n}\nexport function useCopied(container) {\n var handle = event => {\n var target = getParentElement(event.target);\n if (!target) return;\n target.classList.add('active');\n copyTextToClipboard(target.dataset.code, function () {\n setTimeout(() => {\n target.classList.remove('active');\n }, 2000);\n });\n };\n useEffect(() => {\n var _container$current, _container$current2;\n (_container$current = container.current) == null || _container$current.removeEventListener('click', handle, false);\n (_container$current2 = container.current) == null || _container$current2.addEventListener('click', handle, false);\n return () => {\n var _container$current3;\n (_container$current3 = container.current) == null || _container$current3.removeEventListener('click', handle, false);\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [container]);\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"prefixCls\", \"className\", \"source\", \"style\", \"disableCopy\", \"skipHtml\", \"onScroll\", \"onMouseOver\", \"pluginsFilter\", \"rehypeRewrite\", \"wrapperElement\", \"warpperElement\", \"urlTransform\"];\nimport React, { useImperativeHandle } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport gfm from 'remark-gfm';\nimport raw from 'rehype-raw';\nimport { remarkAlert } from 'remark-github-blockquote-alert';\nimport { useCopied } from './plugins/useCopied';\nimport \"./styles/markdown.css\";\n\n/**\n * https://github.com/uiwjs/react-md-editor/issues/607\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar defaultUrlTransform = url => url;\nexport default /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n prefixCls = 'wmde-markdown wmde-markdown-color',\n className,\n source,\n style,\n disableCopy = false,\n skipHtml = true,\n onScroll,\n onMouseOver,\n pluginsFilter,\n wrapperElement = {},\n warpperElement = {},\n urlTransform\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var mdp = React.useRef(null);\n useImperativeHandle(ref, () => _extends({}, props, {\n mdp\n }), [mdp, props]);\n var cls = (prefixCls || '') + \" \" + (className || '');\n useCopied(mdp);\n var rehypePlugins = [...(other.rehypePlugins || [])];\n var customProps = {\n allowElement: (element, index, parent) => {\n if (other.allowElement) {\n return other.allowElement(element, index, parent);\n }\n return /^[A-Za-z0-9]+$/.test(element.tagName);\n }\n };\n if (skipHtml) {\n rehypePlugins.push(raw);\n }\n var remarkPlugins = [remarkAlert, ...(other.remarkPlugins || []), gfm];\n var wrapperProps = _extends({}, warpperElement, wrapperElement);\n return /*#__PURE__*/_jsx(\"div\", _extends({\n ref: mdp,\n onScroll: onScroll,\n onMouseOver: onMouseOver\n }, wrapperProps, {\n className: cls,\n style: style,\n children: /*#__PURE__*/_jsx(ReactMarkdown, _extends({}, customProps, other, {\n skipHtml: skipHtml,\n urlTransform: urlTransform || defaultUrlTransform,\n rehypePlugins: pluginsFilter ? pluginsFilter('rehype', rehypePlugins) : rehypePlugins,\n remarkPlugins: pluginsFilter ? pluginsFilter('remark', remarkPlugins) : remarkPlugins,\n children: source || ''\n }))\n }));\n});","import _extends from \"@babel/runtime/helpers/extends\";\nimport { visit } from 'unist-util-visit';\nexport var reservedMeta = function reservedMeta(options) {\n if (options === void 0) {\n options = {};\n }\n return tree => {\n visit(tree, node => {\n if (node.type === 'element' && node.tagName === 'code' && node.data && node.data.meta) {\n node.properties = _extends({}, node.properties, {\n 'data-meta': String(node.data.meta)\n });\n }\n });\n };\n};","import { visit } from 'unist-util-visit';\nexport var retrieveMeta = function retrieveMeta(options) {\n if (options === void 0) {\n options = {};\n }\n return tree => {\n visit(tree, node => {\n if (node.type === 'element' && node.tagName === 'code' && node.properties && node.properties['dataMeta']) {\n if (!node.data) {\n node.data = {};\n }\n node.data.meta = node.properties['dataMeta'];\n delete node.properties['dataMeta'];\n }\n });\n };\n};","// This module is generated by `script/`.\n/* eslint-disable no-control-regex, no-misleading-character-class, no-useless-escape */\nexport const regex = /[\\0-\\x1F!-,\\.\\/:-@\\[-\\^`\\{-\\xA9\\xAB-\\xB4\\xB6-\\xB9\\xBB-\\xBF\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0378\\u0379\\u037E\\u0380-\\u0385\\u0387\\u038B\\u038D\\u03A2\\u03F6\\u0482\\u0530\\u0557\\u0558\\u055A-\\u055F\\u0589-\\u0590\\u05BE\\u05C0\\u05C3\\u05C6\\u05C8-\\u05CF\\u05EB-\\u05EE\\u05F3-\\u060F\\u061B-\\u061F\\u066A-\\u066D\\u06D4\\u06DD\\u06DE\\u06E9\\u06FD\\u06FE\\u0700-\\u070F\\u074B\\u074C\\u07B2-\\u07BF\\u07F6-\\u07F9\\u07FB\\u07FC\\u07FE\\u07FF\\u082E-\\u083F\\u085C-\\u085F\\u086B-\\u089F\\u08B5\\u08C8-\\u08D2\\u08E2\\u0964\\u0965\\u0970\\u0984\\u098D\\u098E\\u0991\\u0992\\u09A9\\u09B1\\u09B3-\\u09B5\\u09BA\\u09BB\\u09C5\\u09C6\\u09C9\\u09CA\\u09CF-\\u09D6\\u09D8-\\u09DB\\u09DE\\u09E4\\u09E5\\u09F2-\\u09FB\\u09FD\\u09FF\\u0A00\\u0A04\\u0A0B-\\u0A0E\\u0A11\\u0A12\\u0A29\\u0A31\\u0A34\\u0A37\\u0A3A\\u0A3B\\u0A3D\\u0A43-\\u0A46\\u0A49\\u0A4A\\u0A4E-\\u0A50\\u0A52-\\u0A58\\u0A5D\\u0A5F-\\u0A65\\u0A76-\\u0A80\\u0A84\\u0A8E\\u0A92\\u0AA9\\u0AB1\\u0AB4\\u0ABA\\u0ABB\\u0AC6\\u0ACA\\u0ACE\\u0ACF\\u0AD1-\\u0ADF\\u0AE4\\u0AE5\\u0AF0-\\u0AF8\\u0B00\\u0B04\\u0B0D\\u0B0E\\u0B11\\u0B12\\u0B29\\u0B31\\u0B34\\u0B3A\\u0B3B\\u0B45\\u0B46\\u0B49\\u0B4A\\u0B4E-\\u0B54\\u0B58-\\u0B5B\\u0B5E\\u0B64\\u0B65\\u0B70\\u0B72-\\u0B81\\u0B84\\u0B8B-\\u0B8D\\u0B91\\u0B96-\\u0B98\\u0B9B\\u0B9D\\u0BA0-\\u0BA2\\u0BA5-\\u0BA7\\u0BAB-\\u0BAD\\u0BBA-\\u0BBD\\u0BC3-\\u0BC5\\u0BC9\\u0BCE\\u0BCF\\u0BD1-\\u0BD6\\u0BD8-\\u0BE5\\u0BF0-\\u0BFF\\u0C0D\\u0C11\\u0C29\\u0C3A-\\u0C3C\\u0C45\\u0C49\\u0C4E-\\u0C54\\u0C57\\u0C5B-\\u0C5F\\u0C64\\u0C65\\u0C70-\\u0C7F\\u0C84\\u0C8D\\u0C91\\u0CA9\\u0CB4\\u0CBA\\u0CBB\\u0CC5\\u0CC9\\u0CCE-\\u0CD4\\u0CD7-\\u0CDD\\u0CDF\\u0CE4\\u0CE5\\u0CF0\\u0CF3-\\u0CFF\\u0D0D\\u0D11\\u0D45\\u0D49\\u0D4F-\\u0D53\\u0D58-\\u0D5E\\u0D64\\u0D65\\u0D70-\\u0D79\\u0D80\\u0D84\\u0D97-\\u0D99\\u0DB2\\u0DBC\\u0DBE\\u0DBF\\u0DC7-\\u0DC9\\u0DCB-\\u0DCE\\u0DD5\\u0DD7\\u0DE0-\\u0DE5\\u0DF0\\u0DF1\\u0DF4-\\u0E00\\u0E3B-\\u0E3F\\u0E4F\\u0E5A-\\u0E80\\u0E83\\u0E85\\u0E8B\\u0EA4\\u0EA6\\u0EBE\\u0EBF\\u0EC5\\u0EC7\\u0ECE\\u0ECF\\u0EDA\\u0EDB\\u0EE0-\\u0EFF\\u0F01-\\u0F17\\u0F1A-\\u0F1F\\u0F2A-\\u0F34\\u0F36\\u0F38\\u0F3A-\\u0F3D\\u0F48\\u0F6D-\\u0F70\\u0F85\\u0F98\\u0FBD-\\u0FC5\\u0FC7-\\u0FFF\\u104A-\\u104F\\u109E\\u109F\\u10C6\\u10C8-\\u10CC\\u10CE\\u10CF\\u10FB\\u1249\\u124E\\u124F\\u1257\\u1259\\u125E\\u125F\\u1289\\u128E\\u128F\\u12B1\\u12B6\\u12B7\\u12BF\\u12C1\\u12C6\\u12C7\\u12D7\\u1311\\u1316\\u1317\\u135B\\u135C\\u1360-\\u137F\\u1390-\\u139F\\u13F6\\u13F7\\u13FE-\\u1400\\u166D\\u166E\\u1680\\u169B-\\u169F\\u16EB-\\u16ED\\u16F9-\\u16FF\\u170D\\u1715-\\u171F\\u1735-\\u173F\\u1754-\\u175F\\u176D\\u1771\\u1774-\\u177F\\u17D4-\\u17D6\\u17D8-\\u17DB\\u17DE\\u17DF\\u17EA-\\u180A\\u180E\\u180F\\u181A-\\u181F\\u1879-\\u187F\\u18AB-\\u18AF\\u18F6-\\u18FF\\u191F\\u192C-\\u192F\\u193C-\\u1945\\u196E\\u196F\\u1975-\\u197F\\u19AC-\\u19AF\\u19CA-\\u19CF\\u19DA-\\u19FF\\u1A1C-\\u1A1F\\u1A5F\\u1A7D\\u1A7E\\u1A8A-\\u1A8F\\u1A9A-\\u1AA6\\u1AA8-\\u1AAF\\u1AC1-\\u1AFF\\u1B4C-\\u1B4F\\u1B5A-\\u1B6A\\u1B74-\\u1B7F\\u1BF4-\\u1BFF\\u1C38-\\u1C3F\\u1C4A-\\u1C4C\\u1C7E\\u1C7F\\u1C89-\\u1C8F\\u1CBB\\u1CBC\\u1CC0-\\u1CCF\\u1CD3\\u1CFB-\\u1CFF\\u1DFA\\u1F16\\u1F17\\u1F1E\\u1F1F\\u1F46\\u1F47\\u1F4E\\u1F4F\\u1F58\\u1F5A\\u1F5C\\u1F5E\\u1F7E\\u1F7F\\u1FB5\\u1FBD\\u1FBF-\\u1FC1\\u1FC5\\u1FCD-\\u1FCF\\u1FD4\\u1FD5\\u1FDC-\\u1FDF\\u1FED-\\u1FF1\\u1FF5\\u1FFD-\\u203E\\u2041-\\u2053\\u2055-\\u2070\\u2072-\\u207E\\u2080-\\u208F\\u209D-\\u20CF\\u20F1-\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F-\\u215F\\u2189-\\u24B5\\u24EA-\\u2BFF\\u2C2F\\u2C5F\\u2CE5-\\u2CEA\\u2CF4-\\u2CFF\\u2D26\\u2D28-\\u2D2C\\u2D2E\\u2D2F\\u2D68-\\u2D6E\\u2D70-\\u2D7E\\u2D97-\\u2D9F\\u2DA7\\u2DAF\\u2DB7\\u2DBF\\u2DC7\\u2DCF\\u2DD7\\u2DDF\\u2E00-\\u2E2E\\u2E30-\\u3004\\u3008-\\u3020\\u3030\\u3036\\u3037\\u303D-\\u3040\\u3097\\u3098\\u309B\\u309C\\u30A0\\u30FB\\u3100-\\u3104\\u3130\\u318F-\\u319F\\u31C0-\\u31EF\\u3200-\\u33FF\\u4DC0-\\u4DFF\\u9FFD-\\u9FFF\\uA48D-\\uA4CF\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA62C-\\uA63F\\uA673\\uA67E\\uA6F2-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA7C0\\uA7C1\\uA7CB-\\uA7F4\\uA828-\\uA82B\\uA82D-\\uA83F\\uA874-\\uA87F\\uA8C6-\\uA8CF\\uA8DA-\\uA8DF\\uA8F8-\\uA8FA\\uA8FC\\uA92E\\uA92F\\uA954-\\uA95F\\uA97D-\\uA97F\\uA9C1-\\uA9CE\\uA9DA-\\uA9DF\\uA9FF\\uAA37-\\uAA3F\\uAA4E\\uAA4F\\uAA5A-\\uAA5F\\uAA77-\\uAA79\\uAAC3-\\uAADA\\uAADE\\uAADF\\uAAF0\\uAAF1\\uAAF7-\\uAB00\\uAB07\\uAB08\\uAB0F\\uAB10\\uAB17-\\uAB1F\\uAB27\\uAB2F\\uAB5B\\uAB6A-\\uAB6F\\uABEB\\uABEE\\uABEF\\uABFA-\\uABFF\\uD7A4-\\uD7AF\\uD7C7-\\uD7CA\\uD7FC-\\uD7FF\\uE000-\\uF8FF\\uFA6E\\uFA6F\\uFADA-\\uFAFF\\uFB07-\\uFB12\\uFB18-\\uFB1C\\uFB29\\uFB37\\uFB3D\\uFB3F\\uFB42\\uFB45\\uFBB2-\\uFBD2\\uFD3E-\\uFD4F\\uFD90\\uFD91\\uFDC8-\\uFDEF\\uFDFC-\\uFDFF\\uFE10-\\uFE1F\\uFE30-\\uFE32\\uFE35-\\uFE4C\\uFE50-\\uFE6F\\uFE75\\uFEFD-\\uFF0F\\uFF1A-\\uFF20\\uFF3B-\\uFF3E\\uFF40\\uFF5B-\\uFF65\\uFFBF-\\uFFC1\\uFFC8\\uFFC9\\uFFD0\\uFFD1\\uFFD8\\uFFD9\\uFFDD-\\uFFFF]|\\uD800[\\uDC0C\\uDC27\\uDC3B\\uDC3E\\uDC4E\\uDC4F\\uDC5E-\\uDC7F\\uDCFB-\\uDD3F\\uDD75-\\uDDFC\\uDDFE-\\uDE7F\\uDE9D-\\uDE9F\\uDED1-\\uDEDF\\uDEE1-\\uDEFF\\uDF20-\\uDF2C\\uDF4B-\\uDF4F\\uDF7B-\\uDF7F\\uDF9E\\uDF9F\\uDFC4-\\uDFC7\\uDFD0\\uDFD6-\\uDFFF]|\\uD801[\\uDC9E\\uDC9F\\uDCAA-\\uDCAF\\uDCD4-\\uDCD7\\uDCFC-\\uDCFF\\uDD28-\\uDD2F\\uDD64-\\uDDFF\\uDF37-\\uDF3F\\uDF56-\\uDF5F\\uDF68-\\uDFFF]|\\uD802[\\uDC06\\uDC07\\uDC09\\uDC36\\uDC39-\\uDC3B\\uDC3D\\uDC3E\\uDC56-\\uDC5F\\uDC77-\\uDC7F\\uDC9F-\\uDCDF\\uDCF3\\uDCF6-\\uDCFF\\uDD16-\\uDD1F\\uDD3A-\\uDD7F\\uDDB8-\\uDDBD\\uDDC0-\\uDDFF\\uDE04\\uDE07-\\uDE0B\\uDE14\\uDE18\\uDE36\\uDE37\\uDE3B-\\uDE3E\\uDE40-\\uDE5F\\uDE7D-\\uDE7F\\uDE9D-\\uDEBF\\uDEC8\\uDEE7-\\uDEFF\\uDF36-\\uDF3F\\uDF56-\\uDF5F\\uDF73-\\uDF7F\\uDF92-\\uDFFF]|\\uD803[\\uDC49-\\uDC7F\\uDCB3-\\uDCBF\\uDCF3-\\uDCFF\\uDD28-\\uDD2F\\uDD3A-\\uDE7F\\uDEAA\\uDEAD-\\uDEAF\\uDEB2-\\uDEFF\\uDF1D-\\uDF26\\uDF28-\\uDF2F\\uDF51-\\uDFAF\\uDFC5-\\uDFDF\\uDFF7-\\uDFFF]|\\uD804[\\uDC47-\\uDC65\\uDC70-\\uDC7E\\uDCBB-\\uDCCF\\uDCE9-\\uDCEF\\uDCFA-\\uDCFF\\uDD35\\uDD40-\\uDD43\\uDD48-\\uDD4F\\uDD74\\uDD75\\uDD77-\\uDD7F\\uDDC5-\\uDDC8\\uDDCD\\uDDDB\\uDDDD-\\uDDFF\\uDE12\\uDE38-\\uDE3D\\uDE3F-\\uDE7F\\uDE87\\uDE89\\uDE8E\\uDE9E\\uDEA9-\\uDEAF\\uDEEB-\\uDEEF\\uDEFA-\\uDEFF\\uDF04\\uDF0D\\uDF0E\\uDF11\\uDF12\\uDF29\\uDF31\\uDF34\\uDF3A\\uDF45\\uDF46\\uDF49\\uDF4A\\uDF4E\\uDF4F\\uDF51-\\uDF56\\uDF58-\\uDF5C\\uDF64\\uDF65\\uDF6D-\\uDF6F\\uDF75-\\uDFFF]|\\uD805[\\uDC4B-\\uDC4F\\uDC5A-\\uDC5D\\uDC62-\\uDC7F\\uDCC6\\uDCC8-\\uDCCF\\uDCDA-\\uDD7F\\uDDB6\\uDDB7\\uDDC1-\\uDDD7\\uDDDE-\\uDDFF\\uDE41-\\uDE43\\uDE45-\\uDE4F\\uDE5A-\\uDE7F\\uDEB9-\\uDEBF\\uDECA-\\uDEFF\\uDF1B\\uDF1C\\uDF2C-\\uDF2F\\uDF3A-\\uDFFF]|\\uD806[\\uDC3B-\\uDC9F\\uDCEA-\\uDCFE\\uDD07\\uDD08\\uDD0A\\uDD0B\\uDD14\\uDD17\\uDD36\\uDD39\\uDD3A\\uDD44-\\uDD4F\\uDD5A-\\uDD9F\\uDDA8\\uDDA9\\uDDD8\\uDDD9\\uDDE2\\uDDE5-\\uDDFF\\uDE3F-\\uDE46\\uDE48-\\uDE4F\\uDE9A-\\uDE9C\\uDE9E-\\uDEBF\\uDEF9-\\uDFFF]|\\uD807[\\uDC09\\uDC37\\uDC41-\\uDC4F\\uDC5A-\\uDC71\\uDC90\\uDC91\\uDCA8\\uDCB7-\\uDCFF\\uDD07\\uDD0A\\uDD37-\\uDD39\\uDD3B\\uDD3E\\uDD48-\\uDD4F\\uDD5A-\\uDD5F\\uDD66\\uDD69\\uDD8F\\uDD92\\uDD99-\\uDD9F\\uDDAA-\\uDEDF\\uDEF7-\\uDFAF\\uDFB1-\\uDFFF]|\\uD808[\\uDF9A-\\uDFFF]|\\uD809[\\uDC6F-\\uDC7F\\uDD44-\\uDFFF]|[\\uD80A\\uD80B\\uD80E-\\uD810\\uD812-\\uD819\\uD824-\\uD82B\\uD82D\\uD82E\\uD830-\\uD833\\uD837\\uD839\\uD83D\\uD83F\\uD87B-\\uD87D\\uD87F\\uD885-\\uDB3F\\uDB41-\\uDBFF][\\uDC00-\\uDFFF]|\\uD80D[\\uDC2F-\\uDFFF]|\\uD811[\\uDE47-\\uDFFF]|\\uD81A[\\uDE39-\\uDE3F\\uDE5F\\uDE6A-\\uDECF\\uDEEE\\uDEEF\\uDEF5-\\uDEFF\\uDF37-\\uDF3F\\uDF44-\\uDF4F\\uDF5A-\\uDF62\\uDF78-\\uDF7C\\uDF90-\\uDFFF]|\\uD81B[\\uDC00-\\uDE3F\\uDE80-\\uDEFF\\uDF4B-\\uDF4E\\uDF88-\\uDF8E\\uDFA0-\\uDFDF\\uDFE2\\uDFE5-\\uDFEF\\uDFF2-\\uDFFF]|\\uD821[\\uDFF8-\\uDFFF]|\\uD823[\\uDCD6-\\uDCFF\\uDD09-\\uDFFF]|\\uD82C[\\uDD1F-\\uDD4F\\uDD53-\\uDD63\\uDD68-\\uDD6F\\uDEFC-\\uDFFF]|\\uD82F[\\uDC6B-\\uDC6F\\uDC7D-\\uDC7F\\uDC89-\\uDC8F\\uDC9A-\\uDC9C\\uDC9F-\\uDFFF]|\\uD834[\\uDC00-\\uDD64\\uDD6A-\\uDD6C\\uDD73-\\uDD7A\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDE41\\uDE45-\\uDFFF]|\\uD835[\\uDC55\\uDC9D\\uDCA0\\uDCA1\\uDCA3\\uDCA4\\uDCA7\\uDCA8\\uDCAD\\uDCBA\\uDCBC\\uDCC4\\uDD06\\uDD0B\\uDD0C\\uDD15\\uDD1D\\uDD3A\\uDD3F\\uDD45\\uDD47-\\uDD49\\uDD51\\uDEA6\\uDEA7\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3\\uDFCC\\uDFCD]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85-\\uDE9A\\uDEA0\\uDEB0-\\uDFFF]|\\uD838[\\uDC07\\uDC19\\uDC1A\\uDC22\\uDC25\\uDC2B-\\uDCFF\\uDD2D-\\uDD2F\\uDD3E\\uDD3F\\uDD4A-\\uDD4D\\uDD4F-\\uDEBF\\uDEFA-\\uDFFF]|\\uD83A[\\uDCC5-\\uDCCF\\uDCD7-\\uDCFF\\uDD4C-\\uDD4F\\uDD5A-\\uDFFF]|\\uD83B[\\uDC00-\\uDDFF\\uDE04\\uDE20\\uDE23\\uDE25\\uDE26\\uDE28\\uDE33\\uDE38\\uDE3A\\uDE3C-\\uDE41\\uDE43-\\uDE46\\uDE48\\uDE4A\\uDE4C\\uDE50\\uDE53\\uDE55\\uDE56\\uDE58\\uDE5A\\uDE5C\\uDE5E\\uDE60\\uDE63\\uDE65\\uDE66\\uDE6B\\uDE73\\uDE78\\uDE7D\\uDE7F\\uDE8A\\uDE9C-\\uDEA0\\uDEA4\\uDEAA\\uDEBC-\\uDFFF]|\\uD83C[\\uDC00-\\uDD2F\\uDD4A-\\uDD4F\\uDD6A-\\uDD6F\\uDD8A-\\uDFFF]|\\uD83E[\\uDC00-\\uDFEF\\uDFFA-\\uDFFF]|\\uD869[\\uDEDE-\\uDEFF]|\\uD86D[\\uDF35-\\uDF3F]|\\uD86E[\\uDC1E\\uDC1F]|\\uD873[\\uDEA2-\\uDEAF]|\\uD87A[\\uDFE1-\\uDFFF]|\\uD87E[\\uDE1E-\\uDFFF]|\\uD884[\\uDF4B-\\uDFFF]|\\uDB40[\\uDC00-\\uDCFF\\uDDF0-\\uDFFF]/g\n","import { regex } from './regex.js'\n\nconst own = Object.hasOwnProperty\n\n/**\n * Slugger.\n */\nexport default class BananaSlug {\n /**\n * Create a new slug class.\n */\n constructor () {\n /** @type {Record} */\n // eslint-disable-next-line no-unused-expressions\n this.occurrences\n\n this.reset()\n }\n\n /**\n * Generate a unique slug.\n *\n * Tracks previously generated slugs: repeated calls with the same value\n * will result in different slugs.\n * Use the `slug` function to get same slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\n slug (value, maintainCase) {\n const self = this\n let result = slug(value, maintainCase === true)\n const originalSlug = result\n\n while (own.call(self.occurrences, result)) {\n self.occurrences[originalSlug]++\n result = originalSlug + '-' + self.occurrences[originalSlug]\n }\n\n self.occurrences[result] = 0\n\n return result\n }\n\n /**\n * Reset - Forget all previous slugs\n *\n * @return void\n */\n reset () {\n this.occurrences = Object.create(null)\n }\n}\n\n/**\n * Generate a slug.\n *\n * Does not track previously generated slugs: repeated calls with the same value\n * will result in the exact same slug.\n * Use the `GithubSlugger` class to get unique slugs.\n *\n * @param {string} value\n * String of text to slugify\n * @param {boolean} [maintainCase=false]\n * Keep the current case, otherwise make all lowercase\n * @return {string}\n * A unique slug string\n */\nexport function slug (value, maintainCase) {\n if (typeof value !== 'string') return ''\n if (!maintainCase) value = value.toLowerCase()\n return value.replace(regex, '').replace(/ /g, '-')\n}\n","/**\n * @typedef {import('hast').Nodes} Nodes\n */\n\n/**\n * Get the rank (`1` to `6`) of headings (`h1` to `h6`).\n *\n * @param {Nodes} node\n * Node to check.\n * @returns {number | undefined}\n * Rank of the heading or `undefined` if not a heading.\n */\nexport function headingRank(node) {\n const name = node.type === 'element' ? node.tagName.toLowerCase() : ''\n const code =\n name.length === 2 && name.charCodeAt(0) === 104 /* `h` */\n ? name.charCodeAt(1)\n : 0\n return code > 48 /* `0` */ && code < 55 /* `7` */\n ? code - 48 /* `0` */\n : undefined\n}\n","/**\n * @typedef {import('hast').Root} Root\n */\n\n/**\n * @typedef Options\n * Configuration (optional).\n * @property {string} [prefix='']\n * Prefix to add in front of `id`s (default: `''`).\n */\n\nimport GithubSlugger from 'github-slugger'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {toString} from 'hast-util-to-string'\nimport {visit} from 'unist-util-visit'\n\n/** @type {Options} */\nconst emptyOptions = {}\nconst slugs = new GithubSlugger()\n\n/**\n * Add `id`s to headings.\n *\n * @param {Options | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeSlug(options) {\n const settings = options || emptyOptions\n const prefix = settings.prefix || ''\n\n /**\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n slugs.reset()\n\n visit(tree, 'element', function (node) {\n if (headingRank(node) && !node.properties.id) {\n node.properties.id = prefix + slugs.slug(toString(node))\n }\n })\n }\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').Parents} Parents\n */\n\n/**\n * @template Fn\n * @template Fallback\n * @typedef {Fn extends (value: any) => value is infer Thing ? Thing : Fallback} Predicate\n */\n\n/**\n * @callback Check\n * Check that an arbitrary value is an element.\n * @param {unknown} this\n * Context object (`this`) to call `test` with\n * @param {unknown} [element]\n * Anything (typically a node).\n * @param {number | null | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | null | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean}\n * Whether this is an element and passes a test.\n *\n * @typedef {Array | TestFunction | string | null | undefined} Test\n * Check for an arbitrary element.\n *\n * * when `string`, checks that the element has that tag name\n * * when `function`, see `TestFunction`\n * * when `Array`, checks if one of the subtests pass\n *\n * @callback TestFunction\n * Check if an element passes a test.\n * @param {unknown} this\n * The given context.\n * @param {Element} element\n * An element.\n * @param {number | undefined} [index]\n * Position of `element` in its parent.\n * @param {Parents | undefined} [parent]\n * Parent of `element`.\n * @returns {boolean | undefined | void}\n * Whether this element passes the test.\n *\n * Note: `void` is included until TS sees no return as `undefined`.\n */\n\n/**\n * Check if `element` is an `Element` and whether it passes the given test.\n *\n * @param element\n * Thing to check, typically `element`.\n * @param test\n * Check for a specific element.\n * @param index\n * Position of `element` in its parent.\n * @param parent\n * Parent of `element`.\n * @param context\n * Context object (`this`) to call `test` with.\n * @returns\n * Whether `element` is an `Element` and passes a test.\n * @throws\n * When an incorrect `test`, `index`, or `parent` is given; there is no error\n * thrown when `element` is not a node or not an element.\n */\nexport const isElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((element: unknown, test: Condition, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((element?: null | undefined) => false) &\n * ((element: unknown, test?: null | undefined, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((element: unknown, test?: Test, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => boolean)\n * )}\n */\n (\n /**\n * @param {unknown} [element]\n * @param {Test | undefined} [test]\n * @param {number | null | undefined} [index]\n * @param {Parents | null | undefined} [parent]\n * @param {unknown} [context]\n * @returns {boolean}\n */\n // eslint-disable-next-line max-params\n function (element, test, index, parent, context) {\n const check = convertElement(test)\n\n if (\n index !== null &&\n index !== undefined &&\n (typeof index !== 'number' ||\n index < 0 ||\n index === Number.POSITIVE_INFINITY)\n ) {\n throw new Error('Expected positive finite `index`')\n }\n\n if (\n parent !== null &&\n parent !== undefined &&\n (!parent.type || !parent.children)\n ) {\n throw new Error('Expected valid `parent`')\n }\n\n if (\n (index === null || index === undefined) !==\n (parent === null || parent === undefined)\n ) {\n throw new Error('Expected both `index` and `parent`')\n }\n\n return looksLikeAnElement(element)\n ? check.call(context, element, index, parent)\n : false\n }\n )\n\n/**\n * Generate a check from a test.\n *\n * Useful if you’re going to test many nodes, for example when creating a\n * utility where something else passes a compatible test.\n *\n * The created function is a bit faster because it expects valid input only:\n * an `element`, `index`, and `parent`.\n *\n * @param test\n * A test for a specific element.\n * @returns\n * A check.\n */\nexport const convertElement =\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & Predicate) &\n * ((test: Condition) => (element: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element & {tagName: Condition}) &\n * ((test?: null | undefined) => (element?: unknown, index?: number | null | undefined, parent?: Parents | null | undefined, context?: unknown) => element is Element) &\n * ((test?: Test) => Check)\n * )}\n */\n (\n /**\n * @param {Test | null | undefined} [test]\n * @returns {Check}\n */\n function (test) {\n if (test === null || test === undefined) {\n return element\n }\n\n if (typeof test === 'string') {\n return tagNameFactory(test)\n }\n\n // Assume array.\n if (typeof test === 'object') {\n return anyFactory(test)\n }\n\n if (typeof test === 'function') {\n return castFactory(test)\n }\n\n throw new Error('Expected function, string, or array as `test`')\n }\n )\n\n/**\n * Handle multiple tests.\n *\n * @param {Array} tests\n * @returns {Check}\n */\nfunction anyFactory(tests) {\n /** @type {Array} */\n const checks = []\n let index = -1\n\n while (++index < tests.length) {\n checks[index] = convertElement(tests[index])\n }\n\n return castFactory(any)\n\n /**\n * @this {unknown}\n * @type {TestFunction}\n */\n function any(...parameters) {\n let index = -1\n\n while (++index < checks.length) {\n if (checks[index].apply(this, parameters)) return true\n }\n\n return false\n }\n}\n\n/**\n * Turn a string into a test for an element with a certain type.\n *\n * @param {string} check\n * @returns {Check}\n */\nfunction tagNameFactory(check) {\n return castFactory(tagName)\n\n /**\n * @param {Element} element\n * @returns {boolean}\n */\n function tagName(element) {\n return element.tagName === check\n }\n}\n\n/**\n * Turn a custom test into a test for an element that passes that test.\n *\n * @param {TestFunction} testFunction\n * @returns {Check}\n */\nfunction castFactory(testFunction) {\n return check\n\n /**\n * @this {unknown}\n * @type {Check}\n */\n function check(value, index, parent) {\n return Boolean(\n looksLikeAnElement(value) &&\n testFunction.call(\n this,\n value,\n typeof index === 'number' ? index : undefined,\n parent || undefined\n )\n )\n }\n}\n\n/**\n * Make sure something is an element.\n *\n * @param {unknown} element\n * @returns {element is Element}\n */\nfunction element(element) {\n return Boolean(\n element &&\n typeof element === 'object' &&\n 'type' in element &&\n element.type === 'element' &&\n 'tagName' in element &&\n typeof element.tagName === 'string'\n )\n}\n\n/**\n * @param {unknown} value\n * @returns {value is Element}\n */\nfunction looksLikeAnElement(value) {\n return (\n value !== null &&\n typeof value === 'object' &&\n 'type' in value &&\n 'tagName' in value\n )\n}\n","/**\n * @typedef {import('hast').Element} Element\n * @typedef {import('hast').ElementContent} ElementContent\n * @typedef {import('hast').Properties} Properties\n * @typedef {import('hast').Root} Root\n *\n * @typedef {import('hast-util-is-element').Test} Test\n */\n\n/**\n * @typedef {'after' | 'append' | 'before' | 'prepend' | 'wrap'} Behavior\n * Behavior.\n *\n * @callback Build\n * Generate content.\n * @param {Readonly} element\n * Current heading.\n * @returns {Array | ElementContent}\n * Content.\n *\n * @callback BuildProperties\n * Generate properties.\n * @param {Readonly} element\n * Current heading.\n * @returns {Properties}\n * Properties.\n *\n * @typedef Options\n * Configuration.\n * @property {Behavior | null | undefined} [behavior='prepend']\n * How to create links (default: `'prepend'`).\n * @property {Readonly | ReadonlyArray | Build | null | undefined} [content]\n * Content to insert in the link (default: if `'wrap'` then `undefined`,\n * otherwise ``);\n * if `behavior` is `'wrap'` and `Build` is passed, its result replaces the\n * existing content, otherwise the content is added after existing content.\n * @property {Readonly | ReadonlyArray | Build | null | undefined} [group]\n * Content to wrap the heading and link with, if `behavior` is `'after'` or\n * `'before'` (optional).\n * @property {Readonly | BuildProperties | null | undefined} [headingProperties]\n * Extra properties to set on the heading (optional).\n * @property {Readonly | BuildProperties | null | undefined} [properties]\n * Extra properties to set on the link when injecting (default:\n * `{ariaHidden: true, tabIndex: -1}` if `'append'` or `'prepend'`, otherwise\n * `undefined`).\n * @property {Test | null | undefined} [test]\n * Extra test for which headings are linked (optional).\n */\n\n/**\n * @template T\n * Kind.\n * @typedef {(\n * T extends Record\n * ? {-readonly [k in keyof T]: Cloneable}\n * : T\n * )} Cloneable\n * Deep clone.\n *\n * See: \n */\n\nimport structuredClone from '@ungap/structured-clone'\nimport {headingRank} from 'hast-util-heading-rank'\nimport {convertElement} from 'hast-util-is-element'\nimport {SKIP, visit} from 'unist-util-visit'\n\n/** @type {Element} */\nconst contentDefaults = {\n type: 'element',\n tagName: 'span',\n properties: {className: ['icon', 'icon-link']},\n children: []\n}\n\n/** @type {Options} */\nconst emptyOptions = {}\n\n/**\n * Add links from headings back to themselves.\n *\n * ###### Notes\n *\n * This plugin only applies to headings with `id`s.\n * Use `rehype-slug` to generate `id`s for headings that don’t have them.\n *\n * Several behaviors are supported:\n *\n * * `'prepend'` (default) — inject link before the heading text\n * * `'append'` — inject link after the heading text\n * * `'wrap'` — wrap the whole heading text with the link\n * * `'before'` — insert link before the heading\n * * `'after'` — insert link after the heading\n *\n * @param {Readonly | null | undefined} [options]\n * Configuration (optional).\n * @returns\n * Transform.\n */\nexport default function rehypeAutolinkHeadings(options) {\n const settings = options || emptyOptions\n let properties = settings.properties\n const headingOroperties = settings.headingProperties\n const behavior = settings.behavior || 'prepend'\n const content = settings.content\n const group = settings.group\n const is = convertElement(settings.test)\n\n /** @type {import('unist-util-visit').Visitor} */\n let method\n\n if (behavior === 'after' || behavior === 'before') {\n method = around\n } else if (behavior === 'wrap') {\n method = wrap\n } else {\n method = inject\n\n if (!properties) {\n properties = {ariaHidden: 'true', tabIndex: -1}\n }\n }\n\n /**\n * Transform.\n *\n * @param {Root} tree\n * Tree.\n * @returns {undefined}\n * Nothing.\n */\n return function (tree) {\n visit(tree, 'element', function (node, index, parent) {\n if (headingRank(node) && node.properties.id && is(node, index, parent)) {\n Object.assign(node.properties, toProperties(headingOroperties, node))\n return method(node, index, parent)\n }\n })\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function inject(node) {\n const children = toChildren(content || contentDefaults, node)\n node.children[behavior === 'prepend' ? 'unshift' : 'push'](\n create(node, toProperties(properties, node), children)\n )\n\n return [SKIP]\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function around(node, index, parent) {\n /* c8 ignore next -- uncommon */\n if (typeof index !== 'number' || !parent) return\n\n const children = toChildren(content || contentDefaults, node)\n const link = create(node, toProperties(properties, node), children)\n let nodes = behavior === 'before' ? [link, node] : [node, link]\n\n if (group) {\n const grouping = toNode(group, node)\n\n if (grouping && !Array.isArray(grouping) && grouping.type === 'element') {\n grouping.children = nodes\n nodes = [grouping]\n }\n }\n\n parent.children.splice(index, 1, ...nodes)\n\n return [SKIP, index + nodes.length]\n }\n\n /** @type {import('unist-util-visit').Visitor} */\n function wrap(node) {\n /** @type {Array} */\n let before = node.children\n /** @type {Array | ElementContent} */\n let after = []\n\n if (typeof content === 'function') {\n before = []\n after = content(node)\n } else if (content) {\n after = clone(content)\n }\n\n node.children = [\n create(\n node,\n toProperties(properties, node),\n Array.isArray(after) ? [...before, ...after] : [...before, after]\n )\n ]\n\n return [SKIP]\n }\n}\n\n/**\n * Deep clone.\n *\n * @template T\n * Kind.\n * @param {T} thing\n * Thing to clone.\n * @returns {Cloneable}\n * Cloned thing.\n */\nfunction clone(thing) {\n // Cast because it’s mutable now.\n return /** @type {Cloneable} */ (structuredClone(thing))\n}\n\n/**\n * Create an `a`.\n *\n * @param {Readonly} node\n * Related heading.\n * @param {Properties | undefined} properties\n * Properties to set on the link.\n * @param {Array} children\n * Content.\n * @returns {Element}\n * Link.\n */\nfunction create(node, properties, children) {\n return {\n type: 'element',\n tagName: 'a',\n properties: {...properties, href: '#' + node.properties.id},\n children\n }\n}\n\n/**\n * Turn into children.\n *\n * @param {Readonly | ReadonlyArray | Build} value\n * Content.\n * @param {Readonly} node\n * Related heading.\n * @returns {Array}\n * Children.\n */\nfunction toChildren(value, node) {\n const result = toNode(value, node)\n return Array.isArray(result) ? result : [result]\n}\n\n/**\n * Turn into a node.\n *\n * @param {Readonly | ReadonlyArray | Build} value\n * Content.\n * @param {Readonly} node\n * Related heading.\n * @returns {Array | ElementContent}\n * Node.\n */\nfunction toNode(value, node) {\n if (typeof value === 'function') return value(node)\n return clone(value)\n}\n\n/**\n * Turn into properties.\n *\n * @param {Readonly | BuildProperties | null | undefined} value\n * Properties.\n * @param {Readonly} node\n * Related heading.\n * @returns {Properties}\n * Properties.\n */\nfunction toProperties(value, node) {\n if (typeof value === 'function') return value(node)\n return value ? clone(value) : {}\n}\n","export var octiconLink = {\n type: 'element',\n tagName: 'svg',\n properties: {\n className: 'octicon octicon-link',\n viewBox: '0 0 16 16',\n version: '1.1',\n width: '16',\n height: '16',\n ariaHidden: 'true'\n },\n children: [{\n type: 'element',\n tagName: 'path',\n children: [],\n properties: {\n fillRule: 'evenodd',\n d: 'M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'\n }\n }]\n};","import _extends from \"@babel/runtime/helpers/extends\";\nimport slug from 'rehype-slug';\nimport headings from 'rehype-autolink-headings';\nimport rehypeIgnore from 'rehype-ignore';\nimport { getCodeString } from 'rehype-rewrite';\nimport { octiconLink } from './nodes/octiconLink';\nimport { copyElement } from './nodes/copy';\nexport var rehypeRewriteHandle = (disableCopy, rewrite) => (node, index, parent) => {\n if (node.type === 'element' && parent && parent.type === 'root' && /h(1|2|3|4|5|6)/.test(node.tagName)) {\n var child = node.children && node.children[0];\n if (child && child.properties && child.properties.ariaHidden === 'true') {\n child.properties = _extends({\n class: 'anchor'\n }, child.properties);\n child.children = [octiconLink];\n }\n }\n if (node.type === 'element' && node.tagName === 'pre' && !disableCopy) {\n var code = getCodeString(node.children);\n node.children.push(copyElement(code));\n }\n rewrite && rewrite(node, index === null ? undefined : index, parent === null ? undefined : parent);\n};\nexport var defaultRehypePlugins = [slug, headings, rehypeIgnore];","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from 'react';\nimport rehypePrism from 'rehype-prism-plus';\nimport rehypeRewrite from 'rehype-rewrite';\nimport rehypeAttrs from 'rehype-attr';\nimport rehypeRaw from 'rehype-raw';\nimport MarkdownPreview from './preview';\nimport { reservedMeta } from './plugins/reservedMeta';\nimport { retrieveMeta } from './plugins/retrieveMeta';\nimport { rehypeRewriteHandle, defaultRehypePlugins } from './rehypePlugins';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport * from './Props';\nexport default /*#__PURE__*/React.forwardRef((props, ref) => {\n var _props$disableCopy;\n var rehypePlugins = [reservedMeta, rehypeRaw, retrieveMeta, ...defaultRehypePlugins, [rehypeRewrite, {\n rewrite: rehypeRewriteHandle((_props$disableCopy = props.disableCopy) != null ? _props$disableCopy : false, props.rehypeRewrite)\n }], [rehypeAttrs, {\n properties: 'attr'\n }], ...(props.rehypePlugins || []), [rehypePrism, {\n ignoreMissing: true\n }]];\n return /*#__PURE__*/_jsx(MarkdownPreview, _extends({}, props, {\n rehypePlugins: rehypePlugins,\n ref: ref\n }));\n});","export function copyElement(str) {\n if (str === void 0) {\n str = '';\n }\n return {\n type: 'element',\n tagName: 'div',\n properties: {\n class: 'copied',\n 'data-code': str\n },\n children: [{\n type: 'element',\n tagName: 'svg',\n properties: {\n className: 'octicon-copy',\n ariaHidden: 'true',\n viewBox: '0 0 16 16',\n fill: 'currentColor',\n height: 12,\n width: 12\n },\n children: [{\n type: 'element',\n tagName: 'path',\n properties: {\n fillRule: 'evenodd',\n d: 'M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 010 1.5h-1.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-1.5a.75.75 0 011.5 0v1.5A1.75 1.75 0 019.25 16h-7.5A1.75 1.75 0 010 14.25v-7.5z'\n },\n children: []\n }, {\n type: 'element',\n tagName: 'path',\n properties: {\n fillRule: 'evenodd',\n d: 'M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0114.25 11h-7.5A1.75 1.75 0 015 9.25v-7.5zm1.75-.25a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 00.25-.25v-7.5a.25.25 0 00-.25-.25h-7.5z'\n },\n children: []\n }]\n }, {\n type: 'element',\n tagName: 'svg',\n properties: {\n className: 'octicon-check',\n ariaHidden: 'true',\n viewBox: '0 0 16 16',\n fill: 'currentColor',\n height: 12,\n width: 12\n },\n children: [{\n type: 'element',\n tagName: 'path',\n properties: {\n fillRule: 'evenodd',\n d: 'M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z'\n },\n children: []\n }]\n }]\n };\n}","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"href\", \"anchor\", \"imgSrc\", \"platform\", \"type\", \"user\", \"repo\", \"base\", \"children\"];\nimport React from 'react';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport var Internal = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n href,\n anchor = {},\n imgSrc\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n if (href) {\n return /*#__PURE__*/_jsx(\"a\", _extends({}, anchor, {\n href: href,\n children: /*#__PURE__*/_jsx(\"img\", _extends({\n alt: \"\",\n ref: ref,\n src: imgSrc\n }, other))\n }));\n }\n return /*#__PURE__*/_jsx(\"img\", _extends({\n alt: \"\",\n ref: ref,\n src: imgSrc\n }, other));\n});\nInternal.displayName = 'Internal';","import _extends from \"@babel/runtime/helpers/extends\";\nimport React from 'react';\nexport default function Container(props) {\n return React.Children.toArray(props.children).map(child => {\n if (! /*#__PURE__*/React.isValidElement(child)) return null;\n return /*#__PURE__*/React.cloneElement(child, _extends({}, props, child.props));\n });\n}\nContainer.displayName = 'Container';","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"base\", \"platform\", \"type\", \"scope\", \"packageName\", \"dependency\", \"dependencyScope\", \"version\", \"registryUri\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\n\n/**\n * NPM Version\n *\n * `/npm/v/:packageName`\n * npm: npm badge\n *\n * `/npm/v/:scope/:packageName`\n * npm (scoped): npm (scoped) badge\n *\n * `/npm/v/:packageName/:tag`\n * npm (tag): npm (tag) badge\n *\n * `/npm/v/:packageName/:tag?registry_uri=https%3A%2F%2Fregistry.npmjs.com`\n * npm (custom registry): npm (custom registry) badge\n *\n * `/npm/v/:scope/:packageName/:tag`\n * npm (scoped with tag): npm (scoped with tag) badge\n *\n * `/npm/dependency-version/:packageName/peer/:dependency`\n * npm peer dependency version: npm peer dependency version badge\n *\n * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency`\n * npm peer dependency version (scoped): npm peer dependency version (scoped) badge\n *\n * `/npm/dependency-version/:packageName/dev/:dependency`\n * npm dev dependency version: npm dev dependency version badge\n *\n * `/npm/dependency-version/:scope?/:packageName/dev/:dependencyScope?/:dependency`\n * npm dev dependency version (scoped): npm dev dependency version (scoped) badge\n *\n * `/npm/dependency-version/:packageName/:dependency`\n * npm (prod) dependency version: npm (prod) dependency version badge\n *\n * `/npm/dependency-version/:scope?/:packageName/:dependencyScope?/:dependency`\n * npm (prod) dependency version (scoped): npm (prod) dependency version (scoped) badge\n *\n * `/npm/types/:packageName`\n * npm type definitions: npm type definitions badge\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Version = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n base = 'https://img.shields.io',\n platform = 'npm',\n type = 'version',\n scope,\n packageName,\n dependency,\n dependencyScope,\n version,\n registryUri\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'npm' || !packageName) return '';\n var url = '';\n var baseData = [base, platform];\n if (type === 'version' && packageName) {\n baseData.push('v');\n if (scope) {\n baseData.push(scope);\n }\n baseData.push(packageName);\n if (version) {\n baseData.push(version);\n }\n url = baseData.join('/');\n if (registryUri) {\n url = url + \"?registry_uri=\" + registryUri;\n }\n } else if (type === 'peer-dependency' && packageName && dependency) {\n baseData.push('dependency-version');\n if (scope) {\n baseData.push(scope);\n }\n url = [...baseData, packageName, 'peer', dependency].join('/');\n } else if (type === 'dev-dependency' && packageName && dependency) {\n baseData.push('dependency-version');\n if (scope) {\n baseData.push(scope);\n }\n baseData.concat([packageName, 'dev']);\n if (dependencyScope) {\n baseData.push(dependencyScope);\n }\n baseData.push(dependency);\n url = baseData.join('/');\n } else if (packageName && dependency) {\n baseData.concat([packageName, dependency]);\n url = baseData.join('/');\n }\n return url;\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nVersion.displayName = 'Version';\nexport default Version;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"base\", \"platform\", \"format\", \"packageName\", \"scope\", \"version\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Npm Size\n *\n * `/bundlephobia/:format/:packageName`\n * npm bundle size: npm bundle size badge\n *\n * `/bundlephobia/:format/:scope/:packageName`\n * npm bundle size (scoped): npm bundle size (scoped) badge\n *\n * `/bundlephobia/:format/:packageName/:version`\n * npm bundle size (version): npm bundle size (version) badge\n *\n * `/bundlephobia/:format/:scope/:packageName/:version`\n * npm bundle size (scoped version): npm bundle size (scoped version) badge\n *\n */\nvar Size = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n base = 'https://img.shields.io',\n platform = 'npm',\n format = 'min',\n packageName,\n scope,\n version\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'npm') return '';\n var baseData = [base, 'bundlephobia'];\n var url = '';\n if (packageName && format) {\n url = [...baseData, format, packageName].join('/');\n }\n if (packageName && format && scope) {\n url = [...baseData, format, scope, packageName].join('/');\n }\n if (packageName && format && scope && version) {\n url = [...baseData, format, scope, packageName, version].join('/');\n }\n if (packageName && format && version) {\n url = [...baseData, format, packageName, version].join('/');\n }\n return url;\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nSize.displayName = 'Size';\nexport default Size;","import _extends from \"@babel/runtime/helpers/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nvar _excluded = [\"base\", \"platform\", \"interval\", \"packageName\", \"scope\"];\nimport React from 'react';\nimport { Internal } from '../common/Base';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Npm Downloads\n *\n * `/npm/:interval/:packageName`\n * npm downloads: npm downloads per interval badge\n *\n * `/npm/:interval/:scope/:packageName`\n * npm downloads (scoped): npm downloads per interval (scoped version) badge\n *\n */\nvar Downloads = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n base = 'https://img.shields.io',\n platform = 'npm',\n interval = 'dm',\n packageName,\n scope\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n var getUrl = () => {\n if (platform !== 'npm' || !packageName) return '';\n var url = [base, 'npm', interval];\n if (scope) {\n url.push(scope);\n }\n url.push(packageName);\n return url.join('/');\n };\n return /*#__PURE__*/_jsx(Internal, _extends({\n imgSrc: getUrl(),\n ref: ref\n }, other));\n});\nDownloads.displayName = 'Downloads';\nexport default Downloads;","import _extends from \"@babel/runtime/helpers/extends\";\nimport Container from '../common/Container';\nimport Version from './Version';\nimport Size from './Size';\nimport Downloads from './Downloads';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar Npm = props => /*#__PURE__*/_jsx(Container, _extends({}, props));\nNpm.Version = Version;\nNpm.Size = Size;\nNpm.Downloads = Downloads;\nNpm.displayName = 'Npm';\nexport default Npm;","/**\n * @package @wcj/dark-mode\n * Web Component that toggles dark mode 🌒\n * Github: https://github.com/jaywcjlove/dark-mode.git\n * Website: https://jaywcjlove.github.io/dark-mode\n * \n * Licensed under the MIT license.\n * @license Copyright © 2022. Licensed under the MIT License\n * @author kenny wong \n */\nconst t=document;const e=\"_dark_mode_theme_\";const s=\"permanent\";const o=\"colorschemechange\";const i=\"permanentcolorscheme\";const h=\"light\";const r=\"dark\";const n=(t,e,s=e)=>{Object.defineProperty(t,s,{enumerable:true,get(){const t=this.getAttribute(e);return t===null?\"\":t},set(t){this.setAttribute(e,t)}})};const c=(t,e,s=e)=>{Object.defineProperty(t,s,{enumerable:true,get(){return this.hasAttribute(e)},set(t){if(t){this.setAttribute(e,\"\")}else{this.removeAttribute(e)}}})};class a extends HTMLElement{static get observedAttributes(){return[\"mode\",h,r,s]}LOCAL_NANE=e;constructor(){super();this.t()}connectedCallback(){n(this,\"mode\");n(this,r);n(this,h);c(this,s);const a=localStorage.getItem(e);if(a&&[h,r].includes(a)){this.mode=a;this.permanent=true}if(this.permanent&&!a){localStorage.setItem(e,this.mode)}const l=[h,r].includes(a);if(this.permanent&&a){this.o()}else{if(window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: dark)\").matches){this.mode=r;this.o()}if(window.matchMedia&&window.matchMedia(\"(prefers-color-scheme: light)\").matches){this.mode=h;this.o()}}if(!this.permanent&&!l){window.matchMedia(\"(prefers-color-scheme: light)\").onchange=t=>{this.mode=t.matches?h:r;this.o()};window.matchMedia(\"(prefers-color-scheme: dark)\").onchange=t=>{this.mode=t.matches?r:h;this.o()}}const d=new MutationObserver(((s,h)=>{this.mode=t.documentElement.dataset.colorMode;if(this.permanent&&l){localStorage.setItem(e,this.mode);this.i(i,{permanent:this.permanent})}this.h();this.i(o,{colorScheme:this.mode})}));d.observe(t.documentElement,{attributes:true});this.i(o,{colorScheme:this.mode});this.h()}attributeChangedCallback(t,s,o){if(t===\"mode\"&&s!==o&&[h,r].includes(o)){const t=localStorage.getItem(e);if(this.mode===t){this.mode=o;this.h();this.o()}else if(this.mode&&this.mode!==t){this.h();this.o()}}else if((t===h||t===r)&&s!==o){this.h()}if(t===\"permanent\"&&typeof this.permanent===\"boolean\"){this.permanent?localStorage.setItem(e,this.mode):localStorage.removeItem(e)}}o(){t.documentElement.setAttribute(\"data-color-mode\",this.mode)}h(){this.icon.textContent=this.mode===h?\"🌒\":\"🌞\";this.text.textContent=this.mode===h?this.getAttribute(r):this.getAttribute(h);if(!this.text.textContent&&this.text.parentElement&&this.text){this.text.parentElement.removeChild(this.text)}}t(){var s=this.attachShadow({mode:\"open\"});this.label=t.createElement(\"span\");this.label.setAttribute(\"class\",\"wrapper\");this.label.onclick=()=>{this.mode=this.mode===h?r:h;if(this.permanent){localStorage.setItem(e,this.mode)}this.o();this.h()};s.appendChild(this.label);this.icon=t.createElement(\"span\");this.label.appendChild(this.icon);this.text=t.createElement(\"span\");this.label.appendChild(this.text);const o=`\\n[data-color-mode*='dark'], [data-color-mode*='dark'] body {\\n color-scheme: dark;\\n --color-theme-bg: #0d1117;\\n --color-theme-text: #c9d1d9;\\n background-color: var(--color-theme-bg);\\n color: var(--color-theme-text);\\n}\\n\\n[data-color-mode*='light'], [data-color-mode*='light'] body {\\n color-scheme: light;\\n --color-theme-bg: #fff;\\n --color-theme-text: #24292f;\\n background-color: var(--color-theme-bg);\\n color: var(--color-theme-text);\\n}`;const i=\"_dark_mode_style_\";const n=t.getElementById(i);if(!n){var c=t.createElement(\"style\");c.id=i;c.textContent=o;t.head.appendChild(c)}var a=t.createElement(\"style\");a.textContent=`\\n .wrapper { cursor: pointer; user-select: none; position: relative; }\\n .wrapper > span + span { margin-left: .4rem; }\\n `;s.appendChild(a)}i(t,e){this.dispatchEvent(new CustomEvent(t,{bubbles:true,composed:true,detail:e}))}}customElements.define(\"dark-mode\",a);","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = _default;\nfunction _default() {\n return {\n name: 'transform-remove-imports',\n visitor: {\n // https://babeljs.io/docs/en/babel-types#callexpression\n CallExpression: function CallExpression(path, state) {\n var node = path.node;\n if (node.callee.name !== 'require') {\n return;\n }\n var argument = node.arguments[0];\n var moduleId = argument.value;\n var options = state.opts;\n if (options.test && !testMatches(moduleId, options.test)) {\n return;\n }\n var parentType = path.parentPath.node.type;\n\n // In remove effects mode we should delete only requires that are\n // simple expression statements\n if (options.remove === 'effects' && parentType !== 'ExpressionStatement') {\n return;\n }\n path.remove();\n },\n // https://babeljs.io/docs/en/babel-types#importdeclaration\n ImportDeclaration: function ImportDeclaration(path, state) {\n var node = path.node;\n var source = node.source;\n var opts = state.opts;\n if (opts.removeAll) {\n path.remove();\n return;\n }\n if (!opts.test) {\n console.warn('transform-remove-imports: \"test\" option should be specified');\n return;\n }\n\n /** @var {string} importName */\n var importName = source && source.value ? source.value : undefined;\n var isMatch = testMatches(importName, opts.test);\n\n // https://github.com/uiwjs/babel-plugin-transform-remove-imports/issues/3\n if (opts.remove === 'effects') {\n if (node.specifiers && node.specifiers.length === 0 && importName && isMatch) {\n path.remove();\n }\n return;\n }\n if (importName && isMatch) {\n path.remove();\n }\n }\n }\n };\n}\n\n/**\n * Determines if the import matches the specified tests.\n *\n * @param {string} importName\n * @param {RegExp|RegExp[]|string|string[]} test\n * @returns {Boolean}\n */\nfunction testMatches(importName, test) {\n // Normalizing tests\n var tests = Array.isArray(test) ? test : [test];\n\n // Finding out if at least one test matches\n return tests.some(function (regex) {\n if (typeof regex === 'string') {\n regex = new RegExp(regex);\n }\n return regex.test(importName || '');\n });\n}","module.exports = {\n\ttrueFunc: function trueFunc(){\n\t\treturn true;\n\t},\n\tfalseFunc: function falseFunc(){\n\t\treturn false;\n\t}\n};","'use strict';\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar defineProperty = Object.defineProperty;\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nvar isArray = function isArray(arr) {\n\tif (typeof Array.isArray === 'function') {\n\t\treturn Array.isArray(arr);\n\t}\n\n\treturn toStr.call(arr) === '[object Array]';\n};\n\nvar isPlainObject = function isPlainObject(obj) {\n\tif (!obj || toStr.call(obj) !== '[object Object]') {\n\t\treturn false;\n\t}\n\n\tvar hasOwnConstructor = hasOwn.call(obj, 'constructor');\n\tvar hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf');\n\t// Not own constructor property must be Object\n\tif (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) {\n\t\treturn false;\n\t}\n\n\t// Own properties are enumerated firstly, so to speed up,\n\t// if last one is own, then all properties are own.\n\tvar key;\n\tfor (key in obj) { /**/ }\n\n\treturn typeof key === 'undefined' || hasOwn.call(obj, key);\n};\n\n// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target\nvar setProperty = function setProperty(target, options) {\n\tif (defineProperty && options.name === '__proto__') {\n\t\tdefineProperty(target, options.name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\t\t\tvalue: options.newValue,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\ttarget[options.name] = options.newValue;\n\t}\n};\n\n// Return undefined instead of __proto__ if '__proto__' is not an own property\nvar getProperty = function getProperty(obj, name) {\n\tif (name === '__proto__') {\n\t\tif (!hasOwn.call(obj, name)) {\n\t\t\treturn void 0;\n\t\t} else if (gOPD) {\n\t\t\t// In early versions of node, obj['__proto__'] is buggy when obj has\n\t\t\t// __proto__ as an own property. Object.getOwnPropertyDescriptor() works.\n\t\t\treturn gOPD(obj, name).value;\n\t\t}\n\t}\n\n\treturn obj[name];\n};\n\nmodule.exports = function extend() {\n\tvar options, name, src, copy, copyIsArray, clone;\n\tvar target = arguments[0];\n\tvar i = 1;\n\tvar length = arguments.length;\n\tvar deep = false;\n\n\t// Handle a deep copy situation\n\tif (typeof target === 'boolean') {\n\t\tdeep = target;\n\t\ttarget = arguments[1] || {};\n\t\t// skip the boolean and the target\n\t\ti = 2;\n\t}\n\tif (target == null || (typeof target !== 'object' && typeof target !== 'function')) {\n\t\ttarget = {};\n\t}\n\n\tfor (; i < length; ++i) {\n\t\toptions = arguments[i];\n\t\t// Only deal with non-null/undefined values\n\t\tif (options != null) {\n\t\t\t// Extend the base object\n\t\t\tfor (name in options) {\n\t\t\t\tsrc = getProperty(target, name);\n\t\t\t\tcopy = getProperty(options, name);\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif (target !== copy) {\n\t\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\t\tif (deep && copy && (isPlainObject(copy) || (copyIsArray = isArray(copy)))) {\n\t\t\t\t\t\tif (copyIsArray) {\n\t\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\t\tclone = src && isArray(src) ? src : [];\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tclone = src && isPlainObject(src) ? src : {};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: extend(deep, clone, copy) });\n\n\t\t\t\t\t// Don't bring in undefined values\n\t\t\t\t\t} else if (typeof copy !== 'undefined') {\n\t\t\t\t\t\tsetProperty(target, { name: name, newValue: copy });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n","// http://www.w3.org/TR/CSS21/grammar.html\n// https://github.com/visionmedia/css-parse/pull/49#issuecomment-30088027\nvar COMMENT_REGEX = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g;\n\nvar NEWLINE_REGEX = /\\n/g;\nvar WHITESPACE_REGEX = /^\\s*/;\n\n// declaration\nvar PROPERTY_REGEX = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/;\nvar COLON_REGEX = /^:\\s*/;\nvar VALUE_REGEX = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/;\nvar SEMICOLON_REGEX = /^[;\\s]*/;\n\n// https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String/Trim#Polyfill\nvar TRIM_REGEX = /^\\s+|\\s+$/g;\n\n// strings\nvar NEWLINE = '\\n';\nvar FORWARD_SLASH = '/';\nvar ASTERISK = '*';\nvar EMPTY_STRING = '';\n\n// types\nvar TYPE_COMMENT = 'comment';\nvar TYPE_DECLARATION = 'declaration';\n\n/**\n * @param {String} style\n * @param {Object} [options]\n * @return {Object[]}\n * @throws {TypeError}\n * @throws {Error}\n */\nmodule.exports = function (style, options) {\n if (typeof style !== 'string') {\n throw new TypeError('First argument must be a string');\n }\n\n if (!style) return [];\n\n options = options || {};\n\n /**\n * Positional.\n */\n var lineno = 1;\n var column = 1;\n\n /**\n * Update lineno and column based on `str`.\n *\n * @param {String} str\n */\n function updatePosition(str) {\n var lines = str.match(NEWLINE_REGEX);\n if (lines) lineno += lines.length;\n var i = str.lastIndexOf(NEWLINE);\n column = ~i ? str.length - i : column + str.length;\n }\n\n /**\n * Mark position and patch `node.position`.\n *\n * @return {Function}\n */\n function position() {\n var start = { line: lineno, column: column };\n return function (node) {\n node.position = new Position(start);\n whitespace();\n return node;\n };\n }\n\n /**\n * Store position information for a node.\n *\n * @constructor\n * @property {Object} start\n * @property {Object} end\n * @property {undefined|String} source\n */\n function Position(start) {\n this.start = start;\n this.end = { line: lineno, column: column };\n this.source = options.source;\n }\n\n /**\n * Non-enumerable source string.\n */\n Position.prototype.content = style;\n\n var errorsList = [];\n\n /**\n * Error `msg`.\n *\n * @param {String} msg\n * @throws {Error}\n */\n function error(msg) {\n var err = new Error(\n options.source + ':' + lineno + ':' + column + ': ' + msg\n );\n err.reason = msg;\n err.filename = options.source;\n err.line = lineno;\n err.column = column;\n err.source = style;\n\n if (options.silent) {\n errorsList.push(err);\n } else {\n throw err;\n }\n }\n\n /**\n * Match `re` and return captures.\n *\n * @param {RegExp} re\n * @return {undefined|Array}\n */\n function match(re) {\n var m = re.exec(style);\n if (!m) return;\n var str = m[0];\n updatePosition(str);\n style = style.slice(str.length);\n return m;\n }\n\n /**\n * Parse whitespace.\n */\n function whitespace() {\n match(WHITESPACE_REGEX);\n }\n\n /**\n * Parse comments.\n *\n * @param {Object[]} [rules]\n * @return {Object[]}\n */\n function comments(rules) {\n var c;\n rules = rules || [];\n while ((c = comment())) {\n if (c !== false) {\n rules.push(c);\n }\n }\n return rules;\n }\n\n /**\n * Parse comment.\n *\n * @return {Object}\n * @throws {Error}\n */\n function comment() {\n var pos = position();\n if (FORWARD_SLASH != style.charAt(0) || ASTERISK != style.charAt(1)) return;\n\n var i = 2;\n while (\n EMPTY_STRING != style.charAt(i) &&\n (ASTERISK != style.charAt(i) || FORWARD_SLASH != style.charAt(i + 1))\n ) {\n ++i;\n }\n i += 2;\n\n if (EMPTY_STRING === style.charAt(i - 1)) {\n return error('End of comment missing');\n }\n\n var str = style.slice(2, i - 2);\n column += 2;\n updatePosition(str);\n style = style.slice(i);\n column += 2;\n\n return pos({\n type: TYPE_COMMENT,\n comment: str\n });\n }\n\n /**\n * Parse declaration.\n *\n * @return {Object}\n * @throws {Error}\n */\n function declaration() {\n var pos = position();\n\n // prop\n var prop = match(PROPERTY_REGEX);\n if (!prop) return;\n comment();\n\n // :\n if (!match(COLON_REGEX)) return error(\"property missing ':'\");\n\n // val\n var val = match(VALUE_REGEX);\n\n var ret = pos({\n type: TYPE_DECLARATION,\n property: trim(prop[0].replace(COMMENT_REGEX, EMPTY_STRING)),\n value: val\n ? trim(val[0].replace(COMMENT_REGEX, EMPTY_STRING))\n : EMPTY_STRING\n });\n\n // ;\n match(SEMICOLON_REGEX);\n\n return ret;\n }\n\n /**\n * Parse declarations.\n *\n * @return {Object[]}\n */\n function declarations() {\n var decls = [];\n\n comments(decls);\n\n // declarations\n var decl;\n while ((decl = declaration())) {\n if (decl !== false) {\n decls.push(decl);\n comments(decls);\n }\n }\n\n return decls;\n }\n\n whitespace();\n return declarations();\n};\n\n/**\n * Trim `str`.\n *\n * @param {String} str\n * @return {String}\n */\nfunction trim(str) {\n return str ? str.replace(TRIM_REGEX, EMPTY_STRING) : EMPTY_STRING;\n}\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","/**\n * @param {string} string The string to parse\n * @returns {Array} Returns an energetic array.\n */\nfunction parsePart(string) {\n let res = [];\n let m;\n\n for (let str of string.split(\",\").map((str) => str.trim())) {\n // just a number\n if (/^-?\\d+$/.test(str)) {\n res.push(parseInt(str, 10));\n } else if (\n (m = str.match(/^(-?\\d+)(-|\\.\\.\\.?|\\u2025|\\u2026|\\u22EF)(-?\\d+)$/))\n ) {\n // 1-5 or 1..5 (equivalent) or 1...5 (doesn't include 5)\n let [_, lhs, sep, rhs] = m;\n\n if (lhs && rhs) {\n lhs = parseInt(lhs);\n rhs = parseInt(rhs);\n const incr = lhs < rhs ? 1 : -1;\n\n // Make it inclusive by moving the right 'stop-point' away by one.\n if (sep === \"-\" || sep === \"..\" || sep === \"\\u2025\") rhs += incr;\n\n for (let i = lhs; i !== rhs; i += incr) res.push(i);\n }\n }\n }\n\n return res;\n}\n\nexports.default = parsePart;\nmodule.exports = parsePart;\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import type {\n FormEncType,\n HTMLFormMethod,\n RelativeRoutingType,\n} from \"@remix-run/router\";\nimport { stripBasename, UNSAFE_warning as warning } from \"@remix-run/router\";\n\nexport const defaultMethod: HTMLFormMethod = \"get\";\nconst defaultEncType: FormEncType = \"application/x-www-form-urlencoded\";\n\nexport function isHtmlElement(object: any): object is HTMLElement {\n return object != null && typeof object.tagName === \"string\";\n}\n\nexport function isButtonElement(object: any): object is HTMLButtonElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"button\";\n}\n\nexport function isFormElement(object: any): object is HTMLFormElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"form\";\n}\n\nexport function isInputElement(object: any): object is HTMLInputElement {\n return isHtmlElement(object) && object.tagName.toLowerCase() === \"input\";\n}\n\ntype LimitedMouseEvent = Pick<\n MouseEvent,\n \"button\" | \"metaKey\" | \"altKey\" | \"ctrlKey\" | \"shiftKey\"\n>;\n\nfunction isModifiedEvent(event: LimitedMouseEvent) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nexport function shouldProcessLinkClick(\n event: LimitedMouseEvent,\n target?: string\n) {\n return (\n event.button === 0 && // Ignore everything but left clicks\n (!target || target === \"_self\") && // Let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // Ignore clicks with modifier keys\n );\n}\n\nexport type ParamKeyValuePair = [string, string];\n\nexport type URLSearchParamsInit =\n | string\n | ParamKeyValuePair[]\n | Record\n | URLSearchParams;\n\n/**\n * Creates a URLSearchParams object using the given initializer.\n *\n * This is identical to `new URLSearchParams(init)` except it also\n * supports arrays as values in the object form of the initializer\n * instead of just strings. This is convenient when you need multiple\n * values for a given key, but don't want to use an array initializer.\n *\n * For example, instead of:\n *\n * let searchParams = new URLSearchParams([\n * ['sort', 'name'],\n * ['sort', 'price']\n * ]);\n *\n * you can do:\n *\n * let searchParams = createSearchParams({\n * sort: ['name', 'price']\n * });\n */\nexport function createSearchParams(\n init: URLSearchParamsInit = \"\"\n): URLSearchParams {\n return new URLSearchParams(\n typeof init === \"string\" ||\n Array.isArray(init) ||\n init instanceof URLSearchParams\n ? init\n : Object.keys(init).reduce((memo, key) => {\n let value = init[key];\n return memo.concat(\n Array.isArray(value) ? value.map((v) => [key, v]) : [[key, value]]\n );\n }, [] as ParamKeyValuePair[])\n );\n}\n\nexport function getSearchParamsForLocation(\n locationSearch: string,\n defaultSearchParams: URLSearchParams | null\n) {\n let searchParams = createSearchParams(locationSearch);\n\n if (defaultSearchParams) {\n // Use `defaultSearchParams.forEach(...)` here instead of iterating of\n // `defaultSearchParams.keys()` to work-around a bug in Firefox related to\n // web extensions. Relevant Bugzilla tickets:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1414602\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1023984\n defaultSearchParams.forEach((_, key) => {\n if (!searchParams.has(key)) {\n defaultSearchParams.getAll(key).forEach((value) => {\n searchParams.append(key, value);\n });\n }\n });\n }\n\n return searchParams;\n}\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\nexport type SubmitTarget =\n | HTMLFormElement\n | HTMLButtonElement\n | HTMLInputElement\n | FormData\n | URLSearchParams\n | JsonValue\n | null;\n\n// One-time check for submitter support\nlet _formDataSupportsSubmitter: boolean | null = null;\n\nfunction isFormDataSubmitterSupported() {\n if (_formDataSupportsSubmitter === null) {\n try {\n new FormData(\n document.createElement(\"form\"),\n // @ts-expect-error if FormData supports the submitter parameter, this will throw\n 0\n );\n _formDataSupportsSubmitter = false;\n } catch (e) {\n _formDataSupportsSubmitter = true;\n }\n }\n return _formDataSupportsSubmitter;\n}\n\nexport interface SubmitOptions {\n /**\n * The HTTP method used to submit the form. Overrides `
`.\n * Defaults to \"GET\".\n */\n method?: HTMLFormMethod;\n\n /**\n * The action URL path used to submit the form. Overrides ``.\n * Defaults to the path of the current route.\n */\n action?: string;\n\n /**\n * The encoding used to submit the form. Overrides ``.\n * Defaults to \"application/x-www-form-urlencoded\".\n */\n encType?: FormEncType;\n\n /**\n * Indicate a specific fetcherKey to use when using navigate=false\n */\n fetcherKey?: string;\n\n /**\n * navigate=false will use a fetcher instead of a navigation\n */\n navigate?: boolean;\n\n /**\n * Set `true` to replace the current entry in the browser's history stack\n * instead of creating a new one (i.e. stay on \"the same page\"). Defaults\n * to `false`.\n */\n replace?: boolean;\n\n /**\n * State object to add to the history stack entry for this navigation\n */\n state?: any;\n\n /**\n * Determines whether the form action is relative to the route hierarchy or\n * the pathname. Use this if you want to opt out of navigating the route\n * hierarchy and want to instead route based on /-delimited URL segments\n */\n relative?: RelativeRoutingType;\n\n /**\n * In browser-based environments, prevent resetting scroll after this\n * navigation when using the component\n */\n preventScrollReset?: boolean;\n\n /**\n * Enable flushSync for this navigation's state updates\n */\n unstable_flushSync?: boolean;\n\n /**\n * Enable view transitions on this submission navigation\n */\n unstable_viewTransition?: boolean;\n}\n\nconst supportedFormEncTypes: Set = new Set([\n \"application/x-www-form-urlencoded\",\n \"multipart/form-data\",\n \"text/plain\",\n]);\n\nfunction getFormEncType(encType: string | null) {\n if (encType != null && !supportedFormEncTypes.has(encType as FormEncType)) {\n warning(\n false,\n `\"${encType}\" is not a valid \\`encType\\` for \\`\\`/\\`\\` ` +\n `and will default to \"${defaultEncType}\"`\n );\n\n return null;\n }\n return encType;\n}\n\nexport function getFormSubmissionInfo(\n target: SubmitTarget,\n basename: string\n): {\n action: string | null;\n method: string;\n encType: string;\n formData: FormData | undefined;\n body: any;\n} {\n let method: string;\n let action: string | null;\n let encType: string;\n let formData: FormData | undefined;\n let body: any;\n\n if (isFormElement(target)) {\n // When grabbing the action from the element, it will have had the basename\n // prefixed to ensure non-JS scenarios work, so strip it since we'll\n // re-prefix in the router\n let attr = target.getAttribute(\"action\");\n action = attr ? stripBasename(attr, basename) : null;\n method = target.getAttribute(\"method\") || defaultMethod;\n encType = getFormEncType(target.getAttribute(\"enctype\")) || defaultEncType;\n\n formData = new FormData(target);\n } else if (\n isButtonElement(target) ||\n (isInputElement(target) &&\n (target.type === \"submit\" || target.type === \"image\"))\n ) {\n let form = target.form;\n\n if (form == null) {\n throw new Error(\n `Cannot submit a \\n
\\n\\n\\n\";","export default \"/*\\n Basic Java example using FizzBuzz\\n*/\\n\\nimport java.util.Random;\\n\\npublic class Example {\\n public static void main (String[] args){\\n // Generate a random number between 1-100. (See generateRandomNumber method.)\\n int random = generateRandomNumber(100);\\n\\n // Output generated number.\\n System.out.println(\\\"Generated number: \\\" + random + \\\"\\\\n\\\");\\n\\n // Loop between 1 and the number we just generated.\\n for (int i=1; i<=random; i++){\\n // If i is divisible by both 3 and 5, output \\\"FizzBuzz\\\".\\n if (i % 3 == 0 && i % 5 == 0){\\n System.out.println(\\\"FizzBuzz\\\");\\n }\\n // If i is divisible by 3, output \\\"Fizz\\\"\\n else if (i % 3 == 0){\\n System.out.println(\\\"Fizz\\\");\\n }\\n // If i is divisible by 5, output \\\"Buzz\\\".\\n else if (i % 5 == 0){\\n System.out.println(\\\"Buzz\\\");\\n }\\n // If i is not divisible by either 3 or 5, output the number.\\n else {\\n System.out.println(i);\\n }\\n }\\n }\\n\\n /**\\n Generates a new random number between 0 and 100.\\n @param bound The highest number that should be generated.\\n @return An integer representing a randomly generated number between 0 and 100.\\n */\\n private static int generateRandomNumber(int bound){\\n // Create new Random generator object and generate the random number.\\n Random randGen = new Random();\\n int randomNum = randGen.nextInt(bound);\\n\\n // If the random number generated is zero, use recursion to regenerate the number until it is not zero.\\n if (randomNum < 1){\\n randomNum = generateRandomNumber(bound);\\n }\\n\\n return randomNum;\\n }\\n}\\n \";","export default \"/*\\n © Microsoft. All rights reserved.\\n\\n This library is supported for use in Windows Tailored Apps only.\\n\\n Build: 6.2.8100.0 \\n Version: 0.5 \\n*/\\n\\n(function (global, undefined) {\\n \\\"use strict\\\";\\n undefinedVariable = {};\\n undefinedVariable.prop = 5;\\n\\n function initializeProperties(target, members) {\\n var keys = Object.keys(members);\\n var properties;\\n var i, len;\\n for (i = 0, len = keys.length; i < len; i++) {\\n var key = keys[i];\\n var enumerable = key.charCodeAt(0) !== /*_*/95;\\n var member = members[key];\\n if (member && typeof member === 'object') {\\n if (member.value !== undefined || typeof member.get === 'function' || typeof member.set === 'function') {\\n if (member.enumerable === undefined) {\\n member.enumerable = enumerable;\\n }\\n properties = properties || {};\\n properties[key] = member;\\n continue;\\n } \\n }\\n if (!enumerable) {\\n properties = properties || {};\\n properties[key] = { value: member, enumerable: enumerable, configurable: true, writable: true }\\n continue;\\n }\\n target[key] = member;\\n }\\n if (properties) {\\n Object.defineProperties(target, properties);\\n }\\n }\\n\\n (function (rootNamespace) {\\n\\n // Create the rootNamespace in the global namespace\\n if (!global[rootNamespace]) {\\n global[rootNamespace] = Object.create(Object.prototype);\\n }\\n\\n // Cache the rootNamespace we just created in a local variable\\n var _rootNamespace = global[rootNamespace];\\n if (!_rootNamespace.Namespace) {\\n _rootNamespace.Namespace = Object.create(Object.prototype);\\n }\\n\\n function defineWithParent(parentNamespace, name, members) {\\n /// \\n /// Defines a new namespace with the specified name, under the specified parent namespace.\\n /// \\n /// \\n /// The parent namespace which will contain the new namespace.\\n /// \\n /// \\n /// Name of the new namespace.\\n /// \\n /// \\n /// Members in the new namespace.\\n /// \\n /// \\n /// The newly defined namespace.\\n /// \\n var currentNamespace = parentNamespace,\\n namespaceFragments = name.split(\\\".\\\");\\n\\n for (var i = 0, len = namespaceFragments.length; i < len; i++) {\\n var namespaceName = namespaceFragments[i];\\n if (!currentNamespace[namespaceName]) {\\n Object.defineProperty(currentNamespace, namespaceName, \\n { value: {}, writable: false, enumerable: true, configurable: true }\\n );\\n }\\n currentNamespace = currentNamespace[namespaceName];\\n }\\n\\n if (members) {\\n initializeProperties(currentNamespace, members);\\n }\\n\\n return currentNamespace;\\n }\\n\\n function define(name, members) {\\n /// \\n /// Defines a new namespace with the specified name.\\n /// \\n /// \\n /// Name of the namespace. This could be a dot-separated nested name.\\n /// \\n /// \\n /// Members in the new namespace.\\n /// \\n /// \\n /// The newly defined namespace.\\n /// \\n return defineWithParent(global, name, members);\\n }\\n\\n // Establish members of the \\\"WinJS.Namespace\\\" namespace\\n Object.defineProperties(_rootNamespace.Namespace, {\\n\\n defineWithParent: { value: defineWithParent, writable: true, enumerable: true },\\n\\n define: { value: define, writable: true, enumerable: true }\\n\\n });\\n\\n })(\\\"WinJS\\\");\\n\\n (function (WinJS) {\\n\\n function define(constructor, instanceMembers, staticMembers) {\\n /// \\n /// Defines a class using the given constructor and with the specified instance members.\\n /// \\n /// \\n /// A constructor function that will be used to instantiate this class.\\n /// \\n /// \\n /// The set of instance fields, properties and methods to be made available on the class.\\n /// \\n /// \\n /// The set of static fields, properties and methods to be made available on the class.\\n /// \\n /// \\n /// The newly defined class.\\n /// \\n constructor = constructor || function () { };\\n if (instanceMembers) {\\n initializeProperties(constructor.prototype, instanceMembers);\\n }\\n if (staticMembers) {\\n initializeProperties(constructor, staticMembers);\\n }\\n return constructor;\\n }\\n\\n function derive(baseClass, constructor, instanceMembers, staticMembers) {\\n /// \\n /// Uses prototypal inheritance to create a sub-class based on the supplied baseClass parameter.\\n /// \\n /// \\n /// The class to inherit from.\\n /// \\n /// \\n /// A constructor function that will be used to instantiate this class.\\n /// \\n /// \\n /// The set of instance fields, properties and methods to be made available on the class.\\n /// \\n /// \\n /// The set of static fields, properties and methods to be made available on the class.\\n /// \\n /// \\n /// The newly defined class.\\n /// \\n if (baseClass) {\\n constructor = constructor || function () { };\\n var basePrototype = baseClass.prototype;\\n constructor.prototype = Object.create(basePrototype);\\n Object.defineProperty(constructor.prototype, \\\"_super\\\", { value: basePrototype });\\n Object.defineProperty(constructor.prototype, \\\"constructor\\\", { value: constructor });\\n if (instanceMembers) {\\n initializeProperties(constructor.prototype, instanceMembers);\\n }\\n if (staticMembers) {\\n initializeProperties(constructor, staticMembers);\\n }\\n return constructor;\\n } else {\\n return define(constructor, instanceMembers, staticMembers);\\n }\\n }\\n\\n function mix(constructor) {\\n /// \\n /// Defines a class using the given constructor and the union of the set of instance members\\n /// specified by all the mixin objects. The mixin parameter list can be of variable length.\\n /// \\n /// \\n /// A constructor function that will be used to instantiate this class.\\n /// \\n /// \\n /// The newly defined class.\\n /// \\n constructor = constructor || function () { };\\n var i, len;\\n for (i = 0, len = arguments.length; i < len; i++) {\\n initializeProperties(constructor.prototype, arguments[i]);\\n }\\n return constructor;\\n }\\n\\n // Establish members of \\\"WinJS.Class\\\" namespace\\n WinJS.Namespace.define(\\\"WinJS.Class\\\", {\\n define: define,\\n derive: derive,\\n mix: mix\\n });\\n\\n })(WinJS);\\n\\n})(this);\";","export default \"{\\n \\\"type\\\": \\\"team\\\",\\n \\\"test\\\": {\\n \\\"testPage\\\": \\\"tools/testing/run-tests.htm\\\",\\n \\\"enabled\\\": true\\n },\\n \\\"search\\\": {\\n \\\"excludeFolders\\\": [\\n \\\".git\\\",\\n \\\"node_modules\\\",\\n \\\"tools/bin\\\",\\n \\\"tools/counts\\\",\\n \\\"tools/policheck\\\",\\n \\\"tools/tfs_build_extensions\\\",\\n \\\"tools/testing/jscoverage\\\",\\n \\\"tools/testing/qunit\\\",\\n \\\"tools/testing/chutzpah\\\",\\n \\\"server.net\\\"\\n ]\\n },\\n \\\"languages\\\": {\\n \\\"vs.languages.typescript\\\": {\\n \\\"validationSettings\\\": [{\\n \\\"scope\\\":\\\"/\\\",\\n \\\"noImplicitAny\\\":true,\\n \\\"noLib\\\":false,\\n \\\"extraLibs\\\":[],\\n \\\"semanticValidation\\\":true,\\n \\\"syntaxValidation\\\":true,\\n \\\"codeGenTarget\\\":\\\"ES5\\\",\\n \\\"moduleGenTarget\\\":\\\"\\\",\\n \\\"lint\\\": {\\n \\\"emptyBlocksWithoutComment\\\": \\\"warning\\\",\\n \\\"curlyBracketsMustNotBeOmitted\\\": \\\"warning\\\",\\n \\\"comparisonOperatorsNotStrict\\\": \\\"warning\\\",\\n \\\"missingSemicolon\\\": \\\"warning\\\",\\n \\\"unknownTypeOfResults\\\": \\\"warning\\\",\\n \\\"semicolonsInsteadOfBlocks\\\": \\\"warning\\\",\\n \\\"functionsInsideLoops\\\": \\\"warning\\\",\\n \\\"functionsWithoutReturnType\\\": \\\"warning\\\",\\n \\\"tripleSlashReferenceAlike\\\": \\\"warning\\\",\\n \\\"unusedImports\\\": \\\"warning\\\",\\n \\\"unusedVariables\\\": \\\"warning\\\",\\n \\\"unusedFunctions\\\": \\\"warning\\\",\\n \\\"unusedMembers\\\": \\\"warning\\\"\\n }\\n }, \\n {\\n \\\"scope\\\":\\\"/client\\\",\\n \\\"baseUrl\\\":\\\"/client\\\",\\n \\\"moduleGenTarget\\\":\\\"amd\\\"\\n },\\n {\\n \\\"scope\\\":\\\"/server\\\",\\n \\\"moduleGenTarget\\\":\\\"commonjs\\\"\\n },\\n {\\n \\\"scope\\\":\\\"/build\\\",\\n \\\"moduleGenTarget\\\":\\\"commonjs\\\"\\n },\\n {\\n \\\"scope\\\":\\\"/node_modules/nake\\\",\\n \\\"moduleGenTarget\\\":\\\"commonjs\\\"\\n }],\\n \\\"allowMultipleWorkers\\\": true\\n }\\n }\\n}\";","export default \"class ProductCategoryRow extends React.Component {\\n render() {\\n const category = this.props.category;\\n return (\\n \\n \\n {category}\\n \\n \\n );\\n }\\n}\\n\\nclass ProductRow extends React.Component {\\n render() {\\n const product = this.props.product;\\n const name = product.stocked ?\\n product.name :\\n \\n {product.name}\\n ;\\n\\n return (\\n \\n {name}\\n {product.price}\\n \\n );\\n }\\n}\\n\\nclass ProductTable extends React.Component {\\n render() {\\n const rows = [];\\n let lastCategory = null;\\n \\n this.props.products.forEach((product) => {\\n if (product.category !== lastCategory) {\\n rows.push(\\n \\n );\\n }\\n rows.push(\\n \\n );\\n lastCategory = product.category;\\n });\\n\\n return (\\n \\n \\n \\n \\n \\n \\n \\n {rows}\\n
NamePrice
\\n );\\n }\\n}\\n\\nclass SearchBar extends React.Component {\\n render() {\\n return (\\n \\n \\n

\\n \\n {' '}\\n Only show products in stock\\n

\\n \\n );\\n }\\n}\\n\\nclass FilterableProductTable extends React.Component {\\n render() {\\n return (\\n
\\n \\n \\n
\\n );\\n }\\n}\\n\\n\\nconst PRODUCTS = [\\n {category: 'Sporting Goods', price: '$49.99', stocked: true, name: 'Football'},\\n {category: 'Sporting Goods', price: '$9.99', stocked: true, name: 'Baseball'},\\n {category: 'Sporting Goods', price: '$29.99', stocked: false, name: 'Basketball'},\\n {category: 'Electronics', price: '$99.99', stocked: true, name: 'iPod Touch'},\\n {category: 'Electronics', price: '$399.99', stocked: false, name: 'iPhone 5'},\\n {category: 'Electronics', price: '$199.99', stocked: true, name: 'Nexus 7'}\\n];\\n \\nReactDOM.render(\\n ,\\n document.getElementById('container')\\n);\";","export default \"# Header 1 #\\n## Header 2 ##\\n### Header 3 ### (Hashes on right are optional)\\n## Markdown plus h2 with a custom ID ## {#id-goes-here}\\n[Link back to H2](#id-goes-here)\\n\\n```js\\nvar x = \\\"string\\\";\\nfunction f() {\\n return x;\\n}\\n```\\n\\n\\n
\\n
\\n nested div\\n
\\n \\n This is a div _with_ underscores\\n and a & bold element.\\n \\n
\\n\\n* Bullet lists are easy too\\n- Another one\\n+ Another one\\n\\nThis is a paragraph, which is text surrounded by\\nwhitespace. Paragraphs can be on one\\nline (or many), and can drone on for hours.\\n\\nNow some inline markup like _italics_, **bold**,\\nand `code()`. Note that underscores\\nin_words_are ignored.\\n\\n````application/json\\n { value: [\\\"or with a mime type\\\"] }\\n````\\n\\n> Blockquotes are like quoted text in email replies\\n>> And, they can be nested\\n\\n1. A numbered list\\n2. Which is numbered\\n3. With periods and a space\\n\\nAnd now some code:\\n\\n // Code is just text indented a bit\\n which(is_easy) to_remember();\\n\\nAnd a block\\n\\n~~~\\n// Markdown extra adds un-indented code blocks too\\n\\nif (this_is_more_code == true && !indented) {\\n // tild wrapped code blocks, also not indented\\n}\\n~~~\\n\\nText with\\ntwo trailing spaces\\n(on the right)\\ncan be used\\nfor things like poems\\n\\n### Horizontal rules\\n\\n* * * *\\n****\\n--------------------------\\n\\n![picture alt](/images/photo.jpeg \\\"Title is optional\\\")\\n\\n## Markdown plus tables ##\\n\\n| Header | Header | Right |\\n| ------ | ------ | -----: |\\n| Cell | Cell | $10 |\\n| Cell | Cell | $20 |\\n\\n* Outer pipes on tables are optional\\n* Colon used for alignment (right versus left)\\n\\n## Markdown plus definition lists ##\\n\\nBottled water\\n: $ 1.25\\n: $ 1.55 (Large)\\n\\nMilk\\nPop\\n: $ 1.75\\n\\n* Multiple definitions and terms are possible\\n* Definitions can include multiple paragraphs too\\n\\n*[ABBR]: Markdown plus abbreviations (produces an tag)\";","export default \"CREATE TABLE shop (\\n article INT(4) UNSIGNED ZEROFILL DEFAULT '0000' NOT NULL,\\n dealer CHAR(20) DEFAULT '' NOT NULL,\\n price DOUBLE(16,2) DEFAULT '0.00' NOT NULL,\\n PRIMARY KEY(article, dealer));\\nINSERT INTO shop VALUES\\n (1,'A',3.45),(1,'B',3.99),(2,'A',10.99),(3,'B',1.45),\\n (3,'C',1.69),(3,'D',1.25),(4,'D',19.95);\";","export default \"\\n\\n\\n Example page\\n\\n\\n\\n\\n\\n\\n
\\nHello\\n\\n \\n\\n guest\\n\\n!\\n
\\n\\n\\\");\\n\\n // display shuffled cards (EXAMPLE ONLY)\\n for ($index = 0; $index < 52; $index++) {\\n if ($starting_point == 52) { $starting_point = 0; }\\n print(\\\"Uncut Point: $deck[$index] \\\");\\n print(\\\"Starting Point: $deck[$starting_point]
\\\");\\n $starting_point++;\\n }\\n?>\\n\\n\\n\";","export default \"import banana\\n\\n\\nclass Monkey:\\n # Bananas the monkey can eat.\\n capacity = 10\\n def eat(self, n):\\n \\\"\\\"\\\"Make the monkey eat n bananas!\\\"\\\"\\\"\\n self.capacity -= n * banana.size\\n\\n def feeding_frenzy(self):\\n self.eat(9.25)\\n return \\\"Yum yum\\\"\\n\";","export default \"fn main() {\\n let greetings = [\\\"Hello\\\", \\\"Hola\\\", \\\"Bonjour\\\",\\n \\\"Ciao\\\", \\\"こんにちは\\\", \\\"안녕하세요\\\",\\n \\\"Cześć\\\", \\\"Olá\\\", \\\"Здравствуйте\\\",\\n \\\"Chào bạn\\\", \\\"您好\\\", \\\"Hallo\\\",\\n \\\"Hej\\\", \\\"Ahoj\\\", \\\"سلام\\\"];\\n\\n for (num, greeting) in greetings.iter().enumerate() {\\n print!(\\\"{} : \\\", greeting);\\n match num {\\n 0 => println!(\\\"This code is editable and runnable!\\\"),\\n 1 => println!(\\\"¡Este código es editable y ejecutable!\\\"),\\n 2 => println!(\\\"Ce code est modifiable et exécutable !\\\"),\\n 3 => println!(\\\"Questo codice è modificabile ed eseguibile!\\\"),\\n 4 => println!(\\\"このコードは編集して実行出来ます!\\\"),\\n 5 => println!(\\\"여기에서 코드를 수정하고 실행할 수 있습니다!\\\"),\\n 6 => println!(\\\"Ten kod można edytować oraz uruchomić!\\\"),\\n 7 => println!(\\\"Este código é editável e executável!\\\"),\\n 8 => println!(\\\"Этот код можно отредактировать и запустить!\\\"),\\n 9 => println!(\\\"Bạn có thể edit và run code trực tiếp!\\\"),\\n 10 => println!(\\\"这段代码是可以编辑并且能够运行的!\\\"),\\n 11 => println!(\\\"Dieser Code kann bearbeitet und ausgeführt werden!\\\"),\\n 12 => println!(\\\"Den här koden kan redigeras och köras!\\\"),\\n 13 => println!(\\\"Tento kód můžete upravit a spustit\\\"),\\n 14 => println!(\\\"این کد قابلیت ویرایش و اجرا دارد!\\\"),\\n _ => {},\\n }\\n }\\n}\\n\";","export default \"#!/bin/bash\\n# Simple line count example, using bash\\n#\\n# Bash tutorial: http://linuxconfig.org/Bash_scripting_Tutorial#8-2-read-file-into-bash-array\\n# My scripting link: http://www.macs.hw.ac.uk/~hwloidl/docs/index.html#scripting\\n#\\n# Usage: ./line_count.sh file\\n# -----------------------------------------------------------------------------\\n\\n# Link filedescriptor 10 with stdin\\nexec 10<&0\\n# stdin replaced with a file supplied as a first argument\\nexec < $1\\n# remember the name of the input file\\nin=$1\\n\\n# init\\nfile=\\\"current_line.txt\\\"\\nlet count=0\\n\\n# this while loop iterates over all lines of the file\\nwhile read LINE\\ndo\\n # increase line counter\\n ((count++))\\n # write current line to a tmp file with name $file (not needed for counting)\\n echo $LINE > $file\\n # this checks the return code of echo (not needed for writing; just for demo)\\n if [ $? -ne 0 ]\\n then echo \\\"Error in writing to file ${file}; check its permissions!\\\"\\n fi\\ndone\\n\\necho \\\"Number of lines: $count\\\"\\necho \\\"The last line of the file is: `cat ${file}`\\\"\\n\\n# Note: You can achieve the same by just using the tool wc like this\\necho \\\"Expected number of lines: `wc -l $in`\\\"\\n\\n# restore stdin from filedescriptor 10\\n# and close filedescriptor 10\\nexec 0<&10 10<&-\";","export default \"import Foundation\\n\\nprotocol APIControllerProtocol {\\n func didReceiveAPIResults(results: NSArray)\\n}\\n\\nclass APIController {\\n var delegate: APIControllerProtocol\\n\\n init(delegate: APIControllerProtocol) {\\n self.delegate = delegate\\n }\\n\\n func get(path: String) {\\n let url = NSURL(string: path)\\n let session = NSURLSession.sharedSession()\\n let task = session.dataTaskWithURL(url!, completionHandler: {data, response, error -> Void in\\n println(\\\"Task completed\\\")\\n if(error != nil) {\\n // If there is an error in the web request, print it to the console\\n println(error.localizedDescription)\\n }\\n var err: NSError?\\n if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: &err) as? NSDictionary {\\n if(err != nil) {\\n // If there is an error parsing JSON, print it to the console\\n println(\\\"JSON Error \\\\(err!.localizedDescription)\\\")\\n }\\n if let results: NSArray = jsonResult[\\\"results\\\"] as? NSArray {\\n self.delegate.didReceiveAPIResults(results)\\n }\\n }\\n })\\n\\n // The task is just an object with all these properties set\\n // In order to actually make the web request, we need to \\\"resume\\\"\\n task.resume()\\n }\\n\\n func searchItunesFor(searchTerm: String) {\\n // The iTunes API wants multiple terms separated by + symbols, so replace spaces with + signs\\n let itunesSearchTerm = searchTerm.stringByReplacingOccurrencesOfString(\\\" \\\", withString: \\\"+\\\", options: NSStringCompareOptions.CaseInsensitiveSearch, range: nil)\\n\\n // Now escape anything else that isn't URL-friendly\\n if let escapedSearchTerm = itunesSearchTerm.stringByAddingPercentEscapesUsingEncoding(NSUTF8StringEncoding) {\\n let urlPath = \\\"https://itunes.apple.com/search?term=\\\\(escapedSearchTerm)&media=music&entity=album\\\"\\n }\\n }\\n\\n}\";","export default \"import * as React from 'react';\\n\\ninterface IState {\\n clicks: number;\\n}\\n\\nexport class Clicker extends React.Component {\\n constructor(props) {\\n super(props);\\n\\n this.state = {\\n clicks: 0,\\n };\\n }\\n\\n public clickHandler = () => {\\n this.setState({ clicks: this.state.clicks + 1 });\\n }\\n\\n public render() {\\n return (\\n
\\n

You have clicked the button {this.state.clicks} time(s).

\\n

\\n \\n

\\n
\\n );\\n }\\n}\";","export default \"/* Game of Life\\n * Implemented in TypeScript\\n * To learn more about TypeScript, please visit http://www.typescriptlang.org/\\n */\\n\\nnamespace Conway {\\n\\n export class Cell {\\n public row: number;\\n public col: number;\\n public live: boolean;\\n\\n constructor(row: number, col: number, live: boolean) {\\n this.row = row;\\n this.col = col;\\n this.live = live;\\n }\\n }\\n\\n export class GameOfLife {\\n private gridSize: number;\\n private canvasSize: number;\\n private lineColor: string;\\n private liveColor: string;\\n private deadColor: string;\\n private initialLifeProbability: number;\\n private animationRate: number;\\n private cellSize: number;\\n private context: CanvasRenderingContext2D;\\n private world;\\n\\n\\n constructor() {\\n this.gridSize = 50;\\n this.canvasSize = 600;\\n this.lineColor = '#cdcdcd';\\n this.liveColor = '#666';\\n this.deadColor = '#eee';\\n this.initialLifeProbability = 0.5;\\n this.animationRate = 60;\\n this.cellSize = 0;\\n this.world = this.createWorld();\\n this.circleOfLife();\\n }\\n\\n public createWorld() {\\n return this.travelWorld( (cell : Cell) => {\\n cell.live = Math.random() < this.initialLifeProbability;\\n return cell;\\n });\\n }\\n\\n public circleOfLife() : void {\\n this.world = this.travelWorld( (cell: Cell) => {\\n cell = this.world[cell.row][cell.col];\\n this.draw(cell);\\n return this.resolveNextGeneration(cell);\\n });\\n setTimeout( () => {this.circleOfLife()}, this.animationRate);\\n }\\n\\n public resolveNextGeneration(cell : Cell) {\\n var count = this.countNeighbors(cell);\\n var newCell = new Cell(cell.row, cell.col, cell.live);\\n if(count < 2 || count > 3) newCell.live = false;\\n else if(count == 3) newCell.live = true;\\n return newCell;\\n }\\n\\n public countNeighbors(cell : Cell) {\\n var neighbors = 0;\\n for(var row = -1; row <=1; row++) {\\n for(var col = -1; col <= 1; col++) {\\n if(row == 0 && col == 0) continue;\\n if(this.isAlive(cell.row + row, cell.col + col)) {\\n neighbors++;\\n }\\n }\\n }\\n return neighbors;\\n }\\n\\n public isAlive(row : number, col : number) {\\n if(row < 0 || col < 0 || row >= this.gridSize || col >= this.gridSize) return false;\\n return this.world[row][col].live;\\n }\\n\\n public travelWorld(callback) {\\n var result = [];\\n for(var row = 0; row < this.gridSize; row++) {\\n var rowData = [];\\n for(var col = 0; col < this.gridSize; col++) {\\n rowData.push(callback(new Cell(row, col, false)));\\n }\\n result.push(rowData);\\n }\\n return result;\\n }\\n\\n public draw(cell : Cell) {\\n if(this.context == null) this.context = this.createDrawingContext();\\n if(this.cellSize == 0) this.cellSize = this.canvasSize/this.gridSize;\\n\\n this.context.strokeStyle = this.lineColor;\\n this.context.strokeRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize);\\n this.context.fillStyle = cell.live ? this.liveColor : this.deadColor;\\n this.context.fillRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize);\\n }\\n\\n public createDrawingContext() {\\n var canvas = document.getElementById('conway-canvas');\\n if(canvas == null) {\\n canvas = document.createElement('canvas');\\n canvas.id = 'conway-canvas';\\n canvas.width = this.canvasSize;\\n canvas.height = this.canvasSize;\\n document.body.appendChild(canvas);\\n }\\n return canvas.getContext('2d');\\n }\\n }\\n}\\n\\nvar game = new Conway.GameOfLife();\\n\";","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import type * as t from \"@babel/types\";\n\nexport interface VirtualTypeAliases {\n BindingIdentifier: t.Identifier;\n BlockScoped: t.Node;\n ExistentialTypeParam: t.ExistsTypeAnnotation;\n Expression: t.Expression;\n Flow: t.Flow | t.ImportDeclaration | t.ExportDeclaration | t.ImportSpecifier;\n ForAwaitStatement: t.ForOfStatement;\n Generated: t.Node;\n NumericLiteralTypeAnnotation: t.NumberLiteralTypeAnnotation;\n Pure: t.Node;\n Referenced: t.Node;\n ReferencedIdentifier: t.Identifier | t.JSXIdentifier;\n ReferencedMemberExpression: t.MemberExpression;\n RestProperty: t.RestElement;\n Scope: t.Scopable | t.Pattern;\n SpreadProperty: t.RestElement;\n Statement: t.Statement;\n User: t.Node;\n Var: t.VariableDeclaration;\n}\n\ntype VirtualTypeMapping = readonly (t.Node[\"type\"] | keyof t.Aliases)[] | null;\n\nexport const ReferencedIdentifier: VirtualTypeMapping = [\n \"Identifier\",\n \"JSXIdentifier\",\n] as const;\n\nexport const ReferencedMemberExpression: VirtualTypeMapping = [\n \"MemberExpression\",\n] as const;\n\nexport const BindingIdentifier: VirtualTypeMapping = [\"Identifier\"] as const;\n\nexport const Statement: VirtualTypeMapping = [\"Statement\"] as const;\n\nexport const Expression: VirtualTypeMapping = [\"Expression\"] as const;\n\nexport const Scope: VirtualTypeMapping = [\"Scopable\", \"Pattern\"] as const;\n\nexport const Referenced: VirtualTypeMapping = null;\n\nexport const BlockScoped: VirtualTypeMapping = null;\n\nexport const Var: VirtualTypeMapping = [\"VariableDeclaration\"];\n\nexport const User: VirtualTypeMapping = null;\n\nexport const Generated: VirtualTypeMapping = null;\n\nexport const Pure: VirtualTypeMapping = null;\n\nexport const Flow: VirtualTypeMapping = [\n \"Flow\",\n \"ImportDeclaration\",\n \"ExportDeclaration\",\n \"ImportSpecifier\",\n] as const;\n\n// TODO: 7.0 Backwards Compat\nexport const RestProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const SpreadProperty: VirtualTypeMapping = [\"RestElement\"] as const;\n\nexport const ExistentialTypeParam: VirtualTypeMapping = [\n \"ExistsTypeAnnotation\",\n] as const;\n\nexport const NumericLiteralTypeAnnotation: VirtualTypeMapping = [\n \"NumberLiteralTypeAnnotation\",\n] as const;\n\nexport const ForAwaitStatement: VirtualTypeMapping = [\n \"ForOfStatement\",\n] as const;\n","export default function shallowEqual(\n actual: object,\n expected: T,\n): actual is T {\n const keys = Object.keys(expected) as (keyof T)[];\n\n for (const key of keys) {\n if (\n // @ts-expect-error maybe we should check whether key exists first\n actual[key] !== expected[key]\n ) {\n return false;\n }\n }\n\n return true;\n}\n","const warnings = new Set();\n\nexport default function deprecationWarning(\n oldName: string,\n newName: string,\n prefix: string = \"\",\n) {\n if (warnings.has(oldName)) return;\n warnings.add(oldName);\n\n const { internal, trace } = captureShortStackTrace(1, 2);\n if (internal) {\n // If usage comes from an internal package, there is no point in warning because\n // 1. The new version of the package will already use the new API\n // 2. When the deprecation will become an error (in a future major version), users\n // will have to update every package anyway.\n return;\n }\n console.warn(\n `${prefix}\\`${oldName}\\` has been deprecated, please migrate to \\`${newName}\\`\\n${trace}`,\n );\n}\n\nfunction captureShortStackTrace(skip: number, length: number) {\n const { stackTraceLimit, prepareStackTrace } = Error;\n let stackTrace: NodeJS.CallSite[];\n // We add 1 to also take into account this function.\n Error.stackTraceLimit = 1 + skip + length;\n Error.prepareStackTrace = function (err, stack) {\n stackTrace = stack;\n };\n new Error().stack;\n Error.stackTraceLimit = stackTraceLimit;\n Error.prepareStackTrace = prepareStackTrace;\n\n if (!stackTrace) return { internal: false, trace: \"\" };\n\n const shortStackTrace = stackTrace.slice(1 + skip, 1 + skip + length);\n return {\n internal: /[\\\\/]@babel[\\\\/]/.test(shortStackTrace[1].getFileName()),\n trace: shortStackTrace.map(frame => ` at ${frame}`).join(\"\\n\"),\n };\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\n\n/* eslint-disable no-fallthrough */\n\nimport shallowEqual from \"../../utils/shallowEqual.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\ntype Opts = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport function isArrayExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrayExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AssignmentExpression {\n if (!node) return false;\n\n if (node.type !== \"AssignmentExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BinaryExpression {\n if (!node) return false;\n\n if (node.type !== \"BinaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterpreterDirective(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterpreterDirective {\n if (!node) return false;\n\n if (node.type !== \"InterpreterDirective\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirective(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Directive {\n if (!node) return false;\n\n if (node.type !== \"Directive\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDirectiveLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DirectiveLiteral {\n if (!node) return false;\n\n if (node.type !== \"DirectiveLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BlockStatement {\n if (!node) return false;\n\n if (node.type !== \"BlockStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBreakStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BreakStatement {\n if (!node) return false;\n\n if (node.type !== \"BreakStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CallExpression {\n if (!node) return false;\n\n if (node.type !== \"CallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCatchClause(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CatchClause {\n if (!node) return false;\n\n if (node.type !== \"CatchClause\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditionalExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ConditionalExpression {\n if (!node) return false;\n\n if (node.type !== \"ConditionalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isContinueStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ContinueStatement {\n if (!node) return false;\n\n if (node.type !== \"ContinueStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDebuggerStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DebuggerStatement {\n if (!node) return false;\n\n if (node.type !== \"DebuggerStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DoWhileStatement {\n if (!node) return false;\n\n if (node.type !== \"DoWhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EmptyStatement {\n if (!node) return false;\n\n if (node.type !== \"EmptyStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExpressionStatement {\n if (!node) return false;\n\n if (node.type !== \"ExpressionStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFile(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.File {\n if (!node) return false;\n\n if (node.type !== \"File\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForInStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForInStatement {\n if (!node) return false;\n\n if (node.type !== \"ForInStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForStatement {\n if (!node) return false;\n\n if (node.type !== \"ForStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionDeclaration {\n if (!node) return false;\n\n if (node.type !== \"FunctionDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"FunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Identifier {\n if (!node) return false;\n\n if (node.type !== \"Identifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIfStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IfStatement {\n if (!node) return false;\n\n if (node.type !== \"IfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLabeledStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LabeledStatement {\n if (!node) return false;\n\n if (node.type !== \"LabeledStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringLiteral {\n if (!node) return false;\n\n if (node.type !== \"StringLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumericLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumericLiteral {\n if (!node) return false;\n\n if (node.type !== \"NumericLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullLiteral {\n if (!node) return false;\n\n if (node.type !== \"NullLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanLiteral {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRegExpLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RegExpLiteral {\n if (!node) return false;\n\n if (node.type !== \"RegExpLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLogicalExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LogicalExpression {\n if (!node) return false;\n\n if (node.type !== \"LogicalExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MemberExpression {\n if (!node) return false;\n\n if (node.type !== \"MemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNewExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NewExpression {\n if (!node) return false;\n\n if (node.type !== \"NewExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProgram(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Program {\n if (!node) return false;\n\n if (node.type !== \"Program\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectExpression {\n if (!node) return false;\n\n if (node.type !== \"ObjectExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMethod(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectMethod {\n if (!node) return false;\n\n if (node.type !== \"ObjectMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRestElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RestElement {\n if (!node) return false;\n\n if (node.type !== \"RestElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isReturnStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ReturnStatement {\n if (!node) return false;\n\n if (node.type !== \"ReturnStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSequenceExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SequenceExpression {\n if (!node) return false;\n\n if (node.type !== \"SequenceExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isParenthesizedExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ParenthesizedExpression {\n if (!node) return false;\n\n if (node.type !== \"ParenthesizedExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchCase(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SwitchCase {\n if (!node) return false;\n\n if (node.type !== \"SwitchCase\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSwitchStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SwitchStatement {\n if (!node) return false;\n\n if (node.type !== \"SwitchStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThisExpression {\n if (!node) return false;\n\n if (node.type !== \"ThisExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThrowStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThrowStatement {\n if (!node) return false;\n\n if (node.type !== \"ThrowStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTryStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TryStatement {\n if (!node) return false;\n\n if (node.type !== \"TryStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnaryExpression {\n if (!node) return false;\n\n if (node.type !== \"UnaryExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUpdateExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UpdateExpression {\n if (!node) return false;\n\n if (node.type !== \"UpdateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VariableDeclaration {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariableDeclarator(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VariableDeclarator {\n if (!node) return false;\n\n if (node.type !== \"VariableDeclarator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhileStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.WhileStatement {\n if (!node) return false;\n\n if (node.type !== \"WhileStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWithStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.WithStatement {\n if (!node) return false;\n\n if (node.type !== \"WithStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAssignmentPattern(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AssignmentPattern {\n if (!node) return false;\n\n if (node.type !== \"AssignmentPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayPattern(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayPattern {\n if (!node) return false;\n\n if (node.type !== \"ArrayPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrowFunctionExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrowFunctionExpression {\n if (!node) return false;\n\n if (node.type !== \"ArrowFunctionExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassBody {\n if (!node) return false;\n\n if (node.type !== \"ClassBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassExpression {\n if (!node) return false;\n\n if (node.type !== \"ClassExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ClassDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDefaultDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamedDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportNamedDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ExportNamedDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForOfStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForOfStatement {\n if (!node) return false;\n\n if (node.type !== \"ForOfStatement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"ImportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ImportSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportExpression {\n if (!node) return false;\n\n if (node.type !== \"ImportExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMetaProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MetaProperty {\n if (!node) return false;\n\n if (node.type !== \"MetaProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassMethod(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectPattern(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectPattern {\n if (!node) return false;\n\n if (node.type !== \"ObjectPattern\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSpreadElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SpreadElement {\n if (!node) return false;\n\n if (node.type !== \"SpreadElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSuper(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Super {\n if (!node) return false;\n\n if (node.type !== \"Super\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTaggedTemplateExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TaggedTemplateExpression {\n if (!node) return false;\n\n if (node.type !== \"TaggedTemplateExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TemplateElement {\n if (!node) return false;\n\n if (node.type !== \"TemplateElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTemplateLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TemplateLiteral {\n if (!node) return false;\n\n if (node.type !== \"TemplateLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isYieldExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.YieldExpression {\n if (!node) return false;\n\n if (node.type !== \"YieldExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAwaitExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AwaitExpression {\n if (!node) return false;\n\n if (node.type !== \"AwaitExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImport(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Import {\n if (!node) return false;\n\n if (node.type !== \"Import\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBigIntLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BigIntLiteral {\n if (!node) return false;\n\n if (node.type !== \"BigIntLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportNamespaceSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportNamespaceSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportNamespaceSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalCallExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalCallExpression {\n if (!node) return false;\n\n if (node.type !== \"OptionalCallExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassAccessorProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassAccessorProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassAccessorProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassPrivateProperty {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassPrivateMethod(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassPrivateMethod {\n if (!node) return false;\n\n if (node.type !== \"ClassPrivateMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivateName(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PrivateName {\n if (!node) return false;\n\n if (node.type !== \"PrivateName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStaticBlock(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StaticBlock {\n if (!node) return false;\n\n if (node.type !== \"StaticBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAnyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.AnyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"AnyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArrayTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArrayTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ArrayTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBooleanLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BooleanLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"BooleanLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClassImplements(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ClassImplements {\n if (!node) return false;\n\n if (node.type !== \"ClassImplements\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareClass(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareClass {\n if (!node) return false;\n\n if (node.type !== \"DeclareClass\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"DeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareInterface(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareInterface {\n if (!node) return false;\n\n if (node.type !== \"DeclareInterface\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModule(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareModule {\n if (!node) return false;\n\n if (node.type !== \"DeclareModule\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareModuleExports(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareModuleExports {\n if (!node) return false;\n\n if (node.type !== \"DeclareModuleExports\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareTypeAlias {\n if (!node) return false;\n\n if (node.type !== \"DeclareTypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareOpaqueType {\n if (!node) return false;\n\n if (node.type !== \"DeclareOpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareVariable(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareVariable {\n if (!node) return false;\n\n if (node.type !== \"DeclareVariable\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclareExportAllDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclareExportAllDeclaration {\n if (!node) return false;\n\n if (node.type !== \"DeclareExportAllDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DeclaredPredicate {\n if (!node) return false;\n\n if (node.type !== \"DeclaredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExistsTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExistsTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ExistsTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionTypeParam(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionTypeParam {\n if (!node) return false;\n\n if (node.type !== \"FunctionTypeParam\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isGenericTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.GenericTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"GenericTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInferredPredicate(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InferredPredicate {\n if (!node) return false;\n\n if (node.type !== \"InferredPredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceExtends(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceExtends {\n if (!node) return false;\n\n if (node.type !== \"InterfaceExtends\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"InterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isInterfaceTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.InterfaceTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"InterfaceTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIntersectionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IntersectionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"IntersectionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMixedTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.MixedTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"MixedTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEmptyTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EmptyTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"EmptyTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNullableTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NullableTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NullableTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumberLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNumberTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.NumberTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"NumberTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeInternalSlot(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeInternalSlot {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeInternalSlot\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeCallProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeCallProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeCallProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeIndexer(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeIndexer {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeIndexer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectTypeSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectTypeSpreadProperty {\n if (!node) return false;\n\n if (node.type !== \"ObjectTypeSpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOpaqueType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OpaqueType {\n if (!node) return false;\n\n if (node.type !== \"OpaqueType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isQualifiedTypeIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.QualifiedTypeIdentifier {\n if (!node) return false;\n\n if (node.type !== \"QualifiedTypeIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringLiteralTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringLiteralTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringLiteralTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStringTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.StringTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"StringTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isSymbolTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.SymbolTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"SymbolTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isThisTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ThisTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"ThisTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TupleTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TupleTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeofTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeofTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeofTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAlias(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeAlias {\n if (!node) return false;\n\n if (node.type !== \"TypeAlias\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeCastExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeCastExpression {\n if (!node) return false;\n\n if (node.type !== \"TypeCastExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnionTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnionTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"UnionTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVariance(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Variance {\n if (!node) return false;\n\n if (node.type !== \"Variance\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isVoidTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.VoidTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"VoidTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"EnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBooleanBody {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumNumberBody {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumStringBody {\n if (!node) return false;\n\n if (node.type !== \"EnumStringBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumSymbolBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumSymbolBody {\n if (!node) return false;\n\n if (node.type !== \"EnumSymbolBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBooleanMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBooleanMember {\n if (!node) return false;\n\n if (node.type !== \"EnumBooleanMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumNumberMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumNumberMember {\n if (!node) return false;\n\n if (node.type !== \"EnumNumberMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumStringMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumStringMember {\n if (!node) return false;\n\n if (node.type !== \"EnumStringMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumDefaultedMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumDefaultedMember {\n if (!node) return false;\n\n if (node.type !== \"EnumDefaultedMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.IndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"IndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isOptionalIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.OptionalIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"OptionalIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXAttribute(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXClosingElement {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXElement {\n if (!node) return false;\n\n if (node.type !== \"JSXElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXEmptyExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXEmptyExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXEmptyExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXExpressionContainer(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXExpressionContainer {\n if (!node) return false;\n\n if (node.type !== \"JSXExpressionContainer\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadChild(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXSpreadChild {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadChild\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXIdentifier {\n if (!node) return false;\n\n if (node.type !== \"JSXIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXMemberExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXMemberExpression {\n if (!node) return false;\n\n if (node.type !== \"JSXMemberExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXNamespacedName(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXNamespacedName {\n if (!node) return false;\n\n if (node.type !== \"JSXNamespacedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXOpeningElement {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningElement\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXSpreadAttribute(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXSpreadAttribute {\n if (!node) return false;\n\n if (node.type !== \"JSXSpreadAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXText(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXText {\n if (!node) return false;\n\n if (node.type !== \"JSXText\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXFragment(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXOpeningFragment(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXOpeningFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXOpeningFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSXClosingFragment(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSXClosingFragment {\n if (!node) return false;\n\n if (node.type !== \"JSXClosingFragment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isNoop(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Noop {\n if (!node) return false;\n\n if (node.type !== \"Noop\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Placeholder {\n if (!node) return false;\n\n if (node.type !== \"Placeholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isV8IntrinsicIdentifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.V8IntrinsicIdentifier {\n if (!node) return false;\n\n if (node.type !== \"V8IntrinsicIdentifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isArgumentPlaceholder(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ArgumentPlaceholder {\n if (!node) return false;\n\n if (node.type !== \"ArgumentPlaceholder\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBindExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BindExpression {\n if (!node) return false;\n\n if (node.type !== \"BindExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportAttribute(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportAttribute {\n if (!node) return false;\n\n if (node.type !== \"ImportAttribute\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecorator(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Decorator {\n if (!node) return false;\n\n if (node.type !== \"Decorator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDoExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DoExpression {\n if (!node) return false;\n\n if (node.type !== \"DoExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDefaultSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDefaultSpecifier {\n if (!node) return false;\n\n if (node.type !== \"ExportDefaultSpecifier\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isRecordExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.RecordExpression {\n if (!node) return false;\n\n if (node.type !== \"RecordExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTupleExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TupleExpression {\n if (!node) return false;\n\n if (node.type !== \"TupleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDecimalLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.DecimalLiteral {\n if (!node) return false;\n\n if (node.type !== \"DecimalLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ModuleExpression {\n if (!node) return false;\n\n if (node.type !== \"ModuleExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TopicReference {\n if (!node) return false;\n\n if (node.type !== \"TopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineTopicExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelineTopicExpression {\n if (!node) return false;\n\n if (node.type !== \"PipelineTopicExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelineBareFunction(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelineBareFunction {\n if (!node) return false;\n\n if (node.type !== \"PipelineBareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPipelinePrimaryTopicReference(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PipelinePrimaryTopicReference {\n if (!node) return false;\n\n if (node.type !== \"PipelinePrimaryTopicReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParameterProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSParameterProperty {\n if (!node) return false;\n\n if (node.type !== \"TSParameterProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareFunction(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSDeclareFunction {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareFunction\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSDeclareMethod(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSDeclareMethod {\n if (!node) return false;\n\n if (node.type !== \"TSDeclareMethod\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSQualifiedName(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSQualifiedName {\n if (!node) return false;\n\n if (node.type !== \"TSQualifiedName\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSCallSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSCallSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSCallSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructSignatureDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConstructSignatureDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSConstructSignatureDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSPropertySignature(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSPropertySignature {\n if (!node) return false;\n\n if (node.type !== \"TSPropertySignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMethodSignature(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSMethodSignature {\n if (!node) return false;\n\n if (node.type !== \"TSMethodSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexSignature(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIndexSignature {\n if (!node) return false;\n\n if (node.type !== \"TSIndexSignature\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAnyKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSAnyKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSAnyKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBooleanKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBooleanKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBooleanKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBigIntKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBigIntKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSBigIntKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntrinsicKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIntrinsicKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSIntrinsicKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNeverKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNeverKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNeverKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNullKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNullKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNullKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNumberKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNumberKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSNumberKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSObjectKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSObjectKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSObjectKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSStringKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSStringKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSStringKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSymbolKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSSymbolKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSSymbolKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUndefinedKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUndefinedKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUndefinedKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnknownKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUnknownKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSUnknownKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSVoidKeyword(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSVoidKeyword {\n if (!node) return false;\n\n if (node.type !== \"TSVoidKeyword\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSThisType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSThisType {\n if (!node) return false;\n\n if (node.type !== \"TSThisType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSFunctionType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSFunctionType {\n if (!node) return false;\n\n if (node.type !== \"TSFunctionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConstructorType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConstructorType {\n if (!node) return false;\n\n if (node.type !== \"TSConstructorType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeReference(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeReference {\n if (!node) return false;\n\n if (node.type !== \"TSTypeReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypePredicate(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypePredicate {\n if (!node) return false;\n\n if (node.type !== \"TSTypePredicate\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeQuery(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeQuery {\n if (!node) return false;\n\n if (node.type !== \"TSTypeQuery\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeLiteral {\n if (!node) return false;\n\n if (node.type !== \"TSTypeLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSArrayType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSArrayType {\n if (!node) return false;\n\n if (node.type !== \"TSArrayType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTupleType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTupleType {\n if (!node) return false;\n\n if (node.type !== \"TSTupleType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSOptionalType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSOptionalType {\n if (!node) return false;\n\n if (node.type !== \"TSOptionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSRestType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSRestType {\n if (!node) return false;\n\n if (node.type !== \"TSRestType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamedTupleMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNamedTupleMember {\n if (!node) return false;\n\n if (node.type !== \"TSNamedTupleMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSUnionType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSUnionType {\n if (!node) return false;\n\n if (node.type !== \"TSUnionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIntersectionType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIntersectionType {\n if (!node) return false;\n\n if (node.type !== \"TSIntersectionType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSConditionalType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSConditionalType {\n if (!node) return false;\n\n if (node.type !== \"TSConditionalType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInferType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInferType {\n if (!node) return false;\n\n if (node.type !== \"TSInferType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSParenthesizedType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSParenthesizedType {\n if (!node) return false;\n\n if (node.type !== \"TSParenthesizedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeOperator(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeOperator {\n if (!node) return false;\n\n if (node.type !== \"TSTypeOperator\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSIndexedAccessType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSIndexedAccessType {\n if (!node) return false;\n\n if (node.type !== \"TSIndexedAccessType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSMappedType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSMappedType {\n if (!node) return false;\n\n if (node.type !== \"TSMappedType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSLiteralType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSLiteralType {\n if (!node) return false;\n\n if (node.type !== \"TSLiteralType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExpressionWithTypeArguments(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExpressionWithTypeArguments {\n if (!node) return false;\n\n if (node.type !== \"TSExpressionWithTypeArguments\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInterfaceDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInterfaceBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInterfaceBody {\n if (!node) return false;\n\n if (node.type !== \"TSInterfaceBody\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAliasDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAliasDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAliasDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSInstantiationExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSInstantiationExpression {\n if (!node) return false;\n\n if (node.type !== \"TSInstantiationExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSAsExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSAsExpression {\n if (!node) return false;\n\n if (node.type !== \"TSAsExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSSatisfiesExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSSatisfiesExpression {\n if (!node) return false;\n\n if (node.type !== \"TSSatisfiesExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAssertion(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAssertion {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAssertion\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEnumDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSEnumDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEnumMember {\n if (!node) return false;\n\n if (node.type !== \"TSEnumMember\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSModuleDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSModuleDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSModuleBlock(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSModuleBlock {\n if (!node) return false;\n\n if (node.type !== \"TSModuleBlock\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSImportType {\n if (!node) return false;\n\n if (node.type !== \"TSImportType\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSImportEqualsDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSImportEqualsDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSImportEqualsDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExternalModuleReference(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExternalModuleReference {\n if (!node) return false;\n\n if (node.type !== \"TSExternalModuleReference\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNonNullExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNonNullExpression {\n if (!node) return false;\n\n if (node.type !== \"TSNonNullExpression\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSExportAssignment(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSExportAssignment {\n if (!node) return false;\n\n if (node.type !== \"TSExportAssignment\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSNamespaceExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSNamespaceExportDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSNamespaceExportDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeAnnotation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeAnnotation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterInstantiation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameterInstantiation {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterInstantiation\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameterDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameterDeclaration {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameterDeclaration\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeParameter(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeParameter {\n if (!node) return false;\n\n if (node.type !== \"TSTypeParameter\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStandardized(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Standardized {\n if (!node) return false;\n\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"InterpreterDirective\":\n case \"Directive\":\n case \"DirectiveLiteral\":\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"CallExpression\":\n case \"CatchClause\":\n case \"ConditionalExpression\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"File\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"Program\":\n case \"ObjectExpression\":\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"RestElement\":\n case \"ReturnStatement\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"SwitchCase\":\n case \"SwitchStatement\":\n case \"ThisExpression\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"VariableDeclaration\":\n case \"VariableDeclarator\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ArrowFunctionExpression\":\n case \"ClassBody\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ExportSpecifier\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"ImportExpression\":\n case \"MetaProperty\":\n case \"ClassMethod\":\n case \"ObjectPattern\":\n case \"SpreadElement\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateElement\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"Import\":\n case \"BigIntLiteral\":\n case \"ExportNamespaceSpecifier\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n case \"StaticBlock\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Identifier\":\n case \"StringLiteral\":\n case \"BlockStatement\":\n case \"ClassBody\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpression(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Expression {\n if (!node) return false;\n\n switch (node.type) {\n case \"ArrayExpression\":\n case \"AssignmentExpression\":\n case \"BinaryExpression\":\n case \"CallExpression\":\n case \"ConditionalExpression\":\n case \"FunctionExpression\":\n case \"Identifier\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"LogicalExpression\":\n case \"MemberExpression\":\n case \"NewExpression\":\n case \"ObjectExpression\":\n case \"SequenceExpression\":\n case \"ParenthesizedExpression\":\n case \"ThisExpression\":\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"ImportExpression\":\n case \"MetaProperty\":\n case \"Super\":\n case \"TaggedTemplateExpression\":\n case \"TemplateLiteral\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n case \"Import\":\n case \"BigIntLiteral\":\n case \"OptionalMemberExpression\":\n case \"OptionalCallExpression\":\n case \"TypeCastExpression\":\n case \"JSXElement\":\n case \"JSXFragment\":\n case \"BindExpression\":\n case \"DoExpression\":\n case \"RecordExpression\":\n case \"TupleExpression\":\n case \"DecimalLiteral\":\n case \"ModuleExpression\":\n case \"TopicReference\":\n case \"PipelineTopicExpression\":\n case \"PipelineBareFunction\":\n case \"PipelinePrimaryTopicReference\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Expression\":\n case \"Identifier\":\n case \"StringLiteral\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBinary(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Binary {\n if (!node) return false;\n\n switch (node.type) {\n case \"BinaryExpression\":\n case \"LogicalExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isScopable(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Scopable {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlockParent(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.BlockParent {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"CatchClause\":\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"Program\":\n case \"ObjectMethod\":\n case \"SwitchStatement\":\n case \"WhileStatement\":\n case \"ArrowFunctionExpression\":\n case \"ForOfStatement\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isBlock(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Block {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"Program\":\n case \"TSModuleBlock\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"BlockStatement\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Statement {\n if (!node) return false;\n\n switch (node.type) {\n case \"BlockStatement\":\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"DebuggerStatement\":\n case \"DoWhileStatement\":\n case \"EmptyStatement\":\n case \"ExpressionStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"FunctionDeclaration\":\n case \"IfStatement\":\n case \"LabeledStatement\":\n case \"ReturnStatement\":\n case \"SwitchStatement\":\n case \"ThrowStatement\":\n case \"TryStatement\":\n case \"VariableDeclaration\":\n case \"WhileStatement\":\n case \"WithStatement\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ForOfStatement\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Statement\":\n case \"Declaration\":\n case \"BlockStatement\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTerminatorless(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Terminatorless {\n if (!node) return false;\n\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n case \"YieldExpression\":\n case \"AwaitExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isCompletionStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.CompletionStatement {\n if (!node) return false;\n\n switch (node.type) {\n case \"BreakStatement\":\n case \"ContinueStatement\":\n case \"ReturnStatement\":\n case \"ThrowStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isConditional(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Conditional {\n if (!node) return false;\n\n switch (node.type) {\n case \"ConditionalExpression\":\n case \"IfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLoop(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Loop {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"WhileStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isWhile(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.While {\n if (!node) return false;\n\n switch (node.type) {\n case \"DoWhileStatement\":\n case \"WhileStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExpressionWrapper(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExpressionWrapper {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExpressionStatement\":\n case \"ParenthesizedExpression\":\n case \"TypeCastExpression\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFor(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.For {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isForXStatement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ForXStatement {\n if (!node) return false;\n\n switch (node.type) {\n case \"ForInStatement\":\n case \"ForOfStatement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunction(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Function {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFunctionParent(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FunctionParent {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"ObjectMethod\":\n case \"ArrowFunctionExpression\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"StaticBlock\":\n case \"TSModuleBlock\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPureish(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Pureish {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"ArrowFunctionExpression\":\n case \"BigIntLiteral\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Declaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"FunctionDeclaration\":\n case \"VariableDeclaration\":\n case \"ClassDeclaration\":\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n case \"EnumDeclaration\":\n case \"TSDeclareFunction\":\n case \"TSInterfaceDeclaration\":\n case \"TSTypeAliasDeclaration\":\n case \"TSEnumDeclaration\":\n case \"TSModuleDeclaration\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Declaration\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPatternLike(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.PatternLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLVal(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.LVal {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"MemberExpression\":\n case \"RestElement\":\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n case \"TSParameterProperty\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n break;\n case \"Placeholder\":\n switch (node.expectedNode) {\n case \"Pattern\":\n case \"Identifier\":\n break;\n default:\n return false;\n }\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSEntityName(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSEntityName {\n if (!node) return false;\n\n switch (node.type) {\n case \"Identifier\":\n case \"TSQualifiedName\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Identifier\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Literal {\n if (!node) return false;\n\n switch (node.type) {\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"RegExpLiteral\":\n case \"TemplateLiteral\":\n case \"BigIntLiteral\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImmutable(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Immutable {\n if (!node) return false;\n\n switch (node.type) {\n case \"StringLiteral\":\n case \"NumericLiteral\":\n case \"NullLiteral\":\n case \"BooleanLiteral\":\n case \"BigIntLiteral\":\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXOpeningElement\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n case \"DecimalLiteral\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"StringLiteral\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUserWhitespacable(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UserWhitespacable {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMethod(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Method {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isObjectMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ObjectMember {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectMethod\":\n case \"ObjectProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Property {\n if (!node) return false;\n\n switch (node.type) {\n case \"ObjectProperty\":\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n case \"ClassPrivateProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isUnaryLike(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.UnaryLike {\n if (!node) return false;\n\n switch (node.type) {\n case \"UnaryExpression\":\n case \"SpreadElement\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPattern(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Pattern {\n if (!node) return false;\n\n switch (node.type) {\n case \"AssignmentPattern\":\n case \"ArrayPattern\":\n case \"ObjectPattern\":\n break;\n case \"Placeholder\":\n if (node.expectedNode === \"Pattern\") break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isClass(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Class {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isImportOrExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportOrExportDeclaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n case \"ImportDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isExportDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ExportDeclaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportAllDeclaration\":\n case \"ExportDefaultDeclaration\":\n case \"ExportNamedDeclaration\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isModuleSpecifier(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ModuleSpecifier {\n if (!node) return false;\n\n switch (node.type) {\n case \"ExportSpecifier\":\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isAccessor(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Accessor {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassAccessorProperty\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isPrivate(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Private {\n if (!node) return false;\n\n switch (node.type) {\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n case \"PrivateName\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlow(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Flow {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ClassImplements\":\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"DeclaredPredicate\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"FunctionTypeParam\":\n case \"GenericTypeAnnotation\":\n case \"InferredPredicate\":\n case \"InterfaceExtends\":\n case \"InterfaceDeclaration\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"ObjectTypeInternalSlot\":\n case \"ObjectTypeCallProperty\":\n case \"ObjectTypeIndexer\":\n case \"ObjectTypeProperty\":\n case \"ObjectTypeSpreadProperty\":\n case \"OpaqueType\":\n case \"QualifiedTypeIdentifier\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"TypeAlias\":\n case \"TypeAnnotation\":\n case \"TypeCastExpression\":\n case \"TypeParameter\":\n case \"TypeParameterDeclaration\":\n case \"TypeParameterInstantiation\":\n case \"UnionTypeAnnotation\":\n case \"Variance\":\n case \"VoidTypeAnnotation\":\n case \"EnumDeclaration\":\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowType {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"ArrayTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"BooleanLiteralTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"ExistsTypeAnnotation\":\n case \"FunctionTypeAnnotation\":\n case \"GenericTypeAnnotation\":\n case \"InterfaceTypeAnnotation\":\n case \"IntersectionTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NullableTypeAnnotation\":\n case \"NumberLiteralTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"ObjectTypeAnnotation\":\n case \"StringLiteralTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"TupleTypeAnnotation\":\n case \"TypeofTypeAnnotation\":\n case \"UnionTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n case \"IndexedAccessType\":\n case \"OptionalIndexedAccessType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowBaseAnnotation(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowBaseAnnotation {\n if (!node) return false;\n\n switch (node.type) {\n case \"AnyTypeAnnotation\":\n case \"BooleanTypeAnnotation\":\n case \"NullLiteralTypeAnnotation\":\n case \"MixedTypeAnnotation\":\n case \"EmptyTypeAnnotation\":\n case \"NumberTypeAnnotation\":\n case \"StringTypeAnnotation\":\n case \"SymbolTypeAnnotation\":\n case \"ThisTypeAnnotation\":\n case \"VoidTypeAnnotation\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowDeclaration {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclareClass\":\n case \"DeclareFunction\":\n case \"DeclareInterface\":\n case \"DeclareModule\":\n case \"DeclareModuleExports\":\n case \"DeclareTypeAlias\":\n case \"DeclareOpaqueType\":\n case \"DeclareVariable\":\n case \"DeclareExportDeclaration\":\n case \"DeclareExportAllDeclaration\":\n case \"InterfaceDeclaration\":\n case \"OpaqueType\":\n case \"TypeAlias\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isFlowPredicate(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.FlowPredicate {\n if (!node) return false;\n\n switch (node.type) {\n case \"DeclaredPredicate\":\n case \"InferredPredicate\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumBody(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumBody {\n if (!node) return false;\n\n switch (node.type) {\n case \"EnumBooleanBody\":\n case \"EnumNumberBody\":\n case \"EnumStringBody\":\n case \"EnumSymbolBody\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isEnumMember(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.EnumMember {\n if (!node) return false;\n\n switch (node.type) {\n case \"EnumBooleanMember\":\n case \"EnumNumberMember\":\n case \"EnumStringMember\":\n case \"EnumDefaultedMember\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isJSX(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.JSX {\n if (!node) return false;\n\n switch (node.type) {\n case \"JSXAttribute\":\n case \"JSXClosingElement\":\n case \"JSXElement\":\n case \"JSXEmptyExpression\":\n case \"JSXExpressionContainer\":\n case \"JSXSpreadChild\":\n case \"JSXIdentifier\":\n case \"JSXMemberExpression\":\n case \"JSXNamespacedName\":\n case \"JSXOpeningElement\":\n case \"JSXSpreadAttribute\":\n case \"JSXText\":\n case \"JSXFragment\":\n case \"JSXOpeningFragment\":\n case \"JSXClosingFragment\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isMiscellaneous(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.Miscellaneous {\n if (!node) return false;\n\n switch (node.type) {\n case \"Noop\":\n case \"Placeholder\":\n case \"V8IntrinsicIdentifier\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTypeScript(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TypeScript {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSParameterProperty\":\n case \"TSDeclareFunction\":\n case \"TSDeclareMethod\":\n case \"TSQualifiedName\":\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSNamedTupleMember\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSInterfaceDeclaration\":\n case \"TSInterfaceBody\":\n case \"TSTypeAliasDeclaration\":\n case \"TSInstantiationExpression\":\n case \"TSAsExpression\":\n case \"TSSatisfiesExpression\":\n case \"TSTypeAssertion\":\n case \"TSEnumDeclaration\":\n case \"TSEnumMember\":\n case \"TSModuleDeclaration\":\n case \"TSModuleBlock\":\n case \"TSImportType\":\n case \"TSImportEqualsDeclaration\":\n case \"TSExternalModuleReference\":\n case \"TSNonNullExpression\":\n case \"TSExportAssignment\":\n case \"TSNamespaceExportDeclaration\":\n case \"TSTypeAnnotation\":\n case \"TSTypeParameterInstantiation\":\n case \"TSTypeParameterDeclaration\":\n case \"TSTypeParameter\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSTypeElement(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSTypeElement {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSCallSignatureDeclaration\":\n case \"TSConstructSignatureDeclaration\":\n case \"TSPropertySignature\":\n case \"TSMethodSignature\":\n case \"TSIndexSignature\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSType {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSFunctionType\":\n case \"TSConstructorType\":\n case \"TSTypeReference\":\n case \"TSTypePredicate\":\n case \"TSTypeQuery\":\n case \"TSTypeLiteral\":\n case \"TSArrayType\":\n case \"TSTupleType\":\n case \"TSOptionalType\":\n case \"TSRestType\":\n case \"TSUnionType\":\n case \"TSIntersectionType\":\n case \"TSConditionalType\":\n case \"TSInferType\":\n case \"TSParenthesizedType\":\n case \"TSTypeOperator\":\n case \"TSIndexedAccessType\":\n case \"TSMappedType\":\n case \"TSLiteralType\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSImportType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\nexport function isTSBaseType(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.TSBaseType {\n if (!node) return false;\n\n switch (node.type) {\n case \"TSAnyKeyword\":\n case \"TSBooleanKeyword\":\n case \"TSBigIntKeyword\":\n case \"TSIntrinsicKeyword\":\n case \"TSNeverKeyword\":\n case \"TSNullKeyword\":\n case \"TSNumberKeyword\":\n case \"TSObjectKeyword\":\n case \"TSStringKeyword\":\n case \"TSSymbolKeyword\":\n case \"TSUndefinedKeyword\":\n case \"TSUnknownKeyword\":\n case \"TSVoidKeyword\":\n case \"TSThisType\":\n case \"TSLiteralType\":\n break;\n default:\n return false;\n }\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isNumericLiteral`\n */\nexport function isNumberLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isNumberLiteral\", \"isNumericLiteral\");\n if (!node) return false;\n\n if (node.type !== \"NumberLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRegExpLiteral`\n */\nexport function isRegexLiteral(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isRegexLiteral\", \"isRegExpLiteral\");\n if (!node) return false;\n\n if (node.type !== \"RegexLiteral\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isRestElement`\n */\nexport function isRestProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isRestProperty\", \"isRestElement\");\n if (!node) return false;\n\n if (node.type !== \"RestProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isSpreadElement`\n */\nexport function isSpreadProperty(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): boolean {\n deprecationWarning(\"isSpreadProperty\", \"isSpreadElement\");\n if (!node) return false;\n\n if (node.type !== \"SpreadProperty\") return false;\n\n return opts == null || shallowEqual(node, opts);\n}\n/**\n * @deprecated Use `isImportOrExportDeclaration`\n */\nexport function isModuleDeclaration(\n node: t.Node | null | undefined,\n opts?: Opts | null,\n): node is t.ImportOrExportDeclaration {\n deprecationWarning(\"isModuleDeclaration\", \"isImportOrExportDeclaration\");\n return isImportOrExportDeclaration(node, opts);\n}\n","import {\n isIdentifier,\n isMemberExpression,\n isStringLiteral,\n isThisExpression,\n} from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Determines whether or not the input node `member` matches the\n * input `match`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\nexport default function matchesPattern(\n member: t.Node | null | undefined,\n match: string | string[],\n allowPartial?: boolean,\n): boolean {\n // not a member expression\n if (!isMemberExpression(member)) return false;\n\n const parts = Array.isArray(match) ? match : match.split(\".\");\n const nodes = [];\n\n let node;\n for (node = member; isMemberExpression(node); node = node.object) {\n nodes.push(node.property);\n }\n nodes.push(node);\n\n if (nodes.length < parts.length) return false;\n if (!allowPartial && nodes.length > parts.length) return false;\n\n for (let i = 0, j = nodes.length - 1; i < parts.length; i++, j--) {\n const node = nodes[j];\n let value;\n if (isIdentifier(node)) {\n value = node.name;\n } else if (isStringLiteral(node)) {\n value = node.value;\n } else if (isThisExpression(node)) {\n value = \"this\";\n } else {\n return false;\n }\n\n if (parts[i] !== value) return false;\n }\n\n return true;\n}\n","import matchesPattern from \"./matchesPattern.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Build a function that when called will return whether or not the\n * input `node` `MemberExpression` matches the input `match`.\n *\n * For example, given the match `React.createClass` it would match the\n * parsed nodes of `React.createClass` and `React[\"createClass\"]`.\n */\nexport default function buildMatchMemberExpression(\n match: string,\n allowPartial?: boolean,\n) {\n const parts = match.split(\".\");\n\n return (member: t.Node) => matchesPattern(member, parts, allowPartial);\n}\n","import buildMatchMemberExpression from \"../buildMatchMemberExpression.ts\";\n\nconst isReactComponent = buildMatchMemberExpression(\"React.Component\");\n\nexport default isReactComponent;\n","export default function isCompatTag(tagName?: string): boolean {\n // Must start with a lowercase ASCII letter\n return !!tagName && /^[a-z]/.test(tagName);\n}\n","'use strict';\n\nlet fastProto = null;\n\n// Creates an object with permanently fast properties in V8. See Toon Verwaest's\n// post https://medium.com/@tverwaes/setting-up-prototypes-in-v8-ec9c9491dfe2#5f62\n// for more details. Use %HasFastProperties(object) and the Node.js flag\n// --allow-natives-syntax to check whether an object has fast properties.\nfunction FastObject(o) {\n\t// A prototype object will have \"fast properties\" enabled once it is checked\n\t// against the inline property cache of a function, e.g. fastProto.property:\n\t// https://github.com/v8/v8/blob/6.0.122/test/mjsunit/fast-prototype.js#L48-L63\n\tif (fastProto !== null && typeof fastProto.property) {\n\t\tconst result = fastProto;\n\t\tfastProto = FastObject.prototype = null;\n\t\treturn result;\n\t}\n\tfastProto = FastObject.prototype = o == null ? Object.create(null) : o;\n\treturn new FastObject;\n}\n\n// Initialize the inline property cache of FastObject\nFastObject();\n\nmodule.exports = function toFastproperties(o) {\n\treturn FastObject(o);\n};\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"to-fast-properties-BABEL_8_BREAKING-true\")\n : require(\"to-fast-properties-BABEL_8_BREAKING-false\");\n","import { FLIPPED_ALIAS_KEYS, ALIAS_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function isType(\n nodeType: string,\n targetType: T,\n): nodeType is T;\n\nexport default function isType(\n nodeType: string | null | undefined,\n targetType: string,\n): boolean;\n\n/**\n * Test if a `nodeType` is a `targetType` or if `targetType` is an alias of `nodeType`.\n */\nexport default function isType(nodeType: string, targetType: string): boolean {\n if (nodeType === targetType) return true;\n\n // If nodeType is nullish, it can't be an alias of targetType.\n if (nodeType == null) return false;\n\n // This is a fast-path. If the test above failed, but an alias key is found, then the\n // targetType was a primary node type, so there's no need to check the aliases.\n // @ts-expect-error targetType may not index ALIAS_KEYS\n if (ALIAS_KEYS[targetType]) return false;\n\n const aliases: Array | undefined = FLIPPED_ALIAS_KEYS[targetType];\n if (aliases) {\n if (aliases[0] === nodeType) return true;\n\n for (const alias of aliases) {\n if (nodeType === alias) return true;\n }\n }\n\n return false;\n}\n","import { PLACEHOLDERS_ALIAS } from \"../definitions/index.ts\";\n\n/**\n * Test if a `placeholderType` is a `targetType` or if `targetType` is an alias of `placeholderType`.\n */\nexport default function isPlaceholderType(\n placeholderType: string,\n targetType: string,\n): boolean {\n if (placeholderType === targetType) return true;\n\n const aliases: Array | undefined =\n PLACEHOLDERS_ALIAS[placeholderType];\n if (aliases) {\n for (const alias of aliases) {\n if (targetType === alias) return true;\n }\n }\n\n return false;\n}\n","import shallowEqual from \"../utils/shallowEqual.ts\";\nimport isType from \"./isType.ts\";\nimport isPlaceholderType from \"./isPlaceholderType.ts\";\nimport { FLIPPED_ALIAS_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function is(\n type: T,\n node: t.Node | null | undefined,\n opts?: undefined,\n): node is Extract;\n\nexport default function is<\n T extends t.Node[\"type\"],\n P extends Extract,\n>(type: T, n: t.Node | null | undefined, required: Partial

): n is P;\n\nexport default function is

(\n type: string,\n node: t.Node | null | undefined,\n opts: Partial

,\n): node is P;\n\nexport default function is(\n type: string,\n node: t.Node | null | undefined,\n opts?: Partial,\n): node is t.Node;\n/**\n * Returns whether `node` is of given `type`.\n *\n * For better performance, use this instead of `is[Type]` when `type` is unknown.\n */\nexport default function is(\n type: string,\n node: t.Node | null | undefined,\n opts?: Partial,\n): node is t.Node {\n if (!node) return false;\n\n const matches = isType(node.type, type);\n if (!matches) {\n if (!opts && node.type === \"Placeholder\" && type in FLIPPED_ALIAS_KEYS) {\n // We can only return true if the placeholder doesn't replace a real node,\n // but it replaces a category of nodes (an alias).\n //\n // t.is(\"Identifier\", node) gives some guarantees about node's shape, so we\n // can't say that Placeholder(expectedNode: \"Identifier\") is an identifier\n // because it doesn't have the same properties.\n // On the other hand, t.is(\"Expression\", node) doesn't say anything about\n // the shape of node because Expression can be many different nodes: we can,\n // and should, safely report expression placeholders as Expressions.\n return isPlaceholderType(node.expectedNode, type);\n }\n return false;\n }\n\n if (typeof opts === \"undefined\") {\n return true;\n } else {\n return shallowEqual(node, opts);\n }\n}\n","import * as charCodes from \"charcodes\";\n\n// ## Character categories\n\n// Big ugly regular expressions that match characters in the\n// whitespace, identifier, and identifier-start categories. These\n// are only applied when a character is found to actually have a\n// code point between 0x80 and 0xffff.\n// Generated by `scripts/generate-identifier-regex.js`.\n\n/* prettier-ignore */\nlet nonASCIIidentifierStartChars = \"\\xaa\\xb5\\xba\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02c1\\u02c6-\\u02d1\\u02e0-\\u02e4\\u02ec\\u02ee\\u0370-\\u0374\\u0376\\u0377\\u037a-\\u037d\\u037f\\u0386\\u0388-\\u038a\\u038c\\u038e-\\u03a1\\u03a3-\\u03f5\\u03f7-\\u0481\\u048a-\\u052f\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05d0-\\u05ea\\u05ef-\\u05f2\\u0620-\\u064a\\u066e\\u066f\\u0671-\\u06d3\\u06d5\\u06e5\\u06e6\\u06ee\\u06ef\\u06fa-\\u06fc\\u06ff\\u0710\\u0712-\\u072f\\u074d-\\u07a5\\u07b1\\u07ca-\\u07ea\\u07f4\\u07f5\\u07fa\\u0800-\\u0815\\u081a\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086a\\u0870-\\u0887\\u0889-\\u088e\\u08a0-\\u08c9\\u0904-\\u0939\\u093d\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098c\\u098f\\u0990\\u0993-\\u09a8\\u09aa-\\u09b0\\u09b2\\u09b6-\\u09b9\\u09bd\\u09ce\\u09dc\\u09dd\\u09df-\\u09e1\\u09f0\\u09f1\\u09fc\\u0a05-\\u0a0a\\u0a0f\\u0a10\\u0a13-\\u0a28\\u0a2a-\\u0a30\\u0a32\\u0a33\\u0a35\\u0a36\\u0a38\\u0a39\\u0a59-\\u0a5c\\u0a5e\\u0a72-\\u0a74\\u0a85-\\u0a8d\\u0a8f-\\u0a91\\u0a93-\\u0aa8\\u0aaa-\\u0ab0\\u0ab2\\u0ab3\\u0ab5-\\u0ab9\\u0abd\\u0ad0\\u0ae0\\u0ae1\\u0af9\\u0b05-\\u0b0c\\u0b0f\\u0b10\\u0b13-\\u0b28\\u0b2a-\\u0b30\\u0b32\\u0b33\\u0b35-\\u0b39\\u0b3d\\u0b5c\\u0b5d\\u0b5f-\\u0b61\\u0b71\\u0b83\\u0b85-\\u0b8a\\u0b8e-\\u0b90\\u0b92-\\u0b95\\u0b99\\u0b9a\\u0b9c\\u0b9e\\u0b9f\\u0ba3\\u0ba4\\u0ba8-\\u0baa\\u0bae-\\u0bb9\\u0bd0\\u0c05-\\u0c0c\\u0c0e-\\u0c10\\u0c12-\\u0c28\\u0c2a-\\u0c39\\u0c3d\\u0c58-\\u0c5a\\u0c5d\\u0c60\\u0c61\\u0c80\\u0c85-\\u0c8c\\u0c8e-\\u0c90\\u0c92-\\u0ca8\\u0caa-\\u0cb3\\u0cb5-\\u0cb9\\u0cbd\\u0cdd\\u0cde\\u0ce0\\u0ce1\\u0cf1\\u0cf2\\u0d04-\\u0d0c\\u0d0e-\\u0d10\\u0d12-\\u0d3a\\u0d3d\\u0d4e\\u0d54-\\u0d56\\u0d5f-\\u0d61\\u0d7a-\\u0d7f\\u0d85-\\u0d96\\u0d9a-\\u0db1\\u0db3-\\u0dbb\\u0dbd\\u0dc0-\\u0dc6\\u0e01-\\u0e30\\u0e32\\u0e33\\u0e40-\\u0e46\\u0e81\\u0e82\\u0e84\\u0e86-\\u0e8a\\u0e8c-\\u0ea3\\u0ea5\\u0ea7-\\u0eb0\\u0eb2\\u0eb3\\u0ebd\\u0ec0-\\u0ec4\\u0ec6\\u0edc-\\u0edf\\u0f00\\u0f40-\\u0f47\\u0f49-\\u0f6c\\u0f88-\\u0f8c\\u1000-\\u102a\\u103f\\u1050-\\u1055\\u105a-\\u105d\\u1061\\u1065\\u1066\\u106e-\\u1070\\u1075-\\u1081\\u108e\\u10a0-\\u10c5\\u10c7\\u10cd\\u10d0-\\u10fa\\u10fc-\\u1248\\u124a-\\u124d\\u1250-\\u1256\\u1258\\u125a-\\u125d\\u1260-\\u1288\\u128a-\\u128d\\u1290-\\u12b0\\u12b2-\\u12b5\\u12b8-\\u12be\\u12c0\\u12c2-\\u12c5\\u12c8-\\u12d6\\u12d8-\\u1310\\u1312-\\u1315\\u1318-\\u135a\\u1380-\\u138f\\u13a0-\\u13f5\\u13f8-\\u13fd\\u1401-\\u166c\\u166f-\\u167f\\u1681-\\u169a\\u16a0-\\u16ea\\u16ee-\\u16f8\\u1700-\\u1711\\u171f-\\u1731\\u1740-\\u1751\\u1760-\\u176c\\u176e-\\u1770\\u1780-\\u17b3\\u17d7\\u17dc\\u1820-\\u1878\\u1880-\\u18a8\\u18aa\\u18b0-\\u18f5\\u1900-\\u191e\\u1950-\\u196d\\u1970-\\u1974\\u1980-\\u19ab\\u19b0-\\u19c9\\u1a00-\\u1a16\\u1a20-\\u1a54\\u1aa7\\u1b05-\\u1b33\\u1b45-\\u1b4c\\u1b83-\\u1ba0\\u1bae\\u1baf\\u1bba-\\u1be5\\u1c00-\\u1c23\\u1c4d-\\u1c4f\\u1c5a-\\u1c7d\\u1c80-\\u1c88\\u1c90-\\u1cba\\u1cbd-\\u1cbf\\u1ce9-\\u1cec\\u1cee-\\u1cf3\\u1cf5\\u1cf6\\u1cfa\\u1d00-\\u1dbf\\u1e00-\\u1f15\\u1f18-\\u1f1d\\u1f20-\\u1f45\\u1f48-\\u1f4d\\u1f50-\\u1f57\\u1f59\\u1f5b\\u1f5d\\u1f5f-\\u1f7d\\u1f80-\\u1fb4\\u1fb6-\\u1fbc\\u1fbe\\u1fc2-\\u1fc4\\u1fc6-\\u1fcc\\u1fd0-\\u1fd3\\u1fd6-\\u1fdb\\u1fe0-\\u1fec\\u1ff2-\\u1ff4\\u1ff6-\\u1ffc\\u2071\\u207f\\u2090-\\u209c\\u2102\\u2107\\u210a-\\u2113\\u2115\\u2118-\\u211d\\u2124\\u2126\\u2128\\u212a-\\u2139\\u213c-\\u213f\\u2145-\\u2149\\u214e\\u2160-\\u2188\\u2c00-\\u2ce4\\u2ceb-\\u2cee\\u2cf2\\u2cf3\\u2d00-\\u2d25\\u2d27\\u2d2d\\u2d30-\\u2d67\\u2d6f\\u2d80-\\u2d96\\u2da0-\\u2da6\\u2da8-\\u2dae\\u2db0-\\u2db6\\u2db8-\\u2dbe\\u2dc0-\\u2dc6\\u2dc8-\\u2dce\\u2dd0-\\u2dd6\\u2dd8-\\u2dde\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303c\\u3041-\\u3096\\u309b-\\u309f\\u30a1-\\u30fa\\u30fc-\\u30ff\\u3105-\\u312f\\u3131-\\u318e\\u31a0-\\u31bf\\u31f0-\\u31ff\\u3400-\\u4dbf\\u4e00-\\ua48c\\ua4d0-\\ua4fd\\ua500-\\ua60c\\ua610-\\ua61f\\ua62a\\ua62b\\ua640-\\ua66e\\ua67f-\\ua69d\\ua6a0-\\ua6ef\\ua717-\\ua71f\\ua722-\\ua788\\ua78b-\\ua7ca\\ua7d0\\ua7d1\\ua7d3\\ua7d5-\\ua7d9\\ua7f2-\\ua801\\ua803-\\ua805\\ua807-\\ua80a\\ua80c-\\ua822\\ua840-\\ua873\\ua882-\\ua8b3\\ua8f2-\\ua8f7\\ua8fb\\ua8fd\\ua8fe\\ua90a-\\ua925\\ua930-\\ua946\\ua960-\\ua97c\\ua984-\\ua9b2\\ua9cf\\ua9e0-\\ua9e4\\ua9e6-\\ua9ef\\ua9fa-\\ua9fe\\uaa00-\\uaa28\\uaa40-\\uaa42\\uaa44-\\uaa4b\\uaa60-\\uaa76\\uaa7a\\uaa7e-\\uaaaf\\uaab1\\uaab5\\uaab6\\uaab9-\\uaabd\\uaac0\\uaac2\\uaadb-\\uaadd\\uaae0-\\uaaea\\uaaf2-\\uaaf4\\uab01-\\uab06\\uab09-\\uab0e\\uab11-\\uab16\\uab20-\\uab26\\uab28-\\uab2e\\uab30-\\uab5a\\uab5c-\\uab69\\uab70-\\uabe2\\uac00-\\ud7a3\\ud7b0-\\ud7c6\\ud7cb-\\ud7fb\\uf900-\\ufa6d\\ufa70-\\ufad9\\ufb00-\\ufb06\\ufb13-\\ufb17\\ufb1d\\ufb1f-\\ufb28\\ufb2a-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40\\ufb41\\ufb43\\ufb44\\ufb46-\\ufbb1\\ufbd3-\\ufd3d\\ufd50-\\ufd8f\\ufd92-\\ufdc7\\ufdf0-\\ufdfb\\ufe70-\\ufe74\\ufe76-\\ufefc\\uff21-\\uff3a\\uff41-\\uff5a\\uff66-\\uffbe\\uffc2-\\uffc7\\uffca-\\uffcf\\uffd2-\\uffd7\\uffda-\\uffdc\";\n/* prettier-ignore */\nlet nonASCIIidentifierChars = \"\\u200c\\u200d\\xb7\\u0300-\\u036f\\u0387\\u0483-\\u0487\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u0669\\u0670\\u06d6-\\u06dc\\u06df-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u06f0-\\u06f9\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07c0-\\u07c9\\u07eb-\\u07f3\\u07fd\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0859-\\u085b\\u0898-\\u089f\\u08ca-\\u08e1\\u08e3-\\u0903\\u093a-\\u093c\\u093e-\\u094f\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096f\\u0981-\\u0983\\u09bc\\u09be-\\u09c4\\u09c7\\u09c8\\u09cb-\\u09cd\\u09d7\\u09e2\\u09e3\\u09e6-\\u09ef\\u09fe\\u0a01-\\u0a03\\u0a3c\\u0a3e-\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a66-\\u0a71\\u0a75\\u0a81-\\u0a83\\u0abc\\u0abe-\\u0ac5\\u0ac7-\\u0ac9\\u0acb-\\u0acd\\u0ae2\\u0ae3\\u0ae6-\\u0aef\\u0afa-\\u0aff\\u0b01-\\u0b03\\u0b3c\\u0b3e-\\u0b44\\u0b47\\u0b48\\u0b4b-\\u0b4d\\u0b55-\\u0b57\\u0b62\\u0b63\\u0b66-\\u0b6f\\u0b82\\u0bbe-\\u0bc2\\u0bc6-\\u0bc8\\u0bca-\\u0bcd\\u0bd7\\u0be6-\\u0bef\\u0c00-\\u0c04\\u0c3c\\u0c3e-\\u0c44\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0c66-\\u0c6f\\u0c81-\\u0c83\\u0cbc\\u0cbe-\\u0cc4\\u0cc6-\\u0cc8\\u0cca-\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0ce6-\\u0cef\\u0cf3\\u0d00-\\u0d03\\u0d3b\\u0d3c\\u0d3e-\\u0d44\\u0d46-\\u0d48\\u0d4a-\\u0d4d\\u0d57\\u0d62\\u0d63\\u0d66-\\u0d6f\\u0d81-\\u0d83\\u0dca\\u0dcf-\\u0dd4\\u0dd6\\u0dd8-\\u0ddf\\u0de6-\\u0def\\u0df2\\u0df3\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0e50-\\u0e59\\u0eb1\\u0eb4-\\u0ebc\\u0ec8-\\u0ece\\u0ed0-\\u0ed9\\u0f18\\u0f19\\u0f20-\\u0f29\\u0f35\\u0f37\\u0f39\\u0f3e\\u0f3f\\u0f71-\\u0f84\\u0f86\\u0f87\\u0f8d-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102b-\\u103e\\u1040-\\u1049\\u1056-\\u1059\\u105e-\\u1060\\u1062-\\u1064\\u1067-\\u106d\\u1071-\\u1074\\u1082-\\u108d\\u108f-\\u109d\\u135d-\\u135f\\u1369-\\u1371\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b4-\\u17d3\\u17dd\\u17e0-\\u17e9\\u180b-\\u180d\\u180f-\\u1819\\u18a9\\u1920-\\u192b\\u1930-\\u193b\\u1946-\\u194f\\u19d0-\\u19da\\u1a17-\\u1a1b\\u1a55-\\u1a5e\\u1a60-\\u1a7c\\u1a7f-\\u1a89\\u1a90-\\u1a99\\u1ab0-\\u1abd\\u1abf-\\u1ace\\u1b00-\\u1b04\\u1b34-\\u1b44\\u1b50-\\u1b59\\u1b6b-\\u1b73\\u1b80-\\u1b82\\u1ba1-\\u1bad\\u1bb0-\\u1bb9\\u1be6-\\u1bf3\\u1c24-\\u1c37\\u1c40-\\u1c49\\u1c50-\\u1c59\\u1cd0-\\u1cd2\\u1cd4-\\u1ce8\\u1ced\\u1cf4\\u1cf7-\\u1cf9\\u1dc0-\\u1dff\\u200c\\u200d\\u203f\\u2040\\u2054\\u20d0-\\u20dc\\u20e1\\u20e5-\\u20f0\\u2cef-\\u2cf1\\u2d7f\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\u30fb\\ua620-\\ua629\\ua66f\\ua674-\\ua67d\\ua69e\\ua69f\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua823-\\ua827\\ua82c\\ua880\\ua881\\ua8b4-\\ua8c5\\ua8d0-\\ua8d9\\ua8e0-\\ua8f1\\ua8ff-\\ua909\\ua926-\\ua92d\\ua947-\\ua953\\ua980-\\ua983\\ua9b3-\\ua9c0\\ua9d0-\\ua9d9\\ua9e5\\ua9f0-\\ua9f9\\uaa29-\\uaa36\\uaa43\\uaa4c\\uaa4d\\uaa50-\\uaa59\\uaa7b-\\uaa7d\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uaaeb-\\uaaef\\uaaf5\\uaaf6\\uabe3-\\uabea\\uabec\\uabed\\uabf0-\\uabf9\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe2f\\ufe33\\ufe34\\ufe4d-\\ufe4f\\uff10-\\uff19\\uff3f\\uff65\";\n\nconst nonASCIIidentifierStart = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + \"]\",\n);\nconst nonASCIIidentifier = new RegExp(\n \"[\" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + \"]\",\n);\n\nnonASCIIidentifierStartChars = nonASCIIidentifierChars = null;\n\n// These are a run-length and offset-encoded representation of the\n// >0xffff code points that are a valid part of identifiers. The\n// offset starts at 0x10000, and each pair of numbers represents an\n// offset to the next range, and then a size of the range. They were\n// generated by `scripts/generate-identifier-regex.js`.\n/* prettier-ignore */\nconst astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,4026,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,757,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191];\n/* prettier-ignore */\nconst astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,81,2,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,9,5351,0,7,14,13835,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,983,6,110,6,6,9,4759,9,787719,239];\n\n// This has a complexity linear to the value of the code. The\n// assumption is that looking up astral identifier characters is\n// rare.\nfunction isInAstralSet(code: number, set: readonly number[]): boolean {\n let pos = 0x10000;\n for (let i = 0, length = set.length; i < length; i += 2) {\n pos += set[i];\n if (pos > code) return false;\n\n pos += set[i + 1];\n if (pos >= code) return true;\n }\n return false;\n}\n\n// Test whether a given character code starts an identifier.\n\nexport function isIdentifierStart(code: number): boolean {\n if (code < charCodes.uppercaseA) return code === charCodes.dollarSign;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return (\n code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code))\n );\n }\n return isInAstralSet(code, astralIdentifierStartCodes);\n}\n\n// Test whether a given character is part of an identifier.\n\nexport function isIdentifierChar(code: number): boolean {\n if (code < charCodes.digit0) return code === charCodes.dollarSign;\n if (code < charCodes.colon) return true;\n if (code < charCodes.uppercaseA) return false;\n if (code <= charCodes.uppercaseZ) return true;\n if (code < charCodes.lowercaseA) return code === charCodes.underscore;\n if (code <= charCodes.lowercaseZ) return true;\n if (code <= 0xffff) {\n return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code));\n }\n return (\n isInAstralSet(code, astralIdentifierStartCodes) ||\n isInAstralSet(code, astralIdentifierCodes)\n );\n}\n\n// Test whether a given string is a valid identifier name\n\nexport function isIdentifierName(name: string): boolean {\n let isFirst = true;\n for (let i = 0; i < name.length; i++) {\n // The implementation is based on\n // https://source.chromium.org/chromium/chromium/src/+/master:v8/src/builtins/builtins-string-gen.cc;l=1455;drc=221e331b49dfefadbc6fa40b0c68e6f97606d0b3;bpv=0;bpt=1\n // We reimplement `codePointAt` because `codePointAt` is a V8 builtin which is not inlined by TurboFan (as of M91)\n // since `name` is mostly ASCII, an inlined `charCodeAt` wins here\n let cp = name.charCodeAt(i);\n if ((cp & 0xfc00) === 0xd800 && i + 1 < name.length) {\n const trail = name.charCodeAt(++i);\n if ((trail & 0xfc00) === 0xdc00) {\n cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff);\n }\n }\n if (isFirst) {\n isFirst = false;\n if (!isIdentifierStart(cp)) {\n return false;\n }\n } else if (!isIdentifierChar(cp)) {\n return false;\n }\n }\n return !isFirst;\n}\n","const reservedWords = {\n keyword: [\n \"break\",\n \"case\",\n \"catch\",\n \"continue\",\n \"debugger\",\n \"default\",\n \"do\",\n \"else\",\n \"finally\",\n \"for\",\n \"function\",\n \"if\",\n \"return\",\n \"switch\",\n \"throw\",\n \"try\",\n \"var\",\n \"const\",\n \"while\",\n \"with\",\n \"new\",\n \"this\",\n \"super\",\n \"class\",\n \"extends\",\n \"export\",\n \"import\",\n \"null\",\n \"true\",\n \"false\",\n \"in\",\n \"instanceof\",\n \"typeof\",\n \"void\",\n \"delete\",\n ],\n strict: [\n \"implements\",\n \"interface\",\n \"let\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"static\",\n \"yield\",\n ],\n strictBind: [\"eval\", \"arguments\"],\n};\nconst keywords = new Set(reservedWords.keyword);\nconst reservedWordsStrictSet = new Set(reservedWords.strict);\nconst reservedWordsStrictBindSet = new Set(reservedWords.strictBind);\n\n/**\n * Checks if word is a reserved word in non-strict mode\n */\nexport function isReservedWord(word: string, inModule: boolean): boolean {\n return (inModule && word === \"await\") || word === \"enum\";\n}\n\n/**\n * Checks if word is a reserved word in non-binding strict mode\n *\n * Includes non-strict reserved words\n */\nexport function isStrictReservedWord(word: string, inModule: boolean): boolean {\n return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode, but it is allowed as\n * a normal identifier.\n */\nexport function isStrictBindOnlyReservedWord(word: string): boolean {\n return reservedWordsStrictBindSet.has(word);\n}\n\n/**\n * Checks if word is a reserved word in binding strict mode\n *\n * Includes non-strict reserved words and non-binding strict reserved words\n */\nexport function isStrictBindReservedWord(\n word: string,\n inModule: boolean,\n): boolean {\n return (\n isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word)\n );\n}\n\nexport function isKeyword(word: string): boolean {\n return keywords.has(word);\n}\n","import {\n isIdentifierName,\n isStrictReservedWord,\n isKeyword,\n} from \"@babel/helper-validator-identifier\";\n\n/**\n * Check if the input `name` is a valid identifier name\n * and isn't a reserved word.\n */\nexport default function isValidIdentifier(\n name: string,\n reserved: boolean = true,\n): boolean {\n if (typeof name !== \"string\") return false;\n\n if (reserved) {\n // \"await\" is invalid in module, valid in script; better be safe (see #4952)\n if (isKeyword(name) || isStrictReservedWord(name, true)) {\n return false;\n }\n }\n\n return isIdentifierName(name);\n}\n","import * as charCodes from \"charcodes\";\n\n// The following character codes are forbidden from being\n// an immediate sibling of NumericLiteralSeparator _\nconst forbiddenNumericSeparatorSiblings = {\n decBinOct: new Set([\n charCodes.dot,\n charCodes.uppercaseB,\n charCodes.uppercaseE,\n charCodes.uppercaseO,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseB,\n charCodes.lowercaseE,\n charCodes.lowercaseO,\n ]),\n hex: new Set([\n charCodes.dot,\n charCodes.uppercaseX,\n charCodes.underscore, // multiple separators are not allowed\n charCodes.lowercaseX,\n ]),\n};\n\nconst isAllowedNumericSeparatorSibling = {\n // 0 - 1\n bin: (ch: number) => ch === charCodes.digit0 || ch === charCodes.digit1,\n\n // 0 - 7\n oct: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit7,\n\n // 0 - 9\n dec: (ch: number) => ch >= charCodes.digit0 && ch <= charCodes.digit9,\n\n // 0 - 9, A - F, a - f,\n hex: (ch: number) =>\n (ch >= charCodes.digit0 && ch <= charCodes.digit9) ||\n (ch >= charCodes.uppercaseA && ch <= charCodes.uppercaseF) ||\n (ch >= charCodes.lowercaseA && ch <= charCodes.lowercaseF),\n};\n\nexport type StringContentsErrorHandlers = EscapedCharErrorHandlers & {\n unterminated(\n initialPos: number,\n initialLineStart: number,\n initialCurLine: number,\n ): void;\n};\n\nexport function readStringContents(\n type: \"single\" | \"double\" | \"template\",\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n errors: StringContentsErrorHandlers,\n) {\n const initialPos = pos;\n const initialLineStart = lineStart;\n const initialCurLine = curLine;\n\n let out = \"\";\n let firstInvalidLoc = null;\n let chunkStart = pos;\n const { length } = input;\n for (;;) {\n if (pos >= length) {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n out += input.slice(chunkStart, pos);\n break;\n }\n const ch = input.charCodeAt(pos);\n if (isStringEnd(type, ch, input, pos)) {\n out += input.slice(chunkStart, pos);\n break;\n }\n if (ch === charCodes.backslash) {\n out += input.slice(chunkStart, pos);\n const res = readEscapedChar(\n input,\n pos,\n lineStart,\n curLine,\n type === \"template\",\n errors,\n );\n if (res.ch === null && !firstInvalidLoc) {\n firstInvalidLoc = { pos, lineStart, curLine };\n } else {\n out += res.ch;\n }\n ({ pos, lineStart, curLine } = res);\n chunkStart = pos;\n } else if (\n ch === charCodes.lineSeparator ||\n ch === charCodes.paragraphSeparator\n ) {\n ++pos;\n ++curLine;\n lineStart = pos;\n } else if (ch === charCodes.lineFeed || ch === charCodes.carriageReturn) {\n if (type === \"template\") {\n out += input.slice(chunkStart, pos) + \"\\n\";\n ++pos;\n if (\n ch === charCodes.carriageReturn &&\n input.charCodeAt(pos) === charCodes.lineFeed\n ) {\n ++pos;\n }\n ++curLine;\n chunkStart = lineStart = pos;\n } else {\n errors.unterminated(initialPos, initialLineStart, initialCurLine);\n }\n } else {\n ++pos;\n }\n }\n return process.env.BABEL_8_BREAKING\n ? { pos, str: out, firstInvalidLoc, lineStart, curLine }\n : {\n pos,\n str: out,\n firstInvalidLoc,\n lineStart,\n curLine,\n containsInvalid: !!firstInvalidLoc,\n };\n}\n\nfunction isStringEnd(\n type: \"single\" | \"double\" | \"template\",\n ch: number,\n input: string,\n pos: number,\n) {\n if (type === \"template\") {\n return (\n ch === charCodes.graveAccent ||\n (ch === charCodes.dollarSign &&\n input.charCodeAt(pos + 1) === charCodes.leftCurlyBrace)\n );\n }\n return (\n ch === (type === \"double\" ? charCodes.quotationMark : charCodes.apostrophe)\n );\n}\n\ntype EscapedCharErrorHandlers = HexCharErrorHandlers &\n CodePointErrorHandlers & {\n strictNumericEscape(pos: number, lineStart: number, curLine: number): void;\n };\n\nfunction readEscapedChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n inTemplate: boolean,\n errors: EscapedCharErrorHandlers,\n) {\n const throwOnInvalid = !inTemplate;\n pos++; // skip '\\'\n\n const res = (ch: string | null) => ({ pos, ch, lineStart, curLine });\n\n const ch = input.charCodeAt(pos++);\n switch (ch) {\n case charCodes.lowercaseN:\n return res(\"\\n\");\n case charCodes.lowercaseR:\n return res(\"\\r\");\n case charCodes.lowercaseX: {\n let code;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 2,\n false,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCharCode(code));\n }\n case charCodes.lowercaseU: {\n let code;\n ({ code, pos } = readCodePoint(\n input,\n pos,\n lineStart,\n curLine,\n throwOnInvalid,\n errors,\n ));\n return res(code === null ? null : String.fromCodePoint(code));\n }\n case charCodes.lowercaseT:\n return res(\"\\t\");\n case charCodes.lowercaseB:\n return res(\"\\b\");\n case charCodes.lowercaseV:\n return res(\"\\u000b\");\n case charCodes.lowercaseF:\n return res(\"\\f\");\n case charCodes.carriageReturn:\n if (input.charCodeAt(pos) === charCodes.lineFeed) {\n ++pos;\n }\n // fall through\n case charCodes.lineFeed:\n lineStart = pos;\n ++curLine;\n // fall through\n case charCodes.lineSeparator:\n case charCodes.paragraphSeparator:\n return res(\"\");\n case charCodes.digit8:\n case charCodes.digit9:\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(pos - 1, lineStart, curLine);\n }\n // fall through\n default:\n if (ch >= charCodes.digit0 && ch <= charCodes.digit7) {\n const startPos = pos - 1;\n const match = input.slice(startPos, pos + 2).match(/^[0-7]+/);\n\n let octalStr = match[0];\n\n let octal = parseInt(octalStr, 8);\n if (octal > 255) {\n octalStr = octalStr.slice(0, -1);\n octal = parseInt(octalStr, 8);\n }\n pos += octalStr.length - 1;\n const next = input.charCodeAt(pos);\n if (\n octalStr !== \"0\" ||\n next === charCodes.digit8 ||\n next === charCodes.digit9\n ) {\n if (inTemplate) {\n return res(null);\n } else {\n errors.strictNumericEscape(startPos, lineStart, curLine);\n }\n }\n\n return res(String.fromCharCode(octal));\n }\n\n return res(String.fromCharCode(ch));\n }\n}\n\ntype HexCharErrorHandlers = IntErrorHandlers & {\n invalidEscapeSequence(pos: number, lineStart: number, curLine: number): void;\n};\n\n// Used to read character escape sequences ('\\x', '\\u').\nfunction readHexChar(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n len: number,\n forceLen: boolean,\n throwOnInvalid: boolean,\n errors: HexCharErrorHandlers,\n) {\n const initialPos = pos;\n let n;\n ({ n, pos } = readInt(\n input,\n pos,\n lineStart,\n curLine,\n 16,\n len,\n forceLen,\n false,\n errors,\n /* bailOnError */ !throwOnInvalid,\n ));\n if (n === null) {\n if (throwOnInvalid) {\n errors.invalidEscapeSequence(initialPos, lineStart, curLine);\n } else {\n pos = initialPos - 1;\n }\n }\n return { code: n, pos };\n}\n\nexport type IntErrorHandlers = {\n numericSeparatorInEscapeSequence(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n unexpectedNumericSeparator(\n pos: number,\n lineStart: number,\n curLine: number,\n ): void;\n // It can return \"true\" to indicate that the error was handled\n // and the int parsing should continue.\n invalidDigit(\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n ): boolean;\n};\n\nexport function readInt(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n radix: number,\n len: number | undefined,\n forceLen: boolean,\n allowNumSeparator: boolean | \"bail\",\n errors: IntErrorHandlers,\n bailOnError: boolean,\n) {\n const start = pos;\n const forbiddenSiblings =\n radix === 16\n ? forbiddenNumericSeparatorSiblings.hex\n : forbiddenNumericSeparatorSiblings.decBinOct;\n const isAllowedSibling =\n radix === 16\n ? isAllowedNumericSeparatorSibling.hex\n : radix === 10\n ? isAllowedNumericSeparatorSibling.dec\n : radix === 8\n ? isAllowedNumericSeparatorSibling.oct\n : isAllowedNumericSeparatorSibling.bin;\n\n let invalid = false;\n let total = 0;\n\n for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) {\n const code = input.charCodeAt(pos);\n let val;\n\n if (code === charCodes.underscore && allowNumSeparator !== \"bail\") {\n const prev = input.charCodeAt(pos - 1);\n const next = input.charCodeAt(pos + 1);\n\n if (!allowNumSeparator) {\n if (bailOnError) return { n: null, pos };\n errors.numericSeparatorInEscapeSequence(pos, lineStart, curLine);\n } else if (\n Number.isNaN(next) ||\n !isAllowedSibling(next) ||\n forbiddenSiblings.has(prev) ||\n forbiddenSiblings.has(next)\n ) {\n if (bailOnError) return { n: null, pos };\n errors.unexpectedNumericSeparator(pos, lineStart, curLine);\n }\n\n // Ignore this _ character\n ++pos;\n continue;\n }\n\n if (code >= charCodes.lowercaseA) {\n val = code - charCodes.lowercaseA + charCodes.lineFeed;\n } else if (code >= charCodes.uppercaseA) {\n val = code - charCodes.uppercaseA + charCodes.lineFeed;\n } else if (charCodes.isDigit(code)) {\n val = code - charCodes.digit0; // 0-9\n } else {\n val = Infinity;\n }\n if (val >= radix) {\n // If we found a digit which is too big, errors.invalidDigit can return true to avoid\n // breaking the loop (this is used for error recovery).\n if (val <= 9 && bailOnError) {\n return { n: null, pos };\n } else if (\n val <= 9 &&\n errors.invalidDigit(pos, lineStart, curLine, radix)\n ) {\n val = 0;\n } else if (forceLen) {\n val = 0;\n invalid = true;\n } else {\n break;\n }\n }\n ++pos;\n total = total * radix + val;\n }\n if (pos === start || (len != null && pos - start !== len) || invalid) {\n return { n: null, pos };\n }\n\n return { n: total, pos };\n}\n\nexport type CodePointErrorHandlers = HexCharErrorHandlers & {\n invalidCodePoint(pos: number, lineStart: number, curLine: number): void;\n};\n\nexport function readCodePoint(\n input: string,\n pos: number,\n lineStart: number,\n curLine: number,\n throwOnInvalid: boolean,\n errors: CodePointErrorHandlers,\n) {\n const ch = input.charCodeAt(pos);\n let code;\n\n if (ch === charCodes.leftCurlyBrace) {\n ++pos;\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n input.indexOf(\"}\", pos) - pos,\n true,\n throwOnInvalid,\n errors,\n ));\n ++pos;\n if (code !== null && code > 0x10ffff) {\n if (throwOnInvalid) {\n errors.invalidCodePoint(pos, lineStart, curLine);\n } else {\n return { code: null, pos };\n }\n }\n } else {\n ({ code, pos } = readHexChar(\n input,\n pos,\n lineStart,\n curLine,\n 4,\n false,\n throwOnInvalid,\n errors,\n ));\n }\n return { code, pos };\n}\n","export const STATEMENT_OR_BLOCK_KEYS = [\"consequent\", \"body\", \"alternate\"];\nexport const FLATTENABLE_KEYS = [\"body\", \"expressions\"];\nexport const FOR_INIT_KEYS = [\"left\", \"init\"];\nexport const COMMENT_KEYS = [\n \"leadingComments\",\n \"trailingComments\",\n \"innerComments\",\n] as const;\n\nexport const LOGICAL_OPERATORS = [\"||\", \"&&\", \"??\"];\nexport const UPDATE_OPERATORS = [\"++\", \"--\"];\n\nexport const BOOLEAN_NUMBER_BINARY_OPERATORS = [\">\", \"<\", \">=\", \"<=\"];\nexport const EQUALITY_BINARY_OPERATORS = [\"==\", \"===\", \"!=\", \"!==\"];\nexport const COMPARISON_BINARY_OPERATORS = [\n ...EQUALITY_BINARY_OPERATORS,\n \"in\",\n \"instanceof\",\n];\nexport const BOOLEAN_BINARY_OPERATORS = [\n ...COMPARISON_BINARY_OPERATORS,\n ...BOOLEAN_NUMBER_BINARY_OPERATORS,\n];\nexport const NUMBER_BINARY_OPERATORS = [\n \"-\",\n \"/\",\n \"%\",\n \"*\",\n \"**\",\n \"&\",\n \"|\",\n \">>\",\n \">>>\",\n \"<<\",\n \"^\",\n];\nexport const BINARY_OPERATORS = [\n \"+\",\n ...NUMBER_BINARY_OPERATORS,\n ...BOOLEAN_BINARY_OPERATORS,\n \"|>\",\n];\n\nexport const ASSIGNMENT_OPERATORS = [\n \"=\",\n \"+=\",\n ...NUMBER_BINARY_OPERATORS.map(op => op + \"=\"),\n ...LOGICAL_OPERATORS.map(op => op + \"=\"),\n];\n\nexport const BOOLEAN_UNARY_OPERATORS = [\"delete\", \"!\"];\nexport const NUMBER_UNARY_OPERATORS = [\"+\", \"-\", \"~\"];\nexport const STRING_UNARY_OPERATORS = [\"typeof\"];\nexport const UNARY_OPERATORS = [\n \"void\",\n \"throw\",\n ...BOOLEAN_UNARY_OPERATORS,\n ...NUMBER_UNARY_OPERATORS,\n ...STRING_UNARY_OPERATORS,\n];\n\nexport const INHERIT_KEYS = {\n optional: [\"typeAnnotation\", \"typeParameters\", \"returnType\"],\n force: [\"start\", \"loc\", \"end\"],\n} as const;\n\nexport const BLOCK_SCOPED_SYMBOL = Symbol.for(\"var used to be block scoped\");\nexport const NOT_LOCAL_BINDING = Symbol.for(\n \"should not be considered a local binding\",\n);\n","import is from \"../validators/is.ts\";\nimport { validateField, validateChild } from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\n\nexport const VISITOR_KEYS: Record = {};\nexport const ALIAS_KEYS: Partial> =\n {};\nexport const FLIPPED_ALIAS_KEYS: Record = {};\nexport const NODE_FIELDS: Record = {};\nexport const BUILDER_KEYS: Record = {};\nexport const DEPRECATED_KEYS: Record = {};\nexport const NODE_PARENT_VALIDATIONS: Record = {};\n\nfunction getType(val: any) {\n if (Array.isArray(val)) {\n return \"array\";\n } else if (val === null) {\n return \"null\";\n } else {\n return typeof val;\n }\n}\n\ntype NodeTypesWithoutComment = t.Node[\"type\"] | keyof t.Aliases;\n\ntype NodeTypes = NodeTypesWithoutComment | t.Comment[\"type\"];\n\ntype PrimitiveTypes = ReturnType;\n\ntype FieldDefinitions = {\n [x: string]: FieldOptions;\n};\n\ntype DefineTypeOpts = {\n fields?: FieldDefinitions;\n visitor?: Array;\n aliases?: Array;\n builder?: Array;\n inherits?: NodeTypes;\n deprecatedAlias?: string;\n validate?: Validator;\n};\n\nexport type Validator = (\n | { type: PrimitiveTypes }\n | { each: Validator }\n | { chainOf: Validator[] }\n | { oneOf: any[] }\n | { oneOfNodeTypes: NodeTypes[] }\n | { oneOfNodeOrValueTypes: (NodeTypes | PrimitiveTypes)[] }\n | { shapeOf: { [x: string]: FieldOptions } }\n | {}\n) &\n ((node: t.Node, key: string, val: any) => void);\n\nexport type FieldOptions = {\n default?: string | number | boolean | [];\n optional?: boolean;\n deprecated?: boolean;\n validate?: Validator;\n};\n\nexport function validate(validate: Validator): FieldOptions {\n return { validate };\n}\n\nexport function typeIs(typeName: NodeTypes | NodeTypes[]) {\n return typeof typeName === \"string\"\n ? assertNodeType(typeName)\n : assertNodeType(...typeName);\n}\n\nexport function validateType(typeName: NodeTypes | NodeTypes[]) {\n return validate(typeIs(typeName));\n}\n\nexport function validateOptional(validate: Validator): FieldOptions {\n return { validate, optional: true };\n}\n\nexport function validateOptionalType(\n typeName: NodeTypes | NodeTypes[],\n): FieldOptions {\n return { validate: typeIs(typeName), optional: true };\n}\n\nexport function arrayOf(elementType: Validator): Validator {\n return chain(assertValueType(\"array\"), assertEach(elementType));\n}\n\nexport function arrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return arrayOf(typeIs(typeName));\n}\n\nexport function validateArrayOfType(typeName: NodeTypes | NodeTypes[]) {\n return validate(arrayOfType(typeName));\n}\n\nexport function assertEach(callback: Validator): Validator {\n function validator(node: t.Node, key: string, val: any) {\n if (!Array.isArray(val)) return;\n\n for (let i = 0; i < val.length; i++) {\n const subkey = `${key}[${i}]`;\n const v = val[i];\n callback(node, subkey, v);\n if (process.env.BABEL_TYPES_8_BREAKING) validateChild(node, subkey, v);\n }\n }\n validator.each = callback;\n return validator;\n}\n\nexport function assertOneOf(...values: Array): Validator {\n function validate(node: any, key: string, val: any) {\n if (values.indexOf(val) < 0) {\n throw new TypeError(\n `Property ${key} expected value to be one of ${JSON.stringify(\n values,\n )} but got ${JSON.stringify(val)}`,\n );\n }\n }\n\n validate.oneOf = values;\n\n return validate;\n}\n\nexport function assertNodeType(...types: NodeTypes[]): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeTypes = types;\n\n return validate;\n}\n\nexport function assertNodeOrValueType(\n ...types: (NodeTypes | PrimitiveTypes)[]\n): Validator {\n function validate(node: t.Node, key: string, val: any) {\n for (const type of types) {\n if (getType(val) === type || is(type, val)) {\n validateChild(node, key, val);\n return;\n }\n }\n\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected node to be of a type ${JSON.stringify(\n types,\n )} but instead got ${JSON.stringify(val?.type)}`,\n );\n }\n\n validate.oneOfNodeOrValueTypes = types;\n\n return validate;\n}\n\nexport function assertValueType(type: PrimitiveTypes): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const valid = getType(val) === type;\n\n if (!valid) {\n throw new TypeError(\n `Property ${key} expected type of ${type} but got ${getType(val)}`,\n );\n }\n }\n\n validate.type = type;\n\n return validate;\n}\n\nexport function assertShape(shape: { [x: string]: FieldOptions }): Validator {\n function validate(node: t.Node, key: string, val: any) {\n const errors = [];\n for (const property of Object.keys(shape)) {\n try {\n validateField(node, property, val[property], shape[property]);\n } catch (error) {\n if (error instanceof TypeError) {\n errors.push(error.message);\n continue;\n }\n throw error;\n }\n }\n if (errors.length) {\n throw new TypeError(\n `Property ${key} of ${\n node.type\n } expected to have the following:\\n${errors.join(\"\\n\")}`,\n );\n }\n }\n\n validate.shapeOf = shape;\n\n return validate;\n}\n\nexport function assertOptionalChainStart(): Validator {\n function validate(node: t.Node) {\n let current = node;\n while (node) {\n const { type } = current;\n if (type === \"OptionalCallExpression\") {\n if (current.optional) return;\n current = current.callee;\n continue;\n }\n\n if (type === \"OptionalMemberExpression\") {\n if (current.optional) return;\n current = current.object;\n continue;\n }\n\n break;\n }\n\n throw new TypeError(\n `Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${current?.type}`,\n );\n }\n\n return validate;\n}\n\nexport function chain(...fns: Array): Validator {\n function validate(...args: Parameters) {\n for (const fn of fns) {\n fn(...args);\n }\n }\n validate.chainOf = fns;\n\n if (\n fns.length >= 2 &&\n \"type\" in fns[0] &&\n fns[0].type === \"array\" &&\n !(\"each\" in fns[1])\n ) {\n throw new Error(\n `An assertValueType(\"array\") validator can only be followed by an assertEach(...) validator.`,\n );\n }\n\n return validate;\n}\n\nconst validTypeOpts = [\n \"aliases\",\n \"builder\",\n \"deprecatedAlias\",\n \"fields\",\n \"inherits\",\n \"visitor\",\n \"validate\",\n];\nconst validFieldKeys = [\"default\", \"optional\", \"deprecated\", \"validate\"];\n\nconst store = {} as Record;\n\n// Wraps defineType to ensure these aliases are included.\nexport function defineAliasedType(...aliases: string[]) {\n return (type: string, opts: DefineTypeOpts = {}) => {\n let defined = opts.aliases;\n if (!defined) {\n if (opts.inherits) defined = store[opts.inherits].aliases?.slice();\n defined ??= [];\n opts.aliases = defined;\n }\n const additional = aliases.filter(a => !defined.includes(a));\n defined.unshift(...additional);\n defineType(type, opts);\n };\n}\n\nexport default function defineType(type: string, opts: DefineTypeOpts = {}) {\n const inherits = (opts.inherits && store[opts.inherits]) || {};\n\n let fields = opts.fields;\n if (!fields) {\n fields = {};\n if (inherits.fields) {\n const keys = Object.getOwnPropertyNames(inherits.fields);\n for (const key of keys) {\n const field = inherits.fields[key];\n const def = field.default;\n if (\n Array.isArray(def) ? def.length > 0 : def && typeof def === \"object\"\n ) {\n throw new Error(\n \"field defaults can only be primitives or empty arrays currently\",\n );\n }\n fields[key] = {\n default: Array.isArray(def) ? [] : def,\n optional: field.optional,\n deprecated: field.deprecated,\n validate: field.validate,\n };\n }\n }\n }\n\n const visitor: Array = opts.visitor || inherits.visitor || [];\n const aliases: Array = opts.aliases || inherits.aliases || [];\n const builder: Array =\n opts.builder || inherits.builder || opts.visitor || [];\n\n for (const k of Object.keys(opts)) {\n if (validTypeOpts.indexOf(k) === -1) {\n throw new Error(`Unknown type option \"${k}\" on ${type}`);\n }\n }\n\n if (opts.deprecatedAlias) {\n DEPRECATED_KEYS[opts.deprecatedAlias] = type as NodeTypesWithoutComment;\n }\n\n // ensure all field keys are represented in `fields`\n for (const key of visitor.concat(builder)) {\n fields[key] = fields[key] || {};\n }\n\n for (const key of Object.keys(fields)) {\n const field = fields[key];\n\n if (field.default !== undefined && builder.indexOf(key) === -1) {\n field.optional = true;\n }\n if (field.default === undefined) {\n field.default = null;\n } else if (!field.validate && field.default != null) {\n field.validate = assertValueType(getType(field.default));\n }\n\n for (const k of Object.keys(field)) {\n if (validFieldKeys.indexOf(k) === -1) {\n throw new Error(`Unknown field key \"${k}\" on ${type}.${key}`);\n }\n }\n }\n\n VISITOR_KEYS[type] = opts.visitor = visitor;\n BUILDER_KEYS[type] = opts.builder = builder;\n NODE_FIELDS[type] = opts.fields = fields;\n ALIAS_KEYS[type as NodeTypesWithoutComment] = opts.aliases = aliases;\n aliases.forEach(alias => {\n FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || [];\n FLIPPED_ALIAS_KEYS[alias].push(type as NodeTypesWithoutComment);\n });\n\n if (opts.validate) {\n NODE_PARENT_VALIDATIONS[type] = opts.validate;\n }\n\n store[type] = opts;\n}\n","import is from \"../validators/is.ts\";\nimport isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isKeyword, isReservedWord } from \"@babel/helper-validator-identifier\";\nimport type * as t from \"../index.ts\";\nimport { readStringContents } from \"@babel/helper-string-parser\";\n\nimport {\n BINARY_OPERATORS,\n LOGICAL_OPERATORS,\n ASSIGNMENT_OPERATORS,\n UNARY_OPERATORS,\n UPDATE_OPERATORS,\n} from \"../constants/index.ts\";\n\nimport {\n defineAliasedType,\n assertShape,\n assertOptionalChainStart,\n assertValueType,\n assertNodeType,\n assertNodeOrValueType,\n assertEach,\n chain,\n assertOneOf,\n validateOptional,\n type Validator,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"Standardized\");\n\ndefineType(\"ArrayExpression\", {\n fields: {\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeOrValueType(\"null\", \"Expression\", \"SpreadElement\"),\n ),\n ),\n default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined,\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"AssignmentExpression\", {\n fields: {\n operator: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertValueType(\"string\");\n }\n\n const identifier = assertOneOf(...ASSIGNMENT_OPERATORS);\n const pattern = assertOneOf(\"=\");\n\n return function (node: t.AssignmentExpression, key, val) {\n const validator = is(\"Pattern\", node.left) ? pattern : identifier;\n validator(node, key, val);\n };\n })(),\n },\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\", \"OptionalMemberExpression\")\n : assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"OptionalMemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"BinaryExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n fields: {\n operator: {\n validate: assertOneOf(...BINARY_OPERATORS),\n },\n left: {\n validate: (function () {\n const expression = assertNodeType(\"Expression\");\n const inOp = assertNodeType(\"Expression\", \"PrivateName\");\n\n const validator: Validator = Object.assign(\n function (node: t.BinaryExpression, key, val) {\n const validator = node.operator === \"in\" ? inOp : expression;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `operator` property\n { oneOfNodeTypes: [\"Expression\", \"PrivateName\"] },\n );\n return validator;\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n});\n\ndefineType(\"InterpreterDirective\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"Directive\", {\n visitor: [\"value\"],\n fields: {\n value: {\n validate: assertNodeType(\"DirectiveLiteral\"),\n },\n },\n});\n\ndefineType(\"DirectiveLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"BlockStatement\", {\n builder: [\"body\", \"directives\"],\n visitor: [\"directives\", \"body\"],\n fields: {\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\", \"Statement\"],\n});\n\ndefineType(\"BreakStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"CallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\", \"Super\", \"V8IntrinsicIdentifier\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n ),\n ),\n },\n ...(!process.env.BABEL_TYPES_8_BREAKING\n ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"CatchClause\", {\n visitor: [\"param\", \"body\"],\n fields: {\n param: {\n validate: assertNodeType(\"Identifier\", \"ArrayPattern\", \"ObjectPattern\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\"],\n});\n\ndefineType(\"ConditionalExpression\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Expression\"),\n },\n alternate: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\", \"Conditional\"],\n});\n\ndefineType(\"ContinueStatement\", {\n visitor: [\"label\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n },\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n});\n\ndefineType(\"DebuggerStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"DoWhileStatement\", {\n visitor: [\"test\", \"body\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n});\n\ndefineType(\"EmptyStatement\", {\n aliases: [\"Statement\"],\n});\n\ndefineType(\"ExpressionStatement\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Statement\", \"ExpressionWrapper\"],\n});\n\ndefineType(\"File\", {\n builder: [\"program\", \"comments\", \"tokens\"],\n visitor: [\"program\"],\n fields: {\n program: {\n validate: assertNodeType(\"Program\"),\n },\n comments: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? Object.assign(() => {}, {\n each: { oneOfNodeTypes: [\"CommentBlock\", \"CommentLine\"] },\n })\n : assertEach(assertNodeType(\"CommentBlock\", \"CommentLine\")),\n optional: true,\n },\n tokens: {\n // todo(ts): add Token type\n validate: assertEach(Object.assign(() => {}, { type: \"any\" })),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForInStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"VariableDeclaration\", \"LVal\")\n : assertNodeType(\n \"VariableDeclaration\",\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"ForStatement\", {\n visitor: [\"init\", \"test\", \"update\", \"body\"],\n aliases: [\"Scopable\", \"Statement\", \"For\", \"BlockParent\", \"Loop\"],\n fields: {\n init: {\n validate: assertNodeType(\"VariableDeclaration\", \"Expression\"),\n optional: true,\n },\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n update: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\nexport const functionCommon = () => ({\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Identifier\", \"Pattern\", \"RestElement\")),\n ),\n },\n generator: {\n default: false,\n },\n async: {\n default: false,\n },\n});\n\nexport const functionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeParameterDeclaration\", \"TSTypeParameterDeclaration\")\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n});\n\nexport const functionDeclarationCommon = () => ({\n ...functionCommon(),\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true, // May be null for `export default function`\n },\n});\n\ndefineType(\"FunctionDeclaration\", {\n builder: [\"id\", \"params\", \"body\", \"generator\", \"async\"],\n visitor: [\"id\", \"params\", \"body\", \"returnType\", \"typeParameters\"],\n fields: {\n ...functionDeclarationCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Statement\",\n \"Pureish\",\n \"Declaration\",\n ],\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) return () => {};\n\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"FunctionExpression\", {\n inherits: \"FunctionDeclaration\",\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\nexport const patternLikeCommon = () => ({\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"Identifier\", {\n builder: [\"name\"],\n visitor: [\"typeAnnotation\", \"decorators\" /* for legacy param decorators */],\n aliases: [\"Expression\", \"PatternLike\", \"LVal\", \"TSEntityName\"],\n fields: {\n ...patternLikeCommon(),\n name: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!isValidIdentifier(val, false)) {\n throw new TypeError(`\"${val}\" is not a valid identifier name`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /\\.(\\w+)$/.exec(key);\n if (!match) return;\n\n const [, parentKey] = match;\n const nonComp = { computed: false };\n\n // We can't check if `parent.property === node`, because nodes are validated\n // before replacing them in the AST.\n if (parentKey === \"property\") {\n if (is(\"MemberExpression\", parent, nonComp)) return;\n if (is(\"OptionalMemberExpression\", parent, nonComp)) return;\n } else if (parentKey === \"key\") {\n if (is(\"Property\", parent, nonComp)) return;\n if (is(\"Method\", parent, nonComp)) return;\n } else if (parentKey === \"exported\") {\n if (is(\"ExportSpecifier\", parent)) return;\n } else if (parentKey === \"imported\") {\n if (is(\"ImportSpecifier\", parent, { imported: node })) return;\n } else if (parentKey === \"meta\") {\n if (is(\"MetaProperty\", parent, { meta: node })) return;\n }\n\n if (\n // Ideally we should call isStrictReservedWord if this node is a descendant\n // of a block in strict mode. Also, we should pass the inModule option so\n // we can disable \"await\" in module.\n (isKeyword(node.name) || isReservedWord(node.name, false)) &&\n // Even if \"this\" is a keyword, we are using the Identifier\n // node to represent it.\n node.name !== \"this\"\n ) {\n throw new TypeError(`\"${node.name}\" is not a valid identifier`);\n }\n },\n});\n\ndefineType(\"IfStatement\", {\n visitor: [\"test\", \"consequent\", \"alternate\"],\n aliases: [\"Statement\", \"Conditional\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n consequent: {\n validate: assertNodeType(\"Statement\"),\n },\n alternate: {\n optional: true,\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"LabeledStatement\", {\n visitor: [\"label\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n label: {\n validate: assertNodeType(\"Identifier\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"StringLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NumericLiteral\", {\n builder: [\"value\"],\n deprecatedAlias: \"NumberLiteral\",\n fields: {\n value: {\n validate: chain(\n assertValueType(\"number\"),\n Object.assign(\n function (node, key, val) {\n if (1 / val < 0 || !Number.isFinite(val)) {\n const error = new Error(\n \"NumericLiterals must be non-negative finite numbers. \" +\n `You can use t.valueToNode(${val}) instead.`,\n );\n if (process.env.BABEL_8_BREAKING) {\n // TODO(@nicolo-ribaudo) Fix regenerator to not pass negative\n // numbers here.\n if (!IS_STANDALONE) {\n if (!new Error().stack.includes(\"regenerator\")) {\n throw error;\n }\n }\n } else {\n // TODO: Enable this warning once regenerator is fixed.\n // https://github.com/facebook/regenerator/pull/680\n // console.warn(error);\n }\n }\n } satisfies Validator,\n { type: \"number\" },\n ),\n ),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"NullLiteral\", {\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"BooleanLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"boolean\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"RegExpLiteral\", {\n builder: [\"pattern\", \"flags\"],\n deprecatedAlias: \"RegexLiteral\",\n aliases: [\"Expression\", \"Pureish\", \"Literal\"],\n fields: {\n pattern: {\n validate: assertValueType(\"string\"),\n },\n flags: {\n validate: chain(\n assertValueType(\"string\"),\n Object.assign(\n function (node, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const invalid = /[^gimsuy]/.exec(val);\n if (invalid) {\n throw new TypeError(`\"${invalid[0]}\" is not a valid RegExp flag`);\n }\n } as Validator,\n { type: \"string\" },\n ),\n ),\n default: \"\",\n },\n },\n});\n\ndefineType(\"LogicalExpression\", {\n builder: [\"operator\", \"left\", \"right\"],\n visitor: [\"left\", \"right\"],\n aliases: [\"Binary\", \"Expression\"],\n fields: {\n operator: {\n validate: assertOneOf(...LOGICAL_OPERATORS),\n },\n left: {\n validate: assertNodeType(\"Expression\"),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"MemberExpression\", {\n builder: [\n \"object\",\n \"property\",\n \"computed\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"optional\"] : []),\n ],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\", \"LVal\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\", \"Super\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\", \"PrivateName\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (\n node: t.MemberExpression,\n key,\n val,\n ) {\n const validator: Validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\"Expression\", \"Identifier\", \"PrivateName\"];\n return validator;\n })(),\n },\n computed: {\n default: false,\n },\n ...(!process.env.BABEL_TYPES_8_BREAKING\n ? {\n optional: {\n validate: assertOneOf(true, false),\n optional: true,\n },\n }\n : {}),\n },\n});\n\ndefineType(\"NewExpression\", { inherits: \"CallExpression\" });\n\ndefineType(\"Program\", {\n // Note: We explicitly leave 'interpreter' out here because it is\n // conceptually comment-like, and Babel does not traverse comments either.\n visitor: [\"directives\", \"body\"],\n builder: [\"body\", \"directives\", \"sourceType\", \"interpreter\"],\n fields: {\n sourceType: {\n validate: assertOneOf(\"script\", \"module\"),\n default: \"script\",\n },\n interpreter: {\n validate: assertNodeType(\"InterpreterDirective\"),\n default: null,\n optional: true,\n },\n directives: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Directive\")),\n ),\n default: [],\n },\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"Block\"],\n});\n\ndefineType(\"ObjectExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"ObjectMethod\", \"ObjectProperty\", \"SpreadElement\"),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ObjectMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"computed\", \"generator\", \"async\"],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n ...(!process.env.BABEL_TYPES_8_BREAKING ? { default: \"method\" } : {}),\n },\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = function (node: t.ObjectMethod, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n // @ts-expect-error todo(ts): can be discriminated union by `computed` property\n validator.oneOfNodeTypes = [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n ];\n return validator;\n })(),\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"UserWhitespacable\",\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"ObjectMember\",\n ],\n});\n\ndefineType(\"ObjectProperty\", {\n builder: [\n \"key\",\n \"value\",\n \"computed\",\n \"shorthand\",\n ...(!process.env.BABEL_TYPES_8_BREAKING ? [\"decorators\"] : []),\n ],\n fields: {\n computed: {\n default: false,\n },\n key: {\n validate: (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.ObjectProperty, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n {\n // todo(ts): can be discriminated union by `computed` property\n oneOfNodeTypes: [\n \"Expression\",\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"DecimalLiteral\",\n \"PrivateName\",\n ],\n },\n );\n return validator;\n })(),\n },\n value: {\n // Value may be PatternLike if this is an AssignmentProperty\n // https://github.com/babel/babylon/issues/434\n validate: assertNodeType(\"Expression\", \"PatternLike\"),\n },\n shorthand: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && node.computed) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if computed is true\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n function (node: t.ObjectProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !is(\"Identifier\", node.key)) {\n throw new TypeError(\n \"Property shorthand of ObjectProperty cannot be true if key is not an Identifier\",\n );\n }\n } as Validator,\n ),\n default: false,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n visitor: [\"key\", \"value\", \"decorators\"],\n aliases: [\"UserWhitespacable\", \"Property\", \"ObjectMember\"],\n validate: (function () {\n const pattern = assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSNonNullExpression\",\n \"TSTypeAssertion\",\n );\n const expression = assertNodeType(\"Expression\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const validator = is(\"ObjectPattern\", parent) ? pattern : expression;\n validator(node, \"value\", node.value);\n };\n })(),\n});\n\ndefineType(\"RestElement\", {\n visitor: [\"argument\", \"typeAnnotation\"],\n builder: [\"argument\"],\n aliases: [\"LVal\", \"PatternLike\"],\n deprecatedAlias: \"RestProperty\",\n fields: {\n ...patternLikeCommon(),\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"LVal\")\n : assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n },\n validate(parent: t.ArrayPattern | t.ObjectPattern, key) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n const match = /(\\w+)\\[(\\d+)\\]/.exec(key);\n if (!match) throw new Error(\"Internal Babel error: malformed key.\");\n\n const [, listKey, index] = match as unknown as [\n string,\n keyof typeof parent,\n string,\n ];\n if ((parent[listKey] as t.Node[]).length > +index + 1) {\n throw new TypeError(`RestElement must be last element of ${listKey}`);\n }\n },\n});\n\ndefineType(\"ReturnStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"SequenceExpression\", {\n visitor: [\"expressions\"],\n fields: {\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Expression\")),\n ),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ParenthesizedExpression\", {\n visitor: [\"expression\"],\n aliases: [\"Expression\", \"ExpressionWrapper\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"SwitchCase\", {\n visitor: [\"test\", \"consequent\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n consequent: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n});\n\ndefineType(\"SwitchStatement\", {\n visitor: [\"discriminant\", \"cases\"],\n aliases: [\"Statement\", \"BlockParent\", \"Scopable\"],\n fields: {\n discriminant: {\n validate: assertNodeType(\"Expression\"),\n },\n cases: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"SwitchCase\")),\n ),\n },\n },\n});\n\ndefineType(\"ThisExpression\", {\n aliases: [\"Expression\"],\n});\n\ndefineType(\"ThrowStatement\", {\n visitor: [\"argument\"],\n aliases: [\"Statement\", \"Terminatorless\", \"CompletionStatement\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"TryStatement\", {\n visitor: [\"block\", \"handler\", \"finalizer\"],\n aliases: [\"Statement\"],\n fields: {\n block: {\n validate: chain(\n assertNodeType(\"BlockStatement\"),\n Object.assign(\n function (node: t.TryStatement) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (!node.handler && !node.finalizer) {\n throw new TypeError(\n \"TryStatement expects either a handler or finalizer, or both\",\n );\n }\n } as Validator,\n {\n oneOfNodeTypes: [\"BlockStatement\"],\n },\n ),\n ),\n },\n handler: {\n optional: true,\n validate: assertNodeType(\"CatchClause\"),\n },\n finalizer: {\n optional: true,\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"UnaryExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: true,\n },\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n operator: {\n validate: assertOneOf(...UNARY_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\", \"Expression\"],\n});\n\ndefineType(\"UpdateExpression\", {\n builder: [\"operator\", \"argument\", \"prefix\"],\n fields: {\n prefix: {\n default: false,\n },\n argument: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertNodeType(\"Expression\")\n : assertNodeType(\"Identifier\", \"MemberExpression\"),\n },\n operator: {\n validate: assertOneOf(...UPDATE_OPERATORS),\n },\n },\n visitor: [\"argument\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"VariableDeclaration\", {\n builder: [\"kind\", \"declarations\"],\n visitor: [\"declarations\"],\n aliases: [\"Statement\", \"Declaration\"],\n fields: {\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n kind: {\n validate: assertOneOf(\n \"var\",\n \"let\",\n \"const\",\n // https://github.com/tc39/proposal-explicit-resource-management\n \"using\",\n // https://github.com/tc39/proposal-async-explicit-resource-management\n \"await using\",\n ),\n },\n declarations: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"VariableDeclarator\")),\n ),\n },\n },\n validate(parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ForXStatement\", parent, { left: node })) return;\n if (node.declarations.length !== 1) {\n throw new TypeError(\n `Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`,\n );\n }\n },\n});\n\ndefineType(\"VariableDeclarator\", {\n visitor: [\"id\", \"init\"],\n fields: {\n id: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"LVal\");\n }\n\n const normal = assertNodeType(\n \"Identifier\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n );\n const without = assertNodeType(\"Identifier\");\n\n return function (node: t.VariableDeclarator, key, val) {\n const validator = node.init ? normal : without;\n validator(node, key, val);\n };\n })(),\n },\n definite: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n init: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"WhileStatement\", {\n visitor: [\"test\", \"body\"],\n aliases: [\"Statement\", \"BlockParent\", \"Loop\", \"While\", \"Scopable\"],\n fields: {\n test: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\ndefineType(\"WithStatement\", {\n visitor: [\"object\", \"body\"],\n aliases: [\"Statement\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n },\n});\n\n// --- ES2015 ---\ndefineType(\"AssignmentPattern\", {\n visitor: [\"left\", \"right\", \"decorators\" /* for legacy param decorators */],\n builder: [\"left\", \"right\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n left: {\n validate: assertNodeType(\n \"Identifier\",\n \"ObjectPattern\",\n \"ArrayPattern\",\n \"MemberExpression\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n ),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n // For TypeScript\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"ArrayPattern\", {\n visitor: [\"elements\", \"typeAnnotation\"],\n builder: [\"elements\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeOrValueType(\"null\", \"PatternLike\", \"LVal\")),\n ),\n },\n },\n});\n\ndefineType(\"ArrowFunctionExpression\", {\n builder: [\"params\", \"body\", \"async\"],\n visitor: [\"params\", \"body\", \"returnType\", \"typeParameters\"],\n aliases: [\n \"Scopable\",\n \"Function\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Expression\",\n \"Pureish\",\n ],\n fields: {\n ...functionCommon(),\n ...functionTypeAnnotationCommon(),\n expression: {\n // https://github.com/babel/babylon/issues/505\n validate: assertValueType(\"boolean\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\", \"Expression\"),\n },\n predicate: {\n validate: assertNodeType(\"DeclaredPredicate\", \"InferredPredicate\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassBody\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ClassMethod\",\n \"ClassPrivateMethod\",\n \"ClassProperty\",\n \"ClassPrivateProperty\",\n \"ClassAccessorProperty\",\n \"TSDeclareMethod\",\n \"TSIndexSignature\",\n \"StaticBlock\",\n ),\n ),\n ),\n },\n },\n});\n\ndefineType(\"ClassExpression\", {\n builder: [\"id\", \"superClass\", \"body\", \"decorators\"],\n visitor: [\n \"id\",\n \"body\",\n \"superClass\",\n \"mixins\",\n \"typeParameters\",\n \"superTypeParameters\",\n \"implements\",\n \"decorators\",\n ],\n aliases: [\"Scopable\", \"Class\", \"Expression\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassDeclaration\", {\n inherits: \"ClassExpression\",\n aliases: [\"Scopable\", \"Class\", \"Statement\", \"Declaration\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n // The id may be omitted if this is the child of an\n // ExportDefaultDeclaration.\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n )\n : assertNodeType(\n \"TypeParameterDeclaration\",\n \"TSTypeParameterDeclaration\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n body: {\n validate: assertNodeType(\"ClassBody\"),\n },\n superClass: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n superTypeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n implements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"TSExpressionWithTypeArguments\", \"ClassImplements\"),\n ),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n mixins: {\n validate: assertNodeType(\"InterfaceExtends\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n },\n validate: (function () {\n const identifier = assertNodeType(\"Identifier\");\n\n return function (parent, key, node) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (!is(\"ExportDefaultDeclaration\", parent)) {\n identifier(node, \"id\", node.id);\n }\n };\n })(),\n});\n\ndefineType(\"ExportAllDeclaration\", {\n builder: [\"source\"],\n visitor: [\"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n },\n});\n\ndefineType(\"ExportDefaultDeclaration\", {\n visitor: [\"declaration\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n validate: assertNodeType(\n \"TSDeclareFunction\",\n \"FunctionDeclaration\",\n \"ClassDeclaration\",\n \"Expression\",\n ),\n },\n exportKind: validateOptional(assertOneOf(\"value\")),\n },\n});\n\ndefineType(\"ExportNamedDeclaration\", {\n builder: [\"declaration\", \"specifiers\", \"source\"],\n visitor: [\"declaration\", \"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\n \"Statement\",\n \"Declaration\",\n \"ImportOrExportDeclaration\",\n \"ExportDeclaration\",\n ],\n fields: {\n declaration: {\n optional: true,\n validate: chain(\n assertNodeType(\"Declaration\"),\n Object.assign(\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.specifiers.length) {\n throw new TypeError(\n \"Only declaration or specifiers is allowed on ExportNamedDeclaration\",\n );\n }\n } as Validator,\n { oneOfNodeTypes: [\"Declaration\"] },\n ),\n function (node: t.ExportNamedDeclaration, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n // This validator isn't put at the top level because we can run it\n // even if this node doesn't have a parent.\n\n if (val && node.source) {\n throw new TypeError(\"Cannot export a declaration from a source\");\n }\n },\n ),\n },\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n specifiers: {\n default: [],\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n (function () {\n const sourced = assertNodeType(\n \"ExportSpecifier\",\n \"ExportDefaultSpecifier\",\n \"ExportNamespaceSpecifier\",\n );\n const sourceless = assertNodeType(\"ExportSpecifier\");\n\n if (!process.env.BABEL_TYPES_8_BREAKING) return sourced;\n\n return function (node: t.ExportNamedDeclaration, key, val) {\n const validator = node.source ? sourced : sourceless;\n validator(node, key, val);\n } as Validator;\n })(),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n optional: true,\n },\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n },\n});\n\ndefineType(\"ExportSpecifier\", {\n visitor: [\"local\", \"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n exported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n exportKind: {\n // And TypeScript's \"export { type foo } from\"\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ForOfStatement\", {\n visitor: [\"left\", \"right\", \"body\"],\n builder: [\"left\", \"right\", \"body\", \"await\"],\n aliases: [\n \"Scopable\",\n \"Statement\",\n \"For\",\n \"BlockParent\",\n \"Loop\",\n \"ForXStatement\",\n ],\n fields: {\n left: {\n validate: (function () {\n if (!process.env.BABEL_TYPES_8_BREAKING) {\n return assertNodeType(\"VariableDeclaration\", \"LVal\");\n }\n\n const declaration = assertNodeType(\"VariableDeclaration\");\n const lval = assertNodeType(\n \"Identifier\",\n \"MemberExpression\",\n \"ArrayPattern\",\n \"ObjectPattern\",\n \"TSAsExpression\",\n \"TSSatisfiesExpression\",\n \"TSTypeAssertion\",\n \"TSNonNullExpression\",\n );\n\n return function (node, key, val) {\n if (is(\"VariableDeclaration\", val)) {\n declaration(node, key, val);\n } else {\n lval(node, key, val);\n }\n };\n })(),\n },\n right: {\n validate: assertNodeType(\"Expression\"),\n },\n body: {\n validate: assertNodeType(\"Statement\"),\n },\n await: {\n default: false,\n },\n },\n});\n\ndefineType(\"ImportDeclaration\", {\n builder: [\"specifiers\", \"source\"],\n visitor: [\"specifiers\", \"source\", \"attributes\", \"assertions\"],\n aliases: [\"Statement\", \"Declaration\", \"ImportOrExportDeclaration\"],\n fields: {\n attributes: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n // TODO(Babel 8): Deprecated\n assertions: {\n optional: true,\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ImportAttribute\")),\n ),\n },\n module: {\n optional: true,\n validate: assertValueType(\"boolean\"),\n },\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n specifiers: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"ImportSpecifier\",\n \"ImportDefaultSpecifier\",\n \"ImportNamespaceSpecifier\",\n ),\n ),\n ),\n },\n source: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n importKind: {\n // Handle TypeScript/Flowtype's extension \"import type foo from\"\n // TypeScript doesn't support typeof\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportDefaultSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportNamespaceSpecifier\", {\n visitor: [\"local\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"ImportSpecifier\", {\n visitor: [\"local\", \"imported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n local: {\n validate: assertNodeType(\"Identifier\"),\n },\n imported: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n importKind: {\n // Handle Flowtype's extension \"import {typeof foo} from\"\n // And TypeScript's \"import { type foo } from\"\n validate: assertOneOf(\"type\", \"typeof\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ImportExpression\", {\n visitor: [\"source\", \"options\"],\n aliases: [\"Expression\"],\n fields: {\n phase: {\n default: null,\n validate: assertOneOf(\"source\", \"defer\"),\n },\n source: {\n validate: assertNodeType(\"Expression\"),\n },\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"MetaProperty\", {\n visitor: [\"meta\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n meta: {\n validate: chain(\n assertNodeType(\"Identifier\"),\n Object.assign(\n function (node: t.MetaProperty, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n let property;\n switch (val.name) {\n case \"function\":\n property = \"sent\";\n break;\n case \"new\":\n property = \"target\";\n break;\n case \"import\":\n property = \"meta\";\n break;\n }\n if (!is(\"Identifier\", node.property, { name: property })) {\n throw new TypeError(\"Unrecognised MetaProperty\");\n }\n } as Validator,\n { oneOfNodeTypes: [\"Identifier\"] },\n ),\n ),\n },\n property: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\nexport const classMethodOrPropertyCommon = () => ({\n abstract: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n static: {\n default: false,\n },\n override: {\n default: false,\n },\n computed: {\n default: false,\n },\n optional: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n ),\n ),\n },\n});\n\nexport const classMethodOrDeclareMethodCommon = () => ({\n ...functionCommon(),\n ...classMethodOrPropertyCommon(),\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Identifier\",\n \"Pattern\",\n \"RestElement\",\n \"TSParameterProperty\",\n ),\n ),\n ),\n },\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\", \"constructor\"),\n default: \"method\",\n },\n access: {\n validate: chain(\n assertValueType(\"string\"),\n assertOneOf(\"public\", \"private\", \"protected\"),\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n});\n\ndefineType(\"ClassMethod\", {\n aliases: [\"Function\", \"Scopable\", \"BlockParent\", \"FunctionParent\", \"Method\"],\n builder: [\n \"kind\",\n \"key\",\n \"params\",\n \"body\",\n \"computed\",\n \"static\",\n \"generator\",\n \"async\",\n ],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"ObjectPattern\", {\n visitor: [\n \"properties\",\n \"typeAnnotation\",\n \"decorators\" /* for legacy param decorators */,\n ],\n builder: [\"properties\"],\n aliases: [\"Pattern\", \"PatternLike\", \"LVal\"],\n fields: {\n ...patternLikeCommon(),\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"RestElement\", \"ObjectProperty\")),\n ),\n },\n },\n});\n\ndefineType(\"SpreadElement\", {\n visitor: [\"argument\"],\n aliases: [\"UnaryLike\"],\n deprecatedAlias: \"SpreadProperty\",\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\n \"Super\",\n process.env.BABEL_8_BREAKING\n ? undefined\n : {\n aliases: [\"Expression\"],\n },\n);\n\ndefineType(\"TaggedTemplateExpression\", {\n visitor: [\"tag\", \"quasi\", \"typeParameters\"],\n builder: [\"tag\", \"quasi\"],\n aliases: [\"Expression\"],\n fields: {\n tag: {\n validate: assertNodeType(\"Expression\"),\n },\n quasi: {\n validate: assertNodeType(\"TemplateLiteral\"),\n },\n typeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TemplateElement\", {\n builder: [\"value\", \"tail\"],\n fields: {\n value: {\n validate: chain(\n assertShape({\n raw: {\n validate: assertValueType(\"string\"),\n },\n cooked: {\n validate: assertValueType(\"string\"),\n optional: true,\n },\n }),\n function templateElementCookedValidator(node: t.TemplateElement) {\n const raw = node.value.raw;\n\n let unterminatedCalled = false;\n\n const error = () => {\n // unreachable\n throw new Error(\"Internal @babel/types error.\");\n };\n const { str, firstInvalidLoc } = readStringContents(\n \"template\",\n raw,\n 0,\n 0,\n 0,\n {\n unterminated() {\n unterminatedCalled = true;\n },\n strictNumericEscape: error,\n invalidEscapeSequence: error,\n numericSeparatorInEscapeSequence: error,\n unexpectedNumericSeparator: error,\n invalidDigit: error,\n invalidCodePoint: error,\n },\n );\n if (!unterminatedCalled) throw new Error(\"Invalid raw\");\n\n node.value.cooked = firstInvalidLoc ? null : str;\n },\n ),\n },\n tail: {\n default: false,\n },\n },\n});\n\ndefineType(\"TemplateLiteral\", {\n visitor: [\"quasis\", \"expressions\"],\n aliases: [\"Expression\", \"Literal\"],\n fields: {\n quasis: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TemplateElement\")),\n ),\n },\n expressions: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"Expression\",\n // For TypeScript template literal types\n \"TSType\",\n ),\n ),\n function (node: t.TemplateLiteral, key, val) {\n if (node.quasis.length !== val.length + 1) {\n throw new TypeError(\n `Number of ${\n node.type\n } quasis should be exactly one more than the number of expressions.\\nExpected ${\n val.length + 1\n } quasis but got ${node.quasis.length}`,\n );\n }\n } as Validator,\n ),\n },\n },\n});\n\ndefineType(\"YieldExpression\", {\n builder: [\"argument\", \"delegate\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n delegate: {\n validate: chain(\n assertValueType(\"boolean\"),\n Object.assign(\n function (node: t.YieldExpression, key, val) {\n if (!process.env.BABEL_TYPES_8_BREAKING) return;\n\n if (val && !node.argument) {\n throw new TypeError(\n \"Property delegate of YieldExpression cannot be true if there is no argument\",\n );\n }\n } as Validator,\n { type: \"boolean\" },\n ),\n ),\n default: false,\n },\n argument: {\n optional: true,\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2017 ---\ndefineType(\"AwaitExpression\", {\n builder: [\"argument\"],\n visitor: [\"argument\"],\n aliases: [\"Expression\", \"Terminatorless\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\n// --- ES2019 ---\ndefineType(\"Import\", {\n aliases: [\"Expression\"],\n});\n\n// --- ES2020 ---\ndefineType(\"BigIntLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\ndefineType(\"ExportNamespaceSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"OptionalMemberExpression\", {\n builder: [\"object\", \"property\", \"computed\", \"optional\"],\n visitor: [\"object\", \"property\"],\n aliases: [\"Expression\"],\n fields: {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n property: {\n validate: (function () {\n const normal = assertNodeType(\"Identifier\");\n const computed = assertNodeType(\"Expression\");\n\n const validator: Validator = Object.assign(\n function (node: t.OptionalMemberExpression, key, val) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n } as Validator,\n // todo(ts): can be discriminated union by `computed` property\n { oneOfNodeTypes: [\"Expression\", \"Identifier\"] },\n );\n return validator;\n })(),\n },\n computed: {\n default: false,\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n },\n});\n\ndefineType(\"OptionalCallExpression\", {\n visitor: [\"callee\", \"arguments\", \"typeParameters\", \"typeArguments\"],\n builder: [\"callee\", \"arguments\", \"optional\"],\n aliases: [\"Expression\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n arguments: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\"Expression\", \"SpreadElement\", \"ArgumentPlaceholder\"),\n ),\n ),\n },\n optional: {\n validate: !process.env.BABEL_TYPES_8_BREAKING\n ? assertValueType(\"boolean\")\n : chain(assertValueType(\"boolean\"), assertOptionalChainStart()),\n },\n typeArguments: {\n validate: assertNodeType(\"TypeParameterInstantiation\"),\n optional: true,\n },\n typeParameters: {\n validate: assertNodeType(\"TSTypeParameterInstantiation\"),\n optional: true,\n },\n },\n});\n\n// --- ES2022 ---\ndefineType(\"ClassProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassAccessorProperty\", {\n visitor: [\"key\", \"value\", \"typeAnnotation\", \"decorators\"],\n builder: [\n \"key\",\n \"value\",\n \"typeAnnotation\",\n \"decorators\",\n \"computed\",\n \"static\",\n ],\n aliases: [\"Property\", \"Accessor\"],\n fields: {\n ...classMethodOrPropertyCommon(),\n key: {\n validate: chain(\n (function () {\n const normal = assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"PrivateName\",\n );\n const computed = assertNodeType(\"Expression\");\n\n return function (node: any, key: string, val: any) {\n const validator = node.computed ? computed : normal;\n validator(node, key, val);\n };\n })(),\n assertNodeType(\n \"Identifier\",\n \"StringLiteral\",\n \"NumericLiteral\",\n \"BigIntLiteral\",\n \"Expression\",\n \"PrivateName\",\n ),\n ),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n declare: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateProperty\", {\n visitor: [\"key\", \"value\", \"decorators\", \"typeAnnotation\"],\n builder: [\"key\", \"value\", \"decorators\", \"static\"],\n aliases: [\"Property\", \"Private\"],\n fields: {\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n value: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n typeAnnotation: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TypeAnnotation\", \"TSTypeAnnotation\")\n : assertNodeType(\n \"TypeAnnotation\",\n \"TSTypeAnnotation\",\n // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n \"Noop\",\n ),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n static: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n definite: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n variance: {\n validate: assertNodeType(\"Variance\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"ClassPrivateMethod\", {\n builder: [\"kind\", \"key\", \"params\", \"body\", \"static\"],\n visitor: [\n \"key\",\n \"params\",\n \"body\",\n \"decorators\",\n \"returnType\",\n \"typeParameters\",\n ],\n aliases: [\n \"Function\",\n \"Scopable\",\n \"BlockParent\",\n \"FunctionParent\",\n \"Method\",\n \"Private\",\n ],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...functionTypeAnnotationCommon(),\n kind: {\n validate: assertOneOf(\"get\", \"set\", \"method\"),\n default: \"method\",\n },\n key: {\n validate: assertNodeType(\"PrivateName\"),\n },\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n },\n});\n\ndefineType(\"PrivateName\", {\n visitor: [\"id\"],\n aliases: [\"Private\"],\n fields: {\n id: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"StaticBlock\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Statement\")),\n ),\n },\n },\n aliases: [\"Scopable\", \"BlockParent\", \"FunctionParent\"],\n});\n","import {\n defineAliasedType,\n arrayOfType,\n assertOneOf,\n assertValueType,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"Flow\");\n\nconst defineInterfaceishType = (\n name: \"DeclareClass\" | \"DeclareInterface\" | \"InterfaceDeclaration\",\n) => {\n const isDeclareClass = name === \"DeclareClass\";\n\n defineType(name, {\n builder: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n visitor: [\n \"id\",\n \"typeParameters\",\n \"extends\",\n ...(isDeclareClass ? [\"mixins\", \"implements\"] : []),\n \"body\",\n ],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n ...(isDeclareClass\n ? {\n mixins: validateOptional(arrayOfType(\"InterfaceExtends\")),\n implements: validateOptional(arrayOfType(\"ClassImplements\")),\n }\n : {}),\n body: validateType(\"ObjectTypeAnnotation\"),\n },\n });\n};\n\ndefineType(\"AnyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ArrayTypeAnnotation\", {\n visitor: [\"elementType\"],\n aliases: [\"FlowType\"],\n fields: {\n elementType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"BooleanTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"BooleanLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"NullLiteralTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ClassImplements\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineInterfaceishType(\"DeclareClass\");\n\ndefineType(\"DeclareFunction\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n predicate: validateOptionalType(\"DeclaredPredicate\"),\n },\n});\n\ndefineInterfaceishType(\"DeclareInterface\");\n\ndefineType(\"DeclareModule\", {\n builder: [\"id\", \"body\", \"kind\"],\n visitor: [\"id\", \"body\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n body: validateType(\"BlockStatement\"),\n kind: validateOptional(assertOneOf(\"CommonJS\", \"ES\")),\n },\n});\n\ndefineType(\"DeclareModuleExports\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n typeAnnotation: validateType(\"TypeAnnotation\"),\n },\n});\n\ndefineType(\"DeclareTypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"DeclareOpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateOptionalType(\"FlowType\"),\n },\n});\n\ndefineType(\"DeclareVariable\", {\n visitor: [\"id\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"DeclareExportDeclaration\", {\n visitor: [\"declaration\", \"specifiers\", \"source\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n declaration: validateOptionalType(\"Flow\"),\n specifiers: validateOptional(\n arrayOfType([\"ExportSpecifier\", \"ExportNamespaceSpecifier\"]),\n ),\n source: validateOptionalType(\"StringLiteral\"),\n default: validateOptional(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"DeclareExportAllDeclaration\", {\n visitor: [\"source\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n source: validateType(\"StringLiteral\"),\n exportKind: validateOptional(assertOneOf(\"type\", \"value\")),\n },\n});\n\ndefineType(\"DeclaredPredicate\", {\n visitor: [\"value\"],\n aliases: [\"FlowPredicate\"],\n fields: {\n value: validateType(\"Flow\"),\n },\n});\n\ndefineType(\"ExistsTypeAnnotation\", {\n aliases: [\"FlowType\"],\n});\n\ndefineType(\"FunctionTypeAnnotation\", {\n visitor: [\"typeParameters\", \"params\", \"rest\", \"returnType\"],\n aliases: [\"FlowType\"],\n fields: {\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n params: validate(arrayOfType(\"FunctionTypeParam\")),\n rest: validateOptionalType(\"FunctionTypeParam\"),\n this: validateOptionalType(\"FunctionTypeParam\"),\n returnType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"FunctionTypeParam\", {\n visitor: [\"name\", \"typeAnnotation\"],\n fields: {\n name: validateOptionalType(\"Identifier\"),\n typeAnnotation: validateType(\"FlowType\"),\n optional: validateOptional(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"GenericTypeAnnotation\", {\n visitor: [\"id\", \"typeParameters\"],\n aliases: [\"FlowType\"],\n fields: {\n id: validateType([\"Identifier\", \"QualifiedTypeIdentifier\"]),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"InferredPredicate\", {\n aliases: [\"FlowPredicate\"],\n});\n\ndefineType(\"InterfaceExtends\", {\n visitor: [\"id\", \"typeParameters\"],\n fields: {\n id: validateType([\"Identifier\", \"QualifiedTypeIdentifier\"]),\n typeParameters: validateOptionalType(\"TypeParameterInstantiation\"),\n },\n});\n\ndefineInterfaceishType(\"InterfaceDeclaration\");\n\ndefineType(\"InterfaceTypeAnnotation\", {\n visitor: [\"extends\", \"body\"],\n aliases: [\"FlowType\"],\n fields: {\n extends: validateOptional(arrayOfType(\"InterfaceExtends\")),\n body: validateType(\"ObjectTypeAnnotation\"),\n },\n});\n\ndefineType(\"IntersectionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"MixedTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"EmptyTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"NullableTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n aliases: [\"FlowType\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"NumberLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"number\")),\n },\n});\n\ndefineType(\"NumberTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ObjectTypeAnnotation\", {\n visitor: [\"properties\", \"indexers\", \"callProperties\", \"internalSlots\"],\n aliases: [\"FlowType\"],\n builder: [\n \"properties\",\n \"indexers\",\n \"callProperties\",\n \"internalSlots\",\n \"exact\",\n ],\n fields: {\n properties: validate(\n arrayOfType([\"ObjectTypeProperty\", \"ObjectTypeSpreadProperty\"]),\n ),\n indexers: {\n validate: arrayOfType(\"ObjectTypeIndexer\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n callProperties: {\n validate: arrayOfType(\"ObjectTypeCallProperty\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n internalSlots: {\n validate: arrayOfType(\"ObjectTypeInternalSlot\"),\n optional: process.env.BABEL_8_BREAKING ? false : true,\n default: [],\n },\n exact: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n // If the inexact flag is present then this is an object type, and not a\n // declare class, declare interface, or interface. If it is true, the\n // object uses ... to express that it is inexact.\n inexact: validateOptional(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeInternalSlot\", {\n visitor: [\"id\", \"value\", \"optional\", \"static\", \"method\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateType(\"Identifier\"),\n value: validateType(\"FlowType\"),\n optional: validate(assertValueType(\"boolean\")),\n static: validate(assertValueType(\"boolean\")),\n method: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeCallProperty\", {\n visitor: [\"value\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n value: validateType(\"FlowType\"),\n static: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeIndexer\", {\n visitor: [\"id\", \"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n id: validateOptionalType(\"Identifier\"),\n key: validateType(\"FlowType\"),\n value: validateType(\"FlowType\"),\n static: validate(assertValueType(\"boolean\")),\n variance: validateOptionalType(\"Variance\"),\n },\n});\n\ndefineType(\"ObjectTypeProperty\", {\n visitor: [\"key\", \"value\", \"variance\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n key: validateType([\"Identifier\", \"StringLiteral\"]),\n value: validateType(\"FlowType\"),\n kind: validate(assertOneOf(\"init\", \"get\", \"set\")),\n static: validate(assertValueType(\"boolean\")),\n proto: validate(assertValueType(\"boolean\")),\n optional: validate(assertValueType(\"boolean\")),\n variance: validateOptionalType(\"Variance\"),\n method: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"ObjectTypeSpreadProperty\", {\n visitor: [\"argument\"],\n aliases: [\"UserWhitespacable\"],\n fields: {\n argument: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"OpaqueType\", {\n visitor: [\"id\", \"typeParameters\", \"supertype\", \"impltype\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n supertype: validateOptionalType(\"FlowType\"),\n impltype: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"QualifiedTypeIdentifier\", {\n visitor: [\"id\", \"qualification\"],\n fields: {\n id: validateType(\"Identifier\"),\n qualification: validateType([\"Identifier\", \"QualifiedTypeIdentifier\"]),\n },\n});\n\ndefineType(\"StringLiteralTypeAnnotation\", {\n builder: [\"value\"],\n aliases: [\"FlowType\"],\n fields: {\n value: validate(assertValueType(\"string\")),\n },\n});\n\ndefineType(\"StringTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"SymbolTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"ThisTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\ndefineType(\"TupleTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"TypeofTypeAnnotation\", {\n visitor: [\"argument\"],\n aliases: [\"FlowType\"],\n fields: {\n argument: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeAlias\", {\n visitor: [\"id\", \"typeParameters\", \"right\"],\n aliases: [\"FlowDeclaration\", \"Statement\", \"Declaration\"],\n fields: {\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TypeParameterDeclaration\"),\n right: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"TypeCastExpression\", {\n visitor: [\"expression\", \"typeAnnotation\"],\n aliases: [\"ExpressionWrapper\", \"Expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TypeAnnotation\"),\n },\n});\n\ndefineType(\"TypeParameter\", {\n visitor: [\"bound\", \"default\", \"variance\"],\n fields: {\n name: validate(assertValueType(\"string\")),\n bound: validateOptionalType(\"TypeAnnotation\"),\n default: validateOptionalType(\"FlowType\"),\n variance: validateOptionalType(\"Variance\"),\n },\n});\n\ndefineType(\"TypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: validate(arrayOfType(\"TypeParameter\")),\n },\n});\n\ndefineType(\"TypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"UnionTypeAnnotation\", {\n visitor: [\"types\"],\n aliases: [\"FlowType\"],\n fields: {\n types: validate(arrayOfType(\"FlowType\")),\n },\n});\n\ndefineType(\"Variance\", {\n builder: [\"kind\"],\n fields: {\n kind: validate(assertOneOf(\"minus\", \"plus\")),\n },\n});\n\ndefineType(\"VoidTypeAnnotation\", {\n aliases: [\"FlowType\", \"FlowBaseAnnotation\"],\n});\n\n// Enums\ndefineType(\"EnumDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n id: validateType(\"Identifier\"),\n body: validateType([\n \"EnumBooleanBody\",\n \"EnumNumberBody\",\n \"EnumStringBody\",\n \"EnumSymbolBody\",\n ]),\n },\n});\n\ndefineType(\"EnumBooleanBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType(\"EnumBooleanMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumNumberBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType(\"EnumNumberMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumStringBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n explicitType: validate(assertValueType(\"boolean\")),\n members: validateArrayOfType([\"EnumStringMember\", \"EnumDefaultedMember\"]),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumSymbolBody\", {\n aliases: [\"EnumBody\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"EnumDefaultedMember\"),\n hasUnknownMembers: validate(assertValueType(\"boolean\")),\n },\n});\n\ndefineType(\"EnumBooleanMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"BooleanLiteral\"),\n },\n});\n\ndefineType(\"EnumNumberMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"NumericLiteral\"),\n },\n});\n\ndefineType(\"EnumStringMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\", \"init\"],\n fields: {\n id: validateType(\"Identifier\"),\n init: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"EnumDefaultedMember\", {\n aliases: [\"EnumMember\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"IndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\"),\n },\n});\n\ndefineType(\"OptionalIndexedAccessType\", {\n visitor: [\"objectType\", \"indexType\"],\n aliases: [\"FlowType\"],\n fields: {\n objectType: validateType(\"FlowType\"),\n indexType: validateType(\"FlowType\"),\n optional: validate(assertValueType(\"boolean\")),\n },\n});\n","import {\n defineAliasedType,\n assertNodeType,\n assertValueType,\n chain,\n assertEach,\n} from \"./utils.ts\";\n\nconst defineType = defineAliasedType(\"JSX\");\n\ndefineType(\"JSXAttribute\", {\n visitor: [\"name\", \"value\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\"JSXIdentifier\", \"JSXNamespacedName\"),\n },\n value: {\n optional: true,\n validate: assertNodeType(\n \"JSXElement\",\n \"JSXFragment\",\n \"StringLiteral\",\n \"JSXExpressionContainer\",\n ),\n },\n },\n});\n\ndefineType(\"JSXClosingElement\", {\n visitor: [\"name\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\n \"JSXIdentifier\",\n \"JSXMemberExpression\",\n \"JSXNamespacedName\",\n ),\n },\n },\n});\n\ndefineType(\"JSXElement\", {\n builder: process.env.BABEL_8_BREAKING\n ? [\"openingElement\", \"closingElement\", \"children\"]\n : [\"openingElement\", \"closingElement\", \"children\", \"selfClosing\"],\n visitor: [\"openingElement\", \"children\", \"closingElement\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingElement: {\n validate: assertNodeType(\"JSXOpeningElement\"),\n },\n closingElement: {\n optional: true,\n validate: assertNodeType(\"JSXClosingElement\"),\n },\n children: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"JSXText\",\n \"JSXExpressionContainer\",\n \"JSXSpreadChild\",\n \"JSXElement\",\n \"JSXFragment\",\n ),\n ),\n ),\n },\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n selfClosing: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n }),\n },\n});\n\ndefineType(\"JSXEmptyExpression\", {});\n\ndefineType(\"JSXExpressionContainer\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\", \"JSXEmptyExpression\"),\n },\n },\n});\n\ndefineType(\"JSXSpreadChild\", {\n visitor: [\"expression\"],\n aliases: [\"Immutable\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"JSXIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"JSXMemberExpression\", {\n visitor: [\"object\", \"property\"],\n fields: {\n object: {\n validate: assertNodeType(\"JSXMemberExpression\", \"JSXIdentifier\"),\n },\n property: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n },\n});\n\ndefineType(\"JSXNamespacedName\", {\n visitor: [\"namespace\", \"name\"],\n fields: {\n namespace: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n name: {\n validate: assertNodeType(\"JSXIdentifier\"),\n },\n },\n});\n\ndefineType(\"JSXOpeningElement\", {\n builder: [\"name\", \"attributes\", \"selfClosing\"],\n visitor: [\"name\", \"attributes\"],\n aliases: [\"Immutable\"],\n fields: {\n name: {\n validate: assertNodeType(\n \"JSXIdentifier\",\n \"JSXMemberExpression\",\n \"JSXNamespacedName\",\n ),\n },\n selfClosing: {\n default: false,\n },\n attributes: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"JSXAttribute\", \"JSXSpreadAttribute\")),\n ),\n },\n typeParameters: {\n validate: assertNodeType(\n \"TypeParameterInstantiation\",\n \"TSTypeParameterInstantiation\",\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"JSXSpreadAttribute\", {\n visitor: [\"argument\"],\n fields: {\n argument: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"JSXText\", {\n aliases: [\"Immutable\"],\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n\ndefineType(\"JSXFragment\", {\n builder: [\"openingFragment\", \"closingFragment\", \"children\"],\n visitor: [\"openingFragment\", \"children\", \"closingFragment\"],\n aliases: [\"Immutable\", \"Expression\"],\n fields: {\n openingFragment: {\n validate: assertNodeType(\"JSXOpeningFragment\"),\n },\n closingFragment: {\n validate: assertNodeType(\"JSXClosingFragment\"),\n },\n children: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(\n assertNodeType(\n \"JSXText\",\n \"JSXExpressionContainer\",\n \"JSXSpreadChild\",\n \"JSXElement\",\n \"JSXFragment\",\n ),\n ),\n ),\n },\n },\n});\n\ndefineType(\"JSXOpeningFragment\", {\n aliases: [\"Immutable\"],\n});\n\ndefineType(\"JSXClosingFragment\", {\n aliases: [\"Immutable\"],\n});\n","import { ALIAS_KEYS } from \"./utils.ts\";\n\nexport const PLACEHOLDERS = [\n \"Identifier\",\n \"StringLiteral\",\n \"Expression\",\n \"Statement\",\n \"Declaration\",\n \"BlockStatement\",\n \"ClassBody\",\n \"Pattern\",\n] as const;\n\nexport const PLACEHOLDERS_ALIAS: Record = {\n Declaration: [\"Statement\"],\n Pattern: [\"PatternLike\", \"LVal\"],\n};\n\nfor (const type of PLACEHOLDERS) {\n const alias = ALIAS_KEYS[type];\n if (alias?.length) PLACEHOLDERS_ALIAS[type] = alias;\n}\n\nexport const PLACEHOLDERS_FLIPPED_ALIAS: Record = {};\n\nObject.keys(PLACEHOLDERS_ALIAS).forEach(type => {\n PLACEHOLDERS_ALIAS[type].forEach(alias => {\n if (!Object.hasOwn(PLACEHOLDERS_FLIPPED_ALIAS, alias)) {\n PLACEHOLDERS_FLIPPED_ALIAS[alias] = [];\n }\n PLACEHOLDERS_FLIPPED_ALIAS[alias].push(type);\n });\n});\n","import {\n defineAliasedType,\n assertNodeType,\n assertOneOf,\n assertValueType,\n} from \"./utils.ts\";\nimport { PLACEHOLDERS } from \"./placeholders.ts\";\n\nconst defineType = defineAliasedType(\"Miscellaneous\");\n\nif (!process.env.BABEL_8_BREAKING) {\n defineType(\"Noop\", {\n visitor: [],\n });\n}\n\ndefineType(\"Placeholder\", {\n visitor: [],\n builder: [\"expectedNode\", \"name\"],\n // aliases: [], defined in placeholders.js\n fields: {\n name: {\n validate: assertNodeType(\"Identifier\"),\n },\n expectedNode: {\n validate: assertOneOf(...PLACEHOLDERS),\n },\n },\n});\n\ndefineType(\"V8IntrinsicIdentifier\", {\n builder: [\"name\"],\n fields: {\n name: {\n validate: assertValueType(\"string\"),\n },\n },\n});\n","import defineType, {\n assertEach,\n assertNodeType,\n assertValueType,\n chain,\n} from \"./utils.ts\";\n\ndefineType(\"ArgumentPlaceholder\", {});\n\ndefineType(\"BindExpression\", {\n visitor: [\"object\", \"callee\"],\n aliases: [\"Expression\"],\n fields: !process.env.BABEL_TYPES_8_BREAKING\n ? {\n object: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"],\n }),\n },\n callee: {\n validate: Object.assign(() => {}, {\n oneOfNodeTypes: [\"Expression\"],\n }),\n },\n }\n : {\n object: {\n validate: assertNodeType(\"Expression\"),\n },\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"ImportAttribute\", {\n visitor: [\"key\", \"value\"],\n fields: {\n key: {\n validate: assertNodeType(\"Identifier\", \"StringLiteral\"),\n },\n value: {\n validate: assertNodeType(\"StringLiteral\"),\n },\n },\n});\n\ndefineType(\"Decorator\", {\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n});\n\ndefineType(\"DoExpression\", {\n visitor: [\"body\"],\n builder: [\"body\", \"async\"],\n aliases: [\"Expression\"],\n fields: {\n body: {\n validate: assertNodeType(\"BlockStatement\"),\n },\n async: {\n validate: assertValueType(\"boolean\"),\n default: false,\n },\n },\n});\n\ndefineType(\"ExportDefaultSpecifier\", {\n visitor: [\"exported\"],\n aliases: [\"ModuleSpecifier\"],\n fields: {\n exported: {\n validate: assertNodeType(\"Identifier\"),\n },\n },\n});\n\ndefineType(\"RecordExpression\", {\n visitor: [\"properties\"],\n aliases: [\"Expression\"],\n fields: {\n properties: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"ObjectProperty\", \"SpreadElement\")),\n ),\n },\n },\n});\n\ndefineType(\"TupleExpression\", {\n fields: {\n elements: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Expression\", \"SpreadElement\")),\n ),\n default: [],\n },\n },\n visitor: [\"elements\"],\n aliases: [\"Expression\"],\n});\n\ndefineType(\"DecimalLiteral\", {\n builder: [\"value\"],\n fields: {\n value: {\n validate: assertValueType(\"string\"),\n },\n },\n aliases: [\"Expression\", \"Pureish\", \"Literal\", \"Immutable\"],\n});\n\n// https://github.com/tc39/proposal-js-module-blocks\ndefineType(\"ModuleExpression\", {\n visitor: [\"body\"],\n fields: {\n body: {\n validate: assertNodeType(\"Program\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\n// https://github.com/tc39/proposal-pipeline-operator\n// https://github.com/js-choi/proposal-hack-pipes\ndefineType(\"TopicReference\", {\n aliases: [\"Expression\"],\n});\n\n// https://github.com/tc39/proposal-pipeline-operator\n// https://github.com/js-choi/proposal-smart-pipes\ndefineType(\"PipelineTopicExpression\", {\n builder: [\"expression\"],\n visitor: [\"expression\"],\n fields: {\n expression: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"PipelineBareFunction\", {\n builder: [\"callee\"],\n visitor: [\"callee\"],\n fields: {\n callee: {\n validate: assertNodeType(\"Expression\"),\n },\n },\n aliases: [\"Expression\"],\n});\n\ndefineType(\"PipelinePrimaryTopicReference\", {\n aliases: [\"Expression\"],\n});\n","import {\n defineAliasedType,\n arrayOfType,\n assertEach,\n assertNodeType,\n assertOneOf,\n assertValueType,\n chain,\n validate,\n validateArrayOfType,\n validateOptional,\n validateOptionalType,\n validateType,\n} from \"./utils.ts\";\nimport {\n functionDeclarationCommon,\n classMethodOrDeclareMethodCommon,\n} from \"./core.ts\";\nimport is from \"../validators/is.ts\";\n\nconst defineType = defineAliasedType(\"TypeScript\");\n\nconst bool = assertValueType(\"boolean\");\n\nconst tSFunctionTypeAnnotationCommon = () => ({\n returnType: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeAnnotation\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeAnnotation\", \"Noop\"),\n optional: true,\n },\n typeParameters: {\n validate: process.env.BABEL_8_BREAKING\n ? assertNodeType(\"TSTypeParameterDeclaration\")\n : // @ts-ignore(Babel 7 vs Babel 8) Babel 7 AST\n assertNodeType(\"TSTypeParameterDeclaration\", \"Noop\"),\n optional: true,\n },\n});\n\ndefineType(\"TSParameterProperty\", {\n aliases: [\"LVal\"], // TODO: This isn't usable in general as an LVal. Should have a \"Parameter\" alias.\n visitor: [\"parameter\"],\n fields: {\n accessibility: {\n validate: assertOneOf(\"public\", \"private\", \"protected\"),\n optional: true,\n },\n readonly: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n parameter: {\n validate: assertNodeType(\"Identifier\", \"AssignmentPattern\"),\n },\n override: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n decorators: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"Decorator\")),\n ),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSDeclareFunction\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...functionDeclarationCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSDeclareMethod\", {\n visitor: [\"decorators\", \"key\", \"typeParameters\", \"params\", \"returnType\"],\n fields: {\n ...classMethodOrDeclareMethodCommon(),\n ...tSFunctionTypeAnnotationCommon(),\n },\n});\n\ndefineType(\"TSQualifiedName\", {\n aliases: [\"TSEntityName\"],\n visitor: [\"left\", \"right\"],\n fields: {\n left: validateType(\"TSEntityName\"),\n right: validateType(\"Identifier\"),\n },\n});\n\nconst signatureDeclarationCommon = () => ({\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n [process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\"]: validateArrayOfType(\n [\"ArrayPattern\", \"Identifier\", \"ObjectPattern\", \"RestElement\"],\n ),\n [process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\"]:\n validateOptionalType(\"TSTypeAnnotation\"),\n});\n\nconst callConstructSignatureDeclaration = {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: signatureDeclarationCommon(),\n};\n\ndefineType(\"TSCallSignatureDeclaration\", callConstructSignatureDeclaration);\ndefineType(\n \"TSConstructSignatureDeclaration\",\n callConstructSignatureDeclaration,\n);\n\nconst namedTypeElementCommon = () => ({\n key: validateType(\"Expression\"),\n computed: { default: false },\n optional: validateOptional(bool),\n});\n\ndefineType(\"TSPropertySignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"key\", \"typeAnnotation\"],\n fields: {\n ...namedTypeElementCommon(),\n readonly: validateOptional(bool),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n kind: {\n validate: assertOneOf(\"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSMethodSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\n \"key\",\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n fields: {\n ...signatureDeclarationCommon(),\n ...namedTypeElementCommon(),\n kind: {\n validate: assertOneOf(\"method\", \"get\", \"set\"),\n },\n },\n});\n\ndefineType(\"TSIndexSignature\", {\n aliases: [\"TSTypeElement\"],\n visitor: [\"parameters\", \"typeAnnotation\"],\n fields: {\n readonly: validateOptional(bool),\n static: validateOptional(bool),\n parameters: validateArrayOfType(\"Identifier\"), // Length must be 1\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n },\n});\n\nconst tsKeywordTypes = [\n \"TSAnyKeyword\",\n \"TSBooleanKeyword\",\n \"TSBigIntKeyword\",\n \"TSIntrinsicKeyword\",\n \"TSNeverKeyword\",\n \"TSNullKeyword\",\n \"TSNumberKeyword\",\n \"TSObjectKeyword\",\n \"TSStringKeyword\",\n \"TSSymbolKeyword\",\n \"TSUndefinedKeyword\",\n \"TSUnknownKeyword\",\n \"TSVoidKeyword\",\n] as const;\n\nfor (const type of tsKeywordTypes) {\n defineType(type, {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n });\n}\n\ndefineType(\"TSThisType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [],\n fields: {},\n});\n\nconst fnOrCtrBase = {\n aliases: [\"TSType\"],\n visitor: [\n \"typeParameters\",\n process.env.BABEL_8_BREAKING ? \"params\" : \"parameters\",\n process.env.BABEL_8_BREAKING ? \"returnType\" : \"typeAnnotation\",\n ],\n};\n\ndefineType(\"TSFunctionType\", {\n ...fnOrCtrBase,\n fields: signatureDeclarationCommon(),\n});\ndefineType(\"TSConstructorType\", {\n ...fnOrCtrBase,\n fields: {\n ...signatureDeclarationCommon(),\n abstract: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeReference\", {\n aliases: [\"TSType\"],\n visitor: [\"typeName\", \"typeParameters\"],\n fields: {\n typeName: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypePredicate\", {\n aliases: [\"TSType\"],\n visitor: [\"parameterName\", \"typeAnnotation\"],\n builder: [\"parameterName\", \"typeAnnotation\", \"asserts\"],\n fields: {\n parameterName: validateType([\"Identifier\", \"TSThisType\"]),\n typeAnnotation: validateOptionalType(\"TSTypeAnnotation\"),\n asserts: validateOptional(bool),\n },\n});\n\ndefineType(\"TSTypeQuery\", {\n aliases: [\"TSType\"],\n visitor: [\"exprName\", \"typeParameters\"],\n fields: {\n exprName: validateType([\"TSEntityName\", \"TSImportType\"]),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSTypeLiteral\", {\n aliases: [\"TSType\"],\n visitor: [\"members\"],\n fields: {\n members: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSArrayType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementType\"],\n fields: {\n elementType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTupleType\", {\n aliases: [\"TSType\"],\n visitor: [\"elementTypes\"],\n fields: {\n elementTypes: validateArrayOfType([\"TSType\", \"TSNamedTupleMember\"]),\n },\n});\n\ndefineType(\"TSOptionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSRestType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSNamedTupleMember\", {\n visitor: [\"label\", \"elementType\"],\n builder: [\"label\", \"elementType\", \"optional\"],\n fields: {\n label: validateType(\"Identifier\"),\n optional: {\n validate: bool,\n default: false,\n },\n elementType: validateType(\"TSType\"),\n },\n});\n\nconst unionOrIntersection = {\n aliases: [\"TSType\"],\n visitor: [\"types\"],\n fields: {\n types: validateArrayOfType(\"TSType\"),\n },\n};\n\ndefineType(\"TSUnionType\", unionOrIntersection);\ndefineType(\"TSIntersectionType\", unionOrIntersection);\n\ndefineType(\"TSConditionalType\", {\n aliases: [\"TSType\"],\n visitor: [\"checkType\", \"extendsType\", \"trueType\", \"falseType\"],\n fields: {\n checkType: validateType(\"TSType\"),\n extendsType: validateType(\"TSType\"),\n trueType: validateType(\"TSType\"),\n falseType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInferType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\"],\n fields: {\n typeParameter: validateType(\"TSTypeParameter\"),\n },\n});\n\ndefineType(\"TSParenthesizedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSTypeOperator\", {\n aliases: [\"TSType\"],\n visitor: [\"typeAnnotation\"],\n fields: {\n operator: validate(assertValueType(\"string\")),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSIndexedAccessType\", {\n aliases: [\"TSType\"],\n visitor: [\"objectType\", \"indexType\"],\n fields: {\n objectType: validateType(\"TSType\"),\n indexType: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSMappedType\", {\n aliases: [\"TSType\"],\n visitor: [\"typeParameter\", \"typeAnnotation\", \"nameType\"],\n fields: {\n readonly: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeParameter: validateType(\"TSTypeParameter\"),\n optional: validateOptional(assertOneOf(true, false, \"+\", \"-\")),\n typeAnnotation: validateOptionalType(\"TSType\"),\n nameType: validateOptionalType(\"TSType\"),\n },\n});\n\ndefineType(\"TSLiteralType\", {\n aliases: [\"TSType\", \"TSBaseType\"],\n visitor: [\"literal\"],\n fields: {\n literal: {\n validate: (function () {\n const unaryExpression = assertNodeType(\n \"NumericLiteral\",\n \"BigIntLiteral\",\n );\n const unaryOperator = assertOneOf(\"-\");\n\n const literal = assertNodeType(\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n );\n function validator(parent: any, key: string, node: any) {\n // type A = -1 | 1;\n if (is(\"UnaryExpression\", node)) {\n // check operator first\n unaryOperator(node, \"operator\", node.operator);\n unaryExpression(node, \"argument\", node.argument);\n } else {\n // type A = 'foo' | 'bar' | false | 1;\n literal(parent, key, node);\n }\n }\n\n validator.oneOfNodeTypes = [\n \"NumericLiteral\",\n \"StringLiteral\",\n \"BooleanLiteral\",\n \"BigIntLiteral\",\n \"TemplateLiteral\",\n \"UnaryExpression\",\n ];\n\n return validator;\n })(),\n },\n },\n});\n\ndefineType(\"TSExpressionWithTypeArguments\", {\n aliases: [\"TSType\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\ndefineType(\"TSInterfaceDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"extends\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n extends: validateOptional(arrayOfType(\"TSExpressionWithTypeArguments\")),\n body: validateType(\"TSInterfaceBody\"),\n },\n});\n\ndefineType(\"TSInterfaceBody\", {\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"TSTypeElement\"),\n },\n});\n\ndefineType(\"TSTypeAliasDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"typeParameters\", \"typeAnnotation\"],\n fields: {\n declare: validateOptional(bool),\n id: validateType(\"Identifier\"),\n typeParameters: validateOptionalType(\"TSTypeParameterDeclaration\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n});\n\ndefineType(\"TSInstantiationExpression\", {\n aliases: [\"Expression\"],\n visitor: [\"expression\", \"typeParameters\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n },\n});\n\nconst TSTypeExpression = {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\", \"typeAnnotation\"],\n fields: {\n expression: validateType(\"Expression\"),\n typeAnnotation: validateType(\"TSType\"),\n },\n};\n\ndefineType(\"TSAsExpression\", TSTypeExpression);\ndefineType(\"TSSatisfiesExpression\", TSTypeExpression);\n\ndefineType(\"TSTypeAssertion\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"typeAnnotation\", \"expression\"],\n fields: {\n typeAnnotation: validateType(\"TSType\"),\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumDeclaration\", {\n // \"Statement\" alias prevents a semicolon from appearing after it in an export declaration.\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"members\"],\n fields: {\n declare: validateOptional(bool),\n const: validateOptional(bool),\n id: validateType(\"Identifier\"),\n members: validateArrayOfType(\"TSEnumMember\"),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSEnumMember\", {\n visitor: [\"id\", \"initializer\"],\n fields: {\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n initializer: validateOptionalType(\"Expression\"),\n },\n});\n\ndefineType(\"TSModuleDeclaration\", {\n aliases: [\"Statement\", \"Declaration\"],\n visitor: [\"id\", \"body\"],\n fields: {\n declare: validateOptional(bool),\n global: validateOptional(bool),\n id: validateType([\"Identifier\", \"StringLiteral\"]),\n body: validateType([\"TSModuleBlock\", \"TSModuleDeclaration\"]),\n },\n});\n\ndefineType(\"TSModuleBlock\", {\n aliases: [\"Scopable\", \"Block\", \"BlockParent\", \"FunctionParent\"],\n visitor: [\"body\"],\n fields: {\n body: validateArrayOfType(\"Statement\"),\n },\n});\n\ndefineType(\"TSImportType\", {\n aliases: [\"TSType\"],\n visitor: [\"argument\", \"qualifier\", \"typeParameters\"],\n fields: {\n argument: validateType(\"StringLiteral\"),\n qualifier: validateOptionalType(\"TSEntityName\"),\n typeParameters: validateOptionalType(\"TSTypeParameterInstantiation\"),\n options: {\n validate: assertNodeType(\"Expression\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSImportEqualsDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\", \"moduleReference\"],\n fields: {\n isExport: validate(bool),\n id: validateType(\"Identifier\"),\n moduleReference: validateType([\n \"TSEntityName\",\n \"TSExternalModuleReference\",\n ]),\n importKind: {\n validate: assertOneOf(\"type\", \"value\"),\n optional: true,\n },\n },\n});\n\ndefineType(\"TSExternalModuleReference\", {\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"StringLiteral\"),\n },\n});\n\ndefineType(\"TSNonNullExpression\", {\n aliases: [\"Expression\", \"LVal\", \"PatternLike\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSExportAssignment\", {\n aliases: [\"Statement\"],\n visitor: [\"expression\"],\n fields: {\n expression: validateType(\"Expression\"),\n },\n});\n\ndefineType(\"TSNamespaceExportDeclaration\", {\n aliases: [\"Statement\"],\n visitor: [\"id\"],\n fields: {\n id: validateType(\"Identifier\"),\n },\n});\n\ndefineType(\"TSTypeAnnotation\", {\n visitor: [\"typeAnnotation\"],\n fields: {\n typeAnnotation: {\n validate: assertNodeType(\"TSType\"),\n },\n },\n});\n\ndefineType(\"TSTypeParameterInstantiation\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSType\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameterDeclaration\", {\n visitor: [\"params\"],\n fields: {\n params: {\n validate: chain(\n assertValueType(\"array\"),\n assertEach(assertNodeType(\"TSTypeParameter\")),\n ),\n },\n },\n});\n\ndefineType(\"TSTypeParameter\", {\n builder: [\"constraint\", \"default\", \"name\"],\n visitor: [\"constraint\", \"default\"],\n fields: {\n name: {\n validate: !process.env.BABEL_8_BREAKING\n ? assertValueType(\"string\")\n : assertNodeType(\"Identifier\"),\n },\n in: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n out: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n const: {\n validate: assertValueType(\"boolean\"),\n optional: true,\n },\n constraint: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n default: {\n validate: assertNodeType(\"TSType\"),\n optional: true,\n },\n },\n});\n","export const DEPRECATED_ALIASES = {\n ModuleDeclaration: \"ImportOrExportDeclaration\",\n};\n","import toFastProperties from \"to-fast-properties\";\nimport \"./core.ts\";\nimport \"./flow.ts\";\nimport \"./jsx.ts\";\nimport \"./misc.ts\";\nimport \"./experimental.ts\";\nimport \"./typescript.ts\";\nimport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n} from \"./utils.ts\";\nimport {\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n} from \"./placeholders.ts\";\nimport { DEPRECATED_ALIASES } from \"./deprecated-aliases.ts\";\n\n(\n Object.keys(DEPRECATED_ALIASES) as (keyof typeof DEPRECATED_ALIASES)[]\n).forEach(deprecatedAlias => {\n FLIPPED_ALIAS_KEYS[deprecatedAlias] =\n FLIPPED_ALIAS_KEYS[DEPRECATED_ALIASES[deprecatedAlias]];\n});\n\n// We do this here, because at this point the visitor keys should be ready and setup\ntoFastProperties(VISITOR_KEYS);\ntoFastProperties(ALIAS_KEYS);\ntoFastProperties(FLIPPED_ALIAS_KEYS);\ntoFastProperties(NODE_FIELDS);\ntoFastProperties(BUILDER_KEYS);\ntoFastProperties(DEPRECATED_KEYS);\n\ntoFastProperties(PLACEHOLDERS_ALIAS);\ntoFastProperties(PLACEHOLDERS_FLIPPED_ALIAS);\n\nconst TYPES: Array = [].concat(\n Object.keys(VISITOR_KEYS),\n Object.keys(FLIPPED_ALIAS_KEYS),\n Object.keys(DEPRECATED_KEYS),\n);\n\nexport {\n VISITOR_KEYS,\n ALIAS_KEYS,\n FLIPPED_ALIAS_KEYS,\n NODE_FIELDS,\n BUILDER_KEYS,\n DEPRECATED_ALIASES,\n DEPRECATED_KEYS,\n NODE_PARENT_VALIDATIONS,\n PLACEHOLDERS,\n PLACEHOLDERS_ALIAS,\n PLACEHOLDERS_FLIPPED_ALIAS,\n TYPES,\n};\n\nexport type { FieldOptions } from \"./utils.ts\";\n","import {\n NODE_FIELDS,\n NODE_PARENT_VALIDATIONS,\n type FieldOptions,\n} from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function validate(\n node: t.Node | undefined | null,\n key: string,\n val: any,\n): void {\n if (!node) return;\n\n const fields = NODE_FIELDS[node.type];\n if (!fields) return;\n\n const field = fields[key];\n validateField(node, key, val, field);\n validateChild(node, key, val);\n}\n\nexport function validateField(\n node: t.Node | undefined | null,\n key: string,\n val: any,\n field: FieldOptions | undefined | null,\n): void {\n if (!field?.validate) return;\n if (field.optional && val == null) return;\n\n field.validate(node, key, val);\n}\n\nexport function validateChild(\n node: t.Node | undefined | null,\n key: string,\n val?: t.Node | undefined | null,\n) {\n if (val == null) return;\n const validate = NODE_PARENT_VALIDATIONS[val.type];\n if (!validate) return;\n validate(node, key, val);\n}\n","import validate from \"../validators/validate.ts\";\nimport type * as t from \"../index.ts\";\nimport { BUILDER_KEYS } from \"../index.ts\";\n\nexport default function validateNode(node: N) {\n // todo: because keys not in BUILDER_KEYS are not validated - this actually allows invalid nodes in some cases\n const keys = BUILDER_KEYS[node.type] as (keyof N & string)[];\n for (const key of keys) {\n validate(node, key, node[key]);\n }\n return node;\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport validateNode from \"../validateNode.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\nexport function arrayExpression(\n elements: Array = [],\n): t.ArrayExpression {\n return validateNode({\n type: \"ArrayExpression\",\n elements,\n });\n}\nexport function assignmentExpression(\n operator: string,\n left: t.LVal | t.OptionalMemberExpression,\n right: t.Expression,\n): t.AssignmentExpression {\n return validateNode({\n type: \"AssignmentExpression\",\n operator,\n left,\n right,\n });\n}\nexport function binaryExpression(\n operator:\n | \"+\"\n | \"-\"\n | \"/\"\n | \"%\"\n | \"*\"\n | \"**\"\n | \"&\"\n | \"|\"\n | \">>\"\n | \">>>\"\n | \"<<\"\n | \"^\"\n | \"==\"\n | \"===\"\n | \"!=\"\n | \"!==\"\n | \"in\"\n | \"instanceof\"\n | \">\"\n | \"<\"\n | \">=\"\n | \"<=\"\n | \"|>\",\n left: t.Expression | t.PrivateName,\n right: t.Expression,\n): t.BinaryExpression {\n return validateNode({\n type: \"BinaryExpression\",\n operator,\n left,\n right,\n });\n}\nexport function interpreterDirective(value: string): t.InterpreterDirective {\n return validateNode({\n type: \"InterpreterDirective\",\n value,\n });\n}\nexport function directive(value: t.DirectiveLiteral): t.Directive {\n return validateNode({\n type: \"Directive\",\n value,\n });\n}\nexport function directiveLiteral(value: string): t.DirectiveLiteral {\n return validateNode({\n type: \"DirectiveLiteral\",\n value,\n });\n}\nexport function blockStatement(\n body: Array,\n directives: Array = [],\n): t.BlockStatement {\n return validateNode({\n type: \"BlockStatement\",\n body,\n directives,\n });\n}\nexport function breakStatement(\n label: t.Identifier | null = null,\n): t.BreakStatement {\n return validateNode({\n type: \"BreakStatement\",\n label,\n });\n}\nexport function callExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array,\n): t.CallExpression {\n return validateNode({\n type: \"CallExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function catchClause(\n param:\n | t.Identifier\n | t.ArrayPattern\n | t.ObjectPattern\n | null\n | undefined = null,\n body: t.BlockStatement,\n): t.CatchClause {\n return validateNode({\n type: \"CatchClause\",\n param,\n body,\n });\n}\nexport function conditionalExpression(\n test: t.Expression,\n consequent: t.Expression,\n alternate: t.Expression,\n): t.ConditionalExpression {\n return validateNode({\n type: \"ConditionalExpression\",\n test,\n consequent,\n alternate,\n });\n}\nexport function continueStatement(\n label: t.Identifier | null = null,\n): t.ContinueStatement {\n return validateNode({\n type: \"ContinueStatement\",\n label,\n });\n}\nexport function debuggerStatement(): t.DebuggerStatement {\n return {\n type: \"DebuggerStatement\",\n };\n}\nexport function doWhileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.DoWhileStatement {\n return validateNode({\n type: \"DoWhileStatement\",\n test,\n body,\n });\n}\nexport function emptyStatement(): t.EmptyStatement {\n return {\n type: \"EmptyStatement\",\n };\n}\nexport function expressionStatement(\n expression: t.Expression,\n): t.ExpressionStatement {\n return validateNode({\n type: \"ExpressionStatement\",\n expression,\n });\n}\nexport function file(\n program: t.Program,\n comments: Array | null = null,\n tokens: Array | null = null,\n): t.File {\n return validateNode({\n type: \"File\",\n program,\n comments,\n tokens,\n });\n}\nexport function forInStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n): t.ForInStatement {\n return validateNode({\n type: \"ForInStatement\",\n left,\n right,\n body,\n });\n}\nexport function forStatement(\n init: t.VariableDeclaration | t.Expression | null | undefined = null,\n test: t.Expression | null | undefined = null,\n update: t.Expression | null | undefined = null,\n body: t.Statement,\n): t.ForStatement {\n return validateNode({\n type: \"ForStatement\",\n init,\n test,\n update,\n body,\n });\n}\nexport function functionDeclaration(\n id: t.Identifier | null | undefined = null,\n params: Array,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionDeclaration {\n return validateNode({\n type: \"FunctionDeclaration\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function functionExpression(\n id: t.Identifier | null | undefined = null,\n params: Array,\n body: t.BlockStatement,\n generator: boolean = false,\n async: boolean = false,\n): t.FunctionExpression {\n return validateNode({\n type: \"FunctionExpression\",\n id,\n params,\n body,\n generator,\n async,\n });\n}\nexport function identifier(name: string): t.Identifier {\n return validateNode({\n type: \"Identifier\",\n name,\n });\n}\nexport function ifStatement(\n test: t.Expression,\n consequent: t.Statement,\n alternate: t.Statement | null = null,\n): t.IfStatement {\n return validateNode({\n type: \"IfStatement\",\n test,\n consequent,\n alternate,\n });\n}\nexport function labeledStatement(\n label: t.Identifier,\n body: t.Statement,\n): t.LabeledStatement {\n return validateNode({\n type: \"LabeledStatement\",\n label,\n body,\n });\n}\nexport function stringLiteral(value: string): t.StringLiteral {\n return validateNode({\n type: \"StringLiteral\",\n value,\n });\n}\nexport function numericLiteral(value: number): t.NumericLiteral {\n return validateNode({\n type: \"NumericLiteral\",\n value,\n });\n}\nexport function nullLiteral(): t.NullLiteral {\n return {\n type: \"NullLiteral\",\n };\n}\nexport function booleanLiteral(value: boolean): t.BooleanLiteral {\n return validateNode({\n type: \"BooleanLiteral\",\n value,\n });\n}\nexport function regExpLiteral(\n pattern: string,\n flags: string = \"\",\n): t.RegExpLiteral {\n return validateNode({\n type: \"RegExpLiteral\",\n pattern,\n flags,\n });\n}\nexport function logicalExpression(\n operator: \"||\" | \"&&\" | \"??\",\n left: t.Expression,\n right: t.Expression,\n): t.LogicalExpression {\n return validateNode({\n type: \"LogicalExpression\",\n operator,\n left,\n right,\n });\n}\nexport function memberExpression(\n object: t.Expression | t.Super,\n property: t.Expression | t.Identifier | t.PrivateName,\n computed: boolean = false,\n optional: true | false | null = null,\n): t.MemberExpression {\n return validateNode({\n type: \"MemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function newExpression(\n callee: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n _arguments: Array,\n): t.NewExpression {\n return validateNode({\n type: \"NewExpression\",\n callee,\n arguments: _arguments,\n });\n}\nexport function program(\n body: Array,\n directives: Array = [],\n sourceType: \"script\" | \"module\" = \"script\",\n interpreter: t.InterpreterDirective | null = null,\n): t.Program {\n return validateNode({\n type: \"Program\",\n body,\n directives,\n sourceType,\n interpreter,\n });\n}\nexport function objectExpression(\n properties: Array,\n): t.ObjectExpression {\n return validateNode({\n type: \"ObjectExpression\",\n properties,\n });\n}\nexport function objectMethod(\n kind: \"method\" | \"get\" | \"set\" | undefined = \"method\",\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n params: Array,\n body: t.BlockStatement,\n computed: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ObjectMethod {\n return validateNode({\n type: \"ObjectMethod\",\n kind,\n key,\n params,\n body,\n computed,\n generator,\n async,\n });\n}\nexport function objectProperty(\n key:\n | t.Expression\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.DecimalLiteral\n | t.PrivateName,\n value: t.Expression | t.PatternLike,\n computed: boolean = false,\n shorthand: boolean = false,\n decorators: Array | null = null,\n): t.ObjectProperty {\n return validateNode({\n type: \"ObjectProperty\",\n key,\n value,\n computed,\n shorthand,\n decorators,\n });\n}\nexport function restElement(argument: t.LVal): t.RestElement {\n return validateNode({\n type: \"RestElement\",\n argument,\n });\n}\nexport function returnStatement(\n argument: t.Expression | null = null,\n): t.ReturnStatement {\n return validateNode({\n type: \"ReturnStatement\",\n argument,\n });\n}\nexport function sequenceExpression(\n expressions: Array,\n): t.SequenceExpression {\n return validateNode({\n type: \"SequenceExpression\",\n expressions,\n });\n}\nexport function parenthesizedExpression(\n expression: t.Expression,\n): t.ParenthesizedExpression {\n return validateNode({\n type: \"ParenthesizedExpression\",\n expression,\n });\n}\nexport function switchCase(\n test: t.Expression | null | undefined = null,\n consequent: Array,\n): t.SwitchCase {\n return validateNode({\n type: \"SwitchCase\",\n test,\n consequent,\n });\n}\nexport function switchStatement(\n discriminant: t.Expression,\n cases: Array,\n): t.SwitchStatement {\n return validateNode({\n type: \"SwitchStatement\",\n discriminant,\n cases,\n });\n}\nexport function thisExpression(): t.ThisExpression {\n return {\n type: \"ThisExpression\",\n };\n}\nexport function throwStatement(argument: t.Expression): t.ThrowStatement {\n return validateNode({\n type: \"ThrowStatement\",\n argument,\n });\n}\nexport function tryStatement(\n block: t.BlockStatement,\n handler: t.CatchClause | null = null,\n finalizer: t.BlockStatement | null = null,\n): t.TryStatement {\n return validateNode({\n type: \"TryStatement\",\n block,\n handler,\n finalizer,\n });\n}\nexport function unaryExpression(\n operator: \"void\" | \"throw\" | \"delete\" | \"!\" | \"+\" | \"-\" | \"~\" | \"typeof\",\n argument: t.Expression,\n prefix: boolean = true,\n): t.UnaryExpression {\n return validateNode({\n type: \"UnaryExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function updateExpression(\n operator: \"++\" | \"--\",\n argument: t.Expression,\n prefix: boolean = false,\n): t.UpdateExpression {\n return validateNode({\n type: \"UpdateExpression\",\n operator,\n argument,\n prefix,\n });\n}\nexport function variableDeclaration(\n kind: \"var\" | \"let\" | \"const\" | \"using\" | \"await using\",\n declarations: Array,\n): t.VariableDeclaration {\n return validateNode({\n type: \"VariableDeclaration\",\n kind,\n declarations,\n });\n}\nexport function variableDeclarator(\n id: t.LVal,\n init: t.Expression | null = null,\n): t.VariableDeclarator {\n return validateNode({\n type: \"VariableDeclarator\",\n id,\n init,\n });\n}\nexport function whileStatement(\n test: t.Expression,\n body: t.Statement,\n): t.WhileStatement {\n return validateNode({\n type: \"WhileStatement\",\n test,\n body,\n });\n}\nexport function withStatement(\n object: t.Expression,\n body: t.Statement,\n): t.WithStatement {\n return validateNode({\n type: \"WithStatement\",\n object,\n body,\n });\n}\nexport function assignmentPattern(\n left:\n | t.Identifier\n | t.ObjectPattern\n | t.ArrayPattern\n | t.MemberExpression\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression,\n right: t.Expression,\n): t.AssignmentPattern {\n return validateNode({\n type: \"AssignmentPattern\",\n left,\n right,\n });\n}\nexport function arrayPattern(\n elements: Array,\n): t.ArrayPattern {\n return validateNode({\n type: \"ArrayPattern\",\n elements,\n });\n}\nexport function arrowFunctionExpression(\n params: Array,\n body: t.BlockStatement | t.Expression,\n async: boolean = false,\n): t.ArrowFunctionExpression {\n return validateNode({\n type: \"ArrowFunctionExpression\",\n params,\n body,\n async,\n expression: null,\n });\n}\nexport function classBody(\n body: Array<\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock\n >,\n): t.ClassBody {\n return validateNode({\n type: \"ClassBody\",\n body,\n });\n}\nexport function classExpression(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array | null = null,\n): t.ClassExpression {\n return validateNode({\n type: \"ClassExpression\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function classDeclaration(\n id: t.Identifier | null | undefined = null,\n superClass: t.Expression | null | undefined = null,\n body: t.ClassBody,\n decorators: Array | null = null,\n): t.ClassDeclaration {\n return validateNode({\n type: \"ClassDeclaration\",\n id,\n superClass,\n body,\n decorators,\n });\n}\nexport function exportAllDeclaration(\n source: t.StringLiteral,\n): t.ExportAllDeclaration {\n return validateNode({\n type: \"ExportAllDeclaration\",\n source,\n });\n}\nexport function exportDefaultDeclaration(\n declaration:\n | t.TSDeclareFunction\n | t.FunctionDeclaration\n | t.ClassDeclaration\n | t.Expression,\n): t.ExportDefaultDeclaration {\n return validateNode({\n type: \"ExportDefaultDeclaration\",\n declaration,\n });\n}\nexport function exportNamedDeclaration(\n declaration: t.Declaration | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportDefaultSpecifier | t.ExportNamespaceSpecifier\n > = [],\n source: t.StringLiteral | null = null,\n): t.ExportNamedDeclaration {\n return validateNode({\n type: \"ExportNamedDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function exportSpecifier(\n local: t.Identifier,\n exported: t.Identifier | t.StringLiteral,\n): t.ExportSpecifier {\n return validateNode({\n type: \"ExportSpecifier\",\n local,\n exported,\n });\n}\nexport function forOfStatement(\n left: t.VariableDeclaration | t.LVal,\n right: t.Expression,\n body: t.Statement,\n _await: boolean = false,\n): t.ForOfStatement {\n return validateNode({\n type: \"ForOfStatement\",\n left,\n right,\n body,\n await: _await,\n });\n}\nexport function importDeclaration(\n specifiers: Array<\n t.ImportSpecifier | t.ImportDefaultSpecifier | t.ImportNamespaceSpecifier\n >,\n source: t.StringLiteral,\n): t.ImportDeclaration {\n return validateNode({\n type: \"ImportDeclaration\",\n specifiers,\n source,\n });\n}\nexport function importDefaultSpecifier(\n local: t.Identifier,\n): t.ImportDefaultSpecifier {\n return validateNode({\n type: \"ImportDefaultSpecifier\",\n local,\n });\n}\nexport function importNamespaceSpecifier(\n local: t.Identifier,\n): t.ImportNamespaceSpecifier {\n return validateNode({\n type: \"ImportNamespaceSpecifier\",\n local,\n });\n}\nexport function importSpecifier(\n local: t.Identifier,\n imported: t.Identifier | t.StringLiteral,\n): t.ImportSpecifier {\n return validateNode({\n type: \"ImportSpecifier\",\n local,\n imported,\n });\n}\nexport function importExpression(\n source: t.Expression,\n options: t.Expression | null = null,\n): t.ImportExpression {\n return validateNode({\n type: \"ImportExpression\",\n source,\n options,\n });\n}\nexport function metaProperty(\n meta: t.Identifier,\n property: t.Identifier,\n): t.MetaProperty {\n return validateNode({\n type: \"MetaProperty\",\n meta,\n property,\n });\n}\nexport function classMethod(\n kind: \"get\" | \"set\" | \"method\" | \"constructor\" | undefined = \"method\",\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n computed: boolean = false,\n _static: boolean = false,\n generator: boolean = false,\n async: boolean = false,\n): t.ClassMethod {\n return validateNode({\n type: \"ClassMethod\",\n kind,\n key,\n params,\n body,\n computed,\n static: _static,\n generator,\n async,\n });\n}\nexport function objectPattern(\n properties: Array,\n): t.ObjectPattern {\n return validateNode({\n type: \"ObjectPattern\",\n properties,\n });\n}\nexport function spreadElement(argument: t.Expression): t.SpreadElement {\n return validateNode({\n type: \"SpreadElement\",\n argument,\n });\n}\nfunction _super(): t.Super {\n return {\n type: \"Super\",\n };\n}\nexport { _super as super };\nexport function taggedTemplateExpression(\n tag: t.Expression,\n quasi: t.TemplateLiteral,\n): t.TaggedTemplateExpression {\n return validateNode({\n type: \"TaggedTemplateExpression\",\n tag,\n quasi,\n });\n}\nexport function templateElement(\n value: { raw: string; cooked?: string },\n tail: boolean = false,\n): t.TemplateElement {\n return validateNode({\n type: \"TemplateElement\",\n value,\n tail,\n });\n}\nexport function templateLiteral(\n quasis: Array,\n expressions: Array,\n): t.TemplateLiteral {\n return validateNode({\n type: \"TemplateLiteral\",\n quasis,\n expressions,\n });\n}\nexport function yieldExpression(\n argument: t.Expression | null = null,\n delegate: boolean = false,\n): t.YieldExpression {\n return validateNode({\n type: \"YieldExpression\",\n argument,\n delegate,\n });\n}\nexport function awaitExpression(argument: t.Expression): t.AwaitExpression {\n return validateNode({\n type: \"AwaitExpression\",\n argument,\n });\n}\nfunction _import(): t.Import {\n return {\n type: \"Import\",\n };\n}\nexport { _import as import };\nexport function bigIntLiteral(value: string): t.BigIntLiteral {\n return validateNode({\n type: \"BigIntLiteral\",\n value,\n });\n}\nexport function exportNamespaceSpecifier(\n exported: t.Identifier,\n): t.ExportNamespaceSpecifier {\n return validateNode({\n type: \"ExportNamespaceSpecifier\",\n exported,\n });\n}\nexport function optionalMemberExpression(\n object: t.Expression,\n property: t.Expression | t.Identifier,\n computed: boolean | undefined = false,\n optional: boolean,\n): t.OptionalMemberExpression {\n return validateNode({\n type: \"OptionalMemberExpression\",\n object,\n property,\n computed,\n optional,\n });\n}\nexport function optionalCallExpression(\n callee: t.Expression,\n _arguments: Array,\n optional: boolean,\n): t.OptionalCallExpression {\n return validateNode({\n type: \"OptionalCallExpression\",\n callee,\n arguments: _arguments,\n optional,\n });\n}\nexport function classProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassProperty {\n return validateNode({\n type: \"ClassProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classAccessorProperty(\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression\n | t.PrivateName,\n value: t.Expression | null = null,\n typeAnnotation: t.TypeAnnotation | t.TSTypeAnnotation | t.Noop | null = null,\n decorators: Array | null = null,\n computed: boolean = false,\n _static: boolean = false,\n): t.ClassAccessorProperty {\n return validateNode({\n type: \"ClassAccessorProperty\",\n key,\n value,\n typeAnnotation,\n decorators,\n computed,\n static: _static,\n });\n}\nexport function classPrivateProperty(\n key: t.PrivateName,\n value: t.Expression | null = null,\n decorators: Array | null = null,\n _static: boolean = false,\n): t.ClassPrivateProperty {\n return validateNode({\n type: \"ClassPrivateProperty\",\n key,\n value,\n decorators,\n static: _static,\n });\n}\nexport function classPrivateMethod(\n kind: \"get\" | \"set\" | \"method\" | undefined = \"method\",\n key: t.PrivateName,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n body: t.BlockStatement,\n _static: boolean = false,\n): t.ClassPrivateMethod {\n return validateNode({\n type: \"ClassPrivateMethod\",\n kind,\n key,\n params,\n body,\n static: _static,\n });\n}\nexport function privateName(id: t.Identifier): t.PrivateName {\n return validateNode({\n type: \"PrivateName\",\n id,\n });\n}\nexport function staticBlock(body: Array): t.StaticBlock {\n return validateNode({\n type: \"StaticBlock\",\n body,\n });\n}\nexport function anyTypeAnnotation(): t.AnyTypeAnnotation {\n return {\n type: \"AnyTypeAnnotation\",\n };\n}\nexport function arrayTypeAnnotation(\n elementType: t.FlowType,\n): t.ArrayTypeAnnotation {\n return validateNode({\n type: \"ArrayTypeAnnotation\",\n elementType,\n });\n}\nexport function booleanTypeAnnotation(): t.BooleanTypeAnnotation {\n return {\n type: \"BooleanTypeAnnotation\",\n };\n}\nexport function booleanLiteralTypeAnnotation(\n value: boolean,\n): t.BooleanLiteralTypeAnnotation {\n return validateNode({\n type: \"BooleanLiteralTypeAnnotation\",\n value,\n });\n}\nexport function nullLiteralTypeAnnotation(): t.NullLiteralTypeAnnotation {\n return {\n type: \"NullLiteralTypeAnnotation\",\n };\n}\nexport function classImplements(\n id: t.Identifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.ClassImplements {\n return validateNode({\n type: \"ClassImplements\",\n id,\n typeParameters,\n });\n}\nexport function declareClass(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareClass {\n return validateNode({\n type: \"DeclareClass\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareFunction(id: t.Identifier): t.DeclareFunction {\n return validateNode({\n type: \"DeclareFunction\",\n id,\n });\n}\nexport function declareInterface(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.DeclareInterface {\n return validateNode({\n type: \"DeclareInterface\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function declareModule(\n id: t.Identifier | t.StringLiteral,\n body: t.BlockStatement,\n kind: \"CommonJS\" | \"ES\" | null = null,\n): t.DeclareModule {\n return validateNode({\n type: \"DeclareModule\",\n id,\n body,\n kind,\n });\n}\nexport function declareModuleExports(\n typeAnnotation: t.TypeAnnotation,\n): t.DeclareModuleExports {\n return validateNode({\n type: \"DeclareModuleExports\",\n typeAnnotation,\n });\n}\nexport function declareTypeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.DeclareTypeAlias {\n return validateNode({\n type: \"DeclareTypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function declareOpaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null = null,\n supertype: t.FlowType | null = null,\n): t.DeclareOpaqueType {\n return validateNode({\n type: \"DeclareOpaqueType\",\n id,\n typeParameters,\n supertype,\n });\n}\nexport function declareVariable(id: t.Identifier): t.DeclareVariable {\n return validateNode({\n type: \"DeclareVariable\",\n id,\n });\n}\nexport function declareExportDeclaration(\n declaration: t.Flow | null = null,\n specifiers: Array<\n t.ExportSpecifier | t.ExportNamespaceSpecifier\n > | null = null,\n source: t.StringLiteral | null = null,\n): t.DeclareExportDeclaration {\n return validateNode({\n type: \"DeclareExportDeclaration\",\n declaration,\n specifiers,\n source,\n });\n}\nexport function declareExportAllDeclaration(\n source: t.StringLiteral,\n): t.DeclareExportAllDeclaration {\n return validateNode({\n type: \"DeclareExportAllDeclaration\",\n source,\n });\n}\nexport function declaredPredicate(value: t.Flow): t.DeclaredPredicate {\n return validateNode({\n type: \"DeclaredPredicate\",\n value,\n });\n}\nexport function existsTypeAnnotation(): t.ExistsTypeAnnotation {\n return {\n type: \"ExistsTypeAnnotation\",\n };\n}\nexport function functionTypeAnnotation(\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n params: Array,\n rest: t.FunctionTypeParam | null | undefined = null,\n returnType: t.FlowType,\n): t.FunctionTypeAnnotation {\n return validateNode({\n type: \"FunctionTypeAnnotation\",\n typeParameters,\n params,\n rest,\n returnType,\n });\n}\nexport function functionTypeParam(\n name: t.Identifier | null | undefined = null,\n typeAnnotation: t.FlowType,\n): t.FunctionTypeParam {\n return validateNode({\n type: \"FunctionTypeParam\",\n name,\n typeAnnotation,\n });\n}\nexport function genericTypeAnnotation(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.GenericTypeAnnotation {\n return validateNode({\n type: \"GenericTypeAnnotation\",\n id,\n typeParameters,\n });\n}\nexport function inferredPredicate(): t.InferredPredicate {\n return {\n type: \"InferredPredicate\",\n };\n}\nexport function interfaceExtends(\n id: t.Identifier | t.QualifiedTypeIdentifier,\n typeParameters: t.TypeParameterInstantiation | null = null,\n): t.InterfaceExtends {\n return validateNode({\n type: \"InterfaceExtends\",\n id,\n typeParameters,\n });\n}\nexport function interfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n _extends: Array | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceDeclaration {\n return validateNode({\n type: \"InterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport function interfaceTypeAnnotation(\n _extends: Array | null | undefined = null,\n body: t.ObjectTypeAnnotation,\n): t.InterfaceTypeAnnotation {\n return validateNode({\n type: \"InterfaceTypeAnnotation\",\n extends: _extends,\n body,\n });\n}\nexport function intersectionTypeAnnotation(\n types: Array,\n): t.IntersectionTypeAnnotation {\n return validateNode({\n type: \"IntersectionTypeAnnotation\",\n types,\n });\n}\nexport function mixedTypeAnnotation(): t.MixedTypeAnnotation {\n return {\n type: \"MixedTypeAnnotation\",\n };\n}\nexport function emptyTypeAnnotation(): t.EmptyTypeAnnotation {\n return {\n type: \"EmptyTypeAnnotation\",\n };\n}\nexport function nullableTypeAnnotation(\n typeAnnotation: t.FlowType,\n): t.NullableTypeAnnotation {\n return validateNode({\n type: \"NullableTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function numberLiteralTypeAnnotation(\n value: number,\n): t.NumberLiteralTypeAnnotation {\n return validateNode({\n type: \"NumberLiteralTypeAnnotation\",\n value,\n });\n}\nexport function numberTypeAnnotation(): t.NumberTypeAnnotation {\n return {\n type: \"NumberTypeAnnotation\",\n };\n}\nexport function objectTypeAnnotation(\n properties: Array,\n indexers: Array = [],\n callProperties: Array = [],\n internalSlots: Array = [],\n exact: boolean = false,\n): t.ObjectTypeAnnotation {\n return validateNode({\n type: \"ObjectTypeAnnotation\",\n properties,\n indexers,\n callProperties,\n internalSlots,\n exact,\n });\n}\nexport function objectTypeInternalSlot(\n id: t.Identifier,\n value: t.FlowType,\n optional: boolean,\n _static: boolean,\n method: boolean,\n): t.ObjectTypeInternalSlot {\n return validateNode({\n type: \"ObjectTypeInternalSlot\",\n id,\n value,\n optional,\n static: _static,\n method,\n });\n}\nexport function objectTypeCallProperty(\n value: t.FlowType,\n): t.ObjectTypeCallProperty {\n return validateNode({\n type: \"ObjectTypeCallProperty\",\n value,\n static: null,\n });\n}\nexport function objectTypeIndexer(\n id: t.Identifier | null | undefined = null,\n key: t.FlowType,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeIndexer {\n return validateNode({\n type: \"ObjectTypeIndexer\",\n id,\n key,\n value,\n variance,\n static: null,\n });\n}\nexport function objectTypeProperty(\n key: t.Identifier | t.StringLiteral,\n value: t.FlowType,\n variance: t.Variance | null = null,\n): t.ObjectTypeProperty {\n return validateNode({\n type: \"ObjectTypeProperty\",\n key,\n value,\n variance,\n kind: null,\n method: null,\n optional: null,\n proto: null,\n static: null,\n });\n}\nexport function objectTypeSpreadProperty(\n argument: t.FlowType,\n): t.ObjectTypeSpreadProperty {\n return validateNode({\n type: \"ObjectTypeSpreadProperty\",\n argument,\n });\n}\nexport function opaqueType(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n supertype: t.FlowType | null | undefined = null,\n impltype: t.FlowType,\n): t.OpaqueType {\n return validateNode({\n type: \"OpaqueType\",\n id,\n typeParameters,\n supertype,\n impltype,\n });\n}\nexport function qualifiedTypeIdentifier(\n id: t.Identifier,\n qualification: t.Identifier | t.QualifiedTypeIdentifier,\n): t.QualifiedTypeIdentifier {\n return validateNode({\n type: \"QualifiedTypeIdentifier\",\n id,\n qualification,\n });\n}\nexport function stringLiteralTypeAnnotation(\n value: string,\n): t.StringLiteralTypeAnnotation {\n return validateNode({\n type: \"StringLiteralTypeAnnotation\",\n value,\n });\n}\nexport function stringTypeAnnotation(): t.StringTypeAnnotation {\n return {\n type: \"StringTypeAnnotation\",\n };\n}\nexport function symbolTypeAnnotation(): t.SymbolTypeAnnotation {\n return {\n type: \"SymbolTypeAnnotation\",\n };\n}\nexport function thisTypeAnnotation(): t.ThisTypeAnnotation {\n return {\n type: \"ThisTypeAnnotation\",\n };\n}\nexport function tupleTypeAnnotation(\n types: Array,\n): t.TupleTypeAnnotation {\n return validateNode({\n type: \"TupleTypeAnnotation\",\n types,\n });\n}\nexport function typeofTypeAnnotation(\n argument: t.FlowType,\n): t.TypeofTypeAnnotation {\n return validateNode({\n type: \"TypeofTypeAnnotation\",\n argument,\n });\n}\nexport function typeAlias(\n id: t.Identifier,\n typeParameters: t.TypeParameterDeclaration | null | undefined = null,\n right: t.FlowType,\n): t.TypeAlias {\n return validateNode({\n type: \"TypeAlias\",\n id,\n typeParameters,\n right,\n });\n}\nexport function typeAnnotation(typeAnnotation: t.FlowType): t.TypeAnnotation {\n return validateNode({\n type: \"TypeAnnotation\",\n typeAnnotation,\n });\n}\nexport function typeCastExpression(\n expression: t.Expression,\n typeAnnotation: t.TypeAnnotation,\n): t.TypeCastExpression {\n return validateNode({\n type: \"TypeCastExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport function typeParameter(\n bound: t.TypeAnnotation | null = null,\n _default: t.FlowType | null = null,\n variance: t.Variance | null = null,\n): t.TypeParameter {\n return validateNode({\n type: \"TypeParameter\",\n bound,\n default: _default,\n variance,\n name: null,\n });\n}\nexport function typeParameterDeclaration(\n params: Array,\n): t.TypeParameterDeclaration {\n return validateNode({\n type: \"TypeParameterDeclaration\",\n params,\n });\n}\nexport function typeParameterInstantiation(\n params: Array,\n): t.TypeParameterInstantiation {\n return validateNode({\n type: \"TypeParameterInstantiation\",\n params,\n });\n}\nexport function unionTypeAnnotation(\n types: Array,\n): t.UnionTypeAnnotation {\n return validateNode({\n type: \"UnionTypeAnnotation\",\n types,\n });\n}\nexport function variance(kind: \"minus\" | \"plus\"): t.Variance {\n return validateNode({\n type: \"Variance\",\n kind,\n });\n}\nexport function voidTypeAnnotation(): t.VoidTypeAnnotation {\n return {\n type: \"VoidTypeAnnotation\",\n };\n}\nexport function enumDeclaration(\n id: t.Identifier,\n body:\n | t.EnumBooleanBody\n | t.EnumNumberBody\n | t.EnumStringBody\n | t.EnumSymbolBody,\n): t.EnumDeclaration {\n return validateNode({\n type: \"EnumDeclaration\",\n id,\n body,\n });\n}\nexport function enumBooleanBody(\n members: Array,\n): t.EnumBooleanBody {\n return validateNode({\n type: \"EnumBooleanBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumNumberBody(\n members: Array,\n): t.EnumNumberBody {\n return validateNode({\n type: \"EnumNumberBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumStringBody(\n members: Array,\n): t.EnumStringBody {\n return validateNode({\n type: \"EnumStringBody\",\n members,\n explicitType: null,\n hasUnknownMembers: null,\n });\n}\nexport function enumSymbolBody(\n members: Array,\n): t.EnumSymbolBody {\n return validateNode({\n type: \"EnumSymbolBody\",\n members,\n hasUnknownMembers: null,\n });\n}\nexport function enumBooleanMember(id: t.Identifier): t.EnumBooleanMember {\n return validateNode({\n type: \"EnumBooleanMember\",\n id,\n init: null,\n });\n}\nexport function enumNumberMember(\n id: t.Identifier,\n init: t.NumericLiteral,\n): t.EnumNumberMember {\n return validateNode({\n type: \"EnumNumberMember\",\n id,\n init,\n });\n}\nexport function enumStringMember(\n id: t.Identifier,\n init: t.StringLiteral,\n): t.EnumStringMember {\n return validateNode({\n type: \"EnumStringMember\",\n id,\n init,\n });\n}\nexport function enumDefaultedMember(id: t.Identifier): t.EnumDefaultedMember {\n return validateNode({\n type: \"EnumDefaultedMember\",\n id,\n });\n}\nexport function indexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.IndexedAccessType {\n return validateNode({\n type: \"IndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport function optionalIndexedAccessType(\n objectType: t.FlowType,\n indexType: t.FlowType,\n): t.OptionalIndexedAccessType {\n return validateNode({\n type: \"OptionalIndexedAccessType\",\n objectType,\n indexType,\n optional: null,\n });\n}\nexport function jsxAttribute(\n name: t.JSXIdentifier | t.JSXNamespacedName,\n value:\n | t.JSXElement\n | t.JSXFragment\n | t.StringLiteral\n | t.JSXExpressionContainer\n | null = null,\n): t.JSXAttribute {\n return validateNode({\n type: \"JSXAttribute\",\n name,\n value,\n });\n}\nexport { jsxAttribute as jSXAttribute };\nexport function jsxClosingElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n): t.JSXClosingElement {\n return validateNode({\n type: \"JSXClosingElement\",\n name,\n });\n}\nexport { jsxClosingElement as jSXClosingElement };\nexport function jsxElement(\n openingElement: t.JSXOpeningElement,\n closingElement: t.JSXClosingElement | null | undefined = null,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n selfClosing: boolean | null = null,\n): t.JSXElement {\n return validateNode({\n type: \"JSXElement\",\n openingElement,\n closingElement,\n children,\n selfClosing,\n });\n}\nexport { jsxElement as jSXElement };\nexport function jsxEmptyExpression(): t.JSXEmptyExpression {\n return {\n type: \"JSXEmptyExpression\",\n };\n}\nexport { jsxEmptyExpression as jSXEmptyExpression };\nexport function jsxExpressionContainer(\n expression: t.Expression | t.JSXEmptyExpression,\n): t.JSXExpressionContainer {\n return validateNode({\n type: \"JSXExpressionContainer\",\n expression,\n });\n}\nexport { jsxExpressionContainer as jSXExpressionContainer };\nexport function jsxSpreadChild(expression: t.Expression): t.JSXSpreadChild {\n return validateNode({\n type: \"JSXSpreadChild\",\n expression,\n });\n}\nexport { jsxSpreadChild as jSXSpreadChild };\nexport function jsxIdentifier(name: string): t.JSXIdentifier {\n return validateNode({\n type: \"JSXIdentifier\",\n name,\n });\n}\nexport { jsxIdentifier as jSXIdentifier };\nexport function jsxMemberExpression(\n object: t.JSXMemberExpression | t.JSXIdentifier,\n property: t.JSXIdentifier,\n): t.JSXMemberExpression {\n return validateNode({\n type: \"JSXMemberExpression\",\n object,\n property,\n });\n}\nexport { jsxMemberExpression as jSXMemberExpression };\nexport function jsxNamespacedName(\n namespace: t.JSXIdentifier,\n name: t.JSXIdentifier,\n): t.JSXNamespacedName {\n return validateNode({\n type: \"JSXNamespacedName\",\n namespace,\n name,\n });\n}\nexport { jsxNamespacedName as jSXNamespacedName };\nexport function jsxOpeningElement(\n name: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n attributes: Array,\n selfClosing: boolean = false,\n): t.JSXOpeningElement {\n return validateNode({\n type: \"JSXOpeningElement\",\n name,\n attributes,\n selfClosing,\n });\n}\nexport { jsxOpeningElement as jSXOpeningElement };\nexport function jsxSpreadAttribute(\n argument: t.Expression,\n): t.JSXSpreadAttribute {\n return validateNode({\n type: \"JSXSpreadAttribute\",\n argument,\n });\n}\nexport { jsxSpreadAttribute as jSXSpreadAttribute };\nexport function jsxText(value: string): t.JSXText {\n return validateNode({\n type: \"JSXText\",\n value,\n });\n}\nexport { jsxText as jSXText };\nexport function jsxFragment(\n openingFragment: t.JSXOpeningFragment,\n closingFragment: t.JSXClosingFragment,\n children: Array<\n | t.JSXText\n | t.JSXExpressionContainer\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n >,\n): t.JSXFragment {\n return validateNode({\n type: \"JSXFragment\",\n openingFragment,\n closingFragment,\n children,\n });\n}\nexport { jsxFragment as jSXFragment };\nexport function jsxOpeningFragment(): t.JSXOpeningFragment {\n return {\n type: \"JSXOpeningFragment\",\n };\n}\nexport { jsxOpeningFragment as jSXOpeningFragment };\nexport function jsxClosingFragment(): t.JSXClosingFragment {\n return {\n type: \"JSXClosingFragment\",\n };\n}\nexport { jsxClosingFragment as jSXClosingFragment };\nexport function noop(): t.Noop {\n return {\n type: \"Noop\",\n };\n}\nexport function placeholder(\n expectedNode:\n | \"Identifier\"\n | \"StringLiteral\"\n | \"Expression\"\n | \"Statement\"\n | \"Declaration\"\n | \"BlockStatement\"\n | \"ClassBody\"\n | \"Pattern\",\n name: t.Identifier,\n): t.Placeholder {\n return validateNode({\n type: \"Placeholder\",\n expectedNode,\n name,\n });\n}\nexport function v8IntrinsicIdentifier(name: string): t.V8IntrinsicIdentifier {\n return validateNode({\n type: \"V8IntrinsicIdentifier\",\n name,\n });\n}\nexport function argumentPlaceholder(): t.ArgumentPlaceholder {\n return {\n type: \"ArgumentPlaceholder\",\n };\n}\nexport function bindExpression(\n object: t.Expression,\n callee: t.Expression,\n): t.BindExpression {\n return validateNode({\n type: \"BindExpression\",\n object,\n callee,\n });\n}\nexport function importAttribute(\n key: t.Identifier | t.StringLiteral,\n value: t.StringLiteral,\n): t.ImportAttribute {\n return validateNode({\n type: \"ImportAttribute\",\n key,\n value,\n });\n}\nexport function decorator(expression: t.Expression): t.Decorator {\n return validateNode({\n type: \"Decorator\",\n expression,\n });\n}\nexport function doExpression(\n body: t.BlockStatement,\n async: boolean = false,\n): t.DoExpression {\n return validateNode({\n type: \"DoExpression\",\n body,\n async,\n });\n}\nexport function exportDefaultSpecifier(\n exported: t.Identifier,\n): t.ExportDefaultSpecifier {\n return validateNode({\n type: \"ExportDefaultSpecifier\",\n exported,\n });\n}\nexport function recordExpression(\n properties: Array,\n): t.RecordExpression {\n return validateNode({\n type: \"RecordExpression\",\n properties,\n });\n}\nexport function tupleExpression(\n elements: Array = [],\n): t.TupleExpression {\n return validateNode({\n type: \"TupleExpression\",\n elements,\n });\n}\nexport function decimalLiteral(value: string): t.DecimalLiteral {\n return validateNode({\n type: \"DecimalLiteral\",\n value,\n });\n}\nexport function moduleExpression(body: t.Program): t.ModuleExpression {\n return validateNode({\n type: \"ModuleExpression\",\n body,\n });\n}\nexport function topicReference(): t.TopicReference {\n return {\n type: \"TopicReference\",\n };\n}\nexport function pipelineTopicExpression(\n expression: t.Expression,\n): t.PipelineTopicExpression {\n return validateNode({\n type: \"PipelineTopicExpression\",\n expression,\n });\n}\nexport function pipelineBareFunction(\n callee: t.Expression,\n): t.PipelineBareFunction {\n return validateNode({\n type: \"PipelineBareFunction\",\n callee,\n });\n}\nexport function pipelinePrimaryTopicReference(): t.PipelinePrimaryTopicReference {\n return {\n type: \"PipelinePrimaryTopicReference\",\n };\n}\nexport function tsParameterProperty(\n parameter: t.Identifier | t.AssignmentPattern,\n): t.TSParameterProperty {\n return validateNode({\n type: \"TSParameterProperty\",\n parameter,\n });\n}\nexport { tsParameterProperty as tSParameterProperty };\nexport function tsDeclareFunction(\n id: t.Identifier | null | undefined = null,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareFunction {\n return validateNode({\n type: \"TSDeclareFunction\",\n id,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareFunction as tSDeclareFunction };\nexport function tsDeclareMethod(\n decorators: Array | null | undefined = null,\n key:\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral\n | t.Expression,\n typeParameters:\n | t.TSTypeParameterDeclaration\n | t.Noop\n | null\n | undefined = null,\n params: Array<\n t.Identifier | t.Pattern | t.RestElement | t.TSParameterProperty\n >,\n returnType: t.TSTypeAnnotation | t.Noop | null = null,\n): t.TSDeclareMethod {\n return validateNode({\n type: \"TSDeclareMethod\",\n decorators,\n key,\n typeParameters,\n params,\n returnType,\n });\n}\nexport { tsDeclareMethod as tSDeclareMethod };\nexport function tsQualifiedName(\n left: t.TSEntityName,\n right: t.Identifier,\n): t.TSQualifiedName {\n return validateNode({\n type: \"TSQualifiedName\",\n left,\n right,\n });\n}\nexport { tsQualifiedName as tSQualifiedName };\nexport function tsCallSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSCallSignatureDeclaration {\n return validateNode({\n type: \"TSCallSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsCallSignatureDeclaration as tSCallSignatureDeclaration };\nexport function tsConstructSignatureDeclaration(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructSignatureDeclaration {\n return validateNode({\n type: \"TSConstructSignatureDeclaration\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructSignatureDeclaration as tSConstructSignatureDeclaration };\nexport function tsPropertySignature(\n key: t.Expression,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSPropertySignature {\n return validateNode({\n type: \"TSPropertySignature\",\n key,\n typeAnnotation,\n kind: null,\n });\n}\nexport { tsPropertySignature as tSPropertySignature };\nexport function tsMethodSignature(\n key: t.Expression,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSMethodSignature {\n return validateNode({\n type: \"TSMethodSignature\",\n key,\n typeParameters,\n parameters,\n typeAnnotation,\n kind: null,\n });\n}\nexport { tsMethodSignature as tSMethodSignature };\nexport function tsIndexSignature(\n parameters: Array,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSIndexSignature {\n return validateNode({\n type: \"TSIndexSignature\",\n parameters,\n typeAnnotation,\n });\n}\nexport { tsIndexSignature as tSIndexSignature };\nexport function tsAnyKeyword(): t.TSAnyKeyword {\n return {\n type: \"TSAnyKeyword\",\n };\n}\nexport { tsAnyKeyword as tSAnyKeyword };\nexport function tsBooleanKeyword(): t.TSBooleanKeyword {\n return {\n type: \"TSBooleanKeyword\",\n };\n}\nexport { tsBooleanKeyword as tSBooleanKeyword };\nexport function tsBigIntKeyword(): t.TSBigIntKeyword {\n return {\n type: \"TSBigIntKeyword\",\n };\n}\nexport { tsBigIntKeyword as tSBigIntKeyword };\nexport function tsIntrinsicKeyword(): t.TSIntrinsicKeyword {\n return {\n type: \"TSIntrinsicKeyword\",\n };\n}\nexport { tsIntrinsicKeyword as tSIntrinsicKeyword };\nexport function tsNeverKeyword(): t.TSNeverKeyword {\n return {\n type: \"TSNeverKeyword\",\n };\n}\nexport { tsNeverKeyword as tSNeverKeyword };\nexport function tsNullKeyword(): t.TSNullKeyword {\n return {\n type: \"TSNullKeyword\",\n };\n}\nexport { tsNullKeyword as tSNullKeyword };\nexport function tsNumberKeyword(): t.TSNumberKeyword {\n return {\n type: \"TSNumberKeyword\",\n };\n}\nexport { tsNumberKeyword as tSNumberKeyword };\nexport function tsObjectKeyword(): t.TSObjectKeyword {\n return {\n type: \"TSObjectKeyword\",\n };\n}\nexport { tsObjectKeyword as tSObjectKeyword };\nexport function tsStringKeyword(): t.TSStringKeyword {\n return {\n type: \"TSStringKeyword\",\n };\n}\nexport { tsStringKeyword as tSStringKeyword };\nexport function tsSymbolKeyword(): t.TSSymbolKeyword {\n return {\n type: \"TSSymbolKeyword\",\n };\n}\nexport { tsSymbolKeyword as tSSymbolKeyword };\nexport function tsUndefinedKeyword(): t.TSUndefinedKeyword {\n return {\n type: \"TSUndefinedKeyword\",\n };\n}\nexport { tsUndefinedKeyword as tSUndefinedKeyword };\nexport function tsUnknownKeyword(): t.TSUnknownKeyword {\n return {\n type: \"TSUnknownKeyword\",\n };\n}\nexport { tsUnknownKeyword as tSUnknownKeyword };\nexport function tsVoidKeyword(): t.TSVoidKeyword {\n return {\n type: \"TSVoidKeyword\",\n };\n}\nexport { tsVoidKeyword as tSVoidKeyword };\nexport function tsThisType(): t.TSThisType {\n return {\n type: \"TSThisType\",\n };\n}\nexport { tsThisType as tSThisType };\nexport function tsFunctionType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSFunctionType {\n return validateNode({\n type: \"TSFunctionType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsFunctionType as tSFunctionType };\nexport function tsConstructorType(\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n parameters: Array<\n t.ArrayPattern | t.Identifier | t.ObjectPattern | t.RestElement\n >,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n): t.TSConstructorType {\n return validateNode({\n type: \"TSConstructorType\",\n typeParameters,\n parameters,\n typeAnnotation,\n });\n}\nexport { tsConstructorType as tSConstructorType };\nexport function tsTypeReference(\n typeName: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeReference {\n return validateNode({\n type: \"TSTypeReference\",\n typeName,\n typeParameters,\n });\n}\nexport { tsTypeReference as tSTypeReference };\nexport function tsTypePredicate(\n parameterName: t.Identifier | t.TSThisType,\n typeAnnotation: t.TSTypeAnnotation | null = null,\n asserts: boolean | null = null,\n): t.TSTypePredicate {\n return validateNode({\n type: \"TSTypePredicate\",\n parameterName,\n typeAnnotation,\n asserts,\n });\n}\nexport { tsTypePredicate as tSTypePredicate };\nexport function tsTypeQuery(\n exprName: t.TSEntityName | t.TSImportType,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSTypeQuery {\n return validateNode({\n type: \"TSTypeQuery\",\n exprName,\n typeParameters,\n });\n}\nexport { tsTypeQuery as tSTypeQuery };\nexport function tsTypeLiteral(\n members: Array,\n): t.TSTypeLiteral {\n return validateNode({\n type: \"TSTypeLiteral\",\n members,\n });\n}\nexport { tsTypeLiteral as tSTypeLiteral };\nexport function tsArrayType(elementType: t.TSType): t.TSArrayType {\n return validateNode({\n type: \"TSArrayType\",\n elementType,\n });\n}\nexport { tsArrayType as tSArrayType };\nexport function tsTupleType(\n elementTypes: Array,\n): t.TSTupleType {\n return validateNode({\n type: \"TSTupleType\",\n elementTypes,\n });\n}\nexport { tsTupleType as tSTupleType };\nexport function tsOptionalType(typeAnnotation: t.TSType): t.TSOptionalType {\n return validateNode({\n type: \"TSOptionalType\",\n typeAnnotation,\n });\n}\nexport { tsOptionalType as tSOptionalType };\nexport function tsRestType(typeAnnotation: t.TSType): t.TSRestType {\n return validateNode({\n type: \"TSRestType\",\n typeAnnotation,\n });\n}\nexport { tsRestType as tSRestType };\nexport function tsNamedTupleMember(\n label: t.Identifier,\n elementType: t.TSType,\n optional: boolean = false,\n): t.TSNamedTupleMember {\n return validateNode({\n type: \"TSNamedTupleMember\",\n label,\n elementType,\n optional,\n });\n}\nexport { tsNamedTupleMember as tSNamedTupleMember };\nexport function tsUnionType(types: Array): t.TSUnionType {\n return validateNode({\n type: \"TSUnionType\",\n types,\n });\n}\nexport { tsUnionType as tSUnionType };\nexport function tsIntersectionType(\n types: Array,\n): t.TSIntersectionType {\n return validateNode({\n type: \"TSIntersectionType\",\n types,\n });\n}\nexport { tsIntersectionType as tSIntersectionType };\nexport function tsConditionalType(\n checkType: t.TSType,\n extendsType: t.TSType,\n trueType: t.TSType,\n falseType: t.TSType,\n): t.TSConditionalType {\n return validateNode({\n type: \"TSConditionalType\",\n checkType,\n extendsType,\n trueType,\n falseType,\n });\n}\nexport { tsConditionalType as tSConditionalType };\nexport function tsInferType(typeParameter: t.TSTypeParameter): t.TSInferType {\n return validateNode({\n type: \"TSInferType\",\n typeParameter,\n });\n}\nexport { tsInferType as tSInferType };\nexport function tsParenthesizedType(\n typeAnnotation: t.TSType,\n): t.TSParenthesizedType {\n return validateNode({\n type: \"TSParenthesizedType\",\n typeAnnotation,\n });\n}\nexport { tsParenthesizedType as tSParenthesizedType };\nexport function tsTypeOperator(typeAnnotation: t.TSType): t.TSTypeOperator {\n return validateNode({\n type: \"TSTypeOperator\",\n typeAnnotation,\n operator: null,\n });\n}\nexport { tsTypeOperator as tSTypeOperator };\nexport function tsIndexedAccessType(\n objectType: t.TSType,\n indexType: t.TSType,\n): t.TSIndexedAccessType {\n return validateNode({\n type: \"TSIndexedAccessType\",\n objectType,\n indexType,\n });\n}\nexport { tsIndexedAccessType as tSIndexedAccessType };\nexport function tsMappedType(\n typeParameter: t.TSTypeParameter,\n typeAnnotation: t.TSType | null = null,\n nameType: t.TSType | null = null,\n): t.TSMappedType {\n return validateNode({\n type: \"TSMappedType\",\n typeParameter,\n typeAnnotation,\n nameType,\n });\n}\nexport { tsMappedType as tSMappedType };\nexport function tsLiteralType(\n literal:\n | t.NumericLiteral\n | t.StringLiteral\n | t.BooleanLiteral\n | t.BigIntLiteral\n | t.TemplateLiteral\n | t.UnaryExpression,\n): t.TSLiteralType {\n return validateNode({\n type: \"TSLiteralType\",\n literal,\n });\n}\nexport { tsLiteralType as tSLiteralType };\nexport function tsExpressionWithTypeArguments(\n expression: t.TSEntityName,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSExpressionWithTypeArguments {\n return validateNode({\n type: \"TSExpressionWithTypeArguments\",\n expression,\n typeParameters,\n });\n}\nexport { tsExpressionWithTypeArguments as tSExpressionWithTypeArguments };\nexport function tsInterfaceDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n _extends: Array | null | undefined = null,\n body: t.TSInterfaceBody,\n): t.TSInterfaceDeclaration {\n return validateNode({\n type: \"TSInterfaceDeclaration\",\n id,\n typeParameters,\n extends: _extends,\n body,\n });\n}\nexport { tsInterfaceDeclaration as tSInterfaceDeclaration };\nexport function tsInterfaceBody(\n body: Array,\n): t.TSInterfaceBody {\n return validateNode({\n type: \"TSInterfaceBody\",\n body,\n });\n}\nexport { tsInterfaceBody as tSInterfaceBody };\nexport function tsTypeAliasDeclaration(\n id: t.Identifier,\n typeParameters: t.TSTypeParameterDeclaration | null | undefined = null,\n typeAnnotation: t.TSType,\n): t.TSTypeAliasDeclaration {\n return validateNode({\n type: \"TSTypeAliasDeclaration\",\n id,\n typeParameters,\n typeAnnotation,\n });\n}\nexport { tsTypeAliasDeclaration as tSTypeAliasDeclaration };\nexport function tsInstantiationExpression(\n expression: t.Expression,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSInstantiationExpression {\n return validateNode({\n type: \"TSInstantiationExpression\",\n expression,\n typeParameters,\n });\n}\nexport { tsInstantiationExpression as tSInstantiationExpression };\nexport function tsAsExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSAsExpression {\n return validateNode({\n type: \"TSAsExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsAsExpression as tSAsExpression };\nexport function tsSatisfiesExpression(\n expression: t.Expression,\n typeAnnotation: t.TSType,\n): t.TSSatisfiesExpression {\n return validateNode({\n type: \"TSSatisfiesExpression\",\n expression,\n typeAnnotation,\n });\n}\nexport { tsSatisfiesExpression as tSSatisfiesExpression };\nexport function tsTypeAssertion(\n typeAnnotation: t.TSType,\n expression: t.Expression,\n): t.TSTypeAssertion {\n return validateNode({\n type: \"TSTypeAssertion\",\n typeAnnotation,\n expression,\n });\n}\nexport { tsTypeAssertion as tSTypeAssertion };\nexport function tsEnumDeclaration(\n id: t.Identifier,\n members: Array,\n): t.TSEnumDeclaration {\n return validateNode({\n type: \"TSEnumDeclaration\",\n id,\n members,\n });\n}\nexport { tsEnumDeclaration as tSEnumDeclaration };\nexport function tsEnumMember(\n id: t.Identifier | t.StringLiteral,\n initializer: t.Expression | null = null,\n): t.TSEnumMember {\n return validateNode({\n type: \"TSEnumMember\",\n id,\n initializer,\n });\n}\nexport { tsEnumMember as tSEnumMember };\nexport function tsModuleDeclaration(\n id: t.Identifier | t.StringLiteral,\n body: t.TSModuleBlock | t.TSModuleDeclaration,\n): t.TSModuleDeclaration {\n return validateNode({\n type: \"TSModuleDeclaration\",\n id,\n body,\n });\n}\nexport { tsModuleDeclaration as tSModuleDeclaration };\nexport function tsModuleBlock(body: Array): t.TSModuleBlock {\n return validateNode({\n type: \"TSModuleBlock\",\n body,\n });\n}\nexport { tsModuleBlock as tSModuleBlock };\nexport function tsImportType(\n argument: t.StringLiteral,\n qualifier: t.TSEntityName | null = null,\n typeParameters: t.TSTypeParameterInstantiation | null = null,\n): t.TSImportType {\n return validateNode({\n type: \"TSImportType\",\n argument,\n qualifier,\n typeParameters,\n });\n}\nexport { tsImportType as tSImportType };\nexport function tsImportEqualsDeclaration(\n id: t.Identifier,\n moduleReference: t.TSEntityName | t.TSExternalModuleReference,\n): t.TSImportEqualsDeclaration {\n return validateNode({\n type: \"TSImportEqualsDeclaration\",\n id,\n moduleReference,\n isExport: null,\n });\n}\nexport { tsImportEqualsDeclaration as tSImportEqualsDeclaration };\nexport function tsExternalModuleReference(\n expression: t.StringLiteral,\n): t.TSExternalModuleReference {\n return validateNode({\n type: \"TSExternalModuleReference\",\n expression,\n });\n}\nexport { tsExternalModuleReference as tSExternalModuleReference };\nexport function tsNonNullExpression(\n expression: t.Expression,\n): t.TSNonNullExpression {\n return validateNode({\n type: \"TSNonNullExpression\",\n expression,\n });\n}\nexport { tsNonNullExpression as tSNonNullExpression };\nexport function tsExportAssignment(\n expression: t.Expression,\n): t.TSExportAssignment {\n return validateNode({\n type: \"TSExportAssignment\",\n expression,\n });\n}\nexport { tsExportAssignment as tSExportAssignment };\nexport function tsNamespaceExportDeclaration(\n id: t.Identifier,\n): t.TSNamespaceExportDeclaration {\n return validateNode({\n type: \"TSNamespaceExportDeclaration\",\n id,\n });\n}\nexport { tsNamespaceExportDeclaration as tSNamespaceExportDeclaration };\nexport function tsTypeAnnotation(typeAnnotation: t.TSType): t.TSTypeAnnotation {\n return validateNode({\n type: \"TSTypeAnnotation\",\n typeAnnotation,\n });\n}\nexport { tsTypeAnnotation as tSTypeAnnotation };\nexport function tsTypeParameterInstantiation(\n params: Array,\n): t.TSTypeParameterInstantiation {\n return validateNode({\n type: \"TSTypeParameterInstantiation\",\n params,\n });\n}\nexport { tsTypeParameterInstantiation as tSTypeParameterInstantiation };\nexport function tsTypeParameterDeclaration(\n params: Array,\n): t.TSTypeParameterDeclaration {\n return validateNode({\n type: \"TSTypeParameterDeclaration\",\n params,\n });\n}\nexport { tsTypeParameterDeclaration as tSTypeParameterDeclaration };\nexport function tsTypeParameter(\n constraint: t.TSType | null | undefined = null,\n _default: t.TSType | null | undefined = null,\n name: string,\n): t.TSTypeParameter {\n return validateNode({\n type: \"TSTypeParameter\",\n constraint,\n default: _default,\n name,\n });\n}\nexport { tsTypeParameter as tSTypeParameter };\n/** @deprecated */\nfunction NumberLiteral(value: number) {\n deprecationWarning(\"NumberLiteral\", \"NumericLiteral\", \"The node type \");\n return numericLiteral(value);\n}\nexport { NumberLiteral as numberLiteral };\n/** @deprecated */\nfunction RegexLiteral(pattern: string, flags: string = \"\") {\n deprecationWarning(\"RegexLiteral\", \"RegExpLiteral\", \"The node type \");\n return regExpLiteral(pattern, flags);\n}\nexport { RegexLiteral as regexLiteral };\n/** @deprecated */\nfunction RestProperty(argument: t.LVal) {\n deprecationWarning(\"RestProperty\", \"RestElement\", \"The node type \");\n return restElement(argument);\n}\nexport { RestProperty as restProperty };\n/** @deprecated */\nfunction SpreadProperty(argument: t.Expression) {\n deprecationWarning(\"SpreadProperty\", \"SpreadElement\", \"The node type \");\n return spreadElement(argument);\n}\nexport { SpreadProperty as spreadProperty };\n","import { stringLiteral } from \"../../builders/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\nimport { inherits } from \"../../index.ts\";\n\nexport default function cleanJSXElementLiteralChild(\n child: t.JSXText,\n args: Array,\n) {\n const lines = child.value.split(/\\r\\n|\\n|\\r/);\n\n let lastNonEmptyLine = 0;\n\n for (let i = 0; i < lines.length; i++) {\n if (lines[i].match(/[^ \\t]/)) {\n lastNonEmptyLine = i;\n }\n }\n\n let str = \"\";\n\n for (let i = 0; i < lines.length; i++) {\n const line = lines[i];\n\n const isFirstLine = i === 0;\n const isLastLine = i === lines.length - 1;\n const isLastNonEmptyLine = i === lastNonEmptyLine;\n\n // replace rendered whitespace tabs with spaces\n let trimmedLine = line.replace(/\\t/g, \" \");\n\n // trim whitespace touching a newline\n if (!isFirstLine) {\n trimmedLine = trimmedLine.replace(/^[ ]+/, \"\");\n }\n\n // trim whitespace touching an endline\n if (!isLastLine) {\n trimmedLine = trimmedLine.replace(/[ ]+$/, \"\");\n }\n\n if (trimmedLine) {\n if (!isLastNonEmptyLine) {\n trimmedLine += \" \";\n }\n\n str += trimmedLine;\n }\n }\n\n if (str) args.push(inherits(stringLiteral(str), child));\n}\n","import {\n isJSXText,\n isJSXExpressionContainer,\n isJSXEmptyExpression,\n} from \"../../validators/generated/index.ts\";\nimport cleanJSXElementLiteralChild from \"../../utils/react/cleanJSXElementLiteralChild.ts\";\nimport type * as t from \"../../index.ts\";\n\ntype ReturnedChild =\n | t.JSXSpreadChild\n | t.JSXElement\n | t.JSXFragment\n | t.Expression;\n\nexport default function buildChildren(\n node: t.JSXElement | t.JSXFragment,\n): ReturnedChild[] {\n const elements = [];\n\n for (let i = 0; i < node.children.length; i++) {\n let child: any = node.children[i];\n\n if (isJSXText(child)) {\n cleanJSXElementLiteralChild(child, elements);\n continue;\n }\n\n if (isJSXExpressionContainer(child)) child = child.expression;\n if (isJSXEmptyExpression(child)) continue;\n\n elements.push(child);\n }\n\n return elements;\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function isNode(node: any): node is t.Node {\n return !!(node && VISITOR_KEYS[node.type]);\n}\n","import isNode from \"../validators/isNode.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function assertNode(node?: any): asserts node is t.Node {\n if (!isNode(node)) {\n const type = node?.type ?? JSON.stringify(node);\n throw new TypeError(`Not a valid node of type \"${type}\"`);\n }\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport is from \"../../validators/is.ts\";\nimport type * as t from \"../../index.ts\";\nimport deprecationWarning from \"../../utils/deprecationWarning.ts\";\n\nfunction assert(type: string, node: any, opts?: any): void {\n if (!is(type, node, opts)) {\n throw new Error(\n `Expected type \"${type}\" with option ${JSON.stringify(opts)}, ` +\n `but instead got \"${node.type}\".`,\n );\n }\n}\n\nexport function assertArrayExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayExpression {\n assert(\"ArrayExpression\", node, opts);\n}\nexport function assertAssignmentExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AssignmentExpression {\n assert(\"AssignmentExpression\", node, opts);\n}\nexport function assertBinaryExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BinaryExpression {\n assert(\"BinaryExpression\", node, opts);\n}\nexport function assertInterpreterDirective(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterpreterDirective {\n assert(\"InterpreterDirective\", node, opts);\n}\nexport function assertDirective(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Directive {\n assert(\"Directive\", node, opts);\n}\nexport function assertDirectiveLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DirectiveLiteral {\n assert(\"DirectiveLiteral\", node, opts);\n}\nexport function assertBlockStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BlockStatement {\n assert(\"BlockStatement\", node, opts);\n}\nexport function assertBreakStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BreakStatement {\n assert(\"BreakStatement\", node, opts);\n}\nexport function assertCallExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CallExpression {\n assert(\"CallExpression\", node, opts);\n}\nexport function assertCatchClause(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CatchClause {\n assert(\"CatchClause\", node, opts);\n}\nexport function assertConditionalExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ConditionalExpression {\n assert(\"ConditionalExpression\", node, opts);\n}\nexport function assertContinueStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ContinueStatement {\n assert(\"ContinueStatement\", node, opts);\n}\nexport function assertDebuggerStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DebuggerStatement {\n assert(\"DebuggerStatement\", node, opts);\n}\nexport function assertDoWhileStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DoWhileStatement {\n assert(\"DoWhileStatement\", node, opts);\n}\nexport function assertEmptyStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EmptyStatement {\n assert(\"EmptyStatement\", node, opts);\n}\nexport function assertExpressionStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExpressionStatement {\n assert(\"ExpressionStatement\", node, opts);\n}\nexport function assertFile(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.File {\n assert(\"File\", node, opts);\n}\nexport function assertForInStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForInStatement {\n assert(\"ForInStatement\", node, opts);\n}\nexport function assertForStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForStatement {\n assert(\"ForStatement\", node, opts);\n}\nexport function assertFunctionDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionDeclaration {\n assert(\"FunctionDeclaration\", node, opts);\n}\nexport function assertFunctionExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionExpression {\n assert(\"FunctionExpression\", node, opts);\n}\nexport function assertIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Identifier {\n assert(\"Identifier\", node, opts);\n}\nexport function assertIfStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IfStatement {\n assert(\"IfStatement\", node, opts);\n}\nexport function assertLabeledStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LabeledStatement {\n assert(\"LabeledStatement\", node, opts);\n}\nexport function assertStringLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringLiteral {\n assert(\"StringLiteral\", node, opts);\n}\nexport function assertNumericLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumericLiteral {\n assert(\"NumericLiteral\", node, opts);\n}\nexport function assertNullLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullLiteral {\n assert(\"NullLiteral\", node, opts);\n}\nexport function assertBooleanLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanLiteral {\n assert(\"BooleanLiteral\", node, opts);\n}\nexport function assertRegExpLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RegExpLiteral {\n assert(\"RegExpLiteral\", node, opts);\n}\nexport function assertLogicalExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LogicalExpression {\n assert(\"LogicalExpression\", node, opts);\n}\nexport function assertMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MemberExpression {\n assert(\"MemberExpression\", node, opts);\n}\nexport function assertNewExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NewExpression {\n assert(\"NewExpression\", node, opts);\n}\nexport function assertProgram(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Program {\n assert(\"Program\", node, opts);\n}\nexport function assertObjectExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectExpression {\n assert(\"ObjectExpression\", node, opts);\n}\nexport function assertObjectMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectMethod {\n assert(\"ObjectMethod\", node, opts);\n}\nexport function assertObjectProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectProperty {\n assert(\"ObjectProperty\", node, opts);\n}\nexport function assertRestElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RestElement {\n assert(\"RestElement\", node, opts);\n}\nexport function assertReturnStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ReturnStatement {\n assert(\"ReturnStatement\", node, opts);\n}\nexport function assertSequenceExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SequenceExpression {\n assert(\"SequenceExpression\", node, opts);\n}\nexport function assertParenthesizedExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ParenthesizedExpression {\n assert(\"ParenthesizedExpression\", node, opts);\n}\nexport function assertSwitchCase(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SwitchCase {\n assert(\"SwitchCase\", node, opts);\n}\nexport function assertSwitchStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SwitchStatement {\n assert(\"SwitchStatement\", node, opts);\n}\nexport function assertThisExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThisExpression {\n assert(\"ThisExpression\", node, opts);\n}\nexport function assertThrowStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThrowStatement {\n assert(\"ThrowStatement\", node, opts);\n}\nexport function assertTryStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TryStatement {\n assert(\"TryStatement\", node, opts);\n}\nexport function assertUnaryExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnaryExpression {\n assert(\"UnaryExpression\", node, opts);\n}\nexport function assertUpdateExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UpdateExpression {\n assert(\"UpdateExpression\", node, opts);\n}\nexport function assertVariableDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VariableDeclaration {\n assert(\"VariableDeclaration\", node, opts);\n}\nexport function assertVariableDeclarator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VariableDeclarator {\n assert(\"VariableDeclarator\", node, opts);\n}\nexport function assertWhileStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.WhileStatement {\n assert(\"WhileStatement\", node, opts);\n}\nexport function assertWithStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.WithStatement {\n assert(\"WithStatement\", node, opts);\n}\nexport function assertAssignmentPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AssignmentPattern {\n assert(\"AssignmentPattern\", node, opts);\n}\nexport function assertArrayPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayPattern {\n assert(\"ArrayPattern\", node, opts);\n}\nexport function assertArrowFunctionExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrowFunctionExpression {\n assert(\"ArrowFunctionExpression\", node, opts);\n}\nexport function assertClassBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassBody {\n assert(\"ClassBody\", node, opts);\n}\nexport function assertClassExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassExpression {\n assert(\"ClassExpression\", node, opts);\n}\nexport function assertClassDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassDeclaration {\n assert(\"ClassDeclaration\", node, opts);\n}\nexport function assertExportAllDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportAllDeclaration {\n assert(\"ExportAllDeclaration\", node, opts);\n}\nexport function assertExportDefaultDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDefaultDeclaration {\n assert(\"ExportDefaultDeclaration\", node, opts);\n}\nexport function assertExportNamedDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportNamedDeclaration {\n assert(\"ExportNamedDeclaration\", node, opts);\n}\nexport function assertExportSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportSpecifier {\n assert(\"ExportSpecifier\", node, opts);\n}\nexport function assertForOfStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForOfStatement {\n assert(\"ForOfStatement\", node, opts);\n}\nexport function assertImportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportDeclaration {\n assert(\"ImportDeclaration\", node, opts);\n}\nexport function assertImportDefaultSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportDefaultSpecifier {\n assert(\"ImportDefaultSpecifier\", node, opts);\n}\nexport function assertImportNamespaceSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportNamespaceSpecifier {\n assert(\"ImportNamespaceSpecifier\", node, opts);\n}\nexport function assertImportSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportSpecifier {\n assert(\"ImportSpecifier\", node, opts);\n}\nexport function assertImportExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportExpression {\n assert(\"ImportExpression\", node, opts);\n}\nexport function assertMetaProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MetaProperty {\n assert(\"MetaProperty\", node, opts);\n}\nexport function assertClassMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassMethod {\n assert(\"ClassMethod\", node, opts);\n}\nexport function assertObjectPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectPattern {\n assert(\"ObjectPattern\", node, opts);\n}\nexport function assertSpreadElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SpreadElement {\n assert(\"SpreadElement\", node, opts);\n}\nexport function assertSuper(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Super {\n assert(\"Super\", node, opts);\n}\nexport function assertTaggedTemplateExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TaggedTemplateExpression {\n assert(\"TaggedTemplateExpression\", node, opts);\n}\nexport function assertTemplateElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TemplateElement {\n assert(\"TemplateElement\", node, opts);\n}\nexport function assertTemplateLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TemplateLiteral {\n assert(\"TemplateLiteral\", node, opts);\n}\nexport function assertYieldExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.YieldExpression {\n assert(\"YieldExpression\", node, opts);\n}\nexport function assertAwaitExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AwaitExpression {\n assert(\"AwaitExpression\", node, opts);\n}\nexport function assertImport(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Import {\n assert(\"Import\", node, opts);\n}\nexport function assertBigIntLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BigIntLiteral {\n assert(\"BigIntLiteral\", node, opts);\n}\nexport function assertExportNamespaceSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportNamespaceSpecifier {\n assert(\"ExportNamespaceSpecifier\", node, opts);\n}\nexport function assertOptionalMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalMemberExpression {\n assert(\"OptionalMemberExpression\", node, opts);\n}\nexport function assertOptionalCallExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalCallExpression {\n assert(\"OptionalCallExpression\", node, opts);\n}\nexport function assertClassProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassProperty {\n assert(\"ClassProperty\", node, opts);\n}\nexport function assertClassAccessorProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassAccessorProperty {\n assert(\"ClassAccessorProperty\", node, opts);\n}\nexport function assertClassPrivateProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassPrivateProperty {\n assert(\"ClassPrivateProperty\", node, opts);\n}\nexport function assertClassPrivateMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassPrivateMethod {\n assert(\"ClassPrivateMethod\", node, opts);\n}\nexport function assertPrivateName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PrivateName {\n assert(\"PrivateName\", node, opts);\n}\nexport function assertStaticBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StaticBlock {\n assert(\"StaticBlock\", node, opts);\n}\nexport function assertAnyTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.AnyTypeAnnotation {\n assert(\"AnyTypeAnnotation\", node, opts);\n}\nexport function assertArrayTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArrayTypeAnnotation {\n assert(\"ArrayTypeAnnotation\", node, opts);\n}\nexport function assertBooleanTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanTypeAnnotation {\n assert(\"BooleanTypeAnnotation\", node, opts);\n}\nexport function assertBooleanLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BooleanLiteralTypeAnnotation {\n assert(\"BooleanLiteralTypeAnnotation\", node, opts);\n}\nexport function assertNullLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullLiteralTypeAnnotation {\n assert(\"NullLiteralTypeAnnotation\", node, opts);\n}\nexport function assertClassImplements(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ClassImplements {\n assert(\"ClassImplements\", node, opts);\n}\nexport function assertDeclareClass(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareClass {\n assert(\"DeclareClass\", node, opts);\n}\nexport function assertDeclareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareFunction {\n assert(\"DeclareFunction\", node, opts);\n}\nexport function assertDeclareInterface(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareInterface {\n assert(\"DeclareInterface\", node, opts);\n}\nexport function assertDeclareModule(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareModule {\n assert(\"DeclareModule\", node, opts);\n}\nexport function assertDeclareModuleExports(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareModuleExports {\n assert(\"DeclareModuleExports\", node, opts);\n}\nexport function assertDeclareTypeAlias(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareTypeAlias {\n assert(\"DeclareTypeAlias\", node, opts);\n}\nexport function assertDeclareOpaqueType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareOpaqueType {\n assert(\"DeclareOpaqueType\", node, opts);\n}\nexport function assertDeclareVariable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareVariable {\n assert(\"DeclareVariable\", node, opts);\n}\nexport function assertDeclareExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareExportDeclaration {\n assert(\"DeclareExportDeclaration\", node, opts);\n}\nexport function assertDeclareExportAllDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclareExportAllDeclaration {\n assert(\"DeclareExportAllDeclaration\", node, opts);\n}\nexport function assertDeclaredPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DeclaredPredicate {\n assert(\"DeclaredPredicate\", node, opts);\n}\nexport function assertExistsTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExistsTypeAnnotation {\n assert(\"ExistsTypeAnnotation\", node, opts);\n}\nexport function assertFunctionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionTypeAnnotation {\n assert(\"FunctionTypeAnnotation\", node, opts);\n}\nexport function assertFunctionTypeParam(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionTypeParam {\n assert(\"FunctionTypeParam\", node, opts);\n}\nexport function assertGenericTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.GenericTypeAnnotation {\n assert(\"GenericTypeAnnotation\", node, opts);\n}\nexport function assertInferredPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InferredPredicate {\n assert(\"InferredPredicate\", node, opts);\n}\nexport function assertInterfaceExtends(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceExtends {\n assert(\"InterfaceExtends\", node, opts);\n}\nexport function assertInterfaceDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceDeclaration {\n assert(\"InterfaceDeclaration\", node, opts);\n}\nexport function assertInterfaceTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.InterfaceTypeAnnotation {\n assert(\"InterfaceTypeAnnotation\", node, opts);\n}\nexport function assertIntersectionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IntersectionTypeAnnotation {\n assert(\"IntersectionTypeAnnotation\", node, opts);\n}\nexport function assertMixedTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.MixedTypeAnnotation {\n assert(\"MixedTypeAnnotation\", node, opts);\n}\nexport function assertEmptyTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EmptyTypeAnnotation {\n assert(\"EmptyTypeAnnotation\", node, opts);\n}\nexport function assertNullableTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NullableTypeAnnotation {\n assert(\"NullableTypeAnnotation\", node, opts);\n}\nexport function assertNumberLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumberLiteralTypeAnnotation {\n assert(\"NumberLiteralTypeAnnotation\", node, opts);\n}\nexport function assertNumberTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.NumberTypeAnnotation {\n assert(\"NumberTypeAnnotation\", node, opts);\n}\nexport function assertObjectTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeAnnotation {\n assert(\"ObjectTypeAnnotation\", node, opts);\n}\nexport function assertObjectTypeInternalSlot(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeInternalSlot {\n assert(\"ObjectTypeInternalSlot\", node, opts);\n}\nexport function assertObjectTypeCallProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeCallProperty {\n assert(\"ObjectTypeCallProperty\", node, opts);\n}\nexport function assertObjectTypeIndexer(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeIndexer {\n assert(\"ObjectTypeIndexer\", node, opts);\n}\nexport function assertObjectTypeProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeProperty {\n assert(\"ObjectTypeProperty\", node, opts);\n}\nexport function assertObjectTypeSpreadProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectTypeSpreadProperty {\n assert(\"ObjectTypeSpreadProperty\", node, opts);\n}\nexport function assertOpaqueType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OpaqueType {\n assert(\"OpaqueType\", node, opts);\n}\nexport function assertQualifiedTypeIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.QualifiedTypeIdentifier {\n assert(\"QualifiedTypeIdentifier\", node, opts);\n}\nexport function assertStringLiteralTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringLiteralTypeAnnotation {\n assert(\"StringLiteralTypeAnnotation\", node, opts);\n}\nexport function assertStringTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.StringTypeAnnotation {\n assert(\"StringTypeAnnotation\", node, opts);\n}\nexport function assertSymbolTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.SymbolTypeAnnotation {\n assert(\"SymbolTypeAnnotation\", node, opts);\n}\nexport function assertThisTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ThisTypeAnnotation {\n assert(\"ThisTypeAnnotation\", node, opts);\n}\nexport function assertTupleTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TupleTypeAnnotation {\n assert(\"TupleTypeAnnotation\", node, opts);\n}\nexport function assertTypeofTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeofTypeAnnotation {\n assert(\"TypeofTypeAnnotation\", node, opts);\n}\nexport function assertTypeAlias(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeAlias {\n assert(\"TypeAlias\", node, opts);\n}\nexport function assertTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeAnnotation {\n assert(\"TypeAnnotation\", node, opts);\n}\nexport function assertTypeCastExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeCastExpression {\n assert(\"TypeCastExpression\", node, opts);\n}\nexport function assertTypeParameter(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameter {\n assert(\"TypeParameter\", node, opts);\n}\nexport function assertTypeParameterDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameterDeclaration {\n assert(\"TypeParameterDeclaration\", node, opts);\n}\nexport function assertTypeParameterInstantiation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeParameterInstantiation {\n assert(\"TypeParameterInstantiation\", node, opts);\n}\nexport function assertUnionTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnionTypeAnnotation {\n assert(\"UnionTypeAnnotation\", node, opts);\n}\nexport function assertVariance(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Variance {\n assert(\"Variance\", node, opts);\n}\nexport function assertVoidTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.VoidTypeAnnotation {\n assert(\"VoidTypeAnnotation\", node, opts);\n}\nexport function assertEnumDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumDeclaration {\n assert(\"EnumDeclaration\", node, opts);\n}\nexport function assertEnumBooleanBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBooleanBody {\n assert(\"EnumBooleanBody\", node, opts);\n}\nexport function assertEnumNumberBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumNumberBody {\n assert(\"EnumNumberBody\", node, opts);\n}\nexport function assertEnumStringBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumStringBody {\n assert(\"EnumStringBody\", node, opts);\n}\nexport function assertEnumSymbolBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumSymbolBody {\n assert(\"EnumSymbolBody\", node, opts);\n}\nexport function assertEnumBooleanMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBooleanMember {\n assert(\"EnumBooleanMember\", node, opts);\n}\nexport function assertEnumNumberMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumNumberMember {\n assert(\"EnumNumberMember\", node, opts);\n}\nexport function assertEnumStringMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumStringMember {\n assert(\"EnumStringMember\", node, opts);\n}\nexport function assertEnumDefaultedMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumDefaultedMember {\n assert(\"EnumDefaultedMember\", node, opts);\n}\nexport function assertIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.IndexedAccessType {\n assert(\"IndexedAccessType\", node, opts);\n}\nexport function assertOptionalIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.OptionalIndexedAccessType {\n assert(\"OptionalIndexedAccessType\", node, opts);\n}\nexport function assertJSXAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXAttribute {\n assert(\"JSXAttribute\", node, opts);\n}\nexport function assertJSXClosingElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXClosingElement {\n assert(\"JSXClosingElement\", node, opts);\n}\nexport function assertJSXElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXElement {\n assert(\"JSXElement\", node, opts);\n}\nexport function assertJSXEmptyExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXEmptyExpression {\n assert(\"JSXEmptyExpression\", node, opts);\n}\nexport function assertJSXExpressionContainer(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXExpressionContainer {\n assert(\"JSXExpressionContainer\", node, opts);\n}\nexport function assertJSXSpreadChild(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXSpreadChild {\n assert(\"JSXSpreadChild\", node, opts);\n}\nexport function assertJSXIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXIdentifier {\n assert(\"JSXIdentifier\", node, opts);\n}\nexport function assertJSXMemberExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXMemberExpression {\n assert(\"JSXMemberExpression\", node, opts);\n}\nexport function assertJSXNamespacedName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXNamespacedName {\n assert(\"JSXNamespacedName\", node, opts);\n}\nexport function assertJSXOpeningElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXOpeningElement {\n assert(\"JSXOpeningElement\", node, opts);\n}\nexport function assertJSXSpreadAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXSpreadAttribute {\n assert(\"JSXSpreadAttribute\", node, opts);\n}\nexport function assertJSXText(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXText {\n assert(\"JSXText\", node, opts);\n}\nexport function assertJSXFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXFragment {\n assert(\"JSXFragment\", node, opts);\n}\nexport function assertJSXOpeningFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXOpeningFragment {\n assert(\"JSXOpeningFragment\", node, opts);\n}\nexport function assertJSXClosingFragment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSXClosingFragment {\n assert(\"JSXClosingFragment\", node, opts);\n}\nexport function assertNoop(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Noop {\n assert(\"Noop\", node, opts);\n}\nexport function assertPlaceholder(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Placeholder {\n assert(\"Placeholder\", node, opts);\n}\nexport function assertV8IntrinsicIdentifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.V8IntrinsicIdentifier {\n assert(\"V8IntrinsicIdentifier\", node, opts);\n}\nexport function assertArgumentPlaceholder(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ArgumentPlaceholder {\n assert(\"ArgumentPlaceholder\", node, opts);\n}\nexport function assertBindExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BindExpression {\n assert(\"BindExpression\", node, opts);\n}\nexport function assertImportAttribute(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportAttribute {\n assert(\"ImportAttribute\", node, opts);\n}\nexport function assertDecorator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Decorator {\n assert(\"Decorator\", node, opts);\n}\nexport function assertDoExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DoExpression {\n assert(\"DoExpression\", node, opts);\n}\nexport function assertExportDefaultSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDefaultSpecifier {\n assert(\"ExportDefaultSpecifier\", node, opts);\n}\nexport function assertRecordExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.RecordExpression {\n assert(\"RecordExpression\", node, opts);\n}\nexport function assertTupleExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TupleExpression {\n assert(\"TupleExpression\", node, opts);\n}\nexport function assertDecimalLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.DecimalLiteral {\n assert(\"DecimalLiteral\", node, opts);\n}\nexport function assertModuleExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ModuleExpression {\n assert(\"ModuleExpression\", node, opts);\n}\nexport function assertTopicReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TopicReference {\n assert(\"TopicReference\", node, opts);\n}\nexport function assertPipelineTopicExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelineTopicExpression {\n assert(\"PipelineTopicExpression\", node, opts);\n}\nexport function assertPipelineBareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelineBareFunction {\n assert(\"PipelineBareFunction\", node, opts);\n}\nexport function assertPipelinePrimaryTopicReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PipelinePrimaryTopicReference {\n assert(\"PipelinePrimaryTopicReference\", node, opts);\n}\nexport function assertTSParameterProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSParameterProperty {\n assert(\"TSParameterProperty\", node, opts);\n}\nexport function assertTSDeclareFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSDeclareFunction {\n assert(\"TSDeclareFunction\", node, opts);\n}\nexport function assertTSDeclareMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSDeclareMethod {\n assert(\"TSDeclareMethod\", node, opts);\n}\nexport function assertTSQualifiedName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSQualifiedName {\n assert(\"TSQualifiedName\", node, opts);\n}\nexport function assertTSCallSignatureDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSCallSignatureDeclaration {\n assert(\"TSCallSignatureDeclaration\", node, opts);\n}\nexport function assertTSConstructSignatureDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConstructSignatureDeclaration {\n assert(\"TSConstructSignatureDeclaration\", node, opts);\n}\nexport function assertTSPropertySignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSPropertySignature {\n assert(\"TSPropertySignature\", node, opts);\n}\nexport function assertTSMethodSignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSMethodSignature {\n assert(\"TSMethodSignature\", node, opts);\n}\nexport function assertTSIndexSignature(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIndexSignature {\n assert(\"TSIndexSignature\", node, opts);\n}\nexport function assertTSAnyKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSAnyKeyword {\n assert(\"TSAnyKeyword\", node, opts);\n}\nexport function assertTSBooleanKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBooleanKeyword {\n assert(\"TSBooleanKeyword\", node, opts);\n}\nexport function assertTSBigIntKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBigIntKeyword {\n assert(\"TSBigIntKeyword\", node, opts);\n}\nexport function assertTSIntrinsicKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIntrinsicKeyword {\n assert(\"TSIntrinsicKeyword\", node, opts);\n}\nexport function assertTSNeverKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNeverKeyword {\n assert(\"TSNeverKeyword\", node, opts);\n}\nexport function assertTSNullKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNullKeyword {\n assert(\"TSNullKeyword\", node, opts);\n}\nexport function assertTSNumberKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNumberKeyword {\n assert(\"TSNumberKeyword\", node, opts);\n}\nexport function assertTSObjectKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSObjectKeyword {\n assert(\"TSObjectKeyword\", node, opts);\n}\nexport function assertTSStringKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSStringKeyword {\n assert(\"TSStringKeyword\", node, opts);\n}\nexport function assertTSSymbolKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSSymbolKeyword {\n assert(\"TSSymbolKeyword\", node, opts);\n}\nexport function assertTSUndefinedKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUndefinedKeyword {\n assert(\"TSUndefinedKeyword\", node, opts);\n}\nexport function assertTSUnknownKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUnknownKeyword {\n assert(\"TSUnknownKeyword\", node, opts);\n}\nexport function assertTSVoidKeyword(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSVoidKeyword {\n assert(\"TSVoidKeyword\", node, opts);\n}\nexport function assertTSThisType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSThisType {\n assert(\"TSThisType\", node, opts);\n}\nexport function assertTSFunctionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSFunctionType {\n assert(\"TSFunctionType\", node, opts);\n}\nexport function assertTSConstructorType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConstructorType {\n assert(\"TSConstructorType\", node, opts);\n}\nexport function assertTSTypeReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeReference {\n assert(\"TSTypeReference\", node, opts);\n}\nexport function assertTSTypePredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypePredicate {\n assert(\"TSTypePredicate\", node, opts);\n}\nexport function assertTSTypeQuery(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeQuery {\n assert(\"TSTypeQuery\", node, opts);\n}\nexport function assertTSTypeLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeLiteral {\n assert(\"TSTypeLiteral\", node, opts);\n}\nexport function assertTSArrayType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSArrayType {\n assert(\"TSArrayType\", node, opts);\n}\nexport function assertTSTupleType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTupleType {\n assert(\"TSTupleType\", node, opts);\n}\nexport function assertTSOptionalType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSOptionalType {\n assert(\"TSOptionalType\", node, opts);\n}\nexport function assertTSRestType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSRestType {\n assert(\"TSRestType\", node, opts);\n}\nexport function assertTSNamedTupleMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNamedTupleMember {\n assert(\"TSNamedTupleMember\", node, opts);\n}\nexport function assertTSUnionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSUnionType {\n assert(\"TSUnionType\", node, opts);\n}\nexport function assertTSIntersectionType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIntersectionType {\n assert(\"TSIntersectionType\", node, opts);\n}\nexport function assertTSConditionalType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSConditionalType {\n assert(\"TSConditionalType\", node, opts);\n}\nexport function assertTSInferType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInferType {\n assert(\"TSInferType\", node, opts);\n}\nexport function assertTSParenthesizedType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSParenthesizedType {\n assert(\"TSParenthesizedType\", node, opts);\n}\nexport function assertTSTypeOperator(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeOperator {\n assert(\"TSTypeOperator\", node, opts);\n}\nexport function assertTSIndexedAccessType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSIndexedAccessType {\n assert(\"TSIndexedAccessType\", node, opts);\n}\nexport function assertTSMappedType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSMappedType {\n assert(\"TSMappedType\", node, opts);\n}\nexport function assertTSLiteralType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSLiteralType {\n assert(\"TSLiteralType\", node, opts);\n}\nexport function assertTSExpressionWithTypeArguments(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExpressionWithTypeArguments {\n assert(\"TSExpressionWithTypeArguments\", node, opts);\n}\nexport function assertTSInterfaceDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInterfaceDeclaration {\n assert(\"TSInterfaceDeclaration\", node, opts);\n}\nexport function assertTSInterfaceBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInterfaceBody {\n assert(\"TSInterfaceBody\", node, opts);\n}\nexport function assertTSTypeAliasDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAliasDeclaration {\n assert(\"TSTypeAliasDeclaration\", node, opts);\n}\nexport function assertTSInstantiationExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSInstantiationExpression {\n assert(\"TSInstantiationExpression\", node, opts);\n}\nexport function assertTSAsExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSAsExpression {\n assert(\"TSAsExpression\", node, opts);\n}\nexport function assertTSSatisfiesExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSSatisfiesExpression {\n assert(\"TSSatisfiesExpression\", node, opts);\n}\nexport function assertTSTypeAssertion(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAssertion {\n assert(\"TSTypeAssertion\", node, opts);\n}\nexport function assertTSEnumDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEnumDeclaration {\n assert(\"TSEnumDeclaration\", node, opts);\n}\nexport function assertTSEnumMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEnumMember {\n assert(\"TSEnumMember\", node, opts);\n}\nexport function assertTSModuleDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSModuleDeclaration {\n assert(\"TSModuleDeclaration\", node, opts);\n}\nexport function assertTSModuleBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSModuleBlock {\n assert(\"TSModuleBlock\", node, opts);\n}\nexport function assertTSImportType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSImportType {\n assert(\"TSImportType\", node, opts);\n}\nexport function assertTSImportEqualsDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSImportEqualsDeclaration {\n assert(\"TSImportEqualsDeclaration\", node, opts);\n}\nexport function assertTSExternalModuleReference(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExternalModuleReference {\n assert(\"TSExternalModuleReference\", node, opts);\n}\nexport function assertTSNonNullExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNonNullExpression {\n assert(\"TSNonNullExpression\", node, opts);\n}\nexport function assertTSExportAssignment(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSExportAssignment {\n assert(\"TSExportAssignment\", node, opts);\n}\nexport function assertTSNamespaceExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSNamespaceExportDeclaration {\n assert(\"TSNamespaceExportDeclaration\", node, opts);\n}\nexport function assertTSTypeAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeAnnotation {\n assert(\"TSTypeAnnotation\", node, opts);\n}\nexport function assertTSTypeParameterInstantiation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameterInstantiation {\n assert(\"TSTypeParameterInstantiation\", node, opts);\n}\nexport function assertTSTypeParameterDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameterDeclaration {\n assert(\"TSTypeParameterDeclaration\", node, opts);\n}\nexport function assertTSTypeParameter(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeParameter {\n assert(\"TSTypeParameter\", node, opts);\n}\nexport function assertStandardized(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Standardized {\n assert(\"Standardized\", node, opts);\n}\nexport function assertExpression(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Expression {\n assert(\"Expression\", node, opts);\n}\nexport function assertBinary(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Binary {\n assert(\"Binary\", node, opts);\n}\nexport function assertScopable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Scopable {\n assert(\"Scopable\", node, opts);\n}\nexport function assertBlockParent(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.BlockParent {\n assert(\"BlockParent\", node, opts);\n}\nexport function assertBlock(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Block {\n assert(\"Block\", node, opts);\n}\nexport function assertStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Statement {\n assert(\"Statement\", node, opts);\n}\nexport function assertTerminatorless(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Terminatorless {\n assert(\"Terminatorless\", node, opts);\n}\nexport function assertCompletionStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.CompletionStatement {\n assert(\"CompletionStatement\", node, opts);\n}\nexport function assertConditional(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Conditional {\n assert(\"Conditional\", node, opts);\n}\nexport function assertLoop(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Loop {\n assert(\"Loop\", node, opts);\n}\nexport function assertWhile(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.While {\n assert(\"While\", node, opts);\n}\nexport function assertExpressionWrapper(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExpressionWrapper {\n assert(\"ExpressionWrapper\", node, opts);\n}\nexport function assertFor(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.For {\n assert(\"For\", node, opts);\n}\nexport function assertForXStatement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ForXStatement {\n assert(\"ForXStatement\", node, opts);\n}\nexport function assertFunction(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Function {\n assert(\"Function\", node, opts);\n}\nexport function assertFunctionParent(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FunctionParent {\n assert(\"FunctionParent\", node, opts);\n}\nexport function assertPureish(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Pureish {\n assert(\"Pureish\", node, opts);\n}\nexport function assertDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Declaration {\n assert(\"Declaration\", node, opts);\n}\nexport function assertPatternLike(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.PatternLike {\n assert(\"PatternLike\", node, opts);\n}\nexport function assertLVal(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.LVal {\n assert(\"LVal\", node, opts);\n}\nexport function assertTSEntityName(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSEntityName {\n assert(\"TSEntityName\", node, opts);\n}\nexport function assertLiteral(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Literal {\n assert(\"Literal\", node, opts);\n}\nexport function assertImmutable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Immutable {\n assert(\"Immutable\", node, opts);\n}\nexport function assertUserWhitespacable(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UserWhitespacable {\n assert(\"UserWhitespacable\", node, opts);\n}\nexport function assertMethod(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Method {\n assert(\"Method\", node, opts);\n}\nexport function assertObjectMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ObjectMember {\n assert(\"ObjectMember\", node, opts);\n}\nexport function assertProperty(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Property {\n assert(\"Property\", node, opts);\n}\nexport function assertUnaryLike(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.UnaryLike {\n assert(\"UnaryLike\", node, opts);\n}\nexport function assertPattern(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Pattern {\n assert(\"Pattern\", node, opts);\n}\nexport function assertClass(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Class {\n assert(\"Class\", node, opts);\n}\nexport function assertImportOrExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ImportOrExportDeclaration {\n assert(\"ImportOrExportDeclaration\", node, opts);\n}\nexport function assertExportDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ExportDeclaration {\n assert(\"ExportDeclaration\", node, opts);\n}\nexport function assertModuleSpecifier(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.ModuleSpecifier {\n assert(\"ModuleSpecifier\", node, opts);\n}\nexport function assertAccessor(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Accessor {\n assert(\"Accessor\", node, opts);\n}\nexport function assertPrivate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Private {\n assert(\"Private\", node, opts);\n}\nexport function assertFlow(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Flow {\n assert(\"Flow\", node, opts);\n}\nexport function assertFlowType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowType {\n assert(\"FlowType\", node, opts);\n}\nexport function assertFlowBaseAnnotation(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowBaseAnnotation {\n assert(\"FlowBaseAnnotation\", node, opts);\n}\nexport function assertFlowDeclaration(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowDeclaration {\n assert(\"FlowDeclaration\", node, opts);\n}\nexport function assertFlowPredicate(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.FlowPredicate {\n assert(\"FlowPredicate\", node, opts);\n}\nexport function assertEnumBody(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumBody {\n assert(\"EnumBody\", node, opts);\n}\nexport function assertEnumMember(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.EnumMember {\n assert(\"EnumMember\", node, opts);\n}\nexport function assertJSX(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.JSX {\n assert(\"JSX\", node, opts);\n}\nexport function assertMiscellaneous(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.Miscellaneous {\n assert(\"Miscellaneous\", node, opts);\n}\nexport function assertTypeScript(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TypeScript {\n assert(\"TypeScript\", node, opts);\n}\nexport function assertTSTypeElement(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSTypeElement {\n assert(\"TSTypeElement\", node, opts);\n}\nexport function assertTSType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSType {\n assert(\"TSType\", node, opts);\n}\nexport function assertTSBaseType(\n node: object | null | undefined,\n opts?: object | null,\n): asserts node is t.TSBaseType {\n assert(\"TSBaseType\", node, opts);\n}\nexport function assertNumberLiteral(node: any, opts: any): void {\n deprecationWarning(\"assertNumberLiteral\", \"assertNumericLiteral\");\n assert(\"NumberLiteral\", node, opts);\n}\nexport function assertRegexLiteral(node: any, opts: any): void {\n deprecationWarning(\"assertRegexLiteral\", \"assertRegExpLiteral\");\n assert(\"RegexLiteral\", node, opts);\n}\nexport function assertRestProperty(node: any, opts: any): void {\n deprecationWarning(\"assertRestProperty\", \"assertRestElement\");\n assert(\"RestProperty\", node, opts);\n}\nexport function assertSpreadProperty(node: any, opts: any): void {\n deprecationWarning(\"assertSpreadProperty\", \"assertSpreadElement\");\n assert(\"SpreadProperty\", node, opts);\n}\nexport function assertModuleDeclaration(node: any, opts: any): void {\n deprecationWarning(\n \"assertModuleDeclaration\",\n \"assertImportOrExportDeclaration\",\n );\n assert(\"ModuleDeclaration\", node, opts);\n}\n","import {\n anyTypeAnnotation,\n stringTypeAnnotation,\n numberTypeAnnotation,\n voidTypeAnnotation,\n booleanTypeAnnotation,\n genericTypeAnnotation,\n identifier,\n} from \"../generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nexport default createTypeAnnotationBasedOnTypeof as {\n (type: \"string\"): t.StringTypeAnnotation;\n (type: \"number\"): t.NumberTypeAnnotation;\n (type: \"undefined\"): t.VoidTypeAnnotation;\n (type: \"boolean\"): t.BooleanTypeAnnotation;\n (type: \"function\"): t.GenericTypeAnnotation;\n (type: \"object\"): t.GenericTypeAnnotation;\n (type: \"symbol\"): t.GenericTypeAnnotation;\n (type: \"bigint\"): t.AnyTypeAnnotation;\n};\n\n/**\n * Create a type annotation based on typeof expression.\n */\nfunction createTypeAnnotationBasedOnTypeof(type: string): t.FlowType {\n switch (type) {\n case \"string\":\n return stringTypeAnnotation();\n case \"number\":\n return numberTypeAnnotation();\n case \"undefined\":\n return voidTypeAnnotation();\n case \"boolean\":\n return booleanTypeAnnotation();\n case \"function\":\n return genericTypeAnnotation(identifier(\"Function\"));\n case \"object\":\n return genericTypeAnnotation(identifier(\"Object\"));\n case \"symbol\":\n return genericTypeAnnotation(identifier(\"Symbol\"));\n case \"bigint\":\n // todo: use BigInt annotation when Flow supports BigInt\n // https://github.com/facebook/flow/issues/6639\n return anyTypeAnnotation();\n }\n throw new Error(\"Invalid typeof value: \" + type);\n}\n","import {\n isAnyTypeAnnotation,\n isGenericTypeAnnotation,\n isUnionTypeAnnotation,\n isFlowBaseAnnotation,\n isIdentifier,\n} from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nfunction getQualifiedName(node: t.GenericTypeAnnotation[\"id\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.id.name}.${getQualifiedName(node.qualification)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodesIn: ReadonlyArray,\n): t.FlowType[] {\n const nodes = Array.from(nodesIn);\n\n const generics = new Map();\n const bases = new Map();\n\n // store union type groups to circular references\n const typeGroups = new Set();\n\n const types: t.FlowType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isAnyTypeAnnotation(node)) {\n return [node];\n }\n\n if (isFlowBaseAnnotation(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isUnionTypeAnnotation(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // find a matching generic type and merge and deduplicate the type parameters\n if (isGenericTypeAnnotation(node)) {\n const name = getQualifiedName(node.id);\n\n if (generics.has(name)) {\n let existing: t.Flow = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params.push(...node.typeParameters.params);\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params,\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n","import { unionTypeAnnotation } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/flow/removeTypeDuplicates.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createFlowUnionType(\n types: [T] | Array,\n): T | t.UnionTypeAnnotation {\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0] as T;\n } else {\n return unionTypeAnnotation(flattened);\n }\n}\n","import {\n isIdentifier,\n isTSAnyKeyword,\n isTSTypeReference,\n isTSUnionType,\n isTSBaseType,\n} from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\nfunction getQualifiedName(node: t.TSTypeReference[\"typeName\"]): string {\n return isIdentifier(node)\n ? node.name\n : `${node.right.name}.${getQualifiedName(node.left)}`;\n}\n\n/**\n * Dedupe type annotations.\n */\nexport default function removeTypeDuplicates(\n nodesIn: ReadonlyArray,\n): Array {\n const nodes = Array.from(nodesIn);\n\n const generics = new Map();\n const bases = new Map();\n\n // store union type groups to circular references\n const typeGroups = new Set();\n\n const types: t.TSType[] = [];\n\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n if (!node) continue;\n\n // detect duplicates\n if (types.indexOf(node) >= 0) {\n continue;\n }\n\n // this type matches anything\n if (isTSAnyKeyword(node)) {\n return [node];\n }\n\n // Analogue of FlowBaseAnnotation\n if (isTSBaseType(node)) {\n bases.set(node.type, node);\n continue;\n }\n\n if (isTSUnionType(node)) {\n if (!typeGroups.has(node.types)) {\n nodes.push(...node.types);\n typeGroups.add(node.types);\n }\n continue;\n }\n\n // todo: support merging tuples: number[]\n if (isTSTypeReference(node) && node.typeParameters) {\n const name = getQualifiedName(node.typeName);\n\n if (generics.has(name)) {\n let existing: t.TypeScript = generics.get(name);\n if (existing.typeParameters) {\n if (node.typeParameters) {\n existing.typeParameters.params.push(...node.typeParameters.params);\n existing.typeParameters.params = removeTypeDuplicates(\n existing.typeParameters.params,\n );\n }\n } else {\n existing = node.typeParameters;\n }\n } else {\n generics.set(name, node);\n }\n\n continue;\n }\n\n types.push(node);\n }\n\n // add back in bases\n for (const [, baseType] of bases) {\n types.push(baseType);\n }\n\n // add back in generics\n for (const [, genericName] of generics) {\n types.push(genericName);\n }\n\n return types;\n}\n","import { tsUnionType } from \"../generated/index.ts\";\nimport removeTypeDuplicates from \"../../modifications/typescript/removeTypeDuplicates.ts\";\nimport { isTSTypeAnnotation } from \"../../validators/generated/index.ts\";\nimport type * as t from \"../../index.ts\";\n\n/**\n * Takes an array of `types` and flattens them, removing duplicates and\n * returns a `UnionTypeAnnotation` node containing them.\n */\nexport default function createTSUnionType(\n typeAnnotations: Array,\n): t.TSType {\n const types = typeAnnotations.map(type => {\n return isTSTypeAnnotation(type) ? type.typeAnnotation : type;\n });\n const flattened = removeTypeDuplicates(types);\n\n if (flattened.length === 1) {\n return flattened[0];\n } else {\n return tsUnionType(flattened);\n }\n}\n","import { numericLiteral, unaryExpression } from \"./generated/index.ts\";\n\nexport function buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0), true);\n}\n","import { NODE_FIELDS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\nimport { isFile, isIdentifier } from \"../validators/generated/index.ts\";\n\nconst { hasOwn } = process.env.BABEL_8_BREAKING\n ? Object\n : { hasOwn: Function.call.bind(Object.prototype.hasOwnProperty) };\n\ntype CommentCache = Map;\n\n// This function will never be called for comments, only for real nodes.\nfunction cloneIfNode(\n obj: t.Node | undefined | null,\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: CommentCache,\n) {\n if (obj && typeof obj.type === \"string\") {\n return cloneNodeInternal(obj, deep, withoutLoc, commentsCache);\n }\n\n return obj;\n}\n\nfunction cloneIfNodeOrArray(\n obj: t.Node | undefined | null | (t.Node | undefined | null)[],\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: CommentCache,\n) {\n if (Array.isArray(obj)) {\n return obj.map(node => cloneIfNode(node, deep, withoutLoc, commentsCache));\n }\n return cloneIfNode(obj, deep, withoutLoc, commentsCache);\n}\n\n/**\n * Create a clone of a `node` including only properties belonging to the node.\n * If the second parameter is `false`, cloneNode performs a shallow clone.\n * If the third parameter is true, the cloned nodes exclude location properties.\n */\nexport default function cloneNode(\n node: T,\n deep: boolean = true,\n withoutLoc: boolean = false,\n): T {\n return cloneNodeInternal(node, deep, withoutLoc, new Map());\n}\n\nfunction cloneNodeInternal(\n node: T,\n deep: boolean = true,\n withoutLoc: boolean = false,\n commentsCache: CommentCache,\n): T {\n if (!node) return node;\n\n const { type } = node;\n const newNode: any = { type: node.type };\n\n // Special-case identifiers since they are the most cloned nodes.\n if (isIdentifier(node)) {\n newNode.name = node.name;\n\n if (hasOwn(node, \"optional\") && typeof node.optional === \"boolean\") {\n newNode.optional = node.optional;\n }\n\n if (hasOwn(node, \"typeAnnotation\")) {\n newNode.typeAnnotation = deep\n ? cloneIfNodeOrArray(\n node.typeAnnotation,\n true,\n withoutLoc,\n commentsCache,\n )\n : node.typeAnnotation;\n }\n } else if (!hasOwn(NODE_FIELDS, type)) {\n throw new Error(`Unknown node type: \"${type}\"`);\n } else {\n for (const field of Object.keys(NODE_FIELDS[type])) {\n if (hasOwn(node, field)) {\n if (deep) {\n newNode[field] =\n isFile(node) && field === \"comments\"\n ? maybeCloneComments(\n node.comments,\n deep,\n withoutLoc,\n commentsCache,\n )\n : cloneIfNodeOrArray(\n // @ts-expect-error node[field] has been guarded by has check\n node[field],\n true,\n withoutLoc,\n commentsCache,\n );\n } else {\n newNode[field] =\n // @ts-expect-error node[field] has been guarded by has check\n node[field];\n }\n }\n }\n }\n\n if (hasOwn(node, \"loc\")) {\n if (withoutLoc) {\n newNode.loc = null;\n } else {\n newNode.loc = node.loc;\n }\n }\n if (hasOwn(node, \"leadingComments\")) {\n newNode.leadingComments = maybeCloneComments(\n node.leadingComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"innerComments\")) {\n newNode.innerComments = maybeCloneComments(\n node.innerComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"trailingComments\")) {\n newNode.trailingComments = maybeCloneComments(\n node.trailingComments,\n deep,\n withoutLoc,\n commentsCache,\n );\n }\n if (hasOwn(node, \"extra\")) {\n newNode.extra = {\n ...node.extra,\n };\n }\n\n return newNode;\n}\n\nfunction maybeCloneComments(\n comments: ReadonlyArray | null,\n deep: boolean,\n withoutLoc: boolean,\n commentsCache: Map,\n): ReadonlyArray | null {\n if (!comments || !deep) {\n return comments;\n }\n return comments.map(comment => {\n const cache = commentsCache.get(comment);\n if (cache) return cache;\n\n const { type, value, loc } = comment;\n\n const ret = { type, value, loc } as T;\n if (withoutLoc) {\n ret.loc = null;\n }\n\n commentsCache.set(comment, ret);\n\n return ret;\n });\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node`, including only\n * properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function clone(node: T): T {\n return cloneNode(node, /* deep */ false);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * @deprecated Use t.cloneNode instead.\n */\nexport default function cloneDeep(node: T): T {\n return cloneNode(node);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n/**\n * Create a deep clone of a `node` and all of it's child nodes\n * including only properties belonging to the node.\n * excluding `_private` and location properties.\n */\nexport default function cloneDeepWithoutLoc(node: T): T {\n return cloneNode(node, /* deep */ true, /* withoutLoc */ true);\n}\n","import cloneNode from \"./cloneNode.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Create a shallow clone of a `node` excluding `_private` and location properties.\n */\nexport default function cloneWithoutLoc(node: T): T {\n return cloneNode(node, /* deep */ false, /* withoutLoc */ true);\n}\n","import type * as t from \"../index.ts\";\n\n/**\n * Add comments of certain type to a node.\n */\nexport default function addComments(\n node: T,\n type: t.CommentTypeShorthand,\n comments: Array,\n): T {\n if (!comments || !node) return node;\n\n const key = `${type}Comments` as const;\n\n if (node[key]) {\n if (type === \"leading\") {\n node[key] = comments.concat(node[key]);\n } else {\n node[key].push(...comments);\n }\n } else {\n node[key] = comments;\n }\n\n return node;\n}\n","import addComments from \"./addComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Add comment of certain type to a node.\n */\nexport default function addComment(\n node: T,\n type: t.CommentTypeShorthand,\n content: string,\n line?: boolean,\n): T {\n return addComments(node, type, [\n {\n type: line ? \"CommentLine\" : \"CommentBlock\",\n value: content,\n } as t.Comment,\n ]);\n}\n","import type * as t from \"../index.ts\";\n\nexport default function inherit<\n C extends t.Node | undefined,\n P extends t.Node | undefined,\n>(key: keyof C & keyof P, child: C, parent: P): void {\n if (child && parent) {\n // @ts-expect-error Could further refine key definitions\n child[key] = Array.from(\n new Set([].concat(child[key], parent[key]).filter(Boolean)),\n );\n }\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritInnerComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"innerComments\", child, parent);\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritLeadingComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"leadingComments\", child, parent);\n}\n","import inherit from \"../utils/inherit.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function inheritTrailingComments(\n child: t.Node,\n parent: t.Node,\n): void {\n inherit(\"trailingComments\", child, parent);\n}\n","import inheritTrailingComments from \"./inheritTrailingComments.ts\";\nimport inheritLeadingComments from \"./inheritLeadingComments.ts\";\nimport inheritInnerComments from \"./inheritInnerComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Inherit all unique comments from `parent` node to `child` node.\n */\nexport default function inheritsComments(\n child: T,\n parent: t.Node,\n): T {\n inheritTrailingComments(child, parent);\n inheritLeadingComments(child, parent);\n inheritInnerComments(child, parent);\n\n return child;\n}\n","import { COMMENT_KEYS } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Remove comment properties from a node.\n */\nexport default function removeComments(node: T): T {\n COMMENT_KEYS.forEach(key => {\n node[key] = null;\n });\n\n return node;\n}\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'make build'\n */\nimport { FLIPPED_ALIAS_KEYS } from \"../../definitions/index.ts\";\n\nexport const STANDARDIZED_TYPES = FLIPPED_ALIAS_KEYS[\"Standardized\"];\nexport const EXPRESSION_TYPES = FLIPPED_ALIAS_KEYS[\"Expression\"];\nexport const BINARY_TYPES = FLIPPED_ALIAS_KEYS[\"Binary\"];\nexport const SCOPABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Scopable\"];\nexport const BLOCKPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"BlockParent\"];\nexport const BLOCK_TYPES = FLIPPED_ALIAS_KEYS[\"Block\"];\nexport const STATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"Statement\"];\nexport const TERMINATORLESS_TYPES = FLIPPED_ALIAS_KEYS[\"Terminatorless\"];\nexport const COMPLETIONSTATEMENT_TYPES =\n FLIPPED_ALIAS_KEYS[\"CompletionStatement\"];\nexport const CONDITIONAL_TYPES = FLIPPED_ALIAS_KEYS[\"Conditional\"];\nexport const LOOP_TYPES = FLIPPED_ALIAS_KEYS[\"Loop\"];\nexport const WHILE_TYPES = FLIPPED_ALIAS_KEYS[\"While\"];\nexport const EXPRESSIONWRAPPER_TYPES = FLIPPED_ALIAS_KEYS[\"ExpressionWrapper\"];\nexport const FOR_TYPES = FLIPPED_ALIAS_KEYS[\"For\"];\nexport const FORXSTATEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"ForXStatement\"];\nexport const FUNCTION_TYPES = FLIPPED_ALIAS_KEYS[\"Function\"];\nexport const FUNCTIONPARENT_TYPES = FLIPPED_ALIAS_KEYS[\"FunctionParent\"];\nexport const PUREISH_TYPES = FLIPPED_ALIAS_KEYS[\"Pureish\"];\nexport const DECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"Declaration\"];\nexport const PATTERNLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"PatternLike\"];\nexport const LVAL_TYPES = FLIPPED_ALIAS_KEYS[\"LVal\"];\nexport const TSENTITYNAME_TYPES = FLIPPED_ALIAS_KEYS[\"TSEntityName\"];\nexport const LITERAL_TYPES = FLIPPED_ALIAS_KEYS[\"Literal\"];\nexport const IMMUTABLE_TYPES = FLIPPED_ALIAS_KEYS[\"Immutable\"];\nexport const USERWHITESPACABLE_TYPES = FLIPPED_ALIAS_KEYS[\"UserWhitespacable\"];\nexport const METHOD_TYPES = FLIPPED_ALIAS_KEYS[\"Method\"];\nexport const OBJECTMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"ObjectMember\"];\nexport const PROPERTY_TYPES = FLIPPED_ALIAS_KEYS[\"Property\"];\nexport const UNARYLIKE_TYPES = FLIPPED_ALIAS_KEYS[\"UnaryLike\"];\nexport const PATTERN_TYPES = FLIPPED_ALIAS_KEYS[\"Pattern\"];\nexport const CLASS_TYPES = FLIPPED_ALIAS_KEYS[\"Class\"];\nexport const IMPORTOREXPORTDECLARATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"ImportOrExportDeclaration\"];\nexport const EXPORTDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"ExportDeclaration\"];\nexport const MODULESPECIFIER_TYPES = FLIPPED_ALIAS_KEYS[\"ModuleSpecifier\"];\nexport const ACCESSOR_TYPES = FLIPPED_ALIAS_KEYS[\"Accessor\"];\nexport const PRIVATE_TYPES = FLIPPED_ALIAS_KEYS[\"Private\"];\nexport const FLOW_TYPES = FLIPPED_ALIAS_KEYS[\"Flow\"];\nexport const FLOWTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowType\"];\nexport const FLOWBASEANNOTATION_TYPES =\n FLIPPED_ALIAS_KEYS[\"FlowBaseAnnotation\"];\nexport const FLOWDECLARATION_TYPES = FLIPPED_ALIAS_KEYS[\"FlowDeclaration\"];\nexport const FLOWPREDICATE_TYPES = FLIPPED_ALIAS_KEYS[\"FlowPredicate\"];\nexport const ENUMBODY_TYPES = FLIPPED_ALIAS_KEYS[\"EnumBody\"];\nexport const ENUMMEMBER_TYPES = FLIPPED_ALIAS_KEYS[\"EnumMember\"];\nexport const JSX_TYPES = FLIPPED_ALIAS_KEYS[\"JSX\"];\nexport const MISCELLANEOUS_TYPES = FLIPPED_ALIAS_KEYS[\"Miscellaneous\"];\nexport const TYPESCRIPT_TYPES = FLIPPED_ALIAS_KEYS[\"TypeScript\"];\nexport const TSTYPEELEMENT_TYPES = FLIPPED_ALIAS_KEYS[\"TSTypeElement\"];\nexport const TSTYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSType\"];\nexport const TSBASETYPE_TYPES = FLIPPED_ALIAS_KEYS[\"TSBaseType\"];\n/**\n * @deprecated migrate to IMPORTOREXPORTDECLARATION_TYPES.\n */\nexport const MODULEDECLARATION_TYPES = IMPORTOREXPORTDECLARATION_TYPES;\n","import {\n isBlockStatement,\n isFunction,\n isEmptyStatement,\n isStatement,\n} from \"../validators/generated/index.ts\";\nimport {\n returnStatement,\n expressionStatement,\n blockStatement,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toBlock(\n node: t.Statement | t.Expression,\n parent?: t.Node,\n): t.BlockStatement {\n if (isBlockStatement(node)) {\n return node;\n }\n\n let blockNodes: t.Statement[] = [];\n\n if (isEmptyStatement(node)) {\n blockNodes = [];\n } else {\n if (!isStatement(node)) {\n if (isFunction(parent)) {\n node = returnStatement(node);\n } else {\n node = expressionStatement(node);\n }\n }\n\n blockNodes = [node];\n }\n\n return blockStatement(blockNodes);\n}\n","import toBlock from \"./toBlock.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Ensure the `key` (defaults to \"body\") of a `node` is a block.\n * Casting it to a block if it is not.\n *\n * Returns the BlockStatement\n */\nexport default function ensureBlock(\n node: t.Node,\n key: string = \"body\",\n): t.BlockStatement {\n // @ts-expect-error Fixme: key may not exist in node, consider remove key = \"body\"\n const result = toBlock(node[key], node);\n // @ts-expect-error Fixme: key may not exist in node, consider remove key = \"body\"\n node[key] = result;\n return result;\n}\n","import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport { isIdentifierChar } from \"@babel/helper-validator-identifier\";\n\nexport default function toIdentifier(input: string): string {\n input = input + \"\";\n\n // replace all non-valid identifiers with dashes\n let name = \"\";\n for (const c of input) {\n name += isIdentifierChar(c.codePointAt(0)) ? c : \"-\";\n }\n\n // remove all dashes and numbers from start of name\n name = name.replace(/^[-0-9]+/, \"\");\n\n // camel case\n name = name.replace(/[-\\s]+(.)?/g, function (match, c) {\n return c ? c.toUpperCase() : \"\";\n });\n\n if (!isValidIdentifier(name)) {\n name = `_${name}`;\n }\n\n return name || \"_\";\n}\n","import toIdentifier from \"./toIdentifier.ts\";\n\nexport default function toBindingIdentifierName(name: string): string {\n name = toIdentifier(name);\n if (name === \"eval\" || name === \"arguments\") name = \"_\" + name;\n\n return name;\n}\n","import { isIdentifier } from \"../validators/generated/index.ts\";\nimport { stringLiteral } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toComputedKey(\n node:\n | t.ObjectMember\n | t.ObjectProperty\n | t.ClassMethod\n | t.ClassProperty\n | t.ClassAccessorProperty\n | t.MemberExpression\n | t.OptionalMemberExpression,\n // @ts-expect-error todo(flow->ts): maybe check the type of node before accessing .key and .property\n key: t.Expression | t.PrivateName = node.key || node.property,\n) {\n if (!node.computed && isIdentifier(key)) key = stringLiteral(key.name);\n\n return key;\n}\n","import {\n isExpression,\n isFunction,\n isClass,\n isExpressionStatement,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toExpression as {\n (node: t.Function): t.FunctionExpression;\n (node: t.Class): t.ClassExpression;\n (\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n ): t.Expression;\n};\n\nfunction toExpression(\n node: t.ExpressionStatement | t.Expression | t.Class | t.Function,\n): t.Expression {\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n // return unmodified node\n // important for things like ArrowFunctions where\n // type change from ArrowFunction to FunctionExpression\n // produces bugs like -> `()=>a` to `function () a`\n // without generating a BlockStatement for it\n // ref: https://github.com/babel/babili/issues/130\n if (isExpression(node)) {\n return node;\n }\n\n // convert all classes and functions\n // ClassDeclaration -> ClassExpression\n // FunctionDeclaration, ObjectMethod, ClassMethod -> FunctionExpression\n if (isClass(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"ClassExpression\";\n } else if (isFunction(node)) {\n // @ts-expect-error todo(flow->ts): avoid type unsafe mutations\n node.type = \"FunctionExpression\";\n }\n\n // if it's still not an expression\n if (!isExpression(node)) {\n throw new Error(`cannot turn ${node.type} to an expression`);\n }\n\n return node;\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * A prefix AST traversal implementation meant for simple searching\n * and processing.\n */\nexport default function traverseFast(\n node: t.Node | null | undefined,\n enter: (node: t.Node, opts?: Options) => void,\n opts?: Options,\n): void {\n if (!node) return;\n\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n\n opts = opts || ({} as Options);\n enter(node, opts);\n\n for (const key of keys) {\n const subNode: t.Node | undefined | null =\n // @ts-expect-error key must present in node\n node[key];\n\n if (Array.isArray(subNode)) {\n for (const node of subNode) {\n traverseFast(node, enter, opts);\n }\n } else {\n traverseFast(subNode, enter, opts);\n }\n }\n}\n","import { COMMENT_KEYS } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\nconst CLEAR_KEYS = [\n \"tokens\", // only exist in t.File\n \"start\",\n \"end\",\n \"loc\",\n // Fixme: should be extra.raw / extra.rawValue?\n \"raw\",\n \"rawValue\",\n] as const;\n\nconst CLEAR_KEYS_PLUS_COMMENTS = [\n ...COMMENT_KEYS,\n \"comments\",\n ...CLEAR_KEYS,\n] as const;\n\nexport type Options = { preserveComments?: boolean };\n/**\n * Remove all of the _* properties from a node along with the additional metadata\n * properties like location data and raw token data.\n */\nexport default function removeProperties(\n node: t.Node,\n opts: Options = {},\n): void {\n const map = opts.preserveComments ? CLEAR_KEYS : CLEAR_KEYS_PLUS_COMMENTS;\n for (const key of map) {\n // @ts-expect-error tokens only exist in t.File\n if (node[key] != null) node[key] = undefined;\n }\n\n for (const key of Object.keys(node)) {\n // @ts-expect-error string can not index node\n if (key[0] === \"_\" && node[key] != null) node[key] = undefined;\n }\n\n const symbols: Array = Object.getOwnPropertySymbols(node);\n for (const sym of symbols) {\n // @ts-expect-error Fixme: document symbol properties\n node[sym] = null;\n }\n}\n","import traverseFast from \"../traverse/traverseFast.ts\";\nimport removeProperties from \"./removeProperties.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function removePropertiesDeep(\n tree: T,\n opts?: { preserveComments: boolean } | null,\n): T {\n traverseFast(tree, removeProperties, opts);\n\n return tree;\n}\n","import {\n isIdentifier,\n isStringLiteral,\n} from \"../validators/generated/index.ts\";\nimport cloneNode from \"../clone/cloneNode.ts\";\nimport removePropertiesDeep from \"../modifications/removePropertiesDeep.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default function toKeyAlias(\n node: t.Method | t.Property,\n key: t.Node = node.key,\n): string {\n let alias;\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.kind`\n if (node.kind === \"method\") {\n return toKeyAlias.increment() + \"\";\n } else if (isIdentifier(key)) {\n alias = key.name;\n } else if (isStringLiteral(key)) {\n alias = JSON.stringify(key.value);\n } else {\n alias = JSON.stringify(removePropertiesDeep(cloneNode(key)));\n }\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.computed`\n if (node.computed) {\n alias = `[${alias}]`;\n }\n\n // @ts-expect-error todo(flow->ts): maybe add node type check before checking `.static`\n if (node.static) {\n alias = `static:${alias}`;\n }\n\n return alias;\n}\n\ntoKeyAlias.uid = 0;\n\ntoKeyAlias.increment = function () {\n if (toKeyAlias.uid >= Number.MAX_SAFE_INTEGER) {\n return (toKeyAlias.uid = 0);\n } else {\n return toKeyAlias.uid++;\n }\n};\n","import {\n isStatement,\n isFunction,\n isClass,\n isAssignmentExpression,\n} from \"../validators/generated/index.ts\";\nimport { expressionStatement } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default toStatement as {\n (node: t.AssignmentExpression, ignore?: boolean): t.ExpressionStatement;\n\n (node: T, ignore: false): T;\n (node: T, ignore?: boolean): T | false;\n\n (node: t.Class, ignore: false): t.ClassDeclaration;\n (node: t.Class, ignore?: boolean): t.ClassDeclaration | false;\n\n (node: t.Function, ignore: false): t.FunctionDeclaration;\n (node: t.Function, ignore?: boolean): t.FunctionDeclaration | false;\n\n (node: t.Node, ignore: false): t.Statement;\n (node: t.Node, ignore?: boolean): t.Statement | false;\n};\n\nfunction toStatement(node: t.Node, ignore?: boolean): t.Statement | false {\n if (isStatement(node)) {\n return node;\n }\n\n let mustHaveId = false;\n let newType;\n\n if (isClass(node)) {\n mustHaveId = true;\n newType = \"ClassDeclaration\" as const;\n } else if (isFunction(node)) {\n mustHaveId = true;\n newType = \"FunctionDeclaration\" as const;\n } else if (isAssignmentExpression(node)) {\n return expressionStatement(node);\n }\n\n // @ts-expect-error todo(flow->ts): node.id might be missing\n if (mustHaveId && !node.id) {\n newType = false;\n }\n\n if (!newType) {\n if (ignore) {\n return false;\n } else {\n throw new Error(`cannot turn ${node.type} to a statement`);\n }\n }\n\n // @ts-expect-error manipulating node.type\n node.type = newType;\n\n // @ts-expect-error todo(flow->ts) refactor to avoid type unsafe mutations like reassigning node type above\n return node;\n}\n","import isValidIdentifier from \"../validators/isValidIdentifier.ts\";\nimport {\n identifier,\n booleanLiteral,\n nullLiteral,\n stringLiteral,\n numericLiteral,\n regExpLiteral,\n arrayExpression,\n objectProperty,\n objectExpression,\n unaryExpression,\n binaryExpression,\n} from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default valueToNode as {\n (value: undefined): t.Identifier; // TODO: This should return \"void 0\"\n (value: boolean): t.BooleanLiteral;\n (value: null): t.NullLiteral;\n (value: string): t.StringLiteral;\n // Infinities and NaN need to use a BinaryExpression; negative values must be wrapped in UnaryExpression\n (value: number): t.NumericLiteral | t.BinaryExpression | t.UnaryExpression;\n (value: RegExp): t.RegExpLiteral;\n (value: ReadonlyArray): t.ArrayExpression;\n\n // this throws with objects that are not plain objects,\n // or if there are non-valueToNode-able values\n (value: object): t.ObjectExpression;\n\n (value: unknown): t.Expression;\n};\n\n// @ts-expect-error: Object.prototype.toString must return a string\nconst objectToString: (value: unknown) => string = Function.call.bind(\n Object.prototype.toString,\n);\n\nfunction isRegExp(value: unknown): value is RegExp {\n return objectToString(value) === \"[object RegExp]\";\n}\n\nfunction isPlainObject(value: unknown): value is object {\n if (\n typeof value !== \"object\" ||\n value === null ||\n Object.prototype.toString.call(value) !== \"[object Object]\"\n ) {\n return false;\n }\n const proto = Object.getPrototypeOf(value);\n // Object.prototype's __proto__ is null. Every other class's __proto__.__proto__ is\n // not null by default. We cannot check if proto === Object.prototype because it\n // could come from another realm.\n return proto === null || Object.getPrototypeOf(proto) === null;\n}\n\nfunction valueToNode(value: unknown): t.Expression {\n // undefined\n if (value === undefined) {\n return identifier(\"undefined\");\n }\n\n // boolean\n if (value === true || value === false) {\n return booleanLiteral(value);\n }\n\n // null\n if (value === null) {\n return nullLiteral();\n }\n\n // strings\n if (typeof value === \"string\") {\n return stringLiteral(value);\n }\n\n // numbers\n if (typeof value === \"number\") {\n let result;\n if (Number.isFinite(value)) {\n result = numericLiteral(Math.abs(value));\n } else {\n let numerator;\n if (Number.isNaN(value)) {\n // NaN\n numerator = numericLiteral(0);\n } else {\n // Infinity / -Infinity\n numerator = numericLiteral(1);\n }\n\n result = binaryExpression(\"/\", numerator, numericLiteral(0));\n }\n\n if (value < 0 || Object.is(value, -0)) {\n result = unaryExpression(\"-\", result);\n }\n\n return result;\n }\n\n // regexes\n if (isRegExp(value)) {\n const pattern = value.source;\n const flags = value.toString().match(/\\/([a-z]+|)$/)[1];\n return regExpLiteral(pattern, flags);\n }\n\n // array\n if (Array.isArray(value)) {\n return arrayExpression(value.map(valueToNode));\n }\n\n // object\n if (isPlainObject(value)) {\n const props = [];\n for (const key of Object.keys(value)) {\n let nodeKey;\n if (isValidIdentifier(key)) {\n nodeKey = identifier(key);\n } else {\n nodeKey = stringLiteral(key);\n }\n props.push(\n objectProperty(\n nodeKey,\n valueToNode(\n // @ts-expect-error key must present in value\n value[key],\n ),\n ),\n );\n }\n return objectExpression(props);\n }\n\n throw new Error(\"don't know how to turn this value into a node\");\n}\n","import { memberExpression } from \"../builders/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Append a node to a member expression.\n */\nexport default function appendToMemberExpression(\n member: t.MemberExpression,\n append: t.MemberExpression[\"property\"],\n computed: boolean = false,\n): t.MemberExpression {\n member.object = memberExpression(\n member.object,\n member.property,\n member.computed,\n );\n member.property = append;\n member.computed = !!computed;\n\n return member;\n}\n","import { INHERIT_KEYS } from \"../constants/index.ts\";\nimport inheritsComments from \"../comments/inheritsComments.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Inherit all contextual properties from `parent` node to `child` node.\n */\nexport default function inherits(\n child: T,\n parent: t.Node | null | undefined,\n): T {\n if (!child || !parent) return child;\n\n // optionally inherit specific properties if not null\n for (const key of INHERIT_KEYS.optional) {\n // @ts-expect-error Fixme: refine parent types\n if (child[key] == null) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit \"private\" properties\n for (const key of Object.keys(parent)) {\n if (key[0] === \"_\" && key !== \"__clone\") {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n }\n\n // force inherit select properties\n for (const key of INHERIT_KEYS.force) {\n // @ts-expect-error Fixme: refine parent types\n child[key] = parent[key];\n }\n\n inheritsComments(child, parent);\n\n return child;\n}\n","import { memberExpression } from \"../builders/generated/index.ts\";\nimport { isSuper } from \"../index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Prepend a node to a member expression.\n */\nexport default function prependToMemberExpression<\n T extends Pick,\n>(member: T, prepend: t.MemberExpression[\"object\"]): T {\n if (isSuper(member.object)) {\n throw new Error(\n \"Cannot prepend node to super property access (`super.foo`).\",\n );\n }\n member.object = memberExpression(prepend, member.object);\n\n return member;\n}\n","import {\n isExportDeclaration,\n isIdentifier,\n isDeclaration,\n isFunctionDeclaration,\n isFunctionExpression,\n isExportAllDeclaration,\n isAssignmentExpression,\n isUnaryExpression,\n} from \"../validators/generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport { getBindingIdentifiers as default };\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates: true,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record>;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: false,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record;\n\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record | Record>;\n\n/**\n * Return a list of binding identifiers associated with the input `node`.\n */\nfunction getBindingIdentifiers(\n node: t.Node,\n duplicates?: boolean,\n outerOnly?: boolean,\n newBindingsOnly?: boolean,\n): Record | Record> {\n const search: t.Node[] = [].concat(node);\n const ids = Object.create(null);\n\n while (search.length) {\n const id = search.shift();\n if (!id) continue;\n\n if (\n newBindingsOnly &&\n // These two nodes do not introduce _new_ bindings, but they are included\n // in getBindingIdentifiers.keys for backwards compatibility.\n // TODO(@nicolo-ribaudo): Check if we can remove them from .keys in a\n // backward-compatible way, and if not what we need to do to remove them\n // in Babel 8.\n (isAssignmentExpression(id) || isUnaryExpression(id))\n ) {\n continue;\n }\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys do not cover all AST types\n getBindingIdentifiers.keys[id.type];\n\n if (isIdentifier(id)) {\n if (duplicates) {\n const _ids = (ids[id.name] = ids[id.name] || []);\n _ids.push(id);\n } else {\n ids[id.name] = id;\n }\n continue;\n }\n\n if (isExportDeclaration(id) && !isExportAllDeclaration(id)) {\n if (isDeclaration(id.declaration)) {\n search.push(id.declaration);\n }\n continue;\n }\n\n if (outerOnly) {\n if (isFunctionDeclaration(id)) {\n search.push(id.id);\n continue;\n }\n\n if (isFunctionExpression(id)) {\n continue;\n }\n }\n\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const nodes =\n // @ts-expect-error key must present in id\n id[key] as t.Node[] | t.Node | undefined | null;\n if (nodes) {\n Array.isArray(nodes) ? search.push(...nodes) : search.push(nodes);\n }\n }\n }\n }\n\n // $FlowIssue Object.create() seems broken\n return ids;\n}\n\n/**\n * Mapping of types to their identifier keys.\n */\ngetBindingIdentifiers.keys = {\n DeclareClass: [\"id\"],\n DeclareFunction: [\"id\"],\n DeclareModule: [\"id\"],\n DeclareVariable: [\"id\"],\n DeclareInterface: [\"id\"],\n DeclareTypeAlias: [\"id\"],\n DeclareOpaqueType: [\"id\"],\n InterfaceDeclaration: [\"id\"],\n TypeAlias: [\"id\"],\n OpaqueType: [\"id\"],\n\n CatchClause: [\"param\"],\n LabeledStatement: [\"label\"],\n UnaryExpression: [\"argument\"],\n AssignmentExpression: [\"left\"],\n\n ImportSpecifier: [\"local\"],\n ImportNamespaceSpecifier: [\"local\"],\n ImportDefaultSpecifier: [\"local\"],\n ImportDeclaration: [\"specifiers\"],\n\n ExportSpecifier: [\"exported\"],\n ExportNamespaceSpecifier: [\"exported\"],\n ExportDefaultSpecifier: [\"exported\"],\n\n FunctionDeclaration: [\"id\", \"params\"],\n FunctionExpression: [\"id\", \"params\"],\n ArrowFunctionExpression: [\"params\"],\n ObjectMethod: [\"params\"],\n ClassMethod: [\"params\"],\n ClassPrivateMethod: [\"params\"],\n\n ForInStatement: [\"left\"],\n ForOfStatement: [\"left\"],\n\n ClassDeclaration: [\"id\"],\n ClassExpression: [\"id\"],\n\n RestElement: [\"argument\"],\n UpdateExpression: [\"argument\"],\n\n ObjectProperty: [\"value\"],\n\n AssignmentPattern: [\"left\"],\n ArrayPattern: [\"elements\"],\n ObjectPattern: [\"properties\"],\n\n VariableDeclaration: [\"declarations\"],\n VariableDeclarator: [\"id\"],\n};\n","import getBindingIdentifiers from \"./getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n\nexport default getOuterBindingIdentifiers as {\n (node: t.Node, duplicates: true): Record>;\n (node: t.Node, duplicates?: false): Record;\n (\n node: t.Node,\n duplicates?: boolean,\n ): Record | Record>;\n};\n\nfunction getOuterBindingIdentifiers(\n node: t.Node,\n duplicates: boolean,\n): Record | Record> {\n return getBindingIdentifiers(node, duplicates, true);\n}\n","import { VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\nexport type TraversalAncestors = Array<{\n node: t.Node;\n key: string;\n index?: number;\n}>;\n\nexport type TraversalHandler = (\n this: undefined,\n node: t.Node,\n parent: TraversalAncestors,\n state: T,\n) => void;\n\nexport type TraversalHandlers = {\n enter?: TraversalHandler;\n exit?: TraversalHandler;\n};\n\n/**\n * A general AST traversal with both prefix and postfix handlers, and a\n * state object. Exposes ancestry data to each handler so that more complex\n * AST data can be taken into account.\n */\nexport default function traverse(\n node: t.Node,\n handlers: TraversalHandler | TraversalHandlers,\n state?: T,\n): void {\n if (typeof handlers === \"function\") {\n handlers = { enter: handlers };\n }\n\n const { enter, exit } = handlers;\n\n traverseSimpleImpl(node, enter, exit, state, []);\n}\n\nfunction traverseSimpleImpl(\n node: any,\n enter: Function | undefined,\n exit: Function | undefined,\n state: T | undefined,\n ancestors: TraversalAncestors,\n) {\n const keys = VISITOR_KEYS[node.type];\n if (!keys) return;\n\n if (enter) enter(node, ancestors, state);\n\n for (const key of keys) {\n const subNode = node[key];\n\n if (Array.isArray(subNode)) {\n for (let i = 0; i < subNode.length; i++) {\n const child = subNode[i];\n if (!child) continue;\n\n ancestors.push({\n node,\n key,\n index: i,\n });\n\n traverseSimpleImpl(child, enter, exit, state, ancestors);\n\n ancestors.pop();\n }\n } else if (subNode) {\n ancestors.push({\n node,\n key,\n });\n\n traverseSimpleImpl(subNode, enter, exit, state, ancestors);\n\n ancestors.pop();\n }\n }\n\n if (exit) exit(node, ancestors, state);\n}\n","import getBindingIdentifiers from \"../retrievers/getBindingIdentifiers.ts\";\nimport type * as t from \"../index.ts\";\n/**\n * Check if the input `node` is a binding identifier.\n */\nexport default function isBinding(\n node: t.Node,\n parent: t.Node,\n grandparent?: t.Node,\n): boolean {\n if (\n grandparent &&\n node.type === \"Identifier\" &&\n parent.type === \"ObjectProperty\" &&\n grandparent.type === \"ObjectExpression\"\n ) {\n // We need to special-case this, because getBindingIdentifiers\n // has an ObjectProperty->value entry for destructuring patterns.\n return false;\n }\n\n const keys =\n // @ts-expect-error getBindingIdentifiers.keys does not cover all AST types\n getBindingIdentifiers.keys[parent.type];\n if (keys) {\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const val =\n // @ts-expect-error key must present in parent\n parent[key];\n if (Array.isArray(val)) {\n if (val.indexOf(node) >= 0) return true;\n } else {\n if (val === node) return true;\n }\n }\n }\n\n return false;\n}\n","import { isVariableDeclaration } from \"./generated/index.ts\";\nimport { BLOCK_SCOPED_SYMBOL } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a `let` variable declaration.\n */\nexport default function isLet(node: t.Node): boolean {\n return (\n isVariableDeclaration(node) &&\n (node.kind !== \"var\" ||\n // @ts-expect-error Fixme: document private properties\n node[BLOCK_SCOPED_SYMBOL])\n );\n}\n","import {\n isClassDeclaration,\n isFunctionDeclaration,\n} from \"./generated/index.ts\";\nimport isLet from \"./isLet.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is block scoped.\n */\nexport default function isBlockScoped(node: t.Node): boolean {\n return isFunctionDeclaration(node) || isClassDeclaration(node) || isLet(node);\n}\n","import isType from \"./isType.ts\";\nimport { isIdentifier } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is definitely immutable.\n */\nexport default function isImmutable(node: t.Node): boolean {\n if (isType(node.type, \"Immutable\")) return true;\n\n if (isIdentifier(node)) {\n if (node.name === \"undefined\") {\n // immutable!\n return true;\n } else {\n // no idea...\n return false;\n }\n }\n\n return false;\n}\n","import { NODE_FIELDS, VISITOR_KEYS } from \"../definitions/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if two nodes are equivalent\n */\nexport default function isNodesEquivalent>(\n a: T,\n b: any,\n): b is T {\n if (\n typeof a !== \"object\" ||\n typeof b !== \"object\" ||\n a == null ||\n b == null\n ) {\n return a === b;\n }\n\n if (a.type !== b.type) {\n return false;\n }\n\n const fields = Object.keys(NODE_FIELDS[a.type] || a.type);\n const visitorKeys = VISITOR_KEYS[a.type];\n\n for (const field of fields) {\n const val_a =\n // @ts-expect-error field must present in a\n a[field];\n const val_b = b[field];\n if (typeof val_a !== typeof val_b) {\n return false;\n }\n if (val_a == null && val_b == null) {\n continue;\n } else if (val_a == null || val_b == null) {\n return false;\n }\n\n if (Array.isArray(val_a)) {\n if (!Array.isArray(val_b)) {\n return false;\n }\n if (val_a.length !== val_b.length) {\n return false;\n }\n\n for (let i = 0; i < val_a.length; i++) {\n if (!isNodesEquivalent(val_a[i], val_b[i])) {\n return false;\n }\n }\n continue;\n }\n\n if (typeof val_a === \"object\" && !visitorKeys?.includes(field)) {\n for (const key of Object.keys(val_a)) {\n if (val_a[key] !== val_b[key]) {\n return false;\n }\n }\n continue;\n }\n\n if (!isNodesEquivalent(val_a, val_b)) {\n return false;\n }\n }\n\n return true;\n}\n","import type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a reference to a bound variable.\n */\nexport default function isReferenced(\n node: t.Node,\n parent: t.Node,\n grandparent?: t.Node,\n): boolean {\n switch (parent.type) {\n // yes: PARENT[NODE]\n // yes: NODE.child\n // no: parent.NODE\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n if (parent.property === node) {\n return !!parent.computed;\n }\n return parent.object === node;\n\n case \"JSXMemberExpression\":\n return parent.object === node;\n // no: let NODE = init;\n // yes: let id = NODE;\n case \"VariableDeclarator\":\n return parent.init === node;\n\n // yes: () => NODE\n // no: (NODE) => {}\n case \"ArrowFunctionExpression\":\n return parent.body === node;\n\n // no: class { #NODE; }\n // no: class { get #NODE() {} }\n // no: class { #NODE() {} }\n // no: class { fn() { return this.#NODE; } }\n case \"PrivateName\":\n return false;\n\n // no: class { NODE() {} }\n // yes: class { [NODE]() {} }\n // no: class { foo(NODE) {} }\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n case \"ObjectMethod\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return false;\n\n // yes: { [NODE]: \"\" }\n // no: { NODE: \"\" }\n // depends: { NODE }\n // depends: { key: NODE }\n case \"ObjectProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n // parent.value === node\n return !grandparent || grandparent.type !== \"ObjectPattern\";\n // no: class { NODE = value; }\n // yes: class { [NODE] = value; }\n // yes: class { key = NODE; }\n case \"ClassProperty\":\n case \"ClassAccessorProperty\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n return true;\n case \"ClassPrivateProperty\":\n return parent.key !== node;\n\n // no: class NODE {}\n // yes: class Foo extends NODE {}\n case \"ClassDeclaration\":\n case \"ClassExpression\":\n return parent.superClass === node;\n\n // yes: left = NODE;\n // no: NODE = right;\n case \"AssignmentExpression\":\n return parent.right === node;\n\n // no: [NODE = foo] = [];\n // yes: [foo = NODE] = [];\n case \"AssignmentPattern\":\n return parent.right === node;\n\n // no: NODE: for (;;) {}\n case \"LabeledStatement\":\n return false;\n\n // no: try {} catch (NODE) {}\n case \"CatchClause\":\n return false;\n\n // no: function foo(...NODE) {}\n case \"RestElement\":\n return false;\n\n case \"BreakStatement\":\n case \"ContinueStatement\":\n return false;\n\n // no: function NODE() {}\n // no: function foo(NODE) {}\n case \"FunctionDeclaration\":\n case \"FunctionExpression\":\n return false;\n\n // no: export NODE from \"foo\";\n // no: export * as NODE from \"foo\";\n case \"ExportNamespaceSpecifier\":\n case \"ExportDefaultSpecifier\":\n return false;\n\n // no: export { foo as NODE };\n // yes: export { NODE as foo };\n // no: export { NODE as foo } from \"foo\";\n case \"ExportSpecifier\":\n // @ts-expect-error todo(flow->ts): Property 'source' does not exist on type 'AnyTypeAnnotation'.\n if (grandparent?.source) {\n return false;\n }\n return parent.local === node;\n\n // no: import NODE from \"foo\";\n // no: import * as NODE from \"foo\";\n // no: import { NODE as foo } from \"foo\";\n // no: import { foo as NODE } from \"foo\";\n // no: import NODE from \"bar\";\n case \"ImportDefaultSpecifier\":\n case \"ImportNamespaceSpecifier\":\n case \"ImportSpecifier\":\n return false;\n\n // no: import \"foo\" assert { NODE: \"json\" }\n case \"ImportAttribute\":\n return false;\n\n // no:

\n case \"JSXAttribute\":\n return false;\n\n // no: [NODE] = [];\n // no: ({ NODE }) = [];\n case \"ObjectPattern\":\n case \"ArrayPattern\":\n return false;\n\n // no: new.NODE\n // no: NODE.target\n case \"MetaProperty\":\n return false;\n\n // yes: type X = { someProperty: NODE }\n // no: type X = { NODE: OtherType }\n case \"ObjectTypeProperty\":\n return parent.key !== node;\n\n // yes: enum X { Foo = NODE }\n // no: enum X { NODE }\n case \"TSEnumMember\":\n return parent.id !== node;\n\n // yes: { [NODE]: value }\n // no: { NODE: value }\n case \"TSPropertySignature\":\n if (parent.key === node) {\n return !!parent.computed;\n }\n\n return true;\n }\n\n return true;\n}\n","import {\n isFunction,\n isCatchClause,\n isBlockStatement,\n isScopable,\n isPattern,\n} from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a scope.\n */\nexport default function isScope(node: t.Node, parent: t.Node): boolean {\n // If a BlockStatement is an immediate descendent of a Function/CatchClause, it must be in the body.\n // Hence we skipped the parentKey === \"params\" check\n if (isBlockStatement(node) && (isFunction(parent) || isCatchClause(parent))) {\n return false;\n }\n\n // If a Pattern is an immediate descendent of a Function/CatchClause, it must be in the params.\n // Hence we skipped the parentKey === \"params\" check\n if (isPattern(node) && (isFunction(parent) || isCatchClause(parent))) {\n return true;\n }\n\n return isScopable(node);\n}\n","import { isIdentifier, isImportDefaultSpecifier } from \"./generated/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `specifier` is a `default` import or export.\n */\nexport default function isSpecifierDefault(\n specifier: t.ModuleSpecifier,\n): boolean {\n return (\n isImportDefaultSpecifier(specifier) ||\n // @ts-expect-error todo(flow->ts): stricter type for specifier\n isIdentifier(specifier.imported || specifier.exported, {\n name: \"default\",\n })\n );\n}\n","import isValidIdentifier from \"./isValidIdentifier.ts\";\n\nconst RESERVED_WORDS_ES3_ONLY: Set = new Set([\n \"abstract\",\n \"boolean\",\n \"byte\",\n \"char\",\n \"double\",\n \"enum\",\n \"final\",\n \"float\",\n \"goto\",\n \"implements\",\n \"int\",\n \"interface\",\n \"long\",\n \"native\",\n \"package\",\n \"private\",\n \"protected\",\n \"public\",\n \"short\",\n \"static\",\n \"synchronized\",\n \"throws\",\n \"transient\",\n \"volatile\",\n]);\n\n/**\n * Check if the input `name` is a valid identifier name according to the ES3 specification.\n *\n * Additional ES3 reserved words are\n */\nexport default function isValidES3Identifier(name: string): boolean {\n return isValidIdentifier(name) && !RESERVED_WORDS_ES3_ONLY.has(name);\n}\n","import { isVariableDeclaration } from \"./generated/index.ts\";\nimport { BLOCK_SCOPED_SYMBOL } from \"../constants/index.ts\";\nimport type * as t from \"../index.ts\";\n\n/**\n * Check if the input `node` is a variable declaration.\n */\nexport default function isVar(node: t.Node): boolean {\n return (\n isVariableDeclaration(node, { kind: \"var\" }) &&\n !(\n // @ts-expect-error document private properties\n node[BLOCK_SCOPED_SYMBOL]\n )\n );\n}\n","import isReactComponent from \"./validators/react/isReactComponent.ts\";\nimport isCompatTag from \"./validators/react/isCompatTag.ts\";\nimport buildChildren from \"./builders/react/buildChildren.ts\";\n\n// asserts\nexport { default as assertNode } from \"./asserts/assertNode.ts\";\nexport * from \"./asserts/generated/index.ts\";\n\n// builders\nexport { default as createTypeAnnotationBasedOnTypeof } from \"./builders/flow/createTypeAnnotationBasedOnTypeof.ts\";\n/** @deprecated use createFlowUnionType instead */\nexport { default as createUnionTypeAnnotation } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createFlowUnionType } from \"./builders/flow/createFlowUnionType.ts\";\nexport { default as createTSUnionType } from \"./builders/typescript/createTSUnionType.ts\";\nexport * from \"./builders/generated/index.ts\";\nexport * from \"./builders/generated/uppercase.js\";\nexport * from \"./builders/productions.ts\";\n\n// clone\nexport { default as cloneNode } from \"./clone/cloneNode.ts\";\nexport { default as clone } from \"./clone/clone.ts\";\nexport { default as cloneDeep } from \"./clone/cloneDeep.ts\";\nexport { default as cloneDeepWithoutLoc } from \"./clone/cloneDeepWithoutLoc.ts\";\nexport { default as cloneWithoutLoc } from \"./clone/cloneWithoutLoc.ts\";\n\n// comments\nexport { default as addComment } from \"./comments/addComment.ts\";\nexport { default as addComments } from \"./comments/addComments.ts\";\nexport { default as inheritInnerComments } from \"./comments/inheritInnerComments.ts\";\nexport { default as inheritLeadingComments } from \"./comments/inheritLeadingComments.ts\";\nexport { default as inheritsComments } from \"./comments/inheritsComments.ts\";\nexport { default as inheritTrailingComments } from \"./comments/inheritTrailingComments.ts\";\nexport { default as removeComments } from \"./comments/removeComments.ts\";\n\n// constants\nexport * from \"./constants/generated/index.ts\";\nexport * from \"./constants/index.ts\";\n\n// converters\nexport { default as ensureBlock } from \"./converters/ensureBlock.ts\";\nexport { default as toBindingIdentifierName } from \"./converters/toBindingIdentifierName.ts\";\nexport { default as toBlock } from \"./converters/toBlock.ts\";\nexport { default as toComputedKey } from \"./converters/toComputedKey.ts\";\nexport { default as toExpression } from \"./converters/toExpression.ts\";\nexport { default as toIdentifier } from \"./converters/toIdentifier.ts\";\nexport { default as toKeyAlias } from \"./converters/toKeyAlias.ts\";\nexport { default as toStatement } from \"./converters/toStatement.ts\";\nexport { default as valueToNode } from \"./converters/valueToNode.ts\";\n\n// definitions\nexport * from \"./definitions/index.ts\";\n\n// modifications\nexport { default as appendToMemberExpression } from \"./modifications/appendToMemberExpression.ts\";\nexport { default as inherits } from \"./modifications/inherits.ts\";\nexport { default as prependToMemberExpression } from \"./modifications/prependToMemberExpression.ts\";\nexport {\n default as removeProperties,\n type Options as RemovePropertiesOptions,\n} from \"./modifications/removeProperties.ts\";\nexport { default as removePropertiesDeep } from \"./modifications/removePropertiesDeep.ts\";\nexport { default as removeTypeDuplicates } from \"./modifications/flow/removeTypeDuplicates.ts\";\n\n// retrievers\nexport { default as getBindingIdentifiers } from \"./retrievers/getBindingIdentifiers.ts\";\nexport { default as getOuterBindingIdentifiers } from \"./retrievers/getOuterBindingIdentifiers.ts\";\n\n// traverse\nexport { default as traverse } from \"./traverse/traverse.ts\";\nexport * from \"./traverse/traverse.ts\";\nexport { default as traverseFast } from \"./traverse/traverseFast.ts\";\n\n// utils\nexport { default as shallowEqual } from \"./utils/shallowEqual.ts\";\n\n// validators\nexport { default as is } from \"./validators/is.ts\";\nexport { default as isBinding } from \"./validators/isBinding.ts\";\nexport { default as isBlockScoped } from \"./validators/isBlockScoped.ts\";\nexport { default as isImmutable } from \"./validators/isImmutable.ts\";\nexport { default as isLet } from \"./validators/isLet.ts\";\nexport { default as isNode } from \"./validators/isNode.ts\";\nexport { default as isNodesEquivalent } from \"./validators/isNodesEquivalent.ts\";\nexport { default as isPlaceholderType } from \"./validators/isPlaceholderType.ts\";\nexport { default as isReferenced } from \"./validators/isReferenced.ts\";\nexport { default as isScope } from \"./validators/isScope.ts\";\nexport { default as isSpecifierDefault } from \"./validators/isSpecifierDefault.ts\";\nexport { default as isType } from \"./validators/isType.ts\";\nexport { default as isValidES3Identifier } from \"./validators/isValidES3Identifier.ts\";\nexport { default as isValidIdentifier } from \"./validators/isValidIdentifier.ts\";\nexport { default as isVar } from \"./validators/isVar.ts\";\nexport { default as matchesPattern } from \"./validators/matchesPattern.ts\";\nexport { default as validate } from \"./validators/validate.ts\";\nexport { default as buildMatchMemberExpression } from \"./validators/buildMatchMemberExpression.ts\";\nexport * from \"./validators/generated/index.ts\";\n\n// react\nexport const react = {\n isReactComponent,\n isCompatTag,\n buildChildren,\n};\n\nexport type * from \"./ast-types/generated/index.ts\";\n\n// this is used by @babel/traverse to warn about deprecated visitors\nexport { default as __internal__deprecationWarning } from \"./utils/deprecationWarning.ts\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.toSequenceExpression =\n // eslint-disable-next-line no-restricted-globals\n require(\"./converters/toSequenceExpression.js\").default;\n}\n","import type NodePath from \"../index.ts\";\nimport {\n isBinding,\n isBlockScoped as nodeIsBlockScoped,\n isExportDeclaration,\n isExpression as nodeIsExpression,\n isFlow as nodeIsFlow,\n isForStatement,\n isForXStatement,\n isIdentifier,\n isImportDeclaration,\n isImportSpecifier,\n isJSXIdentifier,\n isJSXMemberExpression,\n isMemberExpression,\n isRestElement as nodeIsRestElement,\n isReferenced as nodeIsReferenced,\n isScope as nodeIsScope,\n isStatement as nodeIsStatement,\n isVar as nodeIsVar,\n isVariableDeclaration,\n react,\n isForOfStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst { isCompatTag } = react;\nimport type { VirtualTypeAliases } from \"./virtual-types.ts\";\n\ntype Opts = Partial<{\n [Prop in keyof Obj]: Obj[Prop] extends t.Node\n ? t.Node\n : Obj[Prop] extends t.Node[]\n ? t.Node[]\n : Obj[Prop];\n}>;\n\nexport interface VirtualTypeNodePathValidators {\n isBindingIdentifier(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isBlockScoped(opts?: Opts): boolean;\n /**\n * @deprecated\n */\n isExistentialTypeParam(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isExpression(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isFlow(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isForAwaitStatement(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isGenerated(opts?: VirtualTypeAliases[\"Generated\"]): boolean;\n /**\n * @deprecated\n */\n isNumericLiteralTypeAnnotation(\n opts?: VirtualTypeAliases[\"NumericLiteralTypeAnnotation\"],\n ): void;\n isPure(opts?: VirtualTypeAliases[\"Pure\"]): boolean;\n isReferenced(opts?: VirtualTypeAliases[\"Referenced\"]): boolean;\n isReferencedIdentifier(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isReferencedMemberExpression(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isRestProperty(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isScope(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isSpreadProperty(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isStatement(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n isUser(opts?: VirtualTypeAliases[\"User\"]): boolean;\n isVar(\n this: NodePath,\n opts?: Opts,\n ): this is NodePath;\n}\n\nexport function isReferencedIdentifier(this: NodePath, opts?: any): boolean {\n const { node, parent } = this;\n if (!isIdentifier(node, opts) && !isJSXMemberExpression(parent, opts)) {\n if (isJSXIdentifier(node, opts)) {\n if (isCompatTag(node.name)) return false;\n } else {\n // not a JSXIdentifier or an Identifier\n return false;\n }\n }\n\n // check if node is referenced\n return nodeIsReferenced(node, parent, this.parentPath.parent);\n}\n\nexport function isReferencedMemberExpression(this: NodePath): boolean {\n const { node, parent } = this;\n return isMemberExpression(node) && nodeIsReferenced(node, parent);\n}\n\nexport function isBindingIdentifier(this: NodePath): boolean {\n const { node, parent } = this;\n const grandparent = this.parentPath.parent;\n return isIdentifier(node) && isBinding(node, parent, grandparent);\n}\n\nexport function isStatement(this: NodePath): boolean {\n const { node, parent } = this;\n if (nodeIsStatement(node)) {\n if (isVariableDeclaration(node)) {\n if (isForXStatement(parent, { left: node })) return false;\n if (isForStatement(parent, { init: node })) return false;\n }\n\n return true;\n } else {\n return false;\n }\n}\n\nexport function isExpression(this: NodePath): boolean {\n if (this.isIdentifier()) {\n return this.isReferencedIdentifier();\n } else {\n return nodeIsExpression(this.node);\n }\n}\n\nexport function isScope(this: NodePath): boolean {\n return nodeIsScope(this.node, this.parent);\n}\n\nexport function isReferenced(this: NodePath): boolean {\n return nodeIsReferenced(this.node, this.parent);\n}\n\nexport function isBlockScoped(this: NodePath): boolean {\n return nodeIsBlockScoped(this.node);\n}\n\nexport function isVar(this: NodePath): boolean {\n return nodeIsVar(this.node);\n}\n\nexport function isUser(this: NodePath): boolean {\n return this.node && !!this.node.loc;\n}\n\nexport function isGenerated(this: NodePath): boolean {\n return !this.isUser();\n}\n\nexport function isPure(this: NodePath, constantsOnly?: boolean): boolean {\n return this.scope.isPure(this.node, constantsOnly);\n}\n\nexport function isFlow(this: NodePath): boolean {\n const { node } = this;\n if (nodeIsFlow(node)) {\n return true;\n } else if (isImportDeclaration(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else if (isExportDeclaration(node)) {\n return node.exportKind === \"type\";\n } else if (isImportSpecifier(node)) {\n return node.importKind === \"type\" || node.importKind === \"typeof\";\n } else {\n return false;\n }\n}\n\n// TODO: 7.0 Backwards Compat\nexport function isRestProperty(this: NodePath): boolean {\n return nodeIsRestElement(this.node) && this.parentPath?.isObjectPattern();\n}\n\nexport function isSpreadProperty(this: NodePath): boolean {\n return nodeIsRestElement(this.node) && this.parentPath?.isObjectExpression();\n}\n\nexport function isForAwaitStatement(this: NodePath): boolean {\n return isForOfStatement(this.node, { await: true });\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.isExistentialTypeParam = function isExistentialTypeParam(\n this: NodePath,\n ): void {\n throw new Error(\n \"`path.isExistentialTypeParam` has been renamed to `path.isExistsTypeAnnotation()` in Babel 7.\",\n );\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.isNumericLiteralTypeAnnotation =\n function isNumericLiteralTypeAnnotation(this: NodePath): void {\n throw new Error(\n \"`path.isNumericLiteralTypeAnnotation()` has been renamed to `path.isNumberLiteralTypeAnnotation()` in Babel 7.\",\n );\n };\n}\n","import * as virtualTypes from \"./path/lib/virtual-types.ts\";\nimport * as virtualTypesValidators from \"./path/lib/virtual-types-validator.ts\";\nimport type { Node } from \"@babel/types\";\nimport {\n DEPRECATED_KEYS,\n DEPRECATED_ALIASES,\n FLIPPED_ALIAS_KEYS,\n TYPES,\n __internal__deprecationWarning as deprecationWarning,\n} from \"@babel/types\";\nimport type { ExplodedVisitor, NodePath, Visitor } from \"./index.ts\";\nimport type { ExplVisitNode, VisitNodeFunction, VisitPhase } from \"./types.ts\";\n\ntype VIRTUAL_TYPES = keyof typeof virtualTypes;\nfunction isVirtualType(type: string): type is VIRTUAL_TYPES {\n return type in virtualTypes;\n}\nexport type VisitWrapper = (\n stateName: string | undefined,\n visitorType: VisitPhase,\n callback: VisitNodeFunction,\n) => VisitNodeFunction;\n\nexport function isExplodedVisitor(\n visitor: Visitor,\n): visitor is ExplodedVisitor {\n // @ts-expect-error _exploded is not defined on non-exploded Visitor\n return visitor?._exploded;\n}\n\n/**\n * explode() will take a visitor object with all of the various shorthands\n * that we support, and validates & normalizes it into a common format, ready\n * to be used in traversal\n *\n * The various shorthands are:\n * * `Identifier() { ... }` -> `Identifier: { enter() { ... } }`\n * * `\"Identifier|NumericLiteral\": { ... }` -> `Identifier: { ... }, NumericLiteral: { ... }`\n * * Aliases in `@babel/types`: e.g. `Property: { ... }` -> `ObjectProperty: { ... }, ClassProperty: { ... }`\n * Other normalizations are:\n * * Visitors of virtual types are wrapped, so that they are only visited when\n * their dynamic check passes\n * * `enter` and `exit` functions are wrapped in arrays, to ease merging of\n * visitors\n */\nexport function explode(visitor: Visitor): ExplodedVisitor {\n if (isExplodedVisitor(visitor)) return visitor;\n // @ts-expect-error `visitor` will be cast to ExplodedVisitor by this function\n visitor._exploded = true;\n\n // normalise pipes\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n const parts: Array = nodeType.split(\"|\");\n if (parts.length === 1) continue;\n\n const fns = visitor[nodeType];\n delete visitor[nodeType];\n\n for (const part of parts) {\n // @ts-expect-error part will be verified by `verify` later\n visitor[part] = fns;\n }\n }\n\n // verify data structure\n verify(visitor);\n\n // make sure there's no __esModule type since this is because we're using loose mode\n // and it sets __esModule to be enumerable on all modules :(\n // @ts-expect-error ESModule interop\n delete visitor.__esModule;\n\n // ensure visitors are objects\n ensureEntranceObjects(visitor);\n\n // ensure enter/exit callbacks are arrays\n ensureCallbackArrays(visitor);\n\n // add type wrappers\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (!isVirtualType(nodeType)) continue;\n\n // wrap all the functions\n const fns = visitor[nodeType];\n for (const type of Object.keys(fns)) {\n // @ts-expect-error normalised as VisitNodeObject\n fns[type] = wrapCheck(nodeType, fns[type]);\n }\n\n // clear it from the visitor\n delete visitor[nodeType];\n\n const types = virtualTypes[nodeType];\n if (types !== null) {\n for (const type of types) {\n // merge the visitor if necessary or just put it back in\n if (visitor[type]) {\n mergePair(visitor[type], fns);\n } else {\n // @ts-expect-error Expression produces too complex union\n visitor[type] = fns;\n }\n }\n } else {\n mergePair(visitor, fns);\n }\n }\n\n // add aliases\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n let aliases = FLIPPED_ALIAS_KEYS[nodeType];\n\n if (nodeType in DEPRECATED_KEYS) {\n const deprecatedKey = DEPRECATED_KEYS[nodeType];\n deprecationWarning(nodeType, deprecatedKey, \"Visitor \");\n aliases = [deprecatedKey];\n } else if (nodeType in DEPRECATED_ALIASES) {\n const deprecatedAlias =\n DEPRECATED_ALIASES[nodeType as keyof typeof DEPRECATED_ALIASES];\n deprecationWarning(nodeType, deprecatedAlias, \"Visitor \");\n aliases = FLIPPED_ALIAS_KEYS[deprecatedAlias];\n }\n\n if (!aliases) continue;\n\n const fns = visitor[nodeType];\n // clear it from the visitor\n delete visitor[nodeType];\n\n for (const alias of aliases) {\n const existing = visitor[alias];\n if (existing) {\n mergePair(existing, fns);\n } else {\n // @ts-expect-error Expression produces a union type that is too complex to represent.\n visitor[alias] = { ...fns };\n }\n }\n }\n\n for (const nodeType of Object.keys(visitor)) {\n if (shouldIgnoreKey(nodeType)) continue;\n\n ensureCallbackArrays(\n // @ts-expect-error nodeType must present in visitor after previous validations\n visitor[nodeType],\n );\n }\n\n // @ts-expect-error explosion has been performed\n return visitor as ExplodedVisitor;\n}\n\nexport function verify(visitor: Visitor) {\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n if (visitor._verified) return;\n\n if (typeof visitor === \"function\") {\n throw new Error(\n \"You passed `traverse()` a function when it expected a visitor object, \" +\n \"are you sure you didn't mean `{ enter: Function }`?\",\n );\n }\n\n for (const nodeType of Object.keys(visitor) as (keyof Visitor)[]) {\n if (nodeType === \"enter\" || nodeType === \"exit\") {\n validateVisitorMethods(nodeType, visitor[nodeType]);\n }\n\n if (shouldIgnoreKey(nodeType)) continue;\n\n if (TYPES.indexOf(nodeType) < 0) {\n throw new Error(\n `You gave us a visitor for the node type ${nodeType} but it's not a valid type`,\n );\n }\n\n const visitors = visitor[nodeType];\n if (typeof visitors === \"object\") {\n for (const visitorKey of Object.keys(visitors)) {\n if (visitorKey === \"enter\" || visitorKey === \"exit\") {\n // verify that it just contains functions\n validateVisitorMethods(\n `${nodeType}.${visitorKey}`,\n visitors[visitorKey],\n );\n } else {\n throw new Error(\n \"You passed `traverse()` a visitor object with the property \" +\n `${nodeType} that has the invalid property ${visitorKey}`,\n );\n }\n }\n }\n }\n\n // @ts-expect-error _verified is not defined on non-verified Visitor.\n // TODO: unify _verified and _exploded.\n visitor._verified = true;\n}\n\nfunction validateVisitorMethods(\n path: string,\n val: any,\n): asserts val is Function | Function[] {\n const fns = [].concat(val);\n for (const fn of fns) {\n if (typeof fn !== \"function\") {\n throw new TypeError(\n `Non-function found defined in ${path} with type ${typeof fn}`,\n );\n }\n }\n}\n\nexport function merge(\n visitors: Visitor[],\n): ExplodedVisitor;\nexport function merge(\n visitors: Visitor[],\n states?: any[],\n wrapper?: Function | null,\n): ExplodedVisitor;\nexport function merge(\n visitors: any[],\n states: any[] = [],\n wrapper?: VisitWrapper | null,\n): ExplodedVisitor {\n // @ts-expect-error don't bother with internal flags so it can work with earlier @babel/core validations\n const mergedVisitor: ExplodedVisitor = {};\n\n for (let i = 0; i < visitors.length; i++) {\n const visitor = explode(visitors[i]);\n const state = states[i];\n\n let topVisitor: ExplVisitNode = visitor;\n if (state || wrapper) {\n topVisitor = wrapWithStateOrWrapper(topVisitor, state, wrapper);\n }\n mergePair(mergedVisitor, topVisitor);\n\n for (const key of Object.keys(visitor) as (keyof ExplodedVisitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n let typeVisitor = visitor[key];\n\n // if we have state or wrapper then overload the callbacks to take it\n if (state || wrapper) {\n typeVisitor = wrapWithStateOrWrapper(typeVisitor, state, wrapper);\n }\n\n const nodeVisitor = (mergedVisitor[key] ||= {});\n mergePair(nodeVisitor, typeVisitor);\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n return {\n ...mergedVisitor,\n _exploded: true,\n _verified: true,\n };\n }\n\n return mergedVisitor;\n}\n\nfunction wrapWithStateOrWrapper(\n oldVisitor: ExplVisitNode,\n state: State | null,\n wrapper?: VisitWrapper | null,\n): ExplVisitNode {\n const newVisitor: ExplVisitNode = {};\n\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n let fns = oldVisitor[phase];\n\n // not an enter/exit array of callbacks\n if (!Array.isArray(fns)) continue;\n\n fns = fns.map(function (fn) {\n let newFn = fn;\n\n if (state) {\n newFn = function (path: NodePath) {\n fn.call(state, path, state);\n };\n }\n\n if (wrapper) {\n // @ts-expect-error Fixme: actually PluginPass.key (aka pluginAlias)?\n newFn = wrapper(state?.key, phase, newFn);\n }\n\n // Override toString in case this function is printed, we want to print the wrapped function, same as we do in `wrapCheck`\n if (newFn !== fn) {\n newFn.toString = () => fn.toString();\n }\n\n return newFn;\n });\n\n newVisitor[phase] = fns;\n }\n\n return newVisitor;\n}\n\nfunction ensureEntranceObjects(obj: Visitor) {\n for (const key of Object.keys(obj) as (keyof Visitor)[]) {\n if (shouldIgnoreKey(key)) continue;\n\n const fns = obj[key];\n if (typeof fns === \"function\") {\n // @ts-expect-error: Expression produces a union type that is too complex to represent.\n obj[key] = { enter: fns };\n }\n }\n}\n\nfunction ensureCallbackArrays(obj: Visitor) {\n if (obj.enter && !Array.isArray(obj.enter)) obj.enter = [obj.enter];\n if (obj.exit && !Array.isArray(obj.exit)) obj.exit = [obj.exit];\n}\n\nfunction wrapCheck(nodeType: VIRTUAL_TYPES, fn: Function) {\n const fnKey = `is${nodeType}`;\n // @ts-expect-error we know virtualTypesValidators will contain `fnKey`, but TS doesn't\n const validator = virtualTypesValidators[fnKey];\n const newFn = function (this: unknown, path: NodePath) {\n if (validator.call(path)) {\n return fn.apply(this, arguments);\n }\n };\n newFn.toString = () => fn.toString();\n return newFn;\n}\n\nfunction shouldIgnoreKey(\n key: string,\n): key is\n | `_${string}`\n | \"enter\"\n | \"exit\"\n | \"shouldSkip\"\n | \"denylist\"\n | \"noScope\"\n | \"skipKeys\"\n | \"blacklist\" {\n // internal/hidden key\n if (key[0] === \"_\") return true;\n\n // ignore function keys\n if (key === \"enter\" || key === \"exit\" || key === \"shouldSkip\") return true;\n\n // ignore other options\n if (key === \"denylist\" || key === \"noScope\" || key === \"skipKeys\") {\n return true;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"blacklist\") {\n return true;\n }\n }\n\n return false;\n}\n\n/*\nfunction mergePair(\n dest: ExplVisitNode,\n src: ExplVisitNode,\n);\n*/\nfunction mergePair(dest: any, src: any) {\n for (const phase of [\"enter\", \"exit\"] as VisitPhase[]) {\n if (!src[phase]) continue;\n dest[phase] = [].concat(dest[phase] || [], src[phase]);\n }\n}\n","import type { Node } from \"@babel/types\";\nimport type NodePath from \"./path/index.ts\";\nimport type Scope from \"./scope/index.ts\";\nimport type { HubInterface } from \"./hub.ts\";\n\nlet pathsCache: WeakMap<\n HubInterface | typeof nullHub,\n WeakMap>\n> = new WeakMap();\nexport { pathsCache as path };\nexport let scope: WeakMap = new WeakMap();\n\nexport function clear() {\n clearPath();\n clearScope();\n}\n\nexport function clearPath() {\n pathsCache = new WeakMap();\n}\n\nexport function clearScope() {\n scope = new WeakMap();\n}\n\n// NodePath#hub can be null, but it's not a valid weakmap key because it\n// cannot be collected by GC. Use an object, knowing tht it will not be\n// collected anyway. It's not a memory leak because pathsCache.get(nullHub)\n// is itself a weakmap, so its entries can still be collected.\nconst nullHub = Object.freeze({} as const);\n\nexport function getCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n // Only use Hub as part of the cache key in Babel 8, because it is a\n // breaking change (it causes incompatibilities with older `@babel/core`\n // versions: see https://github.com/babel/babel/pull/15759)\n hub = null;\n }\n return pathsCache.get(hub ?? nullHub)?.get(parent);\n}\n\nexport function getOrCreateCachedPaths(hub: HubInterface | null, parent: Node) {\n if (!process.env.BABEL_8_BREAKING) {\n hub = null;\n }\n\n let parents = pathsCache.get(hub ?? nullHub);\n if (!parents) pathsCache.set(hub ?? nullHub, (parents = new WeakMap()));\n\n let paths = parents.get(parent);\n if (!paths) parents.set(parent, (paths = new Map()));\n\n return paths;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar w = d * 7;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isFinite(val)) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^(-?(?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'weeks':\n case 'week':\n case 'w':\n return n * w;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (msAbs >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (msAbs >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (msAbs >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n var msAbs = Math.abs(ms);\n if (msAbs >= d) {\n return plural(ms, msAbs, d, 'day');\n }\n if (msAbs >= h) {\n return plural(ms, msAbs, h, 'hour');\n }\n if (msAbs >= m) {\n return plural(ms, msAbs, m, 'minute');\n }\n if (msAbs >= s) {\n return plural(ms, msAbs, s, 'second');\n }\n return ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, msAbs, n, name) {\n var isPlural = msAbs >= n * 1.5;\n return Math.round(ms / n) + ' ' + name + (isPlural ? 's' : '');\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n */\n\nfunction setup(env) {\n\tcreateDebug.debug = createDebug;\n\tcreateDebug.default = createDebug;\n\tcreateDebug.coerce = coerce;\n\tcreateDebug.disable = disable;\n\tcreateDebug.enable = enable;\n\tcreateDebug.enabled = enabled;\n\tcreateDebug.humanize = require('ms');\n\tcreateDebug.destroy = destroy;\n\n\tObject.keys(env).forEach(key => {\n\t\tcreateDebug[key] = env[key];\n\t});\n\n\t/**\n\t* The currently active debug mode names, and names to skip.\n\t*/\n\n\tcreateDebug.names = [];\n\tcreateDebug.skips = [];\n\n\t/**\n\t* Map of special \"%n\" handling functions, for the debug \"format\" argument.\n\t*\n\t* Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n\t*/\n\tcreateDebug.formatters = {};\n\n\t/**\n\t* Selects a color for a debug namespace\n\t* @param {String} namespace The namespace string for the debug instance to be colored\n\t* @return {Number|String} An ANSI color code for the given namespace\n\t* @api private\n\t*/\n\tfunction selectColor(namespace) {\n\t\tlet hash = 0;\n\n\t\tfor (let i = 0; i < namespace.length; i++) {\n\t\t\thash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n\t\t\thash |= 0; // Convert to 32bit integer\n\t\t}\n\n\t\treturn createDebug.colors[Math.abs(hash) % createDebug.colors.length];\n\t}\n\tcreateDebug.selectColor = selectColor;\n\n\t/**\n\t* Create a debugger with the given `namespace`.\n\t*\n\t* @param {String} namespace\n\t* @return {Function}\n\t* @api public\n\t*/\n\tfunction createDebug(namespace) {\n\t\tlet prevTime;\n\t\tlet enableOverride = null;\n\t\tlet namespacesCache;\n\t\tlet enabledCache;\n\n\t\tfunction debug(...args) {\n\t\t\t// Disabled?\n\t\t\tif (!debug.enabled) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst self = debug;\n\n\t\t\t// Set `diff` timestamp\n\t\t\tconst curr = Number(new Date());\n\t\t\tconst ms = curr - (prevTime || curr);\n\t\t\tself.diff = ms;\n\t\t\tself.prev = prevTime;\n\t\t\tself.curr = curr;\n\t\t\tprevTime = curr;\n\n\t\t\targs[0] = createDebug.coerce(args[0]);\n\n\t\t\tif (typeof args[0] !== 'string') {\n\t\t\t\t// Anything else let's inspect with %O\n\t\t\t\targs.unshift('%O');\n\t\t\t}\n\n\t\t\t// Apply any `formatters` transformations\n\t\t\tlet index = 0;\n\t\t\targs[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => {\n\t\t\t\t// If we encounter an escaped % then don't increase the array index\n\t\t\t\tif (match === '%%') {\n\t\t\t\t\treturn '%';\n\t\t\t\t}\n\t\t\t\tindex++;\n\t\t\t\tconst formatter = createDebug.formatters[format];\n\t\t\t\tif (typeof formatter === 'function') {\n\t\t\t\t\tconst val = args[index];\n\t\t\t\t\tmatch = formatter.call(self, val);\n\n\t\t\t\t\t// Now we need to remove `args[index]` since it's inlined in the `format`\n\t\t\t\t\targs.splice(index, 1);\n\t\t\t\t\tindex--;\n\t\t\t\t}\n\t\t\t\treturn match;\n\t\t\t});\n\n\t\t\t// Apply env-specific formatting (colors, etc.)\n\t\t\tcreateDebug.formatArgs.call(self, args);\n\n\t\t\tconst logFn = self.log || createDebug.log;\n\t\t\tlogFn.apply(self, args);\n\t\t}\n\n\t\tdebug.namespace = namespace;\n\t\tdebug.useColors = createDebug.useColors();\n\t\tdebug.color = createDebug.selectColor(namespace);\n\t\tdebug.extend = extend;\n\t\tdebug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release.\n\n\t\tObject.defineProperty(debug, 'enabled', {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: false,\n\t\t\tget: () => {\n\t\t\t\tif (enableOverride !== null) {\n\t\t\t\t\treturn enableOverride;\n\t\t\t\t}\n\t\t\t\tif (namespacesCache !== createDebug.namespaces) {\n\t\t\t\t\tnamespacesCache = createDebug.namespaces;\n\t\t\t\t\tenabledCache = createDebug.enabled(namespace);\n\t\t\t\t}\n\n\t\t\t\treturn enabledCache;\n\t\t\t},\n\t\t\tset: v => {\n\t\t\t\tenableOverride = v;\n\t\t\t}\n\t\t});\n\n\t\t// Env-specific initialization logic for debug instances\n\t\tif (typeof createDebug.init === 'function') {\n\t\t\tcreateDebug.init(debug);\n\t\t}\n\n\t\treturn debug;\n\t}\n\n\tfunction extend(namespace, delimiter) {\n\t\tconst newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace);\n\t\tnewDebug.log = this.log;\n\t\treturn newDebug;\n\t}\n\n\t/**\n\t* Enables a debug mode by namespaces. This can include modes\n\t* separated by a colon and wildcards.\n\t*\n\t* @param {String} namespaces\n\t* @api public\n\t*/\n\tfunction enable(namespaces) {\n\t\tcreateDebug.save(namespaces);\n\t\tcreateDebug.namespaces = namespaces;\n\n\t\tcreateDebug.names = [];\n\t\tcreateDebug.skips = [];\n\n\t\tlet i;\n\t\tconst split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n\t\tconst len = split.length;\n\n\t\tfor (i = 0; i < len; i++) {\n\t\t\tif (!split[i]) {\n\t\t\t\t// ignore empty strings\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tnamespaces = split[i].replace(/\\*/g, '.*?');\n\n\t\t\tif (namespaces[0] === '-') {\n\t\t\t\tcreateDebug.skips.push(new RegExp('^' + namespaces.slice(1) + '$'));\n\t\t\t} else {\n\t\t\t\tcreateDebug.names.push(new RegExp('^' + namespaces + '$'));\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t* Disable debug output.\n\t*\n\t* @return {String} namespaces\n\t* @api public\n\t*/\n\tfunction disable() {\n\t\tconst namespaces = [\n\t\t\t...createDebug.names.map(toNamespace),\n\t\t\t...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace)\n\t\t].join(',');\n\t\tcreateDebug.enable('');\n\t\treturn namespaces;\n\t}\n\n\t/**\n\t* Returns true if the given mode name is enabled, false otherwise.\n\t*\n\t* @param {String} name\n\t* @return {Boolean}\n\t* @api public\n\t*/\n\tfunction enabled(name) {\n\t\tif (name[name.length - 1] === '*') {\n\t\t\treturn true;\n\t\t}\n\n\t\tlet i;\n\t\tlet len;\n\n\t\tfor (i = 0, len = createDebug.skips.length; i < len; i++) {\n\t\t\tif (createDebug.skips[i].test(name)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tfor (i = 0, len = createDebug.names.length; i < len; i++) {\n\t\t\tif (createDebug.names[i].test(name)) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t* Convert regexp to namespace\n\t*\n\t* @param {RegExp} regxep\n\t* @return {String} namespace\n\t* @api private\n\t*/\n\tfunction toNamespace(regexp) {\n\t\treturn regexp.toString()\n\t\t\t.substring(2, regexp.toString().length - 2)\n\t\t\t.replace(/\\.\\*\\?$/, '*');\n\t}\n\n\t/**\n\t* Coerce `val`.\n\t*\n\t* @param {Mixed} val\n\t* @return {Mixed}\n\t* @api private\n\t*/\n\tfunction coerce(val) {\n\t\tif (val instanceof Error) {\n\t\t\treturn val.stack || val.message;\n\t\t}\n\t\treturn val;\n\t}\n\n\t/**\n\t* XXX DO NOT USE. This is a temporary stub function.\n\t* XXX It WILL be removed in the next major release.\n\t*/\n\tfunction destroy() {\n\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t}\n\n\tcreateDebug.enable(createDebug.load());\n\n\treturn createDebug;\n}\n\nmodule.exports = setup;\n","/* eslint-env browser */\n\n/**\n * This is the web browser implementation of `debug()`.\n */\n\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = localstorage();\nexports.destroy = (() => {\n\tlet warned = false;\n\n\treturn () => {\n\t\tif (!warned) {\n\t\t\twarned = true;\n\t\t\tconsole.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.');\n\t\t}\n\t};\n})();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n\t'#0000CC',\n\t'#0000FF',\n\t'#0033CC',\n\t'#0033FF',\n\t'#0066CC',\n\t'#0066FF',\n\t'#0099CC',\n\t'#0099FF',\n\t'#00CC00',\n\t'#00CC33',\n\t'#00CC66',\n\t'#00CC99',\n\t'#00CCCC',\n\t'#00CCFF',\n\t'#3300CC',\n\t'#3300FF',\n\t'#3333CC',\n\t'#3333FF',\n\t'#3366CC',\n\t'#3366FF',\n\t'#3399CC',\n\t'#3399FF',\n\t'#33CC00',\n\t'#33CC33',\n\t'#33CC66',\n\t'#33CC99',\n\t'#33CCCC',\n\t'#33CCFF',\n\t'#6600CC',\n\t'#6600FF',\n\t'#6633CC',\n\t'#6633FF',\n\t'#66CC00',\n\t'#66CC33',\n\t'#9900CC',\n\t'#9900FF',\n\t'#9933CC',\n\t'#9933FF',\n\t'#99CC00',\n\t'#99CC33',\n\t'#CC0000',\n\t'#CC0033',\n\t'#CC0066',\n\t'#CC0099',\n\t'#CC00CC',\n\t'#CC00FF',\n\t'#CC3300',\n\t'#CC3333',\n\t'#CC3366',\n\t'#CC3399',\n\t'#CC33CC',\n\t'#CC33FF',\n\t'#CC6600',\n\t'#CC6633',\n\t'#CC9900',\n\t'#CC9933',\n\t'#CCCC00',\n\t'#CCCC33',\n\t'#FF0000',\n\t'#FF0033',\n\t'#FF0066',\n\t'#FF0099',\n\t'#FF00CC',\n\t'#FF00FF',\n\t'#FF3300',\n\t'#FF3333',\n\t'#FF3366',\n\t'#FF3399',\n\t'#FF33CC',\n\t'#FF33FF',\n\t'#FF6600',\n\t'#FF6633',\n\t'#FF9900',\n\t'#FF9933',\n\t'#FFCC00',\n\t'#FFCC33'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\n// eslint-disable-next-line complexity\nfunction useColors() {\n\t// NB: In an Electron preload script, document will be defined but not fully\n\t// initialized. Since we know we're in Chrome, we'll just detect this case\n\t// explicitly\n\tif (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) {\n\t\treturn true;\n\t}\n\n\t// Internet Explorer and Edge do not support colors.\n\tif (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\\/(\\d+)/)) {\n\t\treturn false;\n\t}\n\n\t// Is webkit? http://stackoverflow.com/a/16459606/376773\n\t// document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\treturn (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n\t\t// Is firebug? http://stackoverflow.com/a/398120/376773\n\t\t(typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n\t\t// Is firefox >= v31?\n\t\t// https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n\t\t// Double check webkit in userAgent just in case we are in a worker\n\t\t(typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n\targs[0] = (this.useColors ? '%c' : '') +\n\t\tthis.namespace +\n\t\t(this.useColors ? ' %c' : ' ') +\n\t\targs[0] +\n\t\t(this.useColors ? '%c ' : ' ') +\n\t\t'+' + module.exports.humanize(this.diff);\n\n\tif (!this.useColors) {\n\t\treturn;\n\t}\n\n\tconst c = 'color: ' + this.color;\n\targs.splice(1, 0, c, 'color: inherit');\n\n\t// The final \"%c\" is somewhat tricky, because there could be other\n\t// arguments passed either before or after the %c, so we need to\n\t// figure out the correct index to insert the CSS into\n\tlet index = 0;\n\tlet lastC = 0;\n\targs[0].replace(/%[a-zA-Z%]/g, match => {\n\t\tif (match === '%%') {\n\t\t\treturn;\n\t\t}\n\t\tindex++;\n\t\tif (match === '%c') {\n\t\t\t// We only are interested in the *last* %c\n\t\t\t// (the user may have provided their own)\n\t\t\tlastC = index;\n\t\t}\n\t});\n\n\targs.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.debug()` when available.\n * No-op when `console.debug` is not a \"function\".\n * If `console.debug` is not available, falls back\n * to `console.log`.\n *\n * @api public\n */\nexports.log = console.debug || console.log || (() => {});\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\nfunction save(namespaces) {\n\ttry {\n\t\tif (namespaces) {\n\t\t\texports.storage.setItem('debug', namespaces);\n\t\t} else {\n\t\t\texports.storage.removeItem('debug');\n\t\t}\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\nfunction load() {\n\tlet r;\n\ttry {\n\t\tr = exports.storage.getItem('debug');\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n\n\t// If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\tif (!r && typeof process !== 'undefined' && 'env' in process) {\n\t\tr = process.env.DEBUG;\n\t}\n\n\treturn r;\n}\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n\ttry {\n\t\t// TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context\n\t\t// The Browser also has localStorage in the global context.\n\t\treturn localStorage;\n\t} catch (error) {\n\t\t// Swallow\n\t\t// XXX (@Qix-) should we be logging these?\n\t}\n}\n\nmodule.exports = require('./common')(exports);\n\nconst {formatters} = module.exports;\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nformatters.j = function (v) {\n\ttry {\n\t\treturn JSON.stringify(v);\n\t} catch (error) {\n\t\treturn '[UnexpectedJSONParseError]: ' + error.message;\n\t}\n};\n","import {\n cloneNode,\n exportNamedDeclaration,\n exportSpecifier,\n identifier,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default function splitExportDeclaration(\n exportDeclaration: NodePath<\n t.ExportDefaultDeclaration | t.ExportNamedDeclaration\n >,\n) {\n if (\n !exportDeclaration.isExportDeclaration() ||\n exportDeclaration.isExportAllDeclaration()\n ) {\n throw new Error(\"Only default and named export declarations can be split.\");\n }\n\n // build specifiers that point back to this export declaration\n\n if (exportDeclaration.isExportDefaultDeclaration()) {\n const declaration = exportDeclaration.get(\"declaration\");\n const standaloneDeclaration =\n declaration.isFunctionDeclaration() || declaration.isClassDeclaration();\n const exportExpr =\n declaration.isFunctionExpression() || declaration.isClassExpression();\n\n const scope = declaration.isScope()\n ? declaration.scope.parent\n : declaration.scope;\n\n // @ts-expect-error id is not defined in expressions other than function/class\n let id = declaration.node.id;\n let needBindingRegistration = false;\n\n if (!id) {\n needBindingRegistration = true;\n\n id = scope.generateUidIdentifier(\"default\");\n\n if (standaloneDeclaration || exportExpr) {\n declaration.node.id = cloneNode(id);\n }\n } else if (exportExpr && scope.hasBinding(id.name)) {\n needBindingRegistration = true;\n\n id = scope.generateUidIdentifier(id.name);\n }\n\n const updatedDeclaration = standaloneDeclaration\n ? declaration.node\n : variableDeclaration(\"var\", [\n variableDeclarator(\n cloneNode(id),\n // @ts-expect-error When `standaloneDeclaration` is false, declaration must not be a Function/ClassDeclaration\n declaration.node,\n ),\n ]);\n\n const updatedExportDeclaration = exportNamedDeclaration(null, [\n exportSpecifier(cloneNode(id), identifier(\"default\")),\n ]);\n\n exportDeclaration.insertAfter(updatedExportDeclaration);\n exportDeclaration.replaceWith(updatedDeclaration);\n\n if (needBindingRegistration) {\n scope.registerDeclaration(exportDeclaration);\n }\n\n return exportDeclaration;\n } else if (exportDeclaration.get(\"specifiers\").length > 0) {\n throw new Error(\"It doesn't make sense to split exported specifiers.\");\n }\n\n const declaration = exportDeclaration.get(\"declaration\");\n const bindingIdentifiers = declaration.getOuterBindingIdentifiers();\n\n const specifiers = Object.keys(bindingIdentifiers).map(name => {\n return exportSpecifier(identifier(name), identifier(name));\n });\n\n const aliasDeclar = exportNamedDeclaration(null, specifiers);\n\n exportDeclaration.insertAfter(aliasDeclar);\n exportDeclaration.replaceWith(declaration.node);\n return exportDeclaration;\n}\n","import type { NodePath, Visitor } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n exports.skipAllButComputedKey = function skipAllButComputedKey(\n path: NodePath,\n ) {\n path.skip();\n if (path.node.computed) {\n // requeue the computed key\n path.context.maybeQueue(path.get(\"key\"));\n }\n };\n}\n\nexport function requeueComputedKeyAndDecorators(\n path: NodePath,\n) {\n const { context, node } = path;\n // @ts-expect-error ClassPrivateProperty does not have computed\n if (node.computed) {\n // requeue the computed key\n context.maybeQueue(path.get(\"key\"));\n }\n if (node.decorators) {\n for (const decorator of path.get(\"decorators\")) {\n // requeue the decorators\n context.maybeQueue(decorator);\n }\n }\n}\n\n// environmentVisitor should be used when traversing the whole class and not for specific class elements/methods.\n// For perf reasons, the environmentVisitor might be traversed with `{ noScope: true }`, which means `path.scope` is undefined.\n// Avoid using `path.scope` here\nconst visitor: Visitor = {\n FunctionParent(path) {\n if (path.isArrowFunctionExpression()) {\n // arrows are not skipped because they inherit the context.\n return;\n } else {\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n }\n },\n Property(path) {\n if (path.isObjectProperty()) {\n return;\n }\n path.skip();\n requeueComputedKeyAndDecorators(path);\n },\n};\n\nexport default visitor;\n","import type Binding from \"../binding.ts\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport * as t from \"@babel/types\";\nimport type { NodePath, Visitor } from \"../../index.ts\";\nimport { requeueComputedKeyAndDecorators } from \"@babel/helper-environment-visitor\";\nimport { traverseNode } from \"../../traverse-node.ts\";\nimport { explode } from \"../../visitors.ts\";\nimport type { Identifier } from \"@babel/types\";\n\nconst renameVisitor: Visitor = {\n ReferencedIdentifier({ node }, state) {\n if (node.name === state.oldName) {\n node.name = state.newName;\n }\n },\n\n Scope(path, state) {\n if (\n !path.scope.bindingIdentifierEquals(\n state.oldName,\n state.binding.identifier,\n )\n ) {\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n }\n },\n\n ObjectProperty({ node, scope }, state) {\n const { name } = node.key as Identifier;\n if (\n node.shorthand &&\n // In destructuring the identifier is already renamed by the\n // AssignmentExpression|Declaration|VariableDeclarator visitor,\n // while in object literals it's renamed later by the\n // ReferencedIdentifier visitor.\n (name === state.oldName || name === state.newName) &&\n // Ignore shadowed bindings\n scope.getBindingIdentifier(name) === state.binding.identifier\n ) {\n node.shorthand = false;\n if (node.extra?.shorthand) node.extra.shorthand = false;\n }\n },\n\n \"AssignmentExpression|Declaration|VariableDeclarator\"(\n path: NodePath,\n state,\n ) {\n if (path.isVariableDeclaration()) return;\n const ids = path.getOuterBindingIdentifiers();\n\n for (const name in ids) {\n if (name === state.oldName) ids[name].name = state.newName;\n }\n },\n};\n\nexport default class Renamer {\n constructor(binding: Binding, oldName: string, newName: string) {\n this.newName = newName;\n this.oldName = oldName;\n this.binding = binding;\n }\n\n declare oldName: string;\n declare newName: string;\n declare binding: Binding;\n\n maybeConvertFromExportDeclaration(parentDeclar: NodePath) {\n const maybeExportDeclar = parentDeclar.parentPath;\n\n if (!maybeExportDeclar.isExportDeclaration()) {\n return;\n }\n\n if (maybeExportDeclar.isExportDefaultDeclaration()) {\n const { declaration } = maybeExportDeclar.node;\n if (t.isDeclaration(declaration) && !declaration.id) {\n return;\n }\n }\n\n if (maybeExportDeclar.isExportAllDeclaration()) {\n return;\n }\n\n splitExportDeclaration(\n maybeExportDeclar as NodePath<\n Exclude\n >,\n );\n }\n\n maybeConvertFromClassFunctionDeclaration(path: NodePath) {\n return path; // TODO\n\n // // retain the `name` of a class/function declaration\n\n // if (!path.isFunctionDeclaration() && !path.isClassDeclaration()) return;\n // if (this.binding.kind !== \"hoisted\") return;\n\n // path.node.id = identifier(this.oldName);\n // path.node._blockHoist = 3;\n\n // path.replaceWith(\n // variableDeclaration(\"let\", [\n // variableDeclarator(identifier(this.newName), toExpression(path.node)),\n // ]),\n // );\n }\n\n maybeConvertFromClassFunctionExpression(path: NodePath) {\n return path; // TODO\n\n // // retain the `name` of a class/function expression\n\n // if (!path.isFunctionExpression() && !path.isClassExpression()) return;\n // if (this.binding.kind !== \"local\") return;\n\n // path.node.id = identifier(this.oldName);\n\n // this.binding.scope.parent.push({\n // id: identifier(this.newName),\n // });\n\n // path.replaceWith(\n // assignmentExpression(\"=\", identifier(this.newName), path.node),\n // );\n }\n\n rename(/* Babel 7 - block?: t.Pattern | t.Scopable */) {\n const { binding, oldName, newName } = this;\n const { scope, path } = binding;\n\n const parentDeclar = path.find(\n path =>\n path.isDeclaration() ||\n path.isFunctionExpression() ||\n path.isClassExpression(),\n );\n if (parentDeclar) {\n const bindingIds = parentDeclar.getOuterBindingIdentifiers();\n if (bindingIds[oldName] === binding.identifier) {\n // When we are renaming an exported identifier, we need to ensure that\n // the exported binding keeps the old name.\n this.maybeConvertFromExportDeclaration(parentDeclar);\n }\n }\n\n const blockToTraverse = process.env.BABEL_8_BREAKING\n ? scope.block\n : (arguments[0] as t.Pattern | t.Scopable) || scope.block;\n traverseNode(\n blockToTraverse,\n explode(renameVisitor),\n scope,\n this,\n scope.path,\n // When blockToTraverse is a SwitchStatement, the discriminant\n // is not part of the current scope and thus should be skipped.\n { discriminant: true },\n );\n\n if (process.env.BABEL_8_BREAKING) {\n scope.removeOwnBinding(oldName);\n scope.bindings[newName] = binding;\n this.binding.identifier.name = newName;\n } else if (!arguments[0]) {\n scope.removeOwnBinding(oldName);\n scope.bindings[newName] = binding;\n this.binding.identifier.name = newName;\n }\n\n if (parentDeclar) {\n this.maybeConvertFromClassFunctionDeclaration(path);\n this.maybeConvertFromClassFunctionExpression(path);\n }\n }\n}\n","import type NodePath from \"../path/index.ts\";\nimport type * as t from \"@babel/types\";\nimport type Scope from \"./index.ts\";\n\nexport type BindingKind =\n | \"var\" /* var declarator */\n | \"let\" /* let declarator, class declaration id, catch clause parameters */\n | \"const\" /* const/using declarator */\n | \"module\" /* import specifiers */\n | \"hoisted\" /* function declaration id */\n | \"param\" /* function declaration parameters */\n | \"local\" /* function expression id, class expression id */\n | \"unknown\"; /* export specifiers */\n/**\n * This class is responsible for a binding inside of a scope.\n *\n * It tracks the following:\n *\n * * Node path.\n * * Amount of times referenced by other nodes.\n * * Paths to nodes that reassign or modify this binding.\n * * The kind of binding. (Is it a parameter, declaration etc)\n */\n\nexport default class Binding {\n identifier: t.Identifier;\n scope: Scope;\n path: NodePath;\n kind: BindingKind;\n\n constructor({\n identifier,\n scope,\n path,\n kind,\n }: {\n identifier: t.Identifier;\n scope: Scope;\n path: NodePath;\n kind: BindingKind;\n }) {\n this.identifier = identifier;\n this.scope = scope;\n this.path = path;\n this.kind = kind;\n\n if ((kind === \"var\" || kind === \"hoisted\") && isDeclaredInLoop(path)) {\n this.reassign(path);\n }\n\n this.clearValue();\n }\n\n constantViolations: Array = [];\n constant: boolean = true;\n\n referencePaths: Array = [];\n referenced: boolean = false;\n references: number = 0;\n\n declare hasDeoptedValue: boolean;\n declare hasValue: boolean;\n declare value: any;\n\n deoptValue() {\n this.clearValue();\n this.hasDeoptedValue = true;\n }\n\n setValue(value: any) {\n if (this.hasDeoptedValue) return;\n this.hasValue = true;\n this.value = value;\n }\n\n clearValue() {\n this.hasDeoptedValue = false;\n this.hasValue = false;\n this.value = null;\n }\n\n /**\n * Register a constant violation with the provided `path`.\n */\n\n reassign(path: NodePath) {\n this.constant = false;\n if (this.constantViolations.indexOf(path) !== -1) {\n return;\n }\n this.constantViolations.push(path);\n }\n\n /**\n * Increment the amount of references to this binding.\n */\n\n reference(path: NodePath) {\n if (this.referencePaths.indexOf(path) !== -1) {\n return;\n }\n this.referenced = true;\n this.references++;\n this.referencePaths.push(path);\n }\n\n /**\n * Decrement the amount of references to this binding.\n */\n\n dereference() {\n this.references--;\n this.referenced = !!this.references;\n }\n}\n\nfunction isDeclaredInLoop(path: NodePath) {\n for (\n let { parentPath, key } = path;\n parentPath;\n { parentPath, key } = parentPath\n ) {\n if (parentPath.isFunctionParent()) return false;\n if (\n parentPath.isWhile() ||\n parentPath.isForXStatement() ||\n (parentPath.isForStatement() && key === \"body\")\n ) {\n return true;\n }\n }\n return false;\n}\n","'use strict';\nmodule.exports = require('./globals.json');\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"globals-BABEL_8_BREAKING-true\")\n : require(\"globals-BABEL_8_BREAKING-false\");\n","import Renamer from \"./lib/renamer.ts\";\nimport type NodePath from \"../path/index.ts\";\nimport traverse from \"../index.ts\";\nimport type { TraverseOptions } from \"../index.ts\";\nimport Binding from \"./binding.ts\";\nimport type { BindingKind } from \"./binding.ts\";\nimport globals from \"globals\";\nimport {\n NOT_LOCAL_BINDING,\n callExpression,\n cloneNode,\n getBindingIdentifiers,\n identifier,\n isArrayExpression,\n isBinary,\n isCallExpression,\n isClass,\n isClassBody,\n isClassDeclaration,\n isExportAllDeclaration,\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n isFunctionDeclaration,\n isIdentifier,\n isImportDeclaration,\n isLiteral,\n isMemberExpression,\n isMethod,\n isModuleSpecifier,\n isNullLiteral,\n isObjectExpression,\n isProperty,\n isPureish,\n isRegExpLiteral,\n isSuper,\n isTaggedTemplateExpression,\n isTemplateLiteral,\n isThisExpression,\n isUnaryExpression,\n isVariableDeclaration,\n matchesPattern,\n memberExpression,\n numericLiteral,\n toIdentifier,\n variableDeclaration,\n variableDeclarator,\n isRecordExpression,\n isTupleExpression,\n isObjectProperty,\n isTopicReference,\n isMetaProperty,\n isPrivateName,\n isExportDeclaration,\n buildUndefinedNode,\n} from \"@babel/types\";\nimport * as t from \"@babel/types\";\nimport { scope as scopeCache } from \"../cache.ts\";\nimport type { Visitor } from \"../types.ts\";\nimport { isExplodedVisitor } from \"../visitors.ts\";\n\ntype NodePart = string | number | boolean;\n// Recursively gathers the identifying names of a node.\nfunction gatherNodeParts(node: t.Node, parts: NodePart[]) {\n switch (node?.type) {\n default:\n if (isImportDeclaration(node) || isExportDeclaration(node)) {\n if (\n (isExportAllDeclaration(node) ||\n isExportNamedDeclaration(node) ||\n isImportDeclaration(node)) &&\n node.source\n ) {\n gatherNodeParts(node.source, parts);\n } else if (\n (isExportNamedDeclaration(node) || isImportDeclaration(node)) &&\n node.specifiers?.length\n ) {\n for (const e of node.specifiers) gatherNodeParts(e, parts);\n } else if (\n (isExportDefaultDeclaration(node) ||\n isExportNamedDeclaration(node)) &&\n node.declaration\n ) {\n gatherNodeParts(node.declaration, parts);\n }\n } else if (isModuleSpecifier(node)) {\n // todo(flow->ts): should condition instead be:\n // ```\n // t.isExportSpecifier(node) ||\n // t.isImportDefaultSpecifier(node) ||\n // t.isImportNamespaceSpecifier(node) ||\n // t.isImportSpecifier(node)\n // ```\n // allowing only nodes with `.local`?\n // @ts-expect-error todo(flow->ts)\n gatherNodeParts(node.local, parts);\n } else if (\n isLiteral(node) &&\n !isNullLiteral(node) &&\n !isRegExpLiteral(node) &&\n !isTemplateLiteral(node)\n ) {\n parts.push(node.value);\n }\n break;\n\n case \"MemberExpression\":\n case \"OptionalMemberExpression\":\n case \"JSXMemberExpression\":\n gatherNodeParts(node.object, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"Identifier\":\n case \"JSXIdentifier\":\n parts.push(node.name);\n break;\n\n case \"CallExpression\":\n case \"OptionalCallExpression\":\n case \"NewExpression\":\n gatherNodeParts(node.callee, parts);\n break;\n\n case \"ObjectExpression\":\n case \"ObjectPattern\":\n for (const e of node.properties) {\n gatherNodeParts(e, parts);\n }\n break;\n\n case \"SpreadElement\":\n case \"RestElement\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"ObjectProperty\":\n case \"ObjectMethod\":\n case \"ClassProperty\":\n case \"ClassMethod\":\n case \"ClassPrivateProperty\":\n case \"ClassPrivateMethod\":\n gatherNodeParts(node.key, parts);\n break;\n\n case \"ThisExpression\":\n parts.push(\"this\");\n break;\n\n case \"Super\":\n parts.push(\"super\");\n break;\n\n case \"Import\":\n parts.push(\"import\");\n break;\n\n case \"DoExpression\":\n parts.push(\"do\");\n break;\n\n case \"YieldExpression\":\n parts.push(\"yield\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AwaitExpression\":\n parts.push(\"await\");\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"AssignmentExpression\":\n gatherNodeParts(node.left, parts);\n break;\n\n case \"VariableDeclarator\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"FunctionExpression\":\n case \"FunctionDeclaration\":\n case \"ClassExpression\":\n case \"ClassDeclaration\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"PrivateName\":\n gatherNodeParts(node.id, parts);\n break;\n\n case \"ParenthesizedExpression\":\n gatherNodeParts(node.expression, parts);\n break;\n\n case \"UnaryExpression\":\n case \"UpdateExpression\":\n gatherNodeParts(node.argument, parts);\n break;\n\n case \"MetaProperty\":\n gatherNodeParts(node.meta, parts);\n gatherNodeParts(node.property, parts);\n break;\n\n case \"JSXElement\":\n gatherNodeParts(node.openingElement, parts);\n break;\n\n case \"JSXOpeningElement\":\n gatherNodeParts(node.name, parts);\n break;\n\n case \"JSXFragment\":\n gatherNodeParts(node.openingFragment, parts);\n break;\n\n case \"JSXOpeningFragment\":\n parts.push(\"Fragment\");\n break;\n\n case \"JSXNamespacedName\":\n gatherNodeParts(node.namespace, parts);\n gatherNodeParts(node.name, parts);\n break;\n }\n}\n\n//\ninterface CollectVisitorState {\n assignments: NodePath[];\n references: NodePath[];\n constantViolations: NodePath[];\n}\n\nconst collectorVisitor: Visitor = {\n ForStatement(path) {\n const declar = path.get(\"init\");\n // delegate block scope handling to the `BlockScoped` method\n if (declar.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", declar);\n }\n },\n\n Declaration(path) {\n // delegate block scope handling to the `BlockScoped` method\n if (path.isBlockScoped()) return;\n\n // delegate import handing to the `ImportDeclaration` method\n if (path.isImportDeclaration()) return;\n\n // this will be hit again once we traverse into it after this iteration\n if (path.isExportDeclaration()) return;\n\n // we've ran into a declaration!\n const parent =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n parent.registerDeclaration(path);\n },\n\n ImportDeclaration(path) {\n // import may only appear in the top level or inside a module/namespace (for TS/flow)\n const parent = path.scope.getBlockParent();\n\n parent.registerDeclaration(path);\n },\n\n ReferencedIdentifier(path, state) {\n state.references.push(path);\n },\n\n ForXStatement(path, state) {\n const left = path.get(\"left\");\n if (left.isPattern() || left.isIdentifier()) {\n state.constantViolations.push(path);\n }\n // delegate block scope handling to the `BlockScoped` method\n else if (left.isVar()) {\n const { scope } = path;\n const parentScope = scope.getFunctionParent() || scope.getProgramParent();\n parentScope.registerBinding(\"var\", left);\n }\n },\n\n ExportDeclaration: {\n exit(path) {\n const { node, scope } = path;\n // ExportAllDeclaration does not have `declaration`\n if (isExportAllDeclaration(node)) return;\n const declar = node.declaration;\n if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (!id) return;\n\n const binding = scope.getBinding(id.name);\n binding?.reference(path);\n } else if (isVariableDeclaration(declar)) {\n for (const decl of declar.declarations) {\n for (const name of Object.keys(getBindingIdentifiers(decl))) {\n const binding = scope.getBinding(name);\n binding?.reference(path);\n }\n }\n }\n },\n },\n\n LabeledStatement(path) {\n path.scope.getBlockParent().registerDeclaration(path);\n },\n\n AssignmentExpression(path, state) {\n state.assignments.push(path);\n },\n\n UpdateExpression(path, state) {\n state.constantViolations.push(path);\n },\n\n UnaryExpression(path, state) {\n if (path.node.operator === \"delete\") {\n state.constantViolations.push(path);\n }\n },\n\n BlockScoped(path) {\n let scope = path.scope;\n if (scope.path === path) scope = scope.parent;\n\n const parent = scope.getBlockParent();\n parent.registerDeclaration(path);\n\n // Register class identifier in class' scope if this is a class declaration.\n if (path.isClassDeclaration() && path.node.id) {\n const id = path.node.id;\n const name = id.name;\n\n path.scope.bindings[name] = path.scope.parent.getBinding(name);\n }\n },\n\n CatchClause(path) {\n path.scope.registerBinding(\"let\", path);\n },\n\n Function(path) {\n const params: Array = path.get(\"params\");\n for (const param of params) {\n path.scope.registerBinding(\"param\", param);\n }\n\n // Register function expression id after params. When the id\n // collides with a function param, the id effectively can't be\n // referenced: here we registered it as a constantViolation\n if (\n path.isFunctionExpression() &&\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path.get(\"id\"), path);\n }\n },\n\n ClassExpression(path) {\n if (\n path.has(\"id\") &&\n // @ts-expect-error Fixme: document symbol ast properties\n !path.get(\"id\").node[NOT_LOCAL_BINDING]\n ) {\n path.scope.registerBinding(\"local\", path);\n }\n },\n TSTypeAnnotation(path) {\n path.skip();\n },\n};\n\nlet uid = 0;\n\nexport type { Binding };\n\nexport default class Scope {\n uid;\n\n path: NodePath;\n block: t.Pattern | t.Scopable;\n\n labels;\n inited;\n\n bindings: { [name: string]: Binding };\n references: { [name: string]: true };\n globals: { [name: string]: t.Identifier | t.JSXIdentifier };\n uids: { [name: string]: boolean };\n data: { [key: string | symbol]: unknown };\n crawling: boolean;\n\n /**\n * This searches the current \"scope\" and collects all references/bindings\n * within.\n */\n constructor(path: NodePath) {\n const { node } = path;\n const cached = scopeCache.get(node);\n // Sometimes, a scopable path is placed higher in the AST tree.\n // In these cases, have to create a new Scope.\n if (cached?.path === path) {\n return cached;\n }\n scopeCache.set(node, this);\n\n this.uid = uid++;\n\n this.block = node;\n this.path = path;\n\n this.labels = new Map();\n this.inited = false;\n }\n\n /**\n * Globals.\n */\n\n static globals = Object.keys(globals.builtin);\n\n /**\n * Variables available in current context.\n */\n\n static contextVariables = [\"arguments\", \"undefined\", \"Infinity\", \"NaN\"];\n\n get parent() {\n let parent,\n path = this.path;\n do {\n // Skip method scope if coming from inside computed key or decorator expression\n const shouldSkip = path.key === \"key\" || path.listKey === \"decorators\";\n path = path.parentPath;\n if (shouldSkip && path.isMethod()) path = path.parentPath;\n if (path && path.isScope()) parent = path;\n } while (path && !parent);\n\n return parent?.scope;\n }\n\n get parentBlock() {\n return this.path.parent;\n }\n\n get hub() {\n return this.path.hub;\n }\n\n traverse(\n node: t.Node | t.Node[],\n opts: TraverseOptions,\n state: S,\n ): void;\n traverse(node: t.Node | t.Node[], opts?: TraverseOptions, state?: any): void;\n /**\n * Traverse node with current scope and path.\n *\n * !!! WARNING !!!\n * This method assumes that `this.path` is the NodePath representing `node`.\n * After running the traversal, the `.parentPath` of the NodePaths\n * corresponding to `node`'s children will be set to `this.path`.\n *\n * There is no good reason to use this method, since the only safe way to use\n * it is equivalent to `scope.path.traverse(opts, state)`.\n */\n traverse(node: any, opts: any, state?: S) {\n traverse(node, opts, this, state, this.path);\n }\n\n /**\n * Generate a unique identifier and add it to the current scope.\n */\n\n generateDeclaredUidIdentifier(name?: string) {\n const id = this.generateUidIdentifier(name);\n this.push({ id });\n return cloneNode(id);\n }\n\n /**\n * Generate a unique identifier.\n */\n\n generateUidIdentifier(name?: string) {\n return identifier(this.generateUid(name));\n }\n\n /**\n * Generate a unique `_id1` binding.\n */\n\n generateUid(name: string = \"temp\"): string {\n name = toIdentifier(name)\n .replace(/^_+/, \"\")\n .replace(/[0-9]+$/g, \"\");\n\n let uid;\n let i = 1;\n do {\n uid = this._generateUid(name, i);\n i++;\n } while (\n this.hasLabel(uid) ||\n this.hasBinding(uid) ||\n this.hasGlobal(uid) ||\n this.hasReference(uid)\n );\n\n const program = this.getProgramParent();\n program.references[uid] = true;\n program.uids[uid] = true;\n\n return uid;\n }\n\n /**\n * Generate an `_id1`.\n */\n\n _generateUid(name: string, i: number) {\n let id = name;\n if (i > 1) id += i;\n return `_${id}`;\n }\n\n generateUidBasedOnNode(node: t.Node, defaultName?: string) {\n const parts: NodePart[] = [];\n gatherNodeParts(node, parts);\n\n let id = parts.join(\"$\");\n id = id.replace(/^_/, \"\") || defaultName || \"ref\";\n\n return this.generateUid(id.slice(0, 20));\n }\n\n /**\n * Generate a unique identifier based on a node.\n */\n\n generateUidIdentifierBasedOnNode(node: t.Node, defaultName?: string) {\n return identifier(this.generateUidBasedOnNode(node, defaultName));\n }\n\n /**\n * Determine whether evaluating the specific input `node` is a consequenceless reference. ie.\n * evaluating it won't result in potentially arbitrary code from being ran. The following are\n * allowed and determined not to cause side effects:\n *\n * - `this` expressions\n * - `super` expressions\n * - Bound identifiers\n */\n\n isStatic(node: t.Node): boolean {\n if (isThisExpression(node) || isSuper(node) || isTopicReference(node)) {\n return true;\n }\n\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding) {\n return binding.constant;\n } else {\n return this.hasBinding(node.name);\n }\n }\n\n return false;\n }\n\n /**\n * Possibly generate a memoised identifier if it is not static and has consequences.\n */\n\n maybeGenerateMemoised(node: t.Node, dontPush?: boolean) {\n if (this.isStatic(node)) {\n return null;\n } else {\n const id = this.generateUidIdentifierBasedOnNode(node);\n if (!dontPush) {\n this.push({ id });\n return cloneNode(id);\n }\n return id;\n }\n }\n\n checkBlockScopedCollisions(\n local: Binding,\n kind: BindingKind,\n name: string,\n id: any,\n ) {\n // ignore parameters\n if (kind === \"param\") return;\n\n // Ignore existing binding if it's the name of the current function or\n // class expression\n if (local.kind === \"local\") return;\n\n const duplicate =\n // don't allow duplicate bindings to exist alongside\n kind === \"let\" ||\n local.kind === \"let\" ||\n local.kind === \"const\" ||\n local.kind === \"module\" ||\n // don't allow a local of param with a kind of let\n (local.kind === \"param\" && kind === \"const\");\n\n if (duplicate) {\n throw this.hub.buildError(\n id,\n `Duplicate declaration \"${name}\"`,\n TypeError,\n );\n }\n }\n\n rename(\n oldName: string,\n newName?: string,\n // prettier-ignore\n /* Babel 7 - block?: t.Pattern | t.Scopable */\n ) {\n const binding = this.getBinding(oldName);\n if (binding) {\n newName ||= this.generateUidIdentifier(oldName).name;\n const renamer = new Renamer(binding, oldName, newName);\n if (process.env.BABEL_8_BREAKING) {\n renamer.rename();\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) TODO: Delete this\n renamer.rename(arguments[2]);\n }\n }\n }\n\n /** @deprecated Not used in our codebase */\n _renameFromMap(\n map: Record,\n oldName: string | symbol,\n newName: string | symbol,\n value: unknown,\n ) {\n if (map[oldName]) {\n map[newName] = value;\n map[oldName] = null;\n }\n }\n\n dump() {\n const sep = \"-\".repeat(60);\n console.log(sep);\n let scope: Scope = this;\n do {\n console.log(\"#\", scope.block.type);\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n console.log(\" -\", name, {\n constant: binding.constant,\n references: binding.references,\n violations: binding.constantViolations.length,\n kind: binding.kind,\n });\n }\n } while ((scope = scope.parent));\n console.log(sep);\n }\n\n // TODO: (Babel 8) Split i in two parameters, and use an object of flags\n toArray(\n node: t.Node,\n i?: number | boolean,\n arrayLikeIsIterable?: boolean | void,\n ) {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (binding?.constant && binding.path.isGenericType(\"Array\")) {\n return node;\n }\n }\n\n if (isArrayExpression(node)) {\n return node;\n }\n\n if (isIdentifier(node, { name: \"arguments\" })) {\n return callExpression(\n memberExpression(\n memberExpression(\n memberExpression(identifier(\"Array\"), identifier(\"prototype\")),\n identifier(\"slice\"),\n ),\n identifier(\"call\"),\n ),\n [node],\n );\n }\n\n let helperName;\n const args = [node];\n if (i === true) {\n // Used in array-spread to create an array.\n helperName = \"toConsumableArray\";\n } else if (typeof i === \"number\") {\n args.push(numericLiteral(i));\n\n // Used in array-rest to create an array from a subset of an iterable.\n helperName = \"slicedToArray\";\n // TODO if (this.hub.isLoose(\"es6.forOf\")) helperName += \"-loose\";\n } else {\n // Used in array-rest to create an array\n helperName = \"toArray\";\n }\n\n if (arrayLikeIsIterable) {\n args.unshift(this.hub.addHelper(helperName));\n helperName = \"maybeArrayLike\";\n }\n\n // @ts-expect-error todo(flow->ts): t.Node is not valid to use in args, function argument typeneeds to be clarified\n return callExpression(this.hub.addHelper(helperName), args);\n }\n\n hasLabel(name: string) {\n return !!this.getLabel(name);\n }\n\n getLabel(name: string) {\n return this.labels.get(name);\n }\n\n registerLabel(path: NodePath) {\n this.labels.set(path.node.label.name, path);\n }\n\n registerDeclaration(path: NodePath) {\n if (path.isLabeledStatement()) {\n this.registerLabel(path);\n } else if (path.isFunctionDeclaration()) {\n this.registerBinding(\"hoisted\", path.get(\"id\"), path);\n } else if (path.isVariableDeclaration()) {\n const declarations = path.get(\"declarations\");\n const { kind } = path.node;\n for (const declar of declarations) {\n this.registerBinding(\n kind === \"using\" || kind === \"await using\" ? \"const\" : kind,\n declar,\n );\n }\n } else if (path.isClassDeclaration()) {\n if (path.node.declare) return;\n this.registerBinding(\"let\", path);\n } else if (path.isImportDeclaration()) {\n const isTypeDeclaration =\n path.node.importKind === \"type\" || path.node.importKind === \"typeof\";\n const specifiers = path.get(\"specifiers\");\n for (const specifier of specifiers) {\n const isTypeSpecifier =\n isTypeDeclaration ||\n (specifier.isImportSpecifier() &&\n (specifier.node.importKind === \"type\" ||\n specifier.node.importKind === \"typeof\"));\n\n this.registerBinding(isTypeSpecifier ? \"unknown\" : \"module\", specifier);\n }\n } else if (path.isExportDeclaration()) {\n // todo: improve babel-types\n const declar = path.get(\"declaration\") as NodePath;\n if (\n declar.isClassDeclaration() ||\n declar.isFunctionDeclaration() ||\n declar.isVariableDeclaration()\n ) {\n this.registerDeclaration(declar);\n }\n } else {\n this.registerBinding(\"unknown\", path);\n }\n }\n\n buildUndefinedNode() {\n return buildUndefinedNode();\n }\n\n registerConstantViolation(path: NodePath) {\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n this.getBinding(name)?.reassign(path);\n }\n }\n\n registerBinding(\n kind: Binding[\"kind\"],\n path: NodePath,\n bindingPath: NodePath = path,\n ) {\n if (!kind) throw new ReferenceError(\"no `kind`\");\n\n if (path.isVariableDeclaration()) {\n const declarators: Array = path.get(\"declarations\");\n for (const declar of declarators) {\n this.registerBinding(kind, declar);\n }\n return;\n }\n\n const parent = this.getProgramParent();\n const ids = path.getOuterBindingIdentifiers(true);\n\n for (const name of Object.keys(ids)) {\n parent.references[name] = true;\n\n for (const id of ids[name]) {\n const local = this.getOwnBinding(name);\n\n if (local) {\n // same identifier so continue safely as we're likely trying to register it\n // multiple times\n if (local.identifier === id) continue;\n\n this.checkBlockScopedCollisions(local, kind, name, id);\n }\n\n // A redeclaration of an existing variable is a modification\n if (local) {\n this.registerConstantViolation(bindingPath);\n } else {\n this.bindings[name] = new Binding({\n identifier: id,\n scope: this,\n path: bindingPath,\n kind: kind,\n });\n }\n }\n }\n }\n\n addGlobal(node: t.Identifier | t.JSXIdentifier) {\n this.globals[node.name] = node;\n }\n\n hasUid(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.uids[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasGlobal(name: string): boolean {\n let scope: Scope = this;\n\n do {\n if (scope.globals[name]) return true;\n } while ((scope = scope.parent));\n\n return false;\n }\n\n hasReference(name: string): boolean {\n return !!this.getProgramParent().references[name];\n }\n\n isPure(node: t.Node, constantsOnly?: boolean): boolean {\n if (isIdentifier(node)) {\n const binding = this.getBinding(node.name);\n if (!binding) return false;\n if (constantsOnly) return binding.constant;\n return true;\n } else if (\n isThisExpression(node) ||\n isMetaProperty(node) ||\n isTopicReference(node) ||\n isPrivateName(node)\n ) {\n return true;\n } else if (isClass(node)) {\n if (node.superClass && !this.isPure(node.superClass, constantsOnly)) {\n return false;\n }\n if (node.decorators?.length > 0) {\n return false;\n }\n return this.isPure(node.body, constantsOnly);\n } else if (isClassBody(node)) {\n for (const method of node.body) {\n if (!this.isPure(method, constantsOnly)) return false;\n }\n return true;\n } else if (isBinary(node)) {\n return (\n this.isPure(node.left, constantsOnly) &&\n this.isPure(node.right, constantsOnly)\n );\n } else if (isArrayExpression(node) || isTupleExpression(node)) {\n for (const elem of node.elements) {\n if (elem !== null && !this.isPure(elem, constantsOnly)) return false;\n }\n return true;\n } else if (isObjectExpression(node) || isRecordExpression(node)) {\n for (const prop of node.properties) {\n if (!this.isPure(prop, constantsOnly)) return false;\n }\n return true;\n } else if (isMethod(node)) {\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n return true;\n } else if (isProperty(node)) {\n // @ts-expect-error todo(flow->ts): computed in not present on private properties\n if (node.computed && !this.isPure(node.key, constantsOnly)) return false;\n if (node.decorators?.length > 0) {\n return false;\n }\n if (isObjectProperty(node) || node.static) {\n if (node.value !== null && !this.isPure(node.value, constantsOnly)) {\n return false;\n }\n }\n return true;\n } else if (isUnaryExpression(node)) {\n return this.isPure(node.argument, constantsOnly);\n } else if (isTemplateLiteral(node)) {\n for (const expression of node.expressions) {\n if (!this.isPure(expression, constantsOnly)) return false;\n }\n return true;\n } else if (isTaggedTemplateExpression(node)) {\n return (\n matchesPattern(node.tag, \"String.raw\") &&\n !this.hasBinding(\"String\", { noGlobals: true }) &&\n this.isPure(node.quasi, constantsOnly)\n );\n } else if (isMemberExpression(node)) {\n return (\n !node.computed &&\n isIdentifier(node.object) &&\n node.object.name === \"Symbol\" &&\n isIdentifier(node.property) &&\n node.property.name !== \"for\" &&\n !this.hasBinding(\"Symbol\", { noGlobals: true })\n );\n } else if (isCallExpression(node)) {\n return (\n matchesPattern(node.callee, \"Symbol.for\") &&\n !this.hasBinding(\"Symbol\", { noGlobals: true }) &&\n node.arguments.length === 1 &&\n t.isStringLiteral(node.arguments[0])\n );\n } else {\n return isPureish(node);\n }\n }\n\n /**\n * Set some arbitrary data on the current scope.\n */\n\n setData(key: string | symbol, val: any) {\n return (this.data[key] = val);\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key`.\n */\n\n getData(key: string | symbol): any {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) return data;\n } while ((scope = scope.parent));\n }\n\n /**\n * Recursively walk up scope tree looking for the data `key` and if it exists,\n * remove it.\n */\n\n removeData(key: string) {\n let scope: Scope = this;\n do {\n const data = scope.data[key];\n if (data != null) scope.data[key] = null;\n } while ((scope = scope.parent));\n }\n\n init() {\n if (!this.inited) {\n this.inited = true;\n this.crawl();\n }\n }\n\n crawl() {\n const path = this.path;\n\n this.references = Object.create(null);\n this.bindings = Object.create(null);\n this.globals = Object.create(null);\n this.uids = Object.create(null);\n this.data = Object.create(null);\n\n const programParent = this.getProgramParent();\n if (programParent.crawling) return;\n\n const state: CollectVisitorState = {\n references: [],\n constantViolations: [],\n assignments: [],\n };\n\n this.crawling = true;\n // traverse does not visit the root node, here we explicitly collect\n // root node binding info when the root is not a Program.\n if (path.type !== \"Program\" && isExplodedVisitor(collectorVisitor)) {\n for (const visit of collectorVisitor.enter) {\n visit.call(state, path, state);\n }\n const typeVisitors = collectorVisitor[path.type];\n if (typeVisitors) {\n for (const visit of typeVisitors.enter) {\n visit.call(state, path, state);\n }\n }\n }\n path.traverse(collectorVisitor, state);\n this.crawling = false;\n\n // register assignments\n for (const path of state.assignments) {\n // register undeclared bindings as globals\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n if (path.scope.getBinding(name)) continue;\n programParent.addGlobal(ids[name]);\n }\n\n // register as constant violation\n path.scope.registerConstantViolation(path);\n }\n\n // register references\n for (const ref of state.references) {\n const binding = ref.scope.getBinding(ref.node.name);\n if (binding) {\n binding.reference(ref);\n } else {\n programParent.addGlobal(ref.node);\n }\n }\n\n // register constant violations\n for (const path of state.constantViolations) {\n path.scope.registerConstantViolation(path);\n }\n }\n\n push(opts: {\n id: t.LVal;\n init?: t.Expression;\n unique?: boolean;\n _blockHoist?: number | undefined;\n kind?: \"var\" | \"let\" | \"const\";\n }) {\n let path = this.path;\n\n if (path.isPattern()) {\n path = this.getPatternParent().path;\n } else if (!path.isBlockStatement() && !path.isProgram()) {\n path = this.getBlockParent().path;\n }\n\n if (path.isSwitchStatement()) {\n path = (this.getFunctionParent() || this.getProgramParent()).path;\n }\n\n const { init, unique, kind = \"var\", id } = opts;\n\n // When injecting a non-const non-initialized binding inside\n // an IIFE, if the number of call arguments is less than or\n // equal to the number of function parameters, we can safely\n // inject the binding into the parameter list.\n if (\n !init &&\n !unique &&\n (kind === \"var\" || kind === \"let\") &&\n path.isFunction() &&\n // @ts-expect-error ArrowFunctionExpression never has a name\n !path.node.name &&\n isCallExpression(path.parent, { callee: path.node }) &&\n path.parent.arguments.length <= path.node.params.length &&\n isIdentifier(id)\n ) {\n path.pushContainer(\"params\", id);\n path.scope.registerBinding(\n \"param\",\n path.get(\"params\")[path.node.params.length - 1],\n );\n return;\n }\n\n if (path.isLoop() || path.isCatchClause() || path.isFunction()) {\n path.ensureBlock();\n path = path.get(\"body\");\n }\n\n const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist;\n\n const dataKey = `declaration:${kind}:${blockHoist}`;\n let declarPath = !unique && path.getData(dataKey);\n\n if (!declarPath) {\n const declar = variableDeclaration(kind, []);\n // @ts-expect-error todo(flow->ts): avoid modifying nodes\n declar._blockHoist = blockHoist;\n\n [declarPath] = (path as NodePath).unshiftContainer(\n \"body\",\n [declar],\n );\n if (!unique) path.setData(dataKey, declarPath);\n }\n\n const declarator = variableDeclarator(id, init);\n const len = declarPath.node.declarations.push(declarator);\n path.scope.registerBinding(kind, declarPath.get(\"declarations\")[len - 1]);\n }\n\n /**\n * Walk up to the top of the scope tree and get the `Program`.\n */\n\n getProgramParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isProgram()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\"Couldn't find a Program\");\n }\n\n /**\n * Walk up the scope tree until we hit either a Function or return null.\n */\n\n getFunctionParent(): Scope | null {\n let scope: Scope = this;\n do {\n if (scope.path.isFunctionParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n return null;\n }\n\n /**\n * Walk up the scope tree until we hit either a BlockStatement/Loop/Program/Function/Switch or reach the\n * very top and hit Program.\n */\n\n getBlockParent() {\n let scope: Scope = this;\n do {\n if (scope.path.isBlockParent()) {\n return scope;\n }\n } while ((scope = scope.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walk up from a pattern scope (function param initializer) until we hit a non-pattern scope,\n * then returns its block parent\n * @returns An ancestry scope whose path is a block parent\n */\n getPatternParent() {\n let scope: Scope = this;\n do {\n if (!scope.path.isPattern()) {\n return scope.getBlockParent();\n }\n } while ((scope = scope.parent.parent));\n throw new Error(\n \"We couldn't find a BlockStatement, For, Switch, Function, Loop or Program...\",\n );\n }\n\n /**\n * Walks the scope tree and gathers **all** bindings.\n */\n\n getAllBindings(): Record {\n const ids = Object.create(null);\n\n let scope: Scope = this;\n do {\n for (const key of Object.keys(scope.bindings)) {\n if (key in ids === false) {\n ids[key] = scope.bindings[key];\n }\n }\n scope = scope.parent;\n } while (scope);\n\n return ids;\n }\n\n /**\n * Walks the scope tree and gathers all declarations of `kind`.\n */\n\n getAllBindingsOfKind(...kinds: string[]): Record {\n const ids = Object.create(null);\n\n for (const kind of kinds) {\n let scope: Scope = this;\n do {\n for (const name of Object.keys(scope.bindings)) {\n const binding = scope.bindings[name];\n if (binding.kind === kind) ids[name] = binding;\n }\n scope = scope.parent;\n } while (scope);\n }\n\n return ids;\n }\n\n bindingIdentifierEquals(name: string, node: t.Node): boolean {\n return this.getBindingIdentifier(name) === node;\n }\n\n getBinding(name: string): Binding | undefined {\n let scope: Scope = this;\n let previousPath;\n\n do {\n const binding = scope.getOwnBinding(name);\n if (binding) {\n // Check if a pattern is a part of parameter expressions.\n // Note: for performance reason we skip checking previousPath.parentPath.isFunction()\n // because `scope.path` is validated as scope in packages/babel-types/src/validators/isScope.js\n // That is, if a scope path is pattern, its parent must be Function/CatchClause\n\n // Spec 9.2.10.28: The closure created by this expression should not have visibility of\n // declarations in the function body. If the binding is not a `param`-kind (as function parameters)\n // or `local`-kind (as id in function expression),\n // then it must be defined inside the function body, thus it should be skipped\n if (\n previousPath?.isPattern() &&\n binding.kind !== \"param\" &&\n binding.kind !== \"local\"\n ) {\n // do nothing\n } else {\n return binding;\n }\n } else if (\n !binding &&\n name === \"arguments\" &&\n scope.path.isFunction() &&\n !scope.path.isArrowFunctionExpression()\n ) {\n break;\n }\n previousPath = scope.path;\n } while ((scope = scope.parent));\n }\n\n getOwnBinding(name: string): Binding | undefined {\n return this.bindings[name];\n }\n\n // todo: return probably can be undefined…\n getBindingIdentifier(name: string): t.Identifier {\n return this.getBinding(name)?.identifier;\n }\n\n // todo: flow->ts return probably can be undefined\n getOwnBindingIdentifier(name: string): t.Identifier {\n const binding = this.bindings[name];\n return binding?.identifier;\n }\n\n hasOwnBinding(name: string) {\n return !!this.getOwnBinding(name);\n }\n\n // By default, we consider generated UIDs as bindings.\n // This is because they are almost always used to declare variables,\n // and since the scope isn't always up-to-date it's better to assume that\n // there is a variable with that name. The `noUids` option can be used to\n // turn off this behavior, for example if you know that the generate UID\n // was used to declare a variable in a different scope.\n hasBinding(\n name: string,\n opts?: boolean | { noGlobals?: boolean; noUids?: boolean },\n ) {\n if (!name) return false;\n if (this.hasOwnBinding(name)) return true;\n {\n // TODO: Only accept the object form.\n if (typeof opts === \"boolean\") opts = { noGlobals: opts };\n }\n if (this.parentHasBinding(name, opts)) return true;\n if (!opts?.noUids && this.hasUid(name)) return true;\n if (!opts?.noGlobals && Scope.globals.includes(name)) return true;\n if (!opts?.noGlobals && Scope.contextVariables.includes(name)) return true;\n return false;\n }\n\n parentHasBinding(\n name: string,\n opts?: { noGlobals?: boolean; noUids?: boolean },\n ) {\n return this.parent?.hasBinding(name, opts);\n }\n\n /**\n * Move a binding of `name` to another `scope`.\n */\n\n moveBindingTo(name: string, scope: Scope) {\n const info = this.getBinding(name);\n if (info) {\n info.scope.removeOwnBinding(name);\n info.scope = scope;\n scope.bindings[name] = info;\n }\n }\n\n removeOwnBinding(name: string) {\n delete this.bindings[name];\n }\n\n removeBinding(name: string) {\n // clear literal binding\n this.getBinding(name)?.scope.removeOwnBinding(name);\n\n // clear uids with this name - https://github.com/babel/babel/issues/2101\n let scope: Scope = this;\n do {\n if (scope.uids[name]) {\n scope.uids[name] = false;\n }\n } while ((scope = scope.parent));\n }\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.setArray = {}));\n})(this, (function (exports) { 'use strict';\n\n /**\n * SetArray acts like a `Set` (allowing only one occurrence of a string `key`), but provides the\n * index of the `key` in the backing array.\n *\n * This is designed to allow synchronizing a second array with the contents of the backing array,\n * like how in a sourcemap `sourcesContent[i]` is the source content associated with `source[i]`,\n * and there are never duplicates.\n */\n class SetArray {\n constructor() {\n this._indexes = { __proto__: null };\n this.array = [];\n }\n }\n /**\n * Typescript doesn't allow friend access to private fields, so this just casts the set into a type\n * with public access modifiers.\n */\n function cast(set) {\n return set;\n }\n /**\n * Gets the index associated with `key` in the backing array, if it is already present.\n */\n function get(setarr, key) {\n return cast(setarr)._indexes[key];\n }\n /**\n * Puts `key` into the backing array, if it is not already present. Returns\n * the index of the `key` in the backing array.\n */\n function put(setarr, key) {\n // The key may or may not be present. If it is present, it's a number.\n const index = get(setarr, key);\n if (index !== undefined)\n return index;\n const { array, _indexes: indexes } = cast(setarr);\n const length = array.push(key);\n return (indexes[key] = length - 1);\n }\n /**\n * Pops the last added item out of the SetArray.\n */\n function pop(setarr) {\n const { array, _indexes: indexes } = cast(setarr);\n if (array.length === 0)\n return;\n const last = array.pop();\n indexes[last] = undefined;\n }\n /**\n * Removes the key, if it exists in the set.\n */\n function remove(setarr, key) {\n const index = get(setarr, key);\n if (index === undefined)\n return;\n const { array, _indexes: indexes } = cast(setarr);\n for (let i = index + 1; i < array.length; i++) {\n const k = array[i];\n array[i - 1] = k;\n indexes[k]--;\n }\n indexes[key] = undefined;\n array.pop();\n }\n\n exports.SetArray = SetArray;\n exports.get = get;\n exports.pop = pop;\n exports.put = put;\n exports.remove = remove;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=set-array.umd.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :\n typeof define === 'function' && define.amd ? define(['exports'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.sourcemapCodec = {}));\n})(this, (function (exports) { 'use strict';\n\n const comma = ','.charCodeAt(0);\n const semicolon = ';'.charCodeAt(0);\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n const intToChar = new Uint8Array(64); // 64 possible chars.\n const charToInt = new Uint8Array(128); // z is 122 in ASCII\n for (let i = 0; i < chars.length; i++) {\n const c = chars.charCodeAt(i);\n intToChar[i] = c;\n charToInt[c] = i;\n }\n // Provide a fallback for older environments.\n const td = typeof TextDecoder !== 'undefined'\n ? /* #__PURE__ */ new TextDecoder()\n : typeof Buffer !== 'undefined'\n ? {\n decode(buf) {\n const out = Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength);\n return out.toString();\n },\n }\n : {\n decode(buf) {\n let out = '';\n for (let i = 0; i < buf.length; i++) {\n out += String.fromCharCode(buf[i]);\n }\n return out;\n },\n };\n function decode(mappings) {\n const state = new Int32Array(5);\n const decoded = [];\n let index = 0;\n do {\n const semi = indexOf(mappings, index);\n const line = [];\n let sorted = true;\n let lastCol = 0;\n state[0] = 0;\n for (let i = index; i < semi; i++) {\n let seg;\n i = decodeInteger(mappings, i, state, 0); // genColumn\n const col = state[0];\n if (col < lastCol)\n sorted = false;\n lastCol = col;\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 1); // sourcesIndex\n i = decodeInteger(mappings, i, state, 2); // sourceLine\n i = decodeInteger(mappings, i, state, 3); // sourceColumn\n if (hasMoreVlq(mappings, i, semi)) {\n i = decodeInteger(mappings, i, state, 4); // namesIndex\n seg = [col, state[1], state[2], state[3], state[4]];\n }\n else {\n seg = [col, state[1], state[2], state[3]];\n }\n }\n else {\n seg = [col];\n }\n line.push(seg);\n }\n if (!sorted)\n sort(line);\n decoded.push(line);\n index = semi + 1;\n } while (index <= mappings.length);\n return decoded;\n }\n function indexOf(mappings, index) {\n const idx = mappings.indexOf(';', index);\n return idx === -1 ? mappings.length : idx;\n }\n function decodeInteger(mappings, pos, state, j) {\n let value = 0;\n let shift = 0;\n let integer = 0;\n do {\n const c = mappings.charCodeAt(pos++);\n integer = charToInt[c];\n value |= (integer & 31) << shift;\n shift += 5;\n } while (integer & 32);\n const shouldNegate = value & 1;\n value >>>= 1;\n if (shouldNegate) {\n value = -0x80000000 | -value;\n }\n state[j] += value;\n return pos;\n }\n function hasMoreVlq(mappings, i, length) {\n if (i >= length)\n return false;\n return mappings.charCodeAt(i) !== comma;\n }\n function sort(line) {\n line.sort(sortComparator);\n }\n function sortComparator(a, b) {\n return a[0] - b[0];\n }\n function encode(decoded) {\n const state = new Int32Array(5);\n const bufLength = 1024 * 16;\n const subLength = bufLength - 36;\n const buf = new Uint8Array(bufLength);\n const sub = buf.subarray(0, subLength);\n let pos = 0;\n let out = '';\n for (let i = 0; i < decoded.length; i++) {\n const line = decoded[i];\n if (i > 0) {\n if (pos === bufLength) {\n out += td.decode(buf);\n pos = 0;\n }\n buf[pos++] = semicolon;\n }\n if (line.length === 0)\n continue;\n state[0] = 0;\n for (let j = 0; j < line.length; j++) {\n const segment = line[j];\n // We can push up to 5 ints, each int can take at most 7 chars, and we\n // may push a comma.\n if (pos > subLength) {\n out += td.decode(sub);\n buf.copyWithin(0, subLength, pos);\n pos -= subLength;\n }\n if (j > 0)\n buf[pos++] = comma;\n pos = encodeInteger(buf, pos, state, segment, 0); // genColumn\n if (segment.length === 1)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 1); // sourcesIndex\n pos = encodeInteger(buf, pos, state, segment, 2); // sourceLine\n pos = encodeInteger(buf, pos, state, segment, 3); // sourceColumn\n if (segment.length === 4)\n continue;\n pos = encodeInteger(buf, pos, state, segment, 4); // namesIndex\n }\n }\n return out + td.decode(buf.subarray(0, pos));\n }\n function encodeInteger(buf, pos, state, segment, j) {\n const next = segment[j];\n let num = next - state[j];\n state[j] = next;\n num = num < 0 ? (-num << 1) | 1 : num << 1;\n do {\n let clamped = num & 0b011111;\n num >>>= 5;\n if (num > 0)\n clamped |= 0b100000;\n buf[pos++] = intToChar[clamped];\n } while (num > 0);\n return pos;\n }\n\n exports.decode = decode;\n exports.encode = encode;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=sourcemap-codec.umd.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.resolveURI = factory());\n})(this, (function () { 'use strict';\n\n // Matches the scheme of a URL, eg \"http://\"\n const schemeRegex = /^[\\w+.-]+:\\/\\//;\n /**\n * Matches the parts of a URL:\n * 1. Scheme, including \":\", guaranteed.\n * 2. User/password, including \"@\", optional.\n * 3. Host, guaranteed.\n * 4. Port, including \":\", optional.\n * 5. Path, including \"/\", optional.\n * 6. Query, including \"?\", optional.\n * 7. Hash, including \"#\", optional.\n */\n const urlRegex = /^([\\w+.-]+:)\\/\\/([^@/#?]*@)?([^:/#?]*)(:\\d+)?(\\/[^#?]*)?(\\?[^#]*)?(#.*)?/;\n /**\n * File URLs are weird. They dont' need the regular `//` in the scheme, they may or may not start\n * with a leading `/`, they can have a domain (but only if they don't start with a Windows drive).\n *\n * 1. Host, optional.\n * 2. Path, which may include \"/\", guaranteed.\n * 3. Query, including \"?\", optional.\n * 4. Hash, including \"#\", optional.\n */\n const fileRegex = /^file:(?:\\/\\/((?![a-z]:)[^/#?]*)?)?(\\/?[^#?]*)(\\?[^#]*)?(#.*)?/i;\n function isAbsoluteUrl(input) {\n return schemeRegex.test(input);\n }\n function isSchemeRelativeUrl(input) {\n return input.startsWith('//');\n }\n function isAbsolutePath(input) {\n return input.startsWith('/');\n }\n function isFileUrl(input) {\n return input.startsWith('file:');\n }\n function isRelative(input) {\n return /^[.?#]/.test(input);\n }\n function parseAbsoluteUrl(input) {\n const match = urlRegex.exec(input);\n return makeUrl(match[1], match[2] || '', match[3], match[4] || '', match[5] || '/', match[6] || '', match[7] || '');\n }\n function parseFileUrl(input) {\n const match = fileRegex.exec(input);\n const path = match[2];\n return makeUrl('file:', '', match[1] || '', '', isAbsolutePath(path) ? path : '/' + path, match[3] || '', match[4] || '');\n }\n function makeUrl(scheme, user, host, port, path, query, hash) {\n return {\n scheme,\n user,\n host,\n port,\n path,\n query,\n hash,\n type: 7 /* Absolute */,\n };\n }\n function parseUrl(input) {\n if (isSchemeRelativeUrl(input)) {\n const url = parseAbsoluteUrl('http:' + input);\n url.scheme = '';\n url.type = 6 /* SchemeRelative */;\n return url;\n }\n if (isAbsolutePath(input)) {\n const url = parseAbsoluteUrl('http://foo.com' + input);\n url.scheme = '';\n url.host = '';\n url.type = 5 /* AbsolutePath */;\n return url;\n }\n if (isFileUrl(input))\n return parseFileUrl(input);\n if (isAbsoluteUrl(input))\n return parseAbsoluteUrl(input);\n const url = parseAbsoluteUrl('http://foo.com/' + input);\n url.scheme = '';\n url.host = '';\n url.type = input\n ? input.startsWith('?')\n ? 3 /* Query */\n : input.startsWith('#')\n ? 2 /* Hash */\n : 4 /* RelativePath */\n : 1 /* Empty */;\n return url;\n }\n function stripPathFilename(path) {\n // If a path ends with a parent directory \"..\", then it's a relative path with excess parent\n // paths. It's not a file, so we can't strip it.\n if (path.endsWith('/..'))\n return path;\n const index = path.lastIndexOf('/');\n return path.slice(0, index + 1);\n }\n function mergePaths(url, base) {\n normalizePath(base, base.type);\n // If the path is just a \"/\", then it was an empty path to begin with (remember, we're a relative\n // path).\n if (url.path === '/') {\n url.path = base.path;\n }\n else {\n // Resolution happens relative to the base path's directory, not the file.\n url.path = stripPathFilename(base.path) + url.path;\n }\n }\n /**\n * The path can have empty directories \"//\", unneeded parents \"foo/..\", or current directory\n * \"foo/.\". We need to normalize to a standard representation.\n */\n function normalizePath(url, type) {\n const rel = type <= 4 /* RelativePath */;\n const pieces = url.path.split('/');\n // We need to preserve the first piece always, so that we output a leading slash. The item at\n // pieces[0] is an empty string.\n let pointer = 1;\n // Positive is the number of real directories we've output, used for popping a parent directory.\n // Eg, \"foo/bar/..\" will have a positive 2, and we can decrement to be left with just \"foo\".\n let positive = 0;\n // We need to keep a trailing slash if we encounter an empty directory (eg, splitting \"foo/\" will\n // generate `[\"foo\", \"\"]` pieces). And, if we pop a parent directory. But once we encounter a\n // real directory, we won't need to append, unless the other conditions happen again.\n let addTrailingSlash = false;\n for (let i = 1; i < pieces.length; i++) {\n const piece = pieces[i];\n // An empty directory, could be a trailing slash, or just a double \"//\" in the path.\n if (!piece) {\n addTrailingSlash = true;\n continue;\n }\n // If we encounter a real directory, then we don't need to append anymore.\n addTrailingSlash = false;\n // A current directory, which we can always drop.\n if (piece === '.')\n continue;\n // A parent directory, we need to see if there are any real directories we can pop. Else, we\n // have an excess of parents, and we'll need to keep the \"..\".\n if (piece === '..') {\n if (positive) {\n addTrailingSlash = true;\n positive--;\n pointer--;\n }\n else if (rel) {\n // If we're in a relativePath, then we need to keep the excess parents. Else, in an absolute\n // URL, protocol relative URL, or an absolute path, we don't need to keep excess.\n pieces[pointer++] = piece;\n }\n continue;\n }\n // We've encountered a real directory. Move it to the next insertion pointer, which accounts for\n // any popped or dropped directories.\n pieces[pointer++] = piece;\n positive++;\n }\n let path = '';\n for (let i = 1; i < pointer; i++) {\n path += '/' + pieces[i];\n }\n if (!path || (addTrailingSlash && !path.endsWith('/..'))) {\n path += '/';\n }\n url.path = path;\n }\n /**\n * Attempts to resolve `input` URL/path relative to `base`.\n */\n function resolve(input, base) {\n if (!input && !base)\n return '';\n const url = parseUrl(input);\n let inputType = url.type;\n if (base && inputType !== 7 /* Absolute */) {\n const baseUrl = parseUrl(base);\n const baseType = baseUrl.type;\n switch (inputType) {\n case 1 /* Empty */:\n url.hash = baseUrl.hash;\n // fall through\n case 2 /* Hash */:\n url.query = baseUrl.query;\n // fall through\n case 3 /* Query */:\n case 4 /* RelativePath */:\n mergePaths(url, baseUrl);\n // fall through\n case 5 /* AbsolutePath */:\n // The host, user, and port are joined, you can't copy one without the others.\n url.user = baseUrl.user;\n url.host = baseUrl.host;\n url.port = baseUrl.port;\n // fall through\n case 6 /* SchemeRelative */:\n // The input doesn't have a schema at least, so we need to copy at least that over.\n url.scheme = baseUrl.scheme;\n }\n if (baseType > inputType)\n inputType = baseType;\n }\n normalizePath(url, inputType);\n const queryHash = url.query + url.hash;\n switch (inputType) {\n // This is impossible, because of the empty checks at the start of the function.\n // case UrlType.Empty:\n case 2 /* Hash */:\n case 3 /* Query */:\n return queryHash;\n case 4 /* RelativePath */: {\n // The first char is always a \"/\", and we need it to be relative.\n const path = url.path.slice(1);\n if (!path)\n return queryHash || '.';\n if (isRelative(base || input) && !isRelative(path)) {\n // If base started with a leading \".\", or there is no base and input started with a \".\",\n // then we need to ensure that the relative path starts with a \".\". We don't know if\n // relative starts with a \"..\", though, so check before prepending.\n return './' + path + queryHash;\n }\n return path + queryHash;\n }\n case 5 /* AbsolutePath */:\n return url.path + queryHash;\n default:\n return url.scheme + '//' + url.user + url.host + url.port + url.path + queryHash;\n }\n }\n\n return resolve;\n\n}));\n//# sourceMappingURL=resolve-uri.umd.js.map\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec'), require('@jridgewell/trace-mapping')) :\n typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec', '@jridgewell/trace-mapping'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec, global.traceMapping));\n})(this, (function (exports, setArray, sourcemapCodec, traceMapping) { 'use strict';\n\n const COLUMN = 0;\n const SOURCES_INDEX = 1;\n const SOURCE_LINE = 2;\n const SOURCE_COLUMN = 3;\n const NAMES_INDEX = 4;\n\n const NO_NAME = -1;\n /**\n * Provides the state to generate a sourcemap.\n */\n class GenMapping {\n constructor({ file, sourceRoot } = {}) {\n this._names = new setArray.SetArray();\n this._sources = new setArray.SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n this._ignoreList = new setArray.SetArray();\n }\n }\n /**\n * Typescript doesn't allow friend access to private fields, so this just casts the map into a type\n * with public access modifiers.\n */\n function cast(map) {\n return map;\n }\n function addSegment(map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n return addSegmentInternal(false, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);\n }\n function addMapping(map, mapping) {\n return addMappingInternal(false, map, mapping);\n }\n /**\n * Same as `addSegment`, but will only add the segment if it generates useful information in the\n * resulting map. This only works correctly if segments are added **in order**, meaning you should\n * not add a segment with a lower generated line/column than one that came before.\n */\n const maybeAddSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) => {\n return addSegmentInternal(true, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content);\n };\n /**\n * Same as `addMapping`, but will only add the mapping if it generates useful information in the\n * resulting map. This only works correctly if mappings are added **in order**, meaning you should\n * not add a mapping with a lower generated line/column than one that came before.\n */\n const maybeAddMapping = (map, mapping) => {\n return addMappingInternal(true, map, mapping);\n };\n /**\n * Adds/removes the content of the source file to the source map.\n */\n function setSourceContent(map, source, content) {\n const { _sources: sources, _sourcesContent: sourcesContent } = cast(map);\n const index = setArray.put(sources, source);\n sourcesContent[index] = content;\n }\n function setIgnore(map, source, ignore = true) {\n const { _sources: sources, _sourcesContent: sourcesContent, _ignoreList: ignoreList } = cast(map);\n const index = setArray.put(sources, source);\n if (index === sourcesContent.length)\n sourcesContent[index] = null;\n if (ignore)\n setArray.put(ignoreList, index);\n else\n setArray.remove(ignoreList, index);\n }\n /**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\n function toDecodedMap(map) {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, _ignoreList: ignoreList, } = cast(map);\n removeEmptyFinalLines(mappings);\n return {\n version: 3,\n file: map.file || undefined,\n names: names.array,\n sourceRoot: map.sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n ignoreList: ignoreList.array,\n };\n }\n /**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\n function toEncodedMap(map) {\n const decoded = toDecodedMap(map);\n return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) });\n }\n /**\n * Constructs a new GenMapping, using the already present mappings of the input.\n */\n function fromMap(input) {\n const map = new traceMapping.TraceMap(input);\n const gen = new GenMapping({ file: map.file, sourceRoot: map.sourceRoot });\n putAll(cast(gen)._names, map.names);\n putAll(cast(gen)._sources, map.sources);\n cast(gen)._sourcesContent = map.sourcesContent || map.sources.map(() => null);\n cast(gen)._mappings = traceMapping.decodedMappings(map);\n if (map.ignoreList)\n putAll(cast(gen)._ignoreList, map.ignoreList);\n return gen;\n }\n /**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\n function allMappings(map) {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = cast(map);\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[COLUMN] };\n let source = undefined;\n let original = undefined;\n let name = undefined;\n if (seg.length !== 1) {\n source = sources.array[seg[SOURCES_INDEX]];\n original = { line: seg[SOURCE_LINE] + 1, column: seg[SOURCE_COLUMN] };\n if (seg.length === 5)\n name = names.array[seg[NAMES_INDEX]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n }\n // This split declaration is only so that terser can elminiate the static initialization block.\n function addSegmentInternal(skipable, map, genLine, genColumn, source, sourceLine, sourceColumn, name, content) {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = cast(map);\n const line = getLine(mappings, genLine);\n const index = getColumnIndex(line, genColumn);\n if (!source) {\n if (skipable && skipSourceless(line, index))\n return;\n return insert(line, index, [genColumn]);\n }\n const sourcesIndex = setArray.put(sources, source);\n const namesIndex = name ? setArray.put(names, name) : NO_NAME;\n if (sourcesIndex === sourcesContent.length)\n sourcesContent[sourcesIndex] = content !== null && content !== void 0 ? content : null;\n if (skipable && skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex)) {\n return;\n }\n return insert(line, index, name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, namesIndex]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn]);\n }\n function getLine(mappings, index) {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n }\n function getColumnIndex(line, genColumn) {\n let index = line.length;\n for (let i = index - 1; i >= 0; index = i--) {\n const current = line[i];\n if (genColumn >= current[COLUMN])\n break;\n }\n return index;\n }\n function insert(array, index, value) {\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n }\n function removeEmptyFinalLines(mappings) {\n const { length } = mappings;\n let len = length;\n for (let i = len - 1; i >= 0; len = i, i--) {\n if (mappings[i].length > 0)\n break;\n }\n if (len < length)\n mappings.length = len;\n }\n function putAll(setarr, array) {\n for (let i = 0; i < array.length; i++)\n setArray.put(setarr, array[i]);\n }\n function skipSourceless(line, index) {\n // The start of a line is already sourceless, so adding a sourceless segment to the beginning\n // doesn't generate any useful information.\n if (index === 0)\n return true;\n const prev = line[index - 1];\n // If the previous segment is also sourceless, then adding another sourceless segment doesn't\n // genrate any new information. Else, this segment will end the source/named segment and point to\n // a sourceless position, which is useful.\n return prev.length === 1;\n }\n function skipSource(line, index, sourcesIndex, sourceLine, sourceColumn, namesIndex) {\n // A source/named segment at the start of a line gives position at that genColumn\n if (index === 0)\n return false;\n const prev = line[index - 1];\n // If the previous segment is sourceless, then we're transitioning to a source.\n if (prev.length === 1)\n return false;\n // If the previous segment maps to the exact same source position, then this segment doesn't\n // provide any new position information.\n return (sourcesIndex === prev[SOURCES_INDEX] &&\n sourceLine === prev[SOURCE_LINE] &&\n sourceColumn === prev[SOURCE_COLUMN] &&\n namesIndex === (prev.length === 5 ? prev[NAMES_INDEX] : NO_NAME));\n }\n function addMappingInternal(skipable, map, mapping) {\n const { generated, source, original, name, content } = mapping;\n if (!source) {\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, null, null, null, null, null);\n }\n return addSegmentInternal(skipable, map, generated.line - 1, generated.column, source, original.line - 1, original.column, name, content);\n }\n\n exports.GenMapping = GenMapping;\n exports.addMapping = addMapping;\n exports.addSegment = addSegment;\n exports.allMappings = allMappings;\n exports.fromMap = fromMap;\n exports.maybeAddMapping = maybeAddMapping;\n exports.maybeAddSegment = maybeAddSegment;\n exports.setIgnore = setIgnore;\n exports.setSourceContent = setSourceContent;\n exports.toDecodedMap = toDecodedMap;\n exports.toEncodedMap = toEncodedMap;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=gen-mapping.umd.js.map\n","import {\n GenMapping,\n maybeAddMapping,\n setSourceContent,\n allMappings,\n toEncodedMap,\n toDecodedMap,\n} from \"@jridgewell/gen-mapping\";\n\nimport type {\n EncodedSourceMap,\n DecodedSourceMap,\n Mapping,\n} from \"@jridgewell/gen-mapping\";\n\nimport {\n type SourceMapInput,\n originalPositionFor,\n TraceMap,\n} from \"@jridgewell/trace-mapping\";\n\n/**\n * Build a sourcemap.\n */\n\nexport default class SourceMap {\n private _map: GenMapping;\n private _rawMappings: Mapping[] | undefined;\n private _sourceFileName: string | undefined;\n\n // Any real line is > 0, so init to 0 is fine.\n private _lastGenLine = 0;\n private _lastSourceLine = 0;\n\n // Source columns can be 0, but we only check in unison with sourceLine, which\n // inits to an impossible value. So init to 0 is fine.\n private _lastSourceColumn = 0;\n\n public _inputMap: TraceMap;\n\n constructor(\n opts: {\n sourceFileName?: string;\n sourceRoot?: string;\n inputSourceMap?: SourceMapInput;\n },\n code: string | { [sourceFileName: string]: string },\n ) {\n const map = (this._map = new GenMapping({ sourceRoot: opts.sourceRoot }));\n this._sourceFileName = opts.sourceFileName?.replace(/\\\\/g, \"/\");\n this._rawMappings = undefined;\n\n if (opts.inputSourceMap) {\n this._inputMap = new TraceMap(opts.inputSourceMap);\n const resolvedSources = this._inputMap.resolvedSources;\n if (resolvedSources.length) {\n for (let i = 0; i < resolvedSources.length; i++) {\n setSourceContent(\n map,\n resolvedSources[i],\n this._inputMap.sourcesContent?.[i],\n );\n }\n }\n }\n\n if (typeof code === \"string\" && !opts.inputSourceMap) {\n setSourceContent(map, this._sourceFileName, code);\n } else if (typeof code === \"object\") {\n for (const sourceFileName of Object.keys(code)) {\n setSourceContent(\n map,\n sourceFileName.replace(/\\\\/g, \"/\"),\n code[sourceFileName],\n );\n }\n }\n }\n\n /**\n * Get the sourcemap.\n */\n get(): EncodedSourceMap {\n return toEncodedMap(this._map);\n }\n\n getDecoded(): DecodedSourceMap {\n return toDecodedMap(this._map);\n }\n\n getRawMappings(): Mapping[] {\n return (this._rawMappings ||= allMappings(this._map));\n }\n\n /**\n * Mark the current generated position with a source position. May also be passed null line/column\n * values to insert a mapping to nothing.\n */\n\n mark(\n generated: { line: number; column: number },\n line: number,\n column: number,\n identifierName?: string | null,\n identifierNamePos?: { line: number; column: number },\n filename?: string | null,\n ) {\n this._rawMappings = undefined;\n\n let originalMapping: {\n source: string | null;\n name?: string | null;\n line: number | null;\n column: number | null;\n };\n\n if (line != null) {\n if (this._inputMap) {\n // This is the lookup for this mark\n originalMapping = originalPositionFor(this._inputMap, {\n line,\n column,\n });\n\n // If the we found a name, nothing else needs to be done\n // Maybe we're marking a `(` and the input map already had a name attached there,\n // or we're marking a `(` and the sourcemap spanned a `foo(`,\n // or we're marking an identifier, etc.\n if (!originalMapping.name && identifierNamePos) {\n // We're trying to mark a `(` (as that's the only thing that provides\n // an identifierNamePos currently), and we the AST had an identifier attached.\n // Lookup it's original name.\n const originalIdentifierMapping = originalPositionFor(\n this._inputMap,\n identifierNamePos,\n );\n if (originalIdentifierMapping.name) {\n identifierName = originalIdentifierMapping.name;\n }\n }\n } else {\n originalMapping = {\n source: filename?.replace(/\\\\/g, \"/\") || this._sourceFileName,\n line: line,\n column: column,\n };\n }\n }\n\n maybeAddMapping(this._map, {\n name: identifierName,\n generated,\n source: originalMapping?.source,\n original: originalMapping,\n });\n }\n}\n","import type SourceMap from \"./source-map.ts\";\nimport * as charcodes from \"charcodes\";\n\nexport type Pos = {\n line: number;\n column: number;\n};\nexport type Loc = {\n start?: Pos;\n end?: Pos;\n filename?: string;\n};\ntype SourcePos = {\n line: number | undefined;\n column: number | undefined;\n identifierName: string | undefined;\n filename: string | undefined;\n};\ntype InternalSourcePos = SourcePos & { identifierNamePos: Pos };\n\ntype QueueItem = {\n char: number;\n repeat: number;\n line: number | undefined;\n column: number | undefined;\n identifierName: undefined; // Not used, it always undefined.\n identifierNamePos: undefined; // Not used, it always undefined.\n filename: string | undefined;\n};\n\nexport default class Buffer {\n constructor(map: SourceMap | null, indentChar: string) {\n this._map = map;\n this._indentChar = indentChar;\n\n for (let i = 0; i < 64; i++) {\n this._fastIndentations.push(indentChar.repeat(i));\n }\n\n this._allocQueue();\n }\n\n _map: SourceMap = null;\n _buf = \"\";\n _str = \"\";\n _appendCount = 0;\n _last = 0;\n _queue: QueueItem[] = [];\n _queueCursor = 0;\n _canMarkIdName = true;\n _indentChar = \"\";\n _fastIndentations: string[] = [];\n\n _position = {\n line: 1,\n column: 0,\n };\n _sourcePosition: InternalSourcePos = {\n identifierName: undefined,\n identifierNamePos: undefined,\n line: undefined,\n column: undefined,\n filename: undefined,\n };\n\n _allocQueue() {\n const queue = this._queue;\n\n for (let i = 0; i < 16; i++) {\n queue.push({\n char: 0,\n repeat: 1,\n line: undefined,\n column: undefined,\n identifierName: undefined,\n identifierNamePos: undefined,\n filename: \"\",\n });\n }\n }\n\n _pushQueue(\n char: number,\n repeat: number,\n line: number | undefined,\n column: number | undefined,\n filename: string | undefined,\n ) {\n const cursor = this._queueCursor;\n if (cursor === this._queue.length) {\n this._allocQueue();\n }\n const item = this._queue[cursor];\n item.char = char;\n item.repeat = repeat;\n item.line = line;\n item.column = column;\n item.filename = filename;\n\n this._queueCursor++;\n }\n\n _popQueue(): QueueItem {\n if (this._queueCursor === 0) {\n throw new Error(\"Cannot pop from empty queue\");\n }\n return this._queue[--this._queueCursor];\n }\n\n /**\n * Get the final string output from the buffer, along with the sourcemap if one exists.\n */\n\n get() {\n this._flush();\n\n const map = this._map;\n const result = {\n // Whatever trim is used here should not execute a regex against the\n // source string since it may be arbitrarily large after all transformations\n code: (this._buf + this._str).trimRight(),\n // Decoded sourcemap is free to generate.\n decodedMap: map?.getDecoded(),\n // Used as a marker for backwards compatibility. We moved input map merging\n // into the generator. We cannot merge the input map a second time, so the\n // presence of this field tells us we've already done the work.\n get __mergedMap() {\n return this.map;\n },\n // Encoding the sourcemap is moderately CPU expensive.\n get map() {\n const resultMap = map ? map.get() : null;\n result.map = resultMap;\n return resultMap;\n },\n set map(value) {\n Object.defineProperty(result, \"map\", { value, writable: true });\n },\n // Retrieving the raw mappings is very memory intensive.\n get rawMappings() {\n const mappings = map?.getRawMappings();\n result.rawMappings = mappings;\n return mappings;\n },\n set rawMappings(value) {\n Object.defineProperty(result, \"rawMappings\", { value, writable: true });\n },\n };\n\n return result;\n }\n\n /**\n * Add a string to the buffer that cannot be reverted.\n */\n\n append(str: string, maybeNewline: boolean): void {\n this._flush();\n\n this._append(str, this._sourcePosition, maybeNewline);\n }\n\n appendChar(char: number): void {\n this._flush();\n this._appendChar(char, 1, this._sourcePosition);\n }\n\n /**\n * Add a string to the buffer than can be reverted.\n */\n queue(char: number): void {\n // Drop trailing spaces when a newline is inserted.\n if (char === charcodes.lineFeed) {\n while (this._queueCursor !== 0) {\n const char = this._queue[this._queueCursor - 1].char;\n if (char !== charcodes.space && char !== charcodes.tab) {\n break;\n }\n\n this._queueCursor--;\n }\n }\n\n const sourcePosition = this._sourcePosition;\n this._pushQueue(\n char,\n 1,\n sourcePosition.line,\n sourcePosition.column,\n sourcePosition.filename,\n );\n }\n\n /**\n * Same as queue, but this indentation will never have a sourcemap marker.\n */\n queueIndentation(repeat: number): void {\n if (repeat === 0) return;\n this._pushQueue(-1, repeat, undefined, undefined, undefined);\n }\n\n _flush(): void {\n const queueCursor = this._queueCursor;\n const queue = this._queue;\n for (let i = 0; i < queueCursor; i++) {\n const item: QueueItem = queue[i];\n this._appendChar(item.char, item.repeat, item);\n }\n this._queueCursor = 0;\n }\n\n _appendChar(\n char: number,\n repeat: number,\n sourcePos: InternalSourcePos,\n ): void {\n this._last = char;\n\n if (char === -1) {\n const fastIndentation = this._fastIndentations[repeat];\n if (fastIndentation !== undefined) {\n this._str += fastIndentation;\n } else {\n this._str +=\n repeat > 1 ? this._indentChar.repeat(repeat) : this._indentChar;\n }\n } else {\n this._str +=\n repeat > 1\n ? String.fromCharCode(char).repeat(repeat)\n : String.fromCharCode(char);\n }\n\n if (char !== charcodes.lineFeed) {\n this._mark(\n sourcePos.line,\n sourcePos.column,\n sourcePos.identifierName,\n sourcePos.identifierNamePos,\n sourcePos.filename,\n );\n this._position.column += repeat;\n } else {\n this._position.line++;\n this._position.column = 0;\n }\n\n if (this._canMarkIdName) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n }\n\n _append(\n str: string,\n sourcePos: InternalSourcePos,\n maybeNewline: boolean,\n ): void {\n const len = str.length;\n const position = this._position;\n\n this._last = str.charCodeAt(len - 1);\n\n if (++this._appendCount > 4096) {\n +this._str; // Unexplainable huge performance boost. Ref: https://github.com/davidmarkclements/flatstr License: MIT\n this._buf += this._str;\n this._str = str;\n this._appendCount = 0;\n } else {\n this._str += str;\n }\n\n if (!maybeNewline && !this._map) {\n position.column += len;\n return;\n }\n\n const { column, identifierName, identifierNamePos, filename } = sourcePos;\n let line = sourcePos.line;\n\n if (\n (identifierName != null || identifierNamePos != null) &&\n this._canMarkIdName\n ) {\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n\n // Search for newline chars. We search only for `\\n`, since both `\\r` and\n // `\\r\\n` are normalized to `\\n` during parse. We exclude `\\u2028` and\n // `\\u2029` for performance reasons, they're so uncommon that it's probably\n // ok. It's also unclear how other sourcemap utilities handle them...\n let i = str.indexOf(\"\\n\");\n let last = 0;\n\n // If the string starts with a newline char, then adding a mark is redundant.\n // This catches both \"no newlines\" and \"newline after several chars\".\n if (i !== 0) {\n this._mark(line, column, identifierName, identifierNamePos, filename);\n }\n\n // Now, find each remaining newline char in the string.\n while (i !== -1) {\n position.line++;\n position.column = 0;\n last = i + 1;\n\n // We mark the start of each line, which happens directly after this newline char\n // unless this is the last char.\n // When manually adding multi-line content (such as a comment), `line` will be `undefined`.\n if (last < len && line !== undefined) {\n this._mark(++line, 0, null, null, filename);\n }\n i = str.indexOf(\"\\n\", last);\n }\n position.column += len - last;\n }\n\n _mark(\n line: number | undefined,\n column: number | undefined,\n identifierName: string | undefined,\n identifierNamePos: Pos | undefined,\n filename: string | undefined,\n ): void {\n this._map?.mark(\n this._position,\n line,\n column,\n identifierName,\n identifierNamePos,\n filename,\n );\n }\n\n removeTrailingNewline(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.lineFeed\n ) {\n this._queueCursor--;\n }\n }\n\n removeLastSemicolon(): void {\n const queueCursor = this._queueCursor;\n if (\n queueCursor !== 0 &&\n this._queue[queueCursor - 1].char === charcodes.semicolon\n ) {\n this._queueCursor--;\n }\n }\n\n getLastChar(): number {\n const queueCursor = this._queueCursor;\n return queueCursor !== 0 ? this._queue[queueCursor - 1].char : this._last;\n }\n\n /**\n * This will only detect at most 1 newline after a call to `flush()`,\n * but this has not been found so far, and an accurate count can be achieved if needed later.\n */\n getNewlineCount(): number {\n const queueCursor = this._queueCursor;\n let count = 0;\n if (queueCursor === 0) return this._last === charcodes.lineFeed ? 1 : 0;\n for (let i = queueCursor - 1; i >= 0; i--) {\n if (this._queue[i].char !== charcodes.lineFeed) {\n break;\n }\n count++;\n }\n return count === queueCursor && this._last === charcodes.lineFeed\n ? count + 1\n : count;\n }\n\n /**\n * check if current _last + queue ends with newline, return the character before newline\n */\n endsWithCharAndNewline(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n if (queueCursor !== 0) {\n // every element in queue is one-length whitespace string\n const lastCp = queue[queueCursor - 1].char;\n if (lastCp !== charcodes.lineFeed) return;\n if (queueCursor > 1) {\n return queue[queueCursor - 2].char;\n } else {\n return this._last;\n }\n }\n // We assume that everything being matched is at most a single token plus some whitespace,\n // which everything currently is, but otherwise we'd have to expand _last or check _buf.\n }\n\n hasContent(): boolean {\n return this._queueCursor !== 0 || !!this._last;\n }\n\n /**\n * Certain sourcemap usecases expect mappings to be more accurate than\n * Babel's generic sourcemap handling allows. For now, we special-case\n * identifiers to allow for the primary cases to work.\n * The goal of this line is to ensure that the map output from Babel will\n * have an exact range on identifiers in the output code. Without this\n * line, Babel would potentially include some number of trailing tokens\n * that are printed after the identifier, but before another location has\n * been assigned.\n * This allows tooling like Rollup and Webpack to more accurately perform\n * their own transformations. Most importantly, this allows the import/export\n * transformations performed by those tools to loose less information when\n * applying their own transformations on top of the code and map results\n * generated by Babel itself.\n *\n * The primary example of this is the snippet:\n *\n * import mod from \"mod\";\n * mod();\n *\n * With this line, there will be one mapping range over \"mod\" and another\n * over \"();\", where previously it would have been a single mapping.\n */\n exactSource(loc: Loc | undefined, cb: () => void) {\n if (!this._map) {\n cb();\n return;\n }\n\n this.source(\"start\", loc);\n // @ts-expect-error identifierName is not defined\n const identifierName = loc.identifierName;\n const sourcePos = this._sourcePosition;\n if (identifierName) {\n this._canMarkIdName = false;\n sourcePos.identifierName = identifierName;\n }\n cb();\n\n if (identifierName) {\n this._canMarkIdName = true;\n sourcePos.identifierName = undefined;\n sourcePos.identifierNamePos = undefined;\n }\n this.source(\"end\", loc);\n }\n\n /**\n * Sets a given position as the current source location so generated code after this call\n * will be given this position in the sourcemap.\n */\n\n source(prop: \"start\" | \"end\", loc: Loc | undefined): void {\n if (!this._map) return;\n\n // Since this is called extremely often, we reuse the same _sourcePosition\n // object for the whole lifetime of the buffer.\n this._normalizePosition(prop, loc, 0);\n }\n\n sourceWithOffset(\n prop: \"start\" | \"end\",\n loc: Loc | undefined,\n columnOffset: number,\n ): void {\n if (!this._map) return;\n\n this._normalizePosition(prop, loc, columnOffset);\n }\n\n /**\n * Call a callback with a specific source location\n */\n\n withSource(prop: \"start\" | \"end\", loc: Loc, cb: () => void): void {\n if (this._map) {\n this.source(prop, loc);\n }\n\n cb();\n }\n\n _normalizePosition(prop: \"start\" | \"end\", loc: Loc, columnOffset: number) {\n const pos = loc[prop];\n const target = this._sourcePosition;\n\n if (pos) {\n target.line = pos.line;\n // TODO: Fix https://github.com/babel/babel/issues/15712 in downstream\n target.column = Math.max(pos.column + columnOffset, 0);\n target.filename = loc.filename;\n }\n }\n\n getCurrentColumn(): number {\n const queue = this._queue;\n const queueCursor = this._queueCursor;\n\n let lastIndex = -1;\n let len = 0;\n for (let i = 0; i < queueCursor; i++) {\n const item = queue[i];\n if (item.char === charcodes.lineFeed) {\n lastIndex = len;\n }\n len += item.repeat;\n }\n\n return lastIndex === -1 ? this._position.column + len : len - 1 - lastIndex;\n }\n\n getCurrentLine(): number {\n let count = 0;\n\n const queue = this._queue;\n for (let i = 0; i < this._queueCursor; i++) {\n if (queue[i].char === charcodes.lineFeed) {\n count++;\n }\n }\n\n return this._position.line + count;\n }\n}\n","import {\n FLIPPED_ALIAS_KEYS,\n isArrayExpression,\n isAssignmentExpression,\n isBinary,\n isBlockStatement,\n isCallExpression,\n isFunction,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isObjectExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isStringLiteral,\n} from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nimport type { NodeHandlers } from \"./index.ts\";\n\nimport type * as t from \"@babel/types\";\n\nconst enum WhitespaceFlag {\n before = 1 << 0,\n after = 1 << 1,\n}\n\nexport type { WhitespaceFlag };\n\nfunction crawlInternal(\n node: t.Node,\n state: { hasCall: boolean; hasFunction: boolean; hasHelper: boolean },\n) {\n if (!node) return state;\n\n if (isMemberExpression(node) || isOptionalMemberExpression(node)) {\n crawlInternal(node.object, state);\n if (node.computed) crawlInternal(node.property, state);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n crawlInternal(node.left, state);\n crawlInternal(node.right, state);\n } else if (isCallExpression(node) || isOptionalCallExpression(node)) {\n state.hasCall = true;\n crawlInternal(node.callee, state);\n } else if (isFunction(node)) {\n state.hasFunction = true;\n } else if (isIdentifier(node)) {\n state.hasHelper =\n // @ts-expect-error todo(flow->ts): node.callee is not really expected here…\n state.hasHelper || (node.callee && isHelper(node.callee));\n }\n\n return state;\n}\n\n/**\n * Crawl a node to test if it contains a CallExpression, a Function, or a Helper.\n *\n * @example\n * crawl(node)\n * // { hasCall: false, hasFunction: true, hasHelper: false }\n */\n\nfunction crawl(node: t.Node) {\n return crawlInternal(node, {\n hasCall: false,\n hasFunction: false,\n hasHelper: false,\n });\n}\n\n/**\n * Test if a node is or has a helper.\n */\n\nfunction isHelper(node: t.Node): boolean {\n if (!node) return false;\n\n if (isMemberExpression(node)) {\n return isHelper(node.object) || isHelper(node.property);\n } else if (isIdentifier(node)) {\n return (\n node.name === \"require\" ||\n node.name.charCodeAt(0) === charCodes.underscore\n );\n } else if (isCallExpression(node)) {\n return isHelper(node.callee);\n } else if (isBinary(node) || isAssignmentExpression(node)) {\n return (\n (isIdentifier(node.left) && isHelper(node.left)) || isHelper(node.right)\n );\n } else {\n return false;\n }\n}\n\nfunction isType(node: t.Node) {\n return (\n isLiteral(node) ||\n isObjectExpression(node) ||\n isArrayExpression(node) ||\n isIdentifier(node) ||\n isMemberExpression(node)\n );\n}\n\n/**\n * Tests for node types that need whitespace.\n */\n\nexport const nodes: NodeHandlers = {\n /**\n * Test if AssignmentExpression needs whitespace.\n */\n\n AssignmentExpression(node: t.AssignmentExpression): WhitespaceFlag {\n const state = crawl(node.right);\n if ((state.hasCall && state.hasHelper) || state.hasFunction) {\n return state.hasFunction\n ? WhitespaceFlag.before | WhitespaceFlag.after\n : WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if SwitchCase needs whitespace.\n */\n\n SwitchCase(node: t.SwitchCase, parent: t.SwitchStatement): WhitespaceFlag {\n return (\n (!!node.consequent.length || parent.cases[0] === node\n ? WhitespaceFlag.before\n : 0) |\n (!node.consequent.length && parent.cases[parent.cases.length - 1] === node\n ? WhitespaceFlag.after\n : 0)\n );\n },\n\n /**\n * Test if LogicalExpression needs whitespace.\n */\n\n LogicalExpression(node: t.LogicalExpression): WhitespaceFlag {\n if (isFunction(node.left) || isFunction(node.right)) {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if Literal needs whitespace.\n */\n\n Literal(node: t.Literal): WhitespaceFlag {\n if (isStringLiteral(node) && node.value === \"use strict\") {\n return WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if CallExpressionish needs whitespace.\n */\n\n CallExpression(node: t.CallExpression): WhitespaceFlag {\n if (isFunction(node.callee) || isHelper(node)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n OptionalCallExpression(node: t.OptionalCallExpression): WhitespaceFlag {\n if (isFunction(node.callee)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n\n /**\n * Test if VariableDeclaration needs whitespace.\n */\n\n VariableDeclaration(node: t.VariableDeclaration): WhitespaceFlag {\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n let enabled = isHelper(declar.id) && !isType(declar.init);\n if (!enabled && declar.init) {\n const state = crawl(declar.init);\n enabled = (isHelper(declar.init) && state.hasCall) || state.hasFunction;\n }\n\n if (enabled) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n }\n },\n\n /**\n * Test if IfStatement needs whitespace.\n */\n\n IfStatement(node: t.IfStatement): WhitespaceFlag {\n if (isBlockStatement(node.consequent)) {\n return WhitespaceFlag.before | WhitespaceFlag.after;\n }\n },\n};\n\n/**\n * Test if Property needs whitespace.\n */\n\nnodes.ObjectProperty =\n nodes.ObjectTypeProperty =\n nodes.ObjectMethod =\n function (\n node: t.ObjectProperty | t.ObjectTypeProperty | t.ObjectMethod,\n parent: t.ObjectExpression,\n ): WhitespaceFlag {\n if (parent.properties[0] === node) {\n return WhitespaceFlag.before;\n }\n };\n\nnodes.ObjectTypeCallProperty = function (\n node: t.ObjectTypeCallProperty,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (parent.callProperties[0] === node && !parent.properties?.length) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeIndexer = function (\n node: t.ObjectTypeIndexer,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.indexers[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\nnodes.ObjectTypeInternalSlot = function (\n node: t.ObjectTypeInternalSlot,\n parent: t.ObjectTypeAnnotation,\n): WhitespaceFlag {\n if (\n parent.internalSlots[0] === node &&\n !parent.properties?.length &&\n !parent.callProperties?.length &&\n !parent.indexers?.length\n ) {\n return WhitespaceFlag.before;\n }\n};\n\n/**\n * Add whitespace tests for nodes and their aliases.\n */\n\n(\n [\n [\"Function\", true],\n [\"Class\", true],\n [\"Loop\", true],\n [\"LabeledStatement\", true],\n [\"SwitchStatement\", true],\n [\"TryStatement\", true],\n ] as const\n).forEach(function ([type, amounts]) {\n [type as string]\n .concat(FLIPPED_ALIAS_KEYS[type] || [])\n .forEach(function (type) {\n const ret = amounts ? WhitespaceFlag.before | WhitespaceFlag.after : 0;\n nodes[type] = () => ret;\n });\n});\n","import {\n isArrayTypeAnnotation,\n isArrowFunctionExpression,\n isBinaryExpression,\n isCallExpression,\n isExportDeclaration,\n isForOfStatement,\n isIndexedAccessType,\n isMemberExpression,\n isObjectPattern,\n isOptionalMemberExpression,\n isYieldExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nconst PRECEDENCE = new Map([\n [\"||\", 0],\n [\"??\", 0],\n [\"|>\", 0],\n [\"&&\", 1],\n [\"|\", 2],\n [\"^\", 3],\n [\"&\", 4],\n [\"==\", 5],\n [\"===\", 5],\n [\"!=\", 5],\n [\"!==\", 5],\n [\"<\", 6],\n [\">\", 6],\n [\"<=\", 6],\n [\">=\", 6],\n [\"in\", 6],\n [\"instanceof\", 6],\n [\">>\", 7],\n [\"<<\", 7],\n [\">>>\", 7],\n [\"+\", 8],\n [\"-\", 8],\n [\"*\", 9],\n [\"/\", 9],\n [\"%\", 9],\n [\"**\", 10],\n]);\n\nconst enum CheckParam {\n expressionStatement = 1 << 0,\n arrowBody = 1 << 1,\n exportDefault = 1 << 2,\n forHead = 1 << 3,\n forInHead = 1 << 4,\n forOfHead = 1 << 5,\n}\n\nfunction isTSTypeExpression(nodeType: string) {\n return (\n nodeType === \"TSAsExpression\" ||\n nodeType === \"TSSatisfiesExpression\" ||\n nodeType === \"TSTypeAssertion\"\n );\n}\n\nconst isClassExtendsClause = (\n node: t.Node,\n parent: t.Node,\n): parent is t.Class => {\n const parentType = parent.type;\n return (\n (parentType === \"ClassDeclaration\" || parentType === \"ClassExpression\") &&\n parent.superClass === node\n );\n};\n\nconst hasPostfixPart = (node: t.Node, parent: t.Node) => {\n const parentType = parent.type;\n return (\n ((parentType === \"MemberExpression\" ||\n parentType === \"OptionalMemberExpression\") &&\n parent.object === node) ||\n ((parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\") &&\n parent.callee === node) ||\n (parentType === \"TaggedTemplateExpression\" && parent.tag === node) ||\n parentType === \"TSNonNullExpression\"\n );\n};\n\nexport function NullableTypeAnnotation(\n node: t.NullableTypeAnnotation,\n parent: t.Node,\n): boolean {\n return isArrayTypeAnnotation(parent);\n}\n\nexport function FunctionTypeAnnotation(\n node: t.FunctionTypeAnnotation,\n parent: t.Node,\n printStack: Array,\n): boolean {\n if (printStack.length < 3) return;\n\n const parentType = parent.type;\n return (\n // (() => A) | (() => B)\n parentType === \"UnionTypeAnnotation\" ||\n // (() => A) & (() => B)\n parentType === \"IntersectionTypeAnnotation\" ||\n // (() => A)[]\n parentType === \"ArrayTypeAnnotation\" ||\n // (A: T): (T => T[]) => B => [A, B]\n (parentType === \"TypeAnnotation\" &&\n // Check grandparent\n isArrowFunctionExpression(printStack[printStack.length - 3]))\n );\n}\n\nexport function UpdateExpression(\n node: t.UpdateExpression,\n parent: t.Node,\n): boolean {\n return hasPostfixPart(node, parent) || isClassExtendsClause(node, parent);\n}\n\nexport function ObjectExpression(\n node: t.ObjectExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.arrowBody,\n );\n}\n\nexport function DoExpression(\n node: t.DoExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n // `async do` can start an expression statement\n return (\n !node.async && isFirstInContext(printStack, CheckParam.expressionStatement)\n );\n}\n\nexport function Binary(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean | undefined {\n const parentType = parent.type;\n if (\n node.operator === \"**\" &&\n parentType === \"BinaryExpression\" &&\n parent.operator === \"**\"\n ) {\n return parent.left === node;\n }\n\n if (isClassExtendsClause(node, parent)) {\n return true;\n }\n\n if (\n hasPostfixPart(node, parent) ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"AwaitExpression\"\n ) {\n return true;\n }\n\n if (parentType === \"BinaryExpression\" || parentType === \"LogicalExpression\") {\n const parentPos = PRECEDENCE.get(parent.operator);\n const nodePos = PRECEDENCE.get(node.operator);\n\n if (\n // Logical expressions with the same precedence don't need parens.\n (parentPos === nodePos &&\n parent.right === node &&\n parentType !== \"LogicalExpression\") ||\n parentPos > nodePos\n ) {\n return true;\n }\n }\n\n return undefined;\n}\n\nexport function UnionTypeAnnotation(\n node: t.UnionTypeAnnotation,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"ArrayTypeAnnotation\" ||\n parentType === \"NullableTypeAnnotation\" ||\n parentType === \"IntersectionTypeAnnotation\" ||\n parentType === \"UnionTypeAnnotation\"\n );\n}\n\nexport { UnionTypeAnnotation as IntersectionTypeAnnotation };\n\nexport function OptionalIndexedAccessType(\n node: t.OptionalIndexedAccessType,\n parent: t.Node,\n): boolean {\n return isIndexedAccessType(parent) && parent.objectType === node;\n}\n\nexport function TSAsExpression() {\n return true;\n}\n\nexport {\n TSAsExpression as TSSatisfiesExpression,\n TSAsExpression as TSTypeAssertion,\n};\n\nexport function TSUnionType(node: t.TSUnionType, parent: t.Node): boolean {\n const parentType = parent.type;\n return (\n parentType === \"TSArrayType\" ||\n parentType === \"TSOptionalType\" ||\n parentType === \"TSIntersectionType\" ||\n parentType === \"TSUnionType\" ||\n parentType === \"TSRestType\"\n );\n}\n\nexport { TSUnionType as TSIntersectionType };\n\nexport function TSInferType(node: t.TSInferType, parent: t.Node): boolean {\n const parentType = parent.type;\n return parentType === \"TSArrayType\" || parentType === \"TSOptionalType\";\n}\n\nexport function TSInstantiationExpression(\n node: t.TSInstantiationExpression,\n parent: t.Node,\n) {\n const parentType = parent.type;\n return (\n (parentType === \"CallExpression\" ||\n parentType === \"OptionalCallExpression\" ||\n parentType === \"NewExpression\" ||\n parentType === \"TSInstantiationExpression\") &&\n !!parent.typeParameters\n );\n}\n\nexport function BinaryExpression(\n node: t.BinaryExpression,\n parent: t.Node,\n): boolean {\n // let i = (1 in []);\n // for ((1 in []);;);\n if (node.operator === \"in\") {\n const parentType = parent.type;\n return (\n parentType === \"VariableDeclarator\" ||\n parentType === \"ForStatement\" ||\n parentType === \"ForInStatement\" ||\n parentType === \"ForOfStatement\"\n );\n }\n return false;\n}\n\nexport function SequenceExpression(\n node: t.SequenceExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n // Although parentheses wouldn't hurt around sequence\n // expressions in the head of for loops, traditional style\n // dictates that e.g. i++, j++ should not be wrapped with\n // parentheses.\n parentType === \"ForStatement\" ||\n parentType === \"ThrowStatement\" ||\n parentType === \"ReturnStatement\" ||\n (parentType === \"IfStatement\" && parent.test === node) ||\n (parentType === \"WhileStatement\" && parent.test === node) ||\n (parentType === \"ForInStatement\" && parent.right === node) ||\n (parentType === \"SwitchStatement\" && parent.discriminant === node) ||\n (parentType === \"ExpressionStatement\" && parent.expression === node)\n ) {\n return false;\n }\n\n // Otherwise err on the side of overparenthesization, adding\n // explicit exceptions above if this proves overzealous.\n return true;\n}\n\nexport function YieldExpression(\n node: t.YieldExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n return (\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n hasPostfixPart(node, parent) ||\n (parentType === \"AwaitExpression\" && isYieldExpression(node)) ||\n (parentType === \"ConditionalExpression\" && node === parent.test) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport { YieldExpression as AwaitExpression };\n\nexport function ClassExpression(\n node: t.ClassExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function UnaryLike(\n node:\n | t.UnaryLike\n | t.ArrowFunctionExpression\n | t.ConditionalExpression\n | t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n return (\n hasPostfixPart(node, parent) ||\n (isBinaryExpression(parent) &&\n parent.operator === \"**\" &&\n parent.left === node) ||\n isClassExtendsClause(node, parent)\n );\n}\n\nexport function FunctionExpression(\n node: t.FunctionExpression,\n parent: t.Node,\n printStack: Array,\n): boolean {\n return isFirstInContext(\n printStack,\n CheckParam.expressionStatement | CheckParam.exportDefault,\n );\n}\n\nexport function ArrowFunctionExpression(\n node: t.ArrowFunctionExpression,\n parent: t.Node,\n): boolean {\n return isExportDeclaration(parent) || ConditionalExpression(node, parent);\n}\n\nexport function ConditionalExpression(\n node:\n | t.ConditionalExpression\n | t.ArrowFunctionExpression\n | t.AssignmentExpression,\n parent?: t.Node,\n): boolean {\n const parentType = parent.type;\n if (\n parentType === \"UnaryExpression\" ||\n parentType === \"SpreadElement\" ||\n parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\" ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n parentType === \"AwaitExpression\" ||\n isTSTypeExpression(parentType)\n ) {\n return true;\n }\n\n return UnaryLike(node, parent);\n}\n\nexport function OptionalMemberExpression(\n node: t.OptionalMemberExpression,\n parent: t.Node,\n): boolean {\n return (\n (isCallExpression(parent) && parent.callee === node) ||\n (isMemberExpression(parent) && parent.object === node)\n );\n}\n\nexport { OptionalMemberExpression as OptionalCallExpression };\n\nexport function AssignmentExpression(\n node: t.AssignmentExpression,\n parent: t.Node,\n): boolean {\n if (isObjectPattern(node.left)) {\n return true;\n } else {\n return ConditionalExpression(node, parent);\n }\n}\n\nexport function LogicalExpression(\n node: t.LogicalExpression,\n parent: t.Node,\n): boolean {\n const parentType = parent.type;\n if (isTSTypeExpression(parentType)) return true;\n if (parentType !== \"LogicalExpression\") return false;\n switch (node.operator) {\n case \"||\":\n return parent.operator === \"??\" || parent.operator === \"&&\";\n case \"&&\":\n return parent.operator === \"??\";\n case \"??\":\n return parent.operator !== \"??\";\n }\n}\n\nexport function Identifier(\n node: t.Identifier,\n parent: t.Node,\n printStack: Array,\n): boolean {\n const parentType = parent.type;\n // 13.15.2 AssignmentExpression RS: Evaluation\n // (fn) = function () {};\n if (\n node.extra?.parenthesized &&\n parentType === \"AssignmentExpression\" &&\n parent.left === node\n ) {\n const rightType = parent.right.type;\n if (\n (rightType === \"FunctionExpression\" || rightType === \"ClassExpression\") &&\n parent.right.id == null\n ) {\n return true;\n }\n }\n // Non-strict code allows the identifier `let`, but it cannot occur as-is in\n // certain contexts to avoid ambiguity with contextual keyword `let`.\n if (node.name === \"let\") {\n // Some contexts only forbid `let [`, so check if the next token would\n // be the left bracket of a computed member expression.\n const isFollowedByBracket =\n isMemberExpression(parent, {\n object: node,\n computed: true,\n }) ||\n isOptionalMemberExpression(parent, {\n object: node,\n computed: true,\n optional: false,\n });\n return isFirstInContext(\n printStack,\n isFollowedByBracket\n ? CheckParam.expressionStatement |\n CheckParam.forHead |\n CheckParam.forInHead |\n CheckParam.forOfHead\n : CheckParam.forOfHead,\n );\n }\n\n // ECMAScript specifically forbids a for-of loop from starting with the\n // token sequence `for (async of`, because it would be ambiguous with\n // `for (async of => {};;)`, so we need to add extra parentheses.\n //\n // If the parent is a for-await-of loop (i.e. parent.await === true), the\n // parentheses aren't strictly needed, but we add them anyway because\n // some tools (including earlier Babel versions) can't parse\n // `for await (async of [])` without them.\n return (\n node.name === \"async\" && isForOfStatement(parent) && node === parent.left\n );\n}\n\n// Walk up the print stack to determine if our node can come first\n// in a particular context.\nfunction isFirstInContext(\n printStack: Array,\n checkParam: CheckParam,\n): boolean {\n const expressionStatement = checkParam & CheckParam.expressionStatement;\n const arrowBody = checkParam & CheckParam.arrowBody;\n const exportDefault = checkParam & CheckParam.exportDefault;\n const forHead = checkParam & CheckParam.forHead;\n const forInHead = checkParam & CheckParam.forInHead;\n const forOfHead = checkParam & CheckParam.forOfHead;\n\n let i = printStack.length - 1;\n if (i <= 0) return;\n let node = printStack[i];\n i--;\n let parent = printStack[i];\n while (i >= 0) {\n const parentType = parent.type;\n if (\n (expressionStatement &&\n parentType === \"ExpressionStatement\" &&\n parent.expression === node) ||\n (exportDefault &&\n parentType === \"ExportDefaultDeclaration\" &&\n node === parent.declaration) ||\n (arrowBody &&\n parentType === \"ArrowFunctionExpression\" &&\n parent.body === node) ||\n (forHead && parentType === \"ForStatement\" && parent.init === node) ||\n (forInHead && parentType === \"ForInStatement\" && parent.left === node) ||\n (forOfHead && parentType === \"ForOfStatement\" && parent.left === node)\n ) {\n return true;\n }\n\n if (\n i > 0 &&\n ((hasPostfixPart(node, parent) && parentType !== \"NewExpression\") ||\n (parentType === \"SequenceExpression\" &&\n parent.expressions[0] === node) ||\n (parentType === \"UpdateExpression\" && !parent.prefix) ||\n (parentType === \"ConditionalExpression\" && parent.test === node) ||\n ((parentType === \"BinaryExpression\" ||\n parentType === \"LogicalExpression\") &&\n parent.left === node) ||\n (parentType === \"AssignmentExpression\" && parent.left === node))\n ) {\n node = parent;\n i--;\n parent = printStack[i];\n } else {\n return false;\n }\n }\n\n return false;\n}\n","import * as whitespace from \"./whitespace.ts\";\nimport * as parens from \"./parentheses.ts\";\nimport {\n FLIPPED_ALIAS_KEYS,\n isCallExpression,\n isExpressionStatement,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nimport type { WhitespaceFlag } from \"./whitespace.ts\";\n\ntype NodeHandler = (\n node: t.Node,\n // todo:\n // node: K extends keyof typeof t\n // ? Extract\n // : t.Node,\n parent: t.Node,\n stack?: t.Node[],\n) => R;\n\nexport type NodeHandlers = {\n [K in string]?: NodeHandler;\n};\n\nfunction expandAliases(obj: NodeHandlers) {\n const map = new Map>();\n\n function add(type: string, func: NodeHandler) {\n const fn = map.get(type);\n map.set(\n type,\n fn\n ? function (node, parent, stack) {\n return fn(node, parent, stack) ?? func(node, parent, stack);\n }\n : func,\n );\n }\n\n for (const type of Object.keys(obj)) {\n const aliases = FLIPPED_ALIAS_KEYS[type];\n if (aliases) {\n for (const alias of aliases) {\n add(alias, obj[type]);\n }\n } else {\n add(type, obj[type]);\n }\n }\n\n return map;\n}\n\n// Rather than using `t.is` on each object property, we pre-expand any type aliases\n// into concrete types so that the 'find' call below can be as fast as possible.\nconst expandedParens = expandAliases(parens);\nconst expandedWhitespaceNodes = expandAliases(whitespace.nodes);\n\nfunction isOrHasCallExpression(node: t.Node): boolean {\n if (isCallExpression(node)) {\n return true;\n }\n\n return isMemberExpression(node) && isOrHasCallExpression(node.object);\n}\n\nexport function needsWhitespace(\n node: t.Node,\n parent: t.Node,\n type: WhitespaceFlag,\n): boolean {\n if (!node) return false;\n\n if (isExpressionStatement(node)) {\n node = node.expression;\n }\n\n const flag = expandedWhitespaceNodes.get(node.type)?.(node, parent);\n\n if (typeof flag === \"number\") {\n return (flag & type) !== 0;\n }\n\n return false;\n}\n\nexport function needsWhitespaceBefore(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 1);\n}\n\nexport function needsWhitespaceAfter(node: t.Node, parent: t.Node) {\n return needsWhitespace(node, parent, 2);\n}\n\nexport function needsParens(\n node: t.Node,\n parent: t.Node,\n printStack?: t.Node[],\n) {\n if (!parent) return false;\n\n if (isNewExpression(parent) && parent.callee === node) {\n if (isOrHasCallExpression(node)) return true;\n }\n\n return expandedParens.get(node.type)?.(node, parent, printStack);\n}\n","import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\n\nexport function TaggedTemplateExpression(\n this: Printer,\n node: t.TaggedTemplateExpression,\n) {\n this.print(node.tag, node);\n this.print(node.typeParameters, node); // TS\n this.print(node.quasi, node);\n}\n\nexport function TemplateElement(\n this: Printer,\n node: t.TemplateElement,\n parent: t.TemplateLiteral,\n) {\n const isFirst = parent.quasis[0] === node;\n const isLast = parent.quasis[parent.quasis.length - 1] === node;\n\n const value = (isFirst ? \"`\" : \"}\") + node.value.raw + (isLast ? \"`\" : \"${\");\n\n this.token(value, true);\n}\n\nexport function TemplateLiteral(this: Printer, node: t.TemplateLiteral) {\n const quasis = node.quasis;\n\n for (let i = 0; i < quasis.length; i++) {\n this.print(quasis[i], node);\n\n if (i + 1 < quasis.length) {\n this.print(node.expressions[i], node);\n }\n }\n}\n","import type Printer from \"../printer.ts\";\nimport {\n isCallExpression,\n isLiteral,\n isMemberExpression,\n isNewExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as n from \"../node/index.ts\";\n\nexport function UnaryExpression(this: Printer, node: t.UnaryExpression) {\n const { operator } = node;\n if (\n operator === \"void\" ||\n operator === \"delete\" ||\n operator === \"typeof\" ||\n // throwExpressions\n operator === \"throw\"\n ) {\n this.word(operator);\n this.space();\n } else {\n this.token(operator);\n }\n\n this.print(node.argument, node);\n}\n\nexport function DoExpression(this: Printer, node: t.DoExpression) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function ParenthesizedExpression(\n this: Printer,\n node: t.ParenthesizedExpression,\n) {\n this.token(\"(\");\n this.print(node.expression, node);\n this.rightParens(node);\n}\n\nexport function UpdateExpression(this: Printer, node: t.UpdateExpression) {\n if (node.prefix) {\n this.token(node.operator);\n this.print(node.argument, node);\n } else {\n this.printTerminatorless(node.argument, node, true);\n this.token(node.operator);\n }\n}\n\nexport function ConditionalExpression(\n this: Printer,\n node: t.ConditionalExpression,\n) {\n this.print(node.test, node);\n this.space();\n this.token(\"?\");\n this.space();\n this.print(node.consequent, node);\n this.space();\n this.token(\":\");\n this.space();\n this.print(node.alternate, node);\n}\n\nexport function NewExpression(\n this: Printer,\n node: t.NewExpression,\n parent: t.Node,\n) {\n this.word(\"new\");\n this.space();\n this.print(node.callee, node);\n if (\n this.format.minified &&\n node.arguments.length === 0 &&\n !node.optional &&\n !isCallExpression(parent, { callee: node }) &&\n !isMemberExpression(parent) &&\n !isNewExpression(parent)\n ) {\n return;\n }\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n // TODO: This can never happen\n this.token(\"?.\");\n }\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.rightParens(node);\n}\n\nexport function SequenceExpression(this: Printer, node: t.SequenceExpression) {\n this.printList(node.expressions, node);\n}\n\nexport function ThisExpression(this: Printer) {\n this.word(\"this\");\n}\n\nexport function Super(this: Printer) {\n this.word(\"super\");\n}\n\nfunction isDecoratorMemberExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n): boolean {\n switch (node.type) {\n case \"Identifier\":\n return true;\n case \"MemberExpression\":\n return (\n !node.computed &&\n node.property.type === \"Identifier\" &&\n isDecoratorMemberExpression(node.object)\n );\n default:\n return false;\n }\n}\nfunction shouldParenthesizeDecoratorExpression(\n node: t.Expression | t.Super | t.V8IntrinsicIdentifier,\n) {\n if (node.type === \"ParenthesizedExpression\") {\n // We didn't check extra?.parenthesized here because we don't track decorators in needsParen\n return false;\n }\n return !isDecoratorMemberExpression(\n node.type === \"CallExpression\" ? node.callee : node,\n );\n}\n\nexport function _shouldPrintDecoratorsBeforeExport(\n this: Printer,\n node: t.ExportDeclaration & { declaration: t.ClassDeclaration },\n) {\n if (typeof this.format.decoratorsBeforeExport === \"boolean\") {\n return this.format.decoratorsBeforeExport;\n }\n return (\n typeof node.start === \"number\" && node.start === node.declaration.start\n );\n}\n\nexport function Decorator(this: Printer, node: t.Decorator) {\n this.token(\"@\");\n const { expression } = node;\n if (shouldParenthesizeDecoratorExpression(expression)) {\n this.token(\"(\");\n this.print(expression, node);\n this.token(\")\");\n } else {\n this.print(expression, node);\n }\n this.newline();\n}\n\nexport function OptionalMemberExpression(\n this: Printer,\n node: t.OptionalMemberExpression,\n) {\n let { computed } = node;\n const { optional, property } = node;\n\n this.print(node.object, node);\n\n if (!computed && isMemberExpression(property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n // @ts-expect-error todo(flow->ts) maybe instead of typeof check specific literal types?\n if (isLiteral(property) && typeof property.value === \"number\") {\n computed = true;\n }\n if (optional) {\n this.token(\"?.\");\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(property, node);\n this.token(\"]\");\n } else {\n if (!optional) {\n this.token(\".\");\n }\n this.print(property, node);\n }\n}\n\nexport function OptionalCallExpression(\n this: Printer,\n node: t.OptionalCallExpression,\n) {\n this.print(node.callee, node);\n\n this.print(node.typeParameters, node); // TS\n\n if (node.optional) {\n this.token(\"?.\");\n }\n\n this.print(node.typeArguments, node); // Flow\n\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.rightParens(node);\n}\n\nexport function CallExpression(this: Printer, node: t.CallExpression) {\n this.print(node.callee, node);\n\n this.print(node.typeArguments, node); // Flow\n this.print(node.typeParameters, node); // TS\n this.token(\"(\");\n this.printList(node.arguments, node);\n this.rightParens(node);\n}\n\nexport function Import(this: Printer) {\n this.word(\"import\");\n}\n\nexport function AwaitExpression(this: Printer, node: t.AwaitExpression) {\n this.word(\"await\");\n\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n}\n\nexport function YieldExpression(this: Printer, node: t.YieldExpression) {\n this.word(\"yield\", true);\n\n if (node.delegate) {\n this.token(\"*\");\n if (node.argument) {\n this.space();\n // line terminators are allowed after yield*\n this.print(node.argument, node);\n }\n } else {\n if (node.argument) {\n this.space();\n this.printTerminatorless(node.argument, node, false);\n }\n }\n}\n\nexport function EmptyStatement(this: Printer) {\n this.semicolon(true /* force */);\n}\n\nexport function ExpressionStatement(\n this: Printer,\n node: t.ExpressionStatement,\n) {\n this.print(node.expression, node);\n this.semicolon();\n}\n\nexport function AssignmentPattern(this: Printer, node: t.AssignmentPattern) {\n this.print(node.left, node);\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n if (node.left.optional) this.token(\"?\");\n // @ts-expect-error todo(flow->ts) property present on some of the types in union but not all\n this.print(node.left.typeAnnotation, node);\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.right, node);\n}\n\nexport function AssignmentExpression(\n this: Printer,\n node: t.AssignmentExpression,\n parent: t.Node,\n) {\n // Somewhere inside a for statement `init` node but doesn't usually\n // needs a paren except for `in` expressions: `for (a in b ? a : b;;)`\n const parens =\n this.inForStatementInitCounter &&\n node.operator === \"in\" &&\n !n.needsParens(node, parent);\n\n if (parens) {\n this.token(\"(\");\n }\n\n this.print(node.left, node);\n\n this.space();\n if (node.operator === \"in\" || node.operator === \"instanceof\") {\n this.word(node.operator);\n } else {\n this.token(node.operator);\n }\n this.space();\n\n this.print(node.right, node);\n\n if (parens) {\n this.token(\")\");\n }\n}\n\nexport function BindExpression(this: Printer, node: t.BindExpression) {\n this.print(node.object, node);\n this.token(\"::\");\n this.print(node.callee, node);\n}\n\nexport {\n AssignmentExpression as BinaryExpression,\n AssignmentExpression as LogicalExpression,\n};\n\nexport function MemberExpression(this: Printer, node: t.MemberExpression) {\n this.print(node.object, node);\n\n if (!node.computed && isMemberExpression(node.property)) {\n throw new TypeError(\"Got a MemberExpression for MemberExpression property\");\n }\n\n let computed = node.computed;\n // @ts-expect-error todo(flow->ts) maybe use specific literal types\n if (isLiteral(node.property) && typeof node.property.value === \"number\") {\n computed = true;\n }\n\n if (computed) {\n this.token(\"[\");\n this.print(node.property, node);\n this.token(\"]\");\n } else {\n this.token(\".\");\n this.print(node.property, node);\n }\n}\n\nexport function MetaProperty(this: Printer, node: t.MetaProperty) {\n this.print(node.meta, node);\n this.token(\".\");\n this.print(node.property, node);\n}\n\nexport function PrivateName(this: Printer, node: t.PrivateName) {\n this.token(\"#\");\n this.print(node.id, node);\n}\n\nexport function V8IntrinsicIdentifier(\n this: Printer,\n node: t.V8IntrinsicIdentifier,\n) {\n this.token(\"%\");\n this.word(node.name);\n}\n\nexport function ModuleExpression(this: Printer, node: t.ModuleExpression) {\n this.word(\"module\", true);\n this.space();\n this.token(\"{\");\n this.indent();\n const { body } = node;\n if (body.body.length || body.directives.length) {\n this.newline();\n }\n this.print(body, node);\n this.dedent();\n this.rightBrace(node);\n}\n","import type Printer from \"../printer.ts\";\nimport {\n isFor,\n isForStatement,\n isIfStatement,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function WithStatement(this: Printer, node: t.WithStatement) {\n this.word(\"with\");\n this.space();\n this.token(\"(\");\n this.print(node.object, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function IfStatement(this: Printer, node: t.IfStatement) {\n this.word(\"if\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.space();\n\n const needsBlock =\n node.alternate && isIfStatement(getLastStatement(node.consequent));\n if (needsBlock) {\n this.token(\"{\");\n this.newline();\n this.indent();\n }\n\n this.printAndIndentOnComments(node.consequent, node);\n\n if (needsBlock) {\n this.dedent();\n this.newline();\n this.token(\"}\");\n }\n\n if (node.alternate) {\n if (this.endsWith(charCodes.rightCurlyBrace)) this.space();\n this.word(\"else\");\n this.space();\n this.printAndIndentOnComments(node.alternate, node);\n }\n}\n\n// Recursively get the last statement.\nfunction getLastStatement(statement: t.Statement): t.Statement {\n // @ts-expect-error: If statement.body is empty or not a Node, isStatement will return false\n const { body } = statement;\n if (isStatement(body) === false) {\n return statement;\n }\n\n return getLastStatement(body);\n}\n\nexport function ForStatement(this: Printer, node: t.ForStatement) {\n this.word(\"for\");\n this.space();\n this.token(\"(\");\n\n this.inForStatementInitCounter++;\n this.print(node.init, node);\n this.inForStatementInitCounter--;\n this.token(\";\");\n\n if (node.test) {\n this.space();\n this.print(node.test, node);\n }\n this.token(\";\");\n\n if (node.update) {\n this.space();\n this.print(node.update, node);\n }\n\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport function WhileStatement(this: Printer, node: t.WhileStatement) {\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nfunction ForXStatement(this: Printer, node: t.ForXStatement) {\n this.word(\"for\");\n this.space();\n const isForOf = node.type === \"ForOfStatement\";\n if (isForOf && node.await) {\n this.word(\"await\");\n this.space();\n }\n this.noIndentInnerCommentsHere();\n this.token(\"(\");\n this.print(node.left, node);\n this.space();\n this.word(isForOf ? \"of\" : \"in\");\n this.space();\n this.print(node.right, node);\n this.token(\")\");\n this.printBlock(node);\n}\n\nexport const ForInStatement = ForXStatement;\nexport const ForOfStatement = ForXStatement;\n\nexport function DoWhileStatement(this: Printer, node: t.DoWhileStatement) {\n this.word(\"do\");\n this.space();\n this.print(node.body, node);\n this.space();\n this.word(\"while\");\n this.space();\n this.token(\"(\");\n this.print(node.test, node);\n this.token(\")\");\n this.semicolon();\n}\n\nfunction printStatementAfterKeyword(\n printer: Printer,\n node: t.Node,\n parent: t.Node,\n isLabel: boolean,\n) {\n if (node) {\n printer.space();\n printer.printTerminatorless(node, parent, isLabel);\n }\n\n printer.semicolon();\n}\n\nexport function BreakStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"break\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ContinueStatement(this: Printer, node: t.ContinueStatement) {\n this.word(\"continue\");\n printStatementAfterKeyword(this, node.label, node, true);\n}\n\nexport function ReturnStatement(this: Printer, node: t.ReturnStatement) {\n this.word(\"return\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function ThrowStatement(this: Printer, node: t.ThrowStatement) {\n this.word(\"throw\");\n printStatementAfterKeyword(this, node.argument, node, false);\n}\n\nexport function LabeledStatement(this: Printer, node: t.LabeledStatement) {\n this.print(node.label, node);\n this.token(\":\");\n this.space();\n this.print(node.body, node);\n}\n\nexport function TryStatement(this: Printer, node: t.TryStatement) {\n this.word(\"try\");\n this.space();\n this.print(node.block, node);\n this.space();\n\n // Esprima bug puts the catch clause in a `handlers` array.\n // see https://code.google.com/p/esprima/issues/detail?id=433\n // We run into this from regenerator generated ast.\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n if (node.handlers) {\n // @ts-expect-error todo(flow->ts) should ast node type be updated to support this?\n this.print(node.handlers[0], node);\n } else {\n this.print(node.handler, node);\n }\n\n if (node.finalizer) {\n this.space();\n this.word(\"finally\");\n this.space();\n this.print(node.finalizer, node);\n }\n}\n\nexport function CatchClause(this: Printer, node: t.CatchClause) {\n this.word(\"catch\");\n this.space();\n if (node.param) {\n this.token(\"(\");\n this.print(node.param, node);\n this.print(node.param.typeAnnotation, node);\n this.token(\")\");\n this.space();\n }\n this.print(node.body, node);\n}\n\nexport function SwitchStatement(this: Printer, node: t.SwitchStatement) {\n this.word(\"switch\");\n this.space();\n this.token(\"(\");\n this.print(node.discriminant, node);\n this.token(\")\");\n this.space();\n this.token(\"{\");\n\n this.printSequence(node.cases, node, {\n indent: true,\n addNewlines(leading, cas) {\n if (!leading && node.cases[node.cases.length - 1] === cas) return -1;\n },\n });\n\n this.rightBrace(node);\n}\n\nexport function SwitchCase(this: Printer, node: t.SwitchCase) {\n if (node.test) {\n this.word(\"case\");\n this.space();\n this.print(node.test, node);\n this.token(\":\");\n } else {\n this.word(\"default\");\n this.token(\":\");\n }\n\n if (node.consequent.length) {\n this.newline();\n this.printSequence(node.consequent, node, { indent: true });\n }\n}\n\nexport function DebuggerStatement(this: Printer) {\n this.word(\"debugger\");\n this.semicolon();\n}\n\nexport function VariableDeclaration(\n this: Printer,\n node: t.VariableDeclaration,\n parent: t.Node,\n) {\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n const { kind } = node;\n this.word(kind, kind === \"using\" || kind === \"await using\");\n this.space();\n\n let hasInits = false;\n // don't add whitespace to loop heads\n if (!isFor(parent)) {\n for (const declar of node.declarations) {\n if (declar.init) {\n // has an init so let's split it up over multiple lines\n hasInits = true;\n }\n }\n }\n\n //\n // use a pretty separator when we aren't in compact mode, have initializers and don't have retainLines on\n // this will format declarations like:\n //\n // let foo = \"bar\", bar = \"foo\";\n //\n // into\n //\n // let foo = \"bar\",\n // bar = \"foo\";\n //\n\n this.printList(node.declarations, node, {\n separator: hasInits\n ? function (this: Printer) {\n this.token(\",\");\n this.newline();\n }\n : undefined,\n indent: node.declarations.length > 1 ? true : false,\n });\n\n if (isFor(parent)) {\n // don't give semicolons to these nodes since they'll be inserted in the parent generator\n if (isForStatement(parent)) {\n if (parent.init === node) return;\n } else {\n if (parent.left === node) return;\n }\n }\n\n this.semicolon();\n}\n\nexport function VariableDeclarator(this: Printer, node: t.VariableDeclarator) {\n this.print(node.id, node);\n if (node.definite) this.token(\"!\"); // TS\n // @ts-expect-error todo(flow-ts) Property 'typeAnnotation' does not exist on type 'MemberExpression'.\n this.print(node.id.typeAnnotation, node);\n if (node.init) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.init, node);\n }\n}\n","import type Printer from \"../printer.ts\";\nimport {\n isExportDefaultDeclaration,\n isExportNamedDeclaration,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport * as charCodes from \"charcodes\";\n\nexport function ClassDeclaration(\n this: Printer,\n node: t.ClassDeclaration,\n parent: t.Node,\n) {\n const inExport =\n isExportDefaultDeclaration(parent) || isExportNamedDeclaration(parent);\n\n if (\n !inExport ||\n !this._shouldPrintDecoratorsBeforeExport(\n parent as t.ExportDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n this.printJoin(node.decorators, node);\n }\n\n if (node.declare) {\n // TS\n this.word(\"declare\");\n this.space();\n }\n\n if (node.abstract) {\n // TS\n this.word(\"abstract\");\n this.space();\n }\n\n this.word(\"class\");\n\n if (node.id) {\n this.space();\n this.print(node.id, node);\n }\n\n this.print(node.typeParameters, node);\n\n if (node.superClass) {\n this.space();\n this.word(\"extends\");\n this.space();\n this.print(node.superClass, node);\n this.print(node.superTypeParameters, node);\n }\n\n if (node.implements) {\n this.space();\n this.word(\"implements\");\n this.space();\n this.printList(node.implements, node);\n }\n\n this.space();\n this.print(node.body, node);\n}\n\nexport { ClassDeclaration as ClassExpression };\n\nexport function ClassBody(this: Printer, node: t.ClassBody) {\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n\n this.printSequence(node.body, node, { indent: true });\n\n if (!this.endsWith(charCodes.lineFeed)) this.newline();\n\n this.rightBrace(node);\n }\n}\n\nexport function ClassProperty(this: Printer, node: t.ClassProperty) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassAccessorProperty(\n this: Printer,\n node: t.ClassAccessorProperty,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to property key, avoid line break\n // between member modifiers and the property key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n // TS does not support class accessor property yet\n this.tsPrintClassMemberModifiers(node);\n\n this.word(\"accessor\", true);\n this.space();\n\n if (node.computed) {\n this.token(\"[\");\n this.print(node.key, node);\n this.token(\"]\");\n } else {\n // Todo: Flow does not support class accessor property yet.\n this._variance(node);\n this.print(node.key, node);\n }\n\n // TS\n if (node.optional) {\n this.token(\"?\");\n }\n if (node.definite) {\n this.token(\"!\");\n }\n\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassPrivateProperty(\n this: Printer,\n node: t.ClassPrivateProperty,\n) {\n this.printJoin(node.decorators, node);\n if (node.static) {\n this.word(\"static\");\n this.space();\n }\n this.print(node.key, node);\n this.print(node.typeAnnotation, node);\n if (node.value) {\n this.space();\n this.token(\"=\");\n this.space();\n this.print(node.value, node);\n }\n this.semicolon();\n}\n\nexport function ClassMethod(this: Printer, node: t.ClassMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function ClassPrivateMethod(this: Printer, node: t.ClassPrivateMethod) {\n this._classMethodHead(node);\n this.space();\n this.print(node.body, node);\n}\n\nexport function _classMethodHead(\n this: Printer,\n node: t.ClassMethod | t.ClassPrivateMethod | t.TSDeclareMethod,\n) {\n this.printJoin(node.decorators, node);\n\n // catch up to method key, avoid line break\n // between member modifiers/method heads and the method key.\n const endLine = node.key.loc?.end?.line;\n if (endLine) this.catchUp(endLine);\n\n this.tsPrintClassMemberModifiers(node);\n this._methodHead(node);\n}\n\nexport function StaticBlock(this: Printer, node: t.StaticBlock) {\n this.word(\"static\");\n this.space();\n this.token(\"{\");\n if (node.body.length === 0) {\n this.token(\"}\");\n } else {\n this.newline();\n this.printSequence(node.body, node, {\n indent: true,\n });\n this.rightBrace(node);\n }\n}\n","import type Printer from \"../printer.ts\";\nimport type * as t from \"@babel/types\";\nimport { isIdentifier } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport function _params(\n this: Printer,\n node: t.Function | t.TSDeclareMethod | t.TSDeclareFunction,\n idNode: t.Expression | t.PrivateName,\n parentNode: NodePath<\n t.Function | t.TSDeclareMethod | t.TSDeclareFunction\n >[\"parent\"],\n) {\n this.print(node.typeParameters, node);\n\n const nameInfo = _getFuncIdName.call(this, idNode, parentNode);\n if (nameInfo) {\n this.sourceIdentifierName(nameInfo.name, nameInfo.pos);\n }\n\n this.token(\"(\");\n this._parameters(node.params, node);\n this.token(\")\");\n\n const noLineTerminator = node.type === \"ArrowFunctionExpression\";\n this.print(node.returnType, node, noLineTerminator);\n\n this._noLineTerminator = noLineTerminator;\n}\n\nexport function _parameters(\n this: Printer,\n parameters: t.Function[\"params\"],\n parent:\n | t.Function\n | t.TSIndexSignature\n | t.TSDeclareMethod\n | t.TSDeclareFunction\n | t.TSFunctionType\n | t.TSConstructorType,\n) {\n const paramLength = parameters.length;\n for (let i = 0; i < paramLength; i++) {\n this._param(parameters[i], parent);\n\n if (i < parameters.length - 1) {\n this.token(\",\");\n this.space();\n }\n }\n}\n\nexport function _param(\n this: Printer,\n parameter: t.Identifier | t.RestElement | t.Pattern | t.TSParameterProperty,\n parent?:\n | t.Function\n | t.TSIndexSignature\n | t.TSDeclareMethod\n | t.TSDeclareFunction\n | t.TSFunctionType\n | t.TSConstructorType,\n) {\n this.printJoin(parameter.decorators, parameter);\n this.print(parameter, parent);\n if (\n // @ts-expect-error optional is not in TSParameterProperty\n parameter.optional\n ) {\n this.token(\"?\"); // TS / flow\n }\n\n this.print(\n // @ts-expect-error typeAnnotation is not in TSParameterProperty\n parameter.typeAnnotation,\n parameter,\n ); // TS / flow\n}\n\nexport function _methodHead(this: Printer, node: t.Method | t.TSDeclareMethod) {\n const kind = node.kind;\n const key = node.key;\n\n if (kind === \"get\" || kind === \"set\") {\n this.word(kind);\n this.space();\n }\n\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n if (\n kind === \"method\" ||\n // @ts-expect-error Fixme: kind: \"init\" is not defined\n kind === \"init\"\n ) {\n if (node.generator) {\n this.token(\"*\");\n }\n }\n\n if (node.computed) {\n this.token(\"[\");\n this.print(key, node);\n this.token(\"]\");\n } else {\n this.print(key, node);\n }\n\n if (\n // @ts-expect-error optional is not in ObjectMethod\n node.optional\n ) {\n // TS\n this.token(\"?\");\n }\n\n this._params(\n node,\n node.computed && node.key.type !== \"StringLiteral\" ? undefined : node.key,\n undefined,\n );\n}\n\nexport function _predicate(\n this: Printer,\n node:\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.ArrowFunctionExpression,\n noLineTerminatorAfter?: boolean,\n) {\n if (node.predicate) {\n if (!node.returnType) {\n this.token(\":\");\n }\n this.space();\n this.print(node.predicate, node, noLineTerminatorAfter);\n }\n}\n\nexport function _functionHead(\n this: Printer,\n node: t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction,\n parent: NodePath<\n t.FunctionDeclaration | t.FunctionExpression | t.TSDeclareFunction\n >[\"parent\"],\n) {\n if (node.async) {\n this.word(\"async\");\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n this.space();\n }\n this.word(\"function\");\n if (node.generator) {\n // We prevent inner comments from being printed here,\n // so that they are always consistently printed in the\n // same place regardless of the function type.\n this._endsWithInnerRaw = false;\n this.token(\"*\");\n }\n\n this.space();\n if (node.id) {\n this.print(node.id, node);\n }\n\n this._params(node, node.id, parent);\n if (node.type !== \"TSDeclareFunction\") {\n this._predicate(node);\n }\n}\n\nexport function FunctionExpression(\n this: Printer,\n node: t.FunctionExpression,\n parent: NodePath[\"parent\"],\n) {\n this._functionHead(node, parent);\n this.space();\n this.print(node.body, node);\n}\n\nexport { FunctionExpression as FunctionDeclaration };\n\nexport function ArrowFunctionExpression(\n this: Printer,\n node: t.ArrowFunctionExpression,\n parent: NodePath[\"parent\"],\n) {\n if (node.async) {\n this.word(\"async\", true);\n this.space();\n }\n\n // Try to avoid printing parens in simple cases, but only if we're pretty\n // sure that they aren't needed by type annotations or potential newlines.\n let firstParam;\n if (\n !this.format.retainLines &&\n node.params.length === 1 &&\n isIdentifier((firstParam = node.params[0])) &&\n !hasTypesOrComments(node, firstParam)\n ) {\n this.print(firstParam, node, true);\n } else {\n this._params(node, undefined, parent);\n }\n\n this._predicate(node, true);\n this.space();\n // When printing (x)/*1*/=>{}, we remove the parentheses\n // and thus there aren't two contiguous inner tokens.\n // We forcefully print inner comments here.\n this.printInnerComments();\n this.token(\"=>\");\n\n this.space();\n\n this.print(node.body, node);\n}\n\nfunction hasTypesOrComments(\n node: t.ArrowFunctionExpression,\n param: t.Identifier,\n): boolean {\n return !!(\n node.typeParameters ||\n node.returnType ||\n node.predicate ||\n param.typeAnnotation ||\n param.optional ||\n // Flow does not support `foo /*: string*/ => {};`\n param.leadingComments?.length ||\n param.trailingComments?.length\n );\n}\n\nfunction _getFuncIdName(\n this: Printer,\n idNode: t.Expression | t.PrivateName,\n parent: NodePath<\n t.Function | t.TSDeclareMethod | t.TSDeclareFunction\n >[\"parent\"],\n) {\n let id: t.Expression | t.PrivateName | t.LVal = idNode;\n\n if (!id && parent) {\n const parentType = parent.type;\n\n if (parentType === \"VariableDeclarator\") {\n id = parent.id;\n } else if (\n parentType === \"AssignmentExpression\" ||\n parentType === \"AssignmentPattern\"\n ) {\n id = parent.left;\n } else if (\n parentType === \"ObjectProperty\" ||\n parentType === \"ClassProperty\"\n ) {\n if (!parent.computed || parent.key.type === \"StringLiteral\") {\n id = parent.key;\n }\n } else if (\n parentType === \"ClassPrivateProperty\" ||\n parentType === \"ClassAccessorProperty\"\n ) {\n id = parent.key;\n }\n }\n\n if (!id) return;\n\n let nameInfo;\n\n if (id.type === \"Identifier\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.loc?.identifierName || id.name,\n };\n } else if (id.type === \"PrivateName\") {\n nameInfo = {\n pos: id.loc?.start,\n name: \"#\" + id.id.name,\n };\n } else if (id.type === \"StringLiteral\") {\n nameInfo = {\n pos: id.loc?.start,\n name: id.value,\n };\n }\n\n return nameInfo;\n}\n","import type Printer from \"../printer.ts\";\nimport {\n isClassDeclaration,\n isExportDefaultSpecifier,\n isExportNamespaceSpecifier,\n isImportDefaultSpecifier,\n isImportNamespaceSpecifier,\n isStatement,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nexport function ImportSpecifier(this: Printer, node: t.ImportSpecifier) {\n if (node.importKind === \"type\" || node.importKind === \"typeof\") {\n this.word(node.importKind);\n this.space();\n }\n\n this.print(node.imported, node);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.local && node.local.name !== node.imported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local, node);\n }\n}\n\nexport function ImportDefaultSpecifier(\n this: Printer,\n node: t.ImportDefaultSpecifier,\n) {\n this.print(node.local, node);\n}\n\nexport function ExportDefaultSpecifier(\n this: Printer,\n node: t.ExportDefaultSpecifier,\n) {\n this.print(node.exported, node);\n}\n\nexport function ExportSpecifier(this: Printer, node: t.ExportSpecifier) {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n this.print(node.local, node);\n // @ts-expect-error todo(flow-ts) maybe check node type instead of relying on name to be undefined on t.StringLiteral\n if (node.exported && node.local.name !== node.exported.name) {\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported, node);\n }\n}\n\nexport function ExportNamespaceSpecifier(\n this: Printer,\n node: t.ExportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.exported, node);\n}\n\nlet warningShown = false;\n\nexport function _printAttributes(\n this: Printer,\n node: Extract,\n) {\n const { importAttributesKeyword } = this.format;\n const { attributes, assertions } = node;\n\n if (\n attributes &&\n !importAttributesKeyword &&\n // In the production build only show the warning once.\n // We want to show it per-usage locally for tests.\n (!process.env.IS_PUBLISH || !warningShown)\n ) {\n warningShown = true;\n console.warn(`\\\nYou are using import attributes, without specifying the desired output syntax.\nPlease specify the \"importAttributesKeyword\" generator option, whose value can be one of:\n - \"with\" : \\`import { a } from \"b\" with { type: \"json\" };\\`\n - \"assert\" : \\`import { a } from \"b\" assert { type: \"json\" };\\`\n - \"with-legacy\" : \\`import { a } from \"b\" with type: \"json\";\\`\n`);\n }\n\n const useAssertKeyword =\n importAttributesKeyword === \"assert\" ||\n (!importAttributesKeyword && assertions);\n\n this.word(useAssertKeyword ? \"assert\" : \"with\");\n this.space();\n\n if (!useAssertKeyword && importAttributesKeyword !== \"with\") {\n // with-legacy\n this.printList(attributes || assertions, node);\n return;\n }\n\n this.token(\"{\");\n this.space();\n this.printList(attributes || assertions, node);\n this.space();\n this.token(\"}\");\n}\n\nexport function ExportAllDeclaration(\n this: Printer,\n node: t.ExportAllDeclaration | t.DeclareExportAllDeclaration,\n) {\n this.word(\"export\");\n this.space();\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n this.token(\"*\");\n this.space();\n this.word(\"from\");\n this.space();\n // @ts-expect-error Fixme: attributes is not defined in DeclareExportAllDeclaration\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n // @ts-expect-error Fixme: attributes is not defined in DeclareExportAllDeclaration\n this._printAttributes(node);\n } else {\n this.print(node.source, node);\n }\n\n this.semicolon();\n}\n\nfunction maybePrintDecoratorsBeforeExport(\n printer: Printer,\n node: t.ExportNamedDeclaration | t.ExportDefaultDeclaration,\n) {\n if (\n isClassDeclaration(node.declaration) &&\n printer._shouldPrintDecoratorsBeforeExport(\n node as t.ExportNamedDeclaration & { declaration: t.ClassDeclaration },\n )\n ) {\n printer.printJoin(node.declaration.decorators, node);\n }\n}\n\nexport function ExportNamedDeclaration(\n this: Printer,\n node: t.ExportNamedDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.space();\n if (node.declaration) {\n const declar = node.declaration;\n this.print(declar, node);\n if (!isStatement(declar)) this.semicolon();\n } else {\n if (node.exportKind === \"type\") {\n this.word(\"type\");\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n\n // print \"special\" specifiers first\n let hasSpecial = false;\n for (;;) {\n const first = specifiers[0];\n if (\n isExportDefaultSpecifier(first) ||\n isExportNamespaceSpecifier(first)\n ) {\n hasSpecial = true;\n this.print(specifiers.shift(), node);\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n if (specifiers.length || (!specifiers.length && !hasSpecial)) {\n this.token(\"{\");\n if (specifiers.length) {\n this.space();\n this.printList(specifiers, node);\n this.space();\n }\n this.token(\"}\");\n }\n\n if (node.source) {\n this.space();\n this.word(\"from\");\n this.space();\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAttributes(node);\n } else {\n this.print(node.source, node);\n }\n }\n\n this.semicolon();\n }\n}\n\nexport function ExportDefaultDeclaration(\n this: Printer,\n node: t.ExportDefaultDeclaration,\n) {\n maybePrintDecoratorsBeforeExport(this, node);\n\n this.word(\"export\");\n this.noIndentInnerCommentsHere();\n this.space();\n this.word(\"default\");\n this.space();\n const declar = node.declaration;\n this.print(declar, node);\n if (!isStatement(declar)) this.semicolon();\n}\n\nexport function ImportDeclaration(this: Printer, node: t.ImportDeclaration) {\n this.word(\"import\");\n this.space();\n\n const isTypeKind = node.importKind === \"type\" || node.importKind === \"typeof\";\n if (isTypeKind) {\n this.noIndentInnerCommentsHere();\n this.word(node.importKind);\n this.space();\n } else if (node.module) {\n this.noIndentInnerCommentsHere();\n this.word(\"module\");\n this.space();\n } else if (node.phase) {\n this.noIndentInnerCommentsHere();\n this.word(node.phase);\n this.space();\n }\n\n const specifiers = node.specifiers.slice(0);\n const hasSpecifiers = !!specifiers.length;\n // print \"special\" specifiers first. The loop condition is constant,\n // but there is a \"break\" in the body.\n while (hasSpecifiers) {\n const first = specifiers[0];\n if (isImportDefaultSpecifier(first) || isImportNamespaceSpecifier(first)) {\n this.print(specifiers.shift(), node);\n if (specifiers.length) {\n this.token(\",\");\n this.space();\n }\n } else {\n break;\n }\n }\n\n if (specifiers.length) {\n this.token(\"{\");\n this.space();\n this.printList(specifiers, node);\n this.space();\n this.token(\"}\");\n } else if (isTypeKind && !hasSpecifiers) {\n this.token(\"{\");\n this.token(\"}\");\n }\n\n if (hasSpecifiers || isTypeKind) {\n this.space();\n this.word(\"from\");\n this.space();\n }\n\n if (node.attributes?.length || node.assertions?.length) {\n this.print(node.source, node, true);\n this.space();\n this._printAttributes(node);\n } else {\n this.print(node.source, node);\n }\n\n this.semicolon();\n}\n\nexport function ImportAttribute(this: Printer, node: t.ImportAttribute) {\n this.print(node.key);\n this.token(\":\");\n this.space();\n this.print(node.value);\n}\n\nexport function ImportNamespaceSpecifier(\n this: Printer,\n node: t.ImportNamespaceSpecifier,\n) {\n this.token(\"*\");\n this.space();\n this.word(\"as\");\n this.space();\n this.print(node.local, node);\n}\n\nexport function ImportExpression(this: Printer, node: t.ImportExpression) {\n this.word(\"import\");\n if (node.phase) {\n this.token(\".\");\n this.word(node.phase);\n }\n this.token(\"(\");\n this.print(node.source, node);\n if (node.options != null) {\n this.token(\",\");\n this.space();\n this.print(node.options, node);\n }\n this.token(\")\");\n}\n","'use strict';\n\nconst object = {};\nconst hasOwnProperty = object.hasOwnProperty;\nconst forOwn = (object, callback) => {\n\tfor (const key in object) {\n\t\tif (hasOwnProperty.call(object, key)) {\n\t\t\tcallback(key, object[key]);\n\t\t}\n\t}\n};\n\nconst extend = (destination, source) => {\n\tif (!source) {\n\t\treturn destination;\n\t}\n\tforOwn(source, (key, value) => {\n\t\tdestination[key] = value;\n\t});\n\treturn destination;\n};\n\nconst forEach = (array, callback) => {\n\tconst length = array.length;\n\tlet index = -1;\n\twhile (++index < length) {\n\t\tcallback(array[index]);\n\t}\n};\n\nconst toString = object.toString;\nconst isArray = Array.isArray;\nconst isBuffer = Buffer.isBuffer;\nconst isObject = (value) => {\n\t// This is a very simple check, but it’s good enough for what we need.\n\treturn toString.call(value) == '[object Object]';\n};\nconst isString = (value) => {\n\treturn typeof value == 'string' ||\n\t\ttoString.call(value) == '[object String]';\n};\nconst isNumber = (value) => {\n\treturn typeof value == 'number' ||\n\t\ttoString.call(value) == '[object Number]';\n};\nconst isFunction = (value) => {\n\treturn typeof value == 'function';\n};\nconst isMap = (value) => {\n\treturn toString.call(value) == '[object Map]';\n};\nconst isSet = (value) => {\n\treturn toString.call(value) == '[object Set]';\n};\n\n/*--------------------------------------------------------------------------*/\n\n// https://mathiasbynens.be/notes/javascript-escapes#single\nconst singleEscapes = {\n\t'\"': '\\\\\"',\n\t'\\'': '\\\\\\'',\n\t'\\\\': '\\\\\\\\',\n\t'\\b': '\\\\b',\n\t'\\f': '\\\\f',\n\t'\\n': '\\\\n',\n\t'\\r': '\\\\r',\n\t'\\t': '\\\\t'\n\t// `\\v` is omitted intentionally, because in IE < 9, '\\v' == 'v'.\n\t// '\\v': '\\\\x0B'\n};\nconst regexSingleEscape = /[\"'\\\\\\b\\f\\n\\r\\t]/;\n\nconst regexDigit = /[0-9]/;\nconst regexWhitelist = /[ !#-&\\(-\\[\\]-_a-~]/;\n\nconst jsesc = (argument, options) => {\n\tconst increaseIndentation = () => {\n\t\toldIndent = indent;\n\t\t++options.indentLevel;\n\t\tindent = options.indent.repeat(options.indentLevel)\n\t};\n\t// Handle options\n\tconst defaults = {\n\t\t'escapeEverything': false,\n\t\t'minimal': false,\n\t\t'isScriptContext': false,\n\t\t'quotes': 'single',\n\t\t'wrap': false,\n\t\t'es6': false,\n\t\t'json': false,\n\t\t'compact': true,\n\t\t'lowercaseHex': false,\n\t\t'numbers': 'decimal',\n\t\t'indent': '\\t',\n\t\t'indentLevel': 0,\n\t\t'__inline1__': false,\n\t\t'__inline2__': false\n\t};\n\tconst json = options && options.json;\n\tif (json) {\n\t\tdefaults.quotes = 'double';\n\t\tdefaults.wrap = true;\n\t}\n\toptions = extend(defaults, options);\n\tif (\n\t\toptions.quotes != 'single' &&\n\t\toptions.quotes != 'double' &&\n\t\toptions.quotes != 'backtick'\n\t) {\n\t\toptions.quotes = 'single';\n\t}\n\tconst quote = options.quotes == 'double' ?\n\t\t'\"' :\n\t\t(options.quotes == 'backtick' ?\n\t\t\t'`' :\n\t\t\t'\\''\n\t\t);\n\tconst compact = options.compact;\n\tconst lowercaseHex = options.lowercaseHex;\n\tlet indent = options.indent.repeat(options.indentLevel);\n\tlet oldIndent = '';\n\tconst inline1 = options.__inline1__;\n\tconst inline2 = options.__inline2__;\n\tconst newLine = compact ? '' : '\\n';\n\tlet result;\n\tlet isEmpty = true;\n\tconst useBinNumbers = options.numbers == 'binary';\n\tconst useOctNumbers = options.numbers == 'octal';\n\tconst useDecNumbers = options.numbers == 'decimal';\n\tconst useHexNumbers = options.numbers == 'hexadecimal';\n\n\tif (json && argument && isFunction(argument.toJSON)) {\n\t\targument = argument.toJSON();\n\t}\n\n\tif (!isString(argument)) {\n\t\tif (isMap(argument)) {\n\t\t\tif (argument.size == 0) {\n\t\t\t\treturn 'new Map()';\n\t\t\t}\n\t\t\tif (!compact) {\n\t\t\t\toptions.__inline1__ = true;\n\t\t\t\toptions.__inline2__ = false;\n\t\t\t}\n\t\t\treturn 'new Map(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isSet(argument)) {\n\t\t\tif (argument.size == 0) {\n\t\t\t\treturn 'new Set()';\n\t\t\t}\n\t\t\treturn 'new Set(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isBuffer(argument)) {\n\t\t\tif (argument.length == 0) {\n\t\t\t\treturn 'Buffer.from([])';\n\t\t\t}\n\t\t\treturn 'Buffer.from(' + jsesc(Array.from(argument), options) + ')';\n\t\t}\n\t\tif (isArray(argument)) {\n\t\t\tresult = [];\n\t\t\toptions.wrap = true;\n\t\t\tif (inline1) {\n\t\t\t\toptions.__inline1__ = false;\n\t\t\t\toptions.__inline2__ = true;\n\t\t\t}\n\t\t\tif (!inline2) {\n\t\t\t\tincreaseIndentation();\n\t\t\t}\n\t\t\tforEach(argument, (value) => {\n\t\t\t\tisEmpty = false;\n\t\t\t\tif (inline2) {\n\t\t\t\t\toptions.__inline2__ = false;\n\t\t\t\t}\n\t\t\t\tresult.push(\n\t\t\t\t\t(compact || inline2 ? '' : indent) +\n\t\t\t\t\tjsesc(value, options)\n\t\t\t\t);\n\t\t\t});\n\t\t\tif (isEmpty) {\n\t\t\t\treturn '[]';\n\t\t\t}\n\t\t\tif (inline2) {\n\t\t\t\treturn '[' + result.join(', ') + ']';\n\t\t\t}\n\t\t\treturn '[' + newLine + result.join(',' + newLine) + newLine +\n\t\t\t\t(compact ? '' : oldIndent) + ']';\n\t\t} else if (isNumber(argument)) {\n\t\t\tif (json) {\n\t\t\t\t// Some number values (e.g. `Infinity`) cannot be represented in JSON.\n\t\t\t\treturn JSON.stringify(argument);\n\t\t\t}\n\t\t\tif (useDecNumbers) {\n\t\t\t\treturn String(argument);\n\t\t\t}\n\t\t\tif (useHexNumbers) {\n\t\t\t\tlet hexadecimal = argument.toString(16);\n\t\t\t\tif (!lowercaseHex) {\n\t\t\t\t\thexadecimal = hexadecimal.toUpperCase();\n\t\t\t\t}\n\t\t\t\treturn '0x' + hexadecimal;\n\t\t\t}\n\t\t\tif (useBinNumbers) {\n\t\t\t\treturn '0b' + argument.toString(2);\n\t\t\t}\n\t\t\tif (useOctNumbers) {\n\t\t\t\treturn '0o' + argument.toString(8);\n\t\t\t}\n\t\t} else if (!isObject(argument)) {\n\t\t\tif (json) {\n\t\t\t\t// For some values (e.g. `undefined`, `function` objects),\n\t\t\t\t// `JSON.stringify(value)` returns `undefined` (which isn’t valid\n\t\t\t\t// JSON) instead of `'null'`.\n\t\t\t\treturn JSON.stringify(argument) || 'null';\n\t\t\t}\n\t\t\treturn String(argument);\n\t\t} else { // it’s an object\n\t\t\tresult = [];\n\t\t\toptions.wrap = true;\n\t\t\tincreaseIndentation();\n\t\t\tforOwn(argument, (key, value) => {\n\t\t\t\tisEmpty = false;\n\t\t\t\tresult.push(\n\t\t\t\t\t(compact ? '' : indent) +\n\t\t\t\t\tjsesc(key, options) + ':' +\n\t\t\t\t\t(compact ? '' : ' ') +\n\t\t\t\t\tjsesc(value, options)\n\t\t\t\t);\n\t\t\t});\n\t\t\tif (isEmpty) {\n\t\t\t\treturn '{}';\n\t\t\t}\n\t\t\treturn '{' + newLine + result.join(',' + newLine) + newLine +\n\t\t\t\t(compact ? '' : oldIndent) + '}';\n\t\t}\n\t}\n\n\tconst string = argument;\n\t// Loop over each code unit in the string and escape it\n\tlet index = -1;\n\tconst length = string.length;\n\tresult = '';\n\twhile (++index < length) {\n\t\tconst character = string.charAt(index);\n\t\tif (options.es6) {\n\t\t\tconst first = string.charCodeAt(index);\n\t\t\tif ( // check if it’s the start of a surrogate pair\n\t\t\t\tfirst >= 0xD800 && first <= 0xDBFF && // high surrogate\n\t\t\t\tlength > index + 1 // there is a next code unit\n\t\t\t) {\n\t\t\t\tconst second = string.charCodeAt(index + 1);\n\t\t\t\tif (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate\n\t\t\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\t\t\tconst codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t\t\t\t\tlet hexadecimal = codePoint.toString(16);\n\t\t\t\t\tif (!lowercaseHex) {\n\t\t\t\t\t\thexadecimal = hexadecimal.toUpperCase();\n\t\t\t\t\t}\n\t\t\t\t\tresult += '\\\\u{' + hexadecimal + '}';\n\t\t\t\t\t++index;\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!options.escapeEverything) {\n\t\t\tif (regexWhitelist.test(character)) {\n\t\t\t\t// It’s a printable ASCII character that is not `\"`, `'` or `\\`,\n\t\t\t\t// so don’t escape it.\n\t\t\t\tresult += character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (character == '\"') {\n\t\t\t\tresult += quote == character ? '\\\\\"' : character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (character == '`') {\n\t\t\t\tresult += quote == character ? '\\\\`' : character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (character == '\\'') {\n\t\t\t\tresult += quote == character ? '\\\\\\'' : character;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t}\n\t\tif (\n\t\t\tcharacter == '\\0' &&\n\t\t\t!json &&\n\t\t\t!regexDigit.test(string.charAt(index + 1))\n\t\t) {\n\t\t\tresult += '\\\\0';\n\t\t\tcontinue;\n\t\t}\n\t\tif (regexSingleEscape.test(character)) {\n\t\t\t// no need for a `hasOwnProperty` check here\n\t\t\tresult += singleEscapes[character];\n\t\t\tcontinue;\n\t\t}\n\t\tconst charCode = character.charCodeAt(0);\n\t\tif (options.minimal && charCode != 0x2028 && charCode != 0x2029) {\n\t\t\tresult += character;\n\t\t\tcontinue;\n\t\t}\n\t\tlet hexadecimal = charCode.toString(16);\n\t\tif (!lowercaseHex) {\n\t\t\thexadecimal = hexadecimal.toUpperCase();\n\t\t}\n\t\tconst longhand = hexadecimal.length > 2 || json;\n\t\tconst escaped = '\\\\' + (longhand ? 'u' : 'x') +\n\t\t\t('0000' + hexadecimal).slice(longhand ? -4 : -2);\n\t\tresult += escaped;\n\t\tcontinue;\n\t}\n\tif (options.wrap) {\n\t\tresult = quote + result + quote;\n\t}\n\tif (quote == '`') {\n\t\tresult = result.replace(/\\$\\{/g, '\\\\\\$\\{');\n\t}\n\tif (options.isScriptContext) {\n\t\t// https://mathiasbynens.be/notes/etago\n\t\treturn result\n\t\t\t.replace(/<\\/(script|style)/gi, '<\\\\/$1')\n\t\t\t.replace(/` line comment\n const comment = this.skipLineComment(3);\n if (comment !== undefined) {\n this.addComment(comment);\n if (this.options.attachComment) comments.push(comment);\n }\n } else {\n break loop;\n }\n } else if (\n ch === charCodes.lessThan &&\n !this.inModule &&\n this.options.annexB\n ) {\n const pos = this.state.pos;\n if (\n this.input.charCodeAt(pos + 1) === charCodes.exclamationMark &&\n this.input.charCodeAt(pos + 2) === charCodes.dash &&\n this.input.charCodeAt(pos + 3) === charCodes.dash\n ) {\n // ` * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","import * as helpers from \"@babel/helpers\";\nimport { NodePath } from \"@babel/traverse\";\nimport type { HubInterface, Visitor, Scope } from \"@babel/traverse\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport traverse from \"@babel/traverse\";\nimport { cloneNode, interpreterDirective } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { getModuleName } from \"@babel/helper-module-transforms\";\nimport semver from \"semver\";\n\nimport type { NormalizedFile } from \"../normalize-file.ts\";\n\nconst errorVisitor: Visitor<{ loc: t.SourceLocation | null }> = {\n enter(path, state) {\n const loc = path.node.loc;\n if (loc) {\n state.loc = loc;\n path.stop();\n }\n },\n};\n\nexport default class File {\n _map: Map = new Map();\n opts: { [key: string]: any };\n declarations: { [key: string]: t.Identifier } = {};\n path: NodePath;\n ast: t.File;\n scope: Scope;\n metadata: { [key: string]: any } = {};\n code: string = \"\";\n inputMap: any;\n\n hub: HubInterface & { file: File } = {\n // keep it for the usage in babel-core, ex: path.hub.file.opts.filename\n file: this,\n getCode: () => this.code,\n getScope: () => this.scope,\n addHelper: this.addHelper.bind(this),\n buildError: this.buildCodeFrameError.bind(this),\n };\n\n constructor(options: {}, { code, ast, inputMap }: NormalizedFile) {\n this.opts = options;\n this.code = code;\n this.ast = ast;\n this.inputMap = inputMap;\n\n this.path = NodePath.get({\n hub: this.hub,\n parentPath: null,\n parent: this.ast,\n container: this.ast,\n key: \"program\",\n }).setContext() as NodePath;\n this.scope = this.path.scope;\n }\n\n /**\n * Provide backward-compatible access to the interpreter directive handling\n * in Babel 6.x. If you are writing a plugin for Babel 7.x, it would be\n * best to use 'program.interpreter' directly.\n */\n get shebang(): string {\n const { interpreter } = this.path.node;\n return interpreter ? interpreter.value : \"\";\n }\n set shebang(value: string) {\n if (value) {\n this.path.get(\"interpreter\").replaceWith(interpreterDirective(value));\n } else {\n this.path.get(\"interpreter\").remove();\n }\n }\n\n set(key: unknown, val: unknown) {\n if (!process.env.BABEL_8_BREAKING) {\n if (key === \"helpersNamespace\") {\n throw new Error(\n \"Babel 7.0.0-beta.56 has dropped support for the 'helpersNamespace' utility.\" +\n \"If you are using @babel/plugin-external-helpers you will need to use a newer \" +\n \"version than the one you currently have installed. \" +\n \"If you have your own implementation, you'll want to explore using 'helperGenerator' \" +\n \"alongside 'file.availableHelper()'.\",\n );\n }\n }\n\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n has(key: unknown): boolean {\n return this._map.has(key);\n }\n\n getModuleName(): string | undefined | null {\n return getModuleName(this.opts, this.opts);\n }\n\n /**\n * Check if a given helper is available in @babel/core's helper list.\n *\n * This _also_ allows you to pass a Babel version specifically. If the\n * helper exists, but was not available for the full given range, it will be\n * considered unavailable.\n */\n availableHelper(name: string, versionRange?: string | null): boolean {\n let minVersion;\n try {\n minVersion = helpers.minVersion(name);\n } catch (err) {\n if (err.code !== \"BABEL_HELPER_UNKNOWN\") throw err;\n\n return false;\n }\n\n if (typeof versionRange !== \"string\") return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // transform-runtime's definitions.js file.\n if (semver.valid(versionRange)) versionRange = `^${versionRange}`;\n\n if (process.env.BABEL_8_BREAKING) {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=9.0.0`, versionRange)\n );\n } else {\n return (\n !semver.intersects(`<${minVersion}`, versionRange) &&\n !semver.intersects(`>=8.0.0`, versionRange)\n );\n }\n }\n\n addHelper(name: string): t.Identifier {\n const declar = this.declarations[name];\n if (declar) return cloneNode(declar);\n\n const generator = this.get(\"helperGenerator\");\n if (generator) {\n const res = generator(name);\n if (res) return res;\n }\n\n // make sure that the helper exists\n helpers.ensure(name, File);\n\n const uid = (this.declarations[name] =\n this.scope.generateUidIdentifier(name));\n\n const dependencies: { [key: string]: t.Identifier } = {};\n for (const dep of helpers.getDependencies(name)) {\n dependencies[dep] = this.addHelper(dep);\n }\n\n const { nodes, globals } = helpers.get(\n name,\n dep => dependencies[dep],\n uid,\n Object.keys(this.scope.getAllBindings()),\n );\n\n globals.forEach(name => {\n if (this.path.scope.hasBinding(name, true /* noGlobals */)) {\n this.path.scope.rename(name);\n }\n });\n\n nodes.forEach(node => {\n // @ts-expect-error Fixme: document _compact node property\n node._compact = true;\n });\n\n const added = this.path.unshiftContainer(\"body\", nodes);\n // TODO: NodePath#unshiftContainer should automatically register new\n // bindings.\n for (const path of added) {\n if (path.isVariableDeclaration()) this.scope.registerDeclaration(path);\n }\n\n return uid;\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error: typeof Error = SyntaxError,\n ): Error {\n let loc = node?.loc;\n\n if (!loc && node) {\n const state: { loc?: t.SourceLocation | null } = {\n loc: null,\n };\n traverse(node, errorVisitor, this.scope, state);\n loc = state.loc;\n\n let txt =\n \"This is an error on an internal node. Probably an internal error.\";\n if (loc) txt += \" Location has been estimated.\";\n\n msg += ` (${txt})`;\n }\n\n if (loc) {\n const { highlightCode = true } = this.opts;\n\n msg +=\n \"\\n\" +\n codeFrameColumns(\n this.code,\n {\n start: {\n line: loc.start.line,\n column: loc.start.column + 1,\n },\n end:\n loc.end && loc.start.line === loc.end.line\n ? {\n line: loc.end.line,\n column: loc.end.column + 1,\n }\n : undefined,\n },\n { highlightCode },\n );\n }\n\n return new _Error(msg);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // @ts-expect-error Babel 7\n File.prototype.addImport = function addImport() {\n throw new Error(\n \"This API has been removed. If you're looking for this \" +\n \"functionality in Babel 7, you should import the \" +\n \"'@babel/helper-module-imports' module and use the functions exposed \" +\n \" from that module, such as 'addNamed' or 'addDefault'.\",\n );\n };\n // @ts-expect-error Babel 7\n File.prototype.addTemplateObject = function addTemplateObject() {\n throw new Error(\n \"This function has been moved into the template literal transform itself.\",\n );\n };\n}\n","import * as helpers from \"@babel/helpers\";\nimport generator from \"@babel/generator\";\nimport template from \"@babel/template\";\nimport {\n arrayExpression,\n assignmentExpression,\n binaryExpression,\n blockStatement,\n callExpression,\n cloneNode,\n conditionalExpression,\n exportNamedDeclaration,\n exportSpecifier,\n expressionStatement,\n functionExpression,\n identifier,\n memberExpression,\n objectExpression,\n program,\n stringLiteral,\n unaryExpression,\n variableDeclaration,\n variableDeclarator,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport File from \"../transformation/file/file.ts\";\nimport type { Replacements } from \"@babel/template\";\n\n// Wrapped to avoid wasting time parsing this when almost no-one uses\n// build-external-helpers.\nconst buildUmdWrapper = (replacements: Replacements) =>\n template.statement`\n (function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(AMD_ARGUMENTS, factory);\n } else if (typeof exports === \"object\") {\n factory(COMMON_ARGUMENTS);\n } else {\n factory(BROWSER_ARGUMENTS);\n }\n })(UMD_ROOT, function (FACTORY_PARAMETERS) {\n FACTORY_BODY\n });\n `(replacements);\n\nfunction buildGlobal(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n const container = functionExpression(\n null,\n [identifier(\"global\")],\n blockStatement(body),\n );\n const tree = program([\n expressionStatement(\n callExpression(container, [\n // typeof global === \"undefined\" ? self : global\n conditionalExpression(\n binaryExpression(\n \"===\",\n unaryExpression(\"typeof\", identifier(\"global\")),\n stringLiteral(\"undefined\"),\n ),\n identifier(\"self\"),\n identifier(\"global\"),\n ),\n ]),\n ),\n ]);\n\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(\n namespace,\n assignmentExpression(\n \"=\",\n memberExpression(identifier(\"global\"), namespace),\n objectExpression([]),\n ),\n ),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return tree;\n}\n\nfunction buildModule(allowlist?: Array) {\n const body: t.Statement[] = [];\n const refs = buildHelpers(body, null, allowlist);\n\n body.unshift(\n exportNamedDeclaration(\n null,\n Object.keys(refs).map(name => {\n return exportSpecifier(cloneNode(refs[name]), identifier(name));\n }),\n ),\n );\n\n return program(body, [], \"module\");\n}\n\nfunction buildUmd(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, identifier(\"global\")),\n ]),\n );\n\n buildHelpers(body, namespace, allowlist);\n\n return program([\n buildUmdWrapper({\n FACTORY_PARAMETERS: identifier(\"global\"),\n BROWSER_ARGUMENTS: assignmentExpression(\n \"=\",\n memberExpression(identifier(\"root\"), namespace),\n objectExpression([]),\n ),\n COMMON_ARGUMENTS: identifier(\"exports\"),\n AMD_ARGUMENTS: arrayExpression([stringLiteral(\"exports\")]),\n FACTORY_BODY: body,\n UMD_ROOT: identifier(\"this\"),\n }),\n ]);\n}\n\nfunction buildVar(allowlist?: Array) {\n const namespace = identifier(\"babelHelpers\");\n\n const body: t.Statement[] = [];\n body.push(\n variableDeclaration(\"var\", [\n variableDeclarator(namespace, objectExpression([])),\n ]),\n );\n const tree = program(body);\n buildHelpers(body, namespace, allowlist);\n body.push(expressionStatement(namespace));\n return tree;\n}\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression,\n allowlist?: Array,\n): Record;\nfunction buildHelpers(\n body: t.Statement[],\n namespace: null,\n allowlist?: Array,\n): Record;\n\nfunction buildHelpers(\n body: t.Statement[],\n namespace: t.Expression | null,\n allowlist?: Array,\n) {\n const getHelperReference = (name: string) => {\n return namespace\n ? memberExpression(namespace, identifier(name))\n : identifier(`_${name}`);\n };\n\n const refs: { [key: string]: t.Identifier | t.MemberExpression } = {};\n helpers.list.forEach(function (name) {\n if (allowlist && allowlist.indexOf(name) < 0) return;\n\n const ref = (refs[name] = getHelperReference(name));\n\n helpers.ensure(name, File);\n const { nodes } = helpers.get(name, getHelperReference, ref);\n\n body.push(...nodes);\n });\n return refs;\n}\nexport default function (\n allowlist?: Array,\n outputType: \"global\" | \"module\" | \"umd\" | \"var\" = \"global\",\n) {\n let tree: t.Program;\n\n const build = {\n global: buildGlobal,\n module: buildModule,\n umd: buildUmd,\n var: buildVar,\n }[outputType];\n\n if (build) {\n tree = build(allowlist);\n } else {\n throw new Error(`Unsupported output type ${outputType}`);\n }\n\n return generator(tree).code;\n}\n","import type { Handler } from \"gensync\";\n\nimport type {\n ConfigFile,\n IgnoreFile,\n RelativeConfig,\n FilePackageData,\n} from \"./types.ts\";\n\nimport type { CallerMetadata } from \"../validation/options.ts\";\n\nexport type { ConfigFile, IgnoreFile, RelativeConfig, FilePackageData };\n\nexport function findConfigUpwards(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n rootDir: string,\n): string | null {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* findPackageData(filepath: string): Handler {\n return {\n filepath,\n directories: [],\n pkg: null,\n isPackage: false,\n };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRelativeConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n pkgData: FilePackageData,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return { config: null, ignore: null };\n}\n\n// eslint-disable-next-line require-yield\nexport function* findRootConfig(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n return null;\n}\n\n// eslint-disable-next-line require-yield\nexport function* loadConfig(\n name: string,\n dirname: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n envName: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n caller: CallerMetadata | undefined,\n): Handler {\n throw new Error(`Cannot load ${name} relative to ${dirname} in a browser`);\n}\n\n// eslint-disable-next-line require-yield\nexport function* resolveShowConfigPath(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n dirname: string,\n): Handler {\n return null;\n}\n\nexport const ROOT_CONFIG_FILENAMES: string[] = [];\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePlugin(name: string, dirname: string): string | null {\n return null;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function resolvePreset(name: string, dirname: string): string | null {\n return null;\n}\n\nexport function loadPlugin(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load plugin ${name} relative to ${dirname} in a browser`,\n );\n}\n\nexport function loadPreset(\n name: string,\n dirname: string,\n): Handler<{\n filepath: string;\n value: unknown;\n}> {\n throw new Error(\n `Cannot load preset ${name} relative to ${dirname} in a browser`,\n );\n}\n","export function getEnv(defaultValue: string = \"development\"): string {\n return process.env.BABEL_ENV || process.env.NODE_ENV || defaultValue;\n}\n","\"use strict\";\n\n// These use the global symbol registry so that multiple copies of this\n// library can work together in case they are not deduped.\nconst GENSYNC_START = Symbol.for(\"gensync:v1:start\");\nconst GENSYNC_SUSPEND = Symbol.for(\"gensync:v1:suspend\");\n\nconst GENSYNC_EXPECTED_START = \"GENSYNC_EXPECTED_START\";\nconst GENSYNC_EXPECTED_SUSPEND = \"GENSYNC_EXPECTED_SUSPEND\";\nconst GENSYNC_OPTIONS_ERROR = \"GENSYNC_OPTIONS_ERROR\";\nconst GENSYNC_RACE_NONEMPTY = \"GENSYNC_RACE_NONEMPTY\";\nconst GENSYNC_ERRBACK_NO_CALLBACK = \"GENSYNC_ERRBACK_NO_CALLBACK\";\n\nmodule.exports = Object.assign(\n function gensync(optsOrFn) {\n let genFn = optsOrFn;\n if (typeof optsOrFn !== \"function\") {\n genFn = newGenerator(optsOrFn);\n } else {\n genFn = wrapGenerator(optsOrFn);\n }\n\n return Object.assign(genFn, makeFunctionAPI(genFn));\n },\n {\n all: buildOperation({\n name: \"all\",\n arity: 1,\n sync: function(args) {\n const items = Array.from(args[0]);\n return items.map(item => evaluateSync(item));\n },\n async: function(args, resolve, reject) {\n const items = Array.from(args[0]);\n\n if (items.length === 0) {\n Promise.resolve().then(() => resolve([]));\n return;\n }\n\n let count = 0;\n const results = items.map(() => undefined);\n items.forEach((item, i) => {\n evaluateAsync(\n item,\n val => {\n results[i] = val;\n count += 1;\n\n if (count === results.length) resolve(results);\n },\n reject\n );\n });\n },\n }),\n race: buildOperation({\n name: \"race\",\n arity: 1,\n sync: function(args) {\n const items = Array.from(args[0]);\n if (items.length === 0) {\n throw makeError(\"Must race at least 1 item\", GENSYNC_RACE_NONEMPTY);\n }\n\n return evaluateSync(items[0]);\n },\n async: function(args, resolve, reject) {\n const items = Array.from(args[0]);\n if (items.length === 0) {\n throw makeError(\"Must race at least 1 item\", GENSYNC_RACE_NONEMPTY);\n }\n\n for (const item of items) {\n evaluateAsync(item, resolve, reject);\n }\n },\n }),\n }\n);\n\n/**\n * Given a generator function, return the standard API object that executes\n * the generator and calls the callbacks.\n */\nfunction makeFunctionAPI(genFn) {\n const fns = {\n sync: function(...args) {\n return evaluateSync(genFn.apply(this, args));\n },\n async: function(...args) {\n return new Promise((resolve, reject) => {\n evaluateAsync(genFn.apply(this, args), resolve, reject);\n });\n },\n errback: function(...args) {\n const cb = args.pop();\n if (typeof cb !== \"function\") {\n throw makeError(\n \"Asynchronous function called without callback\",\n GENSYNC_ERRBACK_NO_CALLBACK\n );\n }\n\n let gen;\n try {\n gen = genFn.apply(this, args);\n } catch (err) {\n cb(err);\n return;\n }\n\n evaluateAsync(gen, val => cb(undefined, val), err => cb(err));\n },\n };\n return fns;\n}\n\nfunction assertTypeof(type, name, value, allowUndefined) {\n if (\n typeof value === type ||\n (allowUndefined && typeof value === \"undefined\")\n ) {\n return;\n }\n\n let msg;\n if (allowUndefined) {\n msg = `Expected opts.${name} to be either a ${type}, or undefined.`;\n } else {\n msg = `Expected opts.${name} to be a ${type}.`;\n }\n\n throw makeError(msg, GENSYNC_OPTIONS_ERROR);\n}\nfunction makeError(msg, code) {\n return Object.assign(new Error(msg), { code });\n}\n\n/**\n * Given an options object, return a new generator that dispatches the\n * correct handler based on sync or async execution.\n */\nfunction newGenerator({ name, arity, sync, async, errback }) {\n assertTypeof(\"string\", \"name\", name, true /* allowUndefined */);\n assertTypeof(\"number\", \"arity\", arity, true /* allowUndefined */);\n assertTypeof(\"function\", \"sync\", sync);\n assertTypeof(\"function\", \"async\", async, true /* allowUndefined */);\n assertTypeof(\"function\", \"errback\", errback, true /* allowUndefined */);\n if (async && errback) {\n throw makeError(\n \"Expected one of either opts.async or opts.errback, but got _both_.\",\n GENSYNC_OPTIONS_ERROR\n );\n }\n\n if (typeof name !== \"string\") {\n let fnName;\n if (errback && errback.name && errback.name !== \"errback\") {\n fnName = errback.name;\n }\n if (async && async.name && async.name !== \"async\") {\n fnName = async.name.replace(/Async$/, \"\");\n }\n if (sync && sync.name && sync.name !== \"sync\") {\n fnName = sync.name.replace(/Sync$/, \"\");\n }\n\n if (typeof fnName === \"string\") {\n name = fnName;\n }\n }\n\n if (typeof arity !== \"number\") {\n arity = sync.length;\n }\n\n return buildOperation({\n name,\n arity,\n sync: function(args) {\n return sync.apply(this, args);\n },\n async: function(args, resolve, reject) {\n if (async) {\n async.apply(this, args).then(resolve, reject);\n } else if (errback) {\n errback.call(this, ...args, (err, value) => {\n if (err == null) resolve(value);\n else reject(err);\n });\n } else {\n resolve(sync.apply(this, args));\n }\n },\n });\n}\n\nfunction wrapGenerator(genFn) {\n return setFunctionMetadata(genFn.name, genFn.length, function(...args) {\n return genFn.apply(this, args);\n });\n}\n\nfunction buildOperation({ name, arity, sync, async }) {\n return setFunctionMetadata(name, arity, function*(...args) {\n const resume = yield GENSYNC_START;\n if (!resume) {\n // Break the tail call to avoid a bug in V8 v6.X with --harmony enabled.\n const res = sync.call(this, args);\n return res;\n }\n\n let result;\n try {\n async.call(\n this,\n args,\n value => {\n if (result) return;\n\n result = { value };\n resume();\n },\n err => {\n if (result) return;\n\n result = { err };\n resume();\n }\n );\n } catch (err) {\n result = { err };\n resume();\n }\n\n // Suspend until the callbacks run. Will resume synchronously if the\n // callback was already called.\n yield GENSYNC_SUSPEND;\n\n if (result.hasOwnProperty(\"err\")) {\n throw result.err;\n }\n\n return result.value;\n });\n}\n\nfunction evaluateSync(gen) {\n let value;\n while (!({ value } = gen.next()).done) {\n assertStart(value, gen);\n }\n return value;\n}\n\nfunction evaluateAsync(gen, resolve, reject) {\n (function step() {\n try {\n let value;\n while (!({ value } = gen.next()).done) {\n assertStart(value, gen);\n\n // If this throws, it is considered to have broken the contract\n // established for async handlers. If these handlers are called\n // synchronously, it is also considered bad behavior.\n let sync = true;\n let didSyncResume = false;\n const out = gen.next(() => {\n if (sync) {\n didSyncResume = true;\n } else {\n step();\n }\n });\n sync = false;\n\n assertSuspend(out, gen);\n\n if (!didSyncResume) {\n // Callback wasn't called synchronously, so break out of the loop\n // and let it call 'step' later.\n return;\n }\n }\n\n return resolve(value);\n } catch (err) {\n return reject(err);\n }\n })();\n}\n\nfunction assertStart(value, gen) {\n if (value === GENSYNC_START) return;\n\n throwError(\n gen,\n makeError(\n `Got unexpected yielded value in gensync generator: ${JSON.stringify(\n value\n )}. Did you perhaps mean to use 'yield*' instead of 'yield'?`,\n GENSYNC_EXPECTED_START\n )\n );\n}\nfunction assertSuspend({ value, done }, gen) {\n if (!done && value === GENSYNC_SUSPEND) return;\n\n throwError(\n gen,\n makeError(\n done\n ? \"Unexpected generator completion. If you get this, it is probably a gensync bug.\"\n : `Expected GENSYNC_SUSPEND, got ${JSON.stringify(\n value\n )}. If you get this, it is probably a gensync bug.`,\n GENSYNC_EXPECTED_SUSPEND\n )\n );\n}\n\nfunction throwError(gen, err) {\n // Call `.throw` so that users can step in a debugger to easily see which\n // 'yield' passed an unexpected value. If the `.throw` call didn't throw\n // back to the generator, we explicitly do it to stop the error\n // from being swallowed by user code try/catches.\n if (gen.throw) gen.throw(err);\n throw err;\n}\n\nfunction isIterable(value) {\n return (\n !!value &&\n (typeof value === \"object\" || typeof value === \"function\") &&\n !value[Symbol.iterator]\n );\n}\n\nfunction setFunctionMetadata(name, arity, fn) {\n if (typeof name === \"string\") {\n // This should always work on the supported Node versions, but for the\n // sake of users that are compiling to older versions, we check for\n // configurability so we don't throw.\n const nameDesc = Object.getOwnPropertyDescriptor(fn, \"name\");\n if (!nameDesc || nameDesc.configurable) {\n Object.defineProperty(\n fn,\n \"name\",\n Object.assign(nameDesc || {}, {\n configurable: true,\n value: name,\n })\n );\n }\n }\n\n if (typeof arity === \"number\") {\n const lengthDesc = Object.getOwnPropertyDescriptor(fn, \"length\");\n if (!lengthDesc || lengthDesc.configurable) {\n Object.defineProperty(\n fn,\n \"length\",\n Object.assign(lengthDesc || {}, {\n configurable: true,\n value: arity,\n })\n );\n }\n }\n\n return fn;\n}\n","import gensync, { type Gensync, type Handler, type Callback } from \"gensync\";\n\ntype MaybePromise = T | Promise;\n\nconst runGenerator: {\n sync(gen: Handler): Return;\n async(gen: Handler): Promise;\n errback(gen: Handler, cb: Callback): void;\n} = gensync(function* (item: Handler): Handler {\n return yield* item;\n});\n\n// This Gensync returns true if the current execution context is\n// asynchronous, otherwise it returns false.\nexport const isAsync = gensync({\n sync: () => false,\n errback: cb => cb(null, true),\n});\n\n// This function wraps any functions (which could be either synchronous or\n// asynchronous) with a Gensync. If the wrapped function returns a promise\n// but the current execution context is synchronous, it will throw the\n// provided error.\n// This is used to handle user-provided functions which could be asynchronous.\nexport function maybeAsync(\n fn: (...args: Args) => Return,\n message: string,\n): Gensync {\n return gensync({\n sync(...args) {\n const result = fn.apply(this, args);\n if (isThenable(result)) throw new Error(message);\n return result;\n },\n async(...args) {\n return Promise.resolve(fn.apply(this, args));\n },\n });\n}\n\nconst withKind = gensync({\n sync: cb => cb(\"sync\"),\n async: async cb => cb(\"async\"),\n}) as (cb: (kind: \"sync\" | \"async\") => MaybePromise) => Handler;\n\n// This function wraps a generator (or a Gensync) into another function which,\n// when called, will run the provided generator in a sync or async way, depending\n// on the execution context where this forwardAsync function is called.\n// This is useful, for example, when passing a callback to a function which isn't\n// aware of gensync, but it only knows about synchronous and asynchronous functions.\n// An example is cache.using, which being exposed to the user must be as simple as\n// possible:\n// yield* forwardAsync(gensyncFn, wrappedFn =>\n// cache.using(x => {\n// // Here we don't know about gensync. wrappedFn is a\n// // normal sync or async function\n// return wrappedFn(x);\n// })\n// )\nexport function forwardAsync(\n action: (...args: Args) => Handler,\n cb: (\n adapted: (...args: Args) => MaybePromise,\n ) => MaybePromise,\n): Handler {\n const g = gensync(action);\n return withKind(kind => {\n const adapted = g[kind];\n return cb(adapted);\n });\n}\n\n// If the given generator is executed asynchronously, the first time that it\n// is paused (i.e. When it yields a gensync generator which can't be run\n// synchronously), call the \"firstPause\" callback.\nexport const onFirstPause = gensync<\n [gen: Handler, firstPause: () => void],\n unknown\n>({\n name: \"onFirstPause\",\n arity: 2,\n sync: function (item) {\n return runGenerator.sync(item);\n },\n errback: function (item, firstPause, cb) {\n let completed = false;\n\n runGenerator.errback(item, (err, value) => {\n completed = true;\n cb(err, value);\n });\n\n if (!completed) {\n firstPause();\n }\n },\n}) as (gen: Handler, firstPause: () => void) => Handler;\n\n// Wait for the given promise to be resolved\nexport const waitFor = gensync({\n sync: x => x,\n async: async x => x,\n}) as (p: T | Promise) => Handler;\n\nexport function isThenable(val: any): val is PromiseLike {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n","import type {\n ValidatedOptions,\n NormalizedOptions,\n} from \"./validation/options.ts\";\n\nexport function mergeOptions(\n target: ValidatedOptions,\n source: ValidatedOptions | NormalizedOptions,\n): void {\n for (const k of Object.keys(source)) {\n if (\n (k === \"parserOpts\" || k === \"generatorOpts\" || k === \"assumptions\") &&\n source[k]\n ) {\n const parserOpts = source[k];\n const targetObj = target[k] || (target[k] = {});\n mergeDefaultFields(targetObj, parserOpts);\n } else {\n //@ts-expect-error k must index source\n const val = source[k];\n //@ts-expect-error assigning source to target\n if (val !== undefined) target[k] = val as any;\n }\n }\n}\n\nfunction mergeDefaultFields(target: T, source: T) {\n for (const k of Object.keys(source) as (keyof T)[]) {\n const val = source[k];\n if (val !== undefined) target[k] = val;\n }\n}\n\nexport function isIterableIterator(value: any): value is IterableIterator {\n return (\n !!value &&\n typeof value.next === \"function\" &&\n typeof value[Symbol.iterator] === \"function\"\n );\n}\n","export type DeepArray = Array>;\n\n// Just to make sure that DeepArray is not assignable to ReadonlyDeepArray\ndeclare const __marker: unique symbol;\nexport type ReadonlyDeepArray = ReadonlyArray> & {\n [__marker]: true;\n};\n\nexport function finalize(deepArr: DeepArray): ReadonlyDeepArray {\n return Object.freeze(deepArr) as ReadonlyDeepArray;\n}\n\nexport function flattenToSet(\n arr: ReadonlyDeepArray,\n): Set {\n const result = new Set();\n const stack = [arr];\n while (stack.length > 0) {\n for (const el of stack.pop()) {\n if (Array.isArray(el)) stack.push(el as ReadonlyDeepArray);\n else result.add(el as T);\n }\n }\n return result;\n}\n","import { finalize } from \"./helpers/deep-array.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type { PluginObject } from \"./validation/plugins.ts\";\n\nexport default class Plugin {\n key: string | undefined | null;\n manipulateOptions?: (options: unknown, parserOpts: unknown) => void;\n post?: PluginObject[\"post\"];\n pre?: PluginObject[\"pre\"];\n visitor: PluginObject[\"visitor\"];\n\n parserOverride?: Function;\n generatorOverride?: Function;\n\n options: {};\n\n externalDependencies: ReadonlyDeepArray;\n\n constructor(\n plugin: PluginObject,\n options: {},\n key?: string,\n externalDependencies: ReadonlyDeepArray = finalize([]),\n ) {\n this.key = plugin.name || key;\n\n this.manipulateOptions = plugin.manipulateOptions;\n this.post = plugin.post;\n this.pre = plugin.pre;\n this.visitor = plugin.visitor || {};\n this.parserOverride = plugin.parserOverride;\n this.generatorOverride = plugin.generatorOverride;\n\n this.options = options;\n this.externalDependencies = externalDependencies;\n }\n}\n","import type { Handler } from \"gensync\";\n\nimport { isAsync, waitFor } from \"./async.ts\";\n\nexport function once(fn: () => Handler): () => Handler {\n let result: { ok: true; value: R } | { ok: false; value: unknown };\n let resultP: Promise;\n let promiseReferenced = false;\n return function* () {\n if (!result) {\n if (resultP) {\n promiseReferenced = true;\n return yield* waitFor(resultP);\n }\n\n if (!(yield* isAsync())) {\n try {\n result = { ok: true, value: yield* fn() };\n } catch (error) {\n result = { ok: false, value: error };\n }\n } else {\n let resolve: (result: R) => void, reject: (error: unknown) => void;\n resultP = new Promise((res, rej) => {\n resolve = res;\n reject = rej;\n });\n\n try {\n result = { ok: true, value: yield* fn() };\n // Avoid keeping the promise around\n // now that we have the result.\n resultP = null;\n // We only resolve/reject the promise if it has been actually\n // referenced. If there are no listeners we can forget about it.\n // In the reject case, this avoid uncatchable unhandledRejection\n // events.\n if (promiseReferenced) resolve(result.value);\n } catch (error) {\n result = { ok: false, value: error };\n resultP = null;\n if (promiseReferenced) reject(error);\n }\n }\n }\n\n if (result.ok) return result.value;\n else throw result.value;\n };\n}\n","import gensync from \"gensync\";\nimport type { Handler } from \"gensync\";\nimport {\n maybeAsync,\n isAsync,\n onFirstPause,\n waitFor,\n isThenable,\n} from \"../gensync-utils/async.ts\";\nimport { isIterableIterator } from \"./util.ts\";\n\nexport type { CacheConfigurator };\n\nexport type SimpleCacheConfigurator = {\n (forever: boolean): void;\n (handler: () => T): T;\n\n forever: () => void;\n never: () => void;\n using: (handler: () => T) => T;\n invalidate: (handler: () => T) => T;\n};\n\nexport type CacheEntry = Array<{\n value: ResultT;\n valid: (channel: SideChannel) => Handler;\n}>;\n\nconst synchronize = (\n gen: (...args: ArgsT) => Handler,\n): ((...args: ArgsT) => ResultT) => {\n return gensync(gen).sync;\n};\n\n// eslint-disable-next-line require-yield\nfunction* genTrue() {\n return true;\n}\n\nexport function makeWeakCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(WeakMap, handler);\n}\n\nexport function makeWeakCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeWeakCache(handler),\n );\n}\n\nexport function makeStrongCache(\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n return makeCachedFunction(Map, handler);\n}\n\nexport function makeStrongCacheSync(\n handler: (arg: ArgT, cache?: CacheConfigurator) => ResultT,\n): (arg: ArgT, data?: SideChannel) => ResultT {\n return synchronize<[ArgT, SideChannel], ResultT>(\n makeStrongCache(handler),\n );\n}\n\n/* NOTE: Part of the logic explained in this comment is explained in the\n * getCachedValueOrWait and setupAsyncLocks functions.\n *\n * > There are only two hard things in Computer Science: cache invalidation and naming things.\n * > -- Phil Karlton\n *\n * I don't know if Phil was also thinking about handling a cache whose invalidation function is\n * defined asynchronously is considered, but it is REALLY hard to do correctly.\n *\n * The implemented logic (only when gensync is run asynchronously) is the following:\n * 1. If there is a valid cache associated to the current \"arg\" parameter,\n * a. RETURN the cached value\n * 3. If there is a FinishLock associated to the current \"arg\" parameter representing a valid cache,\n * a. Wait for that lock to be released\n * b. RETURN the value associated with that lock\n * 5. Start executing the function to be cached\n * a. If it pauses on a promise, then\n * i. Let FinishLock be a new lock\n * ii. Store FinishLock as associated to the current \"arg\" parameter\n * iii. Wait for the function to finish executing\n * iv. Release FinishLock\n * v. Send the function result to anyone waiting on FinishLock\n * 6. Store the result in the cache\n * 7. RETURN the result\n */\nfunction makeCachedFunction(\n CallCache: new () => CacheMap,\n handler: (\n arg: ArgT,\n cache: CacheConfigurator,\n ) => Handler | ResultT,\n): (arg: ArgT, data: SideChannel) => Handler {\n const callCacheSync = new CallCache();\n const callCacheAsync = new CallCache();\n const futureCache = new CallCache>();\n\n return function* cachedFunction(arg: ArgT, data: SideChannel) {\n const asyncContext = yield* isAsync();\n const callCache = asyncContext ? callCacheAsync : callCacheSync;\n\n const cached = yield* getCachedValueOrWait(\n asyncContext,\n callCache,\n futureCache,\n arg,\n data,\n );\n if (cached.valid) return cached.value;\n\n const cache = new CacheConfigurator(data);\n\n const handlerResult: Handler | ResultT = handler(arg, cache);\n\n let finishLock: Lock;\n let value: ResultT;\n\n if (isIterableIterator(handlerResult)) {\n value = yield* onFirstPause(handlerResult, () => {\n finishLock = setupAsyncLocks(cache, futureCache, arg);\n });\n } else {\n value = handlerResult;\n }\n\n updateFunctionCache(callCache, cache, arg, value);\n\n if (finishLock) {\n futureCache.delete(arg);\n finishLock.release(value);\n }\n\n return value;\n };\n}\n\ntype CacheMap =\n | Map>\n // @ts-expect-error todo(flow->ts): add `extends object` constraint to ArgT\n | WeakMap>;\n\nfunction* getCachedValue(\n cache: CacheMap,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cachedValue: CacheEntry | void = cache.get(arg);\n\n if (cachedValue) {\n for (const { value, valid } of cachedValue) {\n if (yield* valid(data)) return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction* getCachedValueOrWait(\n asyncContext: boolean,\n callCache: CacheMap,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n data: SideChannel,\n): Handler<{ valid: true; value: ResultT } | { valid: false; value: null }> {\n const cached = yield* getCachedValue(callCache, arg, data);\n if (cached.valid) {\n return cached;\n }\n\n if (asyncContext) {\n const cached = yield* getCachedValue(futureCache, arg, data);\n if (cached.valid) {\n const value = yield* waitFor(cached.value.promise);\n return { valid: true, value };\n }\n }\n\n return { valid: false, value: null };\n}\n\nfunction setupAsyncLocks(\n config: CacheConfigurator,\n futureCache: CacheMap, SideChannel>,\n arg: ArgT,\n): Lock {\n const finishLock = new Lock();\n\n updateFunctionCache(futureCache, config, arg, finishLock);\n\n return finishLock;\n}\n\nfunction updateFunctionCache<\n ArgT,\n ResultT,\n SideChannel,\n Cache extends CacheMap,\n>(\n cache: Cache,\n config: CacheConfigurator,\n arg: ArgT,\n value: ResultT,\n) {\n if (!config.configured()) config.forever();\n\n let cachedValue: CacheEntry | void = cache.get(arg);\n\n config.deactivate();\n\n switch (config.mode()) {\n case \"forever\":\n cachedValue = [{ value, valid: genTrue }];\n cache.set(arg, cachedValue);\n break;\n case \"invalidate\":\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n break;\n case \"valid\":\n if (cachedValue) {\n cachedValue.push({ value, valid: config.validator() });\n } else {\n cachedValue = [{ value, valid: config.validator() }];\n cache.set(arg, cachedValue);\n }\n }\n}\n\nclass CacheConfigurator {\n _active: boolean = true;\n _never: boolean = false;\n _forever: boolean = false;\n _invalidate: boolean = false;\n\n _configured: boolean = false;\n\n _pairs: Array<\n [cachedValue: unknown, handler: (data: SideChannel) => Handler]\n > = [];\n\n _data: SideChannel;\n\n constructor(data: SideChannel) {\n this._data = data;\n }\n\n simple() {\n return makeSimpleConfigurator(this);\n }\n\n mode() {\n if (this._never) return \"never\";\n if (this._forever) return \"forever\";\n if (this._invalidate) return \"invalidate\";\n return \"valid\";\n }\n\n forever() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never) {\n throw new Error(\"Caching has already been configured with .never()\");\n }\n this._forever = true;\n this._configured = true;\n }\n\n never() {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._forever) {\n throw new Error(\"Caching has already been configured with .forever()\");\n }\n this._never = true;\n this._configured = true;\n }\n\n using(handler: (data: SideChannel) => T): T {\n if (!this._active) {\n throw new Error(\"Cannot change caching after evaluation has completed.\");\n }\n if (this._never || this._forever) {\n throw new Error(\n \"Caching has already been configured with .never or .forever()\",\n );\n }\n this._configured = true;\n\n const key = handler(this._data);\n\n const fn = maybeAsync(\n handler,\n `You appear to be using an async cache handler, but Babel has been called synchronously`,\n );\n\n if (isThenable(key)) {\n // @ts-expect-error todo(flow->ts): improve function return type annotation\n return key.then((key: unknown) => {\n this._pairs.push([key, fn]);\n return key;\n });\n }\n\n this._pairs.push([key, fn]);\n return key;\n }\n\n invalidate(handler: (data: SideChannel) => T): T {\n this._invalidate = true;\n return this.using(handler);\n }\n\n validator(): (data: SideChannel) => Handler {\n const pairs = this._pairs;\n return function* (data: SideChannel) {\n for (const [key, fn] of pairs) {\n if (key !== (yield* fn(data))) return false;\n }\n return true;\n };\n }\n\n deactivate() {\n this._active = false;\n }\n\n configured() {\n return this._configured;\n }\n}\n\nfunction makeSimpleConfigurator(\n cache: CacheConfigurator,\n): SimpleCacheConfigurator {\n function cacheFn(val: any) {\n if (typeof val === \"boolean\") {\n if (val) cache.forever();\n else cache.never();\n return;\n }\n\n return cache.using(() => assertSimpleType(val()));\n }\n cacheFn.forever = () => cache.forever();\n cacheFn.never = () => cache.never();\n cacheFn.using = (cb: { (): SimpleType }) =>\n cache.using(() => assertSimpleType(cb()));\n cacheFn.invalidate = (cb: { (): SimpleType }) =>\n cache.invalidate(() => assertSimpleType(cb()));\n\n return cacheFn as any;\n}\n\n// Types are limited here so that in the future these values can be used\n// as part of Babel's caching logic.\nexport type SimpleType =\n | string\n | boolean\n | number\n | null\n | void\n | Promise;\nexport function assertSimpleType(value: unknown): SimpleType {\n if (isThenable(value)) {\n throw new Error(\n `You appear to be using an async cache handler, ` +\n `which your current version of Babel does not support. ` +\n `We may add support for this in the future, ` +\n `but if you're on the most recent version of @babel/core and still ` +\n `seeing this error, then you'll need to synchronously handle your caching logic.`,\n );\n }\n\n if (\n value != null &&\n typeof value !== \"string\" &&\n typeof value !== \"boolean\" &&\n typeof value !== \"number\"\n ) {\n throw new Error(\n \"Cache keys must be either string, boolean, number, null, or undefined.\",\n );\n }\n // @ts-expect-error Type 'unknown' is not assignable to type 'SimpleType'. This can be removed\n // when strictNullCheck is enabled\n return value;\n}\n\nclass Lock {\n released: boolean = false;\n promise: Promise;\n _resolve: (value: T) => void;\n\n constructor() {\n this.promise = new Promise(resolve => {\n this._resolve = resolve;\n });\n }\n\n release(value: T) {\n this.released = true;\n this._resolve(value);\n }\n}\n","module.exports={A:\"ie\",B:\"edge\",C:\"firefox\",D:\"chrome\",E:\"safari\",F:\"opera\",G:\"ios_saf\",H:\"op_mini\",I:\"android\",J:\"bb\",K:\"op_mob\",L:\"and_chr\",M:\"and_ff\",N:\"ie_mob\",O:\"and_uc\",P:\"samsung\",Q:\"and_qq\",R:\"baidu\",S:\"kaios\"};\n","module.exports.browsers = require('../../data/browsers')\n","module.exports={\"0\":\"112\",\"1\":\"113\",\"2\":\"114\",\"3\":\"115\",\"4\":\"116\",\"5\":\"117\",\"6\":\"118\",\"7\":\"5\",\"8\":\"19\",\"9\":\"24\",A:\"10\",B:\"11\",C:\"12\",D:\"119\",E:\"7\",F:\"8\",G:\"9\",H:\"15\",I:\"4\",J:\"6\",K:\"13\",L:\"14\",M:\"16\",N:\"17\",O:\"18\",P:\"79\",Q:\"80\",R:\"81\",S:\"83\",T:\"84\",U:\"85\",V:\"86\",W:\"87\",X:\"88\",Y:\"89\",Z:\"90\",a:\"91\",b:\"92\",c:\"93\",d:\"94\",e:\"95\",f:\"96\",g:\"97\",h:\"98\",i:\"99\",j:\"100\",k:\"101\",l:\"102\",m:\"103\",n:\"104\",o:\"20\",p:\"21\",q:\"22\",r:\"23\",s:\"73\",t:\"105\",u:\"106\",v:\"107\",w:\"108\",x:\"109\",y:\"110\",z:\"111\",AB:\"25\",BB:\"26\",CB:\"27\",DB:\"28\",EB:\"29\",FB:\"30\",GB:\"31\",HB:\"32\",IB:\"33\",JB:\"34\",KB:\"35\",LB:\"36\",MB:\"37\",NB:\"38\",OB:\"39\",PB:\"40\",QB:\"41\",RB:\"42\",SB:\"43\",TB:\"44\",UB:\"45\",VB:\"46\",WB:\"47\",XB:\"48\",YB:\"49\",ZB:\"50\",aB:\"51\",bB:\"52\",cB:\"53\",dB:\"54\",eB:\"55\",fB:\"56\",gB:\"57\",hB:\"58\",iB:\"60\",jB:\"62\",kB:\"63\",lB:\"64\",mB:\"65\",nB:\"66\",oB:\"67\",pB:\"68\",qB:\"69\",rB:\"70\",sB:\"71\",tB:\"72\",uB:\"74\",vB:\"75\",wB:\"76\",xB:\"77\",yB:\"78\",zB:\"11.1\",\"0B\":\"12.1\",\"1B\":\"15.5\",\"2B\":\"16.0\",\"3B\":\"17.0\",\"4B\":\"3\",\"5B\":\"59\",\"6B\":\"61\",\"7B\":\"82\",\"8B\":\"120\",\"9B\":\"121\",AC:\"122\",BC:\"3.2\",CC:\"10.1\",DC:\"13.1\",EC:\"15.2-15.3\",FC:\"15.4\",GC:\"16.1\",HC:\"16.2\",IC:\"16.3\",JC:\"16.4\",KC:\"16.5\",LC:\"17.1\",MC:\"17.2\",NC:\"11.5\",OC:\"4.2-4.3\",PC:\"5.5\",QC:\"2\",RC:\"123\",SC:\"3.5\",TC:\"3.6\",UC:\"3.1\",VC:\"5.1\",WC:\"6.1\",XC:\"7.1\",YC:\"9.1\",ZC:\"14.1\",aC:\"15.1\",bC:\"15.6\",cC:\"16.6\",dC:\"TP\",eC:\"9.5-9.6\",fC:\"10.0-10.1\",gC:\"10.5\",hC:\"10.6\",iC:\"11.6\",jC:\"4.0-4.1\",kC:\"5.0-5.1\",lC:\"6.0-6.1\",mC:\"7.0-7.1\",nC:\"8.1-8.4\",oC:\"9.0-9.2\",pC:\"9.3\",qC:\"10.0-10.2\",rC:\"10.3\",sC:\"11.0-11.2\",tC:\"11.3-11.4\",uC:\"12.0-12.1\",vC:\"12.2-12.5\",wC:\"13.0-13.1\",xC:\"13.2\",yC:\"13.3\",zC:\"13.4-13.7\",\"0C\":\"14.0-14.4\",\"1C\":\"14.5-14.8\",\"2C\":\"15.0-15.1\",\"3C\":\"15.6-15.7\",\"4C\":\"16.6-16.7\",\"5C\":\"all\",\"6C\":\"2.1\",\"7C\":\"2.2\",\"8C\":\"2.3\",\"9C\":\"4.1\",AD:\"4.4\",BD:\"4.4.3-4.4.4\",CD:\"5.0-5.4\",DD:\"6.2-6.4\",ED:\"7.2-7.4\",FD:\"8.2\",GD:\"9.2\",HD:\"11.1-11.2\",ID:\"12.0\",JD:\"13.0\",KD:\"14.0\",LD:\"15.0\",MD:\"18.0\",ND:\"19.0\",OD:\"13.18\",PD:\"2.5\",QD:\"3.0-3.1\"};\n","module.exports.browserVersions = require('../../data/browserVersions')\n","module.exports={A:{A:{J:0,E:0,F:0.0125552,G:0.062776,A:0,B:0.364101,PC:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"PC\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE\",F:{PC:962323200,J:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{\"0\":0.013452,\"1\":0.017936,\"2\":0.02242,\"3\":0.026904,\"4\":0.040356,\"5\":0.461852,\"6\":0.816088,C:0.008968,K:0.008968,L:0.013452,H:0.008968,M:0,N:0.004484,O:0.008968,P:0,Q:0,R:0,S:0,T:0.004484,U:0.004484,V:0,W:0.219716,X:0,Y:0,Z:0,a:0,b:0.013452,c:0,d:0,e:0,f:0,g:0,h:0,i:0.017936,j:0,k:0,l:0,m:0,n:0,t:0,u:0.004484,v:0.008968,w:0.013452,x:0.085196,y:0.013452,z:0.013452,D:3.48407},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"\",\"\",\"\"],E:\"Edge\",F:{\"0\":1680825600,\"1\":1683158400,\"2\":1685664000,\"3\":1689897600,\"4\":1692576000,\"5\":1694649600,\"6\":1697155200,C:1438128000,K:1447286400,L:1470096000,H:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,R:1586736000,S:1590019200,T:1594857600,U:1598486400,V:1602201600,W:1605830400,X:1611360000,Y:1614816000,Z:1618358400,a:1622073600,b:1626912000,c:1630627200,d:1632441600,e:1634774400,f:1637539200,g:1641427200,h:1643932800,i:1646265600,j:1649635200,k:1651190400,l:1653955200,m:1655942400,n:1659657600,t:1661990400,u:1664755200,v:1666915200,w:1670198400,x:1673481600,y:1675900800,z:1678665600,D:1698969600},D:{C:\"ms\",K:\"ms\",L:\"ms\",H:\"ms\",M:\"ms\",N:\"ms\",O:\"ms\"}},C:{A:{\"0\":0.008968,\"1\":0.017936,\"2\":0.017936,\"3\":0.372172,\"4\":0.017936,\"5\":0.017936,\"6\":0.13452,\"7\":0,\"8\":0,\"9\":0,QC:0,\"4B\":0,I:0,J:0,E:0.004484,F:0,G:0,A:0,B:0.026904,C:0.013452,K:0,L:0,H:0,M:0,N:0,O:0,o:0,p:0,q:0,r:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0.004484,TB:0.004484,UB:0,VB:0,WB:0,XB:0.031388,YB:0,ZB:0.013452,aB:0,bB:0.062776,cB:0.008968,dB:0.017936,eB:0.004484,fB:0.02242,gB:0,hB:0,\"5B\":0.008968,iB:0,\"6B\":0,jB:0,kB:0.004484,lB:0,mB:0,nB:0,oB:0,pB:0.004484,qB:0,rB:0,sB:0,tB:0.008968,s:0,uB:0,vB:0,wB:0,xB:0.004484,yB:0.026904,P:0,Q:0,R:0,\"7B\":0,S:0.004484,T:0,U:0,V:0,W:0,X:0.008968,Y:0,Z:0,a:0.013452,b:0,c:0,d:0.004484,e:0,f:0,g:0,h:0,i:0,j:0,k:0.004484,l:0.031388,m:0.031388,n:0,t:0.004484,u:0.004484,v:0.004484,w:0.008968,x:0.008968,y:0.008968,z:0.008968,D:1.43488,\"8B\":0.372172,\"9B\":0,AC:0,RC:0,SC:0,TC:0},B:\"moz\",C:[\"QC\",\"4B\",\"SC\",\"TC\",\"I\",\"7\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"8\",\"o\",\"p\",\"q\",\"r\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"5B\",\"iB\",\"6B\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"s\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"7B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"8B\",\"9B\",\"AC\",\"RC\"],E:\"Firefox\",F:{\"0\":1681171200,\"1\":1683590400,\"2\":1686009600,\"3\":1688428800,\"4\":1690848000,\"5\":1693267200,\"6\":1695686400,\"7\":1308614400,\"8\":1357603200,\"9\":1375747200,QC:1161648000,\"4B\":1213660800,SC:1246320000,TC:1264032000,I:1300752000,J:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,H:1342483200,M:1346112000,N:1349740800,O:1353628800,o:1361232000,p:1364860800,q:1368489600,r:1372118400,AB:1379376000,BB:1386633600,CB:1391472000,DB:1395100800,EB:1398729600,FB:1402358400,GB:1405987200,HB:1409616000,IB:1413244800,JB:1417392000,KB:1421107200,LB:1424736000,MB:1428278400,NB:1431475200,OB:1435881600,PB:1439251200,QB:1442880000,RB:1446508800,SB:1450137600,TB:1453852800,UB:1457395200,VB:1461628800,WB:1465257600,XB:1470096000,YB:1474329600,ZB:1479168000,aB:1485216000,bB:1488844800,cB:1492560000,dB:1497312000,eB:1502150400,fB:1506556800,gB:1510617600,hB:1516665600,\"5B\":1520985600,iB:1525824000,\"6B\":1529971200,jB:1536105600,kB:1540252800,lB:1544486400,mB:1548720000,nB:1552953600,oB:1558396800,pB:1562630400,qB:1567468800,rB:1571788800,sB:1575331200,tB:1578355200,s:1581379200,uB:1583798400,vB:1586304000,wB:1588636800,xB:1591056000,yB:1593475200,P:1595894400,Q:1598313600,R:1600732800,\"7B\":1603152000,S:1605571200,T:1607990400,U:1611619200,V:1614038400,W:1616457600,X:1618790400,Y:1622505600,Z:1626134400,a:1628553600,b:1630972800,c:1633392000,d:1635811200,e:1638835200,f:1641859200,g:1644364800,h:1646697600,i:1649116800,j:1651536000,k:1653955200,l:1656374400,m:1658793600,n:1661212800,t:1663632000,u:1666051200,v:1668470400,w:1670889600,x:1673913600,y:1676332800,z:1678752000,D:1698105600,\"8B\":1700524800,\"9B\":null,AC:null,RC:null}},D:{A:{\"0\":0.116584,\"1\":0.20178,\"2\":0.219716,\"3\":0.147972,\"4\":0.497724,\"5\":0.69502,\"6\":5.40322,\"7\":0,\"8\":0,\"9\":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0,K:0,L:0,H:0,M:0,N:0,O:0,o:0,p:0,q:0,r:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0.004484,KB:0,LB:0,MB:0,NB:0.013452,OB:0,PB:0,QB:0.004484,RB:0,SB:0,TB:0,UB:0.008968,VB:0,WB:0.008968,XB:0.026904,YB:0.031388,ZB:0.008968,aB:0.004484,bB:0.004484,cB:0.008968,dB:0,eB:0.008968,fB:0.026904,gB:0.013452,hB:0.004484,\"5B\":0,iB:0.035872,\"6B\":0.013452,jB:0,kB:0.008968,lB:0.004484,mB:0.008968,nB:0.02242,oB:0.004484,pB:0.013452,qB:0.049324,rB:0.192812,sB:0.013452,tB:0.017936,s:0.026904,uB:0.026904,vB:0.02242,wB:0.058292,xB:0.02242,yB:0.026904,P:0.161424,Q:0.049324,R:0.04484,S:0.053808,T:0.026904,U:0.076228,V:0.062776,W:0.08968,X:0.026904,Y:0.026904,Z:0.035872,a:0.080712,b:0.040356,c:0.116584,d:0.040356,e:0.017936,f:0.017936,g:0.02242,h:0.06726,i:0.035872,j:0.035872,k:0.049324,l:0.035872,m:0.38114,n:0.049324,t:0.049324,u:0.062776,v:0.058292,w:0.1121,x:1.78912,y:0.080712,z:0.094164,D:14.703,\"8B\":0.02242,\"9B\":0.013452,AC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"7\",\"J\",\"E\",\"F\",\"G\",\"A\",\"B\",\"C\",\"K\",\"L\",\"H\",\"M\",\"N\",\"O\",\"8\",\"o\",\"p\",\"q\",\"r\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"5B\",\"iB\",\"6B\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"s\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"D\",\"8B\",\"9B\",\"AC\"],E:\"Chrome\",F:{\"0\":1680566400,\"1\":1682985600,\"2\":1685404800,\"3\":1689724800,\"4\":1692057600,\"5\":1694476800,\"6\":1696896000,\"7\":1274745600,\"8\":1332892800,\"9\":1352246400,I:1264377600,J:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,H:1316131200,M:1319500800,N:1323734400,O:1328659200,o:1337040000,p:1340668800,q:1343692800,r:1348531200,AB:1357862400,BB:1361404800,CB:1364428800,DB:1369094400,EB:1374105600,FB:1376956800,GB:1384214400,HB:1389657600,IB:1392940800,JB:1397001600,KB:1400544000,LB:1405468800,MB:1409011200,NB:1412640000,OB:1416268800,PB:1421798400,QB:1425513600,RB:1429401600,SB:1432080000,TB:1437523200,UB:1441152000,VB:1444780800,WB:1449014400,XB:1453248000,YB:1456963200,ZB:1460592000,aB:1464134400,bB:1469059200,cB:1472601600,dB:1476230400,eB:1480550400,fB:1485302400,gB:1489017600,hB:1492560000,\"5B\":1496707200,iB:1500940800,\"6B\":1504569600,jB:1508198400,kB:1512518400,lB:1516752000,mB:1520294400,nB:1523923200,oB:1527552000,pB:1532390400,qB:1536019200,rB:1539648000,sB:1543968000,tB:1548720000,s:1552348800,uB:1555977600,vB:1559606400,wB:1564444800,xB:1568073600,yB:1571702400,P:1575936000,Q:1580860800,R:1586304000,S:1589846400,T:1594684800,U:1598313600,V:1601942400,W:1605571200,X:1611014400,Y:1614556800,Z:1618272000,a:1621987200,b:1626739200,c:1630368000,d:1632268800,e:1634601600,f:1637020800,g:1641340800,h:1643673600,i:1646092800,j:1648512000,k:1650931200,l:1653350400,m:1655769600,n:1659398400,t:1661817600,u:1664236800,v:1666656000,w:1669680000,x:1673308800,y:1675728000,z:1678147200,D:1698710400,\"8B\":null,\"9B\":null,AC:null}},E:{A:{\"7\":0,I:0,J:0,E:0,F:0,G:0,A:0,B:0,C:0,K:0.013452,L:0.085196,H:0.017936,UC:0,BC:0,VC:0.008968,WC:0,XC:0,YC:0.06726,CC:0,zB:0.008968,\"0B\":0.02242,DC:0.1121,ZC:0.206264,aC:0.040356,EC:0.031388,FC:0.06726,\"1B\":0.103132,bC:0.520144,\"2B\":0.06726,GC:0.17936,HC:0.165908,IC:0.367688,JC:0.143488,KC:0.295944,cC:2.08058,\"3B\":0.443916,LC:0.686052,MC:0.017936,dC:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"UC\",\"BC\",\"I\",\"7\",\"VC\",\"J\",\"WC\",\"E\",\"XC\",\"F\",\"G\",\"YC\",\"A\",\"CC\",\"B\",\"zB\",\"C\",\"0B\",\"K\",\"DC\",\"L\",\"ZC\",\"H\",\"aC\",\"EC\",\"FC\",\"1B\",\"bC\",\"2B\",\"GC\",\"HC\",\"IC\",\"JC\",\"KC\",\"cC\",\"3B\",\"LC\",\"MC\",\"dC\",\"\"],E:\"Safari\",F:{\"7\":1275868800,UC:1205798400,BC:1226534400,I:1244419200,VC:1311120000,J:1343174400,WC:1382400000,E:1382400000,XC:1410998400,F:1413417600,G:1443657600,YC:1458518400,A:1474329600,CC:1490572800,B:1505779200,zB:1522281600,C:1537142400,\"0B\":1553472000,K:1568851200,DC:1585008000,L:1600214400,ZC:1619395200,H:1632096000,aC:1635292800,EC:1639353600,FC:1647216000,\"1B\":1652745600,bC:1658275200,\"2B\":1662940800,GC:1666569600,HC:1670889600,IC:1674432000,JC:1679875200,KC:1684368000,cC:1690156800,\"3B\":1695686400,LC:1698192000,MC:null,dC:null}},F:{A:{\"8\":0,\"9\":0,G:0,B:0,C:0,H:0,M:0,N:0,O:0,o:0,p:0,q:0,r:0,AB:0,BB:0,CB:0,DB:0,EB:0,FB:0,GB:0,HB:0,IB:0,JB:0,KB:0,LB:0,MB:0,NB:0,OB:0,PB:0,QB:0,RB:0,SB:0,TB:0,UB:0,VB:0.013452,WB:0,XB:0,YB:0,ZB:0,aB:0,bB:0,cB:0,dB:0,eB:0,fB:0,gB:0,hB:0,iB:0,jB:0,kB:0,lB:0,mB:0,nB:0,oB:0,pB:0,qB:0,rB:0,sB:0,tB:0,s:0,uB:0,vB:0,wB:0,xB:0,yB:0,P:0,Q:0,R:0,\"7B\":0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0,a:0,b:0,c:0,d:0,e:0.053808,f:0,g:0,h:0,i:0.004484,j:0.004484,k:0.004484,l:0.914736,m:0.161424,n:0.663632,eC:0,fC:0,gC:0,hC:0,zB:0,NC:0,iC:0,\"0B\":0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"G\",\"eC\",\"fC\",\"gC\",\"hC\",\"B\",\"zB\",\"NC\",\"iC\",\"C\",\"0B\",\"H\",\"M\",\"N\",\"O\",\"8\",\"o\",\"p\",\"q\",\"r\",\"9\",\"AB\",\"BB\",\"CB\",\"DB\",\"EB\",\"FB\",\"GB\",\"HB\",\"IB\",\"JB\",\"KB\",\"LB\",\"MB\",\"NB\",\"OB\",\"PB\",\"QB\",\"RB\",\"SB\",\"TB\",\"UB\",\"VB\",\"WB\",\"XB\",\"YB\",\"ZB\",\"aB\",\"bB\",\"cB\",\"dB\",\"eB\",\"fB\",\"gB\",\"hB\",\"iB\",\"jB\",\"kB\",\"lB\",\"mB\",\"nB\",\"oB\",\"pB\",\"qB\",\"rB\",\"sB\",\"tB\",\"s\",\"uB\",\"vB\",\"wB\",\"xB\",\"yB\",\"P\",\"Q\",\"R\",\"7B\",\"S\",\"T\",\"U\",\"V\",\"W\",\"X\",\"Y\",\"Z\",\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"\",\"\",\"\"],E:\"Opera\",F:{\"8\":1390867200,\"9\":1409616000,G:1150761600,eC:1223424000,fC:1251763200,gC:1267488000,hC:1277942400,B:1292457600,zB:1302566400,NC:1309219200,iC:1323129600,C:1323129600,\"0B\":1352073600,H:1372723200,M:1377561600,N:1381104000,O:1386288000,o:1393891200,p:1399334400,q:1401753600,r:1405987200,AB:1413331200,BB:1417132800,CB:1422316800,DB:1425945600,EB:1430179200,FB:1433808000,GB:1438646400,HB:1442448000,IB:1445904000,JB:1449100800,KB:1454371200,LB:1457308800,MB:1462320000,NB:1465344000,OB:1470096000,PB:1474329600,QB:1477267200,RB:1481587200,SB:1486425600,TB:1490054400,UB:1494374400,VB:1498003200,WB:1502236800,XB:1506470400,YB:1510099200,ZB:1515024000,aB:1517961600,bB:1521676800,cB:1525910400,dB:1530144000,eB:1534982400,fB:1537833600,gB:1543363200,hB:1548201600,iB:1554768000,jB:1561593600,kB:1566259200,lB:1570406400,mB:1573689600,nB:1578441600,oB:1583971200,pB:1587513600,qB:1592956800,rB:1595894400,sB:1600128000,tB:1603238400,s:1613520000,uB:1612224000,vB:1616544000,wB:1619568000,xB:1623715200,yB:1627948800,P:1631577600,Q:1633392000,R:1635984000,\"7B\":1638403200,S:1642550400,T:1644969600,U:1647993600,V:1650412800,W:1652745600,X:1654646400,Y:1657152000,Z:1660780800,a:1663113600,b:1668816000,c:1668643200,d:1671062400,e:1675209600,f:1677024000,g:1679529600,h:1681948800,i:1684195200,j:1687219200,k:1690329600,l:1692748800,m:1696204800,n:1699920000},D:{G:\"o\",B:\"o\",C:\"o\",eC:\"o\",fC:\"o\",gC:\"o\",hC:\"o\",zB:\"o\",NC:\"o\",iC:\"o\",\"0B\":\"o\"}},G:{A:{F:0,BC:0,jC:0,OC:0.00276131,kC:0.00276131,lC:0.00690327,mC:0.00966458,nC:0.00138065,oC:0.0110452,pC:0.0345164,qC:0.00276131,rC:0.0497036,sC:0.0248518,tC:0.0207098,uC:0.0124259,vC:0.226427,wC:0.00552262,xC:0.0248518,yC:0.0138065,zC:0.040039,\"0C\":0.107691,\"1C\":0.171201,\"2C\":0.0690327,EC:0.0828393,FC:0.0925039,\"1B\":0.129782,\"3C\":0.682043,\"2B\":0.320312,GC:0.642004,HC:0.306505,IC:0.575733,JC:0.121498,KC:0.306505,\"4C\":5.19264,\"3B\":1.556,LC:2.6122,MC:0.0731747},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"BC\",\"jC\",\"OC\",\"kC\",\"lC\",\"mC\",\"F\",\"nC\",\"oC\",\"pC\",\"qC\",\"rC\",\"sC\",\"tC\",\"uC\",\"vC\",\"wC\",\"xC\",\"yC\",\"zC\",\"0C\",\"1C\",\"2C\",\"EC\",\"FC\",\"1B\",\"3C\",\"2B\",\"GC\",\"HC\",\"IC\",\"JC\",\"KC\",\"4C\",\"3B\",\"LC\",\"MC\",\"\",\"\"],E:\"Safari on iOS\",F:{BC:1270252800,jC:1283904000,OC:1299628800,kC:1331078400,lC:1359331200,mC:1394409600,F:1410912000,nC:1413763200,oC:1442361600,pC:1458518400,qC:1473724800,rC:1490572800,sC:1505779200,tC:1522281600,uC:1537142400,vC:1553472000,wC:1568851200,xC:1572220800,yC:1580169600,zC:1585008000,\"0C\":1600214400,\"1C\":1619395200,\"2C\":1632096000,EC:1639353600,FC:1647216000,\"1B\":1652659200,\"3C\":1658275200,\"2B\":1662940800,GC:1666569600,HC:1670889600,IC:1674432000,JC:1679875200,KC:1684368000,\"4C\":1690156800,\"3B\":1694995200,LC:1698192000,MC:null}},H:{A:{\"5C\":0.06},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"5C\",\"\",\"\",\"\"],E:\"Opera Mini\",F:{\"5C\":1426464000}},I:{A:{\"4B\":0.0000512988,I:0.000102598,D:0.510372,\"6C\":0,\"7C\":0.000102598,\"8C\":0,\"9C\":0.0000512988,OC:0.000359092,AD:0,BD:0.00148767},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"6C\",\"7C\",\"8C\",\"4B\",\"I\",\"9C\",\"OC\",\"AD\",\"BD\",\"D\",\"\",\"\",\"\"],E:\"Android Browser\",F:{\"6C\":1256515200,\"7C\":1274313600,\"8C\":1291593600,\"4B\":1298332800,I:1318896000,\"9C\":1341792000,OC:1374624000,AD:1386547200,BD:1401667200,D:1698710400}},J:{A:{E:0,A:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"E\",\"A\",\"\",\"\",\"\"],E:\"Blackberry Browser\",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,s:1.08181,zB:0,NC:0,\"0B\":0},B:\"o\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"zB\",\"NC\",\"C\",\"0B\",\"s\",\"\",\"\",\"\"],E:\"Opera Mobile\",F:{A:1287100800,B:1300752000,zB:1314835200,NC:1318291200,C:1330300800,\"0B\":1349740800,s:1673827200},D:{s:\"webkit\"}},L:{A:{D:36.3992},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Chrome for Android\",F:{D:1698710400}},M:{A:{D:0.286832},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"D\",\"\",\"\",\"\"],E:\"Firefox for Android\",F:{D:1698105600}},N:{A:{A:0,B:0},B:\"ms\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"A\",\"B\",\"\",\"\",\"\"],E:\"IE Mobile\",F:{A:1340150400,B:1353456000}},O:{A:{\"1B\":0.794304},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"1B\",\"\",\"\",\"\"],E:\"UC Browser for Android\",F:{\"1B\":1687132800},D:{\"1B\":\"webkit\"}},P:{A:{I:0.109121,o:0.0436483,p:0.0982088,q:0.250978,r:1.83323,CD:0,DD:0,ED:0.0327363,FD:0,GD:0,CC:0,HD:0.0109121,ID:0,JD:0.0109121,KD:0,LD:0,\"2B\":0.0218242,\"3B\":0.0327363,MD:0.0218242,ND:0.0436483},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"I\",\"CD\",\"DD\",\"ED\",\"FD\",\"GD\",\"CC\",\"HD\",\"ID\",\"JD\",\"KD\",\"LD\",\"2B\",\"3B\",\"MD\",\"ND\",\"o\",\"p\",\"q\",\"r\",\"\",\"\",\"\"],E:\"Samsung Internet\",F:{I:1461024000,CD:1481846400,DD:1509408000,ED:1528329600,FD:1546128000,GD:1554163200,CC:1567900800,HD:1582588800,ID:1593475200,JD:1605657600,KD:1618531200,LD:1629072000,\"2B\":1640736000,\"3B\":1651708800,MD:1659657600,ND:1667260800,o:1677369600,p:1684454400,q:1689292800,r:1697587200}},Q:{A:{DC:0.143416},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"DC\",\"\",\"\",\"\"],E:\"QQ Browser\",F:{DC:1663718400}},R:{A:{OD:0},B:\"webkit\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"OD\",\"\",\"\",\"\"],E:\"Baidu Browser\",F:{OD:1663027200}},S:{A:{PD:0.066192,QD:0},B:\"moz\",C:[\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"PD\",\"QD\",\"\",\"\",\"\"],E:\"KaiOS Browser\",F:{PD:1527811200,QD:1631664000}}};\n","'use strict'\n\nconst browsers = require('./browsers').browsers\nconst versions = require('./browserVersions').browserVersions\nconst agentsData = require('../../data/agents')\n\nfunction unpackBrowserVersions(versionsData) {\n return Object.keys(versionsData).reduce((usage, version) => {\n usage[versions[version]] = versionsData[version]\n return usage\n }, {})\n}\n\nmodule.exports.agents = Object.keys(agentsData).reduce((map, key) => {\n let versionsData = agentsData[key]\n map[browsers[key]] = Object.keys(versionsData).reduce((data, entry) => {\n if (entry === 'A') {\n data.usage_global = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'C') {\n data.versions = versionsData[entry].reduce((list, version) => {\n if (version === '') {\n list.push(null)\n } else {\n list.push(versions[version])\n }\n return list\n }, [])\n } else if (entry === 'D') {\n data.prefix_exceptions = unpackBrowserVersions(versionsData[entry])\n } else if (entry === 'E') {\n data.browser = versionsData[entry]\n } else if (entry === 'F') {\n data.release_date = Object.keys(versionsData[entry]).reduce(\n (map2, key2) => {\n map2[versions[key2]] = versionsData[entry][key2]\n return map2\n },\n {}\n )\n } else {\n // entry is B\n data.prefix = versionsData[entry]\n }\n return data\n }, {})\n return map\n}, {})\n","module.exports = {\n\t\"0.20\": \"39\",\n\t\"0.21\": \"41\",\n\t\"0.22\": \"41\",\n\t\"0.23\": \"41\",\n\t\"0.24\": \"41\",\n\t\"0.25\": \"42\",\n\t\"0.26\": \"42\",\n\t\"0.27\": \"43\",\n\t\"0.28\": \"43\",\n\t\"0.29\": \"43\",\n\t\"0.30\": \"44\",\n\t\"0.31\": \"45\",\n\t\"0.32\": \"45\",\n\t\"0.33\": \"45\",\n\t\"0.34\": \"45\",\n\t\"0.35\": \"45\",\n\t\"0.36\": \"47\",\n\t\"0.37\": \"49\",\n\t\"1.0\": \"49\",\n\t\"1.1\": \"50\",\n\t\"1.2\": \"51\",\n\t\"1.3\": \"52\",\n\t\"1.4\": \"53\",\n\t\"1.5\": \"54\",\n\t\"1.6\": \"56\",\n\t\"1.7\": \"58\",\n\t\"1.8\": \"59\",\n\t\"2.0\": \"61\",\n\t\"2.1\": \"61\",\n\t\"3.0\": \"66\",\n\t\"3.1\": \"66\",\n\t\"4.0\": \"69\",\n\t\"4.1\": \"69\",\n\t\"4.2\": \"69\",\n\t\"5.0\": \"73\",\n\t\"6.0\": \"76\",\n\t\"6.1\": \"76\",\n\t\"7.0\": \"78\",\n\t\"7.1\": \"78\",\n\t\"7.2\": \"78\",\n\t\"7.3\": \"78\",\n\t\"8.0\": \"80\",\n\t\"8.1\": \"80\",\n\t\"8.2\": \"80\",\n\t\"8.3\": \"80\",\n\t\"8.4\": \"80\",\n\t\"8.5\": \"80\",\n\t\"9.0\": \"83\",\n\t\"9.1\": \"83\",\n\t\"9.2\": \"83\",\n\t\"9.3\": \"83\",\n\t\"9.4\": \"83\",\n\t\"10.0\": \"85\",\n\t\"10.1\": \"85\",\n\t\"10.2\": \"85\",\n\t\"10.3\": \"85\",\n\t\"10.4\": \"85\",\n\t\"11.0\": \"87\",\n\t\"11.1\": \"87\",\n\t\"11.2\": \"87\",\n\t\"11.3\": \"87\",\n\t\"11.4\": \"87\",\n\t\"11.5\": \"87\",\n\t\"12.0\": \"89\",\n\t\"12.1\": \"89\",\n\t\"12.2\": \"89\",\n\t\"13.0\": \"91\",\n\t\"13.1\": \"91\",\n\t\"13.2\": \"91\",\n\t\"13.3\": \"91\",\n\t\"13.4\": \"91\",\n\t\"13.5\": \"91\",\n\t\"13.6\": \"91\",\n\t\"14.0\": \"93\",\n\t\"14.1\": \"93\",\n\t\"14.2\": \"93\",\n\t\"15.0\": \"94\",\n\t\"15.1\": \"94\",\n\t\"15.2\": \"94\",\n\t\"15.3\": \"94\",\n\t\"15.4\": \"94\",\n\t\"15.5\": \"94\",\n\t\"16.0\": \"96\",\n\t\"16.1\": \"96\",\n\t\"16.2\": \"96\",\n\t\"17.0\": \"98\",\n\t\"17.1\": \"98\",\n\t\"17.2\": \"98\",\n\t\"17.3\": \"98\",\n\t\"17.4\": \"98\",\n\t\"18.0\": \"100\",\n\t\"18.1\": \"100\",\n\t\"18.2\": \"100\",\n\t\"18.3\": \"100\",\n\t\"19.0\": \"102\",\n\t\"19.1\": \"102\",\n\t\"20.0\": \"104\",\n\t\"20.1\": \"104\",\n\t\"20.2\": \"104\",\n\t\"20.3\": \"104\",\n\t\"21.0\": \"106\",\n\t\"21.1\": \"106\",\n\t\"21.2\": \"106\",\n\t\"21.3\": \"106\",\n\t\"21.4\": \"106\",\n\t\"22.0\": \"108\",\n\t\"22.1\": \"108\",\n\t\"22.2\": \"108\",\n\t\"22.3\": \"108\",\n\t\"23.0\": \"110\",\n\t\"23.1\": \"110\",\n\t\"23.2\": \"110\",\n\t\"23.3\": \"110\",\n\t\"24.0\": \"112\",\n\t\"24.1\": \"112\",\n\t\"24.2\": \"112\",\n\t\"24.3\": \"112\",\n\t\"24.4\": \"112\",\n\t\"24.5\": \"112\",\n\t\"24.6\": \"112\",\n\t\"25.0\": \"114\",\n\t\"25.1\": \"114\",\n\t\"25.2\": \"114\",\n\t\"26.0\": \"116\"\n};","function BrowserslistError(message) {\n this.name = 'BrowserslistError'\n this.message = message\n this.browserslist = true\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrowserslistError)\n }\n}\n\nBrowserslistError.prototype = Error.prototype\n\nmodule.exports = BrowserslistError\n","var AND_REGEXP = /^\\s+and\\s+(.*)/i\nvar OR_REGEXP = /^(?:,\\s*|\\s+or\\s+)(.*)/i\n\nfunction flatten(array) {\n if (!Array.isArray(array)) return [array]\n return array.reduce(function (a, b) {\n return a.concat(flatten(b))\n }, [])\n}\n\nfunction find(string, predicate) {\n for (var n = 1, max = string.length; n <= max; n++) {\n var parsed = string.substr(-n, n)\n if (predicate(parsed, n, max)) {\n return string.slice(0, -n)\n }\n }\n return ''\n}\n\nfunction matchQuery(all, query) {\n var node = { query: query }\n if (query.indexOf('not ') === 0) {\n node.not = true\n query = query.slice(4)\n }\n\n for (var name in all) {\n var type = all[name]\n var match = query.match(type.regexp)\n if (match) {\n node.type = name\n for (var i = 0; i < type.matches.length; i++) {\n node[type.matches[i]] = match[i + 1]\n }\n return node\n }\n }\n\n node.type = 'unknown'\n return node\n}\n\nfunction matchBlock(all, string, qs) {\n var node\n return find(string, function (parsed, n, max) {\n if (AND_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(AND_REGEXP)[1])\n node.compose = 'and'\n qs.unshift(node)\n return true\n } else if (OR_REGEXP.test(parsed)) {\n node = matchQuery(all, parsed.match(OR_REGEXP)[1])\n node.compose = 'or'\n qs.unshift(node)\n return true\n } else if (n === max) {\n node = matchQuery(all, parsed.trim())\n node.compose = 'or'\n qs.unshift(node)\n return true\n }\n return false\n })\n}\n\nmodule.exports = function parse(all, queries) {\n if (!Array.isArray(queries)) queries = [queries]\n return flatten(\n queries.map(function (block) {\n var qs = []\n do {\n block = matchBlock(all, block, qs)\n } while (block)\n return qs\n })\n )\n}\n","var BrowserslistError = require('./error')\n\nfunction noop() {}\n\nmodule.exports = {\n loadQueries: function loadQueries() {\n throw new BrowserslistError(\n 'Sharable configs are not supported in client-side build of Browserslist'\n )\n },\n\n getStat: function getStat(opts) {\n return opts.stats\n },\n\n loadConfig: function loadConfig(opts) {\n if (opts.config) {\n throw new BrowserslistError(\n 'Browserslist config are not supported in client-side build'\n )\n }\n },\n\n loadCountry: function loadCountry() {\n throw new BrowserslistError(\n 'Country statistics are not supported ' +\n 'in client-side build of Browserslist'\n )\n },\n\n loadFeature: function loadFeature() {\n throw new BrowserslistError(\n 'Supports queries are not available in client-side build of Browserslist'\n )\n },\n\n currentNode: function currentNode(resolve, context) {\n return resolve(['maintained node versions'], context)[0]\n },\n\n parseConfig: noop,\n\n readConfig: noop,\n\n findConfig: noop,\n\n clearCaches: noop,\n\n oldDataWarning: noop,\n\n env: {}\n}\n","var jsReleases = require('node-releases/data/processed/envs.json')\nvar agents = require('caniuse-lite/dist/unpacker/agents').agents\nvar jsEOL = require('node-releases/data/release-schedule/release-schedule.json')\nvar path = require('path')\nvar e2c = require('electron-to-chromium/versions')\n\nvar BrowserslistError = require('./error')\nvar parse = require('./parse')\nvar env = require('./node') // Will load browser.js in webpack\n\nvar YEAR = 365.259641 * 24 * 60 * 60 * 1000\nvar ANDROID_EVERGREEN_FIRST = '37'\nvar OP_MOB_BLINK_FIRST = 14\n\n// Helpers\n\nfunction isVersionsMatch(versionA, versionB) {\n return (versionA + '.').indexOf(versionB + '.') === 0\n}\n\nfunction isEolReleased(name) {\n var version = name.slice(1)\n return browserslist.nodeVersions.some(function (i) {\n return isVersionsMatch(i, version)\n })\n}\n\nfunction normalize(versions) {\n return versions.filter(function (version) {\n return typeof version === 'string'\n })\n}\n\nfunction normalizeElectron(version) {\n var versionToUse = version\n if (version.split('.').length === 3) {\n versionToUse = version.split('.').slice(0, -1).join('.')\n }\n return versionToUse\n}\n\nfunction nameMapper(name) {\n return function mapName(version) {\n return name + ' ' + version\n }\n}\n\nfunction getMajor(version) {\n return parseInt(version.split('.')[0])\n}\n\nfunction getMajorVersions(released, number) {\n if (released.length === 0) return []\n var majorVersions = uniq(released.map(getMajor))\n var minimum = majorVersions[majorVersions.length - number]\n if (!minimum) {\n return released\n }\n var selected = []\n for (var i = released.length - 1; i >= 0; i--) {\n if (minimum > getMajor(released[i])) break\n selected.unshift(released[i])\n }\n return selected\n}\n\nfunction uniq(array) {\n var filtered = []\n for (var i = 0; i < array.length; i++) {\n if (filtered.indexOf(array[i]) === -1) filtered.push(array[i])\n }\n return filtered\n}\n\nfunction fillUsage(result, name, data) {\n for (var i in data) {\n result[name + ' ' + i] = data[i]\n }\n}\n\nfunction generateFilter(sign, version) {\n version = parseFloat(version)\n if (sign === '>') {\n return function (v) {\n return parseFloat(v) > version\n }\n } else if (sign === '>=') {\n return function (v) {\n return parseFloat(v) >= version\n }\n } else if (sign === '<') {\n return function (v) {\n return parseFloat(v) < version\n }\n } else {\n return function (v) {\n return parseFloat(v) <= version\n }\n }\n}\n\nfunction generateSemverFilter(sign, version) {\n version = version.split('.').map(parseSimpleInt)\n version[1] = version[1] || 0\n version[2] = version[2] || 0\n if (sign === '>') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) > 0\n }\n } else if (sign === '>=') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(v, version) >= 0\n }\n } else if (sign === '<') {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) > 0\n }\n } else {\n return function (v) {\n v = v.split('.').map(parseSimpleInt)\n return compareSemver(version, v) >= 0\n }\n }\n}\n\nfunction parseSimpleInt(x) {\n return parseInt(x)\n}\n\nfunction compare(a, b) {\n if (a < b) return -1\n if (a > b) return +1\n return 0\n}\n\nfunction compareSemver(a, b) {\n return (\n compare(parseInt(a[0]), parseInt(b[0])) ||\n compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) ||\n compare(parseInt(a[2] || '0'), parseInt(b[2] || '0'))\n )\n}\n\n// this follows the npm-like semver behavior\nfunction semverFilterLoose(operator, range) {\n range = range.split('.').map(parseSimpleInt)\n if (typeof range[1] === 'undefined') {\n range[1] = 'x'\n }\n // ignore any patch version because we only return minor versions\n // range[2] = 'x'\n switch (operator) {\n case '<=':\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) <= 0\n }\n case '>=':\n default:\n return function (version) {\n version = version.split('.').map(parseSimpleInt)\n return compareSemverLoose(version, range) >= 0\n }\n }\n}\n\n// this follows the npm-like semver behavior\nfunction compareSemverLoose(version, range) {\n if (version[0] !== range[0]) {\n return version[0] < range[0] ? -1 : +1\n }\n if (range[1] === 'x') {\n return 0\n }\n if (version[1] !== range[1]) {\n return version[1] < range[1] ? -1 : +1\n }\n return 0\n}\n\nfunction resolveVersion(data, version) {\n if (data.versions.indexOf(version) !== -1) {\n return version\n } else if (browserslist.versionAliases[data.name][version]) {\n return browserslist.versionAliases[data.name][version]\n } else {\n return false\n }\n}\n\nfunction normalizeVersion(data, version) {\n var resolved = resolveVersion(data, version)\n if (resolved) {\n return resolved\n } else if (data.versions.length === 1) {\n return data.versions[0]\n } else {\n return false\n }\n}\n\nfunction filterByYear(since, context) {\n since = since / 1000\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var versions = Object.keys(data.releaseDate).filter(function (v) {\n var date = data.releaseDate[v]\n return date !== null && date >= since\n })\n return selected.concat(versions.map(nameMapper(data.name)))\n }, [])\n}\n\nfunction cloneData(data) {\n return {\n name: data.name,\n versions: data.versions,\n released: data.released,\n releaseDate: data.releaseDate\n }\n}\n\nfunction byName(name, context) {\n name = name.toLowerCase()\n name = browserslist.aliases[name] || name\n if (context.mobileToDesktop && browserslist.desktopNames[name]) {\n var desktop = browserslist.data[browserslist.desktopNames[name]]\n if (name === 'android') {\n return normalizeAndroidData(cloneData(browserslist.data[name]), desktop)\n } else {\n var cloned = cloneData(desktop)\n cloned.name = name\n return cloned\n }\n }\n return browserslist.data[name]\n}\n\nfunction normalizeAndroidVersions(androidVersions, chromeVersions) {\n var iFirstEvergreen = chromeVersions.indexOf(ANDROID_EVERGREEN_FIRST)\n return androidVersions\n .filter(function (version) {\n return /^(?:[2-4]\\.|[34]$)/.test(version)\n })\n .concat(chromeVersions.slice(iFirstEvergreen))\n}\n\nfunction copyObject(obj) {\n var copy = {}\n for (var key in obj) {\n copy[key] = obj[key]\n }\n return copy\n}\n\nfunction normalizeAndroidData(android, chrome) {\n android.released = normalizeAndroidVersions(android.released, chrome.released)\n android.versions = normalizeAndroidVersions(android.versions, chrome.versions)\n android.releaseDate = copyObject(android.releaseDate)\n android.released.forEach(function (v) {\n if (android.releaseDate[v] === undefined) {\n android.releaseDate[v] = chrome.releaseDate[v]\n }\n })\n return android\n}\n\nfunction checkName(name, context) {\n var data = byName(name, context)\n if (!data) throw new BrowserslistError('Unknown browser ' + name)\n return data\n}\n\nfunction unknownQuery(query) {\n return new BrowserslistError(\n 'Unknown browser query `' +\n query +\n '`. ' +\n 'Maybe you are using old Browserslist or made typo in query.'\n )\n}\n\n// Adjusts last X versions queries for some mobile browsers,\n// where caniuse data jumps from a legacy version to the latest\nfunction filterJumps(list, name, nVersions, context) {\n var jump = 1\n switch (name) {\n case 'android':\n if (context.mobileToDesktop) return list\n var released = browserslist.data.chrome.released\n jump = released.length - released.indexOf(ANDROID_EVERGREEN_FIRST)\n break\n case 'op_mob':\n var latest = browserslist.data.op_mob.released.slice(-1)[0]\n jump = getMajor(latest) - OP_MOB_BLINK_FIRST + 1\n break\n default:\n return list\n }\n if (nVersions <= jump) {\n return list.slice(-1)\n }\n return list.slice(jump - 1 - nVersions)\n}\n\nfunction isSupported(flags, withPartial) {\n return (\n typeof flags === 'string' &&\n (flags.indexOf('y') >= 0 || (withPartial && flags.indexOf('a') >= 0))\n )\n}\n\nfunction resolve(queries, context) {\n return parse(QUERIES, queries).reduce(function (result, node, index) {\n if (node.not && index === 0) {\n throw new BrowserslistError(\n 'Write any browsers query (for instance, `defaults`) ' +\n 'before `' +\n node.query +\n '`'\n )\n }\n var type = QUERIES[node.type]\n var array = type.select.call(browserslist, context, node).map(function (j) {\n var parts = j.split(' ')\n if (parts[1] === '0') {\n return parts[0] + ' ' + byName(parts[0], context).versions[0]\n } else {\n return j\n }\n })\n\n if (node.compose === 'and') {\n if (node.not) {\n return result.filter(function (j) {\n return array.indexOf(j) === -1\n })\n } else {\n return result.filter(function (j) {\n return array.indexOf(j) !== -1\n })\n }\n } else {\n if (node.not) {\n var filter = {}\n array.forEach(function (j) {\n filter[j] = true\n })\n return result.filter(function (j) {\n return !filter[j]\n })\n }\n return result.concat(array)\n }\n }, [])\n}\n\nfunction prepareOpts(opts) {\n if (typeof opts === 'undefined') opts = {}\n\n if (typeof opts.path === 'undefined') {\n opts.path = path.resolve ? path.resolve('.') : '.'\n }\n\n return opts\n}\n\nfunction prepareQueries(queries, opts) {\n if (typeof queries === 'undefined' || queries === null) {\n var config = browserslist.loadConfig(opts)\n if (config) {\n queries = config\n } else {\n queries = browserslist.defaults\n }\n }\n\n return queries\n}\n\nfunction checkQueries(queries) {\n if (!(typeof queries === 'string' || Array.isArray(queries))) {\n throw new BrowserslistError(\n 'Browser queries must be an array or string. Got ' + typeof queries + '.'\n )\n }\n}\n\nvar cache = {}\n\nfunction browserslist(queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n\n var context = {\n ignoreUnknownVersions: opts.ignoreUnknownVersions,\n dangerousExtend: opts.dangerousExtend,\n mobileToDesktop: opts.mobileToDesktop,\n path: opts.path,\n env: opts.env\n }\n\n env.oldDataWarning(browserslist.data)\n var stats = env.getStat(opts, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n\n var cacheKey = JSON.stringify([queries, context])\n if (cache[cacheKey]) return cache[cacheKey]\n\n var result = uniq(resolve(queries, context)).sort(function (name1, name2) {\n name1 = name1.split(' ')\n name2 = name2.split(' ')\n if (name1[0] === name2[0]) {\n // assumptions on caniuse data\n // 1) version ranges never overlaps\n // 2) if version is not a range, it never contains `-`\n var version1 = name1[1].split('-')[0]\n var version2 = name2[1].split('-')[0]\n return compareSemver(version2.split('.'), version1.split('.'))\n } else {\n return compare(name1[0], name2[0])\n }\n })\n if (!env.env.BROWSERSLIST_DISABLE_CACHE) {\n cache[cacheKey] = result\n }\n return result\n}\n\nbrowserslist.parse = function (queries, opts) {\n opts = prepareOpts(opts)\n queries = prepareQueries(queries, opts)\n checkQueries(queries)\n return parse(QUERIES, queries)\n}\n\n// Will be filled by Can I Use data below\nbrowserslist.cache = {}\nbrowserslist.data = {}\nbrowserslist.usage = {\n global: {},\n custom: null\n}\n\n// Default browsers query\nbrowserslist.defaults = ['> 0.5%', 'last 2 versions', 'Firefox ESR', 'not dead']\n\n// Browser names aliases\nbrowserslist.aliases = {\n fx: 'firefox',\n ff: 'firefox',\n ios: 'ios_saf',\n explorer: 'ie',\n blackberry: 'bb',\n explorermobile: 'ie_mob',\n operamini: 'op_mini',\n operamobile: 'op_mob',\n chromeandroid: 'and_chr',\n firefoxandroid: 'and_ff',\n ucandroid: 'and_uc',\n qqandroid: 'and_qq'\n}\n\n// Can I Use only provides a few versions for some browsers (e.g. and_chr).\n// Fallback to a similar browser for unknown versions\n// Note op_mob is not included as its chromium versions are not in sync with Opera desktop\nbrowserslist.desktopNames = {\n and_chr: 'chrome',\n and_ff: 'firefox',\n ie_mob: 'ie',\n android: 'chrome' // has extra processing logic\n}\n\n// Aliases to work with joined versions like `ios_saf 7.0-7.1`\nbrowserslist.versionAliases = {}\n\nbrowserslist.clearCaches = env.clearCaches\nbrowserslist.parseConfig = env.parseConfig\nbrowserslist.readConfig = env.readConfig\nbrowserslist.findConfig = env.findConfig\nbrowserslist.loadConfig = env.loadConfig\n\nbrowserslist.coverage = function (browsers, stats) {\n var data\n if (typeof stats === 'undefined') {\n data = browserslist.usage.global\n } else if (stats === 'my stats') {\n var opts = {}\n opts.path = path.resolve ? path.resolve('.') : '.'\n var customStats = env.getStat(opts)\n if (!customStats) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n data = {}\n for (var browser in customStats) {\n fillUsage(data, browser, customStats[browser])\n }\n } else if (typeof stats === 'string') {\n if (stats.length > 2) {\n stats = stats.toLowerCase()\n } else {\n stats = stats.toUpperCase()\n }\n env.loadCountry(browserslist.usage, stats, browserslist.data)\n data = browserslist.usage[stats]\n } else {\n if ('dataByBrowser' in stats) {\n stats = stats.dataByBrowser\n }\n data = {}\n for (var name in stats) {\n for (var version in stats[name]) {\n data[name + ' ' + version] = stats[name][version]\n }\n }\n }\n\n return browsers.reduce(function (all, i) {\n var usage = data[i]\n if (usage === undefined) {\n usage = data[i.replace(/ \\S+$/, ' 0')]\n }\n return all + (usage || 0)\n }, 0)\n}\n\nfunction nodeQuery(context, node) {\n var matched = browserslist.nodeVersions.filter(function (i) {\n return isVersionsMatch(i, node.version)\n })\n if (matched.length === 0) {\n if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of Node.js'\n )\n }\n }\n return ['node ' + matched[matched.length - 1]]\n}\n\nfunction sinceQuery(context, node) {\n var year = parseInt(node.year)\n var month = parseInt(node.month || '01') - 1\n var day = parseInt(node.day || '01')\n return filterByYear(Date.UTC(year, month, day, 0, 0, 0), context)\n}\n\nfunction coverQuery(context, node) {\n var coverage = parseFloat(node.coverage)\n var usage = browserslist.usage.global\n if (node.place) {\n if (node.place.match(/^my\\s+stats$/i)) {\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n usage = context.customUsage\n } else {\n var place\n if (node.place.length === 2) {\n place = node.place.toUpperCase()\n } else {\n place = node.place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n usage = browserslist.usage[place]\n }\n }\n var versions = Object.keys(usage).sort(function (a, b) {\n return usage[b] - usage[a]\n })\n var coveraged = 0\n var result = []\n var version\n for (var i = 0; i < versions.length; i++) {\n version = versions[i]\n if (usage[version] === 0) break\n coveraged += usage[version]\n result.push(version)\n if (coveraged >= coverage) break\n }\n return result\n}\n\nvar QUERIES = {\n last_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = getMajorVersions(data.released, node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.released.slice(-node.versions)\n list = list.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return selected.concat(list)\n }, [])\n }\n },\n last_electron_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var validVersions = getMajorVersions(Object.keys(e2c), node.versions)\n return validVersions.map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_major_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+major\\s+versions?$/i,\n select: function (context, node) {\n return getMajorVersions(browserslist.nodeVersions, node.versions).map(\n function (version) {\n return 'node ' + version\n }\n )\n }\n },\n last_browser_major_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+major\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var validVersions = getMajorVersions(data.released, node.versions)\n var list = validVersions.map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n last_electron_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+electron\\s+versions?$/i,\n select: function (context, node) {\n return Object.keys(e2c)\n .slice(-node.versions)\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n last_node_versions: {\n matches: ['versions'],\n regexp: /^last\\s+(\\d+)\\s+node\\s+versions?$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .slice(-node.versions)\n .map(function (version) {\n return 'node ' + version\n })\n }\n },\n last_browser_versions: {\n matches: ['versions', 'browser'],\n regexp: /^last\\s+(\\d+)\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var list = data.released.slice(-node.versions).map(nameMapper(data.name))\n list = filterJumps(list, data.name, node.versions, context)\n return list\n }\n },\n unreleased_versions: {\n matches: [],\n regexp: /^unreleased\\s+versions$/i,\n select: function (context) {\n return Object.keys(agents).reduce(function (selected, name) {\n var data = byName(name, context)\n if (!data) return selected\n var list = data.versions.filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n list = list.map(nameMapper(data.name))\n return selected.concat(list)\n }, [])\n }\n },\n unreleased_electron_versions: {\n matches: [],\n regexp: /^unreleased\\s+electron\\s+versions?$/i,\n select: function () {\n return []\n }\n },\n unreleased_browser_versions: {\n matches: ['browser'],\n regexp: /^unreleased\\s+(\\w+)\\s+versions?$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n return data.versions\n .filter(function (v) {\n return data.released.indexOf(v) === -1\n })\n .map(nameMapper(data.name))\n }\n },\n last_years: {\n matches: ['years'],\n regexp: /^last\\s+(\\d*.?\\d+)\\s+years?$/i,\n select: function (context, node) {\n return filterByYear(Date.now() - YEAR * node.years, context)\n }\n },\n since_y: {\n matches: ['year'],\n regexp: /^since (\\d+)$/i,\n select: sinceQuery\n },\n since_y_m: {\n matches: ['year', 'month'],\n regexp: /^since (\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n since_y_m_d: {\n matches: ['year', 'month', 'day'],\n regexp: /^since (\\d+)-(\\d+)-(\\d+)$/i,\n select: sinceQuery\n },\n popularity: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var usage = browserslist.usage.global\n return Object.keys(usage).reduce(function (result, version) {\n if (node.sign === '>') {\n if (usage[version] > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (usage[version] < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (usage[version] <= popularity) {\n result.push(version)\n }\n } else if (usage[version] >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_my_stats: {\n matches: ['sign', 'popularity'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+my\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_config_stats: {\n matches: ['sign', 'popularity', 'config'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(\\S+)\\s+stats$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var stats = env.loadStat(context, node.config, browserslist.data)\n if (stats) {\n context.customUsage = {}\n for (var browser in stats) {\n fillUsage(context.customUsage, browser, stats[browser])\n }\n }\n if (!context.customUsage) {\n throw new BrowserslistError('Custom usage statistics was not provided')\n }\n var usage = context.customUsage\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n popularity_in_place: {\n matches: ['sign', 'popularity', 'place'],\n regexp: /^(>=?|<=?)\\s*(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+((alt-)?\\w\\w)$/,\n select: function (context, node) {\n var popularity = parseFloat(node.popularity)\n var place = node.place\n if (place.length === 2) {\n place = place.toUpperCase()\n } else {\n place = place.toLowerCase()\n }\n env.loadCountry(browserslist.usage, place, browserslist.data)\n var usage = browserslist.usage[place]\n return Object.keys(usage).reduce(function (result, version) {\n var percentage = usage[version]\n if (percentage == null) {\n return result\n }\n\n if (node.sign === '>') {\n if (percentage > popularity) {\n result.push(version)\n }\n } else if (node.sign === '<') {\n if (percentage < popularity) {\n result.push(version)\n }\n } else if (node.sign === '<=') {\n if (percentage <= popularity) {\n result.push(version)\n }\n } else if (percentage >= popularity) {\n result.push(version)\n }\n return result\n }, [])\n }\n },\n cover: {\n matches: ['coverage'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%$/i,\n select: coverQuery\n },\n cover_in: {\n matches: ['coverage', 'place'],\n regexp: /^cover\\s+(\\d+|\\d+\\.\\d+|\\.\\d+)%\\s+in\\s+(my\\s+stats|(alt-)?\\w\\w)$/i,\n select: coverQuery\n },\n supports: {\n matches: ['supportType', 'feature'],\n regexp: /^(?:(fully|partially) )?supports\\s+([\\w-]+)$/,\n select: function (context, node) {\n env.loadFeature(browserslist.cache, node.feature)\n var withPartial = node.supportType !== 'fully'\n var features = browserslist.cache[node.feature]\n var result = []\n for (var name in features) {\n var data = byName(name, context)\n // Only check desktop when latest released mobile has support\n var checkDesktop =\n context.mobileToDesktop &&\n name in browserslist.desktopNames &&\n isSupported(features[name][data.released.slice(-1)[0]], withPartial)\n data.versions.forEach(function (version) {\n var flags = features[name][version]\n if (flags === undefined && checkDesktop) {\n flags = features[browserslist.desktopNames[name]][version]\n }\n if (isSupported(flags, withPartial)) {\n result.push(name + ' ' + version)\n }\n })\n }\n return result\n }\n },\n electron_range: {\n matches: ['from', 'to'],\n regexp: /^electron\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var fromToUse = normalizeElectron(node.from)\n var toToUse = normalizeElectron(node.to)\n var from = parseFloat(node.from)\n var to = parseFloat(node.to)\n if (!e2c[fromToUse]) {\n throw new BrowserslistError('Unknown version ' + from + ' of electron')\n }\n if (!e2c[toToUse]) {\n throw new BrowserslistError('Unknown version ' + to + ' of electron')\n }\n return Object.keys(e2c)\n .filter(function (i) {\n var parsed = parseFloat(i)\n return parsed >= from && parsed <= to\n })\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_range: {\n matches: ['from', 'to'],\n regexp: /^node\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(semverFilterLoose('>=', node.from))\n .filter(semverFilterLoose('<=', node.to))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_range: {\n matches: ['browser', 'from', 'to'],\n regexp: /^(\\w+)\\s+([\\d.]+)\\s*-\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var data = checkName(node.browser, context)\n var from = parseFloat(normalizeVersion(data, node.from) || node.from)\n var to = parseFloat(normalizeVersion(data, node.to) || node.to)\n function filter(v) {\n var parsed = parseFloat(v)\n return parsed >= from && parsed <= to\n }\n return data.released.filter(filter).map(nameMapper(data.name))\n }\n },\n electron_ray: {\n matches: ['sign', 'version'],\n regexp: /^electron\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n return Object.keys(e2c)\n .filter(generateFilter(node.sign, versionToUse))\n .map(function (i) {\n return 'chrome ' + e2c[i]\n })\n }\n },\n node_ray: {\n matches: ['sign', 'version'],\n regexp: /^node\\s*(>=?|<=?)\\s*([\\d.]+)$/i,\n select: function (context, node) {\n return browserslist.nodeVersions\n .filter(generateSemverFilter(node.sign, node.version))\n .map(function (v) {\n return 'node ' + v\n })\n }\n },\n browser_ray: {\n matches: ['browser', 'sign', 'version'],\n regexp: /^(\\w+)\\s*(>=?|<=?)\\s*([\\d.]+)$/,\n select: function (context, node) {\n var version = node.version\n var data = checkName(node.browser, context)\n var alias = browserslist.versionAliases[data.name][version]\n if (alias) version = alias\n return data.released\n .filter(generateFilter(node.sign, version))\n .map(function (v) {\n return data.name + ' ' + v\n })\n }\n },\n firefox_esr: {\n matches: [],\n regexp: /^(firefox|ff|fx)\\s+esr$/i,\n select: function () {\n return ['firefox 115']\n }\n },\n opera_mini_all: {\n matches: [],\n regexp: /(operamini|op_mini)\\s+all/i,\n select: function () {\n return ['op_mini all']\n }\n },\n electron_version: {\n matches: ['version'],\n regexp: /^electron\\s+([\\d.]+)$/i,\n select: function (context, node) {\n var versionToUse = normalizeElectron(node.version)\n var chrome = e2c[versionToUse]\n if (!chrome) {\n throw new BrowserslistError(\n 'Unknown version ' + node.version + ' of electron'\n )\n }\n return ['chrome ' + chrome]\n }\n },\n node_major_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+)$/i,\n select: nodeQuery\n },\n node_minor_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n node_patch_version: {\n matches: ['version'],\n regexp: /^node\\s+(\\d+\\.\\d+\\.\\d+)$/i,\n select: nodeQuery\n },\n current_node: {\n matches: [],\n regexp: /^current\\s+node$/i,\n select: function (context) {\n return [env.currentNode(resolve, context)]\n }\n },\n maintained_node: {\n matches: [],\n regexp: /^maintained\\s+node\\s+versions$/i,\n select: function (context) {\n var now = Date.now()\n var queries = Object.keys(jsEOL)\n .filter(function (key) {\n return (\n now < Date.parse(jsEOL[key].end) &&\n now > Date.parse(jsEOL[key].start) &&\n isEolReleased(key)\n )\n })\n .map(function (key) {\n return 'node ' + key.slice(1)\n })\n return resolve(queries, context)\n }\n },\n phantomjs_1_9: {\n matches: [],\n regexp: /^phantomjs\\s+1.9$/i,\n select: function () {\n return ['safari 5']\n }\n },\n phantomjs_2_1: {\n matches: [],\n regexp: /^phantomjs\\s+2.1$/i,\n select: function () {\n return ['safari 6']\n }\n },\n browser_version: {\n matches: ['browser', 'version'],\n regexp: /^(\\w+)\\s+(tp|[\\d.]+)$/i,\n select: function (context, node) {\n var version = node.version\n if (/^tp$/i.test(version)) version = 'TP'\n var data = checkName(node.browser, context)\n var alias = normalizeVersion(data, version)\n if (alias) {\n version = alias\n } else {\n if (version.indexOf('.') === -1) {\n alias = version + '.0'\n } else {\n alias = version.replace(/\\.0$/, '')\n }\n alias = normalizeVersion(data, alias)\n if (alias) {\n version = alias\n } else if (context.ignoreUnknownVersions) {\n return []\n } else {\n throw new BrowserslistError(\n 'Unknown version ' + version + ' of ' + node.browser\n )\n }\n }\n return [data.name + ' ' + version]\n }\n },\n browserslist_config: {\n matches: [],\n regexp: /^browserslist config$/i,\n select: function (context) {\n return browserslist(undefined, context)\n }\n },\n extends: {\n matches: ['config'],\n regexp: /^extends (.+)$/i,\n select: function (context, node) {\n return resolve(env.loadQueries(context, node.config), context)\n }\n },\n defaults: {\n matches: [],\n regexp: /^defaults$/i,\n select: function (context) {\n return resolve(browserslist.defaults, context)\n }\n },\n dead: {\n matches: [],\n regexp: /^dead$/i,\n select: function (context) {\n var dead = [\n 'Baidu >= 0',\n 'ie <= 11',\n 'ie_mob <= 11',\n 'bb <= 10',\n 'op_mob <= 12.1',\n 'samsung 4'\n ]\n return resolve(dead, context)\n }\n },\n unknown: {\n matches: [],\n regexp: /^(\\w+)$/i,\n select: function (context, node) {\n if (byName(node.query, context)) {\n throw new BrowserslistError(\n 'Specify versions in Browserslist query for browser ' + node.query\n )\n } else {\n throw unknownQuery(node.query)\n }\n }\n }\n}\n\n// Get and convert Can I Use data\n\n;(function () {\n for (var name in agents) {\n var browser = agents[name]\n browserslist.data[name] = {\n name: name,\n versions: normalize(agents[name].versions),\n released: normalize(agents[name].versions.slice(0, -3)),\n releaseDate: agents[name].release_date\n }\n fillUsage(browserslist.usage.global, name, browser.usage_global)\n\n browserslist.versionAliases[name] = {}\n for (var i = 0; i < browser.versions.length; i++) {\n var full = browser.versions[i]\n if (!full) continue\n\n if (full.indexOf('-') !== -1) {\n var interval = full.split('-')\n for (var j = 0; j < interval.length; j++) {\n browserslist.versionAliases[name][interval[j]] = full\n }\n }\n }\n }\n\n browserslist.nodeVersions = jsReleases.map(function (release) {\n return release.version\n })\n})()\n\nmodule.exports = browserslist\n","const { min } = Math;\n\n// a minimal leven distance implementation\n// balanced maintainability with code size\n// It is not blazingly fast but should be okay for Babel user case\n// where it will be run for at most tens of time on strings\n// that have less than 20 ASCII characters\n\n// https://rosettacode.org/wiki/Levenshtein_distance#ES5\nfunction levenshtein(a: string, b: string): number {\n let t = [],\n u: number[] = [],\n i,\n j;\n const m = a.length,\n n = b.length;\n if (!m) {\n return n;\n }\n if (!n) {\n return m;\n }\n for (j = 0; j <= n; j++) {\n t[j] = j;\n }\n for (i = 1; i <= m; i++) {\n for (u = [i], j = 1; j <= n; j++) {\n u[j] =\n a[i - 1] === b[j - 1] ? t[j - 1] : min(t[j - 1], t[j], u[j - 1]) + 1;\n }\n t = u;\n }\n return u[n];\n}\n\n/**\n * Given a string `str` and an array of candidates `arr`,\n * return the first of elements in candidates that has minimal\n * Levenshtein distance with `str`.\n * @export\n * @param {string} str\n * @param {string[]} arr\n * @returns {string}\n */\nexport function findSuggestion(str: string, arr: readonly string[]): string {\n const distances = arr.map(el => levenshtein(el, str));\n return arr[distances.indexOf(min(...distances))];\n}\n","import { findSuggestion } from \"./find-suggestion.ts\";\n\nexport class OptionValidator {\n declare descriptor: string;\n constructor(descriptor: string) {\n this.descriptor = descriptor;\n }\n\n /**\n * Validate if the given `options` follow the name of keys defined in the `TopLevelOptionShape`\n *\n * @param {Object} options\n * @param {Object} TopLevelOptionShape\n * An object with all the valid key names that `options` should be allowed to have\n * The property values of `TopLevelOptionShape` can be arbitrary\n * @memberof OptionValidator\n */\n validateTopLevelOptions(options: Object, TopLevelOptionShape: Object): void {\n const validOptionNames = Object.keys(TopLevelOptionShape);\n for (const option of Object.keys(options)) {\n if (!validOptionNames.includes(option)) {\n throw new Error(\n this.formatMessage(`'${option}' is not a valid top-level option.\n- Did you mean '${findSuggestion(option, validOptionNames)}'?`),\n );\n }\n }\n }\n\n // note: we do not consider rewrite them to high order functions\n // until we have to support `validateNumberOption`.\n validateBooleanOption(\n name: string,\n value?: boolean,\n defaultValue?: T,\n ): boolean | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"boolean\",\n `'${name}' option must be a boolean.`,\n );\n }\n return value;\n }\n\n validateStringOption(\n name: string,\n value?: string,\n defaultValue?: T,\n ): string | T {\n if (value === undefined) {\n return defaultValue;\n } else {\n this.invariant(\n typeof value === \"string\",\n `'${name}' option must be a string.`,\n );\n }\n return value;\n }\n /**\n * A helper interface copied from the `invariant` npm package.\n * It throws given `message` when `condition` is not met\n *\n * @param {boolean} condition\n * @param {string} message\n * @memberof OptionValidator\n */\n invariant(condition: boolean, message: string): void {\n if (!condition) {\n throw new Error(this.formatMessage(message));\n }\n }\n\n formatMessage(message: string): string {\n return `${this.descriptor}: ${message}`;\n }\n}\n","module.exports = require(\"./data/native-modules.json\");\n","'use strict'\nmodule.exports = function (Yallist) {\n Yallist.prototype[Symbol.iterator] = function* () {\n for (let walker = this.head; walker; walker = walker.next) {\n yield walker.value\n }\n }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n var self = this\n if (!(self instanceof Yallist)) {\n self = new Yallist()\n }\n\n self.tail = null\n self.head = null\n self.length = 0\n\n if (list && typeof list.forEach === 'function') {\n list.forEach(function (item) {\n self.push(item)\n })\n } else if (arguments.length > 0) {\n for (var i = 0, l = arguments.length; i < l; i++) {\n self.push(arguments[i])\n }\n }\n\n return self\n}\n\nYallist.prototype.removeNode = function (node) {\n if (node.list !== this) {\n throw new Error('removing node which does not belong to this list')\n }\n\n var next = node.next\n var prev = node.prev\n\n if (next) {\n next.prev = prev\n }\n\n if (prev) {\n prev.next = next\n }\n\n if (node === this.head) {\n this.head = next\n }\n if (node === this.tail) {\n this.tail = prev\n }\n\n node.list.length--\n node.next = null\n node.prev = null\n node.list = null\n\n return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n if (node === this.head) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var head = this.head\n node.list = this\n node.next = head\n if (head) {\n head.prev = node\n }\n\n this.head = node\n if (!this.tail) {\n this.tail = node\n }\n this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n if (node === this.tail) {\n return\n }\n\n if (node.list) {\n node.list.removeNode(node)\n }\n\n var tail = this.tail\n node.list = this\n node.prev = tail\n if (tail) {\n tail.next = node\n }\n\n this.tail = node\n if (!this.head) {\n this.head = node\n }\n this.length++\n}\n\nYallist.prototype.push = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n push(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.unshift = function () {\n for (var i = 0, l = arguments.length; i < l; i++) {\n unshift(this, arguments[i])\n }\n return this.length\n}\n\nYallist.prototype.pop = function () {\n if (!this.tail) {\n return undefined\n }\n\n var res = this.tail.value\n this.tail = this.tail.prev\n if (this.tail) {\n this.tail.next = null\n } else {\n this.head = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.shift = function () {\n if (!this.head) {\n return undefined\n }\n\n var res = this.head.value\n this.head = this.head.next\n if (this.head) {\n this.head.prev = null\n } else {\n this.tail = null\n }\n this.length--\n return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.head, i = 0; walker !== null; i++) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.next\n }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n thisp = thisp || this\n for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n fn.call(thisp, walker.value, i, this)\n walker = walker.prev\n }\n}\n\nYallist.prototype.get = function (n) {\n for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.next\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.getReverse = function (n) {\n for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n // abort out of the list early if we hit a cycle\n walker = walker.prev\n }\n if (i === n && walker !== null) {\n return walker.value\n }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.head; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.next\n }\n return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n thisp = thisp || this\n var res = new Yallist()\n for (var walker = this.tail; walker !== null;) {\n res.push(fn.call(thisp, walker.value, this))\n walker = walker.prev\n }\n return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n var acc\n var walker = this.head\n if (arguments.length > 1) {\n acc = initial\n } else if (this.head) {\n walker = this.head.next\n acc = this.head.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = 0; walker !== null; i++) {\n acc = fn(acc, walker.value, i)\n walker = walker.next\n }\n\n return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n var acc\n var walker = this.tail\n if (arguments.length > 1) {\n acc = initial\n } else if (this.tail) {\n walker = this.tail.prev\n acc = this.tail.value\n } else {\n throw new TypeError('Reduce of empty list with no initial value')\n }\n\n for (var i = this.length - 1; walker !== null; i--) {\n acc = fn(acc, walker.value, i)\n walker = walker.prev\n }\n\n return acc\n}\n\nYallist.prototype.toArray = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.head; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.next\n }\n return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n var arr = new Array(this.length)\n for (var i = 0, walker = this.tail; walker !== null; i++) {\n arr[i] = walker.value\n walker = walker.prev\n }\n return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n walker = walker.next\n }\n for (; walker !== null && i < to; i++, walker = walker.next) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n to = to || this.length\n if (to < 0) {\n to += this.length\n }\n from = from || 0\n if (from < 0) {\n from += this.length\n }\n var ret = new Yallist()\n if (to < from || to < 0) {\n return ret\n }\n if (from < 0) {\n from = 0\n }\n if (to > this.length) {\n to = this.length\n }\n for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n walker = walker.prev\n }\n for (; walker !== null && i > from; i--, walker = walker.prev) {\n ret.push(walker.value)\n }\n return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount /*, ...nodes */) {\n if (start > this.length) {\n start = this.length - 1\n }\n if (start < 0) {\n start = this.length + start;\n }\n\n for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n walker = walker.next\n }\n\n var ret = []\n for (var i = 0; walker && i < deleteCount; i++) {\n ret.push(walker.value)\n walker = this.removeNode(walker)\n }\n if (walker === null) {\n walker = this.tail\n }\n\n if (walker !== this.head && walker !== this.tail) {\n walker = walker.prev\n }\n\n for (var i = 2; i < arguments.length; i++) {\n walker = insert(this, walker, arguments[i])\n }\n return ret;\n}\n\nYallist.prototype.reverse = function () {\n var head = this.head\n var tail = this.tail\n for (var walker = head; walker !== null; walker = walker.prev) {\n var p = walker.prev\n walker.prev = walker.next\n walker.next = p\n }\n this.head = tail\n this.tail = head\n return this\n}\n\nfunction insert (self, node, value) {\n var inserted = node === self.head ?\n new Node(value, null, node, self) :\n new Node(value, node, node.next, self)\n\n if (inserted.next === null) {\n self.tail = inserted\n }\n if (inserted.prev === null) {\n self.head = inserted\n }\n\n self.length++\n\n return inserted\n}\n\nfunction push (self, item) {\n self.tail = new Node(item, self.tail, null, self)\n if (!self.head) {\n self.head = self.tail\n }\n self.length++\n}\n\nfunction unshift (self, item) {\n self.head = new Node(item, null, self.head, self)\n if (!self.tail) {\n self.tail = self.head\n }\n self.length++\n}\n\nfunction Node (value, prev, next, list) {\n if (!(this instanceof Node)) {\n return new Node(value, prev, next, list)\n }\n\n this.list = list\n this.value = value\n\n if (prev) {\n prev.next = this\n this.prev = prev\n } else {\n this.prev = null\n }\n\n if (next) {\n next.prev = this\n this.next = next\n } else {\n this.next = null\n }\n}\n\ntry {\n // add if support for Symbol.iterator is present\n require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest. the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node. This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n constructor (options) {\n if (typeof options === 'number')\n options = { max: options }\n\n if (!options)\n options = {}\n\n if (options.max && (typeof options.max !== 'number' || options.max < 0))\n throw new TypeError('max must be a non-negative number')\n // Kind of weird to have a default max of Infinity, but oh well.\n const max = this[MAX] = options.max || Infinity\n\n const lc = options.length || naiveLength\n this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n this[ALLOW_STALE] = options.stale || false\n if (options.maxAge && typeof options.maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n this[MAX_AGE] = options.maxAge || 0\n this[DISPOSE] = options.dispose\n this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n this.reset()\n }\n\n // resize the cache when the max changes.\n set max (mL) {\n if (typeof mL !== 'number' || mL < 0)\n throw new TypeError('max must be a non-negative number')\n\n this[MAX] = mL || Infinity\n trim(this)\n }\n get max () {\n return this[MAX]\n }\n\n set allowStale (allowStale) {\n this[ALLOW_STALE] = !!allowStale\n }\n get allowStale () {\n return this[ALLOW_STALE]\n }\n\n set maxAge (mA) {\n if (typeof mA !== 'number')\n throw new TypeError('maxAge must be a non-negative number')\n\n this[MAX_AGE] = mA\n trim(this)\n }\n get maxAge () {\n return this[MAX_AGE]\n }\n\n // resize the cache when the lengthCalculator changes.\n set lengthCalculator (lC) {\n if (typeof lC !== 'function')\n lC = naiveLength\n\n if (lC !== this[LENGTH_CALCULATOR]) {\n this[LENGTH_CALCULATOR] = lC\n this[LENGTH] = 0\n this[LRU_LIST].forEach(hit => {\n hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n this[LENGTH] += hit.length\n })\n }\n trim(this)\n }\n get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n get length () { return this[LENGTH] }\n get itemCount () { return this[LRU_LIST].length }\n\n rforEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].tail; walker !== null;) {\n const prev = walker.prev\n forEachStep(this, fn, walker, thisp)\n walker = prev\n }\n }\n\n forEach (fn, thisp) {\n thisp = thisp || this\n for (let walker = this[LRU_LIST].head; walker !== null;) {\n const next = walker.next\n forEachStep(this, fn, walker, thisp)\n walker = next\n }\n }\n\n keys () {\n return this[LRU_LIST].toArray().map(k => k.key)\n }\n\n values () {\n return this[LRU_LIST].toArray().map(k => k.value)\n }\n\n reset () {\n if (this[DISPOSE] &&\n this[LRU_LIST] &&\n this[LRU_LIST].length) {\n this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n }\n\n this[CACHE] = new Map() // hash of items by key\n this[LRU_LIST] = new Yallist() // list of items in order of use recency\n this[LENGTH] = 0 // length of items in the list\n }\n\n dump () {\n return this[LRU_LIST].map(hit =>\n isStale(this, hit) ? false : {\n k: hit.key,\n v: hit.value,\n e: hit.now + (hit.maxAge || 0)\n }).toArray().filter(h => h)\n }\n\n dumpLru () {\n return this[LRU_LIST]\n }\n\n set (key, value, maxAge) {\n maxAge = maxAge || this[MAX_AGE]\n\n if (maxAge && typeof maxAge !== 'number')\n throw new TypeError('maxAge must be a number')\n\n const now = maxAge ? Date.now() : 0\n const len = this[LENGTH_CALCULATOR](value, key)\n\n if (this[CACHE].has(key)) {\n if (len > this[MAX]) {\n del(this, this[CACHE].get(key))\n return false\n }\n\n const node = this[CACHE].get(key)\n const item = node.value\n\n // dispose of the old one before overwriting\n // split out into 2 ifs for better coverage tracking\n if (this[DISPOSE]) {\n if (!this[NO_DISPOSE_ON_SET])\n this[DISPOSE](key, item.value)\n }\n\n item.now = now\n item.maxAge = maxAge\n item.value = value\n this[LENGTH] += len - item.length\n item.length = len\n this.get(key)\n trim(this)\n return true\n }\n\n const hit = new Entry(key, value, len, now, maxAge)\n\n // oversized objects fall out of cache automatically.\n if (hit.length > this[MAX]) {\n if (this[DISPOSE])\n this[DISPOSE](key, value)\n\n return false\n }\n\n this[LENGTH] += hit.length\n this[LRU_LIST].unshift(hit)\n this[CACHE].set(key, this[LRU_LIST].head)\n trim(this)\n return true\n }\n\n has (key) {\n if (!this[CACHE].has(key)) return false\n const hit = this[CACHE].get(key).value\n return !isStale(this, hit)\n }\n\n get (key) {\n return get(this, key, true)\n }\n\n peek (key) {\n return get(this, key, false)\n }\n\n pop () {\n const node = this[LRU_LIST].tail\n if (!node)\n return null\n\n del(this, node)\n return node.value\n }\n\n del (key) {\n del(this, this[CACHE].get(key))\n }\n\n load (arr) {\n // reset the cache\n this.reset()\n\n const now = Date.now()\n // A previous serialized cache has the most recent items first\n for (let l = arr.length - 1; l >= 0; l--) {\n const hit = arr[l]\n const expiresAt = hit.e || 0\n if (expiresAt === 0)\n // the item was created without expiration in a non aged cache\n this.set(hit.k, hit.v)\n else {\n const maxAge = expiresAt - now\n // dont add already expired items\n if (maxAge > 0) {\n this.set(hit.k, hit.v, maxAge)\n }\n }\n }\n }\n\n prune () {\n this[CACHE].forEach((value, key) => get(this, key, false))\n }\n}\n\nconst get = (self, key, doUse) => {\n const node = self[CACHE].get(key)\n if (node) {\n const hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n return undefined\n } else {\n if (doUse) {\n if (self[UPDATE_AGE_ON_GET])\n node.value.now = Date.now()\n self[LRU_LIST].unshiftNode(node)\n }\n }\n return hit.value\n }\n}\n\nconst isStale = (self, hit) => {\n if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n return false\n\n const diff = Date.now() - hit.now\n return hit.maxAge ? diff > hit.maxAge\n : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n if (self[LENGTH] > self[MAX]) {\n for (let walker = self[LRU_LIST].tail;\n self[LENGTH] > self[MAX] && walker !== null;) {\n // We know that we're about to delete this one, and also\n // what the next least recently used key will be, so just\n // go ahead and set it now.\n const prev = walker.prev\n del(self, walker)\n walker = prev\n }\n }\n}\n\nconst del = (self, node) => {\n if (node) {\n const hit = node.value\n if (self[DISPOSE])\n self[DISPOSE](hit.key, hit.value)\n\n self[LENGTH] -= hit.length\n self[CACHE].delete(hit.key)\n self[LRU_LIST].removeNode(node)\n }\n}\n\nclass Entry {\n constructor (key, value, length, now, maxAge) {\n this.key = key\n this.value = value\n this.length = length\n this.now = now\n this.maxAge = maxAge || 0\n }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n let hit = node.value\n if (isStale(self, hit)) {\n del(self, node)\n if (!self[ALLOW_STALE])\n hit = undefined\n }\n if (hit)\n fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"lru-cache-BABEL_8_BREAKING-true\")\n : require(\"lru-cache-BABEL_8_BREAKING-false\");\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","export const unreleasedLabels = {\n safari: \"tp\",\n} as const;\n\n// Map from browserslist|@mdn/browser-compat-data browser names to @kangax/compat-table browser names\nexport const browserNameMap = {\n and_chr: \"chrome\",\n and_ff: \"firefox\",\n android: \"android\",\n chrome: \"chrome\",\n edge: \"edge\",\n firefox: \"firefox\",\n ie: \"ie\",\n ie_mob: \"ie\",\n ios_saf: \"ios\",\n node: \"node\",\n deno: \"deno\",\n op_mob: \"opera_mobile\",\n opera: \"opera\",\n safari: \"safari\",\n samsung: \"samsung\",\n} as const;\n\nexport type BrowserslistBrowserName = keyof typeof browserNameMap;\n","import semver from \"semver\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\nimport { unreleasedLabels } from \"./targets.ts\";\nimport type { Target, Targets } from \"./types.ts\";\n\nconst versionRegExp = /^(\\d+|\\d+.\\d+)$/;\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nexport function semverMin(\n first: string | undefined | null,\n second: string,\n): string {\n return first && semver.lt(first, second) ? first : second;\n}\n\n// Convert version to a semver value.\n// 2.5 -> 2.5.0; 1 -> 1.0.0;\nexport function semverify(version: number | string): string {\n if (typeof version === \"string\" && semver.valid(version)) {\n return version;\n }\n\n v.invariant(\n typeof version === \"number\" ||\n (typeof version === \"string\" && versionRegExp.test(version)),\n `'${version}' is not a valid version`,\n );\n\n version = version.toString();\n\n let pos = 0;\n let num = 0;\n while ((pos = version.indexOf(\".\", pos + 1)) > 0) {\n num++;\n }\n return version + \".0\".repeat(2 - num);\n}\n\nexport function isUnreleasedVersion(\n version: string | number,\n env: Target,\n): boolean {\n const unreleasedLabel =\n // @ts-expect-error unreleasedLabel will be guarded later\n unreleasedLabels[env];\n return (\n !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase()\n );\n}\n\nexport function getLowestUnreleased(a: string, b: string, env: Target): string {\n const unreleasedLabel:\n | (typeof unreleasedLabels)[keyof typeof unreleasedLabels]\n | undefined =\n // @ts-expect-error unreleasedLabel is undefined when env is not safari\n unreleasedLabels[env];\n if (a === unreleasedLabel) {\n return b;\n }\n if (b === unreleasedLabel) {\n return a;\n }\n return semverMin(a, b);\n}\n\nexport function getHighestUnreleased(\n a: string,\n b: string,\n env: Target,\n): string {\n return getLowestUnreleased(a, b, env) === a ? b : a;\n}\n\nexport function getLowestImplementedVersion(\n plugin: Targets,\n environment: Target,\n): string {\n const result = plugin[environment];\n // When Android support data is absent, use Chrome data as fallback\n if (!result && environment === \"android\") {\n return plugin.chrome;\n }\n return result;\n}\n","export const TargetNames = {\n node: \"node\",\n deno: \"deno\",\n chrome: \"chrome\",\n opera: \"opera\",\n edge: \"edge\",\n firefox: \"firefox\",\n safari: \"safari\",\n ie: \"ie\",\n ios: \"ios\",\n android: \"android\",\n electron: \"electron\",\n samsung: \"samsung\",\n rhino: \"rhino\",\n opera_mobile: \"opera_mobile\",\n};\n","import semver from \"semver\";\nimport { unreleasedLabels } from \"./targets.ts\";\nimport type { Targets, Target } from \"./types.ts\";\n\nexport function prettifyVersion(version: string) {\n if (typeof version !== \"string\") {\n return version;\n }\n\n const { major, minor, patch } = semver.parse(version);\n\n const parts = [major];\n\n if (minor || patch) {\n parts.push(minor);\n }\n\n if (patch) {\n parts.push(patch);\n }\n\n return parts.join(\".\");\n}\n\nexport function prettifyTargets(targets: Targets): Targets {\n return Object.keys(targets).reduce((results, target: Target) => {\n let value = targets[target];\n\n const unreleasedLabel =\n // @ts-expect-error undefined is strictly compared with string later\n unreleasedLabels[target];\n if (typeof value === \"string\" && unreleasedLabel !== value) {\n value = prettifyVersion(value);\n }\n\n results[target] = value;\n return results;\n }, {} as Targets);\n}\n","import semver from \"semver\";\nimport { prettifyVersion } from \"./pretty.ts\";\nimport {\n semverify,\n isUnreleasedVersion,\n getLowestImplementedVersion,\n} from \"./utils.ts\";\nimport type { Target, Targets } from \"./types.ts\";\n\nexport function getInclusionReasons(\n item: string,\n targetVersions: Targets,\n list: { [key: string]: Targets },\n) {\n const minVersions = list[item] || {};\n\n return (Object.keys(targetVersions) as Target[]).reduce(\n (result, env) => {\n const minVersion = getLowestImplementedVersion(minVersions, env);\n const targetVersion = targetVersions[env];\n\n if (!minVersion) {\n result[env] = prettifyVersion(targetVersion);\n } else {\n const minIsUnreleased = isUnreleasedVersion(minVersion, env);\n const targetIsUnreleased = isUnreleasedVersion(targetVersion, env);\n\n if (\n !targetIsUnreleased &&\n (minIsUnreleased ||\n semver.lt(targetVersion.toString(), semverify(minVersion)))\n ) {\n result[env] = prettifyVersion(targetVersion);\n }\n }\n\n return result;\n },\n {} as Partial>,\n );\n}\n","module.exports = require(\"./data/plugins.json\");\n","import semver from \"semver\";\n\nimport pluginsCompatData from \"@babel/compat-data/plugins\";\n\nimport type { Targets } from \"./types.ts\";\nimport {\n getLowestImplementedVersion,\n isUnreleasedVersion,\n semverify,\n} from \"./utils.ts\";\n\nexport function targetsSupported(target: Targets, support: Targets) {\n const targetEnvironments = Object.keys(target) as Array;\n\n if (targetEnvironments.length === 0) {\n return false;\n }\n\n const unsupportedEnvironments = targetEnvironments.filter(environment => {\n const lowestImplementedVersion = getLowestImplementedVersion(\n support,\n environment,\n );\n\n // Feature is not implemented in that environment\n if (!lowestImplementedVersion) {\n return true;\n }\n\n const lowestTargetedVersion = target[environment];\n\n // If targets has unreleased value as a lowest version, then don't require a plugin.\n if (isUnreleasedVersion(lowestTargetedVersion, environment)) {\n return false;\n }\n\n // Include plugin if it is supported in the unreleased environment, which wasn't specified in targets\n if (isUnreleasedVersion(lowestImplementedVersion, environment)) {\n return true;\n }\n\n if (!semver.valid(lowestTargetedVersion.toString())) {\n throw new Error(\n `Invalid version passed for target \"${environment}\": \"${lowestTargetedVersion}\". ` +\n \"Versions must be in semver format (major.minor.patch)\",\n );\n }\n\n return semver.gt(\n semverify(lowestImplementedVersion),\n lowestTargetedVersion.toString(),\n );\n });\n\n return unsupportedEnvironments.length === 0;\n}\n\nexport function isRequired(\n name: string,\n targets: Targets,\n {\n compatData = pluginsCompatData,\n includes,\n excludes,\n }: {\n compatData?: { [feature: string]: Targets };\n includes?: Set;\n excludes?: Set;\n } = {},\n) {\n if (excludes?.has(name)) return false;\n if (includes?.has(name)) return true;\n return !targetsSupported(targets, compatData[name]);\n}\n\nexport default function filterItems(\n list: { [feature: string]: Targets },\n includes: Set,\n excludes: Set,\n targets: Targets,\n defaultIncludes: Array | null,\n defaultExcludes?: Array | null,\n pluginSyntaxMap?: Map,\n) {\n const result = new Set();\n const options = { compatData: list, includes, excludes };\n\n for (const item in list) {\n if (isRequired(item, targets, options)) {\n result.add(item);\n } else if (pluginSyntaxMap) {\n const shippedProposalsSyntax = pluginSyntaxMap.get(item);\n\n if (shippedProposalsSyntax) {\n result.add(shippedProposalsSyntax);\n }\n }\n }\n\n defaultIncludes?.forEach(item => !excludes.has(item) && result.add(item));\n defaultExcludes?.forEach(item => !includes.has(item) && result.delete(item));\n\n return result;\n}\n","import browserslist from \"browserslist\";\nimport { findSuggestion } from \"@babel/helper-validator-option\";\nimport browserModulesData from \"@babel/compat-data/native-modules\";\nimport LruCache from \"lru-cache\";\n\nimport {\n semverify,\n semverMin,\n isUnreleasedVersion,\n getLowestUnreleased,\n getHighestUnreleased,\n} from \"./utils.ts\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\nimport { browserNameMap } from \"./targets.ts\";\nimport { TargetNames } from \"./options.ts\";\nimport type {\n Target,\n Targets,\n InputTargets,\n Browsers,\n BrowserslistBrowserName,\n TargetsTuple,\n} from \"./types.ts\";\n\nexport type { Target, Targets, InputTargets };\n\nexport { prettifyTargets } from \"./pretty.ts\";\nexport { getInclusionReasons } from \"./debug.ts\";\nexport { default as filterItems, isRequired } from \"./filter-items.ts\";\nexport { unreleasedLabels } from \"./targets.ts\";\nexport { TargetNames };\n\nconst ESM_SUPPORT = browserModulesData[\"es6.module\"];\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nfunction validateTargetNames(targets: Targets): TargetsTuple {\n const validTargets = Object.keys(TargetNames);\n for (const target of Object.keys(targets)) {\n if (!(target in TargetNames)) {\n throw new Error(\n v.formatMessage(`'${target}' is not a valid target\n- Did you mean '${findSuggestion(target, validTargets)}'?`),\n );\n }\n }\n\n return targets;\n}\n\nexport function isBrowsersQueryValid(browsers: unknown): boolean {\n return (\n typeof browsers === \"string\" ||\n (Array.isArray(browsers) && browsers.every(b => typeof b === \"string\"))\n );\n}\n\nfunction validateBrowsers(browsers: Browsers | undefined) {\n v.invariant(\n browsers === undefined || isBrowsersQueryValid(browsers),\n `'${String(browsers)}' is not a valid browserslist query`,\n );\n\n return browsers;\n}\n\nfunction getLowestVersions(browsers: Array): Targets {\n return browsers.reduce(\n (all, browser) => {\n const [browserName, browserVersion] = browser.split(\" \") as [\n BrowserslistBrowserName,\n string,\n ];\n const target = browserNameMap[browserName];\n\n if (!target) {\n return all;\n }\n\n try {\n // Browser version can return as \"10.0-10.2\"\n const splitVersion = browserVersion.split(\"-\")[0].toLowerCase();\n const isSplitUnreleased = isUnreleasedVersion(splitVersion, target);\n\n if (!all[target]) {\n all[target] = isSplitUnreleased\n ? splitVersion\n : semverify(splitVersion);\n return all;\n }\n\n const version = all[target];\n const isUnreleased = isUnreleasedVersion(version, target);\n\n if (isUnreleased && isSplitUnreleased) {\n all[target] = getLowestUnreleased(version, splitVersion, target);\n } else if (isUnreleased) {\n all[target] = semverify(splitVersion);\n } else if (!isUnreleased && !isSplitUnreleased) {\n const parsedBrowserVersion = semverify(splitVersion);\n\n all[target] = semverMin(version, parsedBrowserVersion);\n }\n } catch (e) {}\n\n return all;\n },\n {} as Record,\n );\n}\n\nfunction outputDecimalWarning(\n decimalTargets: Array<{ target: string; value: number }>,\n) {\n if (!decimalTargets.length) {\n return;\n }\n\n console.warn(\"Warning, the following targets are using a decimal version:\\n\");\n decimalTargets.forEach(({ target, value }) =>\n console.warn(` ${target}: ${value}`),\n );\n console.warn(`\nWe recommend using a string for minor/patch versions to avoid numbers like 6.10\ngetting parsed as 6.1, which can lead to unexpected behavior.\n`);\n}\n\nfunction semverifyTarget(target: Target, value: string) {\n try {\n return semverify(value);\n } catch (error) {\n throw new Error(\n v.formatMessage(\n `'${value}' is not a valid value for 'targets.${target}'.`,\n ),\n );\n }\n}\n\n// Parse `node: true` and `node: \"current\"` to version\nfunction nodeTargetParser(value: true | string) {\n const parsed =\n value === true || value === \"current\"\n ? process.versions.node\n : semverifyTarget(\"node\", value);\n return [\"node\", parsed] as const;\n}\n\nfunction defaultTargetParser(\n target: Exclude,\n value: string,\n): readonly [Exclude, string] {\n const version = isUnreleasedVersion(value, target)\n ? value.toLowerCase()\n : semverifyTarget(target, value);\n return [target, version] as const;\n}\n\nfunction generateTargets(inputTargets: InputTargets): Targets {\n const input = { ...inputTargets };\n delete input.esmodules;\n delete input.browsers;\n return input;\n}\n\nfunction resolveTargets(queries: Browsers, env?: string): Targets {\n const resolved = browserslist(queries, {\n mobileToDesktop: true,\n env,\n });\n return getLowestVersions(resolved);\n}\n\nconst targetsCache = new LruCache({ max: 64 });\n\nfunction resolveTargetsCached(queries: Browsers, env?: string): Targets {\n const cacheKey = typeof queries === \"string\" ? queries : queries.join() + env;\n let cached = targetsCache.get(cacheKey) as Targets | undefined;\n if (!cached) {\n cached = resolveTargets(queries, env);\n targetsCache.set(cacheKey, cached);\n }\n return { ...cached };\n}\n\ntype GetTargetsOption = {\n // This is not the path of the config file, but the path where start searching it from\n configPath?: string;\n // The path of the config file\n configFile?: string;\n // The env to pass to browserslist\n browserslistEnv?: string;\n // true to disable config loading\n ignoreBrowserslistConfig?: boolean;\n};\n\nexport default function getTargets(\n inputTargets: InputTargets = {},\n options: GetTargetsOption = {},\n): Targets {\n let { browsers, esmodules } = inputTargets;\n const { configPath = \".\" } = options;\n\n validateBrowsers(browsers);\n\n const input = generateTargets(inputTargets);\n let targets = validateTargetNames(input);\n\n const shouldParseBrowsers = !!browsers;\n const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0;\n const shouldSearchForConfig =\n !options.ignoreBrowserslistConfig && !hasTargets;\n\n if (!browsers && shouldSearchForConfig) {\n browsers = browserslist.loadConfig({\n config: options.configFile,\n path: configPath,\n env: options.browserslistEnv,\n });\n if (browsers == null) {\n if (process.env.BABEL_8_BREAKING) {\n // In Babel 8, if no targets are passed, we use browserslist's defaults.\n browsers = [\"defaults\"];\n } else {\n // If no targets are passed, we need to overwrite browserslist's defaults\n // so that we enable all transforms (acting like the now deprecated\n // preset-latest).\n browsers = [];\n }\n }\n }\n\n // `esmodules` as a target indicates the specific set of browsers supporting ES Modules.\n // These values OVERRIDE the `browsers` field.\n if (esmodules && (esmodules !== \"intersect\" || !browsers?.length)) {\n browsers = Object.keys(ESM_SUPPORT)\n .map(\n (browser: keyof typeof ESM_SUPPORT) =>\n `${browser} >= ${ESM_SUPPORT[browser]}`,\n )\n .join(\", \");\n esmodules = false;\n }\n\n // If current value of `browsers` is undefined (`ignoreBrowserslistConfig` should be `false`)\n // or an empty array (without any user config, use default config),\n // we don't need to call `resolveTargets` to execute the related methods of `browserslist` library.\n if (browsers?.length) {\n const queryBrowsers = resolveTargetsCached(\n browsers,\n options.browserslistEnv,\n );\n\n if (esmodules === \"intersect\") {\n for (const browser of Object.keys(queryBrowsers) as Target[]) {\n if (browser !== \"deno\" && browser !== \"ie\") {\n const esmSupportVersion =\n ESM_SUPPORT[browser === \"opera_mobile\" ? \"op_mob\" : browser];\n\n if (esmSupportVersion) {\n const version = queryBrowsers[browser];\n queryBrowsers[browser] = getHighestUnreleased(\n version,\n semverify(esmSupportVersion),\n browser,\n );\n } else {\n delete queryBrowsers[browser];\n }\n } else {\n delete queryBrowsers[browser];\n }\n }\n }\n\n targets = Object.assign(queryBrowsers, targets);\n }\n\n // Parse remaining targets\n const result: Targets = {};\n const decimalWarnings = [];\n for (const target of Object.keys(targets).sort() as Target[]) {\n const value = targets[target];\n\n // Warn when specifying minor/patch as a decimal\n if (typeof value === \"number\" && value % 1 !== 0) {\n decimalWarnings.push({ target, value });\n }\n\n const [parsedTarget, parsedValue] =\n target === \"node\"\n ? nodeTargetParser(value)\n : defaultTargetParser(target, value as string);\n\n if (parsedValue) {\n // Merge (lowest wins)\n result[parsedTarget] = parsedValue;\n }\n }\n\n outputDecimalWarning(decimalWarnings);\n\n return result;\n}\n","import type { ValidatedOptions } from \"./validation/options.ts\";\nimport getTargets, {\n type InputTargets,\n} from \"@babel/helper-compilation-targets\";\n\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nexport function resolveBrowserslistConfigFile(\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n browserslistConfigFile: string,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n configFilePath: string,\n): string | void {\n return undefined;\n}\n\nexport function resolveTargets(\n options: ValidatedOptions,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n root: string,\n): Targets {\n const optTargets = options.targets;\n let targets: InputTargets;\n\n if (typeof optTargets === \"string\" || Array.isArray(optTargets)) {\n targets = { browsers: optTargets };\n } else if (optTargets) {\n if (\"esmodules\" in optTargets) {\n targets = { ...optTargets, esmodules: \"intersect\" };\n } else {\n // https://github.com/microsoft/TypeScript/issues/17002\n targets = optTargets as InputTargets;\n }\n }\n\n return getTargets(targets, {\n ignoreBrowserslistConfig: true,\n browserslistEnv: options.browserslistEnv,\n });\n}\n","import gensync, { type Handler } from \"gensync\";\nimport { once } from \"../gensync-utils/functional.ts\";\n\nimport { loadPlugin, loadPreset } from \"./files/index.ts\";\n\nimport { getItemDescriptor } from \"./item.ts\";\n\nimport {\n makeWeakCacheSync,\n makeStrongCacheSync,\n makeStrongCache,\n} from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\n\nimport type {\n ValidatedOptions,\n PluginList,\n PluginItem,\n} from \"./validation/options.ts\";\n\nimport { resolveBrowserslistConfigFile } from \"./resolve-targets.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\n// Represents a config object and functions to lazily load the descriptors\n// for the plugins and presets so we don't load the plugins/presets unless\n// the options object actually ends up being applicable.\nexport type OptionsAndDescriptors = {\n options: ValidatedOptions;\n plugins: () => Handler>>;\n presets: () => Handler>>;\n};\n\n// Represents a plugin or presets at a given location in a config object.\n// At this point these have been resolved to a specific object or function,\n// but have not yet been executed to call functions with options.\nexport interface UnloadedDescriptor {\n name: string | undefined;\n value: object | ((api: API, options: Options, dirname: string) => unknown);\n options: Options;\n dirname: string;\n alias: string;\n ownPass?: boolean;\n file?: {\n request: string;\n resolved: string;\n };\n}\n\nfunction isEqualDescriptor(\n a: UnloadedDescriptor,\n b: UnloadedDescriptor,\n): boolean {\n return (\n a.name === b.name &&\n a.value === b.value &&\n a.options === b.options &&\n a.dirname === b.dirname &&\n a.alias === b.alias &&\n a.ownPass === b.ownPass &&\n a.file?.request === b.file?.request &&\n a.file?.resolved === b.file?.resolved\n );\n}\n\nexport type ValidatedFile = {\n filepath: string;\n dirname: string;\n options: ValidatedOptions;\n};\n\n// eslint-disable-next-line require-yield\nfunction* handlerOf(value: T): Handler {\n return value;\n}\n\nfunction optionsWithResolvedBrowserslistConfigFile(\n options: ValidatedOptions,\n dirname: string,\n): ValidatedOptions {\n if (typeof options.browserslistConfigFile === \"string\") {\n options.browserslistConfigFile = resolveBrowserslistConfigFile(\n options.browserslistConfigFile,\n dirname,\n );\n }\n return options;\n}\n\n/**\n * Create a set of descriptors from a given options object, preserving\n * descriptor identity based on the identity of the plugin/preset arrays\n * themselves, and potentially on the identity of the plugins/presets + options.\n */\nexport function createCachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n const { plugins, presets, passPerPreset } = options;\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n plugins: plugins\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPluginDescriptors(plugins, dirname)(alias)\n : () => handlerOf([]),\n presets: presets\n ? () =>\n // @ts-expect-error todo(flow->ts) ts complains about incorrect arguments\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n createCachedPresetDescriptors(presets, dirname)(alias)(\n !!passPerPreset,\n )\n : () => handlerOf([]),\n };\n}\n\n/**\n * Create a set of descriptors from a given options object, with consistent\n * identity for the descriptors, but not caching based on any specific identity.\n */\nexport function createUncachedDescriptors(\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n): OptionsAndDescriptors {\n return {\n options: optionsWithResolvedBrowserslistConfigFile(options, dirname),\n // The returned result here is cached to represent a config object in\n // memory, so we build and memoize the descriptors to ensure the same\n // values are returned consistently.\n plugins: once(() =>\n createPluginDescriptors(options.plugins || [], dirname, alias),\n ),\n presets: once(() =>\n createPresetDescriptors(\n options.presets || [],\n dirname,\n alias,\n !!options.passPerPreset,\n ),\n ),\n };\n}\n\nconst PRESET_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPresetDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCacheSync((alias: string) =>\n makeStrongCache(function* (\n passPerPreset: boolean,\n ): Handler>> {\n const descriptors = yield* createPresetDescriptors(\n items,\n dirname,\n alias,\n passPerPreset,\n );\n return descriptors.map(\n // Items are cached using the overall preset array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PRESET_DESCRIPTOR_CACHE, desc),\n );\n }),\n );\n },\n);\n\nconst PLUGIN_DESCRIPTOR_CACHE = new WeakMap();\nconst createCachedPluginDescriptors = makeWeakCacheSync(\n (items: PluginList, cache: CacheConfigurator) => {\n const dirname = cache.using(dir => dir);\n return makeStrongCache(function* (\n alias: string,\n ): Handler>> {\n const descriptors = yield* createPluginDescriptors(items, dirname, alias);\n return descriptors.map(\n // Items are cached using the overall plugin array identity when\n // possibly, but individual descriptors are also cached if a match\n // can be found in the previously-used descriptor lists.\n desc => loadCachedDescriptor(PLUGIN_DESCRIPTOR_CACHE, desc),\n );\n });\n },\n);\n\n/**\n * When no options object is given in a descriptor, this object is used\n * as a WeakMap key in order to have consistent identity.\n */\nconst DEFAULT_OPTIONS = {};\n\n/**\n * Given the cache and a descriptor, returns a matching descriptor from the\n * cache, or else returns the input descriptor and adds it to the cache for\n * next time.\n */\nfunction loadCachedDescriptor(\n cache: WeakMap<{} | Function, WeakMap<{}, Array>>>,\n desc: UnloadedDescriptor,\n) {\n const { value, options = DEFAULT_OPTIONS } = desc;\n if (options === false) return desc;\n\n let cacheByOptions = cache.get(value);\n if (!cacheByOptions) {\n cacheByOptions = new WeakMap();\n cache.set(value, cacheByOptions);\n }\n\n let possibilities = cacheByOptions.get(options);\n if (!possibilities) {\n possibilities = [];\n cacheByOptions.set(options, possibilities);\n }\n\n if (possibilities.indexOf(desc) === -1) {\n const matches = possibilities.filter(possibility =>\n isEqualDescriptor(possibility, desc),\n );\n if (matches.length > 0) {\n return matches[0];\n }\n\n possibilities.push(desc);\n }\n\n return desc;\n}\n\nfunction* createPresetDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n passPerPreset: boolean,\n): Handler>> {\n return yield* createDescriptors(\n \"preset\",\n items,\n dirname,\n alias,\n passPerPreset,\n );\n}\n\nfunction* createPluginDescriptors(\n items: PluginList,\n dirname: string,\n alias: string,\n): Handler>> {\n return yield* createDescriptors(\"plugin\", items, dirname, alias);\n}\n\nfunction* createDescriptors(\n type: \"plugin\" | \"preset\",\n items: PluginList,\n dirname: string,\n alias: string,\n ownPass?: boolean,\n): Handler>> {\n const descriptors = yield* gensync.all(\n items.map((item, index) =>\n createDescriptor(item, dirname, {\n type,\n alias: `${alias}$${index}`,\n ownPass: !!ownPass,\n }),\n ),\n );\n\n assertNoDuplicates(descriptors);\n\n return descriptors;\n}\n\n/**\n * Given a plugin/preset item, resolve it into a standard format.\n */\nexport function* createDescriptor(\n pair: PluginItem,\n dirname: string,\n {\n type,\n alias,\n ownPass,\n }: {\n type?: \"plugin\" | \"preset\";\n alias: string;\n ownPass?: boolean;\n },\n): Handler> {\n const desc = getItemDescriptor(pair);\n if (desc) {\n return desc;\n }\n\n let name;\n let options;\n // todo(flow->ts) better type annotation\n let value: any = pair;\n if (Array.isArray(value)) {\n if (value.length === 3) {\n [value, options, name] = value;\n } else {\n [value, options] = value;\n }\n }\n\n let file = undefined;\n let filepath = null;\n if (typeof value === \"string\") {\n if (typeof type !== \"string\") {\n throw new Error(\n \"To resolve a string-based item, the type of item must be given\",\n );\n }\n const resolver = type === \"plugin\" ? loadPlugin : loadPreset;\n const request = value;\n\n ({ filepath, value } = yield* resolver(value, dirname));\n\n file = {\n request,\n resolved: filepath,\n };\n }\n\n if (!value) {\n throw new Error(`Unexpected falsy value: ${String(value)}`);\n }\n\n if (typeof value === \"object\" && value.__esModule) {\n if (value.default) {\n value = value.default;\n } else {\n throw new Error(\"Must export a default export when using ES6 modules.\");\n }\n }\n\n if (typeof value !== \"object\" && typeof value !== \"function\") {\n throw new Error(\n `Unsupported format: ${typeof value}. Expected an object or a function.`,\n );\n }\n\n if (filepath !== null && typeof value === \"object\" && value) {\n // We allow object values for plugins/presets nested directly within a\n // config object, because it can be useful to define them in nested\n // configuration contexts.\n throw new Error(\n `Plugin/Preset files are not allowed to export objects, only functions. In ${filepath}`,\n );\n }\n\n return {\n name,\n alias: filepath || alias,\n value,\n options,\n dirname,\n ownPass,\n file,\n };\n}\n\nfunction assertNoDuplicates(items: Array>): void {\n const map = new Map();\n\n for (const item of items) {\n if (typeof item.value !== \"function\") continue;\n\n let nameMap = map.get(item.value);\n if (!nameMap) {\n nameMap = new Set();\n map.set(item.value, nameMap);\n }\n\n if (nameMap.has(item.name)) {\n const conflicts = items.filter(i => i.value === item.value);\n throw new Error(\n [\n `Duplicate plugin/preset detected.`,\n `If you'd like to use two separate instances of a plugin,`,\n `they need separate names, e.g.`,\n ``,\n ` plugins: [`,\n ` ['some-plugin', {}],`,\n ` ['some-plugin', {}, 'some unique name'],`,\n ` ]`,\n ``,\n `Duplicates detected are:`,\n `${JSON.stringify(conflicts, null, 2)}`,\n ].join(\"\\n\"),\n );\n }\n\n nameMap.add(item.name);\n }\n}\n","import type { Handler } from \"gensync\";\nimport type { PluginTarget, PluginOptions } from \"./validation/options.ts\";\n\nimport path from \"path\";\nimport { createDescriptor } from \"./config-descriptors.ts\";\n\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\n\nexport function createItemFromDescriptor(\n desc: UnloadedDescriptor,\n): ConfigItem {\n return new ConfigItem(desc);\n}\n\n/**\n * Create a config item using the same value format used in Babel's config\n * files. Items returned from this function should be cached by the caller\n * ideally, as recreating the config item will mean re-resolving the item\n * and re-evaluating the plugin/preset function.\n */\nexport function* createConfigItem(\n value:\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void],\n {\n dirname = \".\",\n type,\n }: {\n dirname?: string;\n type?: \"preset\" | \"plugin\";\n } = {},\n): Handler> {\n const descriptor = yield* createDescriptor(value, path.resolve(dirname), {\n type,\n alias: \"programmatic item\",\n });\n\n return createItemFromDescriptor(descriptor);\n}\n\nconst CONFIG_ITEM_BRAND = Symbol.for(\"@babel/core@7 - ConfigItem\");\n\nexport function getItemDescriptor(\n item: unknown,\n): UnloadedDescriptor | void {\n if ((item as any)?.[CONFIG_ITEM_BRAND]) {\n return (item as ConfigItem)._descriptor;\n }\n\n return undefined;\n}\n\nexport type { ConfigItem };\n\n/**\n * A public representation of a plugin/preset that will _eventually_ be load.\n * Users can use this to interact with the results of a loaded Babel\n * configuration.\n *\n * Any changes to public properties of this class should be considered a\n * breaking change to Babel's API.\n */\nclass ConfigItem {\n /**\n * The private underlying descriptor that Babel actually cares about.\n * If you access this, you are a bad person.\n */\n _descriptor: UnloadedDescriptor;\n\n // TODO(Babel 9): Check if this symbol needs to be updated\n /**\n * Used to detect ConfigItem instances from other Babel instances.\n */\n [CONFIG_ITEM_BRAND] = true;\n\n /**\n * The resolved value of the item itself.\n */\n value: {} | Function;\n\n /**\n * The options, if any, that were passed to the item.\n * Mutating this will lead to undefined behavior.\n *\n * \"false\" means that this item has been disabled.\n */\n options: {} | void | false;\n\n /**\n * The directory that the options for this item are relative to.\n */\n dirname: string;\n\n /**\n * Get the name of the plugin, if the user gave it one.\n */\n name: string | void;\n\n /**\n * Data about the file that the item was loaded from, if Babel knows it.\n */\n file: {\n // The requested path, e.g. \"@babel/env\".\n request: string;\n // The resolved absolute path of the file.\n resolved: string;\n } | void;\n\n constructor(descriptor: UnloadedDescriptor) {\n // Make people less likely to stumble onto this if they are exploring\n // programmatically, and also make sure that if people happen to\n // pass the item through JSON.stringify, it doesn't show up.\n this._descriptor = descriptor;\n Object.defineProperty(this, \"_descriptor\", { enumerable: false });\n\n Object.defineProperty(this, CONFIG_ITEM_BRAND, { enumerable: false });\n\n this.value = this._descriptor.value;\n this.options = this._descriptor.options;\n this.dirname = this._descriptor.dirname;\n this.name = this._descriptor.name;\n this.file = this._descriptor.file\n ? {\n request: this._descriptor.file.request,\n resolved: this._descriptor.file.resolved,\n }\n : undefined;\n\n // Freeze the object to make it clear that people shouldn't expect mutating\n // this object to do anything. A new item should be created if they want\n // to change something.\n Object.freeze(this);\n }\n}\n\nObject.freeze(ConfigItem.prototype);\n","export default {\n auxiliaryComment: {\n message: \"Use `auxiliaryCommentBefore` or `auxiliaryCommentAfter`\",\n },\n blacklist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n breakConfig: {\n message: \"This is not a necessary option in Babel 6\",\n },\n experimental: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n externalHelpers: {\n message:\n \"Use the `external-helpers` plugin instead. \" +\n \"Check out http://babeljs.io/docs/plugins/external-helpers/\",\n },\n extra: {\n message: \"\",\n },\n jsxPragma: {\n message:\n \"use the `pragma` option in the `react-jsx` plugin. \" +\n \"Check out http://babeljs.io/docs/plugins/transform-react-jsx/\",\n },\n loose: {\n message:\n \"Specify the `loose` option for the relevant plugin you are using \" +\n \"or use a preset that sets the option.\",\n },\n metadataUsedHelpers: {\n message: \"Not required anymore as this is enabled by default\",\n },\n modules: {\n message:\n \"Use the corresponding module transform plugin in the `plugins` option. \" +\n \"Check out http://babeljs.io/docs/plugins/#modules\",\n },\n nonStandard: {\n message:\n \"Use the `react-jsx` and `flow-strip-types` plugins to support JSX and Flow. \" +\n \"Also check out the react preset http://babeljs.io/docs/plugins/preset-react/\",\n },\n optional: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n sourceMapName: {\n message:\n \"The `sourceMapName` option has been removed because it makes more sense for the \" +\n \"tooling that calls Babel to assign `map.file` themselves.\",\n },\n stage: {\n message:\n \"Check out the corresponding stage-x presets http://babeljs.io/docs/plugins/#presets\",\n },\n whitelist: {\n message: \"Put the specific transforms you want in the `plugins` option\",\n },\n\n resolveModuleSource: {\n version: 6,\n message: \"Use `babel-plugin-module-resolver@3`'s 'resolvePath' options\",\n },\n metadata: {\n version: 6,\n message:\n \"Generated plugin metadata is always included in the output result\",\n },\n sourceMapTarget: {\n version: 6,\n message:\n \"The `sourceMapTarget` option has been removed because it makes more sense for the tooling \" +\n \"that calls Babel to assign `map.file` themselves.\",\n },\n} as { [name: string]: { version?: number; message: string } };\n","import {\n isBrowsersQueryValid,\n TargetNames,\n} from \"@babel/helper-compilation-targets\";\n\nimport type {\n ConfigFileSearch,\n BabelrcSearch,\n IgnoreList,\n IgnoreItem,\n PluginList,\n PluginItem,\n PluginTarget,\n ConfigApplicableTest,\n SourceMapsOption,\n SourceTypeOption,\n CompactOption,\n RootInputSourceMapOption,\n NestingPath,\n CallerMetadata,\n RootMode,\n TargetsListOrObject,\n AssumptionName,\n} from \"./options.ts\";\n\nimport { assumptionsNames } from \"./options.ts\";\n\nexport type { RootPath } from \"./options.ts\";\n\nexport type ValidatorSet = {\n [name: string]: Validator;\n};\n\nexport type Validator = (loc: OptionPath, value: unknown) => T;\n\nexport function msg(loc: NestingPath | GeneralPath): string {\n switch (loc.type) {\n case \"root\":\n return ``;\n case \"env\":\n return `${msg(loc.parent)}.env[\"${loc.name}\"]`;\n case \"overrides\":\n return `${msg(loc.parent)}.overrides[${loc.index}]`;\n case \"option\":\n return `${msg(loc.parent)}.${loc.name}`;\n case \"access\":\n return `${msg(loc.parent)}[${JSON.stringify(loc.name)}]`;\n default:\n // @ts-expect-error should not happen when code is type checked\n throw new Error(`Assertion failure: Unknown type ${loc.type}`);\n }\n}\n\nexport function access(loc: GeneralPath, name: string | number): AccessPath {\n return {\n type: \"access\",\n name,\n parent: loc,\n };\n}\n\nexport type OptionPath = Readonly<{\n type: \"option\";\n name: string;\n parent: NestingPath;\n}>;\ntype AccessPath = Readonly<{\n type: \"access\";\n name: string | number;\n parent: GeneralPath;\n}>;\ntype GeneralPath = OptionPath | AccessPath;\n\nexport function assertRootMode(\n loc: OptionPath,\n value: unknown,\n): RootMode | void {\n if (\n value !== undefined &&\n value !== \"root\" &&\n value !== \"upward\" &&\n value !== \"upward-optional\"\n ) {\n throw new Error(\n `${msg(loc)} must be a \"root\", \"upward\", \"upward-optional\" or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceMaps(\n loc: OptionPath,\n value: unknown,\n): SourceMapsOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n value !== \"inline\" &&\n value !== \"both\"\n ) {\n throw new Error(\n `${msg(loc)} must be a boolean, \"inline\", \"both\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCompact(\n loc: OptionPath,\n value: unknown,\n): CompactOption | void {\n if (value !== undefined && typeof value !== \"boolean\" && value !== \"auto\") {\n throw new Error(`${msg(loc)} must be a boolean, \"auto\", or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertSourceType(\n loc: OptionPath,\n value: unknown,\n): SourceTypeOption | void {\n if (\n value !== undefined &&\n value !== \"module\" &&\n value !== \"script\" &&\n value !== \"unambiguous\"\n ) {\n throw new Error(\n `${msg(loc)} must be \"module\", \"script\", \"unambiguous\", or undefined`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertCallerMetadata(\n loc: OptionPath,\n value: unknown,\n): CallerMetadata | undefined {\n const obj = assertObject(loc, value);\n if (obj) {\n if (typeof obj.name !== \"string\") {\n throw new Error(\n `${msg(loc)} set but does not contain \"name\" property string`,\n );\n }\n\n for (const prop of Object.keys(obj)) {\n const propLoc = access(loc, prop);\n const value = obj[prop];\n if (\n value != null &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\" &&\n typeof value !== \"number\"\n ) {\n // NOTE(logan): I'm limiting the type here so that we can guarantee that\n // the \"caller\" value will serialize to JSON nicely. We can always\n // allow more complex structures later though.\n throw new Error(\n `${msg(\n propLoc,\n )} must be null, undefined, a boolean, a string, or a number.`,\n );\n }\n }\n }\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n\nexport function assertInputSourceMap(\n loc: OptionPath,\n value: unknown,\n): RootInputSourceMapOption | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n (typeof value !== \"object\" || !value)\n ) {\n throw new Error(`${msg(loc)} must be a boolean, object, or undefined`);\n }\n return value;\n}\n\nexport function assertString(loc: GeneralPath, value: unknown): string | void {\n if (value !== undefined && typeof value !== \"string\") {\n throw new Error(`${msg(loc)} must be a string, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertFunction(\n loc: GeneralPath,\n value: unknown,\n): Function | void {\n if (value !== undefined && typeof value !== \"function\") {\n throw new Error(`${msg(loc)} must be a function, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBoolean(\n loc: GeneralPath,\n value: unknown,\n): boolean | void {\n if (value !== undefined && typeof value !== \"boolean\") {\n throw new Error(`${msg(loc)} must be a boolean, or undefined`);\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertObject(\n loc: GeneralPath,\n value: unknown,\n): { readonly [key: string]: unknown } | void {\n if (\n value !== undefined &&\n (typeof value !== \"object\" || Array.isArray(value) || !value)\n ) {\n throw new Error(`${msg(loc)} must be an object, or undefined`);\n }\n // @ts-expect-error todo(flow->ts) value is still typed as unknown, also assert function typically should not return a value\n return value;\n}\n\nexport function assertArray(\n loc: GeneralPath,\n value: Array | undefined | null,\n): ReadonlyArray | undefined | null {\n if (value != null && !Array.isArray(value)) {\n throw new Error(`${msg(loc)} must be an array, or undefined`);\n }\n return value;\n}\n\nexport function assertIgnoreList(\n loc: OptionPath,\n value: unknown[] | undefined,\n): IgnoreList | void {\n const arr = assertArray(loc, value);\n arr?.forEach((item, i) => assertIgnoreItem(access(loc, i), item));\n // @ts-expect-error todo(flow->ts)\n return arr;\n}\nfunction assertIgnoreItem(loc: GeneralPath, value: unknown): IgnoreItem {\n if (\n typeof value !== \"string\" &&\n typeof value !== \"function\" &&\n !(value instanceof RegExp)\n ) {\n throw new Error(\n `${msg(\n loc,\n )} must be an array of string/Function/RegExp values, or undefined`,\n );\n }\n return value as IgnoreItem;\n}\n\nexport function assertConfigApplicableTest(\n loc: OptionPath,\n value: unknown,\n): ConfigApplicableTest | void {\n if (value === undefined) {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a string/Function/RegExp, or an array of those`,\n );\n }\n return value as ConfigApplicableTest;\n}\n\nfunction checkValidTest(value: unknown): value is string | Function | RegExp {\n return (\n typeof value === \"string\" ||\n typeof value === \"function\" ||\n value instanceof RegExp\n );\n}\n\nexport function assertConfigFileSearch(\n loc: OptionPath,\n value: unknown,\n): ConfigFileSearch | void {\n if (\n value !== undefined &&\n typeof value !== \"boolean\" &&\n typeof value !== \"string\"\n ) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string, ` +\n `got ${JSON.stringify(value)}`,\n );\n }\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n}\n\nexport function assertBabelrcSearch(\n loc: OptionPath,\n value: unknown,\n): BabelrcSearch | void {\n if (value === undefined || typeof value === \"boolean\") {\n // @ts-expect-error: TS can only narrow down the type when \"strictNullCheck\" is true\n return value;\n }\n\n if (Array.isArray(value)) {\n value.forEach((item, i) => {\n if (!checkValidTest(item)) {\n throw new Error(\n `${msg(access(loc, i))} must be a string/Function/RegExp.`,\n );\n }\n });\n } else if (!checkValidTest(value)) {\n throw new Error(\n `${msg(loc)} must be a undefined, a boolean, a string/Function/RegExp ` +\n `or an array of those, got ${JSON.stringify(value as any)}`,\n );\n }\n return value as BabelrcSearch;\n}\n\nexport function assertPluginList(\n loc: OptionPath,\n value: unknown[] | null | undefined,\n): PluginList | void {\n const arr = assertArray(loc, value);\n if (arr) {\n // Loop instead of using `.map` in order to preserve object identity\n // for plugin array for use during config chain processing.\n arr.forEach((item, i) => assertPluginItem(access(loc, i), item));\n }\n return arr as any;\n}\nfunction assertPluginItem(loc: GeneralPath, value: unknown): PluginItem {\n if (Array.isArray(value)) {\n if (value.length === 0) {\n throw new Error(`${msg(loc)} must include an object`);\n }\n\n if (value.length > 3) {\n throw new Error(`${msg(loc)} may only be a two-tuple or three-tuple`);\n }\n\n assertPluginTarget(access(loc, 0), value[0]);\n\n if (value.length > 1) {\n const opts = value[1];\n if (\n opts !== undefined &&\n opts !== false &&\n (typeof opts !== \"object\" || Array.isArray(opts) || opts === null)\n ) {\n throw new Error(\n `${msg(access(loc, 1))} must be an object, false, or undefined`,\n );\n }\n }\n if (value.length === 3) {\n const name = value[2];\n if (name !== undefined && typeof name !== \"string\") {\n throw new Error(\n `${msg(access(loc, 2))} must be a string, or undefined`,\n );\n }\n }\n } else {\n assertPluginTarget(loc, value);\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\nfunction assertPluginTarget(loc: GeneralPath, value: unknown): PluginTarget {\n if (\n (typeof value !== \"object\" || !value) &&\n typeof value !== \"string\" &&\n typeof value !== \"function\"\n ) {\n throw new Error(`${msg(loc)} must be a string, object, function`);\n }\n return value;\n}\n\nexport function assertTargets(\n loc: GeneralPath,\n value: any,\n): TargetsListOrObject {\n if (isBrowsersQueryValid(value)) return value;\n\n if (typeof value !== \"object\" || !value || Array.isArray(value)) {\n throw new Error(\n `${msg(loc)} must be a string, an array of strings or an object`,\n );\n }\n\n const browsersLoc = access(loc, \"browsers\");\n const esmodulesLoc = access(loc, \"esmodules\");\n\n assertBrowsersList(browsersLoc, value.browsers);\n assertBoolean(esmodulesLoc, value.esmodules);\n\n for (const key of Object.keys(value)) {\n const val = value[key];\n const subLoc = access(loc, key);\n\n if (key === \"esmodules\") assertBoolean(subLoc, val);\n else if (key === \"browsers\") assertBrowsersList(subLoc, val);\n else if (!Object.hasOwn(TargetNames, key)) {\n const validTargets = Object.keys(TargetNames).join(\", \");\n throw new Error(\n `${msg(\n subLoc,\n )} is not a valid target. Supported targets are ${validTargets}`,\n );\n } else assertBrowserVersion(subLoc, val);\n }\n\n return value;\n}\n\nfunction assertBrowsersList(loc: GeneralPath, value: unknown) {\n if (value !== undefined && !isBrowsersQueryValid(value)) {\n throw new Error(\n `${msg(loc)} must be undefined, a string or an array of strings`,\n );\n }\n}\n\nfunction assertBrowserVersion(loc: GeneralPath, value: unknown) {\n if (typeof value === \"number\" && Math.round(value) === value) return;\n if (typeof value === \"string\") return;\n\n throw new Error(`${msg(loc)} must be a string or an integer number`);\n}\n\nexport function assertAssumptions(\n loc: GeneralPath,\n value: { [key: string]: unknown },\n): { [name: string]: boolean } | void {\n if (value === undefined) return;\n\n if (typeof value !== \"object\" || value === null) {\n throw new Error(`${msg(loc)} must be an object or undefined.`);\n }\n\n // todo(flow->ts): remove any\n let root: any = loc;\n do {\n root = root.parent;\n } while (root.type !== \"root\");\n const inPreset = root.source === \"preset\";\n\n for (const name of Object.keys(value)) {\n const subLoc = access(loc, name);\n if (!assumptionsNames.has(name as AssumptionName)) {\n throw new Error(`${msg(subLoc)} is not a supported assumption.`);\n }\n if (typeof value[name] !== \"boolean\") {\n throw new Error(`${msg(subLoc)} must be a boolean.`);\n }\n if (inPreset && value[name] === false) {\n throw new Error(\n `${msg(subLoc)} cannot be set to 'false' inside presets.`,\n );\n }\n }\n\n // @ts-expect-error todo(flow->ts)\n return value;\n}\n","/**\n * This file uses the internal V8 Stack Trace API (https://v8.dev/docs/stack-trace-api)\n * to provide utilities to rewrite the stack trace.\n * When this API is not present, all the functions in this file become noops.\n *\n * beginHiddenCallStack(fn) and endHiddenCallStack(fn) wrap their parameter to\n * mark an hidden portion of the stack trace. The function passed to\n * beginHiddenCallStack is the first hidden function, while the function passed\n * to endHiddenCallStack is the first shown function.\n *\n * When an error is thrown _outside_ of the hidden zone, everything between\n * beginHiddenCallStack and endHiddenCallStack will not be shown.\n * If an error is thrown _inside_ the hidden zone, then the whole stack trace\n * will be visible: this is to avoid hiding real bugs.\n * However, if an error inside the hidden zone is expected, it can be marked\n * with the expectedError(error) function to keep the hidden frames hidden.\n *\n * Consider this call stack (the outer function is the bottom one):\n *\n * 1. a()\n * 2. endHiddenCallStack(b)()\n * 3. c()\n * 4. beginHiddenCallStack(d)()\n * 5. e()\n * 6. f()\n *\n * - If a() throws an error, then its shown call stack will be \"a, b, e, f\"\n * - If b() throws an error, then its shown call stack will be \"b, e, f\"\n * - If c() throws an expected error, then its shown call stack will be \"e, f\"\n * - If c() throws an unexpected error, then its shown call stack will be \"c, d, e, f\"\n * - If d() throws an expected error, then its shown call stack will be \"e, f\"\n * - If d() throws an unexpected error, then its shown call stack will be \"d, e, f\"\n * - If e() throws an error, then its shown call stack will be \"e, f\"\n *\n * Additionally, an error can inject additional \"virtual\" stack frames using the\n * injectVirtualStackFrame(error, filename) function: those are injected as a\n * replacement of the hidden frames.\n * In the example above, if we called injectVirtualStackFrame(err, \"h\") and\n * injectVirtualStackFrame(err, \"i\") on the expected error thrown by c(), its\n * shown call stack would have been \"h, i, e, f\".\n * This can be useful, for example, to report config validation errors as if they\n * were directly thrown in the config file.\n */\n\nconst ErrorToString = Function.call.bind(Error.prototype.toString);\n\nconst SUPPORTED =\n !!Error.captureStackTrace &&\n Object.getOwnPropertyDescriptor(Error, \"stackTraceLimit\")?.writable === true;\n\nconst START_HIDING = \"startHiding - secret - don't use this - v1\";\nconst STOP_HIDING = \"stopHiding - secret - don't use this - v1\";\n\ntype CallSite = NodeJS.CallSite;\n\nconst expectedErrors = new WeakSet();\nconst virtualFrames = new WeakMap();\n\nfunction CallSite(filename: string): CallSite {\n // We need to use a prototype otherwise it breaks source-map-support's internals\n return Object.create({\n isNative: () => false,\n isConstructor: () => false,\n isToplevel: () => true,\n getFileName: () => filename,\n getLineNumber: () => undefined,\n getColumnNumber: () => undefined,\n getFunctionName: () => undefined,\n getMethodName: () => undefined,\n getTypeName: () => undefined,\n toString: () => filename,\n } as CallSite);\n}\n\nexport function injectVirtualStackFrame(error: Error, filename: string) {\n if (!SUPPORTED) return;\n\n let frames = virtualFrames.get(error);\n if (!frames) virtualFrames.set(error, (frames = []));\n frames.push(CallSite(filename));\n\n return error;\n}\n\nexport function expectedError(error: Error) {\n if (!SUPPORTED) return;\n expectedErrors.add(error);\n return error;\n}\n\nexport function beginHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n setupPrepareStackTrace();\n return fn(...args);\n },\n \"name\",\n { value: STOP_HIDING },\n );\n}\n\nexport function endHiddenCallStack(\n fn: (...args: A) => R,\n) {\n if (!SUPPORTED) return fn;\n\n return Object.defineProperty(\n function (...args: A) {\n return fn(...args);\n },\n \"name\",\n { value: START_HIDING },\n );\n}\n\nfunction setupPrepareStackTrace() {\n // @ts-expect-error This function is a singleton\n // eslint-disable-next-line no-func-assign\n setupPrepareStackTrace = () => {};\n\n const { prepareStackTrace = defaultPrepareStackTrace } = Error;\n\n // We add some extra frames to Error.stackTraceLimit, so that we can\n // always show some useful frames even after deleting ours.\n // STACK_TRACE_LIMIT_DELTA should be around the maximum expected number\n // of internal frames, and not too big because capturing the stack trace\n // is slow (this is why Error.stackTraceLimit does not default to Infinity!).\n // Increase it if needed.\n // However, we only do it if the user did not explicitly set it to 0.\n const MIN_STACK_TRACE_LIMIT = 50;\n Error.stackTraceLimit &&= Math.max(\n Error.stackTraceLimit,\n MIN_STACK_TRACE_LIMIT,\n );\n\n Error.prepareStackTrace = function stackTraceRewriter(err, trace) {\n let newTrace = [];\n\n const isExpected = expectedErrors.has(err);\n let status: \"showing\" | \"hiding\" | \"unknown\" = isExpected\n ? \"hiding\"\n : \"unknown\";\n for (let i = 0; i < trace.length; i++) {\n const name = trace[i].getFunctionName();\n if (name === START_HIDING) {\n status = \"hiding\";\n } else if (name === STOP_HIDING) {\n if (status === \"hiding\") {\n status = \"showing\";\n if (virtualFrames.has(err)) {\n newTrace.unshift(...virtualFrames.get(err));\n }\n } else if (status === \"unknown\") {\n // Unexpected internal error, show the full stack trace\n newTrace = trace;\n break;\n }\n } else if (status !== \"hiding\") {\n newTrace.push(trace[i]);\n }\n }\n\n return prepareStackTrace(err, newTrace);\n };\n}\n\nfunction defaultPrepareStackTrace(err: Error, trace: CallSite[]) {\n if (trace.length === 0) return ErrorToString(err);\n return `${ErrorToString(err)}\\n at ${trace.join(\"\\n at \")}`;\n}\n","import {\n injectVirtualStackFrame,\n expectedError,\n} from \"./rewrite-stack-trace.ts\";\n\nexport default class ConfigError extends Error {\n constructor(message: string, filename?: string) {\n super(message);\n expectedError(this);\n if (filename) injectVirtualStackFrame(this, filename);\n }\n}\n","import type { InputTargets, Targets } from \"@babel/helper-compilation-targets\";\n\nimport type { ConfigItem } from \"../item.ts\";\nimport type Plugin from \"../plugin.ts\";\n\nimport removed from \"./removed.ts\";\nimport {\n msg,\n access,\n assertString,\n assertBoolean,\n assertObject,\n assertArray,\n assertCallerMetadata,\n assertInputSourceMap,\n assertIgnoreList,\n assertPluginList,\n assertConfigApplicableTest,\n assertConfigFileSearch,\n assertBabelrcSearch,\n assertFunction,\n assertRootMode,\n assertSourceMaps,\n assertCompact,\n assertSourceType,\n assertTargets,\n assertAssumptions,\n} from \"./option-assertions.ts\";\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n} from \"./option-assertions.ts\";\nimport type { UnloadedDescriptor } from \"../config-descriptors.ts\";\nimport type { PluginAPI } from \"../helpers/config-api.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { GeneratorOptions } from \"@babel/generator\";\nimport ConfigError from \"../../errors/config-error.ts\";\n\nconst ROOT_VALIDATORS: ValidatorSet = {\n cwd: assertString as Validator,\n root: assertString as Validator,\n rootMode: assertRootMode as Validator,\n configFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"configFile\"]\n >,\n\n caller: assertCallerMetadata as Validator,\n filename: assertString as Validator,\n filenameRelative: assertString as Validator<\n ValidatedOptions[\"filenameRelative\"]\n >,\n code: assertBoolean as Validator,\n ast: assertBoolean as Validator,\n\n cloneInputAst: assertBoolean as Validator,\n\n envName: assertString as Validator,\n};\n\nconst BABELRC_VALIDATORS: ValidatorSet = {\n babelrc: assertBoolean as Validator,\n babelrcRoots: assertBabelrcSearch as Validator<\n ValidatedOptions[\"babelrcRoots\"]\n >,\n};\n\nconst NONPRESET_VALIDATORS: ValidatorSet = {\n extends: assertString as Validator,\n ignore: assertIgnoreList as Validator,\n only: assertIgnoreList as Validator,\n\n targets: assertTargets as Validator,\n browserslistConfigFile: assertConfigFileSearch as Validator<\n ValidatedOptions[\"browserslistConfigFile\"]\n >,\n browserslistEnv: assertString as Validator<\n ValidatedOptions[\"browserslistEnv\"]\n >,\n};\n\nconst COMMON_VALIDATORS: ValidatorSet = {\n // TODO: Should 'inputSourceMap' be moved to be a root-only option?\n // We may want a boolean-only version to be a common option, with the\n // object only allowed as a root config argument.\n inputSourceMap: assertInputSourceMap as Validator<\n ValidatedOptions[\"inputSourceMap\"]\n >,\n presets: assertPluginList as Validator,\n plugins: assertPluginList as Validator,\n passPerPreset: assertBoolean as Validator,\n assumptions: assertAssumptions as Validator,\n\n env: assertEnvSet as Validator,\n overrides: assertOverridesList as Validator,\n\n // We could limit these to 'overrides' blocks, but it's not clear why we'd\n // bother, when the ability to limit a config to a specific set of files\n // is a fairly general useful feature.\n test: assertConfigApplicableTest as Validator,\n include: assertConfigApplicableTest as Validator,\n exclude: assertConfigApplicableTest as Validator,\n\n retainLines: assertBoolean as Validator,\n comments: assertBoolean as Validator,\n shouldPrintComment: assertFunction as Validator<\n ValidatedOptions[\"shouldPrintComment\"]\n >,\n compact: assertCompact as Validator,\n minified: assertBoolean as Validator,\n auxiliaryCommentBefore: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentBefore\"]\n >,\n auxiliaryCommentAfter: assertString as Validator<\n ValidatedOptions[\"auxiliaryCommentAfter\"]\n >,\n sourceType: assertSourceType as Validator,\n wrapPluginVisitorMethod: assertFunction as Validator<\n ValidatedOptions[\"wrapPluginVisitorMethod\"]\n >,\n highlightCode: assertBoolean as Validator,\n sourceMaps: assertSourceMaps as Validator,\n sourceMap: assertSourceMaps as Validator,\n sourceFileName: assertString as Validator,\n sourceRoot: assertString as Validator,\n parserOpts: assertObject as Validator,\n generatorOpts: assertObject as Validator,\n};\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(COMMON_VALIDATORS, {\n getModuleId: assertFunction,\n moduleRoot: assertString,\n moduleIds: assertBoolean,\n moduleId: assertString,\n });\n}\n\nexport type InputOptions = ValidatedOptions;\n\nexport type ValidatedOptions = {\n cwd?: string;\n filename?: string;\n filenameRelative?: string;\n babelrc?: boolean;\n babelrcRoots?: BabelrcSearch;\n configFile?: ConfigFileSearch;\n root?: string;\n rootMode?: RootMode;\n code?: boolean;\n ast?: boolean;\n cloneInputAst?: boolean;\n inputSourceMap?: RootInputSourceMapOption;\n envName?: string;\n caller?: CallerMetadata;\n extends?: string;\n env?: EnvSet;\n ignore?: IgnoreList;\n only?: IgnoreList;\n overrides?: OverridesList;\n // Generally verify if a given config object should be applied to the given file.\n test?: ConfigApplicableTest;\n include?: ConfigApplicableTest;\n exclude?: ConfigApplicableTest;\n presets?: PluginList;\n plugins?: PluginList;\n passPerPreset?: boolean;\n assumptions?: {\n [name: string]: boolean;\n };\n // browserslists-related options\n targets?: TargetsListOrObject;\n browserslistConfigFile?: ConfigFileSearch;\n browserslistEnv?: string;\n // Options for @babel/generator\n retainLines?: boolean;\n comments?: boolean;\n shouldPrintComment?: Function;\n compact?: CompactOption;\n minified?: boolean;\n auxiliaryCommentBefore?: string;\n auxiliaryCommentAfter?: string;\n // Parser\n sourceType?: SourceTypeOption;\n wrapPluginVisitorMethod?: Function;\n highlightCode?: boolean;\n // Sourcemap generation options.\n sourceMaps?: SourceMapsOption;\n sourceMap?: SourceMapsOption;\n sourceFileName?: string;\n sourceRoot?: string;\n // Deprecate top level parserOpts\n parserOpts?: ParserOptions;\n // Deprecate top level generatorOpts\n generatorOpts?: GeneratorOptions;\n};\n\nexport type NormalizedOptions = {\n readonly targets: Targets;\n} & Omit;\n\nexport type CallerMetadata = {\n // If 'caller' is specified, require that the name is given for debugging\n // messages.\n name: string;\n};\nexport type EnvSet = {\n [x: string]: T;\n};\nexport type IgnoreItem =\n | string\n | RegExp\n | ((\n path: string | undefined,\n context: { dirname: string; caller: CallerMetadata; envName: string },\n ) => unknown);\nexport type IgnoreList = ReadonlyArray;\n\nexport type PluginOptions = object | void | false;\nexport type PluginTarget = string | object | Function;\nexport type PluginItem =\n | ConfigItem\n | Plugin\n | PluginTarget\n | [PluginTarget, PluginOptions]\n | [PluginTarget, PluginOptions, string | void];\nexport type PluginList = ReadonlyArray;\n\nexport type OverridesList = Array;\nexport type ConfigApplicableTest = IgnoreItem | Array;\n\nexport type ConfigFileSearch = string | boolean;\nexport type BabelrcSearch = boolean | IgnoreItem | IgnoreList;\nexport type SourceMapsOption = boolean | \"inline\" | \"both\";\nexport type SourceTypeOption = \"module\" | \"script\" | \"unambiguous\";\nexport type CompactOption = boolean | \"auto\";\nexport type RootInputSourceMapOption = {} | boolean;\nexport type RootMode = \"root\" | \"upward\" | \"upward-optional\";\n\nexport type TargetsListOrObject =\n | Targets\n | InputTargets\n | InputTargets[\"browsers\"];\n\nexport type OptionsSource =\n | \"arguments\"\n | \"configfile\"\n | \"babelrcfile\"\n | \"extendsfile\"\n | \"preset\"\n | \"plugin\";\n\nexport type RootPath = Readonly<{\n type: \"root\";\n source: OptionsSource;\n}>;\n\ntype OverridesPath = Readonly<{\n type: \"overrides\";\n index: number;\n parent: RootPath;\n}>;\n\ntype EnvPath = Readonly<{\n type: \"env\";\n name: string;\n parent: RootPath | OverridesPath;\n}>;\n\nexport type NestingPath = RootPath | OverridesPath | EnvPath;\n\nconst knownAssumptions = [\n \"arrayLikeIsIterable\",\n \"constantReexports\",\n \"constantSuper\",\n \"enumerableModuleMeta\",\n \"ignoreFunctionLength\",\n \"ignoreToPrimitiveHint\",\n \"iterableIsArray\",\n \"mutableTemplateObject\",\n \"noClassCalls\",\n \"noDocumentAll\",\n \"noIncompleteNsImportDetection\",\n \"noNewArrows\",\n \"noUninitializedPrivateFieldAccess\",\n \"objectRestNoSymbols\",\n \"privateFieldsAsSymbols\",\n \"privateFieldsAsProperties\",\n \"pureGetters\",\n \"setClassMethods\",\n \"setComputedProperties\",\n \"setPublicClassFields\",\n \"setSpreadProperties\",\n \"skipForOfIteratorClosing\",\n \"superIsCallableConstructor\",\n] as const;\nexport type AssumptionName = (typeof knownAssumptions)[number];\nexport const assumptionsNames = new Set(knownAssumptions);\n\nfunction getSource(loc: NestingPath): OptionsSource {\n return loc.type === \"root\" ? loc.source : getSource(loc.parent);\n}\n\nexport function validate(\n type: OptionsSource,\n opts: {},\n filename?: string,\n): ValidatedOptions {\n try {\n return validateNested(\n {\n type: \"root\",\n source: type,\n },\n opts,\n );\n } catch (error) {\n const configError = new ConfigError(error.message, filename);\n // @ts-expect-error TODO: .code is not defined on ConfigError or Error\n if (error.code) configError.code = error.code;\n throw configError;\n }\n}\n\nfunction validateNested(loc: NestingPath, opts: { [key: string]: unknown }) {\n const type = getSource(loc);\n\n assertNoDuplicateSourcemap(opts);\n\n Object.keys(opts).forEach((key: string) => {\n const optLoc = {\n type: \"option\",\n name: key,\n parent: loc,\n } as const;\n\n if (type === \"preset\" && NONPRESET_VALIDATORS[key]) {\n throw new Error(`${msg(optLoc)} is not allowed in preset options`);\n }\n if (type !== \"arguments\" && ROOT_VALIDATORS[key]) {\n throw new Error(\n `${msg(optLoc)} is only allowed in root programmatic options`,\n );\n }\n if (\n type !== \"arguments\" &&\n type !== \"configfile\" &&\n BABELRC_VALIDATORS[key]\n ) {\n if (type === \"babelrcfile\" || type === \"extendsfile\") {\n throw new Error(\n `${msg(\n optLoc,\n )} is not allowed in .babelrc or \"extends\"ed files, only in root programmatic options, ` +\n `or babel.config.js/config file options`,\n );\n }\n\n throw new Error(\n `${msg(\n optLoc,\n )} is only allowed in root programmatic options, or babel.config.js/config file options`,\n );\n }\n\n const validator =\n COMMON_VALIDATORS[key] ||\n NONPRESET_VALIDATORS[key] ||\n BABELRC_VALIDATORS[key] ||\n ROOT_VALIDATORS[key] ||\n (throwUnknownError as Validator);\n\n validator(optLoc, opts[key]);\n });\n\n return opts;\n}\n\nfunction throwUnknownError(loc: OptionPath) {\n const key = loc.name;\n\n if (removed[key]) {\n const { message, version = 5 } = removed[key];\n\n throw new Error(\n `Using removed Babel ${version} option: ${msg(loc)} - ${message}`,\n );\n } else {\n const unknownOptErr = new Error(\n `Unknown option: ${msg(\n loc,\n )}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`,\n );\n // @ts-expect-error todo(flow->ts): consider creating something like BabelConfigError with code field in it\n unknownOptErr.code = \"BABEL_UNKNOWN_OPTION\";\n\n throw unknownOptErr;\n }\n}\n\nfunction assertNoDuplicateSourcemap(opts: {}): void {\n if (Object.hasOwn(opts, \"sourceMap\") && Object.hasOwn(opts, \"sourceMaps\")) {\n throw new Error(\".sourceMap is an alias for .sourceMaps, cannot use both\");\n }\n}\n\nfunction assertEnvSet(\n loc: OptionPath,\n value: unknown,\n): void | EnvSet {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside of another .env block`);\n }\n const parent: RootPath | OverridesPath = loc.parent;\n\n const obj = assertObject(loc, value);\n if (obj) {\n // Validate but don't copy the .env object in order to preserve\n // object identity for use during config chain processing.\n for (const envName of Object.keys(obj)) {\n const env = assertObject(access(loc, envName), obj[envName]);\n if (!env) continue;\n\n const envLoc = {\n type: \"env\",\n name: envName,\n parent,\n } as const;\n validateNested(envLoc, env);\n }\n }\n return obj;\n}\n\nfunction assertOverridesList(\n loc: OptionPath,\n value: unknown[],\n): undefined | OverridesList {\n if (loc.parent.type === \"env\") {\n throw new Error(`${msg(loc)} is not allowed inside an .env block`);\n }\n if (loc.parent.type === \"overrides\") {\n throw new Error(`${msg(loc)} is not allowed inside an .overrides block`);\n }\n const parent: RootPath = loc.parent;\n\n const arr = assertArray(loc, value);\n if (arr) {\n for (const [index, item] of arr.entries()) {\n const objLoc = access(loc, index);\n const env = assertObject(objLoc, item);\n if (!env) throw new Error(`${msg(objLoc)} must be an object`);\n\n const overridesLoc = {\n type: \"overrides\",\n index,\n parent,\n } as const;\n validateNested(overridesLoc, env);\n }\n }\n return arr as OverridesList;\n}\n\nexport function checkNoUnwrappedItemOptionPairs(\n items: Array>,\n index: number,\n type: \"plugin\" | \"preset\",\n e: Error,\n): void {\n if (index === 0) return;\n\n const lastItem = items[index - 1];\n const thisItem = items[index];\n\n if (\n lastItem.file &&\n lastItem.options === undefined &&\n typeof thisItem.value === \"object\"\n ) {\n e.message +=\n `\\n- Maybe you meant to use\\n` +\n `\"${type}s\": [\\n [\"${lastItem.file.request}\", ${JSON.stringify(\n thisItem.value,\n undefined,\n 2,\n )}]\\n]\\n` +\n `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`;\n }\n}\n","import path from \"path\";\n\nconst sep = `\\\\${path.sep}`;\nconst endSep = `(?:${sep}|$)`;\n\nconst substitution = `[^${sep}]+`;\n\nconst starPat = `(?:${substitution}${sep})`;\nconst starPatLast = `(?:${substitution}${endSep})`;\n\nconst starStarPat = `${starPat}*?`;\nconst starStarPatLast = `${starPat}*?${starPatLast}?`;\n\nfunction escapeRegExp(string: string) {\n return string.replace(/[|\\\\{}()[\\]^$+*?.]/g, \"\\\\$&\");\n}\n\n/**\n * Implement basic pattern matching that will allow users to do the simple\n * tests with * and **. If users want full complex pattern matching, then can\n * always use regex matching, or function validation.\n */\nexport default function pathToPattern(\n pattern: string,\n dirname: string,\n): RegExp {\n const parts = path.resolve(dirname, pattern).split(path.sep);\n\n return new RegExp(\n [\n \"^\",\n ...parts.map((part, i) => {\n const last = i === parts.length - 1;\n\n // ** matches 0 or more path parts.\n if (part === \"**\") return last ? starStarPatLast : starStarPat;\n\n // * matches 1 path part.\n if (part === \"*\") return last ? starPatLast : starPat;\n\n // *.ext matches a wildcard with an extension.\n if (part.indexOf(\"*.\") === 0) {\n return (\n substitution + escapeRegExp(part.slice(1)) + (last ? endSep : sep)\n );\n }\n\n // Otherwise match the pattern text.\n return escapeRegExp(part) + (last ? endSep : sep);\n }),\n ].join(\"\"),\n );\n}\n","import gensync from \"gensync\";\n\nimport type { Handler } from \"gensync\";\n\nimport type {\n OptionsAndDescriptors,\n UnloadedDescriptor,\n} from \"./config-descriptors.ts\";\n\n// todo: Use flow enums when @babel/transform-flow-types supports it\nexport const ChainFormatter = {\n Programmatic: 0,\n Config: 1,\n};\n\ntype PrintableConfig = {\n content: OptionsAndDescriptors;\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter];\n callerName: string | undefined | null;\n filepath: string | undefined | null;\n index: number | undefined | null;\n envName: string | undefined | null;\n};\n\nconst Formatter = {\n title(\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n callerName?: string | null,\n filepath?: string | null,\n ): string {\n let title = \"\";\n if (type === ChainFormatter.Programmatic) {\n title = \"programmatic options\";\n if (callerName) {\n title += \" from \" + callerName;\n }\n } else {\n title = \"config \" + filepath;\n }\n return title;\n },\n loc(index?: number | null, envName?: string | null): string {\n let loc = \"\";\n if (index != null) {\n loc += `.overrides[${index}]`;\n }\n if (envName != null) {\n loc += `.env[\"${envName}\"]`;\n }\n return loc;\n },\n\n *optionsAndDescriptors(opt: OptionsAndDescriptors) {\n const content = { ...opt.options };\n // overrides and env will be printed as separated config items\n delete content.overrides;\n delete content.env;\n // resolve to descriptors\n const pluginDescriptors = [...(yield* opt.plugins())];\n if (pluginDescriptors.length) {\n content.plugins = pluginDescriptors.map(d => descriptorToConfig(d));\n }\n const presetDescriptors = [...(yield* opt.presets())];\n if (presetDescriptors.length) {\n content.presets = [...presetDescriptors].map(d => descriptorToConfig(d));\n }\n return JSON.stringify(content, undefined, 2);\n },\n};\n\nfunction descriptorToConfig(\n d: UnloadedDescriptor,\n): object | string | [string, unknown] | [string, unknown, string] {\n let name: object | string = d.file?.request;\n if (name == null) {\n if (typeof d.value === \"object\") {\n name = d.value;\n } else if (typeof d.value === \"function\") {\n // If the unloaded descriptor is a function, i.e. `plugins: [ require(\"my-plugin\") ]`,\n // we print the first 50 characters of the function source code and hopefully we can see\n // `name: 'my-plugin'` in the source\n name = `[Function: ${d.value.toString().slice(0, 50)} ... ]`;\n }\n }\n if (name == null) {\n name = \"[Unknown]\";\n }\n if (d.options === undefined) {\n return name;\n } else if (d.name == null) {\n return [name, d.options];\n } else {\n return [name, d.options, d.name];\n }\n}\n\nexport class ConfigPrinter {\n _stack: Array = [];\n configure(\n enabled: boolean,\n type: (typeof ChainFormatter)[keyof typeof ChainFormatter],\n {\n callerName,\n filepath,\n }: {\n callerName?: string;\n filepath?: string;\n },\n ) {\n if (!enabled) return () => {};\n return (\n content: OptionsAndDescriptors,\n index?: number | null,\n envName?: string | null,\n ) => {\n this._stack.push({\n type,\n callerName,\n filepath,\n content,\n index,\n envName,\n });\n };\n }\n static *format(config: PrintableConfig): Handler {\n let title = Formatter.title(\n config.type,\n config.callerName,\n config.filepath,\n );\n const loc = Formatter.loc(config.index, config.envName);\n if (loc) title += ` ${loc}`;\n const content = yield* Formatter.optionsAndDescriptors(config.content);\n return `${title}\\n${content}`;\n }\n\n *output(): Handler {\n if (this._stack.length === 0) return \"\";\n const configs = yield* gensync.all(\n this._stack.map(s => ConfigPrinter.format(s)),\n );\n return configs.join(\"\\n\\n\");\n }\n}\n","/* eslint-disable @typescript-eslint/no-use-before-define */\n\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { validate } from \"./validation/options.ts\";\nimport type {\n ValidatedOptions,\n IgnoreList,\n ConfigApplicableTest,\n BabelrcSearch,\n CallerMetadata,\n IgnoreItem,\n} from \"./validation/options.ts\";\nimport pathPatternToRegex from \"./pattern-to-regex.ts\";\nimport { ConfigPrinter, ChainFormatter } from \"./printer.ts\";\nimport type { ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\n\nimport { endHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nconst debug = buildDebug(\"babel:config:config-chain\");\n\nimport {\n findPackageData,\n findRelativeConfig,\n findRootConfig,\n loadConfig,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile, FilePackageData } from \"./files/index.ts\";\n\nimport { makeWeakCacheSync, makeStrongCacheSync } from \"./caching.ts\";\n\nimport {\n createCachedDescriptors,\n createUncachedDescriptors,\n} from \"./config-descriptors.ts\";\nimport type {\n UnloadedDescriptor,\n OptionsAndDescriptors,\n ValidatedFile,\n} from \"./config-descriptors.ts\";\n\nexport type ConfigChain = {\n plugins: Array>;\n presets: Array>;\n options: Array;\n files: Set;\n};\n\nexport type PresetInstance = {\n options: ValidatedOptions;\n alias: string;\n dirname: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type ConfigContext = {\n filename: string | undefined;\n cwd: string;\n root: string;\n envName: string;\n caller: CallerMetadata | undefined;\n showConfig: boolean;\n};\n\n/**\n * Build a config chain for a given preset.\n */\nexport function* buildPresetChain(\n arg: PresetInstance,\n context: any,\n): Handler {\n const chain = yield* buildPresetChainWalker(arg, context);\n if (!chain) return null;\n\n return {\n plugins: dedupDescriptors(chain.plugins),\n presets: dedupDescriptors(chain.presets),\n options: chain.options.map(o => normalizeOptions(o)),\n files: new Set(),\n };\n}\n\nexport const buildPresetChainWalker = makeChainWalker({\n root: preset => loadPresetDescriptors(preset),\n env: (preset, envName) => loadPresetEnvDescriptors(preset)(envName),\n overrides: (preset, index) => loadPresetOverridesDescriptors(preset)(index),\n overridesEnv: (preset, index, envName) =>\n loadPresetOverridesEnvDescriptors(preset)(index)(envName),\n createLogger: () => () => {}, // Currently we don't support logging how preset is expanded\n});\nconst loadPresetDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n buildRootDescriptors(preset, preset.alias, createUncachedDescriptors),\n);\nconst loadPresetEnvDescriptors = makeWeakCacheSync((preset: PresetInstance) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadPresetOverridesDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadPresetOverridesEnvDescriptors = makeWeakCacheSync(\n (preset: PresetInstance) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n preset,\n preset.alias,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nexport type FileHandling = \"transpile\" | \"ignored\" | \"unsupported\";\nexport type RootConfigChain = ConfigChain & {\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n ignore: IgnoreFile | void;\n fileHandling: FileHandling;\n files: Set;\n};\n\n/**\n * Build a config chain for Babel's full root configuration.\n */\nexport function* buildRootChain(\n opts: ValidatedOptions,\n context: ConfigContext,\n): Handler {\n let configReport, babelRcReport;\n const programmaticLogger = new ConfigPrinter();\n const programmaticChain = yield* loadProgrammaticChain(\n {\n options: opts,\n dirname: context.cwd,\n },\n context,\n undefined,\n programmaticLogger,\n );\n if (!programmaticChain) return null;\n const programmaticReport = yield* programmaticLogger.output();\n\n let configFile;\n if (typeof opts.configFile === \"string\") {\n configFile = yield* loadConfig(\n opts.configFile,\n context.cwd,\n context.envName,\n context.caller,\n );\n } else if (opts.configFile !== false) {\n configFile = yield* findRootConfig(\n context.root,\n context.envName,\n context.caller,\n );\n }\n\n let { babelrc, babelrcRoots } = opts;\n let babelrcRootsDirectory = context.cwd;\n\n const configFileChain = emptyChain();\n const configFileLogger = new ConfigPrinter();\n if (configFile) {\n const validatedFile = validateConfigFile(configFile);\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n configFileLogger,\n );\n if (!result) return null;\n configReport = yield* configFileLogger.output();\n\n // Allow config files to toggle `.babelrc` resolution on and off and\n // specify where the roots are.\n if (babelrc === undefined) {\n babelrc = validatedFile.options.babelrc;\n }\n if (babelrcRoots === undefined) {\n babelrcRootsDirectory = validatedFile.dirname;\n babelrcRoots = validatedFile.options.babelrcRoots;\n }\n\n mergeChain(configFileChain, result);\n }\n\n let ignoreFile, babelrcFile;\n let isIgnored = false;\n const fileChain = emptyChain();\n // resolve all .babelrc files\n if (\n (babelrc === true || babelrc === undefined) &&\n typeof context.filename === \"string\"\n ) {\n const pkgData = yield* findPackageData(context.filename);\n\n if (\n pkgData &&\n babelrcLoadEnabled(context, pkgData, babelrcRoots, babelrcRootsDirectory)\n ) {\n ({ ignore: ignoreFile, config: babelrcFile } = yield* findRelativeConfig(\n pkgData,\n context.envName,\n context.caller,\n ));\n\n if (ignoreFile) {\n fileChain.files.add(ignoreFile.filepath);\n }\n\n if (\n ignoreFile &&\n shouldIgnore(context, ignoreFile.ignore, null, ignoreFile.dirname)\n ) {\n isIgnored = true;\n }\n\n if (babelrcFile && !isIgnored) {\n const validatedFile = validateBabelrcFile(babelrcFile);\n const babelrcLogger = new ConfigPrinter();\n const result = yield* loadFileChain(\n validatedFile,\n context,\n undefined,\n babelrcLogger,\n );\n if (!result) {\n isIgnored = true;\n } else {\n babelRcReport = yield* babelrcLogger.output();\n mergeChain(fileChain, result);\n }\n }\n\n if (babelrcFile && isIgnored) {\n fileChain.files.add(babelrcFile.filepath);\n }\n }\n }\n\n if (context.showConfig) {\n console.log(\n `Babel configs on \"${context.filename}\" (ascending priority):\\n` +\n // print config by the order of ascending priority\n [configReport, babelRcReport, programmaticReport]\n .filter(x => !!x)\n .join(\"\\n\\n\") +\n \"\\n-----End Babel configs-----\",\n );\n }\n // Insert file chain in front so programmatic options have priority\n // over configuration file chain items.\n const chain = mergeChain(\n mergeChain(mergeChain(emptyChain(), configFileChain), fileChain),\n programmaticChain,\n );\n\n return {\n plugins: isIgnored ? [] : dedupDescriptors(chain.plugins),\n presets: isIgnored ? [] : dedupDescriptors(chain.presets),\n options: isIgnored ? [] : chain.options.map(o => normalizeOptions(o)),\n fileHandling: isIgnored ? \"ignored\" : \"transpile\",\n ignore: ignoreFile || undefined,\n babelrc: babelrcFile || undefined,\n config: configFile || undefined,\n files: chain.files,\n };\n}\n\nfunction babelrcLoadEnabled(\n context: ConfigContext,\n pkgData: FilePackageData,\n babelrcRoots: BabelrcSearch | undefined,\n babelrcRootsDirectory: string,\n): boolean {\n if (typeof babelrcRoots === \"boolean\") return babelrcRoots;\n\n const absoluteRoot = context.root;\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcRoots === undefined) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n let babelrcPatterns = babelrcRoots;\n if (!Array.isArray(babelrcPatterns)) {\n babelrcPatterns = [babelrcPatterns as IgnoreItem];\n }\n babelrcPatterns = babelrcPatterns.map(pat => {\n return typeof pat === \"string\"\n ? path.resolve(babelrcRootsDirectory, pat)\n : pat;\n });\n\n // Fast path to avoid having to match patterns if the babelrc is just\n // loading in the standard root directory.\n if (babelrcPatterns.length === 1 && babelrcPatterns[0] === absoluteRoot) {\n return pkgData.directories.indexOf(absoluteRoot) !== -1;\n }\n\n return babelrcPatterns.some(pat => {\n if (typeof pat === \"string\") {\n pat = pathPatternToRegex(pat, babelrcRootsDirectory);\n }\n\n return pkgData.directories.some(directory => {\n return matchPattern(pat, babelrcRootsDirectory, directory, context);\n });\n });\n}\n\nconst validateConfigFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"configfile\", file.options, file.filepath),\n }),\n);\n\nconst validateBabelrcFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"babelrcfile\", file.options, file.filepath),\n }),\n);\n\nconst validateExtendFile = makeWeakCacheSync(\n (file: ConfigFile): ValidatedFile => ({\n filepath: file.filepath,\n dirname: file.dirname,\n options: validate(\"extendsfile\", file.options, file.filepath),\n }),\n);\n\n/**\n * Build a config chain for just the programmatic options passed into Babel.\n */\nconst loadProgrammaticChain = makeChainWalker({\n root: input => buildRootDescriptors(input, \"base\", createCachedDescriptors),\n env: (input, envName) =>\n buildEnvDescriptors(input, \"base\", createCachedDescriptors, envName),\n overrides: (input, index) =>\n buildOverrideDescriptors(input, \"base\", createCachedDescriptors, index),\n overridesEnv: (input, index, envName) =>\n buildOverrideEnvDescriptors(\n input,\n \"base\",\n createCachedDescriptors,\n index,\n envName,\n ),\n createLogger: (input, context, baseLogger) =>\n buildProgrammaticLogger(input, context, baseLogger),\n});\n\n/**\n * Build a config chain for a given file.\n */\nconst loadFileChainWalker = makeChainWalker({\n root: file => loadFileDescriptors(file),\n env: (file, envName) => loadFileEnvDescriptors(file)(envName),\n overrides: (file, index) => loadFileOverridesDescriptors(file)(index),\n overridesEnv: (file, index, envName) =>\n loadFileOverridesEnvDescriptors(file)(index)(envName),\n createLogger: (file, context, baseLogger) =>\n buildFileLogger(file.filepath, context, baseLogger),\n});\n\nfunction* loadFileChain(\n input: ValidatedFile,\n context: ConfigContext,\n files: Set,\n baseLogger: ConfigPrinter,\n) {\n const chain = yield* loadFileChainWalker(input, context, files, baseLogger);\n chain?.files.add(input.filepath);\n\n return chain;\n}\n\nconst loadFileDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n buildRootDescriptors(file, file.filepath, createUncachedDescriptors),\n);\nconst loadFileEnvDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((envName: string) =>\n buildEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n envName,\n ),\n ),\n);\nconst loadFileOverridesDescriptors = makeWeakCacheSync((file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n buildOverrideDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n ),\n ),\n);\nconst loadFileOverridesEnvDescriptors = makeWeakCacheSync(\n (file: ValidatedFile) =>\n makeStrongCacheSync((index: number) =>\n makeStrongCacheSync((envName: string) =>\n buildOverrideEnvDescriptors(\n file,\n file.filepath,\n createUncachedDescriptors,\n index,\n envName,\n ),\n ),\n ),\n);\n\nfunction buildFileLogger(\n filepath: string,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Config, {\n filepath,\n });\n}\n\nfunction buildRootDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n) {\n return descriptors(dirname, options, alias);\n}\n\nfunction buildProgrammaticLogger(\n _: unknown,\n context: ConfigContext,\n baseLogger: ConfigPrinter | void,\n) {\n if (!baseLogger) {\n return () => {};\n }\n return baseLogger.configure(context.showConfig, ChainFormatter.Programmatic, {\n callerName: context.caller?.name,\n });\n}\n\nfunction buildEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n envName: string,\n) {\n const opts = options.env?.[envName];\n return opts ? descriptors(dirname, opts, `${alias}.env[\"${envName}\"]`) : null;\n}\n\nfunction buildOverrideDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n) {\n const opts = options.overrides?.[index];\n if (!opts) throw new Error(\"Assertion failure - missing override\");\n\n return descriptors(dirname, opts, `${alias}.overrides[${index}]`);\n}\n\nfunction buildOverrideEnvDescriptors(\n { dirname, options }: Partial,\n alias: string,\n descriptors: (\n dirname: string,\n options: ValidatedOptions,\n alias: string,\n ) => OptionsAndDescriptors,\n index: number,\n envName: string,\n) {\n const override = options.overrides?.[index];\n if (!override) throw new Error(\"Assertion failure - missing override\");\n\n const opts = override.env?.[envName];\n return opts\n ? descriptors(\n dirname,\n opts,\n `${alias}.overrides[${index}].env[\"${envName}\"]`,\n )\n : null;\n}\n\nfunction makeChainWalker<\n ArgT extends {\n options: ValidatedOptions;\n dirname: string;\n filepath?: string;\n },\n>({\n root,\n env,\n overrides,\n overridesEnv,\n createLogger,\n}: {\n root: (configEntry: ArgT) => OptionsAndDescriptors;\n env: (configEntry: ArgT, env: string) => OptionsAndDescriptors | null;\n overrides: (configEntry: ArgT, index: number) => OptionsAndDescriptors;\n overridesEnv: (\n configEntry: ArgT,\n index: number,\n env: string,\n ) => OptionsAndDescriptors | null;\n createLogger: (\n configEntry: ArgT,\n context: ConfigContext,\n printer: ConfigPrinter | void,\n ) => (\n opts: OptionsAndDescriptors,\n index?: number | null,\n env?: string | null,\n ) => void;\n}): (\n configEntry: ArgT,\n context: ConfigContext,\n files?: Set,\n baseLogger?: ConfigPrinter,\n) => Handler {\n return function* chainWalker(input, context, files = new Set(), baseLogger) {\n const { dirname } = input;\n\n const flattenedConfigs: Array<{\n config: OptionsAndDescriptors;\n index: number | undefined | null;\n envName: string | undefined | null;\n }> = [];\n\n const rootOpts = root(input);\n if (configIsApplicable(rootOpts, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: rootOpts,\n envName: undefined,\n index: undefined,\n });\n\n const envOpts = env(input, context.envName);\n if (\n envOpts &&\n configIsApplicable(envOpts, dirname, context, input.filepath)\n ) {\n flattenedConfigs.push({\n config: envOpts,\n envName: context.envName,\n index: undefined,\n });\n }\n\n (rootOpts.options.overrides || []).forEach((_, index) => {\n const overrideOps = overrides(input, index);\n if (configIsApplicable(overrideOps, dirname, context, input.filepath)) {\n flattenedConfigs.push({\n config: overrideOps,\n index,\n envName: undefined,\n });\n\n const overrideEnvOpts = overridesEnv(input, index, context.envName);\n if (\n overrideEnvOpts &&\n configIsApplicable(\n overrideEnvOpts,\n dirname,\n context,\n input.filepath,\n )\n ) {\n flattenedConfigs.push({\n config: overrideEnvOpts,\n index,\n envName: context.envName,\n });\n }\n }\n });\n }\n\n // Process 'ignore' and 'only' before 'extends' items are processed so\n // that we don't do extra work loading extended configs if a file is\n // ignored.\n if (\n flattenedConfigs.some(\n ({\n config: {\n options: { ignore, only },\n },\n }) => shouldIgnore(context, ignore, only, dirname),\n )\n ) {\n return null;\n }\n\n const chain = emptyChain();\n const logger = createLogger(input, context, baseLogger);\n\n for (const { config, index, envName } of flattenedConfigs) {\n if (\n !(yield* mergeExtendsChain(\n chain,\n config.options,\n dirname,\n context,\n files,\n baseLogger,\n ))\n ) {\n return null;\n }\n\n logger(config, index, envName);\n yield* mergeChainOpts(chain, config);\n }\n return chain;\n };\n}\n\nfunction* mergeExtendsChain(\n chain: ConfigChain,\n opts: ValidatedOptions,\n dirname: string,\n context: ConfigContext,\n files: Set,\n baseLogger?: ConfigPrinter,\n): Handler {\n if (opts.extends === undefined) return true;\n\n const file = yield* loadConfig(\n opts.extends,\n dirname,\n context.envName,\n context.caller,\n );\n\n if (files.has(file)) {\n throw new Error(\n `Configuration cycle detected loading ${file.filepath}.\\n` +\n `File already loaded following the config chain:\\n` +\n Array.from(files, file => ` - ${file.filepath}`).join(\"\\n\"),\n );\n }\n\n files.add(file);\n const fileChain = yield* loadFileChain(\n validateExtendFile(file),\n context,\n files,\n baseLogger,\n );\n files.delete(file);\n\n if (!fileChain) return false;\n\n mergeChain(chain, fileChain);\n\n return true;\n}\n\nfunction mergeChain(target: ConfigChain, source: ConfigChain): ConfigChain {\n target.options.push(...source.options);\n target.plugins.push(...source.plugins);\n target.presets.push(...source.presets);\n for (const file of source.files) {\n target.files.add(file);\n }\n\n return target;\n}\n\nfunction* mergeChainOpts(\n target: ConfigChain,\n { options, plugins, presets }: OptionsAndDescriptors,\n): Handler {\n target.options.push(options);\n target.plugins.push(...(yield* plugins()));\n target.presets.push(...(yield* presets()));\n\n return target;\n}\n\nfunction emptyChain(): ConfigChain {\n return {\n options: [],\n presets: [],\n plugins: [],\n files: new Set(),\n };\n}\n\nfunction normalizeOptions(opts: ValidatedOptions): ValidatedOptions {\n const options = {\n ...opts,\n };\n delete options.extends;\n delete options.env;\n delete options.overrides;\n delete options.plugins;\n delete options.presets;\n delete options.passPerPreset;\n delete options.ignore;\n delete options.only;\n delete options.test;\n delete options.include;\n delete options.exclude;\n\n // \"sourceMap\" is just aliased to sourceMap, so copy it over as\n // we merge the options together.\n if (Object.hasOwn(options, \"sourceMap\")) {\n options.sourceMaps = options.sourceMap;\n delete options.sourceMap;\n }\n return options;\n}\n\nfunction dedupDescriptors(\n items: Array>,\n): Array> {\n const map: Map<\n Function,\n Map }>\n > = new Map();\n\n const descriptors = [];\n\n for (const item of items) {\n if (typeof item.value === \"function\") {\n const fnKey = item.value;\n let nameMap = map.get(fnKey);\n if (!nameMap) {\n nameMap = new Map();\n map.set(fnKey, nameMap);\n }\n let desc = nameMap.get(item.name);\n if (!desc) {\n desc = { value: item };\n descriptors.push(desc);\n\n // Treat passPerPreset presets as unique, skipping them\n // in the merge processing steps.\n if (!item.ownPass) nameMap.set(item.name, desc);\n } else {\n desc.value = item;\n }\n } else {\n descriptors.push({ value: item });\n }\n }\n\n return descriptors.reduce((acc, desc) => {\n acc.push(desc.value);\n return acc;\n }, []);\n}\n\nfunction configIsApplicable(\n { options }: OptionsAndDescriptors,\n dirname: string,\n context: ConfigContext,\n configName: string,\n): boolean {\n return (\n (options.test === undefined ||\n configFieldIsApplicable(context, options.test, dirname, configName)) &&\n (options.include === undefined ||\n configFieldIsApplicable(context, options.include, dirname, configName)) &&\n (options.exclude === undefined ||\n !configFieldIsApplicable(context, options.exclude, dirname, configName))\n );\n}\n\nfunction configFieldIsApplicable(\n context: ConfigContext,\n test: ConfigApplicableTest,\n dirname: string,\n configName: string,\n): boolean {\n const patterns = Array.isArray(test) ? test : [test];\n\n return matchesPatterns(context, patterns, dirname, configName);\n}\n\n/**\n * Print the ignoreList-values in a more helpful way than the default.\n */\nfunction ignoreListReplacer(\n _key: string,\n value: IgnoreList | IgnoreItem,\n): IgnoreList | IgnoreItem | string {\n if (value instanceof RegExp) {\n return String(value);\n }\n\n return value;\n}\n\n/**\n * Tests if a filename should be ignored based on \"ignore\" and \"only\" options.\n */\nfunction shouldIgnore(\n context: ConfigContext,\n ignore: IgnoreList | undefined | null,\n only: IgnoreList | undefined | null,\n dirname: string,\n): boolean {\n if (ignore && matchesPatterns(context, ignore, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it matches one of \\`ignore: ${JSON.stringify(\n ignore,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n if (only && !matchesPatterns(context, only, dirname)) {\n const message = `No config is applied to \"${\n context.filename ?? \"(unknown)\"\n }\" because it fails to match one of \\`only: ${JSON.stringify(\n only,\n ignoreListReplacer,\n )}\\` from \"${dirname}\"`;\n debug(message);\n if (context.showConfig) {\n console.log(message);\n }\n return true;\n }\n\n return false;\n}\n\n/**\n * Returns result of calling function with filename if pattern is a function.\n * Otherwise returns result of matching pattern Regex with filename.\n */\nfunction matchesPatterns(\n context: ConfigContext,\n patterns: IgnoreList,\n dirname: string,\n configName?: string,\n): boolean {\n return patterns.some(pattern =>\n matchPattern(pattern, dirname, context.filename, context, configName),\n );\n}\n\nfunction matchPattern(\n pattern: IgnoreItem,\n dirname: string,\n pathToTest: string | undefined,\n context: ConfigContext,\n configName?: string,\n): boolean {\n if (typeof pattern === \"function\") {\n return !!endHiddenCallStack(pattern)(pathToTest, {\n dirname,\n envName: context.envName,\n caller: context.caller,\n });\n }\n\n if (typeof pathToTest !== \"string\") {\n throw new ConfigError(\n `Configuration contains string/RegExp pattern, but no filename was passed to Babel`,\n configName,\n );\n }\n\n if (typeof pattern === \"string\") {\n pattern = pathPatternToRegex(pattern, dirname);\n }\n return pattern.test(pathToTest);\n}\n","import {\n assertString,\n assertFunction,\n assertObject,\n msg,\n} from \"./option-assertions.ts\";\n\nimport type {\n ValidatorSet,\n Validator,\n OptionPath,\n RootPath,\n} from \"./option-assertions.ts\";\nimport type { ParserOptions } from \"@babel/parser\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type { ValidatedOptions } from \"./options.ts\";\nimport type { File, PluginAPI, PluginPass } from \"../../index.ts\";\n\n// Note: The casts here are just meant to be static assertions to make sure\n// that the assertion functions actually assert that the value's type matches\n// the declared types.\nconst VALIDATORS: ValidatorSet = {\n name: assertString as Validator,\n manipulateOptions: assertFunction as Validator<\n PluginObject[\"manipulateOptions\"]\n >,\n pre: assertFunction as Validator,\n post: assertFunction as Validator,\n inherits: assertFunction as Validator,\n visitor: assertVisitorMap as Validator,\n\n parserOverride: assertFunction as Validator,\n generatorOverride: assertFunction as Validator<\n PluginObject[\"generatorOverride\"]\n >,\n};\n\nfunction assertVisitorMap(loc: OptionPath, value: unknown): Visitor {\n const obj = assertObject(loc, value);\n if (obj) {\n Object.keys(obj).forEach(prop => {\n if (prop !== \"_exploded\" && prop !== \"_verified\") {\n assertVisitorHandler(prop, obj[prop]);\n }\n });\n\n if (obj.enter || obj.exit) {\n throw new Error(\n `${msg(\n loc,\n )} cannot contain catch-all \"enter\" or \"exit\" handlers. Please target individual nodes.`,\n );\n }\n }\n return obj as Visitor;\n}\n\nfunction assertVisitorHandler(\n key: string,\n value: unknown,\n): asserts value is VisitorHandler {\n if (value && typeof value === \"object\") {\n Object.keys(value).forEach((handler: string) => {\n if (handler !== \"enter\" && handler !== \"exit\") {\n throw new Error(\n `.visitor[\"${key}\"] may only have .enter and/or .exit handlers.`,\n );\n }\n });\n } else if (typeof value !== \"function\") {\n throw new Error(`.visitor[\"${key}\"] must be a function`);\n }\n}\n\ntype VisitorHandler =\n | Function\n | {\n enter?: Function;\n exit?: Function;\n };\n\nexport type PluginObject = {\n name?: string;\n manipulateOptions?: (\n options: ValidatedOptions,\n parserOpts: ParserOptions,\n ) => void;\n pre?: (this: S, file: File) => void;\n post?: (this: S, file: File) => void;\n inherits?: (\n api: PluginAPI,\n options: unknown,\n dirname: string,\n ) => PluginObject;\n visitor?: Visitor;\n parserOverride?: Function;\n generatorOverride?: Function;\n};\n\nexport function validatePluginObject(obj: {\n [key: string]: unknown;\n}): PluginObject {\n const rootPath: RootPath = {\n type: \"root\",\n source: \"plugin\",\n };\n Object.keys(obj).forEach((key: string) => {\n const validator = VALIDATORS[key];\n\n if (validator) {\n const optLoc: OptionPath = {\n type: \"option\",\n name: key,\n parent: rootPath,\n };\n validator(optLoc, obj[key]);\n } else {\n const invalidPluginPropertyError = new Error(\n `.${key} is not a valid Plugin property`,\n );\n // @ts-expect-error todo(flow->ts) consider adding BabelConfigError with code field\n invalidPluginPropertyError.code = \"BABEL_UNKNOWN_PLUGIN_PROPERTY\";\n throw invalidPluginPropertyError;\n }\n });\n\n return obj as any;\n}\n","import semver from \"semver\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\n\nimport { version as coreVersion } from \"../../index.ts\";\nimport { assertSimpleType } from \"../caching.ts\";\nimport type {\n CacheConfigurator,\n SimpleCacheConfigurator,\n SimpleType,\n} from \"../caching.ts\";\n\nimport type { AssumptionName, CallerMetadata } from \"../validation/options.ts\";\n\nimport type * as Context from \"../cache-contexts\";\n\ntype EnvFunction = {\n (): string;\n (extractor: (babelEnv: string) => T): T;\n (envVar: string): boolean;\n (envVars: Array): boolean;\n};\n\ntype CallerFactory = {\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => T,\n ): T;\n (\n extractor: (callerMetadata: CallerMetadata | undefined) => unknown,\n ): SimpleType;\n};\ntype TargetsFunction = () => Targets;\ntype AssumptionFunction = (name: AssumptionName) => boolean | undefined;\n\nexport type ConfigAPI = {\n version: string;\n cache: SimpleCacheConfigurator;\n env: EnvFunction;\n async: () => boolean;\n assertVersion: typeof assertVersion;\n caller?: CallerFactory;\n};\n\nexport type PresetAPI = {\n targets: TargetsFunction;\n addExternalDependency: (ref: string) => void;\n} & ConfigAPI;\n\nexport type PluginAPI = {\n assumption: AssumptionFunction;\n} & PresetAPI;\n\nexport function makeConfigAPI(\n cache: CacheConfigurator,\n): ConfigAPI {\n // TODO(@nicolo-ribaudo): If we remove the explicit type from `value`\n // and the `as any` type cast, TypeScript crashes in an infinite\n // recursion. After upgrading to TS4.7 and finishing the noImplicitAny\n // PR, we should check if it still crashes and report it to the TS team.\n const env: EnvFunction = ((\n value: string | string[] | ((babelEnv: string) => T),\n ) =>\n cache.using(data => {\n if (typeof value === \"undefined\") return data.envName;\n if (typeof value === \"function\") {\n return assertSimpleType(value(data.envName));\n }\n return (Array.isArray(value) ? value : [value]).some(entry => {\n if (typeof entry !== \"string\") {\n throw new Error(\"Unexpected non-string value\");\n }\n return entry === data.envName;\n });\n })) as any;\n\n const caller = (cb: {\n (CallerMetadata: CallerMetadata | undefined): SimpleType;\n }) => cache.using(data => assertSimpleType(cb(data.caller)));\n\n return {\n version: coreVersion,\n cache: cache.simple(),\n // Expose \".env()\" so people can easily get the same env that we expose using the \"env\" key.\n env,\n async: () => false,\n caller,\n assertVersion,\n };\n}\n\nexport function makePresetAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PresetAPI {\n const targets = () =>\n // We are using JSON.parse/JSON.stringify because it's only possible to cache\n // primitive values. We can safely stringify the targets object because it\n // only contains strings as its properties.\n // Please make the Record and Tuple proposal happen!\n JSON.parse(cache.using(data => JSON.stringify(data.targets)));\n\n const addExternalDependency = (ref: string) => {\n externalDependencies.push(ref);\n };\n\n return { ...makeConfigAPI(cache), targets, addExternalDependency };\n}\n\nexport function makePluginAPI(\n cache: CacheConfigurator,\n externalDependencies: Array,\n): PluginAPI {\n const assumption = (name: string) =>\n cache.using(data => data.assumptions[name]);\n\n return { ...makePresetAPI(cache, externalDependencies), assumption };\n}\n\nfunction assertVersion(range: string | number): void {\n if (typeof range === \"number\") {\n if (!Number.isInteger(range)) {\n throw new Error(\"Expected string or integer value.\");\n }\n range = `^${range}.0.0-0`;\n }\n if (typeof range !== \"string\") {\n throw new Error(\"Expected string or integer value.\");\n }\n\n // We want \"*\" to also allow any pre-release, but we do not pass\n // the includePrerelease option to semver.satisfies because we\n // do not want ^7.0.0 to match 8.0.0-alpha.1.\n if (range === \"*\" || semver.satisfies(coreVersion, range)) return;\n\n const limit = Error.stackTraceLimit;\n\n if (typeof limit === \"number\" && limit < 25) {\n // Bump up the limit if needed so that users are more likely\n // to be able to see what is calling Babel.\n Error.stackTraceLimit = 25;\n }\n\n const err = new Error(\n `Requires Babel \"${range}\", but was loaded with \"${coreVersion}\". ` +\n `If you are sure you have a compatible version of @babel/core, ` +\n `it is likely that something in your build process is loading the ` +\n `wrong version. Inspect the stack trace of this error to look for ` +\n `the first entry that doesn't mention \"@babel/core\" or \"babel-core\" ` +\n `to see what is calling Babel.`,\n );\n\n if (typeof limit === \"number\") {\n Error.stackTraceLimit = limit;\n }\n\n throw Object.assign(err, {\n code: \"BABEL_VERSION_UNSUPPORTED\",\n version: coreVersion,\n range,\n });\n}\n","import path from \"path\";\nimport type { Handler } from \"gensync\";\nimport Plugin from \"./plugin.ts\";\nimport { mergeOptions } from \"./util.ts\";\nimport { createItemFromDescriptor } from \"./item.ts\";\nimport { buildRootChain } from \"./config-chain.ts\";\nimport type { ConfigContext, FileHandling } from \"./config-chain.ts\";\nimport { getEnv } from \"./helpers/environment.ts\";\nimport { validate } from \"./validation/options.ts\";\n\nimport type {\n ValidatedOptions,\n NormalizedOptions,\n RootMode,\n} from \"./validation/options.ts\";\n\nimport {\n findConfigUpwards,\n resolveShowConfigPath,\n ROOT_CONFIG_FILENAMES,\n} from \"./files/index.ts\";\nimport type { ConfigFile, IgnoreFile } from \"./files/index.ts\";\nimport { resolveTargets } from \"./resolve-targets.ts\";\n\nfunction resolveRootMode(rootDir: string, rootMode: RootMode): string {\n switch (rootMode) {\n case \"root\":\n return rootDir;\n\n case \"upward-optional\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n return upwardRootDir === null ? rootDir : upwardRootDir;\n }\n\n case \"upward\": {\n const upwardRootDir = findConfigUpwards(rootDir);\n if (upwardRootDir !== null) return upwardRootDir;\n\n throw Object.assign(\n new Error(\n `Babel was run with rootMode:\"upward\" but a root could not ` +\n `be found when searching upward from \"${rootDir}\".\\n` +\n `One of the following config files must be in the directory tree: ` +\n `\"${ROOT_CONFIG_FILENAMES.join(\", \")}\".`,\n ) as any,\n {\n code: \"BABEL_ROOT_NOT_FOUND\",\n dirname: rootDir,\n },\n );\n }\n default:\n throw new Error(`Assertion failure - unknown rootMode value.`);\n }\n}\n\ntype PrivPartialConfig = {\n options: NormalizedOptions;\n context: ConfigContext;\n fileHandling: FileHandling;\n ignore: IgnoreFile | void;\n babelrc: ConfigFile | void;\n config: ConfigFile | void;\n files: Set;\n};\n\nexport default function* loadPrivatePartialConfig(\n inputOpts: unknown,\n): Handler {\n if (\n inputOpts != null &&\n (typeof inputOpts !== \"object\" || Array.isArray(inputOpts))\n ) {\n throw new Error(\"Babel options must be an object, null, or undefined\");\n }\n\n const args = inputOpts ? validate(\"arguments\", inputOpts) : {};\n\n const {\n envName = getEnv(),\n cwd = \".\",\n root: rootDir = \".\",\n rootMode = \"root\",\n caller,\n cloneInputAst = true,\n } = args;\n const absoluteCwd = path.resolve(cwd);\n const absoluteRootDir = resolveRootMode(\n path.resolve(absoluteCwd, rootDir),\n rootMode,\n );\n\n const filename =\n typeof args.filename === \"string\"\n ? path.resolve(cwd, args.filename)\n : undefined;\n\n const showConfigPath = yield* resolveShowConfigPath(absoluteCwd);\n\n const context: ConfigContext = {\n filename,\n cwd: absoluteCwd,\n root: absoluteRootDir,\n envName,\n caller,\n showConfig: showConfigPath === filename,\n };\n\n const configChain = yield* buildRootChain(args, context);\n if (!configChain) return null;\n\n const merged: ValidatedOptions = {\n assumptions: {},\n };\n configChain.options.forEach(opts => {\n mergeOptions(merged as any, opts);\n });\n\n const options: NormalizedOptions = {\n ...merged,\n targets: resolveTargets(merged, absoluteRootDir),\n\n // Tack the passes onto the object itself so that, if this object is\n // passed back to Babel a second time, it will be in the right structure\n // to not change behavior.\n cloneInputAst,\n babelrc: false,\n configFile: false,\n browserslistConfigFile: false,\n passPerPreset: false,\n envName: context.envName,\n cwd: context.cwd,\n root: context.root,\n rootMode: \"root\",\n filename:\n typeof context.filename === \"string\" ? context.filename : undefined,\n\n plugins: configChain.plugins.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n presets: configChain.presets.map(descriptor =>\n createItemFromDescriptor(descriptor),\n ),\n };\n\n return {\n options,\n context,\n fileHandling: configChain.fileHandling,\n ignore: configChain.ignore,\n babelrc: configChain.babelrc,\n config: configChain.config,\n files: configChain.files,\n };\n}\n\ntype LoadPartialConfigOpts = {\n showIgnoredFiles?: boolean;\n};\n\nexport function* loadPartialConfig(\n opts?: LoadPartialConfigOpts,\n): Handler {\n let showIgnoredFiles = false;\n // We only extract showIgnoredFiles if opts is an object, so that\n // loadPrivatePartialConfig can throw the appropriate error if it's not.\n if (typeof opts === \"object\" && opts !== null && !Array.isArray(opts)) {\n ({ showIgnoredFiles, ...opts } = opts);\n }\n\n const result: PrivPartialConfig | undefined | null =\n yield* loadPrivatePartialConfig(opts);\n if (!result) return null;\n\n const { options, babelrc, ignore, config, fileHandling, files } = result;\n\n if (fileHandling === \"ignored\" && !showIgnoredFiles) {\n return null;\n }\n\n (options.plugins || []).forEach(item => {\n // @ts-expect-error todo(flow->ts): better type annotation for `item.value`\n if (item.value instanceof Plugin) {\n throw new Error(\n \"Passing cached plugin instances is not supported in \" +\n \"babel.loadPartialConfig()\",\n );\n }\n });\n\n return new PartialConfig(\n options,\n babelrc ? babelrc.filepath : undefined,\n ignore ? ignore.filepath : undefined,\n config ? config.filepath : undefined,\n fileHandling,\n files,\n );\n}\n\nexport type { PartialConfig };\n\nclass PartialConfig {\n /**\n * These properties are public, so any changes to them should be considered\n * a breaking change to Babel's API.\n */\n options: NormalizedOptions;\n babelrc: string | void;\n babelignore: string | void;\n config: string | void;\n fileHandling: FileHandling;\n files: Set;\n\n constructor(\n options: NormalizedOptions,\n babelrc: string | void,\n ignore: string | void,\n config: string | void,\n fileHandling: FileHandling,\n files: Set,\n ) {\n this.options = options;\n this.babelignore = ignore;\n this.babelrc = babelrc;\n this.config = config;\n this.fileHandling = fileHandling;\n this.files = files;\n\n // Freeze since this is a public API and it should be extremely obvious that\n // reassigning properties on here does nothing.\n Object.freeze(this);\n }\n\n /**\n * Returns true if there is a config file in the filesystem for this config.\n */\n hasFilesystemConfig(): boolean {\n return this.babelrc !== undefined || this.config !== undefined;\n }\n}\nObject.freeze(PartialConfig.prototype);\n","import gensync, { type Handler } from \"gensync\";\nimport {\n forwardAsync,\n maybeAsync,\n isThenable,\n} from \"../gensync-utils/async.ts\";\n\nimport { mergeOptions } from \"./util.ts\";\nimport * as context from \"../index.ts\";\nimport Plugin from \"./plugin.ts\";\nimport { getItemDescriptor } from \"./item.ts\";\nimport { buildPresetChain } from \"./config-chain.ts\";\nimport { finalize as freezeDeepArray } from \"./helpers/deep-array.ts\";\nimport type { DeepArray, ReadonlyDeepArray } from \"./helpers/deep-array.ts\";\nimport type {\n ConfigContext,\n ConfigChain,\n PresetInstance,\n} from \"./config-chain.ts\";\nimport type { UnloadedDescriptor } from \"./config-descriptors.ts\";\nimport traverse from \"@babel/traverse\";\nimport { makeWeakCache, makeWeakCacheSync } from \"./caching.ts\";\nimport type { CacheConfigurator } from \"./caching.ts\";\nimport {\n validate,\n checkNoUnwrappedItemOptionPairs,\n} from \"./validation/options.ts\";\nimport type { PluginItem } from \"./validation/options.ts\";\nimport { validatePluginObject } from \"./validation/plugins.ts\";\nimport { makePluginAPI, makePresetAPI } from \"./helpers/config-api.ts\";\nimport type { PluginAPI, PresetAPI } from \"./helpers/config-api.ts\";\n\nimport loadPrivatePartialConfig from \"./partial.ts\";\nimport type { ValidatedOptions } from \"./validation/options.ts\";\n\nimport type * as Context from \"./cache-contexts.ts\";\nimport ConfigError from \"../errors/config-error.ts\";\n\ntype LoadedDescriptor = {\n value: {};\n options: {};\n dirname: string;\n alias: string;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { InputOptions } from \"./validation/options.ts\";\n\nexport type ResolvedConfig = {\n options: any;\n passes: PluginPasses;\n externalDependencies: ReadonlyDeepArray;\n};\n\nexport type { Plugin };\nexport type PluginPassList = Array;\nexport type PluginPasses = Array;\n\nexport default gensync(function* loadFullConfig(\n inputOpts: unknown,\n): Handler {\n const result = yield* loadPrivatePartialConfig(inputOpts);\n if (!result) {\n return null;\n }\n const { options, context, fileHandling } = result;\n\n if (fileHandling === \"ignored\") {\n return null;\n }\n\n const optionDefaults = {};\n\n const { plugins, presets } = options;\n\n if (!plugins || !presets) {\n throw new Error(\"Assertion failure - plugins and presets exist\");\n }\n\n const presetContext: Context.FullPreset = {\n ...context,\n targets: options.targets,\n };\n\n const toDescriptor = (item: PluginItem) => {\n const desc = getItemDescriptor(item);\n if (!desc) {\n throw new Error(\"Assertion failure - must be config item\");\n }\n\n return desc;\n };\n\n const presetsDescriptors = presets.map(toDescriptor);\n const initialPluginsDescriptors = plugins.map(toDescriptor);\n const pluginDescriptorsByPass: Array>> = [\n [],\n ];\n const passes: Array> = [];\n\n const externalDependencies: DeepArray = [];\n\n const ignored = yield* enhanceError(\n context,\n function* recursePresetDescriptors(\n rawPresets: Array>,\n pluginDescriptorsPass: Array>,\n ): Handler {\n const presets: Array<{\n preset: ConfigChain | null;\n pass: Array>;\n }> = [];\n\n for (let i = 0; i < rawPresets.length; i++) {\n const descriptor = rawPresets[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var preset = yield* loadPresetDescriptor(descriptor, presetContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_OPTION\") {\n checkNoUnwrappedItemOptionPairs(rawPresets, i, \"preset\", e);\n }\n throw e;\n }\n\n externalDependencies.push(preset.externalDependencies);\n\n // Presets normally run in reverse order, but if they\n // have their own pass they run after the presets\n // in the previous pass.\n if (descriptor.ownPass) {\n presets.push({ preset: preset.chain, pass: [] });\n } else {\n presets.unshift({\n preset: preset.chain,\n pass: pluginDescriptorsPass,\n });\n }\n }\n }\n\n // resolve presets\n if (presets.length > 0) {\n // The passes are created in the same order as the preset list, but are inserted before any\n // existing additional passes.\n pluginDescriptorsByPass.splice(\n 1,\n 0,\n ...presets.map(o => o.pass).filter(p => p !== pluginDescriptorsPass),\n );\n\n for (const { preset, pass } of presets) {\n if (!preset) return true;\n\n pass.push(...preset.plugins);\n\n const ignored = yield* recursePresetDescriptors(preset.presets, pass);\n if (ignored) return true;\n\n preset.options.forEach(opts => {\n mergeOptions(optionDefaults, opts);\n });\n }\n }\n },\n )(presetsDescriptors, pluginDescriptorsByPass[0]);\n\n if (ignored) return null;\n\n const opts: any = optionDefaults;\n mergeOptions(opts, options);\n\n const pluginContext: Context.FullPlugin = {\n ...presetContext,\n assumptions: opts.assumptions ?? {},\n };\n\n yield* enhanceError(context, function* loadPluginDescriptors() {\n pluginDescriptorsByPass[0].unshift(...initialPluginsDescriptors);\n\n for (const descs of pluginDescriptorsByPass) {\n const pass: Plugin[] = [];\n passes.push(pass);\n\n for (let i = 0; i < descs.length; i++) {\n const descriptor = descs[i];\n if (descriptor.options !== false) {\n try {\n // eslint-disable-next-line no-var\n var plugin = yield* loadPluginDescriptor(descriptor, pluginContext);\n } catch (e) {\n if (e.code === \"BABEL_UNKNOWN_PLUGIN_PROPERTY\") {\n // print special message for `plugins: [\"@babel/foo\", { foo: \"option\" }]`\n checkNoUnwrappedItemOptionPairs(descs, i, \"plugin\", e);\n }\n throw e;\n }\n pass.push(plugin);\n\n externalDependencies.push(plugin.externalDependencies);\n }\n }\n }\n })();\n\n opts.plugins = passes[0];\n opts.presets = passes\n .slice(1)\n .filter(plugins => plugins.length > 0)\n .map(plugins => ({ plugins }));\n opts.passPerPreset = opts.presets.length > 0;\n\n return {\n options: opts,\n passes: passes,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n});\n\nfunction enhanceError(context: ConfigContext, fn: T): T {\n return function* (arg1: unknown, arg2: unknown) {\n try {\n return yield* fn(arg1, arg2);\n } catch (e) {\n // There are a few case where thrown errors will try to annotate themselves multiple times, so\n // to keep things simple we just bail out if re-wrapping the message.\n if (!/^\\[BABEL\\]/.test(e.message)) {\n e.message = `[BABEL] ${context.filename ?? \"unknown file\"}: ${\n e.message\n }`;\n }\n\n throw e;\n }\n } as any;\n}\n\n/**\n * Load a generic plugin/preset from the given descriptor loaded from the config object.\n */\nconst makeDescriptorLoader = (\n apiFactory: (\n cache: CacheConfigurator,\n externalDependencies: Array,\n ) => API,\n) =>\n makeWeakCache(function* (\n { value, options, dirname, alias }: UnloadedDescriptor,\n cache: CacheConfigurator,\n ): Handler {\n // Disabled presets should already have been filtered out\n if (options === false) throw new Error(\"Assertion failure\");\n\n options = options || {};\n\n const externalDependencies: Array = [];\n\n let item: unknown = value;\n if (typeof value === \"function\") {\n const factory = maybeAsync(\n value as (api: API, options: {}, dirname: string) => unknown,\n `You appear to be using an async plugin/preset, but Babel has been called synchronously`,\n );\n\n const api = {\n ...context,\n ...apiFactory(cache, externalDependencies),\n };\n try {\n item = yield* factory(api, options, dirname);\n } catch (e) {\n if (alias) {\n e.message += ` (While processing: ${JSON.stringify(alias)})`;\n }\n throw e;\n }\n }\n\n if (!item || typeof item !== \"object\") {\n throw new Error(\"Plugin/Preset did not return an object.\");\n }\n\n if (isThenable(item)) {\n // @ts-expect-error - if we want to support async plugins\n yield* [];\n\n throw new Error(\n `You appear to be using a promise as a plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version. ` +\n `As an alternative, you can prefix the promise with \"await\". ` +\n `(While processing: ${JSON.stringify(alias)})`,\n );\n }\n\n if (\n externalDependencies.length > 0 &&\n (!cache.configured() || cache.mode() === \"forever\")\n ) {\n let error =\n `A plugin/preset has external untracked dependencies ` +\n `(${externalDependencies[0]}), but the cache `;\n if (!cache.configured()) {\n error += `has not been configured to be invalidated when the external dependencies change. `;\n } else {\n error += ` has been configured to never be invalidated. `;\n }\n error +=\n `Plugins/presets should configure their cache to be invalidated when the external ` +\n `dependencies change, for example using \\`api.cache.invalidate(() => ` +\n `statSync(filepath).mtimeMs)\\` or \\`api.cache.never()\\`\\n` +\n `(While processing: ${JSON.stringify(alias)})`;\n\n throw new Error(error);\n }\n\n return {\n value: item,\n options,\n dirname,\n alias,\n externalDependencies: freezeDeepArray(externalDependencies),\n };\n });\n\nconst pluginDescriptorLoader = makeDescriptorLoader<\n Context.SimplePlugin,\n PluginAPI\n>(makePluginAPI);\nconst presetDescriptorLoader = makeDescriptorLoader<\n Context.SimplePreset,\n PresetAPI\n>(makePresetAPI);\n\nconst instantiatePlugin = makeWeakCache(function* (\n { value, options, dirname, alias, externalDependencies }: LoadedDescriptor,\n cache: CacheConfigurator,\n): Handler {\n const pluginObj = validatePluginObject(value);\n\n const plugin = {\n ...pluginObj,\n };\n if (plugin.visitor) {\n plugin.visitor = traverse.explode({\n ...plugin.visitor,\n });\n }\n\n if (plugin.inherits) {\n const inheritsDescriptor: UnloadedDescriptor = {\n name: undefined,\n alias: `${alias}$inherits`,\n value: plugin.inherits,\n options,\n dirname,\n };\n\n const inherits = yield* forwardAsync(loadPluginDescriptor, run => {\n // If the inherited plugin changes, reinstantiate this plugin.\n return cache.invalidate(data => run(inheritsDescriptor, data));\n });\n\n plugin.pre = chain(inherits.pre, plugin.pre);\n plugin.post = chain(inherits.post, plugin.post);\n plugin.manipulateOptions = chain(\n inherits.manipulateOptions,\n plugin.manipulateOptions,\n );\n plugin.visitor = traverse.visitors.merge([\n inherits.visitor || {},\n plugin.visitor || {},\n ]);\n\n if (inherits.externalDependencies.length > 0) {\n if (externalDependencies.length === 0) {\n externalDependencies = inherits.externalDependencies;\n } else {\n externalDependencies = freezeDeepArray([\n externalDependencies,\n inherits.externalDependencies,\n ]);\n }\n }\n }\n\n return new Plugin(plugin, options, alias, externalDependencies);\n});\n\n/**\n * Instantiate a plugin for the given descriptor, returning the plugin/options pair.\n */\nfunction* loadPluginDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.SimplePlugin,\n): Handler {\n if (descriptor.value instanceof Plugin) {\n if (descriptor.options) {\n throw new Error(\n \"Passed options to an existing Plugin instance will not work.\",\n );\n }\n\n return descriptor.value;\n }\n\n return yield* instantiatePlugin(\n yield* pluginDescriptorLoader(descriptor, context),\n context,\n );\n}\n\nconst needsFilename = (val: unknown) => val && typeof val !== \"function\";\n\nconst validateIfOptionNeedsFilename = (\n options: ValidatedOptions,\n descriptor: UnloadedDescriptor,\n): void => {\n if (\n needsFilename(options.test) ||\n needsFilename(options.include) ||\n needsFilename(options.exclude)\n ) {\n const formattedPresetName = descriptor.name\n ? `\"${descriptor.name}\"`\n : \"/* your preset */\";\n throw new ConfigError(\n [\n `Preset ${formattedPresetName} requires a filename to be set when babel is called directly,`,\n `\\`\\`\\``,\n `babel.transformSync(code, { filename: 'file.ts', presets: [${formattedPresetName}] });`,\n `\\`\\`\\``,\n `See https://babeljs.io/docs/en/options#filename for more information.`,\n ].join(\"\\n\"),\n );\n }\n};\n\nconst validatePreset = (\n preset: PresetInstance,\n context: ConfigContext,\n descriptor: UnloadedDescriptor,\n): void => {\n if (!context.filename) {\n const { options } = preset;\n validateIfOptionNeedsFilename(options, descriptor);\n options.overrides?.forEach(overrideOptions =>\n validateIfOptionNeedsFilename(overrideOptions, descriptor),\n );\n }\n};\n\nconst instantiatePreset = makeWeakCacheSync(\n ({\n value,\n dirname,\n alias,\n externalDependencies,\n }: LoadedDescriptor): PresetInstance => {\n return {\n options: validate(\"preset\", value),\n alias,\n dirname,\n externalDependencies,\n };\n },\n);\n\n/**\n * Generate a config object that will act as the root of a new nested config.\n */\nfunction* loadPresetDescriptor(\n descriptor: UnloadedDescriptor,\n context: Context.FullPreset,\n): Handler<{\n chain: ConfigChain | null;\n externalDependencies: ReadonlyDeepArray;\n}> {\n const preset = instantiatePreset(\n yield* presetDescriptorLoader(descriptor, context),\n );\n validatePreset(preset, context, descriptor);\n return {\n chain: yield* buildPresetChain(preset, context),\n externalDependencies: preset.externalDependencies,\n };\n}\n\nfunction chain(\n a: undefined | ((...args: Args) => void),\n b: undefined | ((...args: Args) => void),\n) {\n const fns = [a, b].filter(Boolean);\n if (fns.length <= 1) return fns[0];\n\n return function (this: unknown, ...args: unknown[]) {\n for (const fn of fns) {\n fn.apply(this, args);\n }\n };\n}\n","import gensync, { type Handler } from \"gensync\";\n\nexport type {\n ResolvedConfig,\n InputOptions,\n PluginPasses,\n Plugin,\n} from \"./full.ts\";\n\nimport type { PluginTarget } from \"./validation/options.ts\";\n\nimport type {\n PluginAPI as basePluginAPI,\n PresetAPI as basePresetAPI,\n} from \"./helpers/config-api.ts\";\nexport type { PluginObject } from \"./validation/plugins.ts\";\ntype PluginAPI = basePluginAPI & typeof import(\"..\");\ntype PresetAPI = basePresetAPI & typeof import(\"..\");\nexport type { PluginAPI, PresetAPI };\n// todo: may need to refine PresetObject to be a subset of ValidatedOptions\nexport type {\n CallerMetadata,\n ValidatedOptions as PresetObject,\n} from \"./validation/options.ts\";\n\nimport loadFullConfig, { type ResolvedConfig } from \"./full.ts\";\nimport {\n type PartialConfig,\n loadPartialConfig as loadPartialConfigImpl,\n} from \"./partial.ts\";\n\nexport { loadFullConfig as default };\nexport type { PartialConfig } from \"./partial.ts\";\n\nimport { createConfigItem as createConfigItemImpl } from \"./item.ts\";\nimport type { ConfigItem } from \"./item.ts\";\nexport type { ConfigItem };\n\nimport { beginHiddenCallStack } from \"../errors/rewrite-stack-trace.ts\";\n\nconst loadPartialConfigRunner = gensync(loadPartialConfigImpl);\nexport function loadPartialConfigAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.async)(...args);\n}\nexport function loadPartialConfigSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadPartialConfigRunner.sync)(...args);\n}\nexport function loadPartialConfig(\n opts: Parameters[0],\n callback?: (err: Error, val: PartialConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadPartialConfigRunner.errback)(\n undefined,\n opts as (err: Error, val: PartialConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadPartialConfig' function expects a callback. If you need to call it synchronously, please use 'loadPartialConfigSync'.\",\n );\n } else {\n return loadPartialConfigSync(opts);\n }\n }\n}\n\nfunction* loadOptionsImpl(opts: unknown): Handler {\n const config = yield* loadFullConfig(opts);\n // NOTE: We want to return \"null\" explicitly, while ?. alone returns undefined\n return config?.options ?? null;\n}\nconst loadOptionsRunner = gensync(loadOptionsImpl);\nexport function loadOptionsAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.async)(...args);\n}\nexport function loadOptionsSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(loadOptionsRunner.sync)(...args);\n}\nexport function loadOptions(\n opts: Parameters[0],\n callback?: (err: Error, val: ResolvedConfig | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(loadOptionsRunner.errback)(opts, callback);\n } else if (typeof opts === \"function\") {\n beginHiddenCallStack(loadOptionsRunner.errback)(\n undefined,\n opts as (err: Error, val: ResolvedConfig | null) => void,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'loadOptions' function expects a callback. If you need to call it synchronously, please use 'loadOptionsSync'.\",\n );\n } else {\n return loadOptionsSync(opts);\n }\n }\n}\n\nconst createConfigItemRunner = gensync(createConfigItemImpl);\nexport function createConfigItemAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.async)(...args);\n}\nexport function createConfigItemSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(createConfigItemRunner.sync)(...args);\n}\nexport function createConfigItem(\n target: PluginTarget,\n options: Parameters[1],\n callback?: (err: Error, val: ConfigItem | null) => void,\n) {\n if (callback !== undefined) {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n options,\n callback,\n );\n } else if (typeof options === \"function\") {\n beginHiddenCallStack(createConfigItemRunner.errback)(\n target,\n undefined,\n callback,\n );\n } else {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'createConfigItem' function expects a callback. If you need to call it synchronously, please use 'createConfigItemSync'.\",\n );\n } else {\n return createConfigItemSync(target, options);\n }\n }\n}\n","import traverse from \"@babel/traverse\";\nimport type { Statement } from \"@babel/types\";\nimport type { PluginObject } from \"../config/index.ts\";\nimport Plugin from \"../config/plugin.ts\";\n\nlet LOADED_PLUGIN: Plugin | void;\n\nconst blockHoistPlugin: PluginObject = {\n /**\n * [Please add a description.]\n *\n * Priority:\n *\n * - 0 We want this to be at the **very** bottom\n * - 1 Default node position\n * - 2 Priority over normal nodes\n * - 3 We want this to be at the **very** top\n * - 4 Reserved for the helpers used to implement module imports.\n */\n\n name: \"internal.blockHoist\",\n\n visitor: {\n Block: {\n exit({ node }) {\n node.body = performHoisting(node.body);\n },\n },\n SwitchCase: {\n exit({ node }) {\n // In case statements, hoisting is difficult to perform correctly due to\n // functions that are declared and referenced in different blocks.\n // Nevertheless, hoisting the statements *inside* of each case should at\n // least mitigate the failure cases.\n node.consequent = performHoisting(node.consequent);\n },\n },\n },\n};\n\nfunction performHoisting(body: Statement[]): Statement[] {\n // Largest SMI\n let max = 2 ** 30 - 1;\n let hasChange = false;\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n if (p > max) {\n hasChange = true;\n break;\n }\n max = p;\n }\n if (!hasChange) return body;\n\n // My kingdom for a stable sort!\n return stableSort(body.slice());\n}\n\nexport default function loadBlockHoistPlugin(): Plugin {\n if (!LOADED_PLUGIN) {\n // cache the loaded blockHoist plugin plugin\n LOADED_PLUGIN = new Plugin(\n {\n ...blockHoistPlugin,\n visitor: traverse.explode(blockHoistPlugin.visitor),\n },\n {},\n );\n }\n\n return LOADED_PLUGIN;\n}\n\nfunction priority(bodyNode: Statement & { _blockHoist?: number | true }) {\n const priority = bodyNode?._blockHoist;\n if (priority == null) return 1;\n if (priority === true) return 2;\n return priority;\n}\n\nfunction stableSort(body: Statement[]) {\n // By default, we use priorities of 0-4.\n const buckets = Object.create(null);\n\n // By collecting into buckets, we can guarantee a stable sort.\n for (let i = 0; i < body.length; i++) {\n const n = body[i];\n const p = priority(n);\n\n // In case some plugin is setting an unexpected priority.\n const bucket = buckets[p] || (buckets[p] = []);\n bucket.push(n);\n }\n\n // Sort our keys in descending order. Keys are unique, so we don't have to\n // worry about stability.\n const keys = Object.keys(buckets)\n .map(k => +k)\n .sort((a, b) => b - a);\n\n let index = 0;\n for (const key of keys) {\n const bucket = buckets[key];\n for (const n of bucket) {\n body[index++] = n;\n }\n }\n return body;\n}\n","import type * as t from \"@babel/types\";\nimport type File from \"./file/file.ts\";\n\nexport default class PluginPass {\n _map: Map = new Map();\n key: string | undefined | null;\n file: File;\n opts: Partial;\n\n // The working directory that Babel's programmatic options are loaded\n // relative to.\n cwd: string;\n\n // The absolute path of the file being compiled.\n filename: string | void;\n\n constructor(file: File, key?: string | null, options?: Options) {\n this.key = key;\n this.file = file;\n this.opts = options || {};\n this.cwd = file.opts.cwd;\n this.filename = file.opts.filename;\n }\n\n set(key: unknown, val: unknown) {\n this._map.set(key, val);\n }\n\n get(key: unknown): any {\n return this._map.get(key);\n }\n\n availableHelper(name: string, versionRange?: string | null) {\n return this.file.availableHelper(name, versionRange);\n }\n\n addHelper(name: string) {\n return this.file.addHelper(name);\n }\n\n buildCodeFrameError(\n node: t.Node | undefined | null,\n msg: string,\n _Error?: typeof Error,\n ) {\n return this.file.buildCodeFrameError(node, msg, _Error);\n }\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n (PluginPass as any).prototype.getModuleName = function getModuleName(\n this: PluginPass,\n ): string | undefined {\n return this.file.getModuleName();\n };\n (PluginPass as any).prototype.addImport = function addImport(\n this: PluginPass,\n ): void {\n // @ts-expect-error only exists in Babel 7\n this.file.addImport();\n };\n}\n","import path from \"path\";\nimport type { ResolvedConfig } from \"../config/index.ts\";\n\nexport default function normalizeOptions(config: ResolvedConfig): {} {\n const {\n filename,\n cwd,\n filenameRelative = typeof filename === \"string\"\n ? path.relative(cwd, filename)\n : \"unknown\",\n sourceType = \"module\",\n inputSourceMap,\n sourceMaps = !!inputSourceMap,\n sourceRoot = process.env.BABEL_8_BREAKING\n ? undefined\n : config.options.moduleRoot,\n\n sourceFileName = path.basename(filenameRelative),\n\n comments = true,\n compact = \"auto\",\n } = config.options;\n\n const opts = config.options;\n\n const options = {\n ...opts,\n\n parserOpts: {\n sourceType:\n path.extname(filenameRelative) === \".mjs\" ? \"module\" : sourceType,\n\n sourceFileName: filename,\n plugins: [],\n ...opts.parserOpts,\n },\n\n generatorOpts: {\n // General generator flags.\n filename,\n\n auxiliaryCommentBefore: opts.auxiliaryCommentBefore,\n auxiliaryCommentAfter: opts.auxiliaryCommentAfter,\n retainLines: opts.retainLines,\n comments,\n shouldPrintComment: opts.shouldPrintComment,\n compact,\n minified: opts.minified,\n\n // Source-map generation flags.\n sourceMaps,\n\n sourceRoot,\n sourceFileName,\n ...opts.generatorOpts,\n },\n };\n\n for (const plugins of config.passes) {\n for (const plugin of plugins) {\n if (plugin.manipulateOptions) {\n plugin.manipulateOptions(options, options.parserOpts);\n }\n }\n }\n\n return options;\n}\n","'use strict';\n\nObject.defineProperty(exports, 'commentRegex', {\n get: function getCommentRegex () {\n // Groups: 1: media type, 2: MIME type, 3: charset, 4: encoding, 5: data.\n return /^\\s*?\\/[\\/\\*][@#]\\s+?sourceMappingURL=data:(((?:application|text)\\/json)(?:;charset=([^;,]+?)?)?)?(?:;(base64))?,(.*?)$/mg;\n }\n});\n\n\nObject.defineProperty(exports, 'mapFileCommentRegex', {\n get: function getMapFileCommentRegex () {\n // Matches sourceMappingURL in either // or /* comment styles.\n return /(?:\\/\\/[@#][ \\t]+?sourceMappingURL=([^\\s'\"`]+?)[ \\t]*?$)|(?:\\/\\*[@#][ \\t]+sourceMappingURL=([^*]+?)[ \\t]*?(?:\\*\\/){1}[ \\t]*?$)/mg;\n }\n});\n\nvar decodeBase64;\nif (typeof Buffer !== 'undefined') {\n if (typeof Buffer.from === 'function') {\n decodeBase64 = decodeBase64WithBufferFrom;\n } else {\n decodeBase64 = decodeBase64WithNewBuffer;\n }\n} else {\n decodeBase64 = decodeBase64WithAtob;\n}\n\nfunction decodeBase64WithBufferFrom(base64) {\n return Buffer.from(base64, 'base64').toString();\n}\n\nfunction decodeBase64WithNewBuffer(base64) {\n if (typeof value === 'number') {\n throw new TypeError('The value to decode must not be of type number.');\n }\n return new Buffer(base64, 'base64').toString();\n}\n\nfunction decodeBase64WithAtob(base64) {\n return decodeURIComponent(escape(atob(base64)));\n}\n\nfunction stripComment(sm) {\n return sm.split(',').pop();\n}\n\nfunction readFromFileMap(sm, read) {\n var r = exports.mapFileCommentRegex.exec(sm);\n // for some odd reason //# .. captures in 1 and /* .. */ in 2\n var filename = r[1] || r[2];\n\n try {\n var sm = read(filename);\n if (sm != null && typeof sm.catch === 'function') {\n return sm.catch(throwError);\n } else {\n return sm;\n }\n } catch (e) {\n throwError(e);\n }\n\n function throwError(e) {\n throw new Error('An error occurred while trying to read the map file at ' + filename + '\\n' + e.stack);\n }\n}\n\nfunction Converter (sm, opts) {\n opts = opts || {};\n\n if (opts.hasComment) {\n sm = stripComment(sm);\n }\n\n if (opts.encoding === 'base64') {\n sm = decodeBase64(sm);\n } else if (opts.encoding === 'uri') {\n sm = decodeURIComponent(sm);\n }\n\n if (opts.isJSON || opts.encoding) {\n sm = JSON.parse(sm);\n }\n\n this.sourcemap = sm;\n}\n\nConverter.prototype.toJSON = function (space) {\n return JSON.stringify(this.sourcemap, null, space);\n};\n\nif (typeof Buffer !== 'undefined') {\n if (typeof Buffer.from === 'function') {\n Converter.prototype.toBase64 = encodeBase64WithBufferFrom;\n } else {\n Converter.prototype.toBase64 = encodeBase64WithNewBuffer;\n }\n} else {\n Converter.prototype.toBase64 = encodeBase64WithBtoa;\n}\n\nfunction encodeBase64WithBufferFrom() {\n var json = this.toJSON();\n return Buffer.from(json, 'utf8').toString('base64');\n}\n\nfunction encodeBase64WithNewBuffer() {\n var json = this.toJSON();\n if (typeof json === 'number') {\n throw new TypeError('The json to encode must not be of type number.');\n }\n return new Buffer(json, 'utf8').toString('base64');\n}\n\nfunction encodeBase64WithBtoa() {\n var json = this.toJSON();\n return btoa(unescape(encodeURIComponent(json)));\n}\n\nConverter.prototype.toURI = function () {\n var json = this.toJSON();\n return encodeURIComponent(json);\n};\n\nConverter.prototype.toComment = function (options) {\n var encoding, content, data;\n if (options != null && options.encoding === 'uri') {\n encoding = '';\n content = this.toURI();\n } else {\n encoding = ';base64';\n content = this.toBase64();\n }\n data = 'sourceMappingURL=data:application/json;charset=utf-8' + encoding + ',' + content;\n return options != null && options.multiline ? '/*# ' + data + ' */' : '//# ' + data;\n};\n\n// returns copy instead of original\nConverter.prototype.toObject = function () {\n return JSON.parse(this.toJSON());\n};\n\nConverter.prototype.addProperty = function (key, value) {\n if (this.sourcemap.hasOwnProperty(key)) throw new Error('property \"' + key + '\" already exists on the sourcemap, use set property instead');\n return this.setProperty(key, value);\n};\n\nConverter.prototype.setProperty = function (key, value) {\n this.sourcemap[key] = value;\n return this;\n};\n\nConverter.prototype.getProperty = function (key) {\n return this.sourcemap[key];\n};\n\nexports.fromObject = function (obj) {\n return new Converter(obj);\n};\n\nexports.fromJSON = function (json) {\n return new Converter(json, { isJSON: true });\n};\n\nexports.fromURI = function (uri) {\n return new Converter(uri, { encoding: 'uri' });\n};\n\nexports.fromBase64 = function (base64) {\n return new Converter(base64, { encoding: 'base64' });\n};\n\nexports.fromComment = function (comment) {\n var m, encoding;\n comment = comment\n .replace(/^\\/\\*/g, '//')\n .replace(/\\*\\/$/g, '');\n m = exports.commentRegex.exec(comment);\n encoding = m && m[4] || 'uri';\n return new Converter(comment, { encoding: encoding, hasComment: true });\n};\n\nfunction makeConverter(sm) {\n return new Converter(sm, { isJSON: true });\n}\n\nexports.fromMapFileComment = function (comment, read) {\n if (typeof read === 'string') {\n throw new Error(\n 'String directory paths are no longer supported with `fromMapFileComment`\\n' +\n 'Please review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading'\n )\n }\n\n var sm = readFromFileMap(comment, read);\n if (sm != null && typeof sm.then === 'function') {\n return sm.then(makeConverter);\n } else {\n return makeConverter(sm);\n }\n};\n\n// Finds last sourcemap comment in file or returns null if none was found\nexports.fromSource = function (content) {\n var m = content.match(exports.commentRegex);\n return m ? exports.fromComment(m.pop()) : null;\n};\n\n// Finds last sourcemap comment in file or returns null if none was found\nexports.fromMapFileSource = function (content, read) {\n if (typeof read === 'string') {\n throw new Error(\n 'String directory paths are no longer supported with `fromMapFileSource`\\n' +\n 'Please review the Upgrading documentation at https://github.com/thlorenz/convert-source-map#upgrading'\n )\n }\n var m = content.match(exports.mapFileCommentRegex);\n return m ? exports.fromMapFileComment(m.pop(), read) : null;\n};\n\nexports.removeComments = function (src) {\n return src.replace(exports.commentRegex, '');\n};\n\nexports.removeMapFileComments = function (src) {\n return src.replace(exports.mapFileCommentRegex, '');\n};\n\nexports.generateMapFileComment = function (file, options) {\n var data = 'sourceMappingURL=' + file;\n return options && options.multiline ? '/*# ' + data + ' */' : '//# ' + data;\n};\n","const pluginNameMap: Record<\n string,\n Partial>>\n> = {\n asyncDoExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-async-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-do-expressions\",\n },\n },\n decimal: {\n syntax: {\n name: \"@babel/plugin-syntax-decimal\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decimal\",\n },\n },\n decorators: {\n syntax: {\n name: \"@babel/plugin-syntax-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-decorators\",\n },\n transform: {\n name: \"@babel/plugin-proposal-decorators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-decorators\",\n },\n },\n doExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-do-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-do-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-do-expressions\",\n },\n },\n exportDefaultFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-default-from\",\n },\n transform: {\n name: \"@babel/plugin-proposal-export-default-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-export-default-from\",\n },\n },\n flow: {\n syntax: {\n name: \"@babel/plugin-syntax-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-flow\",\n },\n transform: {\n name: \"@babel/preset-flow\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-flow\",\n },\n },\n functionBind: {\n syntax: {\n name: \"@babel/plugin-syntax-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-bind\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-bind\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-bind\",\n },\n },\n functionSent: {\n syntax: {\n name: \"@babel/plugin-syntax-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-function-sent\",\n },\n transform: {\n name: \"@babel/plugin-proposal-function-sent\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-function-sent\",\n },\n },\n jsx: {\n syntax: {\n name: \"@babel/plugin-syntax-jsx\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-jsx\",\n },\n transform: {\n name: \"@babel/preset-react\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-react\",\n },\n },\n importAttributes: {\n syntax: {\n name: \"@babel/plugin-syntax-import-attributes\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-attributes\",\n },\n },\n pipelineOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-pipeline-operator\",\n },\n transform: {\n name: \"@babel/plugin-proposal-pipeline-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-pipeline-operator\",\n },\n },\n recordAndTuple: {\n syntax: {\n name: \"@babel/plugin-syntax-record-and-tuple\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-record-and-tuple\",\n },\n },\n throwExpressions: {\n syntax: {\n name: \"@babel/plugin-syntax-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-throw-expressions\",\n },\n transform: {\n name: \"@babel/plugin-proposal-throw-expressions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-proposal-throw-expressions\",\n },\n },\n typescript: {\n syntax: {\n name: \"@babel/plugin-syntax-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-typescript\",\n },\n transform: {\n name: \"@babel/preset-typescript\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-preset-typescript\",\n },\n },\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // TODO: This plugins are now supported by default by @babel/parser.\n Object.assign(pluginNameMap, {\n asyncGenerators: {\n syntax: {\n name: \"@babel/plugin-syntax-async-generators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-async-generators\",\n },\n transform: {\n name: \"@babel/plugin-transform-async-generator-functions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-async-generator-functions\",\n },\n },\n classProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateProperties: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-class-properties\",\n },\n },\n classPrivateMethods: {\n syntax: {\n name: \"@babel/plugin-syntax-class-properties\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-class-properties\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-methods\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-methods\",\n },\n },\n classStaticBlock: {\n syntax: {\n name: \"@babel/plugin-syntax-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-syntax-class-static-block\",\n },\n transform: {\n name: \"@babel/plugin-transform-class-static-block\",\n url: \"https://github.com/babel/babel/tree/HEAD/packages/babel-plugin-transform-class-static-block\",\n },\n },\n dynamicImport: {\n syntax: {\n name: \"@babel/plugin-syntax-dynamic-import\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-dynamic-import\",\n },\n },\n exportNamespaceFrom: {\n syntax: {\n name: \"@babel/plugin-syntax-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-export-namespace-from\",\n },\n transform: {\n name: \"@babel/plugin-transform-export-namespace-from\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-export-namespace-from\",\n },\n },\n // Will be removed\n importAssertions: {\n syntax: {\n name: \"@babel/plugin-syntax-import-assertions\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-assertions\",\n },\n },\n importMeta: {\n syntax: {\n name: \"@babel/plugin-syntax-import-meta\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-import-meta\",\n },\n },\n logicalAssignment: {\n syntax: {\n name: \"@babel/plugin-syntax-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-logical-assignment-operators\",\n },\n transform: {\n name: \"@babel/plugin-transform-logical-assignment-operators\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-logical-assignment-operators\",\n },\n },\n moduleStringNames: {\n syntax: {\n name: \"@babel/plugin-syntax-module-string-names\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-module-string-names\",\n },\n },\n numericSeparator: {\n syntax: {\n name: \"@babel/plugin-syntax-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-numeric-separator\",\n },\n transform: {\n name: \"@babel/plugin-transform-numeric-separator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-numeric-separator\",\n },\n },\n nullishCoalescingOperator: {\n syntax: {\n name: \"@babel/plugin-syntax-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-nullish-coalescing-operator\",\n },\n transform: {\n name: \"@babel/plugin-transform-nullish-coalescing-operator\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-nullish-coalescing-opearator\",\n },\n },\n objectRestSpread: {\n syntax: {\n name: \"@babel/plugin-syntax-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-object-rest-spread\",\n },\n transform: {\n name: \"@babel/plugin-transform-object-rest-spread\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-object-rest-spread\",\n },\n },\n optionalCatchBinding: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-catch-binding\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-catch-binding\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-catch-binding\",\n },\n },\n optionalChaining: {\n syntax: {\n name: \"@babel/plugin-syntax-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-optional-chaining\",\n },\n transform: {\n name: \"@babel/plugin-transform-optional-chaining\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-optional-chaining\",\n },\n },\n privateIn: {\n syntax: {\n name: \"@babel/plugin-syntax-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-syntax-private-property-in-object\",\n },\n transform: {\n name: \"@babel/plugin-transform-private-property-in-object\",\n url: \"https://github.com/babel/babel/tree/main/packages/babel-plugin-transform-private-property-in-object\",\n },\n },\n regexpUnicodeSets: {\n syntax: {\n name: \"@babel/plugin-syntax-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-syntax-unicode-sets-regex/README.md\",\n },\n transform: {\n name: \"@babel/plugin-transform-unicode-sets-regex\",\n url: \"https://github.com/babel/babel/blob/main/packages/babel-plugin-proposalunicode-sets-regex/README.md\",\n },\n },\n });\n}\n\nconst getNameURLCombination = ({ name, url }: { name: string; url: string }) =>\n `${name} (${url})`;\n\n/*\nReturns a string of the format:\nSupport for the experimental syntax [@babel/parser plugin name] isn't currently enabled ([loc]):\n\n[code frame]\n\nAdd [npm package name] ([url]) to the 'plugins' section of your Babel config\nto enable [parsing|transformation].\n*/\nexport default function generateMissingPluginMessage(\n missingPluginName: string,\n loc: {\n line: number;\n column: number;\n },\n codeFrame: string,\n filename: string,\n): string {\n let helpMessage =\n `Support for the experimental syntax '${missingPluginName}' isn't currently enabled ` +\n `(${loc.line}:${loc.column + 1}):\\n\\n` +\n codeFrame;\n const pluginInfo = pluginNameMap[missingPluginName];\n if (pluginInfo) {\n const { syntax: syntaxPlugin, transform: transformPlugin } = pluginInfo;\n if (syntaxPlugin) {\n const syntaxPluginInfo = getNameURLCombination(syntaxPlugin);\n if (transformPlugin) {\n const transformPluginInfo = getNameURLCombination(transformPlugin);\n const sectionType = transformPlugin.name.startsWith(\"@babel/plugin\")\n ? \"plugins\"\n : \"presets\";\n helpMessage += `\\n\\nAdd ${transformPluginInfo} to the '${sectionType}' section of your Babel config to enable transformation.\nIf you want to leave it as-is, add ${syntaxPluginInfo} to the 'plugins' section to enable parsing.`;\n } else {\n helpMessage +=\n `\\n\\nAdd ${syntaxPluginInfo} to the 'plugins' section of your Babel config ` +\n `to enable parsing.`;\n }\n }\n }\n\n const msgFilename =\n filename === \"unknown\" ? \"\" : filename;\n helpMessage += `\n\nIf you already added the plugin for this syntax to your config, it's possible that your config \\\nisn't being loaded.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${msgFilename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.\n`;\n return helpMessage;\n}\n","import type { Handler } from \"gensync\";\nimport { parse } from \"@babel/parser\";\nimport { codeFrameColumns } from \"@babel/code-frame\";\nimport generateMissingPluginMessage from \"./util/missing-plugin-helper.ts\";\nimport type { PluginPasses } from \"../config/index.ts\";\n\nexport type ParseResult = ReturnType;\n\nexport default function* parser(\n pluginPasses: PluginPasses,\n { parserOpts, highlightCode = true, filename = \"unknown\" }: any,\n code: string,\n): Handler {\n try {\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { parserOverride } = plugin;\n if (parserOverride) {\n const ast = parserOverride(code, parserOpts, parse);\n\n if (ast !== undefined) results.push(ast);\n }\n }\n }\n\n if (results.length === 0) {\n return parse(code, parserOpts);\n } else if (results.length === 1) {\n // @ts-expect-error - If we want to allow async parsers\n yield* [];\n if (typeof results[0].then === \"function\") {\n throw new Error(\n `You appear to be using an async parser plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n return results[0];\n }\n // TODO: Add an error code\n throw new Error(\"More than one plugin attempted to override parsing.\");\n } catch (err) {\n if (err.code === \"BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED\") {\n err.message +=\n \"\\nConsider renaming the file to '.mjs', or setting sourceType:module \" +\n \"or sourceType:unambiguous in your Babel config for this file.\";\n // err.code will be changed to BABEL_PARSE_ERROR later.\n }\n\n const { loc, missingPlugin } = err;\n if (loc) {\n const codeFrame = codeFrameColumns(\n code,\n {\n start: {\n line: loc.line,\n column: loc.column + 1,\n },\n },\n {\n highlightCode,\n },\n );\n if (missingPlugin) {\n err.message =\n `${filename}: ` +\n generateMissingPluginMessage(\n missingPlugin[0],\n loc,\n codeFrame,\n filename,\n );\n } else {\n err.message = `${filename}: ${err.message}\\n\\n` + codeFrame;\n }\n err.code = \"BABEL_PARSE_ERROR\";\n }\n throw err;\n }\n}\n","//https://github.com/babel/babel/pull/14583#discussion_r882828856\nfunction deepClone(value: any, cache: Map): any {\n if (value !== null) {\n if (cache.has(value)) return cache.get(value);\n let cloned: any;\n if (Array.isArray(value)) {\n cloned = new Array(value.length);\n cache.set(value, cloned);\n for (let i = 0; i < value.length; i++) {\n cloned[i] =\n typeof value[i] !== \"object\" ? value[i] : deepClone(value[i], cache);\n }\n } else {\n cloned = {};\n cache.set(value, cloned);\n const keys = Object.keys(value);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n cloned[key] =\n typeof value[key] !== \"object\"\n ? value[key]\n : deepClone(value[key], cache);\n }\n }\n return cloned;\n }\n return value;\n}\n\nexport default function (value: T): T {\n if (typeof value !== \"object\") return value;\n return deepClone(value, new Map());\n}\n","import fs from \"fs\";\nimport path from \"path\";\nimport buildDebug from \"debug\";\nimport type { Handler } from \"gensync\";\nimport { file, traverseFast } from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport type { PluginPasses } from \"../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { SourceMapConverter as Converter } from \"convert-source-map\";\nimport File from \"./file/file.ts\";\nimport parser from \"../parser/index.ts\";\nimport cloneDeep from \"./util/clone-deep.ts\";\n\nconst debug = buildDebug(\"babel:transform:file\");\n\n// These regexps are copied from the convert-source-map package,\n// but without // or /* at the beginning of the comment.\n\nconst INLINE_SOURCEMAP_REGEX =\n /^[@#]\\s+sourceMappingURL=data:(?:application|text)\\/json;(?:charset[:=]\\S+?;)?base64,(?:.*)$/;\nconst EXTERNAL_SOURCEMAP_REGEX =\n /^[@#][ \\t]+sourceMappingURL=([^\\s'\"`]+)[ \\t]*$/;\n\nexport type NormalizedFile = {\n code: string;\n ast: t.File;\n inputMap: Converter | null;\n};\n\nexport default function* normalizeFile(\n pluginPasses: PluginPasses,\n options: { [key: string]: any },\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n code = `${code || \"\"}`;\n\n if (ast) {\n if (ast.type === \"Program\") {\n ast = file(ast, [], []);\n } else if (ast.type !== \"File\") {\n throw new Error(\"AST root must be a Program or File node\");\n }\n\n if (options.cloneInputAst) {\n ast = cloneDeep(ast);\n }\n } else {\n // @ts-expect-error todo: use babel-types ast typings in Babel parser\n ast = yield* parser(pluginPasses, options, code);\n }\n\n let inputMap = null;\n if (options.inputSourceMap !== false) {\n // If an explicit object is passed in, it overrides the processing of\n // source maps that may be in the file itself.\n if (typeof options.inputSourceMap === \"object\") {\n inputMap = convertSourceMap.fromObject(options.inputSourceMap);\n }\n\n if (!inputMap) {\n const lastComment = extractComments(INLINE_SOURCEMAP_REGEX, ast);\n if (lastComment) {\n try {\n inputMap = convertSourceMap.fromComment(\"//\" + lastComment);\n } catch (err) {\n if (process.env.BABEL_8_BREAKING) {\n console.warn(\n \"discarding unknown inline input sourcemap\",\n options.filename,\n err,\n );\n } else {\n debug(\"discarding unknown inline input sourcemap\");\n }\n }\n }\n }\n\n if (!inputMap) {\n const lastComment = extractComments(EXTERNAL_SOURCEMAP_REGEX, ast);\n if (typeof options.filename === \"string\" && lastComment) {\n try {\n // when `lastComment` is non-null, EXTERNAL_SOURCEMAP_REGEX must have matches\n const match: [string, string] = EXTERNAL_SOURCEMAP_REGEX.exec(\n lastComment,\n ) as any;\n const inputMapContent = fs.readFileSync(\n path.resolve(path.dirname(options.filename), match[1]),\n \"utf8\",\n );\n inputMap = convertSourceMap.fromJSON(inputMapContent);\n } catch (err) {\n debug(\"discarding unknown file input sourcemap\", err);\n }\n } else if (lastComment) {\n debug(\"discarding un-loadable file input sourcemap\");\n }\n }\n }\n\n return new File(options, {\n code,\n ast: ast as t.File,\n inputMap,\n });\n}\n\nfunction extractCommentsFromList(\n regex: RegExp,\n comments: t.Comment[],\n lastComment: string | null,\n): [t.Comment[], string | null] {\n if (comments) {\n comments = comments.filter(({ value }) => {\n if (regex.test(value)) {\n lastComment = value;\n return false;\n }\n return true;\n });\n }\n return [comments, lastComment];\n}\n\nfunction extractComments(regex: RegExp, ast: t.Node) {\n let lastComment: string = null;\n traverseFast(ast, node => {\n [node.leadingComments, lastComment] = extractCommentsFromList(\n regex,\n node.leadingComments,\n lastComment,\n );\n [node.innerComments, lastComment] = extractCommentsFromList(\n regex,\n node.innerComments,\n lastComment,\n );\n [node.trailingComments, lastComment] = extractCommentsFromList(\n regex,\n node.trailingComments,\n lastComment,\n );\n });\n return lastComment;\n}\n","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@jridgewell/set-array'), require('@jridgewell/sourcemap-codec')) :\n typeof define === 'function' && define.amd ? define(['exports', '@jridgewell/set-array', '@jridgewell/sourcemap-codec'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.genMapping = {}, global.setArray, global.sourcemapCodec));\n})(this, (function (exports, setArray, sourcemapCodec) { 'use strict';\n\n /**\n * A low-level API to associate a generated position with an original source position. Line and\n * column here are 0-based, unlike `addMapping`.\n */\n exports.addSegment = void 0;\n /**\n * A high-level API to associate a generated position with an original source position. Line is\n * 1-based, but column is 0-based, due to legacy behavior in `source-map` library.\n */\n exports.addMapping = void 0;\n /**\n * Adds/removes the content of the source file to the source map.\n */\n exports.setSourceContent = void 0;\n /**\n * Returns a sourcemap object (with decoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\n exports.decodedMap = void 0;\n /**\n * Returns a sourcemap object (with encoded mappings) suitable for passing to a library that expects\n * a sourcemap, or to JSON.stringify.\n */\n exports.encodedMap = void 0;\n /**\n * Returns an array of high-level mapping objects for every recorded segment, which could then be\n * passed to the `source-map` library.\n */\n exports.allMappings = void 0;\n /**\n * Provides the state to generate a sourcemap.\n */\n class GenMapping {\n constructor({ file, sourceRoot } = {}) {\n this._names = new setArray.SetArray();\n this._sources = new setArray.SetArray();\n this._sourcesContent = [];\n this._mappings = [];\n this.file = file;\n this.sourceRoot = sourceRoot;\n }\n }\n (() => {\n exports.addSegment = (map, genLine, genColumn, source, sourceLine, sourceColumn, name) => {\n const { _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;\n const line = getLine(mappings, genLine);\n if (source == null) {\n const seg = [genColumn];\n const index = getColumnIndex(line, genColumn, seg);\n return insert(line, index, seg);\n }\n const sourcesIndex = setArray.put(sources, source);\n const seg = name\n ? [genColumn, sourcesIndex, sourceLine, sourceColumn, setArray.put(names, name)]\n : [genColumn, sourcesIndex, sourceLine, sourceColumn];\n const index = getColumnIndex(line, genColumn, seg);\n if (sourcesIndex === sourcesContent.length)\n sourcesContent[sourcesIndex] = null;\n insert(line, index, seg);\n };\n exports.addMapping = (map, mapping) => {\n const { generated, source, original, name } = mapping;\n return exports.addSegment(map, generated.line - 1, generated.column, source, original == null ? undefined : original.line - 1, original === null || original === void 0 ? void 0 : original.column, name);\n };\n exports.setSourceContent = (map, source, content) => {\n const { _sources: sources, _sourcesContent: sourcesContent } = map;\n sourcesContent[setArray.put(sources, source)] = content;\n };\n exports.decodedMap = (map) => {\n const { file, sourceRoot, _mappings: mappings, _sources: sources, _sourcesContent: sourcesContent, _names: names, } = map;\n return {\n version: 3,\n file,\n names: names.array,\n sourceRoot: sourceRoot || undefined,\n sources: sources.array,\n sourcesContent,\n mappings,\n };\n };\n exports.encodedMap = (map) => {\n const decoded = exports.decodedMap(map);\n return Object.assign(Object.assign({}, decoded), { mappings: sourcemapCodec.encode(decoded.mappings) });\n };\n exports.allMappings = (map) => {\n const out = [];\n const { _mappings: mappings, _sources: sources, _names: names } = map;\n for (let i = 0; i < mappings.length; i++) {\n const line = mappings[i];\n for (let j = 0; j < line.length; j++) {\n const seg = line[j];\n const generated = { line: i + 1, column: seg[0] };\n let source = undefined;\n let original = undefined;\n let name = undefined;\n if (seg.length !== 1) {\n source = sources.array[seg[1]];\n original = { line: seg[2] + 1, column: seg[3] };\n if (seg.length === 5)\n name = names.array[seg[4]];\n }\n out.push({ generated, source, original, name });\n }\n }\n return out;\n };\n })();\n function getLine(mappings, index) {\n for (let i = mappings.length; i <= index; i++) {\n mappings[i] = [];\n }\n return mappings[index];\n }\n function getColumnIndex(line, column, seg) {\n let index = line.length;\n for (let i = index - 1; i >= 0; i--, index--) {\n const current = line[i];\n const col = current[0];\n if (col > column)\n continue;\n if (col < column)\n break;\n const cmp = compare(current, seg);\n if (cmp === 0)\n return index;\n if (cmp < 0)\n break;\n }\n return index;\n }\n function compare(a, b) {\n let cmp = compareNum(a.length, b.length);\n if (cmp !== 0)\n return cmp;\n // We've already checked genColumn\n if (a.length === 1)\n return 0;\n cmp = compareNum(a[1], b[1]);\n if (cmp !== 0)\n return cmp;\n cmp = compareNum(a[2], b[2]);\n if (cmp !== 0)\n return cmp;\n cmp = compareNum(a[3], b[3]);\n if (cmp !== 0)\n return cmp;\n if (a.length === 4)\n return 0;\n return compareNum(a[4], b[4]);\n }\n function compareNum(a, b) {\n return a - b;\n }\n function insert(array, index, value) {\n if (index === -1)\n return;\n for (let i = array.length; i > index; i--) {\n array[i] = array[i - 1];\n }\n array[index] = value;\n }\n\n exports.GenMapping = GenMapping;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n}));\n//# sourceMappingURL=gen-mapping.umd.js.map\n","import { decodedMappings, traceSegment, TraceMap } from '@jridgewell/trace-mapping';\nimport { GenMapping, addSegment, setSourceContent, decodedMap, encodedMap } from '@jridgewell/gen-mapping';\n\nconst SOURCELESS_MAPPING = {\n source: null,\n column: null,\n line: null,\n name: null,\n content: null,\n};\nconst EMPTY_SOURCES = [];\nfunction Source(map, sources, source, content) {\n return {\n map,\n sources,\n source,\n content,\n };\n}\n/**\n * MapSource represents a single sourcemap, with the ability to trace mappings into its child nodes\n * (which may themselves be SourceMapTrees).\n */\nfunction MapSource(map, sources) {\n return Source(map, sources, '', null);\n}\n/**\n * A \"leaf\" node in the sourcemap tree, representing an original, unmodified source file. Recursive\n * segment tracing ends at the `OriginalSource`.\n */\nfunction OriginalSource(source, content) {\n return Source(null, EMPTY_SOURCES, source, content);\n}\n/**\n * traceMappings is only called on the root level SourceMapTree, and begins the process of\n * resolving each mapping in terms of the original source files.\n */\nfunction traceMappings(tree) {\n const gen = new GenMapping({ file: tree.map.file });\n const { sources: rootSources, map } = tree;\n const rootNames = map.names;\n const rootMappings = decodedMappings(map);\n for (let i = 0; i < rootMappings.length; i++) {\n const segments = rootMappings[i];\n let lastSource = null;\n let lastSourceLine = null;\n let lastSourceColumn = null;\n for (let j = 0; j < segments.length; j++) {\n const segment = segments[j];\n const genCol = segment[0];\n let traced = SOURCELESS_MAPPING;\n // 1-length segments only move the current generated column, there's no source information\n // to gather from it.\n if (segment.length !== 1) {\n const source = rootSources[segment[1]];\n traced = originalPositionFor(source, segment[2], segment[3], segment.length === 5 ? rootNames[segment[4]] : '');\n // If the trace is invalid, then the trace ran into a sourcemap that doesn't contain a\n // respective segment into an original source.\n if (traced == null)\n continue;\n }\n // So we traced a segment down into its original source file. Now push a\n // new segment pointing to this location.\n const { column, line, name, content, source } = traced;\n if (line === lastSourceLine && column === lastSourceColumn && source === lastSource) {\n continue;\n }\n lastSourceLine = line;\n lastSourceColumn = column;\n lastSource = source;\n // Sigh, TypeScript can't figure out source/line/column are either all null, or all non-null...\n addSegment(gen, i, genCol, source, line, column, name);\n if (content != null)\n setSourceContent(gen, source, content);\n }\n }\n return gen;\n}\n/**\n * originalPositionFor is only called on children SourceMapTrees. It recurses down into its own\n * child SourceMapTrees, until we find the original source map.\n */\nfunction originalPositionFor(source, line, column, name) {\n if (!source.map) {\n return { column, line, name, source: source.source, content: source.content };\n }\n const segment = traceSegment(source.map, line, column);\n // If we couldn't find a segment, then this doesn't exist in the sourcemap.\n if (segment == null)\n return null;\n // 1-length segments only move the current generated column, there's no source information\n // to gather from it.\n if (segment.length === 1)\n return SOURCELESS_MAPPING;\n return originalPositionFor(source.sources[segment[1]], segment[2], segment[3], segment.length === 5 ? source.map.names[segment[4]] : name);\n}\n\nfunction asArray(value) {\n if (Array.isArray(value))\n return value;\n return [value];\n}\n/**\n * Recursively builds a tree structure out of sourcemap files, with each node\n * being either an `OriginalSource` \"leaf\" or a `SourceMapTree` composed of\n * `OriginalSource`s and `SourceMapTree`s.\n *\n * Every sourcemap is composed of a collection of source files and mappings\n * into locations of those source files. When we generate a `SourceMapTree` for\n * the sourcemap, we attempt to load each source file's own sourcemap. If it\n * does not have an associated sourcemap, it is considered an original,\n * unmodified source file.\n */\nfunction buildSourceMapTree(input, loader) {\n const maps = asArray(input).map((m) => new TraceMap(m, ''));\n const map = maps.pop();\n for (let i = 0; i < maps.length; i++) {\n if (maps[i].sources.length > 1) {\n throw new Error(`Transformation map ${i} must have exactly one source file.\\n` +\n 'Did you specify these with the most recent transformation maps first?');\n }\n }\n let tree = build(map, loader, '', 0);\n for (let i = maps.length - 1; i >= 0; i--) {\n tree = MapSource(maps[i], [tree]);\n }\n return tree;\n}\nfunction build(map, loader, importer, importerDepth) {\n const { resolvedSources, sourcesContent } = map;\n const depth = importerDepth + 1;\n const children = resolvedSources.map((sourceFile, i) => {\n // The loading context gives the loader more information about why this file is being loaded\n // (eg, from which importer). It also allows the loader to override the location of the loaded\n // sourcemap/original source, or to override the content in the sourcesContent field if it's\n // an unmodified source file.\n const ctx = {\n importer,\n depth,\n source: sourceFile || '',\n content: undefined,\n };\n // Use the provided loader callback to retrieve the file's sourcemap.\n // TODO: We should eventually support async loading of sourcemap files.\n const sourceMap = loader(ctx.source, ctx);\n const { source, content } = ctx;\n // If there is a sourcemap, then we need to recurse into it to load its source files.\n if (sourceMap)\n return build(new TraceMap(sourceMap, source), loader, source, depth);\n // Else, it's an an unmodified source file.\n // The contents of this unmodified source file can be overridden via the loader context,\n // allowing it to be explicitly null or a string. If it remains undefined, we fall back to\n // the importing sourcemap's `sourcesContent` field.\n const sourceContent = content !== undefined ? content : sourcesContent ? sourcesContent[i] : null;\n return OriginalSource(source, sourceContent);\n });\n return MapSource(map, children);\n}\n\n/**\n * A SourceMap v3 compatible sourcemap, which only includes fields that were\n * provided to it.\n */\nclass SourceMap {\n constructor(map, options) {\n const out = options.decodedMappings ? decodedMap(map) : encodedMap(map);\n this.version = out.version; // SourceMap spec says this should be first.\n this.file = out.file;\n this.mappings = out.mappings;\n this.names = out.names;\n this.sourceRoot = out.sourceRoot;\n this.sources = out.sources;\n if (!options.excludeContent) {\n this.sourcesContent = out.sourcesContent;\n }\n }\n toString() {\n return JSON.stringify(this);\n }\n}\n\n/**\n * Traces through all the mappings in the root sourcemap, through the sources\n * (and their sourcemaps), all the way back to the original source location.\n *\n * `loader` will be called every time we encounter a source file. If it returns\n * a sourcemap, we will recurse into that sourcemap to continue the trace. If\n * it returns a falsey value, that source file is treated as an original,\n * unmodified source file.\n *\n * Pass `excludeContent` to exclude any self-containing source file content\n * from the output sourcemap.\n *\n * Pass `decodedMappings` to receive a SourceMap with decoded (instead of\n * VLQ encoded) mappings.\n */\nfunction remapping(input, loader, options) {\n const opts = typeof options === 'object' ? options : { excludeContent: !!options, decodedMappings: false };\n const tree = buildSourceMapTree(input, loader);\n return new SourceMap(traceMappings(tree), opts);\n}\n\nexport { remapping as default };\n//# sourceMappingURL=remapping.mjs.map\n","type SourceMap = any;\nimport remapping from \"@ampproject/remapping\";\n\nexport default function mergeSourceMap(\n inputMap: SourceMap,\n map: SourceMap,\n sourceFileName: string,\n): SourceMap {\n // On win32 machines, the sourceFileName uses backslash paths like\n // `C:\\foo\\bar.js`. But sourcemaps are always posix paths, so we need to\n // normalize to regular slashes before we can merge (else we won't find the\n // source associated with our input map).\n // This mirrors code done while generating the output map at\n // https://github.com/babel/babel/blob/5c2fcadc9ae34fd20dd72b1111d5cf50476d700d/packages/babel-generator/src/source-map.ts#L102\n const source = sourceFileName.replace(/\\\\/g, \"/\");\n\n // Prevent an infinite recursion if one of the input map's sources has the\n // same resolved path as the input map. In the case, it would keep find the\n // input map, then get it's sources which will include a path like the input\n // map, on and on.\n let found = false;\n const result = remapping(rootless(map), (s, ctx) => {\n if (s === source && !found) {\n found = true;\n // We empty the source location, which will prevent the sourcemap from\n // becoming relative to the input's location. Eg, if we're transforming a\n // file 'foo/bar.js', and it is a transformation of a `baz.js` file in the\n // same directory, the expected output is just `baz.js`. Without this step,\n // it would become `foo/baz.js`.\n ctx.source = \"\";\n\n return rootless(inputMap);\n }\n\n return null;\n });\n\n if (typeof inputMap.sourceRoot === \"string\") {\n result.sourceRoot = inputMap.sourceRoot;\n }\n\n // remapping returns a SourceMap class type, but this breaks code downstream in\n // @babel/traverse and @babel/types that relies on data being plain objects.\n // When it encounters the sourcemap type it outputs a \"don't know how to turn\n // this value into a node\" error. As a result, we are converting the merged\n // sourcemap to a plain js object.\n return { ...result };\n}\n\nfunction rootless(map: SourceMap): SourceMap {\n return {\n ...map,\n\n // This is a bit hack. Remapping will create absolute sources in our\n // sourcemap, but we want to maintain sources relative to the sourceRoot.\n // We'll re-add the sourceRoot after remapping.\n sourceRoot: null,\n };\n}\n","import type { PluginPasses } from \"../../config/index.ts\";\nimport convertSourceMap from \"convert-source-map\";\nimport type { GeneratorResult } from \"@babel/generator\";\nimport generate from \"@babel/generator\";\n\nimport type File from \"./file.ts\";\nimport mergeSourceMap from \"./merge-map.ts\";\n\nexport default function generateCode(\n pluginPasses: PluginPasses,\n file: File,\n): {\n outputCode: string;\n outputMap: GeneratorResult[\"map\"] | null;\n} {\n const { opts, ast, code, inputMap } = file;\n const { generatorOpts } = opts;\n\n generatorOpts.inputSourceMap = inputMap?.toObject();\n\n const results = [];\n for (const plugins of pluginPasses) {\n for (const plugin of plugins) {\n const { generatorOverride } = plugin;\n if (generatorOverride) {\n const result = generatorOverride(ast, generatorOpts, code, generate);\n\n if (result !== undefined) results.push(result);\n }\n }\n }\n\n let result;\n if (results.length === 0) {\n result = generate(ast, generatorOpts, code);\n } else if (results.length === 1) {\n result = results[0];\n\n if (typeof result.then === \"function\") {\n throw new Error(\n `You appear to be using an async codegen plugin, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, ` +\n `you may need to upgrade your @babel/core version.`,\n );\n }\n } else {\n throw new Error(\"More than one plugin attempted to override codegen.\");\n }\n\n // Decoded maps are faster to merge, so we attempt to get use the decodedMap\n // first. But to preserve backwards compat with older Generator, we'll fall\n // back to the encoded map.\n let { code: outputCode, decodedMap: outputMap = result.map } = result;\n\n // For backwards compat.\n if (result.__mergedMap) {\n /**\n * @see mergeSourceMap\n */\n outputMap = { ...result.map };\n } else {\n if (outputMap) {\n if (inputMap) {\n // mergeSourceMap returns an encoded map\n outputMap = mergeSourceMap(\n inputMap.toObject(),\n outputMap,\n generatorOpts.sourceFileName,\n );\n } else {\n // We cannot output a decoded map, so retrieve the encoded form. Because\n // the decoded form is free, it's fine to prioritize decoded first.\n outputMap = result.map;\n }\n }\n }\n\n if (opts.sourceMaps === \"inline\" || opts.sourceMaps === \"both\") {\n outputCode += \"\\n\" + convertSourceMap.fromObject(outputMap).toComment();\n }\n\n if (opts.sourceMaps === \"inline\") {\n outputMap = null;\n }\n\n return { outputCode, outputMap };\n}\n","import traverse from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\nimport type { GeneratorResult } from \"@babel/generator\";\n\nimport type { Handler } from \"gensync\";\n\nimport type { ResolvedConfig, Plugin, PluginPasses } from \"../config/index.ts\";\n\nimport PluginPass from \"./plugin-pass.ts\";\nimport loadBlockHoistPlugin from \"./block-hoist-plugin.ts\";\nimport normalizeOptions from \"./normalize-opts.ts\";\nimport normalizeFile from \"./normalize-file.ts\";\n\nimport generateCode from \"./file/generate.ts\";\nimport type File from \"./file/file.ts\";\n\nimport { flattenToSet } from \"../config/helpers/deep-array.ts\";\n\nexport type FileResultCallback = {\n (err: Error, file: null): void;\n (err: null, file: FileResult | null): void;\n};\n\nexport type FileResult = {\n metadata: { [key: string]: any };\n options: { [key: string]: any };\n ast: t.File | null;\n code: string | null;\n map: GeneratorResult[\"map\"] | null;\n sourceType: \"script\" | \"module\";\n externalDependencies: Set;\n};\n\nexport function* run(\n config: ResolvedConfig,\n code: string,\n ast?: t.File | t.Program | null,\n): Handler {\n const file = yield* normalizeFile(\n config.passes,\n normalizeOptions(config),\n code,\n ast,\n );\n\n const opts = file.opts;\n try {\n yield* transformFile(file, config.passes);\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_TRANSFORM_ERROR\";\n }\n throw e;\n }\n\n let outputCode, outputMap;\n try {\n if (opts.code !== false) {\n ({ outputCode, outputMap } = generateCode(config.passes, file));\n }\n } catch (e) {\n e.message = `${opts.filename ?? \"unknown file\"}: ${e.message}`;\n if (!e.code) {\n e.code = \"BABEL_GENERATE_ERROR\";\n }\n throw e;\n }\n\n return {\n metadata: file.metadata,\n options: opts,\n ast: opts.ast === true ? file.ast : null,\n code: outputCode === undefined ? null : outputCode,\n map: outputMap === undefined ? null : outputMap,\n sourceType: file.ast.program.sourceType,\n externalDependencies: flattenToSet(config.externalDependencies),\n };\n}\n\nfunction* transformFile(file: File, pluginPasses: PluginPasses): Handler {\n for (const pluginPairs of pluginPasses) {\n const passPairs: [Plugin, PluginPass][] = [];\n const passes = [];\n const visitors = [];\n\n for (const plugin of pluginPairs.concat([loadBlockHoistPlugin()])) {\n const pass = new PluginPass(file, plugin.key, plugin.options);\n\n passPairs.push([plugin, pass]);\n passes.push(pass);\n visitors.push(plugin.visitor);\n }\n\n for (const [plugin, pass] of passPairs) {\n const fn = plugin.pre;\n if (fn) {\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const result = fn.call(pass, file);\n\n // @ts-expect-error - If we want to support async .pre\n yield* [];\n\n if (isThenable(result)) {\n throw new Error(\n `You appear to be using an plugin with an async .pre, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n }\n }\n\n // merge all plugin visitors into a single visitor\n const visitor = traverse.visitors.merge(\n visitors,\n passes,\n file.opts.wrapPluginVisitorMethod,\n );\n if (process.env.BABEL_8_BREAKING) {\n traverse(file.ast.program, visitor, file.scope, null, file.path, true);\n } else {\n traverse(file.ast, visitor, file.scope);\n }\n\n for (const [plugin, pass] of passPairs) {\n const fn = plugin.post;\n if (fn) {\n // eslint-disable-next-line @typescript-eslint/no-confusing-void-expression\n const result = fn.call(pass, file);\n\n // @ts-expect-error - If we want to support async .post\n yield* [];\n\n if (isThenable(result)) {\n throw new Error(\n `You appear to be using an plugin with an async .post, ` +\n `which your current version of Babel does not support. ` +\n `If you're using a published plugin, you may need to upgrade ` +\n `your @babel/core version.`,\n );\n }\n }\n }\n }\n}\n\nfunction isThenable>(val: any): val is T {\n return (\n !!val &&\n (typeof val === \"object\" || typeof val === \"function\") &&\n !!val.then &&\n typeof val.then === \"function\"\n );\n}\n","import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nexport type { FileResult } from \"./transformation/index.ts\";\n\ntype Transform = {\n (code: string, callback: FileResultCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformRunner = gensync(function* transform(\n code: string,\n opts?: InputOptions,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n return yield* run(config, code);\n});\n\nexport const transform: Transform = function transform(\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transform' function expects a callback. If you need to call it synchronously, please use 'transformSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transform' function will expect a callback. If you need to call it synchronously, please use 'transformSync'.\",\n // );\n return beginHiddenCallStack(transformRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(transformRunner.errback)(code, opts, callback);\n};\n\nexport function transformSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.sync)(...args);\n}\nexport function transformAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformRunner.async)(...args);\n}\n","// duplicated from transform-file so we do not have to import anything here\ntype TransformFile = {\n (filename: string, callback: (error: Error, file: null) => void): void;\n (\n filename: string,\n opts: any,\n callback: (error: Error, file: null) => void,\n ): void;\n};\n\nexport const transformFile: TransformFile = function transformFile(\n filename,\n opts,\n callback?: (error: Error, file: null) => void,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n }\n\n callback(new Error(\"Transforming files is not supported in browsers\"), null);\n};\n\nexport function transformFileSync(): never {\n throw new Error(\"Transforming files is not supported in browsers\");\n}\n\nexport function transformFileAsync() {\n return Promise.reject(\n new Error(\"Transforming files is not supported in browsers\"),\n );\n}\n","import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig from \"./config/index.ts\";\nimport type { InputOptions, ResolvedConfig } from \"./config/index.ts\";\nimport { run } from \"./transformation/index.ts\";\nimport type * as t from \"@babel/types\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\nimport type { FileResult, FileResultCallback } from \"./transformation/index.ts\";\ntype AstRoot = t.File | t.Program;\n\ntype TransformFromAst = {\n (ast: AstRoot, code: string, callback: FileResultCallback): void;\n (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileResultCallback,\n ): void;\n (ast: AstRoot, code: string, opts?: InputOptions | null): FileResult | null;\n};\n\nconst transformFromAstRunner = gensync(function* (\n ast: AstRoot,\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config: ResolvedConfig | null = yield* loadConfig(opts);\n if (config === null) return null;\n\n if (!ast) throw new Error(\"No AST given\");\n\n return yield* run(config, code, ast);\n});\n\nexport const transformFromAst: TransformFromAst = function transformFromAst(\n ast,\n code,\n optsOrCallback?: InputOptions | null | undefined | FileResultCallback,\n maybeCallback?: FileResultCallback,\n) {\n let opts: InputOptions | undefined | null;\n let callback: FileResultCallback | undefined;\n if (typeof optsOrCallback === \"function\") {\n callback = optsOrCallback;\n opts = undefined;\n } else {\n opts = optsOrCallback;\n callback = maybeCallback;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'transformFromAst' function expects a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'transformFromAst' function will expect a callback. If you need to call it synchronously, please use 'transformFromAstSync'.\",\n // );\n return beginHiddenCallStack(transformFromAstRunner.sync)(ast, code, opts);\n }\n }\n\n beginHiddenCallStack(transformFromAstRunner.errback)(\n ast,\n code,\n opts,\n callback,\n );\n};\n\nexport function transformFromAstSync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.sync)(...args);\n}\n\nexport function transformFromAstAsync(\n ...args: Parameters\n) {\n return beginHiddenCallStack(transformFromAstRunner.async)(...args);\n}\n","import gensync, { type Handler } from \"gensync\";\n\nimport loadConfig, { type InputOptions } from \"./config/index.ts\";\nimport parser, { type ParseResult } from \"./parser/index.ts\";\nimport normalizeOptions from \"./transformation/normalize-opts.ts\";\nimport type { ValidatedOptions } from \"./config/validation/options.ts\";\n\nimport { beginHiddenCallStack } from \"./errors/rewrite-stack-trace.ts\";\n\ntype FileParseCallback = {\n (err: Error, ast: null): void;\n (err: null, ast: ParseResult | null): void;\n};\n\ntype Parse = {\n (code: string, callback: FileParseCallback): void;\n (\n code: string,\n opts: InputOptions | undefined | null,\n callback: FileParseCallback,\n ): void;\n (code: string, opts?: InputOptions | null): ParseResult | null;\n};\n\nconst parseRunner = gensync(function* parse(\n code: string,\n opts: InputOptions | undefined | null,\n): Handler {\n const config = yield* loadConfig(opts);\n\n if (config === null) {\n return null;\n }\n\n return yield* parser(config.passes, normalizeOptions(config), code);\n});\n\nexport const parse: Parse = function parse(\n code,\n opts?,\n callback?: FileParseCallback,\n) {\n if (typeof opts === \"function\") {\n callback = opts;\n opts = undefined as ValidatedOptions;\n }\n\n if (callback === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Starting from Babel 8.0.0, the 'parse' function expects a callback. If you need to call it synchronously, please use 'parseSync'.\",\n );\n } else {\n // console.warn(\n // \"Starting from Babel 8.0.0, the 'parse' function will expect a callback. If you need to call it synchronously, please use 'parseSync'.\",\n // );\n return beginHiddenCallStack(parseRunner.sync)(code, opts);\n }\n }\n\n beginHiddenCallStack(parseRunner.errback)(code, opts, callback);\n};\n\nexport function parseSync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.sync)(...args);\n}\nexport function parseAsync(...args: Parameters) {\n return beginHiddenCallStack(parseRunner.async)(...args);\n}\n","if (!process.env.IS_PUBLISH && !USE_ESM && process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"BABEL_8_BREAKING is only supported in ESM. Please run `make use-esm`.\",\n );\n}\n\nexport const version = PACKAGE_JSON.version;\n\nexport { default as File } from \"./transformation/file/file.ts\";\nexport type { default as PluginPass } from \"./transformation/plugin-pass.ts\";\nexport { default as buildExternalHelpers } from \"./tools/build-external-helpers.ts\";\nexport { resolvePlugin, resolvePreset } from \"./config/files/index.ts\";\n\nexport { getEnv } from \"./config/helpers/environment.ts\";\n\n// NOTE: Lazy re-exports aren't detected by the Node.js CJS-ESM interop.\n// These are handled by pluginInjectNodeReexportsHints in our babel.config.js\n// so that they can work well.\nexport * as types from \"@babel/types\";\nexport { tokTypes } from \"@babel/parser\";\nexport { default as traverse } from \"@babel/traverse\";\nexport { default as template } from \"@babel/template\";\n\nexport {\n createConfigItem,\n createConfigItemSync,\n createConfigItemAsync,\n} from \"./config/index.ts\";\n\nexport {\n loadPartialConfig,\n loadPartialConfigSync,\n loadPartialConfigAsync,\n loadOptions,\n loadOptionsAsync,\n} from \"./config/index.ts\";\nimport { loadOptionsSync } from \"./config/index.ts\";\nexport { loadOptionsSync };\n\nexport type {\n CallerMetadata,\n InputOptions,\n PluginAPI,\n PluginObject,\n PresetAPI,\n PresetObject,\n ConfigItem,\n} from \"./config/index.ts\";\n\nexport {\n transform,\n transformSync,\n transformAsync,\n type FileResult,\n} from \"./transform.ts\";\nexport {\n transformFile,\n transformFileSync,\n transformFileAsync,\n} from \"./transform-file.ts\";\nexport {\n transformFromAst,\n transformFromAstSync,\n transformFromAstAsync,\n} from \"./transform-ast.ts\";\nexport { parse, parseSync, parseAsync } from \"./parse.ts\";\n\n/**\n * Recommended set of compilable extensions. Not used in @babel/core directly, but meant as\n * as an easy source for tooling making use of @babel/core.\n */\nexport const DEFAULT_EXTENSIONS = Object.freeze([\n \".js\",\n \".jsx\",\n \".es6\",\n \".es\",\n \".mjs\",\n \".cjs\",\n] as const);\n\nimport Module from \"module\";\nimport * as thisFile from \"./index.ts\";\nif (USE_ESM && !IS_STANDALONE) {\n // Pass this module to the CJS proxy, so that it can be synchronously accessed.\n const cjsProxy = Module.createRequire(import.meta.url)(\"../cjs-proxy.cjs\");\n cjsProxy[\"__ initialize @babel/core cjs proxy __\"] = thisFile;\n}\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // For easier backward-compatibility, provide an API like the one we exposed in Babel 6.\n // eslint-disable-next-line no-restricted-globals\n exports.OptionManager = class OptionManager {\n init(opts: {}) {\n return loadOptionsSync(opts);\n }\n };\n\n // eslint-disable-next-line no-restricted-globals\n exports.Plugin = function Plugin(alias: string) {\n throw new Error(\n `The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`,\n );\n };\n}\n","export default function makeNoopPlugin() {\n let p;\n return ((p = (() => ({})) as any).default = p);\n}\n","/**\n * Since we bundle @babel/core, we don't need @babel/helper-plugin-utils\n * to handle older versions.\n */\n\nexport function declare(x: any) {\n return x;\n}\nexport { declare as declarePreset };\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport interface Options {\n helperVersion?: string;\n whitelist?: false | string[];\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { helperVersion = \"7.0.0-beta.0\", whitelist = false } = options;\n\n if (\n whitelist !== false &&\n (!Array.isArray(whitelist) || whitelist.some(w => typeof w !== \"string\"))\n ) {\n throw new Error(\n \".whitelist must be undefined, false, or an array of strings\",\n );\n }\n\n const helperWhitelist = whitelist ? new Set(whitelist) : null;\n\n return {\n name: \"external-helpers\",\n pre(file) {\n file.set(\"helperGenerator\", (name: string) => {\n // If the helper didn't exist yet at the version given, we bail\n // out and let Babel either insert it directly, or throw an error\n // so that plugins can handle that case properly.\n if (\n file.availableHelper &&\n !file.availableHelper(name, helperVersion)\n ) {\n return;\n }\n\n // babelCore.buildExternalHelpers() allows a whitelist of helpers that\n // will be inserted into the external helpers list. That same whitelist\n // should be passed into the plugin here in that case, so that we can\n // avoid referencing 'babelHelpers.XX' when the helper does not exist.\n if (helperWhitelist && !helperWhitelist.has(name)) return;\n\n return t.memberExpression(\n t.identifier(\"babelHelpers\"),\n t.identifier(name),\n );\n });\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-decimal\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"decimal\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n // TODO(Babel 8): Remove\n legacy?: boolean;\n // TODO(Babel 8): Remove \"2018-09\", \"2021-12\", '2022-03', '2023-01' and '2023-05'\n version?:\n | \"legacy\"\n | \"2018-09\"\n | \"2021-12\"\n | \"2022-03\"\n | \"2023-01\"\n | \"2023-05\"\n | \"2023-11\";\n // TODO(Babel 8): Remove\n decoratorsBeforeExport?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n let { version } = options;\n\n if (process.env.BABEL_8_BREAKING) {\n if (version === undefined) {\n throw new Error(\n \"The decorators plugin requires a 'version' option, whose value must be one of: \" +\n \"'2023-11', '2023-05', '2023-01', '2022-03', '2021-12', '2018-09', or 'legacy'.\",\n );\n }\n if (\n version !== \"2023-11\" &&\n version !== \"2023-05\" &&\n version !== \"2023-01\" &&\n version !== \"2022-03\" &&\n version !== \"2021-12\" &&\n version !== \"legacy\"\n ) {\n throw new Error(\"Unsupported decorators version: \" + version);\n }\n if (options.legacy !== undefined) {\n throw new Error(\n `The .legacy option has been removed in Babel 8. Use .version: \"legacy\" instead.`,\n );\n }\n if (options.decoratorsBeforeExport !== undefined) {\n throw new Error(\n `The .decoratorsBeforeExport option has been removed in Babel 8.`,\n );\n }\n } else {\n const { legacy } = options;\n\n if (legacy !== undefined) {\n if (typeof legacy !== \"boolean\") {\n throw new Error(\".legacy must be a boolean.\");\n }\n if (version !== undefined) {\n throw new Error(\n \"You can either use the .legacy or the .version option, not both.\",\n );\n }\n }\n\n if (version === undefined) {\n version = legacy ? \"legacy\" : \"2018-09\";\n } else if (\n version !== \"2023-11\" &&\n version !== \"2023-05\" &&\n version !== \"2023-01\" &&\n version !== \"2022-03\" &&\n version !== \"2021-12\" &&\n version !== \"2018-09\" &&\n version !== \"legacy\"\n ) {\n // Fallback to print the invalid version option regardless of the type\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n throw new Error(\"Unsupported decorators version: \" + version);\n }\n\n // eslint-disable-next-line no-var\n var { decoratorsBeforeExport } = options;\n if (decoratorsBeforeExport === undefined) {\n if (version === \"2021-12\" || version === \"2022-03\") {\n decoratorsBeforeExport = false;\n } else if (version === \"2018-09\") {\n throw new Error(\n \"The decorators plugin, when .version is '2018-09' or not specified,\" +\n \" requires a 'decoratorsBeforeExport' option, whose value must be a boolean.\",\n );\n }\n } else {\n if (\n version === \"legacy\" ||\n version === \"2022-03\" ||\n version === \"2023-01\"\n ) {\n throw new Error(\n `'decoratorsBeforeExport' can't be used with ${version} decorators.`,\n );\n }\n if (typeof decoratorsBeforeExport !== \"boolean\") {\n throw new Error(\"'decoratorsBeforeExport' must be a boolean.\");\n }\n }\n }\n\n return {\n name: \"syntax-decorators\",\n\n manipulateOptions({ generatorOpts }, parserOpts) {\n if (version === \"legacy\") {\n parserOpts.plugins.push(\"decorators-legacy\");\n } else if (process.env.BABEL_8_BREAKING) {\n parserOpts.plugins.push(\n [\"decorators\", { allowCallParenthesized: false }],\n \"decoratorAutoAccessors\",\n );\n } else {\n if (\n version === \"2023-01\" ||\n version === \"2023-05\" ||\n version === \"2023-11\"\n ) {\n parserOpts.plugins.push(\n [\"decorators\", { allowCallParenthesized: false }],\n \"decoratorAutoAccessors\",\n );\n } else if (version === \"2022-03\") {\n parserOpts.plugins.push(\n [\n \"decorators\",\n { decoratorsBeforeExport: false, allowCallParenthesized: false },\n ],\n \"decoratorAutoAccessors\",\n );\n } else if (version === \"2021-12\") {\n parserOpts.plugins.push(\n [\"decorators\", { decoratorsBeforeExport }],\n \"decoratorAutoAccessors\",\n );\n generatorOpts.decoratorsBeforeExport = decoratorsBeforeExport;\n } else if (version === \"2018-09\") {\n parserOpts.plugins.push([\"decorators\", { decoratorsBeforeExport }]);\n generatorOpts.decoratorsBeforeExport = decoratorsBeforeExport;\n }\n }\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-destructuring-private\",\n\n manipulateOptions(_, parserOpts) {\n parserOpts.plugins.push(\"destructuringPrivate\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-do-expressions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"doExpressions\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-explicit-resource-management\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"explicitResourceManagement\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-export-default-from\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"exportDefaultFrom\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { FlowPluginOptions } from \"@babel/parser\";\n\nexport default declare((api, options: FlowPluginOptions) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n // When enabled and plugins includes flow, all files should be parsed as if\n // the @flow pragma was provided.\n const { all, enums } = options;\n\n if (typeof all !== \"boolean\" && typeof all !== \"undefined\") {\n throw new Error(\".all must be a boolean, or undefined\");\n }\n\n if (typeof enums !== \"boolean\" && typeof enums !== \"undefined\") {\n throw new Error(\".enums must be a boolean, or undefined\");\n }\n\n return {\n name: \"syntax-flow\",\n\n manipulateOptions(opts, parserOpts) {\n if (!process.env.BABEL_8_BREAKING) {\n // If the file has already enabled TS, assume that this is not a\n // valid Flowtype file.\n if (\n parserOpts.plugins.some(\n p => (Array.isArray(p) ? p[0] : p) === \"typescript\",\n )\n ) {\n return;\n }\n }\n\n parserOpts.plugins.push([\"flow\", { all, enums }]);\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-function-bind\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"functionBind\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-function-sent\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"functionSent\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-import-assertions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"importAssertions\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n deprecatedAssertSyntax?: boolean;\n}\n\nexport default declare((api, { deprecatedAssertSyntax }: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.22.0\"));\n\n if (\n deprecatedAssertSyntax != null &&\n typeof deprecatedAssertSyntax !== \"boolean\"\n ) {\n throw new Error(\n \"'deprecatedAssertSyntax' must be a boolean, if specified.\",\n );\n }\n\n return {\n name: \"syntax-import-attributes\",\n\n manipulateOptions({ parserOpts, generatorOpts }) {\n generatorOpts.importAttributesKeyword ??= \"with\";\n parserOpts.plugins.push([\n \"importAttributes\",\n { deprecatedAssertSyntax: Boolean(deprecatedAssertSyntax) },\n ]);\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-import-reflection\",\n\n manipulateOptions(_, parserOpts) {\n parserOpts.plugins.push(\"importReflection\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-jsx\",\n\n manipulateOptions(opts, parserOpts) {\n if (!process.env.BABEL_8_BREAKING) {\n // If the Typescript plugin already ran, it will have decided whether\n // or not this is a TSX file.\n if (\n parserOpts.plugins.some(\n p => (Array.isArray(p) ? p[0] : p) === \"typescript\",\n )\n ) {\n return;\n }\n }\n\n parserOpts.plugins.push(\"jsx\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-module-blocks\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"moduleBlocks\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nexport interface Options {\n version: \"2023-07\";\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.23.0\"));\n\n v.validateTopLevelOptions(options, { version: \"version\" });\n const { version } = options;\n v.invariant(\n version === \"2023-07\",\n \"'.version' option required, representing the last proposal update. \" +\n \"Currently, the only supported value is '2023-07'.\",\n );\n\n return {\n name: \"syntax-optional-chaining-assign\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push([\"optionalChainingAssign\", { version }]);\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nconst PIPELINE_PROPOSALS = [\"minimal\", \"fsharp\", \"hack\", \"smart\"] as const;\nconst TOPIC_TOKENS = [\"^^\", \"@@\", \"^\", \"%\", \"#\"] as const;\nconst documentationURL =\n \"https://babeljs.io/docs/en/babel-plugin-proposal-pipeline-operator\";\n\nexport interface Options {\n proposal: (typeof PIPELINE_PROPOSALS)[number];\n topicToken?: (typeof TOPIC_TOKENS)[number];\n}\n\nexport default declare((api, { proposal, topicToken }: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n if (typeof proposal !== \"string\" || !PIPELINE_PROPOSALS.includes(proposal)) {\n const proposalList = PIPELINE_PROPOSALS.map(p => `\"${p}\"`).join(\", \");\n throw new Error(\n `The pipeline plugin requires a \"proposal\" option. \"proposal\" must be one of: ${proposalList}. See <${documentationURL}>.`,\n );\n }\n\n if (proposal === \"hack\" && !TOPIC_TOKENS.includes(topicToken)) {\n const topicTokenList = TOPIC_TOKENS.map(t => `\"${t}\"`).join(\", \");\n throw new Error(\n `The pipeline plugin in \"proposal\": \"hack\" mode also requires a \"topicToken\" option. \"topicToken\" must be one of: ${topicTokenList}. See <${documentationURL}>.`,\n );\n }\n\n return {\n name: \"syntax-pipeline-operator\",\n\n manipulateOptions(opts, parserOpts) {\n // Add parser options.\n parserOpts.plugins.push([\"pipelineOperator\", { proposal, topicToken }]);\n\n // Add generator options.\n opts.generatorOpts.topicToken = topicToken;\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n syntaxType: \"hash\" | \"bar\";\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-record-and-tuple\",\n\n manipulateOptions(opts, parserOpts) {\n opts.generatorOpts.recordAndTupleSyntaxType = options.syntaxType;\n\n parserOpts.plugins.push([\n \"recordAndTuple\",\n { syntaxType: options.syntaxType },\n ]);\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var removePlugin = function (plugins: any[], name: string) {\n const indices: number[] = [];\n plugins.forEach((plugin, i) => {\n const n = Array.isArray(plugin) ? plugin[0] : plugin;\n\n if (n === name) {\n indices.unshift(i);\n }\n });\n\n for (const i of indices) {\n plugins.splice(i, 1);\n }\n };\n}\n\nexport interface Options {\n disallowAmbiguousJSXLike?: boolean;\n dts?: boolean;\n isTSX?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { disallowAmbiguousJSXLike, dts } = opts;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { isTSX } = opts;\n }\n\n return {\n name: \"syntax-typescript\",\n\n manipulateOptions(opts, parserOpts) {\n if (!process.env.BABEL_8_BREAKING) {\n const { plugins } = parserOpts;\n // If the Flow syntax plugin already ran, remove it since Typescript\n // takes priority.\n removePlugin(plugins, \"flow\");\n\n // If the JSX syntax plugin already ran, remove it because JSX handling\n // in TS depends on the extensions, and is purely dependent on 'isTSX'.\n removePlugin(plugins, \"jsx\");\n\n // These are now enabled by default in @babel/parser, but we push\n // them for compat with older versions.\n plugins.push(\"objectRestSpread\", \"classProperties\");\n\n if (isTSX) {\n plugins.push(\"jsx\");\n }\n }\n\n parserOpts.plugins.push([\n \"typescript\",\n { disallowAmbiguousJSXLike, dts },\n ]);\n },\n };\n});\n","import type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport template from \"@babel/template\";\nimport {\n blockStatement,\n callExpression,\n functionExpression,\n isAssignmentPattern,\n isFunctionDeclaration,\n isRestElement,\n returnStatement,\n isCallExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\ntype ExpressionWrapperBuilder = (\n replacements?: Parameters>[0],\n) => t.CallExpression & {\n callee: t.FunctionExpression & {\n body: {\n body: [\n t.VariableDeclaration & {\n declarations: [\n { init: t.FunctionExpression | t.ArrowFunctionExpression },\n ];\n },\n ...ExtraBody,\n ];\n };\n };\n};\n\nconst buildAnonymousExpressionWrapper = template.expression(`\n (function () {\n var REF = FUNCTION;\n return function NAME(PARAMS) {\n return REF.apply(this, arguments);\n };\n })()\n`) as ExpressionWrapperBuilder<\n [t.ReturnStatement & { argument: t.FunctionExpression }]\n>;\n\nconst buildNamedExpressionWrapper = template.expression(`\n (function () {\n var REF = FUNCTION;\n function NAME(PARAMS) {\n return REF.apply(this, arguments);\n }\n return NAME;\n })()\n`) as ExpressionWrapperBuilder<\n [t.FunctionDeclaration, t.ReturnStatement & { argument: t.Identifier }]\n>;\n\nconst buildDeclarationWrapper = template.statements(`\n function NAME(PARAMS) { return REF.apply(this, arguments); }\n function REF() {\n REF = FUNCTION;\n return REF.apply(this, arguments);\n }\n`);\n\nfunction classOrObjectMethod(\n path: NodePath,\n callId: t.Expression,\n) {\n const node = path.node;\n const body = node.body;\n\n const container = functionExpression(\n null,\n [],\n blockStatement(body.body),\n true,\n );\n body.body = [\n returnStatement(callExpression(callExpression(callId, [container]), [])),\n ];\n\n // Regardless of whether or not the wrapped function is a an async method\n // or generator the outer function should not be\n node.async = false;\n node.generator = false;\n\n // Unwrap the wrapper IIFE's environment so super and this and such still work.\n (\n path.get(\"body.body.0.argument.callee.arguments.0\") as NodePath\n ).unwrapFunctionEnvironment();\n}\n\nfunction plainFunction(\n inPath: NodePath>,\n callId: t.Expression,\n noNewArrows: boolean,\n ignoreFunctionLength: boolean,\n) {\n let path: NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.CallExpression\n | t.ArrowFunctionExpression\n > = inPath;\n let node;\n let functionId = null;\n const nodeParams = inPath.node.params;\n\n if (path.isArrowFunctionExpression()) {\n if (process.env.BABEL_8_BREAKING) {\n path = path.arrowFunctionToExpression({ noNewArrows });\n } else {\n // arrowFunctionToExpression returns undefined in @babel/traverse < 7.18.10\n path = path.arrowFunctionToExpression({ noNewArrows }) ?? path;\n }\n node = path.node as\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.CallExpression;\n } else {\n node = path.node;\n }\n\n const isDeclaration = isFunctionDeclaration(node);\n\n let built = node;\n if (!isCallExpression(node)) {\n functionId = node.id;\n node.id = null;\n node.type = \"FunctionExpression\";\n built = callExpression(callId, [\n node as Exclude,\n ]);\n }\n\n const params: t.Identifier[] = [];\n for (const param of nodeParams) {\n if (isAssignmentPattern(param) || isRestElement(param)) {\n break;\n }\n params.push(path.scope.generateUidIdentifier(\"x\"));\n }\n\n const wrapperArgs = {\n NAME: functionId || null,\n REF: path.scope.generateUidIdentifier(functionId ? functionId.name : \"ref\"),\n FUNCTION: built,\n PARAMS: params,\n };\n\n if (isDeclaration) {\n const container = buildDeclarationWrapper(wrapperArgs);\n path.replaceWith(container[0]);\n path.insertAfter(container[1]);\n } else {\n let container;\n\n if (functionId) {\n container = buildNamedExpressionWrapper(wrapperArgs);\n } else {\n container = buildAnonymousExpressionWrapper(wrapperArgs);\n\n const returnFn = container.callee.body.body[1].argument;\n nameFunction({\n node: returnFn,\n parent: (path as NodePath).parent,\n scope: path.scope,\n });\n functionId = returnFn.id;\n }\n\n if (functionId || (!ignoreFunctionLength && params.length)) {\n path.replaceWith(container);\n } else {\n // we can omit this wrapper as the conditions it protects for do not apply\n path.replaceWith(built);\n }\n }\n}\n\nexport default function wrapFunction(\n path: NodePath,\n callId: t.Expression,\n // TODO(Babel 8): Consider defaulting to false for spec compliance\n noNewArrows: boolean = true,\n ignoreFunctionLength: boolean = false,\n) {\n if (path.isMethod()) {\n classOrObjectMethod(path, callId);\n } else {\n plainFunction(\n path as NodePath>,\n callId,\n noNewArrows,\n ignoreFunctionLength,\n );\n }\n}\n","import { addComment, type Node } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst PURE_ANNOTATION = \"#__PURE__\";\n\nconst isPureAnnotated = ({ leadingComments }: Node): boolean =>\n !!leadingComments &&\n leadingComments.some(comment => /[@#]__PURE__/.test(comment.value));\n\nexport default function annotateAsPure(pathOrNode: Node | NodePath): void {\n const node =\n // @ts-expect-error Node will not have `node` property\n (pathOrNode[\"node\"] || pathOrNode) as Node;\n if (isPureAnnotated(node)) {\n return;\n }\n addComment(node, \"leading\", PURE_ANNOTATION);\n}\n","/* @noflow */\n\nimport type { NodePath } from \"@babel/traverse\";\nimport wrapFunction from \"@babel/helper-wrap-function\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport { traverse, types as t } from \"@babel/core\";\nconst {\n callExpression,\n cloneNode,\n isIdentifier,\n isThisExpression,\n yieldExpression,\n} = t;\n\nconst awaitVisitor = traverse.visitors.merge<{ wrapAwait: t.Expression }>([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n AwaitExpression(path, { wrapAwait }) {\n const argument = path.get(\"argument\");\n\n path.replaceWith(\n yieldExpression(\n wrapAwait\n ? callExpression(cloneNode(wrapAwait), [argument.node])\n : argument.node,\n ),\n );\n },\n },\n environmentVisitor,\n]);\n\nexport default function (\n path: NodePath,\n helpers: {\n wrapAsync: t.Expression;\n wrapAwait?: t.Expression;\n },\n noNewArrows?: boolean,\n ignoreFunctionLength?: boolean,\n) {\n path.traverse(awaitVisitor, {\n wrapAwait: helpers.wrapAwait,\n });\n\n const isIIFE = checkIsIIFE(path);\n\n path.node.async = false;\n path.node.generator = true;\n\n wrapFunction(\n path,\n cloneNode(helpers.wrapAsync),\n noNewArrows,\n ignoreFunctionLength,\n );\n\n const isProperty =\n path.isObjectMethod() ||\n path.isClassMethod() ||\n path.parentPath.isObjectProperty() ||\n path.parentPath.isClassProperty();\n\n if (!isProperty && !isIIFE && path.isExpression()) {\n annotateAsPure(path);\n }\n\n function checkIsIIFE(path: NodePath) {\n if (path.parentPath.isCallExpression({ callee: path.node })) {\n return true;\n }\n\n // try to catch calls to Function#bind, as emitted by arrowFunctionToExpression in spec mode\n // this may also catch .bind(this) written by users, but does it matter? 🤔\n const { parentPath } = path;\n if (\n parentPath.isMemberExpression() &&\n isIdentifier(parentPath.node.property, { name: \"bind\" })\n ) {\n const { parentPath: bindCall } = parentPath;\n\n // (function () { ... }).bind(this)()\n\n return (\n // first, check if the .bind is actually being called\n bindCall.isCallExpression() &&\n // and whether its sole argument is 'this'\n bindCall.node.arguments.length === 1 &&\n isThisExpression(bindCall.node.arguments[0]) &&\n // and whether the result of the .bind(this) is being called\n bindCall.parentPath.isCallExpression({ callee: bindCall.node })\n );\n }\n\n return false;\n }\n}\n","import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildForAwait = template(`\n async function wrapper() {\n var ITERATOR_ABRUPT_COMPLETION = false;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY;\n try {\n for (\n var ITERATOR_KEY = GET_ITERATOR(OBJECT), STEP_KEY;\n ITERATOR_ABRUPT_COMPLETION = !(STEP_KEY = await ITERATOR_KEY.next()).done;\n ITERATOR_ABRUPT_COMPLETION = false\n ) {\n }\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (ITERATOR_ABRUPT_COMPLETION && ITERATOR_KEY.return != null) {\n await ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n }\n`);\n\nexport default function (\n path: NodePath,\n { getAsyncIterator }: { getAsyncIterator: t.Identifier },\n) {\n const { node, scope, parent } = path;\n\n const stepKey = scope.generateUidIdentifier(\"step\");\n const stepValue = t.memberExpression(stepKey, t.identifier(\"value\"));\n const left = node.left;\n let declar;\n\n if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) {\n // for await (i of test), for await ({ i } of test)\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, stepValue),\n );\n } else if (t.isVariableDeclaration(left)) {\n // for await (let i of test)\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, stepValue),\n ]);\n }\n let template = buildForAwait({\n ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier(\"didIteratorError\"),\n ITERATOR_ABRUPT_COMPLETION: scope.generateUidIdentifier(\n \"iteratorAbruptCompletion\",\n ),\n ITERATOR_ERROR_KEY: scope.generateUidIdentifier(\"iteratorError\"),\n ITERATOR_KEY: scope.generateUidIdentifier(\"iterator\"),\n GET_ITERATOR: getAsyncIterator,\n OBJECT: node.right,\n STEP_KEY: t.cloneNode(stepKey),\n });\n\n // remove async function wrapper\n // @ts-expect-error todo(flow->ts) improve type annotation for buildForAwait\n template = template.body.body as t.Statement[];\n\n const isLabeledParent = t.isLabeledStatement(parent);\n const tryBody = (template[3] as t.TryStatement).block.body;\n const loop = tryBody[0] as t.ForStatement;\n\n if (isLabeledParent) {\n tryBody[0] = t.labeledStatement(parent.label, loop);\n }\n\n return {\n replaceParent: isLabeledParent,\n node: template,\n declar,\n loop,\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport { traverse, types as t, type PluginPass } from \"@babel/core\";\nimport rewriteForAwait from \"./for-await.ts\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const yieldStarVisitor = traverse.visitors.merge([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n YieldExpression({ node }, state) {\n if (!node.delegate) return;\n const asyncIter = t.callExpression(state.addHelper(\"asyncIterator\"), [\n node.argument,\n ]);\n node.argument = t.callExpression(\n state.addHelper(\"asyncGeneratorDelegate\"),\n process.env.BABEL_8_BREAKING\n ? [asyncIter]\n : [asyncIter, state.addHelper(\"awaitAsyncGenerator\")],\n );\n },\n },\n environmentVisitor,\n ]);\n\n const forAwaitVisitor = traverse.visitors.merge([\n {\n ArrowFunctionExpression(path) {\n path.skip();\n },\n\n ForOfStatement(path: NodePath, { file }) {\n const { node } = path;\n if (!node.await) return;\n\n const build = rewriteForAwait(path, {\n getAsyncIterator: file.addHelper(\"asyncIterator\"),\n });\n\n const { declar, loop } = build;\n const block = loop.body as t.BlockStatement;\n\n // ensure that it's a block so we can take all its statements\n path.ensureBlock();\n\n // add the value declaration to the new loop body\n if (declar) {\n block.body.push(declar);\n if (path.node.body.body.length) {\n block.body.push(t.blockStatement(path.node.body.body));\n }\n } else {\n block.body.push(...path.node.body.body);\n }\n\n t.inherits(loop, node);\n t.inherits(loop.body, node.body);\n\n const p = build.replaceParent ? path.parentPath : path;\n p.replaceWithMultiple(build.node);\n\n // TODO: Avoid crawl\n p.scope.parent.crawl();\n },\n },\n environmentVisitor,\n ]);\n\n const visitor: Visitor = {\n Function(path, state) {\n if (!path.node.async) return;\n\n path.traverse(forAwaitVisitor, state);\n\n if (!path.node.generator) return;\n\n path.traverse(yieldStarVisitor, state);\n\n // We don't need to pass the noNewArrows assumption, since\n // async generators are never arrow functions.\n remapAsyncToGenerator(path, {\n wrapAsync: state.addHelper(\"wrapAsyncGenerator\"),\n wrapAwait: state.addHelper(\"awaitAsyncGenerator\"),\n });\n },\n };\n\n return {\n name: \"transform-async-generator-functions\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-async-generators\").default,\n\n visitor: {\n Program(path, state) {\n // We need to traverse the ast here (instead of just vising Function\n // in the top level visitor) because for-await needs to run before the\n // async-to-generator plugin. This is because for-await is transpiled\n // using \"await\" expressions, which are then converted to \"yield\".\n //\n // This is bad for performance, but plugin ordering will allow as to\n // directly visit Function in the top level visitor.\n path.traverse(visitor, state);\n },\n },\n };\n});\n","import type { NodePath } from \"@babel/traverse\";\n\n/**\n * Test if a NodePath will be cast to boolean when evaluated.\n *\n * @example\n * // returns true\n * const nodePathAQDotB = NodePath(\"if (a?.#b) {}\").get(\"test\"); // a?.#b\n * willPathCastToBoolean(nodePathAQDotB)\n * @example\n * // returns false\n * willPathCastToBoolean(NodePath(\"a?.#b\"))\n * @todo Respect transparent expression wrappers\n * @see {@link packages/babel-plugin-transform-optional-chaining/src/util.js}\n * @param {NodePath} path\n * @returns {boolean}\n */\nexport function willPathCastToBoolean(path: NodePath): boolean {\n const maybeWrapped = path;\n const { node, parentPath } = maybeWrapped;\n if (parentPath.isLogicalExpression()) {\n const { operator, right } = parentPath.node;\n if (\n operator === \"&&\" ||\n operator === \"||\" ||\n (operator === \"??\" && node === right)\n ) {\n return willPathCastToBoolean(parentPath);\n }\n }\n if (parentPath.isSequenceExpression()) {\n const { expressions } = parentPath.node;\n if (expressions[expressions.length - 1] === node) {\n return willPathCastToBoolean(parentPath);\n } else {\n // if it is in the middle of a sequence expression, we don't\n // care the return value so just cast to boolean for smaller\n // output\n return true;\n }\n }\n return (\n parentPath.isConditional({ test: node }) ||\n parentPath.isUnaryExpression({ operator: \"!\" }) ||\n parentPath.isLoop({ test: node })\n );\n}\n","import type { NodePath, Visitor } from \"@babel/traverse\";\nimport {\n LOGICAL_OPERATORS,\n arrowFunctionExpression,\n assignmentExpression,\n binaryExpression,\n booleanLiteral,\n callExpression,\n cloneNode,\n conditionalExpression,\n identifier,\n isMemberExpression,\n isOptionalCallExpression,\n isOptionalMemberExpression,\n isUpdateExpression,\n logicalExpression,\n memberExpression,\n nullLiteral,\n optionalCallExpression,\n optionalMemberExpression,\n sequenceExpression,\n updateExpression,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\nimport { willPathCastToBoolean } from \"./util.ts\";\n\nclass AssignmentMemoiser {\n private _map: WeakMap;\n constructor() {\n this._map = new WeakMap();\n }\n\n has(key: t.Expression) {\n return this._map.has(key);\n }\n\n get(key: t.Expression) {\n if (!this.has(key)) return;\n\n const record = this._map.get(key);\n const { value } = record;\n\n record.count--;\n if (record.count === 0) {\n // The `count` access is the outermost function call (hopefully), so it\n // does the assignment.\n return assignmentExpression(\"=\", value, key);\n }\n return value;\n }\n\n set(key: t.Expression, value: t.Identifier, count: number) {\n return this._map.set(key, { count, value });\n }\n}\n\nfunction toNonOptional(\n path: NodePath,\n base: t.Expression,\n): t.Expression {\n const { node } = path;\n if (isOptionalMemberExpression(node)) {\n return memberExpression(base, node.property, node.computed);\n }\n\n if (path.isOptionalCallExpression()) {\n const callee = path.get(\"callee\");\n if (path.node.optional && callee.isOptionalMemberExpression()) {\n // object must be a conditional expression because the optional private access in object has been transformed\n const object = callee.node.object as t.ConditionalExpression;\n const context = path.scope.maybeGenerateMemoised(object);\n callee\n .get(\"object\")\n .replaceWith(assignmentExpression(\"=\", context, object));\n\n return callExpression(memberExpression(base, identifier(\"call\")), [\n context,\n ...path.node.arguments,\n ]);\n }\n\n return callExpression(base, path.node.arguments);\n }\n\n return path.node;\n}\n\n// Determines if the current path is in a detached tree. This can happen when\n// we are iterating on a path, and replace an ancestor with a new node. Babel\n// doesn't always stop traversing the old node tree, and that can cause\n// inconsistencies.\nfunction isInDetachedTree(path: NodePath) {\n while (path) {\n if (path.isProgram()) break;\n\n const { parentPath, container, listKey } = path;\n const parentNode = parentPath.node;\n if (listKey) {\n if (\n container !==\n // @ts-expect-error listKey must be a valid parent node key\n parentNode[listKey]\n ) {\n return true;\n }\n } else {\n if (container !== parentNode) return true;\n }\n\n path = parentPath;\n }\n\n return false;\n}\n\ntype Member = NodePath;\n\nconst handle = {\n memoise() {\n // noop.\n },\n\n handle(this: HandlerState, member: Member, noDocumentAll: boolean) {\n const { node, parent, parentPath, scope } = member;\n\n if (member.isOptionalMemberExpression()) {\n // Transforming optional chaining requires we replace ancestors.\n if (isInDetachedTree(member)) return;\n\n // We're looking for the end of _this_ optional chain, which is actually\n // the \"rightmost\" property access of the chain. This is because\n // everything up to that property access is \"optional\".\n //\n // Let's take the case of `FOO?.BAR.baz?.qux`, with `FOO?.BAR` being our\n // member. The \"end\" to most users would be `qux` property access.\n // Everything up to it could be skipped if it `FOO` were nullish. But\n // actually, we can consider the `baz` access to be the end. So we're\n // looking for the nearest optional chain that is `optional: true`.\n const endPath = member.find(({ node, parent }) => {\n if (isOptionalMemberExpression(parent)) {\n // We need to check `parent.object` since we could be inside the\n // computed expression of a `bad?.[FOO?.BAR]`. In this case, the\n // endPath is the `FOO?.BAR` member itself.\n return parent.optional || parent.object !== node;\n }\n if (isOptionalCallExpression(parent)) {\n // Checking `parent.callee` since we could be in the arguments, eg\n // `bad?.(FOO?.BAR)`.\n // Also skip `FOO?.BAR` in `FOO?.BAR?.()` since we need to transform the optional call to ensure proper this\n return (\n // In FOO?.#BAR?.(), endPath points the optional call expression so we skip FOO?.#BAR\n (node !== member.node && parent.optional) || parent.callee !== node\n );\n }\n return true;\n }) as NodePath;\n\n // Replace `function (a, x = a.b?.#c) {}` to `function (a, x = (() => a.b?.#c)() ){}`\n // so the temporary variable can be injected in correct scope\n // This can be further optimized to avoid unnecessary IIFE\n if (scope.path.isPattern()) {\n endPath.replaceWith(\n // The injected member will be queued and eventually transformed when visited\n callExpression(arrowFunctionExpression([], endPath.node), []),\n );\n return;\n }\n\n const willEndPathCastToBoolean = willPathCastToBoolean(endPath);\n\n const rootParentPath = endPath.parentPath;\n if (rootParentPath.isUpdateExpression({ argument: node })) {\n throw member.buildCodeFrameError(`can't handle update expression`);\n }\n const isAssignment = rootParentPath.isAssignmentExpression({\n left: endPath.node,\n });\n const isDeleteOperation = rootParentPath.isUnaryExpression({\n operator: \"delete\",\n });\n if (\n isDeleteOperation &&\n endPath.isOptionalMemberExpression() &&\n endPath.get(\"property\").isPrivateName()\n ) {\n // @babel/parser will throw error on `delete obj?.#x`.\n // This error serves as fallback when `delete obj?.#x` is constructed from babel types\n throw member.buildCodeFrameError(\n `can't delete a private class element`,\n );\n }\n\n // Now, we're looking for the start of this optional chain, which is\n // optional to the left of this member.\n //\n // Let's take the case of `foo?.bar?.baz.QUX?.BAM`, with `QUX?.BAM` being\n // our member. The \"start\" to most users would be `foo` object access.\n // But actually, we can consider the `bar` access to be the start. So\n // we're looking for the nearest optional chain that is `optional: true`,\n // which is guaranteed to be somewhere in the object/callee tree.\n let startingOptional: NodePath = member;\n for (;;) {\n if (startingOptional.isOptionalMemberExpression()) {\n if (startingOptional.node.optional) break;\n startingOptional = startingOptional.get(\"object\");\n continue;\n } else if (startingOptional.isOptionalCallExpression()) {\n if (startingOptional.node.optional) break;\n startingOptional = startingOptional.get(\"callee\");\n continue;\n }\n // prevent infinite loop: unreachable if the AST is well-formed\n throw new Error(\n `Internal error: unexpected ${startingOptional.node.type}`,\n );\n }\n\n const startingNode = startingOptional.isOptionalMemberExpression()\n ? startingOptional.node.object\n : startingOptional.node.callee;\n const baseNeedsMemoised = scope.maybeGenerateMemoised(startingNode);\n const baseRef = baseNeedsMemoised ?? startingNode;\n\n // Compute parentIsOptionalCall before `startingOptional` is replaced\n // as `node` may refer to `startingOptional.node` before replaced.\n const parentIsOptionalCall = parentPath.isOptionalCallExpression({\n callee: node,\n });\n // here we use a function to wrap `parentIsOptionalCall` to get type\n // for parent, do not use it anywhere else\n // See https://github.com/microsoft/TypeScript/issues/10421\n const isOptionalCall = (\n parent: t.Node,\n ): parent is t.OptionalCallExpression => parentIsOptionalCall;\n // if parentIsCall is true, it implies that node.extra.parenthesized is always true\n const parentIsCall = parentPath.isCallExpression({ callee: node });\n startingOptional.replaceWith(toNonOptional(startingOptional, baseRef));\n if (isOptionalCall(parent)) {\n if (parent.optional) {\n parentPath.replaceWith(this.optionalCall(member, parent.arguments));\n } else {\n parentPath.replaceWith(this.call(member, parent.arguments));\n }\n } else if (parentIsCall) {\n // `(a?.#b)()` to `(a == null ? void 0 : a.#b.bind(a))()`\n member.replaceWith(this.boundGet(member));\n } else if (\n (process.env.BABEL_8_BREAKING || this.delete) &&\n parentPath.isUnaryExpression({ operator: \"delete\" })\n ) {\n parentPath.replaceWith(this.delete(member));\n } else if (parentPath.isAssignmentExpression()) {\n // `a?.#b = c` to `(a == null ? void 0 : a.#b = c)`\n handleAssignment(this, member, parentPath);\n } else {\n member.replaceWith(this.get(member));\n }\n\n let regular: t.Expression = member.node;\n for (let current: NodePath = member; current !== endPath; ) {\n const parentPath = current.parentPath as NodePath;\n // skip transforming `Foo.#BAR?.call(FOO)`\n if (\n parentPath === endPath &&\n isOptionalCall(parent) &&\n parent.optional\n ) {\n regular = parentPath.node;\n break;\n }\n regular = toNonOptional(parentPath, regular);\n current = parentPath;\n }\n\n let context: t.Identifier;\n const endParentPath = endPath.parentPath as NodePath;\n if (\n isMemberExpression(regular) &&\n endParentPath.isOptionalCallExpression({\n callee: endPath.node,\n optional: true,\n })\n ) {\n const { object } = regular;\n context = member.scope.maybeGenerateMemoised(object);\n if (context) {\n regular.object = assignmentExpression(\n \"=\",\n context,\n // object must not be Super when `context` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n object as t.Expression,\n );\n }\n }\n\n let replacementPath: NodePath = endPath;\n if (isDeleteOperation || isAssignment) {\n replacementPath = endParentPath;\n regular = endParentPath.node;\n }\n\n const baseMemoised = baseNeedsMemoised\n ? assignmentExpression(\n \"=\",\n // When base needs memoised, the baseRef must be an identifier\n cloneNode(baseRef as t.Identifier),\n cloneNode(startingNode),\n )\n : cloneNode(baseRef);\n\n if (willEndPathCastToBoolean) {\n let nonNullishCheck;\n if (noDocumentAll) {\n nonNullishCheck = binaryExpression(\"!=\", baseMemoised, nullLiteral());\n } else {\n nonNullishCheck = logicalExpression(\n \"&&\",\n binaryExpression(\"!==\", baseMemoised, nullLiteral()),\n binaryExpression(\n \"!==\",\n cloneNode(baseRef),\n scope.buildUndefinedNode(),\n ),\n );\n }\n replacementPath.replaceWith(\n logicalExpression(\"&&\", nonNullishCheck, regular),\n );\n } else {\n let nullishCheck;\n if (noDocumentAll) {\n nullishCheck = binaryExpression(\"==\", baseMemoised, nullLiteral());\n } else {\n nullishCheck = logicalExpression(\n \"||\",\n binaryExpression(\"===\", baseMemoised, nullLiteral()),\n binaryExpression(\n \"===\",\n cloneNode(baseRef),\n scope.buildUndefinedNode(),\n ),\n );\n }\n\n replacementPath.replaceWith(\n conditionalExpression(\n nullishCheck,\n isDeleteOperation\n ? booleanLiteral(true)\n : scope.buildUndefinedNode(),\n regular,\n ),\n );\n }\n\n // context and isDeleteOperation can not be both truthy\n if (context) {\n const endParent = endParentPath.node as t.OptionalCallExpression;\n endParentPath.replaceWith(\n optionalCallExpression(\n optionalMemberExpression(\n endParent.callee,\n identifier(\"call\"),\n false,\n true,\n ),\n [cloneNode(context), ...endParent.arguments],\n false,\n ),\n );\n }\n\n return;\n }\n\n // MEMBER++ -> _set(MEMBER, (ref = _get(MEMBER), ref2 = ref++, ref)), ref2\n // ++MEMBER -> _set(MEMBER, (ref = _get(MEMBER), ++ref))\n if (isUpdateExpression(parent, { argument: node })) {\n if (this.simpleSet) {\n member.replaceWith(this.simpleSet(member));\n return;\n }\n\n const { operator, prefix } = parent;\n\n // Give the state handler a chance to memoise the member, since we'll\n // reference it twice. The second access (the set) should do the memo\n // assignment.\n this.memoise(member, 2);\n\n const ref = scope.generateUidIdentifierBasedOnNode(node);\n scope.push({ id: ref });\n\n const seq: t.Expression[] = [\n // ref = _get(MEMBER)\n assignmentExpression(\"=\", cloneNode(ref), this.get(member)),\n ];\n\n if (prefix) {\n seq.push(updateExpression(operator, cloneNode(ref), prefix));\n\n // (ref = _get(MEMBER), ++ref)\n const value = sequenceExpression(seq);\n parentPath.replaceWith(this.set(member, value));\n\n return;\n } else {\n const ref2 = scope.generateUidIdentifierBasedOnNode(node);\n scope.push({ id: ref2 });\n\n seq.push(\n assignmentExpression(\n \"=\",\n cloneNode(ref2),\n updateExpression(operator, cloneNode(ref), prefix),\n ),\n cloneNode(ref),\n );\n\n // (ref = _get(MEMBER), ref2 = ref++, ref)\n const value = sequenceExpression(seq);\n parentPath.replaceWith(\n sequenceExpression([this.set(member, value), cloneNode(ref2)]),\n );\n\n return;\n }\n }\n\n // MEMBER = VALUE -> _set(MEMBER, VALUE)\n // MEMBER += VALUE -> _set(MEMBER, _get(MEMBER) + VALUE)\n // MEMBER ??= VALUE -> _get(MEMBER) ?? _set(MEMBER, VALUE)\n if (parentPath.isAssignmentExpression({ left: node })) {\n handleAssignment(this, member, parentPath);\n return;\n }\n\n // MEMBER(ARGS) -> _call(MEMBER, ARGS)\n if (parentPath.isCallExpression({ callee: node })) {\n parentPath.replaceWith(this.call(member, parentPath.node.arguments));\n return;\n }\n\n // MEMBER?.(ARGS) -> _optionalCall(MEMBER, ARGS)\n if (parentPath.isOptionalCallExpression({ callee: node })) {\n // Replace `function (a, x = a.b.#c?.()) {}` to `function (a, x = (() => a.b.#c?.())() ){}`\n // so the temporary variable can be injected in correct scope\n // This can be further optimized to avoid unnecessary IIFE\n if (scope.path.isPattern()) {\n parentPath.replaceWith(\n // The injected member will be queued and eventually transformed when visited\n callExpression(arrowFunctionExpression([], parentPath.node), []),\n );\n return;\n }\n parentPath.replaceWith(\n this.optionalCall(member, parentPath.node.arguments),\n );\n return;\n }\n\n // delete MEMBER -> _delete(MEMBER)\n if (\n (process.env.BABEL_8_BREAKING || this.delete) &&\n parentPath.isUnaryExpression({ operator: \"delete\" })\n ) {\n parentPath.replaceWith(this.delete(member));\n return;\n }\n\n // for (MEMBER of ARR)\n // for (MEMBER in ARR)\n // { KEY: MEMBER } = OBJ -> { KEY: _destructureSet(MEMBER) } = OBJ\n // { KEY: MEMBER = _VALUE } = OBJ -> { KEY: _destructureSet(MEMBER) = _VALUE } = OBJ\n // {...MEMBER} -> {..._destructureSet(MEMBER)}\n //\n // [MEMBER] = ARR -> [_destructureSet(MEMBER)] = ARR\n // [MEMBER = _VALUE] = ARR -> [_destructureSet(MEMBER) = _VALUE] = ARR\n // [...MEMBER] -> [..._destructureSet(MEMBER)]\n if (\n // for (MEMBER of ARR)\n // for (MEMBER in ARR)\n parentPath.isForXStatement({ left: node }) ||\n // { KEY: MEMBER } = OBJ\n (parentPath.isObjectProperty({ value: node }) &&\n parentPath.parentPath.isObjectPattern()) ||\n // { KEY: MEMBER = _VALUE } = OBJ\n (parentPath.isAssignmentPattern({ left: node }) &&\n parentPath.parentPath.isObjectProperty({ value: parent }) &&\n parentPath.parentPath.parentPath.isObjectPattern()) ||\n // [MEMBER] = ARR\n parentPath.isArrayPattern() ||\n // [MEMBER = _VALUE] = ARR\n (parentPath.isAssignmentPattern({ left: node }) &&\n parentPath.parentPath.isArrayPattern()) ||\n // {...MEMBER}\n // [...MEMBER]\n parentPath.isRestElement()\n ) {\n member.replaceWith(this.destructureSet(member));\n return;\n }\n\n if (parentPath.isTaggedTemplateExpression()) {\n // MEMBER -> _get(MEMBER).bind(this)\n member.replaceWith(this.boundGet(member));\n } else {\n // MEMBER -> _get(MEMBER)\n member.replaceWith(this.get(member));\n }\n },\n};\n\nfunction handleAssignment(\n state: HandlerState,\n member: NodePath,\n parentPath: NodePath,\n) {\n if (state.simpleSet) {\n member.replaceWith(state.simpleSet(member));\n return;\n }\n\n const { operator, right: value } = parentPath.node;\n\n if (operator === \"=\") {\n parentPath.replaceWith(state.set(member, value));\n } else {\n const operatorTrunc = operator.slice(0, -1);\n if (LOGICAL_OPERATORS.includes(operatorTrunc)) {\n // Give the state handler a chance to memoise the member, since we'll\n // reference it twice. The first access (the get) should do the memo\n // assignment.\n state.memoise(member, 1);\n parentPath.replaceWith(\n logicalExpression(\n operatorTrunc as t.LogicalExpression[\"operator\"],\n state.get(member),\n state.set(member, value),\n ),\n );\n } else {\n // Here, the second access (the set) is evaluated first.\n state.memoise(member, 2);\n parentPath.replaceWith(\n state.set(\n member,\n binaryExpression(\n operatorTrunc as t.BinaryExpression[\"operator\"],\n state.get(member),\n value,\n ),\n ),\n );\n }\n }\n}\n\nexport interface Handler {\n memoise?(\n this: HandlerState & State,\n member: Member,\n count: number,\n ): void;\n destructureSet(\n this: HandlerState & State,\n member: Member,\n ): t.Expression;\n boundGet(this: HandlerState & State, member: Member): t.Expression;\n simpleSet?(this: HandlerState & State, member: Member): t.Expression;\n get(this: HandlerState & State, member: Member): t.Expression;\n set(\n this: HandlerState & State,\n member: Member,\n value: t.Expression,\n ): t.Expression;\n call(\n this: HandlerState & State,\n member: Member,\n args: t.CallExpression[\"arguments\"],\n ): t.Expression;\n optionalCall(\n this: HandlerState & State,\n member: Member,\n args: t.OptionalCallExpression[\"arguments\"],\n ): t.Expression;\n delete(this: HandlerState & State, member: Member): t.Expression;\n}\n\nexport interface HandlerState extends Handler {\n handle(\n this: HandlerState & State,\n member: Member,\n noDocumentAll?: boolean,\n ): void;\n memoiser: AssignmentMemoiser;\n}\n\n// We do not provide a default traversal visitor\n// Instead, caller passes one, and must call `state.handle` on the members\n// it wishes to be transformed.\n// Additionally, the caller must pass in a state object with at least\n// get, set, and call methods.\n// Optionally, a memoise method may be defined on the state, which will be\n// called when the member is a self-referential update.\nexport default function memberExpressionToFunctions(\n path: NodePath,\n visitor: Visitor>,\n state: Handler & CustomState,\n) {\n path.traverse(visitor, {\n ...handle,\n ...state,\n memoiser: new AssignmentMemoiser(),\n });\n}\n","import {\n callExpression,\n identifier,\n isIdentifier,\n isSpreadElement,\n memberExpression,\n optionalCallExpression,\n optionalMemberExpression,\n} from \"@babel/types\";\nimport type {\n CallExpression,\n Expression,\n OptionalCallExpression,\n} from \"@babel/types\";\n\n/**\n * A helper function that generates a new call expression with given thisNode.\n It will also optimize `(...arguments)` to `.apply(arguments)`\n *\n * @export\n * @param {Expression} callee The callee of call expression\n * @param {Expression} thisNode The desired this of call expression\n * @param {Readonly} args The arguments of call expression\n * @param {boolean} optional Whether the call expression is optional\n * @returns {CallExpression | OptionalCallExpression} The generated new call expression\n */\nexport default function optimiseCallExpression(\n callee: Expression,\n thisNode: Expression,\n args: Readonly,\n optional: boolean,\n): CallExpression | OptionalCallExpression {\n if (\n args.length === 1 &&\n isSpreadElement(args[0]) &&\n isIdentifier(args[0].argument, { name: \"arguments\" })\n ) {\n // a.b?.(...arguments);\n if (optional) {\n return optionalCallExpression(\n optionalMemberExpression(callee, identifier(\"apply\"), false, true),\n [thisNode, args[0].argument],\n false,\n );\n }\n // a.b(...arguments);\n return callExpression(memberExpression(callee, identifier(\"apply\")), [\n thisNode,\n args[0].argument,\n ]);\n } else {\n // a.b?.(arg1, arg2)\n if (optional) {\n return optionalCallExpression(\n optionalMemberExpression(callee, identifier(\"call\"), false, true),\n [thisNode, ...args],\n false,\n );\n }\n // a.b(arg1, arg2)\n return callExpression(memberExpression(callee, identifier(\"call\")), [\n thisNode,\n ...args,\n ]);\n }\n}\n","import type { File } from \"@babel/core\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type { HandlerState } from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport { traverse, template, types as t } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\nconst {\n assignmentExpression,\n booleanLiteral,\n callExpression,\n cloneNode,\n identifier,\n memberExpression,\n sequenceExpression,\n stringLiteral,\n thisExpression,\n} = t;\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM && !IS_STANDALONE) {\n // eslint-disable-next-line no-restricted-globals\n const ns = require(\"@babel/helper-environment-visitor\");\n // eslint-disable-next-line no-restricted-globals\n exports.environmentVisitor = ns.default;\n // eslint-disable-next-line no-restricted-globals\n exports.skipAllButComputedKey = ns.skipAllButComputedKey;\n}\n\ntype ThisRef = {\n needAccessFirst?: boolean;\n this: t.ThisExpression;\n};\n\n/**\n * Creates an expression which result is the proto of objectRef.\n *\n * @example isStatic === true\n *\n * helpers.getPrototypeOf(CLASS)\n *\n * @example isStatic === false\n *\n * helpers.getPrototypeOf(CLASS.prototype)\n */\nfunction getPrototypeOfExpression(\n objectRef: t.Identifier,\n isStatic: boolean,\n file: File,\n isPrivateMethod: boolean,\n) {\n objectRef = cloneNode(objectRef);\n const targetRef =\n isStatic || isPrivateMethod\n ? objectRef\n : memberExpression(objectRef, identifier(\"prototype\"));\n\n return callExpression(file.addHelper(\"getPrototypeOf\"), [targetRef]);\n}\n\nconst visitor = traverse.visitors.merge<\n HandlerState & ReplaceState\n>([\n environmentVisitor,\n {\n Super(path, state) {\n const { node, parentPath } = path;\n if (!parentPath.isMemberExpression({ object: node })) return;\n state.handle(parentPath);\n },\n },\n]);\n\nconst unshadowSuperBindingVisitor = traverse.visitors.merge<{\n refName: string;\n}>([\n environmentVisitor,\n {\n Scopable(path, { refName }) {\n // https://github.com/Zzzen/babel/pull/1#pullrequestreview-564833183\n const binding = path.scope.getOwnBinding(refName);\n if (binding && binding.identifier.name === refName) {\n path.scope.rename(refName);\n }\n },\n },\n]);\n\ntype SharedState = {\n file: File;\n scope: Scope;\n isDerivedConstructor: boolean;\n isStatic: boolean;\n isPrivateMethod: boolean;\n getObjectRef: () => t.Identifier;\n getSuperRef: () => t.Identifier;\n // we dont need boundGet here, but memberExpressionToFunctions handler needs it.\n boundGet: HandlerState[\"get\"];\n};\n\ntype Handler = HandlerState & SharedState;\ntype SuperMember = NodePath<\n t.MemberExpression & {\n object: t.Super;\n property: Exclude;\n }\n>;\n\ninterface SpecHandler\n extends Pick<\n Handler,\n | \"memoise\"\n | \"get\"\n | \"set\"\n | \"destructureSet\"\n | \"call\"\n | \"optionalCall\"\n | \"delete\"\n > {\n _get(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n thisRefs: ThisRef,\n ): t.CallExpression;\n _getThisRefs(): ThisRef;\n prop(this: Handler & SpecHandler, superMember: SuperMember): t.Expression;\n}\n\nconst specHandlers: SpecHandler = {\n memoise(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n count: number,\n ) {\n const { scope, node } = superMember;\n const { computed, property } = node;\n if (!computed) {\n return;\n }\n\n const memo = scope.maybeGenerateMemoised(property);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(property, memo, count);\n },\n\n prop(this: Handler & SpecHandler, superMember: SuperMember) {\n const { computed, property } = superMember.node;\n if (this.memoiser.has(property)) {\n return cloneNode(this.memoiser.get(property));\n }\n\n if (computed) {\n return cloneNode(property);\n }\n\n return stringLiteral((property as t.Identifier).name);\n },\n\n get(this: Handler & SpecHandler, superMember: SuperMember) {\n return this._get(superMember, this._getThisRefs());\n },\n\n _get(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n thisRefs: ThisRef,\n ) {\n const proto = getPrototypeOfExpression(\n this.getObjectRef(),\n this.isStatic,\n this.file,\n this.isPrivateMethod,\n );\n return callExpression(this.file.addHelper(\"get\"), [\n thisRefs.needAccessFirst\n ? sequenceExpression([thisRefs.this, proto])\n : proto,\n this.prop(superMember),\n thisRefs.this,\n ]);\n },\n\n _getThisRefs(this: Handler & SpecHandler): ThisRef {\n return {\n needAccessFirst: this.isDerivedConstructor,\n this: thisExpression(),\n };\n },\n\n set(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n value: t.Expression,\n ) {\n const thisRefs = this._getThisRefs();\n const proto = getPrototypeOfExpression(\n this.getObjectRef(),\n this.isStatic,\n this.file,\n this.isPrivateMethod,\n );\n return callExpression(this.file.addHelper(\"set\"), [\n thisRefs.needAccessFirst\n ? sequenceExpression([thisRefs.this, proto])\n : proto,\n this.prop(superMember),\n value,\n thisRefs.this,\n booleanLiteral(superMember.isInStrictMode()),\n ]);\n },\n\n destructureSet(this: Handler & SpecHandler, superMember: SuperMember) {\n throw superMember.buildCodeFrameError(\n `Destructuring to a super field is not supported yet.`,\n );\n },\n\n call(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n const thisRefs = this._getThisRefs();\n return optimiseCall(\n this._get(superMember, thisRefs),\n cloneNode(thisRefs.this),\n args,\n false,\n );\n },\n\n optionalCall(\n this: Handler & SpecHandler,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n const thisRefs = this._getThisRefs();\n return optimiseCall(\n this._get(superMember, thisRefs),\n cloneNode(thisRefs.this),\n args,\n true,\n );\n },\n\n delete(this: Handler & SpecHandler, superMember: SuperMember) {\n if (superMember.node.computed) {\n return sequenceExpression([\n callExpression(this.file.addHelper(\"toPropertyKey\"), [\n cloneNode(superMember.node.property),\n ]),\n template.expression.ast`\n function () { throw new ReferenceError(\"'delete super[expr]' is invalid\"); }()\n `,\n ]);\n } else {\n return template.expression.ast`\n function () { throw new ReferenceError(\"'delete super.prop' is invalid\"); }()\n `;\n }\n },\n};\n\nconst looseHandlers = {\n ...specHandlers,\n\n prop(this: Handler & typeof specHandlers, superMember: SuperMember) {\n const { property } = superMember.node;\n if (this.memoiser.has(property)) {\n return cloneNode(this.memoiser.get(property));\n }\n\n return cloneNode(property);\n },\n\n get(this: Handler & typeof specHandlers, superMember: SuperMember) {\n const { isStatic, getSuperRef } = this;\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n let object;\n if (isStatic) {\n object =\n getSuperRef() ??\n memberExpression(identifier(\"Function\"), identifier(\"prototype\"));\n } else {\n object = memberExpression(\n getSuperRef() ?? identifier(\"Object\"),\n identifier(\"prototype\"),\n );\n }\n\n return memberExpression(object, prop, computed);\n },\n\n set(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n value: t.Expression,\n ) {\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n return assignmentExpression(\n \"=\",\n memberExpression(thisExpression(), prop, computed),\n value,\n );\n },\n\n destructureSet(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n ) {\n const { computed } = superMember.node;\n const prop = this.prop(superMember);\n\n return memberExpression(thisExpression(), prop, computed);\n },\n\n call(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n return optimiseCall(this.get(superMember), thisExpression(), args, false);\n },\n\n optionalCall(\n this: Handler & typeof specHandlers,\n superMember: SuperMember,\n args: t.CallExpression[\"arguments\"],\n ) {\n return optimiseCall(this.get(superMember), thisExpression(), args, true);\n },\n};\n\ntype ReplaceSupersOptionsBase = {\n methodPath: NodePath<\n | t.ClassMethod\n | t.ClassProperty\n | t.ObjectMethod\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock\n >;\n constantSuper?: boolean;\n file: File;\n // objectRef might have been shadowed in child scopes,\n // in that case, we need to rename related variables.\n refToPreserve?: t.Identifier;\n};\n\ntype ReplaceSupersOptions = ReplaceSupersOptionsBase &\n (\n | { objectRef?: undefined; getObjectRef: () => t.Node }\n | { objectRef: t.Node; getObjectRef?: undefined }\n ) &\n (\n | { superRef?: undefined; getSuperRef: () => t.Node }\n | { superRef: t.Node; getSuperRef?: undefined }\n );\n\ninterface ReplaceState {\n file: File;\n scope: Scope;\n isDerivedConstructor: boolean;\n isStatic: boolean;\n isPrivateMethod: boolean;\n getObjectRef: ReplaceSupers[\"getObjectRef\"];\n getSuperRef: ReplaceSupers[\"getSuperRef\"];\n}\n\nexport default class ReplaceSupers {\n constructor(opts: ReplaceSupersOptions) {\n const path = opts.methodPath;\n\n this.methodPath = path;\n this.isDerivedConstructor =\n path.isClassMethod({ kind: \"constructor\" }) && !!opts.superRef;\n this.isStatic =\n path.isObjectMethod() ||\n // @ts-expect-error static is not in ClassPrivateMethod\n path.node.static ||\n path.isStaticBlock?.();\n this.isPrivateMethod = path.isPrivate() && path.isMethod();\n\n this.file = opts.file;\n this.constantSuper = process.env.BABEL_8_BREAKING\n ? opts.constantSuper\n : // Fallback to isLoose for backward compatibility\n opts.constantSuper ?? (opts as any).isLoose;\n this.opts = opts;\n }\n\n declare file: File;\n declare isDerivedConstructor: boolean;\n declare constantSuper: boolean;\n declare isPrivateMethod: boolean;\n declare isStatic: boolean;\n declare methodPath: NodePath;\n declare opts: ReplaceSupersOptions;\n\n getObjectRef() {\n return cloneNode(this.opts.objectRef || this.opts.getObjectRef());\n }\n\n getSuperRef() {\n if (this.opts.superRef) return cloneNode(this.opts.superRef);\n if (this.opts.getSuperRef) {\n return cloneNode(this.opts.getSuperRef());\n }\n }\n\n replace() {\n const { methodPath } = this;\n // https://github.com/babel/babel/issues/11994\n if (this.opts.refToPreserve) {\n methodPath.traverse(unshadowSuperBindingVisitor, {\n refName: this.opts.refToPreserve.name,\n });\n }\n\n const handler = this.constantSuper ? looseHandlers : specHandlers;\n\n // todo: this should have been handled by the environmentVisitor,\n // consider add visitSelf support for the path.traverse\n // @ts-expect-error: Refine typings in packages/babel-traverse/src/types.ts\n // shouldSkip is accepted in traverseNode\n visitor.shouldSkip = (path: NodePath) => {\n if (path.parentPath === methodPath) {\n if (path.parentKey === \"decorators\" || path.parentKey === \"key\") {\n return true;\n }\n }\n };\n\n memberExpressionToFunctions(methodPath, visitor, {\n file: this.file,\n scope: this.methodPath.scope,\n isDerivedConstructor: this.isDerivedConstructor,\n isStatic: this.isStatic,\n isPrivateMethod: this.isPrivateMethod,\n getObjectRef: this.getObjectRef.bind(this),\n getSuperRef: this.getSuperRef.bind(this),\n // we dont need boundGet here, but memberExpressionToFunctions handler needs it.\n boundGet: handler.get,\n ...handler,\n });\n }\n}\n","import {\n isParenthesizedExpression,\n isTSAsExpression,\n isTSNonNullExpression,\n isTSSatisfiesExpression,\n isTSTypeAssertion,\n isTypeCastExpression,\n} from \"@babel/types\";\n\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport type TransparentExprWrapper =\n | t.TSAsExpression\n | t.TSSatisfiesExpression\n | t.TSTypeAssertion\n | t.TSNonNullExpression\n | t.TypeCastExpression\n | t.ParenthesizedExpression;\n\n// A transparent expression wrapper is an AST node that most plugins will wish\n// to skip, as its presence does not affect the behaviour of the code. This\n// includes expressions used for types, and extra parenthesis. For example, in\n// (a as any)(), this helper can be used to skip the TSAsExpression when\n// determining the callee.\nexport function isTransparentExprWrapper(\n node: t.Node,\n): node is TransparentExprWrapper {\n return (\n isTSAsExpression(node) ||\n isTSSatisfiesExpression(node) ||\n isTSTypeAssertion(node) ||\n isTSNonNullExpression(node) ||\n isTypeCastExpression(node) ||\n isParenthesizedExpression(node)\n );\n}\n\nexport function skipTransparentExprWrappers(\n path: NodePath,\n): NodePath {\n while (isTransparentExprWrapper(path.node)) {\n path = path.get(\"expression\");\n }\n return path;\n}\n\nexport function skipTransparentExprWrapperNodes(\n node: t.Expression | t.Super,\n): t.Expression | t.Super {\n while (isTransparentExprWrapper(node)) {\n node = node.expression;\n }\n return node;\n}\n","import type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport function assertFieldTransformed(\n path: NodePath,\n) {\n if (\n path.node.declare ||\n (process.env.BABEL_8_BREAKING\n ? path.isClassProperty({ definite: true })\n : false)\n ) {\n throw path.buildCodeFrameError(\n `TypeScript 'declare' fields must first be transformed by ` +\n `@babel/plugin-transform-typescript.\\n` +\n `If you have already enabled that plugin (or '@babel/preset-typescript'), make sure ` +\n `that it runs before any plugin related to additional class features:\\n` +\n ` - @babel/plugin-transform-class-properties\\n` +\n ` - @babel/plugin-transform-private-methods\\n` +\n ` - @babel/plugin-proposal-decorators`,\n );\n }\n}\n","import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport memberExpressionToFunctions from \"@babel/helper-member-expression-to-functions\";\nimport type {\n Handler,\n HandlerState,\n} from \"@babel/helper-member-expression-to-functions\";\nimport optimiseCall from \"@babel/helper-optimise-call-expression\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nimport * as ts from \"./typescript.ts\";\n\ninterface PrivateNameMetadata {\n id: t.Identifier;\n static: boolean;\n method: boolean;\n getId?: t.Identifier;\n setId?: t.Identifier;\n methodId?: t.Identifier;\n initAdded?: boolean;\n getterDeclared?: boolean;\n setterDeclared?: boolean;\n}\n\ntype PrivateNamesMapGeneric = Map;\n\ntype PrivateNamesMap = PrivateNamesMapGeneric;\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var newHelpers = (file: File) => {\n if (!process.env.IS_PUBLISH) {\n const { comments } = file.ast;\n // This is needed for the test in\n // babel-plugin-transform-class-properties/test/fixtures/regression/old-helpers\n if (comments?.some(c => c.value.includes(\"@force-old-private-helpers\"))) {\n return false;\n }\n }\n return file.availableHelper(\"classPrivateFieldGet2\");\n };\n}\n\nexport function buildPrivateNamesMap(\n className: string,\n privateFieldsAsSymbolsOrProperties: boolean,\n props: PropPath[],\n file: File,\n) {\n const privateNamesMap: PrivateNamesMap = new Map();\n let classBrandId: t.Identifier;\n for (const prop of props) {\n if (prop.isPrivate()) {\n const { name } = prop.node.key.id;\n let update: PrivateNameMetadata = privateNamesMap.get(name);\n if (!update) {\n const isMethod = !prop.isProperty();\n const isStatic = prop.node.static;\n let initAdded = false;\n let id: t.Identifier;\n if (\n !privateFieldsAsSymbolsOrProperties &&\n (process.env.BABEL_8_BREAKING || newHelpers(file)) &&\n isMethod &&\n !isStatic\n ) {\n initAdded = !!classBrandId;\n classBrandId ??= prop.scope.generateUidIdentifier(\n `${className}_brand`,\n );\n id = classBrandId;\n } else {\n id = prop.scope.generateUidIdentifier(name);\n }\n update = { id, static: isStatic, method: isMethod, initAdded };\n privateNamesMap.set(name, update);\n }\n if (prop.isClassPrivateMethod()) {\n if (prop.node.kind === \"get\") {\n const { body } = prop.node.body;\n let $: t.Node;\n if (\n // If we have\n // get #foo() { return _some_fn(this); }\n // we can use _some_fn directly.\n body.length === 1 &&\n t.isReturnStatement(($ = body[0])) &&\n t.isCallExpression(($ = $.argument)) &&\n $.arguments.length === 1 &&\n t.isThisExpression($.arguments[0]) &&\n t.isIdentifier(($ = $.callee))\n ) {\n update.getId = t.cloneNode($);\n update.getterDeclared = true;\n } else {\n update.getId = prop.scope.generateUidIdentifier(`get_${name}`);\n }\n } else if (prop.node.kind === \"set\") {\n const { params } = prop.node;\n const { body } = prop.node.body;\n let $: t.Node;\n if (\n // If we have\n // set #foo(val) { _some_fn(this, val); }\n // we can use _some_fn directly.\n body.length === 1 &&\n t.isExpressionStatement(($ = body[0])) &&\n t.isCallExpression(($ = $.expression)) &&\n $.arguments.length === 2 &&\n t.isThisExpression($.arguments[0]) &&\n t.isIdentifier($.arguments[1], {\n name: (params[0] as t.Identifier).name,\n }) &&\n t.isIdentifier(($ = $.callee))\n ) {\n update.setId = t.cloneNode($);\n update.setterDeclared = true;\n } else {\n update.setId = prop.scope.generateUidIdentifier(`set_${name}`);\n }\n } else if (prop.node.kind === \"method\") {\n update.methodId = prop.scope.generateUidIdentifier(name);\n }\n }\n privateNamesMap.set(name, update);\n }\n }\n return privateNamesMap;\n}\n\nexport function buildPrivateNamesNodes(\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsProperties: boolean,\n privateFieldsAsSymbols: boolean,\n state: File,\n) {\n const initNodes: t.Statement[] = [];\n\n const injectedIds = new Set();\n\n for (const [name, value] of privateNamesMap) {\n // - When the privateFieldsAsProperties assumption is enabled,\n // both static and instance fields are transpiled using a\n // secret non-enumerable property. Hence, we also need to generate that\n // key (using the classPrivateFieldLooseKey helper).\n // - When the privateFieldsAsSymbols assumption is enabled,\n // both static and instance fields are transpiled using a\n // unique Symbol to define a non-enumerable property.\n // - In spec mode, only instance fields need a \"private name\" initializer\n // because static fields are directly assigned to a variable in the\n // buildPrivateStaticFieldInitSpec function.\n const { static: isStatic, method: isMethod, getId, setId } = value;\n const isGetterOrSetter = getId || setId;\n const id = t.cloneNode(value.id);\n\n let init: t.Expression;\n\n if (privateFieldsAsProperties) {\n init = t.callExpression(state.addHelper(\"classPrivateFieldLooseKey\"), [\n t.stringLiteral(name),\n ]);\n } else if (privateFieldsAsSymbols) {\n init = t.callExpression(t.identifier(\"Symbol\"), [t.stringLiteral(name)]);\n } else if (!isStatic) {\n if (injectedIds.has(id.name)) continue;\n injectedIds.add(id.name);\n\n init = t.newExpression(\n t.identifier(\n isMethod &&\n (process.env.BABEL_8_BREAKING ||\n !isGetterOrSetter ||\n newHelpers(state))\n ? \"WeakSet\"\n : \"WeakMap\",\n ),\n [],\n );\n }\n\n if (init) {\n if (!privateFieldsAsSymbols) {\n annotateAsPure(init);\n }\n initNodes.push(template.statement.ast`var ${id} = ${init}`);\n }\n }\n\n return initNodes;\n}\n\nexport interface PrivateNameVisitorState {\n privateNamesMap: PrivateNamesMapGeneric;\n redeclared?: string[];\n}\n\n// Traverses the class scope, handling private name references. If an inner\n// class redeclares the same private name, it will hand off traversal to the\n// restricted visitor (which doesn't traverse the inner class's inner scope).\nexport function privateNameVisitorFactory(\n visitor: Visitor & S>,\n) {\n // Traverses the outer portion of a class, without touching the class's inner\n // scope, for private names.\n const nestedVisitor = traverse.visitors.merge([\n { ...visitor },\n environmentVisitor,\n ]);\n\n const privateNameVisitor: Visitor<\n PrivateNameVisitorState & S\n > = {\n ...visitor,\n\n Class(path) {\n const { privateNamesMap } = this;\n const body = path.get(\"body.body\");\n\n const visiblePrivateNames = new Map(privateNamesMap);\n const redeclared = [];\n for (const prop of body) {\n if (!prop.isPrivate()) continue;\n const { name } = prop.node.key.id;\n visiblePrivateNames.delete(name);\n redeclared.push(name);\n }\n\n // If the class doesn't redeclare any private fields, we can continue with\n // our overall traversal.\n if (!redeclared.length) {\n return;\n }\n\n // This class redeclares some private field. We need to process the outer\n // environment with access to all the outer privates, then we can process\n // the inner environment with only the still-visible outer privates.\n path.get(\"body\").traverse(nestedVisitor, {\n ...this,\n redeclared,\n });\n path.traverse(privateNameVisitor, {\n ...this,\n privateNamesMap: visiblePrivateNames,\n });\n\n // We'll eventually hit this class node again with the overall Class\n // Features visitor, which'll process the redeclared privates.\n path.skipKey(\"body\");\n },\n };\n\n return privateNameVisitor;\n}\n\ninterface PrivateNameState {\n privateNamesMap: PrivateNamesMap;\n classRef: t.Identifier;\n file: File;\n noDocumentAll: boolean;\n noUninitializedPrivateFieldAccess: boolean;\n innerBinding?: t.Identifier;\n}\n\nconst privateNameVisitor = privateNameVisitorFactory<\n HandlerState & PrivateNameState,\n PrivateNameMetadata\n>({\n PrivateName(path, { noDocumentAll }) {\n const { privateNamesMap, redeclared } = this;\n const { node, parentPath } = path;\n\n if (\n !parentPath.isMemberExpression({ property: node }) &&\n !parentPath.isOptionalMemberExpression({ property: node })\n ) {\n return;\n }\n const { name } = node.id;\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n this.handle(parentPath, noDocumentAll);\n },\n});\n\n// rename all bindings that shadows innerBinding\nfunction unshadow(\n name: string,\n scope: Scope,\n innerBinding: t.Identifier | undefined,\n) {\n // in some cases, scope.getBinding(name) === undefined\n // so we check hasBinding to avoid keeping looping\n // see: https://github.com/babel/babel/pull/13656#discussion_r686030715\n while (\n scope?.hasBinding(name) &&\n !scope.bindingIdentifierEquals(name, innerBinding)\n ) {\n scope.rename(name);\n scope = scope.parent;\n }\n}\n\nexport function buildCheckInRHS(\n rhs: t.Expression,\n file: File,\n inRHSIsObject?: boolean,\n) {\n if (inRHSIsObject || !file.availableHelper?.(\"checkInRHS\")) return rhs;\n return t.callExpression(file.addHelper(\"checkInRHS\"), [rhs]);\n}\n\nconst privateInVisitor = privateNameVisitorFactory<\n {\n classRef: t.Identifier;\n file: File;\n innerBinding?: t.Identifier;\n privateFieldsAsProperties: boolean;\n },\n PrivateNameMetadata\n>({\n BinaryExpression(path, { file }) {\n const { operator, left, right } = path.node;\n if (operator !== \"in\") return;\n if (!t.isPrivateName(left)) return;\n\n const { privateFieldsAsProperties, privateNamesMap, redeclared } = this;\n\n const { name } = left.id;\n\n if (!privateNamesMap.has(name)) return;\n if (redeclared && redeclared.includes(name)) return;\n\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(this.classRef.name, path.scope, this.innerBinding);\n\n if (privateFieldsAsProperties) {\n const { id } = privateNamesMap.get(name);\n path.replaceWith(template.expression.ast`\n Object.prototype.hasOwnProperty.call(${buildCheckInRHS(\n right,\n file,\n )}, ${t.cloneNode(id)})\n `);\n return;\n }\n\n const { id, static: isStatic } = privateNamesMap.get(name);\n\n if (isStatic) {\n path.replaceWith(\n template.expression.ast`${buildCheckInRHS(\n right,\n file,\n )} === ${t.cloneNode(this.classRef)}`,\n );\n return;\n }\n\n path.replaceWith(\n template.expression.ast`${t.cloneNode(id)}.has(${buildCheckInRHS(\n right,\n file,\n )})`,\n );\n },\n});\n\ninterface Receiver {\n receiver(\n this: HandlerState & PrivateNameState,\n member: NodePath,\n ): t.Expression;\n}\n\nfunction readOnlyError(file: File, name: string) {\n return t.callExpression(file.addHelper(\"readOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]);\n}\n\nfunction writeOnlyError(file: File, name: string) {\n if (\n !process.env.BABEL_8_BREAKING &&\n !file.availableHelper(\"writeOnlyError\")\n ) {\n console.warn(\n `@babel/helpers is outdated, update it to silence this warning.`,\n );\n return t.buildUndefinedNode();\n }\n return t.callExpression(file.addHelper(\"writeOnlyError\"), [\n t.stringLiteral(`#${name}`),\n ]);\n}\n\nfunction buildStaticPrivateFieldAccess(\n expr: N,\n noUninitializedPrivateFieldAccess: boolean,\n) {\n if (noUninitializedPrivateFieldAccess) return expr;\n return t.memberExpression(expr, t.identifier(\"_\"));\n}\n\nconst privateNameHandlerSpec: Handler & Receiver =\n {\n memoise(member, count) {\n const { scope } = member;\n const { object } = member.node as { object: t.Expression };\n\n const memo = scope.maybeGenerateMemoised(object);\n if (!memo) {\n return;\n }\n\n this.memoiser.set(object, memo, count);\n },\n\n receiver(member) {\n const { object } = member.node as { object: t.Expression };\n\n if (this.memoiser.has(object)) {\n return t.cloneNode(this.memoiser.get(object));\n }\n\n return t.cloneNode(object);\n },\n\n get(member) {\n const {\n classRef,\n privateNamesMap,\n file,\n innerBinding,\n noUninitializedPrivateFieldAccess,\n } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n methodId,\n getId,\n setId,\n } = privateNamesMap.get(name);\n const isGetterOrSetter = getId || setId;\n\n if (isStatic) {\n // if there are any local variable shadowing classRef, unshadow it\n // see #12960\n unshadow(classRef.name, member.scope, innerBinding);\n\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n // NOTE: This package has a peerDependency on @babel/core@^7.0.0, but these\n // helpers have been introduced in @babel/helpers@7.1.0.\n const helperName =\n isMethod && !isGetterOrSetter\n ? \"classStaticPrivateMethodGet\"\n : \"classStaticPrivateFieldSpecGet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]);\n }\n\n const receiver = this.receiver(member);\n const skipCheck =\n t.isIdentifier(receiver) && receiver.name === classRef.name;\n\n if (!isMethod) {\n if (skipCheck) {\n return buildStaticPrivateFieldAccess(\n t.cloneNode(id),\n noUninitializedPrivateFieldAccess,\n );\n }\n\n return buildStaticPrivateFieldAccess(\n t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(classRef),\n receiver,\n t.cloneNode(id),\n ]),\n noUninitializedPrivateFieldAccess,\n );\n }\n\n if (getId) {\n if (skipCheck) {\n return t.callExpression(t.cloneNode(getId), [receiver]);\n }\n return t.callExpression(file.addHelper(\"classPrivateGetter\"), [\n t.cloneNode(classRef),\n receiver,\n t.cloneNode(getId),\n ]);\n }\n\n if (setId) {\n const err = t.buildUndefinedNode(); // TODO: writeOnlyError(file, name)\n if (skipCheck) return err;\n return t.sequenceExpression([\n t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(classRef),\n receiver,\n ]),\n err,\n ]);\n }\n\n if (skipCheck) return t.cloneNode(id);\n return t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(classRef),\n receiver,\n t.cloneNode(id),\n ]);\n }\n\n if (isMethod) {\n if (isGetterOrSetter) {\n if (!getId) {\n return t.sequenceExpression([\n this.receiver(member),\n writeOnlyError(file, name),\n ]);\n }\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateGetter\"), [\n t.cloneNode(id),\n this.receiver(member),\n t.cloneNode(getId),\n ]);\n }\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n return t.callExpression(file.addHelper(\"classPrivateMethodGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n t.cloneNode(methodId),\n ]);\n }\n return t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(id),\n this.receiver(member),\n t.cloneNode(methodId),\n ]);\n }\n if (process.env.BABEL_8_BREAKING || newHelpers(file)) {\n return t.callExpression(file.addHelper(\"classPrivateFieldGet2\"), [\n t.cloneNode(id),\n this.receiver(member),\n ]);\n }\n\n return t.callExpression(file.addHelper(\"classPrivateFieldGet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]);\n },\n\n boundGet(member) {\n this.memoise(member, 1);\n\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n [this.receiver(member)],\n );\n },\n\n set(member, value) {\n const {\n classRef,\n privateNamesMap,\n file,\n noUninitializedPrivateFieldAccess,\n } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n getId,\n } = privateNamesMap.get(name);\n const isGetterOrSetter = getId || setId;\n\n if (isStatic) {\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n const helperName =\n isMethod && !isGetterOrSetter\n ? \"classStaticPrivateMethodSet\"\n : \"classStaticPrivateFieldSpecSet\";\n\n return t.callExpression(file.addHelper(helperName), [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n value,\n ]);\n }\n\n const receiver = this.receiver(member);\n const skipCheck =\n t.isIdentifier(receiver) && receiver.name === classRef.name;\n\n if (isMethod && !setId) {\n const err = readOnlyError(file, name);\n if (skipCheck) return t.sequenceExpression([value, err]);\n return t.sequenceExpression([\n value,\n t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(classRef),\n receiver,\n ]),\n readOnlyError(file, name),\n ]);\n }\n\n if (setId) {\n if (skipCheck) {\n return t.callExpression(t.cloneNode(setId), [receiver, value]);\n }\n return t.callExpression(file.addHelper(\"classPrivateSetter\"), [\n t.cloneNode(classRef),\n t.cloneNode(setId),\n receiver,\n value,\n ]);\n }\n return t.assignmentExpression(\n \"=\",\n buildStaticPrivateFieldAccess(\n t.cloneNode(id),\n noUninitializedPrivateFieldAccess,\n ),\n skipCheck\n ? value\n : t.callExpression(file.addHelper(\"assertClassBrand\"), [\n t.cloneNode(classRef),\n receiver,\n value,\n ]),\n );\n }\n if (isMethod) {\n if (setId) {\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n }\n return t.callExpression(file.addHelper(\"classPrivateSetter\"), [\n t.cloneNode(id),\n t.cloneNode(setId),\n this.receiver(member),\n value,\n ]);\n }\n return t.sequenceExpression([\n this.receiver(member),\n value,\n readOnlyError(file, name),\n ]);\n }\n\n if (process.env.BABEL_8_BREAKING || newHelpers(file)) {\n return t.callExpression(file.addHelper(\"classPrivateFieldSet2\"), [\n t.cloneNode(id),\n this.receiver(member),\n value,\n ]);\n }\n\n return t.callExpression(file.addHelper(\"classPrivateFieldSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n value,\n ]);\n },\n\n destructureSet(member) {\n const {\n classRef,\n privateNamesMap,\n file,\n noUninitializedPrivateFieldAccess,\n } = this;\n const { name } = (member.node.property as t.PrivateName).id;\n const {\n id,\n static: isStatic,\n method: isMethod,\n setId,\n } = privateNamesMap.get(name);\n\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n if (isStatic) {\n try {\n // classStaticPrivateFieldDestructureSet was introduced in 7.13.10\n // eslint-disable-next-line no-var\n var helper = file.addHelper(\n \"classStaticPrivateFieldDestructureSet\",\n );\n } catch {\n throw new Error(\n \"Babel can not transpile `[C.#p] = [0]` with @babel/helpers < 7.13.10, \\n\" +\n \"please update @babel/helpers to the latest version.\",\n );\n }\n return t.memberExpression(\n t.callExpression(helper, [\n this.receiver(member),\n t.cloneNode(classRef),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"classPrivateFieldDestructureSet\"), [\n this.receiver(member),\n t.cloneNode(id),\n ]),\n t.identifier(\"value\"),\n );\n }\n\n if (isMethod && !setId) {\n return t.memberExpression(\n t.sequenceExpression([\n // @ts-ignore(Babel 7 vs Babel 8) member.node.object is not t.Super\n member.node.object,\n readOnlyError(file, name),\n ]),\n t.identifier(\"_\"),\n );\n }\n\n if (isStatic && !isMethod) {\n const getCall = this.get(member);\n if (\n !noUninitializedPrivateFieldAccess ||\n !t.isCallExpression(getCall)\n ) {\n return getCall;\n }\n const ref = getCall.arguments.pop();\n getCall.arguments.push(template.expression.ast`(_) => ${ref} = _`);\n return t.memberExpression(\n t.callExpression(file.addHelper(\"toSetter\"), [getCall]),\n t.identifier(\"_\"),\n );\n }\n\n const setCall = this.set(member, t.identifier(\"_\"));\n if (\n !t.isCallExpression(setCall) ||\n !t.isIdentifier(setCall.arguments[setCall.arguments.length - 1], {\n name: \"_\",\n })\n ) {\n throw member.buildCodeFrameError(\n \"Internal Babel error while compiling this code. This is a Babel bug. \" +\n \"Please report it at https://github.com/babel/babel/issues.\",\n );\n }\n\n // someHelper(foo, bar, _) -> someHelper, [foo, bar]\n // aFn.call(foo, bar, _) -> aFn, [bar], foo\n let args: t.Expression[];\n if (\n t.isMemberExpression(setCall.callee, { computed: false }) &&\n t.isIdentifier(setCall.callee.property) &&\n setCall.callee.property.name === \"call\"\n ) {\n args = [\n // @ts-ignore(Babel 7 vs Babel 8) member.node.object is not t.Super\n setCall.callee.object,\n t.arrayExpression(\n // Remove '_'\n (setCall.arguments as t.Expression[]).slice(1, -1),\n ),\n setCall.arguments[0] as t.Expression,\n ];\n } else {\n args = [\n setCall.callee as t.Expression,\n t.arrayExpression(\n // Remove '_'\n (setCall.arguments as t.Expression[]).slice(0, -1),\n ),\n ];\n }\n\n return t.memberExpression(\n t.callExpression(file.addHelper(\"toSetter\"), args),\n t.identifier(\"_\"),\n );\n },\n\n call(member, args: (t.Expression | t.SpreadElement)[]) {\n // The first access (the get) should do the memo assignment.\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, false);\n },\n\n optionalCall(member, args: (t.Expression | t.SpreadElement)[]) {\n this.memoise(member, 1);\n\n return optimiseCall(this.get(member), this.receiver(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n };\n\nconst privateNameHandlerLoose: Handler = {\n get(member) {\n const { privateNamesMap, file } = this;\n const { object } = member.node;\n const { name } = (member.node.property as t.PrivateName).id;\n\n return template.expression`BASE(REF, PROP)[PROP]`({\n BASE: file.addHelper(\"classPrivateFieldLooseBase\"),\n REF: t.cloneNode(object),\n PROP: t.cloneNode(privateNamesMap.get(name).id),\n });\n },\n\n set() {\n // noop\n throw new Error(\"private name handler with loose = true don't need set()\");\n },\n\n boundGet(member) {\n return t.callExpression(\n t.memberExpression(this.get(member), t.identifier(\"bind\")),\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n [t.cloneNode(member.node.object as t.Expression)],\n );\n },\n\n simpleSet(member) {\n return this.get(member);\n },\n\n destructureSet(member) {\n return this.get(member);\n },\n\n call(member, args) {\n return t.callExpression(this.get(member), args);\n },\n\n optionalCall(member, args) {\n return t.optionalCallExpression(this.get(member), args, true);\n },\n\n delete() {\n throw new Error(\n \"Internal Babel error: deleting private elements is a parsing error.\",\n );\n },\n};\n\nexport function transformPrivateNamesUsage(\n ref: t.Identifier,\n path: NodePath,\n privateNamesMap: PrivateNamesMap,\n {\n privateFieldsAsProperties,\n noUninitializedPrivateFieldAccess,\n noDocumentAll,\n innerBinding,\n }: {\n privateFieldsAsProperties: boolean;\n noUninitializedPrivateFieldAccess: boolean;\n noDocumentAll: boolean;\n innerBinding: t.Identifier;\n },\n state: File,\n) {\n if (!privateNamesMap.size) return;\n\n const body = path.get(\"body\");\n const handler = privateFieldsAsProperties\n ? privateNameHandlerLoose\n : privateNameHandlerSpec;\n\n memberExpressionToFunctions(body, privateNameVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n ...handler,\n noDocumentAll,\n noUninitializedPrivateFieldAccess,\n innerBinding,\n });\n body.traverse(privateInVisitor, {\n privateNamesMap,\n classRef: ref,\n file: state,\n privateFieldsAsProperties,\n innerBinding,\n });\n}\n\nfunction buildPrivateFieldInitLoose(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${t.cloneNode(id)}, {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceFieldInitSpec(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const { id } = privateNamesMap.get(prop.node.key.id.name);\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${t.cloneNode(id)}.set(${ref}, {\n // configurable is always false for private elements\n // enumerable is always false for private elements\n writable: true,\n value: ${value},\n })` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(helper, [\n t.thisExpression(),\n t.cloneNode(id),\n process.env.BABEL_8_BREAKING || newHelpers(state)\n ? value\n : template.expression.ast`{ writable: true, value: ${value} }`,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticFieldInitSpec(\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n noUninitializedPrivateFieldAccess: boolean,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n\n const value = noUninitializedPrivateFieldAccess\n ? prop.node.value\n : template.expression.ast`{\n _: ${prop.node.value || t.buildUndefinedNode()}\n }`;\n\n return inheritPropComments(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.cloneNode(privateName.id), value),\n ]),\n prop,\n );\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var buildPrivateStaticFieldInitSpecOld = function (\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n ) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId, initAdded } = privateName;\n const isGetterOrSetter = getId || setId;\n\n if (!prop.isProperty() && (initAdded || !isGetterOrSetter)) return;\n\n if (isGetterOrSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n }\n `,\n prop,\n );\n }\n\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n return inheritPropComments(\n template.statement.ast`\n var ${t.cloneNode(id)} = {\n // configurable is false by default\n // enumerable is false by default\n writable: true,\n value: ${value}\n };\n `,\n prop,\n );\n };\n}\n\nfunction buildPrivateMethodInitLoose(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { methodId, id, getId, setId, initAdded } = privateName;\n if (initAdded) return;\n\n if (methodId) {\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n const isGetterOrSetter = getId || setId;\n if (isGetterOrSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n}\n\nfunction buildPrivateInstanceMethodInitSpec(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n\n if (privateName.initAdded) return;\n\n if (!process.env.BABEL_8_BREAKING && !newHelpers(state)) {\n const isGetterOrSetter = privateName.getId || privateName.setId;\n if (isGetterOrSetter) {\n return buildPrivateAccessorInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n }\n }\n\n return buildPrivateInstanceMethodInitialization(\n ref,\n prop,\n privateNamesMap,\n state,\n );\n}\n\nfunction buildPrivateAccessorInitialization(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, getId, setId } = privateName;\n\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateFieldInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`\n ${id}.set(${ref}, {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n });\n ` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateFieldInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)},\n {\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n },\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPrivateInstanceMethodInitialization(\n ref: t.Expression,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n state: File,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id } = privateName;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(\"classPrivateMethodInitSpec\")) {\n return inheritPropComments(\n template.statement.ast`${id}.add(${ref})` as t.ExpressionStatement,\n prop,\n );\n }\n }\n\n const helper = state.addHelper(\"classPrivateMethodInitSpec\");\n return inheritPropComments(\n template.statement.ast`${helper}(\n ${t.thisExpression()},\n ${t.cloneNode(id)}\n )` as t.ExpressionStatement,\n prop,\n );\n}\n\nfunction buildPublicFieldInitLoose(\n ref: t.Expression,\n prop: NodePath,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(ref, key, computed || t.isLiteral(key)),\n value,\n ),\n ),\n prop,\n );\n}\n\nfunction buildPublicFieldInitSpec(\n ref: t.Expression,\n prop: NodePath,\n state: File,\n) {\n const { key, computed } = prop.node;\n const value = prop.node.value || prop.scope.buildUndefinedNode();\n\n return inheritPropComments(\n t.expressionStatement(\n t.callExpression(state.addHelper(\"defineProperty\"), [\n ref,\n computed || t.isLiteral(key)\n ? key\n : t.stringLiteral((key as t.Identifier).name),\n value,\n ]),\n ),\n prop,\n );\n}\n\nfunction buildPrivateStaticMethodInitLoose(\n ref: t.Expression,\n prop: NodePath,\n state: File,\n privateNamesMap: PrivateNamesMap,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const { id, methodId, getId, setId, initAdded } = privateName;\n\n if (initAdded) return;\n\n const isGetterOrSetter = getId || setId;\n if (isGetterOrSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n get: ${getId ? getId.name : prop.scope.buildUndefinedNode()},\n set: ${setId ? setId.name : prop.scope.buildUndefinedNode()}\n })\n `,\n prop,\n );\n }\n\n return inheritPropComments(\n template.statement.ast`\n Object.defineProperty(${ref}, ${id}, {\n // configurable is false by default\n // enumerable is false by default\n // writable is false by default\n value: ${methodId.name}\n });\n `,\n prop,\n );\n}\n\nfunction buildPrivateMethodDeclaration(\n file: File,\n prop: NodePath,\n privateNamesMap: PrivateNamesMap,\n privateFieldsAsSymbolsOrProperties = false,\n) {\n const privateName = privateNamesMap.get(prop.node.key.id.name);\n const {\n id,\n methodId,\n getId,\n setId,\n getterDeclared,\n setterDeclared,\n static: isStatic,\n } = privateName;\n const { params, body, generator, async } = prop.node;\n const isGetter = getId && params.length === 0;\n const isSetter = setId && params.length > 0;\n\n if ((isGetter && getterDeclared) || (isSetter && setterDeclared)) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n initAdded: true,\n });\n return null;\n }\n\n if (\n (process.env.BABEL_8_BREAKING || newHelpers(file)) &&\n (isGetter || isSetter) &&\n !privateFieldsAsSymbolsOrProperties\n ) {\n const scope = prop.get(\"body\").scope;\n const thisArg = scope.generateUidIdentifier(\"this\");\n const state: ReplaceThisState = {\n thisRef: thisArg,\n argumentsPath: [],\n };\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n prop.traverse(thisContextVisitor, state);\n if (state.argumentsPath.length) {\n const argumentsId = scope.generateUidIdentifier(\"arguments\");\n scope.push({\n id: argumentsId,\n init: template.expression.ast`[].slice.call(arguments, 1)`,\n });\n for (const path of state.argumentsPath) {\n path.replaceWith(t.cloneNode(argumentsId));\n }\n }\n\n params.unshift(t.cloneNode(thisArg));\n }\n\n let declId = methodId;\n\n if (isGetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n getterDeclared: true,\n initAdded: true,\n });\n declId = getId;\n } else if (isSetter) {\n privateNamesMap.set(prop.node.key.id.name, {\n ...privateName,\n setterDeclared: true,\n initAdded: true,\n });\n declId = setId;\n } else if (isStatic && !privateFieldsAsSymbolsOrProperties) {\n declId = id;\n }\n\n return inheritPropComments(\n t.functionDeclaration(\n t.cloneNode(declId),\n // @ts-expect-error params for ClassMethod has TSParameterProperty\n params,\n body,\n generator,\n async,\n ),\n prop,\n );\n}\n\ntype ReplaceThisState = {\n thisRef: t.Identifier;\n needsClassRef?: boolean;\n innerBinding?: t.Identifier | null;\n argumentsPath?: NodePath[];\n};\n\ntype ReplaceInnerBindingReferenceState = ReplaceThisState;\n\nconst thisContextVisitor = traverse.visitors.merge([\n {\n Identifier(path, state) {\n if (state.argumentsPath && path.node.name === \"arguments\") {\n state.argumentsPath.push(path);\n }\n },\n UnaryExpression(path) {\n // Replace `delete this` with `true`\n const { node } = path;\n if (node.operator === \"delete\") {\n const argument = skipTransparentExprWrapperNodes(node.argument);\n if (t.isThisExpression(argument)) {\n path.replaceWith(t.booleanLiteral(true));\n }\n }\n },\n ThisExpression(path, state) {\n state.needsClassRef = true;\n path.replaceWith(t.cloneNode(state.thisRef));\n },\n MetaProperty(path) {\n const { node, scope } = path;\n // if there are `new.target` in static field\n // we should replace it with `undefined`\n if (node.meta.name === \"new\" && node.property.name === \"target\") {\n path.replaceWith(scope.buildUndefinedNode());\n }\n },\n },\n environmentVisitor,\n]);\n\nconst innerReferencesVisitor: Visitor = {\n ReferencedIdentifier(path, state) {\n if (\n path.scope.bindingIdentifierEquals(path.node.name, state.innerBinding)\n ) {\n state.needsClassRef = true;\n path.node.name = state.thisRef.name;\n }\n },\n};\n\nfunction replaceThisContext(\n path: PropPath,\n ref: t.Identifier,\n innerBindingRef: t.Identifier | null,\n) {\n const state: ReplaceThisState = {\n thisRef: ref,\n needsClassRef: false,\n innerBinding: innerBindingRef,\n };\n if (!path.isMethod()) {\n // replace `this` in property initializers and static blocks\n path.traverse(thisContextVisitor, state);\n }\n\n // todo: use innerBinding.referencePaths to avoid full traversal\n if (\n innerBindingRef != null &&\n state.thisRef?.name &&\n state.thisRef.name !== innerBindingRef.name\n ) {\n path.traverse(innerReferencesVisitor, state);\n }\n\n return state.needsClassRef;\n}\n\nexport type PropNode =\n | t.ClassProperty\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.StaticBlock;\nexport type PropPath = NodePath;\n\nfunction isNameOrLength({ key, computed }: t.ClassProperty) {\n if (key.type === \"Identifier\") {\n return !computed && (key.name === \"name\" || key.name === \"length\");\n }\n if (key.type === \"StringLiteral\") {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\n/**\n * Inherit comments from class members. This is a reduced version of\n * t.inheritsComments: the trailing comments are not inherited because\n * for most class members except the last one, their trailing comments are\n * the next sibling's leading comments.\n *\n * @template T transformed class member type\n * @param {T} node transformed class member\n * @param {PropPath} prop class member\n * @returns transformed class member type with comments inherited\n */\nfunction inheritPropComments(node: T, prop: PropPath) {\n t.inheritLeadingComments(node, prop.node);\n t.inheritInnerComments(node, prop.node);\n return node;\n}\n\n/**\n * ClassRefFlag records the requirement of the class binding reference.\n *\n * @enum {number}\n */\nconst enum ClassRefFlag {\n None,\n /**\n * When this flag is enabled, the binding reference can be the class id,\n * if exists, or the uid identifier generated for class expression. The\n * reference is safe to be consumed by [[Define]].\n */\n ForDefine = 1 << 0,\n /**\n * When this flag is enabled, the reference must be a uid, because the outer\n * class binding can be mutated by user codes.\n * E.g.\n * class C { static p = C }; const oldC = C; C = null; oldC.p;\n * we must memoize class `C` before defining the property `p`.\n */\n ForInnerBinding = 1 << 1,\n}\n\nexport function buildFieldsInitNodes(\n ref: t.Identifier | null,\n superRef: t.Expression | undefined,\n props: PropPath[],\n privateNamesMap: PrivateNamesMap,\n file: File,\n setPublicClassFields: boolean,\n privateFieldsAsSymbolsOrProperties: boolean,\n noUninitializedPrivateFieldAccess: boolean,\n constantSuper: boolean,\n innerBindingRef: t.Identifier | null,\n) {\n let classRefFlags = ClassRefFlag.None;\n let injectSuperRef: t.Identifier;\n const staticNodes: t.Statement[] = [];\n const instanceNodes: t.ExpressionStatement[] = [];\n let lastInstanceNodeReturnsThis = false;\n // These nodes are pure and can be moved to the closest statement position\n const pureStaticNodes: t.FunctionDeclaration[] = [];\n let classBindingNode: t.ExpressionStatement | null = null;\n\n const getSuperRef = t.isIdentifier(superRef)\n ? () => superRef\n : () => {\n injectSuperRef ??=\n props[0].scope.generateUidIdentifierBasedOnNode(superRef);\n return injectSuperRef;\n };\n\n const classRefForInnerBinding =\n ref ??\n props[0].scope.generateUidIdentifier(innerBindingRef?.name || \"Class\");\n ref ??= t.cloneNode(innerBindingRef);\n\n for (const prop of props) {\n prop.isClassProperty() && ts.assertFieldTransformed(prop);\n\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n const isStatic = !t.isStaticBlock?.(prop.node) && prop.node.static;\n const isInstance = !isStatic;\n const isPrivate = prop.isPrivate();\n const isPublic = !isPrivate;\n const isField = prop.isProperty();\n const isMethod = !isField;\n const isStaticBlock = prop.isStaticBlock?.();\n\n if (isStatic) classRefFlags |= ClassRefFlag.ForDefine;\n\n if (isStatic || (isMethod && isPrivate) || isStaticBlock) {\n new ReplaceSupers({\n methodPath: prop,\n constantSuper,\n file: file,\n refToPreserve: innerBindingRef,\n getSuperRef,\n getObjectRef() {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n if (isStatic || isStaticBlock) {\n return classRefForInnerBinding;\n } else {\n return t.memberExpression(\n classRefForInnerBinding,\n t.identifier(\"prototype\"),\n );\n }\n },\n }).replace();\n\n const replaced = replaceThisContext(\n prop,\n classRefForInnerBinding,\n innerBindingRef,\n );\n if (replaced) {\n classRefFlags |= ClassRefFlag.ForInnerBinding;\n }\n }\n\n lastInstanceNodeReturnsThis = false;\n\n // TODO(ts): there are so many `ts-expect-error` inside cases since\n // ts can not infer type from pre-computed values (or a case test)\n // even change `isStaticBlock` to `t.isStaticBlock(prop)` will not make prop\n // a `NodePath`\n // this maybe a bug for ts\n switch (true) {\n case isStaticBlock: {\n const blockBody = prop.node.body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n staticNodes.push(inheritPropComments(blockBody[0], prop));\n } else {\n staticNodes.push(\n t.inheritsComments(\n template.statement.ast`(() => { ${blockBody} })()`,\n prop.node,\n ),\n );\n }\n break;\n }\n case isStatic &&\n isPrivate &&\n isField &&\n privateFieldsAsSymbolsOrProperties:\n staticNodes.push(\n buildPrivateFieldInitLoose(t.cloneNode(ref), prop, privateNamesMap),\n );\n break;\n case isStatic &&\n isPrivate &&\n isField &&\n !privateFieldsAsSymbolsOrProperties:\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n staticNodes.push(\n buildPrivateStaticFieldInitSpecOld(prop, privateNamesMap),\n );\n } else {\n staticNodes.push(\n buildPrivateStaticFieldInitSpec(\n prop,\n privateNamesMap,\n noUninitializedPrivateFieldAccess,\n ),\n );\n }\n break;\n case isStatic && isPublic && isField && setPublicClassFields:\n // Functions always have non-writable .name and .length properties,\n // so we must always use [[Define]] for them.\n // It might still be possible to a computed static fields whose resulting\n // key is \"name\" or \"length\", but the assumption is telling us that it's\n // not going to happen.\n if (!isNameOrLength(prop.node)) {\n staticNodes.push(buildPublicFieldInitLoose(t.cloneNode(ref), prop));\n break;\n }\n // falls through\n case isStatic && isPublic && isField && !setPublicClassFields:\n staticNodes.push(\n buildPublicFieldInitSpec(t.cloneNode(ref), prop, file),\n );\n break;\n case isInstance &&\n isPrivate &&\n isField &&\n privateFieldsAsSymbolsOrProperties:\n instanceNodes.push(\n buildPrivateFieldInitLoose(t.thisExpression(), prop, privateNamesMap),\n );\n break;\n case isInstance &&\n isPrivate &&\n isField &&\n !privateFieldsAsSymbolsOrProperties:\n instanceNodes.push(\n buildPrivateInstanceFieldInitSpec(\n t.thisExpression(),\n prop,\n privateNamesMap,\n file,\n ),\n );\n break;\n case isInstance &&\n isPrivate &&\n isMethod &&\n privateFieldsAsSymbolsOrProperties:\n instanceNodes.unshift(\n buildPrivateMethodInitLoose(\n t.thisExpression(),\n prop,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n file,\n prop,\n privateNamesMap,\n privateFieldsAsSymbolsOrProperties,\n ),\n );\n break;\n case isInstance &&\n isPrivate &&\n isMethod &&\n !privateFieldsAsSymbolsOrProperties:\n instanceNodes.unshift(\n buildPrivateInstanceMethodInitSpec(\n t.thisExpression(),\n prop,\n privateNamesMap,\n file,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n file,\n prop,\n privateNamesMap,\n privateFieldsAsSymbolsOrProperties,\n ),\n );\n break;\n case isStatic &&\n isPrivate &&\n isMethod &&\n !privateFieldsAsSymbolsOrProperties:\n if (!process.env.BABEL_8_BREAKING && !newHelpers(file)) {\n staticNodes.unshift(\n // @ts-expect-error checked in switch\n buildPrivateStaticFieldInitSpecOld(prop, privateNamesMap),\n );\n }\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n file,\n prop,\n privateNamesMap,\n privateFieldsAsSymbolsOrProperties,\n ),\n );\n break;\n case isStatic &&\n isPrivate &&\n isMethod &&\n privateFieldsAsSymbolsOrProperties:\n staticNodes.unshift(\n buildPrivateStaticMethodInitLoose(\n t.cloneNode(ref),\n prop,\n file,\n privateNamesMap,\n ),\n );\n pureStaticNodes.push(\n buildPrivateMethodDeclaration(\n file,\n prop,\n privateNamesMap,\n privateFieldsAsSymbolsOrProperties,\n ),\n );\n break;\n case isInstance && isPublic && isField && setPublicClassFields:\n instanceNodes.push(buildPublicFieldInitLoose(t.thisExpression(), prop));\n break;\n case isInstance && isPublic && isField && !setPublicClassFields:\n lastInstanceNodeReturnsThis = true;\n instanceNodes.push(\n buildPublicFieldInitSpec(t.thisExpression(), prop, file),\n );\n break;\n default:\n throw new Error(\"Unreachable.\");\n }\n }\n\n if (classRefFlags & ClassRefFlag.ForInnerBinding && innerBindingRef != null) {\n classBindingNode = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classRefForInnerBinding),\n t.cloneNode(innerBindingRef),\n ),\n );\n }\n\n return {\n staticNodes: staticNodes.filter(Boolean),\n instanceNodes: instanceNodes.filter(Boolean),\n lastInstanceNodeReturnsThis,\n pureStaticNodes: pureStaticNodes.filter(Boolean),\n classBindingNode,\n wrapClass(path: NodePath) {\n for (const prop of props) {\n // Delete leading comments so that they don't get attached as\n // trailing comments of the previous sibling.\n // When transforming props, we explicitly attach their leading\n // comments to the transformed node with `inheritPropComments`\n // above.\n prop.node.leadingComments = null;\n prop.remove();\n }\n\n if (injectSuperRef) {\n path.scope.push({ id: t.cloneNode(injectSuperRef) });\n path.set(\n \"superClass\",\n t.assignmentExpression(\"=\", injectSuperRef, path.node.superClass),\n );\n }\n\n if (classRefFlags !== ClassRefFlag.None) {\n if (path.isClassExpression()) {\n path.scope.push({ id: ref });\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(ref), path.node),\n );\n } else {\n if (innerBindingRef == null) {\n // export anonymous class declaration\n path.node.id = ref;\n }\n if (classBindingNode != null) {\n path.scope.push({ id: classRefForInnerBinding });\n }\n }\n }\n\n return path;\n },\n };\n}\n","import { template, traverse, types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor, Binding } from \"@babel/traverse\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nconst findBareSupers = traverse.visitors.merge[]>([\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n this.push(parentPath);\n }\n },\n },\n environmentVisitor,\n]);\n\nconst referenceVisitor: Visitor<{ scope: Scope }> = {\n \"TSTypeAnnotation|TypeAnnotation\"(\n path: NodePath,\n ) {\n path.skip();\n },\n\n ReferencedIdentifier(path: NodePath, { scope }) {\n if (scope.hasOwnBinding(path.node.name)) {\n scope.rename(path.node.name);\n path.skip();\n }\n },\n};\n\ntype HandleClassTDZState = {\n classBinding: Binding;\n file: File;\n};\n\nfunction handleClassTDZ(\n path: NodePath,\n state: HandleClassTDZState,\n) {\n if (\n state.classBinding &&\n state.classBinding === path.scope.getBinding(path.node.name)\n ) {\n const classNameTDZError = state.file.addHelper(\"classNameTDZError\");\n const throwNode = t.callExpression(classNameTDZError, [\n t.stringLiteral(path.node.name),\n ]);\n\n path.replaceWith(t.sequenceExpression([throwNode, path.node]));\n path.skip();\n }\n}\n\nconst classFieldDefinitionEvaluationTDZVisitor: Visitor = {\n ReferencedIdentifier: handleClassTDZ,\n};\n\ninterface RenamerState {\n scope: Scope;\n}\n\nexport function injectInitialization(\n path: NodePath,\n constructor: NodePath | undefined,\n nodes: t.ExpressionStatement[],\n renamer?: (visitor: Visitor, state: RenamerState) => void,\n lastReturnsThis?: boolean,\n) {\n if (!nodes.length) return;\n\n const isDerived = !!path.node.superClass;\n\n if (!constructor) {\n const newConstructor = t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n [],\n t.blockStatement([]),\n );\n\n if (isDerived) {\n newConstructor.params = [t.restElement(t.identifier(\"args\"))];\n newConstructor.body.body.push(template.statement.ast`super(...args)`);\n }\n\n [constructor] = path\n .get(\"body\")\n .unshiftContainer(\"body\", newConstructor) as NodePath[];\n }\n\n if (renamer) {\n renamer(referenceVisitor, { scope: constructor.scope });\n }\n\n if (isDerived) {\n const bareSupers: NodePath[] = [];\n constructor.traverse(findBareSupers, bareSupers);\n let isFirst = true;\n for (const bareSuper of bareSupers) {\n if (isFirst) {\n isFirst = false;\n } else {\n nodes = nodes.map(n => t.cloneNode(n));\n }\n if (!bareSuper.parentPath.isExpressionStatement()) {\n const allNodes: t.Expression[] = [\n bareSuper.node,\n ...nodes.map(n => t.toExpression(n)),\n ];\n if (!lastReturnsThis) allNodes.push(t.thisExpression());\n bareSuper.replaceWith(t.sequenceExpression(allNodes));\n } else {\n bareSuper.insertAfter(nodes);\n }\n }\n } else {\n constructor.get(\"body\").unshiftContainer(\"body\", nodes);\n }\n}\n\ntype ComputedKeyAssignmentExpression = t.AssignmentExpression & {\n left: t.Identifier;\n};\n\n/**\n * Try to memoise a computed key.\n * It returns undefined when the computed key is an uid reference, otherwise\n * an assignment expression `memoiserId = computed key`\n * @export\n * @param {t.Expression} keyNode Computed key\n * @param {Scope} scope The scope where memoiser id should be registered\n * @param {string} hint The memoiser id hint\n * @returns {(ComputedKeyAssignmentExpression | undefined)}\n */\nexport function memoiseComputedKey(\n keyNode: t.Expression,\n scope: Scope,\n hint: string,\n): ComputedKeyAssignmentExpression | undefined {\n const isUidReference = t.isIdentifier(keyNode) && scope.hasUid(keyNode.name);\n if (isUidReference) {\n return;\n }\n const isMemoiseAssignment =\n t.isAssignmentExpression(keyNode, { operator: \"=\" }) &&\n t.isIdentifier(keyNode.left) &&\n scope.hasUid(keyNode.left.name);\n if (isMemoiseAssignment) {\n return t.cloneNode(keyNode as ComputedKeyAssignmentExpression);\n } else {\n const ident = t.identifier(hint);\n // Declaring in the same block scope\n // Ref: https://github.com/babel/babel/pull/10029/files#diff-fbbdd83e7a9c998721c1484529c2ce92\n scope.push({\n id: ident,\n kind: \"let\",\n });\n return t.assignmentExpression(\n \"=\",\n t.cloneNode(ident),\n keyNode,\n ) as ComputedKeyAssignmentExpression;\n }\n}\n\nexport function extractComputedKeys(\n path: NodePath,\n computedPaths: NodePath[],\n file: File,\n) {\n const { scope } = path;\n const declarations: t.ExpressionStatement[] = [];\n const state = {\n classBinding: path.node.id && scope.getBinding(path.node.id.name),\n file,\n };\n for (const computedPath of computedPaths) {\n const computedKey = computedPath.get(\"key\");\n if (computedKey.isReferencedIdentifier()) {\n handleClassTDZ(computedKey, state);\n } else {\n computedKey.traverse(classFieldDefinitionEvaluationTDZVisitor, state);\n }\n\n const computedNode = computedPath.node;\n // Make sure computed property names are only evaluated once (upon class definition)\n // and in the right order in combination with static properties\n if (!computedKey.isConstantExpression()) {\n const assignment = memoiseComputedKey(\n computedKey.node,\n scope,\n scope.generateUidBasedOnNode(computedKey.node),\n );\n if (assignment) {\n declarations.push(t.expressionStatement(assignment));\n computedNode.key = t.cloneNode(assignment.left);\n }\n }\n }\n\n return declarations;\n}\n","import type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { types as t, template } from \"@babel/core\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport * as charCodes from \"charcodes\";\nimport type { PluginAPI, PluginObject, PluginPass } from \"@babel/core\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport {\n privateNameVisitorFactory,\n type PrivateNameVisitorState,\n} from \"./fields.ts\";\nimport { memoiseComputedKey } from \"./misc.ts\";\n\ninterface Options {\n /** @deprecated use `constantSuper` assumption instead. Only supported in 2021-12 version. */\n loose?: boolean;\n}\n\ntype ClassDecoratableElement =\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty;\n\ntype ClassElement =\n | ClassDecoratableElement\n | t.TSDeclareMethod\n | t.TSIndexSignature\n | t.StaticBlock;\n\ntype ClassElementCanHaveComputedKeys =\n | t.ClassMethod\n | t.ClassProperty\n | t.ClassAccessorProperty;\n\n// TODO(Babel 8): Only keep 2023-11\nexport type DecoratorVersionKind =\n | \"2023-11\"\n | \"2023-05\"\n | \"2023-01\"\n | \"2022-03\"\n | \"2021-12\";\n\nfunction incrementId(id: number[], idx = id.length - 1): void {\n // If index is -1, id needs an additional character, unshift A\n if (idx === -1) {\n id.unshift(charCodes.uppercaseA);\n return;\n }\n\n const current = id[idx];\n\n if (current === charCodes.uppercaseZ) {\n // if current is Z, skip to a\n id[idx] = charCodes.lowercaseA;\n } else if (current === charCodes.lowercaseZ) {\n // if current is z, reset to A and carry the 1\n id[idx] = charCodes.uppercaseA;\n incrementId(id, idx - 1);\n } else {\n // else, increment by one\n id[idx] = current + 1;\n }\n}\n\n/**\n * Generates a new private name that is unique to the given class. This can be\n * used to create extra class fields and methods for the implementation, while\n * keeping the length of those names as small as possible. This is important for\n * minification purposes (though private names can generally be minified,\n * transpilations and polyfills cannot yet).\n */\nfunction createPrivateUidGeneratorForClass(\n classPath: NodePath,\n): () => t.PrivateName {\n const currentPrivateId: number[] = [];\n const privateNames = new Set();\n\n classPath.traverse({\n PrivateName(path) {\n privateNames.add(path.node.id.name);\n },\n });\n\n return (): t.PrivateName => {\n let reifiedId;\n do {\n incrementId(currentPrivateId);\n reifiedId = String.fromCharCode(...currentPrivateId);\n } while (privateNames.has(reifiedId));\n\n return t.privateName(t.identifier(reifiedId));\n };\n}\n\n/**\n * Wraps the above generator function so that it's run lazily the first time\n * it's actually required. Several types of decoration do not require this, so it\n * saves iterating the class elements an additional time and allocating the space\n * for the Sets of element names.\n */\nfunction createLazyPrivateUidGeneratorForClass(\n classPath: NodePath,\n): () => t.PrivateName {\n let generator: () => t.PrivateName;\n\n return (): t.PrivateName => {\n if (!generator) {\n generator = createPrivateUidGeneratorForClass(classPath);\n }\n\n return generator();\n };\n}\n\n/**\n * Takes a class definition and the desired class name if anonymous and\n * replaces it with an equivalent class declaration (path) which is then\n * assigned to a local variable (id). This allows us to reassign the local variable with the\n * decorated version of the class. The class definition retains its original\n * name so that `toString` is not affected, other references to the class\n * are renamed instead.\n */\nfunction replaceClassWithVar(\n path: NodePath,\n className: string | t.Identifier | t.StringLiteral | undefined,\n): {\n id: t.Identifier;\n path: NodePath;\n} {\n const id = path.node.id;\n const scope = path.scope;\n if (path.type === \"ClassDeclaration\") {\n const className = id.name;\n const varId = scope.generateUidIdentifierBasedOnNode(id);\n const classId = t.identifier(className);\n\n scope.rename(className, varId.name);\n\n path.get(\"id\").replaceWith(classId);\n\n return { id: t.cloneNode(varId), path };\n } else {\n let varId: t.Identifier;\n\n if (id) {\n className = id.name;\n varId = generateLetUidIdentifier(scope.parent, className);\n scope.rename(className, varId.name);\n } else {\n varId = generateLetUidIdentifier(\n scope.parent,\n typeof className === \"string\" ? className : \"decorated_class\",\n );\n }\n\n const newClassExpr = t.classExpression(\n typeof className === \"string\" ? t.identifier(className) : null,\n path.node.superClass,\n path.node.body,\n );\n\n const [newPath] = path.replaceWith(\n t.sequenceExpression([newClassExpr, varId]),\n );\n\n return {\n id: t.cloneNode(varId),\n path: newPath.get(\"expressions.0\") as NodePath,\n };\n }\n}\n\nfunction generateClassProperty(\n key: t.PrivateName | t.Identifier,\n value: t.Expression | undefined,\n isStatic: boolean,\n): t.ClassPrivateProperty | t.ClassProperty {\n if (key.type === \"PrivateName\") {\n return t.classPrivateProperty(key, value, undefined, isStatic);\n } else {\n return t.classProperty(key, value, undefined, undefined, isStatic);\n }\n}\n\nfunction addProxyAccessorsFor(\n className: t.Identifier,\n element: NodePath,\n getterKey: t.PrivateName | t.Expression,\n setterKey: t.PrivateName | t.Expression,\n targetKey: t.PrivateName,\n isComputed: boolean,\n isStatic: boolean,\n version: DecoratorVersionKind,\n): void {\n const thisArg =\n (version === \"2023-11\" ||\n (!process.env.BABEL_8_BREAKING && version === \"2023-05\")) &&\n isStatic\n ? className\n : t.thisExpression();\n\n const getterBody = t.blockStatement([\n t.returnStatement(\n t.memberExpression(t.cloneNode(thisArg), t.cloneNode(targetKey)),\n ),\n ]);\n\n const setterBody = t.blockStatement([\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(t.cloneNode(thisArg), t.cloneNode(targetKey)),\n t.identifier(\"v\"),\n ),\n ),\n ]);\n\n let getter: t.ClassMethod | t.ClassPrivateMethod,\n setter: t.ClassMethod | t.ClassPrivateMethod;\n\n if (getterKey.type === \"PrivateName\") {\n getter = t.classPrivateMethod(\"get\", getterKey, [], getterBody, isStatic);\n setter = t.classPrivateMethod(\n \"set\",\n setterKey as t.PrivateName,\n [t.identifier(\"v\")],\n setterBody,\n isStatic,\n );\n } else {\n getter = t.classMethod(\n \"get\",\n getterKey,\n [],\n getterBody,\n isComputed,\n isStatic,\n );\n setter = t.classMethod(\n \"set\",\n setterKey as t.Expression,\n [t.identifier(\"v\")],\n setterBody,\n isComputed,\n isStatic,\n );\n }\n\n element.insertAfter(setter);\n element.insertAfter(getter);\n}\n\nfunction extractProxyAccessorsFor(\n targetKey: t.PrivateName,\n version: DecoratorVersionKind,\n): (t.FunctionExpression | t.ArrowFunctionExpression)[] {\n if (version !== \"2023-11\" && version !== \"2023-05\" && version !== \"2023-01\") {\n return [\n template.expression.ast`\n function () {\n return this.${t.cloneNode(targetKey)};\n }\n ` as t.FunctionExpression,\n template.expression.ast`\n function (value) {\n this.${t.cloneNode(targetKey)} = value;\n }\n ` as t.FunctionExpression,\n ];\n }\n return [\n template.expression.ast`\n o => o.${t.cloneNode(targetKey)}\n ` as t.ArrowFunctionExpression,\n template.expression.ast`\n (o, v) => o.${t.cloneNode(targetKey)} = v\n ` as t.ArrowFunctionExpression,\n ];\n}\n\n/**\n * Get the last element for the given computed key path.\n *\n * This function unwraps transparent wrappers and gets the last item when\n * the key is a SequenceExpression.\n *\n * @param {NodePath} path The key of a computed class element\n * @returns {NodePath} The simple completion result\n */\nfunction getComputedKeyLastElement(\n path: NodePath,\n): NodePath {\n path = skipTransparentExprWrappers(path);\n if (path.isSequenceExpression()) {\n const expressions = path.get(\"expressions\");\n return getComputedKeyLastElement(expressions[expressions.length - 1]);\n }\n return path;\n}\n\n/**\n * Get a memoiser of the computed key path.\n *\n * This function does not mutate AST. If the computed key is not a constant\n * expression, this function must be called after the key has been memoised.\n *\n * @param {NodePath} path The key of a computed class element.\n * @returns {t.Expression} A clone of key if key is a constant expression,\n * otherwise a memoiser identifier.\n */\nfunction getComputedKeyMemoiser(path: NodePath): t.Expression {\n const element = getComputedKeyLastElement(path);\n if (element.isConstantExpression()) {\n return t.cloneNode(path.node);\n } else if (element.isIdentifier() && path.scope.hasUid(element.node.name)) {\n return t.cloneNode(path.node);\n } else if (\n element.isAssignmentExpression() &&\n element.get(\"left\").isIdentifier()\n ) {\n return t.cloneNode(element.node.left as t.Identifier);\n } else {\n throw new Error(\n `Internal Error: the computed key ${path.toString()} has not yet been memoised.`,\n );\n }\n}\n\n/**\n * Prepend expressions to the computed key of the given field path.\n *\n * If the computed key is a sequence expression, this function will unwrap\n * the sequence expression for optimal output size.\n *\n * @param {t.Expression[]} expressions\n * @param {(NodePath<\n * t.ClassMethod | t.ClassProperty | t.ClassAccessorProperty\n * >)} fieldPath\n */\nfunction prependExpressionsToComputedKey(\n expressions: t.Expression[],\n fieldPath: NodePath<\n t.ClassMethod | t.ClassProperty | t.ClassAccessorProperty\n >,\n) {\n const key = fieldPath.get(\"key\") as NodePath;\n if (key.isSequenceExpression()) {\n expressions.push(...key.node.expressions);\n } else {\n expressions.push(key.node);\n }\n key.replaceWith(maybeSequenceExpression(expressions));\n}\n\n/**\n * Append expressions to the computed key of the given field path.\n *\n * If the computed key is a constant expression or uid reference, it\n * will prepend expressions before the comptued key. Otherwise it will\n * memoise the computed key to preserve its completion result.\n *\n * @param {t.Expression[]} expressions\n * @param {(NodePath<\n * t.ClassMethod | t.ClassProperty | t.ClassAccessorProperty\n * >)} fieldPath\n */\nfunction appendExpressionsToComputedKey(\n expressions: t.Expression[],\n fieldPath: NodePath<\n t.ClassMethod | t.ClassProperty | t.ClassAccessorProperty\n >,\n) {\n const key = fieldPath.get(\"key\") as NodePath;\n const completion = getComputedKeyLastElement(key);\n if (completion.isConstantExpression()) {\n prependExpressionsToComputedKey(expressions, fieldPath);\n } else {\n const scopeParent = key.scope.parent;\n const maybeAssignment = memoiseComputedKey(\n completion.node,\n scopeParent,\n scopeParent.generateUid(\"computedKey\"),\n );\n if (!maybeAssignment) {\n // If the memoiseComputedKey returns undefined, the key is already a uid reference,\n // treat it as a constant expression and prepend expressions before it\n prependExpressionsToComputedKey(expressions, fieldPath);\n } else {\n const expressionSequence = [\n ...expressions,\n // preserve the completion result\n t.cloneNode(maybeAssignment.left),\n ];\n const completionParent = completion.parentPath;\n if (completionParent.isSequenceExpression()) {\n completionParent.pushContainer(\"expressions\", expressionSequence);\n } else {\n completion.replaceWith(\n maybeSequenceExpression([\n t.cloneNode(maybeAssignment),\n ...expressionSequence,\n ]),\n );\n }\n }\n }\n}\n\n/**\n * Prepend expressions to the field initializer. If the initializer is not defined,\n * this function will wrap the last expression within a `void` unary expression.\n *\n * @param {t.Expression[]} expressions\n * @param {(NodePath<\n * t.ClassProperty | t.ClassPrivateProperty | t.ClassAccessorProperty\n * >)} fieldPath\n */\nfunction prependExpressionsToFieldInitializer(\n expressions: t.Expression[],\n fieldPath: NodePath<\n t.ClassProperty | t.ClassPrivateProperty | t.ClassAccessorProperty\n >,\n) {\n const initializer = fieldPath.get(\"value\");\n if (initializer.node) {\n expressions.push(initializer.node);\n } else if (expressions.length > 0) {\n expressions[expressions.length - 1] = t.unaryExpression(\n \"void\",\n expressions[expressions.length - 1],\n );\n }\n initializer.replaceWith(maybeSequenceExpression(expressions));\n}\n\nfunction prependExpressionsToStaticBlock(\n expressions: t.Expression[],\n blockPath: NodePath,\n) {\n blockPath.unshiftContainer(\n \"body\",\n t.expressionStatement(maybeSequenceExpression(expressions)),\n );\n}\n\nfunction prependExpressionsToConstructor(\n expressions: t.Expression[],\n constructorPath: NodePath,\n) {\n constructorPath.node.body.body.unshift(\n t.expressionStatement(maybeSequenceExpression(expressions)),\n );\n}\n\nfunction isProtoInitCallExpression(\n expression: t.Expression,\n protoInitCall: t.Identifier,\n) {\n return (\n t.isCallExpression(expression) &&\n t.isIdentifier(expression.callee, { name: protoInitCall.name })\n );\n}\n\n/**\n * Optimize super call and its following expressions\n *\n * @param {t.Expression[]} expressions Mutated by this function. The first element must by a super call\n * @param {t.Identifier} protoInitLocal The generated protoInit id\n * @returns optimized expression\n */\nfunction optimizeSuperCallAndExpressions(\n expressions: t.Expression[],\n protoInitLocal: t.Identifier,\n) {\n if (protoInitLocal) {\n if (\n expressions.length >= 2 &&\n isProtoInitCallExpression(expressions[1], protoInitLocal)\n ) {\n // Merge `super(), protoInit(this)` into `protoInit(super())`\n const mergedSuperCall = t.callExpression(t.cloneNode(protoInitLocal), [\n expressions[0],\n ]);\n expressions.splice(0, 2, mergedSuperCall);\n }\n // Merge `protoInit(super()), this` into `protoInit(super())`\n if (\n expressions.length >= 2 &&\n t.isThisExpression(expressions[expressions.length - 1]) &&\n isProtoInitCallExpression(\n expressions[expressions.length - 2],\n protoInitLocal,\n )\n ) {\n expressions.splice(expressions.length - 1, 1);\n }\n }\n return maybeSequenceExpression(expressions);\n}\n\n/**\n * Insert expressions immediately after super() and optimize the output if possible.\n * This function will preserve the completion result using the trailing this expression.\n *\n * @param {t.Expression[]} expressions\n * @param {NodePath} constructorPath\n * @param {t.Identifier} protoInitLocal The generated protoInit id\n * @returns\n */\nfunction insertExpressionsAfterSuperCallAndOptimize(\n expressions: t.Expression[],\n constructorPath: NodePath,\n protoInitLocal: t.Identifier,\n) {\n constructorPath.traverse({\n CallExpression: {\n exit(path) {\n if (!path.get(\"callee\").isSuper()) return;\n const newNodes = [\n path.node,\n ...expressions.map(expr => t.cloneNode(expr)),\n ];\n // preserve completion result if super() is in an RHS or a return statement\n if (path.isCompletionRecord()) {\n newNodes.push(t.thisExpression());\n }\n path.replaceWith(\n optimizeSuperCallAndExpressions(newNodes, protoInitLocal),\n );\n\n path.skip();\n },\n },\n ClassMethod(path) {\n if (path.node.kind === \"constructor\") {\n path.skip();\n }\n },\n });\n}\n\n/**\n * Build a class constructor node from the given expressions. If the class is\n * derived, the constructor will call super() first to ensure that `this`\n * in the expressions work as expected.\n *\n * @param {t.Expression[]} expressions\n * @param {boolean} isDerivedClass\n * @returns The class constructor node\n */\nfunction createConstructorFromExpressions(\n expressions: t.Expression[],\n isDerivedClass: boolean,\n) {\n const body: t.Statement[] = [\n t.expressionStatement(maybeSequenceExpression(expressions)),\n ];\n if (isDerivedClass) {\n body.unshift(\n t.expressionStatement(\n t.callExpression(t.super(), [t.spreadElement(t.identifier(\"args\"))]),\n ),\n );\n }\n return t.classMethod(\n \"constructor\",\n t.identifier(\"constructor\"),\n isDerivedClass ? [t.restElement(t.identifier(\"args\"))] : [],\n t.blockStatement(body),\n );\n}\n\nfunction createStaticBlockFromExpressions(expressions: t.Expression[]) {\n return t.staticBlock([\n t.expressionStatement(maybeSequenceExpression(expressions)),\n ]);\n}\n\n// 3 bits reserved to this (0-7)\nconst FIELD = 0;\nconst ACCESSOR = 1;\nconst METHOD = 2;\nconst GETTER = 3;\nconst SETTER = 4;\n\nconst STATIC_OLD_VERSION = 5; // Before 2023-05\nconst STATIC = 8; // 1 << 3\nconst DECORATORS_HAVE_THIS = 16; // 1 << 4\n\nfunction getElementKind(element: NodePath): number {\n switch (element.node.type) {\n case \"ClassProperty\":\n case \"ClassPrivateProperty\":\n return FIELD;\n case \"ClassAccessorProperty\":\n return ACCESSOR;\n case \"ClassMethod\":\n case \"ClassPrivateMethod\":\n if (element.node.kind === \"get\") {\n return GETTER;\n } else if (element.node.kind === \"set\") {\n return SETTER;\n } else {\n return METHOD;\n }\n }\n}\n\n// Information about the decorators applied to an element\ninterface DecoratorInfo {\n // An array of applied decorators or a memoised identifier\n decoratorsArray: t.Identifier | t.ArrayExpression | t.Expression;\n decoratorsHaveThis: boolean;\n\n // The kind of the decorated value, matches the kind value passed to applyDecs\n kind: number;\n\n // whether or not the field is static\n isStatic: boolean;\n\n // The name of the decorator\n name: t.StringLiteral | t.Expression;\n\n privateMethods:\n | (t.FunctionExpression | t.ArrowFunctionExpression)[]\n | undefined;\n\n // The names of local variables that will be used/returned from the decoration\n locals: t.Identifier | t.Identifier[] | undefined;\n}\n\n/**\n * Sort decoration info in the application order:\n * - static non-fields\n * - instance non-fields\n * - static fields\n * - instance fields\n *\n * @param {DecoratorInfo[]} info\n * @returns {DecoratorInfo[]} Sorted decoration info\n */\nfunction toSortedDecoratorInfo(info: DecoratorInfo[]): DecoratorInfo[] {\n return [\n ...info.filter(\n el => el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER,\n ),\n ...info.filter(\n el => !el.isStatic && el.kind >= ACCESSOR && el.kind <= SETTER,\n ),\n ...info.filter(el => el.isStatic && el.kind === FIELD),\n ...info.filter(el => !el.isStatic && el.kind === FIELD),\n ];\n}\n\ntype GenerateDecorationListResult = {\n // The zipped decorators array that will be passed to generateDecorationExprs\n decs: t.Expression[];\n // Whether there are non-empty decorator this values\n haveThis: boolean;\n};\n/**\n * Zip decorators and decorator this values into an array\n *\n * @param {t.Expression[]} decorators\n * @param {((t.Expression | undefined)[])} decoratorsThis decorator this values\n * @param {DecoratorVersionKind} version\n * @returns {GenerateDecorationListResult}\n */\nfunction generateDecorationList(\n decorators: t.Expression[],\n decoratorsThis: (t.Expression | undefined)[],\n version: DecoratorVersionKind,\n): GenerateDecorationListResult {\n const decsCount = decorators.length;\n const haveOneThis = decoratorsThis.some(Boolean);\n const decs: t.Expression[] = [];\n for (let i = 0; i < decsCount; i++) {\n if (\n (version === \"2023-11\" ||\n (!process.env.BABEL_8_BREAKING && version === \"2023-05\")) &&\n haveOneThis\n ) {\n decs.push(\n decoratorsThis[i] || t.unaryExpression(\"void\", t.numericLiteral(0)),\n );\n }\n decs.push(decorators[i]);\n }\n\n return { haveThis: haveOneThis, decs };\n}\n\nfunction generateDecorationExprs(\n decorationInfo: DecoratorInfo[],\n version: DecoratorVersionKind,\n): t.ArrayExpression {\n return t.arrayExpression(\n decorationInfo.map(el => {\n let flag = el.kind;\n if (el.isStatic) {\n flag +=\n version === \"2023-11\" ||\n (!process.env.BABEL_8_BREAKING && version === \"2023-05\")\n ? STATIC\n : STATIC_OLD_VERSION;\n }\n if (el.decoratorsHaveThis) flag += DECORATORS_HAVE_THIS;\n\n return t.arrayExpression([\n el.decoratorsArray,\n t.numericLiteral(flag),\n el.name,\n ...(el.privateMethods || []),\n ]);\n }),\n );\n}\n\nfunction extractElementLocalAssignments(decorationInfo: DecoratorInfo[]) {\n const localIds: t.Identifier[] = [];\n\n for (const el of decorationInfo) {\n const { locals } = el;\n\n if (Array.isArray(locals)) {\n localIds.push(...locals);\n } else if (locals !== undefined) {\n localIds.push(locals);\n }\n }\n\n return localIds;\n}\n\nfunction addCallAccessorsFor(\n version: DecoratorVersionKind,\n element: NodePath,\n key: t.PrivateName,\n getId: t.Identifier,\n setId: t.Identifier,\n isStatic: boolean,\n) {\n element.insertAfter(\n t.classPrivateMethod(\n \"get\",\n t.cloneNode(key),\n [],\n t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.cloneNode(getId),\n (process.env.BABEL_8_BREAKING || version === \"2023-11\") && isStatic\n ? []\n : [t.thisExpression()],\n ),\n ),\n ]),\n isStatic,\n ),\n );\n\n element.insertAfter(\n t.classPrivateMethod(\n \"set\",\n t.cloneNode(key),\n [t.identifier(\"v\")],\n t.blockStatement([\n t.expressionStatement(\n t.callExpression(\n t.cloneNode(setId),\n (process.env.BABEL_8_BREAKING || version === \"2023-11\") && isStatic\n ? [t.identifier(\"v\")]\n : [t.thisExpression(), t.identifier(\"v\")],\n ),\n ),\n ]),\n isStatic,\n ),\n );\n}\n\nfunction movePrivateAccessor(\n element: NodePath,\n key: t.PrivateName,\n methodLocalVar: t.Identifier,\n isStatic: boolean,\n) {\n let params: (t.Identifier | t.RestElement)[];\n let block: t.Statement[];\n\n if (element.node.kind === \"set\") {\n params = [t.identifier(\"v\")];\n block = [\n t.expressionStatement(\n t.callExpression(methodLocalVar, [\n t.thisExpression(),\n t.identifier(\"v\"),\n ]),\n ),\n ];\n } else {\n params = [];\n block = [\n t.returnStatement(t.callExpression(methodLocalVar, [t.thisExpression()])),\n ];\n }\n\n element.replaceWith(\n t.classPrivateMethod(\n element.node.kind,\n t.cloneNode(key),\n params,\n t.blockStatement(block),\n isStatic,\n ),\n );\n}\n\nfunction isClassDecoratableElementPath(\n path: NodePath,\n): path is NodePath {\n const { type } = path;\n\n return (\n type !== \"TSDeclareMethod\" &&\n type !== \"TSIndexSignature\" &&\n type !== \"StaticBlock\"\n );\n}\n\nfunction staticBlockToIIFE(block: t.StaticBlock) {\n return t.callExpression(\n t.arrowFunctionExpression([], t.blockStatement(block.body)),\n [],\n );\n}\n\nfunction staticBlockToFunctionClosure(block: t.StaticBlock) {\n return t.functionExpression(null, [], t.blockStatement(block.body));\n}\n\nfunction fieldInitializerToClosure(value: t.Expression) {\n return t.functionExpression(\n null,\n [],\n t.blockStatement([t.returnStatement(value)]),\n );\n}\n\nfunction maybeSequenceExpression(exprs: t.Expression[]) {\n if (exprs.length === 0) return t.unaryExpression(\"void\", t.numericLiteral(0));\n if (exprs.length === 1) return exprs[0];\n return t.sequenceExpression(exprs);\n}\n\n/**\n * Create FunctionExpression from a ClassPrivateMethod.\n * The returned FunctionExpression node takes ownership of the private method's body and params.\n *\n * @param {t.ClassPrivateMethod} node\n * @returns\n */\nfunction createFunctionExpressionFromPrivateMethod(node: t.ClassPrivateMethod) {\n const { params, body, generator: isGenerator, async: isAsync } = node;\n return t.functionExpression(\n undefined,\n // @ts-expect-error todo: Improve typings: TSParameterProperty is only allowed in constructor\n params,\n body,\n isGenerator,\n isAsync,\n );\n}\n\nfunction createSetFunctionNameCall(\n state: PluginPass,\n className: t.Identifier | t.StringLiteral,\n) {\n return t.callExpression(state.addHelper(\"setFunctionName\"), [\n t.thisExpression(),\n className,\n ]);\n}\n\nfunction createToPropertyKeyCall(state: PluginPass, propertyKey: t.Expression) {\n return t.callExpression(state.addHelper(\"toPropertyKey\"), [propertyKey]);\n}\n\nfunction createPrivateBrandCheckClosure(brandName: t.PrivateName) {\n return t.arrowFunctionExpression(\n [t.identifier(\"_\")],\n t.binaryExpression(\"in\", t.cloneNode(brandName), t.identifier(\"_\")),\n );\n}\n\nfunction usesPrivateField(expression: t.Node) {\n try {\n t.traverseFast(expression, node => {\n if (t.isPrivateName(node)) {\n // TODO: Add early return support to t.traverseFast\n throw null;\n }\n });\n return false;\n } catch {\n return true;\n }\n}\n\n/**\n * Convert a non-computed class element to its equivalent computed form.\n *\n * This function is to provide a decorator evaluation storage from non-computed\n * class elements.\n *\n * @param {(NodePath)} path A non-computed class property or method\n */\nfunction convertToComputedKey(path: NodePath) {\n const { node } = path;\n node.computed = true;\n if (t.isIdentifier(node.key)) {\n node.key = t.stringLiteral(node.key.name);\n }\n}\n\nfunction hasInstancePrivateAccess(path: NodePath, privateNames: string[]) {\n let containsInstancePrivateAccess = false;\n if (privateNames.length > 0) {\n const privateNameVisitor = privateNameVisitorFactory<\n PrivateNameVisitorState,\n null\n >({\n PrivateName(path, state) {\n if (state.privateNamesMap.has(path.node.id.name)) {\n containsInstancePrivateAccess = true;\n path.stop();\n }\n },\n });\n const privateNamesMap = new Map();\n for (const name of privateNames) {\n privateNamesMap.set(name, null);\n }\n path.traverse(privateNameVisitor, {\n privateNamesMap: privateNamesMap,\n });\n }\n return containsInstancePrivateAccess;\n}\n\nfunction checkPrivateMethodUpdateError(\n path: NodePath,\n decoratedPrivateMethods: Set,\n) {\n const privateNameVisitor = privateNameVisitorFactory<\n PrivateNameVisitorState,\n null\n >({\n PrivateName(path, state) {\n if (!state.privateNamesMap.has(path.node.id.name)) return;\n\n const parentPath = path.parentPath;\n const parentParentPath = parentPath.parentPath;\n\n if (\n // this.bar().#x = 123;\n (parentParentPath.node.type === \"AssignmentExpression\" &&\n parentParentPath.node.left === parentPath.node) ||\n // this.#x++;\n parentParentPath.node.type === \"UpdateExpression\" ||\n // ([...this.#x] = foo);\n parentParentPath.node.type === \"RestElement\" ||\n // ([this.#x] = foo);\n parentParentPath.node.type === \"ArrayPattern\" ||\n // ({ a: this.#x } = bar);\n (parentParentPath.node.type === \"ObjectProperty\" &&\n parentParentPath.node.value === parentPath.node &&\n parentParentPath.parentPath.type === \"ObjectPattern\") ||\n // for (this.#x of []);\n (parentParentPath.node.type === \"ForOfStatement\" &&\n parentParentPath.node.left === parentPath.node)\n ) {\n throw path.buildCodeFrameError(\n `Decorated private methods are read-only, but \"#${path.node.id.name}\" is updated via this expression.`,\n );\n }\n },\n });\n const privateNamesMap = new Map();\n for (const name of decoratedPrivateMethods) {\n privateNamesMap.set(name, null);\n }\n path.traverse(privateNameVisitor, {\n privateNamesMap: privateNamesMap,\n });\n}\n\nfunction transformClass(\n path: NodePath,\n state: PluginPass,\n constantSuper: boolean,\n ignoreFunctionLength: boolean,\n className: string | t.Identifier | t.StringLiteral | undefined,\n propertyVisitor: Visitor,\n version: DecoratorVersionKind,\n): NodePath {\n const body = path.get(\"body.body\");\n\n const classDecorators = path.node.decorators;\n let hasElementDecorators = false;\n let hasComputedKeysSideEffects = false;\n let elemDecsUseFnContext = false;\n\n const generateClassPrivateUid = createLazyPrivateUidGeneratorForClass(path);\n\n const classAssignments: t.AssignmentExpression[] = [];\n const scopeParent: Scope = path.scope.parent;\n const memoiseExpression = (\n expression: t.Expression,\n hint: string,\n assignments: t.AssignmentExpression[],\n ) => {\n const localEvaluatedId = generateLetUidIdentifier(scopeParent, hint);\n assignments.push(t.assignmentExpression(\"=\", localEvaluatedId, expression));\n return t.cloneNode(localEvaluatedId);\n };\n\n let protoInitLocal: t.Identifier;\n let staticInitLocal: t.Identifier;\n const classIdName = path.node.id?.name;\n // Check if the expression does not reference function-specific\n // context or the given identifier name.\n // `true` means \"maybe\" and `false` means \"no\".\n const usesFunctionContextOrYieldAwait = (expression: t.Node) => {\n try {\n t.traverseFast(expression, node => {\n if (\n t.isThisExpression(node) ||\n t.isSuper(node) ||\n t.isYieldExpression(node) ||\n t.isAwaitExpression(node) ||\n t.isIdentifier(node, { name: \"arguments\" }) ||\n (classIdName && t.isIdentifier(node, { name: classIdName })) ||\n (t.isMetaProperty(node) && node.meta.name !== \"import\")\n ) {\n // TODO: Add early return support to t.traverseFast\n throw null;\n }\n });\n return false;\n } catch {\n return true;\n }\n };\n\n const instancePrivateNames: string[] = [];\n // Iterate over the class to see if we need to decorate it, and also to\n // transform simple auto accessors which are not decorated, and handle inferred\n // class name when the initializer of the class field is a class expression\n for (const element of body) {\n if (!isClassDecoratableElementPath(element)) {\n continue;\n }\n\n const elementNode = element.node;\n\n if (!elementNode.static && t.isPrivateName(elementNode.key)) {\n instancePrivateNames.push(elementNode.key.id.name);\n }\n\n if (isDecorated(elementNode)) {\n switch (elementNode.type) {\n case \"ClassProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassProperty should be callable. Improve typings.\n propertyVisitor.ClassProperty(\n element as NodePath,\n state,\n );\n break;\n case \"ClassPrivateProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassPrivateProperty should be callable. Improve typings.\n propertyVisitor.ClassPrivateProperty(\n element as NodePath,\n state,\n );\n break;\n case \"ClassAccessorProperty\":\n // @ts-expect-error todo: propertyVisitor.ClassAccessorProperty should be callable. Improve typings.\n propertyVisitor.ClassAccessorProperty(\n element as NodePath,\n state,\n );\n if (version === \"2023-11\") {\n break;\n }\n /* fallthrough */\n default:\n if (elementNode.static) {\n staticInitLocal ??= generateLetUidIdentifier(\n scopeParent,\n \"initStatic\",\n );\n } else {\n protoInitLocal ??= generateLetUidIdentifier(\n scopeParent,\n \"initProto\",\n );\n }\n break;\n }\n hasElementDecorators = true;\n elemDecsUseFnContext ||= elementNode.decorators.some(\n usesFunctionContextOrYieldAwait,\n );\n } else if (elementNode.type === \"ClassAccessorProperty\") {\n // @ts-expect-error todo: propertyVisitor.ClassAccessorProperty should be callable. Improve typings.\n propertyVisitor.ClassAccessorProperty(\n element as NodePath,\n state,\n );\n const { key, value, static: isStatic, computed } = elementNode;\n\n const newId = generateClassPrivateUid();\n const newField = generateClassProperty(newId, value, isStatic);\n const keyPath = element.get(\"key\");\n const [newPath] = element.replaceWith(newField);\n\n let getterKey, setterKey;\n if (computed && !keyPath.isConstantExpression()) {\n getterKey = memoiseComputedKey(\n createToPropertyKeyCall(state, key as t.Expression),\n scopeParent,\n scopeParent.generateUid(\"computedKey\"),\n )!;\n setterKey = t.cloneNode(getterKey.left as t.Identifier);\n } else {\n getterKey = t.cloneNode(key);\n setterKey = t.cloneNode(key);\n }\n\n addProxyAccessorsFor(\n path.node.id,\n newPath,\n getterKey,\n setterKey,\n newId,\n computed,\n isStatic,\n version,\n );\n }\n\n if (\"computed\" in element.node && element.node.computed) {\n hasComputedKeysSideEffects ||= !scopeParent.isStatic(element.node.key);\n }\n }\n\n if (!classDecorators && !hasElementDecorators) {\n // If nothing is decorated and no assignments inserted, return\n return;\n }\n\n const elementDecoratorInfo: DecoratorInfo[] = [];\n\n let constructorPath: NodePath | undefined;\n const decoratedPrivateMethods = new Set();\n\n let classInitLocal: t.Identifier, classIdLocal: t.Identifier;\n let decoratorReceiverId: t.Identifier | null = null;\n\n // Memoise the this value `a.b` of decorator member expressions `@a.b.dec`,\n type HandleDecoratorExpressionsResult = {\n // whether the whole decorator list requires memoisation\n hasSideEffects: boolean;\n usesFnContext: boolean;\n // the this value of each decorator if applicable\n decoratorsThis: (t.Expression | undefined)[];\n };\n function handleDecoratorExpressions(\n expressions: t.Expression[],\n ): HandleDecoratorExpressionsResult {\n let hasSideEffects = false;\n let usesFnContext = false;\n const decoratorsThis: (t.Expression | null)[] = [];\n for (const expression of expressions) {\n let object;\n if (\n (version === \"2023-11\" ||\n (!process.env.BABEL_8_BREAKING && version === \"2023-05\")) &&\n t.isMemberExpression(expression)\n ) {\n if (t.isSuper(expression.object)) {\n object = t.thisExpression();\n } else if (scopeParent.isStatic(expression.object)) {\n object = t.cloneNode(expression.object);\n } else {\n decoratorReceiverId ??= generateLetUidIdentifier(scopeParent, \"obj\");\n object = t.assignmentExpression(\n \"=\",\n t.cloneNode(decoratorReceiverId),\n expression.object,\n );\n expression.object = t.cloneNode(decoratorReceiverId);\n }\n }\n decoratorsThis.push(object);\n hasSideEffects ||= !scopeParent.isStatic(expression);\n usesFnContext ||= usesFunctionContextOrYieldAwait(expression);\n }\n return { hasSideEffects, usesFnContext, decoratorsThis };\n }\n\n const willExtractSomeElemDecs =\n hasComputedKeysSideEffects ||\n (process.env.BABEL_8_BREAKING\n ? elemDecsUseFnContext\n : elemDecsUseFnContext || version !== \"2023-11\");\n\n let needsDeclaraionForClassBinding = false;\n let classDecorationsFlag = 0;\n let classDecorations: t.Expression[] = [];\n let classDecorationsId: t.Identifier;\n let computedKeyAssignments: t.AssignmentExpression[] = [];\n if (classDecorators) {\n classInitLocal = generateLetUidIdentifier(scopeParent, \"initClass\");\n needsDeclaraionForClassBinding = path.isClassDeclaration();\n ({ id: classIdLocal, path } = replaceClassWithVar(path, className));\n\n path.node.decorators = null;\n\n const decoratorExpressions = classDecorators.map(el => el.expression);\n const classDecsUsePrivateName = decoratorExpressions.some(usesPrivateField);\n const { hasSideEffects, decoratorsThis } =\n handleDecoratorExpressions(decoratorExpressions);\n\n const { haveThis, decs } = generateDecorationList(\n decoratorExpressions,\n decoratorsThis,\n version,\n );\n classDecorationsFlag = haveThis ? 1 : 0;\n classDecorations = decs;\n\n if (\n (hasSideEffects && willExtractSomeElemDecs) ||\n classDecsUsePrivateName\n ) {\n classDecorationsId = memoiseExpression(\n t.arrayExpression(classDecorations),\n \"classDecs\",\n classAssignments,\n );\n }\n\n if (!hasElementDecorators) {\n // Sync body paths as non-decorated computed accessors have been transpiled\n // to getter-setter pairs.\n for (const element of path.get(\"body.body\")) {\n const { node } = element;\n const isComputed = \"computed\" in node && node.computed;\n if (isComputed) {\n if (element.isClassProperty({ static: true })) {\n if (!element.get(\"key\").isConstantExpression()) {\n const key = (node as t.ClassProperty).key;\n const maybeAssignment = memoiseComputedKey(\n key,\n scopeParent,\n scopeParent.generateUid(\"computedKey\"),\n );\n if (maybeAssignment != null) {\n // If it is a static computed field within a decorated class, we move the computed key\n // into `computedKeyAssignments` which will be then moved into the non-static class,\n // to ensure that the evaluation order and private environment are correct\n node.key = t.cloneNode(maybeAssignment.left);\n computedKeyAssignments.push(maybeAssignment);\n }\n }\n } else if (computedKeyAssignments.length > 0) {\n prependExpressionsToComputedKey(\n computedKeyAssignments,\n element as NodePath,\n );\n computedKeyAssignments = [];\n }\n }\n }\n }\n } else {\n if (!path.node.id) {\n path.node.id = path.scope.generateUidIdentifier(\"Class\");\n }\n classIdLocal = t.cloneNode(path.node.id);\n }\n\n let lastInstancePrivateName: t.PrivateName;\n let needsInstancePrivateBrandCheck = false;\n\n let fieldInitializerExpressions = [];\n let staticFieldInitializerExpressions: t.Expression[] = [];\n\n if (hasElementDecorators) {\n if (protoInitLocal) {\n const protoInitCall = t.callExpression(t.cloneNode(protoInitLocal), [\n t.thisExpression(),\n ]);\n fieldInitializerExpressions.push(protoInitCall);\n }\n for (const element of body) {\n if (!isClassDecoratableElementPath(element)) {\n if (\n staticFieldInitializerExpressions.length > 0 &&\n element.isStaticBlock()\n ) {\n prependExpressionsToStaticBlock(\n staticFieldInitializerExpressions,\n element,\n );\n staticFieldInitializerExpressions = [];\n }\n continue;\n }\n\n const { node } = element;\n const decorators = node.decorators;\n\n const hasDecorators = !!decorators?.length;\n\n const isComputed = \"computed\" in node && node.computed;\n\n let name = \"computedKey\";\n\n if (node.key.type === \"PrivateName\") {\n name = node.key.id.name;\n } else if (!isComputed && node.key.type === \"Identifier\") {\n name = node.key.name;\n }\n let decoratorsArray: t.Identifier | t.ArrayExpression | t.Expression;\n let decoratorsHaveThis;\n\n if (hasDecorators) {\n const decoratorExpressions = decorators.map(d => d.expression);\n const { hasSideEffects, usesFnContext, decoratorsThis } =\n handleDecoratorExpressions(decoratorExpressions);\n const { decs, haveThis } = generateDecorationList(\n decoratorExpressions,\n decoratorsThis,\n version,\n );\n decoratorsHaveThis = haveThis;\n decoratorsArray = decs.length === 1 ? decs[0] : t.arrayExpression(decs);\n if (usesFnContext || (hasSideEffects && willExtractSomeElemDecs)) {\n decoratorsArray = memoiseExpression(\n decoratorsArray,\n name + \"Decs\",\n computedKeyAssignments,\n );\n }\n }\n\n if (isComputed) {\n if (!element.get(\"key\").isConstantExpression()) {\n const key = node.key as t.Expression;\n const maybeAssignment = memoiseComputedKey(\n hasDecorators ? createToPropertyKeyCall(state, key) : key,\n scopeParent,\n scopeParent.generateUid(\"computedKey\"),\n );\n if (maybeAssignment != null) {\n // If it is a static computed field within a decorated class, we move the computed key\n // into `computedKeyAssignments` which will be then moved into the non-static class,\n // to ensure that the evaluation order and private environment are correct\n if (classDecorators && element.isClassProperty({ static: true })) {\n node.key = t.cloneNode(maybeAssignment.left);\n computedKeyAssignments.push(maybeAssignment);\n } else {\n node.key = maybeAssignment;\n }\n }\n }\n }\n\n const { key, static: isStatic } = node;\n\n const isPrivate = key.type === \"PrivateName\";\n\n const kind = getElementKind(element);\n\n if (isPrivate && !isStatic) {\n if (hasDecorators) {\n needsInstancePrivateBrandCheck = true;\n }\n if (t.isClassPrivateProperty(node) || !lastInstancePrivateName) {\n lastInstancePrivateName = key;\n }\n }\n\n if (element.isClassMethod({ kind: \"constructor\" })) {\n constructorPath = element;\n }\n\n let locals: t.Identifier[];\n if (hasDecorators) {\n let privateMethods: Array<\n t.FunctionExpression | t.ArrowFunctionExpression\n >;\n\n let nameExpr: t.Expression;\n\n if (isComputed) {\n nameExpr = getComputedKeyMemoiser(\n element.get(\"key\") as NodePath,\n );\n } else if (key.type === \"PrivateName\") {\n nameExpr = t.stringLiteral(key.id.name);\n } else if (key.type === \"Identifier\") {\n nameExpr = t.stringLiteral(key.name);\n } else {\n nameExpr = t.cloneNode(key as t.Expression);\n }\n\n if (kind === ACCESSOR) {\n const { value } = element.node as t.ClassAccessorProperty;\n\n const params: t.Expression[] =\n (process.env.BABEL_8_BREAKING || version === \"2023-11\") && isStatic\n ? []\n : [t.thisExpression()];\n\n if (value) {\n params.push(t.cloneNode(value));\n }\n\n const newId = generateClassPrivateUid();\n const newFieldInitId = generateLetUidIdentifier(\n scopeParent,\n `init_${name}`,\n );\n const newValue = t.callExpression(\n t.cloneNode(newFieldInitId),\n params,\n );\n\n const newField = generateClassProperty(newId, newValue, isStatic);\n const [newPath] = element.replaceWith(newField);\n\n if (isPrivate) {\n privateMethods = extractProxyAccessorsFor(newId, version);\n\n const getId = generateLetUidIdentifier(scopeParent, `get_${name}`);\n const setId = generateLetUidIdentifier(scopeParent, `set_${name}`);\n\n addCallAccessorsFor(version, newPath, key, getId, setId, isStatic);\n\n locals = [newFieldInitId, getId, setId];\n } else {\n addProxyAccessorsFor(\n path.node.id,\n newPath,\n t.cloneNode(key),\n t.isAssignmentExpression(key)\n ? t.cloneNode(key.left as t.Identifier)\n : t.cloneNode(key),\n newId,\n isComputed,\n isStatic,\n version,\n );\n locals = [newFieldInitId];\n }\n } else if (kind === FIELD) {\n const initId = generateLetUidIdentifier(scopeParent, `init_${name}`);\n const valuePath = (\n element as NodePath\n ).get(\"value\");\n\n const args: t.Expression[] =\n (process.env.BABEL_8_BREAKING || version === \"2023-11\") && isStatic\n ? []\n : [t.thisExpression()];\n if (valuePath.node) args.push(valuePath.node);\n\n valuePath.replaceWith(t.callExpression(t.cloneNode(initId), args));\n\n locals = [initId];\n\n if (isPrivate) {\n privateMethods = extractProxyAccessorsFor(key, version);\n }\n } else if (isPrivate) {\n const callId = generateLetUidIdentifier(scopeParent, `call_${name}`);\n locals = [callId];\n\n const replaceSupers = new ReplaceSupers({\n constantSuper,\n methodPath: element as NodePath,\n objectRef: classIdLocal,\n superRef: path.node.superClass,\n file: state.file,\n refToPreserve: classIdLocal,\n });\n\n replaceSupers.replace();\n\n privateMethods = [\n createFunctionExpressionFromPrivateMethod(\n element.node as t.ClassPrivateMethod,\n ),\n ];\n\n if (kind === GETTER || kind === SETTER) {\n movePrivateAccessor(\n element as NodePath,\n t.cloneNode(key),\n t.cloneNode(callId),\n isStatic,\n );\n } else {\n const node = element.node as t.ClassPrivateMethod;\n\n // Unshift\n path.node.body.body.unshift(\n t.classPrivateProperty(key, t.cloneNode(callId), [], node.static),\n );\n\n decoratedPrivateMethods.add(key.id.name);\n\n element.remove();\n }\n }\n\n elementDecoratorInfo.push({\n kind,\n decoratorsArray,\n decoratorsHaveThis,\n name: nameExpr,\n isStatic,\n privateMethods,\n locals,\n });\n\n if (element.node) {\n element.node.decorators = null;\n }\n }\n\n if (isComputed && computedKeyAssignments.length > 0) {\n if (classDecorators && element.isClassProperty({ static: true })) {\n // If the class is decorated, we don't insert computedKeyAssignments here\n // because any non-static computed elements defined after it will be moved\n // into the non-static class, so they will be evaluated before the key of\n // this field. At this momemnt, its key must be either a constant expression\n // or a uid reference which has been assigned _within_ the non-static class.\n } else {\n prependExpressionsToComputedKey(\n computedKeyAssignments,\n (kind === ACCESSOR\n ? element.getNextSibling() // the transpiled getter of the accessor property\n : element) as NodePath,\n );\n computedKeyAssignments = [];\n }\n }\n\n if (\n fieldInitializerExpressions.length > 0 &&\n !isStatic &&\n (kind === FIELD || kind === ACCESSOR)\n ) {\n prependExpressionsToFieldInitializer(\n fieldInitializerExpressions,\n element as NodePath,\n );\n fieldInitializerExpressions = [];\n }\n\n if (\n staticFieldInitializerExpressions.length > 0 &&\n isStatic &&\n (kind === FIELD || kind === ACCESSOR)\n ) {\n prependExpressionsToFieldInitializer(\n staticFieldInitializerExpressions,\n element as NodePath,\n );\n staticFieldInitializerExpressions = [];\n }\n\n if (hasDecorators && version === \"2023-11\") {\n if (kind === FIELD || kind === ACCESSOR) {\n const initExtraId = generateLetUidIdentifier(\n scopeParent,\n `init_extra_${name}`,\n );\n locals.push(initExtraId);\n const initExtraCall = t.callExpression(\n t.cloneNode(initExtraId),\n isStatic ? [] : [t.thisExpression()],\n );\n if (!isStatic) {\n fieldInitializerExpressions.push(initExtraCall);\n } else {\n staticFieldInitializerExpressions.push(initExtraCall);\n }\n }\n }\n }\n }\n\n if (computedKeyAssignments.length > 0) {\n const elements = path.get(\"body.body\");\n let lastComputedElement: NodePath;\n for (let i = elements.length - 1; i >= 0; i--) {\n const path = elements[i];\n const node = path.node as ClassElementCanHaveComputedKeys;\n if (node.computed) {\n if (classDecorators && t.isClassProperty(node, { static: true })) {\n continue;\n }\n lastComputedElement = path as NodePath;\n break;\n }\n }\n if (lastComputedElement != null) {\n appendExpressionsToComputedKey(\n computedKeyAssignments,\n lastComputedElement,\n );\n computedKeyAssignments = [];\n } else {\n // If there is no computed key, we will try to convert the first non-computed\n // class element into a computed key and insert assignments there. This will\n // be done after we handle the class elements split when the class is decorated.\n }\n }\n\n if (fieldInitializerExpressions.length > 0) {\n const isDerivedClass = !!path.node.superClass;\n if (constructorPath) {\n if (isDerivedClass) {\n insertExpressionsAfterSuperCallAndOptimize(\n fieldInitializerExpressions,\n constructorPath,\n protoInitLocal,\n );\n } else {\n prependExpressionsToConstructor(\n fieldInitializerExpressions,\n constructorPath,\n );\n }\n } else {\n path.node.body.body.unshift(\n createConstructorFromExpressions(\n fieldInitializerExpressions,\n isDerivedClass,\n ),\n );\n }\n fieldInitializerExpressions = [];\n }\n\n if (staticFieldInitializerExpressions.length > 0) {\n path.node.body.body.push(\n createStaticBlockFromExpressions(staticFieldInitializerExpressions),\n );\n staticFieldInitializerExpressions = [];\n }\n\n const sortedElementDecoratorInfo =\n toSortedDecoratorInfo(elementDecoratorInfo);\n\n const elementDecorations = generateDecorationExprs(\n process.env.BABEL_8_BREAKING || version === \"2023-11\"\n ? elementDecoratorInfo\n : sortedElementDecoratorInfo,\n version,\n );\n\n const elementLocals: t.Identifier[] = extractElementLocalAssignments(\n sortedElementDecoratorInfo,\n );\n\n if (protoInitLocal) {\n elementLocals.push(protoInitLocal);\n }\n\n if (staticInitLocal) {\n elementLocals.push(staticInitLocal);\n }\n\n const classLocals: t.Identifier[] = [];\n let classInitInjected = false;\n const classInitCall =\n classInitLocal && t.callExpression(t.cloneNode(classInitLocal), []);\n\n let originalClassPath = path;\n const originalClass = path.node;\n\n const staticClosures: t.AssignmentExpression[] = [];\n if (classDecorators) {\n classLocals.push(classIdLocal, classInitLocal);\n const statics: (\n | t.ClassProperty\n | t.ClassPrivateProperty\n | t.ClassPrivateMethod\n )[] = [];\n path.get(\"body.body\").forEach(element => {\n // Static blocks cannot be compiled to \"instance blocks\", but we can inline\n // them as IIFEs in the next property.\n if (element.isStaticBlock()) {\n if (hasInstancePrivateAccess(element, instancePrivateNames)) {\n const staticBlockClosureId = memoiseExpression(\n staticBlockToFunctionClosure(element.node),\n \"staticBlock\",\n staticClosures,\n );\n staticFieldInitializerExpressions.push(\n t.callExpression(\n t.memberExpression(staticBlockClosureId, t.identifier(\"call\")),\n [t.thisExpression()],\n ),\n );\n } else {\n staticFieldInitializerExpressions.push(\n staticBlockToIIFE(element.node),\n );\n }\n element.remove();\n return;\n }\n\n if (\n (element.isClassProperty() || element.isClassPrivateProperty()) &&\n element.node.static\n ) {\n const valuePath = (\n element as NodePath\n ).get(\"value\");\n if (hasInstancePrivateAccess(valuePath, instancePrivateNames)) {\n const fieldValueClosureId = memoiseExpression(\n fieldInitializerToClosure(valuePath.node),\n \"fieldValue\",\n staticClosures,\n );\n valuePath.replaceWith(\n t.callExpression(\n t.memberExpression(fieldValueClosureId, t.identifier(\"call\")),\n [t.thisExpression()],\n ),\n );\n }\n if (staticFieldInitializerExpressions.length > 0) {\n prependExpressionsToFieldInitializer(\n staticFieldInitializerExpressions,\n element,\n );\n staticFieldInitializerExpressions = [];\n }\n element.node.static = false;\n statics.push(element.node);\n element.remove();\n } else if (element.isClassPrivateMethod({ static: true })) {\n // At this moment the element must not have decorators, so any private name\n // within the element must come from either params or body\n if (hasInstancePrivateAccess(element, instancePrivateNames)) {\n const replaceSupers = new ReplaceSupers({\n constantSuper,\n methodPath: element,\n objectRef: classIdLocal,\n superRef: path.node.superClass,\n file: state.file,\n refToPreserve: classIdLocal,\n });\n\n replaceSupers.replace();\n\n const privateMethodDelegateId = memoiseExpression(\n createFunctionExpressionFromPrivateMethod(element.node),\n element.get(\"key.id\").node.name,\n staticClosures,\n );\n\n if (ignoreFunctionLength) {\n element.node.params = [t.restElement(t.identifier(\"arg\"))];\n element.node.body = t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.memberExpression(\n privateMethodDelegateId,\n t.identifier(\"apply\"),\n ),\n [t.thisExpression(), t.identifier(\"arg\")],\n ),\n ),\n ]);\n } else {\n element.node.params = element.node.params.map((p, i) => {\n if (t.isRestElement(p)) {\n return t.restElement(t.identifier(\"arg\"));\n } else {\n return t.identifier(\"_\" + i);\n }\n });\n element.node.body = t.blockStatement([\n t.returnStatement(\n t.callExpression(\n t.memberExpression(\n privateMethodDelegateId,\n t.identifier(\"apply\"),\n ),\n [t.thisExpression(), t.identifier(\"arguments\")],\n ),\n ),\n ]);\n }\n }\n element.node.static = false;\n statics.push(element.node);\n element.remove();\n }\n });\n\n if (statics.length > 0 || staticFieldInitializerExpressions.length > 0) {\n const staticsClass = template.expression.ast`\n class extends ${state.addHelper(\"identity\")} {}\n ` as t.ClassExpression;\n staticsClass.body.body = [\n // Insert the original class to a computed key of the wrapper so that\n // 1) they share the same function context with the wrapper class\n // 2) the memoisation of static computed field is evaluated before they\n // are referenced in the wrapper class keys\n // Note that any static elements of the wrapper class can not be accessed\n // in the user land, so we don't have to remove the temporary class field.\n t.classProperty(\n t.toExpression(originalClass),\n undefined,\n undefined,\n undefined,\n /* computed */ true,\n /* static */ true,\n ),\n ...statics,\n ];\n\n const constructorBody: t.Expression[] = [];\n\n const newExpr = t.newExpression(staticsClass, []);\n\n if (staticFieldInitializerExpressions.length > 0) {\n constructorBody.push(...staticFieldInitializerExpressions);\n }\n if (classInitCall) {\n classInitInjected = true;\n constructorBody.push(classInitCall);\n }\n if (constructorBody.length > 0) {\n constructorBody.unshift(\n t.callExpression(t.super(), [t.cloneNode(classIdLocal)]),\n );\n\n // set isDerivedClass to false as we have already prepended super call\n staticsClass.body.body.push(\n createConstructorFromExpressions(\n constructorBody,\n /* isDerivedClass */ false,\n ),\n );\n } else {\n newExpr.arguments.push(t.cloneNode(classIdLocal));\n }\n\n const [newPath] = path.replaceWith(newExpr);\n\n // update originalClassPath according to the new AST\n originalClassPath = (\n newPath.get(\"callee\").get(\"body\") as NodePath\n ).get(\"body.0.key\");\n }\n }\n if (!classInitInjected && classInitCall) {\n path.node.body.body.push(\n t.staticBlock([t.expressionStatement(classInitCall)]),\n );\n }\n\n let { superClass } = originalClass;\n if (\n superClass &&\n (process.env.BABEL_8_BREAKING ||\n version === \"2023-11\" ||\n version === \"2023-05\")\n ) {\n const id = path.scope.maybeGenerateMemoised(superClass);\n if (id) {\n originalClass.superClass = t.assignmentExpression(\"=\", id, superClass);\n superClass = id;\n }\n }\n\n const applyDecoratorWrapper = t.staticBlock([]);\n originalClass.body.body.unshift(applyDecoratorWrapper);\n const applyDecsBody = applyDecoratorWrapper.body;\n if (computedKeyAssignments.length > 0) {\n const elements = originalClassPath.get(\"body.body\");\n let firstPublicElement: NodePath;\n for (const path of elements) {\n if (\n (path.isClassProperty() || path.isClassMethod()) &&\n (path.node as t.ClassMethod).kind !== \"constructor\"\n ) {\n firstPublicElement = path;\n break;\n }\n }\n if (firstPublicElement != null) {\n // Convert its key to a computed one to host the decorator evaluations.\n convertToComputedKey(firstPublicElement);\n prependExpressionsToComputedKey(\n computedKeyAssignments,\n firstPublicElement,\n );\n } else {\n // When there is no public class elements, we inject a temporary computed\n // field whose key will host the decorator evaluations. The field will be\n // deleted immediately after it is defiend.\n originalClass.body.body.unshift(\n t.classProperty(\n t.sequenceExpression([\n ...computedKeyAssignments,\n t.stringLiteral(\"_\"),\n ]),\n undefined,\n undefined,\n undefined,\n /* computed */ true,\n /* static */ true,\n ),\n );\n applyDecsBody.push(\n t.expressionStatement(\n t.unaryExpression(\n \"delete\",\n t.memberExpression(t.thisExpression(), t.identifier(\"_\")),\n ),\n ),\n );\n }\n computedKeyAssignments = [];\n }\n\n applyDecsBody.push(\n t.expressionStatement(\n createLocalsAssignment(\n elementLocals,\n classLocals,\n elementDecorations,\n classDecorationsId ?? t.arrayExpression(classDecorations),\n t.numericLiteral(classDecorationsFlag),\n needsInstancePrivateBrandCheck ? lastInstancePrivateName : null,\n typeof className === \"object\" ? className : undefined,\n t.cloneNode(superClass),\n state,\n version,\n ),\n ),\n );\n if (staticInitLocal) {\n applyDecsBody.push(\n t.expressionStatement(\n t.callExpression(t.cloneNode(staticInitLocal), [t.thisExpression()]),\n ),\n );\n }\n if (staticClosures.length > 0) {\n applyDecsBody.push(\n ...staticClosures.map(expr => t.expressionStatement(expr)),\n );\n }\n\n // When path is a ClassExpression, path.insertBefore will convert `path`\n // into a SequenceExpression\n path.insertBefore(classAssignments.map(expr => t.expressionStatement(expr)));\n\n if (needsDeclaraionForClassBinding) {\n const classBindingInfo = scopeParent.getBinding(classIdLocal.name);\n if (!classBindingInfo.constantViolations.length) {\n // optimization: reuse the inner class binding if the outer class binding is not mutated\n path.insertBefore(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(classIdLocal)),\n ]),\n );\n } else {\n const classOuterBindingDelegateLocal = scopeParent.generateUidIdentifier(\n \"t\" + classIdLocal.name,\n );\n const classOuterBindingLocal = classIdLocal;\n path.replaceWithMultiple([\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(classOuterBindingLocal)),\n t.variableDeclarator(classOuterBindingDelegateLocal),\n ]),\n t.blockStatement([\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(classIdLocal)),\n ]),\n // needsDeclaraionForClassBinding is true ↔ node is a class declaration\n path.node as t.ClassDeclaration,\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classOuterBindingDelegateLocal),\n t.cloneNode(classIdLocal),\n ),\n ),\n ]),\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(classOuterBindingLocal),\n t.cloneNode(classOuterBindingDelegateLocal),\n ),\n ),\n ]);\n }\n }\n\n if (decoratedPrivateMethods.size > 0) {\n checkPrivateMethodUpdateError(path, decoratedPrivateMethods);\n }\n\n // Recrawl the scope to make sure new identifiers are properly synced\n path.scope.crawl();\n\n return path;\n}\n\nfunction createLocalsAssignment(\n elementLocals: t.Identifier[],\n classLocals: t.Identifier[],\n elementDecorations: t.ArrayExpression | t.Identifier,\n classDecorations: t.ArrayExpression | t.Identifier,\n classDecorationsFlag: t.NumericLiteral,\n maybePrivateBrandName: t.PrivateName | null,\n setClassName: t.Identifier | t.StringLiteral | undefined,\n superClass: null | t.Expression,\n state: PluginPass,\n version: DecoratorVersionKind,\n) {\n let lhs, rhs;\n const args: t.Expression[] = [\n setClassName\n ? createSetFunctionNameCall(state, setClassName)\n : t.thisExpression(),\n classDecorations,\n elementDecorations,\n ];\n\n if (!process.env.BABEL_8_BREAKING) {\n if (version !== \"2023-11\") {\n args.splice(1, 2, elementDecorations, classDecorations);\n }\n if (\n version === \"2021-12\" ||\n (version === \"2022-03\" && !state.availableHelper(\"applyDecs2203R\"))\n ) {\n lhs = t.arrayPattern([...elementLocals, ...classLocals]);\n rhs = t.callExpression(\n state.addHelper(version === \"2021-12\" ? \"applyDecs\" : \"applyDecs2203\"),\n args,\n );\n return t.assignmentExpression(\"=\", lhs, rhs);\n } else if (version === \"2022-03\") {\n rhs = t.callExpression(state.addHelper(\"applyDecs2203R\"), args);\n } else if (version === \"2023-01\") {\n if (maybePrivateBrandName) {\n args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));\n }\n rhs = t.callExpression(state.addHelper(\"applyDecs2301\"), args);\n } else if (version === \"2023-05\") {\n if (\n maybePrivateBrandName ||\n superClass ||\n classDecorationsFlag.value !== 0\n ) {\n args.push(classDecorationsFlag);\n }\n if (maybePrivateBrandName) {\n args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));\n } else if (superClass) {\n args.push(t.unaryExpression(\"void\", t.numericLiteral(0)));\n }\n if (superClass) args.push(superClass);\n rhs = t.callExpression(state.addHelper(\"applyDecs2305\"), args);\n }\n }\n if (process.env.BABEL_8_BREAKING || version === \"2023-11\") {\n if (\n maybePrivateBrandName ||\n superClass ||\n classDecorationsFlag.value !== 0\n ) {\n args.push(classDecorationsFlag);\n }\n if (maybePrivateBrandName) {\n args.push(createPrivateBrandCheckClosure(maybePrivateBrandName));\n } else if (superClass) {\n args.push(t.unaryExpression(\"void\", t.numericLiteral(0)));\n }\n if (superClass) args.push(superClass);\n rhs = t.callExpression(state.addHelper(\"applyDecs2311\"), args);\n }\n\n // optimize `{ c: [classLocals] } = applyDecsHelper(...)` to\n // `[classLocals] = applyDecsHelper(...).c`\n if (elementLocals.length > 0) {\n if (classLocals.length > 0) {\n lhs = t.objectPattern([\n t.objectProperty(t.identifier(\"e\"), t.arrayPattern(elementLocals)),\n t.objectProperty(t.identifier(\"c\"), t.arrayPattern(classLocals)),\n ]);\n } else {\n lhs = t.arrayPattern(elementLocals);\n rhs = t.memberExpression(rhs, t.identifier(\"e\"), false, false);\n }\n } else {\n // invariant: classLocals.length > 0\n lhs = t.arrayPattern(classLocals);\n rhs = t.memberExpression(rhs, t.identifier(\"c\"), false, false);\n }\n\n return t.assignmentExpression(\"=\", lhs, rhs);\n}\n\nfunction isProtoKey(\n node: t.Identifier | t.StringLiteral | t.BigIntLiteral | t.NumericLiteral,\n) {\n return node.type === \"Identifier\"\n ? node.name === \"__proto__\"\n : node.value === \"__proto__\";\n}\n\nfunction isDecorated(node: t.Class | ClassDecoratableElement) {\n return node.decorators && node.decorators.length > 0;\n}\n\nfunction shouldTransformElement(node: ClassElement) {\n switch (node.type) {\n case \"ClassAccessorProperty\":\n return true;\n case \"ClassMethod\":\n case \"ClassProperty\":\n case \"ClassPrivateMethod\":\n case \"ClassPrivateProperty\":\n return isDecorated(node);\n default:\n return false;\n }\n}\n\nfunction shouldTransformClass(node: t.Class) {\n return isDecorated(node) || node.body.body.some(shouldTransformElement);\n}\n\n// Todo: unify name references logic with helper-function-name\nfunction NamedEvaluationVisitoryFactory(\n isAnonymous: (path: NodePath) => boolean,\n visitor: (\n path: NodePath,\n state: PluginPass,\n name:\n | string\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n ) => void,\n) {\n function handleComputedProperty(\n propertyPath: NodePath<\n t.ObjectProperty | t.ClassProperty | t.ClassAccessorProperty\n >,\n key: t.Expression,\n state: PluginPass,\n ): t.StringLiteral | t.Identifier {\n switch (key.type) {\n case \"StringLiteral\":\n return t.stringLiteral(key.value);\n case \"NumericLiteral\":\n case \"BigIntLiteral\": {\n const keyValue = key.value + \"\";\n propertyPath.get(\"key\").replaceWith(t.stringLiteral(keyValue));\n return t.stringLiteral(keyValue);\n }\n default: {\n const ref = propertyPath.scope.maybeGenerateMemoised(key);\n propertyPath\n .get(\"key\")\n .replaceWith(\n t.assignmentExpression(\n \"=\",\n ref,\n createToPropertyKeyCall(state, key),\n ),\n );\n return t.cloneNode(ref);\n }\n }\n }\n return {\n VariableDeclarator(path, state) {\n const id = path.node.id;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"init\"));\n if (isAnonymous(initializer)) {\n const name = id.name;\n visitor(initializer, state, name);\n }\n }\n },\n AssignmentExpression(path, state) {\n const id = path.node.left;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"right\"));\n if (isAnonymous(initializer)) {\n switch (path.node.operator) {\n case \"=\":\n case \"&&=\":\n case \"||=\":\n case \"??=\":\n visitor(initializer, state, id.name);\n }\n }\n }\n },\n AssignmentPattern(path, state) {\n const id = path.node.left;\n if (id.type === \"Identifier\") {\n const initializer = skipTransparentExprWrappers(path.get(\"right\"));\n if (isAnonymous(initializer)) {\n const name = id.name;\n visitor(initializer, state, name);\n }\n }\n },\n // We listen on ObjectExpression so that we don't have to visit\n // the object properties under object patterns\n ObjectExpression(path, state) {\n for (const propertyPath of path.get(\"properties\")) {\n if (!propertyPath.isObjectProperty()) continue;\n const { node } = propertyPath;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(\n propertyPath.get(\"value\") as NodePath,\n );\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n // 13.2.5.5 RS: PropertyDefinitionEvaluation\n if (!isProtoKey(id as t.StringLiteral | t.Identifier)) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n }\n } else {\n const ref = handleComputedProperty(\n propertyPath,\n // The key of a computed object property must not be a private name\n id as t.Expression,\n state,\n );\n visitor(initializer, state, ref);\n }\n }\n }\n },\n ClassPrivateProperty(path, state) {\n const { node } = path;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n const className = t.stringLiteral(\"#\" + node.key.id.name);\n visitor(initializer, state, className);\n }\n },\n ClassAccessorProperty(path, state) {\n const { node } = path;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else if (id.type === \"PrivateName\") {\n const className = t.stringLiteral(\"#\" + id.id.name);\n visitor(initializer, state, className);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n } else {\n const ref = handleComputedProperty(\n path,\n // The key of a computed accessor property must not be a private name\n id as t.Expression,\n state,\n );\n visitor(initializer, state, ref);\n }\n }\n },\n ClassProperty(path, state) {\n const { node } = path;\n const id = node.key;\n const initializer = skipTransparentExprWrappers(path.get(\"value\"));\n if (isAnonymous(initializer)) {\n if (!node.computed) {\n if (id.type === \"Identifier\") {\n visitor(initializer, state, id.name);\n } else {\n const className = t.stringLiteral(\n (id as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value + \"\",\n );\n visitor(initializer, state, className);\n }\n } else {\n const ref = handleComputedProperty(path, id, state);\n visitor(initializer, state, ref);\n }\n }\n },\n } satisfies Visitor;\n}\n\nfunction isDecoratedAnonymousClassExpression(path: NodePath) {\n return (\n path.isClassExpression({ id: null }) && shouldTransformClass(path.node)\n );\n}\n\nfunction generateLetUidIdentifier(scope: Scope, name: string) {\n const id = scope.generateUidIdentifier(name);\n scope.push({ id, kind: \"let\" });\n return t.cloneNode(id);\n}\n\nexport default function (\n { assertVersion, assumption }: PluginAPI,\n { loose }: Options,\n version: DecoratorVersionKind,\n inherits: PluginObject[\"inherits\"],\n): PluginObject {\n if (process.env.BABEL_8_BREAKING) {\n assertVersion(REQUIRED_VERSION(\"^7.21.0\"));\n } else {\n if (\n version === \"2023-11\" ||\n version === \"2023-05\" ||\n version === \"2023-01\"\n ) {\n assertVersion(REQUIRED_VERSION(\"^7.21.0\"));\n } else if (version === \"2021-12\") {\n assertVersion(REQUIRED_VERSION(\"^7.16.0\"));\n } else {\n assertVersion(REQUIRED_VERSION(\"^7.19.0\"));\n }\n }\n\n const VISITED = new WeakSet();\n const constantSuper = assumption(\"constantSuper\") ?? loose;\n const ignoreFunctionLength = assumption(\"ignoreFunctionLength\") ?? loose;\n\n const namedEvaluationVisitor: Visitor =\n NamedEvaluationVisitoryFactory(\n isDecoratedAnonymousClassExpression,\n visitClass,\n );\n\n function visitClass(\n path: NodePath,\n state: PluginPass,\n className: string | t.Identifier | t.StringLiteral | undefined,\n ) {\n if (VISITED.has(path)) return;\n const { node } = path;\n className ??= node.id?.name;\n const newPath = transformClass(\n path,\n state,\n constantSuper,\n ignoreFunctionLength,\n className,\n namedEvaluationVisitor,\n version,\n );\n if (newPath) {\n VISITED.add(newPath);\n return;\n }\n VISITED.add(path);\n }\n\n return {\n name: \"proposal-decorators\",\n inherits: inherits,\n\n visitor: {\n ExportDefaultDeclaration(path, state) {\n const { declaration } = path.node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // When compiling class decorators we need to replace the class\n // binding, so we must split it in two separate declarations.\n isDecorated(declaration)\n ) {\n const isAnonymous = !declaration.id;\n const updatedVarDeclarationPath = splitExportDeclaration(\n path,\n ) as unknown as NodePath;\n if (isAnonymous) {\n visitClass(\n updatedVarDeclarationPath,\n state,\n t.stringLiteral(\"default\"),\n );\n }\n }\n },\n ExportNamedDeclaration(path) {\n const { declaration } = path.node;\n if (\n declaration?.type === \"ClassDeclaration\" &&\n // When compiling class decorators we need to replace the class\n // binding, so we must split it in two separate declarations.\n isDecorated(declaration)\n ) {\n splitExportDeclaration(path);\n }\n },\n\n Class(path, state) {\n visitClass(path, state, undefined);\n },\n\n ...namedEvaluationVisitor,\n },\n };\n}\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","// TODO(Babel 8): Remove this file\n\nimport { types as t, template } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport nameFunction from \"@babel/helper-function-name\";\n\ntype Decoratable = Extract;\n\nexport function hasOwnDecorators(node: t.Class | t.ClassBody[\"body\"][number]) {\n // @ts-expect-error: 'decorators' not in TSIndexSignature\n return !!node.decorators?.length;\n}\n\nexport function hasDecorators(node: t.Class) {\n return hasOwnDecorators(node) || node.body.body.some(hasOwnDecorators);\n}\n\nfunction prop(key: string, value?: t.Expression) {\n if (!value) return null;\n return t.objectProperty(t.identifier(key), value);\n}\n\nfunction method(key: string, body: t.Statement[]) {\n return t.objectMethod(\n \"method\",\n t.identifier(key),\n [],\n t.blockStatement(body),\n );\n}\n\nfunction takeDecorators(node: Decoratable) {\n let result: t.ArrayExpression | undefined;\n if (node.decorators && node.decorators.length > 0) {\n result = t.arrayExpression(\n node.decorators.map(decorator => decorator.expression),\n );\n }\n node.decorators = undefined;\n return result;\n}\n\ntype AcceptedElement = Exclude;\ntype SupportedElement = Exclude<\n AcceptedElement,\n | t.ClassPrivateMethod\n | t.ClassPrivateProperty\n | t.ClassAccessorProperty\n | t.StaticBlock\n>;\n\nfunction getKey(node: SupportedElement) {\n if (node.computed) {\n return node.key;\n } else if (t.isIdentifier(node.key)) {\n return t.stringLiteral(node.key.name);\n } else {\n return t.stringLiteral(\n String(\n // A non-identifier non-computed key\n (node.key as t.StringLiteral | t.NumericLiteral | t.BigIntLiteral)\n .value,\n ),\n );\n }\n}\n\nfunction extractElementDescriptor(\n file: File,\n classRef: t.Identifier,\n superRef: t.Identifier,\n path: NodePath,\n) {\n const isMethod = path.isClassMethod();\n if (path.isPrivate()) {\n throw path.buildCodeFrameError(\n `Private ${\n isMethod ? \"methods\" : \"fields\"\n } in decorated classes are not supported yet.`,\n );\n }\n if (path.node.type === \"ClassAccessorProperty\") {\n throw path.buildCodeFrameError(\n `Accessor properties are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n if (path.node.type === \"StaticBlock\") {\n throw path.buildCodeFrameError(\n `Static blocks are not supported in 2018-09 decorator transform, please specify { \"version\": \"2021-12\" } instead.`,\n );\n }\n\n const { node, scope } = path as NodePath;\n\n if (!path.isTSDeclareMethod()) {\n new ReplaceSupers({\n methodPath: path as NodePath<\n Exclude\n >,\n objectRef: classRef,\n superRef,\n file,\n refToPreserve: classRef,\n }).replace();\n }\n\n const properties: t.ObjectExpression[\"properties\"] = [\n prop(\"kind\", t.stringLiteral(t.isClassMethod(node) ? node.kind : \"field\")),\n prop(\"decorators\", takeDecorators(node as Decoratable)),\n prop(\"static\", node.static && t.booleanLiteral(true)),\n prop(\"key\", getKey(node)),\n ].filter(Boolean);\n\n if (t.isClassMethod(node)) {\n const id = node.computed\n ? null\n : (node.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral);\n const transformed = t.toExpression(node);\n properties.push(\n prop(\n \"value\",\n nameFunction({ node: transformed, id, scope }) || transformed,\n ),\n );\n } else if (t.isClassProperty(node) && node.value) {\n properties.push(\n method(\"value\", template.statements.ast`return ${node.value}`),\n );\n } else {\n properties.push(prop(\"value\", scope.buildUndefinedNode()));\n }\n\n path.remove();\n\n return t.objectExpression(properties);\n}\n\nfunction addDecorateHelper(file: File) {\n return file.addHelper(\"decorate\");\n}\n\ntype ClassElement = t.Class[\"body\"][\"body\"][number];\ntype ClassElementPath = NodePath;\n\nexport function buildDecoratedClass(\n ref: t.Identifier,\n path: NodePath,\n elements: ClassElementPath[],\n file: File,\n) {\n const { node, scope } = path;\n const initializeId = scope.generateUidIdentifier(\"initialize\");\n const isDeclaration = node.id && path.isDeclaration();\n const isStrict = path.isInStrictMode();\n const { superClass } = node;\n\n node.type = \"ClassDeclaration\";\n if (!node.id) node.id = t.cloneNode(ref);\n\n let superId: t.Identifier;\n if (superClass) {\n superId = scope.generateUidIdentifierBasedOnNode(node.superClass, \"super\");\n node.superClass = superId;\n }\n\n const classDecorators = takeDecorators(node);\n const definitions = t.arrayExpression(\n elements\n .filter(\n element =>\n // @ts-expect-error Ignore TypeScript's abstract methods (see #10514)\n !element.node.abstract && element.node.type !== \"TSIndexSignature\",\n )\n .map(path =>\n extractElementDescriptor(\n file,\n node.id,\n superId,\n // @ts-expect-error TS can not exclude TSIndexSignature\n path,\n ),\n ),\n );\n\n const wrapperCall = template.expression.ast`\n ${addDecorateHelper(file)}(\n ${classDecorators || t.nullLiteral()},\n function (${initializeId}, ${superClass ? t.cloneNode(superId) : null}) {\n ${node}\n return { F: ${t.cloneNode(node.id)}, d: ${definitions} };\n },\n ${superClass}\n )\n ` as t.CallExpression & { arguments: [unknown, t.FunctionExpression] };\n\n if (!isStrict) {\n wrapperCall.arguments[1].body.directives.push(\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n }\n\n let replacement: t.Node = wrapperCall;\n let classPathDesc = \"arguments.1.body.body.0\";\n if (isDeclaration) {\n replacement = template.statement.ast`let ${ref} = ${wrapperCall}`;\n classPathDesc = \"declarations.0.init.\" + classPathDesc;\n }\n\n return {\n instanceNodes: [\n template.statement.ast`\n ${t.cloneNode(initializeId)}(this)\n ` as t.ExpressionStatement,\n ],\n wrapClass(path: NodePath) {\n path.replaceWith(replacement);\n return path.get(classPathDesc) as NodePath;\n },\n };\n}\n","import type { File, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { hasOwnDecorators } from \"./decorators-2018-09.ts\";\n\nexport const FEATURES = Object.freeze({\n //classes: 1 << 0,\n fields: 1 << 1,\n privateMethods: 1 << 2,\n decorators: 1 << 3,\n privateIn: 1 << 4,\n staticBlocks: 1 << 5,\n});\n\nconst featuresSameLoose = new Map([\n [FEATURES.fields, \"@babel/plugin-transform-class-properties\"],\n [FEATURES.privateMethods, \"@babel/plugin-transform-private-methods\"],\n [FEATURES.privateIn, \"@babel/plugin-transform-private-property-in-object\"],\n]);\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-class-features\n// - @babel/plugin-proposal-decorators\n// - node_modules\n// - @babel-plugin-class-features\nconst featuresKey = \"@babel/plugin-class-features/featuresKey\";\nconst looseKey = \"@babel/plugin-class-features/looseKey\";\n\nif (!process.env.BABEL_8_BREAKING) {\n // See https://github.com/babel/babel/issues/11622.\n // Since preset-env sets loose for the fields and private methods plugins, it can\n // cause conflicts with the loose mode set by an explicit plugin in the config.\n // To solve this problem, we ignore preset-env's loose mode if another plugin\n // explicitly sets it\n // The code to handle this logic doesn't check that \"low priority loose\" is always\n // the same. However, it is only set by the preset and not directly by users:\n // unless someone _wants_ to break it, it shouldn't be a problem.\n // eslint-disable-next-line no-var\n var looseLowPriorityKey =\n \"@babel/plugin-class-features/looseLowPriorityKey/#__internal__@babel/preset-env__please-overwrite-loose-instead-of-throwing\";\n}\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var canIgnoreLoose = function (file: File, feature: number) {\n return !!(file.get(looseLowPriorityKey) & feature);\n };\n}\n\nexport function enableFeature(file: File, feature: number, loose: boolean) {\n // We can't blindly enable the feature because, if it was already set,\n // \"loose\" can't be changed, so that\n // @babel/plugin-class-properties { loose: true }\n // @babel/plugin-class-properties { loose: false }\n // is transformed in loose mode.\n // We only enabled the feature if it was previously disabled.\n if (process.env.BABEL_8_BREAKING) {\n if (!hasFeature(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n setLoose(file, feature, loose);\n }\n } else if (!hasFeature(file, feature) || canIgnoreLoose(file, feature)) {\n file.set(featuresKey, file.get(featuresKey) | feature);\n if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, true);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else if (\n // @ts-expect-error comparing loose with internal private magic string\n loose ===\n \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\"\n ) {\n setLoose(file, feature, false);\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) | feature);\n } else {\n setLoose(file, feature, loose);\n }\n }\n\n let resolvedLoose: boolean | undefined;\n for (const [mask, name] of featuresSameLoose) {\n if (!hasFeature(file, mask)) continue;\n if (!process.env.BABEL_8_BREAKING) {\n if (canIgnoreLoose(file, mask)) continue;\n }\n\n const loose = isLoose(file, mask);\n\n if (resolvedLoose === !loose) {\n throw new Error(\n \"'loose' mode configuration must be the same for @babel/plugin-transform-class-properties, \" +\n \"@babel/plugin-transform-private-methods and \" +\n \"@babel/plugin-transform-private-property-in-object (when they are enabled).\" +\n \"\\n\\n\" +\n getBabelShowConfigForHint(file),\n );\n } else {\n resolvedLoose = loose;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var higherPriorityPluginName = name;\n }\n }\n }\n\n if (!process.env.BABEL_8_BREAKING && resolvedLoose !== undefined) {\n for (const [mask, name] of featuresSameLoose) {\n if (hasFeature(file, mask) && isLoose(file, mask) !== resolvedLoose) {\n setLoose(file, mask, resolvedLoose);\n console.warn(\n `Though the \"loose\" option was set to \"${!resolvedLoose}\" in your @babel/preset-env ` +\n `config, it will not be used for ${name} since the \"loose\" mode option was set to ` +\n `\"${resolvedLoose}\" for ${higherPriorityPluginName}.\\nThe \"loose\" option must be the ` +\n `same for @babel/plugin-transform-class-properties, @babel/plugin-transform-private-methods ` +\n `and @babel/plugin-transform-private-property-in-object (when they are enabled): you can ` +\n `silence this warning by explicitly adding\\n` +\n `\\t[\"${name}\", { \"loose\": ${resolvedLoose} }]\\n` +\n `to the \"plugins\" section of your Babel config.` +\n \"\\n\\n\" +\n getBabelShowConfigForHint(file),\n );\n }\n }\n }\n}\n\nfunction getBabelShowConfigForHint(file: File) {\n let { filename } = file.opts;\n if (!filename || filename === \"unknown\") {\n filename = \"[name of the input file]\";\n }\n return `\\\nIf you already set the same 'loose' mode for these plugins in your config, it's possible that they \\\nare enabled multiple times with different options.\nYou can re-run Babel with the BABEL_SHOW_CONFIG_FOR environment variable to show the loaded \\\nconfiguration:\n\\tnpx cross-env BABEL_SHOW_CONFIG_FOR=${filename} \nSee https://babeljs.io/docs/configuration#print-effective-configs for more info.`;\n}\n\nfunction hasFeature(file: File, feature: number) {\n return !!(file.get(featuresKey) & feature);\n}\n\nexport function isLoose(file: File, feature: number) {\n return !!(file.get(looseKey) & feature);\n}\n\nfunction setLoose(file: File, feature: number, loose: boolean) {\n if (loose) file.set(looseKey, file.get(looseKey) | feature);\n else file.set(looseKey, file.get(looseKey) & ~feature);\n\n if (!process.env.BABEL_8_BREAKING) {\n file.set(looseLowPriorityKey, file.get(looseLowPriorityKey) & ~feature);\n }\n}\n\nexport function shouldTransform(path: NodePath, file: File): boolean {\n let decoratorPath: NodePath | null = null;\n let publicFieldPath: NodePath | null = null;\n let privateFieldPath: NodePath | null = null;\n let privateMethodPath: NodePath | null = null;\n let staticBlockPath: NodePath | null = null;\n\n if (hasOwnDecorators(path.node)) {\n decoratorPath = path.get(\"decorators.0\");\n }\n for (const el of path.get(\"body.body\")) {\n if (!decoratorPath && hasOwnDecorators(el.node)) {\n decoratorPath = el.get(\"decorators.0\");\n }\n if (!publicFieldPath && el.isClassProperty()) {\n publicFieldPath = el;\n }\n if (!privateFieldPath && el.isClassPrivateProperty()) {\n privateFieldPath = el;\n }\n // NOTE: path.isClassPrivateMethod() it isn't supported in <7.2.0\n if (!privateMethodPath && el.isClassPrivateMethod?.()) {\n privateMethodPath = el;\n }\n if (!staticBlockPath && el.isStaticBlock?.()) {\n staticBlockPath = el;\n }\n }\n\n if (decoratorPath && privateFieldPath) {\n throw privateFieldPath.buildCodeFrameError(\n \"Private fields in decorated classes are not supported yet.\",\n );\n }\n if (decoratorPath && privateMethodPath) {\n throw privateMethodPath.buildCodeFrameError(\n \"Private methods in decorated classes are not supported yet.\",\n );\n }\n\n if (decoratorPath && !hasFeature(file, FEATURES.decorators)) {\n throw path.buildCodeFrameError(\n \"Decorators are not enabled.\" +\n \"\\nIf you are using \" +\n '[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }], ' +\n 'make sure it comes *before* \"@babel/plugin-transform-class-properties\" ' +\n \"and enable loose mode, like so:\\n\" +\n '\\t[\"@babel/plugin-proposal-decorators\", { \"version\": \"legacy\" }]\\n' +\n '\\t[\"@babel/plugin-transform-class-properties\", { \"loose\": true }]',\n );\n }\n\n if (privateMethodPath && !hasFeature(file, FEATURES.privateMethods)) {\n throw privateMethodPath.buildCodeFrameError(\n \"Class private methods are not enabled. \" +\n \"Please add `@babel/plugin-transform-private-methods` to your configuration.\",\n );\n }\n\n if (\n (publicFieldPath || privateFieldPath) &&\n !hasFeature(file, FEATURES.fields) &&\n // We want to allow enabling the private-methods plugin even without enabling\n // the class-properties plugin. Class fields will still be compiled in classes\n // that contain private methods.\n // This is already allowed with the other various class features plugins, but\n // it's because they can fallback to a transform separated from this helper.\n !hasFeature(file, FEATURES.privateMethods)\n ) {\n throw path.buildCodeFrameError(\n \"Class fields are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-properties` to your configuration.\",\n );\n }\n\n if (staticBlockPath && !hasFeature(file, FEATURES.staticBlocks)) {\n throw path.buildCodeFrameError(\n \"Static class blocks are not enabled. \" +\n \"Please add `@babel/plugin-transform-class-static-block` to your configuration.\",\n );\n }\n\n if (decoratorPath || privateMethodPath || staticBlockPath) {\n // If one of those feature is used we know that its transform is\n // enabled, otherwise the previous checks throw.\n return true;\n }\n if (\n (publicFieldPath || privateFieldPath) &&\n hasFeature(file, FEATURES.fields)\n ) {\n return true;\n }\n\n return false;\n}\n","import { types as t } from \"@babel/core\";\nimport type { PluginAPI, PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport createDecoratorTransform from \"./decorators.ts\";\nimport type { DecoratorVersionKind } from \"./decorators.ts\";\n\nimport semver from \"semver\";\n\nimport {\n buildPrivateNamesNodes,\n buildPrivateNamesMap,\n transformPrivateNamesUsage,\n buildFieldsInitNodes,\n buildCheckInRHS,\n} from \"./fields.ts\";\nimport type { PropPath } from \"./fields.ts\";\nimport { buildDecoratedClass, hasDecorators } from \"./decorators-2018-09.ts\";\nimport { injectInitialization, extractComputedKeys } from \"./misc.ts\";\nimport {\n enableFeature,\n FEATURES,\n isLoose,\n shouldTransform,\n} from \"./features.ts\";\nimport { assertFieldTransformed } from \"./typescript.ts\";\n\nexport { FEATURES, enableFeature, injectInitialization, buildCheckInRHS };\n\nconst versionKey = \"@babel/plugin-class-features/version\";\n\ninterface Options {\n name: string;\n feature: number;\n loose?: boolean;\n inherits?: PluginObject[\"inherits\"];\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n api?: PluginAPI;\n decoratorVersion?: DecoratorVersionKind | \"2018-09\";\n}\n\nexport function createClassFeaturePlugin({\n name,\n feature,\n loose,\n manipulateOptions,\n api,\n inherits,\n decoratorVersion,\n}: Options): PluginObject {\n if (feature & FEATURES.decorators) {\n if (process.env.BABEL_8_BREAKING) {\n return createDecoratorTransform(api, { loose }, \"2023-11\", inherits);\n } else {\n if (\n decoratorVersion === \"2023-11\" ||\n decoratorVersion === \"2023-05\" ||\n decoratorVersion === \"2023-01\" ||\n decoratorVersion === \"2022-03\" ||\n decoratorVersion === \"2021-12\"\n ) {\n return createDecoratorTransform(\n api,\n { loose },\n decoratorVersion,\n inherits,\n );\n }\n }\n }\n if (!process.env.BABEL_8_BREAKING) {\n api ??= { assumption: () => void 0 as any } as any;\n }\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n const privateFieldsAsSymbols = api.assumption(\"privateFieldsAsSymbols\");\n const privateFieldsAsProperties = api.assumption(\"privateFieldsAsProperties\");\n const noUninitializedPrivateFieldAccess =\n api.assumption(\"noUninitializedPrivateFieldAccess\") ?? false;\n const constantSuper = api.assumption(\"constantSuper\");\n const noDocumentAll = api.assumption(\"noDocumentAll\");\n\n if (privateFieldsAsProperties && privateFieldsAsSymbols) {\n throw new Error(\n `Cannot enable both the \"privateFieldsAsProperties\" and ` +\n `\"privateFieldsAsSymbols\" assumptions as the same time.`,\n );\n }\n const privateFieldsAsSymbolsOrProperties =\n privateFieldsAsProperties || privateFieldsAsSymbols;\n\n if (loose === true) {\n type AssumptionName = Parameters[0];\n const explicit: `\"${AssumptionName}\"`[] = [];\n\n if (setPublicClassFields !== undefined) {\n explicit.push(`\"setPublicClassFields\"`);\n }\n if (privateFieldsAsProperties !== undefined) {\n explicit.push(`\"privateFieldsAsProperties\"`);\n }\n if (privateFieldsAsSymbols !== undefined) {\n explicit.push(`\"privateFieldsAsSymbols\"`);\n }\n if (explicit.length !== 0) {\n console.warn(\n `[${name}]: You are using the \"loose: true\" option and you are` +\n ` explicitly setting a value for the ${explicit.join(\" and \")}` +\n ` assumption${explicit.length > 1 ? \"s\" : \"\"}. The \"loose\" option` +\n ` can cause incompatibilities with the other class features` +\n ` plugins, so it's recommended that you replace it with the` +\n ` following top-level option:\\n` +\n `\\t\"assumptions\": {\\n` +\n `\\t\\t\"setPublicClassFields\": true,\\n` +\n `\\t\\t\"privateFieldsAsSymbols\": true\\n` +\n `\\t}`,\n );\n }\n }\n\n return {\n name,\n manipulateOptions,\n inherits,\n\n pre(file) {\n enableFeature(file, feature, loose);\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n Class(path, { file }) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n if (!shouldTransform(path, file)) return;\n\n const pathIsClassDeclaration = path.isClassDeclaration();\n\n if (pathIsClassDeclaration) assertFieldTransformed(path);\n\n const loose = isLoose(file, feature);\n\n let constructor: NodePath;\n const isDecorated = hasDecorators(path.node);\n const props: PropPath[] = [];\n const elements = [];\n const computedPaths: NodePath[] = [];\n const privateNames = new Set();\n const body = path.get(\"body\");\n\n for (const path of body.get(\"body\")) {\n if (\n // check path.node.computed is enough, but ts will complain\n (path.isClassProperty() || path.isClassMethod()) &&\n path.node.computed\n ) {\n computedPaths.push(path);\n }\n\n if (path.isPrivate()) {\n const { name } = path.node.key.id;\n const getName = `get ${name}`;\n const setName = `set ${name}`;\n\n if (path.isClassPrivateMethod()) {\n if (path.node.kind === \"get\") {\n if (\n privateNames.has(getName) ||\n (privateNames.has(name) && !privateNames.has(setName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(getName).add(name);\n } else if (path.node.kind === \"set\") {\n if (\n privateNames.has(setName) ||\n (privateNames.has(name) && !privateNames.has(getName))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n privateNames.add(setName).add(name);\n }\n } else {\n if (\n (privateNames.has(name) &&\n !privateNames.has(getName) &&\n !privateNames.has(setName)) ||\n (privateNames.has(name) &&\n (privateNames.has(getName) || privateNames.has(setName)))\n ) {\n throw path.buildCodeFrameError(\"Duplicate private field\");\n }\n\n privateNames.add(name);\n }\n }\n\n if (path.isClassMethod({ kind: \"constructor\" })) {\n constructor = path;\n } else {\n elements.push(path);\n if (\n path.isProperty() ||\n path.isPrivate() ||\n path.isStaticBlock?.()\n ) {\n props.push(path as PropPath);\n }\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (!props.length) return;\n } else {\n if (!props.length && !isDecorated) return;\n }\n\n const innerBinding = path.node.id;\n let ref: t.Identifier | null;\n if (!innerBinding || !pathIsClassDeclaration) {\n nameFunction(path as NodePath);\n ref = path.scope.generateUidIdentifier(innerBinding?.name || \"Class\");\n }\n const classRefForDefine = ref ?? t.cloneNode(innerBinding);\n\n const privateNamesMap = buildPrivateNamesMap(\n classRefForDefine.name,\n privateFieldsAsSymbolsOrProperties ?? loose,\n props,\n file,\n );\n const privateNamesNodes = buildPrivateNamesNodes(\n privateNamesMap,\n privateFieldsAsProperties ?? loose,\n privateFieldsAsSymbols ?? false,\n file,\n );\n\n transformPrivateNamesUsage(\n classRefForDefine,\n path,\n privateNamesMap,\n {\n privateFieldsAsProperties:\n privateFieldsAsSymbolsOrProperties ?? loose,\n noUninitializedPrivateFieldAccess,\n noDocumentAll,\n innerBinding,\n },\n file,\n );\n\n let keysNodes: t.Statement[],\n staticNodes: t.Statement[],\n instanceNodes: t.ExpressionStatement[],\n lastInstanceNodeReturnsThis: boolean,\n pureStaticNodes: t.FunctionDeclaration[],\n classBindingNode: t.Statement | null,\n wrapClass: (path: NodePath) => NodePath;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) {\n staticNodes = pureStaticNodes = keysNodes = [];\n ({ instanceNodes, wrapClass } = buildDecoratedClass(\n classRefForDefine,\n path,\n elements,\n file,\n ));\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n noUninitializedPrivateFieldAccess,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n } else {\n keysNodes = extractComputedKeys(path, computedPaths, file);\n ({\n staticNodes,\n pureStaticNodes,\n instanceNodes,\n lastInstanceNodeReturnsThis,\n classBindingNode,\n wrapClass,\n } = buildFieldsInitNodes(\n ref,\n path.node.superClass,\n props,\n privateNamesMap,\n file,\n setPublicClassFields ?? loose,\n privateFieldsAsSymbolsOrProperties ?? loose,\n noUninitializedPrivateFieldAccess,\n constantSuper ?? loose,\n innerBinding,\n ));\n }\n\n if (instanceNodes.length > 0) {\n injectInitialization(\n path,\n constructor,\n instanceNodes,\n (referenceVisitor, state) => {\n if (!process.env.BABEL_8_BREAKING) {\n if (isDecorated) return;\n }\n for (const prop of props) {\n // @ts-expect-error: TS doesn't infer that prop.node is not a StaticBlock\n if (t.isStaticBlock?.(prop.node) || prop.node.static) continue;\n prop.traverse(referenceVisitor, state);\n }\n },\n lastInstanceNodeReturnsThis,\n );\n }\n\n // rename to make ts happy\n const wrappedPath = wrapClass(path);\n wrappedPath.insertBefore([...privateNamesNodes, ...keysNodes]);\n if (staticNodes.length > 0) {\n wrappedPath.insertAfter(staticNodes);\n }\n if (pureStaticNodes.length > 0) {\n wrappedPath\n .find(parent => parent.isStatement() || parent.isDeclaration())\n .insertAfter(pureStaticNodes);\n }\n if (classBindingNode != null && pathIsClassDeclaration) {\n wrappedPath.insertAfter(classBindingNode);\n }\n },\n\n ExportDefaultDeclaration(path, { file }) {\n if (!process.env.BABEL_8_BREAKING) {\n if (file.get(versionKey) !== PACKAGE_JSON.version) return;\n\n const decl = path.get(\"declaration\");\n\n if (decl.isClassDeclaration() && hasDecorators(decl.node)) {\n if (decl.node.id) {\n // export default class Foo {}\n // -->\n // class Foo {} export { Foo as default }\n splitExportDeclaration(path);\n } else {\n // @ts-expect-error Anonymous class declarations can be\n // transformed as if they were expressions\n decl.node.type = \"ClassExpression\";\n }\n }\n }\n },\n },\n };\n}\n","/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return createClassFeaturePlugin({\n name: \"transform-class-properties\",\n\n api,\n feature: FEATURES.fields,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classProperties\", \"classPrivateProperties\");\n },\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { Scope } from \"@babel/traverse\";\n\nimport {\n enableFeature,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\n/**\n * Generate a uid that is not in `denyList`\n *\n * @param {Scope} scope\n * @param {Set} denyList a deny list that the generated uid should avoid\n * @returns\n */\nfunction generateUid(scope: Scope, denyList: Set) {\n const name = \"\";\n let uid;\n let i = 1;\n do {\n uid = scope._generateUid(name, i);\n i++;\n } while (denyList.has(uid));\n return uid;\n}\n\nexport default declare(({ types: t, template, assertVersion, version }) => {\n assertVersion(REQUIRED_VERSION(\"^7.12.0\"));\n\n return {\n name: \"transform-class-static-block\",\n inherits:\n USE_ESM || IS_STANDALONE || version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-class-static-block\").default,\n\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.staticBlocks, /* loose */ false);\n },\n\n visitor: {\n // Run on ClassBody and not on class so that if @babel/helper-create-class-features-plugin\n // is enabled it can generate optimized output without passing from the intermediate\n // private fields representation.\n ClassBody(classBody) {\n const { scope } = classBody;\n const privateNames = new Set();\n const body = classBody.get(\"body\");\n for (const path of body) {\n if (path.isPrivate()) {\n privateNames.add(path.get(\"key.id\").node.name);\n }\n }\n for (const path of body) {\n if (!path.isStaticBlock()) continue;\n const staticBlockPrivateId = generateUid(scope, privateNames);\n privateNames.add(staticBlockPrivateId);\n const staticBlockRef = t.privateName(\n t.identifier(staticBlockPrivateId),\n );\n\n let replacement;\n const blockBody = path.node.body;\n // We special-case the single expression case to avoid the iife, since\n // it's common.\n if (blockBody.length === 1 && t.isExpressionStatement(blockBody[0])) {\n replacement = t.inheritsComments(\n blockBody[0].expression,\n blockBody[0],\n );\n } else {\n replacement = template.expression.ast`(() => { ${blockBody} })()`;\n }\n\n path.replaceWith(\n t.classPrivateProperty(\n staticBlockRef,\n replacement,\n [],\n /* static */ true,\n ),\n );\n }\n },\n },\n };\n});\n","// Fork of https://github.com/loganfsmyth/babel-plugin-proposal-decorators-legacy\n\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nconst buildClassDecorator = template.statement(`\n DECORATOR(CLASS_REF = INNER) || CLASS_REF;\n`) as (replacements: {\n DECORATOR: t.Expression;\n CLASS_REF: t.Identifier;\n INNER: t.Expression;\n}) => t.ExpressionStatement;\n\nconst buildClassPrototype = template(`\n CLASS_REF.prototype;\n`) as (replacements: { CLASS_REF: t.Identifier }) => t.ExpressionStatement;\n\nconst buildGetDescriptor = template(`\n Object.getOwnPropertyDescriptor(TARGET, PROPERTY);\n`) as (replacements: {\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst buildGetObjectInitializer = template(`\n (TEMP = Object.getOwnPropertyDescriptor(TARGET, PROPERTY), (TEMP = TEMP ? TEMP.value : undefined), {\n enumerable: true,\n configurable: true,\n writable: true,\n initializer: function(){\n return TEMP;\n }\n })\n`) as (replacements: {\n TEMP: t.Identifier;\n TARGET: t.Expression;\n PROPERTY: t.Literal;\n}) => t.ExpressionStatement;\n\nconst WARNING_CALLS = new WeakSet();\n\n// legacy decorator does not support ClassAccessorProperty\ntype ClassDecoratableElement =\n | t.ClassMethod\n | t.ClassPrivateMethod\n | t.ClassProperty\n | t.ClassPrivateProperty;\n\n/**\n * If the decorator expressions are non-identifiers, hoist them to before the class so we can be sure\n * that they are evaluated in order.\n */\nfunction applyEnsureOrdering(\n path: NodePath,\n) {\n // TODO: This should probably also hoist computed properties.\n const decorators: t.Decorator[] = (\n path.isClass()\n ? [\n path,\n ...(path.get(\"body.body\") as NodePath[]),\n ]\n : path.get(\"properties\")\n ).reduce(\n (\n acc: t.Decorator[],\n prop: NodePath<\n t.ObjectMember | t.ClassExpression | ClassDecoratableElement\n >,\n ) => acc.concat(prop.node.decorators || []),\n [],\n );\n\n const identDecorators = decorators.filter(\n decorator => !t.isIdentifier(decorator.expression),\n );\n if (identDecorators.length === 0) return;\n\n return t.sequenceExpression(\n identDecorators\n .map((decorator): t.Expression => {\n const expression = decorator.expression;\n const id = (decorator.expression =\n path.scope.generateDeclaredUidIdentifier(\"dec\"));\n return t.assignmentExpression(\"=\", id, expression);\n })\n .concat([path.node]),\n );\n}\n\n/**\n * Given a class expression with class-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyClassDecorators(classPath: NodePath) {\n if (!hasClassDecorators(classPath.node)) return;\n\n const decorators = classPath.node.decorators || [];\n classPath.node.decorators = null;\n\n const name = classPath.scope.generateDeclaredUidIdentifier(\"class\");\n\n return decorators\n .map(dec => dec.expression)\n .reverse()\n .reduce(function (acc, decorator) {\n return buildClassDecorator({\n CLASS_REF: t.cloneNode(name),\n DECORATOR: t.cloneNode(decorator),\n INNER: acc,\n }).expression;\n }, classPath.node);\n}\n\nfunction hasClassDecorators(classNode: t.Class) {\n return !!classNode.decorators?.length;\n}\n\n/**\n * Given a class expression with method-level decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyMethodDecorators(\n path: NodePath,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.body.body)) return;\n\n return applyTargetDecorators(\n path,\n state,\n // @ts-expect-error ClassAccessorProperty is not supported in legacy decorator\n path.node.body.body,\n );\n}\n\nfunction hasMethodDecorators(\n body: t.ClassBody[\"body\"] | t.ObjectExpression[\"properties\"],\n) {\n return body.some(\n node =>\n // @ts-expect-error decorators not in SpreadElement/StaticBlock\n node.decorators?.length,\n );\n}\n\n/**\n * Given an object expression with property decorators, create a new expression\n * with the proper decorated behavior.\n */\nfunction applyObjectDecorators(\n path: NodePath,\n state: PluginPass,\n) {\n if (!hasMethodDecorators(path.node.properties)) return;\n\n return applyTargetDecorators(\n path,\n state,\n path.node.properties.filter(\n (prop): prop is t.ObjectMember => prop.type !== \"SpreadElement\",\n ),\n );\n}\n\n/**\n * A helper to pull out property decorators into a sequence expression.\n */\nfunction applyTargetDecorators(\n path: NodePath,\n state: PluginPass,\n decoratedProps: (t.ObjectMember | ClassDecoratableElement)[],\n) {\n const name = path.scope.generateDeclaredUidIdentifier(\n path.isClass() ? \"class\" : \"obj\",\n );\n\n const exprs = decoratedProps.reduce(function (acc, node) {\n let decorators: t.Decorator[] = [];\n if (node.decorators != null) {\n decorators = node.decorators;\n node.decorators = null;\n }\n\n if (decorators.length === 0) return acc;\n\n if (\n // @ts-expect-error computed is not in ClassPrivateProperty\n node.computed\n ) {\n throw path.buildCodeFrameError(\n \"Computed method/property decorators are not yet supported.\",\n );\n }\n\n const property: t.Literal = t.isLiteral(node.key)\n ? node.key\n : t.stringLiteral(\n // @ts-expect-error: should we handle ClassPrivateProperty?\n node.key.name,\n );\n\n const target =\n path.isClass() && !(node as ClassDecoratableElement).static\n ? buildClassPrototype({\n CLASS_REF: name,\n }).expression\n : name;\n\n if (t.isClassProperty(node, { static: false })) {\n const descriptor = path.scope.generateDeclaredUidIdentifier(\"descriptor\");\n\n const initializer = node.value\n ? t.functionExpression(\n null,\n [],\n t.blockStatement([t.returnStatement(node.value)]),\n )\n : t.nullLiteral();\n\n node.value = t.callExpression(\n state.addHelper(\"initializerWarningHelper\"),\n [descriptor, t.thisExpression()],\n );\n\n WARNING_CALLS.add(node.value);\n\n acc.push(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(descriptor),\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(\n decorators.map(dec => t.cloneNode(dec.expression)),\n ),\n t.objectExpression([\n t.objectProperty(\n t.identifier(\"configurable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"enumerable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(\n t.identifier(\"writable\"),\n t.booleanLiteral(true),\n ),\n t.objectProperty(t.identifier(\"initializer\"), initializer),\n ]),\n ]),\n ),\n );\n } else {\n acc.push(\n t.callExpression(state.addHelper(\"applyDecoratedDescriptor\"), [\n t.cloneNode(target),\n t.cloneNode(property),\n t.arrayExpression(decorators.map(dec => t.cloneNode(dec.expression))),\n t.isObjectProperty(node) || t.isClassProperty(node, { static: true })\n ? buildGetObjectInitializer({\n TEMP: path.scope.generateDeclaredUidIdentifier(\"init\"),\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression\n : buildGetDescriptor({\n TARGET: t.cloneNode(target),\n PROPERTY: t.cloneNode(property),\n }).expression,\n t.cloneNode(target),\n ]),\n );\n }\n\n return acc;\n }, []);\n\n return t.sequenceExpression([\n t.assignmentExpression(\"=\", t.cloneNode(name), path.node),\n t.sequenceExpression(exprs),\n t.cloneNode(name),\n ]);\n}\n\nfunction decoratedClassToExpression({ node, scope }: NodePath) {\n if (!hasClassDecorators(node) && !hasMethodDecorators(node.body.body)) {\n return;\n }\n\n const ref = node.id\n ? t.cloneNode(node.id)\n : scope.generateUidIdentifier(\"class\");\n\n return t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]);\n}\n\nconst visitor: Visitor = {\n ExportDefaultDeclaration(path) {\n const decl = path.get(\"declaration\");\n if (!decl.isClassDeclaration()) return;\n\n const replacement = decoratedClassToExpression(decl);\n if (replacement) {\n const [varDeclPath] = path.replaceWithMultiple([\n replacement,\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(\n // @ts-expect-error todo(flow->ts) might be add more specific return type for decoratedClassToExpression\n t.cloneNode(replacement.declarations[0].id),\n t.identifier(\"default\"),\n ),\n ]),\n ]);\n\n if (!decl.node.id) {\n path.scope.registerDeclaration(varDeclPath);\n }\n }\n },\n ClassDeclaration(path) {\n const replacement = decoratedClassToExpression(path);\n if (replacement) {\n const [newPath] = path.replaceWith(replacement);\n\n const decl = newPath.get(\"declarations.0\");\n const id = decl.node.id as t.Identifier;\n\n // TODO: Maybe add this logic to @babel/traverse\n const binding = path.scope.getOwnBinding(id.name);\n binding.identifier = id;\n binding.path = decl;\n }\n },\n ClassExpression(path, state) {\n // Create a replacement for the class node if there is one. We do one pass to replace classes with\n // class decorators, and a second pass to process method decorators.\n const decoratedClass =\n applyEnsureOrdering(path) ||\n applyClassDecorators(path) ||\n applyMethodDecorators(path, state);\n\n if (decoratedClass) path.replaceWith(decoratedClass);\n },\n ObjectExpression(path, state) {\n const decoratedObject =\n applyEnsureOrdering(path) || applyObjectDecorators(path, state);\n\n if (decoratedObject) path.replaceWith(decoratedObject);\n },\n\n AssignmentExpression(path, state) {\n if (!WARNING_CALLS.has(path.node.right)) return;\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n t.cloneNode(path.get(\"left.object\").node),\n t.stringLiteral(\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.name ||\n // @ts-expect-error todo(flow->ts) typesafe NodePath.get\n path.get(\"left.property\").node.value,\n ),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"right.arguments\")[1].node),\n ]),\n );\n },\n\n CallExpression(path, state) {\n if (path.node.arguments.length !== 3) return;\n if (!WARNING_CALLS.has(path.node.arguments[2])) return;\n\n // If the class properties plugin isn't enabled, this line will add an unused helper\n // to the code. It's not ideal, but it's ok since the configuration is not valid anyway.\n // @ts-expect-error todo(flow->ts) check that `callee` is Identifier\n if (path.node.callee.name !== state.addHelper(\"defineProperty\").name) {\n return;\n }\n\n path.replaceWith(\n t.callExpression(state.addHelper(\"initializerDefineProperty\"), [\n t.cloneNode(path.get(\"arguments\")[0].node),\n t.cloneNode(path.get(\"arguments\")[1].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[0].node),\n // @ts-expect-error todo(flow->ts)\n t.cloneNode(path.get(\"arguments.2.arguments\")[1].node),\n ]),\n );\n },\n};\n\nexport default visitor;\n","/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxDecorators from \"@babel/plugin-syntax-decorators\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\nimport legacyVisitor from \"./transformer-legacy.ts\";\nimport type { Options as SyntaxOptions } from \"@babel/plugin-syntax-decorators\";\n\ninterface Options extends SyntaxOptions {\n /** @deprecated use `constantSuper` assumption instead. Only supported in 2021-12 version. */\n loose?: boolean;\n}\n\nexport type { Options };\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n // Options are validated in @babel/plugin-syntax-decorators\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { legacy } = options;\n }\n const { version } = options;\n\n if (\n process.env.BABEL_8_BREAKING\n ? version === \"legacy\"\n : legacy || version === \"legacy\"\n ) {\n return {\n name: \"proposal-decorators\",\n inherits: syntaxDecorators,\n visitor: legacyVisitor,\n };\n } else if (\n !version ||\n version === \"2018-09\" ||\n version === \"2021-12\" ||\n version === \"2022-03\" ||\n version === \"2023-01\" ||\n version === \"2023-05\" ||\n version === \"2023-11\"\n ) {\n api.assertVersion(REQUIRED_VERSION(\"^7.0.2\"));\n return createClassFeaturePlugin({\n name: \"proposal-decorators\",\n\n api,\n feature: FEATURES.decorators,\n inherits: syntaxDecorators,\n // @ts-expect-error version must not be \"legacy\" here\n decoratorVersion: version,\n // loose: options.loose, Not supported\n });\n } else {\n throw new Error(\n \"The '.version' option must be one of 'legacy', '2023-11', '2023-05', '2023-01', '2022-03', or '2021-12'.\",\n );\n }\n});\n","import { types as t } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport type { Scope, NodePath } from \"@babel/traverse\";\nimport type { TraversalAncestors } from \"@babel/types\";\n\nfunction isPureVoid(node: t.Node) {\n return (\n t.isUnaryExpression(node) &&\n node.operator === \"void\" &&\n t.isPureish(node.argument)\n );\n}\n\nexport function unshiftForXStatementBody(\n statementPath: NodePath,\n newStatements: t.Statement[],\n) {\n statementPath.ensureBlock();\n const { scope, node } = statementPath;\n const bodyScopeBindings = statementPath.get(\"body\").scope.bindings;\n const hasShadowedBlockScopedBindings = Object.keys(bodyScopeBindings).some(\n name => scope.hasBinding(name),\n );\n\n if (hasShadowedBlockScopedBindings) {\n // handle shadowed variables referenced in computed keys:\n // var a = 0;for (const { #x: x, [a++]: y } of z) { const a = 1; }\n node.body = t.blockStatement([...newStatements, node.body]);\n } else {\n (node.body as t.BlockStatement).body.unshift(...newStatements);\n }\n}\n\n/**\n * Test if an ArrayPattern's elements contain any RestElements.\n */\n\nfunction hasArrayRest(pattern: t.ArrayPattern) {\n return pattern.elements.some(elem => t.isRestElement(elem));\n}\n\n/**\n * Test if an ObjectPattern's properties contain any RestElements.\n */\n\nfunction hasObjectRest(pattern: t.ObjectPattern) {\n return pattern.properties.some(prop => t.isRestElement(prop));\n}\n\ninterface UnpackableArrayExpression extends t.ArrayExpression {\n elements: (null | t.Expression)[];\n}\n\nconst STOP_TRAVERSAL = {};\n\ninterface ArrayUnpackVisitorState {\n deopt: boolean;\n bindings: Record;\n}\n\n// NOTE: This visitor is meant to be used via t.traverse\nconst arrayUnpackVisitor = (\n node: t.Node,\n ancestors: TraversalAncestors,\n state: ArrayUnpackVisitorState,\n) => {\n if (!ancestors.length) {\n // Top-level node: this is the array literal.\n return;\n }\n\n if (\n t.isIdentifier(node) &&\n t.isReferenced(node, ancestors[ancestors.length - 1].node) &&\n state.bindings[node.name]\n ) {\n state.deopt = true;\n throw STOP_TRAVERSAL;\n }\n};\n\nexport type DestructuringTransformerNode =\n | t.VariableDeclaration\n | t.ExpressionStatement\n | t.ReturnStatement;\n\ninterface DestructuringTransformerOption {\n blockHoist?: number;\n operator?: t.AssignmentExpression[\"operator\"];\n nodes?: DestructuringTransformerNode[];\n kind?: t.VariableDeclaration[\"kind\"];\n scope: Scope;\n arrayLikeIsIterable: boolean;\n iterableIsArray: boolean;\n objectRestNoSymbols: boolean;\n useBuiltIns: boolean;\n addHelper: File[\"addHelper\"];\n}\nexport class DestructuringTransformer {\n private blockHoist: number;\n private operator: t.AssignmentExpression[\"operator\"];\n arrayRefSet: Set;\n private nodes: DestructuringTransformerNode[];\n private scope: Scope;\n private kind: t.VariableDeclaration[\"kind\"];\n private iterableIsArray: boolean;\n private arrayLikeIsIterable: boolean;\n private objectRestNoSymbols: boolean;\n private useBuiltIns: boolean;\n private addHelper: File[\"addHelper\"];\n constructor(opts: DestructuringTransformerOption) {\n this.blockHoist = opts.blockHoist;\n this.operator = opts.operator;\n this.arrayRefSet = new Set();\n this.nodes = opts.nodes || [];\n this.scope = opts.scope;\n this.kind = opts.kind;\n this.iterableIsArray = opts.iterableIsArray;\n this.arrayLikeIsIterable = opts.arrayLikeIsIterable;\n this.objectRestNoSymbols = opts.objectRestNoSymbols;\n this.useBuiltIns = opts.useBuiltIns;\n this.addHelper = opts.addHelper;\n }\n\n getExtendsHelper() {\n return this.useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : this.addHelper(\"extends\");\n }\n\n buildVariableAssignment(\n id: t.AssignmentExpression[\"left\"],\n init: t.Expression,\n ) {\n let op = this.operator;\n if (t.isMemberExpression(id) || t.isOptionalMemberExpression(id)) op = \"=\";\n\n let node: t.ExpressionStatement | t.VariableDeclaration;\n\n if (op) {\n node = t.expressionStatement(\n t.assignmentExpression(\n op,\n id,\n t.cloneNode(init) || this.scope.buildUndefinedNode(),\n ),\n );\n } else {\n let nodeInit: t.Expression;\n\n if ((this.kind === \"const\" || this.kind === \"using\") && init === null) {\n nodeInit = this.scope.buildUndefinedNode();\n } else {\n nodeInit = t.cloneNode(init);\n }\n\n node = t.variableDeclaration(this.kind, [\n t.variableDeclarator(id as t.LVal, nodeInit),\n ]);\n }\n\n //@ts-expect-error(todo): document block hoist property\n node._blockHoist = this.blockHoist;\n\n return node;\n }\n\n buildVariableDeclaration(id: t.Identifier, init: t.Expression) {\n const declar = t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.cloneNode(id), t.cloneNode(init)),\n ]);\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = this.blockHoist;\n return declar;\n }\n\n push(id: t.LVal, _init: t.Expression | null) {\n const init = t.cloneNode(_init);\n if (t.isObjectPattern(id)) {\n this.pushObjectPattern(id, init);\n } else if (t.isArrayPattern(id)) {\n this.pushArrayPattern(id, init);\n } else if (t.isAssignmentPattern(id)) {\n this.pushAssignmentPattern(id, init);\n } else {\n this.nodes.push(this.buildVariableAssignment(id, init));\n }\n }\n\n toArray(node: t.Expression, count?: boolean | number) {\n if (\n this.iterableIsArray ||\n (t.isIdentifier(node) && this.arrayRefSet.has(node.name))\n ) {\n return node;\n } else {\n return this.scope.toArray(node, count, this.arrayLikeIsIterable);\n }\n }\n\n pushAssignmentPattern(\n { left, right }: t.AssignmentPattern,\n valueRef: t.Expression | null,\n ) {\n // handle array init with void 0. This also happens when\n // the value was originally a hole.\n // const [x = 42] = [void 0,];\n // -> const x = 42;\n if (isPureVoid(valueRef)) {\n this.push(left, right);\n return;\n }\n\n // we need to assign the current value of the assignment to avoid evaluating\n // it more than once\n const tempId = this.scope.generateUidIdentifierBasedOnNode(valueRef);\n\n this.nodes.push(this.buildVariableDeclaration(tempId, valueRef));\n\n const tempConditional = t.conditionalExpression(\n t.binaryExpression(\n \"===\",\n t.cloneNode(tempId),\n this.scope.buildUndefinedNode(),\n ),\n right,\n t.cloneNode(tempId),\n );\n\n if (t.isPattern(left)) {\n let patternId;\n let node;\n\n if (\n this.kind === \"const\" ||\n this.kind === \"let\" ||\n this.kind === \"using\"\n ) {\n patternId = this.scope.generateUidIdentifier(tempId.name);\n node = this.buildVariableDeclaration(patternId, tempConditional);\n } else {\n patternId = tempId;\n\n node = t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(tempId), tempConditional),\n );\n }\n\n this.nodes.push(node);\n this.push(left, patternId);\n } else {\n this.nodes.push(this.buildVariableAssignment(left, tempConditional));\n }\n }\n\n pushObjectRest(\n pattern: t.ObjectPattern,\n objRef: t.Expression,\n spreadProp: t.RestElement,\n spreadPropIndex: number,\n ) {\n const value = buildObjectExcludingKeys(\n pattern.properties.slice(0, spreadPropIndex) as t.ObjectProperty[],\n objRef,\n this.scope,\n name => this.addHelper(name),\n this.objectRestNoSymbols,\n this.useBuiltIns,\n );\n this.nodes.push(this.buildVariableAssignment(spreadProp.argument, value));\n }\n\n pushObjectProperty(prop: t.ObjectProperty, propRef: t.Expression) {\n if (t.isLiteral(prop.key)) prop.computed = true;\n\n const pattern = prop.value as t.LVal;\n const objRef = t.memberExpression(\n t.cloneNode(propRef),\n prop.key,\n prop.computed,\n );\n\n if (t.isPattern(pattern)) {\n this.push(pattern, objRef);\n } else {\n this.nodes.push(this.buildVariableAssignment(pattern, objRef));\n }\n }\n\n pushObjectPattern(pattern: t.ObjectPattern, objRef: t.Expression) {\n // https://github.com/babel/babel/issues/681\n\n if (!pattern.properties.length) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(\n this.addHelper(\"objectDestructuringEmpty\"),\n isPureVoid(objRef) ? [] : [objRef],\n ),\n ),\n );\n return;\n }\n\n // if we have more than one properties in this pattern and the objectRef is a\n // member expression then we need to assign it to a temporary variable so it's\n // only evaluated once\n\n if (pattern.properties.length > 1 && !this.scope.isStatic(objRef)) {\n const temp = this.scope.generateUidIdentifierBasedOnNode(objRef);\n this.nodes.push(this.buildVariableDeclaration(temp, objRef));\n objRef = temp;\n }\n\n // Replace impure computed key expressions if we have a rest parameter\n if (hasObjectRest(pattern)) {\n let copiedPattern: t.ObjectPattern;\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n break;\n }\n const key = prop.key;\n if (prop.computed && !this.scope.isPure(key)) {\n const name = this.scope.generateUidIdentifierBasedOnNode(key);\n this.nodes.push(\n //@ts-expect-error PrivateName has been handled by destructuring-private\n this.buildVariableDeclaration(name, key),\n );\n if (!copiedPattern) {\n copiedPattern = pattern = {\n ...pattern,\n properties: pattern.properties.slice(),\n };\n }\n copiedPattern.properties[i] = {\n ...prop,\n key: name,\n };\n }\n }\n }\n\n for (let i = 0; i < pattern.properties.length; i++) {\n const prop = pattern.properties[i];\n if (t.isRestElement(prop)) {\n this.pushObjectRest(pattern, objRef, prop, i);\n } else {\n this.pushObjectProperty(prop, objRef);\n }\n }\n }\n\n canUnpackArrayPattern(\n pattern: t.ArrayPattern,\n arr: t.Expression,\n ): arr is UnpackableArrayExpression {\n // not an array so there's no way we can deal with this\n if (!t.isArrayExpression(arr)) return false;\n\n // pattern has less elements than the array and doesn't have a rest so some\n // elements won't be evaluated\n if (pattern.elements.length > arr.elements.length) return;\n if (\n pattern.elements.length < arr.elements.length &&\n !hasArrayRest(pattern)\n ) {\n return false;\n }\n\n for (const elem of pattern.elements) {\n // deopt on holes\n if (!elem) return false;\n\n // deopt on member expressions as they may be included in the RHS\n if (t.isMemberExpression(elem)) return false;\n }\n\n for (const elem of arr.elements) {\n // deopt on spread elements\n if (t.isSpreadElement(elem)) return false;\n\n // deopt call expressions as they might change values of LHS variables\n if (t.isCallExpression(elem)) return false;\n\n // deopt on member expressions as they may be getter/setters and have side-effects\n if (t.isMemberExpression(elem)) return false;\n }\n\n // deopt on reference to left side identifiers\n const bindings = t.getBindingIdentifiers(pattern);\n const state: ArrayUnpackVisitorState = { deopt: false, bindings };\n\n try {\n t.traverse(arr, arrayUnpackVisitor, state);\n } catch (e) {\n if (e !== STOP_TRAVERSAL) throw e;\n }\n\n return !state.deopt;\n }\n\n pushUnpackedArrayPattern(\n pattern: t.ArrayPattern,\n arr: UnpackableArrayExpression,\n ) {\n const holeToUndefined = (el: t.Expression) =>\n el ?? this.scope.buildUndefinedNode();\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n if (t.isRestElement(elem)) {\n this.push(\n elem.argument,\n t.arrayExpression(arr.elements.slice(i).map(holeToUndefined)),\n );\n } else {\n this.push(elem, holeToUndefined(arr.elements[i]));\n }\n }\n }\n\n pushArrayPattern(pattern: t.ArrayPattern, arrayRef: t.Expression | null) {\n if (arrayRef === null) {\n this.nodes.push(\n t.expressionStatement(\n t.callExpression(this.addHelper(\"objectDestructuringEmpty\"), []),\n ),\n );\n return;\n }\n if (!pattern.elements) return;\n\n // optimise basic array destructuring of an array expression\n //\n // we can't do this to a pattern of unequal size to it's right hand\n // array expression as then there will be values that won't be evaluated\n //\n // eg: let [a, b] = [1, 2];\n\n if (this.canUnpackArrayPattern(pattern, arrayRef)) {\n this.pushUnpackedArrayPattern(pattern, arrayRef);\n return;\n }\n\n // if we have a rest then we need all the elements so don't tell\n // `scope.toArray` to only get a certain amount\n\n const count = !hasArrayRest(pattern) && pattern.elements.length;\n\n // so we need to ensure that the `arrayRef` is an array, `scope.toArray` will\n // return a locally bound identifier if it's been inferred to be an array,\n // otherwise it'll be a call to a helper that will ensure it's one\n\n const toArray = this.toArray(arrayRef, count);\n\n if (t.isIdentifier(toArray)) {\n // we've been given an identifier so it must have been inferred to be an\n // array\n arrayRef = toArray;\n } else {\n arrayRef = this.scope.generateUidIdentifierBasedOnNode(arrayRef);\n this.arrayRefSet.add(arrayRef.name);\n this.nodes.push(this.buildVariableDeclaration(arrayRef, toArray));\n }\n\n for (let i = 0; i < pattern.elements.length; i++) {\n const elem = pattern.elements[i];\n\n // hole\n if (!elem) continue;\n\n let elemRef;\n\n if (t.isRestElement(elem)) {\n elemRef = this.toArray(arrayRef);\n elemRef = t.callExpression(\n t.memberExpression(elemRef, t.identifier(\"slice\")),\n [t.numericLiteral(i)],\n );\n\n // set the element to the rest element argument since we've dealt with it\n // being a rest already\n this.push(elem.argument, elemRef);\n } else {\n elemRef = t.memberExpression(arrayRef, t.numericLiteral(i), true);\n this.push(elem, elemRef);\n }\n }\n }\n\n init(pattern: t.LVal, ref: t.Expression) {\n // trying to destructure a value that we can't evaluate more than once so we\n // need to save it to a variable\n\n if (!t.isArrayExpression(ref) && !t.isMemberExpression(ref)) {\n const memo = this.scope.maybeGenerateMemoised(ref, true);\n if (memo) {\n this.nodes.push(this.buildVariableDeclaration(memo, t.cloneNode(ref)));\n ref = memo;\n }\n }\n\n this.push(pattern, ref);\n\n return this.nodes;\n }\n}\n\ninterface ExcludingKey {\n key: t.Expression | t.PrivateName;\n computed: boolean;\n}\n\nexport function buildObjectExcludingKeys(\n excludedKeys: T[],\n objRef: t.Expression,\n scope: Scope,\n addHelper: File[\"addHelper\"],\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n): t.CallExpression {\n // get all the keys that appear in this object before the current spread\n\n const keys = [];\n let allLiteral = true;\n let hasTemplateLiteral = false;\n for (let i = 0; i < excludedKeys.length; i++) {\n const prop = excludedKeys[i];\n const key = prop.key;\n if (t.isIdentifier(key) && !prop.computed) {\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n // @ts-expect-error todo(flow->ts) NullLiteral\n keys.push(t.stringLiteral(String(key.value)));\n } else if (t.isPrivateName(key)) {\n // private key is not enumerable\n } else {\n keys.push(t.cloneNode(key));\n allLiteral = false;\n }\n }\n\n let value;\n if (keys.length === 0) {\n const extendsHelper = useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : addHelper(\"extends\");\n value = t.callExpression(extendsHelper, [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]);\n } else {\n let keyExpression: t.Expression = t.arrayExpression(keys);\n\n if (!allLiteral) {\n keyExpression = t.callExpression(\n t.memberExpression(keyExpression, t.identifier(\"map\")),\n [addHelper(\"toPropertyKey\")],\n );\n } else if (!hasTemplateLiteral && !t.isProgram(scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const programScope = scope.getProgramParent();\n const id = programScope.generateUidIdentifier(\"excluded\");\n\n programScope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n\n value = t.callExpression(\n addHelper(`objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`),\n [t.cloneNode(objRef), keyExpression],\n );\n }\n return value;\n}\n\nexport function convertVariableDeclaration(\n path: NodePath,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope } = path;\n\n const nodeKind = node.kind;\n const nodeLoc = node.loc;\n const nodes = [];\n\n for (let i = 0; i < node.declarations.length; i++) {\n const declar = node.declarations[i];\n\n const patternId = declar.init;\n const pattern = declar.id;\n\n const destructuring: DestructuringTransformer =\n new DestructuringTransformer({\n // @ts-expect-error(todo): avoid internal properties access\n blockHoist: node._blockHoist,\n nodes: nodes,\n scope: scope,\n kind: node.kind,\n iterableIsArray,\n arrayLikeIsIterable,\n useBuiltIns,\n objectRestNoSymbols,\n addHelper,\n });\n\n if (t.isPattern(pattern)) {\n destructuring.init(pattern, patternId);\n\n if (+i !== node.declarations.length - 1) {\n // we aren't the last declarator so let's just make the\n // last transformed node inherit from us\n t.inherits(nodes[nodes.length - 1], declar);\n }\n } else {\n nodes.push(\n t.inherits(\n destructuring.buildVariableAssignment(pattern, patternId),\n declar,\n ),\n );\n }\n }\n\n let tail: t.VariableDeclaration | null = null;\n let nodesOut = [];\n for (const node of nodes) {\n if (t.isVariableDeclaration(node)) {\n if (tail !== null) {\n // Create a single compound declarations\n tail.declarations.push(...node.declarations);\n continue;\n } else {\n // Make sure the original node kind is used for each compound declaration\n node.kind = nodeKind;\n tail = node;\n }\n } else {\n tail = null;\n }\n // Propagate the original declaration node's location\n if (!node.loc) {\n node.loc = nodeLoc;\n }\n nodesOut.push(node);\n }\n\n if (\n nodesOut.length === 2 &&\n t.isVariableDeclaration(nodesOut[0]) &&\n t.isExpressionStatement(nodesOut[1]) &&\n t.isCallExpression(nodesOut[1].expression) &&\n nodesOut[0].declarations.length === 1\n ) {\n // This can only happen when we generate this code:\n // var _ref = DESTRUCTURED_VALUE;\n // babelHelpers.objectDestructuringEmpty(_ref);\n // Since pushing those two statements to the for loop .init will require an IIFE,\n // we can optimize them to\n // babelHelpers.objectDestructuringEmpty(DESTRUCTURED_VALUE);\n const expr = nodesOut[1].expression;\n expr.arguments = [nodesOut[0].declarations[0].init];\n nodesOut = [expr];\n } else {\n // We must keep nodes all are expressions or statements, so `replaceWithMultiple` can work.\n if (\n t.isForStatement(path.parent, { init: node }) &&\n !nodesOut.some(v => t.isVariableDeclaration(v))\n ) {\n for (let i = 0; i < nodesOut.length; i++) {\n const node: t.Node = nodesOut[i];\n if (t.isExpressionStatement(node)) {\n nodesOut[i] = node.expression;\n }\n }\n }\n }\n\n if (nodesOut.length === 1) {\n path.replaceWith(nodesOut[0]);\n } else {\n path.replaceWithMultiple(nodesOut);\n }\n scope.crawl();\n}\n\nexport function convertAssignmentExpression(\n path: NodePath,\n addHelper: File[\"addHelper\"],\n arrayLikeIsIterable: boolean,\n iterableIsArray: boolean,\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n) {\n const { node, scope, parentPath } = path;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n operator: node.operator,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper,\n });\n\n let ref: t.Identifier | void;\n if (\n (!parentPath.isExpressionStatement() &&\n !parentPath.isSequenceExpression()) ||\n path.isCompletionRecord()\n ) {\n ref = scope.generateUidIdentifierBasedOnNode(node.right, \"ref\");\n\n nodes.push(\n t.variableDeclaration(\"var\", [t.variableDeclarator(ref, node.right)]),\n );\n\n if (t.isArrayExpression(node.right)) {\n destructuring.arrayRefSet.add(ref.name);\n }\n }\n\n destructuring.init(node.left, ref || node.right);\n\n if (ref) {\n if (parentPath.isArrowFunctionExpression()) {\n path.replaceWith(t.blockStatement([]));\n nodes.push(t.returnStatement(t.cloneNode(ref)));\n } else {\n nodes.push(t.expressionStatement(t.cloneNode(ref)));\n }\n }\n\n path.replaceWithMultiple(nodes);\n scope.crawl();\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport {\n DestructuringTransformer,\n convertVariableDeclaration,\n convertAssignmentExpression,\n unshiftForXStatementBody,\n type DestructuringTransformerNode,\n} from \"./util.ts\";\nexport { buildObjectExcludingKeys, unshiftForXStatementBody } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Test if a VariableDeclaration's declarations contains any Patterns.\n */\n\nfunction variableDeclarationHasPattern(node: t.VariableDeclaration) {\n for (const declar of node.declarations) {\n if (t.isPattern(declar.id)) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n useBuiltIns?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { useBuiltIns = false } = options;\n\n const iterableIsArray =\n api.assumption(\"iterableIsArray\") ?? options.loose ?? false;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\") ?? false;\n const objectRestNoSymbols =\n api.assumption(\"objectRestNoSymbols\") ?? options.loose ?? false;\n\n return {\n name: \"transform-destructuring\",\n\n visitor: {\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n if (!variableDeclarationHasPattern(declaration.node)) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers())) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n path.scope.crawl();\n },\n\n ForXStatement(path: NodePath) {\n const { node, scope } = path;\n const left = node.left;\n\n if (t.isPattern(left)) {\n // for ({ length: k } in { abc: 3 });\n\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const statementBody = (path.node.body as t.BlockStatement).body;\n const nodes = [];\n // todo: the completion of a for statement can only be observed from\n // a do block (or eval that we don't support),\n // but the new do-expression proposal plans to ban iteration ends in the\n // do block, maybe we can get rid of this\n if (statementBody.length === 0 && path.isCompletionRecord()) {\n nodes.unshift(t.expressionStatement(scope.buildUndefinedNode()));\n }\n\n nodes.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n return;\n }\n\n if (!t.isVariableDeclaration(left)) return;\n\n const pattern = left.declarations[0].id;\n if (!t.isPattern(pattern)) return;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: left.kind,\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n\n destructuring.init(pattern, key);\n\n unshiftForXStatementBody(path, nodes);\n scope.crawl();\n },\n\n CatchClause({ node, scope }) {\n const pattern = node.param;\n if (!t.isPattern(pattern)) return;\n\n const ref = scope.generateUidIdentifier(\"ref\");\n node.param = ref;\n\n const nodes: DestructuringTransformerNode[] = [];\n\n const destructuring = new DestructuringTransformer({\n kind: \"let\",\n scope: scope,\n nodes: nodes,\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n addHelper: name => this.addHelper(name),\n });\n destructuring.init(pattern, ref);\n\n node.body.body = [...nodes, ...node.body.body];\n scope.crawl();\n },\n\n AssignmentExpression(path, state) {\n if (!t.isPattern(path.node.left)) return;\n convertAssignmentExpression(\n path as NodePath,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n\n VariableDeclaration(path, state) {\n const { node, parent } = path;\n if (t.isForXStatement(parent)) return;\n if (!parent || !path.container) return; // i don't know why this is necessary - TODO\n if (!variableDeclarationHasPattern(node)) return;\n convertVariableDeclaration(\n path,\n name => state.addHelper(name),\n arrayLikeIsIterable,\n iterableIsArray,\n objectRestNoSymbols,\n useBuiltIns,\n );\n },\n },\n };\n});\n","import type * as t from \"@babel/types\";\nimport type { Scope } from \"@babel/traverse\";\nimport { types } from \"@babel/core\";\nimport type { File } from \"@babel/core\";\nimport { buildObjectExcludingKeys } from \"@babel/plugin-transform-destructuring\";\nconst {\n assignmentExpression,\n binaryExpression,\n conditionalExpression,\n cloneNode,\n isObjectProperty,\n isPrivateName,\n memberExpression,\n numericLiteral,\n objectPattern,\n restElement,\n variableDeclarator,\n variableDeclaration,\n unaryExpression,\n} = types;\n\nfunction buildUndefinedNode() {\n return unaryExpression(\"void\", numericLiteral(0));\n}\n\nfunction transformAssignmentPattern(\n initializer: t.Expression,\n tempId: t.Identifier,\n) {\n return conditionalExpression(\n binaryExpression(\"===\", cloneNode(tempId), buildUndefinedNode()),\n initializer,\n cloneNode(tempId),\n );\n}\n\nfunction initRestExcludingKeys(pattern: t.LVal): ExcludingKey[] | null {\n if (pattern.type === \"ObjectPattern\") {\n const { properties } = pattern;\n if (properties[properties.length - 1].type === \"RestElement\") {\n return [];\n }\n }\n return null;\n}\n\n/**\n * grow `excludingKeys` from given properties. This routine mutates properties by\n * memoising the computed non-static keys.\n *\n * @param {ExcludingKey[]} excludingKeys\n * @param {t.ObjectProperty[]} properties An array of object properties that should be excluded by rest element transform\n * @param {Scope} scope Where should we register the memoised id\n */\nfunction growRestExcludingKeys(\n excludingKeys: ExcludingKey[],\n properties: t.ObjectProperty[],\n scope: Scope,\n) {\n if (excludingKeys === null) return;\n for (const property of properties) {\n const propertyKey = property.key;\n if (property.computed && !scope.isStatic(propertyKey)) {\n const tempId = scope.generateDeclaredUidIdentifier(\"m\");\n // @ts-expect-error A computed property key must not be a private name\n property.key = assignmentExpression(\"=\", tempId, propertyKey);\n excludingKeys.push({ key: tempId, computed: true });\n } else if (propertyKey.type !== \"PrivateName\") {\n excludingKeys.push(property);\n }\n }\n}\n\n/**\n * Prepare var declarations for params. Only param initializers\n * will be transformed to undefined coalescing, other features are preserved.\n * This function does NOT mutate given AST structures.\n *\n * @export\n * @param {Function[\"params\"]} params An array of function params\n * @param {Scope} scope A scope used to generate uid for function params\n * @returns {{ params: Identifier[]; variableDeclaration: VariableDeclaration }} An array of new id for params\n * and variable declaration to be prepended to the function body\n */\nexport function buildVariableDeclarationFromParams(\n params: t.Function[\"params\"],\n scope: Scope,\n): {\n params: (t.Identifier | t.RestElement)[];\n variableDeclaration: t.VariableDeclaration;\n} {\n const { elements, transformed } = buildAssignmentsFromPatternList(\n params,\n scope,\n /* isAssignment */ false,\n );\n return {\n params: elements,\n variableDeclaration: variableDeclaration(\n \"var\",\n transformed.map(({ left, right }) => variableDeclarator(left, right)),\n ),\n };\n}\n\ninterface Transformed {\n left: Exclude;\n right: t.Expression;\n}\n\nfunction buildAssignmentsFromPatternList(\n elements: (t.LVal | null)[],\n scope: Scope,\n isAssignment: boolean,\n): {\n elements: (t.Identifier | t.RestElement | null)[];\n transformed: Transformed[];\n} {\n const newElements: (t.Identifier | t.RestElement)[] = [],\n transformed: Transformed[] = [];\n for (let element of elements) {\n if (element === null) {\n newElements.push(null);\n transformed.push(null);\n continue;\n }\n const tempId = scope.generateUidIdentifier(\"p\");\n if (isAssignment) {\n scope.push({ id: cloneNode(tempId) });\n }\n if (element.type === \"RestElement\") {\n newElements.push(restElement(tempId));\n // The argument of a RestElement within a BindingPattern must be either Identifier or BindingPattern\n element = element.argument as t.Identifier | t.Pattern;\n } else {\n newElements.push(tempId);\n }\n if (element.type === \"AssignmentPattern\") {\n transformed.push({\n left: element.left,\n right: transformAssignmentPattern(element.right, tempId),\n });\n } else {\n transformed.push({\n left: element as Transformed[\"left\"],\n right: cloneNode(tempId),\n });\n }\n }\n return { elements: newElements, transformed };\n}\n\ntype StackItem = {\n node: t.AssignmentExpression[\"left\"] | t.ObjectProperty | null;\n index: number;\n depth: number;\n};\n\n/**\n * A DFS simplified pattern traverser. It skips computed property keys and assignment pattern\n * initializers. The following nodes will be delegated to the visitor:\n * - ArrayPattern\n * - ArrayPattern elements\n * - AssignmentPattern\n * - ObjectPattern\n * - ObjectProperty\n * - RestElement\n * @param root\n * @param visitor\n */\nexport function* traversePattern(\n root: t.AssignmentExpression[\"left\"],\n visitor: (\n node: t.AssignmentExpression[\"left\"] | t.ObjectProperty,\n index: number,\n depth: number,\n ) => Generator,\n) {\n const stack: StackItem[] = [];\n stack.push({ node: root, index: 0, depth: 0 });\n let item: StackItem;\n while ((item = stack.pop()) !== undefined) {\n const { node, index } = item;\n if (node === null) continue;\n yield* visitor(node, index, item.depth);\n const depth = item.depth + 1;\n switch (node.type) {\n case \"AssignmentPattern\":\n stack.push({ node: node.left, index: 0, depth });\n break;\n case \"ObjectProperty\":\n // inherit the depth and index as an object property can not be an LHS without object pattern\n stack.push({ node: node.value as t.LVal, index, depth: item.depth });\n break;\n case \"RestElement\":\n stack.push({ node: node.argument, index: 0, depth });\n break;\n case \"ObjectPattern\":\n for (let list = node.properties, i = list.length - 1; i >= 0; i--) {\n stack.push({ node: list[i], index: i, depth });\n }\n break;\n case \"ArrayPattern\":\n for (let list = node.elements, i = list.length - 1; i >= 0; i--) {\n stack.push({ node: list[i], index: i, depth });\n }\n break;\n case \"TSParameterProperty\":\n case \"TSAsExpression\":\n case \"TSTypeAssertion\":\n case \"TSNonNullExpression\":\n throw new Error(\n `TypeScript features must first be transformed by ` +\n `@babel/plugin-transform-typescript.\\n` +\n `If you have already enabled that plugin (or '@babel/preset-typescript'), make sure ` +\n `that it runs before @babel/plugin-proposal-destructuring-private.`,\n );\n default:\n break;\n }\n }\n}\n\nexport function hasPrivateKeys(pattern: t.AssignmentExpression[\"left\"]) {\n let result = false;\n traversePattern(pattern, function* (node) {\n if (isObjectProperty(node) && isPrivateName(node.key)) {\n result = true;\n // stop the traversal\n yield;\n }\n }).next();\n return result;\n}\n\nexport function hasPrivateClassElement(node: t.ClassBody): boolean {\n return node.body.some(element =>\n isPrivateName(\n // @ts-expect-error: for those class element without `key`, they must\n // not be a private element\n element.key,\n ),\n );\n}\n\n/**\n * Traverse the given pattern and report the private key path.\n * A private key path is analogous to an array of `key` from the pattern NodePath\n * to the private key NodePath. See also test/util.skip-bundled.js for an example output\n *\n * @export\n * @param {t.LVal} pattern\n */\nexport function* privateKeyPathIterator(pattern: t.LVal) {\n const indexPath: number[] = [];\n yield* traversePattern(pattern, function* (node, index, depth) {\n indexPath[depth] = index;\n if (isObjectProperty(node) && isPrivateName(node.key)) {\n // The indexPath[0, depth] contains the path from root pattern to the object property\n // with private key. The indexPath may have more than depth + 1 elements because we\n // don't shrink the indexPath when the traverser returns to parent nodes.\n yield indexPath.slice(1, depth + 1);\n }\n });\n}\n\ntype LHS = Exclude;\n\ntype ExcludingKey = {\n key: t.ObjectProperty[\"key\"];\n computed: t.ObjectProperty[\"computed\"];\n};\ntype Item = {\n left: LHS;\n right: t.Expression;\n restExcludingKeys?: ExcludingKey[] | null;\n};\n\nfunction rightWillBeReferencedOnce(left: LHS) {\n switch (left.type) {\n // Skip memoising the right when left is an identifier or\n // an array pattern\n case \"Identifier\":\n case \"ArrayPattern\":\n return true;\n case \"ObjectPattern\":\n return left.properties.length === 1;\n default:\n return false;\n }\n}\n/**\n * Transform private destructuring. It returns a generator\n * which yields a pair of transformed LHS and RHS, which can form VariableDeclaration or\n * AssignmentExpression later.\n *\n * @export\n * @param {LHS} left The root pattern\n * @param {t.Expression} right The initializer or the RHS of pattern\n * @param {Scope} scope The scope where memoized id should be registered\n * @param {boolean} isAssignment Whether we are transforming from an AssignmentExpression of VariableDeclaration\n * @returns {Generator}\n */\nexport function* transformPrivateKeyDestructuring(\n left: LHS,\n right: t.Expression,\n scope: Scope,\n isAssignment: boolean,\n shouldPreserveCompletion: boolean,\n addHelper: File[\"addHelper\"],\n objectRestNoSymbols: boolean,\n useBuiltIns: boolean,\n): Generator {\n const stack: Item[] = [];\n const rootRight = right;\n // The stack holds patterns that we don't known whether they contain private key\n stack.push({\n left,\n right,\n restExcludingKeys: initRestExcludingKeys(left),\n });\n let item: Item;\n while ((item = stack.pop()) !== undefined) {\n const { restExcludingKeys } = item;\n let { left, right } = item;\n const searchPrivateKey = privateKeyPathIterator(left).next();\n if (searchPrivateKey.done) {\n if (restExcludingKeys?.length > 0) {\n // optimize out the rest element because `objectWithoutProperties`\n // returns a new object\n // `{ ...z } = babelHelpers.objectWithoutProperties(m, [\"x\"])`\n // to\n // `z = babelHelpers.objectWithoutProperties(m, [\"x\"])`\n const { properties } = left as t.ObjectPattern;\n if (properties.length === 1) {\n // The argument of an object rest element must be an Identifier\n left = (properties[0] as t.RestElement).argument as t.Identifier;\n }\n yield {\n left: left as t.ObjectPattern,\n right: buildObjectExcludingKeys(\n restExcludingKeys,\n right,\n scope,\n addHelper,\n objectRestNoSymbols,\n useBuiltIns,\n ),\n };\n } else {\n yield {\n left:\n // An assignment pattern will not be pushed to the stack\n left as Transformed[\"left\"],\n right,\n };\n }\n } else {\n // now we need to split according to the indexPath;\n const indexPath = searchPrivateKey.value;\n for (\n let indexPathIndex = 0, index;\n (indexPathIndex < indexPath.length &&\n (index = indexPath[indexPathIndex]) !== undefined) ||\n left.type === \"AssignmentPattern\";\n indexPathIndex++\n ) {\n const isRightSafeToReuse =\n // If we should preserve completion and the right is the rootRight, then the\n // right is NOT safe to reuse because we will insert a new memoising statement\n // in the AssignmentExpression visitor, which causes right to be referenced more\n // than once\n !(shouldPreserveCompletion && right === rootRight) &&\n (rightWillBeReferencedOnce(left) || scope.isStatic(right));\n if (!isRightSafeToReuse) {\n const tempId = scope.generateUidIdentifier(\"m\");\n if (isAssignment) {\n scope.push({ id: cloneNode(tempId) });\n }\n yield { left: tempId, right };\n right = cloneNode(tempId);\n }\n // invariant: at this point right must be a static identifier;\n switch (left.type) {\n case \"ObjectPattern\": {\n const { properties } = left;\n if (index > 0) {\n // properties[0, index) must not contain private keys\n const propertiesSlice = properties.slice(0, index);\n yield {\n left: objectPattern(propertiesSlice),\n right: cloneNode(right),\n };\n }\n if (index < properties.length - 1) {\n // for properties after `index`, push them to stack so we can process them later\n // inherit the restExcludingKeys on the stack if we are at\n // the first level, otherwise initialize a new restExcludingKeys\n const nextRestExcludingKeys =\n indexPathIndex === 0\n ? restExcludingKeys\n : initRestExcludingKeys(left);\n growRestExcludingKeys(\n nextRestExcludingKeys,\n // @ts-expect-error properties[0, index] must not contain rest element\n // because properties[index] contains a private key\n properties.slice(0, index + 1),\n scope,\n );\n stack.push({\n left: objectPattern(properties.slice(index + 1)),\n right: cloneNode(right),\n restExcludingKeys: nextRestExcludingKeys,\n });\n }\n // An object rest element must not contain a private key\n const property = properties[index] as t.ObjectProperty;\n // The value of ObjectProperty under ObjectPattern must be an LHS\n left = property.value as LHS;\n const { key } = property;\n const computed =\n property.computed ||\n // `{ 0: x } = RHS` is transformed to a computed member expression `x = RHS[0]`\n (key.type !== \"Identifier\" && key.type !== \"PrivateName\");\n right = memberExpression(right, key, computed);\n break;\n }\n case \"AssignmentPattern\": {\n right = transformAssignmentPattern(\n left.right,\n right as t.Identifier,\n );\n left = left.left;\n break;\n }\n case \"ArrayPattern\": {\n // todo: the transform here assumes that any expression within\n // the array pattern, when evaluated, do not interfere with the iterable\n // in RHS. Otherwise we have to pause the iterable and interleave\n // the expressions.\n // See also https://gist.github.com/nicolo-ribaudo/f8ac7916f89450f2ead77d99855b2098\n // and ordering/array-pattern-side-effect-iterable test\n const leftElements = left.elements;\n const leftElementsAfterIndex = leftElements.splice(index);\n const { elements, transformed } = buildAssignmentsFromPatternList(\n leftElementsAfterIndex,\n scope,\n isAssignment,\n );\n leftElements.push(...elements);\n yield { left, right: cloneNode(right) };\n // for elements after `index`, push them to stack so we can process them later\n for (let i = transformed.length - 1; i > 0; i--) {\n // skipping array holes\n if (transformed[i] !== null) {\n stack.push(transformed[i]);\n }\n }\n ({ left, right } = transformed[0]);\n break;\n }\n default:\n break;\n }\n }\n stack.push({\n left,\n right,\n restExcludingKeys: initRestExcludingKeys(left),\n });\n }\n }\n}\n","import { types as t } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\ntype State = {\n needsOuterBinding: boolean;\n scope: Scope;\n};\n\nexport const iifeVisitor: Visitor = {\n \"ReferencedIdentifier|BindingIdentifier\"(\n path: NodePath,\n state,\n ) {\n const { scope, node } = path;\n const { name } = node;\n\n if (\n name === \"eval\" ||\n (scope.getBinding(name) === state.scope.parent.getBinding(name) &&\n state.scope.hasOwnBinding(name))\n ) {\n state.needsOuterBinding = true;\n path.stop();\n }\n },\n // type annotations don't use or introduce \"real\" bindings\n \"TypeAnnotation|TSTypeAnnotation|TypeParameterDeclaration|TSTypeParameterDeclaration\":\n (path: NodePath) => path.skip(),\n};\n\nexport function collectShadowedParamsNames(\n param: NodePath,\n functionScope: Scope,\n shadowedParams: Set,\n) {\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n const constantViolations = functionScope.bindings[name]?.constantViolations;\n if (constantViolations) {\n for (const redeclarator of constantViolations) {\n const node = redeclarator.node;\n // If a constant violation is a var or a function declaration,\n // we first check to see if it's a var without an init.\n // If so, we remove that declarator.\n // Otherwise, we have to wrap it in an IIFE.\n switch (node.type) {\n case \"VariableDeclarator\": {\n if (node.init === null) {\n const declaration = redeclarator.parentPath;\n // The following uninitialized var declarators should not be removed\n // for (var x in {})\n // for (var x;;)\n if (\n !declaration.parentPath.isFor() ||\n declaration.parentPath.get(\"body\") === declaration\n ) {\n redeclarator.remove();\n break;\n }\n }\n\n shadowedParams.add(name);\n break;\n }\n case \"FunctionDeclaration\":\n shadowedParams.add(name);\n break;\n }\n }\n }\n }\n}\n\nexport function buildScopeIIFE(\n shadowedParams: Set,\n body: t.BlockStatement,\n) {\n const args = [];\n const params = [];\n\n for (const name of shadowedParams) {\n // We create them twice; the other option is to use t.cloneNode\n args.push(t.identifier(name));\n params.push(t.identifier(name));\n }\n\n return t.returnStatement(\n t.callExpression(t.arrowFunctionExpression(params, body), args),\n );\n}\n","import { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport {\n iifeVisitor,\n collectShadowedParamsNames,\n buildScopeIIFE,\n} from \"./shadow-utils.ts\";\n\nconst buildDefaultParam = template.statement(`\n let VARIABLE_NAME =\n arguments.length > ARGUMENT_KEY && arguments[ARGUMENT_KEY] !== undefined ?\n arguments[ARGUMENT_KEY]\n :\n DEFAULT_VALUE;\n`);\n\nconst buildLooseDefaultParam = template.statement(`\n if (ASSIGNMENT_IDENTIFIER === UNDEFINED) {\n ASSIGNMENT_IDENTIFIER = DEFAULT_VALUE;\n }\n`);\n\nconst buildLooseDestructuredDefaultParam = template.statement(`\n let ASSIGNMENT_IDENTIFIER = PARAMETER_NAME === UNDEFINED ? DEFAULT_VALUE : PARAMETER_NAME ;\n`);\n\nconst buildSafeArgumentsAccess = template.statement(`\n let $0 = arguments.length > $1 ? arguments[$1] : undefined;\n`);\n\n// last 2 parameters are optional -- they are used by transform-object-rest-spread/src/index.js\nexport default function convertFunctionParams(\n path: NodePath,\n ignoreFunctionLength: boolean | void,\n shouldTransformParam?: (index: number) => boolean,\n replaceRestElement?: (\n path: NodePath,\n paramPath: NodePath,\n transformedRestNodes: t.Statement[],\n ) => void,\n) {\n const params = path.get(\"params\");\n\n const isSimpleParameterList = params.every(param => param.isIdentifier());\n if (isSimpleParameterList) return false;\n\n const { node, scope } = path;\n\n const body = [];\n const shadowedParams = new Set();\n\n for (const param of params) {\n collectShadowedParamsNames(param, scope, shadowedParams);\n }\n\n const state = {\n needsOuterBinding: false,\n scope,\n };\n if (shadowedParams.size === 0) {\n for (const param of params) {\n if (!param.isIdentifier()) param.traverse(iifeVisitor, state);\n if (state.needsOuterBinding) break;\n }\n }\n\n let firstOptionalIndex = null;\n\n for (let i = 0; i < params.length; i++) {\n const param = params[i];\n\n if (shouldTransformParam && !shouldTransformParam(i)) {\n continue;\n }\n const transformedRestNodes: t.Statement[] = [];\n if (replaceRestElement) {\n replaceRestElement(path, param, transformedRestNodes);\n }\n\n const paramIsAssignmentPattern = param.isAssignmentPattern();\n if (\n paramIsAssignmentPattern &&\n (ignoreFunctionLength || t.isMethod(node, { kind: \"set\" }))\n ) {\n const left = param.get(\"left\");\n const right = param.get(\"right\");\n\n const undefinedNode = scope.buildUndefinedNode();\n\n if (left.isIdentifier()) {\n body.push(\n buildLooseDefaultParam({\n ASSIGNMENT_IDENTIFIER: t.cloneNode(left.node),\n DEFAULT_VALUE: right.node,\n UNDEFINED: undefinedNode,\n }),\n );\n param.replaceWith(left.node);\n } else if (left.isObjectPattern() || left.isArrayPattern()) {\n const paramName = scope.generateUidIdentifier();\n body.push(\n buildLooseDestructuredDefaultParam({\n ASSIGNMENT_IDENTIFIER: left.node,\n DEFAULT_VALUE: right.node,\n PARAMETER_NAME: t.cloneNode(paramName),\n UNDEFINED: undefinedNode,\n }),\n );\n param.replaceWith(paramName);\n }\n } else if (paramIsAssignmentPattern) {\n if (firstOptionalIndex === null) firstOptionalIndex = i;\n\n const left = param.get(\"left\");\n const right = param.get(\"right\");\n\n const defNode = buildDefaultParam({\n VARIABLE_NAME: left.node,\n DEFAULT_VALUE: right.node,\n ARGUMENT_KEY: t.numericLiteral(i),\n });\n body.push(defNode);\n } else if (firstOptionalIndex !== null) {\n const defNode = buildSafeArgumentsAccess([\n param.node,\n t.numericLiteral(i),\n ]);\n body.push(defNode);\n } else if (param.isObjectPattern() || param.isArrayPattern()) {\n const uid = path.scope.generateUidIdentifier(\"ref\");\n uid.typeAnnotation = param.node.typeAnnotation;\n\n const defNode = t.variableDeclaration(\"let\", [\n t.variableDeclarator(param.node, uid),\n ]);\n body.push(defNode);\n\n param.replaceWith(t.cloneNode(uid));\n }\n\n if (transformedRestNodes) {\n for (const transformedNode of transformedRestNodes) {\n body.push(transformedNode);\n }\n }\n }\n\n // we need to cut off all trailing parameters\n if (firstOptionalIndex !== null) {\n node.params = node.params.slice(0, firstOptionalIndex);\n }\n\n // ensure it's a block, useful for arrow functions\n path.ensureBlock();\n const path2 = path as NodePath;\n\n const { async, generator } = node;\n if (generator || state.needsOuterBinding || shadowedParams.size > 0) {\n body.push(buildScopeIIFE(shadowedParams, path2.node.body));\n\n path.set(\"body\", t.blockStatement(body as t.Statement[]));\n\n // We inject an arrow and then transform it to a normal function, to be\n // sure that we correctly handle this and arguments.\n const bodyPath = path2.get(\"body.body\");\n const arrowPath = bodyPath[bodyPath.length - 1].get(\n \"argument.callee\",\n ) as NodePath;\n\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n arrowPath.arrowFunctionToExpression();\n\n arrowPath.node.generator = generator;\n arrowPath.node.async = async;\n\n node.generator = false;\n node.async = false;\n if (async) {\n // If the default value of a parameter throws, it must reject asynchronously.\n path2.node.body = template.statement.ast`{\n try {\n ${path2.node.body.body}\n } catch (e) {\n return Promise.reject(e);\n }\n }` as t.BlockStatement;\n }\n } else {\n path2.get(\"body\").unshiftContainer(\"body\", body);\n }\n\n return true;\n}\n","import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nimport {\n iifeVisitor,\n collectShadowedParamsNames,\n buildScopeIIFE,\n} from \"./shadow-utils.ts\";\n\nconst buildRest = template.statement(`\n for (var LEN = ARGUMENTS.length,\n ARRAY = new Array(ARRAY_LEN),\n KEY = START;\n KEY < LEN;\n KEY++) {\n ARRAY[ARRAY_KEY] = ARGUMENTS[KEY];\n }\n`);\n\nconst restIndex = template.expression(`\n (INDEX < OFFSET || ARGUMENTS.length <= INDEX) ? undefined : ARGUMENTS[INDEX]\n`);\n\nconst restIndexImpure = template.expression(`\n REF = INDEX, (REF < OFFSET || ARGUMENTS.length <= REF) ? undefined : ARGUMENTS[REF]\n`);\n\nconst restLength = template.expression(`\n ARGUMENTS.length <= OFFSET ? 0 : ARGUMENTS.length - OFFSET\n`);\n\nfunction referencesRest(\n path: NodePath,\n state: State,\n) {\n if (path.node.name === state.name) {\n // Check rest parameter is not shadowed by a binding in another scope.\n return path.scope.bindingIdentifierEquals(state.name, state.outerBinding);\n }\n\n return false;\n}\n\ntype Candidate = {\n cause: \"argSpread\" | \"indexGetter\" | \"lengthGetter\";\n path: NodePath;\n};\n\ntype State = {\n references: NodePath[];\n offset: number;\n\n argumentsNode: t.Identifier;\n outerBinding: t.Identifier;\n\n // candidate member expressions we could optimise if there are no other references\n candidates: Candidate[];\n\n // local rest binding name\n name: string;\n\n /*\n It may be possible to optimize the output code in certain ways, such as\n not generating code to initialize an array (perhaps substituting direct\n references to arguments[i] or arguments.length for reads of the\n corresponding rest parameter property) or positioning the initialization\n code so that it may not have to execute depending on runtime conditions.\n\n This property tracks eligibility for optimization. \"deopted\" means give up\n and don't perform optimization. For example, when any of rest's elements /\n properties is assigned to at the top level, or referenced at all in a\n nested function.\n */\n deopted: boolean;\n noOptimise?: boolean;\n};\n\nconst memberExpressionOptimisationVisitor: Visitor = {\n Scope(path, state) {\n // check if this scope has a local binding that will shadow the rest parameter\n if (!path.scope.bindingIdentifierEquals(state.name, state.outerBinding)) {\n path.skip();\n }\n },\n\n Flow(path: NodePath) {\n // Do not skip TypeCastExpressions as the contain valid non flow code\n if (path.isTypeCastExpression()) return;\n // don't touch reference in type annotations\n path.skip();\n },\n\n Function(path, state) {\n // Detect whether any reference to rest is contained in nested functions to\n // determine if deopt is necessary.\n const oldNoOptimise = state.noOptimise;\n state.noOptimise = true;\n path.traverse(memberExpressionOptimisationVisitor, state);\n state.noOptimise = oldNoOptimise;\n\n // Skip because optimizing references to rest would refer to the `arguments`\n // of the nested function.\n path.skip();\n },\n\n ReferencedIdentifier(path, state) {\n const { node } = path;\n\n // we can't guarantee the purity of arguments\n if (node.name === \"arguments\") {\n state.deopted = true;\n }\n\n // is this a referenced identifier and is it referencing the rest parameter?\n if (!referencesRest(path, state)) return;\n\n if (state.noOptimise) {\n state.deopted = true;\n } else {\n const { parentPath } = path;\n\n // Is this identifier the right hand side of a default parameter?\n if (\n parentPath.listKey === \"params\" &&\n (parentPath.key as number) < state.offset\n ) {\n return;\n }\n\n // ex: `args[0]`\n // ex: `args.whatever`\n if (parentPath.isMemberExpression({ object: node })) {\n const grandparentPath = parentPath.parentPath;\n\n const argsOptEligible =\n !state.deopted &&\n !(\n // ex: `args[0] = \"whatever\"`\n (\n (grandparentPath.isAssignmentExpression() &&\n parentPath.node === grandparentPath.node.left) ||\n // ex: `[args[0]] = [\"whatever\"]`\n grandparentPath.isLVal() ||\n // ex: `for (rest[0] in this)`\n // ex: `for (rest[0] of this)`\n grandparentPath.isForXStatement() ||\n // ex: `++args[0]`\n // ex: `args[0]--`\n grandparentPath.isUpdateExpression() ||\n // ex: `delete args[0]`\n grandparentPath.isUnaryExpression({ operator: \"delete\" }) ||\n // ex: `args[0]()`\n // ex: `new args[0]()`\n // ex: `new args[0]`\n ((grandparentPath.isCallExpression() ||\n grandparentPath.isNewExpression()) &&\n parentPath.node === grandparentPath.node.callee)\n )\n );\n\n if (argsOptEligible) {\n if (parentPath.node.computed) {\n // if we know that this member expression is referencing a number then\n // we can safely optimise it\n if (parentPath.get(\"property\").isBaseType(\"number\")) {\n state.candidates.push({ cause: \"indexGetter\", path });\n return;\n }\n } else if (\n // @ts-expect-error .length must not be a private name\n parentPath.node.property.name === \"length\"\n ) {\n // args.length\n state.candidates.push({ cause: \"lengthGetter\", path });\n return;\n }\n }\n }\n\n // we can only do these optimizations if the rest variable would match\n // the arguments exactly\n // optimise single spread args in calls\n // ex: fn(...args)\n if (state.offset === 0 && parentPath.isSpreadElement()) {\n const call = parentPath.parentPath;\n if (call.isCallExpression() && call.node.arguments.length === 1) {\n state.candidates.push({ cause: \"argSpread\", path });\n return;\n }\n }\n\n state.references.push(path);\n }\n },\n\n /**\n * Deopt on use of a binding identifier with the same name as our rest param.\n *\n * See https://github.com/babel/babel/issues/2091\n */\n\n BindingIdentifier(path, state) {\n if (referencesRest(path, state)) {\n state.deopted = true;\n }\n },\n};\n\nfunction getParamsCount(node: t.Function) {\n let count = node.params.length;\n // skip the first parameter if it is a TypeScript 'this parameter'\n if (count > 0 && t.isIdentifier(node.params[0], { name: \"this\" })) {\n count -= 1;\n }\n return count;\n}\n\nfunction hasRest(node: t.Function) {\n const length = node.params.length;\n return length > 0 && t.isRestElement(node.params[length - 1]);\n}\n\nfunction optimiseIndexGetter(\n path: NodePath,\n argsId: t.Identifier,\n offset: number,\n) {\n const offsetLiteral = t.numericLiteral(offset);\n let index;\n const parent = path.parent as t.MemberExpression;\n\n if (t.isNumericLiteral(parent.property)) {\n index = t.numericLiteral(parent.property.value + offset);\n } else if (offset === 0) {\n // Avoid unnecessary '+ 0'\n index = parent.property;\n } else {\n index = t.binaryExpression(\n \"+\",\n parent.property,\n t.cloneNode(offsetLiteral),\n );\n }\n\n const { scope, parentPath } = path;\n if (!scope.isPure(index)) {\n const temp = scope.generateUidIdentifierBasedOnNode(index);\n scope.push({ id: temp, kind: \"var\" });\n parentPath.replaceWith(\n restIndexImpure({\n ARGUMENTS: argsId,\n OFFSET: offsetLiteral,\n INDEX: index,\n REF: t.cloneNode(temp),\n }),\n );\n } else {\n parentPath.replaceWith(\n restIndex({\n ARGUMENTS: argsId,\n OFFSET: offsetLiteral,\n INDEX: index,\n }),\n );\n const replacedParentPath = parentPath as NodePath;\n\n // See if we can statically evaluate the first test (i.e. index < offset)\n // and optimize the AST accordingly.\n const offsetTestPath = replacedParentPath.get(\n \"test\",\n ) as NodePath;\n const valRes = offsetTestPath.get(\"left\").evaluate();\n if (valRes.confident) {\n if (valRes.value === true) {\n replacedParentPath.replaceWith(scope.buildUndefinedNode());\n } else {\n offsetTestPath.replaceWith(offsetTestPath.get(\"right\"));\n }\n }\n }\n}\n\nfunction optimiseLengthGetter(\n path: NodePath,\n argsId: t.Identifier,\n offset: number,\n) {\n if (offset) {\n path.parentPath.replaceWith(\n restLength({\n ARGUMENTS: argsId,\n OFFSET: t.numericLiteral(offset),\n }),\n );\n } else {\n path.replaceWith(argsId);\n }\n}\n\nexport default function convertFunctionRest(path: NodePath) {\n const { node, scope } = path;\n if (!hasRest(node)) return false;\n\n const restPath = path.get(\n `params.${node.params.length - 1}.argument`,\n ) as NodePath;\n\n if (!restPath.isIdentifier()) {\n const shadowedParams = new Set();\n collectShadowedParamsNames(restPath, path.scope, shadowedParams);\n\n let needsIIFE = shadowedParams.size > 0;\n if (!needsIIFE) {\n const state = {\n needsOuterBinding: false,\n scope,\n };\n restPath.traverse(iifeVisitor, state);\n needsIIFE = state.needsOuterBinding;\n }\n\n if (needsIIFE) {\n path.ensureBlock();\n path.set(\n \"body\",\n t.blockStatement([\n buildScopeIIFE(shadowedParams, path.node.body as t.BlockStatement),\n ]),\n );\n }\n }\n\n let rest = restPath.node;\n node.params.pop(); // This returns 'rest'\n\n if (t.isPattern(rest)) {\n const pattern = rest;\n rest = scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(pattern, rest),\n ]);\n path.ensureBlock();\n (node.body as t.BlockStatement).body.unshift(declar);\n } else if (rest.name === \"arguments\") {\n scope.rename(rest.name);\n }\n\n const argsId = t.identifier(\"arguments\");\n const paramsCount = getParamsCount(node);\n\n // check and optimise for extremely common cases\n const state: State = {\n references: [],\n offset: paramsCount,\n argumentsNode: argsId,\n outerBinding: scope.getBindingIdentifier(rest.name),\n candidates: [],\n name: rest.name,\n deopted: false,\n };\n\n path.traverse(memberExpressionOptimisationVisitor, state);\n\n // There are only \"shorthand\" references\n if (!state.deopted && !state.references.length) {\n for (const { path, cause } of state.candidates) {\n const clonedArgsId = t.cloneNode(argsId);\n switch (cause) {\n case \"indexGetter\":\n optimiseIndexGetter(path, clonedArgsId, state.offset);\n break;\n case \"lengthGetter\":\n optimiseLengthGetter(path, clonedArgsId, state.offset);\n break;\n default:\n path.replaceWith(clonedArgsId);\n }\n }\n return true;\n }\n\n state.references.push(...state.candidates.map(({ path }) => path));\n\n const start = t.numericLiteral(paramsCount);\n const key = scope.generateUidIdentifier(\"key\");\n const len = scope.generateUidIdentifier(\"len\");\n\n let arrKey, arrLen;\n if (paramsCount) {\n // this method has additional params, so we need to subtract\n // the index of the current argument position from the\n // position in the array that we want to populate\n arrKey = t.binaryExpression(\"-\", t.cloneNode(key), t.cloneNode(start));\n\n // we need to work out the size of the array that we're\n // going to store all the rest parameters\n //\n // we need to add a check to avoid constructing the array\n // with <0 if there are less arguments than params as it'll\n // cause an error\n arrLen = t.conditionalExpression(\n t.binaryExpression(\">\", t.cloneNode(len), t.cloneNode(start)),\n t.binaryExpression(\"-\", t.cloneNode(len), t.cloneNode(start)),\n t.numericLiteral(0),\n );\n } else {\n arrKey = t.identifier(key.name);\n arrLen = t.identifier(len.name);\n }\n\n const loop = buildRest({\n ARGUMENTS: argsId,\n ARRAY_KEY: arrKey,\n ARRAY_LEN: arrLen,\n START: start,\n ARRAY: rest,\n KEY: key,\n LEN: len,\n });\n\n if (state.deopted) {\n (node.body as t.BlockStatement).body.unshift(loop);\n } else {\n let target = path\n .getEarliestCommonAncestorFrom(state.references)\n .getStatementParent();\n\n // don't perform the allocation inside a loop\n target.findParent(path => {\n if (path.isLoop()) {\n target = path;\n } else {\n // Stop crawling up if this is a function.\n return path.isFunction();\n }\n });\n\n target.insertBefore(loop);\n }\n\n return true;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport convertFunctionParams from \"./params.ts\";\nimport convertFunctionRest from \"./rest.ts\";\nexport { convertFunctionParams };\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const ignoreFunctionLength =\n api.assumption(\"ignoreFunctionLength\") ?? options.loose;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n\n return {\n name: \"transform-parameters\",\n\n visitor: {\n Function(path) {\n if (\n path.isArrowFunctionExpression() &&\n path\n .get(\"params\")\n .some(param => param.isRestElement() || param.isAssignmentPattern())\n ) {\n // default/rest visitors require access to `arguments`, so it cannot be an arrow\n path.arrowFunctionToExpression({\n allowInsertArrowWithRest: false,\n noNewArrows,\n });\n\n // In some cases arrowFunctionToExpression replaces the function with a wrapper.\n // Return early; the wrapped function will be visited later in the AST traversal.\n if (!path.isFunctionExpression()) return;\n }\n\n const convertedRest = convertFunctionRest(path);\n const convertedParams = convertFunctionParams(\n path,\n ignoreFunctionLength,\n );\n\n if (convertedRest || convertedParams) {\n // Manually reprocess this scope to ensure that the moved params are updated.\n path.scope.crawl();\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxDestructuringPrivate from \"@babel/plugin-syntax-destructuring-private\";\nimport {\n hasPrivateKeys,\n hasPrivateClassElement,\n transformPrivateKeyDestructuring,\n buildVariableDeclarationFromParams,\n} from \"./util.ts\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { unshiftForXStatementBody } from \"@babel/plugin-transform-destructuring\";\n\nimport type { PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport default declare(function ({ assertVersion, assumption, types: t }) {\n assertVersion(REQUIRED_VERSION(\"^7.17.0\"));\n const {\n assignmentExpression,\n assignmentPattern,\n cloneNode,\n expressionStatement,\n isExpressionStatement,\n isIdentifier,\n isSequenceExpression,\n sequenceExpression,\n variableDeclaration,\n variableDeclarator,\n } = t;\n\n const ignoreFunctionLength = assumption(\"ignoreFunctionLength\");\n const objectRestNoSymbols = assumption(\"objectRestNoSymbols\");\n\n const privateKeyDestructuringVisitor: Visitor = {\n Function(path) {\n // (b, { #x: x } = I) => body\n // transforms to:\n // (b, p1) => { var { #x: x } = p1 === undefined ? I : p1; body; }\n const firstPrivateIndex = path.node.params.findIndex(param =>\n hasPrivateKeys(param),\n );\n if (firstPrivateIndex === -1) return;\n // wrap function body within IIFE if any param is shadowed\n convertFunctionParams(path, ignoreFunctionLength, () => false);\n // invariant: path.body is always a BlockStatement after `convertFunctionParams`\n const { node, scope } = path;\n const { params } = node;\n const firstAssignmentPatternIndex = ignoreFunctionLength\n ? -1\n : params.findIndex(param => param.type === \"AssignmentPattern\");\n const paramsAfterIndex = params.splice(firstPrivateIndex);\n const { params: transformedParams, variableDeclaration } =\n buildVariableDeclarationFromParams(paramsAfterIndex, scope);\n\n (path.get(\"body\") as NodePath).unshiftContainer(\n \"body\",\n variableDeclaration,\n );\n params.push(...transformedParams);\n // preserve function.length\n // (b, p1) => {}\n // transforms to\n // (b, p1 = void 0) => {}\n if (firstAssignmentPatternIndex >= firstPrivateIndex) {\n params[firstAssignmentPatternIndex] = assignmentPattern(\n // @ts-expect-error The transformed assignment pattern must not be a RestElement\n params[firstAssignmentPatternIndex],\n scope.buildUndefinedNode(),\n );\n }\n scope.crawl();\n // the pattern will be handled by VariableDeclaration visitor.\n },\n CatchClause(path) {\n // catch({ #x: x }) { body }\n // transforms to:\n // catch(_e) { var {#x: x } = _e; body }\n const { node, scope } = path;\n if (!hasPrivateKeys(node.param)) return;\n // todo: handle shadowed param as we did in convertFunctionParams\n const ref = scope.generateUidIdentifier(\"e\");\n path\n .get(\"body\")\n .unshiftContainer(\n \"body\",\n variableDeclaration(\"let\", [variableDeclarator(node.param, ref)]),\n );\n node.param = cloneNode(ref);\n scope.crawl();\n // the pattern will be handled by VariableDeclaration visitor.\n },\n ForXStatement(path) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n if (leftPath.isVariableDeclaration()) {\n const left = leftPath.node;\n if (!hasPrivateKeys(left.declarations[0].id)) return;\n // for (const { #x: x } of cls) body;\n // transforms to:\n // for (const ref of cls) { const { #x: x } = ref; body; }\n // todo: the transform here assumes that any expression within\n // the destructuring pattern (`{ #x: x }`), when evaluated, do not interfere\n // with the iterator of cls. Otherwise we have to pause the iterator and\n // interleave the expressions.\n // See also https://gist.github.com/nicolo-ribaudo/f8ac7916f89450f2ead77d99855b2098\n const temp = scope.generateUidIdentifier(\"ref\");\n node.left = variableDeclaration(left.kind, [\n variableDeclarator(temp, null),\n ]);\n left.declarations[0].init = cloneNode(temp);\n unshiftForXStatementBody(path, [left]);\n scope.crawl();\n // the pattern will be handled by VariableDeclaration visitor.\n } else if (leftPath.isPattern()) {\n if (!hasPrivateKeys(leftPath.node)) return;\n // for ({ #x: x } of cls);\n // transforms to:\n // for (const ref of cls) { ({ #x: x } = ref); body; }\n // This transform assumes that any expression within the pattern\n // does not interfere with the iterable `cls`.\n const temp = scope.generateUidIdentifier(\"ref\");\n node.left = variableDeclaration(\"const\", [\n variableDeclarator(temp, null),\n ]);\n const assignExpr = expressionStatement(\n assignmentExpression(\"=\", leftPath.node, cloneNode(temp)),\n );\n unshiftForXStatementBody(path, [assignExpr]);\n scope.crawl();\n }\n },\n VariableDeclaration(path, state) {\n const { scope, node } = path;\n const { declarations } = node;\n if (!declarations.some(declarator => hasPrivateKeys(declarator.id))) {\n return;\n }\n const newDeclarations = [];\n for (const declarator of declarations) {\n for (const { left, right } of transformPrivateKeyDestructuring(\n // @ts-expect-error The id of a variable declarator must not be a RestElement\n declarator.id,\n declarator.init,\n scope,\n /* isAssignment */ false,\n /* shouldPreserveCompletion */ false,\n name => state.addHelper(name),\n objectRestNoSymbols,\n /* useBuiltIns */ true,\n )) {\n newDeclarations.push(variableDeclarator(left, right));\n }\n }\n node.declarations = newDeclarations;\n scope.crawl();\n },\n\n AssignmentExpression(path, state) {\n const { node, scope, parent } = path;\n if (!hasPrivateKeys(node.left)) return;\n const assignments = [];\n const shouldPreserveCompletion =\n (!isExpressionStatement(parent) && !isSequenceExpression(parent)) ||\n path.isCompletionRecord();\n for (const { left, right } of transformPrivateKeyDestructuring(\n // @ts-expect-error The left of an assignment expression must not be a RestElement\n node.left,\n node.right,\n scope,\n /* isAssignment */ true,\n shouldPreserveCompletion,\n name => state.addHelper(name),\n objectRestNoSymbols,\n /* useBuiltIns */ true,\n )) {\n assignments.push(assignmentExpression(\"=\", left, right));\n }\n // preserve completion record\n if (shouldPreserveCompletion) {\n const { left, right } = assignments[0];\n // If node.right is right and left is an identifier, then the left is an effectively-constant memoised id\n if (isIdentifier(left) && right === node.right) {\n if (\n !isIdentifier(assignments[assignments.length - 1].right, {\n name: left.name,\n })\n ) {\n // If the last assignment does not end with left, then we push `left` as the completion value\n assignments.push(cloneNode(left));\n }\n // do nothing as `left` is already at the end of assignments\n } else {\n const tempId = scope.generateDeclaredUidIdentifier(\"m\");\n assignments.unshift(\n assignmentExpression(\"=\", tempId, cloneNode(node.right)),\n );\n assignments.push(cloneNode(tempId));\n }\n }\n\n path.replaceWith(sequenceExpression(assignments));\n scope.crawl();\n },\n };\n\n const visitor: Visitor = {\n Class(path, state) {\n if (!hasPrivateClassElement(path.node.body)) return;\n path.traverse(privateKeyDestructuringVisitor, state);\n },\n };\n\n return {\n name: \"proposal-destructuring-private\",\n inherits: syntaxDestructuringPrivate,\n visitor: visitor,\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxDoExpressions from \"@babel/plugin-syntax-do-expressions\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"proposal-do-expressions\",\n inherits: syntaxDoExpressions,\n\n visitor: {\n DoExpression: {\n exit(path) {\n const { node } = path;\n if (node.async) {\n // Async do expressions are not yet supported\n return;\n }\n const body = node.body.body;\n if (body.length) {\n path.replaceExpressionWithStatements(body);\n } else {\n path.replaceWith(path.scope.buildUndefinedNode());\n }\n },\n },\n },\n };\n});\n","/*! https://mths.be/regenerate v1.4.2 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js/io.js or Browserified code,\n\t// and use it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar ERRORS = {\n\t\t'rangeOrder': 'A range\\u2019s `stop` value must be greater than or equal ' +\n\t\t\t'to the `start` value.',\n\t\t'codePointRange': 'Invalid code point value. Code points range from ' +\n\t\t\t'U+000000 to U+10FFFF.'\n\t};\n\n\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-pairs\n\tvar HIGH_SURROGATE_MIN = 0xD800;\n\tvar HIGH_SURROGATE_MAX = 0xDBFF;\n\tvar LOW_SURROGATE_MIN = 0xDC00;\n\tvar LOW_SURROGATE_MAX = 0xDFFF;\n\n\t// In Regenerate output, `\\0` is never preceded by `\\` because we sort by\n\t// code point value, so let’s keep this regular expression simple.\n\tvar regexNull = /\\\\x00([^0123456789]|$)/g;\n\n\tvar object = {};\n\tvar hasOwnProperty = object.hasOwnProperty;\n\tvar extend = function(destination, source) {\n\t\tvar key;\n\t\tfor (key in source) {\n\t\t\tif (hasOwnProperty.call(source, key)) {\n\t\t\t\tdestination[key] = source[key];\n\t\t\t}\n\t\t}\n\t\treturn destination;\n\t};\n\n\tvar forEach = function(array, callback) {\n\t\tvar index = -1;\n\t\tvar length = array.length;\n\t\twhile (++index < length) {\n\t\t\tcallback(array[index], index);\n\t\t}\n\t};\n\n\tvar toString = object.toString;\n\tvar isArray = function(value) {\n\t\treturn toString.call(value) == '[object Array]';\n\t};\n\tvar isNumber = function(value) {\n\t\treturn typeof value == 'number' ||\n\t\t\ttoString.call(value) == '[object Number]';\n\t};\n\n\t// This assumes that `number` is a positive integer that `toString()`s nicely\n\t// (which is the case for all code point values).\n\tvar zeroes = '0000';\n\tvar pad = function(number, totalCharacters) {\n\t\tvar string = String(number);\n\t\treturn string.length < totalCharacters\n\t\t\t? (zeroes + string).slice(-totalCharacters)\n\t\t\t: string;\n\t};\n\n\tvar hex = function(number) {\n\t\treturn Number(number).toString(16).toUpperCase();\n\t};\n\n\tvar slice = [].slice;\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar dataFromCodePoints = function(codePoints) {\n\t\tvar index = -1;\n\t\tvar length = codePoints.length;\n\t\tvar max = length - 1;\n\t\tvar result = [];\n\t\tvar isStart = true;\n\t\tvar tmp;\n\t\tvar previous = 0;\n\t\twhile (++index < length) {\n\t\t\ttmp = codePoints[index];\n\t\t\tif (isStart) {\n\t\t\t\tresult.push(tmp);\n\t\t\t\tprevious = tmp;\n\t\t\t\tisStart = false;\n\t\t\t} else {\n\t\t\t\tif (tmp == previous + 1) {\n\t\t\t\t\tif (index != max) {\n\t\t\t\t\t\tprevious = tmp;\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tisStart = true;\n\t\t\t\t\t\tresult.push(tmp + 1);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// End the previous range and start a new one.\n\t\t\t\t\tresult.push(previous + 1, tmp);\n\t\t\t\t\tprevious = tmp;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (!isStart) {\n\t\t\tresult.push(tmp + 1);\n\t\t}\n\t\treturn result;\n\t};\n\n\tvar dataRemove = function(data, codePoint) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar length = data.length;\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1];\n\t\t\tif (codePoint >= start && codePoint < end) {\n\t\t\t\t// Modify this pair.\n\t\t\t\tif (codePoint == start) {\n\t\t\t\t\tif (end == start + 1) {\n\t\t\t\t\t\t// Just remove `start` and `end`.\n\t\t\t\t\t\tdata.splice(index, 2);\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Just replace `start` with a new value.\n\t\t\t\t\t\tdata[index] = codePoint + 1;\n\t\t\t\t\t\treturn data;\n\t\t\t\t\t}\n\t\t\t\t} else if (codePoint == end - 1) {\n\t\t\t\t\t// Just replace `end` with a new value.\n\t\t\t\t\tdata[index + 1] = codePoint;\n\t\t\t\t\treturn data;\n\t\t\t\t} else {\n\t\t\t\t\t// Replace `[start, end]` with `[startA, endA, startB, endB]`.\n\t\t\t\t\tdata.splice(index, 2, start, codePoint, codePoint + 1, end);\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn data;\n\t};\n\n\tvar dataRemoveRange = function(data, rangeStart, rangeEnd) {\n\t\tif (rangeEnd < rangeStart) {\n\t\t\tthrow Error(ERRORS.rangeOrder);\n\t\t}\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\twhile (index < data.length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n\t\t\t// Exit as soon as no more matching pairs can be found.\n\t\t\tif (start > rangeEnd) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\t// Check if this range pair is equal to, or forms a subset of, the range\n\t\t\t// to be removed.\n\t\t\t// E.g. we have `[0, 11, 40, 51]` and want to remove 0-10 → `[40, 51]`.\n\t\t\t// E.g. we have `[40, 51]` and want to remove 0-100 → `[]`.\n\t\t\tif (rangeStart <= start && rangeEnd >= end) {\n\t\t\t\t// Remove this pair.\n\t\t\t\tdata.splice(index, 2);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check if both `rangeStart` and `rangeEnd` are within the bounds of\n\t\t\t// this pair.\n\t\t\t// E.g. we have `[0, 11]` and want to remove 4-6 → `[0, 4, 7, 11]`.\n\t\t\tif (rangeStart >= start && rangeEnd < end) {\n\t\t\t\tif (rangeStart == start) {\n\t\t\t\t\t// Replace `[start, end]` with `[startB, endB]`.\n\t\t\t\t\tdata[index] = rangeEnd + 1;\n\t\t\t\t\tdata[index + 1] = end + 1;\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\t// Replace `[start, end]` with `[startA, endA, startB, endB]`.\n\t\t\t\tdata.splice(index, 2, start, rangeStart, rangeEnd + 1, end + 1);\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\t// Check if only `rangeStart` is within the bounds of this pair.\n\t\t\t// E.g. we have `[0, 11]` and want to remove 4-20 → `[0, 4]`.\n\t\t\tif (rangeStart >= start && rangeStart <= end) {\n\t\t\t\t// Replace `end` with `rangeStart`.\n\t\t\t\tdata[index + 1] = rangeStart;\n\t\t\t\t// Note: we cannot `return` just yet, in case any following pairs still\n\t\t\t\t// contain matching code points.\n\t\t\t\t// E.g. we have `[0, 11, 14, 31]` and want to remove 4-20\n\t\t\t\t// → `[0, 4, 21, 31]`.\n\t\t\t}\n\n\t\t\t// Check if only `rangeEnd` is within the bounds of this pair.\n\t\t\t// E.g. we have `[14, 31]` and want to remove 4-20 → `[21, 31]`.\n\t\t\telse if (rangeEnd >= start && rangeEnd <= end) {\n\t\t\t\t// Just replace `start`.\n\t\t\t\tdata[index] = rangeEnd + 1;\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tindex += 2;\n\t\t}\n\t\treturn data;\n\t};\n\n\t var dataAdd = function(data, codePoint) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar lastIndex = null;\n\t\tvar length = data.length;\n\t\tif (codePoint < 0x0 || codePoint > 0x10FFFF) {\n\t\t\tthrow RangeError(ERRORS.codePointRange);\n\t\t}\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1];\n\n\t\t\t// Check if the code point is already in the set.\n\t\t\tif (codePoint >= start && codePoint < end) {\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif (codePoint == start - 1) {\n\t\t\t\t// Just replace `start` with a new value.\n\t\t\t\tdata[index] = codePoint;\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\t// At this point, if `start` is `greater` than `codePoint`, insert a new\n\t\t\t// `[start, end]` pair before the current pair, or after the current pair\n\t\t\t// if there is a known `lastIndex`.\n\t\t\tif (start > codePoint) {\n\t\t\t\tdata.splice(\n\t\t\t\t\tlastIndex != null ? lastIndex + 2 : 0,\n\t\t\t\t\t0,\n\t\t\t\t\tcodePoint,\n\t\t\t\t\tcodePoint + 1\n\t\t\t\t);\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\tif (codePoint == end) {\n\t\t\t\t// Check if adding this code point causes two separate ranges to become\n\t\t\t\t// a single range, e.g. `dataAdd([0, 4, 5, 10], 4)` → `[0, 10]`.\n\t\t\t\tif (codePoint + 1 == data[index + 2]) {\n\t\t\t\t\tdata.splice(index, 4, start, data[index + 3]);\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\t\t\t\t// Else, just replace `end` with a new value.\n\t\t\t\tdata[index + 1] = codePoint + 1;\n\t\t\t\treturn data;\n\t\t\t}\n\t\t\tlastIndex = index;\n\t\t\tindex += 2;\n\t\t}\n\t\t// The loop has finished; add the new pair to the end of the data set.\n\t\tdata.push(codePoint, codePoint + 1);\n\t\treturn data;\n\t};\n\n\tvar dataAddData = function(dataA, dataB) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar data = dataA.slice();\n\t\tvar length = dataB.length;\n\t\twhile (index < length) {\n\t\t\tstart = dataB[index];\n\t\t\tend = dataB[index + 1] - 1;\n\t\t\tif (start == end) {\n\t\t\t\tdata = dataAdd(data, start);\n\t\t\t} else {\n\t\t\t\tdata = dataAddRange(data, start, end);\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn data;\n\t};\n\n\tvar dataRemoveData = function(dataA, dataB) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar data = dataA.slice();\n\t\tvar length = dataB.length;\n\t\twhile (index < length) {\n\t\t\tstart = dataB[index];\n\t\t\tend = dataB[index + 1] - 1;\n\t\t\tif (start == end) {\n\t\t\t\tdata = dataRemove(data, start);\n\t\t\t} else {\n\t\t\t\tdata = dataRemoveRange(data, start, end);\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn data;\n\t};\n\n\tvar dataAddRange = function(data, rangeStart, rangeEnd) {\n\t\tif (rangeEnd < rangeStart) {\n\t\t\tthrow Error(ERRORS.rangeOrder);\n\t\t}\n\t\tif (\n\t\t\trangeStart < 0x0 || rangeStart > 0x10FFFF ||\n\t\t\trangeEnd < 0x0 || rangeEnd > 0x10FFFF\n\t\t) {\n\t\t\tthrow RangeError(ERRORS.codePointRange);\n\t\t}\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar added = false;\n\t\tvar length = data.length;\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1];\n\n\t\t\tif (added) {\n\t\t\t\t// The range has already been added to the set; at this point, we just\n\t\t\t\t// need to get rid of the following ranges in case they overlap.\n\n\t\t\t\t// Check if this range can be combined with the previous range.\n\t\t\t\tif (start == rangeEnd + 1) {\n\t\t\t\t\tdata.splice(index - 1, 2);\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Exit as soon as no more possibly overlapping pairs can be found.\n\t\t\t\tif (start > rangeEnd) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// E.g. `[0, 11, 12, 16]` and we’ve added 5-15, so we now have\n\t\t\t\t// `[0, 16, 12, 16]`. Remove the `12,16` part, as it lies within the\n\t\t\t\t// `0,16` range that was previously added.\n\t\t\t\tif (start >= rangeStart && start <= rangeEnd) {\n\t\t\t\t\t// `start` lies within the range that was previously added.\n\n\t\t\t\t\tif (end > rangeStart && end - 1 <= rangeEnd) {\n\t\t\t\t\t\t// `end` lies within the range that was previously added as well,\n\t\t\t\t\t\t// so remove this pair.\n\t\t\t\t\t\tdata.splice(index, 2);\n\t\t\t\t\t\tindex -= 2;\n\t\t\t\t\t\t// Note: we cannot `return` just yet, as there may still be other\n\t\t\t\t\t\t// overlapping pairs.\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// `start` lies within the range that was previously added, but\n\t\t\t\t\t\t// `end` doesn’t. E.g. `[0, 11, 12, 31]` and we’ve added 5-15, so\n\t\t\t\t\t\t// now we have `[0, 16, 12, 31]`. This must be written as `[0, 31]`.\n\t\t\t\t\t\t// Remove the previously added `end` and the current `start`.\n\t\t\t\t\t\tdata.splice(index - 1, 2);\n\t\t\t\t\t\tindex -= 2;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Note: we cannot return yet.\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\telse if (start == rangeEnd + 1 || start == rangeEnd) {\n\t\t\t\tdata[index] = rangeStart;\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\t// Check if a new pair must be inserted *before* the current one.\n\t\t\telse if (start > rangeEnd) {\n\t\t\t\tdata.splice(index, 0, rangeStart, rangeEnd + 1);\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\telse if (rangeStart >= start && rangeStart < end && rangeEnd + 1 <= end) {\n\t\t\t\t// The new range lies entirely within an existing range pair. No action\n\t\t\t\t// needed.\n\t\t\t\treturn data;\n\t\t\t}\n\n\t\t\telse if (\n\t\t\t\t// E.g. `[0, 11]` and you add 5-15 → `[0, 16]`.\n\t\t\t\t(rangeStart >= start && rangeStart < end) ||\n\t\t\t\t// E.g. `[0, 3]` and you add 3-6 → `[0, 7]`.\n\t\t\t\tend == rangeStart\n\t\t\t) {\n\t\t\t\t// Replace `end` with the new value.\n\t\t\t\tdata[index + 1] = rangeEnd + 1;\n\t\t\t\t// Make sure the next range pair doesn’t overlap, e.g. `[0, 11, 12, 14]`\n\t\t\t\t// and you add 5-15 → `[0, 16]`, i.e. remove the `12,14` part.\n\t\t\t\tadded = true;\n\t\t\t\t// Note: we cannot `return` just yet.\n\t\t\t}\n\n\t\t\telse if (rangeStart <= start && rangeEnd + 1 >= end) {\n\t\t\t\t// The new range is a superset of the old range.\n\t\t\t\tdata[index] = rangeStart;\n\t\t\t\tdata[index + 1] = rangeEnd + 1;\n\t\t\t\tadded = true;\n\t\t\t}\n\n\t\t\tindex += 2;\n\t\t}\n\t\t// The loop has finished without doing anything; add the new pair to the end\n\t\t// of the data set.\n\t\tif (!added) {\n\t\t\tdata.push(rangeStart, rangeEnd + 1);\n\t\t}\n\t\treturn data;\n\t};\n\n\tvar dataContains = function(data, codePoint) {\n\t\tvar index = 0;\n\t\tvar length = data.length;\n\t\t// Exit early if `codePoint` is not within `data`’s overall range.\n\t\tvar start = data[index];\n\t\tvar end = data[length - 1];\n\t\tif (length >= 2) {\n\t\t\tif (codePoint < start || codePoint > end) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1];\n\t\t\tif (codePoint >= start && codePoint < end) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn false;\n\t};\n\n\tvar dataIntersection = function(data, codePoints) {\n\t\tvar index = 0;\n\t\tvar length = codePoints.length;\n\t\tvar codePoint;\n\t\tvar result = [];\n\t\twhile (index < length) {\n\t\t\tcodePoint = codePoints[index];\n\t\t\tif (dataContains(data, codePoint)) {\n\t\t\t\tresult.push(codePoint);\n\t\t\t}\n\t\t\t++index;\n\t\t}\n\t\treturn dataFromCodePoints(result);\n\t};\n\n\tvar dataIsEmpty = function(data) {\n\t\treturn !data.length;\n\t};\n\n\tvar dataIsSingleton = function(data) {\n\t\t// Check if the set only represents a single code point.\n\t\treturn data.length == 2 && data[0] + 1 == data[1];\n\t};\n\n\tvar dataToArray = function(data) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar result = [];\n\t\tvar length = data.length;\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1];\n\t\t\twhile (start < end) {\n\t\t\t\tresult.push(start);\n\t\t\t\t++start;\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn result;\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\tvar floor = Math.floor;\n\tvar highSurrogate = function(codePoint) {\n\t\treturn parseInt(\n\t\t\tfloor((codePoint - 0x10000) / 0x400) + HIGH_SURROGATE_MIN,\n\t\t\t10\n\t\t);\n\t};\n\n\tvar lowSurrogate = function(codePoint) {\n\t\treturn parseInt(\n\t\t\t(codePoint - 0x10000) % 0x400 + LOW_SURROGATE_MIN,\n\t\t\t10\n\t\t);\n\t};\n\n\tvar stringFromCharCode = String.fromCharCode;\n\tvar codePointToString = function(codePoint) {\n\t\tvar string;\n\t\t// https://mathiasbynens.be/notes/javascript-escapes#single\n\t\t// Note: the `\\b` escape sequence for U+0008 BACKSPACE in strings has a\n\t\t// different meaning in regular expressions (word boundary), so it cannot\n\t\t// be used here.\n\t\tif (codePoint == 0x09) {\n\t\t\tstring = '\\\\t';\n\t\t}\n\t\t// Note: IE < 9 treats `'\\v'` as `'v'`, so avoid using it.\n\t\t// else if (codePoint == 0x0B) {\n\t\t// \tstring = '\\\\v';\n\t\t// }\n\t\telse if (codePoint == 0x0A) {\n\t\t\tstring = '\\\\n';\n\t\t}\n\t\telse if (codePoint == 0x0C) {\n\t\t\tstring = '\\\\f';\n\t\t}\n\t\telse if (codePoint == 0x0D) {\n\t\t\tstring = '\\\\r';\n\t\t}\n\t\telse if (codePoint == 0x2D) {\n\t\t\t// https://mathiasbynens.be/notes/javascript-escapes#hexadecimal\n\t\t\t// Note: `-` (U+002D HYPHEN-MINUS) is escaped in this way rather\n\t\t\t// than by backslash-escaping, in case the output is used outside\n\t\t\t// of a character class in a `u` RegExp. /\\-/u throws, but\n\t\t\t// /\\x2D/u is fine.\n\t\t\tstring = '\\\\x2D';\n\t\t}\n\t\telse if (codePoint == 0x5C) {\n\t\t\tstring = '\\\\\\\\';\n\t\t}\n\t\telse if (\n\t\t\tcodePoint == 0x24 ||\n\t\t\t(codePoint >= 0x28 && codePoint <= 0x2B) ||\n\t\t\tcodePoint == 0x2E || codePoint == 0x2F ||\n\t\t\tcodePoint == 0x3F ||\n\t\t\t(codePoint >= 0x5B && codePoint <= 0x5E) ||\n\t\t\t(codePoint >= 0x7B && codePoint <= 0x7D)\n\t\t) {\n\t\t\t// The code point maps to an unsafe printable ASCII character;\n\t\t\t// backslash-escape it. Here’s the list of those symbols:\n\t\t\t//\n\t\t\t// $()*+./?[\\]^{|}\n\t\t\t//\n\t\t\t// This matches SyntaxCharacters as well as `/` (U+002F SOLIDUS).\n\t\t\t// https://tc39.github.io/ecma262/#prod-SyntaxCharacter\n\t\t\tstring = '\\\\' + stringFromCharCode(codePoint);\n\t\t}\n\t\telse if (codePoint >= 0x20 && codePoint <= 0x7E) {\n\t\t\t// The code point maps to one of these printable ASCII symbols\n\t\t\t// (including the space character):\n\t\t\t//\n\t\t\t// !\"#%&',/0123456789:;<=>@ABCDEFGHIJKLMNO\n\t\t\t// PQRSTUVWXYZ_`abcdefghijklmnopqrstuvwxyz~\n\t\t\t//\n\t\t\t// These can safely be used directly.\n\t\t\tstring = stringFromCharCode(codePoint);\n\t\t}\n\t\telse if (codePoint <= 0xFF) {\n\t\t\tstring = '\\\\x' + pad(hex(codePoint), 2);\n\t\t}\n\t\telse { // `codePoint <= 0xFFFF` holds true.\n\t\t\t// https://mathiasbynens.be/notes/javascript-escapes#unicode\n\t\t\tstring = '\\\\u' + pad(hex(codePoint), 4);\n\t\t}\n\n\t\t// There’s no need to account for astral symbols / surrogate pairs here,\n\t\t// since `codePointToString` is private and only used for BMP code points.\n\t\t// But if that’s what you need, just add an `else` block with this code:\n\t\t//\n\t\t// string = '\\\\u' + pad(hex(highSurrogate(codePoint)), 4)\n\t\t// \t+ '\\\\u' + pad(hex(lowSurrogate(codePoint)), 4);\n\n\t\treturn string;\n\t};\n\n\tvar codePointToStringUnicode = function(codePoint) {\n\t\tif (codePoint <= 0xFFFF) {\n\t\t\treturn codePointToString(codePoint);\n\t\t}\n\t\treturn '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n\t};\n\n\tvar symbolToCodePoint = function(symbol) {\n\t\tvar length = symbol.length;\n\t\tvar first = symbol.charCodeAt(0);\n\t\tvar second;\n\t\tif (\n\t\t\tfirst >= HIGH_SURROGATE_MIN && first <= HIGH_SURROGATE_MAX &&\n\t\t\tlength > 1 // There is a next code unit.\n\t\t) {\n\t\t\t// `first` is a high surrogate, and there is a next character. Assume\n\t\t\t// it’s a low surrogate (else it’s invalid usage of Regenerate anyway).\n\t\t\tsecond = symbol.charCodeAt(1);\n\t\t\t// https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n\t\t\treturn (first - HIGH_SURROGATE_MIN) * 0x400 +\n\t\t\t\tsecond - LOW_SURROGATE_MIN + 0x10000;\n\t\t}\n\t\treturn first;\n\t};\n\n\tvar createBMPCharacterClasses = function(data) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar result = '';\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar length = data.length;\n\t\tif (dataIsSingleton(data)) {\n\t\t\treturn codePointToString(data[0]);\n\t\t}\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\t\t\tif (start == end) {\n\t\t\t\tresult += codePointToString(start);\n\t\t\t} else if (start + 1 == end) {\n\t\t\t\tresult += codePointToString(start) + codePointToString(end);\n\t\t\t} else {\n\t\t\t\tresult += codePointToString(start) + '-' + codePointToString(end);\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn '[' + result + ']';\n\t};\n\n\tvar createUnicodeCharacterClasses = function(data) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar result = '';\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar length = data.length;\n\t\tif (dataIsSingleton(data)) {\n\t\t\treturn codePointToStringUnicode(data[0]);\n\t\t}\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\t\t\tif (start == end) {\n\t\t\t\tresult += codePointToStringUnicode(start);\n\t\t\t} else if (start + 1 == end) {\n\t\t\t\tresult += codePointToStringUnicode(start) + codePointToStringUnicode(end);\n\t\t\t} else {\n\t\t\t\tresult += codePointToStringUnicode(start) + '-' + codePointToStringUnicode(end);\n\t\t\t}\n\t\t\tindex += 2;\n\t\t}\n\t\treturn '[' + result + ']';\n\t};\n\n\tvar splitAtBMP = function(data) {\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar loneHighSurrogates = [];\n\t\tvar loneLowSurrogates = [];\n\t\tvar bmp = [];\n\t\tvar astral = [];\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar length = data.length;\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1] - 1; // Note: the `- 1` makes `end` inclusive.\n\n\t\t\tif (start < HIGH_SURROGATE_MIN) {\n\n\t\t\t\t// The range starts and ends before the high surrogate range.\n\t\t\t\t// E.g. (0, 0x10).\n\t\t\t\tif (end < HIGH_SURROGATE_MIN) {\n\t\t\t\t\tbmp.push(start, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts before the high surrogate range and ends within it.\n\t\t\t\t// E.g. (0, 0xD855).\n\t\t\t\tif (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n\t\t\t\t\tbmp.push(start, HIGH_SURROGATE_MIN);\n\t\t\t\t\tloneHighSurrogates.push(HIGH_SURROGATE_MIN, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts before the high surrogate range and ends in the low\n\t\t\t\t// surrogate range. E.g. (0, 0xDCFF).\n\t\t\t\tif (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n\t\t\t\t\tbmp.push(start, HIGH_SURROGATE_MIN);\n\t\t\t\t\tloneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n\t\t\t\t\tloneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts before the high surrogate range and ends after the\n\t\t\t\t// low surrogate range. E.g. (0, 0x10FFFF).\n\t\t\t\tif (end > LOW_SURROGATE_MAX) {\n\t\t\t\t\tbmp.push(start, HIGH_SURROGATE_MIN);\n\t\t\t\t\tloneHighSurrogates.push(HIGH_SURROGATE_MIN, HIGH_SURROGATE_MAX + 1);\n\t\t\t\t\tloneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\t\t\t\t\tif (end <= 0xFFFF) {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n\t\t\t\t\t\tastral.push(0xFFFF + 1, end + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else if (start >= HIGH_SURROGATE_MIN && start <= HIGH_SURROGATE_MAX) {\n\n\t\t\t\t// The range starts and ends in the high surrogate range.\n\t\t\t\t// E.g. (0xD855, 0xD866).\n\t\t\t\tif (end >= HIGH_SURROGATE_MIN && end <= HIGH_SURROGATE_MAX) {\n\t\t\t\t\tloneHighSurrogates.push(start, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts in the high surrogate range and ends in the low\n\t\t\t\t// surrogate range. E.g. (0xD855, 0xDCFF).\n\t\t\t\tif (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n\t\t\t\t\tloneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n\t\t\t\t\tloneLowSurrogates.push(LOW_SURROGATE_MIN, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts in the high surrogate range and ends after the low\n\t\t\t\t// surrogate range. E.g. (0xD855, 0x10FFFF).\n\t\t\t\tif (end > LOW_SURROGATE_MAX) {\n\t\t\t\t\tloneHighSurrogates.push(start, HIGH_SURROGATE_MAX + 1);\n\t\t\t\t\tloneLowSurrogates.push(LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1);\n\t\t\t\t\tif (end <= 0xFFFF) {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n\t\t\t\t\t\tastral.push(0xFFFF + 1, end + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else if (start >= LOW_SURROGATE_MIN && start <= LOW_SURROGATE_MAX) {\n\n\t\t\t\t// The range starts and ends in the low surrogate range.\n\t\t\t\t// E.g. (0xDCFF, 0xDDFF).\n\t\t\t\tif (end >= LOW_SURROGATE_MIN && end <= LOW_SURROGATE_MAX) {\n\t\t\t\t\tloneLowSurrogates.push(start, end + 1);\n\t\t\t\t}\n\n\t\t\t\t// The range starts in the low surrogate range and ends after the low\n\t\t\t\t// surrogate range. E.g. (0xDCFF, 0x10FFFF).\n\t\t\t\tif (end > LOW_SURROGATE_MAX) {\n\t\t\t\t\tloneLowSurrogates.push(start, LOW_SURROGATE_MAX + 1);\n\t\t\t\t\tif (end <= 0xFFFF) {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, end + 1);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbmp.push(LOW_SURROGATE_MAX + 1, 0xFFFF + 1);\n\t\t\t\t\t\tastral.push(0xFFFF + 1, end + 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t} else if (start > LOW_SURROGATE_MAX && start <= 0xFFFF) {\n\n\t\t\t\t// The range starts and ends after the low surrogate range.\n\t\t\t\t// E.g. (0xFFAA, 0x10FFFF).\n\t\t\t\tif (end <= 0xFFFF) {\n\t\t\t\t\tbmp.push(start, end + 1);\n\t\t\t\t} else {\n\t\t\t\t\tbmp.push(start, 0xFFFF + 1);\n\t\t\t\t\tastral.push(0xFFFF + 1, end + 1);\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t// The range starts and ends in the astral range.\n\t\t\t\tastral.push(start, end + 1);\n\n\t\t\t}\n\n\t\t\tindex += 2;\n\t\t}\n\t\treturn {\n\t\t\t'loneHighSurrogates': loneHighSurrogates,\n\t\t\t'loneLowSurrogates': loneLowSurrogates,\n\t\t\t'bmp': bmp,\n\t\t\t'astral': astral\n\t\t};\n\t};\n\n\tvar optimizeSurrogateMappings = function(surrogateMappings) {\n\t\tvar result = [];\n\t\tvar tmpLow = [];\n\t\tvar addLow = false;\n\t\tvar mapping;\n\t\tvar nextMapping;\n\t\tvar highSurrogates;\n\t\tvar lowSurrogates;\n\t\tvar nextHighSurrogates;\n\t\tvar nextLowSurrogates;\n\t\tvar index = -1;\n\t\tvar length = surrogateMappings.length;\n\t\twhile (++index < length) {\n\t\t\tmapping = surrogateMappings[index];\n\t\t\tnextMapping = surrogateMappings[index + 1];\n\t\t\tif (!nextMapping) {\n\t\t\t\tresult.push(mapping);\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\thighSurrogates = mapping[0];\n\t\t\tlowSurrogates = mapping[1];\n\t\t\tnextHighSurrogates = nextMapping[0];\n\t\t\tnextLowSurrogates = nextMapping[1];\n\n\t\t\t// Check for identical high surrogate ranges.\n\t\t\ttmpLow = lowSurrogates;\n\t\t\twhile (\n\t\t\t\tnextHighSurrogates &&\n\t\t\t\thighSurrogates[0] == nextHighSurrogates[0] &&\n\t\t\t\thighSurrogates[1] == nextHighSurrogates[1]\n\t\t\t) {\n\t\t\t\t// Merge with the next item.\n\t\t\t\tif (dataIsSingleton(nextLowSurrogates)) {\n\t\t\t\t\ttmpLow = dataAdd(tmpLow, nextLowSurrogates[0]);\n\t\t\t\t} else {\n\t\t\t\t\ttmpLow = dataAddRange(\n\t\t\t\t\t\ttmpLow,\n\t\t\t\t\t\tnextLowSurrogates[0],\n\t\t\t\t\t\tnextLowSurrogates[1] - 1\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\t++index;\n\t\t\t\tmapping = surrogateMappings[index];\n\t\t\t\thighSurrogates = mapping[0];\n\t\t\t\tlowSurrogates = mapping[1];\n\t\t\t\tnextMapping = surrogateMappings[index + 1];\n\t\t\t\tnextHighSurrogates = nextMapping && nextMapping[0];\n\t\t\t\tnextLowSurrogates = nextMapping && nextMapping[1];\n\t\t\t\taddLow = true;\n\t\t\t}\n\t\t\tresult.push([\n\t\t\t\thighSurrogates,\n\t\t\t\taddLow ? tmpLow : lowSurrogates\n\t\t\t]);\n\t\t\taddLow = false;\n\t\t}\n\t\treturn optimizeByLowSurrogates(result);\n\t};\n\n\tvar optimizeByLowSurrogates = function(surrogateMappings) {\n\t\tif (surrogateMappings.length == 1) {\n\t\t\treturn surrogateMappings;\n\t\t}\n\t\tvar index = -1;\n\t\tvar innerIndex = -1;\n\t\twhile (++index < surrogateMappings.length) {\n\t\t\tvar mapping = surrogateMappings[index];\n\t\t\tvar lowSurrogates = mapping[1];\n\t\t\tvar lowSurrogateStart = lowSurrogates[0];\n\t\t\tvar lowSurrogateEnd = lowSurrogates[1];\n\t\t\tinnerIndex = index; // Note: the loop starts at the next index.\n\t\t\twhile (++innerIndex < surrogateMappings.length) {\n\t\t\t\tvar otherMapping = surrogateMappings[innerIndex];\n\t\t\t\tvar otherLowSurrogates = otherMapping[1];\n\t\t\t\tvar otherLowSurrogateStart = otherLowSurrogates[0];\n\t\t\t\tvar otherLowSurrogateEnd = otherLowSurrogates[1];\n\t\t\t\tif (\n\t\t\t\t\tlowSurrogateStart == otherLowSurrogateStart &&\n\t\t\t\t\tlowSurrogateEnd == otherLowSurrogateEnd &&\n\t\t\t\t\totherLowSurrogates.length === 2\n\t\t\t\t) {\n\t\t\t\t\t// Add the code points in the other item to this one.\n\t\t\t\t\tif (dataIsSingleton(otherMapping[0])) {\n\t\t\t\t\t\tmapping[0] = dataAdd(mapping[0], otherMapping[0][0]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tmapping[0] = dataAddRange(\n\t\t\t\t\t\t\tmapping[0],\n\t\t\t\t\t\t\totherMapping[0][0],\n\t\t\t\t\t\t\totherMapping[0][1] - 1\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\t// Remove the other, now redundant, item.\n\t\t\t\t\tsurrogateMappings.splice(innerIndex, 1);\n\t\t\t\t\t--innerIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn surrogateMappings;\n\t};\n\n\tvar surrogateSet = function(data) {\n\t\t// Exit early if `data` is an empty set.\n\t\tif (!data.length) {\n\t\t\treturn [];\n\t\t}\n\n\t\t// Iterate over the data per `(start, end)` pair.\n\t\tvar index = 0;\n\t\tvar start;\n\t\tvar end;\n\t\tvar startHigh;\n\t\tvar startLow;\n\t\tvar endHigh;\n\t\tvar endLow;\n\t\tvar surrogateMappings = [];\n\t\tvar length = data.length;\n\t\twhile (index < length) {\n\t\t\tstart = data[index];\n\t\t\tend = data[index + 1] - 1;\n\n\t\t\tstartHigh = highSurrogate(start);\n\t\t\tstartLow = lowSurrogate(start);\n\t\t\tendHigh = highSurrogate(end);\n\t\t\tendLow = lowSurrogate(end);\n\n\t\t\tvar startsWithLowestLowSurrogate = startLow == LOW_SURROGATE_MIN;\n\t\t\tvar endsWithHighestLowSurrogate = endLow == LOW_SURROGATE_MAX;\n\t\t\tvar complete = false;\n\n\t\t\t// Append the previous high-surrogate-to-low-surrogate mappings.\n\t\t\t// Step 1: `(startHigh, startLow)` to `(startHigh, LOW_SURROGATE_MAX)`.\n\t\t\tif (\n\t\t\t\tstartHigh == endHigh ||\n\t\t\t\tstartsWithLowestLowSurrogate && endsWithHighestLowSurrogate\n\t\t\t) {\n\t\t\t\tsurrogateMappings.push([\n\t\t\t\t\t[startHigh, endHigh + 1],\n\t\t\t\t\t[startLow, endLow + 1]\n\t\t\t\t]);\n\t\t\t\tcomplete = true;\n\t\t\t} else {\n\t\t\t\tsurrogateMappings.push([\n\t\t\t\t\t[startHigh, startHigh + 1],\n\t\t\t\t\t[startLow, LOW_SURROGATE_MAX + 1]\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\t// Step 2: `(startHigh + 1, LOW_SURROGATE_MIN)` to\n\t\t\t// `(endHigh - 1, LOW_SURROGATE_MAX)`.\n\t\t\tif (!complete && startHigh + 1 < endHigh) {\n\t\t\t\tif (endsWithHighestLowSurrogate) {\n\t\t\t\t\t// Combine step 2 and step 3.\n\t\t\t\t\tsurrogateMappings.push([\n\t\t\t\t\t\t[startHigh + 1, endHigh + 1],\n\t\t\t\t\t\t[LOW_SURROGATE_MIN, endLow + 1]\n\t\t\t\t\t]);\n\t\t\t\t\tcomplete = true;\n\t\t\t\t} else {\n\t\t\t\t\tsurrogateMappings.push([\n\t\t\t\t\t\t[startHigh + 1, endHigh],\n\t\t\t\t\t\t[LOW_SURROGATE_MIN, LOW_SURROGATE_MAX + 1]\n\t\t\t\t\t]);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Step 3. `(endHigh, LOW_SURROGATE_MIN)` to `(endHigh, endLow)`.\n\t\t\tif (!complete) {\n\t\t\t\tsurrogateMappings.push([\n\t\t\t\t\t[endHigh, endHigh + 1],\n\t\t\t\t\t[LOW_SURROGATE_MIN, endLow + 1]\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tindex += 2;\n\t\t}\n\n\t\t// The format of `surrogateMappings` is as follows:\n\t\t//\n\t\t// [ surrogateMapping1, surrogateMapping2 ]\n\t\t//\n\t\t// i.e.:\n\t\t//\n\t\t// [\n\t\t// [ highSurrogates1, lowSurrogates1 ],\n\t\t// [ highSurrogates2, lowSurrogates2 ]\n\t\t// ]\n\t\treturn optimizeSurrogateMappings(surrogateMappings);\n\t};\n\n\tvar createSurrogateCharacterClasses = function(surrogateMappings) {\n\t\tvar result = [];\n\t\tforEach(surrogateMappings, function(surrogateMapping) {\n\t\t\tvar highSurrogates = surrogateMapping[0];\n\t\t\tvar lowSurrogates = surrogateMapping[1];\n\t\t\tresult.push(\n\t\t\t\tcreateBMPCharacterClasses(highSurrogates) +\n\t\t\t\tcreateBMPCharacterClasses(lowSurrogates)\n\t\t\t);\n\t\t});\n\t\treturn result.join('|');\n\t};\n\n\tvar createCharacterClassesFromData = function(data, bmpOnly, hasUnicodeFlag) {\n\t\tif (hasUnicodeFlag) {\n\t\t\treturn createUnicodeCharacterClasses(data);\n\t\t}\n\t\tvar result = [];\n\n\t\tvar parts = splitAtBMP(data);\n\t\tvar loneHighSurrogates = parts.loneHighSurrogates;\n\t\tvar loneLowSurrogates = parts.loneLowSurrogates;\n\t\tvar bmp = parts.bmp;\n\t\tvar astral = parts.astral;\n\t\tvar hasLoneHighSurrogates = !dataIsEmpty(loneHighSurrogates);\n\t\tvar hasLoneLowSurrogates = !dataIsEmpty(loneLowSurrogates);\n\n\t\tvar surrogateMappings = surrogateSet(astral);\n\n\t\tif (bmpOnly) {\n\t\t\tbmp = dataAddData(bmp, loneHighSurrogates);\n\t\t\thasLoneHighSurrogates = false;\n\t\t\tbmp = dataAddData(bmp, loneLowSurrogates);\n\t\t\thasLoneLowSurrogates = false;\n\t\t}\n\n\t\tif (!dataIsEmpty(bmp)) {\n\t\t\t// The data set contains BMP code points that are not high surrogates\n\t\t\t// needed for astral code points in the set.\n\t\t\tresult.push(createBMPCharacterClasses(bmp));\n\t\t}\n\t\tif (surrogateMappings.length) {\n\t\t\t// The data set contains astral code points; append character classes\n\t\t\t// based on their surrogate pairs.\n\t\t\tresult.push(createSurrogateCharacterClasses(surrogateMappings));\n\t\t}\n\t\t// https://gist.github.com/mathiasbynens/bbe7f870208abcfec860\n\t\tif (hasLoneHighSurrogates) {\n\t\t\tresult.push(\n\t\t\t\tcreateBMPCharacterClasses(loneHighSurrogates) +\n\t\t\t\t// Make sure the high surrogates aren’t part of a surrogate pair.\n\t\t\t\t'(?![\\\\uDC00-\\\\uDFFF])'\n\t\t\t);\n\t\t}\n\t\tif (hasLoneLowSurrogates) {\n\t\t\tresult.push(\n\t\t\t\t// It is not possible to accurately assert the low surrogates aren’t\n\t\t\t\t// part of a surrogate pair, since JavaScript regular expressions do\n\t\t\t\t// not support lookbehind.\n\t\t\t\t'(?:[^\\\\uD800-\\\\uDBFF]|^)' +\n\t\t\t\tcreateBMPCharacterClasses(loneLowSurrogates)\n\t\t\t);\n\t\t}\n\t\treturn result.join('|');\n\t};\n\n\t/*--------------------------------------------------------------------------*/\n\n\t// `regenerate` can be used as a constructor (and new methods can be added to\n\t// its prototype) but also as a regular function, the latter of which is the\n\t// documented and most common usage. For that reason, it’s not capitalized.\n\tvar regenerate = function(value) {\n\t\tif (arguments.length > 1) {\n\t\t\tvalue = slice.call(arguments);\n\t\t}\n\t\tif (this instanceof regenerate) {\n\t\t\tthis.data = [];\n\t\t\treturn value ? this.add(value) : this;\n\t\t}\n\t\treturn (new regenerate).add(value);\n\t};\n\n\tregenerate.version = '1.4.2';\n\n\tvar proto = regenerate.prototype;\n\textend(proto, {\n\t\t'add': function(value) {\n\t\t\tvar $this = this;\n\t\t\tif (value == null) {\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\tif (value instanceof regenerate) {\n\t\t\t\t// Allow passing other Regenerate instances.\n\t\t\t\t$this.data = dataAddData($this.data, value.data);\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tvalue = slice.call(arguments);\n\t\t\t}\n\t\t\tif (isArray(value)) {\n\t\t\t\tforEach(value, function(item) {\n\t\t\t\t\t$this.add(item);\n\t\t\t\t});\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\t$this.data = dataAdd(\n\t\t\t\t$this.data,\n\t\t\t\tisNumber(value) ? value : symbolToCodePoint(value)\n\t\t\t);\n\t\t\treturn $this;\n\t\t},\n\t\t'remove': function(value) {\n\t\t\tvar $this = this;\n\t\t\tif (value == null) {\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\tif (value instanceof regenerate) {\n\t\t\t\t// Allow passing other Regenerate instances.\n\t\t\t\t$this.data = dataRemoveData($this.data, value.data);\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tvalue = slice.call(arguments);\n\t\t\t}\n\t\t\tif (isArray(value)) {\n\t\t\t\tforEach(value, function(item) {\n\t\t\t\t\t$this.remove(item);\n\t\t\t\t});\n\t\t\t\treturn $this;\n\t\t\t}\n\t\t\t$this.data = dataRemove(\n\t\t\t\t$this.data,\n\t\t\t\tisNumber(value) ? value : symbolToCodePoint(value)\n\t\t\t);\n\t\t\treturn $this;\n\t\t},\n\t\t'addRange': function(start, end) {\n\t\t\tvar $this = this;\n\t\t\t$this.data = dataAddRange($this.data,\n\t\t\t\tisNumber(start) ? start : symbolToCodePoint(start),\n\t\t\t\tisNumber(end) ? end : symbolToCodePoint(end)\n\t\t\t);\n\t\t\treturn $this;\n\t\t},\n\t\t'removeRange': function(start, end) {\n\t\t\tvar $this = this;\n\t\t\tvar startCodePoint = isNumber(start) ? start : symbolToCodePoint(start);\n\t\t\tvar endCodePoint = isNumber(end) ? end : symbolToCodePoint(end);\n\t\t\t$this.data = dataRemoveRange(\n\t\t\t\t$this.data,\n\t\t\t\tstartCodePoint,\n\t\t\t\tendCodePoint\n\t\t\t);\n\t\t\treturn $this;\n\t\t},\n\t\t'intersection': function(argument) {\n\t\t\tvar $this = this;\n\t\t\t// Allow passing other Regenerate instances.\n\t\t\t// TODO: Optimize this by writing and using `dataIntersectionData()`.\n\t\t\tvar array = argument instanceof regenerate ?\n\t\t\t\tdataToArray(argument.data) :\n\t\t\t\targument;\n\t\t\t$this.data = dataIntersection($this.data, array);\n\t\t\treturn $this;\n\t\t},\n\t\t'contains': function(codePoint) {\n\t\t\treturn dataContains(\n\t\t\t\tthis.data,\n\t\t\t\tisNumber(codePoint) ? codePoint : symbolToCodePoint(codePoint)\n\t\t\t);\n\t\t},\n\t\t'clone': function() {\n\t\t\tvar set = new regenerate;\n\t\t\tset.data = this.data.slice(0);\n\t\t\treturn set;\n\t\t},\n\t\t'toString': function(options) {\n\t\t\tvar result = createCharacterClassesFromData(\n\t\t\t\tthis.data,\n\t\t\t\toptions ? options.bmpOnly : false,\n\t\t\t\toptions ? options.hasUnicodeFlag : false\n\t\t\t);\n\t\t\tif (!result) {\n\t\t\t\t// For an empty set, return something that can be inserted `/here/` to\n\t\t\t\t// form a valid regular expression. Avoid `(?:)` since that matches the\n\t\t\t\t// empty string.\n\t\t\t\treturn '[]';\n\t\t\t}\n\t\t\t// Use `\\0` instead of `\\x00` where possible.\n\t\t\treturn result.replace(regexNull, '\\\\0$1');\n\t\t},\n\t\t'toRegExp': function(flags) {\n\t\t\tvar pattern = this.toString(\n\t\t\t\tflags && flags.indexOf('u') != -1 ?\n\t\t\t\t\t{ 'hasUnicodeFlag': true } :\n\t\t\t\t\tnull\n\t\t\t);\n\t\t\treturn RegExp(pattern, flags || '');\n\t\t},\n\t\t'valueOf': function() { // Note: `valueOf` is aliased as `toArray`.\n\t\t\treturn dataToArray(this.data);\n\t\t}\n\t});\n\n\tproto.toArray = proto.valueOf;\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn regenerate;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = regenerate;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfreeExports.regenerate = regenerate;\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.regenerate = regenerate;\n\t}\n\n}(this));\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x345, 0x37F, 0x386, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x9B2, 0x9CE, 0x9D7, 0x9FC, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xD4E, 0xDBD, 0xDD6, 0xE4D, 0xE84, 0xEA5, 0xEC6, 0xECD, 0xF00, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8C5, 0xA8FB, 0xA9CF, 0xAAC0, 0xAAC2, 0xFB3E, 0x10808, 0x1083C, 0x10F27, 0x110C2, 0x11176, 0x111DA, 0x111DC, 0x11237, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11640, 0x11644, 0x116B8, 0x11909, 0x119E1, 0x11A9D, 0x11C40, 0x11D3A, 0x11D43, 0x11D98, 0x11FB0, 0x16FE3, 0x1B132, 0x1B155, 0x1BC9E, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E14E, 0x1E947, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5B0, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x657).addRange(0x659, 0x65F).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6E1, 0x6E8).addRange(0x6ED, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x710, 0x73F).addRange(0x74D, 0x7B1).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x817).addRange(0x81A, 0x82C).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x8D4, 0x8DF).addRange(0x8E3, 0x8E9).addRange(0x8F0, 0x93B).addRange(0x93D, 0x94C).addRange(0x94E, 0x950).addRange(0x955, 0x963).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8);\nset.addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BD, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9F0, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4C).addRange(0xA59, 0xA5C).addRange(0xA70, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE3).addRange(0xAF9, 0xAFC).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3D, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB56, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A);\nset.addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3D, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4C).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCC).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3D, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A);\nset.addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB9).addRange(0xEBB, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF83).addRange(0xF88, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1036).addRange(0x103B, 0x103F).addRange(0x1050, 0x108F).addRange(0x109A, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1713).addRange(0x171F, 0x1733).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17B3).addRange(0x17B6, 0x17C8).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B);\nset.addRange(0x1930, 0x1938).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A61, 0x1A74).addRange(0x1ABF, 0x1AC0).addRange(0x1ACC, 0x1ACE).addRange(0x1B00, 0x1B33).addRange(0x1B35, 0x1B43).addRange(0x1B45, 0x1B4C).addRange(0x1B80, 0x1BA9).addRange(0x1BAC, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1BE7, 0x1BF1).addRange(0x1C00, 0x1C36).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1DE7, 0x1DF4).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188);\nset.addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA674, 0xA67B).addRange(0xA67F, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA805).addRange(0xA807, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FF).addRange(0xA90A, 0xA92A).addRange(0xA930, 0xA952).addRange(0xA960, 0xA97C);\nset.addRange(0xA980, 0xA9B2).addRange(0xA9B4, 0xA9BF).addRange(0xA9E0, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAABE).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D);\nset.addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4);\nset.addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11045).addRange(0x11071, 0x11075).addRange(0x11080, 0x110B8).addRange(0x110D0, 0x110E8).addRange(0x11100, 0x11132).addRange(0x11144, 0x11147).addRange(0x11150, 0x11172).addRange(0x11180, 0x111BF).addRange(0x111C1, 0x111C4).addRange(0x111CE, 0x111CF).addRange(0x11200, 0x11211).addRange(0x11213, 0x11234).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112E8).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133D, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134C).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11441).addRange(0x11443, 0x11445).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114C1).addRange(0x114C4, 0x114C5);\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115BE).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x1163E).addRange(0x11680, 0x116B5).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172A).addRange(0x11740, 0x11746).addRange(0x11800, 0x11838).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193C).addRange(0x1193F, 0x11942).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119DF).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A32).addRange(0x11A35, 0x11A3E).addRange(0x11A50, 0x11A97).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C3E).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D41).addRange(0x11D46, 0x11D47).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D96).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F40).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F);\nset.addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734);\nset.addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D);\nset.addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x0, 0x10FFFF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x0, 0x7F);\nexports.characters = set;\n","const set = require('regenerate')(0x38C, 0x85E, 0x9B2, 0x9D7, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1940, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA7D3, 0xFB3E, 0xFDCF, 0xFEFF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x110CD, 0x11288, 0x11350, 0x11357, 0x11909, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E08F, 0x1E2FF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0, 0xE0001);\nset.addRange(0x0, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x600, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x82D).addRange(0x830, 0x83E).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0);\nset.addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9);\nset.addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE3A).addRange(0xE3F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5);\nset.addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1736).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A1B).addRange(0x1A1E, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E).addRange(0x1B80, 0x1BF3).addRange(0x1BFC, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CD0, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D);\nset.addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x2000, 0x2064).addRange(0x2066, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x20D0, 0x20F0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x303F).addRange(0x3041, 0x3096).addRange(0x3099, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9);\nset.addRange(0xA7F2, 0xA82C).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9).addRange(0xA8E0, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAAC2).addRange(0xAADB, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xD800, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFE19).addRange(0xFE20, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD);\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FD).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E0, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939);\nset.addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F27).addRange(0x10F30, 0x10F59).addRange(0x10F70, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075).addRange(0x1107F, 0x110C2).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147).addRange(0x11150, 0x11176).addRange(0x11180, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nset.addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746).addRange(0x11800, 0x1183B).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4).addRange(0x11A00, 0x11A47).addRange(0x11A50, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF8).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5).addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB);\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D1EA).addRange(0x1D200, 0x1D245).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9);\nset.addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887);\nset.addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nexports.characters = set;\n","const set = require('regenerate')(0x61C);\nset.addRange(0x200E, 0x200F).addRange(0x202A, 0x202E).addRange(0x2066, 0x2069);\nexports.characters = set;\n","const set = require('regenerate')(0x3C, 0x3E, 0x5B, 0x5D, 0x7B, 0x7D, 0xAB, 0xBB, 0x2140, 0x2211, 0x2224, 0x2226, 0x2239, 0x2262, 0x2298, 0x27C0, 0x29B8, 0x29C9, 0x29E1, 0x2A24, 0x2A26, 0x2A29, 0x2ADC, 0x2ADE, 0x2AF3, 0x2AFD, 0x2BFE, 0xFF1C, 0xFF1E, 0xFF3B, 0xFF3D, 0xFF5B, 0xFF5D, 0x1D6DB, 0x1D715, 0x1D74F, 0x1D789, 0x1D7C3);\nset.addRange(0x28, 0x29).addRange(0xF3A, 0xF3D).addRange(0x169B, 0x169C).addRange(0x2039, 0x203A).addRange(0x2045, 0x2046).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2201, 0x2204).addRange(0x2208, 0x220D).addRange(0x2215, 0x2216).addRange(0x221A, 0x221D).addRange(0x221F, 0x2222).addRange(0x222B, 0x2233).addRange(0x223B, 0x224C).addRange(0x2252, 0x2255).addRange(0x225F, 0x2260).addRange(0x2264, 0x226B).addRange(0x226E, 0x228C).addRange(0x228F, 0x2292).addRange(0x22A2, 0x22A3).addRange(0x22A6, 0x22B8).addRange(0x22BE, 0x22BF).addRange(0x22C9, 0x22CD).addRange(0x22D0, 0x22D1).addRange(0x22D6, 0x22ED).addRange(0x22F0, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C3, 0x27C6).addRange(0x27C8, 0x27C9).addRange(0x27CB, 0x27CD).addRange(0x27D3, 0x27D6).addRange(0x27DC, 0x27DE).addRange(0x27E2, 0x27EF).addRange(0x2983, 0x2998).addRange(0x299B, 0x29A0).addRange(0x29A2, 0x29AF).addRange(0x29C0, 0x29C5).addRange(0x29CE, 0x29D2).addRange(0x29D4, 0x29D5).addRange(0x29D8, 0x29DC).addRange(0x29E3, 0x29E5).addRange(0x29E8, 0x29E9).addRange(0x29F4, 0x29F9).addRange(0x29FC, 0x29FD).addRange(0x2A0A, 0x2A1C).addRange(0x2A1E, 0x2A21).addRange(0x2A2B, 0x2A2E).addRange(0x2A34, 0x2A35);\nset.addRange(0x2A3C, 0x2A3E).addRange(0x2A57, 0x2A58).addRange(0x2A64, 0x2A65).addRange(0x2A6A, 0x2A6D).addRange(0x2A6F, 0x2A70).addRange(0x2A73, 0x2A74).addRange(0x2A79, 0x2AA3).addRange(0x2AA6, 0x2AAD).addRange(0x2AAF, 0x2AD6).addRange(0x2AE2, 0x2AE6).addRange(0x2AEC, 0x2AEE).addRange(0x2AF7, 0x2AFB).addRange(0x2E02, 0x2E05).addRange(0x2E09, 0x2E0A).addRange(0x2E0C, 0x2E0D).addRange(0x2E1C, 0x2E1D).addRange(0x2E20, 0x2E29).addRange(0x2E55, 0x2E5C).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xFE59, 0xFE5E).addRange(0xFE64, 0xFE65).addRange(0xFF08, 0xFF09).addRange(0xFF5F, 0xFF60).addRange(0xFF62, 0xFF63);\nexports.characters = set;\n","const set = require('regenerate')(0x27, 0x2E, 0x3A, 0x5E, 0x60, 0xA8, 0xAD, 0xAF, 0xB4, 0x37A, 0x387, 0x559, 0x55F, 0x5BF, 0x5C7, 0x5F4, 0x61C, 0x640, 0x670, 0x70F, 0x711, 0x7FA, 0x7FD, 0x888, 0x93A, 0x93C, 0x94D, 0x971, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xEC6, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x10FC, 0x17C6, 0x17D7, 0x17DD, 0x1843, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1AA7, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x1D78, 0x1FBD, 0x2024, 0x2027, 0x2071, 0x207F, 0x2D6F, 0x2D7F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9CF, 0xAA43, 0xAA4C, 0xAA70, 0xAA7C, 0xAAB0, 0xAAC1, 0xAADD, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0xFE13, 0xFE52, 0xFE55, 0xFEFF, 0xFF07, 0xFF0E, 0xFF1A, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110BD, 0x110C2, 0x110CD, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x16F4F, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE, 0xE0001);\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x36F).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x600, 0x605).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DD).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x816, 0x82D).addRange(0x859, 0x85B).addRange(0x890, 0x891).addRange(0x898, 0x89F).addRange(0x8C9, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE46, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180F).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x200B, 0x200F).addRange(0x2018, 0x2019).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20F0).addRange(0x2C7C, 0x2C7D).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3031, 0x3035).addRange(0x3099, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69C, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xA9E5, 0xA9E6).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xAAF3, 0xAAF4).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B);\nset.addRange(0xFBB2, 0xFBC2).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0xFFF9, 0xFFFB).addRange(0x10376, 0x1037A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725);\nset.addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13430, 0x13440).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1BC9D, 0x1BC9E).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D173, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006);\nset.addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E13D).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EB, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94B).addRange(0x1F3FB, 0x1F3FF).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0x10780, 0x1D4A2, 0x1D4BB, 0x1D546);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149);\nset.addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69D).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7F6).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514);\nset.addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E943).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x345, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D1).addRange(0x3D5, 0x3D6).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4);\nset.addRange(0x1FB7, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC7, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x1BF, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1D79, 0x1D7D, 0x1D8E, 0x1E9E, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2126, 0x2132, 0x214E, 0x2D27, 0x2D2D, 0xAB53);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x137).addRange(0x139, 0x18C).addRange(0x18E, 0x19A).addRange(0x19C, 0x1A9).addRange(0x1AC, 0x1B9).addRange(0x1BC, 0x1BD).addRange(0x1C4, 0x220).addRange(0x222, 0x233).addRange(0x23A, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3D1).addRange(0x3D5, 0x3F5).addRange(0x3F7, 0x3FB).addRange(0x3FD, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x561, 0x587).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1E00, 0x1E9B).addRange(0x1EA0, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC);\nset.addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x212A, 0x212B).addRange(0x2160, 0x217F).addRange(0x2183, 0x2184).addRange(0x24B6, 0x24E9).addRange(0x2C00, 0x2C70).addRange(0x2C72, 0x2C73).addRange(0x2C75, 0x2C76).addRange(0x2C7E, 0x2CE3).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA72F).addRange(0xA732, 0xA76F).addRange(0xA779, 0xA787).addRange(0xA78B, 0xA78D).addRange(0xA790, 0xA794).addRange(0xA796, 0xA7AE).addRange(0xA7B0, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D6, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1E900, 0x1E943);\nset;\nexports.characters = set;\n","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2126, 0x2132, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5);\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1C5).addRange(0x1C7, 0x1C8).addRange(0x1CA, 0x1CB).addRange(0x1F1, 0x1F2).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF).addRange(0x1FB8, 0x1FBC).addRange(0x1FC8, 0x1FCC).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFC).addRange(0x212A, 0x212B);\nset.addRange(0x2160, 0x216F).addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1E900, 0x1E921);\nexports.characters = set;\n","const set = require('regenerate')(0xA0, 0xA8, 0xAA, 0xAD, 0xAF, 0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x136, 0x139, 0x13B, 0x13D, 0x143, 0x145, 0x147, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x17F, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x34F, 0x370, 0x372, 0x374, 0x376, 0x37A, 0x38C, 0x3C2, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x587, 0x61C, 0x9DF, 0xA33, 0xA36, 0xA5E, 0xE33, 0xEB3, 0xF0C, 0xF43, 0xF4D, 0xF52, 0xF57, 0xF5C, 0xF69, 0xF73, 0xF81, 0xF93, 0xF9D, 0xFA2, 0xFA7, 0xFAC, 0xFB9, 0x10C7, 0x10CD, 0x10FC, 0x1D78, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x1F71, 0x1F73, 0x1F75, 0x1F77, 0x1F79, 0x1F7B, 0x1F7D, 0x1FD3, 0x1FE3, 0x2011, 0x2017, 0x203C, 0x203E, 0x2057, 0x20A8, 0x2124, 0x2126, 0x2128, 0x2183, 0x2189, 0x2A0C, 0x2ADC, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0x2D6F, 0x2E9F, 0x2EF3, 0x3000, 0x3036, 0x309F, 0x30FF, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA770, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xAB69, 0xFA10, 0xFA12, 0xFA20, 0xFA22, 0xFB1D, 0xFB3E, 0xFE74, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F190);\nset.addRange(0x41, 0x5A).addRange(0xB2, 0xB5).addRange(0xB8, 0xBA).addRange(0xBC, 0xBE).addRange(0xC0, 0xD6).addRange(0xD8, 0xDF).addRange(0x132, 0x134).addRange(0x13F, 0x141).addRange(0x149, 0x14A).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1C4, 0x1CD).addRange(0x1F1, 0x1F4).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x2B0, 0x2B8).addRange(0x2D8, 0x2DD).addRange(0x2E0, 0x2E4).addRange(0x340, 0x341).addRange(0x343, 0x345).addRange(0x37E, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3CF, 0x3D6).addRange(0x3F0, 0x3F2).addRange(0x3F4, 0x3F5).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x675, 0x678).addRange(0x958, 0x95F).addRange(0x9DC, 0x9DD).addRange(0xA59, 0xA5B).addRange(0xB5C, 0xB5D).addRange(0xEDC, 0xEDD);\nset.addRange(0xF75, 0xF79).addRange(0x10A0, 0x10C5).addRange(0x115F, 0x1160).addRange(0x13F8, 0x13FD).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D2C, 0x1D2E).addRange(0x1D30, 0x1D3A).addRange(0x1D3C, 0x1D4D).addRange(0x1D4F, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x1E9A, 0x1E9B).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1F80, 0x1FAF).addRange(0x1FB2, 0x1FB4).addRange(0x1FB7, 0x1FC4).addRange(0x1FC7, 0x1FCF).addRange(0x1FD8, 0x1FDB).addRange(0x1FDD, 0x1FDF).addRange(0x1FE8, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF7, 0x1FFE).addRange(0x2000, 0x200F).addRange(0x2024, 0x2026).addRange(0x202A, 0x202F).addRange(0x2033, 0x2034).addRange(0x2036, 0x2037).addRange(0x2047, 0x2049).addRange(0x205F, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x2100, 0x2103).addRange(0x2105, 0x2107).addRange(0x2109, 0x2113).addRange(0x2115, 0x2116).addRange(0x2119, 0x211D).addRange(0x2120, 0x2122).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213B, 0x2140).addRange(0x2145, 0x2149).addRange(0x2150, 0x217F).addRange(0x222C, 0x222D);\nset.addRange(0x222F, 0x2230).addRange(0x2329, 0x232A).addRange(0x2460, 0x24EA).addRange(0x2A74, 0x2A76).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7C, 0x2C80).addRange(0x2F00, 0x2FD5).addRange(0x3038, 0x303A).addRange(0x309B, 0x309C).addRange(0x3131, 0x318E).addRange(0x3192, 0x319F).addRange(0x3200, 0x321E).addRange(0x3220, 0x3247).addRange(0x3250, 0x327E).addRange(0x3280, 0x33FF).addRange(0xA69C, 0xA69D).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xA7F2, 0xA7F5).addRange(0xA7F8, 0xA7F9).addRange(0xAB5C, 0xAB5F).addRange(0xAB70, 0xABBF).addRange(0xF900, 0xFA0D).addRange(0xFA15, 0xFA1E).addRange(0xFA25, 0xFA26).addRange(0xFA2A, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFC).addRange(0xFE00, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE72).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF0, 0xFFF8).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10781, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D15E, 0x1D164).addRange(0x1D173, 0x1D17A).addRange(0x1D1BB, 0x1D1C0).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E030, 0x1E06D).addRange(0x1E900, 0x1E921).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A);\nset.addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1F100, 0x1F10A).addRange(0x1F110, 0x1F12E).addRange(0x1F130, 0x1F14F).addRange(0x1F16A, 0x1F16C).addRange(0x1F200, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1FBF0, 0x1FBF9).addRange(0x2F800, 0x2FA1D).addRange(0xE0000, 0xE0FFF);\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1C4, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C6, 0x1C7).addRange(0x1C9, 0x1CA).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F1).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4);\nset.addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x137, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x18C, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1B9, 0x1BD, 0x1BF, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x233, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x259, 0x263, 0x26F, 0x275, 0x27D, 0x280, 0x292, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x3FB, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1D79, 0x1D7D, 0x1D8E, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBC, 0x1FBE, 0x1FCC, 0x1FFC, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C73, 0x2C76, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CE3, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA72F, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D7, 0xA7D9, 0xA7F6, 0xAB53);\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x199, 0x19A).addRange(0x1C5, 0x1C6).addRange(0x1C8, 0x1C9).addRange(0x1CB, 0x1CC).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x1F2, 0x1F3).addRange(0x23F, 0x240).addRange(0x24F, 0x254).addRange(0x256, 0x257).addRange(0x25B, 0x25C).addRange(0x260, 0x261).addRange(0x265, 0x266).addRange(0x268, 0x26C).addRange(0x271, 0x272).addRange(0x282, 0x283).addRange(0x287, 0x28C).addRange(0x29D, 0x29E).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x561, 0x587).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1E95, 0x1E9B).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7).addRange(0x1FE0, 0x1FE7);\nset.addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2D00, 0x2D25).addRange(0xA793, 0xA794).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1E922, 0x1E943);\nexports.characters = set;\n","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2053, 0x207B, 0x208B, 0x2212, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nexports.characters = set;\n","const set = require('regenerate')(0xAD, 0x34F, 0x61C, 0x3164, 0xFEFF, 0xFFA0);\nset.addRange(0x115F, 0x1160).addRange(0x17B4, 0x17B5).addRange(0x180B, 0x180F).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0xFE00, 0xFE0F).addRange(0xFFF0, 0xFFF8).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0000, 0xE0FFF);\nexports.characters = set;\n","const set = require('regenerate')(0x149, 0x673, 0xF77, 0xF79, 0xE0001);\nset.addRange(0x17A3, 0x17A4).addRange(0x206A, 0x206F).addRange(0x2329, 0x232A);\nexports.characters = set;\n","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0x37A, 0x559, 0x5BF, 0x5C4, 0x93C, 0x94D, 0x971, 0x9BC, 0x9CD, 0xA3C, 0xA4D, 0xABC, 0xACD, 0xB3C, 0xB4D, 0xB55, 0xBCD, 0xC3C, 0xC4D, 0xCBC, 0xCCD, 0xD4D, 0xDCA, 0xE4E, 0xEBA, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1037, 0x108F, 0x17DD, 0x1A7F, 0x1B34, 0x1B44, 0x1CED, 0x1CF4, 0x1FBD, 0x2E2F, 0x30FC, 0xA66F, 0xA67F, 0xA8C4, 0xA953, 0xA9B3, 0xA9C0, 0xA9E5, 0xAAF6, 0xFB1E, 0xFF3E, 0xFF40, 0xFF70, 0xFFE3, 0x102E0, 0x11046, 0x11070, 0x11173, 0x111C0, 0x1133C, 0x1134D, 0x11442, 0x11446, 0x1163F, 0x1172B, 0x11943, 0x119E0, 0x11A34, 0x11A47, 0x11A99, 0x11C3F, 0x11D42, 0x11D97, 0x1E2AE);\nset.addRange(0xB7, 0xB8).addRange(0x2B0, 0x34E).addRange(0x350, 0x357).addRange(0x35D, 0x362).addRange(0x374, 0x375).addRange(0x384, 0x385).addRange(0x483, 0x487).addRange(0x591, 0x5A1).addRange(0x5A3, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x64B, 0x652).addRange(0x657, 0x658).addRange(0x6DF, 0x6E0).addRange(0x6E5, 0x6E6).addRange(0x6EA, 0x6EC).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F5).addRange(0x818, 0x819).addRange(0x898, 0x89F).addRange(0x8C9, 0x8D2).addRange(0x8E3, 0x8FE).addRange(0x951, 0x954).addRange(0xAFD, 0xAFF).addRange(0xD3B, 0xD3C).addRange(0xE47, 0xE4C).addRange(0xEC8, 0xECC).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF82, 0xF84).addRange(0xF86, 0xF87).addRange(0x1039, 0x103A).addRange(0x1063, 0x1064).addRange(0x1069, 0x106D).addRange(0x1087, 0x108D).addRange(0x109A, 0x109B).addRange(0x135D, 0x135F).addRange(0x1714, 0x1715).addRange(0x17C9, 0x17D3).addRange(0x1939, 0x193B).addRange(0x1A75, 0x1A7C).addRange(0x1AB0, 0x1ABE).addRange(0x1AC1, 0x1ACB).addRange(0x1B6B, 0x1B73).addRange(0x1BAA, 0x1BAB).addRange(0x1C36, 0x1C37).addRange(0x1C78, 0x1C7D).addRange(0x1CD0, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1D2C, 0x1D6A).addRange(0x1DC4, 0x1DCF);\nset.addRange(0x1DF5, 0x1DFF).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x2CEF, 0x2CF1).addRange(0x302A, 0x302F).addRange(0x3099, 0x309C).addRange(0xA67C, 0xA67D).addRange(0xA69C, 0xA69D).addRange(0xA6F0, 0xA6F1).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA7F8, 0xA7F9).addRange(0xA8E0, 0xA8F1).addRange(0xA92B, 0xA92E).addRange(0xAA7B, 0xAA7D).addRange(0xAABF, 0xAAC2).addRange(0xAB5B, 0xAB5F).addRange(0xAB69, 0xAB6B).addRange(0xABEC, 0xABED).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10AE5, 0x10AE6).addRange(0x10D22, 0x10D27).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x110B9, 0x110BA).addRange(0x11133, 0x11134).addRange(0x111CA, 0x111CC).addRange(0x11235, 0x11236).addRange(0x112E9, 0x112EA).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x114C2, 0x114C3).addRange(0x115BF, 0x115C0).addRange(0x116B6, 0x116B7).addRange(0x11839, 0x1183A).addRange(0x1193D, 0x1193E).addRange(0x11D44, 0x11D45).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F9F).addRange(0x16FF0, 0x16FF1).addRange(0x1AFF0, 0x1AFF3);\nset.addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1E030, 0x1E06D).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E946).addRange(0x1E948, 0x1E94A);\nexports.characters = set;\n","const set = require('regenerate')(0x23, 0x2A, 0x200D, 0x20E3, 0xFE0F);\nset.addRange(0x30, 0x39).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F3FB, 0x1F3FF).addRange(0x1F9B0, 0x1F9B3).addRange(0xE0020, 0xE007F);\nexports.characters = set;\n","const set = require('regenerate')(0x261D, 0x26F9, 0x1F385, 0x1F3C7, 0x1F47C, 0x1F48F, 0x1F491, 0x1F4AA, 0x1F57A, 0x1F590, 0x1F6A3, 0x1F6C0, 0x1F6CC, 0x1F90C, 0x1F90F, 0x1F926, 0x1F977, 0x1F9BB);\nset.addRange(0x270A, 0x270D).addRange(0x1F3C2, 0x1F3C4).addRange(0x1F3CA, 0x1F3CC).addRange(0x1F442, 0x1F443).addRange(0x1F446, 0x1F450).addRange(0x1F466, 0x1F478).addRange(0x1F481, 0x1F483).addRange(0x1F485, 0x1F487).addRange(0x1F574, 0x1F575).addRange(0x1F595, 0x1F596).addRange(0x1F645, 0x1F647).addRange(0x1F64B, 0x1F64F).addRange(0x1F6B4, 0x1F6B6).addRange(0x1F918, 0x1F91F).addRange(0x1F930, 0x1F939).addRange(0x1F93C, 0x1F93E).addRange(0x1F9B5, 0x1F9B6).addRange(0x1F9B8, 0x1F9B9).addRange(0x1F9CD, 0x1F9CF).addRange(0x1F9D1, 0x1F9DD).addRange(0x1FAC3, 0x1FAC5).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1F3FB, 0x1F3FF);\nexports.characters = set;\n","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\n","const set = require('regenerate')(0x23, 0x2A, 0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x260E, 0x2611, 0x2618, 0x261D, 0x2620, 0x2626, 0x262A, 0x2640, 0x2642, 0x2663, 0x2668, 0x267B, 0x2699, 0x26A7, 0x26C8, 0x26D1, 0x26FD, 0x2702, 0x2705, 0x270F, 0x2712, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F21A, 0x1F22F, 0x1F587, 0x1F590, 0x1F5A8, 0x1F5BC, 0x1F5E1, 0x1F5E3, 0x1F5E8, 0x1F5EF, 0x1F5F3, 0x1F6E9, 0x1F6F0, 0x1F7F0);\nset.addRange(0x30, 0x39).addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2604).addRange(0x2614, 0x2615).addRange(0x2622, 0x2623).addRange(0x262E, 0x262F).addRange(0x2638, 0x263A).addRange(0x2648, 0x2653).addRange(0x265F, 0x2660).addRange(0x2665, 0x2666).addRange(0x267E, 0x267F).addRange(0x2692, 0x2697).addRange(0x269B, 0x269C).addRange(0x26A0, 0x26A1).addRange(0x26AA, 0x26AB).addRange(0x26B0, 0x26B1).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26CE, 0x26CF).addRange(0x26D3, 0x26D4).addRange(0x26E9, 0x26EA).addRange(0x26F0, 0x26F5).addRange(0x26F7, 0x26FA).addRange(0x2708, 0x270D).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2764).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F170, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F232, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F321).addRange(0x1F324, 0x1F393).addRange(0x1F396, 0x1F397).addRange(0x1F399, 0x1F39B).addRange(0x1F39E, 0x1F3F0).addRange(0x1F3F3, 0x1F3F5).addRange(0x1F3F7, 0x1F4FD);\nset.addRange(0x1F4FF, 0x1F53D).addRange(0x1F549, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F56F, 0x1F570).addRange(0x1F573, 0x1F57A).addRange(0x1F58A, 0x1F58D).addRange(0x1F595, 0x1F596).addRange(0x1F5A4, 0x1F5A5).addRange(0x1F5B1, 0x1F5B2).addRange(0x1F5C2, 0x1F5C4).addRange(0x1F5D1, 0x1F5D3).addRange(0x1F5DC, 0x1F5DE).addRange(0x1F5FA, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6CB, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6E5).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F3, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\n","const set = require('regenerate')(0xA9, 0xAE, 0x203C, 0x2049, 0x2122, 0x2139, 0x2328, 0x2388, 0x23CF, 0x24C2, 0x25B6, 0x25C0, 0x2714, 0x2716, 0x271D, 0x2721, 0x2728, 0x2744, 0x2747, 0x274C, 0x274E, 0x2757, 0x27A1, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x3030, 0x303D, 0x3297, 0x3299, 0x1F12F, 0x1F18E, 0x1F21A, 0x1F22F);\nset.addRange(0x2194, 0x2199).addRange(0x21A9, 0x21AA).addRange(0x231A, 0x231B).addRange(0x23E9, 0x23F3).addRange(0x23F8, 0x23FA).addRange(0x25AA, 0x25AB).addRange(0x25FB, 0x25FE).addRange(0x2600, 0x2605).addRange(0x2607, 0x2612).addRange(0x2614, 0x2685).addRange(0x2690, 0x2705).addRange(0x2708, 0x2712).addRange(0x2733, 0x2734).addRange(0x2753, 0x2755).addRange(0x2763, 0x2767).addRange(0x2795, 0x2797).addRange(0x2934, 0x2935).addRange(0x2B05, 0x2B07).addRange(0x2B1B, 0x2B1C).addRange(0x1F000, 0x1F0FF).addRange(0x1F10D, 0x1F10F).addRange(0x1F16C, 0x1F171).addRange(0x1F17E, 0x1F17F).addRange(0x1F191, 0x1F19A).addRange(0x1F1AD, 0x1F1E5).addRange(0x1F201, 0x1F20F).addRange(0x1F232, 0x1F23A).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F3FA).addRange(0x1F400, 0x1F53D).addRange(0x1F546, 0x1F64F).addRange(0x1F680, 0x1F6FF).addRange(0x1F774, 0x1F77F).addRange(0x1F7D5, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8FF).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1FAFF).addRange(0x1FC00, 0x1FFFD);\nexports.characters = set;\n","const set = require('regenerate')(0xB7, 0x640, 0x7FA, 0xB55, 0xE46, 0xEC6, 0x180A, 0x1843, 0x1AA7, 0x1C36, 0x1C7B, 0x3005, 0xA015, 0xA60C, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xFF70, 0x1135D, 0x11A98, 0x16FE3);\nset.addRange(0x2D0, 0x2D1).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xAAF3, 0xAAF4).addRange(0x10781, 0x10782).addRange(0x115C6, 0x115C8).addRange(0x16B42, 0x16B43).addRange(0x16FE0, 0x16FE1).addRange(0x1E13C, 0x1E13D).addRange(0x1E944, 0x1E946);\nexports.characters = set;\n","const set = require('regenerate')(0x38C, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6DE, 0x6E9, 0x710, 0x7B1, 0x81A, 0x824, 0x828, 0x85E, 0x93B, 0x9B2, 0x9BD, 0x9CE, 0xA03, 0xA5E, 0xA76, 0xA83, 0xAC9, 0xAD0, 0xAF9, 0xB3D, 0xB40, 0xB83, 0xB9C, 0xBBF, 0xBD0, 0xC3D, 0xC5D, 0xD3D, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF36, 0xF38, 0xF7F, 0xF85, 0x1031, 0x1038, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x1715, 0x17B6, 0x18AA, 0x1940, 0x1A57, 0x1A61, 0x1B3B, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CD3, 0x1CE1, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x2D27, 0x2D2D, 0xA673, 0xA7D3, 0xAA4D, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFDCF, 0x101A0, 0x10808, 0x1083C, 0x1093F, 0x10EAD, 0x11000, 0x11075, 0x1112C, 0x11235, 0x11288, 0x1133D, 0x1133F, 0x11350, 0x11445, 0x1145D, 0x114B9, 0x114BE, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1183B, 0x11909, 0x1193D, 0x11A00, 0x11A50, 0x11A97, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D46, 0x11D96, 0x11D98, 0x11F41, 0x11FB0, 0x16AF5, 0x1B132, 0x1B155, 0x1BC9C, 0x1BC9F, 0x1D166, 0x1D245, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E2FF, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E, 0x1F7F0);\nset.addRange(0x20, 0x7E).addRange(0xA0, 0xAC).addRange(0xAE, 0x2FF).addRange(0x370, 0x377).addRange(0x37A, 0x37F).addRange(0x384, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x482).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0x606, 0x60F).addRange(0x61D, 0x64A).addRange(0x660, 0x66F).addRange(0x671, 0x6D5).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x70D).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7C0, 0x7EA).addRange(0x7F4, 0x7FA).addRange(0x7FE, 0x815).addRange(0x830, 0x83E).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x903, 0x939).addRange(0x93D, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x950).addRange(0x958, 0x961).addRange(0x964, 0x980).addRange(0x982, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BF, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9E6, 0x9FD).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28);\nset.addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA40).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA6F).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABD, 0xAC0).addRange(0xACB, 0xACC).addRange(0xAE0, 0xAE1).addRange(0xAE6, 0xAF1).addRange(0xB02, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB66, 0xB77).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xBE6, 0xBFA).addRange(0xC01, 0xC03).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC41, 0xC44).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC66, 0xC6F);\nset.addRange(0xC77, 0xC80).addRange(0xC82, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBD, 0xCBE).addRange(0xCC0, 0xCC1).addRange(0xCC3, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD02, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD3F, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD4E, 0xD4F).addRange(0xD54, 0xD56).addRange(0xD58, 0xD61).addRange(0xD66, 0xD7F).addRange(0xD82, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDD0, 0xDD1).addRange(0xDD8, 0xDDE).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE3F, 0xE46).addRange(0xE4F, 0xE5B).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF00, 0xF17).addRange(0xF1A, 0xF34).addRange(0xF3A, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C);\nset.addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFDA).addRange(0x1000, 0x102C).addRange(0x103B, 0x103C).addRange(0x103F, 0x1057).addRange(0x105A, 0x105D).addRange(0x1061, 0x1070).addRange(0x1075, 0x1081).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x108E, 0x109C).addRange(0x109E, 0x10C5).addRange(0x10D0, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1360, 0x137C).addRange(0x1380, 0x1399).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1400, 0x169C).addRange(0x16A0, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1734, 0x1736).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x17D4, 0x17DC).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1800, 0x180A).addRange(0x1810, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5);\nset.addRange(0x1900, 0x191E).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1944, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x1A16).addRange(0x1A19, 0x1A1A).addRange(0x1A1E, 0x1A55).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD).addRange(0x1B04, 0x1B33).addRange(0x1B3D, 0x1B41).addRange(0x1B43, 0x1B4C).addRange(0x1B50, 0x1B6A).addRange(0x1B74, 0x1B7E).addRange(0x1B82, 0x1BA1).addRange(0x1BA6, 0x1BA7).addRange(0x1BAE, 0x1BE5).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1BFC, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CC7).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE);\nset.addRange(0x2000, 0x200A).addRange(0x2010, 0x2027).addRange(0x202F, 0x205F).addRange(0x2070, 0x2071).addRange(0x2074, 0x208E).addRange(0x2090, 0x209C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2CF9, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2E00, 0x2E5D).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x3029).addRange(0x3030, 0x303F).addRange(0x3041, 0x3096).addRange(0x309B, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x3190, 0x31E3).addRange(0x31EF, 0x321E).addRange(0x3220, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xA4D0, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67E, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA6F2, 0xA6F7).addRange(0xA700, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A);\nset.addRange(0xA80C, 0xA824).addRange(0xA827, 0xA82B).addRange(0xA830, 0xA839).addRange(0xA840, 0xA877).addRange(0xA880, 0xA8C3).addRange(0xA8CE, 0xA8D9).addRange(0xA8F2, 0xA8FE).addRange(0xA900, 0xA925).addRange(0xA92E, 0xA946).addRange(0xA952, 0xA953).addRange(0xA95F, 0xA97C).addRange(0xA983, 0xA9B2).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9E4).addRange(0xA9E6, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA7B).addRange(0xAA7D, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAAEB).addRange(0xAAEE, 0xAAF5).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB6B).addRange(0xAB70, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEC).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44);\nset.addRange(0xFB46, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF01, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x102E1, 0x102FB).addRange(0x10300, 0x10323).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x1039F, 0x103C3).addRange(0x103C8, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x1056F, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1);\nset.addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10857, 0x1089E).addRange(0x108A7, 0x108AF).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x1091B).addRange(0x1091F, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x10A00).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A40, 0x10A48).addRange(0x10A50, 0x10A58).addRange(0x10A60, 0x10A9F).addRange(0x10AC0, 0x10AE4).addRange(0x10AEB, 0x10AF6).addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B55).addRange(0x10B58, 0x10B72).addRange(0x10B78, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10D23).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F27).addRange(0x10F30, 0x10F45).addRange(0x10F51, 0x10F59).addRange(0x10F70, 0x10F81).addRange(0x10F86, 0x10F89).addRange(0x10FB0, 0x10FCB).addRange(0x10FE0, 0x10FF6);\nset.addRange(0x11002, 0x11037).addRange(0x11047, 0x1104D).addRange(0x11052, 0x1106F).addRange(0x11071, 0x11072).addRange(0x11082, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11103, 0x11126).addRange(0x11136, 0x11147).addRange(0x11150, 0x11172).addRange(0x11174, 0x11176).addRange(0x11182, 0x111B5).addRange(0x111BF, 0x111C8).addRange(0x111CD, 0x111CE).addRange(0x111D0, 0x111DF).addRange(0x111E1, 0x111F4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122E).addRange(0x11232, 0x11233).addRange(0x11238, 0x1123D).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9).addRange(0x112B0, 0x112DE).addRange(0x112E0, 0x112E2).addRange(0x112F0, 0x112F9).addRange(0x11302, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11400, 0x11437).addRange(0x11440, 0x11441).addRange(0x11447, 0x1145B).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114B1, 0x114B2).addRange(0x114BB, 0x114BC).addRange(0x114C4, 0x114C7).addRange(0x114D0, 0x114D9);\nset.addRange(0x11580, 0x115AE).addRange(0x115B0, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x115C1, 0x115DB).addRange(0x11600, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x11641, 0x11644).addRange(0x11650, 0x11659).addRange(0x11660, 0x1166C).addRange(0x11680, 0x116AA).addRange(0x116AE, 0x116AF).addRange(0x116B8, 0x116B9).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x11720, 0x11721).addRange(0x11730, 0x11746).addRange(0x11800, 0x1182E).addRange(0x118A0, 0x118F2).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x11931, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193F, 0x11942).addRange(0x11944, 0x11946).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x119E1, 0x119E4).addRange(0x11A0B, 0x11A32).addRange(0x11A39, 0x11A3A).addRange(0x11A3F, 0x11A46).addRange(0x11A57, 0x11A58).addRange(0x11A5C, 0x11A89).addRange(0x11A9A, 0x11AA2).addRange(0x11AB0, 0x11AF8).addRange(0x11B00, 0x11B09).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2F).addRange(0x11C40, 0x11C45).addRange(0x11C50, 0x11C6C).addRange(0x11C70, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E);\nset.addRange(0x11D93, 0x11D94).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF2).addRange(0x11EF5, 0x11EF8).addRange(0x11F02, 0x11F10).addRange(0x11F12, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x11F43, 0x11F59).addRange(0x11FC0, 0x11FF1).addRange(0x11FFF, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF2).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B37, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E9A).addRange(0x16F00, 0x16F4A).addRange(0x16F50, 0x16F87).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5);\nset.addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16D).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA8B).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8CF);\nset.addRange(0x1E900, 0x1E943).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88);\nset.addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9BE, 0x9CD, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB4D, 0xB82, 0xBBE, 0xBC0, 0xBCD, 0xBD7, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC2, 0xCC6, 0xD3E, 0xD4D, 0xD57, 0xD81, 0xDCA, 0xDCF, 0xDD6, 0xDDF, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x200C, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x1133E, 0x11340, 0x11357, 0x11446, 0x1145E, 0x114B0, 0x114BA, 0x114BD, 0x115AF, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x11930, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x13440, 0x16F4F, 0x16FE4, 0x1D165, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE);\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB3E, 0xB3F).addRange(0xB41, 0xB44).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C);\nset.addRange(0xD41, 0xD44).addRange(0xD62, 0xD63).addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B34, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2);\nset.addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFF9E, 0xFF9F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181);\nset.addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC).addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4);\nset.addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D16E, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0020, 0xE007F).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x30, 0x39).addRange(0x41, 0x46).addRange(0x61, 0x66).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF26).addRange(0xFF41, 0xFF46);\nexports.characters = set;\n","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC);\nset.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7).addRange(0xA8FD, 0xA92D);\nset.addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF65, 0xFFBE).addRange(0xFFC2, 0xFFC7);\nset.addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7);\nset.addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C);\nset.addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D00, 0x11D06);\nset.addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F59).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167);\nset.addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021);\nset.addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8);\nset.addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96);\nset.addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309B, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42);\nset.addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7);\nset.addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C);\nset.addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C);\nset.addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE4);\nset.addRange(0x3006, 0x3007).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B170, 0x1B2FB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x31EF);\nset.addRange(0x2FF0, 0x2FF1).addRange(0x2FF4, 0x2FFD);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2FF2, 0x2FF3);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x200C, 0x200D);\nexports.characters = set;\n","const set = require('regenerate')(0x19BA, 0xAAB9);\nset.addRange(0xE40, 0xE44).addRange(0xEC0, 0xEC4).addRange(0x19B5, 0x19B7).addRange(0xAAB5, 0xAAB6).addRange(0xAABB, 0xAABC);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x345, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x2071, 0x207F, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0x10780, 0x1D4BB, 0x1D7CB);\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2B8).addRange(0x2C0, 0x2C1).addRange(0x2E0, 0x2E4).addRange(0x37A, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1DBF).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x2090, 0x209C).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2170, 0x217F).addRange(0x24D0, 0x24E9).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7D).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA69B, 0xA69D).addRange(0xA72F, 0xA731).addRange(0xA76F, 0xA778).addRange(0xA793, 0xA795).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7FA).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10783, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3);\nset.addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E922, 0x1E943);\nexports.characters = set;\n","const set = require('regenerate')(0x2B, 0x5E, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3D5, 0x2016, 0x2040, 0x2044, 0x2052, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x214B, 0x21DD, 0x237C, 0x23B7, 0x23D0, 0x25E2, 0x25E4, 0x2640, 0x2642, 0xFB29, 0xFE68, 0xFF0B, 0xFF3C, 0xFF3E, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x3C, 0x3E).addRange(0x3D0, 0x3D2).addRange(0x3F0, 0x3F1).addRange(0x3F4, 0x3F6).addRange(0x606, 0x608).addRange(0x2032, 0x2034).addRange(0x2061, 0x2064).addRange(0x207A, 0x207E).addRange(0x208A, 0x208E).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20E6).addRange(0x20EB, 0x20EF).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x2128, 0x2129).addRange(0x212C, 0x212D).addRange(0x212F, 0x2131).addRange(0x2133, 0x2138).addRange(0x213C, 0x2149).addRange(0x2190, 0x21A7).addRange(0x21A9, 0x21AE).addRange(0x21B0, 0x21B1).addRange(0x21B6, 0x21B7).addRange(0x21BC, 0x21DB).addRange(0x21E4, 0x21E5).addRange(0x21F4, 0x22FF).addRange(0x2308, 0x230B).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B5).addRange(0x23DC, 0x23E2).addRange(0x25A0, 0x25A1).addRange(0x25AE, 0x25B7).addRange(0x25BC, 0x25C1).addRange(0x25C6, 0x25C7).addRange(0x25CA, 0x25CB).addRange(0x25CF, 0x25D3).addRange(0x25E7, 0x25EC).addRange(0x25F8, 0x25FF).addRange(0x2605, 0x2606).addRange(0x2660, 0x2663).addRange(0x266D, 0x266F).addRange(0x27C0, 0x27FF).addRange(0x2900, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE61, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F);\nset.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xFDD0, 0xFDEF).addRange(0xFFFE, 0xFFFF).addRange(0x1FFFE, 0x1FFFF).addRange(0x2FFFE, 0x2FFFF).addRange(0x3FFFE, 0x3FFFF).addRange(0x4FFFE, 0x4FFFF).addRange(0x5FFFE, 0x5FFFF).addRange(0x6FFFE, 0x6FFFF).addRange(0x7FFFE, 0x7FFFF).addRange(0x8FFFE, 0x8FFFF).addRange(0x9FFFE, 0x9FFFF).addRange(0xAFFFE, 0xAFFFF).addRange(0xBFFFE, 0xBFFFF).addRange(0xCFFFE, 0xCFFFF).addRange(0xDFFFE, 0xDFFFF).addRange(0xEFFFE, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nexports.characters = set;\n","const set = require('regenerate')(0x60, 0xA9, 0xAE, 0xB6, 0xBB, 0xBF, 0xD7, 0xF7, 0x3030);\nset.addRange(0x21, 0x2F).addRange(0x3A, 0x40).addRange(0x5B, 0x5E).addRange(0x7B, 0x7E).addRange(0xA1, 0xA7).addRange(0xAB, 0xAC).addRange(0xB0, 0xB1).addRange(0x2010, 0x2027).addRange(0x2030, 0x203E).addRange(0x2041, 0x2053).addRange(0x2055, 0x205E).addRange(0x2190, 0x245F).addRange(0x2500, 0x2775).addRange(0x2794, 0x2BFF).addRange(0x2E00, 0x2E7F).addRange(0x3001, 0x3003).addRange(0x3008, 0x3020).addRange(0xFD3E, 0xFD3F).addRange(0xFE45, 0xFE46);\nexports.characters = set;\n","const set = require('regenerate')(0x20, 0x85);\nset.addRange(0x9, 0xD).addRange(0x200E, 0x200F).addRange(0x2028, 0x2029);\nexports.characters = set;\n","const set = require('regenerate')(0x22, 0x27, 0xAB, 0xBB, 0x2E42, 0xFF02, 0xFF07);\nset.addRange(0x2018, 0x201F).addRange(0x2039, 0x203A).addRange(0x300C, 0x300F).addRange(0x301D, 0x301F).addRange(0xFE41, 0xFE44).addRange(0xFF62, 0xFF63);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1F1E6, 0x1F1FF);\nexports.characters = set;\n","const set = require('regenerate')(0x21, 0x2E, 0x3F, 0x589, 0x6D4, 0x7F9, 0x837, 0x839, 0x1362, 0x166E, 0x1803, 0x1809, 0x2E2E, 0x2E3C, 0x3002, 0xA4FF, 0xA6F3, 0xA6F7, 0xA92F, 0xABEB, 0xFE52, 0xFF01, 0xFF0E, 0xFF1F, 0xFF61, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x16AF5, 0x16B44, 0x16E98, 0x1BC9F, 0x1DA88);\nset.addRange(0x61D, 0x61F).addRange(0x700, 0x702).addRange(0x83D, 0x83E).addRange(0x964, 0x965).addRange(0x104A, 0x104B).addRange(0x1367, 0x1368).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D5).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5E, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3C).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E53, 0x2E54).addRange(0xA60E, 0xA60F).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C8, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE56, 0xFE57).addRange(0x10A56, 0x10A57).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x11048).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x11239).addRange(0x1123B, 0x1123C).addRange(0x1144B, 0x1144C).addRange(0x115C2, 0x115C3).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11C41, 0x11C42).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B38);\nexports.characters = set;\n","const set = require('regenerate')(0x12F, 0x249, 0x268, 0x29D, 0x2B2, 0x3F3, 0x456, 0x458, 0x1D62, 0x1D96, 0x1DA4, 0x1DA8, 0x1E2D, 0x1ECB, 0x2071, 0x2C7C, 0x1DF1A, 0x1E068);\nset.addRange(0x69, 0x6A).addRange(0x2148, 0x2149).addRange(0x1D422, 0x1D423).addRange(0x1D456, 0x1D457).addRange(0x1D48A, 0x1D48B).addRange(0x1D4BE, 0x1D4BF).addRange(0x1D4F2, 0x1D4F3).addRange(0x1D526, 0x1D527).addRange(0x1D55A, 0x1D55B).addRange(0x1D58E, 0x1D58F).addRange(0x1D5C2, 0x1D5C3).addRange(0x1D5F6, 0x1D5F7).addRange(0x1D62A, 0x1D62B).addRange(0x1D65E, 0x1D65F).addRange(0x1D692, 0x1D693).addRange(0x1E04C, 0x1E04D);\nexports.characters = set;\n","const set = require('regenerate')(0x21, 0x2C, 0x2E, 0x3F, 0x37E, 0x387, 0x589, 0x5C3, 0x60C, 0x61B, 0x6D4, 0x70C, 0x85E, 0xF08, 0x166E, 0x17DA, 0x2E2E, 0x2E3C, 0x2E41, 0x2E4C, 0xA92F, 0xAADF, 0xABEB, 0xFF01, 0xFF0C, 0xFF0E, 0xFF1F, 0xFF61, 0xFF64, 0x1039F, 0x103D0, 0x10857, 0x1091F, 0x111CD, 0x112A9, 0x11944, 0x11946, 0x11C71, 0x16AF5, 0x16B44, 0x1BC9F);\nset.addRange(0x3A, 0x3B).addRange(0x61D, 0x61F).addRange(0x700, 0x70A).addRange(0x7F8, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF0D, 0xF12).addRange(0x104A, 0x104B).addRange(0x1361, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x1802, 0x1805).addRange(0x1808, 0x1809).addRange(0x1944, 0x1945).addRange(0x1AA8, 0x1AAB).addRange(0x1B5A, 0x1B5B).addRange(0x1B5D, 0x1B5F).addRange(0x1B7D, 0x1B7E).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x203C, 0x203D).addRange(0x2047, 0x2049).addRange(0x2E4E, 0x2E4F).addRange(0x2E53, 0x2E54).addRange(0x3001, 0x3002).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F3, 0xA6F7).addRange(0xA876, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA9C7, 0xA9C9).addRange(0xAA5D, 0xAA5F).addRange(0xAAF0, 0xAAF1).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFF1A, 0xFF1B).addRange(0x10A56, 0x10A57).addRange(0x10AF0, 0x10AF5).addRange(0x10B3A, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BE, 0x110C1).addRange(0x11141, 0x11143).addRange(0x111C5, 0x111C6).addRange(0x111DE, 0x111DF).addRange(0x11238, 0x1123C).addRange(0x1144B, 0x1144D);\nset.addRange(0x1145A, 0x1145B).addRange(0x115C2, 0x115C5).addRange(0x115C9, 0x115D7).addRange(0x11641, 0x11642).addRange(0x1173C, 0x1173E).addRange(0x11A42, 0x11A43).addRange(0x11A9B, 0x11A9C).addRange(0x11AA1, 0x11AA2).addRange(0x11C41, 0x11C43).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F44).addRange(0x12470, 0x12474).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B39).addRange(0x16E97, 0x16E98).addRange(0x1DA87, 0x1DA8A);\nexports.characters = set;\n","const set = require('regenerate')(0xFA11, 0xFA1F, 0xFA21);\nset.addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xFA0E, 0xFA0F).addRange(0xFA13, 0xFA14).addRange(0xFA23, 0xFA24).addRange(0xFA27, 0xFA29).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2160, 0x216F);\nset.addRange(0x24B6, 0x24CF).addRange(0x2C00, 0x2C2F).addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921).addRange(0x1F130, 0x1F149).addRange(0x1F150, 0x1F169).addRange(0x1F170, 0x1F189);\nexports.characters = set;\n","const set = require('regenerate')(0x180F);\nset.addRange(0x180B, 0x180D).addRange(0xFE00, 0xFE0F).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0x20, 0x85, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\nset.addRange(0x9, 0xD).addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nexports.characters = set;\n","const set = require('regenerate')(0x5F, 0xAA, 0xB5, 0xB7, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x38C, 0x559, 0x5BF, 0x5C7, 0x6FF, 0x7FA, 0x7FD, 0x9B2, 0x9D7, 0x9FC, 0x9FE, 0xA3C, 0xA51, 0xA5E, 0xAD0, 0xB71, 0xB9C, 0xBD0, 0xBD7, 0xC5D, 0xDBD, 0xDCA, 0xDD6, 0xE84, 0xEA5, 0xEC6, 0xF00, 0xF35, 0xF37, 0xF39, 0xFC6, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x1AA7, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2054, 0x2071, 0x207F, 0x20E1, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA82C, 0xA8FB, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0xFF3F, 0x101FD, 0x102E0, 0x10808, 0x1083C, 0x10A3F, 0x10F27, 0x110C2, 0x11176, 0x111DC, 0x11288, 0x11350, 0x11357, 0x114C7, 0x11644, 0x11909, 0x11A47, 0x11A9D, 0x11D3A, 0x11FB0, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x30, 0x39).addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x300, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x386, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x483, 0x487).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x610, 0x61A).addRange(0x620, 0x669).addRange(0x66E, 0x6D3).addRange(0x6D5, 0x6DC).addRange(0x6DF, 0x6E8).addRange(0x6EA, 0x6FC).addRange(0x710, 0x74A).addRange(0x74D, 0x7B1).addRange(0x7C0, 0x7F5).addRange(0x800, 0x82D).addRange(0x840, 0x85B).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x898, 0x8E1).addRange(0x8E3, 0x963).addRange(0x966, 0x96F).addRange(0x971, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD);\nset.addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9F1).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA75).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAEF).addRange(0xAF9, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB6F).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9);\nset.addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBEF).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC80, 0xC83).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4E).addRange(0xD54, 0xD57).addRange(0xD5F, 0xD63).addRange(0xD66, 0xD6F).addRange(0xD7A, 0xD7F).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF3).addRange(0xE01, 0xE3A).addRange(0xE40, 0xE4E).addRange(0xE50, 0xE59).addRange(0xE81, 0xE82);\nset.addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF).addRange(0xF18, 0xF19).addRange(0xF20, 0xF29).addRange(0xF3E, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF84).addRange(0xF86, 0xF97).addRange(0xF99, 0xFBC).addRange(0x1000, 0x1049).addRange(0x1050, 0x109D).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x135F).addRange(0x1369, 0x1371).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1715).addRange(0x171F, 0x1734).addRange(0x1740, 0x1753).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773).addRange(0x1780, 0x17D3).addRange(0x17DC, 0x17DD).addRange(0x17E0, 0x17E9);\nset.addRange(0x180B, 0x180D).addRange(0x180F, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1946, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x1A00, 0x1A1B).addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B59).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1BF3).addRange(0x1C00, 0x1C37).addRange(0x1C40, 0x1C49).addRange(0x1C4D, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CFA).addRange(0x1D00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x200C, 0x200D).addRange(0x203F, 0x2040).addRange(0x2090, 0x209C).addRange(0x20D0, 0x20DC);\nset.addRange(0x20E5, 0x20F0).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D7F, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x2DE0, 0x2DFF).addRange(0x3005, 0x3007).addRange(0x3021, 0x302F).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x3099, 0x309A).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA62B).addRange(0xA640, 0xA66F).addRange(0xA674, 0xA67D).addRange(0xA67F, 0xA6F1).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA827).addRange(0xA840, 0xA873).addRange(0xA880, 0xA8C5).addRange(0xA8D0, 0xA8D9).addRange(0xA8E0, 0xA8F7);\nset.addRange(0xA8FD, 0xA92D).addRange(0xA930, 0xA953).addRange(0xA960, 0xA97C).addRange(0xA980, 0xA9C0).addRange(0xA9CF, 0xA9D9).addRange(0xA9E0, 0xA9FE).addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA60, 0xAA76).addRange(0xAA7A, 0xAAC2).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEF).addRange(0xAAF2, 0xAAF6).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xABF0, 0xABF9).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1D, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F).addRange(0xFE7F, 0xFEFC).addRange(0xFF10, 0xFF19).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF65, 0xFFBE);\nset.addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x1037A).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104A0, 0x104A9).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939);\nset.addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE6).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAC).addRange(0x10EB0, 0x10EB1).addRange(0x10EFD, 0x10F1C).addRange(0x10F30, 0x10F50).addRange(0x10F70, 0x10F85).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11000, 0x11046).addRange(0x11066, 0x11075).addRange(0x1107F, 0x110BA).addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9).addRange(0x11100, 0x11134).addRange(0x11136, 0x1113F).addRange(0x11144, 0x11147).addRange(0x11150, 0x11173).addRange(0x11180, 0x111C4).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111DA).addRange(0x11200, 0x11211).addRange(0x11213, 0x11237).addRange(0x1123E, 0x11241).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9).addRange(0x11300, 0x11303);\nset.addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11400, 0x1144A).addRange(0x11450, 0x11459).addRange(0x1145E, 0x11461).addRange(0x11480, 0x114C5).addRange(0x114D0, 0x114D9).addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115D8, 0x115DD).addRange(0x11600, 0x11640).addRange(0x11650, 0x11659).addRange(0x11680, 0x116B8).addRange(0x116C0, 0x116C9).addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11739).addRange(0x11740, 0x11746).addRange(0x11800, 0x1183A).addRange(0x118A0, 0x118E9).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11943).addRange(0x11950, 0x11959).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E1).addRange(0x119E3, 0x119E4).addRange(0x11A00, 0x11A3E).addRange(0x11A50, 0x11A99).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C40).addRange(0x11C50, 0x11C59).addRange(0x11C72, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nset.addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9).addRange(0x11EE0, 0x11EF6).addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x11F50, 0x11F59).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13440, 0x13455).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9).addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF4).addRange(0x16B00, 0x16B36).addRange(0x16B40, 0x16B43).addRange(0x16B50, 0x16B59).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x16FE3, 0x16FE4).addRange(0x16FF0, 0x16FF1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152);\nset.addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018);\nset.addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E290, 0x1E2AE).addRange(0x1E2C0, 0x1E2F9).addRange(0x1E4D0, 0x1E4F9).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1FBF0, 0x1FBF9).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE32, 0xE84, 0xEA5, 0xEB2, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0xFE71, 0xFE73, 0xFE77, 0xFE79, 0xFE7B, 0xFE7D, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E);\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2118, 0x211D).addRange(0x212A, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2160, 0x2188).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE);\nset.addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3007).addRange(0x3021, 0x3029).addRange(0x3031, 0x3035).addRange(0x3038, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6EF).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76);\nset.addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFC5D).addRange(0xFC64, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDF9).addRange(0xFE7F, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10140, 0x10174).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0);\nset.addRange(0x10300, 0x1031F).addRange(0x1032D, 0x1034A).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x103D1, 0x103D5).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10C80, 0x10CB2);\nset.addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0);\nset.addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F);\nset.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89);\nset.addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x37F, 0x386, 0x38C, 0x10C7, 0x10CD, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2139, 0x214E, 0x2D27, 0x2D2D, 0xA7D3, 0xA7FA, 0x1D4A2, 0x1D4BB, 0x1D546);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x1BA).addRange(0x1BC, 0x1BF).addRange(0x1C4, 0x293).addRange(0x295, 0x2AF).addRange(0x370, 0x373).addRange(0x376, 0x377).addRange(0x37B, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2134).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184);\nset.addRange(0x2C00, 0x2C7B).addRange(0x2C7E, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25).addRange(0xA640, 0xA66D).addRange(0xA680, 0xA69B).addRange(0xA722, 0xA76F).addRange(0xA771, 0xA787).addRange(0xA78B, 0xA78E).addRange(0xA790, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F5, 0xA7F6).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10400, 0x1044F).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x118A0, 0x118DF).addRange(0x16E40, 0x16E7F).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550);\nset.addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E900, 0x1E943);\nexports.characters = set;\n","const set = require('regenerate')(0x29, 0x5D, 0x7D, 0xF3B, 0xF3D, 0x169C, 0x2046, 0x207E, 0x208E, 0x2309, 0x230B, 0x232A, 0x2769, 0x276B, 0x276D, 0x276F, 0x2771, 0x2773, 0x2775, 0x27C6, 0x27E7, 0x27E9, 0x27EB, 0x27ED, 0x27EF, 0x2984, 0x2986, 0x2988, 0x298A, 0x298C, 0x298E, 0x2990, 0x2992, 0x2994, 0x2996, 0x2998, 0x29D9, 0x29DB, 0x29FD, 0x2E23, 0x2E25, 0x2E27, 0x2E29, 0x2E56, 0x2E58, 0x2E5A, 0x2E5C, 0x3009, 0x300B, 0x300D, 0x300F, 0x3011, 0x3015, 0x3017, 0x3019, 0x301B, 0xFD3E, 0xFE18, 0xFE36, 0xFE38, 0xFE3A, 0xFE3C, 0xFE3E, 0xFE40, 0xFE42, 0xFE44, 0xFE48, 0xFE5A, 0xFE5C, 0xFE5E, 0xFF09, 0xFF3D, 0xFF5D, 0xFF60, 0xFF63);\nset.addRange(0x301E, 0x301F);\nexports.characters = set;\n","const set = require('regenerate')(0x5F, 0x2054, 0xFF3F);\nset.addRange(0x203F, 0x2040).addRange(0xFE33, 0xFE34).addRange(0xFE4D, 0xFE4F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F);\nexports.characters = set;\n","const set = require('regenerate')(0x24, 0x58F, 0x60B, 0x9FB, 0xAF1, 0xBF9, 0xE3F, 0x17DB, 0xA838, 0xFDFC, 0xFE69, 0xFF04, 0x1E2FF, 0x1ECB0);\nset.addRange(0xA2, 0xA5).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x20A0, 0x20C0).addRange(0xFFE0, 0xFFE1).addRange(0xFFE5, 0xFFE6).addRange(0x11FDD, 0x11FE0);\nexports.characters = set;\n","const set = require('regenerate')(0x2D, 0x58A, 0x5BE, 0x1400, 0x1806, 0x2E17, 0x2E1A, 0x2E40, 0x2E5D, 0x301C, 0x3030, 0x30A0, 0xFE58, 0xFE63, 0xFF0D, 0x10EAD);\nset.addRange(0x2010, 0x2015).addRange(0x2E3A, 0x2E3B).addRange(0xFE31, 0xFE32);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x30, 0x39).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xBE6, 0xBEF).addRange(0xC66, 0xC6F).addRange(0xCE6, 0xCEF).addRange(0xD66, 0xD6F).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF29).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x17E0, 0x17E9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19D9).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0xA620, 0xA629).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x104A0, 0x104A9).addRange(0x10D30, 0x10D39).addRange(0x11066, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x11739).addRange(0x118E0, 0x118E9).addRange(0x11950, 0x11959);\nset.addRange(0x11C50, 0x11C59).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E950, 0x1E959).addRange(0x1FBF0, 0x1FBF9);\nexports.characters = set;\n","const set = require('regenerate')(0x1ABE);\nset.addRange(0x488, 0x489).addRange(0x20DD, 0x20E0).addRange(0x20E2, 0x20E4).addRange(0xA670, 0xA672);\nexports.characters = set;\n","const set = require('regenerate')(0xBB, 0x2019, 0x201D, 0x203A, 0x2E03, 0x2E05, 0x2E0A, 0x2E0D, 0x2E1D, 0x2E21);\n\nexports.characters = set;\n","const set = require('regenerate')(0xAD, 0x61C, 0x6DD, 0x70F, 0x8E2, 0x180E, 0xFEFF, 0x110BD, 0x110CD, 0xE0001);\nset.addRange(0x600, 0x605).addRange(0x890, 0x891).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x2064).addRange(0x2066, 0x206F).addRange(0xFFF9, 0xFFFB).addRange(0x13430, 0x1343F).addRange(0x1BCA0, 0x1BCA3).addRange(0x1D173, 0x1D17A).addRange(0xE0020, 0xE007F);\nexports.characters = set;\n","const set = require('regenerate')(0xAB, 0x2018, 0x201F, 0x2039, 0x2E02, 0x2E04, 0x2E09, 0x2E0C, 0x2E1C, 0x2E20);\nset.addRange(0x201B, 0x201C);\nexports.characters = set;\n","const set = require('regenerate')(0x3007, 0x10341, 0x1034A);\nset.addRange(0x16EE, 0x16F0).addRange(0x2160, 0x2182).addRange(0x2185, 0x2188).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0xA6E6, 0xA6EF).addRange(0x10140, 0x10174).addRange(0x103D1, 0x103D5).addRange(0x12400, 0x1246E);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xB5, 0xBA, 0x2EC, 0x2EE, 0x37F, 0x386, 0x38C, 0x559, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x7FA, 0x81A, 0x824, 0x828, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xEC6, 0xF00, 0x103F, 0x1061, 0x108E, 0x10C7, 0x10CD, 0x1258, 0x12C0, 0x17D7, 0x17DC, 0x18AA, 0x1AA7, 0x1CFA, 0x1F59, 0x1F5B, 0x1F5D, 0x1FBE, 0x2071, 0x207F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x214E, 0x2D27, 0x2D2D, 0x2D6F, 0x2E2F, 0xA7D3, 0xA8FB, 0xA9CF, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x16FE3, 0x1B132, 0x1B155, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1E14E, 0x1E94B, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x370, 0x374).addRange(0x376, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3F5).addRange(0x3F7, 0x481).addRange(0x48A, 0x52F).addRange(0x531, 0x556).addRange(0x560, 0x588).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6E5, 0x6E6).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x7F4, 0x7F5).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C9).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x971, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33);\nset.addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6);\nset.addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE46).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066).addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1878).addRange(0x1880, 0x1884);\nset.addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C7D).addRange(0x1C80, 0x1C88).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6).addRange(0x1D00, 0x1DBF).addRange(0x1E00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FBC).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FCC).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FE0, 0x1FEC).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFC).addRange(0x2090, 0x209C).addRange(0x210A, 0x2113).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x212F, 0x2139).addRange(0x213C, 0x213F).addRange(0x2145, 0x2149).addRange(0x2183, 0x2184).addRange(0x2C00, 0x2CE4).addRange(0x2CEB, 0x2CEE).addRange(0x2CF2, 0x2CF3).addRange(0x2D00, 0x2D25);\nset.addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3005, 0x3006).addRange(0x3031, 0x3035).addRange(0x303B, 0x303C).addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x30A1, 0x30FA).addRange(0x30FC, 0x30FF).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA48C).addRange(0xA4D0, 0xA4FD).addRange(0xA500, 0xA60C).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA640, 0xA66E).addRange(0xA67F, 0xA69D).addRange(0xA6A0, 0xA6E5).addRange(0xA717, 0xA71F).addRange(0xA722, 0xA788).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E6, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28);\nset.addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADD).addRange(0xAAE0, 0xAAEA).addRange(0xAAF2, 0xAAF4).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB69).addRange(0xAB70, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0xFF66, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C);\nset.addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10400, 0x1049D).addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48);\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118A0, 0x118DF).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7);\nset.addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B40, 0x16B43).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16E40, 0x16E7F).addRange(0x16F00, 0x16F4A).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F);\nset.addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6FA).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D734).addRange(0x1D736, 0x1D74E).addRange(0x1D750, 0x1D76E).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D7A8).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7CB).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E030, 0x1E06D).addRange(0x1E100, 0x1E12C).addRange(0x1E137, 0x1E13D).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EB).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1E900, 0x1E943).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89);\nset.addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x2028);\n\nexports.characters = set;\n","const set = require('regenerate')(0xB5, 0x101, 0x103, 0x105, 0x107, 0x109, 0x10B, 0x10D, 0x10F, 0x111, 0x113, 0x115, 0x117, 0x119, 0x11B, 0x11D, 0x11F, 0x121, 0x123, 0x125, 0x127, 0x129, 0x12B, 0x12D, 0x12F, 0x131, 0x133, 0x135, 0x13A, 0x13C, 0x13E, 0x140, 0x142, 0x144, 0x146, 0x14B, 0x14D, 0x14F, 0x151, 0x153, 0x155, 0x157, 0x159, 0x15B, 0x15D, 0x15F, 0x161, 0x163, 0x165, 0x167, 0x169, 0x16B, 0x16D, 0x16F, 0x171, 0x173, 0x175, 0x177, 0x17A, 0x17C, 0x183, 0x185, 0x188, 0x192, 0x195, 0x19E, 0x1A1, 0x1A3, 0x1A5, 0x1A8, 0x1AD, 0x1B0, 0x1B4, 0x1B6, 0x1C6, 0x1C9, 0x1CC, 0x1CE, 0x1D0, 0x1D2, 0x1D4, 0x1D6, 0x1D8, 0x1DA, 0x1DF, 0x1E1, 0x1E3, 0x1E5, 0x1E7, 0x1E9, 0x1EB, 0x1ED, 0x1F3, 0x1F5, 0x1F9, 0x1FB, 0x1FD, 0x1FF, 0x201, 0x203, 0x205, 0x207, 0x209, 0x20B, 0x20D, 0x20F, 0x211, 0x213, 0x215, 0x217, 0x219, 0x21B, 0x21D, 0x21F, 0x221, 0x223, 0x225, 0x227, 0x229, 0x22B, 0x22D, 0x22F, 0x231, 0x23C, 0x242, 0x247, 0x249, 0x24B, 0x24D, 0x371, 0x373, 0x377, 0x390, 0x3D9, 0x3DB, 0x3DD, 0x3DF, 0x3E1, 0x3E3, 0x3E5, 0x3E7, 0x3E9, 0x3EB, 0x3ED, 0x3F5, 0x3F8, 0x461, 0x463, 0x465, 0x467, 0x469, 0x46B, 0x46D, 0x46F, 0x471, 0x473, 0x475, 0x477, 0x479, 0x47B, 0x47D, 0x47F, 0x481, 0x48B, 0x48D, 0x48F, 0x491, 0x493, 0x495, 0x497, 0x499, 0x49B, 0x49D, 0x49F, 0x4A1, 0x4A3, 0x4A5, 0x4A7, 0x4A9, 0x4AB, 0x4AD, 0x4AF, 0x4B1, 0x4B3, 0x4B5, 0x4B7, 0x4B9, 0x4BB, 0x4BD, 0x4BF, 0x4C2, 0x4C4, 0x4C6, 0x4C8, 0x4CA, 0x4CC, 0x4D1, 0x4D3, 0x4D5, 0x4D7, 0x4D9, 0x4DB, 0x4DD, 0x4DF, 0x4E1, 0x4E3, 0x4E5, 0x4E7, 0x4E9, 0x4EB, 0x4ED, 0x4EF, 0x4F1, 0x4F3, 0x4F5, 0x4F7, 0x4F9, 0x4FB, 0x4FD, 0x4FF, 0x501, 0x503, 0x505, 0x507, 0x509, 0x50B, 0x50D, 0x50F, 0x511, 0x513, 0x515, 0x517, 0x519, 0x51B, 0x51D, 0x51F, 0x521, 0x523, 0x525, 0x527, 0x529, 0x52B, 0x52D, 0x52F, 0x1E01, 0x1E03, 0x1E05, 0x1E07, 0x1E09, 0x1E0B, 0x1E0D, 0x1E0F, 0x1E11, 0x1E13, 0x1E15, 0x1E17, 0x1E19, 0x1E1B, 0x1E1D, 0x1E1F, 0x1E21, 0x1E23, 0x1E25, 0x1E27, 0x1E29, 0x1E2B, 0x1E2D, 0x1E2F, 0x1E31, 0x1E33, 0x1E35, 0x1E37, 0x1E39, 0x1E3B, 0x1E3D, 0x1E3F, 0x1E41, 0x1E43, 0x1E45, 0x1E47, 0x1E49, 0x1E4B, 0x1E4D, 0x1E4F, 0x1E51, 0x1E53, 0x1E55, 0x1E57, 0x1E59, 0x1E5B, 0x1E5D, 0x1E5F, 0x1E61, 0x1E63, 0x1E65, 0x1E67, 0x1E69, 0x1E6B, 0x1E6D, 0x1E6F, 0x1E71, 0x1E73, 0x1E75, 0x1E77, 0x1E79, 0x1E7B, 0x1E7D, 0x1E7F, 0x1E81, 0x1E83, 0x1E85, 0x1E87, 0x1E89, 0x1E8B, 0x1E8D, 0x1E8F, 0x1E91, 0x1E93, 0x1E9F, 0x1EA1, 0x1EA3, 0x1EA5, 0x1EA7, 0x1EA9, 0x1EAB, 0x1EAD, 0x1EAF, 0x1EB1, 0x1EB3, 0x1EB5, 0x1EB7, 0x1EB9, 0x1EBB, 0x1EBD, 0x1EBF, 0x1EC1, 0x1EC3, 0x1EC5, 0x1EC7, 0x1EC9, 0x1ECB, 0x1ECD, 0x1ECF, 0x1ED1, 0x1ED3, 0x1ED5, 0x1ED7, 0x1ED9, 0x1EDB, 0x1EDD, 0x1EDF, 0x1EE1, 0x1EE3, 0x1EE5, 0x1EE7, 0x1EE9, 0x1EEB, 0x1EED, 0x1EEF, 0x1EF1, 0x1EF3, 0x1EF5, 0x1EF7, 0x1EF9, 0x1EFB, 0x1EFD, 0x1FBE, 0x210A, 0x2113, 0x212F, 0x2134, 0x2139, 0x214E, 0x2184, 0x2C61, 0x2C68, 0x2C6A, 0x2C6C, 0x2C71, 0x2C81, 0x2C83, 0x2C85, 0x2C87, 0x2C89, 0x2C8B, 0x2C8D, 0x2C8F, 0x2C91, 0x2C93, 0x2C95, 0x2C97, 0x2C99, 0x2C9B, 0x2C9D, 0x2C9F, 0x2CA1, 0x2CA3, 0x2CA5, 0x2CA7, 0x2CA9, 0x2CAB, 0x2CAD, 0x2CAF, 0x2CB1, 0x2CB3, 0x2CB5, 0x2CB7, 0x2CB9, 0x2CBB, 0x2CBD, 0x2CBF, 0x2CC1, 0x2CC3, 0x2CC5, 0x2CC7, 0x2CC9, 0x2CCB, 0x2CCD, 0x2CCF, 0x2CD1, 0x2CD3, 0x2CD5, 0x2CD7, 0x2CD9, 0x2CDB, 0x2CDD, 0x2CDF, 0x2CE1, 0x2CEC, 0x2CEE, 0x2CF3, 0x2D27, 0x2D2D, 0xA641, 0xA643, 0xA645, 0xA647, 0xA649, 0xA64B, 0xA64D, 0xA64F, 0xA651, 0xA653, 0xA655, 0xA657, 0xA659, 0xA65B, 0xA65D, 0xA65F, 0xA661, 0xA663, 0xA665, 0xA667, 0xA669, 0xA66B, 0xA66D, 0xA681, 0xA683, 0xA685, 0xA687, 0xA689, 0xA68B, 0xA68D, 0xA68F, 0xA691, 0xA693, 0xA695, 0xA697, 0xA699, 0xA69B, 0xA723, 0xA725, 0xA727, 0xA729, 0xA72B, 0xA72D, 0xA733, 0xA735, 0xA737, 0xA739, 0xA73B, 0xA73D, 0xA73F, 0xA741, 0xA743, 0xA745, 0xA747, 0xA749, 0xA74B, 0xA74D, 0xA74F, 0xA751, 0xA753, 0xA755, 0xA757, 0xA759, 0xA75B, 0xA75D, 0xA75F, 0xA761, 0xA763, 0xA765, 0xA767, 0xA769, 0xA76B, 0xA76D, 0xA76F, 0xA77A, 0xA77C, 0xA77F, 0xA781, 0xA783, 0xA785, 0xA787, 0xA78C, 0xA78E, 0xA791, 0xA797, 0xA799, 0xA79B, 0xA79D, 0xA79F, 0xA7A1, 0xA7A3, 0xA7A5, 0xA7A7, 0xA7A9, 0xA7AF, 0xA7B5, 0xA7B7, 0xA7B9, 0xA7BB, 0xA7BD, 0xA7BF, 0xA7C1, 0xA7C3, 0xA7C8, 0xA7CA, 0xA7D1, 0xA7D3, 0xA7D5, 0xA7D7, 0xA7D9, 0xA7F6, 0xA7FA, 0x1D4BB, 0x1D7CB);\nset.addRange(0x61, 0x7A).addRange(0xDF, 0xF6).addRange(0xF8, 0xFF).addRange(0x137, 0x138).addRange(0x148, 0x149).addRange(0x17E, 0x180).addRange(0x18C, 0x18D).addRange(0x199, 0x19B).addRange(0x1AA, 0x1AB).addRange(0x1B9, 0x1BA).addRange(0x1BD, 0x1BF).addRange(0x1DC, 0x1DD).addRange(0x1EF, 0x1F0).addRange(0x233, 0x239).addRange(0x23F, 0x240).addRange(0x24F, 0x293).addRange(0x295, 0x2AF).addRange(0x37B, 0x37D).addRange(0x3AC, 0x3CE).addRange(0x3D0, 0x3D1).addRange(0x3D5, 0x3D7).addRange(0x3EF, 0x3F3).addRange(0x3FB, 0x3FC).addRange(0x430, 0x45F).addRange(0x4CE, 0x4CF).addRange(0x560, 0x588).addRange(0x10D0, 0x10FA).addRange(0x10FD, 0x10FF).addRange(0x13F8, 0x13FD).addRange(0x1C80, 0x1C88).addRange(0x1D00, 0x1D2B).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1D9A).addRange(0x1E95, 0x1E9D).addRange(0x1EFF, 0x1F07).addRange(0x1F10, 0x1F15).addRange(0x1F20, 0x1F27).addRange(0x1F30, 0x1F37).addRange(0x1F40, 0x1F45).addRange(0x1F50, 0x1F57).addRange(0x1F60, 0x1F67).addRange(0x1F70, 0x1F7D).addRange(0x1F80, 0x1F87).addRange(0x1F90, 0x1F97).addRange(0x1FA0, 0x1FA7).addRange(0x1FB0, 0x1FB4).addRange(0x1FB6, 0x1FB7).addRange(0x1FC2, 0x1FC4).addRange(0x1FC6, 0x1FC7).addRange(0x1FD0, 0x1FD3).addRange(0x1FD6, 0x1FD7);\nset.addRange(0x1FE0, 0x1FE7).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FF7).addRange(0x210E, 0x210F).addRange(0x213C, 0x213D).addRange(0x2146, 0x2149).addRange(0x2C30, 0x2C5F).addRange(0x2C65, 0x2C66).addRange(0x2C73, 0x2C74).addRange(0x2C76, 0x2C7B).addRange(0x2CE3, 0x2CE4).addRange(0x2D00, 0x2D25).addRange(0xA72F, 0xA731).addRange(0xA771, 0xA778).addRange(0xA793, 0xA795).addRange(0xAB30, 0xAB5A).addRange(0xAB60, 0xAB68).addRange(0xAB70, 0xABBF).addRange(0xFB00, 0xFB06).addRange(0xFB13, 0xFB17).addRange(0xFF41, 0xFF5A).addRange(0x10428, 0x1044F).addRange(0x104D8, 0x104FB).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC).addRange(0x10CC0, 0x10CF2).addRange(0x118C0, 0x118DF).addRange(0x16E60, 0x16E7F).addRange(0x1D41A, 0x1D433).addRange(0x1D44E, 0x1D454).addRange(0x1D456, 0x1D467).addRange(0x1D482, 0x1D49B).addRange(0x1D4B6, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D4CF).addRange(0x1D4EA, 0x1D503).addRange(0x1D51E, 0x1D537).addRange(0x1D552, 0x1D56B).addRange(0x1D586, 0x1D59F).addRange(0x1D5BA, 0x1D5D3).addRange(0x1D5EE, 0x1D607).addRange(0x1D622, 0x1D63B).addRange(0x1D656, 0x1D66F).addRange(0x1D68A, 0x1D6A5).addRange(0x1D6C2, 0x1D6DA).addRange(0x1D6DC, 0x1D6E1).addRange(0x1D6FC, 0x1D714).addRange(0x1D716, 0x1D71B).addRange(0x1D736, 0x1D74E);\nset.addRange(0x1D750, 0x1D755).addRange(0x1D770, 0x1D788).addRange(0x1D78A, 0x1D78F).addRange(0x1D7AA, 0x1D7C2).addRange(0x1D7C4, 0x1D7C9).addRange(0x1DF00, 0x1DF09).addRange(0x1DF0B, 0x1DF1E).addRange(0x1DF25, 0x1DF2A).addRange(0x1E922, 0x1E943);\nexports.characters = set;\n","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x9BC, 0x9D7, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xB3C, 0xB82, 0xBD7, 0xC3C, 0xCBC, 0xCF3, 0xD57, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x108F, 0x17DD, 0x180F, 0x18A9, 0x1A7F, 0x1CED, 0x1CF4, 0x2D7F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9E5, 0xAA43, 0xAAB0, 0xAAC1, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11070, 0x110C2, 0x11173, 0x1123E, 0x11241, 0x11357, 0x1145E, 0x11940, 0x119E4, 0x11A47, 0x11D3A, 0x11D47, 0x11F03, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE);\nset.addRange(0x300, 0x36F).addRange(0x483, 0x489).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x903).addRange(0x93A, 0x93C).addRange(0x93E, 0x94F).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x981, 0x983).addRange(0x9BE, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CD).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA03).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA83).addRange(0xABE, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB01, 0xB03).addRange(0xB3E, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB62, 0xB63).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD);\nset.addRange(0xC00, 0xC04).addRange(0xC3E, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xC81, 0xC83).addRange(0xCBE, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD03).addRange(0xD3B, 0xD3C).addRange(0xD3E, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4D).addRange(0xD62, 0xD63).addRange(0xD81, 0xD83).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF3E, 0xF3F).addRange(0xF71, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102B, 0x103E).addRange(0x1056, 0x1059).addRange(0x105E, 0x1060).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1071, 0x1074).addRange(0x1082, 0x108D).addRange(0x109A, 0x109D).addRange(0x135D, 0x135F).addRange(0x1712, 0x1715).addRange(0x1732, 0x1734).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1A17, 0x1A1B);\nset.addRange(0x1A55, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1AB0, 0x1ACE).addRange(0x1B00, 0x1B04).addRange(0x1B34, 0x1B44).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B82).addRange(0x1BA1, 0x1BAD).addRange(0x1BE6, 0x1BF3).addRange(0x1C24, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE8).addRange(0x1CF7, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302F).addRange(0x3099, 0x309A).addRange(0xA66F, 0xA672).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA823, 0xA827).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA953).addRange(0xA980, 0xA983).addRange(0xA9B3, 0xA9C0).addRange(0xAA29, 0xAA36).addRange(0xAA4C, 0xAA4D).addRange(0xAA7B, 0xAA7D).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEB, 0xAAEF).addRange(0xAAF5, 0xAAF6).addRange(0xABE3, 0xABEA).addRange(0xABEC, 0xABED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC);\nset.addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11000, 0x11002).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11082).addRange(0x110B0, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x11134).addRange(0x11145, 0x11146).addRange(0x11180, 0x11182).addRange(0x111B3, 0x111C0).addRange(0x111C9, 0x111CC).addRange(0x111CE, 0x111CF).addRange(0x1122C, 0x11237).addRange(0x112DF, 0x112EA).addRange(0x11300, 0x11303).addRange(0x1133B, 0x1133C).addRange(0x1133E, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11435, 0x11446).addRange(0x114B0, 0x114C3).addRange(0x115AF, 0x115B5).addRange(0x115B8, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11630, 0x11640).addRange(0x116AB, 0x116B7).addRange(0x1171D, 0x1172B).addRange(0x1182C, 0x1183A).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x1193E).addRange(0x11942, 0x11943).addRange(0x119D1, 0x119D7).addRange(0x119DA, 0x119E0).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A39).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A5B).addRange(0x11A8A, 0x11A99).addRange(0x11C2F, 0x11C36).addRange(0x11C38, 0x11C3F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D);\nset.addRange(0x11D3F, 0x11D45).addRange(0x11D8A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D97).addRange(0x11EF3, 0x11EF6).addRange(0x11F00, 0x11F01).addRange(0x11F34, 0x11F3A).addRange(0x11F3E, 0x11F42).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F51, 0x16F87).addRange(0x16F8F, 0x16F92).addRange(0x16FF0, 0x16FF1).addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D165, 0x1D169).addRange(0x1D16D, 0x1D172).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0x2B, 0x7C, 0x7E, 0xAC, 0xB1, 0xD7, 0xF7, 0x3F6, 0x2044, 0x2052, 0x2118, 0x214B, 0x21A0, 0x21A3, 0x21A6, 0x21AE, 0x21D2, 0x21D4, 0x237C, 0x25B7, 0x25C1, 0x266F, 0xFB29, 0xFE62, 0xFF0B, 0xFF5C, 0xFF5E, 0xFFE2, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3);\nset.addRange(0x3C, 0x3E).addRange(0x606, 0x608).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x2140, 0x2144).addRange(0x2190, 0x2194).addRange(0x219A, 0x219B).addRange(0x21CE, 0x21CF).addRange(0x21F4, 0x22FF).addRange(0x2320, 0x2321).addRange(0x239B, 0x23B3).addRange(0x23DC, 0x23E1).addRange(0x25F8, 0x25FF).addRange(0x27C0, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x27FF).addRange(0x2900, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2AFF).addRange(0x2B30, 0x2B44).addRange(0x2B47, 0x2B4C).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE9, 0xFFEC).addRange(0x1EEF0, 0x1EEF1);\nexports.characters = set;\n","const set = require('regenerate')(0x2EC, 0x2EE, 0x374, 0x37A, 0x559, 0x640, 0x7FA, 0x81A, 0x824, 0x828, 0x8C9, 0x971, 0xE46, 0xEC6, 0x10FC, 0x17D7, 0x1843, 0x1AA7, 0x1D78, 0x2071, 0x207F, 0x2D6F, 0x2E2F, 0x3005, 0x303B, 0xA015, 0xA60C, 0xA67F, 0xA770, 0xA788, 0xA9CF, 0xA9E6, 0xAA70, 0xAADD, 0xAB69, 0xFF70, 0x16FE3, 0x1E4EB, 0x1E94B);\nset.addRange(0x2B0, 0x2C1).addRange(0x2C6, 0x2D1).addRange(0x2E0, 0x2E4).addRange(0x6E5, 0x6E6).addRange(0x7F4, 0x7F5).addRange(0x1C78, 0x1C7D).addRange(0x1D2C, 0x1D6A).addRange(0x1D9B, 0x1DBF).addRange(0x2090, 0x209C).addRange(0x2C7C, 0x2C7D).addRange(0x3031, 0x3035).addRange(0x309D, 0x309E).addRange(0x30FC, 0x30FE).addRange(0xA4F8, 0xA4FD).addRange(0xA69C, 0xA69D).addRange(0xA717, 0xA71F).addRange(0xA7F2, 0xA7F4).addRange(0xA7F8, 0xA7F9).addRange(0xAAF3, 0xAAF4).addRange(0xAB5C, 0xAB5F).addRange(0xFF9E, 0xFF9F).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x16B40, 0x16B43).addRange(0x16F93, 0x16F9F).addRange(0x16FE0, 0x16FE1).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1E030, 0x1E06D).addRange(0x1E137, 0x1E13D);\nexports.characters = set;\n","const set = require('regenerate')(0x5E, 0x60, 0xA8, 0xAF, 0xB4, 0xB8, 0x2ED, 0x375, 0x888, 0x1FBD, 0xAB5B, 0xFF3E, 0xFF40, 0xFFE3);\nset.addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x309B, 0x309C).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0x1F3FB, 0x1F3FF);\nexports.characters = set;\n","const set = require('regenerate')(0x5BF, 0x5C7, 0x670, 0x711, 0x7FD, 0x93A, 0x93C, 0x94D, 0x981, 0x9BC, 0x9CD, 0x9FE, 0xA3C, 0xA51, 0xA75, 0xABC, 0xACD, 0xB01, 0xB3C, 0xB3F, 0xB4D, 0xB82, 0xBC0, 0xBCD, 0xC00, 0xC04, 0xC3C, 0xC81, 0xCBC, 0xCBF, 0xCC6, 0xD4D, 0xD81, 0xDCA, 0xDD6, 0xE31, 0xEB1, 0xF35, 0xF37, 0xF39, 0xFC6, 0x1082, 0x108D, 0x109D, 0x17C6, 0x17DD, 0x180F, 0x18A9, 0x1932, 0x1A1B, 0x1A56, 0x1A60, 0x1A62, 0x1A7F, 0x1B34, 0x1B3C, 0x1B42, 0x1BE6, 0x1BED, 0x1CED, 0x1CF4, 0x20E1, 0x2D7F, 0xA66F, 0xA802, 0xA806, 0xA80B, 0xA82C, 0xA8FF, 0xA9B3, 0xA9E5, 0xAA43, 0xAA4C, 0xAA7C, 0xAAB0, 0xAAC1, 0xAAF6, 0xABE5, 0xABE8, 0xABED, 0xFB1E, 0x101FD, 0x102E0, 0x10A3F, 0x11001, 0x11070, 0x110C2, 0x11173, 0x111CF, 0x11234, 0x1123E, 0x11241, 0x112DF, 0x11340, 0x11446, 0x1145E, 0x114BA, 0x1163D, 0x116AB, 0x116AD, 0x116B7, 0x1193E, 0x11943, 0x119E0, 0x11A47, 0x11C3F, 0x11D3A, 0x11D47, 0x11D95, 0x11D97, 0x11F40, 0x11F42, 0x13440, 0x16F4F, 0x16FE4, 0x1DA75, 0x1DA84, 0x1E08F, 0x1E2AE);\nset.addRange(0x300, 0x36F).addRange(0x483, 0x487).addRange(0x591, 0x5BD).addRange(0x5C1, 0x5C2).addRange(0x5C4, 0x5C5).addRange(0x610, 0x61A).addRange(0x64B, 0x65F).addRange(0x6D6, 0x6DC).addRange(0x6DF, 0x6E4).addRange(0x6E7, 0x6E8).addRange(0x6EA, 0x6ED).addRange(0x730, 0x74A).addRange(0x7A6, 0x7B0).addRange(0x7EB, 0x7F3).addRange(0x816, 0x819).addRange(0x81B, 0x823).addRange(0x825, 0x827).addRange(0x829, 0x82D).addRange(0x859, 0x85B).addRange(0x898, 0x89F).addRange(0x8CA, 0x8E1).addRange(0x8E3, 0x902).addRange(0x941, 0x948).addRange(0x951, 0x957).addRange(0x962, 0x963).addRange(0x9C1, 0x9C4).addRange(0x9E2, 0x9E3).addRange(0xA01, 0xA02).addRange(0xA41, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA70, 0xA71).addRange(0xA81, 0xA82).addRange(0xAC1, 0xAC5).addRange(0xAC7, 0xAC8).addRange(0xAE2, 0xAE3).addRange(0xAFA, 0xAFF).addRange(0xB41, 0xB44).addRange(0xB55, 0xB56).addRange(0xB62, 0xB63).addRange(0xC3E, 0xC40).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC62, 0xC63).addRange(0xCCC, 0xCCD).addRange(0xCE2, 0xCE3).addRange(0xD00, 0xD01).addRange(0xD3B, 0xD3C).addRange(0xD41, 0xD44).addRange(0xD62, 0xD63);\nset.addRange(0xDD2, 0xDD4).addRange(0xE34, 0xE3A).addRange(0xE47, 0xE4E).addRange(0xEB4, 0xEBC).addRange(0xEC8, 0xECE).addRange(0xF18, 0xF19).addRange(0xF71, 0xF7E).addRange(0xF80, 0xF84).addRange(0xF86, 0xF87).addRange(0xF8D, 0xF97).addRange(0xF99, 0xFBC).addRange(0x102D, 0x1030).addRange(0x1032, 0x1037).addRange(0x1039, 0x103A).addRange(0x103D, 0x103E).addRange(0x1058, 0x1059).addRange(0x105E, 0x1060).addRange(0x1071, 0x1074).addRange(0x1085, 0x1086).addRange(0x135D, 0x135F).addRange(0x1712, 0x1714).addRange(0x1732, 0x1733).addRange(0x1752, 0x1753).addRange(0x1772, 0x1773).addRange(0x17B4, 0x17B5).addRange(0x17B7, 0x17BD).addRange(0x17C9, 0x17D3).addRange(0x180B, 0x180D).addRange(0x1885, 0x1886).addRange(0x1920, 0x1922).addRange(0x1927, 0x1928).addRange(0x1939, 0x193B).addRange(0x1A17, 0x1A18).addRange(0x1A58, 0x1A5E).addRange(0x1A65, 0x1A6C).addRange(0x1A73, 0x1A7C).addRange(0x1AB0, 0x1ABD).addRange(0x1ABF, 0x1ACE).addRange(0x1B00, 0x1B03).addRange(0x1B36, 0x1B3A).addRange(0x1B6B, 0x1B73).addRange(0x1B80, 0x1B81).addRange(0x1BA2, 0x1BA5).addRange(0x1BA8, 0x1BA9).addRange(0x1BAB, 0x1BAD).addRange(0x1BE8, 0x1BE9).addRange(0x1BEF, 0x1BF1).addRange(0x1C2C, 0x1C33).addRange(0x1C36, 0x1C37).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0);\nset.addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x20D0, 0x20DC).addRange(0x20E5, 0x20F0).addRange(0x2CEF, 0x2CF1).addRange(0x2DE0, 0x2DFF).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xA674, 0xA67D).addRange(0xA69E, 0xA69F).addRange(0xA6F0, 0xA6F1).addRange(0xA825, 0xA826).addRange(0xA8C4, 0xA8C5).addRange(0xA8E0, 0xA8F1).addRange(0xA926, 0xA92D).addRange(0xA947, 0xA951).addRange(0xA980, 0xA982).addRange(0xA9B6, 0xA9B9).addRange(0xA9BC, 0xA9BD).addRange(0xAA29, 0xAA2E).addRange(0xAA31, 0xAA32).addRange(0xAA35, 0xAA36).addRange(0xAAB2, 0xAAB4).addRange(0xAAB7, 0xAAB8).addRange(0xAABE, 0xAABF).addRange(0xAAEC, 0xAAED).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2F).addRange(0x10376, 0x1037A).addRange(0x10A01, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A0F).addRange(0x10A38, 0x10A3A).addRange(0x10AE5, 0x10AE6).addRange(0x10D24, 0x10D27).addRange(0x10EAB, 0x10EAC).addRange(0x10EFD, 0x10EFF).addRange(0x10F46, 0x10F50).addRange(0x10F82, 0x10F85).addRange(0x11038, 0x11046).addRange(0x11073, 0x11074).addRange(0x1107F, 0x11081).addRange(0x110B3, 0x110B6).addRange(0x110B9, 0x110BA).addRange(0x11100, 0x11102).addRange(0x11127, 0x1112B).addRange(0x1112D, 0x11134).addRange(0x11180, 0x11181).addRange(0x111B6, 0x111BE).addRange(0x111C9, 0x111CC);\nset.addRange(0x1122F, 0x11231).addRange(0x11236, 0x11237).addRange(0x112E3, 0x112EA).addRange(0x11300, 0x11301).addRange(0x1133B, 0x1133C).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11438, 0x1143F).addRange(0x11442, 0x11444).addRange(0x114B3, 0x114B8).addRange(0x114BF, 0x114C0).addRange(0x114C2, 0x114C3).addRange(0x115B2, 0x115B5).addRange(0x115BC, 0x115BD).addRange(0x115BF, 0x115C0).addRange(0x115DC, 0x115DD).addRange(0x11633, 0x1163A).addRange(0x1163F, 0x11640).addRange(0x116B0, 0x116B5).addRange(0x1171D, 0x1171F).addRange(0x11722, 0x11725).addRange(0x11727, 0x1172B).addRange(0x1182F, 0x11837).addRange(0x11839, 0x1183A).addRange(0x1193B, 0x1193C).addRange(0x119D4, 0x119D7).addRange(0x119DA, 0x119DB).addRange(0x11A01, 0x11A0A).addRange(0x11A33, 0x11A38).addRange(0x11A3B, 0x11A3E).addRange(0x11A51, 0x11A56).addRange(0x11A59, 0x11A5B).addRange(0x11A8A, 0x11A96).addRange(0x11A98, 0x11A99).addRange(0x11C30, 0x11C36).addRange(0x11C38, 0x11C3D).addRange(0x11C92, 0x11CA7).addRange(0x11CAA, 0x11CB0).addRange(0x11CB2, 0x11CB3).addRange(0x11CB5, 0x11CB6).addRange(0x11D31, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D45).addRange(0x11D90, 0x11D91).addRange(0x11EF3, 0x11EF4).addRange(0x11F00, 0x11F01).addRange(0x11F36, 0x11F3A).addRange(0x13447, 0x13455).addRange(0x16AF0, 0x16AF4).addRange(0x16B30, 0x16B36).addRange(0x16F8F, 0x16F92);\nset.addRange(0x1BC9D, 0x1BC9E).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0x1D242, 0x1D244).addRange(0x1DA00, 0x1DA36).addRange(0x1DA3B, 0x1DA6C).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A).addRange(0x1E130, 0x1E136).addRange(0x1E2EC, 0x1E2EF).addRange(0x1E4EC, 0x1E4EF).addRange(0x1E8D0, 0x1E8D6).addRange(0x1E944, 0x1E94A).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')(0xB9, 0x2070, 0x2CFD, 0x3007, 0x10341, 0x1034A);\nset.addRange(0x30, 0x39).addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x660, 0x669).addRange(0x6F0, 0x6F9).addRange(0x7C0, 0x7C9).addRange(0x966, 0x96F).addRange(0x9E6, 0x9EF).addRange(0x9F4, 0x9F9).addRange(0xA66, 0xA6F).addRange(0xAE6, 0xAEF).addRange(0xB66, 0xB6F).addRange(0xB72, 0xB77).addRange(0xBE6, 0xBF2).addRange(0xC66, 0xC6F).addRange(0xC78, 0xC7E).addRange(0xCE6, 0xCEF).addRange(0xD58, 0xD5E).addRange(0xD66, 0xD78).addRange(0xDE6, 0xDEF).addRange(0xE50, 0xE59).addRange(0xED0, 0xED9).addRange(0xF20, 0xF33).addRange(0x1040, 0x1049).addRange(0x1090, 0x1099).addRange(0x1369, 0x137C).addRange(0x16EE, 0x16F0).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x1810, 0x1819).addRange(0x1946, 0x194F).addRange(0x19D0, 0x19DA).addRange(0x1A80, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1B50, 0x1B59).addRange(0x1BB0, 0x1BB9).addRange(0x1C40, 0x1C49).addRange(0x1C50, 0x1C59).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x2182).addRange(0x2185, 0x2189).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3021, 0x3029).addRange(0x3038, 0x303A).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F);\nset.addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA620, 0xA629).addRange(0xA6E6, 0xA6EF).addRange(0xA830, 0xA835).addRange(0xA8D0, 0xA8D9).addRange(0xA900, 0xA909).addRange(0xA9D0, 0xA9D9).addRange(0xA9F0, 0xA9F9).addRange(0xAA50, 0xAA59).addRange(0xABF0, 0xABF9).addRange(0xFF10, 0xFF19).addRange(0x10107, 0x10133).addRange(0x10140, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x103D1, 0x103D5).addRange(0x104A0, 0x104A9).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10D30, 0x10D39).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x1106F).addRange(0x110F0, 0x110F9).addRange(0x11136, 0x1113F).addRange(0x111D0, 0x111D9).addRange(0x111E1, 0x111F4).addRange(0x112F0, 0x112F9).addRange(0x11450, 0x11459).addRange(0x114D0, 0x114D9).addRange(0x11650, 0x11659).addRange(0x116C0, 0x116C9).addRange(0x11730, 0x1173B);\nset.addRange(0x118E0, 0x118F2).addRange(0x11950, 0x11959).addRange(0x11C50, 0x11C6C).addRange(0x11D50, 0x11D59).addRange(0x11DA0, 0x11DA9).addRange(0x11F50, 0x11F59).addRange(0x11FC0, 0x11FD4).addRange(0x12400, 0x1246E).addRange(0x16A60, 0x16A69).addRange(0x16AC0, 0x16AC9).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1D7CE, 0x1D7FF).addRange(0x1E140, 0x1E149).addRange(0x1E2F0, 0x1E2F9).addRange(0x1E4F0, 0x1E4F9).addRange(0x1E8C7, 0x1E8CF).addRange(0x1E950, 0x1E959).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C).addRange(0x1FBF0, 0x1FBF9);\nexports.characters = set;\n","const set = require('regenerate')(0x28, 0x5B, 0x7B, 0xF3A, 0xF3C, 0x169B, 0x201A, 0x201E, 0x2045, 0x207D, 0x208D, 0x2308, 0x230A, 0x2329, 0x2768, 0x276A, 0x276C, 0x276E, 0x2770, 0x2772, 0x2774, 0x27C5, 0x27E6, 0x27E8, 0x27EA, 0x27EC, 0x27EE, 0x2983, 0x2985, 0x2987, 0x2989, 0x298B, 0x298D, 0x298F, 0x2991, 0x2993, 0x2995, 0x2997, 0x29D8, 0x29DA, 0x29FC, 0x2E22, 0x2E24, 0x2E26, 0x2E28, 0x2E42, 0x2E55, 0x2E57, 0x2E59, 0x2E5B, 0x3008, 0x300A, 0x300C, 0x300E, 0x3010, 0x3014, 0x3016, 0x3018, 0x301A, 0x301D, 0xFD3F, 0xFE17, 0xFE35, 0xFE37, 0xFE39, 0xFE3B, 0xFE3D, 0xFE3F, 0xFE41, 0xFE43, 0xFE47, 0xFE59, 0xFE5B, 0xFE5D, 0xFF08, 0xFF3B, 0xFF5B, 0xFF5F, 0xFF62);\n\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xBA, 0x1BB, 0x294, 0x6D5, 0x6FF, 0x710, 0x7B1, 0x93D, 0x950, 0x9B2, 0x9BD, 0x9CE, 0x9FC, 0xA5E, 0xABD, 0xAD0, 0xAF9, 0xB3D, 0xB71, 0xB83, 0xB9C, 0xBD0, 0xC3D, 0xC5D, 0xC80, 0xCBD, 0xD3D, 0xD4E, 0xDBD, 0xE84, 0xEA5, 0xEBD, 0xF00, 0x103F, 0x1061, 0x108E, 0x1258, 0x12C0, 0x17DC, 0x18AA, 0x1CFA, 0x3006, 0x303C, 0x309F, 0x30FF, 0xA66E, 0xA78F, 0xA7F7, 0xA8FB, 0xAA7A, 0xAAB1, 0xAAC0, 0xAAC2, 0xAAF2, 0xFB1D, 0xFB3E, 0x10808, 0x1083C, 0x10A00, 0x10F27, 0x11075, 0x11144, 0x11147, 0x11176, 0x111DA, 0x111DC, 0x11288, 0x1133D, 0x11350, 0x114C7, 0x11644, 0x116B8, 0x11909, 0x1193F, 0x11941, 0x119E1, 0x119E3, 0x11A00, 0x11A3A, 0x11A50, 0x11A9D, 0x11C40, 0x11D46, 0x11D98, 0x11F02, 0x11FB0, 0x16F50, 0x1B132, 0x1B155, 0x1DF0A, 0x1E14E, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x1C0, 0x1C3).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F2).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x66E, 0x66F).addRange(0x671, 0x6D3).addRange(0x6EE, 0x6EF).addRange(0x6FA, 0x6FC).addRange(0x712, 0x72F).addRange(0x74D, 0x7A5).addRange(0x7CA, 0x7EA).addRange(0x800, 0x815).addRange(0x840, 0x858).addRange(0x860, 0x86A).addRange(0x870, 0x887).addRange(0x889, 0x88E).addRange(0x8A0, 0x8C8).addRange(0x904, 0x939).addRange(0x958, 0x961).addRange(0x972, 0x980).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E1).addRange(0x9F0, 0x9F1).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA59, 0xA5C).addRange(0xA72, 0xA74).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xAE0, 0xAE1).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39);\nset.addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB61).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xC05, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC61).addRange(0xC85, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE1).addRange(0xCF1, 0xCF2).addRange(0xD04, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD3A).addRange(0xD54, 0xD56).addRange(0xD5F, 0xD61).addRange(0xD7A, 0xD7F).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xE01, 0xE30).addRange(0xE32, 0xE33).addRange(0xE40, 0xE45).addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEB0).addRange(0xEB2, 0xEB3).addRange(0xEC0, 0xEC4).addRange(0xEDC, 0xEDF).addRange(0xF40, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF88, 0xF8C).addRange(0x1000, 0x102A).addRange(0x1050, 0x1055).addRange(0x105A, 0x105D).addRange(0x1065, 0x1066);\nset.addRange(0x106E, 0x1070).addRange(0x1075, 0x1081).addRange(0x1100, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x1380, 0x138F).addRange(0x1401, 0x166C).addRange(0x166F, 0x167F).addRange(0x1681, 0x169A).addRange(0x16A0, 0x16EA).addRange(0x16F1, 0x16F8).addRange(0x1700, 0x1711).addRange(0x171F, 0x1731).addRange(0x1740, 0x1751).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1780, 0x17B3).addRange(0x1820, 0x1842).addRange(0x1844, 0x1878).addRange(0x1880, 0x1884).addRange(0x1887, 0x18A8).addRange(0x18B0, 0x18F5).addRange(0x1900, 0x191E).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974).addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x1A00, 0x1A16).addRange(0x1A20, 0x1A54).addRange(0x1B05, 0x1B33).addRange(0x1B45, 0x1B4C).addRange(0x1B83, 0x1BA0).addRange(0x1BAE, 0x1BAF).addRange(0x1BBA, 0x1BE5).addRange(0x1C00, 0x1C23).addRange(0x1C4D, 0x1C4F).addRange(0x1C5A, 0x1C77).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF6);\nset.addRange(0x2135, 0x2138).addRange(0x2D30, 0x2D67).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0x3041, 0x3096).addRange(0x30A1, 0x30FA).addRange(0x3105, 0x312F).addRange(0x3131, 0x318E).addRange(0x31A0, 0x31BF).addRange(0x31F0, 0x31FF).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0xA014).addRange(0xA016, 0xA48C).addRange(0xA4D0, 0xA4F7).addRange(0xA500, 0xA60B).addRange(0xA610, 0xA61F).addRange(0xA62A, 0xA62B).addRange(0xA6A0, 0xA6E5).addRange(0xA7FB, 0xA801).addRange(0xA803, 0xA805).addRange(0xA807, 0xA80A).addRange(0xA80C, 0xA822).addRange(0xA840, 0xA873).addRange(0xA882, 0xA8B3).addRange(0xA8F2, 0xA8F7).addRange(0xA8FD, 0xA8FE).addRange(0xA90A, 0xA925).addRange(0xA930, 0xA946).addRange(0xA960, 0xA97C).addRange(0xA984, 0xA9B2).addRange(0xA9E0, 0xA9E4).addRange(0xA9E7, 0xA9EF).addRange(0xA9FA, 0xA9FE).addRange(0xAA00, 0xAA28).addRange(0xAA40, 0xAA42).addRange(0xAA44, 0xAA4B).addRange(0xAA60, 0xAA6F).addRange(0xAA71, 0xAA76).addRange(0xAA7E, 0xAAAF).addRange(0xAAB5, 0xAAB6).addRange(0xAAB9, 0xAABD).addRange(0xAADB, 0xAADC).addRange(0xAAE0, 0xAAEA).addRange(0xAB01, 0xAB06);\nset.addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0xABC0, 0xABE2).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFB1F, 0xFB28).addRange(0xFB2A, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFBB1).addRange(0xFBD3, 0xFD3D).addRange(0xFD50, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFB).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC).addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10280, 0x1029C).addRange(0x102A0, 0x102D0).addRange(0x10300, 0x1031F).addRange(0x1032D, 0x10340).addRange(0x10342, 0x10349).addRange(0x10350, 0x10375).addRange(0x10380, 0x1039D).addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103CF).addRange(0x10450, 0x1049D).addRange(0x10500, 0x10527).addRange(0x10530, 0x10563).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838).addRange(0x1083F, 0x10855).addRange(0x10860, 0x10876).addRange(0x10880, 0x1089E).addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x10900, 0x10915).addRange(0x10920, 0x10939).addRange(0x10980, 0x109B7).addRange(0x109BE, 0x109BF).addRange(0x10A10, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A60, 0x10A7C).addRange(0x10A80, 0x10A9C).addRange(0x10AC0, 0x10AC7).addRange(0x10AC9, 0x10AE4).addRange(0x10B00, 0x10B35).addRange(0x10B40, 0x10B55).addRange(0x10B60, 0x10B72).addRange(0x10B80, 0x10B91).addRange(0x10C00, 0x10C48).addRange(0x10D00, 0x10D23).addRange(0x10E80, 0x10EA9).addRange(0x10EB0, 0x10EB1).addRange(0x10F00, 0x10F1C).addRange(0x10F30, 0x10F45).addRange(0x10F70, 0x10F81).addRange(0x10FB0, 0x10FC4).addRange(0x10FE0, 0x10FF6).addRange(0x11003, 0x11037).addRange(0x11071, 0x11072).addRange(0x11083, 0x110AF).addRange(0x110D0, 0x110E8).addRange(0x11103, 0x11126).addRange(0x11150, 0x11172).addRange(0x11183, 0x111B2).addRange(0x111C1, 0x111C4).addRange(0x11200, 0x11211).addRange(0x11213, 0x1122B).addRange(0x1123F, 0x11240).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A8).addRange(0x112B0, 0x112DE).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328);\nset.addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1135D, 0x11361).addRange(0x11400, 0x11434).addRange(0x11447, 0x1144A).addRange(0x1145F, 0x11461).addRange(0x11480, 0x114AF).addRange(0x114C4, 0x114C5).addRange(0x11580, 0x115AE).addRange(0x115D8, 0x115DB).addRange(0x11600, 0x1162F).addRange(0x11680, 0x116AA).addRange(0x11700, 0x1171A).addRange(0x11740, 0x11746).addRange(0x11800, 0x1182B).addRange(0x118FF, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x1192F).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D0).addRange(0x11A0B, 0x11A32).addRange(0x11A5C, 0x11A89).addRange(0x11AB0, 0x11AF8).addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C2E).addRange(0x11C72, 0x11C8F).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D30).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D89).addRange(0x11EE0, 0x11EF2).addRange(0x11F04, 0x11F10).addRange(0x11F12, 0x11F33).addRange(0x12000, 0x12399).addRange(0x12480, 0x12543).addRange(0x12F90, 0x12FF0).addRange(0x13000, 0x1342F).addRange(0x13441, 0x13446).addRange(0x14400, 0x14646).addRange(0x16800, 0x16A38).addRange(0x16A40, 0x16A5E).addRange(0x16A70, 0x16ABE).addRange(0x16AD0, 0x16AED).addRange(0x16B00, 0x16B2F).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F).addRange(0x16F00, 0x16F4A);\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18CD5).addRange(0x18D00, 0x18D08).addRange(0x1B000, 0x1B122).addRange(0x1B150, 0x1B152).addRange(0x1B164, 0x1B167).addRange(0x1B170, 0x1B2FB).addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1E100, 0x1E12C).addRange(0x1E290, 0x1E2AD).addRange(0x1E2C0, 0x1E2EB).addRange(0x1E4D0, 0x1E4EA).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE).addRange(0x1E800, 0x1E8C4).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0xB9, 0x19DA, 0x2070, 0x2189, 0x2CFD);\nset.addRange(0xB2, 0xB3).addRange(0xBC, 0xBE).addRange(0x9F4, 0x9F9).addRange(0xB72, 0xB77).addRange(0xBF0, 0xBF2).addRange(0xC78, 0xC7E).addRange(0xD58, 0xD5E).addRange(0xD70, 0xD78).addRange(0xF2A, 0xF33).addRange(0x1369, 0x137C).addRange(0x17F0, 0x17F9).addRange(0x2074, 0x2079).addRange(0x2080, 0x2089).addRange(0x2150, 0x215F).addRange(0x2460, 0x249B).addRange(0x24EA, 0x24FF).addRange(0x2776, 0x2793).addRange(0x3192, 0x3195).addRange(0x3220, 0x3229).addRange(0x3248, 0x324F).addRange(0x3251, 0x325F).addRange(0x3280, 0x3289).addRange(0x32B1, 0x32BF).addRange(0xA830, 0xA835).addRange(0x10107, 0x10133).addRange(0x10175, 0x10178).addRange(0x1018A, 0x1018B).addRange(0x102E1, 0x102FB).addRange(0x10320, 0x10323).addRange(0x10858, 0x1085F).addRange(0x10879, 0x1087F).addRange(0x108A7, 0x108AF).addRange(0x108FB, 0x108FF).addRange(0x10916, 0x1091B).addRange(0x109BC, 0x109BD).addRange(0x109C0, 0x109CF).addRange(0x109D2, 0x109FF).addRange(0x10A40, 0x10A48).addRange(0x10A7D, 0x10A7E).addRange(0x10A9D, 0x10A9F).addRange(0x10AEB, 0x10AEF).addRange(0x10B58, 0x10B5F).addRange(0x10B78, 0x10B7F).addRange(0x10BA9, 0x10BAF).addRange(0x10CFA, 0x10CFF).addRange(0x10E60, 0x10E7E).addRange(0x10F1D, 0x10F26).addRange(0x10F51, 0x10F54).addRange(0x10FC5, 0x10FCB).addRange(0x11052, 0x11065).addRange(0x111E1, 0x111F4);\nset.addRange(0x1173A, 0x1173B).addRange(0x118EA, 0x118F2).addRange(0x11C5A, 0x11C6C).addRange(0x11FC0, 0x11FD4).addRange(0x16B5B, 0x16B61).addRange(0x16E80, 0x16E96).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D360, 0x1D378).addRange(0x1E8C7, 0x1E8CF).addRange(0x1EC71, 0x1ECAB).addRange(0x1ECAD, 0x1ECAF).addRange(0x1ECB1, 0x1ECB4).addRange(0x1ED01, 0x1ED2D).addRange(0x1ED2F, 0x1ED3D).addRange(0x1F100, 0x1F10C);\nexports.characters = set;\n","const set = require('regenerate')(0x2A, 0x2C, 0x5C, 0xA1, 0xA7, 0xBF, 0x37E, 0x387, 0x589, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x166E, 0x1CD3, 0x2053, 0x2D70, 0x2E0B, 0x2E1B, 0x2E41, 0x303D, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE19, 0xFE30, 0xFE68, 0xFF0A, 0xFF0C, 0xFF3C, 0xFF61, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\nset.addRange(0x21, 0x23).addRange(0x25, 0x27).addRange(0x2E, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x1805).addRange(0x1807, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2016, 0x2017).addRange(0x2020, 0x2027).addRange(0x2030, 0x2038).addRange(0x203B, 0x203E).addRange(0x2041, 0x2043).addRange(0x2047, 0x2051).addRange(0x2055, 0x205E).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E01).addRange(0x2E06, 0x2E08).addRange(0x2E0E, 0x2E16).addRange(0x2E18, 0x2E19);\nset.addRange(0x2E1E, 0x2E1F).addRange(0x2E2A, 0x2E2E).addRange(0x2E30, 0x2E39).addRange(0x2E3C, 0x2E3F).addRange(0x2E43, 0x2E4F).addRange(0x2E52, 0x2E54).addRange(0x3001, 0x3003).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFE10, 0xFE16).addRange(0xFE45, 0xFE46).addRange(0xFE49, 0xFE4C).addRange(0xFE50, 0xFE52).addRange(0xFE54, 0xFE57).addRange(0xFE5F, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF07).addRange(0xFF0E, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF64, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D).addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643);\nset.addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nexports.characters = set;\n","const set = require('regenerate')(0xA6, 0xA9, 0xAE, 0xB0, 0x482, 0x6DE, 0x6E9, 0x7F6, 0x9FA, 0xB70, 0xBFA, 0xC7F, 0xD4F, 0xD79, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x1940, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214A, 0x214F, 0x21D3, 0x3004, 0x3020, 0x31EF, 0x3250, 0xA839, 0xFDCF, 0xFFE4, 0xFFE8, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1E14F, 0x1ECAC, 0x1ED2E, 0x1F7F0);\nset.addRange(0x58D, 0x58E).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0xBF3, 0xBF8).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2117).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x214C, 0x214D).addRange(0x218A, 0x218B).addRange(0x2195, 0x2199).addRange(0x219C, 0x219F).addRange(0x21A1, 0x21A2).addRange(0x21A4, 0x21A5).addRange(0x21A7, 0x21AD).addRange(0x21AF, 0x21CD).addRange(0x21D0, 0x21D1).addRange(0x21D5, 0x21F3).addRange(0x2300, 0x2307).addRange(0x230C, 0x231F).addRange(0x2322, 0x2328).addRange(0x232B, 0x237B).addRange(0x237D, 0x239A).addRange(0x23B4, 0x23DB).addRange(0x23E2, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9).addRange(0x2500, 0x25B6).addRange(0x25B8, 0x25C0).addRange(0x25C2, 0x25F7).addRange(0x2600, 0x266E).addRange(0x2670, 0x2767).addRange(0x2794, 0x27BF).addRange(0x2800, 0x28FF).addRange(0x2B00, 0x2B2F).addRange(0x2B45, 0x2B46).addRange(0x2B4D, 0x2B73);\nset.addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA837).addRange(0xAA77, 0xAA79).addRange(0xFD40, 0xFD4F).addRange(0xFDFD, 0xFDFF).addRange(0xFFED, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FDC).addRange(0x11FE1, 0x11FF1).addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83);\nset.addRange(0x1DA85, 0x1DA86).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F3FA).addRange(0x1F400, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA);\nexports.characters = set;\n","const set = require('regenerate')(0xAD, 0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x61C, 0x6DD, 0x83F, 0x85F, 0x8E2, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x180E, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x110BD, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FABE, 0x1FB93);\nset.addRange(0x0, 0x1F).addRange(0x7F, 0x9F).addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x605).addRange(0x70E, 0x70F).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x88F, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D);\nset.addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7).addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF4, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F);\nset.addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F).addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x200B, 0x200F).addRange(0x202A, 0x202E).addRange(0x2060, 0x206F).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F);\nset.addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E).addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xF8FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F);\nset.addRange(0xFEFD, 0xFF00).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF).addRange(0xFFEF, 0xFFFB).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F);\nset.addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77).addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFC).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F);\nset.addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF).addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5A, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13430, 0x1343F).addRange(0x13456, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E);\nset.addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF).addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA0, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D173, 0x1D17A).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F).addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF);\nset.addRange(0x1E4FA, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00).addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA89, 0x1FA8F).addRange(0x1FAC6, 0x1FACD).addRange(0x1FADC, 0x1FADF).addRange(0x1FAE9, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F);\nset.addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE00FF).addRange(0xE01F0, 0x10FFFF);\nexports.characters = set;\n","const set = require('regenerate')(0x2029);\n\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xE000, 0xF8FF).addRange(0xF0000, 0xFFFFD).addRange(0x100000, 0x10FFFD);\nexports.characters = set;\n","const set = require('regenerate')(0x5F, 0x7B, 0x7D, 0xA1, 0xA7, 0xAB, 0xBB, 0xBF, 0x37E, 0x387, 0x5BE, 0x5C0, 0x5C3, 0x5C6, 0x61B, 0x6D4, 0x85E, 0x970, 0x9FD, 0xA76, 0xAF0, 0xC77, 0xC84, 0xDF4, 0xE4F, 0xF14, 0xF85, 0x10FB, 0x1400, 0x166E, 0x1CD3, 0x2D70, 0x3030, 0x303D, 0x30A0, 0x30FB, 0xA673, 0xA67E, 0xA8FC, 0xA95F, 0xABEB, 0xFE63, 0xFE68, 0xFF3F, 0xFF5B, 0xFF5D, 0x1039F, 0x103D0, 0x1056F, 0x10857, 0x1091F, 0x1093F, 0x10A7F, 0x10EAD, 0x111CD, 0x111DB, 0x112A9, 0x1145D, 0x114C6, 0x116B9, 0x1183B, 0x119E2, 0x11FFF, 0x16AF5, 0x16B44, 0x16FE2, 0x1BC9F);\nset.addRange(0x21, 0x23).addRange(0x25, 0x2A).addRange(0x2C, 0x2F).addRange(0x3A, 0x3B).addRange(0x3F, 0x40).addRange(0x5B, 0x5D).addRange(0xB6, 0xB7).addRange(0x55A, 0x55F).addRange(0x589, 0x58A).addRange(0x5F3, 0x5F4).addRange(0x609, 0x60A).addRange(0x60C, 0x60D).addRange(0x61D, 0x61F).addRange(0x66A, 0x66D).addRange(0x700, 0x70D).addRange(0x7F7, 0x7F9).addRange(0x830, 0x83E).addRange(0x964, 0x965).addRange(0xE5A, 0xE5B).addRange(0xF04, 0xF12).addRange(0xF3A, 0xF3D).addRange(0xFD0, 0xFD4).addRange(0xFD9, 0xFDA).addRange(0x104A, 0x104F).addRange(0x1360, 0x1368).addRange(0x169B, 0x169C).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x17D4, 0x17D6).addRange(0x17D8, 0x17DA).addRange(0x1800, 0x180A).addRange(0x1944, 0x1945).addRange(0x1A1E, 0x1A1F).addRange(0x1AA0, 0x1AA6).addRange(0x1AA8, 0x1AAD).addRange(0x1B5A, 0x1B60).addRange(0x1B7D, 0x1B7E).addRange(0x1BFC, 0x1BFF).addRange(0x1C3B, 0x1C3F).addRange(0x1C7E, 0x1C7F).addRange(0x1CC0, 0x1CC7).addRange(0x2010, 0x2027).addRange(0x2030, 0x2043).addRange(0x2045, 0x2051).addRange(0x2053, 0x205E).addRange(0x207D, 0x207E).addRange(0x208D, 0x208E).addRange(0x2308, 0x230B).addRange(0x2329, 0x232A).addRange(0x2768, 0x2775).addRange(0x27C5, 0x27C6);\nset.addRange(0x27E6, 0x27EF).addRange(0x2983, 0x2998).addRange(0x29D8, 0x29DB).addRange(0x29FC, 0x29FD).addRange(0x2CF9, 0x2CFC).addRange(0x2CFE, 0x2CFF).addRange(0x2E00, 0x2E2E).addRange(0x2E30, 0x2E4F).addRange(0x2E52, 0x2E5D).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3014, 0x301F).addRange(0xA4FE, 0xA4FF).addRange(0xA60D, 0xA60F).addRange(0xA6F2, 0xA6F7).addRange(0xA874, 0xA877).addRange(0xA8CE, 0xA8CF).addRange(0xA8F8, 0xA8FA).addRange(0xA92E, 0xA92F).addRange(0xA9C1, 0xA9CD).addRange(0xA9DE, 0xA9DF).addRange(0xAA5C, 0xAA5F).addRange(0xAADE, 0xAADF).addRange(0xAAF0, 0xAAF1).addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE61).addRange(0xFE6A, 0xFE6B).addRange(0xFF01, 0xFF03).addRange(0xFF05, 0xFF0A).addRange(0xFF0C, 0xFF0F).addRange(0xFF1A, 0xFF1B).addRange(0xFF1F, 0xFF20).addRange(0xFF3B, 0xFF3D).addRange(0xFF5F, 0xFF65).addRange(0x10100, 0x10102).addRange(0x10A50, 0x10A58).addRange(0x10AF0, 0x10AF6).addRange(0x10B39, 0x10B3F).addRange(0x10B99, 0x10B9C).addRange(0x10F55, 0x10F59).addRange(0x10F86, 0x10F89).addRange(0x11047, 0x1104D).addRange(0x110BB, 0x110BC).addRange(0x110BE, 0x110C1).addRange(0x11140, 0x11143).addRange(0x11174, 0x11175).addRange(0x111C5, 0x111C8).addRange(0x111DD, 0x111DF).addRange(0x11238, 0x1123D);\nset.addRange(0x1144B, 0x1144F).addRange(0x1145A, 0x1145B).addRange(0x115C1, 0x115D7).addRange(0x11641, 0x11643).addRange(0x11660, 0x1166C).addRange(0x1173C, 0x1173E).addRange(0x11944, 0x11946).addRange(0x11A3F, 0x11A46).addRange(0x11A9A, 0x11A9C).addRange(0x11A9E, 0x11AA2).addRange(0x11B00, 0x11B09).addRange(0x11C41, 0x11C45).addRange(0x11C70, 0x11C71).addRange(0x11EF7, 0x11EF8).addRange(0x11F43, 0x11F4F).addRange(0x12470, 0x12474).addRange(0x12FF1, 0x12FF2).addRange(0x16A6E, 0x16A6F).addRange(0x16B37, 0x16B3B).addRange(0x16E97, 0x16E9A).addRange(0x1DA87, 0x1DA8B).addRange(0x1E95E, 0x1E95F);\nexports.characters = set;\n","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\nset.addRange(0x2000, 0x200A).addRange(0x2028, 0x2029);\nexports.characters = set;\n","const set = require('regenerate')(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000);\nset.addRange(0x2000, 0x200A);\nexports.characters = set;\n","const set = require('regenerate')(0x903, 0x93B, 0x9D7, 0xA03, 0xA83, 0xAC9, 0xB3E, 0xB40, 0xB57, 0xBD7, 0xCBE, 0xCF3, 0xD57, 0xF7F, 0x1031, 0x1038, 0x108F, 0x1715, 0x1734, 0x17B6, 0x1A55, 0x1A57, 0x1A61, 0x1B04, 0x1B35, 0x1B3B, 0x1B82, 0x1BA1, 0x1BAA, 0x1BE7, 0x1BEE, 0x1CE1, 0x1CF7, 0xA827, 0xA983, 0xAA4D, 0xAA7B, 0xAA7D, 0xAAEB, 0xAAF5, 0xABEC, 0x11000, 0x11002, 0x11082, 0x1112C, 0x11182, 0x111CE, 0x11235, 0x11357, 0x11445, 0x114B9, 0x114C1, 0x115BE, 0x1163E, 0x116AC, 0x116B6, 0x11726, 0x11838, 0x1193D, 0x11940, 0x11942, 0x119E4, 0x11A39, 0x11A97, 0x11C2F, 0x11C3E, 0x11CA9, 0x11CB1, 0x11CB4, 0x11D96, 0x11F03, 0x11F41);\nset.addRange(0x93E, 0x940).addRange(0x949, 0x94C).addRange(0x94E, 0x94F).addRange(0x982, 0x983).addRange(0x9BE, 0x9C0).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CC).addRange(0xA3E, 0xA40).addRange(0xABE, 0xAC0).addRange(0xACB, 0xACC).addRange(0xB02, 0xB03).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4C).addRange(0xBBE, 0xBBF).addRange(0xBC1, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCC).addRange(0xC01, 0xC03).addRange(0xC41, 0xC44).addRange(0xC82, 0xC83).addRange(0xCC0, 0xCC4).addRange(0xCC7, 0xCC8).addRange(0xCCA, 0xCCB).addRange(0xCD5, 0xCD6).addRange(0xD02, 0xD03).addRange(0xD3E, 0xD40).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4C).addRange(0xD82, 0xD83).addRange(0xDCF, 0xDD1).addRange(0xDD8, 0xDDF).addRange(0xDF2, 0xDF3).addRange(0xF3E, 0xF3F).addRange(0x102B, 0x102C).addRange(0x103B, 0x103C).addRange(0x1056, 0x1057).addRange(0x1062, 0x1064).addRange(0x1067, 0x106D).addRange(0x1083, 0x1084).addRange(0x1087, 0x108C).addRange(0x109A, 0x109C).addRange(0x17BE, 0x17C5).addRange(0x17C7, 0x17C8).addRange(0x1923, 0x1926).addRange(0x1929, 0x192B).addRange(0x1930, 0x1931).addRange(0x1933, 0x1938).addRange(0x1A19, 0x1A1A).addRange(0x1A63, 0x1A64).addRange(0x1A6D, 0x1A72).addRange(0x1B3D, 0x1B41);\nset.addRange(0x1B43, 0x1B44).addRange(0x1BA6, 0x1BA7).addRange(0x1BEA, 0x1BEC).addRange(0x1BF2, 0x1BF3).addRange(0x1C24, 0x1C2B).addRange(0x1C34, 0x1C35).addRange(0x302E, 0x302F).addRange(0xA823, 0xA824).addRange(0xA880, 0xA881).addRange(0xA8B4, 0xA8C3).addRange(0xA952, 0xA953).addRange(0xA9B4, 0xA9B5).addRange(0xA9BA, 0xA9BB).addRange(0xA9BE, 0xA9C0).addRange(0xAA2F, 0xAA30).addRange(0xAA33, 0xAA34).addRange(0xAAEE, 0xAAEF).addRange(0xABE3, 0xABE4).addRange(0xABE6, 0xABE7).addRange(0xABE9, 0xABEA).addRange(0x110B0, 0x110B2).addRange(0x110B7, 0x110B8).addRange(0x11145, 0x11146).addRange(0x111B3, 0x111B5).addRange(0x111BF, 0x111C0).addRange(0x1122C, 0x1122E).addRange(0x11232, 0x11233).addRange(0x112E0, 0x112E2).addRange(0x11302, 0x11303).addRange(0x1133E, 0x1133F).addRange(0x11341, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x11362, 0x11363).addRange(0x11435, 0x11437).addRange(0x11440, 0x11441).addRange(0x114B0, 0x114B2).addRange(0x114BB, 0x114BE).addRange(0x115AF, 0x115B1).addRange(0x115B8, 0x115BB).addRange(0x11630, 0x11632).addRange(0x1163B, 0x1163C).addRange(0x116AE, 0x116AF).addRange(0x11720, 0x11721).addRange(0x1182C, 0x1182E).addRange(0x11930, 0x11935).addRange(0x11937, 0x11938).addRange(0x119D1, 0x119D3).addRange(0x119DC, 0x119DF).addRange(0x11A57, 0x11A58).addRange(0x11D8A, 0x11D8E);\nset.addRange(0x11D93, 0x11D94).addRange(0x11EF5, 0x11EF6).addRange(0x11F34, 0x11F35).addRange(0x11F3E, 0x11F3F).addRange(0x16F51, 0x16F87).addRange(0x16FF0, 0x16FF1).addRange(0x1D165, 0x1D166).addRange(0x1D16D, 0x1D172);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xD800, 0xDFFF);\nexports.characters = set;\n","const set = require('regenerate')(0x24, 0x2B, 0x5E, 0x60, 0x7C, 0x7E, 0xAC, 0xB4, 0xB8, 0xD7, 0xF7, 0x2ED, 0x375, 0x3F6, 0x482, 0x60B, 0x6DE, 0x6E9, 0x7F6, 0x888, 0xAF1, 0xB70, 0xC7F, 0xD4F, 0xD79, 0xE3F, 0xF13, 0xF34, 0xF36, 0xF38, 0x166D, 0x17DB, 0x1940, 0x1FBD, 0x2044, 0x2052, 0x2114, 0x2125, 0x2127, 0x2129, 0x212E, 0x214F, 0x3004, 0x3020, 0x31EF, 0x3250, 0xAB5B, 0xFB29, 0xFDCF, 0xFE62, 0xFE69, 0xFF04, 0xFF0B, 0xFF3E, 0xFF40, 0xFF5C, 0xFF5E, 0x101A0, 0x10AC8, 0x1173F, 0x16B45, 0x1BC9C, 0x1D245, 0x1D6C1, 0x1D6DB, 0x1D6FB, 0x1D715, 0x1D735, 0x1D74F, 0x1D76F, 0x1D789, 0x1D7A9, 0x1D7C3, 0x1E14F, 0x1E2FF, 0x1ECAC, 0x1ECB0, 0x1ED2E, 0x1F7F0);\nset.addRange(0x3C, 0x3E).addRange(0xA2, 0xA6).addRange(0xA8, 0xA9).addRange(0xAE, 0xB1).addRange(0x2C2, 0x2C5).addRange(0x2D2, 0x2DF).addRange(0x2E5, 0x2EB).addRange(0x2EF, 0x2FF).addRange(0x384, 0x385).addRange(0x58D, 0x58F).addRange(0x606, 0x608).addRange(0x60E, 0x60F).addRange(0x6FD, 0x6FE).addRange(0x7FE, 0x7FF).addRange(0x9F2, 0x9F3).addRange(0x9FA, 0x9FB).addRange(0xBF3, 0xBFA).addRange(0xF01, 0xF03).addRange(0xF15, 0xF17).addRange(0xF1A, 0xF1F).addRange(0xFBE, 0xFC5).addRange(0xFC7, 0xFCC).addRange(0xFCE, 0xFCF).addRange(0xFD5, 0xFD8).addRange(0x109E, 0x109F).addRange(0x1390, 0x1399).addRange(0x19DE, 0x19FF).addRange(0x1B61, 0x1B6A).addRange(0x1B74, 0x1B7C).addRange(0x1FBF, 0x1FC1).addRange(0x1FCD, 0x1FCF).addRange(0x1FDD, 0x1FDF).addRange(0x1FED, 0x1FEF).addRange(0x1FFD, 0x1FFE).addRange(0x207A, 0x207C).addRange(0x208A, 0x208C).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2101).addRange(0x2103, 0x2106).addRange(0x2108, 0x2109).addRange(0x2116, 0x2118).addRange(0x211E, 0x2123).addRange(0x213A, 0x213B).addRange(0x2140, 0x2144).addRange(0x214A, 0x214D).addRange(0x218A, 0x218B).addRange(0x2190, 0x2307).addRange(0x230C, 0x2328).addRange(0x232B, 0x2426).addRange(0x2440, 0x244A).addRange(0x249C, 0x24E9);\nset.addRange(0x2500, 0x2767).addRange(0x2794, 0x27C4).addRange(0x27C7, 0x27E5).addRange(0x27F0, 0x2982).addRange(0x2999, 0x29D7).addRange(0x29DC, 0x29FB).addRange(0x29FE, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2CE5, 0x2CEA).addRange(0x2E50, 0x2E51).addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x2FF0, 0x2FFF).addRange(0x3012, 0x3013).addRange(0x3036, 0x3037).addRange(0x303E, 0x303F).addRange(0x309B, 0x309C).addRange(0x3190, 0x3191).addRange(0x3196, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3200, 0x321E).addRange(0x322A, 0x3247).addRange(0x3260, 0x327F).addRange(0x328A, 0x32B0).addRange(0x32C0, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA490, 0xA4C6).addRange(0xA700, 0xA716).addRange(0xA720, 0xA721).addRange(0xA789, 0xA78A).addRange(0xA828, 0xA82B).addRange(0xA836, 0xA839).addRange(0xAA77, 0xAA79).addRange(0xAB6A, 0xAB6B).addRange(0xFBB2, 0xFBC2).addRange(0xFD40, 0xFD4F).addRange(0xFDFC, 0xFDFF).addRange(0xFE64, 0xFE66).addRange(0xFF1C, 0xFF1E).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFFC, 0xFFFD).addRange(0x10137, 0x1013F).addRange(0x10179, 0x10189).addRange(0x1018C, 0x1018E).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x10877, 0x10878).addRange(0x11FD5, 0x11FF1);\nset.addRange(0x16B3C, 0x16B3F).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D164).addRange(0x1D16A, 0x1D16C).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D200, 0x1D241).addRange(0x1D300, 0x1D356).addRange(0x1D800, 0x1D9FF).addRange(0x1DA37, 0x1DA3A).addRange(0x1DA6D, 0x1DA74).addRange(0x1DA76, 0x1DA83).addRange(0x1DA85, 0x1DA86).addRange(0x1EEF0, 0x1EEF1).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F10D, 0x1F1AD).addRange(0x1F1E6, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92);\nset.addRange(0x1FB94, 0x1FBCA);\nexports.characters = set;\n","const set = require('regenerate')(0x1C5, 0x1C8, 0x1CB, 0x1F2, 0x1FBC, 0x1FCC, 0x1FFC);\nset.addRange(0x1F88, 0x1F8F).addRange(0x1F98, 0x1F9F).addRange(0x1FA8, 0x1FAF);\nexports.characters = set;\n","const set = require('regenerate')(0x38B, 0x38D, 0x3A2, 0x530, 0x590, 0x70E, 0x83F, 0x85F, 0x88F, 0x984, 0x9A9, 0x9B1, 0x9DE, 0xA04, 0xA29, 0xA31, 0xA34, 0xA37, 0xA3D, 0xA5D, 0xA84, 0xA8E, 0xA92, 0xAA9, 0xAB1, 0xAB4, 0xAC6, 0xACA, 0xB00, 0xB04, 0xB29, 0xB31, 0xB34, 0xB5E, 0xB84, 0xB91, 0xB9B, 0xB9D, 0xBC9, 0xC0D, 0xC11, 0xC29, 0xC45, 0xC49, 0xC57, 0xC8D, 0xC91, 0xCA9, 0xCB4, 0xCC5, 0xCC9, 0xCDF, 0xCF0, 0xD0D, 0xD11, 0xD45, 0xD49, 0xD80, 0xD84, 0xDB2, 0xDBC, 0xDD5, 0xDD7, 0xE83, 0xE85, 0xE8B, 0xEA4, 0xEA6, 0xEC5, 0xEC7, 0xECF, 0xF48, 0xF98, 0xFBD, 0xFCD, 0x10C6, 0x1249, 0x1257, 0x1259, 0x1289, 0x12B1, 0x12BF, 0x12C1, 0x12D7, 0x1311, 0x176D, 0x1771, 0x191F, 0x1A5F, 0x1B7F, 0x1F58, 0x1F5A, 0x1F5C, 0x1F5E, 0x1FB5, 0x1FC5, 0x1FDC, 0x1FF5, 0x1FFF, 0x2065, 0x208F, 0x2B96, 0x2D26, 0x2DA7, 0x2DAF, 0x2DB7, 0x2DBF, 0x2DC7, 0x2DCF, 0x2DD7, 0x2DDF, 0x2E9A, 0x3040, 0x3130, 0x318F, 0x321F, 0xA7D2, 0xA7D4, 0xA9CE, 0xA9FF, 0xAB27, 0xAB2F, 0xFB37, 0xFB3D, 0xFB3F, 0xFB42, 0xFB45, 0xFE53, 0xFE67, 0xFE75, 0xFF00, 0xFFE7, 0x1000C, 0x10027, 0x1003B, 0x1003E, 0x1018F, 0x1039E, 0x1057B, 0x1058B, 0x10593, 0x10596, 0x105A2, 0x105B2, 0x105BA, 0x10786, 0x107B1, 0x10809, 0x10836, 0x10856, 0x108F3, 0x10A04, 0x10A14, 0x10A18, 0x10E7F, 0x10EAA, 0x11135, 0x111E0, 0x11212, 0x11287, 0x11289, 0x1128E, 0x1129E, 0x11304, 0x11329, 0x11331, 0x11334, 0x1133A, 0x1145C, 0x11914, 0x11917, 0x11936, 0x11C09, 0x11C37, 0x11CA8, 0x11D07, 0x11D0A, 0x11D3B, 0x11D3E, 0x11D66, 0x11D69, 0x11D8F, 0x11D92, 0x11F11, 0x1246F, 0x16A5F, 0x16ABF, 0x16B5A, 0x16B62, 0x1AFF4, 0x1AFFC, 0x1AFFF, 0x1D455, 0x1D49D, 0x1D4AD, 0x1D4BA, 0x1D4BC, 0x1D4C4, 0x1D506, 0x1D515, 0x1D51D, 0x1D53A, 0x1D53F, 0x1D545, 0x1D551, 0x1DAA0, 0x1E007, 0x1E022, 0x1E025, 0x1E7E7, 0x1E7EC, 0x1E7EF, 0x1E7FF, 0x1EE04, 0x1EE20, 0x1EE23, 0x1EE28, 0x1EE33, 0x1EE38, 0x1EE3A, 0x1EE48, 0x1EE4A, 0x1EE4C, 0x1EE50, 0x1EE53, 0x1EE58, 0x1EE5A, 0x1EE5C, 0x1EE5E, 0x1EE60, 0x1EE63, 0x1EE6B, 0x1EE73, 0x1EE78, 0x1EE7D, 0x1EE7F, 0x1EE8A, 0x1EEA4, 0x1EEAA, 0x1F0C0, 0x1F0D0, 0x1FABE, 0x1FB93);\nset.addRange(0x378, 0x379).addRange(0x380, 0x383).addRange(0x557, 0x558).addRange(0x58B, 0x58C).addRange(0x5C8, 0x5CF).addRange(0x5EB, 0x5EE).addRange(0x5F5, 0x5FF).addRange(0x74B, 0x74C).addRange(0x7B2, 0x7BF).addRange(0x7FB, 0x7FC).addRange(0x82E, 0x82F).addRange(0x85C, 0x85D).addRange(0x86B, 0x86F).addRange(0x892, 0x897).addRange(0x98D, 0x98E).addRange(0x991, 0x992).addRange(0x9B3, 0x9B5).addRange(0x9BA, 0x9BB).addRange(0x9C5, 0x9C6).addRange(0x9C9, 0x9CA).addRange(0x9CF, 0x9D6).addRange(0x9D8, 0x9DB).addRange(0x9E4, 0x9E5).addRange(0x9FF, 0xA00).addRange(0xA0B, 0xA0E).addRange(0xA11, 0xA12).addRange(0xA3A, 0xA3B).addRange(0xA43, 0xA46).addRange(0xA49, 0xA4A).addRange(0xA4E, 0xA50).addRange(0xA52, 0xA58).addRange(0xA5F, 0xA65).addRange(0xA77, 0xA80).addRange(0xABA, 0xABB).addRange(0xACE, 0xACF).addRange(0xAD1, 0xADF).addRange(0xAE4, 0xAE5).addRange(0xAF2, 0xAF8).addRange(0xB0D, 0xB0E).addRange(0xB11, 0xB12).addRange(0xB3A, 0xB3B).addRange(0xB45, 0xB46).addRange(0xB49, 0xB4A).addRange(0xB4E, 0xB54).addRange(0xB58, 0xB5B).addRange(0xB64, 0xB65).addRange(0xB78, 0xB81).addRange(0xB8B, 0xB8D).addRange(0xB96, 0xB98).addRange(0xBA0, 0xBA2).addRange(0xBA5, 0xBA7);\nset.addRange(0xBAB, 0xBAD).addRange(0xBBA, 0xBBD).addRange(0xBC3, 0xBC5).addRange(0xBCE, 0xBCF).addRange(0xBD1, 0xBD6).addRange(0xBD8, 0xBE5).addRange(0xBFB, 0xBFF).addRange(0xC3A, 0xC3B).addRange(0xC4E, 0xC54).addRange(0xC5B, 0xC5C).addRange(0xC5E, 0xC5F).addRange(0xC64, 0xC65).addRange(0xC70, 0xC76).addRange(0xCBA, 0xCBB).addRange(0xCCE, 0xCD4).addRange(0xCD7, 0xCDC).addRange(0xCE4, 0xCE5).addRange(0xCF4, 0xCFF).addRange(0xD50, 0xD53).addRange(0xD64, 0xD65).addRange(0xD97, 0xD99).addRange(0xDBE, 0xDBF).addRange(0xDC7, 0xDC9).addRange(0xDCB, 0xDCE).addRange(0xDE0, 0xDE5).addRange(0xDF0, 0xDF1).addRange(0xDF5, 0xE00).addRange(0xE3B, 0xE3E).addRange(0xE5C, 0xE80).addRange(0xEBE, 0xEBF).addRange(0xEDA, 0xEDB).addRange(0xEE0, 0xEFF).addRange(0xF6D, 0xF70).addRange(0xFDB, 0xFFF).addRange(0x10C8, 0x10CC).addRange(0x10CE, 0x10CF).addRange(0x124E, 0x124F).addRange(0x125E, 0x125F).addRange(0x128E, 0x128F).addRange(0x12B6, 0x12B7).addRange(0x12C6, 0x12C7).addRange(0x1316, 0x1317).addRange(0x135B, 0x135C).addRange(0x137D, 0x137F).addRange(0x139A, 0x139F).addRange(0x13F6, 0x13F7).addRange(0x13FE, 0x13FF).addRange(0x169D, 0x169F).addRange(0x16F9, 0x16FF).addRange(0x1716, 0x171E).addRange(0x1737, 0x173F);\nset.addRange(0x1754, 0x175F).addRange(0x1774, 0x177F).addRange(0x17DE, 0x17DF).addRange(0x17EA, 0x17EF).addRange(0x17FA, 0x17FF).addRange(0x181A, 0x181F).addRange(0x1879, 0x187F).addRange(0x18AB, 0x18AF).addRange(0x18F6, 0x18FF).addRange(0x192C, 0x192F).addRange(0x193C, 0x193F).addRange(0x1941, 0x1943).addRange(0x196E, 0x196F).addRange(0x1975, 0x197F).addRange(0x19AC, 0x19AF).addRange(0x19CA, 0x19CF).addRange(0x19DB, 0x19DD).addRange(0x1A1C, 0x1A1D).addRange(0x1A7D, 0x1A7E).addRange(0x1A8A, 0x1A8F).addRange(0x1A9A, 0x1A9F).addRange(0x1AAE, 0x1AAF).addRange(0x1ACF, 0x1AFF).addRange(0x1B4D, 0x1B4F).addRange(0x1BF4, 0x1BFB).addRange(0x1C38, 0x1C3A).addRange(0x1C4A, 0x1C4C).addRange(0x1C89, 0x1C8F).addRange(0x1CBB, 0x1CBC).addRange(0x1CC8, 0x1CCF).addRange(0x1CFB, 0x1CFF).addRange(0x1F16, 0x1F17).addRange(0x1F1E, 0x1F1F).addRange(0x1F46, 0x1F47).addRange(0x1F4E, 0x1F4F).addRange(0x1F7E, 0x1F7F).addRange(0x1FD4, 0x1FD5).addRange(0x1FF0, 0x1FF1).addRange(0x2072, 0x2073).addRange(0x209D, 0x209F).addRange(0x20C1, 0x20CF).addRange(0x20F1, 0x20FF).addRange(0x218C, 0x218F).addRange(0x2427, 0x243F).addRange(0x244B, 0x245F).addRange(0x2B74, 0x2B75).addRange(0x2CF4, 0x2CF8).addRange(0x2D28, 0x2D2C).addRange(0x2D2E, 0x2D2F).addRange(0x2D68, 0x2D6E).addRange(0x2D71, 0x2D7E);\nset.addRange(0x2D97, 0x2D9F).addRange(0x2E5E, 0x2E7F).addRange(0x2EF4, 0x2EFF).addRange(0x2FD6, 0x2FEF).addRange(0x3097, 0x3098).addRange(0x3100, 0x3104).addRange(0x31E4, 0x31EE).addRange(0xA48D, 0xA48F).addRange(0xA4C7, 0xA4CF).addRange(0xA62C, 0xA63F).addRange(0xA6F8, 0xA6FF).addRange(0xA7CB, 0xA7CF).addRange(0xA7DA, 0xA7F1).addRange(0xA82D, 0xA82F).addRange(0xA83A, 0xA83F).addRange(0xA878, 0xA87F).addRange(0xA8C6, 0xA8CD).addRange(0xA8DA, 0xA8DF).addRange(0xA954, 0xA95E).addRange(0xA97D, 0xA97F).addRange(0xA9DA, 0xA9DD).addRange(0xAA37, 0xAA3F).addRange(0xAA4E, 0xAA4F).addRange(0xAA5A, 0xAA5B).addRange(0xAAC3, 0xAADA).addRange(0xAAF7, 0xAB00).addRange(0xAB07, 0xAB08).addRange(0xAB0F, 0xAB10).addRange(0xAB17, 0xAB1F).addRange(0xAB6C, 0xAB6F).addRange(0xABEE, 0xABEF).addRange(0xABFA, 0xABFF).addRange(0xD7A4, 0xD7AF).addRange(0xD7C7, 0xD7CA).addRange(0xD7FC, 0xD7FF).addRange(0xFA6E, 0xFA6F).addRange(0xFADA, 0xFAFF).addRange(0xFB07, 0xFB12).addRange(0xFB18, 0xFB1C).addRange(0xFBC3, 0xFBD2).addRange(0xFD90, 0xFD91).addRange(0xFDC8, 0xFDCE).addRange(0xFDD0, 0xFDEF).addRange(0xFE1A, 0xFE1F).addRange(0xFE6C, 0xFE6F).addRange(0xFEFD, 0xFEFE).addRange(0xFFBF, 0xFFC1).addRange(0xFFC8, 0xFFC9).addRange(0xFFD0, 0xFFD1).addRange(0xFFD8, 0xFFD9).addRange(0xFFDD, 0xFFDF);\nset.addRange(0xFFEF, 0xFFF8).addRange(0xFFFE, 0xFFFF).addRange(0x1004E, 0x1004F).addRange(0x1005E, 0x1007F).addRange(0x100FB, 0x100FF).addRange(0x10103, 0x10106).addRange(0x10134, 0x10136).addRange(0x1019D, 0x1019F).addRange(0x101A1, 0x101CF).addRange(0x101FE, 0x1027F).addRange(0x1029D, 0x1029F).addRange(0x102D1, 0x102DF).addRange(0x102FC, 0x102FF).addRange(0x10324, 0x1032C).addRange(0x1034B, 0x1034F).addRange(0x1037B, 0x1037F).addRange(0x103C4, 0x103C7).addRange(0x103D6, 0x103FF).addRange(0x1049E, 0x1049F).addRange(0x104AA, 0x104AF).addRange(0x104D4, 0x104D7).addRange(0x104FC, 0x104FF).addRange(0x10528, 0x1052F).addRange(0x10564, 0x1056E).addRange(0x105BD, 0x105FF).addRange(0x10737, 0x1073F).addRange(0x10756, 0x1075F).addRange(0x10768, 0x1077F).addRange(0x107BB, 0x107FF).addRange(0x10806, 0x10807).addRange(0x10839, 0x1083B).addRange(0x1083D, 0x1083E).addRange(0x1089F, 0x108A6).addRange(0x108B0, 0x108DF).addRange(0x108F6, 0x108FA).addRange(0x1091C, 0x1091E).addRange(0x1093A, 0x1093E).addRange(0x10940, 0x1097F).addRange(0x109B8, 0x109BB).addRange(0x109D0, 0x109D1).addRange(0x10A07, 0x10A0B).addRange(0x10A36, 0x10A37).addRange(0x10A3B, 0x10A3E).addRange(0x10A49, 0x10A4F).addRange(0x10A59, 0x10A5F).addRange(0x10AA0, 0x10ABF).addRange(0x10AE7, 0x10AEA).addRange(0x10AF7, 0x10AFF).addRange(0x10B36, 0x10B38).addRange(0x10B56, 0x10B57).addRange(0x10B73, 0x10B77);\nset.addRange(0x10B92, 0x10B98).addRange(0x10B9D, 0x10BA8).addRange(0x10BB0, 0x10BFF).addRange(0x10C49, 0x10C7F).addRange(0x10CB3, 0x10CBF).addRange(0x10CF3, 0x10CF9).addRange(0x10D28, 0x10D2F).addRange(0x10D3A, 0x10E5F).addRange(0x10EAE, 0x10EAF).addRange(0x10EB2, 0x10EFC).addRange(0x10F28, 0x10F2F).addRange(0x10F5A, 0x10F6F).addRange(0x10F8A, 0x10FAF).addRange(0x10FCC, 0x10FDF).addRange(0x10FF7, 0x10FFF).addRange(0x1104E, 0x11051).addRange(0x11076, 0x1107E).addRange(0x110C3, 0x110CC).addRange(0x110CE, 0x110CF).addRange(0x110E9, 0x110EF).addRange(0x110FA, 0x110FF).addRange(0x11148, 0x1114F).addRange(0x11177, 0x1117F).addRange(0x111F5, 0x111FF).addRange(0x11242, 0x1127F).addRange(0x112AA, 0x112AF).addRange(0x112EB, 0x112EF).addRange(0x112FA, 0x112FF).addRange(0x1130D, 0x1130E).addRange(0x11311, 0x11312).addRange(0x11345, 0x11346).addRange(0x11349, 0x1134A).addRange(0x1134E, 0x1134F).addRange(0x11351, 0x11356).addRange(0x11358, 0x1135C).addRange(0x11364, 0x11365).addRange(0x1136D, 0x1136F).addRange(0x11375, 0x113FF).addRange(0x11462, 0x1147F).addRange(0x114C8, 0x114CF).addRange(0x114DA, 0x1157F).addRange(0x115B6, 0x115B7).addRange(0x115DE, 0x115FF).addRange(0x11645, 0x1164F).addRange(0x1165A, 0x1165F).addRange(0x1166D, 0x1167F).addRange(0x116BA, 0x116BF).addRange(0x116CA, 0x116FF).addRange(0x1171B, 0x1171C).addRange(0x1172C, 0x1172F).addRange(0x11747, 0x117FF);\nset.addRange(0x1183C, 0x1189F).addRange(0x118F3, 0x118FE).addRange(0x11907, 0x11908).addRange(0x1190A, 0x1190B).addRange(0x11939, 0x1193A).addRange(0x11947, 0x1194F).addRange(0x1195A, 0x1199F).addRange(0x119A8, 0x119A9).addRange(0x119D8, 0x119D9).addRange(0x119E5, 0x119FF).addRange(0x11A48, 0x11A4F).addRange(0x11AA3, 0x11AAF).addRange(0x11AF9, 0x11AFF).addRange(0x11B0A, 0x11BFF).addRange(0x11C46, 0x11C4F).addRange(0x11C6D, 0x11C6F).addRange(0x11C90, 0x11C91).addRange(0x11CB7, 0x11CFF).addRange(0x11D37, 0x11D39).addRange(0x11D48, 0x11D4F).addRange(0x11D5A, 0x11D5F).addRange(0x11D99, 0x11D9F).addRange(0x11DAA, 0x11EDF).addRange(0x11EF9, 0x11EFF).addRange(0x11F3B, 0x11F3D).addRange(0x11F5A, 0x11FAF).addRange(0x11FB1, 0x11FBF).addRange(0x11FF2, 0x11FFE).addRange(0x1239A, 0x123FF).addRange(0x12475, 0x1247F).addRange(0x12544, 0x12F8F).addRange(0x12FF3, 0x12FFF).addRange(0x13456, 0x143FF).addRange(0x14647, 0x167FF).addRange(0x16A39, 0x16A3F).addRange(0x16A6A, 0x16A6D).addRange(0x16ACA, 0x16ACF).addRange(0x16AEE, 0x16AEF).addRange(0x16AF6, 0x16AFF).addRange(0x16B46, 0x16B4F).addRange(0x16B78, 0x16B7C).addRange(0x16B90, 0x16E3F).addRange(0x16E9B, 0x16EFF).addRange(0x16F4B, 0x16F4E).addRange(0x16F88, 0x16F8E).addRange(0x16FA0, 0x16FDF).addRange(0x16FE5, 0x16FEF).addRange(0x16FF2, 0x16FFF).addRange(0x187F8, 0x187FF).addRange(0x18CD6, 0x18CFF).addRange(0x18D09, 0x1AFEF);\nset.addRange(0x1B123, 0x1B131).addRange(0x1B133, 0x1B14F).addRange(0x1B153, 0x1B154).addRange(0x1B156, 0x1B163).addRange(0x1B168, 0x1B16F).addRange(0x1B2FC, 0x1BBFF).addRange(0x1BC6B, 0x1BC6F).addRange(0x1BC7D, 0x1BC7F).addRange(0x1BC89, 0x1BC8F).addRange(0x1BC9A, 0x1BC9B).addRange(0x1BCA4, 0x1CEFF).addRange(0x1CF2E, 0x1CF2F).addRange(0x1CF47, 0x1CF4F).addRange(0x1CFC4, 0x1CFFF).addRange(0x1D0F6, 0x1D0FF).addRange(0x1D127, 0x1D128).addRange(0x1D1EB, 0x1D1FF).addRange(0x1D246, 0x1D2BF).addRange(0x1D2D4, 0x1D2DF).addRange(0x1D2F4, 0x1D2FF).addRange(0x1D357, 0x1D35F).addRange(0x1D379, 0x1D3FF).addRange(0x1D4A0, 0x1D4A1).addRange(0x1D4A3, 0x1D4A4).addRange(0x1D4A7, 0x1D4A8).addRange(0x1D50B, 0x1D50C).addRange(0x1D547, 0x1D549).addRange(0x1D6A6, 0x1D6A7).addRange(0x1D7CC, 0x1D7CD).addRange(0x1DA8C, 0x1DA9A).addRange(0x1DAB0, 0x1DEFF).addRange(0x1DF1F, 0x1DF24).addRange(0x1DF2B, 0x1DFFF).addRange(0x1E019, 0x1E01A).addRange(0x1E02B, 0x1E02F).addRange(0x1E06E, 0x1E08E).addRange(0x1E090, 0x1E0FF).addRange(0x1E12D, 0x1E12F).addRange(0x1E13E, 0x1E13F).addRange(0x1E14A, 0x1E14D).addRange(0x1E150, 0x1E28F).addRange(0x1E2AF, 0x1E2BF).addRange(0x1E2FA, 0x1E2FE).addRange(0x1E300, 0x1E4CF).addRange(0x1E4FA, 0x1E7DF).addRange(0x1E8C5, 0x1E8C6).addRange(0x1E8D7, 0x1E8FF).addRange(0x1E94C, 0x1E94F).addRange(0x1E95A, 0x1E95D).addRange(0x1E960, 0x1EC70).addRange(0x1ECB5, 0x1ED00);\nset.addRange(0x1ED3E, 0x1EDFF).addRange(0x1EE25, 0x1EE26).addRange(0x1EE3C, 0x1EE41).addRange(0x1EE43, 0x1EE46).addRange(0x1EE55, 0x1EE56).addRange(0x1EE65, 0x1EE66).addRange(0x1EE9C, 0x1EEA0).addRange(0x1EEBC, 0x1EEEF).addRange(0x1EEF2, 0x1EFFF).addRange(0x1F02C, 0x1F02F).addRange(0x1F094, 0x1F09F).addRange(0x1F0AF, 0x1F0B0).addRange(0x1F0F6, 0x1F0FF).addRange(0x1F1AE, 0x1F1E5).addRange(0x1F203, 0x1F20F).addRange(0x1F23C, 0x1F23F).addRange(0x1F249, 0x1F24F).addRange(0x1F252, 0x1F25F).addRange(0x1F266, 0x1F2FF).addRange(0x1F6D8, 0x1F6DB).addRange(0x1F6ED, 0x1F6EF).addRange(0x1F6FD, 0x1F6FF).addRange(0x1F777, 0x1F77A).addRange(0x1F7DA, 0x1F7DF).addRange(0x1F7EC, 0x1F7EF).addRange(0x1F7F1, 0x1F7FF).addRange(0x1F80C, 0x1F80F).addRange(0x1F848, 0x1F84F).addRange(0x1F85A, 0x1F85F).addRange(0x1F888, 0x1F88F).addRange(0x1F8AE, 0x1F8AF).addRange(0x1F8B2, 0x1F8FF).addRange(0x1FA54, 0x1FA5F).addRange(0x1FA6E, 0x1FA6F).addRange(0x1FA7D, 0x1FA7F).addRange(0x1FA89, 0x1FA8F).addRange(0x1FAC6, 0x1FACD).addRange(0x1FADC, 0x1FADF).addRange(0x1FAE9, 0x1FAEF).addRange(0x1FAF9, 0x1FAFF).addRange(0x1FBCB, 0x1FBEF).addRange(0x1FBFA, 0x1FFFF).addRange(0x2A6E0, 0x2A6FF).addRange(0x2B73A, 0x2B73F).addRange(0x2B81E, 0x2B81F).addRange(0x2CEA2, 0x2CEAF).addRange(0x2EBE1, 0x2EBEF).addRange(0x2EE5E, 0x2F7FF).addRange(0x2FA1E, 0x2FFFF).addRange(0x3134B, 0x3134F).addRange(0x323B0, 0xE0000);\nset.addRange(0xE0002, 0xE001F).addRange(0xE0080, 0xE00FF).addRange(0xE01F0, 0xEFFFF).addRange(0xFFFFE, 0xFFFFF).addRange(0x10FFFE, 0x10FFFF);\nexports.characters = set;\n","const set = require('regenerate')(0x100, 0x102, 0x104, 0x106, 0x108, 0x10A, 0x10C, 0x10E, 0x110, 0x112, 0x114, 0x116, 0x118, 0x11A, 0x11C, 0x11E, 0x120, 0x122, 0x124, 0x126, 0x128, 0x12A, 0x12C, 0x12E, 0x130, 0x132, 0x134, 0x136, 0x139, 0x13B, 0x13D, 0x13F, 0x141, 0x143, 0x145, 0x147, 0x14A, 0x14C, 0x14E, 0x150, 0x152, 0x154, 0x156, 0x158, 0x15A, 0x15C, 0x15E, 0x160, 0x162, 0x164, 0x166, 0x168, 0x16A, 0x16C, 0x16E, 0x170, 0x172, 0x174, 0x176, 0x17B, 0x17D, 0x184, 0x1A2, 0x1A4, 0x1A9, 0x1AC, 0x1B5, 0x1BC, 0x1C4, 0x1C7, 0x1CA, 0x1CD, 0x1CF, 0x1D1, 0x1D3, 0x1D5, 0x1D7, 0x1D9, 0x1DB, 0x1DE, 0x1E0, 0x1E2, 0x1E4, 0x1E6, 0x1E8, 0x1EA, 0x1EC, 0x1EE, 0x1F1, 0x1F4, 0x1FA, 0x1FC, 0x1FE, 0x200, 0x202, 0x204, 0x206, 0x208, 0x20A, 0x20C, 0x20E, 0x210, 0x212, 0x214, 0x216, 0x218, 0x21A, 0x21C, 0x21E, 0x220, 0x222, 0x224, 0x226, 0x228, 0x22A, 0x22C, 0x22E, 0x230, 0x232, 0x241, 0x248, 0x24A, 0x24C, 0x24E, 0x370, 0x372, 0x376, 0x37F, 0x386, 0x38C, 0x3CF, 0x3D8, 0x3DA, 0x3DC, 0x3DE, 0x3E0, 0x3E2, 0x3E4, 0x3E6, 0x3E8, 0x3EA, 0x3EC, 0x3EE, 0x3F4, 0x3F7, 0x460, 0x462, 0x464, 0x466, 0x468, 0x46A, 0x46C, 0x46E, 0x470, 0x472, 0x474, 0x476, 0x478, 0x47A, 0x47C, 0x47E, 0x480, 0x48A, 0x48C, 0x48E, 0x490, 0x492, 0x494, 0x496, 0x498, 0x49A, 0x49C, 0x49E, 0x4A0, 0x4A2, 0x4A4, 0x4A6, 0x4A8, 0x4AA, 0x4AC, 0x4AE, 0x4B0, 0x4B2, 0x4B4, 0x4B6, 0x4B8, 0x4BA, 0x4BC, 0x4BE, 0x4C3, 0x4C5, 0x4C7, 0x4C9, 0x4CB, 0x4CD, 0x4D0, 0x4D2, 0x4D4, 0x4D6, 0x4D8, 0x4DA, 0x4DC, 0x4DE, 0x4E0, 0x4E2, 0x4E4, 0x4E6, 0x4E8, 0x4EA, 0x4EC, 0x4EE, 0x4F0, 0x4F2, 0x4F4, 0x4F6, 0x4F8, 0x4FA, 0x4FC, 0x4FE, 0x500, 0x502, 0x504, 0x506, 0x508, 0x50A, 0x50C, 0x50E, 0x510, 0x512, 0x514, 0x516, 0x518, 0x51A, 0x51C, 0x51E, 0x520, 0x522, 0x524, 0x526, 0x528, 0x52A, 0x52C, 0x52E, 0x10C7, 0x10CD, 0x1E00, 0x1E02, 0x1E04, 0x1E06, 0x1E08, 0x1E0A, 0x1E0C, 0x1E0E, 0x1E10, 0x1E12, 0x1E14, 0x1E16, 0x1E18, 0x1E1A, 0x1E1C, 0x1E1E, 0x1E20, 0x1E22, 0x1E24, 0x1E26, 0x1E28, 0x1E2A, 0x1E2C, 0x1E2E, 0x1E30, 0x1E32, 0x1E34, 0x1E36, 0x1E38, 0x1E3A, 0x1E3C, 0x1E3E, 0x1E40, 0x1E42, 0x1E44, 0x1E46, 0x1E48, 0x1E4A, 0x1E4C, 0x1E4E, 0x1E50, 0x1E52, 0x1E54, 0x1E56, 0x1E58, 0x1E5A, 0x1E5C, 0x1E5E, 0x1E60, 0x1E62, 0x1E64, 0x1E66, 0x1E68, 0x1E6A, 0x1E6C, 0x1E6E, 0x1E70, 0x1E72, 0x1E74, 0x1E76, 0x1E78, 0x1E7A, 0x1E7C, 0x1E7E, 0x1E80, 0x1E82, 0x1E84, 0x1E86, 0x1E88, 0x1E8A, 0x1E8C, 0x1E8E, 0x1E90, 0x1E92, 0x1E94, 0x1E9E, 0x1EA0, 0x1EA2, 0x1EA4, 0x1EA6, 0x1EA8, 0x1EAA, 0x1EAC, 0x1EAE, 0x1EB0, 0x1EB2, 0x1EB4, 0x1EB6, 0x1EB8, 0x1EBA, 0x1EBC, 0x1EBE, 0x1EC0, 0x1EC2, 0x1EC4, 0x1EC6, 0x1EC8, 0x1ECA, 0x1ECC, 0x1ECE, 0x1ED0, 0x1ED2, 0x1ED4, 0x1ED6, 0x1ED8, 0x1EDA, 0x1EDC, 0x1EDE, 0x1EE0, 0x1EE2, 0x1EE4, 0x1EE6, 0x1EE8, 0x1EEA, 0x1EEC, 0x1EEE, 0x1EF0, 0x1EF2, 0x1EF4, 0x1EF6, 0x1EF8, 0x1EFA, 0x1EFC, 0x1EFE, 0x1F59, 0x1F5B, 0x1F5D, 0x1F5F, 0x2102, 0x2107, 0x2115, 0x2124, 0x2126, 0x2128, 0x2145, 0x2183, 0x2C60, 0x2C67, 0x2C69, 0x2C6B, 0x2C72, 0x2C75, 0x2C82, 0x2C84, 0x2C86, 0x2C88, 0x2C8A, 0x2C8C, 0x2C8E, 0x2C90, 0x2C92, 0x2C94, 0x2C96, 0x2C98, 0x2C9A, 0x2C9C, 0x2C9E, 0x2CA0, 0x2CA2, 0x2CA4, 0x2CA6, 0x2CA8, 0x2CAA, 0x2CAC, 0x2CAE, 0x2CB0, 0x2CB2, 0x2CB4, 0x2CB6, 0x2CB8, 0x2CBA, 0x2CBC, 0x2CBE, 0x2CC0, 0x2CC2, 0x2CC4, 0x2CC6, 0x2CC8, 0x2CCA, 0x2CCC, 0x2CCE, 0x2CD0, 0x2CD2, 0x2CD4, 0x2CD6, 0x2CD8, 0x2CDA, 0x2CDC, 0x2CDE, 0x2CE0, 0x2CE2, 0x2CEB, 0x2CED, 0x2CF2, 0xA640, 0xA642, 0xA644, 0xA646, 0xA648, 0xA64A, 0xA64C, 0xA64E, 0xA650, 0xA652, 0xA654, 0xA656, 0xA658, 0xA65A, 0xA65C, 0xA65E, 0xA660, 0xA662, 0xA664, 0xA666, 0xA668, 0xA66A, 0xA66C, 0xA680, 0xA682, 0xA684, 0xA686, 0xA688, 0xA68A, 0xA68C, 0xA68E, 0xA690, 0xA692, 0xA694, 0xA696, 0xA698, 0xA69A, 0xA722, 0xA724, 0xA726, 0xA728, 0xA72A, 0xA72C, 0xA72E, 0xA732, 0xA734, 0xA736, 0xA738, 0xA73A, 0xA73C, 0xA73E, 0xA740, 0xA742, 0xA744, 0xA746, 0xA748, 0xA74A, 0xA74C, 0xA74E, 0xA750, 0xA752, 0xA754, 0xA756, 0xA758, 0xA75A, 0xA75C, 0xA75E, 0xA760, 0xA762, 0xA764, 0xA766, 0xA768, 0xA76A, 0xA76C, 0xA76E, 0xA779, 0xA77B, 0xA780, 0xA782, 0xA784, 0xA786, 0xA78B, 0xA78D, 0xA790, 0xA792, 0xA796, 0xA798, 0xA79A, 0xA79C, 0xA79E, 0xA7A0, 0xA7A2, 0xA7A4, 0xA7A6, 0xA7A8, 0xA7B6, 0xA7B8, 0xA7BA, 0xA7BC, 0xA7BE, 0xA7C0, 0xA7C2, 0xA7C9, 0xA7D0, 0xA7D6, 0xA7D8, 0xA7F5, 0x1D49C, 0x1D4A2, 0x1D546, 0x1D7CA);\nset.addRange(0x41, 0x5A).addRange(0xC0, 0xD6).addRange(0xD8, 0xDE).addRange(0x178, 0x179).addRange(0x181, 0x182).addRange(0x186, 0x187).addRange(0x189, 0x18B).addRange(0x18E, 0x191).addRange(0x193, 0x194).addRange(0x196, 0x198).addRange(0x19C, 0x19D).addRange(0x19F, 0x1A0).addRange(0x1A6, 0x1A7).addRange(0x1AE, 0x1AF).addRange(0x1B1, 0x1B3).addRange(0x1B7, 0x1B8).addRange(0x1F6, 0x1F8).addRange(0x23A, 0x23B).addRange(0x23D, 0x23E).addRange(0x243, 0x246).addRange(0x388, 0x38A).addRange(0x38E, 0x38F).addRange(0x391, 0x3A1).addRange(0x3A3, 0x3AB).addRange(0x3D2, 0x3D4).addRange(0x3F9, 0x3FA).addRange(0x3FD, 0x42F).addRange(0x4C0, 0x4C1).addRange(0x531, 0x556).addRange(0x10A0, 0x10C5).addRange(0x13A0, 0x13F5).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x1F08, 0x1F0F).addRange(0x1F18, 0x1F1D).addRange(0x1F28, 0x1F2F).addRange(0x1F38, 0x1F3F).addRange(0x1F48, 0x1F4D).addRange(0x1F68, 0x1F6F).addRange(0x1FB8, 0x1FBB).addRange(0x1FC8, 0x1FCB).addRange(0x1FD8, 0x1FDB).addRange(0x1FE8, 0x1FEC).addRange(0x1FF8, 0x1FFB).addRange(0x210B, 0x210D).addRange(0x2110, 0x2112).addRange(0x2119, 0x211D).addRange(0x212A, 0x212D).addRange(0x2130, 0x2133).addRange(0x213E, 0x213F).addRange(0x2C00, 0x2C2F);\nset.addRange(0x2C62, 0x2C64).addRange(0x2C6D, 0x2C70).addRange(0x2C7E, 0x2C80).addRange(0xA77D, 0xA77E).addRange(0xA7AA, 0xA7AE).addRange(0xA7B0, 0xA7B4).addRange(0xA7C4, 0xA7C7).addRange(0xFF21, 0xFF3A).addRange(0x10400, 0x10427).addRange(0x104B0, 0x104D3).addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10C80, 0x10CB2).addRange(0x118A0, 0x118BF).addRange(0x16E40, 0x16E5F).addRange(0x1D400, 0x1D419).addRange(0x1D434, 0x1D44D).addRange(0x1D468, 0x1D481).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B5).addRange(0x1D4D0, 0x1D4E9).addRange(0x1D504, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D538, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D56C, 0x1D585).addRange(0x1D5A0, 0x1D5B9).addRange(0x1D5D4, 0x1D5ED).addRange(0x1D608, 0x1D621).addRange(0x1D63C, 0x1D655).addRange(0x1D670, 0x1D689).addRange(0x1D6A8, 0x1D6C0).addRange(0x1D6E2, 0x1D6FA).addRange(0x1D71C, 0x1D734).addRange(0x1D756, 0x1D76E).addRange(0x1D790, 0x1D7A8).addRange(0x1E900, 0x1E921);\nexports.characters = set;\n","module.exports = new Map([\n\t['General_Category', [\n\t\t'Cased_Letter',\n\t\t'Close_Punctuation',\n\t\t'Connector_Punctuation',\n\t\t'Control',\n\t\t'Currency_Symbol',\n\t\t'Dash_Punctuation',\n\t\t'Decimal_Number',\n\t\t'Enclosing_Mark',\n\t\t'Final_Punctuation',\n\t\t'Format',\n\t\t'Initial_Punctuation',\n\t\t'Letter',\n\t\t'Letter_Number',\n\t\t'Line_Separator',\n\t\t'Lowercase_Letter',\n\t\t'Mark',\n\t\t'Math_Symbol',\n\t\t'Modifier_Letter',\n\t\t'Modifier_Symbol',\n\t\t'Nonspacing_Mark',\n\t\t'Number',\n\t\t'Open_Punctuation',\n\t\t'Other',\n\t\t'Other_Letter',\n\t\t'Other_Number',\n\t\t'Other_Punctuation',\n\t\t'Other_Symbol',\n\t\t'Paragraph_Separator',\n\t\t'Private_Use',\n\t\t'Punctuation',\n\t\t'Separator',\n\t\t'Space_Separator',\n\t\t'Spacing_Mark',\n\t\t'Surrogate',\n\t\t'Symbol',\n\t\t'Titlecase_Letter',\n\t\t'Unassigned',\n\t\t'Uppercase_Letter'\n\t]],\n\t['Script', [\n\t\t'Adlam',\n\t\t'Ahom',\n\t\t'Anatolian_Hieroglyphs',\n\t\t'Arabic',\n\t\t'Armenian',\n\t\t'Avestan',\n\t\t'Balinese',\n\t\t'Bamum',\n\t\t'Bassa_Vah',\n\t\t'Batak',\n\t\t'Bengali',\n\t\t'Bhaiksuki',\n\t\t'Bopomofo',\n\t\t'Brahmi',\n\t\t'Braille',\n\t\t'Buginese',\n\t\t'Buhid',\n\t\t'Canadian_Aboriginal',\n\t\t'Carian',\n\t\t'Caucasian_Albanian',\n\t\t'Chakma',\n\t\t'Cham',\n\t\t'Cherokee',\n\t\t'Chorasmian',\n\t\t'Common',\n\t\t'Coptic',\n\t\t'Cuneiform',\n\t\t'Cypriot',\n\t\t'Cypro_Minoan',\n\t\t'Cyrillic',\n\t\t'Deseret',\n\t\t'Devanagari',\n\t\t'Dives_Akuru',\n\t\t'Dogra',\n\t\t'Duployan',\n\t\t'Egyptian_Hieroglyphs',\n\t\t'Elbasan',\n\t\t'Elymaic',\n\t\t'Ethiopic',\n\t\t'Georgian',\n\t\t'Glagolitic',\n\t\t'Gothic',\n\t\t'Grantha',\n\t\t'Greek',\n\t\t'Gujarati',\n\t\t'Gunjala_Gondi',\n\t\t'Gurmukhi',\n\t\t'Han',\n\t\t'Hangul',\n\t\t'Hanifi_Rohingya',\n\t\t'Hanunoo',\n\t\t'Hatran',\n\t\t'Hebrew',\n\t\t'Hiragana',\n\t\t'Imperial_Aramaic',\n\t\t'Inherited',\n\t\t'Inscriptional_Pahlavi',\n\t\t'Inscriptional_Parthian',\n\t\t'Javanese',\n\t\t'Kaithi',\n\t\t'Kannada',\n\t\t'Katakana',\n\t\t'Kawi',\n\t\t'Kayah_Li',\n\t\t'Kharoshthi',\n\t\t'Khitan_Small_Script',\n\t\t'Khmer',\n\t\t'Khojki',\n\t\t'Khudawadi',\n\t\t'Lao',\n\t\t'Latin',\n\t\t'Lepcha',\n\t\t'Limbu',\n\t\t'Linear_A',\n\t\t'Linear_B',\n\t\t'Lisu',\n\t\t'Lycian',\n\t\t'Lydian',\n\t\t'Mahajani',\n\t\t'Makasar',\n\t\t'Malayalam',\n\t\t'Mandaic',\n\t\t'Manichaean',\n\t\t'Marchen',\n\t\t'Masaram_Gondi',\n\t\t'Medefaidrin',\n\t\t'Meetei_Mayek',\n\t\t'Mende_Kikakui',\n\t\t'Meroitic_Cursive',\n\t\t'Meroitic_Hieroglyphs',\n\t\t'Miao',\n\t\t'Modi',\n\t\t'Mongolian',\n\t\t'Mro',\n\t\t'Multani',\n\t\t'Myanmar',\n\t\t'Nabataean',\n\t\t'Nag_Mundari',\n\t\t'Nandinagari',\n\t\t'New_Tai_Lue',\n\t\t'Newa',\n\t\t'Nko',\n\t\t'Nushu',\n\t\t'Nyiakeng_Puachue_Hmong',\n\t\t'Ogham',\n\t\t'Ol_Chiki',\n\t\t'Old_Hungarian',\n\t\t'Old_Italic',\n\t\t'Old_North_Arabian',\n\t\t'Old_Permic',\n\t\t'Old_Persian',\n\t\t'Old_Sogdian',\n\t\t'Old_South_Arabian',\n\t\t'Old_Turkic',\n\t\t'Old_Uyghur',\n\t\t'Oriya',\n\t\t'Osage',\n\t\t'Osmanya',\n\t\t'Pahawh_Hmong',\n\t\t'Palmyrene',\n\t\t'Pau_Cin_Hau',\n\t\t'Phags_Pa',\n\t\t'Phoenician',\n\t\t'Psalter_Pahlavi',\n\t\t'Rejang',\n\t\t'Runic',\n\t\t'Samaritan',\n\t\t'Saurashtra',\n\t\t'Sharada',\n\t\t'Shavian',\n\t\t'Siddham',\n\t\t'SignWriting',\n\t\t'Sinhala',\n\t\t'Sogdian',\n\t\t'Sora_Sompeng',\n\t\t'Soyombo',\n\t\t'Sundanese',\n\t\t'Syloti_Nagri',\n\t\t'Syriac',\n\t\t'Tagalog',\n\t\t'Tagbanwa',\n\t\t'Tai_Le',\n\t\t'Tai_Tham',\n\t\t'Tai_Viet',\n\t\t'Takri',\n\t\t'Tamil',\n\t\t'Tangsa',\n\t\t'Tangut',\n\t\t'Telugu',\n\t\t'Thaana',\n\t\t'Thai',\n\t\t'Tibetan',\n\t\t'Tifinagh',\n\t\t'Tirhuta',\n\t\t'Toto',\n\t\t'Ugaritic',\n\t\t'Vai',\n\t\t'Vithkuqi',\n\t\t'Wancho',\n\t\t'Warang_Citi',\n\t\t'Yezidi',\n\t\t'Yi',\n\t\t'Zanabazar_Square'\n\t]],\n\t['Script_Extensions', [\n\t\t'Adlam',\n\t\t'Ahom',\n\t\t'Anatolian_Hieroglyphs',\n\t\t'Arabic',\n\t\t'Armenian',\n\t\t'Avestan',\n\t\t'Balinese',\n\t\t'Bamum',\n\t\t'Bassa_Vah',\n\t\t'Batak',\n\t\t'Bengali',\n\t\t'Bhaiksuki',\n\t\t'Bopomofo',\n\t\t'Brahmi',\n\t\t'Braille',\n\t\t'Buginese',\n\t\t'Buhid',\n\t\t'Canadian_Aboriginal',\n\t\t'Carian',\n\t\t'Caucasian_Albanian',\n\t\t'Chakma',\n\t\t'Cham',\n\t\t'Cherokee',\n\t\t'Chorasmian',\n\t\t'Common',\n\t\t'Coptic',\n\t\t'Cuneiform',\n\t\t'Cypriot',\n\t\t'Cypro_Minoan',\n\t\t'Cyrillic',\n\t\t'Deseret',\n\t\t'Devanagari',\n\t\t'Dives_Akuru',\n\t\t'Dogra',\n\t\t'Duployan',\n\t\t'Egyptian_Hieroglyphs',\n\t\t'Elbasan',\n\t\t'Elymaic',\n\t\t'Ethiopic',\n\t\t'Georgian',\n\t\t'Glagolitic',\n\t\t'Gothic',\n\t\t'Grantha',\n\t\t'Greek',\n\t\t'Gujarati',\n\t\t'Gunjala_Gondi',\n\t\t'Gurmukhi',\n\t\t'Han',\n\t\t'Hangul',\n\t\t'Hanifi_Rohingya',\n\t\t'Hanunoo',\n\t\t'Hatran',\n\t\t'Hebrew',\n\t\t'Hiragana',\n\t\t'Imperial_Aramaic',\n\t\t'Inherited',\n\t\t'Inscriptional_Pahlavi',\n\t\t'Inscriptional_Parthian',\n\t\t'Javanese',\n\t\t'Kaithi',\n\t\t'Kannada',\n\t\t'Katakana',\n\t\t'Kawi',\n\t\t'Kayah_Li',\n\t\t'Kharoshthi',\n\t\t'Khitan_Small_Script',\n\t\t'Khmer',\n\t\t'Khojki',\n\t\t'Khudawadi',\n\t\t'Lao',\n\t\t'Latin',\n\t\t'Lepcha',\n\t\t'Limbu',\n\t\t'Linear_A',\n\t\t'Linear_B',\n\t\t'Lisu',\n\t\t'Lycian',\n\t\t'Lydian',\n\t\t'Mahajani',\n\t\t'Makasar',\n\t\t'Malayalam',\n\t\t'Mandaic',\n\t\t'Manichaean',\n\t\t'Marchen',\n\t\t'Masaram_Gondi',\n\t\t'Medefaidrin',\n\t\t'Meetei_Mayek',\n\t\t'Mende_Kikakui',\n\t\t'Meroitic_Cursive',\n\t\t'Meroitic_Hieroglyphs',\n\t\t'Miao',\n\t\t'Modi',\n\t\t'Mongolian',\n\t\t'Mro',\n\t\t'Multani',\n\t\t'Myanmar',\n\t\t'Nabataean',\n\t\t'Nag_Mundari',\n\t\t'Nandinagari',\n\t\t'New_Tai_Lue',\n\t\t'Newa',\n\t\t'Nko',\n\t\t'Nushu',\n\t\t'Nyiakeng_Puachue_Hmong',\n\t\t'Ogham',\n\t\t'Ol_Chiki',\n\t\t'Old_Hungarian',\n\t\t'Old_Italic',\n\t\t'Old_North_Arabian',\n\t\t'Old_Permic',\n\t\t'Old_Persian',\n\t\t'Old_Sogdian',\n\t\t'Old_South_Arabian',\n\t\t'Old_Turkic',\n\t\t'Old_Uyghur',\n\t\t'Oriya',\n\t\t'Osage',\n\t\t'Osmanya',\n\t\t'Pahawh_Hmong',\n\t\t'Palmyrene',\n\t\t'Pau_Cin_Hau',\n\t\t'Phags_Pa',\n\t\t'Phoenician',\n\t\t'Psalter_Pahlavi',\n\t\t'Rejang',\n\t\t'Runic',\n\t\t'Samaritan',\n\t\t'Saurashtra',\n\t\t'Sharada',\n\t\t'Shavian',\n\t\t'Siddham',\n\t\t'SignWriting',\n\t\t'Sinhala',\n\t\t'Sogdian',\n\t\t'Sora_Sompeng',\n\t\t'Soyombo',\n\t\t'Sundanese',\n\t\t'Syloti_Nagri',\n\t\t'Syriac',\n\t\t'Tagalog',\n\t\t'Tagbanwa',\n\t\t'Tai_Le',\n\t\t'Tai_Tham',\n\t\t'Tai_Viet',\n\t\t'Takri',\n\t\t'Tamil',\n\t\t'Tangsa',\n\t\t'Tangut',\n\t\t'Telugu',\n\t\t'Thaana',\n\t\t'Thai',\n\t\t'Tibetan',\n\t\t'Tifinagh',\n\t\t'Tirhuta',\n\t\t'Toto',\n\t\t'Ugaritic',\n\t\t'Vai',\n\t\t'Vithkuqi',\n\t\t'Wancho',\n\t\t'Warang_Citi',\n\t\t'Yezidi',\n\t\t'Yi',\n\t\t'Zanabazar_Square'\n\t]],\n\t['Binary_Property', [\n\t\t'ASCII',\n\t\t'ASCII_Hex_Digit',\n\t\t'Alphabetic',\n\t\t'Any',\n\t\t'Assigned',\n\t\t'Bidi_Control',\n\t\t'Bidi_Mirrored',\n\t\t'Case_Ignorable',\n\t\t'Cased',\n\t\t'Changes_When_Casefolded',\n\t\t'Changes_When_Casemapped',\n\t\t'Changes_When_Lowercased',\n\t\t'Changes_When_NFKC_Casefolded',\n\t\t'Changes_When_Titlecased',\n\t\t'Changes_When_Uppercased',\n\t\t'Dash',\n\t\t'Default_Ignorable_Code_Point',\n\t\t'Deprecated',\n\t\t'Diacritic',\n\t\t'Emoji',\n\t\t'Emoji_Component',\n\t\t'Emoji_Modifier',\n\t\t'Emoji_Modifier_Base',\n\t\t'Emoji_Presentation',\n\t\t'Extended_Pictographic',\n\t\t'Extender',\n\t\t'Grapheme_Base',\n\t\t'Grapheme_Extend',\n\t\t'Hex_Digit',\n\t\t'IDS_Binary_Operator',\n\t\t'IDS_Trinary_Operator',\n\t\t'ID_Continue',\n\t\t'ID_Start',\n\t\t'Ideographic',\n\t\t'Join_Control',\n\t\t'Logical_Order_Exception',\n\t\t'Lowercase',\n\t\t'Math',\n\t\t'Noncharacter_Code_Point',\n\t\t'Pattern_Syntax',\n\t\t'Pattern_White_Space',\n\t\t'Quotation_Mark',\n\t\t'Radical',\n\t\t'Regional_Indicator',\n\t\t'Sentence_Terminal',\n\t\t'Soft_Dotted',\n\t\t'Terminal_Punctuation',\n\t\t'Unified_Ideograph',\n\t\t'Uppercase',\n\t\t'Variation_Selector',\n\t\t'White_Space',\n\t\t'XID_Continue',\n\t\t'XID_Start'\n\t]],\n\t['Property_of_Strings', [\n\t\t'Basic_Emoji',\n\t\t'Emoji_Keycap_Sequence',\n\t\t'RGI_Emoji',\n\t\t'RGI_Emoji_Flag_Sequence',\n\t\t'RGI_Emoji_Modifier_Sequence',\n\t\t'RGI_Emoji_Tag_Sequence',\n\t\t'RGI_Emoji_ZWJ_Sequence'\n\t]]\n]);\n","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['\\xA9\\uFE0F','\\xAE\\uFE0F','\\u203C\\uFE0F','\\u2049\\uFE0F','\\u2122\\uFE0F','\\u2139\\uFE0F','\\u2194\\uFE0F','\\u2195\\uFE0F','\\u2196\\uFE0F','\\u2197\\uFE0F','\\u2198\\uFE0F','\\u2199\\uFE0F','\\u21A9\\uFE0F','\\u21AA\\uFE0F','\\u2328\\uFE0F','\\u23CF\\uFE0F','\\u23ED\\uFE0F','\\u23EE\\uFE0F','\\u23EF\\uFE0F','\\u23F1\\uFE0F','\\u23F2\\uFE0F','\\u23F8\\uFE0F','\\u23F9\\uFE0F','\\u23FA\\uFE0F','\\u24C2\\uFE0F','\\u25AA\\uFE0F','\\u25AB\\uFE0F','\\u25B6\\uFE0F','\\u25C0\\uFE0F','\\u25FB\\uFE0F','\\u25FC\\uFE0F','\\u2600\\uFE0F','\\u2601\\uFE0F','\\u2602\\uFE0F','\\u2603\\uFE0F','\\u2604\\uFE0F','\\u260E\\uFE0F','\\u2611\\uFE0F','\\u2618\\uFE0F','\\u261D\\uFE0F','\\u2620\\uFE0F','\\u2622\\uFE0F','\\u2623\\uFE0F','\\u2626\\uFE0F','\\u262A\\uFE0F','\\u262E\\uFE0F','\\u262F\\uFE0F','\\u2638\\uFE0F','\\u2639\\uFE0F','\\u263A\\uFE0F','\\u2640\\uFE0F','\\u2642\\uFE0F','\\u265F\\uFE0F','\\u2660\\uFE0F','\\u2663\\uFE0F','\\u2665\\uFE0F','\\u2666\\uFE0F','\\u2668\\uFE0F','\\u267B\\uFE0F','\\u267E\\uFE0F','\\u2692\\uFE0F','\\u2694\\uFE0F','\\u2695\\uFE0F','\\u2696\\uFE0F','\\u2697\\uFE0F','\\u2699\\uFE0F','\\u269B\\uFE0F','\\u269C\\uFE0F','\\u26A0\\uFE0F','\\u26A7\\uFE0F','\\u26B0\\uFE0F','\\u26B1\\uFE0F','\\u26C8\\uFE0F','\\u26CF\\uFE0F','\\u26D1\\uFE0F','\\u26D3\\uFE0F','\\u26E9\\uFE0F','\\u26F0\\uFE0F','\\u26F1\\uFE0F','\\u26F4\\uFE0F','\\u26F7\\uFE0F','\\u26F8\\uFE0F','\\u26F9\\uFE0F','\\u2702\\uFE0F','\\u2708\\uFE0F','\\u2709\\uFE0F','\\u270C\\uFE0F','\\u270D\\uFE0F','\\u270F\\uFE0F','\\u2712\\uFE0F','\\u2714\\uFE0F','\\u2716\\uFE0F','\\u271D\\uFE0F','\\u2721\\uFE0F','\\u2733\\uFE0F','\\u2734\\uFE0F','\\u2744\\uFE0F','\\u2747\\uFE0F','\\u2763\\uFE0F','\\u2764\\uFE0F','\\u27A1\\uFE0F','\\u2934\\uFE0F','\\u2935\\uFE0F','\\u2B05\\uFE0F','\\u2B06\\uFE0F','\\u2B07\\uFE0F','\\u3030\\uFE0F','\\u303D\\uFE0F','\\u3297\\uFE0F','\\u3299\\uFE0F','\\u{1F170}\\uFE0F','\\u{1F171}\\uFE0F','\\u{1F17E}\\uFE0F','\\u{1F17F}\\uFE0F','\\u{1F202}\\uFE0F','\\u{1F237}\\uFE0F','\\u{1F321}\\uFE0F','\\u{1F324}\\uFE0F','\\u{1F325}\\uFE0F','\\u{1F326}\\uFE0F','\\u{1F327}\\uFE0F','\\u{1F328}\\uFE0F','\\u{1F329}\\uFE0F','\\u{1F32A}\\uFE0F','\\u{1F32B}\\uFE0F','\\u{1F32C}\\uFE0F','\\u{1F336}\\uFE0F','\\u{1F37D}\\uFE0F','\\u{1F396}\\uFE0F','\\u{1F397}\\uFE0F','\\u{1F399}\\uFE0F','\\u{1F39A}\\uFE0F','\\u{1F39B}\\uFE0F','\\u{1F39E}\\uFE0F','\\u{1F39F}\\uFE0F','\\u{1F3CB}\\uFE0F','\\u{1F3CC}\\uFE0F','\\u{1F3CD}\\uFE0F','\\u{1F3CE}\\uFE0F','\\u{1F3D4}\\uFE0F','\\u{1F3D5}\\uFE0F','\\u{1F3D6}\\uFE0F','\\u{1F3D7}\\uFE0F','\\u{1F3D8}\\uFE0F','\\u{1F3D9}\\uFE0F','\\u{1F3DA}\\uFE0F','\\u{1F3DB}\\uFE0F','\\u{1F3DC}\\uFE0F','\\u{1F3DD}\\uFE0F','\\u{1F3DE}\\uFE0F','\\u{1F3DF}\\uFE0F','\\u{1F3F3}\\uFE0F','\\u{1F3F5}\\uFE0F','\\u{1F3F7}\\uFE0F','\\u{1F43F}\\uFE0F','\\u{1F441}\\uFE0F','\\u{1F4FD}\\uFE0F','\\u{1F549}\\uFE0F','\\u{1F54A}\\uFE0F','\\u{1F56F}\\uFE0F','\\u{1F570}\\uFE0F','\\u{1F573}\\uFE0F','\\u{1F574}\\uFE0F','\\u{1F575}\\uFE0F','\\u{1F576}\\uFE0F','\\u{1F577}\\uFE0F','\\u{1F578}\\uFE0F','\\u{1F579}\\uFE0F','\\u{1F587}\\uFE0F','\\u{1F58A}\\uFE0F','\\u{1F58B}\\uFE0F','\\u{1F58C}\\uFE0F','\\u{1F58D}\\uFE0F','\\u{1F590}\\uFE0F','\\u{1F5A5}\\uFE0F','\\u{1F5A8}\\uFE0F','\\u{1F5B1}\\uFE0F','\\u{1F5B2}\\uFE0F','\\u{1F5BC}\\uFE0F','\\u{1F5C2}\\uFE0F','\\u{1F5C3}\\uFE0F','\\u{1F5C4}\\uFE0F','\\u{1F5D1}\\uFE0F','\\u{1F5D2}\\uFE0F','\\u{1F5D3}\\uFE0F','\\u{1F5DC}\\uFE0F','\\u{1F5DD}\\uFE0F','\\u{1F5DE}\\uFE0F','\\u{1F5E1}\\uFE0F','\\u{1F5E3}\\uFE0F','\\u{1F5E8}\\uFE0F','\\u{1F5EF}\\uFE0F','\\u{1F5F3}\\uFE0F','\\u{1F5FA}\\uFE0F','\\u{1F6CB}\\uFE0F','\\u{1F6CD}\\uFE0F','\\u{1F6CE}\\uFE0F','\\u{1F6CF}\\uFE0F','\\u{1F6E0}\\uFE0F','\\u{1F6E1}\\uFE0F','\\u{1F6E2}\\uFE0F','\\u{1F6E3}\\uFE0F','\\u{1F6E4}\\uFE0F','\\u{1F6E5}\\uFE0F','\\u{1F6E9}\\uFE0F','\\u{1F6F0}\\uFE0F','\\u{1F6F3}\\uFE0F'];\n","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3','*\\uFE0F\\u20E3','0\\uFE0F\\u20E3','1\\uFE0F\\u20E3','2\\uFE0F\\u20E3','3\\uFE0F\\u20E3','4\\uFE0F\\u20E3','5\\uFE0F\\u20E3','6\\uFE0F\\u20E3','7\\uFE0F\\u20E3','8\\uFE0F\\u20E3','9\\uFE0F\\u20E3'];\n","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F1E6}\\u{1F1E8}','\\u{1F1E6}\\u{1F1E9}','\\u{1F1E6}\\u{1F1EA}','\\u{1F1E6}\\u{1F1EB}','\\u{1F1E6}\\u{1F1EC}','\\u{1F1E6}\\u{1F1EE}','\\u{1F1E6}\\u{1F1F1}','\\u{1F1E6}\\u{1F1F2}','\\u{1F1E6}\\u{1F1F4}','\\u{1F1E6}\\u{1F1F6}','\\u{1F1E6}\\u{1F1F7}','\\u{1F1E6}\\u{1F1F8}','\\u{1F1E6}\\u{1F1F9}','\\u{1F1E6}\\u{1F1FA}','\\u{1F1E6}\\u{1F1FC}','\\u{1F1E6}\\u{1F1FD}','\\u{1F1E6}\\u{1F1FF}','\\u{1F1E7}\\u{1F1E6}','\\u{1F1E7}\\u{1F1E7}','\\u{1F1E7}\\u{1F1E9}','\\u{1F1E7}\\u{1F1EA}','\\u{1F1E7}\\u{1F1EB}','\\u{1F1E7}\\u{1F1EC}','\\u{1F1E7}\\u{1F1ED}','\\u{1F1E7}\\u{1F1EE}','\\u{1F1E7}\\u{1F1EF}','\\u{1F1E7}\\u{1F1F1}','\\u{1F1E7}\\u{1F1F2}','\\u{1F1E7}\\u{1F1F3}','\\u{1F1E7}\\u{1F1F4}','\\u{1F1E7}\\u{1F1F6}','\\u{1F1E7}\\u{1F1F7}','\\u{1F1E7}\\u{1F1F8}','\\u{1F1E7}\\u{1F1F9}','\\u{1F1E7}\\u{1F1FB}','\\u{1F1E7}\\u{1F1FC}','\\u{1F1E7}\\u{1F1FE}','\\u{1F1E7}\\u{1F1FF}','\\u{1F1E8}\\u{1F1E6}','\\u{1F1E8}\\u{1F1E8}','\\u{1F1E8}\\u{1F1E9}','\\u{1F1E8}\\u{1F1EB}','\\u{1F1E8}\\u{1F1EC}','\\u{1F1E8}\\u{1F1ED}','\\u{1F1E8}\\u{1F1EE}','\\u{1F1E8}\\u{1F1F0}','\\u{1F1E8}\\u{1F1F1}','\\u{1F1E8}\\u{1F1F2}','\\u{1F1E8}\\u{1F1F3}','\\u{1F1E8}\\u{1F1F4}','\\u{1F1E8}\\u{1F1F5}','\\u{1F1E8}\\u{1F1F7}','\\u{1F1E8}\\u{1F1FA}','\\u{1F1E8}\\u{1F1FB}','\\u{1F1E8}\\u{1F1FC}','\\u{1F1E8}\\u{1F1FD}','\\u{1F1E8}\\u{1F1FE}','\\u{1F1E8}\\u{1F1FF}','\\u{1F1E9}\\u{1F1EA}','\\u{1F1E9}\\u{1F1EC}','\\u{1F1E9}\\u{1F1EF}','\\u{1F1E9}\\u{1F1F0}','\\u{1F1E9}\\u{1F1F2}','\\u{1F1E9}\\u{1F1F4}','\\u{1F1E9}\\u{1F1FF}','\\u{1F1EA}\\u{1F1E6}','\\u{1F1EA}\\u{1F1E8}','\\u{1F1EA}\\u{1F1EA}','\\u{1F1EA}\\u{1F1EC}','\\u{1F1EA}\\u{1F1ED}','\\u{1F1EA}\\u{1F1F7}','\\u{1F1EA}\\u{1F1F8}','\\u{1F1EA}\\u{1F1F9}','\\u{1F1EA}\\u{1F1FA}','\\u{1F1EB}\\u{1F1EE}','\\u{1F1EB}\\u{1F1EF}','\\u{1F1EB}\\u{1F1F0}','\\u{1F1EB}\\u{1F1F2}','\\u{1F1EB}\\u{1F1F4}','\\u{1F1EB}\\u{1F1F7}','\\u{1F1EC}\\u{1F1E6}','\\u{1F1EC}\\u{1F1E7}','\\u{1F1EC}\\u{1F1E9}','\\u{1F1EC}\\u{1F1EA}','\\u{1F1EC}\\u{1F1EB}','\\u{1F1EC}\\u{1F1EC}','\\u{1F1EC}\\u{1F1ED}','\\u{1F1EC}\\u{1F1EE}','\\u{1F1EC}\\u{1F1F1}','\\u{1F1EC}\\u{1F1F2}','\\u{1F1EC}\\u{1F1F3}','\\u{1F1EC}\\u{1F1F5}','\\u{1F1EC}\\u{1F1F6}','\\u{1F1EC}\\u{1F1F7}','\\u{1F1EC}\\u{1F1F8}','\\u{1F1EC}\\u{1F1F9}','\\u{1F1EC}\\u{1F1FA}','\\u{1F1EC}\\u{1F1FC}','\\u{1F1EC}\\u{1F1FE}','\\u{1F1ED}\\u{1F1F0}','\\u{1F1ED}\\u{1F1F2}','\\u{1F1ED}\\u{1F1F3}','\\u{1F1ED}\\u{1F1F7}','\\u{1F1ED}\\u{1F1F9}','\\u{1F1ED}\\u{1F1FA}','\\u{1F1EE}\\u{1F1E8}','\\u{1F1EE}\\u{1F1E9}','\\u{1F1EE}\\u{1F1EA}','\\u{1F1EE}\\u{1F1F1}','\\u{1F1EE}\\u{1F1F2}','\\u{1F1EE}\\u{1F1F3}','\\u{1F1EE}\\u{1F1F4}','\\u{1F1EE}\\u{1F1F6}','\\u{1F1EE}\\u{1F1F7}','\\u{1F1EE}\\u{1F1F8}','\\u{1F1EE}\\u{1F1F9}','\\u{1F1EF}\\u{1F1EA}','\\u{1F1EF}\\u{1F1F2}','\\u{1F1EF}\\u{1F1F4}','\\u{1F1EF}\\u{1F1F5}','\\u{1F1F0}\\u{1F1EA}','\\u{1F1F0}\\u{1F1EC}','\\u{1F1F0}\\u{1F1ED}','\\u{1F1F0}\\u{1F1EE}','\\u{1F1F0}\\u{1F1F2}','\\u{1F1F0}\\u{1F1F3}','\\u{1F1F0}\\u{1F1F5}','\\u{1F1F0}\\u{1F1F7}','\\u{1F1F0}\\u{1F1FC}','\\u{1F1F0}\\u{1F1FE}','\\u{1F1F0}\\u{1F1FF}','\\u{1F1F1}\\u{1F1E6}','\\u{1F1F1}\\u{1F1E7}','\\u{1F1F1}\\u{1F1E8}','\\u{1F1F1}\\u{1F1EE}','\\u{1F1F1}\\u{1F1F0}','\\u{1F1F1}\\u{1F1F7}','\\u{1F1F1}\\u{1F1F8}','\\u{1F1F1}\\u{1F1F9}','\\u{1F1F1}\\u{1F1FA}','\\u{1F1F1}\\u{1F1FB}','\\u{1F1F1}\\u{1F1FE}','\\u{1F1F2}\\u{1F1E6}','\\u{1F1F2}\\u{1F1E8}','\\u{1F1F2}\\u{1F1E9}','\\u{1F1F2}\\u{1F1EA}','\\u{1F1F2}\\u{1F1EB}','\\u{1F1F2}\\u{1F1EC}','\\u{1F1F2}\\u{1F1ED}','\\u{1F1F2}\\u{1F1F0}','\\u{1F1F2}\\u{1F1F1}','\\u{1F1F2}\\u{1F1F2}','\\u{1F1F2}\\u{1F1F3}','\\u{1F1F2}\\u{1F1F4}','\\u{1F1F2}\\u{1F1F5}','\\u{1F1F2}\\u{1F1F6}','\\u{1F1F2}\\u{1F1F7}','\\u{1F1F2}\\u{1F1F8}','\\u{1F1F2}\\u{1F1F9}','\\u{1F1F2}\\u{1F1FA}','\\u{1F1F2}\\u{1F1FB}','\\u{1F1F2}\\u{1F1FC}','\\u{1F1F2}\\u{1F1FD}','\\u{1F1F2}\\u{1F1FE}','\\u{1F1F2}\\u{1F1FF}','\\u{1F1F3}\\u{1F1E6}','\\u{1F1F3}\\u{1F1E8}','\\u{1F1F3}\\u{1F1EA}','\\u{1F1F3}\\u{1F1EB}','\\u{1F1F3}\\u{1F1EC}','\\u{1F1F3}\\u{1F1EE}','\\u{1F1F3}\\u{1F1F1}','\\u{1F1F3}\\u{1F1F4}','\\u{1F1F3}\\u{1F1F5}','\\u{1F1F3}\\u{1F1F7}','\\u{1F1F3}\\u{1F1FA}','\\u{1F1F3}\\u{1F1FF}','\\u{1F1F4}\\u{1F1F2}','\\u{1F1F5}\\u{1F1E6}','\\u{1F1F5}\\u{1F1EA}','\\u{1F1F5}\\u{1F1EB}','\\u{1F1F5}\\u{1F1EC}','\\u{1F1F5}\\u{1F1ED}','\\u{1F1F5}\\u{1F1F0}','\\u{1F1F5}\\u{1F1F1}','\\u{1F1F5}\\u{1F1F2}','\\u{1F1F5}\\u{1F1F3}','\\u{1F1F5}\\u{1F1F7}','\\u{1F1F5}\\u{1F1F8}','\\u{1F1F5}\\u{1F1F9}','\\u{1F1F5}\\u{1F1FC}','\\u{1F1F5}\\u{1F1FE}','\\u{1F1F6}\\u{1F1E6}','\\u{1F1F7}\\u{1F1EA}','\\u{1F1F7}\\u{1F1F4}','\\u{1F1F7}\\u{1F1F8}','\\u{1F1F7}\\u{1F1FA}','\\u{1F1F7}\\u{1F1FC}','\\u{1F1F8}\\u{1F1E6}','\\u{1F1F8}\\u{1F1E7}','\\u{1F1F8}\\u{1F1E8}','\\u{1F1F8}\\u{1F1E9}','\\u{1F1F8}\\u{1F1EA}','\\u{1F1F8}\\u{1F1EC}','\\u{1F1F8}\\u{1F1ED}','\\u{1F1F8}\\u{1F1EE}','\\u{1F1F8}\\u{1F1EF}','\\u{1F1F8}\\u{1F1F0}','\\u{1F1F8}\\u{1F1F1}','\\u{1F1F8}\\u{1F1F2}','\\u{1F1F8}\\u{1F1F3}','\\u{1F1F8}\\u{1F1F4}','\\u{1F1F8}\\u{1F1F7}','\\u{1F1F8}\\u{1F1F8}','\\u{1F1F8}\\u{1F1F9}','\\u{1F1F8}\\u{1F1FB}','\\u{1F1F8}\\u{1F1FD}','\\u{1F1F8}\\u{1F1FE}','\\u{1F1F8}\\u{1F1FF}','\\u{1F1F9}\\u{1F1E6}','\\u{1F1F9}\\u{1F1E8}','\\u{1F1F9}\\u{1F1E9}','\\u{1F1F9}\\u{1F1EB}','\\u{1F1F9}\\u{1F1EC}','\\u{1F1F9}\\u{1F1ED}','\\u{1F1F9}\\u{1F1EF}','\\u{1F1F9}\\u{1F1F0}','\\u{1F1F9}\\u{1F1F1}','\\u{1F1F9}\\u{1F1F2}','\\u{1F1F9}\\u{1F1F3}','\\u{1F1F9}\\u{1F1F4}','\\u{1F1F9}\\u{1F1F7}','\\u{1F1F9}\\u{1F1F9}','\\u{1F1F9}\\u{1F1FB}','\\u{1F1F9}\\u{1F1FC}','\\u{1F1F9}\\u{1F1FF}','\\u{1F1FA}\\u{1F1E6}','\\u{1F1FA}\\u{1F1EC}','\\u{1F1FA}\\u{1F1F2}','\\u{1F1FA}\\u{1F1F3}','\\u{1F1FA}\\u{1F1F8}','\\u{1F1FA}\\u{1F1FE}','\\u{1F1FA}\\u{1F1FF}','\\u{1F1FB}\\u{1F1E6}','\\u{1F1FB}\\u{1F1E8}','\\u{1F1FB}\\u{1F1EA}','\\u{1F1FB}\\u{1F1EC}','\\u{1F1FB}\\u{1F1EE}','\\u{1F1FB}\\u{1F1F3}','\\u{1F1FB}\\u{1F1FA}','\\u{1F1FC}\\u{1F1EB}','\\u{1F1FC}\\u{1F1F8}','\\u{1F1FD}\\u{1F1F0}','\\u{1F1FE}\\u{1F1EA}','\\u{1F1FE}\\u{1F1F9}','\\u{1F1FF}\\u{1F1E6}','\\u{1F1FF}\\u{1F1F2}','\\u{1F1FF}\\u{1F1FC}'];\n","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u261D\\u{1F3FB}','\\u261D\\u{1F3FC}','\\u261D\\u{1F3FD}','\\u261D\\u{1F3FE}','\\u261D\\u{1F3FF}','\\u26F9\\u{1F3FB}','\\u26F9\\u{1F3FC}','\\u26F9\\u{1F3FD}','\\u26F9\\u{1F3FE}','\\u26F9\\u{1F3FF}','\\u270A\\u{1F3FB}','\\u270A\\u{1F3FC}','\\u270A\\u{1F3FD}','\\u270A\\u{1F3FE}','\\u270A\\u{1F3FF}','\\u270B\\u{1F3FB}','\\u270B\\u{1F3FC}','\\u270B\\u{1F3FD}','\\u270B\\u{1F3FE}','\\u270B\\u{1F3FF}','\\u270C\\u{1F3FB}','\\u270C\\u{1F3FC}','\\u270C\\u{1F3FD}','\\u270C\\u{1F3FE}','\\u270C\\u{1F3FF}','\\u270D\\u{1F3FB}','\\u270D\\u{1F3FC}','\\u270D\\u{1F3FD}','\\u270D\\u{1F3FE}','\\u270D\\u{1F3FF}','\\u{1F385}\\u{1F3FB}','\\u{1F385}\\u{1F3FC}','\\u{1F385}\\u{1F3FD}','\\u{1F385}\\u{1F3FE}','\\u{1F385}\\u{1F3FF}','\\u{1F3C2}\\u{1F3FB}','\\u{1F3C2}\\u{1F3FC}','\\u{1F3C2}\\u{1F3FD}','\\u{1F3C2}\\u{1F3FE}','\\u{1F3C2}\\u{1F3FF}','\\u{1F3C3}\\u{1F3FB}','\\u{1F3C3}\\u{1F3FC}','\\u{1F3C3}\\u{1F3FD}','\\u{1F3C3}\\u{1F3FE}','\\u{1F3C3}\\u{1F3FF}','\\u{1F3C4}\\u{1F3FB}','\\u{1F3C4}\\u{1F3FC}','\\u{1F3C4}\\u{1F3FD}','\\u{1F3C4}\\u{1F3FE}','\\u{1F3C4}\\u{1F3FF}','\\u{1F3C7}\\u{1F3FB}','\\u{1F3C7}\\u{1F3FC}','\\u{1F3C7}\\u{1F3FD}','\\u{1F3C7}\\u{1F3FE}','\\u{1F3C7}\\u{1F3FF}','\\u{1F3CA}\\u{1F3FB}','\\u{1F3CA}\\u{1F3FC}','\\u{1F3CA}\\u{1F3FD}','\\u{1F3CA}\\u{1F3FE}','\\u{1F3CA}\\u{1F3FF}','\\u{1F3CB}\\u{1F3FB}','\\u{1F3CB}\\u{1F3FC}','\\u{1F3CB}\\u{1F3FD}','\\u{1F3CB}\\u{1F3FE}','\\u{1F3CB}\\u{1F3FF}','\\u{1F3CC}\\u{1F3FB}','\\u{1F3CC}\\u{1F3FC}','\\u{1F3CC}\\u{1F3FD}','\\u{1F3CC}\\u{1F3FE}','\\u{1F3CC}\\u{1F3FF}','\\u{1F442}\\u{1F3FB}','\\u{1F442}\\u{1F3FC}','\\u{1F442}\\u{1F3FD}','\\u{1F442}\\u{1F3FE}','\\u{1F442}\\u{1F3FF}','\\u{1F443}\\u{1F3FB}','\\u{1F443}\\u{1F3FC}','\\u{1F443}\\u{1F3FD}','\\u{1F443}\\u{1F3FE}','\\u{1F443}\\u{1F3FF}','\\u{1F446}\\u{1F3FB}','\\u{1F446}\\u{1F3FC}','\\u{1F446}\\u{1F3FD}','\\u{1F446}\\u{1F3FE}','\\u{1F446}\\u{1F3FF}','\\u{1F447}\\u{1F3FB}','\\u{1F447}\\u{1F3FC}','\\u{1F447}\\u{1F3FD}','\\u{1F447}\\u{1F3FE}','\\u{1F447}\\u{1F3FF}','\\u{1F448}\\u{1F3FB}','\\u{1F448}\\u{1F3FC}','\\u{1F448}\\u{1F3FD}','\\u{1F448}\\u{1F3FE}','\\u{1F448}\\u{1F3FF}','\\u{1F449}\\u{1F3FB}','\\u{1F449}\\u{1F3FC}','\\u{1F449}\\u{1F3FD}','\\u{1F449}\\u{1F3FE}','\\u{1F449}\\u{1F3FF}','\\u{1F44A}\\u{1F3FB}','\\u{1F44A}\\u{1F3FC}','\\u{1F44A}\\u{1F3FD}','\\u{1F44A}\\u{1F3FE}','\\u{1F44A}\\u{1F3FF}','\\u{1F44B}\\u{1F3FB}','\\u{1F44B}\\u{1F3FC}','\\u{1F44B}\\u{1F3FD}','\\u{1F44B}\\u{1F3FE}','\\u{1F44B}\\u{1F3FF}','\\u{1F44C}\\u{1F3FB}','\\u{1F44C}\\u{1F3FC}','\\u{1F44C}\\u{1F3FD}','\\u{1F44C}\\u{1F3FE}','\\u{1F44C}\\u{1F3FF}','\\u{1F44D}\\u{1F3FB}','\\u{1F44D}\\u{1F3FC}','\\u{1F44D}\\u{1F3FD}','\\u{1F44D}\\u{1F3FE}','\\u{1F44D}\\u{1F3FF}','\\u{1F44E}\\u{1F3FB}','\\u{1F44E}\\u{1F3FC}','\\u{1F44E}\\u{1F3FD}','\\u{1F44E}\\u{1F3FE}','\\u{1F44E}\\u{1F3FF}','\\u{1F44F}\\u{1F3FB}','\\u{1F44F}\\u{1F3FC}','\\u{1F44F}\\u{1F3FD}','\\u{1F44F}\\u{1F3FE}','\\u{1F44F}\\u{1F3FF}','\\u{1F450}\\u{1F3FB}','\\u{1F450}\\u{1F3FC}','\\u{1F450}\\u{1F3FD}','\\u{1F450}\\u{1F3FE}','\\u{1F450}\\u{1F3FF}','\\u{1F466}\\u{1F3FB}','\\u{1F466}\\u{1F3FC}','\\u{1F466}\\u{1F3FD}','\\u{1F466}\\u{1F3FE}','\\u{1F466}\\u{1F3FF}','\\u{1F467}\\u{1F3FB}','\\u{1F467}\\u{1F3FC}','\\u{1F467}\\u{1F3FD}','\\u{1F467}\\u{1F3FE}','\\u{1F467}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}','\\u{1F46B}\\u{1F3FB}','\\u{1F46B}\\u{1F3FC}','\\u{1F46B}\\u{1F3FD}','\\u{1F46B}\\u{1F3FE}','\\u{1F46B}\\u{1F3FF}','\\u{1F46C}\\u{1F3FB}','\\u{1F46C}\\u{1F3FC}','\\u{1F46C}\\u{1F3FD}','\\u{1F46C}\\u{1F3FE}','\\u{1F46C}\\u{1F3FF}','\\u{1F46D}\\u{1F3FB}','\\u{1F46D}\\u{1F3FC}','\\u{1F46D}\\u{1F3FD}','\\u{1F46D}\\u{1F3FE}','\\u{1F46D}\\u{1F3FF}','\\u{1F46E}\\u{1F3FB}','\\u{1F46E}\\u{1F3FC}','\\u{1F46E}\\u{1F3FD}','\\u{1F46E}\\u{1F3FE}','\\u{1F46E}\\u{1F3FF}','\\u{1F470}\\u{1F3FB}','\\u{1F470}\\u{1F3FC}','\\u{1F470}\\u{1F3FD}','\\u{1F470}\\u{1F3FE}','\\u{1F470}\\u{1F3FF}','\\u{1F471}\\u{1F3FB}','\\u{1F471}\\u{1F3FC}','\\u{1F471}\\u{1F3FD}','\\u{1F471}\\u{1F3FE}','\\u{1F471}\\u{1F3FF}','\\u{1F472}\\u{1F3FB}','\\u{1F472}\\u{1F3FC}','\\u{1F472}\\u{1F3FD}','\\u{1F472}\\u{1F3FE}','\\u{1F472}\\u{1F3FF}','\\u{1F473}\\u{1F3FB}','\\u{1F473}\\u{1F3FC}','\\u{1F473}\\u{1F3FD}','\\u{1F473}\\u{1F3FE}','\\u{1F473}\\u{1F3FF}','\\u{1F474}\\u{1F3FB}','\\u{1F474}\\u{1F3FC}','\\u{1F474}\\u{1F3FD}','\\u{1F474}\\u{1F3FE}','\\u{1F474}\\u{1F3FF}','\\u{1F475}\\u{1F3FB}','\\u{1F475}\\u{1F3FC}','\\u{1F475}\\u{1F3FD}','\\u{1F475}\\u{1F3FE}','\\u{1F475}\\u{1F3FF}','\\u{1F476}\\u{1F3FB}','\\u{1F476}\\u{1F3FC}','\\u{1F476}\\u{1F3FD}','\\u{1F476}\\u{1F3FE}','\\u{1F476}\\u{1F3FF}','\\u{1F477}\\u{1F3FB}','\\u{1F477}\\u{1F3FC}','\\u{1F477}\\u{1F3FD}','\\u{1F477}\\u{1F3FE}','\\u{1F477}\\u{1F3FF}','\\u{1F478}\\u{1F3FB}','\\u{1F478}\\u{1F3FC}','\\u{1F478}\\u{1F3FD}','\\u{1F478}\\u{1F3FE}','\\u{1F478}\\u{1F3FF}','\\u{1F47C}\\u{1F3FB}','\\u{1F47C}\\u{1F3FC}','\\u{1F47C}\\u{1F3FD}','\\u{1F47C}\\u{1F3FE}','\\u{1F47C}\\u{1F3FF}','\\u{1F481}\\u{1F3FB}','\\u{1F481}\\u{1F3FC}','\\u{1F481}\\u{1F3FD}','\\u{1F481}\\u{1F3FE}','\\u{1F481}\\u{1F3FF}','\\u{1F482}\\u{1F3FB}','\\u{1F482}\\u{1F3FC}','\\u{1F482}\\u{1F3FD}','\\u{1F482}\\u{1F3FE}','\\u{1F482}\\u{1F3FF}','\\u{1F483}\\u{1F3FB}','\\u{1F483}\\u{1F3FC}','\\u{1F483}\\u{1F3FD}','\\u{1F483}\\u{1F3FE}','\\u{1F483}\\u{1F3FF}','\\u{1F485}\\u{1F3FB}','\\u{1F485}\\u{1F3FC}','\\u{1F485}\\u{1F3FD}','\\u{1F485}\\u{1F3FE}','\\u{1F485}\\u{1F3FF}','\\u{1F486}\\u{1F3FB}','\\u{1F486}\\u{1F3FC}','\\u{1F486}\\u{1F3FD}','\\u{1F486}\\u{1F3FE}','\\u{1F486}\\u{1F3FF}','\\u{1F487}\\u{1F3FB}','\\u{1F487}\\u{1F3FC}','\\u{1F487}\\u{1F3FD}','\\u{1F487}\\u{1F3FE}','\\u{1F487}\\u{1F3FF}','\\u{1F48F}\\u{1F3FB}','\\u{1F48F}\\u{1F3FC}','\\u{1F48F}\\u{1F3FD}','\\u{1F48F}\\u{1F3FE}','\\u{1F48F}\\u{1F3FF}','\\u{1F491}\\u{1F3FB}','\\u{1F491}\\u{1F3FC}','\\u{1F491}\\u{1F3FD}','\\u{1F491}\\u{1F3FE}','\\u{1F491}\\u{1F3FF}','\\u{1F4AA}\\u{1F3FB}','\\u{1F4AA}\\u{1F3FC}','\\u{1F4AA}\\u{1F3FD}','\\u{1F4AA}\\u{1F3FE}','\\u{1F4AA}\\u{1F3FF}','\\u{1F574}\\u{1F3FB}','\\u{1F574}\\u{1F3FC}','\\u{1F574}\\u{1F3FD}','\\u{1F574}\\u{1F3FE}','\\u{1F574}\\u{1F3FF}','\\u{1F575}\\u{1F3FB}','\\u{1F575}\\u{1F3FC}','\\u{1F575}\\u{1F3FD}','\\u{1F575}\\u{1F3FE}','\\u{1F575}\\u{1F3FF}','\\u{1F57A}\\u{1F3FB}','\\u{1F57A}\\u{1F3FC}','\\u{1F57A}\\u{1F3FD}','\\u{1F57A}\\u{1F3FE}','\\u{1F57A}\\u{1F3FF}','\\u{1F590}\\u{1F3FB}','\\u{1F590}\\u{1F3FC}','\\u{1F590}\\u{1F3FD}','\\u{1F590}\\u{1F3FE}','\\u{1F590}\\u{1F3FF}','\\u{1F595}\\u{1F3FB}','\\u{1F595}\\u{1F3FC}','\\u{1F595}\\u{1F3FD}','\\u{1F595}\\u{1F3FE}','\\u{1F595}\\u{1F3FF}','\\u{1F596}\\u{1F3FB}','\\u{1F596}\\u{1F3FC}','\\u{1F596}\\u{1F3FD}','\\u{1F596}\\u{1F3FE}','\\u{1F596}\\u{1F3FF}','\\u{1F645}\\u{1F3FB}','\\u{1F645}\\u{1F3FC}','\\u{1F645}\\u{1F3FD}','\\u{1F645}\\u{1F3FE}','\\u{1F645}\\u{1F3FF}','\\u{1F646}\\u{1F3FB}','\\u{1F646}\\u{1F3FC}','\\u{1F646}\\u{1F3FD}','\\u{1F646}\\u{1F3FE}','\\u{1F646}\\u{1F3FF}','\\u{1F647}\\u{1F3FB}','\\u{1F647}\\u{1F3FC}','\\u{1F647}\\u{1F3FD}','\\u{1F647}\\u{1F3FE}','\\u{1F647}\\u{1F3FF}','\\u{1F64B}\\u{1F3FB}','\\u{1F64B}\\u{1F3FC}','\\u{1F64B}\\u{1F3FD}','\\u{1F64B}\\u{1F3FE}','\\u{1F64B}\\u{1F3FF}','\\u{1F64C}\\u{1F3FB}','\\u{1F64C}\\u{1F3FC}','\\u{1F64C}\\u{1F3FD}','\\u{1F64C}\\u{1F3FE}','\\u{1F64C}\\u{1F3FF}','\\u{1F64D}\\u{1F3FB}','\\u{1F64D}\\u{1F3FC}','\\u{1F64D}\\u{1F3FD}','\\u{1F64D}\\u{1F3FE}','\\u{1F64D}\\u{1F3FF}','\\u{1F64E}\\u{1F3FB}','\\u{1F64E}\\u{1F3FC}','\\u{1F64E}\\u{1F3FD}','\\u{1F64E}\\u{1F3FE}','\\u{1F64E}\\u{1F3FF}','\\u{1F64F}\\u{1F3FB}','\\u{1F64F}\\u{1F3FC}','\\u{1F64F}\\u{1F3FD}','\\u{1F64F}\\u{1F3FE}','\\u{1F64F}\\u{1F3FF}','\\u{1F6A3}\\u{1F3FB}','\\u{1F6A3}\\u{1F3FC}','\\u{1F6A3}\\u{1F3FD}','\\u{1F6A3}\\u{1F3FE}','\\u{1F6A3}\\u{1F3FF}','\\u{1F6B4}\\u{1F3FB}','\\u{1F6B4}\\u{1F3FC}','\\u{1F6B4}\\u{1F3FD}','\\u{1F6B4}\\u{1F3FE}','\\u{1F6B4}\\u{1F3FF}','\\u{1F6B5}\\u{1F3FB}','\\u{1F6B5}\\u{1F3FC}','\\u{1F6B5}\\u{1F3FD}','\\u{1F6B5}\\u{1F3FE}','\\u{1F6B5}\\u{1F3FF}','\\u{1F6B6}\\u{1F3FB}','\\u{1F6B6}\\u{1F3FC}','\\u{1F6B6}\\u{1F3FD}','\\u{1F6B6}\\u{1F3FE}','\\u{1F6B6}\\u{1F3FF}','\\u{1F6C0}\\u{1F3FB}','\\u{1F6C0}\\u{1F3FC}','\\u{1F6C0}\\u{1F3FD}','\\u{1F6C0}\\u{1F3FE}','\\u{1F6C0}\\u{1F3FF}','\\u{1F6CC}\\u{1F3FB}','\\u{1F6CC}\\u{1F3FC}','\\u{1F6CC}\\u{1F3FD}','\\u{1F6CC}\\u{1F3FE}','\\u{1F6CC}\\u{1F3FF}','\\u{1F90C}\\u{1F3FB}','\\u{1F90C}\\u{1F3FC}','\\u{1F90C}\\u{1F3FD}','\\u{1F90C}\\u{1F3FE}','\\u{1F90C}\\u{1F3FF}','\\u{1F90F}\\u{1F3FB}','\\u{1F90F}\\u{1F3FC}','\\u{1F90F}\\u{1F3FD}','\\u{1F90F}\\u{1F3FE}','\\u{1F90F}\\u{1F3FF}','\\u{1F918}\\u{1F3FB}','\\u{1F918}\\u{1F3FC}','\\u{1F918}\\u{1F3FD}','\\u{1F918}\\u{1F3FE}','\\u{1F918}\\u{1F3FF}','\\u{1F919}\\u{1F3FB}','\\u{1F919}\\u{1F3FC}','\\u{1F919}\\u{1F3FD}','\\u{1F919}\\u{1F3FE}','\\u{1F919}\\u{1F3FF}','\\u{1F91A}\\u{1F3FB}','\\u{1F91A}\\u{1F3FC}','\\u{1F91A}\\u{1F3FD}','\\u{1F91A}\\u{1F3FE}','\\u{1F91A}\\u{1F3FF}','\\u{1F91B}\\u{1F3FB}','\\u{1F91B}\\u{1F3FC}','\\u{1F91B}\\u{1F3FD}','\\u{1F91B}\\u{1F3FE}','\\u{1F91B}\\u{1F3FF}','\\u{1F91C}\\u{1F3FB}','\\u{1F91C}\\u{1F3FC}','\\u{1F91C}\\u{1F3FD}','\\u{1F91C}\\u{1F3FE}','\\u{1F91C}\\u{1F3FF}','\\u{1F91D}\\u{1F3FB}','\\u{1F91D}\\u{1F3FC}','\\u{1F91D}\\u{1F3FD}','\\u{1F91D}\\u{1F3FE}','\\u{1F91D}\\u{1F3FF}','\\u{1F91E}\\u{1F3FB}','\\u{1F91E}\\u{1F3FC}','\\u{1F91E}\\u{1F3FD}','\\u{1F91E}\\u{1F3FE}','\\u{1F91E}\\u{1F3FF}','\\u{1F91F}\\u{1F3FB}','\\u{1F91F}\\u{1F3FC}','\\u{1F91F}\\u{1F3FD}','\\u{1F91F}\\u{1F3FE}','\\u{1F91F}\\u{1F3FF}','\\u{1F926}\\u{1F3FB}','\\u{1F926}\\u{1F3FC}','\\u{1F926}\\u{1F3FD}','\\u{1F926}\\u{1F3FE}','\\u{1F926}\\u{1F3FF}','\\u{1F930}\\u{1F3FB}','\\u{1F930}\\u{1F3FC}','\\u{1F930}\\u{1F3FD}','\\u{1F930}\\u{1F3FE}','\\u{1F930}\\u{1F3FF}','\\u{1F931}\\u{1F3FB}','\\u{1F931}\\u{1F3FC}','\\u{1F931}\\u{1F3FD}','\\u{1F931}\\u{1F3FE}','\\u{1F931}\\u{1F3FF}','\\u{1F932}\\u{1F3FB}','\\u{1F932}\\u{1F3FC}','\\u{1F932}\\u{1F3FD}','\\u{1F932}\\u{1F3FE}','\\u{1F932}\\u{1F3FF}','\\u{1F933}\\u{1F3FB}','\\u{1F933}\\u{1F3FC}','\\u{1F933}\\u{1F3FD}','\\u{1F933}\\u{1F3FE}','\\u{1F933}\\u{1F3FF}','\\u{1F934}\\u{1F3FB}','\\u{1F934}\\u{1F3FC}','\\u{1F934}\\u{1F3FD}','\\u{1F934}\\u{1F3FE}','\\u{1F934}\\u{1F3FF}','\\u{1F935}\\u{1F3FB}','\\u{1F935}\\u{1F3FC}','\\u{1F935}\\u{1F3FD}','\\u{1F935}\\u{1F3FE}','\\u{1F935}\\u{1F3FF}','\\u{1F936}\\u{1F3FB}','\\u{1F936}\\u{1F3FC}','\\u{1F936}\\u{1F3FD}','\\u{1F936}\\u{1F3FE}','\\u{1F936}\\u{1F3FF}','\\u{1F937}\\u{1F3FB}','\\u{1F937}\\u{1F3FC}','\\u{1F937}\\u{1F3FD}','\\u{1F937}\\u{1F3FE}','\\u{1F937}\\u{1F3FF}','\\u{1F938}\\u{1F3FB}','\\u{1F938}\\u{1F3FC}','\\u{1F938}\\u{1F3FD}','\\u{1F938}\\u{1F3FE}','\\u{1F938}\\u{1F3FF}','\\u{1F939}\\u{1F3FB}','\\u{1F939}\\u{1F3FC}','\\u{1F939}\\u{1F3FD}','\\u{1F939}\\u{1F3FE}','\\u{1F939}\\u{1F3FF}','\\u{1F93D}\\u{1F3FB}','\\u{1F93D}\\u{1F3FC}','\\u{1F93D}\\u{1F3FD}','\\u{1F93D}\\u{1F3FE}','\\u{1F93D}\\u{1F3FF}','\\u{1F93E}\\u{1F3FB}','\\u{1F93E}\\u{1F3FC}','\\u{1F93E}\\u{1F3FD}','\\u{1F93E}\\u{1F3FE}','\\u{1F93E}\\u{1F3FF}','\\u{1F977}\\u{1F3FB}','\\u{1F977}\\u{1F3FC}','\\u{1F977}\\u{1F3FD}','\\u{1F977}\\u{1F3FE}','\\u{1F977}\\u{1F3FF}','\\u{1F9B5}\\u{1F3FB}','\\u{1F9B5}\\u{1F3FC}','\\u{1F9B5}\\u{1F3FD}','\\u{1F9B5}\\u{1F3FE}','\\u{1F9B5}\\u{1F3FF}','\\u{1F9B6}\\u{1F3FB}','\\u{1F9B6}\\u{1F3FC}','\\u{1F9B6}\\u{1F3FD}','\\u{1F9B6}\\u{1F3FE}','\\u{1F9B6}\\u{1F3FF}','\\u{1F9B8}\\u{1F3FB}','\\u{1F9B8}\\u{1F3FC}','\\u{1F9B8}\\u{1F3FD}','\\u{1F9B8}\\u{1F3FE}','\\u{1F9B8}\\u{1F3FF}','\\u{1F9B9}\\u{1F3FB}','\\u{1F9B9}\\u{1F3FC}','\\u{1F9B9}\\u{1F3FD}','\\u{1F9B9}\\u{1F3FE}','\\u{1F9B9}\\u{1F3FF}','\\u{1F9BB}\\u{1F3FB}','\\u{1F9BB}\\u{1F3FC}','\\u{1F9BB}\\u{1F3FD}','\\u{1F9BB}\\u{1F3FE}','\\u{1F9BB}\\u{1F3FF}','\\u{1F9CD}\\u{1F3FB}','\\u{1F9CD}\\u{1F3FC}','\\u{1F9CD}\\u{1F3FD}','\\u{1F9CD}\\u{1F3FE}','\\u{1F9CD}\\u{1F3FF}','\\u{1F9CE}\\u{1F3FB}','\\u{1F9CE}\\u{1F3FC}','\\u{1F9CE}\\u{1F3FD}','\\u{1F9CE}\\u{1F3FE}','\\u{1F9CE}\\u{1F3FF}','\\u{1F9CF}\\u{1F3FB}','\\u{1F9CF}\\u{1F3FC}','\\u{1F9CF}\\u{1F3FD}','\\u{1F9CF}\\u{1F3FE}','\\u{1F9CF}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}','\\u{1F9D2}\\u{1F3FB}','\\u{1F9D2}\\u{1F3FC}','\\u{1F9D2}\\u{1F3FD}','\\u{1F9D2}\\u{1F3FE}','\\u{1F9D2}\\u{1F3FF}','\\u{1F9D3}\\u{1F3FB}','\\u{1F9D3}\\u{1F3FC}','\\u{1F9D3}\\u{1F3FD}','\\u{1F9D3}\\u{1F3FE}','\\u{1F9D3}\\u{1F3FF}','\\u{1F9D4}\\u{1F3FB}','\\u{1F9D4}\\u{1F3FC}','\\u{1F9D4}\\u{1F3FD}','\\u{1F9D4}\\u{1F3FE}','\\u{1F9D4}\\u{1F3FF}','\\u{1F9D5}\\u{1F3FB}','\\u{1F9D5}\\u{1F3FC}','\\u{1F9D5}\\u{1F3FD}','\\u{1F9D5}\\u{1F3FE}','\\u{1F9D5}\\u{1F3FF}','\\u{1F9D6}\\u{1F3FB}','\\u{1F9D6}\\u{1F3FC}','\\u{1F9D6}\\u{1F3FD}','\\u{1F9D6}\\u{1F3FE}','\\u{1F9D6}\\u{1F3FF}','\\u{1F9D7}\\u{1F3FB}','\\u{1F9D7}\\u{1F3FC}','\\u{1F9D7}\\u{1F3FD}','\\u{1F9D7}\\u{1F3FE}','\\u{1F9D7}\\u{1F3FF}','\\u{1F9D8}\\u{1F3FB}','\\u{1F9D8}\\u{1F3FC}','\\u{1F9D8}\\u{1F3FD}','\\u{1F9D8}\\u{1F3FE}','\\u{1F9D8}\\u{1F3FF}','\\u{1F9D9}\\u{1F3FB}','\\u{1F9D9}\\u{1F3FC}','\\u{1F9D9}\\u{1F3FD}','\\u{1F9D9}\\u{1F3FE}','\\u{1F9D9}\\u{1F3FF}','\\u{1F9DA}\\u{1F3FB}','\\u{1F9DA}\\u{1F3FC}','\\u{1F9DA}\\u{1F3FD}','\\u{1F9DA}\\u{1F3FE}','\\u{1F9DA}\\u{1F3FF}','\\u{1F9DB}\\u{1F3FB}','\\u{1F9DB}\\u{1F3FC}','\\u{1F9DB}\\u{1F3FD}','\\u{1F9DB}\\u{1F3FE}','\\u{1F9DB}\\u{1F3FF}','\\u{1F9DC}\\u{1F3FB}','\\u{1F9DC}\\u{1F3FC}','\\u{1F9DC}\\u{1F3FD}','\\u{1F9DC}\\u{1F3FE}','\\u{1F9DC}\\u{1F3FF}','\\u{1F9DD}\\u{1F3FB}','\\u{1F9DD}\\u{1F3FC}','\\u{1F9DD}\\u{1F3FD}','\\u{1F9DD}\\u{1F3FE}','\\u{1F9DD}\\u{1F3FF}','\\u{1FAC3}\\u{1F3FB}','\\u{1FAC3}\\u{1F3FC}','\\u{1FAC3}\\u{1F3FD}','\\u{1FAC3}\\u{1F3FE}','\\u{1FAC3}\\u{1F3FF}','\\u{1FAC4}\\u{1F3FB}','\\u{1FAC4}\\u{1F3FC}','\\u{1FAC4}\\u{1F3FD}','\\u{1FAC4}\\u{1F3FE}','\\u{1FAC4}\\u{1F3FF}','\\u{1FAC5}\\u{1F3FB}','\\u{1FAC5}\\u{1F3FC}','\\u{1FAC5}\\u{1F3FD}','\\u{1FAC5}\\u{1F3FE}','\\u{1FAC5}\\u{1F3FF}','\\u{1FAF0}\\u{1F3FB}','\\u{1FAF0}\\u{1F3FC}','\\u{1FAF0}\\u{1F3FD}','\\u{1FAF0}\\u{1F3FE}','\\u{1FAF0}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FF}','\\u{1FAF2}\\u{1F3FB}','\\u{1FAF2}\\u{1F3FC}','\\u{1FAF2}\\u{1F3FD}','\\u{1FAF2}\\u{1F3FE}','\\u{1FAF2}\\u{1F3FF}','\\u{1FAF3}\\u{1F3FB}','\\u{1FAF3}\\u{1F3FC}','\\u{1FAF3}\\u{1F3FD}','\\u{1FAF3}\\u{1F3FE}','\\u{1FAF3}\\u{1F3FF}','\\u{1FAF4}\\u{1F3FB}','\\u{1FAF4}\\u{1F3FC}','\\u{1FAF4}\\u{1F3FD}','\\u{1FAF4}\\u{1F3FE}','\\u{1FAF4}\\u{1F3FF}','\\u{1FAF5}\\u{1F3FB}','\\u{1FAF5}\\u{1F3FC}','\\u{1FAF5}\\u{1F3FD}','\\u{1FAF5}\\u{1F3FE}','\\u{1FAF5}\\u{1F3FF}','\\u{1FAF6}\\u{1F3FB}','\\u{1FAF6}\\u{1F3FC}','\\u{1FAF6}\\u{1F3FD}','\\u{1FAF6}\\u{1F3FE}','\\u{1FAF6}\\u{1F3FF}','\\u{1FAF7}\\u{1F3FB}','\\u{1FAF7}\\u{1F3FC}','\\u{1FAF7}\\u{1F3FD}','\\u{1FAF7}\\u{1F3FE}','\\u{1FAF7}\\u{1F3FF}','\\u{1FAF8}\\u{1F3FB}','\\u{1FAF8}\\u{1F3FC}','\\u{1FAF8}\\u{1F3FD}','\\u{1FAF8}\\u{1F3FE}','\\u{1FAF8}\\u{1F3FF}'];\n","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}','\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}','\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}'];\n","const set = require('regenerate')();\n\nexports.characters = set;\nexports.strings = ['\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}','\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}','\\u{1F468}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}','\\u{1F469}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}','\\u{1F9D1}\\u200D\\u{1F9D1}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D1}\\u200D\\u{1F9D2}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D2}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1F3C3}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u200D\\u{1F33E}','\\u{1F468}\\u200D\\u{1F373}','\\u{1F468}\\u200D\\u{1F37C}','\\u{1F468}\\u200D\\u{1F393}','\\u{1F468}\\u200D\\u{1F3A4}','\\u{1F468}\\u200D\\u{1F3A8}','\\u{1F468}\\u200D\\u{1F3EB}','\\u{1F468}\\u200D\\u{1F3ED}','\\u{1F468}\\u200D\\u{1F4BB}','\\u{1F468}\\u200D\\u{1F4BC}','\\u{1F468}\\u200D\\u{1F527}','\\u{1F468}\\u200D\\u{1F52C}','\\u{1F468}\\u200D\\u{1F680}','\\u{1F468}\\u200D\\u{1F692}','\\u{1F468}\\u200D\\u{1F9AF}','\\u{1F468}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u200D\\u{1F9BC}','\\u{1F468}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u200D\\u{1F9BD}','\\u{1F468}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u200D\\u{1F33E}','\\u{1F469}\\u200D\\u{1F373}','\\u{1F469}\\u200D\\u{1F37C}','\\u{1F469}\\u200D\\u{1F393}','\\u{1F469}\\u200D\\u{1F3A4}','\\u{1F469}\\u200D\\u{1F3A8}','\\u{1F469}\\u200D\\u{1F3EB}','\\u{1F469}\\u200D\\u{1F3ED}','\\u{1F469}\\u200D\\u{1F4BB}','\\u{1F469}\\u200D\\u{1F4BC}','\\u{1F469}\\u200D\\u{1F527}','\\u{1F469}\\u200D\\u{1F52C}','\\u{1F469}\\u200D\\u{1F680}','\\u{1F469}\\u200D\\u{1F692}','\\u{1F469}\\u200D\\u{1F9AF}','\\u{1F469}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u{1F9BC}','\\u{1F469}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u{1F9BD}','\\u{1F469}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u200D\\u{1F33E}','\\u{1F9D1}\\u200D\\u{1F373}','\\u{1F9D1}\\u200D\\u{1F37C}','\\u{1F9D1}\\u200D\\u{1F384}','\\u{1F9D1}\\u200D\\u{1F393}','\\u{1F9D1}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u200D\\u{1F527}','\\u{1F9D1}\\u200D\\u{1F52C}','\\u{1F9D1}\\u200D\\u{1F680}','\\u{1F9D1}\\u200D\\u{1F692}','\\u{1F9D1}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F','\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C4}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F46F}\\u200D\\u2640\\uFE0F','\\u{1F46F}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F645}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F926}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F93C}\\u200D\\u2640\\uFE0F','\\u{1F93C}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CF}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DE}\\u200D\\u2640\\uFE0F','\\u{1F9DE}\\u200D\\u2642\\uFE0F','\\u{1F9DF}\\u200D\\u2640\\uFE0F','\\u{1F9DF}\\u200D\\u2642\\uFE0F','\\u{1F468}\\u200D\\u{1F9B0}','\\u{1F468}\\u200D\\u{1F9B1}','\\u{1F468}\\u200D\\u{1F9B2}','\\u{1F468}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u{1F469}\\u200D\\u{1F9B0}','\\u{1F469}\\u200D\\u{1F9B1}','\\u{1F469}\\u200D\\u{1F9B2}','\\u{1F469}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u26D3\\uFE0F\\u200D\\u{1F4A5}','\\u2764\\uFE0F\\u200D\\u{1F525}','\\u2764\\uFE0F\\u200D\\u{1FA79}','\\u{1F344}\\u200D\\u{1F7EB}','\\u{1F34B}\\u200D\\u{1F7E9}','\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F','\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}','\\u{1F3F4}\\u200D\\u2620\\uFE0F','\\u{1F408}\\u200D\\u2B1B','\\u{1F415}\\u200D\\u{1F9BA}','\\u{1F426}\\u200D\\u2B1B','\\u{1F426}\\u200D\\u{1F525}','\\u{1F43B}\\u200D\\u2744\\uFE0F','\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F','\\u{1F62E}\\u200D\\u{1F4A8}','\\u{1F635}\\u200D\\u{1F4AB}','\\u{1F636}\\u200D\\u{1F32B}\\uFE0F','\\u{1F642}\\u200D\\u2194\\uFE0F','\\u{1F642}\\u200D\\u2195\\uFE0F'];\n","const set = require('regenerate')(0x23F0, 0x23F3, 0x267F, 0x2693, 0x26A1, 0x26CE, 0x26D4, 0x26EA, 0x26F5, 0x26FA, 0x26FD, 0x2705, 0x2728, 0x274C, 0x274E, 0x2757, 0x27B0, 0x27BF, 0x2B50, 0x2B55, 0x1F004, 0x1F0CF, 0x1F18E, 0x1F201, 0x1F21A, 0x1F22F, 0x1F3F4, 0x1F440, 0x1F57A, 0x1F5A4, 0x1F6CC, 0x1F7F0);\nset.addRange(0x231A, 0x231B).addRange(0x23E9, 0x23EC).addRange(0x25FD, 0x25FE).addRange(0x2614, 0x2615).addRange(0x2648, 0x2653).addRange(0x26AA, 0x26AB).addRange(0x26BD, 0x26BE).addRange(0x26C4, 0x26C5).addRange(0x26F2, 0x26F3).addRange(0x270A, 0x270B).addRange(0x2753, 0x2755).addRange(0x2795, 0x2797).addRange(0x2B1B, 0x2B1C).addRange(0x1F191, 0x1F19A).addRange(0x1F232, 0x1F236).addRange(0x1F238, 0x1F23A).addRange(0x1F250, 0x1F251).addRange(0x1F300, 0x1F320).addRange(0x1F32D, 0x1F335).addRange(0x1F337, 0x1F37C).addRange(0x1F37E, 0x1F393).addRange(0x1F3A0, 0x1F3CA).addRange(0x1F3CF, 0x1F3D3).addRange(0x1F3E0, 0x1F3F0).addRange(0x1F3F8, 0x1F43E).addRange(0x1F442, 0x1F4FC).addRange(0x1F4FF, 0x1F53D).addRange(0x1F54B, 0x1F54E).addRange(0x1F550, 0x1F567).addRange(0x1F595, 0x1F596).addRange(0x1F5FB, 0x1F64F).addRange(0x1F680, 0x1F6C5).addRange(0x1F6D0, 0x1F6D2).addRange(0x1F6D5, 0x1F6D7).addRange(0x1F6DC, 0x1F6DF).addRange(0x1F6EB, 0x1F6EC).addRange(0x1F6F4, 0x1F6FC).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F90C, 0x1F93A).addRange(0x1F93C, 0x1F945).addRange(0x1F947, 0x1F9FF).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8);\nexports.characters = set;\nexports.strings = ['#\\uFE0F\\u20E3','*\\uFE0F\\u20E3','0\\uFE0F\\u20E3','1\\uFE0F\\u20E3','2\\uFE0F\\u20E3','3\\uFE0F\\u20E3','4\\uFE0F\\u20E3','5\\uFE0F\\u20E3','6\\uFE0F\\u20E3','7\\uFE0F\\u20E3','8\\uFE0F\\u20E3','9\\uFE0F\\u20E3','\\xA9\\uFE0F','\\xAE\\uFE0F','\\u203C\\uFE0F','\\u2049\\uFE0F','\\u2122\\uFE0F','\\u2139\\uFE0F','\\u2194\\uFE0F','\\u2195\\uFE0F','\\u2196\\uFE0F','\\u2197\\uFE0F','\\u2198\\uFE0F','\\u2199\\uFE0F','\\u21A9\\uFE0F','\\u21AA\\uFE0F','\\u2328\\uFE0F','\\u23CF\\uFE0F','\\u23ED\\uFE0F','\\u23EE\\uFE0F','\\u23EF\\uFE0F','\\u23F1\\uFE0F','\\u23F2\\uFE0F','\\u23F8\\uFE0F','\\u23F9\\uFE0F','\\u23FA\\uFE0F','\\u24C2\\uFE0F','\\u25AA\\uFE0F','\\u25AB\\uFE0F','\\u25B6\\uFE0F','\\u25C0\\uFE0F','\\u25FB\\uFE0F','\\u25FC\\uFE0F','\\u2600\\uFE0F','\\u2601\\uFE0F','\\u2602\\uFE0F','\\u2603\\uFE0F','\\u2604\\uFE0F','\\u260E\\uFE0F','\\u2611\\uFE0F','\\u2618\\uFE0F','\\u261D\\u{1F3FB}','\\u261D\\u{1F3FC}','\\u261D\\u{1F3FD}','\\u261D\\u{1F3FE}','\\u261D\\u{1F3FF}','\\u261D\\uFE0F','\\u2620\\uFE0F','\\u2622\\uFE0F','\\u2623\\uFE0F','\\u2626\\uFE0F','\\u262A\\uFE0F','\\u262E\\uFE0F','\\u262F\\uFE0F','\\u2638\\uFE0F','\\u2639\\uFE0F','\\u263A\\uFE0F','\\u2640\\uFE0F','\\u2642\\uFE0F','\\u265F\\uFE0F','\\u2660\\uFE0F','\\u2663\\uFE0F','\\u2665\\uFE0F','\\u2666\\uFE0F','\\u2668\\uFE0F','\\u267B\\uFE0F','\\u267E\\uFE0F','\\u2692\\uFE0F','\\u2694\\uFE0F','\\u2695\\uFE0F','\\u2696\\uFE0F','\\u2697\\uFE0F','\\u2699\\uFE0F','\\u269B\\uFE0F','\\u269C\\uFE0F','\\u26A0\\uFE0F','\\u26A7\\uFE0F','\\u26B0\\uFE0F','\\u26B1\\uFE0F','\\u26C8\\uFE0F','\\u26CF\\uFE0F','\\u26D1\\uFE0F','\\u26D3\\uFE0F','\\u26D3\\uFE0F\\u200D\\u{1F4A5}','\\u26E9\\uFE0F','\\u26F0\\uFE0F','\\u26F1\\uFE0F','\\u26F4\\uFE0F','\\u26F7\\uFE0F','\\u26F8\\uFE0F','\\u26F9\\u{1F3FB}','\\u26F9\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FC}','\\u26F9\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FD}','\\u26F9\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FE}','\\u26F9\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u26F9\\u{1F3FF}','\\u26F9\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u26F9\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u26F9\\uFE0F','\\u26F9\\uFE0F\\u200D\\u2640\\uFE0F','\\u26F9\\uFE0F\\u200D\\u2642\\uFE0F','\\u2702\\uFE0F','\\u2708\\uFE0F','\\u2709\\uFE0F','\\u270A\\u{1F3FB}','\\u270A\\u{1F3FC}','\\u270A\\u{1F3FD}','\\u270A\\u{1F3FE}','\\u270A\\u{1F3FF}','\\u270B\\u{1F3FB}','\\u270B\\u{1F3FC}','\\u270B\\u{1F3FD}','\\u270B\\u{1F3FE}','\\u270B\\u{1F3FF}','\\u270C\\u{1F3FB}','\\u270C\\u{1F3FC}','\\u270C\\u{1F3FD}','\\u270C\\u{1F3FE}','\\u270C\\u{1F3FF}','\\u270C\\uFE0F','\\u270D\\u{1F3FB}','\\u270D\\u{1F3FC}','\\u270D\\u{1F3FD}','\\u270D\\u{1F3FE}','\\u270D\\u{1F3FF}','\\u270D\\uFE0F','\\u270F\\uFE0F','\\u2712\\uFE0F','\\u2714\\uFE0F','\\u2716\\uFE0F','\\u271D\\uFE0F','\\u2721\\uFE0F','\\u2733\\uFE0F','\\u2734\\uFE0F','\\u2744\\uFE0F','\\u2747\\uFE0F','\\u2763\\uFE0F','\\u2764\\uFE0F','\\u2764\\uFE0F\\u200D\\u{1F525}','\\u2764\\uFE0F\\u200D\\u{1FA79}','\\u27A1\\uFE0F','\\u2934\\uFE0F','\\u2935\\uFE0F','\\u2B05\\uFE0F','\\u2B06\\uFE0F','\\u2B07\\uFE0F','\\u3030\\uFE0F','\\u303D\\uFE0F','\\u3297\\uFE0F','\\u3299\\uFE0F','\\u{1F170}\\uFE0F','\\u{1F171}\\uFE0F','\\u{1F17E}\\uFE0F','\\u{1F17F}\\uFE0F','\\u{1F1E6}\\u{1F1E8}','\\u{1F1E6}\\u{1F1E9}','\\u{1F1E6}\\u{1F1EA}','\\u{1F1E6}\\u{1F1EB}','\\u{1F1E6}\\u{1F1EC}','\\u{1F1E6}\\u{1F1EE}','\\u{1F1E6}\\u{1F1F1}','\\u{1F1E6}\\u{1F1F2}','\\u{1F1E6}\\u{1F1F4}','\\u{1F1E6}\\u{1F1F6}','\\u{1F1E6}\\u{1F1F7}','\\u{1F1E6}\\u{1F1F8}','\\u{1F1E6}\\u{1F1F9}','\\u{1F1E6}\\u{1F1FA}','\\u{1F1E6}\\u{1F1FC}','\\u{1F1E6}\\u{1F1FD}','\\u{1F1E6}\\u{1F1FF}','\\u{1F1E7}\\u{1F1E6}','\\u{1F1E7}\\u{1F1E7}','\\u{1F1E7}\\u{1F1E9}','\\u{1F1E7}\\u{1F1EA}','\\u{1F1E7}\\u{1F1EB}','\\u{1F1E7}\\u{1F1EC}','\\u{1F1E7}\\u{1F1ED}','\\u{1F1E7}\\u{1F1EE}','\\u{1F1E7}\\u{1F1EF}','\\u{1F1E7}\\u{1F1F1}','\\u{1F1E7}\\u{1F1F2}','\\u{1F1E7}\\u{1F1F3}','\\u{1F1E7}\\u{1F1F4}','\\u{1F1E7}\\u{1F1F6}','\\u{1F1E7}\\u{1F1F7}','\\u{1F1E7}\\u{1F1F8}','\\u{1F1E7}\\u{1F1F9}','\\u{1F1E7}\\u{1F1FB}','\\u{1F1E7}\\u{1F1FC}','\\u{1F1E7}\\u{1F1FE}','\\u{1F1E7}\\u{1F1FF}','\\u{1F1E8}\\u{1F1E6}','\\u{1F1E8}\\u{1F1E8}','\\u{1F1E8}\\u{1F1E9}','\\u{1F1E8}\\u{1F1EB}','\\u{1F1E8}\\u{1F1EC}','\\u{1F1E8}\\u{1F1ED}','\\u{1F1E8}\\u{1F1EE}','\\u{1F1E8}\\u{1F1F0}','\\u{1F1E8}\\u{1F1F1}','\\u{1F1E8}\\u{1F1F2}','\\u{1F1E8}\\u{1F1F3}','\\u{1F1E8}\\u{1F1F4}','\\u{1F1E8}\\u{1F1F5}','\\u{1F1E8}\\u{1F1F7}','\\u{1F1E8}\\u{1F1FA}','\\u{1F1E8}\\u{1F1FB}','\\u{1F1E8}\\u{1F1FC}','\\u{1F1E8}\\u{1F1FD}','\\u{1F1E8}\\u{1F1FE}','\\u{1F1E8}\\u{1F1FF}','\\u{1F1E9}\\u{1F1EA}','\\u{1F1E9}\\u{1F1EC}','\\u{1F1E9}\\u{1F1EF}','\\u{1F1E9}\\u{1F1F0}','\\u{1F1E9}\\u{1F1F2}','\\u{1F1E9}\\u{1F1F4}','\\u{1F1E9}\\u{1F1FF}','\\u{1F1EA}\\u{1F1E6}','\\u{1F1EA}\\u{1F1E8}','\\u{1F1EA}\\u{1F1EA}','\\u{1F1EA}\\u{1F1EC}','\\u{1F1EA}\\u{1F1ED}','\\u{1F1EA}\\u{1F1F7}','\\u{1F1EA}\\u{1F1F8}','\\u{1F1EA}\\u{1F1F9}','\\u{1F1EA}\\u{1F1FA}','\\u{1F1EB}\\u{1F1EE}','\\u{1F1EB}\\u{1F1EF}','\\u{1F1EB}\\u{1F1F0}','\\u{1F1EB}\\u{1F1F2}','\\u{1F1EB}\\u{1F1F4}','\\u{1F1EB}\\u{1F1F7}','\\u{1F1EC}\\u{1F1E6}','\\u{1F1EC}\\u{1F1E7}','\\u{1F1EC}\\u{1F1E9}','\\u{1F1EC}\\u{1F1EA}','\\u{1F1EC}\\u{1F1EB}','\\u{1F1EC}\\u{1F1EC}','\\u{1F1EC}\\u{1F1ED}','\\u{1F1EC}\\u{1F1EE}','\\u{1F1EC}\\u{1F1F1}','\\u{1F1EC}\\u{1F1F2}','\\u{1F1EC}\\u{1F1F3}','\\u{1F1EC}\\u{1F1F5}','\\u{1F1EC}\\u{1F1F6}','\\u{1F1EC}\\u{1F1F7}','\\u{1F1EC}\\u{1F1F8}','\\u{1F1EC}\\u{1F1F9}','\\u{1F1EC}\\u{1F1FA}','\\u{1F1EC}\\u{1F1FC}','\\u{1F1EC}\\u{1F1FE}','\\u{1F1ED}\\u{1F1F0}','\\u{1F1ED}\\u{1F1F2}','\\u{1F1ED}\\u{1F1F3}','\\u{1F1ED}\\u{1F1F7}','\\u{1F1ED}\\u{1F1F9}','\\u{1F1ED}\\u{1F1FA}','\\u{1F1EE}\\u{1F1E8}','\\u{1F1EE}\\u{1F1E9}','\\u{1F1EE}\\u{1F1EA}','\\u{1F1EE}\\u{1F1F1}','\\u{1F1EE}\\u{1F1F2}','\\u{1F1EE}\\u{1F1F3}','\\u{1F1EE}\\u{1F1F4}','\\u{1F1EE}\\u{1F1F6}','\\u{1F1EE}\\u{1F1F7}','\\u{1F1EE}\\u{1F1F8}','\\u{1F1EE}\\u{1F1F9}','\\u{1F1EF}\\u{1F1EA}','\\u{1F1EF}\\u{1F1F2}','\\u{1F1EF}\\u{1F1F4}','\\u{1F1EF}\\u{1F1F5}','\\u{1F1F0}\\u{1F1EA}','\\u{1F1F0}\\u{1F1EC}','\\u{1F1F0}\\u{1F1ED}','\\u{1F1F0}\\u{1F1EE}','\\u{1F1F0}\\u{1F1F2}','\\u{1F1F0}\\u{1F1F3}','\\u{1F1F0}\\u{1F1F5}','\\u{1F1F0}\\u{1F1F7}','\\u{1F1F0}\\u{1F1FC}','\\u{1F1F0}\\u{1F1FE}','\\u{1F1F0}\\u{1F1FF}','\\u{1F1F1}\\u{1F1E6}','\\u{1F1F1}\\u{1F1E7}','\\u{1F1F1}\\u{1F1E8}','\\u{1F1F1}\\u{1F1EE}','\\u{1F1F1}\\u{1F1F0}','\\u{1F1F1}\\u{1F1F7}','\\u{1F1F1}\\u{1F1F8}','\\u{1F1F1}\\u{1F1F9}','\\u{1F1F1}\\u{1F1FA}','\\u{1F1F1}\\u{1F1FB}','\\u{1F1F1}\\u{1F1FE}','\\u{1F1F2}\\u{1F1E6}','\\u{1F1F2}\\u{1F1E8}','\\u{1F1F2}\\u{1F1E9}','\\u{1F1F2}\\u{1F1EA}','\\u{1F1F2}\\u{1F1EB}','\\u{1F1F2}\\u{1F1EC}','\\u{1F1F2}\\u{1F1ED}','\\u{1F1F2}\\u{1F1F0}','\\u{1F1F2}\\u{1F1F1}','\\u{1F1F2}\\u{1F1F2}','\\u{1F1F2}\\u{1F1F3}','\\u{1F1F2}\\u{1F1F4}','\\u{1F1F2}\\u{1F1F5}','\\u{1F1F2}\\u{1F1F6}','\\u{1F1F2}\\u{1F1F7}','\\u{1F1F2}\\u{1F1F8}','\\u{1F1F2}\\u{1F1F9}','\\u{1F1F2}\\u{1F1FA}','\\u{1F1F2}\\u{1F1FB}','\\u{1F1F2}\\u{1F1FC}','\\u{1F1F2}\\u{1F1FD}','\\u{1F1F2}\\u{1F1FE}','\\u{1F1F2}\\u{1F1FF}','\\u{1F1F3}\\u{1F1E6}','\\u{1F1F3}\\u{1F1E8}','\\u{1F1F3}\\u{1F1EA}','\\u{1F1F3}\\u{1F1EB}','\\u{1F1F3}\\u{1F1EC}','\\u{1F1F3}\\u{1F1EE}','\\u{1F1F3}\\u{1F1F1}','\\u{1F1F3}\\u{1F1F4}','\\u{1F1F3}\\u{1F1F5}','\\u{1F1F3}\\u{1F1F7}','\\u{1F1F3}\\u{1F1FA}','\\u{1F1F3}\\u{1F1FF}','\\u{1F1F4}\\u{1F1F2}','\\u{1F1F5}\\u{1F1E6}','\\u{1F1F5}\\u{1F1EA}','\\u{1F1F5}\\u{1F1EB}','\\u{1F1F5}\\u{1F1EC}','\\u{1F1F5}\\u{1F1ED}','\\u{1F1F5}\\u{1F1F0}','\\u{1F1F5}\\u{1F1F1}','\\u{1F1F5}\\u{1F1F2}','\\u{1F1F5}\\u{1F1F3}','\\u{1F1F5}\\u{1F1F7}','\\u{1F1F5}\\u{1F1F8}','\\u{1F1F5}\\u{1F1F9}','\\u{1F1F5}\\u{1F1FC}','\\u{1F1F5}\\u{1F1FE}','\\u{1F1F6}\\u{1F1E6}','\\u{1F1F7}\\u{1F1EA}','\\u{1F1F7}\\u{1F1F4}','\\u{1F1F7}\\u{1F1F8}','\\u{1F1F7}\\u{1F1FA}','\\u{1F1F7}\\u{1F1FC}','\\u{1F1F8}\\u{1F1E6}','\\u{1F1F8}\\u{1F1E7}','\\u{1F1F8}\\u{1F1E8}','\\u{1F1F8}\\u{1F1E9}','\\u{1F1F8}\\u{1F1EA}','\\u{1F1F8}\\u{1F1EC}','\\u{1F1F8}\\u{1F1ED}','\\u{1F1F8}\\u{1F1EE}','\\u{1F1F8}\\u{1F1EF}','\\u{1F1F8}\\u{1F1F0}','\\u{1F1F8}\\u{1F1F1}','\\u{1F1F8}\\u{1F1F2}','\\u{1F1F8}\\u{1F1F3}','\\u{1F1F8}\\u{1F1F4}','\\u{1F1F8}\\u{1F1F7}','\\u{1F1F8}\\u{1F1F8}','\\u{1F1F8}\\u{1F1F9}','\\u{1F1F8}\\u{1F1FB}','\\u{1F1F8}\\u{1F1FD}','\\u{1F1F8}\\u{1F1FE}','\\u{1F1F8}\\u{1F1FF}','\\u{1F1F9}\\u{1F1E6}','\\u{1F1F9}\\u{1F1E8}','\\u{1F1F9}\\u{1F1E9}','\\u{1F1F9}\\u{1F1EB}','\\u{1F1F9}\\u{1F1EC}','\\u{1F1F9}\\u{1F1ED}','\\u{1F1F9}\\u{1F1EF}','\\u{1F1F9}\\u{1F1F0}','\\u{1F1F9}\\u{1F1F1}','\\u{1F1F9}\\u{1F1F2}','\\u{1F1F9}\\u{1F1F3}','\\u{1F1F9}\\u{1F1F4}','\\u{1F1F9}\\u{1F1F7}','\\u{1F1F9}\\u{1F1F9}','\\u{1F1F9}\\u{1F1FB}','\\u{1F1F9}\\u{1F1FC}','\\u{1F1F9}\\u{1F1FF}','\\u{1F1FA}\\u{1F1E6}','\\u{1F1FA}\\u{1F1EC}','\\u{1F1FA}\\u{1F1F2}','\\u{1F1FA}\\u{1F1F3}','\\u{1F1FA}\\u{1F1F8}','\\u{1F1FA}\\u{1F1FE}','\\u{1F1FA}\\u{1F1FF}','\\u{1F1FB}\\u{1F1E6}','\\u{1F1FB}\\u{1F1E8}','\\u{1F1FB}\\u{1F1EA}','\\u{1F1FB}\\u{1F1EC}','\\u{1F1FB}\\u{1F1EE}','\\u{1F1FB}\\u{1F1F3}','\\u{1F1FB}\\u{1F1FA}','\\u{1F1FC}\\u{1F1EB}','\\u{1F1FC}\\u{1F1F8}','\\u{1F1FD}\\u{1F1F0}','\\u{1F1FE}\\u{1F1EA}','\\u{1F1FE}\\u{1F1F9}','\\u{1F1FF}\\u{1F1E6}','\\u{1F1FF}\\u{1F1F2}','\\u{1F1FF}\\u{1F1FC}','\\u{1F202}\\uFE0F','\\u{1F237}\\uFE0F','\\u{1F321}\\uFE0F','\\u{1F324}\\uFE0F','\\u{1F325}\\uFE0F','\\u{1F326}\\uFE0F','\\u{1F327}\\uFE0F','\\u{1F328}\\uFE0F','\\u{1F329}\\uFE0F','\\u{1F32A}\\uFE0F','\\u{1F32B}\\uFE0F','\\u{1F32C}\\uFE0F','\\u{1F336}\\uFE0F','\\u{1F344}\\u200D\\u{1F7EB}','\\u{1F34B}\\u200D\\u{1F7E9}','\\u{1F37D}\\uFE0F','\\u{1F385}\\u{1F3FB}','\\u{1F385}\\u{1F3FC}','\\u{1F385}\\u{1F3FD}','\\u{1F385}\\u{1F3FE}','\\u{1F385}\\u{1F3FF}','\\u{1F396}\\uFE0F','\\u{1F397}\\uFE0F','\\u{1F399}\\uFE0F','\\u{1F39A}\\uFE0F','\\u{1F39B}\\uFE0F','\\u{1F39E}\\uFE0F','\\u{1F39F}\\uFE0F','\\u{1F3C2}\\u{1F3FB}','\\u{1F3C2}\\u{1F3FC}','\\u{1F3C2}\\u{1F3FD}','\\u{1F3C2}\\u{1F3FE}','\\u{1F3C2}\\u{1F3FF}','\\u{1F3C3}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F3C3}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F3C4}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FB}','\\u{1F3C4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FC}','\\u{1F3C4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FD}','\\u{1F3C4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FE}','\\u{1F3C4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3C4}\\u{1F3FF}','\\u{1F3C4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3C4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3C7}\\u{1F3FB}','\\u{1F3C7}\\u{1F3FC}','\\u{1F3C7}\\u{1F3FD}','\\u{1F3C7}\\u{1F3FE}','\\u{1F3C7}\\u{1F3FF}','\\u{1F3CA}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FB}','\\u{1F3CA}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FC}','\\u{1F3CA}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FD}','\\u{1F3CA}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FE}','\\u{1F3CA}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CA}\\u{1F3FF}','\\u{1F3CA}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CA}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FB}','\\u{1F3CB}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FC}','\\u{1F3CB}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FD}','\\u{1F3CB}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FE}','\\u{1F3CB}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\u{1F3FF}','\\u{1F3CB}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CB}\\uFE0F','\\u{1F3CB}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F3CB}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FB}','\\u{1F3CC}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FC}','\\u{1F3CC}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FD}','\\u{1F3CC}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FE}','\\u{1F3CC}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\u{1F3FF}','\\u{1F3CC}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F3CC}\\uFE0F','\\u{1F3CC}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F3CC}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F3CD}\\uFE0F','\\u{1F3CE}\\uFE0F','\\u{1F3D4}\\uFE0F','\\u{1F3D5}\\uFE0F','\\u{1F3D6}\\uFE0F','\\u{1F3D7}\\uFE0F','\\u{1F3D8}\\uFE0F','\\u{1F3D9}\\uFE0F','\\u{1F3DA}\\uFE0F','\\u{1F3DB}\\uFE0F','\\u{1F3DC}\\uFE0F','\\u{1F3DD}\\uFE0F','\\u{1F3DE}\\uFE0F','\\u{1F3DF}\\uFE0F','\\u{1F3F3}\\uFE0F','\\u{1F3F3}\\uFE0F\\u200D\\u26A7\\uFE0F','\\u{1F3F3}\\uFE0F\\u200D\\u{1F308}','\\u{1F3F4}\\u200D\\u2620\\uFE0F','\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0065}\\u{E006E}\\u{E0067}\\u{E007F}','\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0073}\\u{E0063}\\u{E0074}\\u{E007F}','\\u{1F3F4}\\u{E0067}\\u{E0062}\\u{E0077}\\u{E006C}\\u{E0073}\\u{E007F}','\\u{1F3F5}\\uFE0F','\\u{1F3F7}\\uFE0F','\\u{1F408}\\u200D\\u2B1B','\\u{1F415}\\u200D\\u{1F9BA}','\\u{1F426}\\u200D\\u2B1B','\\u{1F426}\\u200D\\u{1F525}','\\u{1F43B}\\u200D\\u2744\\uFE0F','\\u{1F43F}\\uFE0F','\\u{1F441}\\uFE0F','\\u{1F441}\\uFE0F\\u200D\\u{1F5E8}\\uFE0F','\\u{1F442}\\u{1F3FB}','\\u{1F442}\\u{1F3FC}','\\u{1F442}\\u{1F3FD}','\\u{1F442}\\u{1F3FE}','\\u{1F442}\\u{1F3FF}','\\u{1F443}\\u{1F3FB}','\\u{1F443}\\u{1F3FC}','\\u{1F443}\\u{1F3FD}','\\u{1F443}\\u{1F3FE}','\\u{1F443}\\u{1F3FF}','\\u{1F446}\\u{1F3FB}','\\u{1F446}\\u{1F3FC}','\\u{1F446}\\u{1F3FD}','\\u{1F446}\\u{1F3FE}','\\u{1F446}\\u{1F3FF}','\\u{1F447}\\u{1F3FB}','\\u{1F447}\\u{1F3FC}','\\u{1F447}\\u{1F3FD}','\\u{1F447}\\u{1F3FE}','\\u{1F447}\\u{1F3FF}','\\u{1F448}\\u{1F3FB}','\\u{1F448}\\u{1F3FC}','\\u{1F448}\\u{1F3FD}','\\u{1F448}\\u{1F3FE}','\\u{1F448}\\u{1F3FF}','\\u{1F449}\\u{1F3FB}','\\u{1F449}\\u{1F3FC}','\\u{1F449}\\u{1F3FD}','\\u{1F449}\\u{1F3FE}','\\u{1F449}\\u{1F3FF}','\\u{1F44A}\\u{1F3FB}','\\u{1F44A}\\u{1F3FC}','\\u{1F44A}\\u{1F3FD}','\\u{1F44A}\\u{1F3FE}','\\u{1F44A}\\u{1F3FF}','\\u{1F44B}\\u{1F3FB}','\\u{1F44B}\\u{1F3FC}','\\u{1F44B}\\u{1F3FD}','\\u{1F44B}\\u{1F3FE}','\\u{1F44B}\\u{1F3FF}','\\u{1F44C}\\u{1F3FB}','\\u{1F44C}\\u{1F3FC}','\\u{1F44C}\\u{1F3FD}','\\u{1F44C}\\u{1F3FE}','\\u{1F44C}\\u{1F3FF}','\\u{1F44D}\\u{1F3FB}','\\u{1F44D}\\u{1F3FC}','\\u{1F44D}\\u{1F3FD}','\\u{1F44D}\\u{1F3FE}','\\u{1F44D}\\u{1F3FF}','\\u{1F44E}\\u{1F3FB}','\\u{1F44E}\\u{1F3FC}','\\u{1F44E}\\u{1F3FD}','\\u{1F44E}\\u{1F3FE}','\\u{1F44E}\\u{1F3FF}','\\u{1F44F}\\u{1F3FB}','\\u{1F44F}\\u{1F3FC}','\\u{1F44F}\\u{1F3FD}','\\u{1F44F}\\u{1F3FE}','\\u{1F44F}\\u{1F3FF}','\\u{1F450}\\u{1F3FB}','\\u{1F450}\\u{1F3FC}','\\u{1F450}\\u{1F3FD}','\\u{1F450}\\u{1F3FE}','\\u{1F450}\\u{1F3FF}','\\u{1F466}\\u{1F3FB}','\\u{1F466}\\u{1F3FC}','\\u{1F466}\\u{1F3FD}','\\u{1F466}\\u{1F3FE}','\\u{1F466}\\u{1F3FF}','\\u{1F467}\\u{1F3FB}','\\u{1F467}\\u{1F3FC}','\\u{1F467}\\u{1F3FD}','\\u{1F467}\\u{1F3FE}','\\u{1F467}\\u{1F3FF}','\\u{1F468}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}','\\u{1F468}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}','\\u{1F468}\\u200D\\u{1F33E}','\\u{1F468}\\u200D\\u{1F373}','\\u{1F468}\\u200D\\u{1F37C}','\\u{1F468}\\u200D\\u{1F393}','\\u{1F468}\\u200D\\u{1F3A4}','\\u{1F468}\\u200D\\u{1F3A8}','\\u{1F468}\\u200D\\u{1F3EB}','\\u{1F468}\\u200D\\u{1F3ED}','\\u{1F468}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F468}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F468}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F468}\\u200D\\u{1F4BB}','\\u{1F468}\\u200D\\u{1F4BC}','\\u{1F468}\\u200D\\u{1F527}','\\u{1F468}\\u200D\\u{1F52C}','\\u{1F468}\\u200D\\u{1F680}','\\u{1F468}\\u200D\\u{1F692}','\\u{1F468}\\u200D\\u{1F9AF}','\\u{1F468}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u200D\\u{1F9B0}','\\u{1F468}\\u200D\\u{1F9B1}','\\u{1F468}\\u200D\\u{1F9B2}','\\u{1F468}\\u200D\\u{1F9B3}','\\u{1F468}\\u200D\\u{1F9BC}','\\u{1F468}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u200D\\u{1F9BD}','\\u{1F468}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F468}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}','\\u{1F469}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}','\\u{1F469}\\u200D\\u{1F33E}','\\u{1F469}\\u200D\\u{1F373}','\\u{1F469}\\u200D\\u{1F37C}','\\u{1F469}\\u200D\\u{1F393}','\\u{1F469}\\u200D\\u{1F3A4}','\\u{1F469}\\u200D\\u{1F3A8}','\\u{1F469}\\u200D\\u{1F3EB}','\\u{1F469}\\u200D\\u{1F3ED}','\\u{1F469}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F466}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F466}','\\u{1F469}\\u200D\\u{1F469}\\u200D\\u{1F467}\\u200D\\u{1F467}','\\u{1F469}\\u200D\\u{1F4BB}','\\u{1F469}\\u200D\\u{1F4BC}','\\u{1F469}\\u200D\\u{1F527}','\\u{1F469}\\u200D\\u{1F52C}','\\u{1F469}\\u200D\\u{1F680}','\\u{1F469}\\u200D\\u{1F692}','\\u{1F469}\\u200D\\u{1F9AF}','\\u{1F469}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u{1F9B0}','\\u{1F469}\\u200D\\u{1F9B1}','\\u{1F469}\\u200D\\u{1F9B2}','\\u{1F469}\\u200D\\u{1F9B3}','\\u{1F469}\\u200D\\u{1F9BC}','\\u{1F469}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u200D\\u{1F9BD}','\\u{1F469}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F468}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F469}\\u{1F3FF}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F468}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FB}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F469}\\u{1F3FE}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F469}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F46B}\\u{1F3FB}','\\u{1F46B}\\u{1F3FC}','\\u{1F46B}\\u{1F3FD}','\\u{1F46B}\\u{1F3FE}','\\u{1F46B}\\u{1F3FF}','\\u{1F46C}\\u{1F3FB}','\\u{1F46C}\\u{1F3FC}','\\u{1F46C}\\u{1F3FD}','\\u{1F46C}\\u{1F3FE}','\\u{1F46C}\\u{1F3FF}','\\u{1F46D}\\u{1F3FB}','\\u{1F46D}\\u{1F3FC}','\\u{1F46D}\\u{1F3FD}','\\u{1F46D}\\u{1F3FE}','\\u{1F46D}\\u{1F3FF}','\\u{1F46E}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FB}','\\u{1F46E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FC}','\\u{1F46E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FD}','\\u{1F46E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FE}','\\u{1F46E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F46E}\\u{1F3FF}','\\u{1F46E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F46E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F46F}\\u200D\\u2640\\uFE0F','\\u{1F46F}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FB}','\\u{1F470}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FC}','\\u{1F470}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FD}','\\u{1F470}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FE}','\\u{1F470}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F470}\\u{1F3FF}','\\u{1F470}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F470}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FB}','\\u{1F471}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FC}','\\u{1F471}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FD}','\\u{1F471}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FE}','\\u{1F471}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F471}\\u{1F3FF}','\\u{1F471}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F471}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F472}\\u{1F3FB}','\\u{1F472}\\u{1F3FC}','\\u{1F472}\\u{1F3FD}','\\u{1F472}\\u{1F3FE}','\\u{1F472}\\u{1F3FF}','\\u{1F473}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FB}','\\u{1F473}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FC}','\\u{1F473}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FD}','\\u{1F473}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FE}','\\u{1F473}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F473}\\u{1F3FF}','\\u{1F473}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F473}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F474}\\u{1F3FB}','\\u{1F474}\\u{1F3FC}','\\u{1F474}\\u{1F3FD}','\\u{1F474}\\u{1F3FE}','\\u{1F474}\\u{1F3FF}','\\u{1F475}\\u{1F3FB}','\\u{1F475}\\u{1F3FC}','\\u{1F475}\\u{1F3FD}','\\u{1F475}\\u{1F3FE}','\\u{1F475}\\u{1F3FF}','\\u{1F476}\\u{1F3FB}','\\u{1F476}\\u{1F3FC}','\\u{1F476}\\u{1F3FD}','\\u{1F476}\\u{1F3FE}','\\u{1F476}\\u{1F3FF}','\\u{1F477}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FB}','\\u{1F477}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FC}','\\u{1F477}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FD}','\\u{1F477}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FE}','\\u{1F477}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F477}\\u{1F3FF}','\\u{1F477}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F477}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F478}\\u{1F3FB}','\\u{1F478}\\u{1F3FC}','\\u{1F478}\\u{1F3FD}','\\u{1F478}\\u{1F3FE}','\\u{1F478}\\u{1F3FF}','\\u{1F47C}\\u{1F3FB}','\\u{1F47C}\\u{1F3FC}','\\u{1F47C}\\u{1F3FD}','\\u{1F47C}\\u{1F3FE}','\\u{1F47C}\\u{1F3FF}','\\u{1F481}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FB}','\\u{1F481}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FC}','\\u{1F481}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FD}','\\u{1F481}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FE}','\\u{1F481}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F481}\\u{1F3FF}','\\u{1F481}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F481}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FB}','\\u{1F482}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FC}','\\u{1F482}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FD}','\\u{1F482}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FE}','\\u{1F482}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F482}\\u{1F3FF}','\\u{1F482}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F482}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F483}\\u{1F3FB}','\\u{1F483}\\u{1F3FC}','\\u{1F483}\\u{1F3FD}','\\u{1F483}\\u{1F3FE}','\\u{1F483}\\u{1F3FF}','\\u{1F485}\\u{1F3FB}','\\u{1F485}\\u{1F3FC}','\\u{1F485}\\u{1F3FD}','\\u{1F485}\\u{1F3FE}','\\u{1F485}\\u{1F3FF}','\\u{1F486}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FB}','\\u{1F486}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FC}','\\u{1F486}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FD}','\\u{1F486}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FE}','\\u{1F486}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F486}\\u{1F3FF}','\\u{1F486}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F486}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FB}','\\u{1F487}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FC}','\\u{1F487}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FD}','\\u{1F487}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FE}','\\u{1F487}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F487}\\u{1F3FF}','\\u{1F487}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F487}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F48F}\\u{1F3FB}','\\u{1F48F}\\u{1F3FC}','\\u{1F48F}\\u{1F3FD}','\\u{1F48F}\\u{1F3FE}','\\u{1F48F}\\u{1F3FF}','\\u{1F491}\\u{1F3FB}','\\u{1F491}\\u{1F3FC}','\\u{1F491}\\u{1F3FD}','\\u{1F491}\\u{1F3FE}','\\u{1F491}\\u{1F3FF}','\\u{1F4AA}\\u{1F3FB}','\\u{1F4AA}\\u{1F3FC}','\\u{1F4AA}\\u{1F3FD}','\\u{1F4AA}\\u{1F3FE}','\\u{1F4AA}\\u{1F3FF}','\\u{1F4FD}\\uFE0F','\\u{1F549}\\uFE0F','\\u{1F54A}\\uFE0F','\\u{1F56F}\\uFE0F','\\u{1F570}\\uFE0F','\\u{1F573}\\uFE0F','\\u{1F574}\\u{1F3FB}','\\u{1F574}\\u{1F3FC}','\\u{1F574}\\u{1F3FD}','\\u{1F574}\\u{1F3FE}','\\u{1F574}\\u{1F3FF}','\\u{1F574}\\uFE0F','\\u{1F575}\\u{1F3FB}','\\u{1F575}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FC}','\\u{1F575}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FD}','\\u{1F575}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FE}','\\u{1F575}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F575}\\u{1F3FF}','\\u{1F575}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F575}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F575}\\uFE0F','\\u{1F575}\\uFE0F\\u200D\\u2640\\uFE0F','\\u{1F575}\\uFE0F\\u200D\\u2642\\uFE0F','\\u{1F576}\\uFE0F','\\u{1F577}\\uFE0F','\\u{1F578}\\uFE0F','\\u{1F579}\\uFE0F','\\u{1F57A}\\u{1F3FB}','\\u{1F57A}\\u{1F3FC}','\\u{1F57A}\\u{1F3FD}','\\u{1F57A}\\u{1F3FE}','\\u{1F57A}\\u{1F3FF}','\\u{1F587}\\uFE0F','\\u{1F58A}\\uFE0F','\\u{1F58B}\\uFE0F','\\u{1F58C}\\uFE0F','\\u{1F58D}\\uFE0F','\\u{1F590}\\u{1F3FB}','\\u{1F590}\\u{1F3FC}','\\u{1F590}\\u{1F3FD}','\\u{1F590}\\u{1F3FE}','\\u{1F590}\\u{1F3FF}','\\u{1F590}\\uFE0F','\\u{1F595}\\u{1F3FB}','\\u{1F595}\\u{1F3FC}','\\u{1F595}\\u{1F3FD}','\\u{1F595}\\u{1F3FE}','\\u{1F595}\\u{1F3FF}','\\u{1F596}\\u{1F3FB}','\\u{1F596}\\u{1F3FC}','\\u{1F596}\\u{1F3FD}','\\u{1F596}\\u{1F3FE}','\\u{1F596}\\u{1F3FF}','\\u{1F5A5}\\uFE0F','\\u{1F5A8}\\uFE0F','\\u{1F5B1}\\uFE0F','\\u{1F5B2}\\uFE0F','\\u{1F5BC}\\uFE0F','\\u{1F5C2}\\uFE0F','\\u{1F5C3}\\uFE0F','\\u{1F5C4}\\uFE0F','\\u{1F5D1}\\uFE0F','\\u{1F5D2}\\uFE0F','\\u{1F5D3}\\uFE0F','\\u{1F5DC}\\uFE0F','\\u{1F5DD}\\uFE0F','\\u{1F5DE}\\uFE0F','\\u{1F5E1}\\uFE0F','\\u{1F5E3}\\uFE0F','\\u{1F5E8}\\uFE0F','\\u{1F5EF}\\uFE0F','\\u{1F5F3}\\uFE0F','\\u{1F5FA}\\uFE0F','\\u{1F62E}\\u200D\\u{1F4A8}','\\u{1F635}\\u200D\\u{1F4AB}','\\u{1F636}\\u200D\\u{1F32B}\\uFE0F','\\u{1F642}\\u200D\\u2194\\uFE0F','\\u{1F642}\\u200D\\u2195\\uFE0F','\\u{1F645}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FB}','\\u{1F645}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FC}','\\u{1F645}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FD}','\\u{1F645}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FE}','\\u{1F645}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F645}\\u{1F3FF}','\\u{1F645}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F645}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FB}','\\u{1F646}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FC}','\\u{1F646}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FD}','\\u{1F646}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FE}','\\u{1F646}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F646}\\u{1F3FF}','\\u{1F646}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F646}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FB}','\\u{1F647}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FC}','\\u{1F647}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FD}','\\u{1F647}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FE}','\\u{1F647}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F647}\\u{1F3FF}','\\u{1F647}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F647}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FB}','\\u{1F64B}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FC}','\\u{1F64B}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FD}','\\u{1F64B}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FE}','\\u{1F64B}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64B}\\u{1F3FF}','\\u{1F64B}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64B}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64C}\\u{1F3FB}','\\u{1F64C}\\u{1F3FC}','\\u{1F64C}\\u{1F3FD}','\\u{1F64C}\\u{1F3FE}','\\u{1F64C}\\u{1F3FF}','\\u{1F64D}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FB}','\\u{1F64D}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FC}','\\u{1F64D}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FD}','\\u{1F64D}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FE}','\\u{1F64D}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64D}\\u{1F3FF}','\\u{1F64D}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64D}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FB}','\\u{1F64E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FC}','\\u{1F64E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FD}','\\u{1F64E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FE}','\\u{1F64E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F64E}\\u{1F3FF}','\\u{1F64E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F64E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F64F}\\u{1F3FB}','\\u{1F64F}\\u{1F3FC}','\\u{1F64F}\\u{1F3FD}','\\u{1F64F}\\u{1F3FE}','\\u{1F64F}\\u{1F3FF}','\\u{1F6A3}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FB}','\\u{1F6A3}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FC}','\\u{1F6A3}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FD}','\\u{1F6A3}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FE}','\\u{1F6A3}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6A3}\\u{1F3FF}','\\u{1F6A3}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6A3}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FB}','\\u{1F6B4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FC}','\\u{1F6B4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FD}','\\u{1F6B4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FE}','\\u{1F6B4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B4}\\u{1F3FF}','\\u{1F6B4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FB}','\\u{1F6B5}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FC}','\\u{1F6B5}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FD}','\\u{1F6B5}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FE}','\\u{1F6B5}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B5}\\u{1F3FF}','\\u{1F6B5}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B5}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F6B6}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F6C0}\\u{1F3FB}','\\u{1F6C0}\\u{1F3FC}','\\u{1F6C0}\\u{1F3FD}','\\u{1F6C0}\\u{1F3FE}','\\u{1F6C0}\\u{1F3FF}','\\u{1F6CB}\\uFE0F','\\u{1F6CC}\\u{1F3FB}','\\u{1F6CC}\\u{1F3FC}','\\u{1F6CC}\\u{1F3FD}','\\u{1F6CC}\\u{1F3FE}','\\u{1F6CC}\\u{1F3FF}','\\u{1F6CD}\\uFE0F','\\u{1F6CE}\\uFE0F','\\u{1F6CF}\\uFE0F','\\u{1F6E0}\\uFE0F','\\u{1F6E1}\\uFE0F','\\u{1F6E2}\\uFE0F','\\u{1F6E3}\\uFE0F','\\u{1F6E4}\\uFE0F','\\u{1F6E5}\\uFE0F','\\u{1F6E9}\\uFE0F','\\u{1F6F0}\\uFE0F','\\u{1F6F3}\\uFE0F','\\u{1F90C}\\u{1F3FB}','\\u{1F90C}\\u{1F3FC}','\\u{1F90C}\\u{1F3FD}','\\u{1F90C}\\u{1F3FE}','\\u{1F90C}\\u{1F3FF}','\\u{1F90F}\\u{1F3FB}','\\u{1F90F}\\u{1F3FC}','\\u{1F90F}\\u{1F3FD}','\\u{1F90F}\\u{1F3FE}','\\u{1F90F}\\u{1F3FF}','\\u{1F918}\\u{1F3FB}','\\u{1F918}\\u{1F3FC}','\\u{1F918}\\u{1F3FD}','\\u{1F918}\\u{1F3FE}','\\u{1F918}\\u{1F3FF}','\\u{1F919}\\u{1F3FB}','\\u{1F919}\\u{1F3FC}','\\u{1F919}\\u{1F3FD}','\\u{1F919}\\u{1F3FE}','\\u{1F919}\\u{1F3FF}','\\u{1F91A}\\u{1F3FB}','\\u{1F91A}\\u{1F3FC}','\\u{1F91A}\\u{1F3FD}','\\u{1F91A}\\u{1F3FE}','\\u{1F91A}\\u{1F3FF}','\\u{1F91B}\\u{1F3FB}','\\u{1F91B}\\u{1F3FC}','\\u{1F91B}\\u{1F3FD}','\\u{1F91B}\\u{1F3FE}','\\u{1F91B}\\u{1F3FF}','\\u{1F91C}\\u{1F3FB}','\\u{1F91C}\\u{1F3FC}','\\u{1F91C}\\u{1F3FD}','\\u{1F91C}\\u{1F3FE}','\\u{1F91C}\\u{1F3FF}','\\u{1F91D}\\u{1F3FB}','\\u{1F91D}\\u{1F3FC}','\\u{1F91D}\\u{1F3FD}','\\u{1F91D}\\u{1F3FE}','\\u{1F91D}\\u{1F3FF}','\\u{1F91E}\\u{1F3FB}','\\u{1F91E}\\u{1F3FC}','\\u{1F91E}\\u{1F3FD}','\\u{1F91E}\\u{1F3FE}','\\u{1F91E}\\u{1F3FF}','\\u{1F91F}\\u{1F3FB}','\\u{1F91F}\\u{1F3FC}','\\u{1F91F}\\u{1F3FD}','\\u{1F91F}\\u{1F3FE}','\\u{1F91F}\\u{1F3FF}','\\u{1F926}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FB}','\\u{1F926}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FC}','\\u{1F926}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FD}','\\u{1F926}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FE}','\\u{1F926}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F926}\\u{1F3FF}','\\u{1F926}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F926}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F930}\\u{1F3FB}','\\u{1F930}\\u{1F3FC}','\\u{1F930}\\u{1F3FD}','\\u{1F930}\\u{1F3FE}','\\u{1F930}\\u{1F3FF}','\\u{1F931}\\u{1F3FB}','\\u{1F931}\\u{1F3FC}','\\u{1F931}\\u{1F3FD}','\\u{1F931}\\u{1F3FE}','\\u{1F931}\\u{1F3FF}','\\u{1F932}\\u{1F3FB}','\\u{1F932}\\u{1F3FC}','\\u{1F932}\\u{1F3FD}','\\u{1F932}\\u{1F3FE}','\\u{1F932}\\u{1F3FF}','\\u{1F933}\\u{1F3FB}','\\u{1F933}\\u{1F3FC}','\\u{1F933}\\u{1F3FD}','\\u{1F933}\\u{1F3FE}','\\u{1F933}\\u{1F3FF}','\\u{1F934}\\u{1F3FB}','\\u{1F934}\\u{1F3FC}','\\u{1F934}\\u{1F3FD}','\\u{1F934}\\u{1F3FE}','\\u{1F934}\\u{1F3FF}','\\u{1F935}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FB}','\\u{1F935}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FC}','\\u{1F935}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FD}','\\u{1F935}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FE}','\\u{1F935}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F935}\\u{1F3FF}','\\u{1F935}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F935}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F936}\\u{1F3FB}','\\u{1F936}\\u{1F3FC}','\\u{1F936}\\u{1F3FD}','\\u{1F936}\\u{1F3FE}','\\u{1F936}\\u{1F3FF}','\\u{1F937}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FB}','\\u{1F937}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FC}','\\u{1F937}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FD}','\\u{1F937}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FE}','\\u{1F937}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F937}\\u{1F3FF}','\\u{1F937}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F937}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FB}','\\u{1F938}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FC}','\\u{1F938}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FD}','\\u{1F938}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FE}','\\u{1F938}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F938}\\u{1F3FF}','\\u{1F938}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F938}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FB}','\\u{1F939}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FC}','\\u{1F939}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FD}','\\u{1F939}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FE}','\\u{1F939}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F939}\\u{1F3FF}','\\u{1F939}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F939}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F93C}\\u200D\\u2640\\uFE0F','\\u{1F93C}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FB}','\\u{1F93D}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FC}','\\u{1F93D}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FD}','\\u{1F93D}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FE}','\\u{1F93D}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F93D}\\u{1F3FF}','\\u{1F93D}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F93D}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FB}','\\u{1F93E}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FC}','\\u{1F93E}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FD}','\\u{1F93E}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FE}','\\u{1F93E}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F93E}\\u{1F3FF}','\\u{1F93E}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F93E}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F977}\\u{1F3FB}','\\u{1F977}\\u{1F3FC}','\\u{1F977}\\u{1F3FD}','\\u{1F977}\\u{1F3FE}','\\u{1F977}\\u{1F3FF}','\\u{1F9B5}\\u{1F3FB}','\\u{1F9B5}\\u{1F3FC}','\\u{1F9B5}\\u{1F3FD}','\\u{1F9B5}\\u{1F3FE}','\\u{1F9B5}\\u{1F3FF}','\\u{1F9B6}\\u{1F3FB}','\\u{1F9B6}\\u{1F3FC}','\\u{1F9B6}\\u{1F3FD}','\\u{1F9B6}\\u{1F3FE}','\\u{1F9B6}\\u{1F3FF}','\\u{1F9B8}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FB}','\\u{1F9B8}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FC}','\\u{1F9B8}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FD}','\\u{1F9B8}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FE}','\\u{1F9B8}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9B8}\\u{1F3FF}','\\u{1F9B8}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9B8}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FB}','\\u{1F9B9}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FC}','\\u{1F9B9}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FD}','\\u{1F9B9}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FE}','\\u{1F9B9}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9B9}\\u{1F3FF}','\\u{1F9B9}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9B9}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9BB}\\u{1F3FB}','\\u{1F9BB}\\u{1F3FC}','\\u{1F9BB}\\u{1F3FD}','\\u{1F9BB}\\u{1F3FE}','\\u{1F9BB}\\u{1F3FF}','\\u{1F9CD}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FB}','\\u{1F9CD}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FC}','\\u{1F9CD}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FD}','\\u{1F9CD}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FE}','\\u{1F9CD}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CD}\\u{1F3FF}','\\u{1F9CD}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CD}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FB}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FC}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FD}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FE}\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2640\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u2642\\uFE0F\\u200D\\u27A1\\uFE0F','\\u{1F9CE}\\u{1F3FF}\\u200D\\u27A1\\uFE0F','\\u{1F9CF}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FB}','\\u{1F9CF}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FC}','\\u{1F9CF}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FD}','\\u{1F9CF}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FE}','\\u{1F9CF}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9CF}\\u{1F3FF}','\\u{1F9CF}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9CF}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D1}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u200D\\u{1F33E}','\\u{1F9D1}\\u200D\\u{1F373}','\\u{1F9D1}\\u200D\\u{1F37C}','\\u{1F9D1}\\u200D\\u{1F384}','\\u{1F9D1}\\u200D\\u{1F393}','\\u{1F9D1}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u200D\\u{1F527}','\\u{1F9D1}\\u200D\\u{1F52C}','\\u{1F9D1}\\u200D\\u{1F680}','\\u{1F9D1}\\u200D\\u{1F692}','\\u{1F9D1}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}','\\u{1F9D1}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u200D\\u{1F9D1}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D1}\\u200D\\u{1F9D2}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u200D\\u{1F9D2}\\u200D\\u{1F9D2}','\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FB}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FC}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FD}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FE}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2695\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2696\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2708\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F48B}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u2764\\uFE0F\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F33E}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F373}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F37C}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F384}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F393}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A4}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3A8}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3EB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F3ED}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F4BC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F527}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F52C}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F680}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F692}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FB}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FE}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F91D}\\u200D\\u{1F9D1}\\u{1F3FF}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9AF}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B0}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B1}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B2}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9B3}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BC}\\u200D\\u27A1\\uFE0F','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}','\\u{1F9D1}\\u{1F3FF}\\u200D\\u{1F9BD}\\u200D\\u27A1\\uFE0F','\\u{1F9D2}\\u{1F3FB}','\\u{1F9D2}\\u{1F3FC}','\\u{1F9D2}\\u{1F3FD}','\\u{1F9D2}\\u{1F3FE}','\\u{1F9D2}\\u{1F3FF}','\\u{1F9D3}\\u{1F3FB}','\\u{1F9D3}\\u{1F3FC}','\\u{1F9D3}\\u{1F3FD}','\\u{1F9D3}\\u{1F3FE}','\\u{1F9D3}\\u{1F3FF}','\\u{1F9D4}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FB}','\\u{1F9D4}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FC}','\\u{1F9D4}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FD}','\\u{1F9D4}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FE}','\\u{1F9D4}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D4}\\u{1F3FF}','\\u{1F9D4}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D4}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D5}\\u{1F3FB}','\\u{1F9D5}\\u{1F3FC}','\\u{1F9D5}\\u{1F3FD}','\\u{1F9D5}\\u{1F3FE}','\\u{1F9D5}\\u{1F3FF}','\\u{1F9D6}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FB}','\\u{1F9D6}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FC}','\\u{1F9D6}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FD}','\\u{1F9D6}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FE}','\\u{1F9D6}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D6}\\u{1F3FF}','\\u{1F9D6}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D6}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FB}','\\u{1F9D7}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FC}','\\u{1F9D7}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FD}','\\u{1F9D7}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FE}','\\u{1F9D7}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D7}\\u{1F3FF}','\\u{1F9D7}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D7}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FB}','\\u{1F9D8}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FC}','\\u{1F9D8}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FD}','\\u{1F9D8}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FE}','\\u{1F9D8}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D8}\\u{1F3FF}','\\u{1F9D8}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D8}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FB}','\\u{1F9D9}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FC}','\\u{1F9D9}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FD}','\\u{1F9D9}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FE}','\\u{1F9D9}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9D9}\\u{1F3FF}','\\u{1F9D9}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9D9}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FB}','\\u{1F9DA}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FC}','\\u{1F9DA}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FD}','\\u{1F9DA}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FE}','\\u{1F9DA}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DA}\\u{1F3FF}','\\u{1F9DA}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DA}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FB}','\\u{1F9DB}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FC}','\\u{1F9DB}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FD}','\\u{1F9DB}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FE}','\\u{1F9DB}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DB}\\u{1F3FF}','\\u{1F9DB}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DB}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FB}','\\u{1F9DC}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FC}','\\u{1F9DC}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FD}','\\u{1F9DC}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FE}','\\u{1F9DC}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DC}\\u{1F3FF}','\\u{1F9DC}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DC}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FB}','\\u{1F9DD}\\u{1F3FB}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FB}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FC}','\\u{1F9DD}\\u{1F3FC}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FC}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FD}','\\u{1F9DD}\\u{1F3FD}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FD}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FE}','\\u{1F9DD}\\u{1F3FE}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FE}\\u200D\\u2642\\uFE0F','\\u{1F9DD}\\u{1F3FF}','\\u{1F9DD}\\u{1F3FF}\\u200D\\u2640\\uFE0F','\\u{1F9DD}\\u{1F3FF}\\u200D\\u2642\\uFE0F','\\u{1F9DE}\\u200D\\u2640\\uFE0F','\\u{1F9DE}\\u200D\\u2642\\uFE0F','\\u{1F9DF}\\u200D\\u2640\\uFE0F','\\u{1F9DF}\\u200D\\u2642\\uFE0F','\\u{1FAC3}\\u{1F3FB}','\\u{1FAC3}\\u{1F3FC}','\\u{1FAC3}\\u{1F3FD}','\\u{1FAC3}\\u{1F3FE}','\\u{1FAC3}\\u{1F3FF}','\\u{1FAC4}\\u{1F3FB}','\\u{1FAC4}\\u{1F3FC}','\\u{1FAC4}\\u{1F3FD}','\\u{1FAC4}\\u{1F3FE}','\\u{1FAC4}\\u{1F3FF}','\\u{1FAC5}\\u{1F3FB}','\\u{1FAC5}\\u{1F3FC}','\\u{1FAC5}\\u{1F3FD}','\\u{1FAC5}\\u{1F3FE}','\\u{1FAC5}\\u{1F3FF}','\\u{1FAF0}\\u{1F3FB}','\\u{1FAF0}\\u{1F3FC}','\\u{1FAF0}\\u{1F3FD}','\\u{1FAF0}\\u{1F3FE}','\\u{1FAF0}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FB}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FC}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FD}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FE}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FE}\\u200D\\u{1FAF2}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FF}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FB}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FC}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FD}','\\u{1FAF1}\\u{1F3FF}\\u200D\\u{1FAF2}\\u{1F3FE}','\\u{1FAF2}\\u{1F3FB}','\\u{1FAF2}\\u{1F3FC}','\\u{1FAF2}\\u{1F3FD}','\\u{1FAF2}\\u{1F3FE}','\\u{1FAF2}\\u{1F3FF}','\\u{1FAF3}\\u{1F3FB}','\\u{1FAF3}\\u{1F3FC}','\\u{1FAF3}\\u{1F3FD}','\\u{1FAF3}\\u{1F3FE}','\\u{1FAF3}\\u{1F3FF}','\\u{1FAF4}\\u{1F3FB}','\\u{1FAF4}\\u{1F3FC}','\\u{1FAF4}\\u{1F3FD}','\\u{1FAF4}\\u{1F3FE}','\\u{1FAF4}\\u{1F3FF}','\\u{1FAF5}\\u{1F3FB}','\\u{1FAF5}\\u{1F3FC}','\\u{1FAF5}\\u{1F3FD}','\\u{1FAF5}\\u{1F3FE}','\\u{1FAF5}\\u{1F3FF}','\\u{1FAF6}\\u{1F3FB}','\\u{1FAF6}\\u{1F3FC}','\\u{1FAF6}\\u{1F3FD}','\\u{1FAF6}\\u{1F3FE}','\\u{1FAF6}\\u{1F3FF}','\\u{1FAF7}\\u{1F3FB}','\\u{1FAF7}\\u{1F3FC}','\\u{1FAF7}\\u{1F3FD}','\\u{1FAF7}\\u{1F3FE}','\\u{1FAF7}\\u{1F3FF}','\\u{1FAF8}\\u{1F3FB}','\\u{1FAF8}\\u{1F3FC}','\\u{1FAF8}\\u{1F3FD}','\\u{1FAF8}\\u{1F3FE}','\\u{1FAF8}\\u{1F3FF}'];\n","const set = require('regenerate')(0x61F, 0x640);\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x14400, 0x14646);\nexports.characters = set;\n","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x600, 0x604).addRange(0x606, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x102E0, 0x102FB).addRange(0x10E60, 0x10E7E).addRange(0x10EFD, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nexports.characters = set;\n","const set = require('regenerate')(0x9B2, 0x9D7, 0x1CD0, 0x1CD2, 0x1CD8, 0x1CE1, 0x1CEA, 0x1CED, 0x1CF2, 0xA8F1);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE).addRange(0x1CD5, 0x1CD6).addRange(0x1CF5, 0x1CF7);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nexports.characters = set;\n","const set = require('regenerate')(0x3030, 0x3037, 0x30FB);\nset.addRange(0x2EA, 0x2EB).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302A, 0x302D).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65);\nexports.characters = set;\n","const set = require('regenerate')(0x1107F);\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2800, 0x28FF);\nexports.characters = set;\n","const set = require('regenerate')(0xA9CF);\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1735, 0x1736).addRange(0x1740, 0x1753);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x102A0, 0x102D0);\nexports.characters = set;\n","const set = require('regenerate')(0x1056F);\nset.addRange(0x10530, 0x10563);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x9E6, 0x9EF).addRange(0x1040, 0x1049).addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10FB0, 0x10FCB);\nexports.characters = set;\n","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x6DD, 0x8E2, 0xE3F, 0x3004, 0x3012, 0x3020, 0x3036, 0x31EF, 0x327F, 0x33FF, 0xAB5B, 0xFEFF, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x2000, 0x200B).addRange(0x200E, 0x202E).addRange(0x2030, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E42).addRange(0x2E44, 0x2E5D).addRange(0x2FF0, 0x3000).addRange(0x3248, 0x325F).addRange(0x32B1, 0x32BF).addRange(0x32CC, 0x32CF).addRange(0x3371, 0x337A).addRange(0x3380, 0x33DF).addRange(0x4DC0, 0x4DFF).addRange(0xA708, 0xA721).addRange(0xA788, 0xA78A).addRange(0xAB6A, 0xAB6B).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE44).addRange(0xFE47, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF60).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE);\nset.addRange(0xFFF9, 0xFFFD).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D372, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D).addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776);\nset.addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF).addRange(0x102E0, 0x102FB);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nexports.characters = set;\n","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\nset.addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10100, 0x10101).addRange(0x12F90, 0x12FF2);\nexports.characters = set;\n","const set = require('regenerate')(0x1D2B, 0x1D78, 0x1DF8, 0x2E43, 0x1E08F);\nset.addRange(0x400, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10400, 0x1044F);\nexports.characters = set;\n","const set = require('regenerate')(0x20F0);\nset.addRange(0x900, 0x952).addRange(0x955, 0x97F).addRange(0x1CD0, 0x1CF6).addRange(0x1CF8, 0x1CF9).addRange(0xA830, 0xA839).addRange(0xA8E0, 0xA8FF).addRange(0x11B00, 0x11B09);\nexports.characters = set;\n","const set = require('regenerate')(0x11909);\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11800, 0x1183B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BCA3);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x13000, 0x13455);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10500, 0x10527);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10FE0, 0x10FF6);\nexports.characters = set;\n","const set = require('regenerate')(0x1258, 0x12C0);\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nexports.characters = set;\n","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nexports.characters = set;\n","const set = require('regenerate')(0x484, 0x487, 0x2E43, 0xA66F);\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10330, 0x1034A);\nexports.characters = set;\n","const set = require('regenerate')(0x1CD0, 0x20F0, 0x11350, 0x11357, 0x11FD3);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xBE6, 0xBF3).addRange(0x1CD2, 0x1CD3).addRange(0x1CF2, 0x1CF4).addRange(0x1CF8, 0x1CF9).addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133B, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374).addRange(0x11FD0, 0x11FD1);\nexports.characters = set;\n","const set = require('regenerate')(0x342, 0x345, 0x37F, 0x384, 0x386, 0x38C, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1DBF, 0x1DC1).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nexports.characters = set;\n","const set = require('regenerate')(0xAD0);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF).addRange(0xA830, 0xA839);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x965).addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nexports.characters = set;\n","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76).addRange(0xA830, 0xA839);\nexports.characters = set;\n","const set = require('regenerate')(0x3030, 0x30FB, 0x32FF);\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3001, 0x3003).addRange(0x3005, 0x3011).addRange(0x3013, 0x301F).addRange(0x3021, 0x302D).addRange(0x3037, 0x303F).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x3247).addRange(0x3280, 0x32B0).addRange(0x32C0, 0x32CB).addRange(0x3358, 0x3370).addRange(0x337B, 0x337F).addRange(0x33E0, 0x33FE).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xA700, 0xA707).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x1D360, 0x1D371).addRange(0x1F250, 0x1F251).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')(0x3037, 0x30FB);\nset.addRange(0x1100, 0x11FF).addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x302E, 0x3030).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nexports.characters = set;\n","const set = require('regenerate')(0x60C, 0x61B, 0x61F, 0x640, 0x6D4);\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1720, 0x1736);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nexports.characters = set;\n","const set = require('regenerate')(0xFB3E);\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nexports.characters = set;\n","const set = require('regenerate')(0x3037, 0xFF70, 0x1B132, 0x1F200);\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3041, 0x3096).addRange(0x3099, 0x30A0).addRange(0x30FB, 0x30FC).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nexports.characters = set;\n","const set = require('regenerate')(0x1DF9, 0x101FD);\nset.addRange(0x300, 0x341).addRange(0x343, 0x344).addRange(0x346, 0x362).addRange(0x953, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1DC2, 0x1DF7).addRange(0x1DFB, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20EF).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA980, 0xA9CD).addRange(0xA9CF, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nexports.characters = set;\n","const set = require('regenerate')(0x110CD);\nset.addRange(0x966, 0x96F).addRange(0xA830, 0xA839).addRange(0x11080, 0x110C2);\nexports.characters = set;\n","const set = require('regenerate')(0x1CD0, 0x1CD2, 0x1CDA, 0x1CF2, 0x1CF4);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3).addRange(0xA830, 0xA835);\nexports.characters = set;\n","const set = require('regenerate')(0x3037, 0x1B000, 0x1B155);\nset.addRange(0x3001, 0x3003).addRange(0x3008, 0x3011).addRange(0x3013, 0x301F).addRange(0x3030, 0x3035).addRange(0x303C, 0x303D).addRange(0x3099, 0x309C).addRange(0x30A0, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFE45, 0xFE46).addRange(0xFF61, 0xFF9F).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA900, 0xA92F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE4);\nset.addRange(0x18B00, 0x18CD5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAE6, 0xAEF).addRange(0xA830, 0xA839).addRange(0x11200, 0x11211).addRange(0x11213, 0x11241);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nexports.characters = set;\n","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xBA, 0x10FB, 0x202F, 0x2071, 0x207F, 0x20F0, 0x2132, 0x214E, 0xA7D3, 0xA92E);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x363, 0x36F).addRange(0x485, 0x486).addRange(0x951, 0x952).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA700, 0xA707).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nexports.characters = set;\n","const set = require('regenerate')(0x965, 0x1940);\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10107, 0x10133).addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F);\nexports.characters = set;\n","const set = require('regenerate')(0x11FB0);\nset.addRange(0xA4D0, 0xA4FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10280, 0x1029C);\nexports.characters = set;\n","const set = require('regenerate')(0x1093F);\nset.addRange(0x10920, 0x10939);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x96F).addRange(0xA830, 0xA839).addRange(0x11150, 0x11176);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11EE0, 0x11EF8);\nexports.characters = set;\n","const set = require('regenerate')(0x1CDA, 0x1CF2);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F).addRange(0xA830, 0xA832);\nexports.characters = set;\n","const set = require('regenerate')(0x640, 0x85E);\nset.addRange(0x840, 0x85B);\nexports.characters = set;\n","const set = require('regenerate')(0x640);\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nexports.characters = set;\n","const set = require('regenerate')(0x11D3A);\nset.addRange(0x964, 0x965).addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16E40, 0x16E9A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10980, 0x1099F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA830, 0xA839).addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nexports.characters = set;\n","const set = require('regenerate')(0x202F);\nset.addRange(0x1800, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nexports.characters = set;\n","const set = require('regenerate')(0x11288);\nset.addRange(0xA66, 0xA6F).addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nexports.characters = set;\n","const set = require('regenerate')(0xA92E);\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;\n","const set = require('regenerate')(0x1CE9, 0x1CF2, 0x1CFA);\nset.addRange(0x964, 0x965).addRange(0xCE6, 0xCEF).addRange(0xA830, 0xA835).addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nexports.characters = set;\n","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF).addRange(0xFD3E, 0xFD3F);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE1);\nset.addRange(0x1B170, 0x1B2FB);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1680, 0x169C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1C50, 0x1C7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A80, 0x10A9F);\nexports.characters = set;\n","const set = require('regenerate')(0x483);\nset.addRange(0x10350, 0x1037A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10F00, 0x10F27);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A60, 0x10A7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10C00, 0x10C48);\nexports.characters = set;\n","const set = require('regenerate')(0x640, 0x10AF2);\nset.addRange(0x10F70, 0x10F89);\nexports.characters = set;\n","const set = require('regenerate')(0x1CDA, 0x1CF2);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10860, 0x1087F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11AC0, 0x11AF8);\nexports.characters = set;\n","const set = require('regenerate')(0x1805);\nset.addRange(0x1802, 0x1803).addRange(0xA840, 0xA877);\nexports.characters = set;\n","const set = require('regenerate')(0x1091F);\nset.addRange(0x10900, 0x1091B);\nexports.characters = set;\n","const set = require('regenerate')(0x640);\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nexports.characters = set;\n","const set = require('regenerate')(0xA95F);\nset.addRange(0xA930, 0xA953);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nexports.characters = set;\n","const set = require('regenerate')(0x951, 0x1CD7, 0x1CD9, 0x1CE0, 0xA838);\nset.addRange(0x1CDC, 0x1CDD).addRange(0xA830, 0xA835).addRange(0x11180, 0x111DF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10450, 0x1047F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nexports.characters = set;\n","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6, 0x1CF2);\nset.addRange(0x964, 0x965).addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nexports.characters = set;\n","const set = require('regenerate')(0x640);\nset.addRange(0x10F30, 0x10F59);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11A50, 0x11AA2);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x965).addRange(0x9E6, 0x9EF).addRange(0xA800, 0xA82C);\nexports.characters = set;\n","const set = require('regenerate')(0x60C, 0x61F, 0x640, 0x670, 0x1DF8, 0x1DFA);\nset.addRange(0x61B, 0x61C).addRange(0x64B, 0x655).addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nexports.characters = set;\n","const set = require('regenerate')(0x171F);\nset.addRange(0x1700, 0x1715).addRange(0x1735, 0x1736);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1735, 0x1736).addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1040, 0x1049).addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nexports.characters = set;\n","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x1CDA, 0xA8F3, 0x11301, 0x11303, 0x11FFF);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x1133B, 0x1133C).addRange(0x11FC0, 0x11FF1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE0);\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nexports.characters = set;\n","const set = require('regenerate')(0xC5D, 0x1CDA, 0x1CF2);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nexports.characters = set;\n","const set = require('regenerate')(0x60C, 0x61F, 0xFDF2, 0xFDFD);\nset.addRange(0x61B, 0x61C).addRange(0x660, 0x669).addRange(0x780, 0x7B1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nexports.characters = set;\n","const set = require('regenerate')(0x2D7F);\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nexports.characters = set;\n","const set = require('regenerate')(0x1CF2);\nset.addRange(0x951, 0x952).addRange(0x964, 0x965).addRange(0xA830, 0xA839).addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E290, 0x1E2AE);\nexports.characters = set;\n","const set = require('regenerate')(0x1039F);\nset.addRange(0x10380, 0x1039D);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA500, 0xA62B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nexports.characters = set;\n","const set = require('regenerate')(0x1E2FF);\nset.addRange(0x1E2C0, 0x1E2F9);\nexports.characters = set;\n","const set = require('regenerate')(0x118FF);\nset.addRange(0x118A0, 0x118F2);\nexports.characters = set;\n","const set = require('regenerate')(0x60C, 0x61B, 0x61F);\nset.addRange(0x660, 0x669).addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nexports.characters = set;\n","const set = require('regenerate')(0x30FB);\nset.addRange(0x3001, 0x3002).addRange(0x3008, 0x3011).addRange(0x3014, 0x301B).addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6).addRange(0xFF61, 0xFF65);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11A00, 0x11A47);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E900, 0x1E94B).addRange(0x1E950, 0x1E959).addRange(0x1E95E, 0x1E95F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11700, 0x1171A).addRange(0x1171D, 0x1172B).addRange(0x11730, 0x11746);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x14400, 0x14646);\nexports.characters = set;\n","const set = require('regenerate')(0xFDCF, 0x1EE24, 0x1EE27, 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D, 0x1EE5F, 0x1EE64, 0x1EE7E);\nset.addRange(0x600, 0x604).addRange(0x606, 0x60B).addRange(0x60D, 0x61A).addRange(0x61C, 0x61E).addRange(0x620, 0x63F).addRange(0x641, 0x64A).addRange(0x656, 0x66F).addRange(0x671, 0x6DC).addRange(0x6DE, 0x6FF).addRange(0x750, 0x77F).addRange(0x870, 0x88E).addRange(0x890, 0x891).addRange(0x898, 0x8E1).addRange(0x8E3, 0x8FF).addRange(0xFB50, 0xFBC2).addRange(0xFBD3, 0xFD3D).addRange(0xFD40, 0xFD8F).addRange(0xFD92, 0xFDC7).addRange(0xFDF0, 0xFDFF).addRange(0xFE70, 0xFE74).addRange(0xFE76, 0xFEFC).addRange(0x10E60, 0x10E7E).addRange(0x10EFD, 0x10EFF).addRange(0x1EE00, 0x1EE03).addRange(0x1EE05, 0x1EE1F).addRange(0x1EE21, 0x1EE22).addRange(0x1EE29, 0x1EE32).addRange(0x1EE34, 0x1EE37).addRange(0x1EE4D, 0x1EE4F).addRange(0x1EE51, 0x1EE52).addRange(0x1EE61, 0x1EE62).addRange(0x1EE67, 0x1EE6A).addRange(0x1EE6C, 0x1EE72).addRange(0x1EE74, 0x1EE77).addRange(0x1EE79, 0x1EE7C).addRange(0x1EE80, 0x1EE89).addRange(0x1EE8B, 0x1EE9B).addRange(0x1EEA1, 0x1EEA3).addRange(0x1EEA5, 0x1EEA9).addRange(0x1EEAB, 0x1EEBB).addRange(0x1EEF0, 0x1EEF1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x531, 0x556).addRange(0x559, 0x58A).addRange(0x58D, 0x58F).addRange(0xFB13, 0xFB17);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B00, 0x10B35).addRange(0x10B39, 0x10B3F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1B00, 0x1B4C).addRange(0x1B50, 0x1B7E);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA6A0, 0xA6F7).addRange(0x16800, 0x16A38);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16AD0, 0x16AED).addRange(0x16AF0, 0x16AF5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1BC0, 0x1BF3).addRange(0x1BFC, 0x1BFF);\nexports.characters = set;\n","const set = require('regenerate')(0x9B2, 0x9D7);\nset.addRange(0x980, 0x983).addRange(0x985, 0x98C).addRange(0x98F, 0x990).addRange(0x993, 0x9A8).addRange(0x9AA, 0x9B0).addRange(0x9B6, 0x9B9).addRange(0x9BC, 0x9C4).addRange(0x9C7, 0x9C8).addRange(0x9CB, 0x9CE).addRange(0x9DC, 0x9DD).addRange(0x9DF, 0x9E3).addRange(0x9E6, 0x9FE);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11C00, 0x11C08).addRange(0x11C0A, 0x11C36).addRange(0x11C38, 0x11C45).addRange(0x11C50, 0x11C6C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2EA, 0x2EB).addRange(0x3105, 0x312F).addRange(0x31A0, 0x31BF);\nexports.characters = set;\n","const set = require('regenerate')(0x1107F);\nset.addRange(0x11000, 0x1104D).addRange(0x11052, 0x11075);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2800, 0x28FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1A00, 0x1A1B).addRange(0x1A1E, 0x1A1F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1740, 0x1753);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1400, 0x167F).addRange(0x18B0, 0x18F5).addRange(0x11AB0, 0x11ABF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x102A0, 0x102D0);\nexports.characters = set;\n","const set = require('regenerate')(0x1056F);\nset.addRange(0x10530, 0x10563);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11100, 0x11134).addRange(0x11136, 0x11147);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAA00, 0xAA36).addRange(0xAA40, 0xAA4D).addRange(0xAA50, 0xAA59).addRange(0xAA5C, 0xAA5F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x13A0, 0x13F5).addRange(0x13F8, 0x13FD).addRange(0xAB70, 0xABBF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10FB0, 0x10FCB);\nexports.characters = set;\n","const set = require('regenerate')(0xD7, 0xF7, 0x374, 0x37E, 0x385, 0x387, 0x605, 0x60C, 0x61B, 0x61F, 0x640, 0x6DD, 0x8E2, 0xE3F, 0x10FB, 0x1805, 0x1CD3, 0x1CE1, 0x1CFA, 0x3006, 0x30A0, 0x31EF, 0x32FF, 0xA92E, 0xA9CF, 0xAB5B, 0xFEFF, 0xFF70, 0x1D4A2, 0x1D4BB, 0x1D546, 0x1F7F0, 0xE0001);\nset.addRange(0x0, 0x40).addRange(0x5B, 0x60).addRange(0x7B, 0xA9).addRange(0xAB, 0xB9).addRange(0xBB, 0xBF).addRange(0x2B9, 0x2DF).addRange(0x2E5, 0x2E9).addRange(0x2EC, 0x2FF).addRange(0x964, 0x965).addRange(0xFD5, 0xFD8).addRange(0x16EB, 0x16ED).addRange(0x1735, 0x1736).addRange(0x1802, 0x1803).addRange(0x1CE9, 0x1CEC).addRange(0x1CEE, 0x1CF3).addRange(0x1CF5, 0x1CF7).addRange(0x2000, 0x200B).addRange(0x200E, 0x2064).addRange(0x2066, 0x2070).addRange(0x2074, 0x207E).addRange(0x2080, 0x208E).addRange(0x20A0, 0x20C0).addRange(0x2100, 0x2125).addRange(0x2127, 0x2129).addRange(0x212C, 0x2131).addRange(0x2133, 0x214D).addRange(0x214F, 0x215F).addRange(0x2189, 0x218B).addRange(0x2190, 0x2426).addRange(0x2440, 0x244A).addRange(0x2460, 0x27FF).addRange(0x2900, 0x2B73).addRange(0x2B76, 0x2B95).addRange(0x2B97, 0x2BFF).addRange(0x2E00, 0x2E5D).addRange(0x2FF0, 0x3004).addRange(0x3008, 0x3020).addRange(0x3030, 0x3037).addRange(0x303C, 0x303F).addRange(0x309B, 0x309C).addRange(0x30FB, 0x30FC).addRange(0x3190, 0x319F).addRange(0x31C0, 0x31E3).addRange(0x3220, 0x325F).addRange(0x327F, 0x32CF).addRange(0x3358, 0x33FF).addRange(0x4DC0, 0x4DFF).addRange(0xA700, 0xA721).addRange(0xA788, 0xA78A).addRange(0xA830, 0xA839).addRange(0xAB6A, 0xAB6B);\nset.addRange(0xFD3E, 0xFD3F).addRange(0xFE10, 0xFE19).addRange(0xFE30, 0xFE52).addRange(0xFE54, 0xFE66).addRange(0xFE68, 0xFE6B).addRange(0xFF01, 0xFF20).addRange(0xFF3B, 0xFF40).addRange(0xFF5B, 0xFF65).addRange(0xFF9E, 0xFF9F).addRange(0xFFE0, 0xFFE6).addRange(0xFFE8, 0xFFEE).addRange(0xFFF9, 0xFFFD).addRange(0x10100, 0x10102).addRange(0x10107, 0x10133).addRange(0x10137, 0x1013F).addRange(0x10190, 0x1019C).addRange(0x101D0, 0x101FC).addRange(0x102E1, 0x102FB).addRange(0x1BCA0, 0x1BCA3).addRange(0x1CF50, 0x1CFC3).addRange(0x1D000, 0x1D0F5).addRange(0x1D100, 0x1D126).addRange(0x1D129, 0x1D166).addRange(0x1D16A, 0x1D17A).addRange(0x1D183, 0x1D184).addRange(0x1D18C, 0x1D1A9).addRange(0x1D1AE, 0x1D1EA).addRange(0x1D2C0, 0x1D2D3).addRange(0x1D2E0, 0x1D2F3).addRange(0x1D300, 0x1D356).addRange(0x1D360, 0x1D378).addRange(0x1D400, 0x1D454).addRange(0x1D456, 0x1D49C).addRange(0x1D49E, 0x1D49F).addRange(0x1D4A5, 0x1D4A6).addRange(0x1D4A9, 0x1D4AC).addRange(0x1D4AE, 0x1D4B9).addRange(0x1D4BD, 0x1D4C3).addRange(0x1D4C5, 0x1D505).addRange(0x1D507, 0x1D50A).addRange(0x1D50D, 0x1D514).addRange(0x1D516, 0x1D51C).addRange(0x1D51E, 0x1D539).addRange(0x1D53B, 0x1D53E).addRange(0x1D540, 0x1D544).addRange(0x1D54A, 0x1D550).addRange(0x1D552, 0x1D6A5).addRange(0x1D6A8, 0x1D7CB).addRange(0x1D7CE, 0x1D7FF).addRange(0x1EC71, 0x1ECB4).addRange(0x1ED01, 0x1ED3D);\nset.addRange(0x1F000, 0x1F02B).addRange(0x1F030, 0x1F093).addRange(0x1F0A0, 0x1F0AE).addRange(0x1F0B1, 0x1F0BF).addRange(0x1F0C1, 0x1F0CF).addRange(0x1F0D1, 0x1F0F5).addRange(0x1F100, 0x1F1AD).addRange(0x1F1E6, 0x1F1FF).addRange(0x1F201, 0x1F202).addRange(0x1F210, 0x1F23B).addRange(0x1F240, 0x1F248).addRange(0x1F250, 0x1F251).addRange(0x1F260, 0x1F265).addRange(0x1F300, 0x1F6D7).addRange(0x1F6DC, 0x1F6EC).addRange(0x1F6F0, 0x1F6FC).addRange(0x1F700, 0x1F776).addRange(0x1F77B, 0x1F7D9).addRange(0x1F7E0, 0x1F7EB).addRange(0x1F800, 0x1F80B).addRange(0x1F810, 0x1F847).addRange(0x1F850, 0x1F859).addRange(0x1F860, 0x1F887).addRange(0x1F890, 0x1F8AD).addRange(0x1F8B0, 0x1F8B1).addRange(0x1F900, 0x1FA53).addRange(0x1FA60, 0x1FA6D).addRange(0x1FA70, 0x1FA7C).addRange(0x1FA80, 0x1FA88).addRange(0x1FA90, 0x1FABD).addRange(0x1FABF, 0x1FAC5).addRange(0x1FACE, 0x1FADB).addRange(0x1FAE0, 0x1FAE8).addRange(0x1FAF0, 0x1FAF8).addRange(0x1FB00, 0x1FB92).addRange(0x1FB94, 0x1FBCA).addRange(0x1FBF0, 0x1FBF9).addRange(0xE0020, 0xE007F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x3E2, 0x3EF).addRange(0x2C80, 0x2CF3).addRange(0x2CF9, 0x2CFF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x12000, 0x12399).addRange(0x12400, 0x1246E).addRange(0x12470, 0x12474).addRange(0x12480, 0x12543);\nexports.characters = set;\n","const set = require('regenerate')(0x10808, 0x1083C, 0x1083F);\nset.addRange(0x10800, 0x10805).addRange(0x1080A, 0x10835).addRange(0x10837, 0x10838);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x12F90, 0x12FF2);\nexports.characters = set;\n","const set = require('regenerate')(0x1D2B, 0x1D78, 0x1E08F);\nset.addRange(0x400, 0x484).addRange(0x487, 0x52F).addRange(0x1C80, 0x1C88).addRange(0x2DE0, 0x2DFF).addRange(0xA640, 0xA69F).addRange(0xFE2E, 0xFE2F).addRange(0x1E030, 0x1E06D);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10400, 0x1044F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x900, 0x950).addRange(0x955, 0x963).addRange(0x966, 0x97F).addRange(0xA8E0, 0xA8FF).addRange(0x11B00, 0x11B09);\nexports.characters = set;\n","const set = require('regenerate')(0x11909);\nset.addRange(0x11900, 0x11906).addRange(0x1190C, 0x11913).addRange(0x11915, 0x11916).addRange(0x11918, 0x11935).addRange(0x11937, 0x11938).addRange(0x1193B, 0x11946).addRange(0x11950, 0x11959);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11800, 0x1183B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1BC00, 0x1BC6A).addRange(0x1BC70, 0x1BC7C).addRange(0x1BC80, 0x1BC88).addRange(0x1BC90, 0x1BC99).addRange(0x1BC9C, 0x1BC9F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x13000, 0x13455);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10500, 0x10527);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10FE0, 0x10FF6);\nexports.characters = set;\n","const set = require('regenerate')(0x1258, 0x12C0);\nset.addRange(0x1200, 0x1248).addRange(0x124A, 0x124D).addRange(0x1250, 0x1256).addRange(0x125A, 0x125D).addRange(0x1260, 0x1288).addRange(0x128A, 0x128D).addRange(0x1290, 0x12B0).addRange(0x12B2, 0x12B5).addRange(0x12B8, 0x12BE).addRange(0x12C2, 0x12C5).addRange(0x12C8, 0x12D6).addRange(0x12D8, 0x1310).addRange(0x1312, 0x1315).addRange(0x1318, 0x135A).addRange(0x135D, 0x137C).addRange(0x1380, 0x1399).addRange(0x2D80, 0x2D96).addRange(0x2DA0, 0x2DA6).addRange(0x2DA8, 0x2DAE).addRange(0x2DB0, 0x2DB6).addRange(0x2DB8, 0x2DBE).addRange(0x2DC0, 0x2DC6).addRange(0x2DC8, 0x2DCE).addRange(0x2DD0, 0x2DD6).addRange(0x2DD8, 0x2DDE).addRange(0xAB01, 0xAB06).addRange(0xAB09, 0xAB0E).addRange(0xAB11, 0xAB16).addRange(0xAB20, 0xAB26).addRange(0xAB28, 0xAB2E).addRange(0x1E7E0, 0x1E7E6).addRange(0x1E7E8, 0x1E7EB).addRange(0x1E7ED, 0x1E7EE).addRange(0x1E7F0, 0x1E7FE);\nexports.characters = set;\n","const set = require('regenerate')(0x10C7, 0x10CD, 0x2D27, 0x2D2D);\nset.addRange(0x10A0, 0x10C5).addRange(0x10D0, 0x10FA).addRange(0x10FC, 0x10FF).addRange(0x1C90, 0x1CBA).addRange(0x1CBD, 0x1CBF).addRange(0x2D00, 0x2D25);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x2C00, 0x2C5F).addRange(0x1E000, 0x1E006).addRange(0x1E008, 0x1E018).addRange(0x1E01B, 0x1E021).addRange(0x1E023, 0x1E024).addRange(0x1E026, 0x1E02A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10330, 0x1034A);\nexports.characters = set;\n","const set = require('regenerate')(0x11350, 0x11357);\nset.addRange(0x11300, 0x11303).addRange(0x11305, 0x1130C).addRange(0x1130F, 0x11310).addRange(0x11313, 0x11328).addRange(0x1132A, 0x11330).addRange(0x11332, 0x11333).addRange(0x11335, 0x11339).addRange(0x1133C, 0x11344).addRange(0x11347, 0x11348).addRange(0x1134B, 0x1134D).addRange(0x1135D, 0x11363).addRange(0x11366, 0x1136C).addRange(0x11370, 0x11374);\nexports.characters = set;\n","const set = require('regenerate')(0x37F, 0x384, 0x386, 0x38C, 0x1DBF, 0x1F59, 0x1F5B, 0x1F5D, 0x2126, 0xAB65, 0x101A0);\nset.addRange(0x370, 0x373).addRange(0x375, 0x377).addRange(0x37A, 0x37D).addRange(0x388, 0x38A).addRange(0x38E, 0x3A1).addRange(0x3A3, 0x3E1).addRange(0x3F0, 0x3FF).addRange(0x1D26, 0x1D2A).addRange(0x1D5D, 0x1D61).addRange(0x1D66, 0x1D6A).addRange(0x1F00, 0x1F15).addRange(0x1F18, 0x1F1D).addRange(0x1F20, 0x1F45).addRange(0x1F48, 0x1F4D).addRange(0x1F50, 0x1F57).addRange(0x1F5F, 0x1F7D).addRange(0x1F80, 0x1FB4).addRange(0x1FB6, 0x1FC4).addRange(0x1FC6, 0x1FD3).addRange(0x1FD6, 0x1FDB).addRange(0x1FDD, 0x1FEF).addRange(0x1FF2, 0x1FF4).addRange(0x1FF6, 0x1FFE).addRange(0x10140, 0x1018E).addRange(0x1D200, 0x1D245);\nexports.characters = set;\n","const set = require('regenerate')(0xAD0);\nset.addRange(0xA81, 0xA83).addRange(0xA85, 0xA8D).addRange(0xA8F, 0xA91).addRange(0xA93, 0xAA8).addRange(0xAAA, 0xAB0).addRange(0xAB2, 0xAB3).addRange(0xAB5, 0xAB9).addRange(0xABC, 0xAC5).addRange(0xAC7, 0xAC9).addRange(0xACB, 0xACD).addRange(0xAE0, 0xAE3).addRange(0xAE6, 0xAF1).addRange(0xAF9, 0xAFF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11D60, 0x11D65).addRange(0x11D67, 0x11D68).addRange(0x11D6A, 0x11D8E).addRange(0x11D90, 0x11D91).addRange(0x11D93, 0x11D98).addRange(0x11DA0, 0x11DA9);\nexports.characters = set;\n","const set = require('regenerate')(0xA3C, 0xA51, 0xA5E);\nset.addRange(0xA01, 0xA03).addRange(0xA05, 0xA0A).addRange(0xA0F, 0xA10).addRange(0xA13, 0xA28).addRange(0xA2A, 0xA30).addRange(0xA32, 0xA33).addRange(0xA35, 0xA36).addRange(0xA38, 0xA39).addRange(0xA3E, 0xA42).addRange(0xA47, 0xA48).addRange(0xA4B, 0xA4D).addRange(0xA59, 0xA5C).addRange(0xA66, 0xA76);\nexports.characters = set;\n","const set = require('regenerate')(0x3005, 0x3007);\nset.addRange(0x2E80, 0x2E99).addRange(0x2E9B, 0x2EF3).addRange(0x2F00, 0x2FD5).addRange(0x3021, 0x3029).addRange(0x3038, 0x303B).addRange(0x3400, 0x4DBF).addRange(0x4E00, 0x9FFF).addRange(0xF900, 0xFA6D).addRange(0xFA70, 0xFAD9).addRange(0x16FE2, 0x16FE3).addRange(0x16FF0, 0x16FF1).addRange(0x20000, 0x2A6DF).addRange(0x2A700, 0x2B739).addRange(0x2B740, 0x2B81D).addRange(0x2B820, 0x2CEA1).addRange(0x2CEB0, 0x2EBE0).addRange(0x2EBF0, 0x2EE5D).addRange(0x2F800, 0x2FA1D).addRange(0x30000, 0x3134A).addRange(0x31350, 0x323AF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1100, 0x11FF).addRange(0x302E, 0x302F).addRange(0x3131, 0x318E).addRange(0x3200, 0x321E).addRange(0x3260, 0x327E).addRange(0xA960, 0xA97C).addRange(0xAC00, 0xD7A3).addRange(0xD7B0, 0xD7C6).addRange(0xD7CB, 0xD7FB).addRange(0xFFA0, 0xFFBE).addRange(0xFFC2, 0xFFC7).addRange(0xFFCA, 0xFFCF).addRange(0xFFD2, 0xFFD7).addRange(0xFFDA, 0xFFDC);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10D00, 0x10D27).addRange(0x10D30, 0x10D39);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1720, 0x1734);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x108E0, 0x108F2).addRange(0x108F4, 0x108F5).addRange(0x108FB, 0x108FF);\nexports.characters = set;\n","const set = require('regenerate')(0xFB3E);\nset.addRange(0x591, 0x5C7).addRange(0x5D0, 0x5EA).addRange(0x5EF, 0x5F4).addRange(0xFB1D, 0xFB36).addRange(0xFB38, 0xFB3C).addRange(0xFB40, 0xFB41).addRange(0xFB43, 0xFB44).addRange(0xFB46, 0xFB4F);\nexports.characters = set;\n","const set = require('regenerate')(0x1B132, 0x1F200);\nset.addRange(0x3041, 0x3096).addRange(0x309D, 0x309F).addRange(0x1B001, 0x1B11F).addRange(0x1B150, 0x1B152);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10840, 0x10855).addRange(0x10857, 0x1085F);\nexports.characters = set;\n","const set = require('regenerate')(0x670, 0x1CED, 0x1CF4, 0x101FD, 0x102E0, 0x1133B);\nset.addRange(0x300, 0x36F).addRange(0x485, 0x486).addRange(0x64B, 0x655).addRange(0x951, 0x954).addRange(0x1AB0, 0x1ACE).addRange(0x1CD0, 0x1CD2).addRange(0x1CD4, 0x1CE0).addRange(0x1CE2, 0x1CE8).addRange(0x1CF8, 0x1CF9).addRange(0x1DC0, 0x1DFF).addRange(0x200C, 0x200D).addRange(0x20D0, 0x20F0).addRange(0x302A, 0x302D).addRange(0x3099, 0x309A).addRange(0xFE00, 0xFE0F).addRange(0xFE20, 0xFE2D).addRange(0x1CF00, 0x1CF2D).addRange(0x1CF30, 0x1CF46).addRange(0x1D167, 0x1D169).addRange(0x1D17B, 0x1D182).addRange(0x1D185, 0x1D18B).addRange(0x1D1AA, 0x1D1AD).addRange(0xE0100, 0xE01EF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B60, 0x10B72).addRange(0x10B78, 0x10B7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B40, 0x10B55).addRange(0x10B58, 0x10B5F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA980, 0xA9CD).addRange(0xA9D0, 0xA9D9).addRange(0xA9DE, 0xA9DF);\nexports.characters = set;\n","const set = require('regenerate')(0x110CD);\nset.addRange(0x11080, 0x110C2);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xC80, 0xC8C).addRange(0xC8E, 0xC90).addRange(0xC92, 0xCA8).addRange(0xCAA, 0xCB3).addRange(0xCB5, 0xCB9).addRange(0xCBC, 0xCC4).addRange(0xCC6, 0xCC8).addRange(0xCCA, 0xCCD).addRange(0xCD5, 0xCD6).addRange(0xCDD, 0xCDE).addRange(0xCE0, 0xCE3).addRange(0xCE6, 0xCEF).addRange(0xCF1, 0xCF3);\nexports.characters = set;\n","const set = require('regenerate')(0x1B000, 0x1B155);\nset.addRange(0x30A1, 0x30FA).addRange(0x30FD, 0x30FF).addRange(0x31F0, 0x31FF).addRange(0x32D0, 0x32FE).addRange(0x3300, 0x3357).addRange(0xFF66, 0xFF6F).addRange(0xFF71, 0xFF9D).addRange(0x1AFF0, 0x1AFF3).addRange(0x1AFF5, 0x1AFFB).addRange(0x1AFFD, 0x1AFFE).addRange(0x1B120, 0x1B122).addRange(0x1B164, 0x1B167);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11F00, 0x11F10).addRange(0x11F12, 0x11F3A).addRange(0x11F3E, 0x11F59);\nexports.characters = set;\n","const set = require('regenerate')(0xA92F);\nset.addRange(0xA900, 0xA92D);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A00, 0x10A03).addRange(0x10A05, 0x10A06).addRange(0x10A0C, 0x10A13).addRange(0x10A15, 0x10A17).addRange(0x10A19, 0x10A35).addRange(0x10A38, 0x10A3A).addRange(0x10A3F, 0x10A48).addRange(0x10A50, 0x10A58);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE4);\nset.addRange(0x18B00, 0x18CD5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1780, 0x17DD).addRange(0x17E0, 0x17E9).addRange(0x17F0, 0x17F9).addRange(0x19E0, 0x19FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11200, 0x11211).addRange(0x11213, 0x11241);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x112B0, 0x112EA).addRange(0x112F0, 0x112F9);\nexports.characters = set;\n","const set = require('regenerate')(0xE84, 0xEA5, 0xEC6);\nset.addRange(0xE81, 0xE82).addRange(0xE86, 0xE8A).addRange(0xE8C, 0xEA3).addRange(0xEA7, 0xEBD).addRange(0xEC0, 0xEC4).addRange(0xEC8, 0xECE).addRange(0xED0, 0xED9).addRange(0xEDC, 0xEDF);\nexports.characters = set;\n","const set = require('regenerate')(0xAA, 0xBA, 0x2071, 0x207F, 0x2132, 0x214E, 0xA7D3);\nset.addRange(0x41, 0x5A).addRange(0x61, 0x7A).addRange(0xC0, 0xD6).addRange(0xD8, 0xF6).addRange(0xF8, 0x2B8).addRange(0x2E0, 0x2E4).addRange(0x1D00, 0x1D25).addRange(0x1D2C, 0x1D5C).addRange(0x1D62, 0x1D65).addRange(0x1D6B, 0x1D77).addRange(0x1D79, 0x1DBE).addRange(0x1E00, 0x1EFF).addRange(0x2090, 0x209C).addRange(0x212A, 0x212B).addRange(0x2160, 0x2188).addRange(0x2C60, 0x2C7F).addRange(0xA722, 0xA787).addRange(0xA78B, 0xA7CA).addRange(0xA7D0, 0xA7D1).addRange(0xA7D5, 0xA7D9).addRange(0xA7F2, 0xA7FF).addRange(0xAB30, 0xAB5A).addRange(0xAB5C, 0xAB64).addRange(0xAB66, 0xAB69).addRange(0xFB00, 0xFB06).addRange(0xFF21, 0xFF3A).addRange(0xFF41, 0xFF5A).addRange(0x10780, 0x10785).addRange(0x10787, 0x107B0).addRange(0x107B2, 0x107BA).addRange(0x1DF00, 0x1DF1E).addRange(0x1DF25, 0x1DF2A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1C00, 0x1C37).addRange(0x1C3B, 0x1C49).addRange(0x1C4D, 0x1C4F);\nexports.characters = set;\n","const set = require('regenerate')(0x1940);\nset.addRange(0x1900, 0x191E).addRange(0x1920, 0x192B).addRange(0x1930, 0x193B).addRange(0x1944, 0x194F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10600, 0x10736).addRange(0x10740, 0x10755).addRange(0x10760, 0x10767);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10000, 0x1000B).addRange(0x1000D, 0x10026).addRange(0x10028, 0x1003A).addRange(0x1003C, 0x1003D).addRange(0x1003F, 0x1004D).addRange(0x10050, 0x1005D).addRange(0x10080, 0x100FA);\nexports.characters = set;\n","const set = require('regenerate')(0x11FB0);\nset.addRange(0xA4D0, 0xA4FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10280, 0x1029C);\nexports.characters = set;\n","const set = require('regenerate')(0x1093F);\nset.addRange(0x10920, 0x10939);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11150, 0x11176);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11EE0, 0x11EF8);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xD00, 0xD0C).addRange(0xD0E, 0xD10).addRange(0xD12, 0xD44).addRange(0xD46, 0xD48).addRange(0xD4A, 0xD4F).addRange(0xD54, 0xD63).addRange(0xD66, 0xD7F);\nexports.characters = set;\n","const set = require('regenerate')(0x85E);\nset.addRange(0x840, 0x85B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10AC0, 0x10AE6).addRange(0x10AEB, 0x10AF6);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11C70, 0x11C8F).addRange(0x11C92, 0x11CA7).addRange(0x11CA9, 0x11CB6);\nexports.characters = set;\n","const set = require('regenerate')(0x11D3A);\nset.addRange(0x11D00, 0x11D06).addRange(0x11D08, 0x11D09).addRange(0x11D0B, 0x11D36).addRange(0x11D3C, 0x11D3D).addRange(0x11D3F, 0x11D47).addRange(0x11D50, 0x11D59);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16E40, 0x16E9A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAAE0, 0xAAF6).addRange(0xABC0, 0xABED).addRange(0xABF0, 0xABF9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E800, 0x1E8C4).addRange(0x1E8C7, 0x1E8D6);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x109A0, 0x109B7).addRange(0x109BC, 0x109CF).addRange(0x109D2, 0x109FF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10980, 0x1099F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16F00, 0x16F4A).addRange(0x16F4F, 0x16F87).addRange(0x16F8F, 0x16F9F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11600, 0x11644).addRange(0x11650, 0x11659);\nexports.characters = set;\n","const set = require('regenerate')(0x1804);\nset.addRange(0x1800, 0x1801).addRange(0x1806, 0x1819).addRange(0x1820, 0x1878).addRange(0x1880, 0x18AA).addRange(0x11660, 0x1166C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A40, 0x16A5E).addRange(0x16A60, 0x16A69).addRange(0x16A6E, 0x16A6F);\nexports.characters = set;\n","const set = require('regenerate')(0x11288);\nset.addRange(0x11280, 0x11286).addRange(0x1128A, 0x1128D).addRange(0x1128F, 0x1129D).addRange(0x1129F, 0x112A9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1000, 0x109F).addRange(0xA9E0, 0xA9FE).addRange(0xAA60, 0xAA7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10880, 0x1089E).addRange(0x108A7, 0x108AF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E4D0, 0x1E4F9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x119A0, 0x119A7).addRange(0x119AA, 0x119D7).addRange(0x119DA, 0x119E4);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1980, 0x19AB).addRange(0x19B0, 0x19C9).addRange(0x19D0, 0x19DA).addRange(0x19DE, 0x19DF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11400, 0x1145B).addRange(0x1145D, 0x11461);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x7C0, 0x7FA).addRange(0x7FD, 0x7FF);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE1);\nset.addRange(0x1B170, 0x1B2FB);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E100, 0x1E12C).addRange(0x1E130, 0x1E13D).addRange(0x1E140, 0x1E149).addRange(0x1E14E, 0x1E14F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1680, 0x169C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1C50, 0x1C7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10C80, 0x10CB2).addRange(0x10CC0, 0x10CF2).addRange(0x10CFA, 0x10CFF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10300, 0x10323).addRange(0x1032D, 0x1032F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A80, 0x10A9F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10350, 0x1037A);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x103A0, 0x103C3).addRange(0x103C8, 0x103D5);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10F00, 0x10F27);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10A60, 0x10A7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10C00, 0x10C48);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10F70, 0x10F89);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xB01, 0xB03).addRange(0xB05, 0xB0C).addRange(0xB0F, 0xB10).addRange(0xB13, 0xB28).addRange(0xB2A, 0xB30).addRange(0xB32, 0xB33).addRange(0xB35, 0xB39).addRange(0xB3C, 0xB44).addRange(0xB47, 0xB48).addRange(0xB4B, 0xB4D).addRange(0xB55, 0xB57).addRange(0xB5C, 0xB5D).addRange(0xB5F, 0xB63).addRange(0xB66, 0xB77);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x104B0, 0x104D3).addRange(0x104D8, 0x104FB);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10480, 0x1049D).addRange(0x104A0, 0x104A9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16B00, 0x16B45).addRange(0x16B50, 0x16B59).addRange(0x16B5B, 0x16B61).addRange(0x16B63, 0x16B77).addRange(0x16B7D, 0x16B8F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10860, 0x1087F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11AC0, 0x11AF8);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA840, 0xA877);\nexports.characters = set;\n","const set = require('regenerate')(0x1091F);\nset.addRange(0x10900, 0x1091B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10B80, 0x10B91).addRange(0x10B99, 0x10B9C).addRange(0x10BA9, 0x10BAF);\nexports.characters = set;\n","const set = require('regenerate')(0xA95F);\nset.addRange(0xA930, 0xA953);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A0, 0x16EA).addRange(0x16EE, 0x16F8);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x800, 0x82D).addRange(0x830, 0x83E);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA880, 0xA8C5).addRange(0xA8CE, 0xA8D9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11180, 0x111DF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10450, 0x1047F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11580, 0x115B5).addRange(0x115B8, 0x115DD);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1D800, 0x1DA8B).addRange(0x1DA9B, 0x1DA9F).addRange(0x1DAA1, 0x1DAAF);\nexports.characters = set;\n","const set = require('regenerate')(0xDBD, 0xDCA, 0xDD6);\nset.addRange(0xD81, 0xD83).addRange(0xD85, 0xD96).addRange(0xD9A, 0xDB1).addRange(0xDB3, 0xDBB).addRange(0xDC0, 0xDC6).addRange(0xDCF, 0xDD4).addRange(0xDD8, 0xDDF).addRange(0xDE6, 0xDEF).addRange(0xDF2, 0xDF4).addRange(0x111E1, 0x111F4);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10F30, 0x10F59);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x110D0, 0x110E8).addRange(0x110F0, 0x110F9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11A50, 0x11AA2);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1B80, 0x1BBF).addRange(0x1CC0, 0x1CC7);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA800, 0xA82C);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x700, 0x70D).addRange(0x70F, 0x74A).addRange(0x74D, 0x74F).addRange(0x860, 0x86A);\nexports.characters = set;\n","const set = require('regenerate')(0x171F);\nset.addRange(0x1700, 0x1715);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1760, 0x176C).addRange(0x176E, 0x1770).addRange(0x1772, 0x1773);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1950, 0x196D).addRange(0x1970, 0x1974);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1A20, 0x1A5E).addRange(0x1A60, 0x1A7C).addRange(0x1A7F, 0x1A89).addRange(0x1A90, 0x1A99).addRange(0x1AA0, 0x1AAD);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xAA80, 0xAAC2).addRange(0xAADB, 0xAADF);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11680, 0x116B9).addRange(0x116C0, 0x116C9);\nexports.characters = set;\n","const set = require('regenerate')(0xB9C, 0xBD0, 0xBD7, 0x11FFF);\nset.addRange(0xB82, 0xB83).addRange(0xB85, 0xB8A).addRange(0xB8E, 0xB90).addRange(0xB92, 0xB95).addRange(0xB99, 0xB9A).addRange(0xB9E, 0xB9F).addRange(0xBA3, 0xBA4).addRange(0xBA8, 0xBAA).addRange(0xBAE, 0xBB9).addRange(0xBBE, 0xBC2).addRange(0xBC6, 0xBC8).addRange(0xBCA, 0xBCD).addRange(0xBE6, 0xBFA).addRange(0x11FC0, 0x11FF1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x16A70, 0x16ABE).addRange(0x16AC0, 0x16AC9);\nexports.characters = set;\n","const set = require('regenerate')(0x16FE0);\nset.addRange(0x17000, 0x187F7).addRange(0x18800, 0x18AFF).addRange(0x18D00, 0x18D08);\nexports.characters = set;\n","const set = require('regenerate')(0xC5D);\nset.addRange(0xC00, 0xC0C).addRange(0xC0E, 0xC10).addRange(0xC12, 0xC28).addRange(0xC2A, 0xC39).addRange(0xC3C, 0xC44).addRange(0xC46, 0xC48).addRange(0xC4A, 0xC4D).addRange(0xC55, 0xC56).addRange(0xC58, 0xC5A).addRange(0xC60, 0xC63).addRange(0xC66, 0xC6F).addRange(0xC77, 0xC7F);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x780, 0x7B1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xE01, 0xE3A).addRange(0xE40, 0xE5B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xF00, 0xF47).addRange(0xF49, 0xF6C).addRange(0xF71, 0xF97).addRange(0xF99, 0xFBC).addRange(0xFBE, 0xFCC).addRange(0xFCE, 0xFD4).addRange(0xFD9, 0xFDA);\nexports.characters = set;\n","const set = require('regenerate')(0x2D7F);\nset.addRange(0x2D30, 0x2D67).addRange(0x2D6F, 0x2D70);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11480, 0x114C7).addRange(0x114D0, 0x114D9);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x1E290, 0x1E2AE);\nexports.characters = set;\n","const set = require('regenerate')(0x1039F);\nset.addRange(0x10380, 0x1039D);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA500, 0xA62B);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10570, 0x1057A).addRange(0x1057C, 0x1058A).addRange(0x1058C, 0x10592).addRange(0x10594, 0x10595).addRange(0x10597, 0x105A1).addRange(0x105A3, 0x105B1).addRange(0x105B3, 0x105B9).addRange(0x105BB, 0x105BC);\nexports.characters = set;\n","const set = require('regenerate')(0x1E2FF);\nset.addRange(0x1E2C0, 0x1E2F9);\nexports.characters = set;\n","const set = require('regenerate')(0x118FF);\nset.addRange(0x118A0, 0x118F2);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x10E80, 0x10EA9).addRange(0x10EAB, 0x10EAD).addRange(0x10EB0, 0x10EB1);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0xA000, 0xA48C).addRange(0xA490, 0xA4C6);\nexports.characters = set;\n","const set = require('regenerate')();\nset.addRange(0x11A00, 0x11A47);\nexports.characters = set;\n","module.exports = '15.1.0';\n","/*!\n * regjsgen 0.5.2\n * Copyright 2014-2020 Benjamin Tan \n * Available under the MIT license \n */\n;(function() {\n 'use strict';\n\n // Used to determine if values are of the language type `Object`.\n var objectTypes = {\n 'function': true,\n 'object': true\n };\n\n // Used as a reference to the global object.\n var root = (objectTypes[typeof window] && window) || this;\n\n // Detect free variable `exports`.\n var freeExports = objectTypes[typeof exports] && exports && !exports.nodeType && exports;\n\n // Detect free variable `module`.\n var hasFreeModule = objectTypes[typeof module] && module && !module.nodeType;\n\n // Detect free variable `global` from Node.js or Browserified code and use it as `root`.\n var freeGlobal = freeExports && hasFreeModule && typeof global == 'object' && global;\n if (freeGlobal && (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal)) {\n root = freeGlobal;\n }\n\n // Used to check objects for own properties.\n var hasOwnProperty = Object.prototype.hasOwnProperty;\n\n /*--------------------------------------------------------------------------*/\n\n // Generates a string based on the given code point.\n // Based on https://mths.be/fromcodepoint by @mathias.\n function fromCodePoint() {\n var codePoint = Number(arguments[0]);\n\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n Math.floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n\n if (codePoint <= 0xFFFF) {\n // BMP code point\n return String.fromCharCode(codePoint);\n } else {\n // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n var highSurrogate = (codePoint >> 10) + 0xD800;\n var lowSurrogate = (codePoint % 0x400) + 0xDC00;\n return String.fromCharCode(highSurrogate, lowSurrogate);\n }\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Ensures that nodes have the correct types.\n var assertTypeRegexMap = {};\n function assertType(type, expected) {\n if (expected.indexOf('|') == -1) {\n if (type == expected) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected type: ' + expected);\n }\n\n expected = hasOwnProperty.call(assertTypeRegexMap, expected)\n ? assertTypeRegexMap[expected]\n : (assertTypeRegexMap[expected] = RegExp('^(?:' + expected + ')$'));\n\n if (expected.test(type)) {\n return;\n }\n\n throw Error('Invalid node type: ' + type + '; expected types: ' + expected);\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Generates a regular expression string based on an AST.\n function generate(node) {\n var type = node.type;\n\n if (hasOwnProperty.call(generators, type)) {\n return generators[type](node);\n }\n\n throw Error('Invalid node type: ' + type);\n }\n\n // Constructs a string by concatentating the output of each term.\n function generateSequence(generator, terms, /* optional */ separator) {\n var i = -1,\n length = terms.length,\n result = '',\n term;\n\n while (++i < length) {\n term = terms[i];\n\n if (separator && i > 0) result += separator;\n\n // Ensure that `\\0` null escapes followed by number symbols are not\n // treated as backreferences.\n if (\n i + 1 < length &&\n terms[i].type == 'value' &&\n terms[i].kind == 'null' &&\n terms[i + 1].type == 'value' &&\n terms[i + 1].kind == 'symbol' &&\n terms[i + 1].codePoint >= 48 &&\n terms[i + 1].codePoint <= 57\n ) {\n result += '\\\\000';\n continue;\n }\n\n result += generator(term);\n }\n\n return result;\n }\n\n /*--------------------------------------------------------------------------*/\n\n function generateAlternative(node) {\n assertType(node.type, 'alternative');\n\n return generateSequence(generateTerm, node.body);\n }\n\n function generateAnchor(node) {\n assertType(node.type, 'anchor');\n\n switch (node.kind) {\n case 'start':\n return '^';\n case 'end':\n return '$';\n case 'boundary':\n return '\\\\b';\n case 'not-boundary':\n return '\\\\B';\n default:\n throw Error('Invalid assertion');\n }\n }\n\n var atomType = 'anchor|characterClass|characterClassEscape|dot|group|reference|unicodePropertyEscape|value';\n\n function generateAtom(node) {\n assertType(node.type, atomType);\n\n return generate(node);\n }\n\n function generateCharacterClass(node) {\n assertType(node.type, 'characterClass');\n\n var kind = node.kind;\n var separator = kind === 'intersection' ? '&&' : kind === 'subtraction' ? '--' : '';\n\n return '[' +\n (node.negative ? '^' : '') +\n generateSequence(generateClassAtom, node.body, separator) +\n ']';\n }\n\n function generateCharacterClassEscape(node) {\n assertType(node.type, 'characterClassEscape');\n\n return '\\\\' + node.value;\n }\n\n function generateCharacterClassRange(node) {\n assertType(node.type, 'characterClassRange');\n\n var min = node.min,\n max = node.max;\n\n if (min.type == 'characterClassRange' || max.type == 'characterClassRange') {\n throw Error('Invalid character class range');\n }\n\n return generateClassAtom(min) + '-' + generateClassAtom(max);\n }\n\n function generateClassAtom(node) {\n assertType(node.type, 'anchor|characterClass|characterClassEscape|characterClassRange|dot|value|unicodePropertyEscape|classStrings');\n\n return generate(node);\n }\n\n function generateClassStrings(node) {\n assertType(node.type, 'classStrings');\n\n return '\\\\q{' + generateSequence(generateClassString, node.strings, '|') + '}';\n }\n\n function generateClassString(node) {\n assertType(node.type, 'classString');\n\n return generateSequence(generate, node.characters);\n }\n\n function generateDisjunction(node) {\n assertType(node.type, 'disjunction');\n\n return generateSequence(generate, node.body, '|');\n }\n\n\n function generateDot(node) {\n assertType(node.type, 'dot');\n\n return '.';\n }\n\n function generateGroup(node) {\n assertType(node.type, 'group');\n\n var result = '';\n\n switch (node.behavior) {\n case 'normal':\n if (node.name) {\n result += '?<' + generateIdentifier(node.name) + '>';\n }\n break;\n case 'ignore':\n if (node.modifierFlags) {\n result += '?';\n if(node.modifierFlags.enabling) result += node.modifierFlags.enabling;\n if(node.modifierFlags.disabling) result += \"-\" + node.modifierFlags.disabling;\n result += ':';\n } else {\n result += '?:';\n }\n break;\n case 'lookahead':\n result += '?=';\n break;\n case 'negativeLookahead':\n result += '?!';\n break;\n case 'lookbehind':\n result += '?<=';\n break;\n case 'negativeLookbehind':\n result += '?';\n }\n\n throw new Error('Unknown reference type');\n }\n\n function generateTerm(node) {\n assertType(node.type, atomType + '|empty|quantifier');\n\n return generate(node);\n }\n\n function generateUnicodePropertyEscape(node) {\n assertType(node.type, 'unicodePropertyEscape');\n\n return '\\\\' + (node.negative ? 'P' : 'p') + '{' + node.value + '}';\n }\n\n function generateValue(node) {\n assertType(node.type, 'value');\n\n var kind = node.kind,\n codePoint = node.codePoint;\n\n if (typeof codePoint != 'number') {\n throw new Error('Invalid code point: ' + codePoint);\n }\n\n switch (kind) {\n case 'controlLetter':\n return '\\\\c' + fromCodePoint(codePoint + 64);\n case 'hexadecimalEscape':\n return '\\\\x' + ('00' + codePoint.toString(16).toUpperCase()).slice(-2);\n case 'identifier':\n return '\\\\' + fromCodePoint(codePoint);\n case 'null':\n return '\\\\' + codePoint;\n case 'octal':\n return '\\\\' + ('000' + codePoint.toString(8)).slice(-3);\n case 'singleEscape':\n switch (codePoint) {\n case 0x0008:\n return '\\\\b';\n case 0x0009:\n return '\\\\t';\n case 0x000A:\n return '\\\\n';\n case 0x000B:\n return '\\\\v';\n case 0x000C:\n return '\\\\f';\n case 0x000D:\n return '\\\\r';\n case 0x002D:\n return '\\\\-';\n default:\n throw Error('Invalid code point: ' + codePoint);\n }\n case 'symbol':\n return fromCodePoint(codePoint);\n case 'unicodeEscape':\n return '\\\\u' + ('0000' + codePoint.toString(16).toUpperCase()).slice(-4);\n case 'unicodeCodePointEscape':\n return '\\\\u{' + codePoint.toString(16).toUpperCase() + '}';\n default:\n throw Error('Unsupported node kind: ' + kind);\n }\n }\n\n /*--------------------------------------------------------------------------*/\n\n // Used to generate strings for each node type.\n var generators = {\n 'alternative': generateAlternative,\n 'anchor': generateAnchor,\n 'characterClass': generateCharacterClass,\n 'characterClassEscape': generateCharacterClassEscape,\n 'characterClassRange': generateCharacterClassRange,\n 'classStrings': generateClassStrings,\n 'disjunction': generateDisjunction,\n 'dot': generateDot,\n 'group': generateGroup,\n 'quantifier': generateQuantifier,\n 'reference': generateReference,\n 'unicodePropertyEscape': generateUnicodePropertyEscape,\n 'value': generateValue\n };\n\n /*--------------------------------------------------------------------------*/\n\n // Export regjsgen.\n var regjsgen = {\n 'generate': generate\n };\n\n // Some AMD build optimizers, like r.js, check for condition patterns like the following:\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n // Define as an anonymous module so it can be aliased through path mapping.\n define(function() {\n return regjsgen;\n });\n\n root.regjsgen = regjsgen;\n }\n // Check for `exports` after `define` in case a build optimizer adds an `exports` object.\n else if (freeExports && hasFreeModule) {\n // Export for CommonJS support.\n freeExports.generate = generate;\n }\n else {\n // Export to the global object.\n root.regjsgen = regjsgen;\n }\n}.call(this));\n","// regjsparser\n//\n// ==================================================================\n//\n// See ECMA-262 Standard: 15.10.1\n//\n// NOTE: The ECMA-262 standard uses the term \"Assertion\" for /^/. Here the\n// term \"Anchor\" is used.\n//\n// Pattern ::\n// Disjunction\n//\n// Disjunction ::\n// Alternative\n// Alternative | Disjunction\n//\n// Alternative ::\n// [empty]\n// Alternative Term\n//\n// Term ::\n// Anchor\n// Atom\n// Atom Quantifier\n//\n// Anchor ::\n// ^\n// $\n// \\ b\n// \\ B\n// ( ? = Disjunction )\n// ( ? ! Disjunction )\n// ( ? < = Disjunction )\n// ( ? < ! Disjunction )\n//\n// Quantifier ::\n// QuantifierPrefix\n// QuantifierPrefix ?\n//\n// QuantifierPrefix ::\n// *\n// +\n// ?\n// { DecimalDigits }\n// { DecimalDigits , }\n// { DecimalDigits , DecimalDigits }\n//\n// Atom ::\n// PatternCharacter\n// .\n// \\ AtomEscape\n// CharacterClass\n// ( GroupSpecifier Disjunction )\n// ( ? : Disjunction )\n//\n// PatternCharacter ::\n// SourceCharacter but not any of: ^ $ \\ . * + ? ( ) [ ] { } |\n//\n// AtomEscape ::\n// DecimalEscape\n// CharacterClassEscape\n// CharacterEscape\n// k GroupName\n//\n// CharacterEscape[U] ::\n// ControlEscape\n// c ControlLetter\n// HexEscapeSequence\n// RegExpUnicodeEscapeSequence[?U] (ES6)\n// IdentityEscape[?U]\n//\n// ControlEscape ::\n// one of f n r t v\n// ControlLetter ::\n// one of\n// a b c d e f g h i j k l m n o p q r s t u v w x y z\n// A B C D E F G H I J K L M N O P Q R S T U V W X Y Z\n//\n// IdentityEscape ::\n// SourceCharacter but not c\n//\n// DecimalEscape ::\n// DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n//\n// CharacterClassEscape ::\n// one of d D s S w W\n//\n// CharacterClass ::\n// [ [lookahead ∉ {^}] ClassRanges ]\n// [ ^ ClassRanges ]\n//\n// ClassRanges ::\n// [empty]\n// [~V] NonemptyClassRanges\n// [+V] ClassContents\n//\n// NonemptyClassRanges ::\n// ClassAtom\n// ClassAtom NonemptyClassRangesNoDash\n// ClassAtom - ClassAtom ClassRanges\n//\n// NonemptyClassRangesNoDash ::\n// ClassAtom\n// ClassAtomNoDash NonemptyClassRangesNoDash\n// ClassAtomNoDash - ClassAtom ClassRanges\n//\n// ClassAtom ::\n// -\n// ClassAtomNoDash\n//\n// ClassAtomNoDash ::\n// SourceCharacter but not one of \\ or ] or -\n// \\ ClassEscape\n//\n// ClassEscape ::\n// DecimalEscape\n// b\n// CharacterEscape\n// CharacterClassEscape\n//\n// GroupSpecifier ::\n// [empty]\n// ? GroupName\n//\n// GroupName ::\n// < RegExpIdentifierName >\n//\n// RegExpIdentifierName ::\n// RegExpIdentifierStart\n// RegExpIdentifierName RegExpIdentifierContinue\n//\n// RegExpIdentifierStart ::\n// UnicodeIDStart\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n//\n// RegExpIdentifierContinue ::\n// UnicodeIDContinue\n// $\n// _\n// \\ RegExpUnicodeEscapeSequence\n// \n// \n//\n// --------------------------------------------------------------\n// NOTE: The following productions refer to the \"set notation and\n// properties of strings\" proposal.\n// https://github.com/tc39/proposal-regexp-set-notation\n// --------------------------------------------------------------\n//\n// ClassContents ::\n// ClassUnion\n// ClassIntersection\n// ClassSubtraction\n//\n// ClassUnion ::\n// ClassRange ClassUnion?\n// ClassOperand ClassUnion?\n//\n// ClassIntersection ::\n// ClassOperand && [lookahead ≠ &] ClassOperand\n// ClassIntersection && [lookahead ≠ &] ClassOperand\n//\n// ClassSubtraction ::\n// ClassOperand -- ClassOperand\n// ClassSubtraction -- ClassOperand\n//\n// ClassOperand ::\n// ClassCharacter\n// ClassStrings\n// NestedClass\n//\n// NestedClass ::\n// [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n// [ ^ ClassRanges[+U,+V] ]\n// \\ CharacterClassEscape[+U, +V]\n//\n// ClassRange ::\n// ClassCharacter - ClassCharacter\n//\n// ClassCharacter ::\n// [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n// \\ CharacterEscape[+U]\n// \\ ClassHalfOfDouble\n// \\ b\n//\n// ClassSyntaxCharacter ::\n// one of ( ) [ ] { } / - \\ |\n//\n// ClassStrings ::\n// ( ClassString MoreClassStrings? )\n//\n// MoreClassStrings ::\n// | ClassString MoreClassStrings?\n//\n// ClassString ::\n// [empty]\n// NonEmptyClassString\n//\n// NonEmptyClassString ::\n// ClassCharacter NonEmptyClassString?\n//\n// ClassReservedDouble ::\n// one of && !! ## $$ %% ** ++ ,, .. :: ;; << == >> ?? @@ ^^ __ `` ~~\n//\n// ClassHalfOfDouble ::\n// one of & - ! # % , : ; < = > @ _ ` ~\n//\n// --------------------------------------------------------------\n// NOTE: The following productions refer to the\n// \"Regular Expression Pattern Modifiers for ECMAScript\" proposal.\n// https://github.com/tc39/proposal-regexp-modifiers\n// --------------------------------------------------------------\n//\n// Atom ::\n// ( ? RegularExpressionFlags : Disjunction )\n// ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction )\n//\n\n\"use strict\";\n(function() {\n\n var fromCodePoint = String.fromCodePoint || (function() {\n // Implementation taken from\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/fromCodePoint\n\n var stringFromCharCode = String.fromCharCode;\n var floor = Math.floor;\n\n return function fromCodePoint() {\n var MAX_SIZE = 0x4000;\n var codeUnits = [];\n var highSurrogate;\n var lowSurrogate;\n var index = -1;\n var length = arguments.length;\n if (!length) {\n return '';\n }\n var result = '';\n while (++index < length) {\n var codePoint = Number(arguments[index]);\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) != codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint);\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint);\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000;\n highSurrogate = (codePoint >> 10) + 0xD800;\n lowSurrogate = (codePoint % 0x400) + 0xDC00;\n codeUnits.push(highSurrogate, lowSurrogate);\n }\n if (index + 1 == length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits);\n codeUnits.length = 0;\n }\n }\n return result;\n };\n }());\n\n function parse(str, flags, features) {\n if (!features) {\n features = {};\n }\n function addRaw(node) {\n node.raw = str.substring(node.range[0], node.range[1]);\n return node;\n }\n\n function updateRawStart(node, start) {\n node.range[0] = start;\n return addRaw(node);\n }\n\n function createAnchor(kind, rawLength) {\n return addRaw({\n type: 'anchor',\n kind: kind,\n range: [\n pos - rawLength,\n pos\n ]\n });\n }\n\n function createValue(kind, codePoint, from, to) {\n return addRaw({\n type: 'value',\n kind: kind,\n codePoint: codePoint,\n range: [from, to]\n });\n }\n\n function createEscaped(kind, codePoint, value, fromOffset) {\n fromOffset = fromOffset || 0;\n return createValue(kind, codePoint, pos - (value.length + fromOffset), pos);\n }\n\n function createCharacter(matches) {\n var _char = matches[0];\n var first = _char.charCodeAt(0);\n if (isUnicodeMode) {\n var second;\n if (_char.length === 1 && first >= 0xD800 && first <= 0xDBFF) {\n second = lookahead().charCodeAt(0);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n pos++;\n return createValue(\n 'symbol',\n (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000,\n pos - 2, pos);\n }\n }\n }\n return createValue('symbol', first, pos - 1, pos);\n }\n\n function createDisjunction(alternatives, from, to) {\n return addRaw({\n type: 'disjunction',\n body: alternatives,\n range: [\n from,\n to\n ]\n });\n }\n\n function createDot() {\n return addRaw({\n type: 'dot',\n range: [\n pos - 1,\n pos\n ]\n });\n }\n\n function createCharacterClassEscape(value) {\n return addRaw({\n type: 'characterClassEscape',\n value: value,\n range: [\n pos - 2,\n pos\n ]\n });\n }\n\n function createReference(matchIndex) {\n return addRaw({\n type: 'reference',\n matchIndex: parseInt(matchIndex, 10),\n range: [\n pos - 1 - matchIndex.length,\n pos\n ]\n });\n }\n\n function createNamedReference(name) {\n return addRaw({\n type: 'reference',\n name: name,\n range: [\n name.range[0] - 3,\n pos\n ]\n });\n }\n\n function createGroup(behavior, disjunction, from, to) {\n return addRaw({\n type: 'group',\n behavior: behavior,\n body: disjunction,\n range: [\n from,\n to\n ]\n });\n }\n\n function createQuantifier(min, max, from, to, symbol) {\n if (to == null) {\n from = pos - 1;\n to = pos;\n }\n\n return addRaw({\n type: 'quantifier',\n min: min,\n max: max,\n greedy: true,\n body: null, // set later on\n symbol: symbol,\n range: [\n from,\n to\n ]\n });\n }\n\n function createAlternative(terms, from, to) {\n return addRaw({\n type: 'alternative',\n body: terms,\n range: [\n from,\n to\n ]\n });\n }\n\n function createCharacterClass(contents, negative, from, to) {\n return addRaw({\n type: 'characterClass',\n kind: contents.kind,\n body: contents.body,\n negative: negative,\n range: [\n from,\n to\n ]\n });\n }\n\n function createClassRange(min, max, from, to) {\n // See 15.10.2.15:\n if (min.codePoint > max.codePoint) {\n bail('invalid range in character class', min.raw + '-' + max.raw, from, to);\n }\n\n return addRaw({\n type: 'characterClassRange',\n min: min,\n max: max,\n range: [\n from,\n to\n ]\n });\n }\n\n function createClassStrings(strings, from, to) {\n return addRaw({\n type: 'classStrings',\n strings: strings,\n range: [from, to]\n });\n }\n\n function createClassString(characters, from, to) {\n return addRaw({\n type: 'classString',\n characters: characters,\n range: [from, to]\n });\n }\n\n function flattenBody(body) {\n if (body.type === 'alternative') {\n return body.body;\n } else {\n return [body];\n }\n }\n\n function incr(amount) {\n amount = (amount || 1);\n var res = str.substring(pos, pos + amount);\n pos += (amount || 1);\n return res;\n }\n\n function skip(value) {\n if (!match(value)) {\n bail('character', value);\n }\n }\n\n function match(value) {\n if (str.indexOf(value, pos) === pos) {\n return incr(value.length);\n }\n }\n\n function lookahead() {\n return str[pos];\n }\n\n function current(value) {\n return str.indexOf(value, pos) === pos;\n }\n\n function next(value) {\n return str[pos + 1] === value;\n }\n\n function matchReg(regExp) {\n var subStr = str.substring(pos);\n var res = subStr.match(regExp);\n if (res) {\n res.range = [];\n res.range[0] = pos;\n incr(res[0].length);\n res.range[1] = pos;\n }\n return res;\n }\n\n function parseDisjunction() {\n // Disjunction ::\n // Alternative\n // Alternative | Disjunction\n var res = [], from = pos;\n res.push(parseAlternative());\n\n while (match('|')) {\n res.push(parseAlternative());\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createDisjunction(res, from, pos);\n }\n\n function parseAlternative() {\n var res = [], from = pos;\n var term;\n\n // Alternative ::\n // [empty]\n // Alternative Term\n while (term = parseTerm()) {\n res.push(term);\n }\n\n if (res.length === 1) {\n return res[0];\n }\n\n return createAlternative(res, from, pos);\n }\n\n function parseTerm() {\n // Term ::\n // Anchor\n // Atom\n // Atom Quantifier\n\n if (pos >= str.length || current('|') || current(')')) {\n return null; /* Means: The term is empty */\n }\n\n var anchor = parseAnchor();\n\n if (anchor) {\n return anchor;\n }\n\n var atom = parseAtomAndExtendedAtom();\n var quantifier;\n if (!atom) {\n // Check if a quantifier is following. A quantifier without an atom\n // is an error.\n var pos_backup = pos\n quantifier = parseQuantifier() || false;\n if (quantifier) {\n pos = pos_backup\n bail('Expected atom');\n }\n\n // If no unicode flag, then try to parse ExtendedAtom -> ExtendedPatternCharacter.\n // ExtendedPatternCharacter\n var res;\n if (!isUnicodeMode && (res = matchReg(/^{/))) {\n atom = createCharacter(res);\n } else {\n bail('Expected atom');\n }\n }\n quantifier = parseQuantifier() || false;\n if (quantifier) {\n quantifier.body = flattenBody(atom);\n // The quantifier contains the atom. Therefore, the beginning of the\n // quantifier range is given by the beginning of the atom.\n updateRawStart(quantifier, atom.range[0]);\n return quantifier;\n }\n return atom;\n }\n\n function parseGroup(matchA, typeA, matchB, typeB) {\n var type = null, from = pos;\n\n if (match(matchA)) {\n type = typeA;\n } else if (match(matchB)) {\n type = typeB;\n } else {\n return false;\n }\n\n return finishGroup(type, from);\n }\n\n function finishGroup(type, from) {\n var body = parseDisjunction();\n if (!body) {\n bail('Expected disjunction');\n }\n skip(')');\n var group = createGroup(type, flattenBody(body), from, pos);\n\n if (type == 'normal') {\n // Keep track of the number of closed groups. This is required for\n // parseDecimalEscape(). In case the string is parsed a second time the\n // value already holds the total count and no incrementation is required.\n if (firstIteration) {\n closedCaptureCounter++;\n }\n }\n return group;\n }\n\n function parseAnchor() {\n // Anchor ::\n // ^\n // $\n // \\ b\n // \\ B\n // ( ? = Disjunction )\n // ( ? ! Disjunction )\n\n if (match('^')) {\n return createAnchor('start', 1 /* rawLength */);\n } else if (match('$')) {\n return createAnchor('end', 1 /* rawLength */);\n } else if (match('\\\\b')) {\n return createAnchor('boundary', 2 /* rawLength */);\n } else if (match('\\\\B')) {\n return createAnchor('not-boundary', 2 /* rawLength */);\n } else {\n return parseGroup('(?=', 'lookahead', '(?!', 'negativeLookahead');\n }\n }\n\n function parseQuantifier() {\n // Quantifier ::\n // QuantifierPrefix\n // QuantifierPrefix ?\n //\n // QuantifierPrefix ::\n // *\n // +\n // ?\n // { DecimalDigits }\n // { DecimalDigits , }\n // { DecimalDigits , DecimalDigits }\n\n var res, from = pos;\n var quantifier;\n var min, max;\n\n if (match('*')) {\n quantifier = createQuantifier(0, undefined, undefined, undefined, '*');\n }\n else if (match('+')) {\n quantifier = createQuantifier(1, undefined, undefined, undefined, \"+\");\n }\n else if (match('?')) {\n quantifier = createQuantifier(0, 1, undefined, undefined, \"?\");\n }\n else if (res = matchReg(/^\\{([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, min, res.range[0], res.range[1]);\n }\n else if (res = matchReg(/^\\{([0-9]+),\\}/)) {\n min = parseInt(res[1], 10);\n quantifier = createQuantifier(min, undefined, res.range[0], res.range[1]);\n }\n else if (res = matchReg(/^\\{([0-9]+),([0-9]+)\\}/)) {\n min = parseInt(res[1], 10);\n max = parseInt(res[2], 10);\n if (min > max) {\n bail('numbers out of order in {} quantifier', '', from, pos);\n }\n quantifier = createQuantifier(min, max, res.range[0], res.range[1]);\n }\n\n if ((min && !Number.isSafeInteger(min)) || (max && !Number.isSafeInteger(max))) {\n bail(\"iterations outside JS safe integer range in quantifier\", \"\", from, pos);\n }\n\n if (quantifier) {\n if (match('?')) {\n quantifier.greedy = false;\n quantifier.range[1] += 1;\n }\n }\n\n return quantifier;\n }\n\n function parseAtomAndExtendedAtom() {\n // Parsing Atom and ExtendedAtom together due to redundancy.\n // ExtendedAtom is defined in Apendix B of the ECMA-262 standard.\n //\n // SEE: https://www.ecma-international.org/ecma-262/10.0/index.html#prod-annexB-ExtendedPatternCharacter\n //\n // Atom ::\n // PatternCharacter\n // .\n // \\ AtomEscape\n // CharacterClass\n // ( GroupSpecifier Disjunction )\n // ( ? RegularExpressionFlags : Disjunction )\n // ( ? RegularExpressionFlags - RegularExpressionFlags : Disjunction )\n // ExtendedAtom ::\n // ExtendedPatternCharacter\n // ExtendedPatternCharacter ::\n // SourceCharacter but not one of ^$\\.*+?()[|\n\n var res;\n\n // jviereck: allow ']', '}' here as well to be compatible with browser's\n // implementations: ']'.match(/]/);\n if (res = matchReg(/^[^^$\\\\.*+?()[\\]{}|]/)) {\n // PatternCharacter\n return createCharacter(res);\n }\n else if (!isUnicodeMode && (res = matchReg(/^(?:]|})/))) {\n // ExtendedPatternCharacter, first part. See parseTerm.\n return createCharacter(res);\n }\n else if (match('.')) {\n // .\n return createDot();\n }\n else if (match('\\\\')) {\n // \\ AtomEscape\n res = parseAtomEscape();\n if (!res) {\n if (!isUnicodeMode && lookahead() == 'c') {\n // B.1.4 ExtendedAtom\n // \\[lookahead = c]\n return createValue('symbol', 92, pos - 1, pos);\n }\n bail('atomEscape');\n }\n return res;\n }\n else if (res = parseCharacterClass()) {\n return res;\n }\n else if (features.lookbehind && (res = parseGroup('(?<=', 'lookbehind', '(?\");\n var group = finishGroup(\"normal\", name.range[0] - 3);\n group.name = name;\n return group;\n }\n else if (features.modifiers && str.indexOf(\"(?\") == pos && str[pos+2] != \":\") {\n return parseModifiersGroup();\n }\n else {\n // ( Disjunction )\n // ( ? : Disjunction )\n return parseGroup('(?:', 'ignore', '(', 'normal');\n }\n }\n\n function parseModifiersGroup() {\n function hasDupChar(str) {\n var i = 0;\n while (i < str.length) {\n if (str.indexOf(str[i], i + 1) != -1) {\n return true;\n }\n i++;\n }\n return false;\n }\n\n var from = pos;\n incr(2);\n\n var enablingFlags = matchReg(/^[sim]+/);\n var disablingFlags;\n if(match(\"-\")){\n disablingFlags = matchReg(/^[sim]+/);\n if (!disablingFlags) {\n bail('Invalid flags for modifiers group');\n }\n } else if(!enablingFlags){\n bail('Invalid flags for modifiers group');\n }\n\n enablingFlags = enablingFlags ? enablingFlags[0] : \"\";\n disablingFlags = disablingFlags ? disablingFlags[0] : \"\";\n\n var flags = enablingFlags + disablingFlags;\n if(flags.length > 3 || hasDupChar(flags)) {\n bail('flags cannot be duplicated for modifiers group');\n }\n\n skip(\":\");\n\n var modifiersGroup = finishGroup(\"ignore\", from);\n\n modifiersGroup.modifierFlags = {\n enabling: enablingFlags,\n disabling: disablingFlags\n };\n\n return modifiersGroup;\n }\n\n function parseUnicodeSurrogatePairEscape(firstEscape) {\n if (isUnicodeMode) {\n var first, second;\n if (firstEscape.kind == 'unicodeEscape' &&\n (first = firstEscape.codePoint) >= 0xD800 && first <= 0xDBFF &&\n current('\\\\') && next('u') ) {\n var prevPos = pos;\n pos++;\n var secondEscape = parseClassEscape();\n if (secondEscape.kind == 'unicodeEscape' &&\n (second = secondEscape.codePoint) >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n firstEscape.range[1] = secondEscape.range[1];\n firstEscape.codePoint = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n firstEscape.type = 'value';\n firstEscape.kind = 'unicodeCodePointEscape';\n addRaw(firstEscape);\n }\n else {\n pos = prevPos;\n }\n }\n }\n return firstEscape;\n }\n\n function parseClassEscape() {\n return parseAtomEscape(true);\n }\n\n function parseAtomEscape(insideCharacterClass) {\n // AtomEscape ::\n // DecimalEscape\n // CharacterEscape\n // CharacterClassEscape\n // k GroupName\n\n var res, from = pos;\n\n res = parseDecimalEscape(insideCharacterClass) || parseNamedReference();\n if (res) {\n return res;\n }\n\n // For ClassEscape\n if (insideCharacterClass) {\n // b\n if (match('b')) {\n // 15.10.2.19\n // The production ClassEscape :: b evaluates by returning the\n // CharSet containing the one character (Unicode value 0008).\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of CharacterClass', '', from);\n } else if (!isUnicodeMode && (res = matchReg(/^c([0-9])/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = DecimalDigit\n return createEscaped('controlLetter', res[1] + 16, res[1], 2);\n } else if (!isUnicodeMode && (res = matchReg(/^c_/))) {\n // B.1.4\n // c ClassControlLetter, ClassControlLetter = _\n return createEscaped('controlLetter', 31, '_', 2);\n }\n // [+U] -\n if (isUnicodeMode && match('-')) {\n return createEscaped('singleEscape', 0x002d, '\\\\-');\n }\n }\n\n res = parseCharacterClassEscape() || parseCharacterEscape();\n\n return res;\n }\n\n\n function parseDecimalEscape(insideCharacterClass) {\n // DecimalEscape ::\n // DecimalIntegerLiteral [lookahead ∉ DecimalDigit]\n\n var res, match, from = pos;\n\n if (res = matchReg(/^(?!0)\\d+/)) {\n match = res[0];\n var refIdx = parseInt(res[0], 10);\n if (refIdx <= closedCaptureCounter && !insideCharacterClass) {\n // If the number is smaller than the normal-groups found so\n // far, then it is a reference...\n return createReference(res[0]);\n } else {\n // ... otherwise it needs to be interpreted as a octal (if the\n // number is in an octal format). If it is NOT octal format,\n // then the slash is ignored and the number is matched later\n // as normal characters.\n\n // Recall the negative decision to decide if the input must be parsed\n // a second time with the total normal-groups.\n backrefDenied.push(refIdx);\n\n // \\1 octal escapes are disallowed in unicode mode, but they might\n // be references to groups which haven't been parsed yet.\n // We must parse a second time to determine if \\1 is a reference\n // or an octal scape, and then we can report the error.\n if (firstIteration) {\n shouldReparse = true;\n } else {\n bailOctalEscapeIfUnicode(from, pos);\n }\n\n // Reset the position again, as maybe only parts of the previous\n // matched numbers are actual octal numbers. E.g. in '019' only\n // the '01' should be matched.\n incr(-res[0].length);\n if (res = matchReg(/^[0-7]{1,3}/)) {\n return createEscaped('octal', parseInt(res[0], 8), res[0], 1);\n } else {\n // If we end up here, we have a case like /\\91/. Then the\n // first slash is to be ignored and the 9 & 1 to be treated\n // like ordinary characters. Create a character for the\n // first number only here - other number-characters\n // (if available) will be matched later.\n res = createCharacter(matchReg(/^[89]/));\n return updateRawStart(res, res.range[0] - 1);\n }\n }\n }\n // Only allow octal numbers in the following. All matched numbers start\n // with a zero (if the do not, the previous if-branch is executed).\n // If the number is not octal format and starts with zero (e.g. `091`)\n // then only the zeros `0` is treated here and the `91` are ordinary\n // characters.\n // Example:\n // /\\091/.exec('\\091')[0].length === 3\n else if (res = matchReg(/^[0-7]{1,3}/)) {\n match = res[0];\n if (match !== '0') {\n bailOctalEscapeIfUnicode(from, pos);\n }\n if (/^0{1,3}$/.test(match)) {\n // If they are all zeros, then only take the first one.\n return createEscaped('null', 0x0000, '0', match.length);\n } else {\n return createEscaped('octal', parseInt(match, 8), match, 1);\n }\n }\n return false;\n }\n\n function bailOctalEscapeIfUnicode(from, pos) {\n if (isUnicodeMode) {\n bail(\"Invalid decimal escape in unicode mode\", null, from, pos);\n }\n }\n\n function parseCharacterClassEscape() {\n // CharacterClassEscape :: one of d D s S w W\n var res;\n if (res = matchReg(/^[dDsSwW]/)) {\n return createCharacterClassEscape(res[0]);\n } else if (features.unicodePropertyEscape && isUnicodeMode && (res = matchReg(/^([pP])\\{([^\\}]+)\\}/))) {\n // https://github.com/jviereck/regjsparser/issues/77\n return addRaw({\n type: 'unicodePropertyEscape',\n negative: res[1] === 'P',\n value: res[2],\n range: [res.range[0] - 1, res.range[1]],\n raw: res[0]\n });\n } else if (features.unicodeSet && hasUnicodeSetFlag && match('q{')) {\n return parseClassStrings();\n }\n return false;\n }\n\n function parseNamedReference() {\n if (features.namedGroups && matchReg(/^k<(?=.*?>)/)) {\n var name = parseIdentifier();\n skip('>');\n return createNamedReference(name);\n }\n }\n\n function parseRegExpUnicodeEscapeSequence() {\n var res;\n if (res = matchReg(/^u([0-9a-fA-F]{4})/)) {\n // UnicodeEscapeSequence\n return parseUnicodeSurrogatePairEscape(\n createEscaped('unicodeEscape', parseInt(res[1], 16), res[1], 2)\n );\n } else if (isUnicodeMode && (res = matchReg(/^u\\{([0-9a-fA-F]+)\\}/))) {\n // RegExpUnicodeEscapeSequence (ES6 Unicode code point escape)\n return createEscaped('unicodeCodePointEscape', parseInt(res[1], 16), res[1], 4);\n }\n }\n\n function parseCharacterEscape() {\n // CharacterEscape ::\n // ControlEscape\n // c ControlLetter\n // HexEscapeSequence\n // UnicodeEscapeSequence\n // IdentityEscape\n\n var res;\n var from = pos;\n if (res = matchReg(/^[fnrtv]/)) {\n // ControlEscape\n var codePoint = 0;\n switch (res[0]) {\n case 't': codePoint = 0x009; break;\n case 'n': codePoint = 0x00A; break;\n case 'v': codePoint = 0x00B; break;\n case 'f': codePoint = 0x00C; break;\n case 'r': codePoint = 0x00D; break;\n }\n return createEscaped('singleEscape', codePoint, '\\\\' + res[0]);\n } else if (res = matchReg(/^c([a-zA-Z])/)) {\n // c ControlLetter\n return createEscaped('controlLetter', res[1].charCodeAt(0) % 32, res[1], 2);\n } else if (res = matchReg(/^x([0-9a-fA-F]{2})/)) {\n // HexEscapeSequence\n return createEscaped('hexadecimalEscape', parseInt(res[1], 16), res[1], 2);\n } else if (res = parseRegExpUnicodeEscapeSequence()) {\n if (!res || res.codePoint > 0x10FFFF) {\n bail('Invalid escape sequence', null, from, pos);\n }\n return res;\n } else {\n // IdentityEscape\n return parseIdentityEscape();\n }\n }\n\n function parseIdentifierAtom(check) {\n var ch = lookahead();\n var from = pos;\n if (ch === '\\\\') {\n incr();\n var esc = parseRegExpUnicodeEscapeSequence();\n if (!esc || !check(esc.codePoint)) {\n bail('Invalid escape sequence', null, from, pos);\n }\n return fromCodePoint(esc.codePoint);\n }\n var code = ch.charCodeAt(0);\n if (code >= 0xD800 && code <= 0xDBFF) {\n ch += str[pos + 1];\n var second = ch.charCodeAt(1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // Unicode surrogate pair\n code = (code - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n if (!check(code)) return;\n incr();\n if (code > 0xFFFF) incr();\n return ch;\n }\n\n function parseIdentifier() {\n // RegExpIdentifierName ::\n // RegExpIdentifierStart\n // RegExpIdentifierName RegExpIdentifierContinue\n //\n // RegExpIdentifierStart ::\n // UnicodeIDStart\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n //\n // RegExpIdentifierContinue ::\n // UnicodeIDContinue\n // $\n // _\n // \\ RegExpUnicodeEscapeSequence\n // \n // \n\n var start = pos;\n var res = parseIdentifierAtom(isIdentifierStart);\n if (!res) {\n bail('Invalid identifier');\n }\n\n var ch;\n while (ch = parseIdentifierAtom(isIdentifierPart)) {\n res += ch;\n }\n\n return addRaw({\n type: 'identifier',\n value: res,\n range: [start, pos]\n });\n }\n\n function isIdentifierStart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n var NonAsciiIdentifierStart = /[\\$A-Z_a-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0588\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7B9\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF1A]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE83\\uDE86-\\uDE89\\uDE9D\\uDEC0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD81C-\\uD820\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1]|\\uD821[\\uDC00-\\uDFF1]|\\uD822[\\uDC00-\\uDEF2]|\\uD82C[\\uDC00-\\uDD1E\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]/;\n\n return (ch === 36) || (ch === 95) || // $ (dollar) and _ (underscore)\n (ch >= 65 && ch <= 90) || // A..Z\n (ch >= 97 && ch <= 122) || // a..z\n ((ch >= 0x80) && NonAsciiIdentifierStart.test(fromCodePoint(ch)));\n }\n\n // Taken from the Esprima parser.\n function isIdentifierPart(ch) {\n // Generated by `tools/generate-identifier-regex.js`.\n // eslint-disable-next-line no-misleading-character-class\n var NonAsciiIdentifierPartOnly = /[0-9_\\xB7\\u0300-\\u036F\\u0387\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u0669\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u06F0-\\u06F9\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07C0-\\u07C9\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0966-\\u096F\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09E6-\\u09EF\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A66-\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B66-\\u0B6F\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C04\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CE6-\\u0CEF\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D66-\\u0D6F\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0E50-\\u0E59\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1040-\\u1049\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F-\\u109D\\u135D-\\u135F\\u1369-\\u1371\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u194F\\u19D0-\\u19DA\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AB0-\\u1ABD\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BB0-\\u1BB9\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1C40-\\u1C49\\u1C50-\\u1C59\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u200C\\u200D\\u203F\\u2040\\u2054\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA620-\\uA629\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8D0-\\uA8D9\\uA8E0-\\uA8F1\\uA8FF-\\uA909\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9D0-\\uA9D9\\uA9E5\\uA9F0-\\uA9F9\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA50-\\uAA59\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF10-\\uFF19\\uFF3F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD801[\\uDCA0-\\uDCA9]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDD30-\\uDD39\\uDF46-\\uDF50]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCF0-\\uDCF9\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD36-\\uDD3F\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDD0-\\uDDD9\\uDE2C-\\uDE37\\uDE3E\\uDEDF-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC50-\\uDC59\\uDC5E\\uDCB0-\\uDCC3\\uDCD0-\\uDCD9\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDE50-\\uDE59\\uDEAB-\\uDEB7\\uDEC0-\\uDEC9\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDC2C-\\uDC3A\\uDCE0-\\uDCE9\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC50-\\uDC59\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD50-\\uDD59\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDDA0-\\uDDA9\\uDEF3-\\uDEF6]|\\uD81A[\\uDE60-\\uDE69\\uDEF0-\\uDEF4\\uDF30-\\uDF36\\uDF50-\\uDF59]|\\uD81B[\\uDF51-\\uDF7E\\uDF8F-\\uDF92]|\\uD82F[\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A\\uDD50-\\uDD59]|\\uDB40[\\uDD00-\\uDDEF]/;\n\n return isIdentifierStart(ch) ||\n (ch >= 48 && ch <= 57) || // 0..9\n ((ch >= 0x80) && NonAsciiIdentifierPartOnly.test(fromCodePoint(ch)));\n }\n\n function parseIdentityEscape() {\n // IdentityEscape ::\n // [+U] SyntaxCharacter\n // [+U] /\n // [~U] SourceCharacterIdentityEscape[?N]\n // SourceCharacterIdentityEscape[?N] ::\n // [~N] SourceCharacter but not c\n // [+N] SourceCharacter but not one of c or k\n\n\n var tmp;\n var l = lookahead();\n if (\n (isUnicodeMode && /[\\^\\$\\.\\*\\+\\?\\(\\)\\\\\\[\\]\\{\\}\\|\\/]/.test(l)) ||\n (!isUnicodeMode && l !== \"c\")\n ) {\n if (l === \"k\" && features.lookbehind) {\n return null;\n }\n tmp = incr();\n return createEscaped('identifier', tmp.charCodeAt(0), tmp, 1);\n }\n\n return null;\n }\n\n function parseCharacterClass() {\n // CharacterClass ::\n // [ [lookahead ∉ {^}] ClassRanges ]\n // [ ^ ClassRanges ]\n\n var res, from = pos;\n if (res = matchReg(/^\\[\\^/)) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, true, from, pos);\n } else if (match('[')) {\n res = parseClassRanges();\n skip(']');\n return createCharacterClass(res, false, from, pos);\n }\n\n return null;\n }\n\n function parseClassRanges() {\n // ClassRanges ::\n // [empty]\n // [~V] NonemptyClassRanges\n // [+V] ClassContents\n\n var res;\n if (current(']')) {\n // Empty array means nothing inside of the ClassRange.\n return { kind: 'union', body: [] };\n } else if (hasUnicodeSetFlag) {\n return parseClassContents();\n } else {\n res = parseNonemptyClassRanges();\n if (!res) {\n bail('nonEmptyClassRanges');\n }\n return { kind: 'union', body: res };\n }\n }\n\n function parseHelperClassRanges(atom) {\n var from, to, res, atomTo, dash;\n if (current('-') && !next(']')) {\n // ClassAtom - ClassAtom ClassRanges\n from = atom.range[0];\n dash = createCharacter(match('-'));\n\n atomTo = parseClassAtom();\n if (!atomTo) {\n bail('classAtom');\n }\n to = pos;\n\n // Parse the next class range if exists.\n var classRanges = parseClassRanges();\n if (!classRanges) {\n bail('classRanges');\n }\n\n // Check if both the from and atomTo have codePoints.\n if (!('codePoint' in atom) || !('codePoint' in atomTo)) {\n if (!isUnicodeMode) {\n // If not, don't create a range but treat them as\n // `atom` `-` `atom` instead.\n //\n // SEE: https://tc39.es/ecma262/#sec-regular-expression-patterns-semantics\n // NonemptyClassRanges::ClassAtom-ClassAtomClassRanges\n // CharacterRangeOrUnion\n res = [atom, dash, atomTo];\n } else {\n // With unicode flag, both sides must have codePoints if\n // one side has a codePoint.\n //\n // SEE: https://tc39.es/ecma262/#sec-patterns-static-semantics-early-errors\n // NonemptyClassRanges :: ClassAtom - ClassAtom ClassRanges\n bail('invalid character class');\n }\n } else {\n res = [createClassRange(atom, atomTo, from, to)];\n }\n\n if (classRanges.type === 'empty') {\n return res;\n }\n return res.concat(classRanges.body);\n }\n\n res = parseNonemptyClassRangesNoDash();\n if (!res) {\n bail('nonEmptyClassRangesNoDash');\n }\n\n return [atom].concat(res);\n }\n\n function parseNonemptyClassRanges() {\n // NonemptyClassRanges ::\n // ClassAtom\n // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n\n var atom = parseClassAtom();\n if (!atom) {\n bail('classAtom');\n }\n\n if (current(']')) {\n // ClassAtom\n return [atom];\n }\n\n // ClassAtom NonemptyClassRangesNoDash\n // ClassAtom - ClassAtom ClassRanges\n return parseHelperClassRanges(atom);\n }\n\n function parseNonemptyClassRangesNoDash() {\n // NonemptyClassRangesNoDash ::\n // ClassAtom\n // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n\n var res = parseClassAtom();\n if (!res) {\n bail('classAtom');\n }\n if (current(']')) {\n // ClassAtom\n return res;\n }\n\n // ClassAtomNoDash NonemptyClassRangesNoDash\n // ClassAtomNoDash - ClassAtom ClassRanges\n return parseHelperClassRanges(res);\n }\n\n function parseClassAtom() {\n // ClassAtom ::\n // -\n // ClassAtomNoDash\n if (match('-')) {\n return createCharacter('-');\n } else {\n return parseClassAtomNoDash();\n }\n }\n\n function parseClassAtomNoDash() {\n // ClassAtomNoDash ::\n // SourceCharacter but not one of \\ or ] or -\n // \\ ClassEscape\n\n var res;\n if (res = matchReg(/^[^\\\\\\]-]/)) {\n return createCharacter(res[0]);\n } else if (match('\\\\')) {\n res = parseClassEscape();\n if (!res) {\n bail('classEscape');\n }\n\n return parseUnicodeSurrogatePairEscape(res);\n }\n }\n\n function parseClassContents() {\n // ClassContents ::\n // ClassUnion\n // ClassIntersection\n // ClassSubtraction\n //\n // ClassUnion ::\n // ClassRange ClassUnion?\n // ClassOperand ClassUnion?\n //\n // ClassIntersection ::\n // ClassOperand && [lookahead ≠ &] ClassOperand\n // ClassIntersection && [lookahead ≠ &] ClassOperand\n //\n // ClassSubtraction ::\n // ClassOperand -- ClassOperand\n // ClassSubtraction -- ClassOperand\n\n var body = [];\n var kind;\n\n var operand = parseClassOperand(/* allowRanges*/ true);\n body.push(operand);\n\n if (operand.type === 'classRange') {\n kind = 'union';\n } else if (current('&')) {\n kind = 'intersection';\n } else if (current('-')) {\n kind = 'subtraction';\n } else {\n kind = 'union';\n }\n\n while (!current(']')) {\n if (kind === 'intersection') {\n skip('&');\n skip('&');\n if (current('&')) {\n bail('&& cannot be followed by &. Wrap it in brackets: &&[&].');\n }\n } else if (kind === 'subtraction') {\n skip('-');\n skip('-');\n }\n\n operand = parseClassOperand(/* allowRanges*/ kind === 'union');\n body.push(operand);\n }\n\n return { kind: kind, body: body };\n }\n\n function parseClassOperand(allowRanges) {\n // ClassOperand ::\n // ClassCharacter\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // \\ CharacterClassEscape[+U, +V]\n //\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n //\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n //\n // ClassSyntaxCharacter ::\n // one of ( ) [ ] { } / - \\ |\n\n var from = pos;\n var start, res;\n\n if (match('\\\\')) {\n // ClassOperand ::\n // ...\n // ClassStrings\n // NestedClass\n //\n // NestedClass ::\n // ...\n // \\ CharacterClassEscape[+U, +V]\n if (res = parseClassEscape()) {\n start = res;\n } else if (res = parseClassCharacterEscapedHelper()) {\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n } else if (res = parseClassCharacterUnescapedHelper()) {\n start = res;\n } else if (res = parseCharacterClass()) {\n // ClassOperand ::\n // ...\n // NestedClass\n //\n // NestedClass ::\n // [ [lookahead ≠ ^] ClassRanges[+U,+V] ]\n // [ ^ ClassRanges[+U,+V] ]\n // ...\n return res;\n } else {\n bail('Invalid character', lookahead());\n }\n\n if (allowRanges && current('-') && !next('-')) {\n skip('-');\n\n if (res = parseClassCharacter()) {\n // ClassRange ::\n // ClassCharacter - ClassCharacter\n return createClassRange(start, res, from, pos);\n }\n\n bail('Invalid range end', lookahead());\n }\n\n // ClassOperand ::\n // ClassCharacter\n // ...\n return start;\n }\n\n function parseClassCharacter() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n\n if (match('\\\\')) {\n var res, from = pos;\n if (res = parseClassCharacterEscapedHelper()) {\n return res;\n } else {\n bail('Invalid escape', '\\\\' + lookahead(), from);\n }\n }\n\n return parseClassCharacterUnescapedHelper();\n }\n\n function parseClassCharacterUnescapedHelper() {\n // ClassCharacter ::\n // [lookahead ∉ ClassReservedDouble] SourceCharacter but not ClassSyntaxCharacter\n // ...\n\n var res;\n if (res = matchReg(/^[^()[\\]{}/\\-\\\\|]/)) {\n return createCharacter(res);\n }\n }\n\n function parseClassCharacterEscapedHelper() {\n // ClassCharacter ::\n // ...\n // \\ CharacterEscape[+U]\n // \\ ClassHalfOfDouble\n // \\ b\n\n var res;\n if (match('b')) {\n return createEscaped('singleEscape', 0x0008, '\\\\b');\n } else if (match('B')) {\n bail('\\\\B not possible inside of ClassContents', '', pos - 2);\n } else if (res = matchReg(/^[&\\-!#%,:;<=>@_`~]/)) {\n return createEscaped('identifier', res[0].codePointAt(0), res[0]);\n } else if (res = parseCharacterEscape()) {\n return res;\n } else {\n return null;\n }\n }\n\n function parseClassStrings() {\n // ClassStrings ::\n // \\q{ ClassString MoreClassStrings? }\n\n // When calling this function, \\q{ has already been consumed.\n var from = pos - 3;\n\n var res = [];\n do {\n res.push(parseClassString());\n } while (match('|'));\n\n skip('}');\n\n return createClassStrings(res, from, pos);\n }\n\n function parseClassString() {\n // ClassString ::\n // [empty]\n // NonEmptyClassString\n //\n // NonEmptyClassString ::\n // ClassCharacter NonEmptyClassString?\n\n var res = [], from = pos;\n var char;\n\n while (char = parseClassCharacter()) {\n res.push(char);\n }\n\n return createClassString(res, from, pos);\n }\n\n function bail(message, details, from, to) {\n from = from == null ? pos : from;\n to = to == null ? from : to;\n\n var contextStart = Math.max(0, from - 10);\n var contextEnd = Math.min(to + 10, str.length);\n\n // Output a bit of context and a line pointing to where our error is.\n //\n // We are assuming that there are no actual newlines in the content as this is a regular expression.\n var context = ' ' + str.substring(contextStart, contextEnd);\n var pointer = ' ' + new Array(from - contextStart + 1).join(' ') + '^';\n\n throw SyntaxError(message + ' at position ' + from + (details ? ': ' + details : '') + '\\n' + context + '\\n' + pointer);\n }\n\n var backrefDenied = [];\n var closedCaptureCounter = 0;\n var firstIteration = true;\n var shouldReparse = false;\n var hasUnicodeFlag = (flags || \"\").indexOf(\"u\") !== -1;\n var hasUnicodeSetFlag = (flags || \"\").indexOf(\"v\") !== -1;\n var isUnicodeMode = hasUnicodeFlag || hasUnicodeSetFlag;\n var pos = 0;\n\n if (hasUnicodeSetFlag && !features.unicodeSet) {\n throw new Error('The \"v\" flag is only supported when the .unicodeSet option is enabled.');\n }\n\n if (hasUnicodeFlag && hasUnicodeSetFlag) {\n throw new Error('The \"u\" and \"v\" flags are mutually exclusive.');\n }\n\n // Convert the input to a string and treat the empty string special.\n str = String(str);\n if (str === '') {\n str = '(?:)';\n }\n\n var result = parseDisjunction();\n\n if (result.range[1] !== str.length) {\n bail('Could not parse entire input - got stuck', '', result.range[1]);\n }\n\n // The spec requires to interpret the `\\2` in `/\\2()()/` as backreference.\n // As the parser collects the number of capture groups as the string is\n // parsed it is impossible to make these decisions at the point when the\n // `\\2` is handled. In case the local decision turns out to be wrong after\n // the parsing has finished, the input string is parsed a second time with\n // the total number of capture groups set.\n //\n // SEE: https://github.com/jviereck/regjsparser/issues/70\n shouldReparse = shouldReparse || backrefDenied.some(function (ref) {\n return ref <= closedCaptureCounter;\n });\n if (shouldReparse) {\n // Parse the input a second time.\n pos = 0;\n firstIteration = false;\n return parseDisjunction();\n }\n\n return result;\n }\n\n var regjsparser = {\n parse: parse\n };\n\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = regjsparser;\n } else {\n window.regjsparser = regjsparser;\n }\n\n}());\n","module.exports = new Set([\n\t// Non-binary properties:\n\t'General_Category',\n\t'Script',\n\t'Script_Extensions',\n\t// Binary properties:\n\t'Alphabetic',\n\t'Any',\n\t'ASCII',\n\t'ASCII_Hex_Digit',\n\t'Assigned',\n\t'Bidi_Control',\n\t'Bidi_Mirrored',\n\t'Case_Ignorable',\n\t'Cased',\n\t'Changes_When_Casefolded',\n\t'Changes_When_Casemapped',\n\t'Changes_When_Lowercased',\n\t'Changes_When_NFKC_Casefolded',\n\t'Changes_When_Titlecased',\n\t'Changes_When_Uppercased',\n\t'Dash',\n\t'Default_Ignorable_Code_Point',\n\t'Deprecated',\n\t'Diacritic',\n\t'Emoji',\n\t'Emoji_Component',\n\t'Emoji_Modifier',\n\t'Emoji_Modifier_Base',\n\t'Emoji_Presentation',\n\t'Extended_Pictographic',\n\t'Extender',\n\t'Grapheme_Base',\n\t'Grapheme_Extend',\n\t'Hex_Digit',\n\t'ID_Continue',\n\t'ID_Start',\n\t'Ideographic',\n\t'IDS_Binary_Operator',\n\t'IDS_Trinary_Operator',\n\t'Join_Control',\n\t'Logical_Order_Exception',\n\t'Lowercase',\n\t'Math',\n\t'Noncharacter_Code_Point',\n\t'Pattern_Syntax',\n\t'Pattern_White_Space',\n\t'Quotation_Mark',\n\t'Radical',\n\t'Regional_Indicator',\n\t'Sentence_Terminal',\n\t'Soft_Dotted',\n\t'Terminal_Punctuation',\n\t'Unified_Ideograph',\n\t'Uppercase',\n\t'Variation_Selector',\n\t'White_Space',\n\t'XID_Continue',\n\t'XID_Start'\n]);\n","// Generated using `npm run build`. Do not edit!\nmodule.exports = new Map([\n\t['scx', 'Script_Extensions'],\n\t['sc', 'Script'],\n\t['gc', 'General_Category'],\n\t['AHex', 'ASCII_Hex_Digit'],\n\t['Alpha', 'Alphabetic'],\n\t['Bidi_C', 'Bidi_Control'],\n\t['Bidi_M', 'Bidi_Mirrored'],\n\t['Cased', 'Cased'],\n\t['CI', 'Case_Ignorable'],\n\t['CWCF', 'Changes_When_Casefolded'],\n\t['CWCM', 'Changes_When_Casemapped'],\n\t['CWKCF', 'Changes_When_NFKC_Casefolded'],\n\t['CWL', 'Changes_When_Lowercased'],\n\t['CWT', 'Changes_When_Titlecased'],\n\t['CWU', 'Changes_When_Uppercased'],\n\t['Dash', 'Dash'],\n\t['Dep', 'Deprecated'],\n\t['DI', 'Default_Ignorable_Code_Point'],\n\t['Dia', 'Diacritic'],\n\t['EBase', 'Emoji_Modifier_Base'],\n\t['EComp', 'Emoji_Component'],\n\t['EMod', 'Emoji_Modifier'],\n\t['Emoji', 'Emoji'],\n\t['EPres', 'Emoji_Presentation'],\n\t['Ext', 'Extender'],\n\t['ExtPict', 'Extended_Pictographic'],\n\t['Gr_Base', 'Grapheme_Base'],\n\t['Gr_Ext', 'Grapheme_Extend'],\n\t['Hex', 'Hex_Digit'],\n\t['IDC', 'ID_Continue'],\n\t['Ideo', 'Ideographic'],\n\t['IDS', 'ID_Start'],\n\t['IDSB', 'IDS_Binary_Operator'],\n\t['IDST', 'IDS_Trinary_Operator'],\n\t['Join_C', 'Join_Control'],\n\t['LOE', 'Logical_Order_Exception'],\n\t['Lower', 'Lowercase'],\n\t['Math', 'Math'],\n\t['NChar', 'Noncharacter_Code_Point'],\n\t['Pat_Syn', 'Pattern_Syntax'],\n\t['Pat_WS', 'Pattern_White_Space'],\n\t['QMark', 'Quotation_Mark'],\n\t['Radical', 'Radical'],\n\t['RI', 'Regional_Indicator'],\n\t['SD', 'Soft_Dotted'],\n\t['STerm', 'Sentence_Terminal'],\n\t['Term', 'Terminal_Punctuation'],\n\t['UIdeo', 'Unified_Ideograph'],\n\t['Upper', 'Uppercase'],\n\t['VS', 'Variation_Selector'],\n\t['WSpace', 'White_Space'],\n\t['space', 'White_Space'],\n\t['XIDC', 'XID_Continue'],\n\t['XIDS', 'XID_Start']\n]);\n","'use strict';\n\nconst canonicalProperties = require('unicode-canonical-property-names-ecmascript');\nconst propertyAliases = require('unicode-property-aliases-ecmascript');\n\nconst matchProperty = function(property) {\n\tif (canonicalProperties.has(property)) {\n\t\treturn property;\n\t}\n\tif (propertyAliases.has(property)) {\n\t\treturn propertyAliases.get(property);\n\t}\n\tthrow new Error(`Unknown property: ${ property }`);\n};\n\nmodule.exports = matchProperty;\n","'use strict';\n\nconst propertyToValueAliases = require('./data/mappings.js');\n\nconst matchPropertyValue = function(property, value) {\n\tconst aliasToValue = propertyToValueAliases.get(property);\n\tif (!aliasToValue) {\n\t\tthrow new Error(`Unknown property \\`${ property }\\`.`);\n\t}\n\tconst canonicalValue = aliasToValue.get(value);\n\tif (canonicalValue) {\n\t\treturn canonicalValue;\n\t}\n\tthrow new Error(\n\t\t`Unknown value \\`${ value }\\` for property \\`${ property }\\`.`\n\t);\n};\n\nmodule.exports = matchPropertyValue;\n","module.exports = new Map([\n\t['General_Category', new Map([\n\t\t['C', 'Other'],\n\t\t['Cc', 'Control'],\n\t\t['cntrl', 'Control'],\n\t\t['Cf', 'Format'],\n\t\t['Cn', 'Unassigned'],\n\t\t['Co', 'Private_Use'],\n\t\t['Cs', 'Surrogate'],\n\t\t['L', 'Letter'],\n\t\t['LC', 'Cased_Letter'],\n\t\t['Ll', 'Lowercase_Letter'],\n\t\t['Lm', 'Modifier_Letter'],\n\t\t['Lo', 'Other_Letter'],\n\t\t['Lt', 'Titlecase_Letter'],\n\t\t['Lu', 'Uppercase_Letter'],\n\t\t['M', 'Mark'],\n\t\t['Combining_Mark', 'Mark'],\n\t\t['Mc', 'Spacing_Mark'],\n\t\t['Me', 'Enclosing_Mark'],\n\t\t['Mn', 'Nonspacing_Mark'],\n\t\t['N', 'Number'],\n\t\t['Nd', 'Decimal_Number'],\n\t\t['digit', 'Decimal_Number'],\n\t\t['Nl', 'Letter_Number'],\n\t\t['No', 'Other_Number'],\n\t\t['P', 'Punctuation'],\n\t\t['punct', 'Punctuation'],\n\t\t['Pc', 'Connector_Punctuation'],\n\t\t['Pd', 'Dash_Punctuation'],\n\t\t['Pe', 'Close_Punctuation'],\n\t\t['Pf', 'Final_Punctuation'],\n\t\t['Pi', 'Initial_Punctuation'],\n\t\t['Po', 'Other_Punctuation'],\n\t\t['Ps', 'Open_Punctuation'],\n\t\t['S', 'Symbol'],\n\t\t['Sc', 'Currency_Symbol'],\n\t\t['Sk', 'Modifier_Symbol'],\n\t\t['Sm', 'Math_Symbol'],\n\t\t['So', 'Other_Symbol'],\n\t\t['Z', 'Separator'],\n\t\t['Zl', 'Line_Separator'],\n\t\t['Zp', 'Paragraph_Separator'],\n\t\t['Zs', 'Space_Separator'],\n\t\t['Other', 'Other'],\n\t\t['Control', 'Control'],\n\t\t['Format', 'Format'],\n\t\t['Unassigned', 'Unassigned'],\n\t\t['Private_Use', 'Private_Use'],\n\t\t['Surrogate', 'Surrogate'],\n\t\t['Letter', 'Letter'],\n\t\t['Cased_Letter', 'Cased_Letter'],\n\t\t['Lowercase_Letter', 'Lowercase_Letter'],\n\t\t['Modifier_Letter', 'Modifier_Letter'],\n\t\t['Other_Letter', 'Other_Letter'],\n\t\t['Titlecase_Letter', 'Titlecase_Letter'],\n\t\t['Uppercase_Letter', 'Uppercase_Letter'],\n\t\t['Mark', 'Mark'],\n\t\t['Spacing_Mark', 'Spacing_Mark'],\n\t\t['Enclosing_Mark', 'Enclosing_Mark'],\n\t\t['Nonspacing_Mark', 'Nonspacing_Mark'],\n\t\t['Number', 'Number'],\n\t\t['Decimal_Number', 'Decimal_Number'],\n\t\t['Letter_Number', 'Letter_Number'],\n\t\t['Other_Number', 'Other_Number'],\n\t\t['Punctuation', 'Punctuation'],\n\t\t['Connector_Punctuation', 'Connector_Punctuation'],\n\t\t['Dash_Punctuation', 'Dash_Punctuation'],\n\t\t['Close_Punctuation', 'Close_Punctuation'],\n\t\t['Final_Punctuation', 'Final_Punctuation'],\n\t\t['Initial_Punctuation', 'Initial_Punctuation'],\n\t\t['Other_Punctuation', 'Other_Punctuation'],\n\t\t['Open_Punctuation', 'Open_Punctuation'],\n\t\t['Symbol', 'Symbol'],\n\t\t['Currency_Symbol', 'Currency_Symbol'],\n\t\t['Modifier_Symbol', 'Modifier_Symbol'],\n\t\t['Math_Symbol', 'Math_Symbol'],\n\t\t['Other_Symbol', 'Other_Symbol'],\n\t\t['Separator', 'Separator'],\n\t\t['Line_Separator', 'Line_Separator'],\n\t\t['Paragraph_Separator', 'Paragraph_Separator'],\n\t\t['Space_Separator', 'Space_Separator']\n\t])],\n\t['Script', new Map([\n\t\t['Adlm', 'Adlam'],\n\t\t['Aghb', 'Caucasian_Albanian'],\n\t\t['Ahom', 'Ahom'],\n\t\t['Arab', 'Arabic'],\n\t\t['Armi', 'Imperial_Aramaic'],\n\t\t['Armn', 'Armenian'],\n\t\t['Avst', 'Avestan'],\n\t\t['Bali', 'Balinese'],\n\t\t['Bamu', 'Bamum'],\n\t\t['Bass', 'Bassa_Vah'],\n\t\t['Batk', 'Batak'],\n\t\t['Beng', 'Bengali'],\n\t\t['Bhks', 'Bhaiksuki'],\n\t\t['Bopo', 'Bopomofo'],\n\t\t['Brah', 'Brahmi'],\n\t\t['Brai', 'Braille'],\n\t\t['Bugi', 'Buginese'],\n\t\t['Buhd', 'Buhid'],\n\t\t['Cakm', 'Chakma'],\n\t\t['Cans', 'Canadian_Aboriginal'],\n\t\t['Cari', 'Carian'],\n\t\t['Cham', 'Cham'],\n\t\t['Cher', 'Cherokee'],\n\t\t['Chrs', 'Chorasmian'],\n\t\t['Copt', 'Coptic'],\n\t\t['Qaac', 'Coptic'],\n\t\t['Cpmn', 'Cypro_Minoan'],\n\t\t['Cprt', 'Cypriot'],\n\t\t['Cyrl', 'Cyrillic'],\n\t\t['Deva', 'Devanagari'],\n\t\t['Diak', 'Dives_Akuru'],\n\t\t['Dogr', 'Dogra'],\n\t\t['Dsrt', 'Deseret'],\n\t\t['Dupl', 'Duployan'],\n\t\t['Egyp', 'Egyptian_Hieroglyphs'],\n\t\t['Elba', 'Elbasan'],\n\t\t['Elym', 'Elymaic'],\n\t\t['Ethi', 'Ethiopic'],\n\t\t['Geor', 'Georgian'],\n\t\t['Glag', 'Glagolitic'],\n\t\t['Gong', 'Gunjala_Gondi'],\n\t\t['Gonm', 'Masaram_Gondi'],\n\t\t['Goth', 'Gothic'],\n\t\t['Gran', 'Grantha'],\n\t\t['Grek', 'Greek'],\n\t\t['Gujr', 'Gujarati'],\n\t\t['Guru', 'Gurmukhi'],\n\t\t['Hang', 'Hangul'],\n\t\t['Hani', 'Han'],\n\t\t['Hano', 'Hanunoo'],\n\t\t['Hatr', 'Hatran'],\n\t\t['Hebr', 'Hebrew'],\n\t\t['Hira', 'Hiragana'],\n\t\t['Hluw', 'Anatolian_Hieroglyphs'],\n\t\t['Hmng', 'Pahawh_Hmong'],\n\t\t['Hmnp', 'Nyiakeng_Puachue_Hmong'],\n\t\t['Hrkt', 'Katakana_Or_Hiragana'],\n\t\t['Hung', 'Old_Hungarian'],\n\t\t['Ital', 'Old_Italic'],\n\t\t['Java', 'Javanese'],\n\t\t['Kali', 'Kayah_Li'],\n\t\t['Kana', 'Katakana'],\n\t\t['Kawi', 'Kawi'],\n\t\t['Khar', 'Kharoshthi'],\n\t\t['Khmr', 'Khmer'],\n\t\t['Khoj', 'Khojki'],\n\t\t['Kits', 'Khitan_Small_Script'],\n\t\t['Knda', 'Kannada'],\n\t\t['Kthi', 'Kaithi'],\n\t\t['Lana', 'Tai_Tham'],\n\t\t['Laoo', 'Lao'],\n\t\t['Latn', 'Latin'],\n\t\t['Lepc', 'Lepcha'],\n\t\t['Limb', 'Limbu'],\n\t\t['Lina', 'Linear_A'],\n\t\t['Linb', 'Linear_B'],\n\t\t['Lisu', 'Lisu'],\n\t\t['Lyci', 'Lycian'],\n\t\t['Lydi', 'Lydian'],\n\t\t['Mahj', 'Mahajani'],\n\t\t['Maka', 'Makasar'],\n\t\t['Mand', 'Mandaic'],\n\t\t['Mani', 'Manichaean'],\n\t\t['Marc', 'Marchen'],\n\t\t['Medf', 'Medefaidrin'],\n\t\t['Mend', 'Mende_Kikakui'],\n\t\t['Merc', 'Meroitic_Cursive'],\n\t\t['Mero', 'Meroitic_Hieroglyphs'],\n\t\t['Mlym', 'Malayalam'],\n\t\t['Modi', 'Modi'],\n\t\t['Mong', 'Mongolian'],\n\t\t['Mroo', 'Mro'],\n\t\t['Mtei', 'Meetei_Mayek'],\n\t\t['Mult', 'Multani'],\n\t\t['Mymr', 'Myanmar'],\n\t\t['Nagm', 'Nag_Mundari'],\n\t\t['Nand', 'Nandinagari'],\n\t\t['Narb', 'Old_North_Arabian'],\n\t\t['Nbat', 'Nabataean'],\n\t\t['Newa', 'Newa'],\n\t\t['Nkoo', 'Nko'],\n\t\t['Nshu', 'Nushu'],\n\t\t['Ogam', 'Ogham'],\n\t\t['Olck', 'Ol_Chiki'],\n\t\t['Orkh', 'Old_Turkic'],\n\t\t['Orya', 'Oriya'],\n\t\t['Osge', 'Osage'],\n\t\t['Osma', 'Osmanya'],\n\t\t['Ougr', 'Old_Uyghur'],\n\t\t['Palm', 'Palmyrene'],\n\t\t['Pauc', 'Pau_Cin_Hau'],\n\t\t['Perm', 'Old_Permic'],\n\t\t['Phag', 'Phags_Pa'],\n\t\t['Phli', 'Inscriptional_Pahlavi'],\n\t\t['Phlp', 'Psalter_Pahlavi'],\n\t\t['Phnx', 'Phoenician'],\n\t\t['Plrd', 'Miao'],\n\t\t['Prti', 'Inscriptional_Parthian'],\n\t\t['Rjng', 'Rejang'],\n\t\t['Rohg', 'Hanifi_Rohingya'],\n\t\t['Runr', 'Runic'],\n\t\t['Samr', 'Samaritan'],\n\t\t['Sarb', 'Old_South_Arabian'],\n\t\t['Saur', 'Saurashtra'],\n\t\t['Sgnw', 'SignWriting'],\n\t\t['Shaw', 'Shavian'],\n\t\t['Shrd', 'Sharada'],\n\t\t['Sidd', 'Siddham'],\n\t\t['Sind', 'Khudawadi'],\n\t\t['Sinh', 'Sinhala'],\n\t\t['Sogd', 'Sogdian'],\n\t\t['Sogo', 'Old_Sogdian'],\n\t\t['Sora', 'Sora_Sompeng'],\n\t\t['Soyo', 'Soyombo'],\n\t\t['Sund', 'Sundanese'],\n\t\t['Sylo', 'Syloti_Nagri'],\n\t\t['Syrc', 'Syriac'],\n\t\t['Tagb', 'Tagbanwa'],\n\t\t['Takr', 'Takri'],\n\t\t['Tale', 'Tai_Le'],\n\t\t['Talu', 'New_Tai_Lue'],\n\t\t['Taml', 'Tamil'],\n\t\t['Tang', 'Tangut'],\n\t\t['Tavt', 'Tai_Viet'],\n\t\t['Telu', 'Telugu'],\n\t\t['Tfng', 'Tifinagh'],\n\t\t['Tglg', 'Tagalog'],\n\t\t['Thaa', 'Thaana'],\n\t\t['Thai', 'Thai'],\n\t\t['Tibt', 'Tibetan'],\n\t\t['Tirh', 'Tirhuta'],\n\t\t['Tnsa', 'Tangsa'],\n\t\t['Toto', 'Toto'],\n\t\t['Ugar', 'Ugaritic'],\n\t\t['Vaii', 'Vai'],\n\t\t['Vith', 'Vithkuqi'],\n\t\t['Wara', 'Warang_Citi'],\n\t\t['Wcho', 'Wancho'],\n\t\t['Xpeo', 'Old_Persian'],\n\t\t['Xsux', 'Cuneiform'],\n\t\t['Yezi', 'Yezidi'],\n\t\t['Yiii', 'Yi'],\n\t\t['Zanb', 'Zanabazar_Square'],\n\t\t['Zinh', 'Inherited'],\n\t\t['Qaai', 'Inherited'],\n\t\t['Zyyy', 'Common'],\n\t\t['Zzzz', 'Unknown'],\n\t\t['Adlam', 'Adlam'],\n\t\t['Caucasian_Albanian', 'Caucasian_Albanian'],\n\t\t['Arabic', 'Arabic'],\n\t\t['Imperial_Aramaic', 'Imperial_Aramaic'],\n\t\t['Armenian', 'Armenian'],\n\t\t['Avestan', 'Avestan'],\n\t\t['Balinese', 'Balinese'],\n\t\t['Bamum', 'Bamum'],\n\t\t['Bassa_Vah', 'Bassa_Vah'],\n\t\t['Batak', 'Batak'],\n\t\t['Bengali', 'Bengali'],\n\t\t['Bhaiksuki', 'Bhaiksuki'],\n\t\t['Bopomofo', 'Bopomofo'],\n\t\t['Brahmi', 'Brahmi'],\n\t\t['Braille', 'Braille'],\n\t\t['Buginese', 'Buginese'],\n\t\t['Buhid', 'Buhid'],\n\t\t['Chakma', 'Chakma'],\n\t\t['Canadian_Aboriginal', 'Canadian_Aboriginal'],\n\t\t['Carian', 'Carian'],\n\t\t['Cherokee', 'Cherokee'],\n\t\t['Chorasmian', 'Chorasmian'],\n\t\t['Coptic', 'Coptic'],\n\t\t['Cypro_Minoan', 'Cypro_Minoan'],\n\t\t['Cypriot', 'Cypriot'],\n\t\t['Cyrillic', 'Cyrillic'],\n\t\t['Devanagari', 'Devanagari'],\n\t\t['Dives_Akuru', 'Dives_Akuru'],\n\t\t['Dogra', 'Dogra'],\n\t\t['Deseret', 'Deseret'],\n\t\t['Duployan', 'Duployan'],\n\t\t['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'],\n\t\t['Elbasan', 'Elbasan'],\n\t\t['Elymaic', 'Elymaic'],\n\t\t['Ethiopic', 'Ethiopic'],\n\t\t['Georgian', 'Georgian'],\n\t\t['Glagolitic', 'Glagolitic'],\n\t\t['Gunjala_Gondi', 'Gunjala_Gondi'],\n\t\t['Masaram_Gondi', 'Masaram_Gondi'],\n\t\t['Gothic', 'Gothic'],\n\t\t['Grantha', 'Grantha'],\n\t\t['Greek', 'Greek'],\n\t\t['Gujarati', 'Gujarati'],\n\t\t['Gurmukhi', 'Gurmukhi'],\n\t\t['Hangul', 'Hangul'],\n\t\t['Han', 'Han'],\n\t\t['Hanunoo', 'Hanunoo'],\n\t\t['Hatran', 'Hatran'],\n\t\t['Hebrew', 'Hebrew'],\n\t\t['Hiragana', 'Hiragana'],\n\t\t['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'],\n\t\t['Pahawh_Hmong', 'Pahawh_Hmong'],\n\t\t['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'],\n\t\t['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'],\n\t\t['Old_Hungarian', 'Old_Hungarian'],\n\t\t['Old_Italic', 'Old_Italic'],\n\t\t['Javanese', 'Javanese'],\n\t\t['Kayah_Li', 'Kayah_Li'],\n\t\t['Katakana', 'Katakana'],\n\t\t['Kharoshthi', 'Kharoshthi'],\n\t\t['Khmer', 'Khmer'],\n\t\t['Khojki', 'Khojki'],\n\t\t['Khitan_Small_Script', 'Khitan_Small_Script'],\n\t\t['Kannada', 'Kannada'],\n\t\t['Kaithi', 'Kaithi'],\n\t\t['Tai_Tham', 'Tai_Tham'],\n\t\t['Lao', 'Lao'],\n\t\t['Latin', 'Latin'],\n\t\t['Lepcha', 'Lepcha'],\n\t\t['Limbu', 'Limbu'],\n\t\t['Linear_A', 'Linear_A'],\n\t\t['Linear_B', 'Linear_B'],\n\t\t['Lycian', 'Lycian'],\n\t\t['Lydian', 'Lydian'],\n\t\t['Mahajani', 'Mahajani'],\n\t\t['Makasar', 'Makasar'],\n\t\t['Mandaic', 'Mandaic'],\n\t\t['Manichaean', 'Manichaean'],\n\t\t['Marchen', 'Marchen'],\n\t\t['Medefaidrin', 'Medefaidrin'],\n\t\t['Mende_Kikakui', 'Mende_Kikakui'],\n\t\t['Meroitic_Cursive', 'Meroitic_Cursive'],\n\t\t['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'],\n\t\t['Malayalam', 'Malayalam'],\n\t\t['Mongolian', 'Mongolian'],\n\t\t['Mro', 'Mro'],\n\t\t['Meetei_Mayek', 'Meetei_Mayek'],\n\t\t['Multani', 'Multani'],\n\t\t['Myanmar', 'Myanmar'],\n\t\t['Nag_Mundari', 'Nag_Mundari'],\n\t\t['Nandinagari', 'Nandinagari'],\n\t\t['Old_North_Arabian', 'Old_North_Arabian'],\n\t\t['Nabataean', 'Nabataean'],\n\t\t['Nko', 'Nko'],\n\t\t['Nushu', 'Nushu'],\n\t\t['Ogham', 'Ogham'],\n\t\t['Ol_Chiki', 'Ol_Chiki'],\n\t\t['Old_Turkic', 'Old_Turkic'],\n\t\t['Oriya', 'Oriya'],\n\t\t['Osage', 'Osage'],\n\t\t['Osmanya', 'Osmanya'],\n\t\t['Old_Uyghur', 'Old_Uyghur'],\n\t\t['Palmyrene', 'Palmyrene'],\n\t\t['Pau_Cin_Hau', 'Pau_Cin_Hau'],\n\t\t['Old_Permic', 'Old_Permic'],\n\t\t['Phags_Pa', 'Phags_Pa'],\n\t\t['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'],\n\t\t['Psalter_Pahlavi', 'Psalter_Pahlavi'],\n\t\t['Phoenician', 'Phoenician'],\n\t\t['Miao', 'Miao'],\n\t\t['Inscriptional_Parthian', 'Inscriptional_Parthian'],\n\t\t['Rejang', 'Rejang'],\n\t\t['Hanifi_Rohingya', 'Hanifi_Rohingya'],\n\t\t['Runic', 'Runic'],\n\t\t['Samaritan', 'Samaritan'],\n\t\t['Old_South_Arabian', 'Old_South_Arabian'],\n\t\t['Saurashtra', 'Saurashtra'],\n\t\t['SignWriting', 'SignWriting'],\n\t\t['Shavian', 'Shavian'],\n\t\t['Sharada', 'Sharada'],\n\t\t['Siddham', 'Siddham'],\n\t\t['Khudawadi', 'Khudawadi'],\n\t\t['Sinhala', 'Sinhala'],\n\t\t['Sogdian', 'Sogdian'],\n\t\t['Old_Sogdian', 'Old_Sogdian'],\n\t\t['Sora_Sompeng', 'Sora_Sompeng'],\n\t\t['Soyombo', 'Soyombo'],\n\t\t['Sundanese', 'Sundanese'],\n\t\t['Syloti_Nagri', 'Syloti_Nagri'],\n\t\t['Syriac', 'Syriac'],\n\t\t['Tagbanwa', 'Tagbanwa'],\n\t\t['Takri', 'Takri'],\n\t\t['Tai_Le', 'Tai_Le'],\n\t\t['New_Tai_Lue', 'New_Tai_Lue'],\n\t\t['Tamil', 'Tamil'],\n\t\t['Tangut', 'Tangut'],\n\t\t['Tai_Viet', 'Tai_Viet'],\n\t\t['Telugu', 'Telugu'],\n\t\t['Tifinagh', 'Tifinagh'],\n\t\t['Tagalog', 'Tagalog'],\n\t\t['Thaana', 'Thaana'],\n\t\t['Tibetan', 'Tibetan'],\n\t\t['Tirhuta', 'Tirhuta'],\n\t\t['Tangsa', 'Tangsa'],\n\t\t['Ugaritic', 'Ugaritic'],\n\t\t['Vai', 'Vai'],\n\t\t['Vithkuqi', 'Vithkuqi'],\n\t\t['Warang_Citi', 'Warang_Citi'],\n\t\t['Wancho', 'Wancho'],\n\t\t['Old_Persian', 'Old_Persian'],\n\t\t['Cuneiform', 'Cuneiform'],\n\t\t['Yezidi', 'Yezidi'],\n\t\t['Yi', 'Yi'],\n\t\t['Zanabazar_Square', 'Zanabazar_Square'],\n\t\t['Inherited', 'Inherited'],\n\t\t['Common', 'Common'],\n\t\t['Unknown', 'Unknown']\n\t])],\n\t['Script_Extensions', new Map([\n\t\t['Adlm', 'Adlam'],\n\t\t['Aghb', 'Caucasian_Albanian'],\n\t\t['Ahom', 'Ahom'],\n\t\t['Arab', 'Arabic'],\n\t\t['Armi', 'Imperial_Aramaic'],\n\t\t['Armn', 'Armenian'],\n\t\t['Avst', 'Avestan'],\n\t\t['Bali', 'Balinese'],\n\t\t['Bamu', 'Bamum'],\n\t\t['Bass', 'Bassa_Vah'],\n\t\t['Batk', 'Batak'],\n\t\t['Beng', 'Bengali'],\n\t\t['Bhks', 'Bhaiksuki'],\n\t\t['Bopo', 'Bopomofo'],\n\t\t['Brah', 'Brahmi'],\n\t\t['Brai', 'Braille'],\n\t\t['Bugi', 'Buginese'],\n\t\t['Buhd', 'Buhid'],\n\t\t['Cakm', 'Chakma'],\n\t\t['Cans', 'Canadian_Aboriginal'],\n\t\t['Cari', 'Carian'],\n\t\t['Cham', 'Cham'],\n\t\t['Cher', 'Cherokee'],\n\t\t['Chrs', 'Chorasmian'],\n\t\t['Copt', 'Coptic'],\n\t\t['Qaac', 'Coptic'],\n\t\t['Cpmn', 'Cypro_Minoan'],\n\t\t['Cprt', 'Cypriot'],\n\t\t['Cyrl', 'Cyrillic'],\n\t\t['Deva', 'Devanagari'],\n\t\t['Diak', 'Dives_Akuru'],\n\t\t['Dogr', 'Dogra'],\n\t\t['Dsrt', 'Deseret'],\n\t\t['Dupl', 'Duployan'],\n\t\t['Egyp', 'Egyptian_Hieroglyphs'],\n\t\t['Elba', 'Elbasan'],\n\t\t['Elym', 'Elymaic'],\n\t\t['Ethi', 'Ethiopic'],\n\t\t['Geor', 'Georgian'],\n\t\t['Glag', 'Glagolitic'],\n\t\t['Gong', 'Gunjala_Gondi'],\n\t\t['Gonm', 'Masaram_Gondi'],\n\t\t['Goth', 'Gothic'],\n\t\t['Gran', 'Grantha'],\n\t\t['Grek', 'Greek'],\n\t\t['Gujr', 'Gujarati'],\n\t\t['Guru', 'Gurmukhi'],\n\t\t['Hang', 'Hangul'],\n\t\t['Hani', 'Han'],\n\t\t['Hano', 'Hanunoo'],\n\t\t['Hatr', 'Hatran'],\n\t\t['Hebr', 'Hebrew'],\n\t\t['Hira', 'Hiragana'],\n\t\t['Hluw', 'Anatolian_Hieroglyphs'],\n\t\t['Hmng', 'Pahawh_Hmong'],\n\t\t['Hmnp', 'Nyiakeng_Puachue_Hmong'],\n\t\t['Hrkt', 'Katakana_Or_Hiragana'],\n\t\t['Hung', 'Old_Hungarian'],\n\t\t['Ital', 'Old_Italic'],\n\t\t['Java', 'Javanese'],\n\t\t['Kali', 'Kayah_Li'],\n\t\t['Kana', 'Katakana'],\n\t\t['Kawi', 'Kawi'],\n\t\t['Khar', 'Kharoshthi'],\n\t\t['Khmr', 'Khmer'],\n\t\t['Khoj', 'Khojki'],\n\t\t['Kits', 'Khitan_Small_Script'],\n\t\t['Knda', 'Kannada'],\n\t\t['Kthi', 'Kaithi'],\n\t\t['Lana', 'Tai_Tham'],\n\t\t['Laoo', 'Lao'],\n\t\t['Latn', 'Latin'],\n\t\t['Lepc', 'Lepcha'],\n\t\t['Limb', 'Limbu'],\n\t\t['Lina', 'Linear_A'],\n\t\t['Linb', 'Linear_B'],\n\t\t['Lisu', 'Lisu'],\n\t\t['Lyci', 'Lycian'],\n\t\t['Lydi', 'Lydian'],\n\t\t['Mahj', 'Mahajani'],\n\t\t['Maka', 'Makasar'],\n\t\t['Mand', 'Mandaic'],\n\t\t['Mani', 'Manichaean'],\n\t\t['Marc', 'Marchen'],\n\t\t['Medf', 'Medefaidrin'],\n\t\t['Mend', 'Mende_Kikakui'],\n\t\t['Merc', 'Meroitic_Cursive'],\n\t\t['Mero', 'Meroitic_Hieroglyphs'],\n\t\t['Mlym', 'Malayalam'],\n\t\t['Modi', 'Modi'],\n\t\t['Mong', 'Mongolian'],\n\t\t['Mroo', 'Mro'],\n\t\t['Mtei', 'Meetei_Mayek'],\n\t\t['Mult', 'Multani'],\n\t\t['Mymr', 'Myanmar'],\n\t\t['Nagm', 'Nag_Mundari'],\n\t\t['Nand', 'Nandinagari'],\n\t\t['Narb', 'Old_North_Arabian'],\n\t\t['Nbat', 'Nabataean'],\n\t\t['Newa', 'Newa'],\n\t\t['Nkoo', 'Nko'],\n\t\t['Nshu', 'Nushu'],\n\t\t['Ogam', 'Ogham'],\n\t\t['Olck', 'Ol_Chiki'],\n\t\t['Orkh', 'Old_Turkic'],\n\t\t['Orya', 'Oriya'],\n\t\t['Osge', 'Osage'],\n\t\t['Osma', 'Osmanya'],\n\t\t['Ougr', 'Old_Uyghur'],\n\t\t['Palm', 'Palmyrene'],\n\t\t['Pauc', 'Pau_Cin_Hau'],\n\t\t['Perm', 'Old_Permic'],\n\t\t['Phag', 'Phags_Pa'],\n\t\t['Phli', 'Inscriptional_Pahlavi'],\n\t\t['Phlp', 'Psalter_Pahlavi'],\n\t\t['Phnx', 'Phoenician'],\n\t\t['Plrd', 'Miao'],\n\t\t['Prti', 'Inscriptional_Parthian'],\n\t\t['Rjng', 'Rejang'],\n\t\t['Rohg', 'Hanifi_Rohingya'],\n\t\t['Runr', 'Runic'],\n\t\t['Samr', 'Samaritan'],\n\t\t['Sarb', 'Old_South_Arabian'],\n\t\t['Saur', 'Saurashtra'],\n\t\t['Sgnw', 'SignWriting'],\n\t\t['Shaw', 'Shavian'],\n\t\t['Shrd', 'Sharada'],\n\t\t['Sidd', 'Siddham'],\n\t\t['Sind', 'Khudawadi'],\n\t\t['Sinh', 'Sinhala'],\n\t\t['Sogd', 'Sogdian'],\n\t\t['Sogo', 'Old_Sogdian'],\n\t\t['Sora', 'Sora_Sompeng'],\n\t\t['Soyo', 'Soyombo'],\n\t\t['Sund', 'Sundanese'],\n\t\t['Sylo', 'Syloti_Nagri'],\n\t\t['Syrc', 'Syriac'],\n\t\t['Tagb', 'Tagbanwa'],\n\t\t['Takr', 'Takri'],\n\t\t['Tale', 'Tai_Le'],\n\t\t['Talu', 'New_Tai_Lue'],\n\t\t['Taml', 'Tamil'],\n\t\t['Tang', 'Tangut'],\n\t\t['Tavt', 'Tai_Viet'],\n\t\t['Telu', 'Telugu'],\n\t\t['Tfng', 'Tifinagh'],\n\t\t['Tglg', 'Tagalog'],\n\t\t['Thaa', 'Thaana'],\n\t\t['Thai', 'Thai'],\n\t\t['Tibt', 'Tibetan'],\n\t\t['Tirh', 'Tirhuta'],\n\t\t['Tnsa', 'Tangsa'],\n\t\t['Toto', 'Toto'],\n\t\t['Ugar', 'Ugaritic'],\n\t\t['Vaii', 'Vai'],\n\t\t['Vith', 'Vithkuqi'],\n\t\t['Wara', 'Warang_Citi'],\n\t\t['Wcho', 'Wancho'],\n\t\t['Xpeo', 'Old_Persian'],\n\t\t['Xsux', 'Cuneiform'],\n\t\t['Yezi', 'Yezidi'],\n\t\t['Yiii', 'Yi'],\n\t\t['Zanb', 'Zanabazar_Square'],\n\t\t['Zinh', 'Inherited'],\n\t\t['Qaai', 'Inherited'],\n\t\t['Zyyy', 'Common'],\n\t\t['Zzzz', 'Unknown'],\n\t\t['Adlam', 'Adlam'],\n\t\t['Caucasian_Albanian', 'Caucasian_Albanian'],\n\t\t['Arabic', 'Arabic'],\n\t\t['Imperial_Aramaic', 'Imperial_Aramaic'],\n\t\t['Armenian', 'Armenian'],\n\t\t['Avestan', 'Avestan'],\n\t\t['Balinese', 'Balinese'],\n\t\t['Bamum', 'Bamum'],\n\t\t['Bassa_Vah', 'Bassa_Vah'],\n\t\t['Batak', 'Batak'],\n\t\t['Bengali', 'Bengali'],\n\t\t['Bhaiksuki', 'Bhaiksuki'],\n\t\t['Bopomofo', 'Bopomofo'],\n\t\t['Brahmi', 'Brahmi'],\n\t\t['Braille', 'Braille'],\n\t\t['Buginese', 'Buginese'],\n\t\t['Buhid', 'Buhid'],\n\t\t['Chakma', 'Chakma'],\n\t\t['Canadian_Aboriginal', 'Canadian_Aboriginal'],\n\t\t['Carian', 'Carian'],\n\t\t['Cherokee', 'Cherokee'],\n\t\t['Chorasmian', 'Chorasmian'],\n\t\t['Coptic', 'Coptic'],\n\t\t['Cypro_Minoan', 'Cypro_Minoan'],\n\t\t['Cypriot', 'Cypriot'],\n\t\t['Cyrillic', 'Cyrillic'],\n\t\t['Devanagari', 'Devanagari'],\n\t\t['Dives_Akuru', 'Dives_Akuru'],\n\t\t['Dogra', 'Dogra'],\n\t\t['Deseret', 'Deseret'],\n\t\t['Duployan', 'Duployan'],\n\t\t['Egyptian_Hieroglyphs', 'Egyptian_Hieroglyphs'],\n\t\t['Elbasan', 'Elbasan'],\n\t\t['Elymaic', 'Elymaic'],\n\t\t['Ethiopic', 'Ethiopic'],\n\t\t['Georgian', 'Georgian'],\n\t\t['Glagolitic', 'Glagolitic'],\n\t\t['Gunjala_Gondi', 'Gunjala_Gondi'],\n\t\t['Masaram_Gondi', 'Masaram_Gondi'],\n\t\t['Gothic', 'Gothic'],\n\t\t['Grantha', 'Grantha'],\n\t\t['Greek', 'Greek'],\n\t\t['Gujarati', 'Gujarati'],\n\t\t['Gurmukhi', 'Gurmukhi'],\n\t\t['Hangul', 'Hangul'],\n\t\t['Han', 'Han'],\n\t\t['Hanunoo', 'Hanunoo'],\n\t\t['Hatran', 'Hatran'],\n\t\t['Hebrew', 'Hebrew'],\n\t\t['Hiragana', 'Hiragana'],\n\t\t['Anatolian_Hieroglyphs', 'Anatolian_Hieroglyphs'],\n\t\t['Pahawh_Hmong', 'Pahawh_Hmong'],\n\t\t['Nyiakeng_Puachue_Hmong', 'Nyiakeng_Puachue_Hmong'],\n\t\t['Katakana_Or_Hiragana', 'Katakana_Or_Hiragana'],\n\t\t['Old_Hungarian', 'Old_Hungarian'],\n\t\t['Old_Italic', 'Old_Italic'],\n\t\t['Javanese', 'Javanese'],\n\t\t['Kayah_Li', 'Kayah_Li'],\n\t\t['Katakana', 'Katakana'],\n\t\t['Kharoshthi', 'Kharoshthi'],\n\t\t['Khmer', 'Khmer'],\n\t\t['Khojki', 'Khojki'],\n\t\t['Khitan_Small_Script', 'Khitan_Small_Script'],\n\t\t['Kannada', 'Kannada'],\n\t\t['Kaithi', 'Kaithi'],\n\t\t['Tai_Tham', 'Tai_Tham'],\n\t\t['Lao', 'Lao'],\n\t\t['Latin', 'Latin'],\n\t\t['Lepcha', 'Lepcha'],\n\t\t['Limbu', 'Limbu'],\n\t\t['Linear_A', 'Linear_A'],\n\t\t['Linear_B', 'Linear_B'],\n\t\t['Lycian', 'Lycian'],\n\t\t['Lydian', 'Lydian'],\n\t\t['Mahajani', 'Mahajani'],\n\t\t['Makasar', 'Makasar'],\n\t\t['Mandaic', 'Mandaic'],\n\t\t['Manichaean', 'Manichaean'],\n\t\t['Marchen', 'Marchen'],\n\t\t['Medefaidrin', 'Medefaidrin'],\n\t\t['Mende_Kikakui', 'Mende_Kikakui'],\n\t\t['Meroitic_Cursive', 'Meroitic_Cursive'],\n\t\t['Meroitic_Hieroglyphs', 'Meroitic_Hieroglyphs'],\n\t\t['Malayalam', 'Malayalam'],\n\t\t['Mongolian', 'Mongolian'],\n\t\t['Mro', 'Mro'],\n\t\t['Meetei_Mayek', 'Meetei_Mayek'],\n\t\t['Multani', 'Multani'],\n\t\t['Myanmar', 'Myanmar'],\n\t\t['Nag_Mundari', 'Nag_Mundari'],\n\t\t['Nandinagari', 'Nandinagari'],\n\t\t['Old_North_Arabian', 'Old_North_Arabian'],\n\t\t['Nabataean', 'Nabataean'],\n\t\t['Nko', 'Nko'],\n\t\t['Nushu', 'Nushu'],\n\t\t['Ogham', 'Ogham'],\n\t\t['Ol_Chiki', 'Ol_Chiki'],\n\t\t['Old_Turkic', 'Old_Turkic'],\n\t\t['Oriya', 'Oriya'],\n\t\t['Osage', 'Osage'],\n\t\t['Osmanya', 'Osmanya'],\n\t\t['Old_Uyghur', 'Old_Uyghur'],\n\t\t['Palmyrene', 'Palmyrene'],\n\t\t['Pau_Cin_Hau', 'Pau_Cin_Hau'],\n\t\t['Old_Permic', 'Old_Permic'],\n\t\t['Phags_Pa', 'Phags_Pa'],\n\t\t['Inscriptional_Pahlavi', 'Inscriptional_Pahlavi'],\n\t\t['Psalter_Pahlavi', 'Psalter_Pahlavi'],\n\t\t['Phoenician', 'Phoenician'],\n\t\t['Miao', 'Miao'],\n\t\t['Inscriptional_Parthian', 'Inscriptional_Parthian'],\n\t\t['Rejang', 'Rejang'],\n\t\t['Hanifi_Rohingya', 'Hanifi_Rohingya'],\n\t\t['Runic', 'Runic'],\n\t\t['Samaritan', 'Samaritan'],\n\t\t['Old_South_Arabian', 'Old_South_Arabian'],\n\t\t['Saurashtra', 'Saurashtra'],\n\t\t['SignWriting', 'SignWriting'],\n\t\t['Shavian', 'Shavian'],\n\t\t['Sharada', 'Sharada'],\n\t\t['Siddham', 'Siddham'],\n\t\t['Khudawadi', 'Khudawadi'],\n\t\t['Sinhala', 'Sinhala'],\n\t\t['Sogdian', 'Sogdian'],\n\t\t['Old_Sogdian', 'Old_Sogdian'],\n\t\t['Sora_Sompeng', 'Sora_Sompeng'],\n\t\t['Soyombo', 'Soyombo'],\n\t\t['Sundanese', 'Sundanese'],\n\t\t['Syloti_Nagri', 'Syloti_Nagri'],\n\t\t['Syriac', 'Syriac'],\n\t\t['Tagbanwa', 'Tagbanwa'],\n\t\t['Takri', 'Takri'],\n\t\t['Tai_Le', 'Tai_Le'],\n\t\t['New_Tai_Lue', 'New_Tai_Lue'],\n\t\t['Tamil', 'Tamil'],\n\t\t['Tangut', 'Tangut'],\n\t\t['Tai_Viet', 'Tai_Viet'],\n\t\t['Telugu', 'Telugu'],\n\t\t['Tifinagh', 'Tifinagh'],\n\t\t['Tagalog', 'Tagalog'],\n\t\t['Thaana', 'Thaana'],\n\t\t['Tibetan', 'Tibetan'],\n\t\t['Tirhuta', 'Tirhuta'],\n\t\t['Tangsa', 'Tangsa'],\n\t\t['Ugaritic', 'Ugaritic'],\n\t\t['Vai', 'Vai'],\n\t\t['Vithkuqi', 'Vithkuqi'],\n\t\t['Warang_Citi', 'Warang_Citi'],\n\t\t['Wancho', 'Wancho'],\n\t\t['Old_Persian', 'Old_Persian'],\n\t\t['Cuneiform', 'Cuneiform'],\n\t\t['Yezidi', 'Yezidi'],\n\t\t['Yi', 'Yi'],\n\t\t['Zanabazar_Square', 'Zanabazar_Square'],\n\t\t['Inherited', 'Inherited'],\n\t\t['Common', 'Common'],\n\t\t['Unknown', 'Unknown']\n\t])]\n]);\n","module.exports = new Map([\n\t[0x4B, 0x212A],\n\t[0x53, 0x17F],\n\t[0x6B, 0x212A],\n\t[0x73, 0x17F],\n\t[0xB5, 0x39C],\n\t[0xC5, 0x212B],\n\t[0xDF, 0x1E9E],\n\t[0xE5, 0x212B],\n\t[0x17F, 0x53],\n\t[0x1C4, 0x1C5],\n\t[0x1C5, 0x1C4],\n\t[0x1C7, 0x1C8],\n\t[0x1C8, 0x1C7],\n\t[0x1CA, 0x1CB],\n\t[0x1CB, 0x1CA],\n\t[0x1F1, 0x1F2],\n\t[0x1F2, 0x1F1],\n\t[0x345, 0x1FBE],\n\t[0x392, 0x3D0],\n\t[0x395, 0x3F5],\n\t[0x398, 0x3F4],\n\t[0x399, 0x1FBE],\n\t[0x39A, 0x3F0],\n\t[0x39C, 0xB5],\n\t[0x3A0, 0x3D6],\n\t[0x3A1, 0x3F1],\n\t[0x3A3, 0x3C2],\n\t[0x3A6, 0x3D5],\n\t[0x3A9, 0x2126],\n\t[0x3B8, 0x3F4],\n\t[0x3C2, 0x3A3],\n\t[0x3C9, 0x2126],\n\t[0x3D0, 0x392],\n\t[0x3D1, 0x3F4],\n\t[0x3D5, 0x3A6],\n\t[0x3D6, 0x3A0],\n\t[0x3F0, 0x39A],\n\t[0x3F1, 0x3A1],\n\t[0x3F4, [\n\t\t0x398,\n\t\t0x3D1,\n\t\t0x3B8\n\t]],\n\t[0x3F5, 0x395],\n\t[0x412, 0x1C80],\n\t[0x414, 0x1C81],\n\t[0x41E, 0x1C82],\n\t[0x421, 0x1C83],\n\t[0x422, 0x1C85],\n\t[0x42A, 0x1C86],\n\t[0x462, 0x1C87],\n\t[0x1C80, 0x412],\n\t[0x1C81, 0x414],\n\t[0x1C82, 0x41E],\n\t[0x1C83, 0x421],\n\t[0x1C84, 0x1C85],\n\t[0x1C85, [\n\t\t0x422,\n\t\t0x1C84\n\t]],\n\t[0x1C86, 0x42A],\n\t[0x1C87, 0x462],\n\t[0x1C88, 0xA64A],\n\t[0x1E60, 0x1E9B],\n\t[0x1E9B, 0x1E60],\n\t[0x1E9E, 0xDF],\n\t[0x1F80, 0x1F88],\n\t[0x1F81, 0x1F89],\n\t[0x1F82, 0x1F8A],\n\t[0x1F83, 0x1F8B],\n\t[0x1F84, 0x1F8C],\n\t[0x1F85, 0x1F8D],\n\t[0x1F86, 0x1F8E],\n\t[0x1F87, 0x1F8F],\n\t[0x1F88, 0x1F80],\n\t[0x1F89, 0x1F81],\n\t[0x1F8A, 0x1F82],\n\t[0x1F8B, 0x1F83],\n\t[0x1F8C, 0x1F84],\n\t[0x1F8D, 0x1F85],\n\t[0x1F8E, 0x1F86],\n\t[0x1F8F, 0x1F87],\n\t[0x1F90, 0x1F98],\n\t[0x1F91, 0x1F99],\n\t[0x1F92, 0x1F9A],\n\t[0x1F93, 0x1F9B],\n\t[0x1F94, 0x1F9C],\n\t[0x1F95, 0x1F9D],\n\t[0x1F96, 0x1F9E],\n\t[0x1F97, 0x1F9F],\n\t[0x1F98, 0x1F90],\n\t[0x1F99, 0x1F91],\n\t[0x1F9A, 0x1F92],\n\t[0x1F9B, 0x1F93],\n\t[0x1F9C, 0x1F94],\n\t[0x1F9D, 0x1F95],\n\t[0x1F9E, 0x1F96],\n\t[0x1F9F, 0x1F97],\n\t[0x1FA0, 0x1FA8],\n\t[0x1FA1, 0x1FA9],\n\t[0x1FA2, 0x1FAA],\n\t[0x1FA3, 0x1FAB],\n\t[0x1FA4, 0x1FAC],\n\t[0x1FA5, 0x1FAD],\n\t[0x1FA6, 0x1FAE],\n\t[0x1FA7, 0x1FAF],\n\t[0x1FA8, 0x1FA0],\n\t[0x1FA9, 0x1FA1],\n\t[0x1FAA, 0x1FA2],\n\t[0x1FAB, 0x1FA3],\n\t[0x1FAC, 0x1FA4],\n\t[0x1FAD, 0x1FA5],\n\t[0x1FAE, 0x1FA6],\n\t[0x1FAF, 0x1FA7],\n\t[0x1FB3, 0x1FBC],\n\t[0x1FBC, 0x1FB3],\n\t[0x1FBE, [\n\t\t0x345,\n\t\t0x399\n\t]],\n\t[0x1FC3, 0x1FCC],\n\t[0x1FCC, 0x1FC3],\n\t[0x1FF3, 0x1FFC],\n\t[0x1FFC, 0x1FF3],\n\t[0x2126, [\n\t\t0x3A9,\n\t\t0x3C9\n\t]],\n\t[0x212A, 0x4B],\n\t[0x212B, [\n\t\t0xC5,\n\t\t0xE5\n\t]],\n\t[0xA64A, 0x1C88],\n\t[0x10400, 0x10428],\n\t[0x10401, 0x10429],\n\t[0x10402, 0x1042A],\n\t[0x10403, 0x1042B],\n\t[0x10404, 0x1042C],\n\t[0x10405, 0x1042D],\n\t[0x10406, 0x1042E],\n\t[0x10407, 0x1042F],\n\t[0x10408, 0x10430],\n\t[0x10409, 0x10431],\n\t[0x1040A, 0x10432],\n\t[0x1040B, 0x10433],\n\t[0x1040C, 0x10434],\n\t[0x1040D, 0x10435],\n\t[0x1040E, 0x10436],\n\t[0x1040F, 0x10437],\n\t[0x10410, 0x10438],\n\t[0x10411, 0x10439],\n\t[0x10412, 0x1043A],\n\t[0x10413, 0x1043B],\n\t[0x10414, 0x1043C],\n\t[0x10415, 0x1043D],\n\t[0x10416, 0x1043E],\n\t[0x10417, 0x1043F],\n\t[0x10418, 0x10440],\n\t[0x10419, 0x10441],\n\t[0x1041A, 0x10442],\n\t[0x1041B, 0x10443],\n\t[0x1041C, 0x10444],\n\t[0x1041D, 0x10445],\n\t[0x1041E, 0x10446],\n\t[0x1041F, 0x10447],\n\t[0x10420, 0x10448],\n\t[0x10421, 0x10449],\n\t[0x10422, 0x1044A],\n\t[0x10423, 0x1044B],\n\t[0x10424, 0x1044C],\n\t[0x10425, 0x1044D],\n\t[0x10426, 0x1044E],\n\t[0x10427, 0x1044F],\n\t[0x10428, 0x10400],\n\t[0x10429, 0x10401],\n\t[0x1042A, 0x10402],\n\t[0x1042B, 0x10403],\n\t[0x1042C, 0x10404],\n\t[0x1042D, 0x10405],\n\t[0x1042E, 0x10406],\n\t[0x1042F, 0x10407],\n\t[0x10430, 0x10408],\n\t[0x10431, 0x10409],\n\t[0x10432, 0x1040A],\n\t[0x10433, 0x1040B],\n\t[0x10434, 0x1040C],\n\t[0x10435, 0x1040D],\n\t[0x10436, 0x1040E],\n\t[0x10437, 0x1040F],\n\t[0x10438, 0x10410],\n\t[0x10439, 0x10411],\n\t[0x1043A, 0x10412],\n\t[0x1043B, 0x10413],\n\t[0x1043C, 0x10414],\n\t[0x1043D, 0x10415],\n\t[0x1043E, 0x10416],\n\t[0x1043F, 0x10417],\n\t[0x10440, 0x10418],\n\t[0x10441, 0x10419],\n\t[0x10442, 0x1041A],\n\t[0x10443, 0x1041B],\n\t[0x10444, 0x1041C],\n\t[0x10445, 0x1041D],\n\t[0x10446, 0x1041E],\n\t[0x10447, 0x1041F],\n\t[0x10448, 0x10420],\n\t[0x10449, 0x10421],\n\t[0x1044A, 0x10422],\n\t[0x1044B, 0x10423],\n\t[0x1044C, 0x10424],\n\t[0x1044D, 0x10425],\n\t[0x1044E, 0x10426],\n\t[0x1044F, 0x10427],\n\t[0x104B0, 0x104D8],\n\t[0x104B1, 0x104D9],\n\t[0x104B2, 0x104DA],\n\t[0x104B3, 0x104DB],\n\t[0x104B4, 0x104DC],\n\t[0x104B5, 0x104DD],\n\t[0x104B6, 0x104DE],\n\t[0x104B7, 0x104DF],\n\t[0x104B8, 0x104E0],\n\t[0x104B9, 0x104E1],\n\t[0x104BA, 0x104E2],\n\t[0x104BB, 0x104E3],\n\t[0x104BC, 0x104E4],\n\t[0x104BD, 0x104E5],\n\t[0x104BE, 0x104E6],\n\t[0x104BF, 0x104E7],\n\t[0x104C0, 0x104E8],\n\t[0x104C1, 0x104E9],\n\t[0x104C2, 0x104EA],\n\t[0x104C3, 0x104EB],\n\t[0x104C4, 0x104EC],\n\t[0x104C5, 0x104ED],\n\t[0x104C6, 0x104EE],\n\t[0x104C7, 0x104EF],\n\t[0x104C8, 0x104F0],\n\t[0x104C9, 0x104F1],\n\t[0x104CA, 0x104F2],\n\t[0x104CB, 0x104F3],\n\t[0x104CC, 0x104F4],\n\t[0x104CD, 0x104F5],\n\t[0x104CE, 0x104F6],\n\t[0x104CF, 0x104F7],\n\t[0x104D0, 0x104F8],\n\t[0x104D1, 0x104F9],\n\t[0x104D2, 0x104FA],\n\t[0x104D3, 0x104FB],\n\t[0x104D8, 0x104B0],\n\t[0x104D9, 0x104B1],\n\t[0x104DA, 0x104B2],\n\t[0x104DB, 0x104B3],\n\t[0x104DC, 0x104B4],\n\t[0x104DD, 0x104B5],\n\t[0x104DE, 0x104B6],\n\t[0x104DF, 0x104B7],\n\t[0x104E0, 0x104B8],\n\t[0x104E1, 0x104B9],\n\t[0x104E2, 0x104BA],\n\t[0x104E3, 0x104BB],\n\t[0x104E4, 0x104BC],\n\t[0x104E5, 0x104BD],\n\t[0x104E6, 0x104BE],\n\t[0x104E7, 0x104BF],\n\t[0x104E8, 0x104C0],\n\t[0x104E9, 0x104C1],\n\t[0x104EA, 0x104C2],\n\t[0x104EB, 0x104C3],\n\t[0x104EC, 0x104C4],\n\t[0x104ED, 0x104C5],\n\t[0x104EE, 0x104C6],\n\t[0x104EF, 0x104C7],\n\t[0x104F0, 0x104C8],\n\t[0x104F1, 0x104C9],\n\t[0x104F2, 0x104CA],\n\t[0x104F3, 0x104CB],\n\t[0x104F4, 0x104CC],\n\t[0x104F5, 0x104CD],\n\t[0x104F6, 0x104CE],\n\t[0x104F7, 0x104CF],\n\t[0x104F8, 0x104D0],\n\t[0x104F9, 0x104D1],\n\t[0x104FA, 0x104D2],\n\t[0x104FB, 0x104D3],\n\t[0x10570, 0x10597],\n\t[0x10571, 0x10598],\n\t[0x10572, 0x10599],\n\t[0x10573, 0x1059A],\n\t[0x10574, 0x1059B],\n\t[0x10575, 0x1059C],\n\t[0x10576, 0x1059D],\n\t[0x10577, 0x1059E],\n\t[0x10578, 0x1059F],\n\t[0x10579, 0x105A0],\n\t[0x1057A, 0x105A1],\n\t[0x1057C, 0x105A3],\n\t[0x1057D, 0x105A4],\n\t[0x1057E, 0x105A5],\n\t[0x1057F, 0x105A6],\n\t[0x10580, 0x105A7],\n\t[0x10581, 0x105A8],\n\t[0x10582, 0x105A9],\n\t[0x10583, 0x105AA],\n\t[0x10584, 0x105AB],\n\t[0x10585, 0x105AC],\n\t[0x10586, 0x105AD],\n\t[0x10587, 0x105AE],\n\t[0x10588, 0x105AF],\n\t[0x10589, 0x105B0],\n\t[0x1058A, 0x105B1],\n\t[0x1058C, 0x105B3],\n\t[0x1058D, 0x105B4],\n\t[0x1058E, 0x105B5],\n\t[0x1058F, 0x105B6],\n\t[0x10590, 0x105B7],\n\t[0x10591, 0x105B8],\n\t[0x10592, 0x105B9],\n\t[0x10594, 0x105BB],\n\t[0x10595, 0x105BC],\n\t[0x10597, 0x10570],\n\t[0x10598, 0x10571],\n\t[0x10599, 0x10572],\n\t[0x1059A, 0x10573],\n\t[0x1059B, 0x10574],\n\t[0x1059C, 0x10575],\n\t[0x1059D, 0x10576],\n\t[0x1059E, 0x10577],\n\t[0x1059F, 0x10578],\n\t[0x105A0, 0x10579],\n\t[0x105A1, 0x1057A],\n\t[0x105A3, 0x1057C],\n\t[0x105A4, 0x1057D],\n\t[0x105A5, 0x1057E],\n\t[0x105A6, 0x1057F],\n\t[0x105A7, 0x10580],\n\t[0x105A8, 0x10581],\n\t[0x105A9, 0x10582],\n\t[0x105AA, 0x10583],\n\t[0x105AB, 0x10584],\n\t[0x105AC, 0x10585],\n\t[0x105AD, 0x10586],\n\t[0x105AE, 0x10587],\n\t[0x105AF, 0x10588],\n\t[0x105B0, 0x10589],\n\t[0x105B1, 0x1058A],\n\t[0x105B3, 0x1058C],\n\t[0x105B4, 0x1058D],\n\t[0x105B5, 0x1058E],\n\t[0x105B6, 0x1058F],\n\t[0x105B7, 0x10590],\n\t[0x105B8, 0x10591],\n\t[0x105B9, 0x10592],\n\t[0x105BB, 0x10594],\n\t[0x105BC, 0x10595],\n\t[0x10C80, 0x10CC0],\n\t[0x10C81, 0x10CC1],\n\t[0x10C82, 0x10CC2],\n\t[0x10C83, 0x10CC3],\n\t[0x10C84, 0x10CC4],\n\t[0x10C85, 0x10CC5],\n\t[0x10C86, 0x10CC6],\n\t[0x10C87, 0x10CC7],\n\t[0x10C88, 0x10CC8],\n\t[0x10C89, 0x10CC9],\n\t[0x10C8A, 0x10CCA],\n\t[0x10C8B, 0x10CCB],\n\t[0x10C8C, 0x10CCC],\n\t[0x10C8D, 0x10CCD],\n\t[0x10C8E, 0x10CCE],\n\t[0x10C8F, 0x10CCF],\n\t[0x10C90, 0x10CD0],\n\t[0x10C91, 0x10CD1],\n\t[0x10C92, 0x10CD2],\n\t[0x10C93, 0x10CD3],\n\t[0x10C94, 0x10CD4],\n\t[0x10C95, 0x10CD5],\n\t[0x10C96, 0x10CD6],\n\t[0x10C97, 0x10CD7],\n\t[0x10C98, 0x10CD8],\n\t[0x10C99, 0x10CD9],\n\t[0x10C9A, 0x10CDA],\n\t[0x10C9B, 0x10CDB],\n\t[0x10C9C, 0x10CDC],\n\t[0x10C9D, 0x10CDD],\n\t[0x10C9E, 0x10CDE],\n\t[0x10C9F, 0x10CDF],\n\t[0x10CA0, 0x10CE0],\n\t[0x10CA1, 0x10CE1],\n\t[0x10CA2, 0x10CE2],\n\t[0x10CA3, 0x10CE3],\n\t[0x10CA4, 0x10CE4],\n\t[0x10CA5, 0x10CE5],\n\t[0x10CA6, 0x10CE6],\n\t[0x10CA7, 0x10CE7],\n\t[0x10CA8, 0x10CE8],\n\t[0x10CA9, 0x10CE9],\n\t[0x10CAA, 0x10CEA],\n\t[0x10CAB, 0x10CEB],\n\t[0x10CAC, 0x10CEC],\n\t[0x10CAD, 0x10CED],\n\t[0x10CAE, 0x10CEE],\n\t[0x10CAF, 0x10CEF],\n\t[0x10CB0, 0x10CF0],\n\t[0x10CB1, 0x10CF1],\n\t[0x10CB2, 0x10CF2],\n\t[0x10CC0, 0x10C80],\n\t[0x10CC1, 0x10C81],\n\t[0x10CC2, 0x10C82],\n\t[0x10CC3, 0x10C83],\n\t[0x10CC4, 0x10C84],\n\t[0x10CC5, 0x10C85],\n\t[0x10CC6, 0x10C86],\n\t[0x10CC7, 0x10C87],\n\t[0x10CC8, 0x10C88],\n\t[0x10CC9, 0x10C89],\n\t[0x10CCA, 0x10C8A],\n\t[0x10CCB, 0x10C8B],\n\t[0x10CCC, 0x10C8C],\n\t[0x10CCD, 0x10C8D],\n\t[0x10CCE, 0x10C8E],\n\t[0x10CCF, 0x10C8F],\n\t[0x10CD0, 0x10C90],\n\t[0x10CD1, 0x10C91],\n\t[0x10CD2, 0x10C92],\n\t[0x10CD3, 0x10C93],\n\t[0x10CD4, 0x10C94],\n\t[0x10CD5, 0x10C95],\n\t[0x10CD6, 0x10C96],\n\t[0x10CD7, 0x10C97],\n\t[0x10CD8, 0x10C98],\n\t[0x10CD9, 0x10C99],\n\t[0x10CDA, 0x10C9A],\n\t[0x10CDB, 0x10C9B],\n\t[0x10CDC, 0x10C9C],\n\t[0x10CDD, 0x10C9D],\n\t[0x10CDE, 0x10C9E],\n\t[0x10CDF, 0x10C9F],\n\t[0x10CE0, 0x10CA0],\n\t[0x10CE1, 0x10CA1],\n\t[0x10CE2, 0x10CA2],\n\t[0x10CE3, 0x10CA3],\n\t[0x10CE4, 0x10CA4],\n\t[0x10CE5, 0x10CA5],\n\t[0x10CE6, 0x10CA6],\n\t[0x10CE7, 0x10CA7],\n\t[0x10CE8, 0x10CA8],\n\t[0x10CE9, 0x10CA9],\n\t[0x10CEA, 0x10CAA],\n\t[0x10CEB, 0x10CAB],\n\t[0x10CEC, 0x10CAC],\n\t[0x10CED, 0x10CAD],\n\t[0x10CEE, 0x10CAE],\n\t[0x10CEF, 0x10CAF],\n\t[0x10CF0, 0x10CB0],\n\t[0x10CF1, 0x10CB1],\n\t[0x10CF2, 0x10CB2],\n\t[0x118A0, 0x118C0],\n\t[0x118A1, 0x118C1],\n\t[0x118A2, 0x118C2],\n\t[0x118A3, 0x118C3],\n\t[0x118A4, 0x118C4],\n\t[0x118A5, 0x118C5],\n\t[0x118A6, 0x118C6],\n\t[0x118A7, 0x118C7],\n\t[0x118A8, 0x118C8],\n\t[0x118A9, 0x118C9],\n\t[0x118AA, 0x118CA],\n\t[0x118AB, 0x118CB],\n\t[0x118AC, 0x118CC],\n\t[0x118AD, 0x118CD],\n\t[0x118AE, 0x118CE],\n\t[0x118AF, 0x118CF],\n\t[0x118B0, 0x118D0],\n\t[0x118B1, 0x118D1],\n\t[0x118B2, 0x118D2],\n\t[0x118B3, 0x118D3],\n\t[0x118B4, 0x118D4],\n\t[0x118B5, 0x118D5],\n\t[0x118B6, 0x118D6],\n\t[0x118B7, 0x118D7],\n\t[0x118B8, 0x118D8],\n\t[0x118B9, 0x118D9],\n\t[0x118BA, 0x118DA],\n\t[0x118BB, 0x118DB],\n\t[0x118BC, 0x118DC],\n\t[0x118BD, 0x118DD],\n\t[0x118BE, 0x118DE],\n\t[0x118BF, 0x118DF],\n\t[0x118C0, 0x118A0],\n\t[0x118C1, 0x118A1],\n\t[0x118C2, 0x118A2],\n\t[0x118C3, 0x118A3],\n\t[0x118C4, 0x118A4],\n\t[0x118C5, 0x118A5],\n\t[0x118C6, 0x118A6],\n\t[0x118C7, 0x118A7],\n\t[0x118C8, 0x118A8],\n\t[0x118C9, 0x118A9],\n\t[0x118CA, 0x118AA],\n\t[0x118CB, 0x118AB],\n\t[0x118CC, 0x118AC],\n\t[0x118CD, 0x118AD],\n\t[0x118CE, 0x118AE],\n\t[0x118CF, 0x118AF],\n\t[0x118D0, 0x118B0],\n\t[0x118D1, 0x118B1],\n\t[0x118D2, 0x118B2],\n\t[0x118D3, 0x118B3],\n\t[0x118D4, 0x118B4],\n\t[0x118D5, 0x118B5],\n\t[0x118D6, 0x118B6],\n\t[0x118D7, 0x118B7],\n\t[0x118D8, 0x118B8],\n\t[0x118D9, 0x118B9],\n\t[0x118DA, 0x118BA],\n\t[0x118DB, 0x118BB],\n\t[0x118DC, 0x118BC],\n\t[0x118DD, 0x118BD],\n\t[0x118DE, 0x118BE],\n\t[0x118DF, 0x118BF],\n\t[0x16E40, 0x16E60],\n\t[0x16E41, 0x16E61],\n\t[0x16E42, 0x16E62],\n\t[0x16E43, 0x16E63],\n\t[0x16E44, 0x16E64],\n\t[0x16E45, 0x16E65],\n\t[0x16E46, 0x16E66],\n\t[0x16E47, 0x16E67],\n\t[0x16E48, 0x16E68],\n\t[0x16E49, 0x16E69],\n\t[0x16E4A, 0x16E6A],\n\t[0x16E4B, 0x16E6B],\n\t[0x16E4C, 0x16E6C],\n\t[0x16E4D, 0x16E6D],\n\t[0x16E4E, 0x16E6E],\n\t[0x16E4F, 0x16E6F],\n\t[0x16E50, 0x16E70],\n\t[0x16E51, 0x16E71],\n\t[0x16E52, 0x16E72],\n\t[0x16E53, 0x16E73],\n\t[0x16E54, 0x16E74],\n\t[0x16E55, 0x16E75],\n\t[0x16E56, 0x16E76],\n\t[0x16E57, 0x16E77],\n\t[0x16E58, 0x16E78],\n\t[0x16E59, 0x16E79],\n\t[0x16E5A, 0x16E7A],\n\t[0x16E5B, 0x16E7B],\n\t[0x16E5C, 0x16E7C],\n\t[0x16E5D, 0x16E7D],\n\t[0x16E5E, 0x16E7E],\n\t[0x16E5F, 0x16E7F],\n\t[0x16E60, 0x16E40],\n\t[0x16E61, 0x16E41],\n\t[0x16E62, 0x16E42],\n\t[0x16E63, 0x16E43],\n\t[0x16E64, 0x16E44],\n\t[0x16E65, 0x16E45],\n\t[0x16E66, 0x16E46],\n\t[0x16E67, 0x16E47],\n\t[0x16E68, 0x16E48],\n\t[0x16E69, 0x16E49],\n\t[0x16E6A, 0x16E4A],\n\t[0x16E6B, 0x16E4B],\n\t[0x16E6C, 0x16E4C],\n\t[0x16E6D, 0x16E4D],\n\t[0x16E6E, 0x16E4E],\n\t[0x16E6F, 0x16E4F],\n\t[0x16E70, 0x16E50],\n\t[0x16E71, 0x16E51],\n\t[0x16E72, 0x16E52],\n\t[0x16E73, 0x16E53],\n\t[0x16E74, 0x16E54],\n\t[0x16E75, 0x16E55],\n\t[0x16E76, 0x16E56],\n\t[0x16E77, 0x16E57],\n\t[0x16E78, 0x16E58],\n\t[0x16E79, 0x16E59],\n\t[0x16E7A, 0x16E5A],\n\t[0x16E7B, 0x16E5B],\n\t[0x16E7C, 0x16E5C],\n\t[0x16E7D, 0x16E5D],\n\t[0x16E7E, 0x16E5E],\n\t[0x16E7F, 0x16E5F],\n\t[0x1E900, 0x1E922],\n\t[0x1E901, 0x1E923],\n\t[0x1E902, 0x1E924],\n\t[0x1E903, 0x1E925],\n\t[0x1E904, 0x1E926],\n\t[0x1E905, 0x1E927],\n\t[0x1E906, 0x1E928],\n\t[0x1E907, 0x1E929],\n\t[0x1E908, 0x1E92A],\n\t[0x1E909, 0x1E92B],\n\t[0x1E90A, 0x1E92C],\n\t[0x1E90B, 0x1E92D],\n\t[0x1E90C, 0x1E92E],\n\t[0x1E90D, 0x1E92F],\n\t[0x1E90E, 0x1E930],\n\t[0x1E90F, 0x1E931],\n\t[0x1E910, 0x1E932],\n\t[0x1E911, 0x1E933],\n\t[0x1E912, 0x1E934],\n\t[0x1E913, 0x1E935],\n\t[0x1E914, 0x1E936],\n\t[0x1E915, 0x1E937],\n\t[0x1E916, 0x1E938],\n\t[0x1E917, 0x1E939],\n\t[0x1E918, 0x1E93A],\n\t[0x1E919, 0x1E93B],\n\t[0x1E91A, 0x1E93C],\n\t[0x1E91B, 0x1E93D],\n\t[0x1E91C, 0x1E93E],\n\t[0x1E91D, 0x1E93F],\n\t[0x1E91E, 0x1E940],\n\t[0x1E91F, 0x1E941],\n\t[0x1E920, 0x1E942],\n\t[0x1E921, 0x1E943],\n\t[0x1E922, 0x1E900],\n\t[0x1E923, 0x1E901],\n\t[0x1E924, 0x1E902],\n\t[0x1E925, 0x1E903],\n\t[0x1E926, 0x1E904],\n\t[0x1E927, 0x1E905],\n\t[0x1E928, 0x1E906],\n\t[0x1E929, 0x1E907],\n\t[0x1E92A, 0x1E908],\n\t[0x1E92B, 0x1E909],\n\t[0x1E92C, 0x1E90A],\n\t[0x1E92D, 0x1E90B],\n\t[0x1E92E, 0x1E90C],\n\t[0x1E92F, 0x1E90D],\n\t[0x1E930, 0x1E90E],\n\t[0x1E931, 0x1E90F],\n\t[0x1E932, 0x1E910],\n\t[0x1E933, 0x1E911],\n\t[0x1E934, 0x1E912],\n\t[0x1E935, 0x1E913],\n\t[0x1E936, 0x1E914],\n\t[0x1E937, 0x1E915],\n\t[0x1E938, 0x1E916],\n\t[0x1E939, 0x1E917],\n\t[0x1E93A, 0x1E918],\n\t[0x1E93B, 0x1E919],\n\t[0x1E93C, 0x1E91A],\n\t[0x1E93D, 0x1E91B],\n\t[0x1E93E, 0x1E91C],\n\t[0x1E93F, 0x1E91D],\n\t[0x1E940, 0x1E91E],\n\t[0x1E941, 0x1E91F],\n\t[0x1E942, 0x1E920],\n\t[0x1E943, 0x1E921]\n]);\n","// Generated using `npm run build`. Do not edit.\n'use strict';\n\nconst regenerate = require('regenerate');\n\nexports.REGULAR = new Map([\n\t['d', regenerate()\n\t\t.addRange(0x30, 0x39)],\n\t['D', regenerate()\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0xFFFF)],\n\t['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF)\n\t\t.addRange(0x9, 0xD)\n\t\t.addRange(0x2000, 0x200A)\n\t\t.addRange(0x2028, 0x2029)],\n\t['S', regenerate()\n\t\t.addRange(0x0, 0x8)\n\t\t.addRange(0xE, 0x1F)\n\t\t.addRange(0x21, 0x9F)\n\t\t.addRange(0xA1, 0x167F)\n\t\t.addRange(0x1681, 0x1FFF)\n\t\t.addRange(0x200B, 0x2027)\n\t\t.addRange(0x202A, 0x202E)\n\t\t.addRange(0x2030, 0x205E)\n\t\t.addRange(0x2060, 0x2FFF)\n\t\t.addRange(0x3001, 0xFEFE)\n\t\t.addRange(0xFF00, 0xFFFF)],\n\t['w', regenerate(0x5F)\n\t\t.addRange(0x30, 0x39)\n\t\t.addRange(0x41, 0x5A)\n\t\t.addRange(0x61, 0x7A)],\n\t['W', regenerate(0x60)\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0x40)\n\t\t.addRange(0x5B, 0x5E)\n\t\t.addRange(0x7B, 0xFFFF)]\n]);\n\nexports.UNICODE = new Map([\n\t['d', regenerate()\n\t\t.addRange(0x30, 0x39)],\n\t['D', regenerate()\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0x10FFFF)],\n\t['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF)\n\t\t.addRange(0x9, 0xD)\n\t\t.addRange(0x2000, 0x200A)\n\t\t.addRange(0x2028, 0x2029)],\n\t['S', regenerate()\n\t\t.addRange(0x0, 0x8)\n\t\t.addRange(0xE, 0x1F)\n\t\t.addRange(0x21, 0x9F)\n\t\t.addRange(0xA1, 0x167F)\n\t\t.addRange(0x1681, 0x1FFF)\n\t\t.addRange(0x200B, 0x2027)\n\t\t.addRange(0x202A, 0x202E)\n\t\t.addRange(0x2030, 0x205E)\n\t\t.addRange(0x2060, 0x2FFF)\n\t\t.addRange(0x3001, 0xFEFE)\n\t\t.addRange(0xFF00, 0x10FFFF)],\n\t['w', regenerate(0x5F)\n\t\t.addRange(0x30, 0x39)\n\t\t.addRange(0x41, 0x5A)\n\t\t.addRange(0x61, 0x7A)],\n\t['W', regenerate(0x60)\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0x40)\n\t\t.addRange(0x5B, 0x5E)\n\t\t.addRange(0x7B, 0x10FFFF)]\n]);\n\nexports.UNICODE_IGNORE_CASE = new Map([\n\t['d', regenerate()\n\t\t.addRange(0x30, 0x39)],\n\t['D', regenerate()\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0x10FFFF)],\n\t['s', regenerate(0x20, 0xA0, 0x1680, 0x202F, 0x205F, 0x3000, 0xFEFF)\n\t\t.addRange(0x9, 0xD)\n\t\t.addRange(0x2000, 0x200A)\n\t\t.addRange(0x2028, 0x2029)],\n\t['S', regenerate()\n\t\t.addRange(0x0, 0x8)\n\t\t.addRange(0xE, 0x1F)\n\t\t.addRange(0x21, 0x9F)\n\t\t.addRange(0xA1, 0x167F)\n\t\t.addRange(0x1681, 0x1FFF)\n\t\t.addRange(0x200B, 0x2027)\n\t\t.addRange(0x202A, 0x202E)\n\t\t.addRange(0x2030, 0x205E)\n\t\t.addRange(0x2060, 0x2FFF)\n\t\t.addRange(0x3001, 0xFEFE)\n\t\t.addRange(0xFF00, 0x10FFFF)],\n\t['w', regenerate(0x5F, 0x17F, 0x212A)\n\t\t.addRange(0x30, 0x39)\n\t\t.addRange(0x41, 0x5A)\n\t\t.addRange(0x61, 0x7A)],\n\t['W', regenerate(0x60)\n\t\t.addRange(0x0, 0x2F)\n\t\t.addRange(0x3A, 0x40)\n\t\t.addRange(0x5B, 0x5E)\n\t\t.addRange(0x7B, 0x17E)\n\t\t.addRange(0x180, 0x2129)\n\t\t.addRange(0x212B, 0x10FFFF)]\n]);\n","'use strict';\n\nconst generate = require('@babel/regjsgen').generate;\nconst parse = require('regjsparser').parse;\nconst regenerate = require('regenerate');\nconst unicodeMatchProperty = require('unicode-match-property-ecmascript');\nconst unicodeMatchPropertyValue = require('unicode-match-property-value-ecmascript');\nconst iuMappings = require('./data/iu-mappings.js');\nconst ESCAPE_SETS = require('./data/character-class-escape-sets.js');\n\nfunction flatMap(array, callback) {\n\tconst result = [];\n\tarray.forEach(item => {\n\t\tconst res = callback(item);\n\t\tif (Array.isArray(res)) {\n\t\t\tresult.push.apply(result, res);\n\t\t} else {\n\t\t\tresult.push(res);\n\t\t}\n\t});\n\treturn result;\n}\n\nconst SPECIAL_CHARS = /([\\\\^$.*+?()[\\]{}|])/g;\n\n// Prepare a Regenerate set containing all code points, used for negative\n// character classes (if any).\nconst UNICODE_SET = regenerate().addRange(0x0, 0x10FFFF);\n\nconst ASTRAL_SET = regenerate().addRange(0x10000, 0x10FFFF);\n\nconst NEWLINE_SET = regenerate().add(\n\t// `LineTerminator`s (https://mths.be/es6#sec-line-terminators):\n\t0x000A, // Line Feed \n\t0x000D, // Carriage Return \n\t0x2028, // Line Separator \n\t0x2029 // Paragraph Separator \n);\n\n// Prepare a Regenerate set containing all code points that are supposed to be\n// matched by `/./u`. https://mths.be/es6#sec-atom\nconst DOT_SET_UNICODE = UNICODE_SET.clone() // all Unicode code points\n\t.remove(NEWLINE_SET);\n\nconst getCharacterClassEscapeSet = (character, unicode, ignoreCase) => {\n\tif (unicode) {\n\t\tif (ignoreCase) {\n\t\t\treturn ESCAPE_SETS.UNICODE_IGNORE_CASE.get(character);\n\t\t}\n\t\treturn ESCAPE_SETS.UNICODE.get(character);\n\t}\n\treturn ESCAPE_SETS.REGULAR.get(character);\n};\n\nconst getUnicodeDotSet = (dotAll) => {\n\treturn dotAll ? UNICODE_SET : DOT_SET_UNICODE;\n};\n\nconst getUnicodePropertyValueSet = (property, value) => {\n\tconst path = value ?\n\t\t`${ property }/${ value }` :\n\t\t`Binary_Property/${ property }`;\n\ttry {\n\t\treturn require(`regenerate-unicode-properties/${ path }.js`);\n\t} catch (exception) {\n\t\tthrow new Error(\n\t\t\t`Failed to recognize value \\`${ value }\\` for property ` +\n\t\t\t`\\`${ property }\\`.`\n\t\t);\n\t}\n};\n\nconst handleLoneUnicodePropertyNameOrValue = (value) => {\n\t// It could be a `General_Category` value or a binary property.\n\t// Note: `unicodeMatchPropertyValue` throws on invalid values.\n\ttry {\n\t\tconst property = 'General_Category';\n\t\tconst category = unicodeMatchPropertyValue(property, value);\n\t\treturn getUnicodePropertyValueSet(property, category);\n\t} catch (exception) {}\n\t// It’s not a `General_Category` value, so check if it’s a property\n\t// of strings.\n\ttry {\n\t\treturn getUnicodePropertyValueSet('Property_of_Strings', value);\n\t} catch (exception) {}\n\t// Lastly, check if it’s a binary property of single code points.\n\t// Note: `unicodeMatchProperty` throws on invalid properties.\n\tconst property = unicodeMatchProperty(value);\n\treturn getUnicodePropertyValueSet(property);\n};\n\nconst getUnicodePropertyEscapeSet = (value, isNegative) => {\n\tconst parts = value.split('=');\n\tconst firstPart = parts[0];\n\tlet set;\n\tif (parts.length == 1) {\n\t\tset = handleLoneUnicodePropertyNameOrValue(firstPart);\n\t} else {\n\t\t// The pattern consists of two parts, i.e. `Property=Value`.\n\t\tconst property = unicodeMatchProperty(firstPart);\n\t\tconst value = unicodeMatchPropertyValue(property, parts[1]);\n\t\tset = getUnicodePropertyValueSet(property, value);\n\t}\n\tif (isNegative) {\n\t\tif (set.strings) {\n\t\t\tthrow new Error('Cannot negate Unicode property of strings');\n\t\t}\n\t\treturn {\n\t\t\tcharacters: UNICODE_SET.clone().remove(set.characters),\n\t\t\tstrings: new Set()\n\t\t};\n\t}\n\treturn {\n\t\tcharacters: set.characters.clone(),\n\t\tstrings: set.strings\n\t\t\t// We need to escape strings like *️⃣ to make sure that they can be safely used in unions.\n\t\t\t? new Set(set.strings.map(str => str.replace(SPECIAL_CHARS, '\\\\$1')))\n\t\t\t: new Set()\n\t};\n};\n\nconst getUnicodePropertyEscapeCharacterClassData = (property, isNegative) => {\n\tconst set = getUnicodePropertyEscapeSet(property, isNegative);\n\tconst data = getCharacterClassEmptyData();\n\tdata.singleChars = set.characters;\n\tif (set.strings.size > 0) {\n\t\tdata.longStrings = set.strings;\n\t\tdata.maybeIncludesStrings = true;\n\t}\n\treturn data;\n};\n\nfunction configNeedCaseFoldAscii() {\n\treturn !!config.modifiersData.i;\n}\n\nfunction configNeedCaseFoldUnicode() {\n\t// config.modifiersData.i : undefined | false\n\tif (config.modifiersData.i === false) return false;\n\tif (!config.transform.unicodeFlag) return false;\n\treturn Boolean(config.modifiersData.i || config.flags.ignoreCase);\n}\n\n// Given a range of code points, add any case-folded code points in that range\n// to a set.\nregenerate.prototype.iuAddRange = function(min, max) {\n\tconst $this = this;\n\tdo {\n\t\tconst folded = caseFold(min, configNeedCaseFoldAscii(), configNeedCaseFoldUnicode());\n\t\tif (folded) {\n\t\t\t$this.add(folded);\n\t\t}\n\t} while (++min <= max);\n\treturn $this;\n};\nregenerate.prototype.iuRemoveRange = function(min, max) {\n\tconst $this = this;\n\tdo {\n\t\tconst folded = caseFold(min, configNeedCaseFoldAscii(), configNeedCaseFoldUnicode());\n\t\tif (folded) {\n\t\t\t$this.remove(folded);\n\t\t}\n\t} while (++min <= max);\n\treturn $this;\n};\n\nconst update = (item, pattern) => {\n\tlet tree = parse(pattern, config.useUnicodeFlag ? 'u' : '', {\n\t\tlookbehind: true,\n\t\tnamedGroups: true,\n\t\tunicodePropertyEscape: true,\n\t\tunicodeSet: true,\n\t\tmodifiers: true,\n\t});\n\tswitch (tree.type) {\n\t\tcase 'characterClass':\n\t\tcase 'group':\n\t\tcase 'value':\n\t\t\t// No wrapping needed.\n\t\t\tbreak;\n\t\tdefault:\n\t\t\t// Wrap the pattern in a non-capturing group.\n\t\t\ttree = wrap(tree, pattern);\n\t}\n\tObject.assign(item, tree);\n};\n\nconst wrap = (tree, pattern) => {\n\t// Wrap the pattern in a non-capturing group.\n\treturn {\n\t\t'type': 'group',\n\t\t'behavior': 'ignore',\n\t\t'body': [tree],\n\t\t'raw': `(?:${ pattern })`\n\t};\n};\n\nconst caseFold = (codePoint, includeAscii, includeUnicode) => {\n\tlet folded = (includeUnicode ? iuMappings.get(codePoint) : undefined) || [];\n\tif (typeof folded === 'number') folded = [folded];\n\tif (includeAscii) {\n\t\tif (codePoint >= 0x41 && codePoint <= 0x5A) {\n\t\t\tfolded.push(codePoint + 0x20);\n\t\t} else if (codePoint >= 0x61 && codePoint <= 0x7A) {\n\t\t\tfolded.push(codePoint - 0x20);\n\t\t}\n\t}\n\treturn folded.length == 0 ? false : folded;\n};\n\nconst buildHandler = (action) => {\n\tswitch (action) {\n\t\tcase 'union':\n\t\t\treturn {\n\t\t\t\tsingle: (data, cp) => {\n\t\t\t\t\tdata.singleChars.add(cp);\n\t\t\t\t},\n\t\t\t\tregSet: (data, set2) => {\n\t\t\t\t\tdata.singleChars.add(set2);\n\t\t\t\t},\n\t\t\t\trange: (data, start, end) => {\n\t\t\t\t\tdata.singleChars.addRange(start, end);\n\t\t\t\t},\n\t\t\t\tiuRange: (data, start, end) => {\n\t\t\t\t\tdata.singleChars.iuAddRange(start, end);\n\t\t\t\t},\n\t\t\t\tnested: (data, nestedData) => {\n\t\t\t\t\tdata.singleChars.add(nestedData.singleChars);\n\t\t\t\t\tfor (const str of nestedData.longStrings) data.longStrings.add(str);\n\t\t\t\t\tif (nestedData.maybeIncludesStrings) data.maybeIncludesStrings = true;\n\t\t\t\t}\n\t\t\t};\n\t\tcase 'union-negative': {\n\t\t\tconst regSet = (data, set2) => {\n\t\t\t\tdata.singleChars = UNICODE_SET.clone().remove(set2).add(data.singleChars);\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsingle: (data, cp) => {\n\t\t\t\t\tconst unicode = UNICODE_SET.clone();\n\t\t\t\t\tdata.singleChars = data.singleChars.contains(cp) ? unicode : unicode.remove(cp);\n\t\t\t\t},\n\t\t\t\tregSet: regSet,\n\t\t\t\trange: (data, start, end) => {\n\t\t\t\t\tdata.singleChars = UNICODE_SET.clone().removeRange(start, end).add(data.singleChars);\n\t\t\t\t},\n\t\t\t\tiuRange: (data, start, end) => {\n\t\t\t\t\tdata.singleChars = UNICODE_SET.clone().iuRemoveRange(start, end).add(data.singleChars);\n\t\t\t\t},\n\t\t\t\tnested: (data, nestedData) => {\n\t\t\t\t\tregSet(data, nestedData.singleChars);\n\t\t\t\t\tif (nestedData.maybeIncludesStrings) throw new Error('ASSERTION ERROR');\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tcase 'intersection': {\n\t\t\tconst regSet = (data, set2) => {\n\t\t\t\tif (data.first) data.singleChars = set2;\n\t\t\t\telse data.singleChars.intersection(set2);\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsingle: (data, cp) => {\n\t\t\t\t\tdata.singleChars = data.first || data.singleChars.contains(cp) ? regenerate(cp) : regenerate();\n\t\t\t\t\tdata.longStrings.clear();\n\t\t\t\t\tdata.maybeIncludesStrings = false;\n\t\t\t\t},\n\t\t\t\tregSet: (data, set) => {\n\t\t\t\t\tregSet(data, set);\n\t\t\t\t\tdata.longStrings.clear();\n\t\t\t\t\tdata.maybeIncludesStrings = false;\n\t\t\t\t},\n\t\t\t\trange: (data, start, end) => {\n\t\t\t\t\tif (data.first) data.singleChars.addRange(start, end);\n\t\t\t\t\telse data.singleChars.intersection(regenerate().addRange(start, end));\n\t\t\t\t\tdata.longStrings.clear();\n\t\t\t\t\tdata.maybeIncludesStrings = false;\n\t\t\t\t},\n\t\t\t\tiuRange: (data, start, end) => {\n\t\t\t\t\tif (data.first) data.singleChars.iuAddRange(start, end);\n\t\t\t\t\telse data.singleChars.intersection(regenerate().iuAddRange(start, end));\n\t\t\t\t\tdata.longStrings.clear();\n\t\t\t\t\tdata.maybeIncludesStrings = false;\n\t\t\t\t},\n\t\t\t\tnested: (data, nestedData) => {\n\t\t\t\t\tregSet(data, nestedData.singleChars);\n\n\t\t\t\t\tif (data.first) {\n\t\t\t\t\t\tdata.longStrings = nestedData.longStrings;\n\t\t\t\t\t\tdata.maybeIncludesStrings = nestedData.maybeIncludesStrings;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const str of data.longStrings) {\n\t\t\t\t\t\t\tif (!nestedData.longStrings.has(str)) data.longStrings.delete(str);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!nestedData.maybeIncludesStrings) data.maybeIncludesStrings = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\tcase 'subtraction': {\n\t\t\tconst regSet = (data, set2) => {\n\t\t\t\tif (data.first) data.singleChars.add(set2);\n\t\t\t\telse data.singleChars.remove(set2);\n\t\t\t};\n\t\t\treturn {\n\t\t\t\tsingle: (data, cp) => {\n\t\t\t\t\tif (data.first) data.singleChars.add(cp);\n\t\t\t\t\telse data.singleChars.remove(cp);\n\t\t\t\t},\n\t\t\t\tregSet: regSet,\n\t\t\t\trange: (data, start, end) => {\n\t\t\t\t\tif (data.first) data.singleChars.addRange(start, end);\n\t\t\t\t\telse data.singleChars.removeRange(start, end);\n\t\t\t\t},\n\t\t\t\tiuRange: (data, start, end) => {\n\t\t\t\t\tif (data.first) data.singleChars.iuAddRange(start, end);\n\t\t\t\t\telse data.singleChars.iuRemoveRange(start, end);\n\t\t\t\t},\n\t\t\t\tnested: (data, nestedData) => {\n\t\t\t\t\tregSet(data, nestedData.singleChars);\n\n\t\t\t\t\tif (data.first) {\n\t\t\t\t\t\tdata.longStrings = nestedData.longStrings;\n\t\t\t\t\t\tdata.maybeIncludesStrings = nestedData.maybeIncludesStrings;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const str of data.longStrings) {\n\t\t\t\t\t\t\tif (nestedData.longStrings.has(str)) data.longStrings.delete(str);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t// The `default` clause is only here as a safeguard; it should never be\n\t\t// reached. Code coverage tools should ignore it.\n\t\t/* istanbul ignore next */\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown set action: ${ characterClassItem.kind }`);\n\t}\n};\n\nconst getCharacterClassEmptyData = () => ({\n\ttransformed: config.transform.unicodeFlag,\n\tsingleChars: regenerate(),\n\tlongStrings: new Set(),\n\thasEmptyString: false,\n\tfirst: true,\n\tmaybeIncludesStrings: false\n});\n\nconst maybeFold = (codePoint) => {\n\tconst caseFoldAscii = configNeedCaseFoldAscii();\n\tconst caseFoldUnicode = configNeedCaseFoldUnicode();\n\n\tif (caseFoldAscii || caseFoldUnicode) {\n\t\tconst folded = caseFold(codePoint, caseFoldAscii, caseFoldUnicode);\n\t\tif (folded) {\n\t\t\treturn [codePoint, folded];\n\t\t}\n\t}\n\treturn [codePoint];\n};\n\nconst computeClassStrings = (classStrings, regenerateOptions) => {\n\tlet data = getCharacterClassEmptyData();\n\n\tconst caseFoldAscii = configNeedCaseFoldAscii();\n\tconst caseFoldUnicode = configNeedCaseFoldUnicode();\n\n\tfor (const string of classStrings.strings) {\n\t\tif (string.characters.length === 1) {\n\t\t\tmaybeFold(string.characters[0].codePoint).forEach((cp) => {\n\t\t\t\tdata.singleChars.add(cp);\n\t\t\t});\n\t\t} else {\n\t\t\tlet stringifiedString;\n\t\t\tif (caseFoldUnicode || caseFoldAscii) {\n\t\t\t\tstringifiedString = '';\n\t\t\t\tfor (const ch of string.characters) {\n\t\t\t\t\tlet set = regenerate(ch.codePoint);\n\t\t\t\t\tconst folded = maybeFold(ch.codePoint);\n\t\t\t\t\tif (folded) set.add(folded);\n\t\t\t\t\tstringifiedString += set.toString(regenerateOptions);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tstringifiedString = string.characters.map(ch => generate(ch)).join('')\n\t\t\t}\n\n\t\t\tdata.longStrings.add(stringifiedString);\n\t\t\tdata.maybeIncludesStrings = true;\n\t\t}\n\t}\n\n\treturn data;\n}\n\nconst computeCharacterClass = (characterClassItem, regenerateOptions) => {\n\tlet data = getCharacterClassEmptyData();\n\n\tlet handlePositive;\n\tlet handleNegative;\n\n\tswitch (characterClassItem.kind) {\n\t\tcase 'union':\n\t\t\thandlePositive = buildHandler('union');\n\t\t\thandleNegative = buildHandler('union-negative');\n\t\t\tbreak;\n\t\tcase 'intersection':\n\t\t\thandlePositive = buildHandler('intersection');\n\t\t\thandleNegative = buildHandler('subtraction');\n\t\t\tbreak;\n\t\tcase 'subtraction':\n\t\t\thandlePositive = buildHandler('subtraction');\n\t\t\thandleNegative = buildHandler('intersection');\n\t\t\tbreak;\n\t\t// The `default` clause is only here as a safeguard; it should never be\n\t\t// reached. Code coverage tools should ignore it.\n\t\t/* istanbul ignore next */\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown character class kind: ${ characterClassItem.kind }`);\n\t}\n\n\tconst caseFoldAscii = configNeedCaseFoldAscii();\n\tconst caseFoldUnicode = configNeedCaseFoldUnicode();\n\n\tfor (const item of characterClassItem.body) {\n\t\tswitch (item.type) {\n\t\t\tcase 'value':\n\t\t\t\tmaybeFold(item.codePoint).forEach((cp) => {\n\t\t\t\t\thandlePositive.single(data, cp);\n\t\t\t\t});\n\t\t\t\tbreak;\n\t\t\tcase 'characterClassRange':\n\t\t\t\tconst min = item.min.codePoint;\n\t\t\t\tconst max = item.max.codePoint;\n\t\t\t\thandlePositive.range(data, min, max);\n\t\t\t\tif (caseFoldAscii || caseFoldUnicode) {\n\t\t\t\t\thandlePositive.iuRange(data, min, max);\n\t\t\t\t\tdata.transformed = true;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'characterClassEscape':\n\t\t\t\thandlePositive.regSet(data, getCharacterClassEscapeSet(\n\t\t\t\t\titem.value,\n\t\t\t\t\tconfig.flags.unicode,\n\t\t\t\t\tconfig.flags.ignoreCase\n\t\t\t\t));\n\t\t\t\tbreak;\n\t\t\tcase 'unicodePropertyEscape':\n\t\t\t\tconst nestedData = getUnicodePropertyEscapeCharacterClassData(item.value, item.negative);\n\t\t\t\thandlePositive.nested(data, nestedData);\n\t\t\t\tdata.transformed =\n\t\t\t\t\tdata.transformed ||\n\t\t\t\t\tconfig.transform.unicodePropertyEscapes ||\n\t\t\t\t\t(config.transform.unicodeSetsFlag && nestedData.maybeIncludesStrings);\n\t\t\t\tbreak;\n\t\t\tcase 'characterClass':\n\t\t\t\tconst handler = item.negative ? handleNegative : handlePositive;\n\t\t\t\tconst res = computeCharacterClass(item, regenerateOptions);\n\t\t\t\thandler.nested(data, res);\n\t\t\t\tdata.transformed = true;\n\t\t\t\tbreak;\n\t\t\tcase 'classStrings':\n\t\t\t\thandlePositive.nested(data, computeClassStrings(item, regenerateOptions));\n\t\t\t\tdata.transformed = true;\n\t\t\t\tbreak;\n\t\t\t// The `default` clause is only here as a safeguard; it should never be\n\t\t\t// reached. Code coverage tools should ignore it.\n\t\t\t/* istanbul ignore next */\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`Unknown term type: ${ item.type }`);\n\t\t}\n\n\t\tdata.first = false;\n\t}\n\n\tif (characterClassItem.negative && data.maybeIncludesStrings) {\n\t\tthrow new SyntaxError('Cannot negate set containing strings');\n\t}\n\n\treturn data;\n}\n\nconst processCharacterClass = (\n\tcharacterClassItem,\n\tregenerateOptions,\n\tcomputed = computeCharacterClass(characterClassItem, regenerateOptions)\n) => {\n\tconst negative = characterClassItem.negative;\n\tconst { singleChars, transformed, longStrings } = computed;\n\tif (transformed) {\n\t\tconst setStr = singleChars.toString(regenerateOptions);\n\n\t\tif (negative) {\n\t\t\tif (config.useUnicodeFlag) {\n\t\t\t\tupdate(characterClassItem, `[^${setStr[0] === '[' ? setStr.slice(1, -1) : setStr}]`)\n\t\t\t} else {\n\t\t\t\tif (config.flags.unicode) {\n\t\t\t\t\tif (config.flags.ignoreCase) {\n\t\t\t\t\t\tconst astralCharsSet = singleChars.clone().intersection(ASTRAL_SET);\n\t\t\t\t\t\t// Assumption: singleChars do not contain lone surrogates.\n\t\t\t\t\t\t// Regex like /[^\\ud800]/u is not supported\n\t\t\t\t\t\tconst surrogateOrBMPSetStr = singleChars\n\t\t\t\t\t\t\t.clone()\n\t\t\t\t\t\t\t.remove(astralCharsSet)\n\t\t\t\t\t\t\t.addRange(0xd800, 0xdfff)\n\t\t\t\t\t\t\t.toString({ bmpOnly: true });\n\t\t\t\t\t\t// Don't generate negative lookahead for astral characters\n\t\t\t\t\t\t// because the case folding is not working anyway as we break\n\t\t\t\t\t\t// code points into surrogate pairs.\n\t\t\t\t\t\tconst astralNegativeSetStr = ASTRAL_SET\n\t\t\t\t\t\t\t.clone()\n\t\t\t\t\t\t\t.remove(astralCharsSet)\n\t\t\t\t\t\t\t.toString(regenerateOptions);\n\t\t\t\t\t\t// The transform here does not support lone surrogates.\n\t\t\t\t\t\tupdate(\n\t\t\t\t\t\t\tcharacterClassItem,\n\t\t\t\t\t\t\t`(?!${surrogateOrBMPSetStr})[\\\\s\\\\S]|${astralNegativeSetStr}`\n\t\t\t\t\t\t);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Generate negative set directly when case folding is not involved.\n\t\t\t\t\t\tupdate(\n\t\t\t\t\t\t\tcharacterClassItem,\n\t\t\t\t\t\t\tUNICODE_SET.clone().remove(singleChars).toString(regenerateOptions)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tupdate(characterClassItem, `(?!${setStr})[\\\\s\\\\S]`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconst hasEmptyString = longStrings.has('');\n\t\t\tconst pieces = Array.from(longStrings).sort((a, b) => b.length - a.length);\n\n\t\t\tif (setStr !== '[]' || longStrings.size === 0) {\n\t\t\t\tpieces.splice(pieces.length - (hasEmptyString ? 1 : 0), 0, setStr);\n\t\t\t}\n\n\t\t\tupdate(characterClassItem, pieces.join('|'));\n\t\t}\n\t}\n\treturn characterClassItem;\n};\n\nconst assertNoUnmatchedReferences = (groups) => {\n\tconst unmatchedReferencesNames = Object.keys(groups.unmatchedReferences);\n\tif (unmatchedReferencesNames.length > 0) {\n\t\tthrow new Error(`Unknown group names: ${unmatchedReferencesNames}`);\n\t}\n};\n\nconst processModifiers = (item, regenerateOptions, groups) => {\n\tconst enabling = item.modifierFlags.enabling;\n\tconst disabling = item.modifierFlags.disabling;\n\n\tdelete item.modifierFlags;\n\titem.behavior = 'ignore';\n\n\tconst oldData = Object.assign({}, config.modifiersData);\n\n\tenabling.split('').forEach(flag => {\n\t\tconfig.modifiersData[flag] = true;\n\t});\n\tdisabling.split('').forEach(flag => {\n\t\tconfig.modifiersData[flag] = false;\n\t});\n\n\titem.body = item.body.map(term => {\n\t\treturn processTerm(term, regenerateOptions, groups);\n\t});\n\n\tconfig.modifiersData = oldData;\n\n\treturn item;\n}\n\nconst processTerm = (item, regenerateOptions, groups) => {\n\tswitch (item.type) {\n\t\tcase 'dot':\n\t\t\tif (config.transform.unicodeFlag) {\n\t\t\t\tupdate(\n\t\t\t\t\titem,\n\t\t\t\t\tgetUnicodeDotSet(config.flags.dotAll || config.modifiersData.s).toString(regenerateOptions)\n\t\t\t\t);\n\t\t\t} else if (config.transform.dotAllFlag || config.modifiersData.s) {\n\t\t\t\t// TODO: consider changing this at the regenerate level.\n\t\t\t\tupdate(item, '[\\\\s\\\\S]');\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'characterClass':\n\t\t\titem = processCharacterClass(item, regenerateOptions);\n\t\t\tbreak;\n\t\tcase 'unicodePropertyEscape':\n\t\t\tconst data = getUnicodePropertyEscapeCharacterClassData(item.value, item.negative);\n\t\t\tif (data.maybeIncludesStrings) {\n\t\t\t\tif (!config.flags.unicodeSets) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t'Properties of strings are only supported when using the unicodeSets (v) flag.'\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (config.transform.unicodeSetsFlag) {\n\t\t\t\t\tdata.transformed = true;\n\t\t\t\t\titem = processCharacterClass(item, regenerateOptions, data);\n\t\t\t\t}\n\t\t\t} else if (config.transform.unicodePropertyEscapes) {\n\t\t\t\tupdate(\n\t\t\t\t\titem,\n\t\t\t\t\tdata.singleChars.toString(regenerateOptions)\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'characterClassEscape':\n\t\t\tif (config.transform.unicodeFlag) {\n\t\t\t\tupdate(\n\t\t\t\t\titem,\n\t\t\t\t\tgetCharacterClassEscapeSet(\n\t\t\t\t\t\titem.value,\n\t\t\t\t\t\t/* config.transform.unicodeFlag implies config.flags.unicode */ true,\n\t\t\t\t\t\tconfig.flags.ignoreCase\n\t\t\t\t\t).toString(regenerateOptions)\n\t\t\t\t);\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'group':\n\t\t\tif (item.behavior == 'normal') {\n\t\t\t\tgroups.lastIndex++;\n\t\t\t}\n\t\t\tif (item.name) {\n\t\t\t\tconst name = item.name.value;\n\n\t\t\t\tif (groups.namesConflicts[name]) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Group '${ name }' has already been defined in this context.`\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tgroups.namesConflicts[name] = true;\n\n\t\t\t\tif (config.transform.namedGroups) {\n\t\t\t\t\tdelete item.name;\n\t\t\t\t}\n\n\t\t\t\tconst index = groups.lastIndex;\n\t\t\t\tif (!groups.names[name]) {\n\t\t\t\t\tgroups.names[name] = [];\n\t\t\t\t}\n\t\t\t\tgroups.names[name].push(index);\n\n\t\t\t\tif (groups.onNamedGroup) {\n\t\t\t\t\tgroups.onNamedGroup.call(null, name, index);\n\t\t\t\t}\n\n\t\t\t\tif (groups.unmatchedReferences[name]) {\n\t\t\t\t\tdelete groups.unmatchedReferences[name];\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (item.modifierFlags && config.transform.modifiers) {\n\t\t\t\treturn processModifiers(item, regenerateOptions, groups);\n\t\t\t}\n\t\t\t/* falls through */\n\t\tcase 'quantifier':\n\t\t\titem.body = item.body.map(term => {\n\t\t\t\treturn processTerm(term, regenerateOptions, groups);\n\t\t\t});\n\t\t\tbreak;\n\t\tcase 'disjunction':\n\t\t\tconst outerNamesConflicts = groups.namesConflicts;\n\t\t\titem.body = item.body.map(term => {\n\t\t\t\tgroups.namesConflicts = Object.create(outerNamesConflicts);\n\t\t\t\treturn processTerm(term, regenerateOptions, groups);\n\t\t\t});\n\t\t\tbreak;\n\t\tcase 'alternative':\n\t\t\titem.body = flatMap(item.body, term => {\n\t\t\t\tconst res = processTerm(term, regenerateOptions, groups);\n\t\t\t\t// Alternatives cannot contain alternatives; flatten them.\n\t\t\t\treturn res.type === 'alternative' ? res.body : res;\n\t\t\t});\n\t\t\tbreak;\n\t\tcase 'value':\n\t\t\tconst codePoint = item.codePoint;\n\t\t\tconst set = regenerate(codePoint);\n\t\t\tconst folded = maybeFold(codePoint);\n\t\t\tset.add(folded);\n\t\t\tupdate(item, set.toString(regenerateOptions));\n\t\t\tbreak;\n\t\tcase 'reference':\n\t\t\tif (item.name) {\n\t\t\t\tconst name = item.name.value;\n\t\t\t\tconst indexes = groups.names[name];\n\t\t\t\tif (!indexes) {\n\t\t\t\t\tgroups.unmatchedReferences[name] = true;\n\t\t\t\t}\n\n\t\t\t\tif (config.transform.namedGroups) {\n\t\t\t\t\tif (indexes) {\n\t\t\t\t\t\tconst body = indexes.map(index => ({\n\t\t\t\t\t\t\t'type': 'reference',\n\t\t\t\t\t\t\t'matchIndex': index,\n\t\t\t\t\t\t\t'raw': '\\\\' + index,\n\t\t\t\t\t\t}));\n\t\t\t\t\t\tif (body.length === 1) {\n\t\t\t\t\t\t\treturn body[0];\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t'type': 'alternative',\n\t\t\t\t\t\t\t'body': body,\n\t\t\t\t\t\t\t'raw': body.map(term => term.raw).join(''),\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\t// This named reference comes before the group where it’s defined,\n\t\t\t\t\t// so it’s always an empty match.\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'type': 'group',\n\t\t\t\t\t\t'behavior': 'ignore',\n\t\t\t\t\t\t'body': [],\n\t\t\t\t\t\t'raw': '(?:)',\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'anchor':\n\t\t\tif (config.modifiersData.m) {\n\t\t\t\tif (item.kind == 'start') {\n\t\t\t\t\tupdate(item, `(?:^|(?<=${NEWLINE_SET.toString()}))`);\n\t\t\t\t} else if (item.kind == 'end') {\n\t\t\t\t\tupdate(item, `(?:$|(?=${NEWLINE_SET.toString()}))`);\n\t\t\t\t}\n\t\t\t}\n\t\tcase 'empty':\n\t\t\t// Nothing to do here.\n\t\t\tbreak;\n\t\t// The `default` clause is only here as a safeguard; it should never be\n\t\t// reached. Code coverage tools should ignore it.\n\t\t/* istanbul ignore next */\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown term type: ${ item.type }`);\n\t}\n\treturn item;\n};\n\nconst config = {\n\t'flags': {\n\t\t'ignoreCase': false,\n\t\t'unicode': false,\n\t\t'unicodeSets': false,\n\t\t'dotAll': false,\n\t\t'multiline': false,\n\t},\n\t'transform': {\n\t\t'dotAllFlag': false,\n\t\t'unicodeFlag': false,\n\t\t'unicodeSetsFlag': false,\n\t\t'unicodePropertyEscapes': false,\n\t\t'namedGroups': false,\n\t\t'modifiers': false,\n\t},\n\t'modifiersData': {\n\t\t'i': undefined,\n\t\t's': undefined,\n\t\t'm': undefined,\n\t},\n\tget useUnicodeFlag() {\n\t\treturn (this.flags.unicode || this.flags.unicodeSets) && !this.transform.unicodeFlag;\n\t}\n};\n\nconst validateOptions = (options) => {\n\tif (!options) return;\n\n\tfor (const key of Object.keys(options)) {\n\t\tconst value = options[key];\n\t\tswitch (key) {\n\t\t\tcase 'dotAllFlag':\n\t\t\tcase 'unicodeFlag':\n\t\t\tcase 'unicodePropertyEscapes':\n\t\t\tcase 'namedGroups':\n\t\t\t\tif (value != null && value !== false && value !== 'transform') {\n\t\t\t\t\tthrow new Error(`.${key} must be false (default) or 'transform'.`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'modifiers':\n\t\t\tcase 'unicodeSetsFlag':\n\t\t\t\tif (value != null && value !== false && value !== 'parse' && value !== 'transform') {\n\t\t\t\t\tthrow new Error(`.${key} must be false (default), 'parse' or 'transform'.`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'onNamedGroup':\n\t\t\tcase 'onNewFlags':\n\t\t\t\tif (value != null && typeof value !== 'function') {\n\t\t\t\t\tthrow new Error(`.${key} must be a function.`);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tthrow new Error(`.${key} is not a valid regexpu-core option.`);\n\t\t}\n\t}\n};\n\nconst hasFlag = (flags, flag) => flags ? flags.includes(flag) : false;\nconst transform = (options, name) => options ? options[name] === 'transform' : false;\n\nconst rewritePattern = (pattern, flags, options) => {\n\tvalidateOptions(options);\n\n\tconfig.flags.unicode = hasFlag(flags, 'u');\n\tconfig.flags.unicodeSets = hasFlag(flags, 'v');\n\tconfig.flags.ignoreCase = hasFlag(flags, 'i');\n\tconfig.flags.dotAll = hasFlag(flags, 's');\n\tconfig.flags.multiline = hasFlag(flags, 'm');\n\n\tconfig.transform.dotAllFlag = config.flags.dotAll && transform(options, 'dotAllFlag');\n\tconfig.transform.unicodeFlag = (config.flags.unicode || config.flags.unicodeSets) && transform(options, 'unicodeFlag');\n\tconfig.transform.unicodeSetsFlag = config.flags.unicodeSets && transform(options, 'unicodeSetsFlag');\n\n\t// unicodeFlag: 'transform' implies unicodePropertyEscapes: 'transform'\n\tconfig.transform.unicodePropertyEscapes = config.flags.unicode && (\n\t\ttransform(options, 'unicodeFlag') || transform(options, 'unicodePropertyEscapes')\n\t);\n\tconfig.transform.namedGroups = transform(options, 'namedGroups');\n\tconfig.transform.modifiers = transform(options, 'modifiers');\n\n\tconfig.modifiersData.i = undefined;\n\tconfig.modifiersData.s = undefined;\n\tconfig.modifiersData.m = undefined;\n\n\tconst regjsparserFeatures = {\n\t\t'unicodeSet': Boolean(options && options.unicodeSetsFlag),\n\t\t'modifiers': Boolean(options && options.modifiers),\n\n\t\t// Enable every stable RegExp feature by default\n\t\t'unicodePropertyEscape': true,\n\t\t'namedGroups': true,\n\t\t'lookbehind': true,\n\t};\n\n\tconst regenerateOptions = {\n\t\t'hasUnicodeFlag': config.useUnicodeFlag,\n\t\t'bmpOnly': !config.flags.unicode\n\t};\n\n\tconst groups = {\n\t\t'onNamedGroup': options && options.onNamedGroup,\n\t\t'lastIndex': 0,\n\t\t'names': Object.create(null), // { [name]: Array }\n\t\t'namesConflicts': Object.create(null), // { [name]: true }\n\t\t'unmatchedReferences': Object.create(null) // { [name]: true }\n\t};\n\n\tconst tree = parse(pattern, flags, regjsparserFeatures);\n\n\tif (config.transform.modifiers) {\n\t\tif (/\\(\\?[a-z]*-[a-z]+:/.test(pattern)) {\n\t\t\t// the pattern _likely_ contain inline disabled modifiers\n\t\t\t// we need to traverse to make sure that they are actually modifiers and to collect them\n\t\t\tconst allDisabledModifiers = Object.create(null)\n\t\t\tconst itemStack = [tree];\n\t\t\tlet node;\n\t\t\twhile (node = itemStack.pop(), node != undefined) {\n\t\t\t\tif (Array.isArray(node)) {\n\t\t\t\t\tArray.prototype.push.apply(itemStack, node);\n\t\t\t\t} else if (typeof node == 'object' && node != null) {\n\t\t\t\t\tfor (const key of Object.keys(node)) {\n\t\t\t\t\t\tconst value = node[key];\n\t\t\t\t\t\tif (key == 'modifierFlags') {\n\t\t\t\t\t\t\tif (value.disabling.length > 0){\n\t\t\t\t\t\t\t\tvalue.disabling.split('').forEach((flag)=>{\n\t\t\t\t\t\t\t\t\tallDisabledModifiers[flag] = true\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (typeof value == 'object' && value != null) {\n\t\t\t\t\t\t\titemStack.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor (const flag of Object.keys(allDisabledModifiers)) {\n\t\t\t\tconfig.modifiersData[flag] = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Note: `processTerm` mutates `tree` and `groups`.\n\tprocessTerm(tree, regenerateOptions, groups);\n\tassertNoUnmatchedReferences(groups);\n\n\tconst onNewFlags = options && options.onNewFlags;\n\tif (onNewFlags) {\n\t\tlet newFlags = flags.split('').filter((flag) => !config.modifiersData[flag]).join('');\n\t\tif (config.transform.unicodeSetsFlag) {\n\t\t\tnewFlags = newFlags.replace('v', 'u');\n\t\t}\n\t\tif (config.transform.unicodeFlag) {\n\t\t\tnewFlags = newFlags.replace('u', '');\n\t\t}\n\t\tif (config.transform.dotAllFlag === 'transform') {\n\t\t\tnewFlags = newFlags.replace('s', '');\n\t\t}\n\t\tonNewFlags(newFlags);\n\t}\n\n\treturn generate(tree);\n};\n\nmodule.exports = rewritePattern;\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","export const FEATURES = Object.freeze({\n unicodeFlag: 1 << 0,\n dotAllFlag: 1 << 1,\n unicodePropertyEscape: 1 << 2,\n namedCaptureGroups: 1 << 3,\n // Not used, for backward compatibility with syntax-unicode-sets-regex\n unicodeSetsFlag_syntax: 1 << 4,\n unicodeSetsFlag: 1 << 5,\n duplicateNamedCaptureGroups: 1 << 6,\n modifiers: 1 << 7,\n});\n\n// We can't use a symbol because this needs to always be the same, even if\n// this package isn't deduped by npm. e.g.\n// - node_modules/\n// - @babel/plugin-regexp-features\n// - @babel/plugin-transform-unicode-property-regex\n// - node_modules\n// - @babel-plugin-regexp-features\nexport const featuresKey = \"@babel/plugin-regexp-features/featuresKey\";\nexport const runtimeKey = \"@babel/plugin-regexp-features/runtimeKey\";\n\ntype FeatureType = (typeof FEATURES)[keyof typeof FEATURES];\n\nexport function enableFeature(features: number, feature: FeatureType): number {\n return features | feature;\n}\n\nexport function hasFeature(features: number, feature: FeatureType) {\n return !!(features & feature);\n}\n","import type { types as t } from \"@babel/core\";\nimport { FEATURES, hasFeature } from \"./features.ts\";\n\nimport type { RegexpuOptions } from \"regexpu-core\";\n\nexport function generateRegexpuOptions(\n pattern: string,\n toTransform: number,\n): RegexpuOptions {\n type Experimental = 1;\n\n const feat = (\n name: keyof typeof FEATURES,\n ok: \"transform\" | (Stability extends 0 ? never : \"parse\") = \"transform\",\n ) => {\n return hasFeature(toTransform, FEATURES[name]) ? ok : false;\n };\n\n const featDuplicateNamedGroups = (): \"transform\" | false => {\n if (!feat(\"duplicateNamedCaptureGroups\")) return false;\n\n // This can return false positive, for example for /\\(?\\)/.\n // However, it's such a rare occurrence that it's ok to compile\n // the regexp even if we only need to compile regexps with\n // duplicate named capturing groups.\n const regex = /\\(\\?<([^>]+)>/g;\n const seen = new Set();\n for (let match; (match = regex.exec(pattern)); seen.add(match[1])) {\n if (seen.has(match[1])) return \"transform\";\n }\n return false;\n };\n\n return {\n unicodeFlag: feat(\"unicodeFlag\"),\n unicodeSetsFlag: feat(\"unicodeSetsFlag\") || \"parse\",\n dotAllFlag: feat(\"dotAllFlag\"),\n unicodePropertyEscapes: feat(\"unicodePropertyEscape\"),\n namedGroups: feat(\"namedCaptureGroups\") || featDuplicateNamedGroups(),\n onNamedGroup: () => {},\n modifiers: feat(\"modifiers\"),\n };\n}\n\nexport function canSkipRegexpu(\n node: t.RegExpLiteral,\n options: RegexpuOptions,\n): boolean {\n const { flags, pattern } = node;\n\n if (flags.includes(\"v\")) {\n if (options.unicodeSetsFlag === \"transform\") return false;\n }\n\n if (flags.includes(\"u\")) {\n if (options.unicodeFlag === \"transform\") return false;\n if (\n options.unicodePropertyEscapes === \"transform\" &&\n /\\\\[pP]{/.test(pattern)\n ) {\n return false;\n }\n }\n\n if (flags.includes(\"s\")) {\n if (options.dotAllFlag === \"transform\") return false;\n }\n\n if (options.namedGroups === \"transform\" && /\\(\\?<(?![=!])/.test(pattern)) {\n return false;\n }\n\n if (options.modifiers === \"transform\" && /\\(\\?[\\w-]+:/.test(pattern)) {\n return false;\n }\n\n return true;\n}\n\nexport function transformFlags(regexpuOptions: RegexpuOptions, flags: string) {\n if (regexpuOptions.unicodeSetsFlag === \"transform\") {\n flags = flags.replace(\"v\", \"u\");\n }\n if (regexpuOptions.unicodeFlag === \"transform\") {\n flags = flags.replace(\"u\", \"\");\n }\n if (regexpuOptions.dotAllFlag === \"transform\") {\n flags = flags.replace(\"s\", \"\");\n }\n return flags;\n}\n","import rewritePattern from \"regexpu-core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t, type PluginObject } from \"@babel/core\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport semver from \"semver\";\n\nimport {\n featuresKey,\n FEATURES,\n enableFeature,\n runtimeKey,\n hasFeature,\n} from \"./features.ts\";\nimport {\n generateRegexpuOptions,\n canSkipRegexpu,\n transformFlags,\n} from \"./util.ts\";\n\nconst versionKey = \"@babel/plugin-regexp-features/version\";\n\nexport interface Options {\n name: string;\n feature: keyof typeof FEATURES;\n options?: {\n useUnicodeFlag?: boolean;\n runtime?: boolean;\n };\n manipulateOptions?: PluginObject[\"manipulateOptions\"];\n}\n\nexport function createRegExpFeaturePlugin({\n name,\n feature,\n options = {},\n manipulateOptions = () => {},\n}: Options): PluginObject {\n return {\n name,\n\n manipulateOptions,\n\n pre() {\n const { file } = this;\n const features = file.get(featuresKey) ?? 0;\n let newFeatures = enableFeature(features, FEATURES[feature]);\n\n const { useUnicodeFlag, runtime } = options;\n if (useUnicodeFlag === false) {\n newFeatures = enableFeature(newFeatures, FEATURES.unicodeFlag);\n }\n if (newFeatures !== features) {\n file.set(featuresKey, newFeatures);\n }\n\n if (runtime !== undefined) {\n if (\n file.has(runtimeKey) &&\n file.get(runtimeKey) !== runtime &&\n (process.env.BABEL_8_BREAKING ||\n // This check. Is necessary because in Babel 7 we allow multiple\n // copies of transform-named-capturing-groups-regex with\n // conflicting 'runtime' options.\n hasFeature(newFeatures, FEATURES.duplicateNamedCaptureGroups))\n ) {\n throw new Error(\n `The 'runtime' option must be the same for ` +\n `'@babel/plugin-transform-named-capturing-groups-regex' and ` +\n `'@babel/plugin-proposal-duplicate-named-capturing-groups-regex'.`,\n );\n }\n\n if (process.env.BABEL_8_BREAKING) {\n file.set(runtimeKey, runtime);\n } else if (\n // This check. Is necessary because in Babel 7 we allow multiple\n // copies of transform-named-capturing-groups-regex with\n // conflicting 'runtime' options.\n feature === \"namedCaptureGroups\"\n ) {\n if (!runtime || !file.has(runtimeKey)) file.set(runtimeKey, runtime);\n } else {\n file.set(runtimeKey, runtime);\n }\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Until 7.21.4, we used to encode the version as a number.\n // If file.get(versionKey) is a number, it has thus been\n // set by an older version of this plugin.\n if (typeof file.get(versionKey) === \"number\") {\n file.set(versionKey, PACKAGE_JSON.version);\n return;\n }\n }\n if (\n !file.get(versionKey) ||\n semver.lt(file.get(versionKey), PACKAGE_JSON.version)\n ) {\n file.set(versionKey, PACKAGE_JSON.version);\n }\n },\n\n visitor: {\n RegExpLiteral(path) {\n const { node } = path;\n const { file } = this;\n const features = file.get(featuresKey);\n const runtime = file.get(runtimeKey) ?? true;\n\n const regexpuOptions = generateRegexpuOptions(node.pattern, features);\n if (canSkipRegexpu(node, regexpuOptions)) {\n return;\n }\n\n const namedCaptureGroups: Record = {\n __proto__: null,\n };\n if (regexpuOptions.namedGroups === \"transform\") {\n regexpuOptions.onNamedGroup = (name, index) => {\n const prev = namedCaptureGroups[name];\n if (typeof prev === \"number\") {\n namedCaptureGroups[name] = [prev, index];\n } else if (Array.isArray(prev)) {\n prev.push(index);\n } else {\n namedCaptureGroups[name] = index;\n }\n };\n }\n\n let newFlags;\n if (regexpuOptions.modifiers === \"transform\") {\n regexpuOptions.onNewFlags = flags => {\n newFlags = flags;\n };\n }\n\n node.pattern = rewritePattern(node.pattern, node.flags, regexpuOptions);\n\n if (\n regexpuOptions.namedGroups === \"transform\" &&\n Object.keys(namedCaptureGroups).length > 0 &&\n runtime &&\n !isRegExpTest(path)\n ) {\n const call = t.callExpression(this.addHelper(\"wrapRegExp\"), [\n node,\n t.valueToNode(namedCaptureGroups),\n ]);\n annotateAsPure(call);\n\n path.replaceWith(call);\n }\n\n node.flags = transformFlags(regexpuOptions, newFlags ?? node.flags);\n },\n },\n };\n}\n\nfunction isRegExpTest(path: NodePath) {\n return (\n path.parentPath.isMemberExpression({\n object: path.node,\n computed: false,\n }) && path.parentPath.get(\"property\").isIdentifier({ name: \"test\" })\n );\n}\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n runtime?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(\"^7.19.0\"));\n\n const { runtime } = options;\n if (runtime !== undefined && typeof runtime !== \"boolean\") {\n throw new Error(\"The 'runtime' option must be boolean\");\n }\n\n return createRegExpFeaturePlugin({\n name: \"proposal-duplicate-named-capturing-groups-regex\",\n feature: \"duplicateNamedCaptureGroups\",\n options: { runtime },\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nconst SUPPORTED_MODULES = [\"commonjs\", \"amd\", \"systemjs\"];\n\nconst MODULES_NOT_FOUND = `\\\n@babel/plugin-transform-dynamic-import depends on a modules\ntransform plugin. Supported plugins are:\n - @babel/plugin-transform-modules-commonjs ^7.4.0\n - @babel/plugin-transform-modules-amd ^7.4.0\n - @babel/plugin-transform-modules-systemjs ^7.4.0\n\nIf you are using Webpack or Rollup and thus don't want\nBabel to transpile your imports and exports, you can use\nthe @babel/plugin-syntax-dynamic-import plugin and let your\nbundler handle dynamic imports.\n`;\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-dynamic-import\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-dynamic-import\").default,\n\n pre() {\n // We keep using the old name, for compatibility with older\n // version of the CommonJS transform.\n this.file.set(\n \"@babel/plugin-proposal-dynamic-import\",\n PACKAGE_JSON.version,\n );\n },\n\n visitor: {\n Program() {\n const modules = this.file.get(\"@babel/plugin-transform-modules-*\");\n\n if (!SUPPORTED_MODULES.includes(modules)) {\n throw new Error(MODULES_NOT_FOUND);\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxExportDefaultFrom from \"@babel/plugin-syntax-export-default-from\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"proposal-export-default-from\",\n inherits: syntaxExportDefaultFrom,\n\n visitor: {\n ExportNamedDeclaration(path) {\n const { node } = path;\n const { specifiers, source } = node;\n if (!t.isExportDefaultSpecifier(specifiers[0])) return;\n\n const { exported } = specifiers.shift();\n\n if (specifiers.every(s => t.isExportSpecifier(s))) {\n specifiers.unshift(\n t.exportSpecifier(t.identifier(\"default\"), exported),\n );\n return;\n }\n\n path.insertBefore(\n t.exportNamedDeclaration(\n null,\n [t.exportSpecifier(t.identifier(\"default\"), exported)],\n t.cloneNode(source),\n ),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-export-namespace-from\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-export-namespace-from\").default,\n\n visitor: {\n ExportNamedDeclaration(path) {\n const { node, scope } = path;\n const { specifiers } = node;\n\n const index = t.isExportDefaultSpecifier(specifiers[0]) ? 1 : 0;\n if (!t.isExportNamespaceSpecifier(specifiers[index])) return;\n\n const nodes = [];\n\n if (index === 1) {\n nodes.push(\n t.exportNamedDeclaration(null, [specifiers.shift()], node.source),\n );\n }\n\n const specifier = specifiers.shift();\n const { exported } = specifier;\n const uid = scope.generateUidIdentifier(\n // @ts-expect-error Identifier ?? StringLiteral\n exported.name ?? exported.value,\n );\n\n nodes.push(\n t.importDeclaration(\n [t.importNamespaceSpecifier(uid)],\n t.cloneNode(node.source),\n ),\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(t.cloneNode(uid), exported),\n ]),\n );\n\n if (node.specifiers.length >= 1) {\n nodes.push(node);\n }\n\n const [importDeclaration] = path.replaceWithMultiple(nodes);\n path.scope.registerDeclaration(importDeclaration);\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxFunctionBind from \"@babel/plugin-syntax-function-bind\";\nimport { types as t } from \"@babel/core\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function getTempId(scope: Scope) {\n let id = scope.path.getData(\"functionBind\");\n if (id) return t.cloneNode(id);\n\n id = scope.generateDeclaredUidIdentifier(\"context\");\n return scope.path.setData(\"functionBind\", id);\n }\n\n function getObject(bind: t.BindExpression) {\n if (t.isExpression(bind.object)) {\n return bind.object;\n }\n\n return (bind.callee as t.MemberExpression).object;\n }\n\n function getStaticContext(bind: t.BindExpression, scope: Scope) {\n const object = getObject(bind);\n return (\n scope.isStatic(object) &&\n (t.isSuper(object) ? t.thisExpression() : object)\n );\n }\n\n function inferBindContext(bind: t.BindExpression, scope: Scope) {\n const staticContext = getStaticContext(bind, scope);\n if (staticContext) return t.cloneNode(staticContext);\n\n const tempId = getTempId(scope);\n if (bind.object) {\n bind.callee = t.sequenceExpression([\n t.assignmentExpression(\"=\", tempId, bind.object),\n bind.callee,\n ]);\n } else if (t.isMemberExpression(bind.callee)) {\n bind.callee.object = t.assignmentExpression(\n \"=\",\n tempId,\n // @ts-ignore(Babel 7 vs Babel 8) Fixme: support `super.foo(?)`\n bind.callee.object,\n );\n }\n return t.cloneNode(tempId);\n }\n\n return {\n name: \"proposal-function-bind\",\n inherits: syntaxFunctionBind,\n\n visitor: {\n CallExpression({ node, scope }) {\n const bind = node.callee;\n if (!t.isBindExpression(bind)) return;\n\n const context = inferBindContext(bind, scope);\n node.callee = t.memberExpression(bind.callee, t.identifier(\"call\"));\n node.arguments.unshift(context);\n },\n\n BindExpression(path) {\n const { node, scope } = path;\n const context = inferBindContext(node, scope);\n path.replaceWith(\n t.callExpression(\n t.memberExpression(node.callee, t.identifier(\"bind\")),\n [context],\n ),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxFunctionSent from \"@babel/plugin-syntax-function-sent\";\nimport wrapFunction from \"@babel/helper-wrap-function\";\nimport { types as t } from \"@babel/core\";\nimport type { Visitor } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const isFunctionSent = (node: t.MetaProperty) =>\n t.isIdentifier(node.meta, { name: \"function\" }) &&\n t.isIdentifier(node.property, { name: \"sent\" });\n\n const hasBeenReplaced = (\n node: t.Node,\n sentId: string,\n ): node is t.AssignmentExpression =>\n t.isAssignmentExpression(node) &&\n t.isIdentifier(node.left, { name: sentId });\n\n const yieldVisitor: Visitor<{ sentId: string }> = {\n Function(path) {\n path.skip();\n },\n\n YieldExpression(path) {\n if (!hasBeenReplaced(path.parent, this.sentId)) {\n path.replaceWith(\n t.assignmentExpression(\"=\", t.identifier(this.sentId), path.node),\n );\n }\n },\n\n MetaProperty(path) {\n if (isFunctionSent(path.node)) {\n path.replaceWith(t.identifier(this.sentId));\n }\n },\n };\n\n return {\n name: \"proposal-function-sent\",\n inherits: syntaxFunctionSent,\n\n visitor: {\n MetaProperty(path, state) {\n if (!isFunctionSent(path.node)) return;\n\n const fnPath = path.getFunctionParent();\n\n if (!fnPath.node.generator) {\n throw new Error(\"Parent generator function not found\");\n }\n\n const sentId = path.scope.generateUid(\"function.sent\");\n\n fnPath.traverse(yieldVisitor, { sentId });\n // @ts-expect-error A generator must not be an arrow function\n fnPath.node.body.body.unshift(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.identifier(sentId), t.yieldExpression()),\n ]),\n );\n\n wrapFunction(fnPath, state.addHelper(\"skipFirstGeneratorNext\"));\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n const regex = /(\\\\*)([\\u2028\\u2029])/g;\n function replace(match: string, escapes: string, separator: string) {\n // If there's an odd number, that means the separator itself was escaped.\n // \"\\X\" escapes X.\n // \"\\\\X\" escapes the backslash, so X is unescaped.\n const isEscaped = escapes.length % 2 === 1;\n if (isEscaped) return match;\n\n return `${escapes}\\\\u${separator.charCodeAt(0).toString(16)}`;\n }\n\n return {\n name: \"transform-json-strings\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-json-strings\").default,\n\n visitor: {\n \"DirectiveLiteral|StringLiteral\"({\n node,\n }: NodePath) {\n const { extra } = node;\n if (!extra?.raw) return;\n\n extra.raw = (extra.raw as string).replace(regex, replace);\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-logical-assignment-operators\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-logical-assignment-operators\").default,\n\n visitor: {\n AssignmentExpression(path) {\n const { node, scope } = path;\n const { operator, left, right } = node;\n const operatorTrunc = operator.slice(0, -1);\n if (!t.LOGICAL_OPERATORS.includes(operatorTrunc)) {\n return;\n }\n\n const lhs = t.cloneNode(left) as t.Identifier | t.MemberExpression;\n if (t.isMemberExpression(left)) {\n const { object, property, computed } = left;\n const memo = scope.maybeGenerateMemoised(object);\n if (memo) {\n left.object = memo;\n (lhs as t.MemberExpression).object = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // object must not be Super when `memo` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n object as t.Expression,\n );\n }\n\n if (computed) {\n const memo = scope.maybeGenerateMemoised(property);\n if (memo) {\n left.property = memo;\n (lhs as t.MemberExpression).property = t.assignmentExpression(\n \"=\",\n t.cloneNode(memo),\n // @ts-expect-error todo(flow->ts): property can be t.PrivateName\n property,\n );\n }\n }\n }\n\n path.replaceWith(\n t.logicalExpression(\n // @ts-expect-error operatorTrunc has been tested by t.LOGICAL_OPERATORS\n operatorTrunc,\n lhs,\n t.assignmentExpression(\"=\", left, right),\n ),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, template } from \"@babel/core\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, { loose = false }: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n\n return {\n name: \"transform-nullish-coalescing-operator\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-nullish-coalescing-operator\").default,\n\n visitor: {\n LogicalExpression(path) {\n const { node, scope } = path;\n if (node.operator !== \"??\") {\n return;\n }\n\n let ref;\n let assignment;\n // skip creating extra reference when `left` is static\n if (scope.isStatic(node.left)) {\n ref = node.left;\n assignment = t.cloneNode(node.left);\n } else if (scope.path.isPattern()) {\n // Replace `function (a, x = a.b ?? c) {}` to `function (a, x = (() => a.b ?? c)() ){}`\n // so the temporary variable can be injected in correct scope\n path.replaceWith(template.statement.ast`(() => ${path.node})()`);\n // The injected nullish expression will be queued and eventually transformed when visited\n return;\n } else {\n ref = scope.generateUidIdentifierBasedOnNode(node.left);\n scope.push({ id: t.cloneNode(ref) });\n assignment = t.assignmentExpression(\"=\", ref, node.left);\n }\n\n path.replaceWith(\n t.conditionalExpression(\n // We cannot use `!= null` in spec mode because\n // `document.all == null` and `document.all` is not \"nullish\".\n noDocumentAll\n ? t.binaryExpression(\"!=\", assignment, t.nullLiteral())\n : t.logicalExpression(\n \"&&\",\n t.binaryExpression(\"!==\", assignment, t.nullLiteral()),\n t.binaryExpression(\n \"!==\",\n t.cloneNode(ref),\n scope.buildUndefinedNode(),\n ),\n ),\n t.cloneNode(ref),\n node.right,\n ),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\n/**\n * Given a bigIntLiteral or NumericLiteral, remove numeric\n * separator `_` from its raw representation\n *\n * @param {NodePath} { node }: A Babel AST node path\n */\nfunction remover({ node }: NodePath) {\n const { extra } = node;\n // @ts-expect-error todo(flow->ts)\n if (extra?.raw?.includes(\"_\")) {\n // @ts-expect-error todo(flow->ts)\n extra.raw = extra.raw.replace(/_/g, \"\");\n }\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-numeric-separator\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-numeric-separator\").default,\n\n visitor: {\n NumericLiteral: remover,\n BigIntLiteral: remover,\n },\n };\n});\n","import type { types as t } from \"@babel/core\";\n\n/**\n * This is a helper function to determine if we should create an intermediate variable\n * such that the RHS of an assignment is not duplicated.\n *\n * See https://github.com/babel/babel/pull/13711#issuecomment-914388382 for discussion\n * on further optimizations.\n */\nexport default function shouldStoreRHSInTemporaryVariable(\n node: t.LVal,\n): boolean {\n if (!node) return false;\n if (node.type === \"ArrayPattern\") {\n const nonNullElements = node.elements.filter(element => element !== null);\n if (nonNullElements.length > 1) return true;\n else return shouldStoreRHSInTemporaryVariable(nonNullElements[0]);\n } else if (node.type === \"ObjectPattern\") {\n const { properties } = node;\n if (properties.length > 1) return true;\n else if (properties.length === 0) return false;\n else {\n const firstProperty = properties[0];\n if (firstProperty.type === \"ObjectProperty\") {\n // the value of the property must be an LVal\n return shouldStoreRHSInTemporaryVariable(firstProperty.value as t.LVal);\n } else {\n return shouldStoreRHSInTemporaryVariable(firstProperty);\n }\n }\n } else if (node.type === \"AssignmentPattern\") {\n return shouldStoreRHSInTemporaryVariable(node.left);\n } else if (node.type === \"RestElement\") {\n if (node.argument.type === \"Identifier\") return true;\n return shouldStoreRHSInTemporaryVariable(node.argument);\n } else {\n // node is Identifier or MemberExpression\n return false;\n }\n}\n","export default {\n \"Object.assign\": {\n chrome: \"49\",\n opera: \"36\",\n edge: \"13\",\n firefox: \"36\",\n safari: \"10\",\n node: \"6\",\n deno: \"1\",\n ios: \"10\",\n samsung: \"5\",\n opera_mobile: \"36\",\n electron: \"0.37\",\n },\n};\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\nimport { convertFunctionParams } from \"@babel/plugin-transform-parameters\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport shouldStoreRHSInTemporaryVariable from \"./shouldStoreRHSInTemporaryVariable.ts\";\nimport compatData from \"./compat-data.ts\";\n\nconst { isAssignmentPattern, isObjectProperty } = t;\n// @babel/types <=7.3.3 counts FOO as referenced in var { x: FOO }.\n// We need to detect this bug to know if \"unused\" means 0 or 1 references.\nif (!process.env.BABEL_8_BREAKING) {\n const node = t.identifier(\"a\");\n const property = t.objectProperty(t.identifier(\"key\"), node);\n const pattern = t.objectPattern([property]);\n\n // eslint-disable-next-line no-var\n var ZERO_REFS = t.isReferenced(node, property, pattern) ? 1 : 0;\n}\n\ntype Param = NodePath;\nexport interface Options {\n useBuiltIns?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const targets = api.targets();\n const supportsObjectAssign = !isRequired(\"Object.assign\", targets, {\n compatData,\n });\n\n const { useBuiltIns = supportsObjectAssign, loose = false } = opts;\n\n if (typeof loose !== \"boolean\") {\n throw new Error(\".loose must be a boolean, or undefined\");\n }\n\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? loose;\n const objectRestNoSymbols = api.assumption(\"objectRestNoSymbols\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n const setSpreadProperties = api.assumption(\"setSpreadProperties\") ?? loose;\n\n function getExtendsHelper(\n file: PluginPass,\n ): t.MemberExpression | t.Identifier {\n return useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n }\n\n function hasRestElement(path: Param) {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n foundRestElement = true;\n restElement.stop();\n });\n return foundRestElement;\n }\n\n function hasObjectPatternRestElement(path: NodePath): boolean {\n let foundRestElement = false;\n visitRestElements(path, restElement => {\n if (restElement.parentPath.isObjectPattern()) {\n foundRestElement = true;\n restElement.stop();\n }\n });\n return foundRestElement;\n }\n\n function visitRestElements(\n path: NodePath,\n visitor: (path: NodePath) => any,\n ) {\n path.traverse({\n Expression(path) {\n const { parent, key } = path;\n if (\n (isAssignmentPattern(parent) && key === \"right\") ||\n (isObjectProperty(parent) && parent.computed && key === \"key\")\n ) {\n path.skip();\n }\n },\n RestElement: visitor,\n });\n }\n\n function hasSpread(node: t.ObjectExpression): boolean {\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n return true;\n }\n }\n return false;\n }\n\n // returns an array of all keys of an object, and a status flag indicating if all extracted keys\n // were converted to stringLiterals or not\n // e.g. extracts {keys: [\"a\", \"b\", \"3\", ++x], allPrimitives: false }\n // from ast of {a: \"foo\", b, 3: \"bar\", [++x]: \"baz\"}\n // `allPrimitives: false` doesn't necessarily mean that there is a non-primitive, but just\n // that we are not sure.\n function extractNormalizedKeys(node: t.ObjectPattern) {\n // RestElement has been removed in createObjectRest\n const props = node.properties as t.ObjectProperty[];\n const keys: t.Expression[] = [];\n let allPrimitives = true;\n let hasTemplateLiteral = false;\n\n for (const prop of props) {\n const { key } = prop;\n if (t.isIdentifier(key) && !prop.computed) {\n // since a key {a: 3} is equivalent to {\"a\": 3}, use the latter\n keys.push(t.stringLiteral(key.name));\n } else if (t.isTemplateLiteral(key)) {\n keys.push(t.cloneNode(key));\n hasTemplateLiteral = true;\n } else if (t.isLiteral(key)) {\n keys.push(\n t.stringLiteral(\n String(\n // @ts-expect-error prop.key can not be a NullLiteral\n key.value,\n ),\n ),\n );\n } else {\n // @ts-expect-error private name has been handled by destructuring-private\n keys.push(t.cloneNode(key));\n\n if (\n (t.isMemberExpression(key, { computed: false }) &&\n t.isIdentifier(key.object, { name: \"Symbol\" })) ||\n (t.isCallExpression(key) &&\n t.matchesPattern(key.callee, \"Symbol.for\"))\n ) {\n // there all return a primitive\n } else {\n allPrimitives = false;\n }\n }\n }\n\n return { keys, allPrimitives, hasTemplateLiteral };\n }\n\n // replaces impure computed keys with new identifiers\n // and returns variable declarators of these new identifiers\n function replaceImpureComputedKeys(\n properties: NodePath[],\n scope: Scope,\n ) {\n const impureComputedPropertyDeclarators: t.VariableDeclarator[] = [];\n for (const propPath of properties) {\n // PrivateName is handled in destructuring-private plugin\n const key = propPath.get(\"key\") as NodePath;\n if (propPath.node.computed && !key.isPure()) {\n const name = scope.generateUidBasedOnNode(key.node);\n const declarator = t.variableDeclarator(t.identifier(name), key.node);\n impureComputedPropertyDeclarators.push(declarator);\n key.replaceWith(t.identifier(name));\n }\n }\n return impureComputedPropertyDeclarators;\n }\n\n function removeUnusedExcludedKeys(path: NodePath): void {\n const bindings = path.getOuterBindingIdentifierPaths();\n\n Object.keys(bindings).forEach(bindingName => {\n const bindingParentPath = bindings[bindingName].parentPath;\n if (\n path.scope.getBinding(bindingName).references >\n (process.env.BABEL_8_BREAKING ? 0 : ZERO_REFS) ||\n !bindingParentPath.isObjectProperty()\n ) {\n return;\n }\n bindingParentPath.remove();\n });\n }\n\n //expects path to an object pattern\n function createObjectRest(\n path: NodePath,\n file: PluginPass,\n objRef: t.Identifier | t.MemberExpression,\n ): [t.VariableDeclarator[], t.LVal, t.CallExpression] {\n const props = path.get(\"properties\");\n const last = props[props.length - 1];\n t.assertRestElement(last.node);\n const restElement = t.cloneNode(last.node);\n last.remove();\n\n const impureComputedPropertyDeclarators = replaceImpureComputedKeys(\n path.get(\"properties\") as NodePath[],\n path.scope,\n );\n const { keys, allPrimitives, hasTemplateLiteral } = extractNormalizedKeys(\n path.node,\n );\n\n if (keys.length === 0) {\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(getExtendsHelper(file), [\n t.objectExpression([]),\n t.sequenceExpression([\n t.callExpression(file.addHelper(\"objectDestructuringEmpty\"), [\n t.cloneNode(objRef),\n ]),\n t.cloneNode(objRef),\n ]),\n ]),\n ];\n }\n\n let keyExpression;\n if (!allPrimitives) {\n // map to toPropertyKey to handle the possible non-string values\n keyExpression = t.callExpression(\n t.memberExpression(t.arrayExpression(keys), t.identifier(\"map\")),\n [file.addHelper(\"toPropertyKey\")],\n );\n } else {\n keyExpression = t.arrayExpression(keys);\n\n if (!hasTemplateLiteral && !t.isProgram(path.scope.block)) {\n // Hoist definition of excluded keys, so that it's not created each time.\n const program = path.findParent(path => path.isProgram());\n const id = path.scope.generateUidIdentifier(\"excluded\");\n\n program.scope.push({\n id,\n init: keyExpression,\n kind: \"const\",\n });\n\n keyExpression = t.cloneNode(id);\n }\n }\n\n return [\n impureComputedPropertyDeclarators,\n restElement.argument,\n t.callExpression(\n file.addHelper(\n `objectWithoutProperties${objectRestNoSymbols ? \"Loose\" : \"\"}`,\n ),\n [t.cloneNode(objRef), keyExpression],\n ),\n ];\n }\n\n function replaceRestElement(\n parentPath: NodePath,\n paramPath: NodePath<\n t.Function[\"params\"][number] | t.AssignmentPattern[\"left\"]\n >,\n container?: t.VariableDeclaration[],\n ): void {\n if (paramPath.isAssignmentPattern()) {\n replaceRestElement(parentPath, paramPath.get(\"left\"), container);\n return;\n }\n\n if (paramPath.isArrayPattern() && hasRestElement(paramPath)) {\n const elements = paramPath.get(\"elements\");\n\n for (let i = 0; i < elements.length; i++) {\n replaceRestElement(parentPath, elements[i], container);\n }\n }\n\n if (paramPath.isObjectPattern() && hasRestElement(paramPath)) {\n const uid = parentPath.scope.generateUidIdentifier(\"ref\");\n\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(paramPath.node, uid),\n ]);\n\n if (container) {\n container.push(declar);\n } else {\n parentPath.ensureBlock();\n (parentPath.get(\"body\") as NodePath).unshiftContainer(\n \"body\",\n declar,\n );\n }\n paramPath.replaceWith(t.cloneNode(uid));\n }\n }\n\n return {\n name: \"transform-object-rest-spread\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-object-rest-spread\").default,\n\n visitor: {\n // function a({ b, ...c }) {}\n Function(path) {\n const params = path.get(\"params\");\n const paramsWithRestElement = new Set();\n const idsInRestParams = new Set();\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (hasRestElement(param)) {\n paramsWithRestElement.add(i);\n for (const name of Object.keys(param.getBindingIdentifiers())) {\n idsInRestParams.add(name);\n }\n }\n }\n\n // if true, a parameter exists that has an id in its initializer\n // that is also an id bound in a rest parameter\n // example: f({...R}, a = R)\n let idInRest = false;\n\n const IdentifierHandler = function (\n path: NodePath,\n functionScope: Scope,\n ) {\n const name = path.node.name;\n if (\n path.scope.getBinding(name) === functionScope.getBinding(name) &&\n idsInRestParams.has(name)\n ) {\n idInRest = true;\n path.stop();\n }\n };\n\n let i: number;\n for (i = 0; i < params.length && !idInRest; ++i) {\n const param = params[i];\n if (!paramsWithRestElement.has(i)) {\n if (param.isReferencedIdentifier() || param.isBindingIdentifier()) {\n IdentifierHandler(param, path.scope);\n } else {\n param.traverse(\n {\n \"Scope|TypeAnnotation|TSTypeAnnotation\": path => path.skip(),\n \"ReferencedIdentifier|BindingIdentifier\": IdentifierHandler,\n },\n path.scope,\n );\n }\n }\n }\n\n if (!idInRest) {\n for (let i = 0; i < params.length; ++i) {\n const param = params[i];\n if (paramsWithRestElement.has(i)) {\n replaceRestElement(path, param);\n }\n }\n } else {\n const shouldTransformParam = (idx: number) =>\n idx >= i - 1 || paramsWithRestElement.has(idx);\n convertFunctionParams(\n path,\n ignoreFunctionLength,\n shouldTransformParam,\n replaceRestElement,\n );\n }\n },\n\n // adapted from transform-destructuring/src/index.js#pushObjectRest\n // const { a, ...b } = c;\n VariableDeclarator(path, file) {\n if (!path.get(\"id\").isObjectPattern()) {\n return;\n }\n\n let insertionPath = path;\n const originalPath = path;\n\n visitRestElements(path.get(\"id\"), path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n if (\n // skip single-property case, e.g.\n // const { ...x } = foo();\n // since the RHS will not be duplicated\n shouldStoreRHSInTemporaryVariable(originalPath.node.id) &&\n !t.isIdentifier(originalPath.node.init)\n ) {\n // const { a, ...b } = foo();\n // to avoid calling foo() twice, as a first step convert it to:\n // const _foo = foo(),\n // { a, ...b } = _foo;\n const initRef = path.scope.generateUidIdentifierBasedOnNode(\n originalPath.node.init,\n \"ref\",\n );\n // insert _foo = foo()\n originalPath.insertBefore(\n t.variableDeclarator(initRef, originalPath.node.init),\n );\n // replace foo() with _foo\n originalPath.replaceWith(\n t.variableDeclarator(originalPath.node.id, t.cloneNode(initRef)),\n );\n\n return;\n }\n\n let ref = originalPath.node.init;\n const refPropertyPath: NodePath[] = [];\n let kind;\n\n path.findParent((path: NodePath): boolean => {\n if (path.isObjectProperty()) {\n refPropertyPath.unshift(path);\n } else if (path.isVariableDeclarator()) {\n kind = path.parentPath.node.kind;\n return true;\n }\n });\n\n const impureObjRefComputedDeclarators = replaceImpureComputedKeys(\n refPropertyPath,\n path.scope,\n );\n refPropertyPath.forEach(prop => {\n const { node } = prop;\n ref = t.memberExpression(\n ref,\n t.cloneNode(node.key),\n node.computed || t.isLiteral(node.key),\n );\n });\n\n //@ts-expect-error: findParent can not apply assertions on result shape\n const objectPatternPath: NodePath = path.findParent(\n path => path.isObjectPattern(),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(\n objectPatternPath,\n file,\n ref as t.MemberExpression,\n );\n\n if (pureGetters) {\n removeUnusedExcludedKeys(objectPatternPath);\n }\n\n t.assertIdentifier(argument);\n\n insertionPath.insertBefore(impureComputedPropertyDeclarators);\n\n insertionPath.insertBefore(impureObjRefComputedDeclarators);\n\n insertionPath = insertionPath.insertAfter(\n t.variableDeclarator(argument, callExpression),\n )[0] as NodePath;\n\n path.scope.registerBinding(kind, insertionPath);\n\n if (objectPatternPath.node.properties.length === 0) {\n objectPatternPath\n .findParent(\n path => path.isObjectProperty() || path.isVariableDeclarator(),\n )\n .remove();\n }\n });\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n // export var { a, ...b } = c;\n ExportNamedDeclaration(path) {\n const declaration = path.get(\"declaration\");\n if (!declaration.isVariableDeclaration()) return;\n\n const hasRest = declaration\n .get(\"declarations\")\n .some(path => hasObjectPatternRestElement(path.get(\"id\")));\n if (!hasRest) return;\n\n const specifiers = [];\n\n for (const name of Object.keys(path.getOuterBindingIdentifiers(true))) {\n specifiers.push(\n t.exportSpecifier(t.identifier(name), t.identifier(name)),\n );\n }\n\n // Split the declaration and export list into two declarations so that the variable\n // declaration can be split up later without needing to worry about not being a\n // top-level statement.\n path.replaceWith(declaration.node);\n path.insertAfter(t.exportNamedDeclaration(null, specifiers));\n },\n\n // try {} catch ({a, ...b}) {}\n CatchClause(path) {\n const paramPath = path.get(\"param\");\n replaceRestElement(path, paramPath);\n },\n\n // ({a, ...b} = c);\n AssignmentExpression(path, file) {\n const leftPath = path.get(\"left\");\n if (leftPath.isObjectPattern() && hasRestElement(leftPath)) {\n const nodes = [];\n\n const refName = path.scope.generateUidBasedOnNode(\n path.node.right,\n \"ref\",\n );\n\n nodes.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(refName), path.node.right),\n ]),\n );\n\n const [impureComputedPropertyDeclarators, argument, callExpression] =\n createObjectRest(leftPath, file, t.identifier(refName));\n\n if (impureComputedPropertyDeclarators.length > 0) {\n nodes.push(\n t.variableDeclaration(\"var\", impureComputedPropertyDeclarators),\n );\n }\n\n const nodeWithoutSpread = t.cloneNode(path.node);\n nodeWithoutSpread.right = t.identifier(refName);\n nodes.push(t.expressionStatement(nodeWithoutSpread));\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", argument, callExpression),\n ),\n );\n nodes.push(t.expressionStatement(t.identifier(refName)));\n\n path.replaceWithMultiple(nodes);\n }\n },\n\n // taken from transform-destructuring/src/index.js#visitor\n ForXStatement(path: NodePath) {\n const { node, scope } = path;\n const leftPath = path.get(\"left\");\n const left = node.left;\n\n if (!hasObjectPatternRestElement(leftPath)) {\n return;\n }\n\n if (!t.isVariableDeclaration(left)) {\n // for ({a, ...b} of []) {}\n const temp = scope.generateUidIdentifier(\"ref\");\n\n node.left = t.variableDeclaration(\"var\", [\n t.variableDeclarator(temp),\n ]);\n\n path.ensureBlock();\n const body = path.node.body as t.BlockStatement;\n\n if (body.body.length === 0 && path.isCompletionRecord()) {\n body.body.unshift(\n t.expressionStatement(scope.buildUndefinedNode()),\n );\n }\n\n body.body.unshift(\n t.expressionStatement(\n t.assignmentExpression(\"=\", left, t.cloneNode(temp)),\n ),\n );\n } else {\n // for (var {a, ...b} of []) {}\n const pattern = left.declarations[0].id;\n\n const key = scope.generateUidIdentifier(\"ref\");\n node.left = t.variableDeclaration(left.kind, [\n t.variableDeclarator(key, null),\n ]);\n\n path.ensureBlock();\n const body = node.body as t.BlockStatement;\n\n body.body.unshift(\n t.variableDeclaration(node.left.kind, [\n t.variableDeclarator(pattern, t.cloneNode(key)),\n ]),\n );\n }\n },\n\n // [{a, ...b}] = c;\n ArrayPattern(path) {\n const objectPatterns: t.VariableDeclarator[] = [];\n\n visitRestElements(path, path => {\n if (!path.parentPath.isObjectPattern()) {\n // Return early if the parent is not an ObjectPattern, but\n // (for example) an ArrayPattern or Function, because that\n // means this RestElement is an not an object property.\n return;\n }\n\n const objectPattern = path.parentPath;\n\n const uid = path.scope.generateUidIdentifier(\"ref\");\n objectPatterns.push(t.variableDeclarator(objectPattern.node, uid));\n\n objectPattern.replaceWith(t.cloneNode(uid));\n path.skip();\n });\n\n if (objectPatterns.length > 0) {\n const statementPath = path.getStatementParent();\n const statementNode = statementPath.node;\n const kind =\n statementNode.type === \"VariableDeclaration\"\n ? statementNode.kind\n : \"var\";\n statementPath.insertAfter(\n t.variableDeclaration(kind, objectPatterns),\n );\n }\n },\n\n // var a = { ...b, ...c }\n ObjectExpression(path, file) {\n if (!hasSpread(path.node)) return;\n\n let helper: t.Identifier | t.MemberExpression;\n if (setSpreadProperties) {\n helper = getExtendsHelper(file);\n } else {\n if (process.env.BABEL_8_BREAKING) {\n helper = file.addHelper(\"objectSpread2\");\n } else {\n try {\n helper = file.addHelper(\"objectSpread2\");\n } catch {\n // TODO: This is needed to workaround https://github.com/babel/babel/issues/10187\n // and https://github.com/babel/babel/issues/10179 for older @babel/core versions\n // where #10187 isn't fixed.\n this.file.declarations[\"objectSpread2\"] = null;\n\n // objectSpread2 has been introduced in v7.5.0\n // We have to maintain backward compatibility.\n helper = file.addHelper(\"objectSpread\");\n }\n }\n }\n\n let exp: t.CallExpression = null;\n let props: t.ObjectMember[] = [];\n\n function make() {\n const hadProps = props.length > 0;\n const obj = t.objectExpression(props);\n props = [];\n\n if (!exp) {\n exp = t.callExpression(helper, [obj]);\n return;\n }\n\n // When we can assume that getters are pure and don't depend on\n // the order of evaluation, we can avoid making multiple calls.\n if (pureGetters) {\n if (hadProps) {\n exp.arguments.push(obj);\n }\n return;\n }\n\n exp = t.callExpression(t.cloneNode(helper), [\n exp,\n // If we have static props, we need to insert an empty object\n // because the odd arguments are copied with [[Get]], not\n // [[GetOwnProperty]]\n ...(hadProps ? [t.objectExpression([]), obj] : []),\n ]);\n }\n\n for (const prop of path.node.properties) {\n if (t.isSpreadElement(prop)) {\n make();\n exp.arguments.push(prop.argument);\n } else {\n props.push(prop);\n }\n }\n\n if (props.length) make();\n\n path.replaceWith(exp);\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-optional-catch-binding\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-catch-binding\").default,\n\n visitor: {\n CatchClause(path) {\n if (!path.node.param) {\n const uid = path.scope.generateUidIdentifier(\"unused\");\n const paramPath = path.get(\"param\");\n paramPath.replaceWith(uid);\n }\n },\n },\n };\n});\n","import type { NodePath } from \"@babel/traverse\";\nimport { isTransparentExprWrapper } from \"@babel/helper-skip-transparent-expression-wrappers\";\n/**\n * Test if a NodePath will be cast to boolean when evaluated.\n * It respects transparent expression wrappers defined in\n * \"@babel/helper-skip-transparent-expression-wrappers\"\n *\n * @example\n * // returns true\n * const nodePathADotB = NodePath(\"if (a.b) {}\").get(\"test\"); // a.b\n * willPathCastToBoolean(nodePathADotB)\n * @example\n * // returns false\n * willPathCastToBoolean(NodePath(\"a.b\"))\n * @param {NodePath} path\n * @returns {boolean}\n */\nexport function willPathCastToBoolean(path: NodePath): boolean {\n const maybeWrapped = findOutermostTransparentParent(path);\n const { node, parentPath } = maybeWrapped;\n if (parentPath.isLogicalExpression()) {\n const { operator, right } = parentPath.node;\n if (\n operator === \"&&\" ||\n operator === \"||\" ||\n (operator === \"??\" && node === right)\n ) {\n return willPathCastToBoolean(parentPath);\n }\n }\n if (parentPath.isSequenceExpression()) {\n const { expressions } = parentPath.node;\n if (expressions[expressions.length - 1] === node) {\n return willPathCastToBoolean(parentPath);\n } else {\n // if it is in the middle of a sequence expression, we don't\n // care the return value so just cast to boolean for smaller\n // output\n return true;\n }\n }\n return (\n parentPath.isConditional({ test: node }) ||\n parentPath.isUnaryExpression({ operator: \"!\" }) ||\n parentPath.isLoop({ test: node })\n );\n}\n\n/**\n * Return the outermost transparent expression wrapper of a given path,\n * otherwise returns path itself.\n * @example\n * const nodePathADotB = NodePath(\"(a.b as any)\").get(\"expression\"); // a.b\n * // returns NodePath(\"(a.b as any)\")\n * findOutermostTransparentParent(nodePathADotB);\n * @param {NodePath} path\n * @returns {NodePath}\n */\nexport function findOutermostTransparentParent(path: NodePath): NodePath {\n let maybeWrapped = path;\n path.findParent(p => {\n if (!isTransparentExprWrapper(p.node)) return true;\n maybeWrapped = p;\n });\n return maybeWrapped;\n}\n","import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport {\n skipTransparentExprWrapperNodes,\n skipTransparentExprWrappers,\n} from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport {\n willPathCastToBoolean,\n findOutermostTransparentParent,\n} from \"./util.ts\";\n\n// TODO(Babel 9): Use .at(-1)\nconst last = (arr: T[]) => arr[arr.length - 1];\n\nfunction isSimpleMemberExpression(\n expression: t.Expression | t.Super,\n): expression is t.Identifier | t.Super | t.MemberExpression {\n expression = skipTransparentExprWrapperNodes(expression);\n return (\n t.isIdentifier(expression) ||\n t.isSuper(expression) ||\n (t.isMemberExpression(expression) &&\n !expression.computed &&\n isSimpleMemberExpression(expression.object))\n );\n}\n\n/**\n * Test if a given optional chain `path` needs to be memoized\n * @param {NodePath} path\n * @returns {boolean}\n */\nfunction needsMemoize(\n path: NodePath,\n) {\n let optionalPath: NodePath = path;\n const { scope } = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n const childPath = skipTransparentExprWrappers(\n optionalPath.isOptionalMemberExpression()\n ? optionalPath.get(\"object\")\n : optionalPath.get(\"callee\"),\n );\n if (node.optional) {\n return !scope.isStatic(childPath.node);\n }\n\n optionalPath = childPath;\n }\n}\n\nconst NULLISH_CHECK = template.expression(\n `%%check%% === null || %%ref%% === void 0`,\n);\nconst NULLISH_CHECK_NO_DDA = template.expression(`%%check%% == null`);\nconst NULLISH_CHECK_NEG = template.expression(\n `%%check%% !== null && %%ref%% !== void 0`,\n);\nconst NULLISH_CHECK_NO_DDA_NEG = template.expression(`%%check%% != null`);\n\ninterface OptionalChainAssumptions {\n pureGetters: boolean;\n noDocumentAll: boolean;\n}\n\nexport function transformOptionalChain(\n path: NodePath,\n { pureGetters, noDocumentAll }: OptionalChainAssumptions,\n replacementPath: NodePath,\n ifNullish: t.Expression,\n wrapLast?: (value: t.Expression) => t.Expression,\n) {\n const { scope } = path;\n\n // Replace `function (a, x = a.b?.c) {}` to `function (a, x = (() => a.b?.c)() ){}`\n // so the temporary variable can be injected in correct scope\n if (scope.path.isPattern() && needsMemoize(path)) {\n replacementPath.replaceWith(\n template.expression.ast`(() => ${replacementPath.node})()`,\n );\n // The injected optional chain will be queued and eventually transformed when visited\n return;\n }\n\n const optionals = [];\n\n let optionalPath = path;\n while (\n optionalPath.isOptionalMemberExpression() ||\n optionalPath.isOptionalCallExpression()\n ) {\n const { node } = optionalPath;\n if (node.optional) {\n optionals.push(node);\n }\n if (optionalPath.isOptionalMemberExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"MemberExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n // @ts-expect-error todo(flow->ts) avoid changing more type\n optionalPath.node.type = \"CallExpression\";\n // @ts-expect-error todo(flow->ts)\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n }\n }\n\n if (optionals.length === 0) {\n // Malformed AST: there was an OptionalMemberExpression node\n // with no actual optional elements.\n return;\n }\n\n const checks = [];\n\n let tmpVar;\n\n for (let i = optionals.length - 1; i >= 0; i--) {\n const node = optionals[i] as unknown as\n | t.MemberExpression\n | t.CallExpression;\n\n const isCall = t.isCallExpression(node);\n\n const chainWithTypes = isCall\n ? // V8 intrinsics must not be an optional call\n (node.callee as t.Expression)\n : node.object;\n const chain = skipTransparentExprWrapperNodes(chainWithTypes);\n\n let ref;\n let check;\n if (isCall && t.isIdentifier(chain, { name: \"eval\" })) {\n check = ref = chain;\n // `eval?.()` is an indirect eval call transformed to `(0,eval)()`\n node.callee = t.sequenceExpression([t.numericLiteral(0), ref]);\n } else if (pureGetters && isCall && isSimpleMemberExpression(chain)) {\n // If we assume getters are pure (avoiding a Function#call) and we are at the call,\n // we can avoid a needless memoize. We only do this if the callee is a simple member\n // expression, to avoid multiple calls to nested call expressions.\n check = ref = node.callee;\n } else if (scope.isStatic(chain)) {\n check = ref = chainWithTypes;\n } else {\n // We cannot reuse the tmpVar for calls, because we need to\n // store both the method and the receiver.\n if (!tmpVar || isCall) {\n tmpVar = scope.generateUidIdentifierBasedOnNode(chain);\n scope.push({ id: t.cloneNode(tmpVar) });\n }\n ref = tmpVar;\n check = t.assignmentExpression(\n \"=\",\n t.cloneNode(tmpVar),\n // Here `chainWithTypes` MUST NOT be cloned because it could be\n // updated when generating the memoised context of a call\n // expression. It must be an Expression when `ref` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n chainWithTypes as t.Expression,\n );\n\n isCall ? (node.callee = ref) : (node.object = ref);\n }\n\n // Ensure call expressions have the proper `this`\n // `foo.bar()` has context `foo`.\n if (isCall && t.isMemberExpression(chain)) {\n if (pureGetters && isSimpleMemberExpression(chain)) {\n // To avoid a Function#call, we can instead re-grab the property from the context object.\n // `a.?b.?()` translates roughly to `_a.b != null && _a.b()`\n node.callee = chainWithTypes;\n } else {\n // Otherwise, we need to memoize the context object, and change the call into a Function#call.\n // `a.?b.?()` translates roughly to `(_b = _a.b) != null && _b.call(_a)`\n const { object } = chain;\n let context: t.Expression;\n if (t.isSuper(object)) {\n context = t.thisExpression();\n } else {\n const memoized = scope.maybeGenerateMemoised(object);\n if (memoized) {\n context = memoized;\n chain.object = t.assignmentExpression(\"=\", memoized, object);\n } else {\n context = object;\n }\n }\n\n node.arguments.unshift(t.cloneNode(context));\n // @ts-expect-error node.callee can not be an V8IntrinsicIdentifier: V8 intrinsic is disallowed in optional chain\n node.callee = t.memberExpression(node.callee, t.identifier(\"call\"));\n }\n }\n\n const data = { check: t.cloneNode(check), ref: t.cloneNode(ref) };\n // We make `ref` non-enumerable, so that @babel/template doesn't throw\n // in the noDocumentAll template if it's not used.\n Object.defineProperty(data, \"ref\", { enumerable: false });\n checks.push(data);\n }\n\n let result = replacementPath.node;\n if (wrapLast) result = wrapLast(result);\n\n const ifNullishBoolean = t.isBooleanLiteral(ifNullish);\n const ifNullishFalse = ifNullishBoolean && ifNullish.value === false;\n const ifNullishVoid =\n !ifNullishBoolean && t.isUnaryExpression(ifNullish, { operator: \"void\" });\n\n const isEvaluationValueIgnored =\n (t.isExpressionStatement(replacementPath.parent) &&\n !replacementPath.isCompletionRecord()) ||\n (t.isSequenceExpression(replacementPath.parent) &&\n last(replacementPath.parent.expressions) !== replacementPath.node);\n\n // prettier-ignore\n const tpl = ifNullishFalse\n ? (noDocumentAll ? NULLISH_CHECK_NO_DDA_NEG : NULLISH_CHECK_NEG)\n : (noDocumentAll ? NULLISH_CHECK_NO_DDA : NULLISH_CHECK);\n const logicalOp = ifNullishFalse ? \"&&\" : \"||\";\n\n const check = checks\n .map(tpl)\n .reduce((expr, check) => t.logicalExpression(logicalOp, expr, check));\n\n replacementPath.replaceWith(\n ifNullishBoolean || (ifNullishVoid && isEvaluationValueIgnored)\n ? t.logicalExpression(logicalOp, check, result)\n : t.conditionalExpression(check, ifNullish, result),\n );\n}\n\nexport function transform(\n path: NodePath,\n assumptions: OptionalChainAssumptions,\n) {\n const { scope } = path;\n\n // maybeWrapped points to the outermost transparent expression wrapper\n // or the path itself\n const maybeWrapped = findOutermostTransparentParent(path);\n const { parentPath } = maybeWrapped;\n\n if (parentPath.isUnaryExpression({ operator: \"delete\" })) {\n transformOptionalChain(\n path,\n assumptions,\n parentPath,\n t.booleanLiteral(true),\n );\n } else {\n let wrapLast;\n if (\n parentPath.isCallExpression({ callee: maybeWrapped.node }) &&\n // note that the first condition must implies that `path.optional` is `true`,\n // otherwise the parentPath should be an OptionalCallExpression\n path.isOptionalMemberExpression()\n ) {\n // Ensure (a?.b)() has proper `this`\n wrapLast = (replacement: t.MemberExpression) => {\n // `(a?.b)()` to `(a == null ? undefined : a.b.bind(a))()`\n // object must not be Super as super?.foo is invalid\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const object = skipTransparentExprWrapperNodes(\n replacement.object,\n ) as t.Expression;\n let baseRef: t.Expression;\n if (!assumptions.pureGetters || !isSimpleMemberExpression(object)) {\n // memoize the context object when getters are not always pure\n // or the object is not a simple member expression\n // `(a?.b.c)()` to `(a == null ? undefined : (_a$b = a.b).c.bind(_a$b))()`\n baseRef = scope.maybeGenerateMemoised(object);\n if (baseRef) {\n replacement.object = t.assignmentExpression(\"=\", baseRef, object);\n }\n }\n return t.callExpression(\n t.memberExpression(replacement, t.identifier(\"bind\")),\n [t.cloneNode(baseRef ?? object)],\n );\n };\n }\n\n transformOptionalChain(\n path,\n assumptions,\n path,\n willPathCastToBoolean(maybeWrapped)\n ? t.booleanLiteral(false)\n : scope.buildUndefinedNode(),\n wrapLast,\n );\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform, transformOptionalChain } from \"./transform.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { loose = false } = options;\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? loose;\n const pureGetters = api.assumption(\"pureGetters\") ?? loose;\n\n return {\n name: \"transform-optional-chaining\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-optional-chaining\").default,\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath,\n ) {\n transform(path, { noDocumentAll, pureGetters });\n },\n },\n };\n});\n\nexport { transform, transformOptionalChain };\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxOptionalChainingAssign from \"@babel/plugin-syntax-optional-chaining-assign\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport { transformOptionalChain } from \"@babel/plugin-transform-optional-chaining\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.22.5\"));\n\n const assumptions = {\n noDocumentAll: api.assumption(\"noDocumentAll\") ?? false,\n pureGetters: api.assumption(\"pureGetters\") ?? false,\n };\n\n const { types: t } = api;\n\n return {\n name: \"transform-optional-chaining-assign\",\n inherits: syntaxOptionalChainingAssign,\n\n visitor: {\n AssignmentExpression(path, state) {\n let lhs = path.get(\"left\");\n if (!lhs.isExpression()) return;\n const isParenthesized =\n lhs.node.extra?.parenthesized ||\n t.isParenthesizedExpression(lhs.node);\n\n lhs = skipTransparentExprWrappers(lhs) as NodePath<\n t.LVal & t.Expression\n >;\n if (!lhs.isOptionalMemberExpression()) return;\n\n let ifNullish: t.Expression = path.scope.buildUndefinedNode();\n if (isParenthesized) {\n ifNullish = t.callExpression(\n state.addHelper(\"nullishReceiverError\"),\n [],\n );\n if (path.node.operator === \"=\") {\n ifNullish = t.sequenceExpression([\n t.cloneNode(path.node.right),\n ifNullish,\n ]);\n }\n }\n\n transformOptionalChain(lhs, assumptions, path, ifNullish);\n },\n },\n };\n});\n","import { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\n// tries to optimize sequence expressions in the format\n// (a = b, (c => c + e)(a))\n// to\n// (a = b, a + e)\n\ntype Options = {\n call: t.CallExpression | t.AwaitExpression;\n path: NodePath\" }>;\n placeholder: t.Identifier;\n};\n\nfunction isConciseArrowExpression(\n node: t.Node,\n): node is t.ArrowFunctionExpression & { body: t.Expression } {\n return (\n t.isArrowFunctionExpression(node) &&\n t.isExpression(node.body) &&\n !node.async\n );\n}\n\nconst buildOptimizedSequenceExpression = ({\n call,\n path,\n placeholder,\n}: Options) => {\n // @ts-expect-error AwaitExpression does not have callee property\n const { callee: calledExpression } = call;\n // pipelineLeft must not be a PrivateName\n const pipelineLeft = path.node.left as t.Expression;\n const assign = t.assignmentExpression(\n \"=\",\n t.cloneNode(placeholder),\n pipelineLeft,\n );\n\n const expressionIsArrow = isConciseArrowExpression(calledExpression);\n\n if (expressionIsArrow) {\n let param;\n let optimizeArrow = true;\n const { params } = calledExpression;\n if (params.length === 1 && t.isIdentifier(params[0])) {\n param = params[0];\n } else if (params.length > 0) {\n optimizeArrow = false;\n }\n if (optimizeArrow && !param) {\n // fixme: arrow function with 1 pattern argument will also go into this branch\n // Arrow function with 0 arguments\n return t.sequenceExpression([pipelineLeft, calledExpression.body]);\n } else if (param) {\n path.scope.push({ id: t.cloneNode(placeholder) });\n path.get(\"right\").scope.rename(param.name, placeholder.name);\n\n return t.sequenceExpression([assign, calledExpression.body]);\n }\n } else if (t.isIdentifier(calledExpression, { name: \"eval\" })) {\n const evalSequence = t.sequenceExpression([\n t.numericLiteral(0),\n calledExpression,\n ]);\n\n (call as t.CallExpression).callee = evalSequence;\n }\n path.scope.push({ id: t.cloneNode(placeholder) });\n\n return t.sequenceExpression([assign, call]);\n};\n\nexport default buildOptimizedSequenceExpression;\n","import { types as t, type PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport buildOptimizedSequenceExpression from \"./buildOptimizedSequenceExpression.ts\";\n\nconst minimalVisitor: Visitor = {\n BinaryExpression(path) {\n const { scope, node } = path;\n const { operator, left, right } = node;\n if (operator !== \"|>\") return;\n\n const placeholder = scope.generateUidIdentifierBasedOnNode(left);\n\n const call = t.callExpression(right, [t.cloneNode(placeholder)]);\n path.replaceWith(\n buildOptimizedSequenceExpression({\n placeholder,\n call,\n path: path as NodePath\" }>,\n }),\n );\n },\n};\n\nexport default minimalVisitor;\n","import { types as t } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport type { PluginPass } from \"@babel/core\";\n\ntype State = {\n topicReferences: NodePath[];\n sideEffectsBeforeFirstTopicReference: boolean;\n};\n\nconst topicReferenceVisitor: Visitor = {\n exit(path, state) {\n if (path.isTopicReference()) {\n state.topicReferences.push(path);\n } else {\n if (\n state.topicReferences.length === 0 &&\n !state.sideEffectsBeforeFirstTopicReference &&\n !path.isPure()\n ) {\n state.sideEffectsBeforeFirstTopicReference = true;\n }\n }\n },\n \"ClassBody|Function\"(_, state) {\n if (state.topicReferences.length === 0) {\n state.sideEffectsBeforeFirstTopicReference = true;\n }\n },\n};\n\n// This visitor traverses `BinaryExpression`\n// and replaces any that use `|>`\n// with sequence expressions containing assignment expressions\n// with automatically generated variables,\n// from inside to outside, from left to right.\nconst visitor: Visitor = {\n BinaryExpression: {\n exit(path) {\n const { scope, node } = path;\n\n if (node.operator !== \"|>\") {\n // The path node is a binary expression,\n // but it is not a pipe expression.\n return;\n }\n\n const pipeBodyPath = path.get(\"right\");\n if (pipeBodyPath.node.type === \"TopicReference\") {\n // If the pipe body is itself a lone topic reference,\n // then replace the whole expression with its left operand.\n path.replaceWith(node.left);\n return;\n }\n\n const visitorState: State = {\n topicReferences: [],\n // pipeBodyPath might be a function, and it won't be visited by\n // topicReferenceVisitor because traverse() skips the top-level\n // node. We must handle that case here manually.\n sideEffectsBeforeFirstTopicReference: pipeBodyPath.isFunction(),\n };\n pipeBodyPath.traverse(topicReferenceVisitor, visitorState);\n\n if (\n visitorState.topicReferences.length === 1 &&\n (!visitorState.sideEffectsBeforeFirstTopicReference ||\n path.scope.isPure(node.left, true))\n ) {\n visitorState.topicReferences[0].replaceWith(node.left);\n path.replaceWith(node.right);\n return;\n }\n\n const topicVariable = scope.generateUidIdentifierBasedOnNode(node);\n scope.push({ id: topicVariable });\n\n // Replace topic references with the topic variable.\n visitorState.topicReferences.forEach(path =>\n path.replaceWith(t.cloneNode(topicVariable)),\n );\n\n // Replace the pipe expression itself with an assignment expression.\n path.replaceWith(\n t.sequenceExpression([\n t.assignmentExpression(\n \"=\",\n t.cloneNode(topicVariable),\n // @ts-expect-error node.left must not be a PrivateName when operator is |>\n node.left,\n ),\n node.right,\n ]),\n );\n },\n },\n};\n\nexport default visitor;\n","import { types as t, type PluginObject } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport buildOptimizedSequenceExpression from \"./buildOptimizedSequenceExpression.ts\";\n\nconst fsharpVisitor: PluginObject[\"visitor\"] = {\n BinaryExpression(path) {\n const { scope, node } = path;\n const { operator, left, right } = node;\n if (operator !== \"|>\") return;\n\n const placeholder = scope.generateUidIdentifierBasedOnNode(left);\n\n const call =\n right.type === \"AwaitExpression\"\n ? t.awaitExpression(t.cloneNode(placeholder))\n : t.callExpression(right, [t.cloneNode(placeholder)]);\n const sequence = buildOptimizedSequenceExpression({\n placeholder,\n call,\n path: path as NodePath\" }>,\n });\n path.replaceWith(sequence);\n },\n};\n\nexport default fsharpVisitor;\n","import { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport type { Visitor } from \"@babel/traverse\";\n\nconst updateTopicReferenceVisitor: Visitor<{ topicId: t.Identifier }> = {\n PipelinePrimaryTopicReference(path) {\n path.replaceWith(t.cloneNode(this.topicId));\n },\n PipelineTopicExpression(path) {\n path.skip();\n },\n};\n\nconst smartVisitor: Visitor = {\n BinaryExpression(path) {\n const { scope } = path;\n const { node } = path;\n const { operator, left, right } = node;\n if (operator !== \"|>\") return;\n\n const placeholder = scope.generateUidIdentifierBasedOnNode(left);\n scope.push({ id: placeholder });\n\n let call;\n if (t.isPipelineTopicExpression(right)) {\n path\n .get(\"right\")\n .traverse(updateTopicReferenceVisitor, { topicId: placeholder });\n\n call = right.expression;\n } else {\n // PipelineBareFunction\n let callee = (right as t.CallExpression).callee;\n if (t.isIdentifier(callee, { name: \"eval\" })) {\n callee = t.sequenceExpression([t.numericLiteral(0), callee]);\n }\n\n call = t.callExpression(callee, [t.cloneNode(placeholder)]);\n }\n\n path.replaceWith(\n t.sequenceExpression([\n t.assignmentExpression(\n \"=\",\n t.cloneNode(placeholder),\n // left must not be a PrivateName because operator is not \"in\"\n left as t.Expression,\n ),\n call,\n ]),\n );\n },\n};\n\nexport default smartVisitor;\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxPipelineOperator from \"@babel/plugin-syntax-pipeline-operator\";\nimport minimalVisitor from \"./minimalVisitor.ts\";\nimport hackVisitor from \"./hackVisitor.ts\";\nimport fsharpVisitor from \"./fsharpVisitor.ts\";\nimport smartVisitor from \"./smartVisitor.ts\";\nimport type { Options } from \"@babel/plugin-syntax-pipeline-operator\";\n\nconst visitorsPerProposal = {\n minimal: minimalVisitor,\n hack: hackVisitor,\n fsharp: fsharpVisitor,\n smart: smartVisitor,\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { proposal } = options;\n\n if (proposal === \"smart\") {\n console.warn(\n `The smart-mix pipe operator is deprecated. Use \"proposal\": \"hack\" instead.`,\n );\n }\n\n return {\n name: \"proposal-pipeline-operator\",\n inherits: syntaxPipelineOperator,\n visitor: visitorsPerProposal[options.proposal],\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport {\n createClassFeaturePlugin,\n FEATURES,\n} from \"@babel/helper-create-class-features-plugin\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return createClassFeaturePlugin({\n name: \"transform-private-methods\",\n\n api,\n feature: FEATURES.privateMethods,\n loose: options.loose,\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"classPrivateMethods\");\n },\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n enableFeature,\n FEATURES,\n injectInitialization as injectConstructorInit,\n buildCheckInRHS,\n} from \"@babel/helper-create-class-features-plugin\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type * as t from \"@babel/types\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\nexport default declare((api, opt: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n const { types: t, template } = api;\n const { loose } = opt;\n\n // NOTE: When using the class fields or private methods plugins,\n // they will also take care of '#priv in obj' checks when visiting\n // the ClassExpression or ClassDeclaration nodes.\n // The visitor of this plugin is only effective when not compiling\n // private fields and methods.\n\n const classWeakSets: WeakMap = new WeakMap();\n const fieldsWeakSets: WeakMap<\n t.ClassPrivateProperty | t.ClassPrivateMethod,\n t.Identifier\n > = new WeakMap();\n\n function unshadow(name: string, targetScope: Scope, scope: Scope) {\n while (scope !== targetScope) {\n if (scope.hasOwnBinding(name)) scope.rename(name);\n scope = scope.parent;\n }\n }\n\n function injectToFieldInit(\n fieldPath: NodePath,\n expr: t.Expression,\n before = false,\n ) {\n if (fieldPath.node.value) {\n const value = fieldPath.get(\"value\");\n if (before) {\n value.insertBefore(expr);\n } else {\n value.insertAfter(expr);\n }\n } else {\n fieldPath.set(\"value\", t.unaryExpression(\"void\", expr));\n }\n }\n\n function injectInitialization(\n classPath: NodePath,\n init: t.Expression,\n ) {\n let firstFieldPath;\n let constructorPath;\n\n for (const el of classPath.get(\"body.body\")) {\n if (\n (el.isClassProperty() || el.isClassPrivateProperty()) &&\n !el.node.static\n ) {\n firstFieldPath = el;\n break;\n }\n if (!constructorPath && el.isClassMethod({ kind: \"constructor\" })) {\n constructorPath = el;\n }\n }\n\n if (firstFieldPath) {\n injectToFieldInit(firstFieldPath, init, true);\n } else {\n injectConstructorInit(classPath, constructorPath, [\n t.expressionStatement(init),\n ]);\n }\n }\n\n function getWeakSetId(\n weakSets: WeakMap,\n outerClass: NodePath,\n reference: NodePath,\n name = \"\",\n inject: (\n reference: NodePath,\n expression: t.Expression,\n before?: boolean,\n ) => void,\n ) {\n let id = weakSets.get(reference.node);\n\n if (!id) {\n id = outerClass.scope.generateUidIdentifier(`${name || \"\"} brandCheck`);\n weakSets.set(reference.node, id);\n\n inject(reference, template.expression.ast`${t.cloneNode(id)}.add(this)`);\n\n const newExpr = t.newExpression(t.identifier(\"WeakSet\"), []);\n annotateAsPure(newExpr);\n\n outerClass.insertBefore(template.ast`var ${id} = ${newExpr}`);\n }\n\n return t.cloneNode(id);\n }\n\n return {\n name: \"transform-private-property-in-object\",\n inherits:\n USE_ESM || IS_STANDALONE || api.version[0] === \"8\"\n ? undefined\n : // eslint-disable-next-line no-restricted-globals\n require(\"@babel/plugin-syntax-private-property-in-object\").default,\n pre() {\n // Enable this in @babel/helper-create-class-features-plugin, so that it\n // can be handled by the private fields and methods transform.\n enableFeature(this.file, FEATURES.privateIn, loose);\n },\n visitor: {\n BinaryExpression(path, state) {\n const { node } = path;\n const { file } = state;\n if (node.operator !== \"in\") return;\n if (!t.isPrivateName(node.left)) return;\n\n const { name } = node.left.id;\n\n let privateElement: NodePath<\n t.ClassPrivateMethod | t.ClassPrivateProperty\n >;\n const outerClass = path.findParent(path => {\n if (!path.isClass()) return false;\n\n privateElement = path.get(\"body.body\").find(\n ({ node }) =>\n // fixme: Support class accessor property\n t.isPrivate(node) && node.key.id.name === name,\n ) as NodePath;\n\n return !!privateElement;\n }) as NodePath;\n\n if (outerClass.parentPath.scope.path.isPattern()) {\n outerClass.replaceWith(\n template.ast`(() => ${outerClass.node})()` as t.Statement,\n );\n // The injected class will be queued and eventually transformed when visited\n return;\n }\n\n if (privateElement.node.type === \"ClassPrivateMethod\") {\n if (privateElement.node.static) {\n if (outerClass.node.id) {\n unshadow(outerClass.node.id.name, outerClass.scope, path.scope);\n } else {\n outerClass.set(\"id\", path.scope.generateUidIdentifier(\"class\"));\n }\n path.replaceWith(\n template.expression.ast`\n ${t.cloneNode(outerClass.node.id)} === ${buildCheckInRHS(\n node.right,\n file,\n )}\n `,\n );\n } else {\n const id = getWeakSetId(\n classWeakSets,\n outerClass,\n outerClass,\n outerClass.node.id?.name,\n injectInitialization,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n } else {\n // Private fields might not all be initialized: see the 'halfConstructed'\n // example at https://v8.dev/features/private-brand-checks.\n\n const id = getWeakSetId(\n fieldsWeakSets,\n outerClass,\n privateElement as NodePath,\n privateElement.node.key.id.name,\n injectToFieldInit,\n );\n\n path.replaceWith(\n template.expression.ast`${id}.has(${buildCheckInRHS(\n node.right,\n file,\n )})`,\n );\n }\n },\n },\n };\n});\n","/*\n ** Copyright 2020 Bloomberg Finance L.P.\n **\n ** Licensed under the MIT License (the \"License\");\n ** you may not use this file except in compliance with the License.\n ** You may obtain a copy of the License at\n **\n ** https://opensource.org/licenses/MIT\n **\n ** Unless required by applicable law or agreed to in writing, software\n ** distributed under the License is distributed on an \"AS IS\" BASIS,\n ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n ** See the License for the specific language governing permissions and\n ** limitations under the License.\n */\n\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxRecordAndTuple from \"@babel/plugin-syntax-record-and-tuple\";\nimport type { Options as SyntaxOptions } from \"@babel/plugin-syntax-record-and-tuple\";\nimport { types as t } from \"@babel/core\";\nimport { addNamed, isModule } from \"@babel/helper-module-imports\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nexport interface Options extends SyntaxOptions {\n polyfillModuleName?: string;\n importPolyfill?: boolean;\n}\n\ntype State = {\n programPath: NodePath;\n};\n\n// program -> cacheKey -> localBindingName\ntype Cache = Map;\ntype ImportCache = WeakMap;\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const polyfillModuleName = v.validateStringOption(\n \"polyfillModuleName\",\n options.polyfillModuleName,\n \"@bloomberg/record-tuple-polyfill\",\n );\n const shouldImportPolyfill = v.validateBooleanOption(\n \"importPolyfill\",\n options.importPolyfill,\n !!options.polyfillModuleName,\n );\n\n const importCaches: ImportCache = new WeakMap();\n\n function getOr(map: Map, key: K, getDefault: () => V): V;\n function getOr(\n map: WeakMap,\n key: K,\n getDefault: () => V,\n ): V;\n function getOr(\n map: WeakMap,\n key: K,\n getDefault: () => V,\n ) {\n let value = map.get(key);\n if (!value) map.set(key, (value = getDefault()));\n return value;\n }\n\n function getBuiltIn(\n name: \"Record\" | \"Tuple\",\n programPath: NodePath,\n ) {\n if (!shouldImportPolyfill) return t.identifier(name);\n if (!programPath) {\n throw new Error(\"Internal error: unable to find the Program node.\");\n }\n\n const cacheKey = `${name}:${isModule(programPath)}`;\n\n const cache = getOr(\n importCaches,\n programPath.node,\n () => new Map(),\n );\n const localBindingName = getOr(cache, cacheKey, () => {\n return addNamed(programPath, name, polyfillModuleName, {\n importedInterop: \"uncompiled\",\n }).name;\n });\n\n return t.identifier(localBindingName);\n }\n\n return {\n name: \"proposal-record-and-tuple\",\n inherits: syntaxRecordAndTuple,\n visitor: {\n Program(path, state) {\n state.programPath = path;\n },\n RecordExpression(path, state) {\n const record = getBuiltIn(\"Record\", state.programPath);\n\n const object = t.objectExpression(path.node.properties);\n const wrapped = t.callExpression(record, [object]);\n path.replaceWith(wrapped);\n },\n TupleExpression(path, state) {\n const tuple = getBuiltIn(\"Tuple\", state.programPath);\n\n const wrapped = t.callExpression(tuple, path.node.elements);\n path.replaceWith(wrapped);\n },\n },\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.19.0\"));\n\n return createRegExpFeaturePlugin({\n name: \"proposal-regexp-modifiers\",\n feature: \"modifiers\",\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-throw-expressions\",\n\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"throwExpressions\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxThrowExpressions from \"@babel/plugin-syntax-throw-expressions\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"proposal-throw-expressions\",\n inherits: syntaxThrowExpressions,\n\n visitor: {\n UnaryExpression(path) {\n const { operator, argument } = path.node;\n if (operator !== \"throw\") return;\n\n const arrow = t.functionExpression(\n null,\n [t.identifier(\"e\")],\n t.blockStatement([t.throwStatement(t.identifier(\"e\"))]),\n );\n\n path.replaceWith(t.callExpression(arrow, [argument]));\n },\n },\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n useUnicodeFlag?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { useUnicodeFlag = true } = options;\n if (typeof useUnicodeFlag !== \"boolean\") {\n throw new Error(\".useUnicodeFlag must be a boolean, or undefined\");\n }\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-property-regex\",\n feature: \"unicodePropertyEscape\",\n options: { useUnicodeFlag },\n });\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-sets-regex\",\n feature: \"unicodeSetsFlag\",\n manipulateOptions(opts, parserOpts) {\n parserOpts.plugins.push(\"regexpUnicodeSets\");\n },\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport remapAsyncToGenerator from \"@babel/helper-remap-async-to-generator\";\nimport { addNamed } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nexport interface Options {\n method?: string;\n module?: string;\n}\n\ntype State = {\n methodWrapper?: t.Identifier | t.SequenceExpression;\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { method, module } = options;\n // Todo(BABEL 8): Consider default it to false\n const noNewArrows = api.assumption(\"noNewArrows\") ?? true;\n const ignoreFunctionLength = api.assumption(\"ignoreFunctionLength\") ?? false;\n\n if (method && module) {\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n let wrapAsync = state.methodWrapper;\n if (wrapAsync) {\n wrapAsync = t.cloneNode(wrapAsync);\n } else {\n wrapAsync = state.methodWrapper = addNamed(path, method, module);\n }\n\n remapAsyncToGenerator(\n path,\n { wrapAsync },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n }\n\n return {\n name: \"transform-async-to-generator\",\n\n visitor: {\n Function(path, state) {\n if (!path.node.async || path.node.generator) return;\n\n remapAsyncToGenerator(\n path,\n { wrapAsync: state.addHelper(\"asyncToGenerator\") },\n noNewArrows,\n ignoreFunctionLength,\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n spec?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const noNewArrows = api.assumption(\"noNewArrows\") ?? !options.spec;\n\n return {\n name: \"transform-arrow-functions\",\n\n visitor: {\n ArrowFunctionExpression(path) {\n // In some conversion cases, it may have already been converted to a function while this callback\n // was queued up.\n if (!path.isArrowFunctionExpression()) return;\n\n if (process.env.BABEL_8_BREAKING) {\n path.arrowFunctionToExpression({\n // While other utils may be fine inserting other arrows to make more transforms possible,\n // the arrow transform itself absolutely cannot insert new arrow functions.\n allowInsertArrow: false,\n noNewArrows,\n });\n } else {\n path.arrowFunctionToExpression({\n allowInsertArrow: false,\n noNewArrows,\n\n // This is only needed for backward compat with @babel/traverse <7.13.0\n // @ts-ignore(Babel 7 vs Babel 8) Removed in Babel 8\n specCompliant: !noNewArrows,\n });\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function transformStatementList(paths: NodePath[]) {\n for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n const func = path.node;\n const declar = t.variableDeclaration(\"let\", [\n t.variableDeclarator(func.id, t.toExpression(func)),\n ]);\n\n // hoist it up above everything else\n // @ts-expect-error todo(flow->ts): avoid mutations\n declar._blockHoist = 2;\n\n // todo: name this\n func.id = null;\n\n path.replaceWith(declar);\n }\n }\n\n return {\n name: \"transform-block-scoped-functions\",\n\n visitor: {\n BlockStatement(path) {\n const { node, parent } = path;\n if (\n t.isFunction(parent, { body: node }) ||\n t.isExportDeclaration(parent)\n ) {\n return;\n }\n\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n transformStatementList(path.get(\"consequent\"));\n },\n },\n };\n});\n","import { template, types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Binding } from \"@babel/traverse\";\n\ninterface LoopBodyBindingsState {\n blockScoped: Binding[];\n}\n\nconst collectLoopBodyBindingsVisitor: Visitor = {\n \"Expression|Declaration|Loop\"(path) {\n path.skip();\n },\n Scope(path, state) {\n if (path.isFunctionParent()) path.skip();\n\n const { bindings } = path.scope;\n for (const name of Object.keys(bindings)) {\n const binding = bindings[name];\n if (\n binding.kind === \"let\" ||\n binding.kind === \"const\" ||\n binding.kind === \"hoisted\"\n ) {\n state.blockScoped.push(binding);\n }\n }\n },\n};\n\nexport function getLoopBodyBindings(loopPath: NodePath) {\n const state: LoopBodyBindingsState = { blockScoped: [] };\n loopPath.traverse(collectLoopBodyBindingsVisitor, state);\n return state.blockScoped;\n}\n\nexport function getUsageInBody(binding: Binding, loopPath: NodePath) {\n // UpdateExpressions are counted both as a reference and a mutation,\n // so we need to de-duplicate them.\n const seen = new WeakSet();\n\n let capturedInClosure = false;\n\n const constantViolations = filterMap(binding.constantViolations, path => {\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n const id = path.isUpdateExpression()\n ? path.get(\"argument\")\n : path.isAssignmentExpression()\n ? path.get(\"left\")\n : null;\n if (id) seen.add(id.node);\n return id as NodePath | null;\n });\n\n const references = filterMap(binding.referencePaths, path => {\n if (seen.has(path.node)) return null;\n\n const { inBody, inClosure } = relativeLoopLocation(path, loopPath);\n if (!inBody) return null;\n capturedInClosure ||= inClosure;\n\n return path as NodePath;\n });\n\n return {\n capturedInClosure,\n hasConstantViolations: constantViolations.length > 0,\n usages: references.concat(constantViolations),\n };\n}\n\nfunction relativeLoopLocation(path: NodePath, loopPath: NodePath) {\n const bodyPath = loopPath.get(\"body\");\n let inClosure = false;\n\n for (let currPath = path; currPath; currPath = currPath.parentPath) {\n if (currPath.isFunction() || currPath.isClass() || currPath.isMethod()) {\n inClosure = true;\n }\n if (currPath === bodyPath) {\n return { inBody: true, inClosure };\n } else if (currPath === loopPath) {\n return { inBody: false, inClosure };\n }\n }\n\n throw new Error(\n \"Internal Babel error: path is not in loop. Please report this as a bug.\",\n );\n}\n\ninterface CompletionsAndVarsState {\n breaksContinues: NodePath[];\n returns: NodePath[];\n labelsStack: string[];\n labellessContinueTargets: number;\n labellessBreakTargets: number;\n\n vars: NodePath[];\n loopNode: t.Loop;\n}\n\nconst collectCompletionsAndVarsVisitor: Visitor = {\n Function(path) {\n path.skip();\n },\n LabeledStatement: {\n enter({ node }, state) {\n state.labelsStack.push(node.label.name);\n },\n exit({ node }, state) {\n const popped = state.labelsStack.pop();\n if (popped !== node.label.name) {\n throw new Error(\"Assertion failure. Please report this bug to Babel.\");\n }\n },\n },\n Loop: {\n enter(_, state) {\n state.labellessContinueTargets++;\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessContinueTargets--;\n state.labellessBreakTargets--;\n },\n },\n SwitchStatement: {\n enter(_, state) {\n state.labellessBreakTargets++;\n },\n exit(_, state) {\n state.labellessBreakTargets--;\n },\n },\n \"BreakStatement|ContinueStatement\"(\n path: NodePath,\n state,\n ) {\n const { label } = path.node;\n if (label) {\n if (state.labelsStack.includes(label.name)) return;\n } else if (\n path.isBreakStatement()\n ? state.labellessBreakTargets > 0\n : state.labellessContinueTargets > 0\n ) {\n return;\n }\n state.breaksContinues.push(path);\n },\n ReturnStatement(path, state) {\n state.returns.push(path);\n },\n VariableDeclaration(path, state) {\n if (path.parent === state.loopNode && isVarInLoopHead(path)) return;\n if (path.node.kind === \"var\") state.vars.push(path);\n },\n};\n\nexport function wrapLoopBody(\n loopPath: NodePath,\n captured: string[],\n updatedBindingsUsages: Map[]>,\n) {\n const loopNode = loopPath.node;\n const state: CompletionsAndVarsState = {\n breaksContinues: [],\n returns: [],\n labelsStack: [],\n labellessBreakTargets: 0,\n labellessContinueTargets: 0,\n vars: [],\n loopNode,\n };\n loopPath.traverse(collectCompletionsAndVarsVisitor, state);\n\n const callArgs = [];\n const closureParams = [];\n const updater = [];\n for (const [name, updatedUsage] of updatedBindingsUsages) {\n callArgs.push(t.identifier(name));\n\n const innerName = loopPath.scope.generateUid(name);\n closureParams.push(t.identifier(innerName));\n updater.push(\n t.assignmentExpression(\"=\", t.identifier(name), t.identifier(innerName)),\n );\n for (const path of updatedUsage) path.replaceWith(t.identifier(innerName));\n }\n for (const name of captured) {\n if (updatedBindingsUsages.has(name)) continue; // already injected\n callArgs.push(t.identifier(name));\n closureParams.push(t.identifier(name));\n }\n\n const id = loopPath.scope.generateUid(\"loop\");\n const fn = t.functionExpression(\n null,\n closureParams,\n t.toBlock(loopNode.body),\n );\n let call: t.Expression = t.callExpression(t.identifier(id), callArgs);\n\n const fnParent = loopPath.findParent(p => p.isFunction());\n if (fnParent) {\n const { async, generator } = fnParent.node as t.Function;\n fn.async = async;\n fn.generator = generator;\n if (generator) call = t.yieldExpression(call, true);\n else if (async) call = t.awaitExpression(call);\n }\n\n const updaterNode =\n updater.length > 0\n ? t.expressionStatement(t.sequenceExpression(updater))\n : null;\n if (updaterNode) fn.body.body.push(updaterNode);\n\n // NOTE: Calling .insertBefore on the loop path might cause the\n // loop to be moved in the AST. For example, in\n // if (true) for (let x of y) ...\n // .insertBefore will replace the loop with a block:\n // if (true) { var _loop = ...; for (let x of y) ... }\n // All subsequent operations in this function on the loop node\n // must not assume that loopPath still represents the loop.\n // TODO: Consider using a function declaration\n const [varPath] = loopPath.insertBefore(\n t.variableDeclaration(\"var\", [t.variableDeclarator(t.identifier(id), fn)]),\n ) as [NodePath];\n\n const bodyStmts: t.Statement[] = [];\n\n const varNames: string[] = [];\n for (const varPath of state.vars) {\n const assign = [];\n for (const decl of varPath.node.declarations) {\n varNames.push(...Object.keys(t.getBindingIdentifiers(decl.id)));\n if (decl.init) {\n assign.push(t.assignmentExpression(\"=\", decl.id, decl.init));\n } else if (t.isForXStatement(varPath.parent, { left: varPath.node })) {\n assign.push(decl.id as t.Identifier);\n }\n }\n if (assign.length > 0) {\n const replacement: t.Node =\n assign.length === 1 ? assign[0] : t.sequenceExpression(assign);\n varPath.replaceWith(replacement);\n } else {\n varPath.remove();\n }\n }\n if (varNames.length) {\n varPath.pushContainer(\n \"declarations\",\n varNames.map(name => t.variableDeclarator(t.identifier(name))),\n );\n }\n\n const labelNum = state.breaksContinues.length;\n const returnNum = state.returns.length;\n if (labelNum + returnNum === 0) {\n bodyStmts.push(t.expressionStatement(call));\n } else if (labelNum === 1 && returnNum === 0) {\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(1)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n bodyStmts.push(\n template.statement.ast`\n if (${call}) ${node}\n `,\n );\n }\n } else {\n const completionId = loopPath.scope.generateUid(\"ret\");\n\n if (varPath.isVariableDeclaration()) {\n varPath.pushContainer(\"declarations\", [\n t.variableDeclarator(t.identifier(completionId)),\n ]);\n bodyStmts.push(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.identifier(completionId), call),\n ),\n );\n } else {\n bodyStmts.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(completionId), call),\n ]),\n );\n }\n\n const injected: string[] = [];\n for (const path of state.breaksContinues) {\n const { node } = path;\n const { type, label } = node;\n let name = type === \"BreakStatement\" ? \"break\" : \"continue\";\n if (label) name += \" \" + label.name;\n\n let i = injected.indexOf(name);\n const hasInjected = i !== -1;\n if (!hasInjected) {\n injected.push(name);\n i = injected.length - 1;\n }\n\n path.replaceWith(\n t.addComment(\n t.returnStatement(t.numericLiteral(i)),\n \"trailing\",\n \" \" + name,\n true,\n ),\n );\n if (updaterNode) path.insertBefore(t.cloneNode(updaterNode));\n\n if (hasInjected) continue;\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)} === ${t.numericLiteral(i)}) ${node}\n `,\n );\n }\n\n if (returnNum) {\n for (const path of state.returns) {\n const arg = path.node.argument || path.scope.buildUndefinedNode();\n path.replaceWith(\n template.statement.ast`\n return { v: ${arg} };\n `,\n );\n }\n\n bodyStmts.push(\n template.statement.ast`\n if (${t.identifier(completionId)}) return ${t.identifier(\n completionId,\n )}.v;\n `,\n );\n }\n }\n\n loopNode.body = t.blockStatement(bodyStmts);\n\n return varPath;\n}\n\nexport function isVarInLoopHead(path: NodePath) {\n if (t.isForStatement(path.parent)) return path.key === \"init\";\n if (t.isForXStatement(path.parent)) return path.key === \"left\";\n return false;\n}\n\nfunction filterMap(list: T[], fn: (item: T) => U | null) {\n const result: U[] = [];\n for (const item of list) {\n const mapped = fn(item);\n if (mapped) result.push(mapped);\n }\n return result;\n}\n","import { types as t, type PluginPass } from \"@babel/core\";\nimport type { Binding, NodePath } from \"@babel/traverse\";\n\nexport function validateUsage(\n path: NodePath,\n state: PluginPass,\n tdzEnabled: boolean,\n) {\n const dynamicTDZNames = [];\n\n for (const name of Object.keys(path.getBindingIdentifiers())) {\n const binding = path.scope.getBinding(name);\n // binding may be null. ref: https://github.com/babel/babel/issues/15300\n if (!binding) continue;\n if (tdzEnabled) {\n if (injectTDZChecks(binding, state)) dynamicTDZNames.push(name);\n }\n if (path.node.kind === \"const\") {\n disallowConstantViolations(name, binding, state);\n }\n }\n\n return dynamicTDZNames;\n}\n\nfunction disallowConstantViolations(\n name: string,\n binding: Binding,\n state: PluginPass,\n) {\n for (const violation of binding.constantViolations) {\n const readOnlyError = state.addHelper(\"readOnlyError\");\n const throwNode = t.callExpression(readOnlyError, [t.stringLiteral(name)]);\n\n if (violation.isAssignmentExpression()) {\n const { operator, left, right } = violation.node;\n if (operator === \"=\") {\n const exprs = [right];\n exprs.push(throwNode);\n violation.replaceWith(t.sequenceExpression(exprs));\n } else if ([\"&&=\", \"||=\", \"??=\"].includes(operator)) {\n violation.replaceWith(\n t.logicalExpression(\n // @ts-expect-error todo: give a better type to operator\n operator.slice(0, -1),\n left,\n t.sequenceExpression([right, throwNode]),\n ),\n );\n } else {\n violation.replaceWith(\n t.sequenceExpression([\n t.binaryExpression(\n // @ts-expect-error todo: give a better type to operator\n operator.slice(0, -1),\n left,\n right,\n ),\n throwNode,\n ]),\n );\n }\n } else if (violation.isUpdateExpression()) {\n violation.replaceWith(\n t.sequenceExpression([\n t.unaryExpression(\"+\", violation.get(\"argument\").node),\n throwNode,\n ]),\n );\n } else if (violation.isForXStatement()) {\n violation.ensureBlock();\n violation\n .get(\"left\")\n .replaceWith(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(violation.scope.generateUidIdentifier(name)),\n ]),\n );\n (violation.node.body as t.BlockStatement).body.unshift(\n t.expressionStatement(throwNode),\n );\n }\n }\n}\n\nfunction getTDZStatus(refPath: NodePath, bindingPath: NodePath) {\n const executionStatus = bindingPath._guessExecutionStatusRelativeTo(refPath);\n\n if (executionStatus === \"before\") {\n return \"outside\";\n } else if (executionStatus === \"after\") {\n return \"inside\";\n } else {\n return \"maybe\";\n }\n}\n\nconst skipTDZChecks = new WeakSet();\n\nfunction buildTDZAssert(\n status: \"maybe\" | \"inside\",\n node: t.Identifier | t.JSXIdentifier,\n state: PluginPass,\n) {\n if (status === \"maybe\") {\n const clone = t.cloneNode(node);\n skipTDZChecks.add(clone);\n return t.callExpression(state.addHelper(\"temporalRef\"), [\n // @ts-expect-error Fixme: we may need to handle JSXIdentifier\n clone,\n t.stringLiteral(node.name),\n ]);\n } else {\n return t.callExpression(state.addHelper(\"tdz\"), [\n t.stringLiteral(node.name),\n ]);\n }\n}\n\ntype TDZReplacement = { status: \"maybe\" | \"inside\"; node: t.Expression };\nfunction getTDZReplacement(\n path: NodePath,\n state: PluginPass,\n): TDZReplacement | undefined;\nfunction getTDZReplacement(\n path: NodePath,\n state: PluginPass,\n id: t.Identifier | t.JSXIdentifier,\n): TDZReplacement | undefined;\nfunction getTDZReplacement(\n path: NodePath,\n state: PluginPass,\n id: t.Identifier | t.JSXIdentifier = path.node as any,\n): TDZReplacement | undefined {\n if (skipTDZChecks.has(id)) return;\n skipTDZChecks.add(id);\n\n const bindingPath = path.scope.getBinding(id.name)?.path;\n\n if (!bindingPath || bindingPath.isFunctionDeclaration()) return;\n\n const status = getTDZStatus(path, bindingPath);\n if (status === \"outside\") return;\n\n if (status === \"maybe\") {\n // add tdzThis to parent variable declarator so it's exploded\n // @ts-expect-error todo(flow->ts): avoid mutations\n bindingPath.parent._tdzThis = true;\n }\n\n return { status, node: buildTDZAssert(status, id, state) };\n}\n\nfunction injectTDZChecks(binding: Binding, state: PluginPass) {\n const allUsages = new Set(binding.referencePaths);\n binding.constantViolations.forEach(allUsages.add, allUsages);\n\n let dynamicTdz = false;\n\n for (const path of binding.constantViolations) {\n const { node } = path;\n if (skipTDZChecks.has(node)) continue;\n skipTDZChecks.add(node);\n\n if (path.isUpdateExpression()) {\n // arg is an identifier referencing the current binding\n const arg = path.get(\"argument\") as NodePath;\n\n const replacement = getTDZReplacement(path, state, arg.node);\n if (!replacement) continue;\n\n if (replacement.status === \"maybe\") {\n dynamicTdz = true;\n path.insertBefore(replacement.node);\n } else {\n path.replaceWith(replacement.node);\n }\n } else if (path.isAssignmentExpression()) {\n const nodes = [];\n const ids = path.getBindingIdentifiers();\n\n for (const name of Object.keys(ids)) {\n const replacement = getTDZReplacement(path, state, ids[name]);\n if (replacement) {\n nodes.push(t.expressionStatement(replacement.node));\n if (replacement.status === \"inside\") break;\n if (replacement.status === \"maybe\") dynamicTdz = true;\n }\n }\n\n if (nodes.length > 0) path.insertBefore(nodes);\n }\n }\n\n for (const path of binding.referencePaths as NodePath[]) {\n if (path.parentPath.isUpdateExpression()) continue;\n // It will be handled after transforming the loop\n if (path.parentPath.isFor({ left: path.node })) continue;\n\n const replacement = getTDZReplacement(path, state);\n if (!replacement) continue;\n if (replacement.status === \"maybe\") dynamicTdz = true;\n\n path.replaceWith(replacement.node);\n }\n\n return dynamicTdz;\n}\n","import { types as t } from \"@babel/core\";\nimport type { NodePath, Visitor, Scope } from \"@babel/traverse\";\n\n// Whenever a function declaration in a nested block scope\n// doesn't conflict with a block-scoped binding from an outer\n// scope, we transform it to a variable declaration.\n//\n// This implements the Annex B.3.3 behavior.\n//\n// TODO(Babel 8): Figure out how this should interact with\n// the transform-block-scoped functions plugin (it feels\n// wrong to handle this transform here), and what we want\n// to do with Annex B behavior in general.\n\n// To avoid confusing block-scoped variables transformed to\n// var with original vars, this transformation happens in two\n// different places:\n// 1. For functions that \"conflict\" with var-variables, in\n// the VariableDeclaration visitor.\n// 2. For functions that don't conflict with any variable,\n// in the FunctionDeclaration visitor.\n\nexport const annexB33FunctionsVisitor: Visitor = {\n VariableDeclaration(path) {\n if (isStrict(path)) return;\n if (path.node.kind !== \"var\") return;\n\n const varScope =\n path.scope.getFunctionParent() || path.scope.getProgramParent();\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n varScope.path.traverse(functionsToVarVisitor, {\n names: Object.keys(path.getBindingIdentifiers()),\n });\n },\n\n // NOTE: These two visitors target the same nodes as the\n // block-scoped-functions plugin\n\n BlockStatement(path) {\n if (isStrict(path)) return;\n if (t.isFunction(path.parent, { body: path.node })) return;\n transformStatementList(path.get(\"body\"));\n },\n\n SwitchCase(path) {\n if (isStrict(path)) return;\n transformStatementList(path.get(\"consequent\"));\n },\n};\n\nfunction transformStatementList(paths: NodePath[]) {\n outer: for (const path of paths) {\n if (!path.isFunctionDeclaration()) continue;\n // Annex B.3.3 only applies to plain functions.\n if (path.node.async || path.node.generator) return;\n\n const { scope } = path.parentPath;\n if (isVarScope(scope)) return;\n\n const { name } = path.node.id;\n let currScope = scope;\n do {\n if (currScope.parent.hasOwnBinding(name)) continue outer;\n currScope = currScope.parent;\n } while (!isVarScope(currScope));\n\n maybeTransformBlockScopedFunction(path);\n }\n}\n\nfunction maybeTransformBlockScopedFunction(\n path: NodePath,\n) {\n const {\n node,\n parentPath: { scope },\n } = path;\n\n const { id } = node;\n scope.removeOwnBinding(id.name);\n node.id = null;\n\n const varNode = t.variableDeclaration(\"var\", [\n t.variableDeclarator(id, t.toExpression(node)),\n ]);\n // @ts-expect-error undocumented property\n varNode._blockHoist = 2;\n\n const [varPath] = path.replaceWith(varNode);\n scope.registerDeclaration(varPath);\n}\n\nconst functionsToVarVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n maybeTransformBlockScopedFunction(\n binding.path as NodePath,\n );\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nexport function isVarScope(scope: Scope) {\n return scope.path.isFunctionParent() || scope.path.isProgram();\n}\n\nfunction isStrict(path: NodePath) {\n return !!path.find(({ node }) => {\n if (t.isProgram(node)) {\n if (node.sourceType === \"module\") return true;\n } else if (t.isClass(node)) {\n return true;\n } else if (!t.isBlockStatement(node)) {\n return false;\n }\n\n return node.directives?.some(\n directive => directive.value.value === \"use strict\",\n );\n });\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { type PluginPass, types as t, traverse } from \"@babel/core\";\n\nimport {\n getLoopBodyBindings,\n getUsageInBody,\n isVarInLoopHead,\n wrapLoopBody,\n} from \"./loop.ts\";\nimport { validateUsage } from \"./validation.ts\";\nimport { annexB33FunctionsVisitor, isVarScope } from \"./annex-B_3_3.ts\";\n\nexport interface Options {\n tdz?: boolean;\n throwIfClosureRequired?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { throwIfClosureRequired = false, tdz: tdzEnabled = false } = opts;\n if (typeof throwIfClosureRequired !== \"boolean\") {\n throw new Error(`.throwIfClosureRequired must be a boolean, or undefined`);\n }\n if (typeof tdzEnabled !== \"boolean\") {\n throw new Error(`.tdz must be a boolean, or undefined`);\n }\n\n return {\n name: \"transform-block-scoping\",\n\n visitor: traverse.visitors.merge([\n // TODO: Consider adding an option to control Annex B behavior.\n annexB33FunctionsVisitor,\n {\n Loop(path: NodePath, state) {\n const isForStatement = path.isForStatement();\n const headPath = isForStatement\n ? path.get(\"init\")\n : path.isForXStatement()\n ? path.get(\"left\")\n : null;\n\n let needsBodyWrap = false;\n const markNeedsBodyWrap = () => {\n if (throwIfClosureRequired) {\n throw path.buildCodeFrameError(\n \"Compiling let/const in this block would add a closure \" +\n \"(throwIfClosureRequired).\",\n );\n }\n needsBodyWrap = true;\n };\n\n const body = path.get(\"body\");\n let bodyScope: Scope | null;\n if (body.isBlockStatement()) {\n bodyScope = body.scope;\n }\n const bindings = getLoopBodyBindings(path);\n for (const binding of bindings) {\n const { capturedInClosure } = getUsageInBody(binding, path);\n if (capturedInClosure) markNeedsBodyWrap();\n }\n\n const captured: string[] = [];\n const updatedBindingsUsages: Map[]> =\n new Map();\n\n if (headPath && isBlockScoped(headPath.node)) {\n const names = Object.keys(headPath.getBindingIdentifiers());\n const headScope = headPath.scope;\n\n for (let name of names) {\n if (bodyScope?.hasOwnBinding(name)) continue; // shadowed\n\n let binding = headScope.getOwnBinding(name);\n if (!binding) {\n headScope.crawl();\n binding = headScope.getOwnBinding(name);\n }\n const { usages, capturedInClosure, hasConstantViolations } =\n getUsageInBody(binding, path);\n\n if (\n headScope.parent.hasBinding(name) ||\n headScope.parent.hasGlobal(name)\n ) {\n // If the binding is not captured, there is no need\n // of adding it to the closure param. However, rename\n // it if it shadows an outer binding, because the\n // closure will be moved to an outer level.\n const newName = headScope.generateUid(name);\n headScope.rename(name, newName);\n name = newName;\n }\n\n if (capturedInClosure) {\n markNeedsBodyWrap();\n captured.push(name);\n }\n\n if (isForStatement && hasConstantViolations) {\n updatedBindingsUsages.set(name, usages);\n }\n }\n }\n\n if (needsBodyWrap) {\n const varPath = wrapLoopBody(path, captured, updatedBindingsUsages);\n\n if (headPath?.isVariableDeclaration()) {\n // If we wrap the loop body, we transform the var\n // declaration in the loop head now, to avoid\n // invalid references that break other plugins:\n //\n // for (let head of x) {\n // let i = head;\n // setTimeout(() => i);\n // }\n //\n // would become\n //\n // function _loop() {\n // let i = head;\n // setTimeout(() => i);\n // }\n // for (let head of x) _loop();\n //\n // which references `head` in a scope where it's not visible.\n transformBlockScopedVariable(headPath, state, tdzEnabled);\n }\n\n varPath.get(\"declarations.0.init\").unwrapFunctionEnvironment();\n }\n },\n\n VariableDeclaration(path, state) {\n transformBlockScopedVariable(path, state, tdzEnabled);\n },\n\n // Class declarations are block-scoped: if there is\n // a class declaration in a nested block that conflicts\n // with an outer block-scoped binding, rename it.\n // TODO: Should this be moved to the classes plugin?\n ClassDeclaration(path) {\n const { id } = path.node;\n if (!id) return;\n\n const { scope } = path.parentPath;\n if (\n !isVarScope(scope) &&\n scope.parent.hasBinding(id.name, { noUids: true })\n ) {\n path.scope.rename(id.name);\n }\n },\n },\n ]),\n };\n});\n\nconst conflictingFunctionsVisitor: Visitor<{ names: string[] }> = {\n Scope(path, { names }) {\n for (const name of names) {\n const binding = path.scope.getOwnBinding(name);\n if (binding && binding.kind === \"hoisted\") {\n path.scope.rename(name);\n }\n }\n },\n \"Expression|Declaration\"(path) {\n path.skip();\n },\n};\n\nfunction transformBlockScopedVariable(\n path: NodePath,\n state: PluginPass,\n tdzEnabled: boolean,\n) {\n if (!isBlockScoped(path.node)) return;\n\n const dynamicTDZNames = validateUsage(path, state, tdzEnabled);\n\n path.node.kind = \"var\";\n\n const bindingNames = Object.keys(path.getBindingIdentifiers());\n for (const name of bindingNames) {\n const binding = path.scope.getOwnBinding(name);\n if (!binding) continue;\n binding.kind = \"var\";\n }\n\n if (\n (isInLoop(path) && !isVarInLoopHead(path)) ||\n dynamicTDZNames.length > 0\n ) {\n for (const decl of path.node.declarations) {\n // We explicitly add `void 0` to cases like\n // for (;;) { let a; }\n // to make sure that `a` doesn't keep the value from\n // the previous iteration.\n decl.init ??= path.scope.buildUndefinedNode();\n }\n }\n\n const blockScope = path.scope;\n const varScope =\n blockScope.getFunctionParent() || blockScope.getProgramParent();\n\n if (varScope !== blockScope) {\n for (const name of bindingNames) {\n let newName = name;\n if (\n // We pass `noUids` true because, if `name` was a generated\n // UID, it has been used to declare the current variable in\n // a nested scope and thus we don't need to assume that it\n // may be declared (but not registered yet) in an upper one.\n blockScope.parent.hasBinding(name, { noUids: true }) ||\n blockScope.parent.hasGlobal(name)\n ) {\n newName = blockScope.generateUid(name);\n blockScope.rename(name, newName);\n }\n\n blockScope.moveBindingTo(newName, varScope);\n }\n }\n\n blockScope.path.traverse(conflictingFunctionsVisitor, {\n names: bindingNames,\n });\n\n for (const name of dynamicTDZNames) {\n path.scope.push({\n id: t.identifier(name),\n init: state.addHelper(\"temporalUndefined\"),\n });\n }\n}\n\nfunction isLetOrConst(kind: string): kind is \"let\" | \"const\" {\n return kind === \"let\" || kind === \"const\";\n}\n\nfunction isInLoop(path: NodePath): boolean {\n if (!path.parentPath) return false;\n if (path.parentPath.isLoop()) return true;\n if (path.parentPath.isFunctionParent()) return false;\n return isInLoop(path.parentPath);\n}\n\nfunction isBlockScoped(node: t.Node): node is t.VariableDeclaration {\n if (!t.isVariableDeclaration(node)) return false;\n if (\n // @ts-expect-error Fixme: document symbol properties\n node[t.BLOCK_SCOPED_SYMBOL]\n ) {\n return true;\n }\n\n if (!isLetOrConst(node.kind) && node.kind !== \"using\") {\n return false;\n }\n\n return true;\n}\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"globals-BABEL_8_BREAKING-true\")\n : require(\"globals-BABEL_8_BREAKING-false\");\n","import { template, types as t, type File } from \"@babel/core\";\n\nconst helper = template.statement`\n function CALL_SUPER(\n _this,\n derived,\n args,\n ) {\n function isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n\n // core-js@3\n if (Reflect.construct.sham) return false;\n\n // Proxy can't be polyfilled. Every browser implemented\n // proxies before or at the same time as Reflect.construct,\n // so if they support Proxy they also support Reflect.construct.\n if (typeof Proxy === \"function\") return true;\n\n // Since Reflect.construct can't be properly polyfilled, some\n // implementations (e.g. core-js@2) don't set the correct internal slots.\n // Those polyfills don't allow us to subclass built-ins, so we need to\n // use our fallback implementation.\n try {\n // If the internal slots aren't set, this throws an error similar to\n // TypeError: this is not a Boolean object.\n return !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}),);\n } catch (e) {\n return false;\n }\n }\n\n // Super\n derived = GET_PROTOTYPE_OF(derived);\n return POSSIBLE_CONSTRUCTOR_RETURN(\n _this,\n isNativeReflectConstruct()\n ? // NOTE: This doesn't work if this.__proto__.constructor has been modified.\n Reflect.construct(\n derived,\n args || [],\n GET_PROTOTYPE_OF(_this).constructor,\n )\n : derived.apply(_this, args),\n );\n }\n`;\n\nconst helperIDs = new WeakMap();\n\nexport default function addCallSuperHelper(file: File) {\n if (helperIDs.has(file)) {\n // TODO: Only use t.cloneNode in Babel 8\n // t.cloneNode isn't supported in every version\n return (t.cloneNode || t.clone)(helperIDs.get(file));\n }\n\n try {\n return file.addHelper(\"callSuper\");\n } catch {\n // old Babel doesn't support the helper.\n }\n\n const id = file.scope.generateUidIdentifier(\"callSuper\");\n helperIDs.set(file, id);\n\n const fn = helper({\n CALL_SUPER: id,\n GET_PROTOTYPE_OF: file.addHelper(\"getPrototypeOf\"),\n POSSIBLE_CONSTRUCTOR_RETURN: file.addHelper(\"possibleConstructorReturn\"),\n });\n\n file.path.unshiftContainer(\"body\", [fn]);\n file.scope.registerDeclaration(file.path.get(\"body.0\"));\n\n return t.cloneNode(id);\n}\n","import type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\nimport { traverse, template, types as t, type File } from \"@babel/core\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\nimport addCallSuperHelper from \"./inline-callSuper-helpers.ts\";\n\ntype ClassAssumptions = {\n setClassMethods: boolean;\n constantSuper: boolean;\n superIsCallableConstructor: boolean;\n noClassCalls: boolean;\n};\n\ntype ClassConstructor = t.ClassMethod & { kind: \"constructor\" };\n\nfunction buildConstructor(\n classRef: t.Identifier,\n constructorBody: t.BlockStatement,\n node: t.Class,\n) {\n const func = t.functionDeclaration(\n t.cloneNode(classRef),\n [],\n constructorBody,\n );\n t.inherits(func, node);\n return func;\n}\n\ntype Descriptor = {\n key: t.Expression;\n get?: t.Expression | null;\n set?: t.Expression | null;\n value?: t.Expression | null;\n constructor?: t.Expression | null;\n};\n\ntype State = {\n parent: t.Node;\n scope: Scope;\n node: t.Class;\n path: NodePath;\n file: File;\n\n classId: t.Identifier | void;\n classRef: t.Identifier;\n superName: t.Expression | null;\n superReturns: NodePath[];\n isDerived: boolean;\n extendsNative: boolean;\n\n construct: t.FunctionDeclaration;\n constructorBody: t.BlockStatement;\n userConstructor: ClassConstructor;\n userConstructorPath: NodePath;\n hasConstructor: boolean;\n\n body: t.Statement[];\n superThises: NodePath[];\n pushedInherits: boolean;\n pushedCreateClass: boolean;\n protoAlias: t.Identifier | null;\n isLoose: boolean;\n\n dynamicKeys: Map;\n\n methods: {\n // 'list' is in the same order as the elements appear in the class body.\n // if there aren't computed keys, we can safely reorder class elements\n // and use 'map' to merge duplicates.\n instance: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map;\n };\n static: {\n hasComputed: boolean;\n list: Descriptor[];\n map: Map;\n };\n };\n};\n\ntype PropertyInfo = {\n instance: t.ObjectExpression[] | null;\n static: t.ObjectExpression[] | null;\n};\n\nexport default function transformClass(\n path: NodePath,\n file: File,\n builtinClasses: ReadonlySet,\n isLoose: boolean,\n assumptions: ClassAssumptions,\n supportUnicodeId: boolean,\n) {\n const classState: State = {\n parent: undefined,\n scope: undefined,\n node: undefined,\n path: undefined,\n file: undefined,\n\n classId: undefined,\n classRef: undefined,\n superName: null,\n superReturns: [],\n isDerived: false,\n extendsNative: false,\n\n construct: undefined,\n constructorBody: undefined,\n userConstructor: undefined,\n userConstructorPath: undefined,\n hasConstructor: false,\n\n body: [],\n superThises: [],\n pushedInherits: false,\n pushedCreateClass: false,\n protoAlias: null,\n isLoose: false,\n\n dynamicKeys: new Map(),\n\n methods: {\n instance: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n static: {\n hasComputed: false,\n list: [],\n map: new Map(),\n },\n },\n };\n\n const setState = (newState: Partial) => {\n Object.assign(classState, newState);\n };\n\n const findThisesVisitor = traverse.visitors.merge([\n environmentVisitor,\n {\n ThisExpression(path) {\n classState.superThises.push(path);\n },\n },\n ]);\n\n function createClassHelper(args: t.Expression[]) {\n return t.callExpression(classState.file.addHelper(\"createClass\"), args);\n }\n\n /**\n * Creates a class constructor or bail out if there is one\n */\n function maybeCreateConstructor() {\n const classBodyPath = classState.path.get(\"body\");\n for (const path of classBodyPath.get(\"body\")) {\n if (path.isClassMethod({ kind: \"constructor\" })) return;\n }\n\n let params: t.FunctionExpression[\"params\"], body;\n\n if (classState.isDerived) {\n const constructor = template.expression.ast`\n (function () {\n super(...arguments);\n })\n ` as t.FunctionExpression;\n params = constructor.params;\n body = constructor.body;\n } else {\n params = [];\n body = t.blockStatement([]);\n }\n\n classBodyPath.unshiftContainer(\n \"body\",\n t.classMethod(\"constructor\", t.identifier(\"constructor\"), params, body),\n );\n }\n\n function buildBody() {\n maybeCreateConstructor();\n pushBody();\n verifyConstructor();\n\n if (classState.userConstructor) {\n const { constructorBody, userConstructor, construct } = classState;\n\n constructorBody.body.push(...userConstructor.body.body);\n t.inherits(construct, userConstructor);\n t.inherits(constructorBody, userConstructor.body);\n }\n\n pushDescriptors();\n }\n\n function pushBody() {\n const classBodyPaths: Array = classState.path.get(\"body.body\");\n\n for (const path of classBodyPaths) {\n const node = path.node;\n\n if (path.isClassProperty() || path.isClassPrivateProperty()) {\n throw path.buildCodeFrameError(\"Missing class properties transform.\");\n }\n\n if (node.decorators) {\n throw path.buildCodeFrameError(\n \"Method has decorators, put the decorator plugin before the classes one.\",\n );\n }\n\n if (t.isClassMethod(node)) {\n const isConstructor = node.kind === \"constructor\";\n\n const replaceSupers = new ReplaceSupers({\n methodPath: path,\n objectRef: classState.classRef,\n superRef: classState.superName,\n constantSuper: assumptions.constantSuper,\n file: classState.file,\n refToPreserve: classState.classRef,\n });\n\n replaceSupers.replace();\n\n const superReturns: NodePath[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n ReturnStatement(path) {\n if (!path.getFunctionParent().isArrowFunctionExpression()) {\n superReturns.push(path);\n }\n },\n },\n ]),\n );\n\n if (isConstructor) {\n pushConstructor(superReturns, node as ClassConstructor, path);\n } else {\n pushMethod(node, path);\n }\n }\n }\n }\n\n function pushDescriptors() {\n pushInheritsToBody();\n\n const { body } = classState;\n\n const props: PropertyInfo = {\n instance: null,\n static: null,\n };\n\n for (const placement of [\"static\", \"instance\"] as const) {\n if (classState.methods[placement].list.length) {\n props[placement] = classState.methods[placement].list.map(desc => {\n const obj = t.objectExpression([\n t.objectProperty(t.identifier(\"key\"), desc.key),\n ]);\n\n for (const kind of [\"get\", \"set\", \"value\"] as const) {\n if (desc[kind] != null) {\n obj.properties.push(\n t.objectProperty(t.identifier(kind), desc[kind]),\n );\n }\n }\n\n return obj;\n });\n }\n }\n\n if (props.instance || props.static) {\n let args = [\n t.cloneNode(classState.classRef), // Constructor\n props.instance ? t.arrayExpression(props.instance) : t.nullLiteral(), // instanceDescriptors\n props.static ? t.arrayExpression(props.static) : t.nullLiteral(), // staticDescriptors\n ];\n\n let lastNonNullIndex = 0;\n for (let i = 0; i < args.length; i++) {\n if (!t.isNullLiteral(args[i])) lastNonNullIndex = i;\n }\n args = args.slice(0, lastNonNullIndex + 1);\n\n body.push(t.returnStatement(createClassHelper(args)));\n classState.pushedCreateClass = true;\n }\n }\n\n function wrapSuperCall(\n bareSuper: NodePath,\n superRef: t.Expression,\n thisRef: () => t.Identifier,\n body: NodePath,\n ) {\n const bareSuperNode = bareSuper.node;\n let call;\n\n if (assumptions.superIsCallableConstructor) {\n bareSuperNode.arguments.unshift(t.thisExpression());\n if (\n bareSuperNode.arguments.length === 2 &&\n t.isSpreadElement(bareSuperNode.arguments[1]) &&\n t.isIdentifier(bareSuperNode.arguments[1].argument, {\n name: \"arguments\",\n })\n ) {\n // special case single arguments spread\n bareSuperNode.arguments[1] = bareSuperNode.arguments[1].argument;\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"apply\"),\n );\n } else {\n bareSuperNode.callee = t.memberExpression(\n t.cloneNode(superRef),\n t.identifier(\"call\"),\n );\n }\n\n call = t.logicalExpression(\"||\", bareSuperNode, t.thisExpression());\n } else {\n const args: t.Expression[] = [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ];\n if (bareSuperNode.arguments?.length) {\n const bareSuperNodeArguments = bareSuperNode.arguments as (\n | t.Expression\n | t.SpreadElement\n )[];\n\n /**\n * test262/test/language/expressions/super/call-spread-err-sngl-err-itr-get-get.js\n *\n * var iter = {};\n * Object.defineProperty(iter, Symbol.iterator, {\n * get: function() {\n * throw new Test262Error();\n * }\n * })\n * super(...iter);\n */\n\n if (\n bareSuperNodeArguments.length === 1 &&\n t.isSpreadElement(bareSuperNodeArguments[0]) &&\n t.isIdentifier(bareSuperNodeArguments[0].argument, {\n name: \"arguments\",\n })\n ) {\n args.push(bareSuperNodeArguments[0].argument);\n } else {\n args.push(t.arrayExpression(bareSuperNodeArguments));\n }\n }\n call = t.callExpression(addCallSuperHelper(classState.file), args);\n }\n\n if (\n bareSuper.parentPath.isExpressionStatement() &&\n bareSuper.parentPath.container === body.node.body &&\n body.node.body.length - 1 === bareSuper.parentPath.key\n ) {\n // this super call is the last statement in the body so we can just straight up\n // turn it into a return\n\n if (classState.superThises.length) {\n call = t.assignmentExpression(\"=\", thisRef(), call);\n }\n\n bareSuper.parentPath.replaceWith(t.returnStatement(call));\n } else {\n bareSuper.replaceWith(t.assignmentExpression(\"=\", thisRef(), call));\n }\n }\n\n function verifyConstructor() {\n if (!classState.isDerived) return;\n\n const path = classState.userConstructorPath;\n const body = path.get(\"body\");\n\n const constructorBody = path.get(\"body\");\n\n let maxGuaranteedSuperBeforeIndex = constructorBody.node.body.length;\n\n path.traverse(findThisesVisitor);\n\n let thisRef = function () {\n const ref = path.scope.generateDeclaredUidIdentifier(\"this\");\n maxGuaranteedSuperBeforeIndex++;\n thisRef = () => t.cloneNode(ref);\n return ref;\n };\n\n const buildAssertThisInitialized = function () {\n return t.callExpression(\n classState.file.addHelper(\"assertThisInitialized\"),\n [thisRef()],\n );\n };\n\n const bareSupers: NodePath[] = [];\n path.traverse(\n traverse.visitors.merge([\n environmentVisitor,\n {\n Super(path) {\n const { node, parentPath } = path;\n if (parentPath.isCallExpression({ callee: node })) {\n bareSupers.unshift(parentPath);\n }\n },\n } as Visitor,\n ]),\n );\n\n for (const bareSuper of bareSupers) {\n wrapSuperCall(bareSuper, classState.superName, thisRef, body);\n\n if (maxGuaranteedSuperBeforeIndex >= 0) {\n let lastParentPath: NodePath;\n bareSuper.find(function (parentPath) {\n // hit top so short circuit\n if (parentPath === constructorBody) {\n maxGuaranteedSuperBeforeIndex = Math.min(\n maxGuaranteedSuperBeforeIndex,\n lastParentPath.key as number,\n );\n return true;\n }\n\n if (\n parentPath.isLoop() ||\n parentPath.isConditional() ||\n parentPath.isArrowFunctionExpression()\n ) {\n maxGuaranteedSuperBeforeIndex = -1;\n return true;\n }\n\n lastParentPath = parentPath;\n });\n }\n }\n\n for (const thisPath of classState.superThises) {\n const { node, parentPath } = thisPath;\n if (parentPath.isMemberExpression({ object: node })) {\n thisPath.replaceWith(thisRef());\n continue;\n }\n\n let thisIndex: number;\n thisPath.find(function (parentPath) {\n if (parentPath.parentPath === constructorBody) {\n thisIndex = parentPath.key as number;\n return true;\n }\n });\n\n if (\n maxGuaranteedSuperBeforeIndex !== -1 &&\n thisIndex > maxGuaranteedSuperBeforeIndex\n ) {\n thisPath.replaceWith(thisRef());\n } else {\n thisPath.replaceWith(buildAssertThisInitialized());\n }\n }\n\n let wrapReturn;\n\n if (classState.isLoose) {\n wrapReturn = (returnArg: t.Expression | void) => {\n const thisExpr = buildAssertThisInitialized();\n return returnArg\n ? t.logicalExpression(\"||\", returnArg, thisExpr)\n : thisExpr;\n };\n } else {\n wrapReturn = (returnArg: t.Expression | undefined) => {\n const returnParams: t.Expression[] = [thisRef()];\n if (returnArg != null) {\n returnParams.push(returnArg);\n }\n return t.callExpression(\n classState.file.addHelper(\"possibleConstructorReturn\"),\n returnParams,\n );\n };\n }\n\n // if we have a return as the last node in the body then we've already caught that\n // return\n const bodyPaths = body.get(\"body\");\n const guaranteedSuperBeforeFinish =\n maxGuaranteedSuperBeforeIndex !== -1 &&\n maxGuaranteedSuperBeforeIndex < bodyPaths.length;\n if (!bodyPaths.length || !bodyPaths.pop().isReturnStatement()) {\n body.pushContainer(\n \"body\",\n t.returnStatement(\n guaranteedSuperBeforeFinish\n ? thisRef()\n : buildAssertThisInitialized(),\n ),\n );\n }\n\n for (const returnPath of classState.superReturns) {\n returnPath\n .get(\"argument\")\n .replaceWith(wrapReturn(returnPath.node.argument));\n }\n }\n\n /**\n * Push a method to its respective mutatorMap.\n */\n function pushMethod(node: t.ClassMethod, path?: NodePath) {\n const scope = path ? path.scope : classState.scope;\n\n if (node.kind === \"method\") {\n if (processMethod(node, scope)) return;\n }\n\n const placement = node.static ? \"static\" : \"instance\";\n const methods = classState.methods[placement];\n\n const descKey = node.kind === \"method\" ? \"value\" : node.kind;\n const key =\n t.isNumericLiteral(node.key) || t.isBigIntLiteral(node.key)\n ? t.stringLiteral(String(node.key.value))\n : t.toComputedKey(node);\n\n let fn: t.Expression = t.toExpression(node);\n\n if (t.isStringLiteral(key)) {\n // infer function name\n if (node.kind === \"method\") {\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n fn =\n nameFunction(\n // @ts-expect-error Fixme: we are passing a ClassMethod to nameFunction, but nameFunction\n // does not seem to support it\n { id: key, node: node, scope },\n undefined,\n supportUnicodeId,\n ) ?? fn;\n }\n } else {\n // todo(flow->ts) find a way to avoid \"key as t.StringLiteral\" below which relies on this assignment\n methods.hasComputed = true;\n }\n\n let descriptor: Descriptor;\n if (\n !methods.hasComputed &&\n methods.map.has((key as t.StringLiteral).value)\n ) {\n descriptor = methods.map.get((key as t.StringLiteral).value);\n descriptor[descKey] = fn;\n\n if (descKey === \"value\") {\n descriptor.get = null;\n descriptor.set = null;\n } else {\n descriptor.value = null;\n }\n } else {\n descriptor = {\n key:\n // private name has been handled in class-properties transform\n key as t.Expression,\n [descKey]: fn,\n } as Descriptor;\n methods.list.push(descriptor);\n\n if (!methods.hasComputed) {\n methods.map.set((key as t.StringLiteral).value, descriptor);\n }\n }\n }\n\n function processMethod(node: t.ClassMethod, scope: Scope) {\n if (assumptions.setClassMethods && !node.decorators) {\n // use assignments instead of define properties for loose classes\n let { classRef } = classState;\n if (!node.static) {\n insertProtoAliasOnce();\n classRef = classState.protoAlias;\n }\n const methodName = t.memberExpression(\n t.cloneNode(classRef),\n node.key,\n node.computed || t.isLiteral(node.key),\n );\n\n let func: t.Expression = t.functionExpression(\n null,\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n t.inherits(func, node);\n\n const key = t.toComputedKey(node, node.key);\n if (t.isStringLiteral(key)) {\n // @ts-expect-error: requires strictNullCheck\n func =\n nameFunction(\n {\n node: func,\n id: key,\n scope,\n },\n undefined,\n supportUnicodeId,\n ) ?? func;\n }\n\n const expr = t.expressionStatement(\n t.assignmentExpression(\"=\", methodName, func),\n );\n t.inheritsComments(expr, node);\n classState.body.push(expr);\n return true;\n }\n\n return false;\n }\n\n function insertProtoAliasOnce() {\n if (classState.protoAlias === null) {\n setState({ protoAlias: classState.scope.generateUidIdentifier(\"proto\") });\n const classProto = t.memberExpression(\n classState.classRef,\n t.identifier(\"prototype\"),\n );\n const protoDeclaration = t.variableDeclaration(\"var\", [\n t.variableDeclarator(classState.protoAlias, classProto),\n ]);\n\n classState.body.push(protoDeclaration);\n }\n }\n\n /**\n * Replace the constructor body of our class.\n */\n function pushConstructor(\n superReturns: NodePath[],\n method: ClassConstructor,\n path: NodePath,\n ) {\n setState({\n userConstructorPath: path,\n userConstructor: method,\n hasConstructor: true,\n superReturns,\n });\n\n const { construct } = classState;\n\n t.inheritsComments(construct, method);\n\n // @ts-expect-error Fixme: should throw when we see TSParameterProperty\n construct.params = method.params;\n\n t.inherits(construct.body, method.body);\n construct.body.directives = method.body.directives;\n\n // we haven't pushed any descriptors yet\n // @ts-expect-error todo(flow->ts) maybe remove this block - properties from condition are not used anywhere else\n if (classState.hasInstanceDescriptors || classState.hasStaticDescriptors) {\n pushDescriptors();\n }\n\n pushInheritsToBody();\n }\n\n /**\n * Push inherits helper to body.\n */\n function pushInheritsToBody() {\n if (!classState.isDerived || classState.pushedInherits) return;\n\n classState.pushedInherits = true;\n\n // Unshift to ensure that the constructor inheritance is set up before\n // any properties can be assigned to the prototype.\n\n classState.body.unshift(\n t.expressionStatement(\n t.callExpression(\n classState.file.addHelper(\n classState.isLoose ? \"inheritsLoose\" : \"inherits\",\n ),\n [t.cloneNode(classState.classRef), t.cloneNode(classState.superName)],\n ),\n ),\n );\n }\n\n function extractDynamicKeys() {\n const { dynamicKeys, node, scope } = classState;\n\n for (const elem of node.body.body) {\n if (!t.isClassMethod(elem) || !elem.computed) continue;\n if (scope.isPure(elem.key, /* constants only*/ true)) continue;\n\n const id = scope.generateUidIdentifierBasedOnNode(elem.key);\n dynamicKeys.set(id.name, elem.key);\n\n elem.key = id;\n }\n }\n\n function setupClosureParamsArgs() {\n const { superName, dynamicKeys } = classState;\n const closureParams = [];\n const closureArgs = [];\n\n if (classState.isDerived) {\n let arg = t.cloneNode(superName);\n if (classState.extendsNative) {\n arg = t.callExpression(classState.file.addHelper(\"wrapNativeSuper\"), [\n arg,\n ]);\n annotateAsPure(arg);\n }\n\n const param =\n classState.scope.generateUidIdentifierBasedOnNode(superName);\n\n closureParams.push(param);\n closureArgs.push(arg);\n\n setState({ superName: t.cloneNode(param) });\n }\n\n for (const [name, value] of dynamicKeys) {\n closureParams.push(t.identifier(name));\n closureArgs.push(value);\n }\n\n return { closureParams, closureArgs };\n }\n\n function classTransformer(\n path: NodePath,\n file: File,\n builtinClasses: ReadonlySet,\n isLoose: boolean,\n ) {\n setState({\n parent: path.parent,\n scope: path.scope,\n node: path.node,\n path,\n file,\n isLoose,\n });\n\n setState({\n classId: classState.node.id,\n // this is the name of the binding that will **always** reference the class we've constructed\n classRef: classState.node.id\n ? t.identifier(classState.node.id.name)\n : classState.scope.generateUidIdentifier(\"class\"),\n superName: classState.node.superClass,\n isDerived: !!classState.node.superClass,\n constructorBody: t.blockStatement([]),\n });\n\n setState({\n extendsNative:\n t.isIdentifier(classState.superName) &&\n builtinClasses.has(classState.superName.name) &&\n !classState.scope.hasBinding(\n classState.superName.name,\n /* noGlobals */ true,\n ),\n });\n\n const { classRef, node, constructorBody } = classState;\n\n setState({\n construct: buildConstructor(classRef, constructorBody, node),\n });\n\n extractDynamicKeys();\n\n const { body } = classState;\n const { closureParams, closureArgs } = setupClosureParamsArgs();\n\n buildBody();\n\n // make sure this class isn't directly called (with A() instead new A())\n if (!assumptions.noClassCalls) {\n constructorBody.body.unshift(\n t.expressionStatement(\n t.callExpression(classState.file.addHelper(\"classCallCheck\"), [\n t.thisExpression(),\n t.cloneNode(classState.classRef),\n ]),\n ),\n );\n }\n\n const isStrict = path.isInStrictMode();\n let constructorOnly = classState.classId && body.length === 0;\n if (constructorOnly && !isStrict) {\n for (const param of classState.construct.params) {\n // It's illegal to put a use strict directive into the body of a function\n // with non-simple parameters for some reason. So, we have to use a strict\n // wrapper function.\n if (!t.isIdentifier(param)) {\n constructorOnly = false;\n break;\n }\n }\n }\n\n const directives = constructorOnly\n ? classState.construct.body.directives\n : [];\n if (!isStrict) {\n directives.push(t.directive(t.directiveLiteral(\"use strict\")));\n }\n\n if (constructorOnly) {\n // named class with only a constructor\n const expr = t.toExpression(classState.construct);\n return classState.isLoose ? expr : createClassHelper([expr]);\n }\n\n if (!classState.pushedCreateClass) {\n body.push(\n t.returnStatement(\n classState.isLoose\n ? t.cloneNode(classState.classRef)\n : createClassHelper([t.cloneNode(classState.classRef)]),\n ),\n );\n }\n\n body.unshift(classState.construct);\n\n const container = t.arrowFunctionExpression(\n closureParams,\n t.blockStatement(body, directives),\n );\n return t.callExpression(container, closureArgs);\n }\n\n return classTransformer(path, file, builtinClasses, isLoose);\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { isRequired } from \"@babel/helper-compilation-targets\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport nameFunction from \"@babel/helper-function-name\";\nimport splitExportDeclaration from \"@babel/helper-split-export-declaration\";\nimport { types as t } from \"@babel/core\";\nimport globals from \"globals\";\nimport transformClass from \"./transformClass.ts\";\n\nconst getBuiltinClasses = (category: keyof typeof globals) =>\n Object.keys(globals[category]).filter(name => /^[A-Z]/.test(name));\n\nconst builtinClasses = new Set([\n ...getBuiltinClasses(\"builtin\"),\n ...getBuiltinClasses(\"browser\"),\n]);\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { loose = false } = options;\n\n const setClassMethods = api.assumption(\"setClassMethods\") ?? loose;\n const constantSuper = api.assumption(\"constantSuper\") ?? loose;\n const superIsCallableConstructor =\n api.assumption(\"superIsCallableConstructor\") ?? loose;\n const noClassCalls = api.assumption(\"noClassCalls\") ?? loose;\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n // todo: investigate traversal requeueing\n const VISITED = new WeakSet();\n\n return {\n name: \"transform-classes\",\n\n visitor: {\n ExportDefaultDeclaration(path) {\n if (!path.get(\"declaration\").isClassDeclaration()) return;\n splitExportDeclaration(path);\n },\n\n ClassDeclaration(path) {\n const { node } = path;\n\n const ref = node.id || path.scope.generateUidIdentifier(\"class\");\n\n path.replaceWith(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(ref, t.toExpression(node)),\n ]),\n );\n },\n\n ClassExpression(path, state) {\n const { node } = path;\n if (VISITED.has(node)) return;\n\n const inferred = nameFunction(path, undefined, supportUnicodeId);\n if (inferred && inferred !== node) {\n path.replaceWith(inferred);\n return;\n }\n\n VISITED.add(node);\n\n const [replacedPath] = path.replaceWith(\n transformClass(\n path,\n state.file,\n builtinClasses,\n loose,\n {\n setClassMethods,\n constantSuper,\n superIsCallableConstructor,\n noClassCalls,\n },\n supportUnicodeId,\n ),\n );\n\n if (replacedPath.isCallExpression()) {\n annotateAsPure(replacedPath);\n const callee = replacedPath.get(\"callee\");\n if (callee.isArrowFunctionExpression()) {\n // This is an IIFE, so we don't need to worry about the noNewArrows assumption\n callee.arrowFunctionToExpression();\n }\n }\n },\n },\n };\n});\n","import { types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport template from \"@babel/template\";\nimport type { Scope } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\ntype PropertyInfo = {\n scope: Scope;\n objId: t.Identifier;\n body: t.Statement[];\n computedProps: t.ObjectMember[];\n initPropExpression: t.ObjectExpression;\n state: PluginPass;\n};\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var DefineAccessorHelper = template.expression.ast`\n function (type, obj, key, fn) {\n var desc = { configurable: true, enumerable: true };\n desc[type] = fn;\n return Object.defineProperty(obj, key, desc);\n }\n `;\n // @ts-expect-error undocumented _compact node property\n DefineAccessorHelper._compact = true;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const setComputedProperties =\n api.assumption(\"setComputedProperties\") ?? options.loose;\n\n const pushComputedProps = setComputedProperties\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n function buildDefineAccessor(\n state: PluginPass,\n obj: t.Expression,\n prop: t.ObjectMethod,\n ) {\n const type = prop.kind as \"get\" | \"set\";\n const key =\n !prop.computed && t.isIdentifier(prop.key)\n ? t.stringLiteral(prop.key.name)\n : prop.key;\n const fn = getValue(prop);\n if (process.env.BABEL_8_BREAKING) {\n return t.callExpression(state.addHelper(\"defineAccessor\"), [\n t.stringLiteral(type),\n obj,\n key,\n fn,\n ]);\n } else {\n let helper: t.Identifier;\n if (state.availableHelper(\"defineAccessor\")) {\n helper = state.addHelper(\"defineAccessor\");\n } else {\n // Fallback for @babel/helpers <= 7.20.6, manually add helper function\n const file = state.file;\n helper = file.get(\"fallbackDefineAccessorHelper\");\n if (!helper) {\n const id = file.scope.generateUidIdentifier(\"defineAccessor\");\n file.scope.push({\n id,\n init: DefineAccessorHelper,\n });\n file.set(\"fallbackDefineAccessorHelper\", (helper = id));\n }\n helper = t.cloneNode(helper);\n }\n\n return t.callExpression(helper, [t.stringLiteral(type), obj, key, fn]);\n }\n }\n\n /**\n * Get value of an object member under object expression.\n * Returns a function expression if prop is a ObjectMethod.\n *\n * @param {t.ObjectMember} prop\n * @returns t.Expression\n */\n function getValue(prop: t.ObjectMember) {\n if (t.isObjectProperty(prop)) {\n return prop.value as t.Expression;\n } else if (t.isObjectMethod(prop)) {\n return t.functionExpression(\n null,\n prop.params,\n prop.body,\n prop.generator,\n prop.async,\n );\n }\n }\n\n function pushAssign(\n objId: t.Identifier,\n prop: t.ObjectMember,\n body: t.Statement[],\n ) {\n body.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.cloneNode(objId),\n prop.key,\n prop.computed || t.isLiteral(prop.key),\n ),\n getValue(prop),\n ),\n ),\n );\n }\n\n function pushComputedPropsLoose(info: PropertyInfo) {\n const { computedProps, state, initPropExpression, objId, body } = info;\n\n for (const prop of computedProps) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n if (computedProps.length === 1) {\n return buildDefineAccessor(state, initPropExpression, prop);\n } else {\n body.push(\n t.expressionStatement(\n buildDefineAccessor(state, t.cloneNode(objId), prop),\n ),\n );\n }\n } else {\n pushAssign(t.cloneNode(objId), prop, body);\n }\n }\n }\n\n function pushComputedPropsSpec(info: PropertyInfo) {\n const { objId, body, computedProps, state } = info;\n\n // To prevent too deep AST structures in case of large objects\n const CHUNK_LENGTH_CAP = 10;\n\n let currentChunk: t.ObjectMember[] = null;\n const computedPropsChunks: Array = [];\n for (const prop of computedProps) {\n if (!currentChunk || currentChunk.length === CHUNK_LENGTH_CAP) {\n currentChunk = [];\n computedPropsChunks.push(currentChunk);\n }\n currentChunk.push(prop);\n }\n\n for (const chunk of computedPropsChunks) {\n const single = computedPropsChunks.length === 1;\n let node: t.Expression = single\n ? info.initPropExpression\n : t.cloneNode(objId);\n for (const prop of chunk) {\n if (\n t.isObjectMethod(prop) &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n node = buildDefineAccessor(info.state, node, prop);\n } else {\n node = t.callExpression(state.addHelper(\"defineProperty\"), [\n node,\n // PrivateName must not be in ObjectExpression\n t.toComputedKey(prop) as t.Expression,\n // the value of ObjectProperty in ObjectExpression must be an expression\n getValue(prop),\n ]);\n }\n }\n if (single) return node;\n body.push(t.expressionStatement(node));\n }\n }\n\n return {\n name: \"transform-computed-properties\",\n\n visitor: {\n ObjectExpression: {\n exit(path, state) {\n const { node, parent, scope } = path;\n let hasComputed = false;\n for (const prop of node.properties) {\n // @ts-expect-error SpreadElement must not have computed property\n hasComputed = prop.computed === true;\n if (hasComputed) break;\n }\n if (!hasComputed) return;\n\n // put all getters/setters into the first object expression as well as all initialisers up\n // to the first computed property\n\n const initProps: t.ObjectMember[] = [];\n const computedProps: t.ObjectMember[] = [];\n let foundComputed = false;\n\n for (const prop of node.properties) {\n if (t.isSpreadElement(prop)) {\n continue;\n }\n if (prop.computed) {\n foundComputed = true;\n }\n\n if (foundComputed) {\n computedProps.push(prop);\n } else {\n initProps.push(prop);\n }\n }\n\n const objId = scope.generateUidIdentifierBasedOnNode(parent);\n const initPropExpression = t.objectExpression(initProps);\n const body = [];\n\n body.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(objId, initPropExpression),\n ]),\n );\n\n const single = pushComputedProps({\n scope,\n objId,\n body,\n computedProps,\n initPropExpression,\n state,\n });\n\n if (single) {\n path.replaceWith(single);\n } else {\n if (setComputedProperties) {\n body.push(t.expressionStatement(t.cloneNode(objId)));\n }\n path.replaceWithMultiple(body);\n }\n },\n },\n },\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return createRegExpFeaturePlugin({\n name: \"transform-dotall-regex\",\n feature: \"dotAllFlag\",\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nfunction getName(\n key: t.Identifier | t.StringLiteral | t.NumericLiteral | t.BigIntLiteral,\n) {\n if (t.isIdentifier(key)) {\n return key.name;\n }\n return key.value.toString();\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-duplicate-keys\",\n\n visitor: {\n ObjectExpression(path) {\n const { node } = path;\n const plainProps = node.properties.filter(\n prop => !t.isSpreadElement(prop) && !prop.computed,\n ) as (t.ObjectMethod | t.ObjectProperty)[];\n\n // A property is a duplicate key if:\n // * the property is a data property, and is preceded by a data,\n // getter, or setter property of the same name.\n // * the property is a getter property, and is preceded by a data or\n // getter property of the same name.\n // * the property is a setter property, and is preceded by a data or\n // setter property of the same name.\n\n const alreadySeenData = Object.create(null);\n const alreadySeenGetters = Object.create(null);\n const alreadySeenSetters = Object.create(null);\n\n for (const prop of plainProps) {\n const name = getName(\n // prop must be non-computed\n prop.key as\n | t.Identifier\n | t.StringLiteral\n | t.NumericLiteral\n | t.BigIntLiteral,\n );\n let isDuplicate = false;\n // @ts-expect-error prop.kind is not defined in ObjectProperty\n switch (prop.kind) {\n case \"get\":\n if (alreadySeenData[name] || alreadySeenGetters[name]) {\n isDuplicate = true;\n }\n alreadySeenGetters[name] = true;\n break;\n case \"set\":\n if (alreadySeenData[name] || alreadySeenSetters[name]) {\n isDuplicate = true;\n }\n alreadySeenSetters[name] = true;\n break;\n default:\n if (\n alreadySeenData[name] ||\n alreadySeenGetters[name] ||\n alreadySeenSetters[name]\n ) {\n isDuplicate = true;\n }\n alreadySeenData[name] = true;\n }\n\n if (isDuplicate) {\n // Rely on the computed properties transform to split the property\n // assignment out of the object literal.\n prop.computed = true;\n prop.key = t.stringLiteral(name);\n }\n }\n },\n },\n };\n});\n","import type { Scope } from \"@babel/traverse\";\nimport {\n assignmentExpression,\n cloneNode,\n isIdentifier,\n isLiteral,\n isMemberExpression,\n isPrivateName,\n isPureish,\n isSuper,\n memberExpression,\n toComputedKey,\n} from \"@babel/types\";\nimport type * as t from \"@babel/types\";\n\nfunction getObjRef(\n node: t.Identifier | t.MemberExpression,\n nodes: Array,\n scope: Scope,\n): t.Identifier | t.Super {\n let ref;\n if (isIdentifier(node)) {\n if (scope.hasBinding(node.name)) {\n // this variable is declared in scope so we can be 100% sure\n // that evaluating it multiple times won't trigger a getter\n // or something else\n return node;\n } else {\n // could possibly trigger a getter so we need to only evaluate\n // it once\n ref = node;\n }\n } else if (isMemberExpression(node)) {\n ref = node.object;\n\n if (isSuper(ref) || (isIdentifier(ref) && scope.hasBinding(ref.name))) {\n // the object reference that we need to save is locally declared\n // so as per the previous comment we can be 100% sure evaluating\n // it multiple times will be safe\n // Super cannot be directly assigned so lets return it also\n return ref;\n }\n } else {\n throw new Error(`We can't explode this node type ${node[\"type\"]}`);\n }\n\n const temp = scope.generateUidIdentifierBasedOnNode(ref);\n scope.push({ id: temp });\n nodes.push(assignmentExpression(\"=\", cloneNode(temp), cloneNode(ref)));\n return temp;\n}\n\nfunction getPropRef(\n node: t.MemberExpression,\n nodes: Array,\n scope: Scope,\n): t.Identifier | t.Literal {\n const prop = node.property;\n if (isPrivateName(prop)) {\n throw new Error(\n \"We can't generate property ref for private name, please install `@babel/plugin-transform-class-properties`\",\n );\n }\n const key = toComputedKey(node, prop);\n if (isLiteral(key) && isPureish(key)) return key;\n\n const temp = scope.generateUidIdentifierBasedOnNode(prop);\n scope.push({ id: temp });\n nodes.push(assignmentExpression(\"=\", cloneNode(temp), cloneNode(prop)));\n return temp;\n}\n\nexport default function explode(\n node: t.Identifier | t.MemberExpression,\n nodes: Array,\n scope: Scope,\n): {\n uid: t.Identifier | t.MemberExpression | t.Super;\n ref: t.Identifier | t.MemberExpression;\n} {\n const obj = getObjRef(node, nodes, scope);\n\n let ref, uid;\n\n if (isIdentifier(node)) {\n ref = cloneNode(node);\n uid = obj;\n } else {\n const prop = getPropRef(node, nodes, scope);\n const computed = node.computed || isLiteral(prop);\n uid = memberExpression(cloneNode(obj), cloneNode(prop), computed);\n ref = memberExpression(cloneNode(obj), cloneNode(prop), computed);\n }\n\n return {\n uid: uid,\n ref: ref,\n };\n}\n","import { assignmentExpression, sequenceExpression } from \"@babel/types\";\nimport type { Visitor } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nimport explode from \"./explode-assignable-expression.ts\";\n\nexport default function (opts: {\n build: (\n left: t.Expression | t.PrivateName | t.Super,\n right: t.Expression,\n ) => t.Expression;\n operator: t.BinaryExpression[\"operator\"];\n}) {\n const { build, operator } = opts;\n\n const visitor: Visitor = {\n AssignmentExpression(path) {\n const { node, scope } = path;\n if (node.operator !== operator + \"=\") return;\n\n const nodes: t.AssignmentExpression[] = [];\n // @ts-expect-error Fixme: node.left can be a TSAsExpression\n const exploded = explode(node.left, nodes, scope);\n nodes.push(\n assignmentExpression(\n \"=\",\n exploded.ref,\n build(exploded.uid, node.right),\n ),\n );\n path.replaceWith(sequenceExpression(nodes));\n },\n\n BinaryExpression(path) {\n const { node } = path;\n if (node.operator === operator) {\n path.replaceWith(build(node.left, node.right));\n }\n },\n };\n return visitor;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport build from \"@babel/helper-builder-binary-assignment-operator-visitor\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-exponentiation-operator\",\n\n visitor: build({\n operator: \"**\",\n\n build(left, right) {\n return t.callExpression(\n t.memberExpression(t.identifier(\"Math\"), t.identifier(\"pow\")),\n [\n // left can be PrivateName only if operator is `\"in\"`\n left as t.Expression,\n right,\n ],\n );\n },\n }),\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxFlow from \"@babel/plugin-syntax-flow\";\nimport { types as t } from \"@babel/core\";\nimport generateCode from \"@babel/generator\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function commentFromString(comment: string | t.Comment): t.Comment {\n return typeof comment === \"string\"\n ? { type: \"CommentBlock\", value: comment }\n : comment;\n }\n\n function attachComment({\n ofPath,\n toPath,\n where = \"trailing\",\n optional = false,\n comments = generateComment(ofPath, optional),\n keepType = false,\n }: {\n ofPath?: NodePath;\n toPath?: NodePath;\n where?: t.CommentTypeShorthand;\n optional?: boolean;\n comments?: string | t.Comment | (string | t.Comment)[];\n keepType?: boolean;\n }) {\n if (!toPath?.node) {\n toPath = ofPath.getPrevSibling();\n where = \"trailing\";\n }\n if (!toPath.node) {\n toPath = ofPath.getNextSibling();\n where = \"leading\";\n }\n if (!toPath.node) {\n toPath = ofPath.parentPath;\n where = \"inner\";\n }\n if (!Array.isArray(comments)) {\n comments = [comments];\n }\n const newComments = comments.map(commentFromString);\n if (!keepType && ofPath?.node) {\n // Removes the node at `ofPath` while conserving the comments attached\n // to it.\n const node = ofPath.node;\n const parent = ofPath.parentPath;\n const prev = ofPath.getPrevSibling();\n const next = ofPath.getNextSibling();\n const isSingleChild = !(prev.node || next.node);\n const leading = node.leadingComments;\n const trailing = node.trailingComments;\n\n if (isSingleChild && leading) {\n parent.addComments(\"inner\", leading);\n }\n toPath.addComments(where, newComments);\n ofPath.remove();\n if (isSingleChild && trailing) {\n parent.addComments(\"inner\", trailing);\n }\n } else {\n toPath.addComments(where, newComments);\n }\n }\n\n function wrapInFlowComment<\n N extends\n | t.ClassProperty\n | t.ExportNamedDeclaration\n | t.Flow\n | t.ImportDeclaration\n | t.ExportDeclaration\n | t.ImportSpecifier\n | t.ImportDeclaration,\n >(path: NodePath) {\n attachComment({\n ofPath: path,\n // @ts-expect-error optional may not exist in path.parent\n comments: generateComment(path, path.parent.optional),\n });\n }\n\n function generateComment(path: NodePath, optional?: boolean | void) {\n let comment = path\n .getSource()\n .replace(/\\*-\\//g, \"*-ESCAPED/\")\n .replace(/\\*\\//g, \"*-/\");\n if (optional) comment = \"?\" + comment;\n if (comment[0] !== \":\") comment = \":: \" + comment;\n return comment;\n }\n\n function isTypeImport(importKind: \"type\" | \"typeof\" | \"value\") {\n return importKind === \"type\" || importKind === \"typeof\";\n }\n\n return {\n name: \"transform-flow-comments\",\n inherits: syntaxFlow,\n\n visitor: {\n TypeCastExpression(path) {\n const { node } = path;\n attachComment({\n ofPath: path.get(\"typeAnnotation\"),\n toPath: path.get(\"expression\"),\n keepType: true,\n });\n path.replaceWith(t.parenthesizedExpression(node.expression));\n },\n\n // support function a(b?) {}\n Identifier(path) {\n if (path.parentPath.isFlow()) return;\n const { node } = path;\n if (node.typeAnnotation) {\n attachComment({\n ofPath: path.get(\"typeAnnotation\"),\n toPath: path,\n optional:\n node.optional ||\n // @ts-expect-error Fixme: optional is not in t.TypeAnnotation,\n // maybe we can remove it\n node.typeAnnotation.optional,\n });\n if (node.optional) {\n node.optional = false;\n }\n } else if (node.optional) {\n attachComment({\n toPath: path,\n comments: \":: ?\",\n });\n node.optional = false;\n }\n },\n\n AssignmentPattern: {\n exit({ node }) {\n const { left } = node;\n // @ts-expect-error optional is not in TSAsExpression\n if (left.optional) {\n // @ts-expect-error optional is not in TSAsExpression\n left.optional = false;\n }\n },\n },\n\n // strip optional property from function params - facebook/fbjs#17\n Function(path) {\n if (path.isDeclareFunction()) return;\n const { node } = path;\n if (node.typeParameters) {\n attachComment({\n ofPath: path.get(\"typeParameters\"),\n toPath: path.get(\"id\"),\n // @ts-expect-error Fixme: optional is not in t.TypeParameterDeclaration\n optional: node.typeParameters.optional,\n });\n }\n if (node.returnType) {\n attachComment({\n ofPath: path.get(\"returnType\"),\n toPath: path.get(\"body\"),\n where: \"leading\",\n // @ts-expect-error Fixme: optional is not in t.TypeAnnotation\n optional: node.returnType.typeAnnotation.optional,\n });\n }\n },\n\n // support for `class X { foo: string }` - #4622\n ClassProperty(path) {\n const { node } = path;\n if (!node.value) {\n wrapInFlowComment(path);\n } else if (node.typeAnnotation) {\n attachComment({\n ofPath: path.get(\"typeAnnotation\"),\n toPath: path.get(\"key\"),\n // @ts-expect-error Fixme: optional is not in t.TypeAnnotation\n optional: node.typeAnnotation.optional,\n });\n }\n },\n\n // support `export type a = {}` - #8 Error: You passed path.replaceWith() a falsy node\n ExportNamedDeclaration(path) {\n const { node } = path;\n if (node.exportKind !== \"type\" && !t.isFlow(node.declaration)) {\n return;\n }\n wrapInFlowComment(path);\n },\n\n // support `import type A` and `import typeof A` #10\n ImportDeclaration(path) {\n const { node } = path;\n if (isTypeImport(node.importKind)) {\n wrapInFlowComment(path);\n return;\n }\n\n const typeSpecifiers = node.specifiers.filter(\n specifier =>\n specifier.type === \"ImportSpecifier\" &&\n isTypeImport(specifier.importKind),\n );\n\n const nonTypeSpecifiers = node.specifiers.filter(\n specifier =>\n specifier.type !== \"ImportSpecifier\" ||\n !isTypeImport(specifier.importKind),\n );\n node.specifiers = nonTypeSpecifiers;\n\n if (typeSpecifiers.length > 0) {\n const typeImportNode = t.cloneNode(node);\n typeImportNode.specifiers = typeSpecifiers;\n const comment = `:: ${generateCode(typeImportNode).code}`;\n\n if (nonTypeSpecifiers.length > 0) {\n attachComment({ toPath: path, comments: comment });\n } else {\n attachComment({ ofPath: path, comments: comment });\n }\n }\n },\n ObjectPattern(path) {\n const { node } = path;\n if (node.typeAnnotation) {\n attachComment({\n ofPath: path.get(\"typeAnnotation\"),\n toPath: path,\n optional:\n node.optional ||\n // @ts-expect-error Fixme: optional is not in t.TypeAnnotation\n node.typeAnnotation.optional,\n });\n }\n },\n\n Flow(\n path: NodePath<\n t.Flow | t.ImportDeclaration | t.ExportDeclaration | t.ImportSpecifier\n >,\n ) {\n wrapInFlowComment(path);\n },\n\n Class(path) {\n const { node } = path;\n let comments: [string?, ...(string | t.Comment)[]] = [];\n if (node.typeParameters) {\n const typeParameters = path.get(\"typeParameters\");\n comments.push(\n // @ts-expect-error optional is not in TypeParameterDeclaration\n generateComment(typeParameters, node.typeParameters.optional),\n );\n const trailingComments = node.typeParameters.trailingComments;\n if (trailingComments) {\n comments.push(...trailingComments);\n }\n typeParameters.remove();\n }\n\n if (node.superClass) {\n if (comments.length > 0) {\n attachComment({\n toPath: path.get(\"id\"),\n comments: comments,\n });\n comments = [];\n }\n\n if (node.superTypeParameters) {\n const superTypeParameters = path.get(\n \"superTypeParameters\",\n ) as NodePath;\n comments.push(\n generateComment(\n superTypeParameters,\n // @ts-expect-error optional is not in TypeParameterInstantiation\n superTypeParameters.node.optional,\n ),\n );\n superTypeParameters.remove();\n }\n }\n\n if (node.implements) {\n const impls = path.get(\"implements\");\n const comment =\n \"implements \" +\n impls\n .map(impl => generateComment(impl).replace(/^:: /, \"\"))\n .join(\", \");\n delete node[\"implements\"];\n\n if (comments.length === 1) {\n comments[0] += ` ${comment}`;\n } else {\n comments.push(`:: ${comment}`);\n }\n }\n\n if (comments.length > 0) {\n attachComment({\n toPath: path.get(\"body\"),\n where: \"leading\",\n comments: comments,\n });\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxFlow from \"@babel/plugin-syntax-flow\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport interface Options {\n requireDirective?: boolean;\n allowDeclareFields?: boolean;\n}\n\nexport default declare((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const FLOW_DIRECTIVE = /(@flow(\\s+(strict(-local)?|weak))?|@noflow)/;\n\n let skipStrip = false;\n\n const { requireDirective = false } = opts;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { allowDeclareFields = false } = opts;\n }\n\n return {\n name: \"transform-flow-strip-types\",\n inherits: syntaxFlow,\n\n visitor: {\n Program(\n path,\n {\n file: {\n ast: { comments },\n },\n },\n ) {\n skipStrip = false;\n let directiveFound = false;\n\n if (comments) {\n for (const comment of comments) {\n if (FLOW_DIRECTIVE.test(comment.value)) {\n directiveFound = true;\n\n // remove flow directive\n comment.value = comment.value.replace(FLOW_DIRECTIVE, \"\");\n\n // remove the comment completely if it only consists of whitespace and/or stars\n if (!comment.value.replace(/\\*/g, \"\").trim()) {\n comment.ignore = true;\n }\n }\n }\n }\n\n if (!directiveFound && requireDirective) {\n skipStrip = true;\n }\n },\n ImportDeclaration(path) {\n if (skipStrip) return;\n if (!path.node.specifiers.length) return;\n\n let typeCount = 0;\n\n // @ts-expect-error importKind is only in importSpecifier\n path.node.specifiers.forEach(({ importKind }) => {\n if (importKind === \"type\" || importKind === \"typeof\") {\n typeCount++;\n }\n });\n\n if (typeCount === path.node.specifiers.length) {\n path.remove();\n }\n },\n\n Flow(\n path: NodePath<\n t.Flow | t.ImportDeclaration | t.ExportDeclaration | t.ImportSpecifier\n >,\n ) {\n if (skipStrip) {\n throw path.buildCodeFrameError(\n \"A @flow directive is required when using Flow annotations with \" +\n \"the `requireDirective` option.\",\n );\n }\n\n path.remove();\n },\n\n ClassPrivateProperty(path) {\n if (skipStrip) return;\n path.node.typeAnnotation = null;\n },\n\n Class(path) {\n if (skipStrip) return;\n path.node.implements = null;\n\n // We do this here instead of in a `ClassProperty` visitor because the class transform\n // would transform the class before we reached the class property.\n path.get(\"body.body\").forEach(child => {\n if (child.isClassProperty()) {\n const { node } = child;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!allowDeclareFields && node.declare) {\n throw child.buildCodeFrameError(\n `The 'declare' modifier is only allowed when the ` +\n `'allowDeclareFields' option of ` +\n `@babel/plugin-transform-flow-strip-types or ` +\n `@babel/preset-flow is enabled.`,\n );\n }\n }\n\n if (node.declare) {\n child.remove();\n } else {\n if (!process.env.BABEL_8_BREAKING) {\n if (!allowDeclareFields && !node.value && !node.decorators) {\n child.remove();\n return;\n }\n }\n\n node.variance = null;\n node.typeAnnotation = null;\n }\n }\n });\n },\n\n AssignmentPattern({ node }) {\n if (skipStrip) return;\n // @ts-expect-error optional is not in TSAsExpression\n if (node.left.optional) {\n // @ts-expect-error optional is not in TSAsExpression\n node.left.optional = false;\n }\n },\n\n Function({ node }) {\n if (skipStrip) return;\n if (\n node.params.length > 0 &&\n node.params[0].type === \"Identifier\" &&\n node.params[0].name === \"this\"\n ) {\n node.params.shift();\n }\n for (let i = 0; i < node.params.length; i++) {\n let param = node.params[i];\n if (param.type === \"AssignmentPattern\") {\n // @ts-expect-error: refine AST types, the left of an assignment pattern as a binding\n // must not be a MemberExpression\n param = param.left;\n }\n // @ts-expect-error optional is not in TSAsExpression\n if (param.optional) {\n // @ts-expect-error optional is not in TSAsExpression\n param.optional = false;\n }\n }\n\n if (!t.isMethod(node)) {\n node.predicate = null;\n }\n },\n\n TypeCastExpression(path) {\n if (skipStrip) return;\n let { node } = path;\n do {\n // @ts-expect-error node is a search pointer\n node = node.expression;\n } while (t.isTypeCastExpression(node));\n path.replaceWith(node);\n },\n\n CallExpression({ node }) {\n if (skipStrip) return;\n node.typeArguments = null;\n },\n\n OptionalCallExpression({ node }) {\n if (skipStrip) return;\n node.typeArguments = null;\n },\n\n NewExpression({ node }) {\n if (skipStrip) return;\n node.typeArguments = null;\n },\n },\n };\n});\n","import { type PluginPass, template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\n// This is the legacy implementation, which inlines all the code.\n// It must be kept for compatibility reasons.\n// TODO(Babel 8): Remove this file.\n\nexport default function transformWithoutHelper(\n loose: boolean | void,\n path: NodePath,\n state: PluginPass,\n) {\n const pushComputedProps = loose\n ? pushComputedPropsLoose\n : pushComputedPropsSpec;\n\n const { node } = path;\n const build = pushComputedProps(path, state);\n const declar = build.declar;\n const loop = build.loop;\n const block = loop.body as t.BlockStatement;\n\n // ensure that it's a block so we can take all its statements\n path.ensureBlock();\n\n // add the value declaration to the new loop body\n if (declar) {\n block.body.push(declar);\n }\n\n // push the rest of the original loop body onto our new body\n block.body.push(...(node.body as t.BlockStatement).body);\n\n t.inherits(loop, node);\n t.inherits(loop.body, node.body);\n\n if (build.replaceParent) {\n path.parentPath.replaceWithMultiple(build.node);\n path.remove();\n } else {\n path.replaceWithMultiple(build.node);\n }\n}\n\nconst buildForOfLoose = template.statement(`\n for (var LOOP_OBJECT = OBJECT,\n IS_ARRAY = Array.isArray(LOOP_OBJECT),\n INDEX = 0,\n LOOP_OBJECT = IS_ARRAY ? LOOP_OBJECT : LOOP_OBJECT[Symbol.iterator]();;) {\n INTERMEDIATE;\n if (IS_ARRAY) {\n if (INDEX >= LOOP_OBJECT.length) break;\n ID = LOOP_OBJECT[INDEX++];\n } else {\n INDEX = LOOP_OBJECT.next();\n if (INDEX.done) break;\n ID = INDEX.value;\n }\n }\n`);\n\nconst buildForOf = template.statements(`\n var ITERATOR_COMPLETION = true;\n var ITERATOR_HAD_ERROR_KEY = false;\n var ITERATOR_ERROR_KEY = undefined;\n try {\n for (\n var ITERATOR_KEY = OBJECT[Symbol.iterator](), STEP_KEY;\n !(ITERATOR_COMPLETION = (STEP_KEY = ITERATOR_KEY.next()).done);\n ITERATOR_COMPLETION = true\n ) {}\n } catch (err) {\n ITERATOR_HAD_ERROR_KEY = true;\n ITERATOR_ERROR_KEY = err;\n } finally {\n try {\n if (!ITERATOR_COMPLETION && ITERATOR_KEY.return != null) {\n ITERATOR_KEY.return();\n }\n } finally {\n if (ITERATOR_HAD_ERROR_KEY) {\n throw ITERATOR_ERROR_KEY;\n }\n }\n }\n`);\n\nfunction pushComputedPropsLoose(\n path: NodePath,\n state: PluginPass,\n) {\n const { node, scope, parent } = path;\n const { left } = node;\n let declar, id, intermediate;\n\n if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) {\n // for (i of test), for ({ i } of test)\n id = left;\n intermediate = null;\n } else if (t.isVariableDeclaration(left)) {\n // for (let i of test)\n id = scope.generateUidIdentifier(\"ref\");\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, t.identifier(id.name)),\n ]);\n intermediate = t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(id.name)),\n ]);\n } else {\n throw state.buildCodeFrameError(\n left,\n `Unknown node type ${left.type} in ForStatement`,\n );\n }\n\n const iteratorKey = scope.generateUidIdentifier(\"iterator\");\n const isArrayKey = scope.generateUidIdentifier(\"isArray\");\n\n const loop = buildForOfLoose({\n LOOP_OBJECT: iteratorKey,\n IS_ARRAY: isArrayKey,\n OBJECT: node.right,\n INDEX: scope.generateUidIdentifier(\"i\"),\n ID: id,\n INTERMEDIATE: intermediate,\n }) as t.ForStatement;\n\n //\n const isLabeledParent = t.isLabeledStatement(parent);\n let labeled;\n\n if (isLabeledParent) {\n labeled = t.labeledStatement(parent.label, loop);\n }\n\n return {\n replaceParent: isLabeledParent,\n declar: declar,\n node: labeled || loop,\n loop: loop,\n };\n}\n\nfunction pushComputedPropsSpec(\n path: NodePath,\n state: PluginPass,\n) {\n const { node, scope, parent } = path;\n const left = node.left;\n let declar;\n\n const stepKey = scope.generateUid(\"step\");\n const stepValue = t.memberExpression(\n t.identifier(stepKey),\n t.identifier(\"value\"),\n );\n\n if (t.isIdentifier(left) || t.isPattern(left) || t.isMemberExpression(left)) {\n // for (i of test), for ({ i } of test)\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, stepValue),\n );\n } else if (t.isVariableDeclaration(left)) {\n // for (let i of test)\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, stepValue),\n ]);\n } else {\n throw state.buildCodeFrameError(\n left,\n `Unknown node type ${left.type} in ForStatement`,\n );\n }\n\n const template = buildForOf({\n ITERATOR_HAD_ERROR_KEY: scope.generateUidIdentifier(\"didIteratorError\"),\n ITERATOR_COMPLETION: scope.generateUidIdentifier(\n \"iteratorNormalCompletion\",\n ),\n ITERATOR_ERROR_KEY: scope.generateUidIdentifier(\"iteratorError\"),\n ITERATOR_KEY: scope.generateUidIdentifier(\"iterator\"),\n STEP_KEY: t.identifier(stepKey),\n OBJECT: node.right,\n });\n\n const isLabeledParent = t.isLabeledStatement(parent);\n\n const tryBody = (template[3] as t.TryStatement).block.body;\n const loop = tryBody[0] as t.ForStatement;\n\n if (isLabeledParent) {\n tryBody[0] = t.labeledStatement(parent.label, loop);\n }\n\n //\n\n return {\n replaceParent: isLabeledParent,\n declar: declar,\n loop: loop,\n node: template,\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport transformWithoutHelper from \"./no-helper-implementation.ts\";\nimport { skipTransparentExprWrapperNodes } from \"@babel/helper-skip-transparent-expression-wrappers\";\n\nexport interface Options {\n allowArrayLike?: boolean;\n assumeArray?: boolean;\n loose?: boolean;\n}\n\nfunction buildLoopBody(\n path: NodePath,\n declar: t.Statement,\n newBody?: t.Statement | t.Expression,\n) {\n let block;\n const bodyPath = path.get(\"body\");\n const body = newBody ?? bodyPath.node;\n if (\n t.isBlockStatement(body) &&\n Object.keys(path.getBindingIdentifiers()).some(id =>\n bodyPath.scope.hasOwnBinding(id),\n )\n ) {\n block = t.blockStatement([declar, body]);\n } else {\n block = t.toBlock(body);\n block.body.unshift(declar);\n }\n return block;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n {\n const { assumeArray, allowArrayLike, loose } = options;\n\n if (loose === true && assumeArray === true) {\n throw new Error(\n `The loose and assumeArray options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (assumeArray === true && allowArrayLike === true) {\n throw new Error(\n `The assumeArray and allowArrayLike options cannot be used together in @babel/plugin-transform-for-of`,\n );\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // TODO: Remove in Babel 8\n if (allowArrayLike && /^7\\.\\d\\./.test(api.version)) {\n throw new Error(\n `The allowArrayLike is only supported when using @babel/core@^7.10.0`,\n );\n }\n }\n }\n\n const iterableIsArray =\n options.assumeArray ??\n // Loose mode is not compatible with 'assumeArray', so we shouldn't read\n // 'iterableIsArray' if 'loose' is true.\n (!options.loose && api.assumption(\"iterableIsArray\"));\n\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n const skipIteratorClosing =\n api.assumption(\"skipForOfIteratorClosing\") ?? options.loose;\n\n if (iterableIsArray && arrayLikeIsIterable) {\n throw new Error(\n `The \"iterableIsArray\" and \"arrayLikeIsIterable\" assumptions are not compatible.`,\n );\n }\n\n if (iterableIsArray) {\n return {\n name: \"transform-for-of\",\n\n visitor: {\n ForOfStatement(path) {\n const { scope } = path;\n const { left, await: isAwait } = path.node;\n if (isAwait) {\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n const right = skipTransparentExprWrapperNodes(\n path.node.right,\n ) as t.Expression;\n const i = scope.generateUidIdentifier(\"i\");\n let array: t.Identifier | t.ThisExpression =\n scope.maybeGenerateMemoised(right, true);\n if (\n !array &&\n t.isIdentifier(right) &&\n path.get(\"body\").scope.hasOwnBinding(right.name)\n ) {\n array = scope.generateUidIdentifier(\"arr\");\n }\n\n const inits = [t.variableDeclarator(i, t.numericLiteral(0))];\n if (array) {\n inits.push(t.variableDeclarator(array, right));\n } else {\n array = right as t.Identifier | t.ThisExpression;\n }\n\n const item = t.memberExpression(\n t.cloneNode(array),\n t.cloneNode(i),\n true,\n );\n let assignment;\n if (t.isVariableDeclaration(left)) {\n assignment = left;\n assignment.declarations[0].init = item;\n } else {\n assignment = t.expressionStatement(\n t.assignmentExpression(\"=\", left, item),\n );\n }\n\n path.replaceWith(\n t.forStatement(\n t.variableDeclaration(\"let\", inits),\n t.binaryExpression(\n \"<\",\n t.cloneNode(i),\n t.memberExpression(t.cloneNode(array), t.identifier(\"length\")),\n ),\n t.updateExpression(\"++\", t.cloneNode(i)),\n buildLoopBody(path, assignment),\n ),\n );\n },\n },\n };\n }\n\n const buildForOfArray = template`\n for (var KEY = 0, NAME = ARR; KEY < NAME.length; KEY++) BODY;\n `;\n\n const buildForOfNoIteratorClosing = template.statements`\n for (var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n !(STEP_KEY = ITERATOR_HELPER()).done;) BODY;\n `;\n\n const buildForOf = template.statements`\n var ITERATOR_HELPER = CREATE_ITERATOR_HELPER(OBJECT, ARRAY_LIKE_IS_ITERABLE), STEP_KEY;\n try {\n for (ITERATOR_HELPER.s(); !(STEP_KEY = ITERATOR_HELPER.n()).done;) BODY;\n } catch (err) {\n ITERATOR_HELPER.e(err);\n } finally {\n ITERATOR_HELPER.f();\n }\n `;\n\n const builder = skipIteratorClosing\n ? {\n build: buildForOfNoIteratorClosing,\n helper: \"createForOfIteratorHelperLoose\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n nodes as [t.ForStatement],\n }\n : {\n build: buildForOf,\n helper: \"createForOfIteratorHelper\",\n getContainer: (nodes: t.Statement[]): [t.ForStatement] =>\n (nodes[1] as t.TryStatement).block.body as [t.ForStatement],\n };\n\n function _ForOfStatementArray(path: NodePath) {\n const { node, scope } = path;\n\n const right = scope.generateUidIdentifierBasedOnNode(node.right, \"arr\");\n const iterationKey = scope.generateUidIdentifier(\"i\");\n\n const loop = buildForOfArray({\n BODY: node.body,\n KEY: iterationKey,\n NAME: right,\n ARR: node.right,\n }) as t.For;\n\n t.inherits(loop, node);\n\n const iterationValue = t.memberExpression(\n t.cloneNode(right),\n t.cloneNode(iterationKey),\n true,\n );\n\n let declar;\n const left = node.left;\n if (t.isVariableDeclaration(left)) {\n left.declarations[0].init = iterationValue;\n declar = left;\n } else {\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, iterationValue),\n );\n }\n\n loop.body = buildLoopBody(path, declar, loop.body);\n\n return loop;\n }\n\n return {\n name: \"transform-for-of\",\n visitor: {\n ForOfStatement(path, state) {\n const right = path.get(\"right\");\n if (\n right.isArrayExpression() ||\n (process.env.BABEL_8_BREAKING\n ? right.isGenericType(\"Array\")\n : right.isGenericType(\"Array\") ||\n t.isArrayTypeAnnotation(right.getTypeAnnotation()))\n ) {\n path.replaceWith(_ForOfStatementArray(path));\n return;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!state.availableHelper(builder.helper)) {\n // Babel <7.9.0 doesn't support this helper\n transformWithoutHelper(skipIteratorClosing, path, state);\n return;\n }\n }\n\n const { node, parent, scope } = path;\n const left = node.left;\n let declar;\n\n const stepKey = scope.generateUid(\"step\");\n const stepValue = t.memberExpression(\n t.identifier(stepKey),\n t.identifier(\"value\"),\n );\n\n if (t.isVariableDeclaration(left)) {\n // for (let i of test)\n declar = t.variableDeclaration(left.kind, [\n t.variableDeclarator(left.declarations[0].id, stepValue),\n ]);\n } else {\n // for (i of test), for ({ i } of test)\n declar = t.expressionStatement(\n t.assignmentExpression(\"=\", left, stepValue),\n );\n }\n\n const nodes = builder.build({\n CREATE_ITERATOR_HELPER: state.addHelper(builder.helper),\n ITERATOR_HELPER: scope.generateUidIdentifier(\"iterator\"),\n ARRAY_LIKE_IS_ITERABLE: arrayLikeIsIterable\n ? t.booleanLiteral(true)\n : null,\n STEP_KEY: t.identifier(stepKey),\n OBJECT: node.right,\n BODY: buildLoopBody(path, declar),\n });\n const container = builder.getContainer(nodes);\n\n t.inherits(container[0], node);\n t.inherits(container[0].body, node.body);\n\n if (t.isLabeledStatement(parent)) {\n // @ts-expect-error replacing node types\n container[0] = t.labeledStatement(parent.label, container[0]);\n\n path.parentPath.replaceWithMultiple(nodes);\n\n // The parent has been replaced, prevent Babel from traversing a detached path\n path.skip();\n } else {\n path.replaceWithMultiple(nodes);\n }\n },\n },\n };\n});\n","import { isRequired } from \"@babel/helper-compilation-targets\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport nameFunction from \"@babel/helper-function-name\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n const supportUnicodeId = !isRequired(\n \"transform-unicode-escapes\",\n api.targets(),\n );\n\n return {\n name: \"transform-function-name\",\n\n visitor: {\n FunctionExpression: {\n exit(path) {\n if (path.key !== \"value\" && !path.parentPath.isObjectProperty()) {\n const replacement = nameFunction(path);\n if (replacement) path.replaceWith(replacement);\n }\n },\n },\n\n ObjectProperty(path) {\n const value = path.get(\"value\");\n if (value.isFunction()) {\n const newNode = nameFunction(\n // @ts-expect-error Fixme: should check ArrowFunctionExpression\n value,\n false,\n supportUnicodeId,\n );\n if (newNode) value.replaceWith(newNode);\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-instanceof\",\n\n visitor: {\n BinaryExpression(path) {\n const { node } = path;\n if (node.operator === \"instanceof\") {\n const helper = this.addHelper(\"instanceof\");\n const isUnderHelper = path.findParent(path => {\n return (\n (path.isVariableDeclarator() && path.node.id === helper) ||\n (path.isFunctionDeclaration() &&\n path.node.id &&\n path.node.id.name === helper.name)\n );\n });\n\n if (isUnderHelper) {\n return;\n } else {\n path.replaceWith(\n t.callExpression(helper, [\n // @ts-expect-error node.left can be PrivateName only when node.operator is \"in\"\n node.left,\n node.right,\n ]),\n );\n }\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-jscript\",\n\n visitor: {\n FunctionExpression: {\n exit(path) {\n const { node } = path;\n if (!node.id) return;\n\n path.replaceWith(\n t.callExpression(\n t.functionExpression(\n null,\n [],\n t.blockStatement([\n // @ts-expect-error t.toStatement must return a FunctionDeclaration if node.id is defined\n t.toStatement(node),\n t.returnStatement(t.cloneNode(node.id)),\n ]),\n ),\n [],\n ),\n );\n },\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-literals\",\n\n visitor: {\n NumericLiteral({ node }) {\n // number octal like 0b10 or 0o70\n // @ts-expect-error Add node.extra typings\n if (node.extra && /^0[ob]/i.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n\n StringLiteral({ node }) {\n // unicode escape\n // @ts-expect-error Add node.extra typings\n if (node.extra && /\\\\[u]/gi.test(node.extra.raw)) {\n node.extra = undefined;\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-member-expression-literals\",\n\n visitor: {\n MemberExpression: {\n exit({ node }) {\n const prop = node.property;\n if (\n !node.computed &&\n t.isIdentifier(prop) &&\n !t.isValidES3Identifier(prop.name)\n ) {\n // foo.default -> foo[\"default\"]\n node.property = t.stringLiteral(prop.name);\n node.computed = true;\n }\n },\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n buildDynamicImport,\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildWrapper = template.statement(`\n define(MODULE_NAME, AMD_ARGUMENTS, function(IMPORT_NAMES) {\n })\n`);\n\nconst buildAnonymousWrapper = template.statement(`\n define([\"require\"], function(REQUIRE) {\n })\n`);\n\nfunction injectWrapper(\n path: NodePath,\n wrapper: t.ExpressionStatement,\n) {\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const amdFactoryCall = path\n .pushContainer(\"body\", wrapper)[0]\n .get(\"expression\") as NodePath;\n const amdFactoryCallArgs = amdFactoryCall.get(\"arguments\");\n const amdFactory = (\n amdFactoryCallArgs[\n amdFactoryCallArgs.length - 1\n ] as NodePath\n ).get(\"body\");\n amdFactory.pushContainer(\"directives\", directives);\n amdFactory.pushContainer(\"body\", body);\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\ntype State = {\n requireId?: t.Identifier;\n resolveId?: t.Identifier;\n rejectId?: t.Identifier;\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { allowTopLevelThis, strict, strictMode, importInterop, noInterop } =\n options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n return {\n name: \"transform-modules-amd\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"amd\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: State & PluginPass,\n path: NodePath,\n state: State,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !path.get(\"callee\").isImport()) return;\n\n let { requireId, resolveId, rejectId } = state;\n if (!requireId) {\n requireId = path.scope.generateUidIdentifier(\"require\");\n state.requireId = requireId;\n }\n if (!resolveId || !rejectId) {\n resolveId = path.scope.generateUidIdentifier(\"resolve\");\n rejectId = path.scope.generateUidIdentifier(\"reject\");\n state.resolveId = resolveId;\n state.rejectId = rejectId;\n }\n\n let result: t.Node = t.identifier(\"imported\");\n if (!noInterop) {\n result = wrapInterop(this.file.path, result, \"namespace\");\n }\n\n path.replaceWith(\n buildDynamicImport(\n path.node,\n false,\n false,\n specifier => template.expression.ast`\n new Promise((${resolveId}, ${rejectId}) =>\n ${requireId}(\n [${specifier}],\n imported => ${t.cloneNode(resolveId)}(${result}),\n ${t.cloneNode(rejectId)}\n )\n )\n `,\n ),\n );\n },\n Program: {\n exit(path, { requireId }) {\n if (!isModule(path)) {\n if (requireId) {\n injectWrapper(\n path,\n buildAnonymousWrapper({\n REQUIRE: t.cloneNode(requireId),\n }) as t.ExpressionStatement,\n );\n }\n return;\n }\n\n const amdArgs = [];\n const importNames = [];\n if (requireId) {\n amdArgs.push(t.stringLiteral(\"require\"));\n importNames.push(t.cloneNode(requireId));\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n enumerableModuleMeta,\n constantReexports,\n strict,\n strictMode,\n allowTopLevelThis,\n importInterop,\n noInterop,\n filename: this.file.opts.filename,\n },\n );\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n header.loc = metadata.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n injectWrapper(\n path,\n buildWrapper({\n MODULE_NAME: moduleName,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n IMPORT_NAMES: importNames,\n }) as t.ExpressionStatement,\n );\n },\n },\n },\n };\n});\n","// Heavily inspired by\n// https://github.com/airbnb/babel-plugin-dynamic-import-node/blob/master/src/utils.js\n\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t, template, type File } from \"@babel/core\";\nimport { buildDynamicImport } from \"@babel/helper-module-transforms\";\n\nconst requireNoInterop = (source: t.Expression) =>\n template.expression.ast`require(${source})`;\n\nconst requireInterop = (source: t.Expression, file: File) =>\n t.callExpression(file.addHelper(\"interopRequireWildcard\"), [\n requireNoInterop(source),\n ]);\n\nexport function transformDynamicImport(\n path: NodePath,\n noInterop: boolean,\n file: File,\n) {\n const buildRequire = noInterop ? requireNoInterop : requireInterop;\n\n path.replaceWith(\n buildDynamicImport(path.node, true, false, specifier =>\n buildRequire(specifier, file),\n ),\n );\n}\n","import { template, types as t } from \"@babel/core\";\nimport { isSideEffectImport } from \"@babel/helper-module-transforms\";\nimport type { CommonJSHook } from \"./hooks.ts\";\n\ntype Lazy = boolean | string[] | ((source: string) => boolean);\n\nexport const lazyImportsHook = (lazy: Lazy): CommonJSHook => ({\n name: `${PACKAGE_JSON.name}/lazy`,\n version: PACKAGE_JSON.version,\n getWrapperPayload(source, metadata) {\n if (isSideEffectImport(metadata) || metadata.reexportAll) {\n return null;\n }\n if (lazy === true) {\n // 'true' means that local relative files are eagerly loaded and\n // dependency modules are loaded lazily.\n return /\\./.test(source) ? null : \"lazy/function\";\n }\n if (Array.isArray(lazy)) {\n return lazy.indexOf(source) === -1 ? null : \"lazy/function\";\n }\n if (typeof lazy === \"function\") {\n return lazy(source) ? \"lazy/function\" : null;\n }\n },\n buildRequireWrapper(name, init, payload, referenced) {\n if (payload === \"lazy/function\") {\n if (!referenced) return false;\n return template.statement.ast`\n function ${name}() {\n const data = ${init};\n ${name} = function(){ return data; };\n return data;\n }\n `;\n }\n },\n wrapReference(ref, payload) {\n if (payload === \"lazy/function\") return t.callExpression(ref, []);\n },\n});\n","import type { types as t, File } from \"@babel/core\";\nimport type { isSideEffectImport } from \"@babel/helper-module-transforms\";\n\nconst commonJSHooksKey =\n \"@babel/plugin-transform-modules-commonjs/customWrapperPlugin\";\n\ntype SourceMetadata = Parameters[0];\n\n// A hook exposes a set of function that can customize how `require()` calls and\n// references to the imported bindings are handled. These functions can either\n// return a result, or return `null` to delegate to the next hook.\nexport interface CommonJSHook {\n name: string;\n version: string;\n wrapReference?(ref: t.Expression, payload: unknown): t.CallExpression | null;\n // Optionally wrap a `require` call. If this function returns `false`, the\n // `require` call is removed from the generated code.\n buildRequireWrapper?(\n name: string,\n init: t.Expression,\n payload: unknown,\n referenced: boolean,\n ): t.Statement | false | null;\n getWrapperPayload?(\n source: string,\n metadata: SourceMetadata,\n importNodes: t.Node[],\n ): string | null;\n}\n\nexport function defineCommonJSHook(file: File, hook: CommonJSHook) {\n let hooks = file.get(commonJSHooksKey);\n if (!hooks) file.set(commonJSHooksKey, (hooks = []));\n hooks.push(hook);\n}\n\nfunction findMap(arr: T[] | null, cb: (el: T) => U): U | null {\n if (arr) {\n for (const el of arr) {\n const res = cb(el);\n if (res != null) return res;\n }\n }\n}\n\nexport function makeInvokers(\n file: File,\n): Pick<\n CommonJSHook,\n \"wrapReference\" | \"getWrapperPayload\" | \"buildRequireWrapper\"\n> {\n const hooks: CommonJSHook[] | null = file.get(commonJSHooksKey);\n\n return {\n getWrapperPayload(...args) {\n return findMap(hooks, hook => hook.getWrapperPayload?.(...args));\n },\n wrapReference(...args) {\n return findMap(hooks, hook => hook.wrapReference?.(...args));\n },\n buildRequireWrapper(...args) {\n return findMap(hooks, hook => hook.buildRequireWrapper?.(...args));\n },\n };\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport simplifyAccess from \"@babel/helper-simple-access\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport type { Visitor, Scope, NodePath } from \"@babel/traverse\";\n\nimport { transformDynamicImport } from \"./dynamic-import.ts\";\nimport { lazyImportsHook } from \"./lazy.ts\";\n\nimport { defineCommonJSHook, makeInvokers } from \"./hooks.ts\";\nexport { defineCommonJSHook };\n\nexport interface Options extends PluginOptions {\n allowCommonJSExports?: boolean;\n allowTopLevelThis?: boolean;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n lazy?: RewriteModuleStatementsAndPrepareHeaderOptions[\"lazy\"];\n loose?: boolean;\n mjsStrictNamespace?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n strictNamespace?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n // 'true' for imports to strictly have .default, instead of having\n // destructuring-like behavior for their properties. This matches the behavior\n // of the initial Node.js (v12) behavior when importing a CommonJS without\n // the __esMoule property.\n // .strictNamespace is for non-mjs files, mjsStrictNamespace if for mjs files.\n strictNamespace = false,\n mjsStrictNamespace = strictNamespace,\n\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n lazy = false,\n // Defaulting to 'true' for now. May change before 7.x major.\n allowCommonJSExports = true,\n loose = false,\n } = options;\n\n const constantReexports = api.assumption(\"constantReexports\") ?? loose;\n const enumerableModuleMeta = api.assumption(\"enumerableModuleMeta\") ?? loose;\n const noIncompleteNsImportDetection =\n api.assumption(\"noIncompleteNsImportDetection\") ?? false;\n\n if (\n typeof lazy !== \"boolean\" &&\n typeof lazy !== \"function\" &&\n (!Array.isArray(lazy) || !lazy.every(item => typeof item === \"string\"))\n ) {\n throw new Error(`.lazy must be a boolean, array of strings, or a function`);\n }\n\n if (typeof strictNamespace !== \"boolean\") {\n throw new Error(`.strictNamespace must be a boolean, or undefined`);\n }\n if (typeof mjsStrictNamespace !== \"boolean\") {\n throw new Error(`.mjsStrictNamespace must be a boolean, or undefined`);\n }\n\n const getAssertion = (localName: string) => template.expression.ast`\n (function(){\n throw new Error(\n \"The CommonJS '\" + \"${localName}\" + \"' variable is not available in ES6 modules.\" +\n \"Consider setting setting sourceType:script or sourceType:unambiguous in your \" +\n \"Babel config for this file.\");\n })()\n `;\n\n const moduleExportsVisitor: Visitor<{ scope: Scope }> = {\n ReferencedIdentifier(path) {\n const localName = path.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n if (\n // redeclared in this scope\n rootBinding !== localBinding ||\n (path.parentPath.isObjectProperty({ value: path.node }) &&\n path.parentPath.parentPath.isObjectPattern()) ||\n path.parentPath.isAssignmentExpression({ left: path.node }) ||\n path.isAssignmentExpression({ left: path.node })\n ) {\n return;\n }\n\n path.replaceWith(getAssertion(localName));\n },\n\n UpdateExpression(path) {\n const arg = path.get(\"argument\");\n if (!arg.isIdentifier()) return;\n const localName = arg.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n path.replaceWith(\n t.assignmentExpression(\n path.node.operator[0] + \"=\",\n arg.node,\n getAssertion(localName),\n ),\n );\n },\n\n AssignmentExpression(path) {\n const left = path.get(\"left\");\n if (left.isIdentifier()) {\n const localName = left.node.name;\n if (localName !== \"module\" && localName !== \"exports\") return;\n\n const localBinding = path.scope.getBinding(localName);\n const rootBinding = this.scope.getBinding(localName);\n\n // redeclared in this scope\n if (rootBinding !== localBinding) return;\n\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n } else if (left.isPattern()) {\n const ids = left.getOuterBindingIdentifiers();\n const localName = Object.keys(ids).filter(localName => {\n if (localName !== \"module\" && localName !== \"exports\") return false;\n\n return (\n this.scope.getBinding(localName) ===\n path.scope.getBinding(localName)\n );\n })[0];\n\n if (localName) {\n const right = path.get(\"right\");\n right.replaceWith(\n t.sequenceExpression([right.node, getAssertion(localName)]),\n );\n }\n }\n },\n };\n\n return {\n name: \"transform-modules-commonjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"commonjs\");\n\n if (lazy) defineCommonJSHook(this.file, lazyImportsHook(lazy));\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass,\n path: NodePath,\n ) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) return;\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n\n let { scope } = path;\n do {\n scope.rename(\"require\");\n } while ((scope = scope.parent));\n\n transformDynamicImport(path, noInterop, this.file);\n },\n\n Program: {\n exit(path, state) {\n if (!isModule(path)) return;\n\n // Rename the bindings auto-injected into the scope so there is no\n // risk of conflict between the bindings.\n path.scope.rename(\"exports\");\n path.scope.rename(\"module\");\n path.scope.rename(\"require\");\n path.scope.rename(\"__filename\");\n path.scope.rename(\"__dirname\");\n\n // Rewrite references to 'module' and 'exports' to throw exceptions.\n // These objects are specific to CommonJS and are not available in\n // real ES6 implementations.\n if (!allowCommonJSExports) {\n if (process.env.BABEL_8_BREAKING) {\n simplifyAccess(path, new Set([\"module\", \"exports\"]));\n } else {\n // @ts-ignore(Babel 7 vs Babel 8) The third param has been removed in Babel 8.\n simplifyAccess(path, new Set([\"module\", \"exports\"]), false);\n }\n path.traverse(moduleExportsVisitor, {\n scope: path.scope,\n });\n }\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n const hooks = makeInvokers(this.file);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n exportName: \"exports\",\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n wrapReference: hooks.wrapReference,\n getWrapperPayload: hooks.getWrapperPayload,\n esNamespaceOnly:\n typeof state.filename === \"string\" &&\n /\\.mjs$/.test(state.filename)\n ? mjsStrictNamespace\n : strictNamespace,\n noIncompleteNsImportDetection,\n filename: this.file.opts.filename,\n },\n );\n\n for (const [source, metadata] of meta.source) {\n const loadExpr = t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]);\n\n let header: t.Statement;\n if (isSideEffectImport(metadata)) {\n if (lazy && metadata.wrap === \"function\") {\n throw new Error(\"Assertion failure\");\n }\n\n header = t.expressionStatement(loadExpr);\n } else {\n const init =\n wrapInterop(path, loadExpr, metadata.interop) || loadExpr;\n\n if (metadata.wrap) {\n const res = hooks.buildRequireWrapper(\n metadata.name,\n init,\n metadata.wrap,\n metadata.referenced,\n );\n if (res === false) continue;\n else header = res;\n }\n header ??= template.statement.ast`\n var ${metadata.name} = ${init};\n `;\n }\n header.loc = metadata.loc;\n\n headers.push(header);\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n hooks.wrapReference,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n path.get(\"body\").forEach(path => {\n if (headers.indexOf(path.node) === -1) return;\n if (path.isVariableDeclaration()) {\n path.scope.registerDeclaration(path);\n }\n });\n },\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport hoistVariables from \"@babel/helper-hoist-variables\";\nimport { template, types as t, type PluginPass } from \"@babel/core\";\nimport {\n buildDynamicImport,\n getModuleName,\n rewriteThis,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { isIdentifierName } from \"@babel/helper-validator-identifier\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\n\nconst buildTemplate = template.statement(`\n SYSTEM_REGISTER(MODULE_NAME, SOURCES, function (EXPORT_IDENTIFIER, CONTEXT_IDENTIFIER) {\n \"use strict\";\n BEFORE_BODY;\n return {\n setters: SETTERS,\n execute: EXECUTE,\n };\n });\n`);\n\nconst buildExportAll = template.statement(`\n for (var KEY in TARGET) {\n if (KEY !== \"default\" && KEY !== \"__esModule\") EXPORT_OBJ[KEY] = TARGET[KEY];\n }\n`);\n\nconst MISSING_PLUGIN_WARNING = `\\\nWARNING: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8 will\n no longer transform import() without using that plugin.\n`;\n\nconst MISSING_PLUGIN_ERROR = `\\\nERROR: Dynamic import() transformation must be enabled using the\n @babel/plugin-transform-dynamic-import plugin. Babel 8\n no longer transforms import() without using that plugin.\n`;\n\n//todo: use getExportSpecifierName in `helper-module-transforms` when this library is refactored to NodePath usage.\n\nexport function getExportSpecifierName(\n node: t.Node,\n stringSpecifiers: Set,\n): string {\n if (node.type === \"Identifier\") {\n return node.name;\n } else if (node.type === \"StringLiteral\") {\n const stringValue = node.value;\n // add specifier value to `stringSpecifiers` only when it can not be converted to an identifier name\n // i.e In `import { \"foo\" as bar }`\n // we do not consider `\"foo\"` to be a `stringSpecifier` because we can treat it as\n // `import { foo as bar }`\n // This helps minimize the size of `stringSpecifiers` and reduce overhead of checking valid identifier names\n // when building transpiled code from metadata\n if (!isIdentifierName(stringValue)) {\n stringSpecifiers.add(stringValue);\n }\n return stringValue;\n } else {\n throw new Error(\n `Expected export specifier to be either Identifier or StringLiteral, got ${node.type}`,\n );\n }\n}\n\ntype PluginState = {\n contextIdent: string;\n // List of names that should only be printed as string literals.\n // i.e. `import { \"any unicode\" as foo } from \"some-module\"`\n // `stringSpecifiers` is Set(1) [\"any unicode\"]\n // In most cases `stringSpecifiers` is an empty Set\n stringSpecifiers: Set;\n};\n\ntype ModuleMetadata = {\n key: string;\n imports: any[];\n exports: any[];\n};\n\nfunction constructExportCall(\n path: NodePath,\n exportIdent: t.Identifier,\n exportNames: string[],\n exportValues: t.Expression[],\n exportStarTarget: t.Identifier | null,\n stringSpecifiers: Set,\n) {\n const statements = [];\n if (!exportStarTarget) {\n if (exportNames.length === 1) {\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [\n t.stringLiteral(exportNames[0]),\n exportValues[0],\n ]),\n ),\n );\n } else {\n const objectProperties = [];\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n objectProperties.push(\n t.objectProperty(\n stringSpecifiers.has(exportName)\n ? t.stringLiteral(exportName)\n : t.identifier(exportName),\n exportValue,\n ),\n );\n }\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.objectExpression(objectProperties)]),\n ),\n );\n }\n } else {\n const exportObj = path.scope.generateUid(\"exportObj\");\n\n statements.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(t.identifier(exportObj), t.objectExpression([])),\n ]),\n );\n\n statements.push(\n buildExportAll({\n KEY: path.scope.generateUidIdentifier(\"key\"),\n EXPORT_OBJ: t.identifier(exportObj),\n TARGET: exportStarTarget,\n }),\n );\n\n for (let i = 0; i < exportNames.length; i++) {\n const exportName = exportNames[i];\n const exportValue = exportValues[i];\n\n statements.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.memberExpression(\n t.identifier(exportObj),\n t.identifier(exportName),\n ),\n exportValue,\n ),\n ),\n );\n }\n\n statements.push(\n t.expressionStatement(\n t.callExpression(exportIdent, [t.identifier(exportObj)]),\n ),\n );\n }\n return statements;\n}\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n systemGlobal?: string;\n}\n\ntype ReassignmentVisitorState = {\n scope: Scope;\n exports: any;\n buildCall: (name: string, value: t.Expression) => t.ExpressionStatement;\n};\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { systemGlobal = \"System\", allowTopLevelThis = false } = options;\n const reassignmentVisited = new WeakSet();\n\n const reassignmentVisitor: Visitor = {\n \"AssignmentExpression|UpdateExpression\"(\n path: NodePath,\n ) {\n if (reassignmentVisited.has(path.node)) return;\n reassignmentVisited.add(path.node);\n\n const arg = path.isAssignmentExpression()\n ? path.get(\"left\")\n : path.get(\"argument\");\n\n if (arg.isObjectPattern() || arg.isArrayPattern()) {\n const exprs: t.SequenceExpression[\"expressions\"] = [path.node];\n for (const name of Object.keys(arg.getBindingIdentifiers())) {\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) {\n return;\n }\n const exportedNames = this.exports[name];\n if (!exportedNames) continue;\n for (const exportedName of exportedNames) {\n exprs.push(\n this.buildCall(exportedName, t.identifier(name)).expression,\n );\n }\n }\n path.replaceWith(t.sequenceExpression(exprs));\n return;\n }\n\n if (!arg.isIdentifier()) return;\n\n const name = arg.node.name;\n\n // redeclared in this scope\n if (this.scope.getBinding(name) !== path.scope.getBinding(name)) return;\n\n const exportedNames = this.exports[name];\n if (!exportedNames) return;\n\n let node: t.Expression = path.node;\n\n // if it is a non-prefix update expression (x++ etc)\n // then we must replace with the expression (_export('x', x + 1), x++)\n // in order to ensure the same update expression value\n const isPostUpdateExpression = t.isUpdateExpression(node, {\n prefix: false,\n });\n if (isPostUpdateExpression) {\n node = t.binaryExpression(\n // @ts-expect-error The operator of a post-update expression must be \"++\" | \"--\"\n node.operator[0],\n t.unaryExpression(\n \"+\",\n t.cloneNode(\n // @ts-expect-error node is UpdateExpression\n node.argument,\n ),\n ),\n t.numericLiteral(1),\n );\n }\n\n for (const exportedName of exportedNames) {\n node = this.buildCall(exportedName, node).expression;\n }\n\n if (isPostUpdateExpression) {\n node = t.sequenceExpression([node, path.node]);\n }\n\n path.replaceWith(node);\n },\n };\n\n return {\n name: \"transform-modules-systemjs\",\n\n pre() {\n this.file.set(\"@babel/plugin-transform-modules-*\", \"systemjs\");\n },\n\n visitor: {\n [\"CallExpression\" +\n (api.types.importExpression ? \"|ImportExpression\" : \"\")](\n this: PluginPass & PluginState,\n path: NodePath,\n state: PluginState,\n ) {\n if (path.isCallExpression() && !t.isImport(path.node.callee)) return;\n if (path.isCallExpression()) {\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(MISSING_PLUGIN_ERROR);\n } else {\n console.warn(MISSING_PLUGIN_WARNING);\n }\n }\n } else {\n // when createImportExpressions is true, we require the dynamic import transform\n if (!this.file.has(\"@babel/plugin-proposal-dynamic-import\")) {\n throw new Error(MISSING_PLUGIN_ERROR);\n }\n }\n path.replaceWith(\n buildDynamicImport(path.node, false, true, specifier =>\n t.callExpression(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"import\"),\n ),\n [specifier],\n ),\n ),\n );\n },\n\n MetaProperty(path, state: PluginState) {\n if (\n path.node.meta.name === \"import\" &&\n path.node.property.name === \"meta\"\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"meta\"),\n ),\n );\n }\n },\n\n ReferencedIdentifier(path, state) {\n if (\n path.node.name === \"__moduleName\" &&\n !path.scope.hasBinding(\"__moduleName\")\n ) {\n path.replaceWith(\n t.memberExpression(\n t.identifier(state.contextIdent),\n t.identifier(\"id\"),\n ),\n );\n }\n },\n\n Program: {\n enter(path, state) {\n state.contextIdent = path.scope.generateUid(\"context\");\n state.stringSpecifiers = new Set();\n if (!allowTopLevelThis) {\n rewriteThis(path);\n }\n },\n exit(path, state) {\n const scope = path.scope;\n const exportIdent = scope.generateUid(\"export\");\n const { contextIdent, stringSpecifiers } = state;\n\n const exportMap: Record = Object.create(null);\n const modules: ModuleMetadata[] = [];\n\n const beforeBody = [];\n const setters: t.Expression[] = [];\n const sources: t.StringLiteral[] = [];\n const variableIds = [];\n const removedPaths = [];\n\n function addExportName(key: string, val: string) {\n exportMap[key] = exportMap[key] || [];\n exportMap[key].push(val);\n }\n\n function pushModule(\n source: string,\n key: \"imports\" | \"exports\",\n specifiers: t.ModuleSpecifier[] | t.ExportAllDeclaration,\n ) {\n let module: ModuleMetadata;\n modules.forEach(function (m) {\n if (m.key === source) {\n module = m;\n }\n });\n if (!module) {\n modules.push(\n (module = { key: source, imports: [], exports: [] }),\n );\n }\n module[key] = module[key].concat(specifiers);\n }\n\n function buildExportCall(name: string, val: t.Expression) {\n return t.expressionStatement(\n t.callExpression(t.identifier(exportIdent), [\n t.stringLiteral(name),\n val,\n ]),\n );\n }\n\n const exportNames = [];\n const exportValues: t.Expression[] = [];\n\n const body = path.get(\"body\");\n\n for (const path of body) {\n if (path.isFunctionDeclaration()) {\n beforeBody.push(path.node);\n removedPaths.push(path);\n } else if (path.isClassDeclaration()) {\n variableIds.push(t.cloneNode(path.node.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(path.node.id),\n t.toExpression(path.node),\n ),\n ),\n );\n } else if (path.isVariableDeclaration()) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n path.node.kind = \"var\";\n } else if (path.isImportDeclaration()) {\n const source = path.node.source.value;\n pushModule(source, \"imports\", path.node.specifiers);\n for (const name of Object.keys(path.getBindingIdentifiers())) {\n scope.removeBinding(name);\n variableIds.push(t.identifier(name));\n }\n path.remove();\n } else if (path.isExportAllDeclaration()) {\n pushModule(path.node.source.value, \"exports\", path.node);\n path.remove();\n } else if (path.isExportDefaultDeclaration()) {\n const declar = path.node.declaration;\n if (t.isClassDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n exportNames.push(\"default\");\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(id),\n t.toExpression(declar),\n ),\n ),\n );\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n removedPaths.push(path);\n }\n } else if (t.isFunctionDeclaration(declar)) {\n const id = declar.id;\n if (id) {\n beforeBody.push(declar);\n exportNames.push(\"default\");\n exportValues.push(t.cloneNode(id));\n addExportName(id.name, \"default\");\n } else {\n exportNames.push(\"default\");\n exportValues.push(t.toExpression(declar));\n }\n removedPaths.push(path);\n } else {\n // @ts-expect-error TSDeclareFunction is not expected here\n path.replaceWith(buildExportCall(\"default\", declar));\n }\n } else if (path.isExportNamedDeclaration()) {\n const declar = path.node.declaration;\n\n if (declar) {\n path.replaceWith(declar);\n\n if (t.isFunction(declar)) {\n const name = declar.id.name;\n addExportName(name, name);\n beforeBody.push(declar);\n exportNames.push(name);\n exportValues.push(t.cloneNode(declar.id));\n removedPaths.push(path);\n } else if (t.isClass(declar)) {\n const name = declar.id.name;\n exportNames.push(name);\n exportValues.push(scope.buildUndefinedNode());\n variableIds.push(t.cloneNode(declar.id));\n path.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.cloneNode(declar.id),\n t.toExpression(declar),\n ),\n ),\n );\n addExportName(name, name);\n } else {\n if (t.isVariableDeclaration(declar)) {\n // Convert top-level variable declarations to \"var\",\n // because they must be hoisted\n declar.kind = \"var\";\n }\n for (const name of Object.keys(\n t.getBindingIdentifiers(declar),\n )) {\n addExportName(name, name);\n }\n }\n } else {\n const specifiers = path.node.specifiers;\n if (specifiers?.length) {\n if (path.node.source) {\n pushModule(path.node.source.value, \"exports\", specifiers);\n path.remove();\n } else {\n const nodes = [];\n\n for (const specifier of specifiers) {\n // @ts-expect-error This isn't an \"export ... from\" declaration\n // because path.node.source is falsy, so the local specifier exists.\n const { local, exported } = specifier;\n\n const binding = scope.getBinding(local.name);\n const exportedName = getExportSpecifierName(\n exported,\n stringSpecifiers,\n );\n // hoisted function export\n if (\n binding &&\n t.isFunctionDeclaration(binding.path.node)\n ) {\n exportNames.push(exportedName);\n exportValues.push(t.cloneNode(local));\n }\n // only globals also exported this way\n else if (!binding) {\n nodes.push(buildExportCall(exportedName, local));\n }\n addExportName(local.name, exportedName);\n }\n\n path.replaceWithMultiple(nodes);\n }\n } else {\n path.remove();\n }\n }\n }\n }\n\n modules.forEach(function (specifiers) {\n const setterBody = [];\n const target = scope.generateUid(specifiers.key);\n\n for (let specifier of specifiers.imports) {\n if (t.isImportNamespaceSpecifier(specifier)) {\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.identifier(target),\n ),\n ),\n );\n } else if (t.isImportDefaultSpecifier(specifier)) {\n specifier = t.importSpecifier(\n specifier.local,\n t.identifier(\"default\"),\n );\n }\n\n if (t.isImportSpecifier(specifier)) {\n const { imported } = specifier;\n setterBody.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n specifier.local,\n t.memberExpression(\n t.identifier(target),\n specifier.imported,\n /* computed */ imported.type === \"StringLiteral\",\n ),\n ),\n ),\n );\n }\n }\n\n if (specifiers.exports.length) {\n const exportNames = [];\n const exportValues = [];\n let hasExportStar = false;\n\n for (const node of specifiers.exports) {\n if (t.isExportAllDeclaration(node)) {\n hasExportStar = true;\n } else if (t.isExportSpecifier(node)) {\n const exportedName = getExportSpecifierName(\n node.exported,\n stringSpecifiers,\n );\n exportNames.push(exportedName);\n exportValues.push(\n t.memberExpression(\n t.identifier(target),\n node.local,\n t.isStringLiteral(node.local),\n ),\n );\n } else {\n // todo\n }\n }\n\n setterBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n hasExportStar ? t.identifier(target) : null,\n stringSpecifiers,\n ),\n );\n }\n\n sources.push(t.stringLiteral(specifiers.key));\n setters.push(\n t.functionExpression(\n null,\n [t.identifier(target)],\n t.blockStatement(setterBody),\n ),\n );\n });\n\n let moduleName = getModuleName(this.file.opts, options);\n // @ts-expect-error todo(flow->ts): do not reuse variables\n if (moduleName) moduleName = t.stringLiteral(moduleName);\n\n hoistVariables(path, (id, name, hasInit) => {\n variableIds.push(id);\n if (!hasInit && name in exportMap) {\n for (const exported of exportMap[name]) {\n exportNames.push(exported);\n exportValues.push(scope.buildUndefinedNode());\n }\n }\n });\n\n if (variableIds.length) {\n beforeBody.unshift(\n t.variableDeclaration(\n \"var\",\n variableIds.map(id => t.variableDeclarator(id)),\n ),\n );\n }\n\n if (exportNames.length) {\n beforeBody.push(\n ...constructExportCall(\n path,\n t.identifier(exportIdent),\n exportNames,\n exportValues,\n null,\n stringSpecifiers,\n ),\n );\n }\n\n path.traverse(reassignmentVisitor, {\n exports: exportMap,\n buildCall: buildExportCall,\n scope,\n });\n\n for (const path of removedPaths) {\n path.remove();\n }\n\n let hasTLA = false;\n path.traverse({\n AwaitExpression(path) {\n hasTLA = true;\n path.stop();\n },\n Function(path) {\n path.skip();\n },\n // @ts-expect-error - todo: add noScope to type definitions\n noScope: true,\n });\n\n path.node.body = [\n buildTemplate({\n SYSTEM_REGISTER: t.memberExpression(\n t.identifier(systemGlobal),\n t.identifier(\"register\"),\n ),\n BEFORE_BODY: beforeBody,\n MODULE_NAME: moduleName,\n SETTERS: t.arrayExpression(setters),\n EXECUTE: t.functionExpression(\n null,\n [],\n t.blockStatement(path.node.body),\n false,\n hasTLA,\n ),\n SOURCES: t.arrayExpression(sources),\n EXPORT_IDENTIFIER: t.identifier(exportIdent),\n CONTEXT_IDENTIFIER: t.identifier(contextIdent),\n }),\n ];\n path.requeue(path.get(\"body.0\"));\n },\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { basename, extname } from \"path\";\nimport {\n isModule,\n rewriteModuleStatementsAndPrepareHeader,\n type RewriteModuleStatementsAndPrepareHeaderOptions,\n hasExports,\n isSideEffectImport,\n buildNamespaceInitStatements,\n ensureStatementsHoisted,\n wrapInterop,\n getModuleName,\n} from \"@babel/helper-module-transforms\";\nimport type { PluginOptions } from \"@babel/helper-module-transforms\";\nimport { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nconst buildPrerequisiteAssignment = template(`\n GLOBAL_REFERENCE = GLOBAL_REFERENCE || {}\n`);\n// Note: we avoid comparing typeof results with \"object\" or \"symbol\" otherwise\n// they will be processed by `transform-typeof-symbol`, which in return could\n// cause typeof helper used before declaration\nconst buildWrapper = template(`\n (function (global, factory) {\n if (typeof define === \"function\" && define.amd) {\n define(MODULE_NAME, AMD_ARGUMENTS, factory);\n } else if (typeof exports !== \"undefined\") {\n factory(COMMONJS_ARGUMENTS);\n } else {\n var mod = { exports: {} };\n factory(BROWSER_ARGUMENTS);\n\n GLOBAL_TO_ASSIGN;\n }\n })(\n typeof globalThis !== \"undefined\" ? globalThis\n : typeof self !== \"undefined\" ? self\n : this,\n function(IMPORT_NAMES) {\n })\n`);\n\nexport interface Options extends PluginOptions {\n allowTopLevelThis?: boolean;\n exactGlobals?: boolean;\n globals?: Record;\n importInterop?: RewriteModuleStatementsAndPrepareHeaderOptions[\"importInterop\"];\n loose?: boolean;\n noInterop?: boolean;\n strict?: boolean;\n strictMode?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n globals,\n exactGlobals,\n allowTopLevelThis,\n strict,\n strictMode,\n noInterop,\n importInterop,\n } = options;\n\n const constantReexports =\n api.assumption(\"constantReexports\") ?? options.loose;\n const enumerableModuleMeta =\n api.assumption(\"enumerableModuleMeta\") ?? options.loose;\n\n /**\n * Build the assignment statements that initialize the UMD global.\n */\n function buildBrowserInit(\n browserGlobals: Record,\n exactGlobals: boolean,\n filename: string,\n moduleName: t.StringLiteral | void,\n ) {\n const moduleNameOrBasename = moduleName\n ? moduleName.value\n : basename(filename, extname(filename));\n let globalToAssign = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(moduleNameOrBasename)),\n );\n let initAssignments = [];\n\n if (exactGlobals) {\n const globalName = browserGlobals[moduleNameOrBasename];\n\n if (globalName) {\n initAssignments = [];\n\n const members = globalName.split(\".\");\n globalToAssign = members.slice(1).reduce(\n (accum, curr) => {\n initAssignments.push(\n buildPrerequisiteAssignment({\n GLOBAL_REFERENCE: t.cloneNode(accum),\n }),\n );\n return t.memberExpression(accum, t.identifier(curr));\n },\n t.memberExpression(t.identifier(\"global\"), t.identifier(members[0])),\n );\n }\n }\n\n initAssignments.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n globalToAssign,\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n ),\n ),\n );\n\n return initAssignments;\n }\n\n /**\n * Build the member expression that reads from a global for a given source.\n */\n function buildBrowserArg(\n browserGlobals: Record,\n exactGlobals: boolean,\n source: string,\n ) {\n let memberExpression: t.MemberExpression;\n if (exactGlobals) {\n const globalRef = browserGlobals[source];\n if (globalRef) {\n memberExpression = globalRef\n .split(\".\")\n .reduce(\n (accum: t.Identifier | t.MemberExpression, curr) =>\n t.memberExpression(accum, t.identifier(curr)),\n t.identifier(\"global\"),\n ) as t.MemberExpression;\n } else {\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(source)),\n );\n }\n } else {\n const requireName = basename(source, extname(source));\n const globalName = browserGlobals[requireName] || requireName;\n memberExpression = t.memberExpression(\n t.identifier(\"global\"),\n t.identifier(t.toIdentifier(globalName)),\n );\n }\n return memberExpression;\n }\n\n return {\n name: \"transform-modules-umd\",\n\n visitor: {\n Program: {\n exit(path) {\n if (!isModule(path)) return;\n\n const browserGlobals = globals || {};\n\n const moduleName = getModuleName(this.file.opts, options);\n let moduleNameLiteral: void | t.StringLiteral;\n if (moduleName) moduleNameLiteral = t.stringLiteral(moduleName);\n\n const { meta, headers } = rewriteModuleStatementsAndPrepareHeader(\n path,\n {\n constantReexports,\n enumerableModuleMeta,\n strict,\n strictMode,\n allowTopLevelThis,\n noInterop,\n importInterop,\n filename: this.file.opts.filename,\n },\n );\n\n const amdArgs = [];\n const commonjsArgs = [];\n const browserArgs = [];\n const importNames = [];\n\n if (hasExports(meta)) {\n amdArgs.push(t.stringLiteral(\"exports\"));\n commonjsArgs.push(t.identifier(\"exports\"));\n browserArgs.push(\n t.memberExpression(t.identifier(\"mod\"), t.identifier(\"exports\")),\n );\n importNames.push(t.identifier(meta.exportName));\n }\n\n for (const [source, metadata] of meta.source) {\n amdArgs.push(t.stringLiteral(source));\n commonjsArgs.push(\n t.callExpression(t.identifier(\"require\"), [\n t.stringLiteral(source),\n ]),\n );\n browserArgs.push(\n buildBrowserArg(browserGlobals, exactGlobals, source),\n );\n importNames.push(t.identifier(metadata.name));\n\n if (!isSideEffectImport(metadata)) {\n const interop = wrapInterop(\n path,\n t.identifier(metadata.name),\n metadata.interop,\n );\n if (interop) {\n const header = t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n t.identifier(metadata.name),\n interop,\n ),\n );\n // @ts-expect-error todo(flow->ts)\n header.loc = meta.loc;\n headers.push(header);\n }\n }\n\n headers.push(\n ...buildNamespaceInitStatements(\n meta,\n metadata,\n constantReexports,\n ),\n );\n }\n\n ensureStatementsHoisted(headers);\n path.unshiftContainer(\"body\", headers);\n\n const { body, directives } = path.node;\n path.node.directives = [];\n path.node.body = [];\n const umdWrapper = path.pushContainer(\"body\", [\n buildWrapper({\n //todo: buildWrapper does not handle void moduleNameLiteral\n MODULE_NAME: moduleNameLiteral,\n\n AMD_ARGUMENTS: t.arrayExpression(amdArgs),\n COMMONJS_ARGUMENTS: commonjsArgs,\n BROWSER_ARGUMENTS: browserArgs,\n IMPORT_NAMES: importNames,\n\n GLOBAL_TO_ASSIGN: buildBrowserInit(\n browserGlobals,\n exactGlobals,\n this.filename || \"unknown\",\n moduleNameLiteral,\n ),\n }) as t.Statement,\n ])[0] as NodePath;\n const umdFactory = (\n umdWrapper.get(\"expression.arguments\")[1] as NodePath\n ).get(\"body\") as NodePath;\n umdFactory.pushContainer(\"directives\", directives);\n umdFactory.pushContainer(\"body\", body);\n },\n },\n },\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport interface Options {\n runtime?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n const { runtime } = options;\n if (runtime !== undefined && typeof runtime !== \"boolean\") {\n throw new Error(\"The 'runtime' option must be boolean\");\n }\n\n return createRegExpFeaturePlugin({\n name: \"transform-named-capturing-groups-regex\",\n feature: \"namedCaptureGroups\",\n options: { runtime },\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-new-target\",\n\n visitor: {\n MetaProperty(path) {\n const meta = path.get(\"meta\");\n const property = path.get(\"property\");\n const { scope } = path;\n\n if (\n meta.isIdentifier({ name: \"new\" }) &&\n property.isIdentifier({ name: \"target\" })\n ) {\n const func = path.findParent(path => {\n if (path.isClass()) return true;\n if (path.isFunction() && !path.isArrowFunctionExpression()) {\n if (path.isClassMethod({ kind: \"constructor\" })) {\n return false;\n }\n\n return true;\n }\n return false;\n }) as NodePath<\n | t.FunctionDeclaration\n | t.FunctionExpression\n | t.Class\n | t.ClassMethod\n | t.ClassPrivateMethod\n >;\n\n if (!func) {\n throw path.buildCodeFrameError(\n \"new.target must be under a (non-arrow) function or a class.\",\n );\n }\n\n const { node } = func;\n if (t.isMethod(node)) {\n path.replaceWith(scope.buildUndefinedNode());\n return;\n }\n\n const constructor = t.memberExpression(\n t.thisExpression(),\n t.identifier(\"constructor\"),\n );\n\n if (func.isClass()) {\n path.replaceWith(constructor);\n return;\n }\n\n if (!node.id) {\n node.id = scope.generateUidIdentifier(\"target\");\n } else {\n // packages/babel-helper-create-class-features-plugin/src/fields.ts#L192 unshadow\n let scope = path.scope;\n const name = node.id.name;\n while (scope !== func.parentPath.scope) {\n if (\n scope.hasOwnBinding(name) &&\n !scope.bindingIdentifierEquals(name, node.id)\n ) {\n scope.rename(name);\n }\n scope = scope.parent;\n }\n }\n\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\n \"instanceof\",\n t.thisExpression(),\n t.cloneNode(node.id),\n ),\n constructor,\n scope.buildUndefinedNode(),\n ),\n );\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-object-assign\",\n\n visitor: {\n CallExpression: function (path, file) {\n if (path.get(\"callee\").matchesPattern(\"Object.assign\")) {\n path.node.callee = file.addHelper(\"extends\");\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport ReplaceSupers from \"@babel/helper-replace-supers\";\nimport { types as t, type File } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nfunction replacePropertySuper(\n path: NodePath,\n getObjectRef: () => t.Identifier,\n file: File,\n) {\n // @ts-expect-error todo(flow->ts):\n const replaceSupers = new ReplaceSupers({\n getObjectRef: getObjectRef,\n methodPath: path,\n file: file,\n });\n\n replaceSupers.replace();\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n const newLets = new Set<{\n scopePath: NodePath;\n id: t.Identifier;\n }>();\n\n return {\n name: \"transform-object-super\",\n\n visitor: {\n Loop: {\n exit(path) {\n newLets.forEach(v => {\n if (v.scopePath === path) {\n path.scope.push({\n id: v.id,\n kind: \"let\",\n });\n path.scope.crawl();\n path.requeue();\n newLets.delete(v);\n }\n });\n },\n },\n ObjectExpression(path, state) {\n let objectRef: t.Identifier;\n const getObjectRef = () =>\n (objectRef = objectRef || path.scope.generateUidIdentifier(\"obj\"));\n\n path.get(\"properties\").forEach(propPath => {\n if (!propPath.isMethod()) return;\n\n replacePropertySuper(propPath, getObjectRef, state.file);\n });\n\n if (objectRef) {\n const scopePath = path.findParent(\n p => p.isFunction() || p.isProgram() || p.isLoop(),\n );\n const useLet = scopePath.isLoop();\n // For transform-block-scoping\n if (useLet) {\n newLets.add({ scopePath, id: t.cloneNode(objectRef) });\n } else {\n path.scope.push({\n id: t.cloneNode(objectRef),\n kind: \"var\",\n });\n }\n\n path.replaceWith(\n t.assignmentExpression(\"=\", t.cloneNode(objectRef), path.node),\n );\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-object-set-prototype-of-to-assign\",\n\n visitor: {\n CallExpression(path, file) {\n if (path.get(\"callee\").matchesPattern(\"Object.setPrototypeOf\")) {\n path.node.callee = file.addHelper(\"defaults\");\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-property-literals\",\n\n visitor: {\n ObjectProperty: {\n exit({ node }) {\n const key = node.key;\n if (\n !node.computed &&\n t.isIdentifier(key) &&\n !t.isValidES3Identifier(key.name)\n ) {\n // default: \"bar\" -> \"default\": \"bar\"\n node.key = t.stringLiteral(key.name);\n }\n },\n },\n },\n };\n});\n","import { types as t } from \"@babel/core\";\n\ntype DefineMap = {\n _inherits: t.Node[];\n _key: t.Expression;\n get?: t.Expression;\n set?: t.Expression;\n kind: \"get\" | \"set\";\n};\n\nexport type MutatorMap = Record;\n\nexport function pushAccessor(\n mutatorMap: MutatorMap,\n node: t.ObjectMethod & { kind: \"get\" | \"set\"; computed: false },\n) {\n const alias = t.toKeyAlias(node);\n const map = (mutatorMap[alias] ??= {\n _inherits: [],\n _key: node.key,\n } as DefineMap);\n\n map._inherits.push(node);\n\n const value = t.functionExpression(\n null,\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n value.returnType = node.returnType;\n t.inheritsComments(value, node);\n map[node.kind] = value;\n\n return map;\n}\n\nexport function toDefineObject(mutatorMap: any) {\n const objExpr = t.objectExpression([]);\n\n Object.keys(mutatorMap).forEach(function (mutatorMapKey) {\n const map = mutatorMap[mutatorMapKey];\n map.configurable = t.booleanLiteral(true);\n map.enumerable = t.booleanLiteral(true);\n\n const mapNode = t.objectExpression([]);\n\n const propNode = t.objectProperty(map._key, mapNode, map._computed);\n\n Object.keys(map).forEach(function (key) {\n const node = map[key];\n if (key[0] === \"_\") return;\n\n const prop = t.objectProperty(t.identifier(key), node);\n t.inheritsComments(prop, node);\n t.removeComments(node);\n\n mapNode.properties.push(prop);\n });\n\n objExpr.properties.push(propNode);\n });\n\n return objExpr;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { type MutatorMap, pushAccessor, toDefineObject } from \"./define-map.ts\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-property-mutators\",\n\n visitor: {\n ObjectExpression(path) {\n const { node } = path;\n let mutatorMap: MutatorMap | undefined;\n const newProperties = node.properties.filter(function (prop) {\n if (\n t.isObjectMethod(prop) &&\n !prop.computed &&\n (prop.kind === \"get\" || prop.kind === \"set\")\n ) {\n pushAccessor(\n (mutatorMap ??= {}),\n prop as t.ObjectMethod & { kind: \"get\" | \"set\"; computed: false },\n );\n return false;\n }\n return true;\n });\n\n if (mutatorMap === undefined) {\n return;\n }\n\n node.properties = newProperties;\n\n path.replaceWith(\n t.callExpression(\n t.memberExpression(\n t.identifier(\"Object\"),\n t.identifier(\"defineProperties\"),\n ),\n [node, toDefineObject(mutatorMap)],\n ),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, type File } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function isProtoKey(node: t.ObjectExpression[\"properties\"][number]) {\n return (\n !t.isSpreadElement(node) &&\n t.isStringLiteral(t.toComputedKey(node, node.key), {\n value: \"__proto__\",\n })\n );\n }\n\n function isProtoAssignmentExpression(\n node: t.Node,\n ): node is t.MemberExpression {\n const left = node;\n return (\n t.isMemberExpression(left) &&\n t.isStringLiteral(t.toComputedKey(left, left.property), {\n value: \"__proto__\",\n })\n );\n }\n\n function buildDefaultsCallExpression(\n expr: t.AssignmentExpression,\n ref: t.MemberExpression[\"object\"],\n file: File,\n ) {\n return t.expressionStatement(\n t.callExpression(file.addHelper(\"defaults\"), [\n // @ts-ignore(Babel 7 vs Babel 8) Fixme: support `super.__proto__ = ...`\n ref,\n expr.right,\n ]),\n );\n }\n\n return {\n name: \"transform-proto-to-assign\",\n\n visitor: {\n AssignmentExpression(path, { file }) {\n if (!isProtoAssignmentExpression(path.node.left)) return;\n\n const nodes = [];\n const left = path.node.left.object;\n const temp = path.scope.maybeGenerateMemoised(left);\n\n if (temp) {\n nodes.push(\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n temp,\n // left must not be Super when `temp` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n left as t.Expression,\n ),\n ),\n );\n }\n nodes.push(\n buildDefaultsCallExpression(\n path.node,\n t.cloneNode(temp || left),\n file,\n ),\n );\n if (temp) nodes.push(t.cloneNode(temp));\n\n path.replaceWithMultiple(nodes);\n },\n\n ExpressionStatement(path, { file }) {\n const expr = path.node.expression;\n if (!t.isAssignmentExpression(expr, { operator: \"=\" })) return;\n\n if (isProtoAssignmentExpression(expr.left)) {\n path.replaceWith(\n buildDefaultsCallExpression(expr, expr.left.object, file),\n );\n }\n },\n\n ObjectExpression(path, { file }) {\n let proto;\n const { node } = path;\n const { properties } = node;\n\n for (let i = 0; i < properties.length; i++) {\n const prop = properties[i];\n if (isProtoKey(prop)) {\n // @ts-expect-error Fixme: we should also handle ObjectMethod with __proto__ key\n proto = prop.value;\n properties.splice(i, 1);\n break;\n }\n }\n\n if (proto) {\n const args = [t.objectExpression([]), proto];\n if (node.properties.length) args.push(node);\n path.replaceWith(t.callExpression(file.addHelper(\"extends\"), args));\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, template } from \"@babel/core\";\nimport type { Visitor, Scope, NodePath } from \"@babel/traverse\";\n\nexport interface Options {\n allowMutablePropsOnTags?: null | string[];\n}\n\ninterface VisitorState {\n isImmutable: boolean;\n mutablePropsAllowed: boolean;\n jsxScope: Scope;\n targetScope: Scope;\n}\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const { allowMutablePropsOnTags } = options;\n\n if (\n allowMutablePropsOnTags != null &&\n !Array.isArray(allowMutablePropsOnTags)\n ) {\n throw new Error(\n \".allowMutablePropsOnTags must be an array, null, or undefined.\",\n );\n }\n\n // Element -> Target scope\n const HOISTED = new WeakMap();\n\n function declares(node: t.Identifier | t.JSXIdentifier, scope: Scope) {\n if (\n t.isJSXIdentifier(node, { name: \"this\" }) ||\n t.isJSXIdentifier(node, { name: \"arguments\" }) ||\n t.isJSXIdentifier(node, { name: \"super\" }) ||\n t.isJSXIdentifier(node, { name: \"new\" })\n ) {\n const { path } = scope;\n return path.isFunctionParent() && !path.isArrowFunctionExpression();\n }\n\n return scope.hasOwnBinding(node.name);\n }\n\n function isHoistingScope({ path }: Scope) {\n return path.isFunctionParent() || path.isLoop() || path.isProgram();\n }\n\n function getHoistingScope(scope: Scope) {\n while (!isHoistingScope(scope)) scope = scope.parent;\n return scope;\n }\n\n const targetScopeVisitor: Visitor = {\n ReferencedIdentifier(path, state) {\n const { node } = path;\n let { scope } = path;\n\n while (scope !== state.jsxScope) {\n // If a binding is declared in an inner function, it doesn't affect hoisting.\n if (declares(node, scope)) return;\n\n scope = scope.parent;\n }\n\n while (scope) {\n // We cannot hoist outside of the previous hoisting target\n // scope, so we return early and we don't update it.\n if (scope === state.targetScope) return;\n\n // If the scope declares this identifier (or we're at the function\n // providing the lexical env binding), we can't hoist the var any\n // higher.\n if (declares(node, scope)) break;\n\n scope = scope.parent;\n }\n\n state.targetScope = getHoistingScope(scope);\n },\n };\n\n const immutabilityVisitor: Visitor = {\n enter(path, state) {\n const stop = () => {\n state.isImmutable = false;\n path.stop();\n };\n\n const skip = () => {\n path.skip();\n };\n\n if (path.isJSXClosingElement()) {\n skip();\n return;\n }\n\n // Elements with refs are not safe to hoist.\n if (\n path.isJSXIdentifier({ name: \"ref\" }) &&\n path.parentPath.isJSXAttribute({ name: path.node })\n ) {\n stop();\n return;\n }\n\n // Ignore JSX expressions and immutable values.\n if (\n path.isJSXIdentifier() ||\n path.isJSXMemberExpression() ||\n path.isJSXNamespacedName() ||\n path.isImmutable()\n ) {\n return;\n }\n\n // Ignore constant bindings.\n if (path.isIdentifier()) {\n const binding = path.scope.getBinding(path.node.name);\n if (binding && binding.constant) return;\n }\n\n // If we allow mutable props, tags with function expressions can be\n // safely hoisted.\n const { mutablePropsAllowed } = state;\n if (mutablePropsAllowed && path.isFunction()) {\n path.traverse(targetScopeVisitor, state);\n skip();\n return;\n }\n\n if (!path.isPure()) {\n stop();\n return;\n }\n\n // If it's not immutable, it may still be a pure expression, such as string concatenation.\n // It is still safe to hoist that, so long as its result is immutable.\n // If not, it is not safe to replace as mutable values (like objects) could be mutated after render.\n // https://github.com/facebook/react/issues/3226\n const expressionResult = path.evaluate();\n if (expressionResult.confident) {\n // We know the result; check its mutability.\n const { value } = expressionResult;\n if (\n mutablePropsAllowed ||\n value === null ||\n (typeof value !== \"object\" && typeof value !== \"function\")\n ) {\n // It evaluated to an immutable value, so we can hoist it.\n skip();\n return;\n }\n } else if (expressionResult.deopt?.isIdentifier()) {\n // It's safe to hoist here if the deopt reason is an identifier (e.g. func param).\n // The hoister will take care of how high up it can be hoisted.\n return;\n }\n\n stop();\n },\n };\n\n // We cannot use traverse.visitors.merge because it doesn't support\n // immutabilityVisitor's bare `enter` visitor.\n // It's safe to just use ... because the two visitors don't share any key.\n const hoistingVisitor = { ...immutabilityVisitor, ...targetScopeVisitor };\n\n return {\n name: \"transform-react-constant-elements\",\n\n visitor: {\n JSXElement(path) {\n if (HOISTED.has(path.node)) return;\n const name = path.node.openingElement.name;\n\n // This transform takes the option `allowMutablePropsOnTags`, which is an array\n // of JSX tags to allow mutable props (such as objects, functions) on. Use sparingly\n // and only on tags you know will never modify their own props.\n let mutablePropsAllowed = false;\n if (allowMutablePropsOnTags != null) {\n // Get the element's name. If it's a member expression, we use the last part of the path.\n // So the option [\"FormattedMessage\"] would match \"Intl.FormattedMessage\".\n let lastSegment = name;\n while (t.isJSXMemberExpression(lastSegment)) {\n lastSegment = lastSegment.property;\n }\n\n const elementName = lastSegment.name;\n // @ts-expect-error Fixme: allowMutablePropsOnTags should handle JSXNamespacedName\n mutablePropsAllowed = allowMutablePropsOnTags.includes(elementName);\n }\n\n // In order to avoid hoisting unnecessarily, we need to know which is\n // the scope containing the current JSX element. If a parent of the\n // current element has already been hoisted, we can consider its target\n // scope as the base scope for the current element.\n let jsxScope;\n let current: NodePath = path;\n while (!jsxScope && current.parentPath.isJSX()) {\n current = current.parentPath;\n jsxScope = HOISTED.get(current.node);\n }\n jsxScope ??= path.scope;\n // The initial HOISTED is set to jsxScope, s.t.\n // if the element's JSX ancestor has been hoisted, it will be skipped\n HOISTED.set(path.node, jsxScope);\n\n const visitorState: VisitorState = {\n isImmutable: true,\n mutablePropsAllowed,\n jsxScope,\n targetScope: path.scope.getProgramParent(),\n };\n path.traverse(hoistingVisitor, visitorState);\n if (!visitorState.isImmutable) return;\n\n const { targetScope } = visitorState;\n // Only hoist if it would give us an advantage.\n for (let currentScope = jsxScope; ; ) {\n if (targetScope === currentScope) return;\n if (isHoistingScope(currentScope)) break;\n\n currentScope = currentScope.parent;\n if (!currentScope) {\n throw new Error(\n \"Internal @babel/plugin-transform-react-constant-elements error: \" +\n \"targetScope must be an ancestor of jsxScope. \" +\n \"This is a Babel bug, please report it.\",\n );\n }\n }\n\n const id = path.scope.generateUidBasedOnNode(name);\n targetScope.push({ id: t.identifier(id) });\n // If the element is to be hoisted, update HOISTED to be the target scope\n HOISTED.set(path.node, targetScope);\n\n let replacement: t.Expression | t.JSXExpressionContainer = template\n .expression.ast`\n ${t.identifier(id)} || (${t.identifier(id)} = ${path.node})\n `;\n if (\n path.parentPath.isJSXElement() ||\n path.parentPath.isJSXAttribute()\n ) {\n replacement = t.jsxExpressionContainer(replacement);\n }\n\n path.replaceWith(replacement);\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport path from \"path\";\nimport { types as t } from \"@babel/core\";\n\ntype ReactCreateClassCall = t.CallExpression & {\n arguments: [t.ObjectExpression];\n};\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function addDisplayName(id: string, call: ReactCreateClassCall) {\n const props = call.arguments[0].properties;\n let safe = true;\n\n for (let i = 0; i < props.length; i++) {\n const prop = props[i];\n if (t.isSpreadElement(prop)) {\n continue;\n }\n const key = t.toComputedKey(prop);\n if (t.isStringLiteral(key, { value: \"displayName\" })) {\n safe = false;\n break;\n }\n }\n\n if (safe) {\n props.unshift(\n t.objectProperty(t.identifier(\"displayName\"), t.stringLiteral(id)),\n );\n }\n }\n\n const isCreateClassCallExpression =\n t.buildMatchMemberExpression(\"React.createClass\");\n const isCreateClassAddon = (callee: t.CallExpression[\"callee\"]) =>\n t.isIdentifier(callee, { name: \"createReactClass\" });\n\n function isCreateClass(node?: t.Node): node is ReactCreateClassCall {\n if (!node || !t.isCallExpression(node)) return false;\n\n // not createReactClass nor React.createClass call member object\n if (\n !isCreateClassCallExpression(node.callee) &&\n !isCreateClassAddon(node.callee)\n ) {\n return false;\n }\n\n // no call arguments\n const args = node.arguments;\n if (args.length !== 1) return false;\n\n // first node arg is not an object\n const first = args[0];\n if (!t.isObjectExpression(first)) return false;\n\n return true;\n }\n\n return {\n name: \"transform-react-display-name\",\n\n visitor: {\n ExportDefaultDeclaration({ node }, state) {\n if (isCreateClass(node.declaration)) {\n const filename = state.filename || \"unknown\";\n\n let displayName = path.basename(filename, path.extname(filename));\n\n // ./{module name}/index.js\n if (displayName === \"index\") {\n displayName = path.basename(path.dirname(filename));\n }\n\n addDisplayName(displayName, node.declaration);\n }\n },\n\n CallExpression(path) {\n const { node } = path;\n if (!isCreateClass(node)) return;\n\n let id: t.LVal | t.Expression | t.PrivateName | null;\n\n // crawl up the ancestry looking for possible candidates for displayName inference\n path.find(function (path) {\n if (path.isAssignmentExpression()) {\n id = path.node.left;\n } else if (path.isObjectProperty()) {\n id = path.node.key;\n } else if (path.isVariableDeclarator()) {\n id = path.node.id;\n } else if (path.isStatement()) {\n // we've hit a statement, we should stop crawling up\n return true;\n }\n\n // we've got an id! no need to continue\n if (id) return true;\n });\n\n // ensure that we have an identifier we can inherit from\n if (!id) return;\n\n // foo.bar -> bar\n if (t.isMemberExpression(id)) {\n id = id.property;\n }\n\n // identifiers are the only thing we can reliably get a name from\n if (t.isIdentifier(id)) {\n addDisplayName(id.name, node);\n }\n },\n },\n };\n});\n","import {\n booleanLiteral,\n callExpression,\n identifier,\n inherits,\n isIdentifier,\n isJSXExpressionContainer,\n isJSXIdentifier,\n isJSXMemberExpression,\n isJSXNamespacedName,\n isJSXSpreadAttribute,\n isObjectExpression,\n isReferenced,\n isStringLiteral,\n isValidIdentifier,\n memberExpression,\n nullLiteral,\n objectExpression,\n objectProperty,\n react,\n spreadElement,\n stringLiteral,\n thisExpression,\n} from \"@babel/types\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\nimport type { PluginPass } from \"@babel/core\";\nimport type * as t from \"@babel/types\";\n\ntype ElementState = {\n tagExpr: t.Expression; // tag node,\n tagName: string | undefined | null; // raw string tag name,\n args: Array; // array of call arguments,\n call?: any; // optional call property that can be set to override the call expression returned,\n pure: boolean; // true if the element can be marked with a #__PURE__ annotation\n callee?: any;\n};\n\nexport interface Options {\n filter?: (node: t.Node, pass: PluginPass) => boolean;\n pre?: (state: ElementState, pass: PluginPass) => void;\n post?: (state: ElementState, pass: PluginPass) => void;\n compat?: boolean;\n pure?: string;\n throwIfNamespace?: boolean;\n useSpread?: boolean;\n useBuiltIns?: boolean;\n}\n\nexport default function (opts: Options) {\n const visitor: Visitor> = {};\n\n visitor.JSXNamespacedName = function (path) {\n if (opts.throwIfNamespace) {\n throw path.buildCodeFrameError(\n `Namespace tags are not supported by default. React's JSX doesn't support namespace tags. \\\nYou can set \\`throwIfNamespace: false\\` to bypass this warning.`,\n );\n }\n };\n\n visitor.JSXSpreadChild = function (path) {\n throw path.buildCodeFrameError(\n \"Spread children are not supported in React.\",\n );\n };\n\n visitor.JSXElement = {\n exit(path, state) {\n const callExpr = buildElementCall(path, state);\n if (callExpr) {\n path.replaceWith(inherits(callExpr, path.node));\n }\n },\n };\n\n visitor.JSXFragment = {\n exit(path, state) {\n if (opts.compat) {\n throw path.buildCodeFrameError(\n \"Fragment tags are only supported in React 16 and up.\",\n );\n }\n const callExpr = buildFragmentCall(path, state);\n if (callExpr) {\n path.replaceWith(inherits(callExpr, path.node));\n }\n },\n };\n\n return visitor;\n\n function convertJSXIdentifier(\n node: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n parent: t.JSXOpeningElement | t.JSXMemberExpression,\n ): t.ThisExpression | t.StringLiteral | t.MemberExpression | t.Identifier {\n if (isJSXIdentifier(node)) {\n if (node.name === \"this\" && isReferenced(node, parent)) {\n return thisExpression();\n } else if (isValidIdentifier(node.name, false)) {\n // @ts-expect-error casting JSXIdentifier to Identifier\n node.type = \"Identifier\";\n return node as unknown as t.Identifier;\n } else {\n return stringLiteral(node.name);\n }\n } else if (isJSXMemberExpression(node)) {\n return memberExpression(\n convertJSXIdentifier(node.object, node),\n convertJSXIdentifier(node.property, node),\n );\n } else if (isJSXNamespacedName(node)) {\n /**\n * If there is flag \"throwIfNamespace\"\n * print XMLNamespace like string literal\n */\n return stringLiteral(`${node.namespace.name}:${node.name.name}`);\n }\n\n return node;\n }\n\n function convertAttributeValue(\n node: t.JSXAttribute[\"value\"] | t.BooleanLiteral,\n ) {\n if (isJSXExpressionContainer(node)) {\n return node.expression;\n } else {\n return node;\n }\n }\n\n function convertAttribute(node: t.JSXAttribute | t.JSXSpreadAttribute) {\n if (isJSXSpreadAttribute(node)) {\n return spreadElement(node.argument);\n }\n const value = convertAttributeValue(node.value || booleanLiteral(true));\n\n if (isStringLiteral(value) && !isJSXExpressionContainer(node.value)) {\n value.value = value.value.replace(/\\n\\s+/g, \" \");\n\n // \"raw\" JSXText should not be used from a StringLiteral because it needs to be escaped.\n delete value.extra?.raw;\n }\n\n if (isJSXNamespacedName(node.name)) {\n // @ts-expect-error Mutating AST nodes\n node.name = stringLiteral(\n node.name.namespace.name + \":\" + node.name.name.name,\n );\n } else if (isValidIdentifier(node.name.name, false)) {\n // @ts-expect-error Mutating AST nodes\n node.name.type = \"Identifier\";\n } else {\n // @ts-expect-error Mutating AST nodes\n node.name = stringLiteral(node.name.name);\n }\n\n return inherits(\n objectProperty(\n // @ts-expect-error Mutating AST nodes\n node.name,\n value,\n ),\n node,\n );\n }\n\n function buildElementCall(path: NodePath, pass: PluginPass) {\n if (opts.filter && !opts.filter(path.node, pass)) return;\n\n const openingPath = path.get(\"openingElement\");\n // @ts-expect-error mutating AST nodes\n path.node.children = react.buildChildren(path.node);\n\n const tagExpr = convertJSXIdentifier(\n openingPath.node.name,\n openingPath.node,\n );\n const args: (t.Expression | t.JSXElement | t.JSXFragment)[] = [];\n\n let tagName: string;\n if (isIdentifier(tagExpr)) {\n tagName = tagExpr.name;\n } else if (isStringLiteral(tagExpr)) {\n tagName = tagExpr.value;\n }\n\n const state: ElementState = {\n tagExpr: tagExpr,\n tagName: tagName,\n args: args,\n pure: false,\n };\n\n if (opts.pre) {\n opts.pre(state, pass);\n }\n\n const attribs = openingPath.node.attributes;\n let convertedAttributes: t.Expression;\n if (attribs.length) {\n if (process.env.BABEL_8_BREAKING) {\n convertedAttributes = objectExpression(attribs.map(convertAttribute));\n } else {\n convertedAttributes = buildOpeningElementAttributes(attribs, pass);\n }\n } else {\n convertedAttributes = nullLiteral();\n }\n\n args.push(\n convertedAttributes,\n // @ts-expect-error JSXExpressionContainer has been transformed by convertAttributeValue\n ...path.node.children,\n );\n\n if (opts.post) {\n opts.post(state, pass);\n }\n\n const call = state.call || callExpression(state.callee, args);\n if (state.pure) annotateAsPure(call);\n\n return call;\n }\n\n function pushProps(\n _props: (t.ObjectProperty | t.SpreadElement)[],\n objs: t.Expression[],\n ) {\n if (!_props.length) return _props;\n\n objs.push(objectExpression(_props));\n return [];\n }\n\n /**\n * The logic for this is quite terse. It's because we need to\n * support spread elements. We loop over all attributes,\n * breaking on spreads, we then push a new object containing\n * all prior attributes to an array for later processing.\n */\n\n function buildOpeningElementAttributes(\n attribs: (t.JSXAttribute | t.JSXSpreadAttribute)[],\n pass: PluginPass,\n ): t.Expression {\n let _props: (t.ObjectProperty | t.SpreadElement)[] = [];\n const objs: t.Expression[] = [];\n\n const { useSpread = false } = pass.opts;\n if (typeof useSpread !== \"boolean\") {\n throw new Error(\n \"transform-react-jsx currently only accepts a boolean option for \" +\n \"useSpread (defaults to false)\",\n );\n }\n\n const useBuiltIns = pass.opts.useBuiltIns || false;\n if (typeof useBuiltIns !== \"boolean\") {\n throw new Error(\n \"transform-react-jsx currently only accepts a boolean option for \" +\n \"useBuiltIns (defaults to false)\",\n );\n }\n\n if (useSpread && useBuiltIns) {\n throw new Error(\n \"transform-react-jsx currently only accepts useBuiltIns or useSpread \" +\n \"but not both\",\n );\n }\n\n if (useSpread) {\n const props = attribs.map(convertAttribute);\n return objectExpression(props);\n }\n\n while (attribs.length) {\n const prop = attribs.shift();\n if (isJSXSpreadAttribute(prop)) {\n _props = pushProps(_props, objs);\n objs.push(prop.argument);\n } else {\n _props.push(convertAttribute(prop));\n }\n }\n\n pushProps(_props, objs);\n let convertedAttribs: t.Expression;\n\n if (objs.length === 1) {\n // only one object\n convertedAttribs = objs[0];\n } else {\n // looks like we have multiple objects\n if (!isObjectExpression(objs[0])) {\n objs.unshift(objectExpression([]));\n }\n\n const helper = useBuiltIns\n ? memberExpression(identifier(\"Object\"), identifier(\"assign\"))\n : pass.addHelper(\"extends\");\n\n // spread it\n convertedAttribs = callExpression(helper, objs);\n }\n\n return convertedAttribs;\n }\n\n function buildFragmentCall(path: NodePath, pass: PluginPass) {\n if (opts.filter && !opts.filter(path.node, pass)) return;\n\n // @ts-expect-error mutating AST nodes\n path.node.children = react.buildChildren(path.node);\n\n const args: t.Expression[] = [];\n const tagName: null = null;\n const tagExpr = pass.get(\"jsxFragIdentifier\")();\n\n const state: ElementState = {\n tagExpr: tagExpr,\n tagName: tagName,\n args: args,\n pure: false,\n };\n\n if (opts.pre) {\n opts.pre(state, pass);\n }\n\n // no attributes are allowed with <> syntax\n args.push(\n nullLiteral(),\n // @ts-expect-error JSXExpressionContainer has been transformed by convertAttributeValue\n ...path.node.children,\n );\n\n if (opts.post) {\n opts.post(state, pass);\n }\n\n pass.set(\"usedFragment\", true);\n\n const call = state.call || callExpression(state.callee, args);\n if (state.pure) annotateAsPure(call);\n\n return call;\n }\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport helper from \"@babel/helper-builder-react-jsx\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function hasRefOrSpread(attrs: t.JSXOpeningElement[\"attributes\"]) {\n for (let i = 0; i < attrs.length; i++) {\n const attr = attrs[i];\n if (t.isJSXSpreadAttribute(attr)) return true;\n if (isJSXAttributeOfName(attr, \"ref\")) return true;\n }\n return false;\n }\n\n function isJSXAttributeOfName(attr: t.JSXAttribute, name: string) {\n return (\n t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: name })\n );\n }\n\n const visitor = helper({\n filter(node) {\n return (\n node.type === \"JSXElement\" &&\n !hasRefOrSpread(node.openingElement.attributes)\n );\n },\n pre(state) {\n const tagName = state.tagName;\n const args = state.args;\n if (t.react.isCompatTag(tagName)) {\n args.push(t.stringLiteral(tagName));\n } else {\n args.push(state.tagExpr);\n }\n },\n post(state, pass) {\n state.callee = pass.addHelper(\"jsx\");\n // NOTE: The arguments passed to the \"jsx\" helper are:\n // (element, props, key, ...children) or (element, props)\n // The argument generated by the helper are:\n // (element, { ...props, key }, ...children)\n\n const props = state.args[1];\n let hasKey = false;\n if (t.isObjectExpression(props)) {\n const keyIndex = props.properties.findIndex(prop =>\n // @ts-expect-error todo(flow->ts) key does not exist on SpreadElement\n t.isIdentifier(prop.key, { name: \"key\" }),\n );\n if (keyIndex > -1) {\n // @ts-expect-error todo(flow->ts) value does not exist on ObjectMethod\n state.args.splice(2, 0, props.properties[keyIndex].value);\n props.properties.splice(keyIndex, 1);\n hasKey = true;\n }\n } else if (t.isNullLiteral(props)) {\n state.args.splice(1, 1, t.objectExpression([]));\n }\n\n if (!hasKey && state.args.length > 2) {\n state.args.splice(2, 0, t.unaryExpression(\"void\", t.numericLiteral(0)));\n }\n\n state.pure = true;\n },\n });\n return {\n name: \"transform-react-inline-elements\",\n visitor,\n };\n});\n","import jsx from \"@babel/plugin-syntax-jsx\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { PluginPass } from \"@babel/core\";\nimport type { NodePath, Scope, Visitor } from \"@babel/traverse\";\nimport { addNamed, addNamespace, isModule } from \"@babel/helper-module-imports\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport type {\n CallExpression,\n Class,\n Expression,\n Identifier,\n JSXAttribute,\n JSXElement,\n JSXFragment,\n JSXOpeningElement,\n JSXSpreadAttribute,\n MemberExpression,\n ObjectExpression,\n Program,\n} from \"@babel/types\";\n\nconst DEFAULT = {\n importSource: \"react\",\n runtime: \"automatic\",\n pragma: \"React.createElement\",\n pragmaFrag: \"React.Fragment\",\n};\n\nconst JSX_SOURCE_ANNOTATION_REGEX =\n /^\\s*\\*?\\s*@jsxImportSource\\s+([^\\s]+)\\s*$/m;\nconst JSX_RUNTIME_ANNOTATION_REGEX = /^\\s*\\*?\\s*@jsxRuntime\\s+([^\\s]+)\\s*$/m;\n\nconst JSX_ANNOTATION_REGEX = /^\\s*\\*?\\s*@jsx\\s+([^\\s]+)\\s*$/m;\nconst JSX_FRAG_ANNOTATION_REGEX = /^\\s*\\*?\\s*@jsxFrag\\s+([^\\s]+)\\s*$/m;\n\nconst get = (pass: PluginPass, name: string) =>\n pass.get(`@babel/plugin-react-jsx/${name}`);\nconst set = (pass: PluginPass, name: string, v: any) =>\n pass.set(`@babel/plugin-react-jsx/${name}`, v);\n\nfunction hasProto(node: t.ObjectExpression) {\n return node.properties.some(\n value =>\n t.isObjectProperty(value, { computed: false, shorthand: false }) &&\n (t.isIdentifier(value.key, { name: \"__proto__\" }) ||\n t.isStringLiteral(value.key, { value: \"__proto__\" })),\n );\n}\n\nexport interface Options {\n filter?: (node: t.Node, pass: PluginPass) => boolean;\n importSource?: string;\n pragma?: string;\n pragmaFrag?: string;\n pure?: string;\n runtime?: \"automatic\" | \"classic\";\n throwIfNamespace?: boolean;\n useBuiltIns: boolean;\n useSpread?: boolean;\n}\nexport default function createPlugin({\n name,\n development,\n}: {\n name: string;\n development: boolean;\n}) {\n return declare((_, options: Options) => {\n const {\n pure: PURE_ANNOTATION,\n\n throwIfNamespace = true,\n\n filter,\n\n runtime: RUNTIME_DEFAULT = process.env.BABEL_8_BREAKING\n ? \"automatic\"\n : development\n ? \"automatic\"\n : \"classic\",\n\n importSource: IMPORT_SOURCE_DEFAULT = DEFAULT.importSource,\n pragma: PRAGMA_DEFAULT = DEFAULT.pragma,\n pragmaFrag: PRAGMA_FRAG_DEFAULT = DEFAULT.pragmaFrag,\n } = options;\n\n if (process.env.BABEL_8_BREAKING) {\n if (\"useSpread\" in options) {\n throw new Error(\n '@babel/plugin-transform-react-jsx: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config.',\n );\n }\n\n if (\"useBuiltIns\" in options) {\n const useBuiltInsFormatted = JSON.stringify(options.useBuiltIns);\n throw new Error(\n `@babel/plugin-transform-react-jsx: Since \"useBuiltIns\" is removed in Babel 8, you can remove it from the config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n\\`useBuiltIns: ${useBuiltInsFormatted}\\`, you can use the following config\n{\n \"plugins\": [\n \"@babel/plugin-transform-react-jsx\"\n [\"@babel/plugin-transform-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": ${useBuiltInsFormatted} }]\n ]\n}`,\n );\n }\n\n if (filter != null && RUNTIME_DEFAULT === \"automatic\") {\n throw new Error(\n '@babel/plugin-transform-react-jsx: \"filter\" option can not be used with automatic runtime. If you are upgrading from Babel 7, please specify `runtime: \"classic\"`.',\n );\n }\n } else {\n // eslint-disable-next-line no-var\n var { useSpread = false, useBuiltIns = false } = options;\n\n if (RUNTIME_DEFAULT === \"classic\") {\n if (typeof useSpread !== \"boolean\") {\n throw new Error(\n \"transform-react-jsx currently only accepts a boolean option for \" +\n \"useSpread (defaults to false)\",\n );\n }\n\n if (typeof useBuiltIns !== \"boolean\") {\n throw new Error(\n \"transform-react-jsx currently only accepts a boolean option for \" +\n \"useBuiltIns (defaults to false)\",\n );\n }\n\n if (useSpread && useBuiltIns) {\n throw new Error(\n \"transform-react-jsx currently only accepts useBuiltIns or useSpread \" +\n \"but not both\",\n );\n }\n }\n }\n\n const injectMetaPropertiesVisitor: Visitor = {\n JSXOpeningElement(path, state) {\n const attributes = [];\n if (isThisAllowed(path.scope)) {\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__self\"),\n t.jsxExpressionContainer(t.thisExpression()),\n ),\n );\n }\n attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(\"__source\"),\n t.jsxExpressionContainer(makeSource(path, state)),\n ),\n );\n path.pushContainer(\"attributes\", attributes);\n },\n };\n\n return {\n name,\n inherits: jsx,\n visitor: {\n JSXNamespacedName(path) {\n if (throwIfNamespace) {\n throw path.buildCodeFrameError(\n `Namespace tags are not supported by default. React's JSX doesn't support namespace tags. \\\nYou can set \\`throwIfNamespace: false\\` to bypass this warning.`,\n );\n }\n },\n\n JSXSpreadChild(path) {\n throw path.buildCodeFrameError(\n \"Spread children are not supported in React.\",\n );\n },\n\n Program: {\n enter(path, state) {\n const { file } = state;\n let runtime: string = RUNTIME_DEFAULT;\n\n let source: string = IMPORT_SOURCE_DEFAULT;\n let pragma: string = PRAGMA_DEFAULT;\n let pragmaFrag: string = PRAGMA_FRAG_DEFAULT;\n\n let sourceSet = !!options.importSource;\n let pragmaSet = !!options.pragma;\n let pragmaFragSet = !!options.pragmaFrag;\n\n if (file.ast.comments) {\n for (const comment of file.ast.comments) {\n const sourceMatches = JSX_SOURCE_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (sourceMatches) {\n source = sourceMatches[1];\n sourceSet = true;\n }\n\n const runtimeMatches = JSX_RUNTIME_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (runtimeMatches) {\n runtime = runtimeMatches[1];\n }\n\n const jsxMatches = JSX_ANNOTATION_REGEX.exec(comment.value);\n if (jsxMatches) {\n pragma = jsxMatches[1];\n pragmaSet = true;\n }\n const jsxFragMatches = JSX_FRAG_ANNOTATION_REGEX.exec(\n comment.value,\n );\n if (jsxFragMatches) {\n pragmaFrag = jsxFragMatches[1];\n pragmaFragSet = true;\n }\n }\n }\n\n set(state, \"runtime\", runtime);\n if (runtime === \"classic\") {\n if (sourceSet) {\n throw path.buildCodeFrameError(\n `importSource cannot be set when runtime is classic.`,\n );\n }\n\n const createElement = toMemberExpression(pragma);\n const fragment = toMemberExpression(pragmaFrag);\n\n set(state, \"id/createElement\", () => t.cloneNode(createElement));\n set(state, \"id/fragment\", () => t.cloneNode(fragment));\n\n set(state, \"defaultPure\", pragma === DEFAULT.pragma);\n } else if (runtime === \"automatic\") {\n if (pragmaSet || pragmaFragSet) {\n throw path.buildCodeFrameError(\n `pragma and pragmaFrag cannot be set when runtime is automatic.`,\n );\n }\n\n const define = (name: string, id: string) =>\n set(state, name, createImportLazily(state, path, id, source));\n\n define(\"id/jsx\", development ? \"jsxDEV\" : \"jsx\");\n define(\"id/jsxs\", development ? \"jsxDEV\" : \"jsxs\");\n define(\"id/createElement\", \"createElement\");\n define(\"id/fragment\", \"Fragment\");\n\n set(state, \"defaultPure\", source === DEFAULT.importSource);\n } else {\n throw path.buildCodeFrameError(\n `Runtime must be either \"classic\" or \"automatic\".`,\n );\n }\n\n if (development) {\n path.traverse(injectMetaPropertiesVisitor, state);\n }\n },\n\n // TODO(Babel 8): Decide if this should be removed or brought back.\n // see: https://github.com/babel/babel/pull/12253#discussion_r513086528\n //\n // exit(path, state) {\n // if (\n // get(state, \"runtime\") === \"classic\" &&\n // get(state, \"pragmaSet\") &&\n // get(state, \"usedFragment\") &&\n // !get(state, \"pragmaFragSet\")\n // ) {\n // throw new Error(\n // \"transform-react-jsx: pragma has been set but \" +\n // \"pragmaFrag has not been set\",\n // );\n // }\n // },\n },\n\n JSXFragment: {\n exit(path, file) {\n let callExpr;\n if (get(file, \"runtime\") === \"classic\") {\n callExpr = buildCreateElementFragmentCall(path, file);\n } else {\n callExpr = buildJSXFragmentCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXElement: {\n exit(path, file) {\n let callExpr;\n if (\n get(file, \"runtime\") === \"classic\" ||\n shouldUseCreateElement(path)\n ) {\n callExpr = buildCreateElementCall(path, file);\n } else {\n callExpr = buildJSXElementCall(path, file);\n }\n\n path.replaceWith(t.inherits(callExpr, path.node));\n },\n },\n\n JSXAttribute(path) {\n if (t.isJSXElement(path.node.value)) {\n path.node.value = t.jsxExpressionContainer(path.node.value);\n }\n },\n },\n };\n\n // Returns whether the class has specified a superclass.\n function isDerivedClass(classPath: NodePath) {\n return classPath.node.superClass !== null;\n }\n\n // Returns whether `this` is allowed at given scope.\n function isThisAllowed(scope: Scope) {\n // This specifically skips arrow functions as they do not rewrite `this`.\n do {\n const { path } = scope;\n if (path.isFunctionParent() && !path.isArrowFunctionExpression()) {\n if (!path.isMethod()) {\n // If the closest parent is a regular function, `this` will be rebound, therefore it is fine to use `this`.\n return true;\n }\n // Current node is within a method, so we need to check if the method is a constructor.\n if (path.node.kind !== \"constructor\") {\n // We are not in a constructor, therefore it is always fine to use `this`.\n return true;\n }\n // Now we are in a constructor. If it is a derived class, we do not reference `this`.\n return !isDerivedClass(path.parentPath.parentPath as NodePath);\n }\n if (path.isTSModuleBlock()) {\n // If the closest parent is a TS Module block, `this` will not be allowed.\n return false;\n }\n } while ((scope = scope.parent));\n // We are not in a method or function. It is fine to use `this`.\n return true;\n }\n\n function call(\n pass: PluginPass,\n name: string,\n args: CallExpression[\"arguments\"],\n ) {\n const node = t.callExpression(get(pass, `id/${name}`)(), args);\n if (PURE_ANNOTATION ?? get(pass, \"defaultPure\")) annotateAsPure(node);\n return node;\n }\n\n // We want to use React.createElement, even in the case of\n // jsx, for
to distinguish it\n // from
. This is an intermediary\n // step while we deprecate key spread from props. Afterwards,\n // we will stop using createElement in the transform.\n function shouldUseCreateElement(path: NodePath) {\n const openingPath = path.get(\"openingElement\");\n const attributes = openingPath.node.attributes;\n\n let seenPropsSpread = false;\n for (let i = 0; i < attributes.length; i++) {\n const attr = attributes[i];\n if (\n seenPropsSpread &&\n t.isJSXAttribute(attr) &&\n attr.name.name === \"key\"\n ) {\n return true;\n } else if (t.isJSXSpreadAttribute(attr)) {\n seenPropsSpread = true;\n }\n }\n return false;\n }\n\n function convertJSXIdentifier(\n node: t.JSXIdentifier | t.JSXMemberExpression | t.JSXNamespacedName,\n parent: t.JSXOpeningElement | t.JSXMemberExpression,\n ): t.ThisExpression | t.StringLiteral | t.MemberExpression | t.Identifier {\n if (t.isJSXIdentifier(node)) {\n if (node.name === \"this\" && t.isReferenced(node, parent)) {\n return t.thisExpression();\n } else if (t.isValidIdentifier(node.name, false)) {\n // @ts-expect-error cast AST type to Identifier\n node.type = \"Identifier\";\n return node as unknown as t.Identifier;\n } else {\n return t.stringLiteral(node.name);\n }\n } else if (t.isJSXMemberExpression(node)) {\n return t.memberExpression(\n convertJSXIdentifier(node.object, node),\n convertJSXIdentifier(node.property, node),\n );\n } else if (t.isJSXNamespacedName(node)) {\n /**\n * If the flag \"throwIfNamespace\" is false\n * print XMLNamespace like string literal\n */\n return t.stringLiteral(`${node.namespace.name}:${node.name.name}`);\n }\n\n // todo: this branch should be unreachable\n return node;\n }\n\n function convertAttributeValue(\n node: t.JSXAttribute[\"value\"] | t.BooleanLiteral,\n ) {\n if (t.isJSXExpressionContainer(node)) {\n return node.expression;\n } else {\n return node;\n }\n }\n\n function accumulateAttribute(\n array: ObjectExpression[\"properties\"],\n attribute: NodePath,\n ) {\n if (t.isJSXSpreadAttribute(attribute.node)) {\n const arg = attribute.node.argument;\n // Collect properties into props array if spreading object expression\n if (t.isObjectExpression(arg) && !hasProto(arg)) {\n array.push(...arg.properties);\n } else {\n array.push(t.spreadElement(arg));\n }\n return array;\n }\n\n const value = convertAttributeValue(\n attribute.node.name.name !== \"key\"\n ? attribute.node.value || t.booleanLiteral(true)\n : attribute.node.value,\n );\n\n if (attribute.node.name.name === \"key\" && value === null) {\n throw attribute.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n if (\n t.isStringLiteral(value) &&\n !t.isJSXExpressionContainer(attribute.node.value)\n ) {\n value.value = value.value.replace(/\\n\\s+/g, \" \");\n\n // \"raw\" JSXText should not be used from a StringLiteral because it needs to be escaped.\n delete value.extra?.raw;\n }\n\n if (t.isJSXNamespacedName(attribute.node.name)) {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(\n attribute.node.name.namespace.name +\n \":\" +\n attribute.node.name.name.name,\n );\n } else if (t.isValidIdentifier(attribute.node.name.name, false)) {\n // @ts-expect-error mutating AST\n attribute.node.name.type = \"Identifier\";\n } else {\n // @ts-expect-error mutating AST\n attribute.node.name = t.stringLiteral(attribute.node.name.name);\n }\n\n array.push(\n t.inherits(\n t.objectProperty(\n // @ts-expect-error The attribute.node.name is an Identifier now\n attribute.node.name,\n value,\n ),\n attribute.node,\n ),\n );\n return array;\n }\n\n function buildChildrenProperty(children: Expression[]) {\n let childrenNode;\n if (children.length === 1) {\n childrenNode = children[0];\n } else if (children.length > 1) {\n childrenNode = t.arrayExpression(children);\n } else {\n return undefined;\n }\n\n return t.objectProperty(t.identifier(\"children\"), childrenNode);\n }\n\n // Builds JSX into:\n // Production: React.jsx(type, arguments, key)\n // Development: React.jsxDEV(type, arguments, key, isStaticChildren, source, self)\n function buildJSXElementCall(path: NodePath, file: PluginPass) {\n const openingPath = path.get(\"openingElement\");\n const args: t.Expression[] = [getTag(openingPath)];\n\n const attribsArray = [];\n const extracted = Object.create(null);\n\n // for React.jsx, key, __source (dev), and __self (dev) is passed in as\n // a separate argument rather than in the args object. We go through the\n // props and filter out these three keywords so we can pass them in\n // as separate arguments later\n for (const attr of openingPath.get(\"attributes\")) {\n if (attr.isJSXAttribute() && t.isJSXIdentifier(attr.node.name)) {\n const { name } = attr.node.name;\n switch (name) {\n case \"__source\":\n case \"__self\":\n if (extracted[name]) throw sourceSelfError(path, name);\n /* falls through */\n case \"key\": {\n const keyValue = convertAttributeValue(attr.node.value);\n if (keyValue === null) {\n throw attr.buildCodeFrameError(\n 'Please provide an explicit key value. Using \"key\" as a shorthand for \"key={true}\" is not allowed.',\n );\n }\n\n extracted[name] = keyValue;\n break;\n }\n default:\n attribsArray.push(attr);\n }\n } else {\n attribsArray.push(attr);\n }\n }\n\n const children = t.react.buildChildren(path.node);\n\n let attribs: t.ObjectExpression;\n\n if (attribsArray.length || children.length) {\n attribs = buildJSXOpeningElementAttributes(\n attribsArray,\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n );\n } else {\n // attributes should never be null\n attribs = t.objectExpression([]);\n }\n\n args.push(attribs);\n\n if (development) {\n // isStaticChildren, __source, and __self are only used in development\n // automatically include __source and __self in this plugin\n // so we can eliminate the need for separate Babel plugins in Babel 8\n args.push(\n extracted.key ?? path.scope.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n if (extracted.__source) {\n args.push(extracted.__source);\n if (extracted.__self) args.push(extracted.__self);\n } else if (extracted.__self) {\n args.push(path.scope.buildUndefinedNode(), extracted.__self);\n }\n } else if (extracted.key !== undefined) {\n args.push(extracted.key);\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds props for React.jsx. This function adds children into the props\n // and ensures that props is always an object\n function buildJSXOpeningElementAttributes(\n attribs: NodePath[],\n children: Expression[],\n ) {\n const props = attribs.reduce(accumulateAttribute, []);\n\n // In React.jsx, children is no longer a separate argument, but passed in\n // through the argument object\n if (children?.length > 0) {\n props.push(buildChildrenProperty(children));\n }\n\n return t.objectExpression(props);\n }\n\n // Builds JSX Fragment <> into\n // Production: React.jsx(type, arguments)\n // Development: React.jsxDEV(type, { children })\n function buildJSXFragmentCall(\n path: NodePath,\n file: PluginPass,\n ) {\n const args = [get(file, \"id/fragment\")()];\n\n const children = t.react.buildChildren(path.node);\n\n args.push(\n t.objectExpression(\n children.length > 0\n ? [\n buildChildrenProperty(\n //@ts-expect-error The children here contains JSXSpreadChild,\n // which will be thrown later\n children,\n ),\n ]\n : [],\n ),\n );\n\n if (development) {\n args.push(\n path.scope.buildUndefinedNode(),\n t.booleanLiteral(children.length > 1),\n );\n }\n\n return call(file, children.length > 1 ? \"jsxs\" : \"jsx\", args);\n }\n\n // Builds JSX Fragment <> into\n // React.createElement(React.Fragment, null, ...children)\n function buildCreateElementFragmentCall(\n path: NodePath,\n file: PluginPass,\n ) {\n if (filter && !filter(path.node, file)) return;\n\n return call(file, \"createElement\", [\n get(file, \"id/fragment\")(),\n t.nullLiteral(),\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n // Builds JSX into:\n // Production: React.createElement(type, arguments, children)\n // Development: React.createElement(type, arguments, children, source, self)\n function buildCreateElementCall(\n path: NodePath,\n file: PluginPass,\n ) {\n const openingPath = path.get(\"openingElement\");\n\n return call(file, \"createElement\", [\n getTag(openingPath),\n buildCreateElementOpeningElementAttributes(\n file,\n path,\n openingPath.get(\"attributes\"),\n ),\n // @ts-expect-error JSXSpreadChild has been transformed in convertAttributeValue\n ...t.react.buildChildren(path.node),\n ]);\n }\n\n function getTag(openingPath: NodePath) {\n const tagExpr = convertJSXIdentifier(\n openingPath.node.name,\n openingPath.node,\n );\n\n let tagName: string;\n if (t.isIdentifier(tagExpr)) {\n tagName = tagExpr.name;\n } else if (t.isStringLiteral(tagExpr)) {\n tagName = tagExpr.value;\n }\n\n if (t.react.isCompatTag(tagName)) {\n return t.stringLiteral(tagName);\n } else {\n return tagExpr;\n }\n }\n\n /**\n * The logic for this is quite terse. It's because we need to\n * support spread elements. We loop over all attributes,\n * breaking on spreads, we then push a new object containing\n * all prior attributes to an array for later processing.\n */\n function buildCreateElementOpeningElementAttributes(\n file: PluginPass,\n path: NodePath,\n attribs: NodePath[],\n ) {\n const runtime = get(file, \"runtime\");\n if (!process.env.BABEL_8_BREAKING) {\n if (runtime !== \"automatic\") {\n const objs = [];\n const props = attribs.reduce(accumulateAttribute, []);\n\n if (!useSpread) {\n // Convert syntax to use multiple objects instead of spread\n let start = 0;\n props.forEach((prop, i) => {\n if (t.isSpreadElement(prop)) {\n if (i > start) {\n objs.push(t.objectExpression(props.slice(start, i)));\n }\n objs.push(prop.argument);\n start = i + 1;\n }\n });\n if (props.length > start) {\n objs.push(t.objectExpression(props.slice(start)));\n }\n } else if (props.length) {\n objs.push(t.objectExpression(props));\n }\n\n if (!objs.length) {\n return t.nullLiteral();\n }\n\n if (objs.length === 1) {\n if (\n !(\n t.isSpreadElement(props[0]) &&\n // If an object expression is spread element's argument\n // it is very likely to contain __proto__ and we should stop\n // optimizing spread element\n t.isObjectExpression(props[0].argument)\n )\n ) {\n return objs[0];\n }\n }\n\n // looks like we have multiple objects\n if (!t.isObjectExpression(objs[0])) {\n objs.unshift(t.objectExpression([]));\n }\n\n const helper = useBuiltIns\n ? t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\"))\n : file.addHelper(\"extends\");\n\n // spread it\n return t.callExpression(helper, objs);\n }\n }\n\n const props: ObjectExpression[\"properties\"] = [];\n const found = Object.create(null);\n\n for (const attr of attribs) {\n const { node } = attr;\n const name =\n t.isJSXAttribute(node) &&\n t.isJSXIdentifier(node.name) &&\n node.name.name;\n\n if (\n runtime === \"automatic\" &&\n (name === \"__source\" || name === \"__self\")\n ) {\n if (found[name]) throw sourceSelfError(path, name);\n found[name] = true;\n }\n\n accumulateAttribute(props, attr);\n }\n\n return props.length === 1 &&\n t.isSpreadElement(props[0]) &&\n // If an object expression is spread element's argument\n // it is very likely to contain __proto__ and we should stop\n // optimizing spread element\n !t.isObjectExpression(props[0].argument)\n ? props[0].argument\n : props.length > 0\n ? t.objectExpression(props)\n : t.nullLiteral();\n }\n });\n\n function getSource(source: string, importName: string) {\n switch (importName) {\n case \"Fragment\":\n return `${source}/${development ? \"jsx-dev-runtime\" : \"jsx-runtime\"}`;\n case \"jsxDEV\":\n return `${source}/jsx-dev-runtime`;\n case \"jsx\":\n case \"jsxs\":\n return `${source}/jsx-runtime`;\n case \"createElement\":\n return source;\n }\n }\n\n function createImportLazily(\n pass: PluginPass,\n path: NodePath,\n importName: string,\n source: string,\n ): () => Identifier | MemberExpression {\n return () => {\n const actualSource = getSource(source, importName);\n if (isModule(path)) {\n let reference = get(pass, `imports/${importName}`);\n if (reference) return t.cloneNode(reference);\n\n reference = addNamed(path, importName, actualSource, {\n importedInterop: \"uncompiled\",\n importPosition: \"after\",\n });\n set(pass, `imports/${importName}`, reference);\n\n return reference;\n } else {\n let reference = get(pass, `requires/${actualSource}`);\n if (reference) {\n reference = t.cloneNode(reference);\n } else {\n reference = addNamespace(path, actualSource, {\n importedInterop: \"uncompiled\",\n });\n set(pass, `requires/${actualSource}`, reference);\n }\n\n return t.memberExpression(reference, t.identifier(importName));\n }\n };\n }\n}\n\nfunction toMemberExpression(id: string): Identifier | MemberExpression {\n return (\n id\n .split(\".\")\n .map(name => t.identifier(name))\n // @ts-expect-error - The Array#reduce does not have a signature\n // where the type of initial value differs from callback return type\n .reduce((object, property) => t.memberExpression(object, property))\n );\n}\n\nfunction makeSource(path: NodePath, state: PluginPass) {\n const location = path.node.loc;\n if (!location) {\n // the element was generated and doesn't have location information\n return path.scope.buildUndefinedNode();\n }\n\n // @ts-expect-error todo: avoid mutating PluginPass\n if (!state.fileNameIdentifier) {\n const { filename = \"\" } = state;\n\n const fileNameIdentifier = path.scope.generateUidIdentifier(\"_jsxFileName\");\n path.scope.getProgramParent().push({\n id: fileNameIdentifier,\n init: t.stringLiteral(filename),\n });\n // @ts-expect-error todo: avoid mutating PluginPass\n state.fileNameIdentifier = fileNameIdentifier;\n }\n\n return makeTrace(\n t.cloneNode(\n // @ts-expect-error todo: avoid mutating PluginPass\n state.fileNameIdentifier,\n ),\n location.start.line,\n location.start.column,\n );\n}\n\nfunction makeTrace(\n fileNameIdentifier: Identifier,\n lineNumber?: number,\n column0Based?: number,\n) {\n const fileLineLiteral =\n lineNumber != null ? t.numericLiteral(lineNumber) : t.nullLiteral();\n\n const fileColumnLiteral =\n column0Based != null ? t.numericLiteral(column0Based + 1) : t.nullLiteral();\n\n return template.expression.ast`{\n fileName: ${fileNameIdentifier},\n lineNumber: ${fileLineLiteral},\n columnNumber: ${fileColumnLiteral},\n }`;\n}\n\nfunction sourceSelfError(path: NodePath, name: string) {\n const pluginName = `transform-react-jsx-${name.slice(2)}`;\n\n return path.buildCodeFrameError(\n `Duplicate ${name} prop found. You are most likely using the deprecated ${pluginName} Babel plugin. Both __source and __self are automatically set when using the automatic runtime. Please remove transform-react-jsx-source and transform-react-jsx-self from your Babel config.`,\n );\n}\n","/* eslint-disable @babel/development/plugin-name */\n\nimport createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx\",\n development: false,\n});\n\nexport type { Options } from \"./create-plugin.ts\";\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport helper from \"@babel/helper-builder-react-jsx\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-react-jsx-compat\",\n\n manipulateOptions(_, parserOpts) {\n parserOpts.plugins.push(\"jsx\");\n },\n\n visitor: helper({\n pre(state) {\n state.callee = state.tagExpr;\n },\n\n post(state) {\n if (t.react.isCompatTag(state.tagName)) {\n state.call = t.callExpression(\n t.memberExpression(\n t.memberExpression(t.identifier(\"React\"), t.identifier(\"DOM\")),\n state.tagExpr,\n t.isLiteral(state.tagExpr),\n ),\n state.args,\n );\n }\n },\n compat: true,\n }),\n };\n});\n","import createPlugin from \"./create-plugin.ts\";\n\nexport default createPlugin({\n name: \"transform-react-jsx/development\",\n development: true,\n});\n","/**\n * This adds a __self={this} JSX attribute to all JSX elements, which React will use\n * to generate some runtime warnings. However, if the JSX element appears within a\n * constructor of a derived class, `__self={this}` will not be inserted in order to\n * prevent runtime errors.\n *\n * == JSX Literals ==\n *\n * \n *\n * becomes:\n *\n * \n */\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { Visitor, NodePath } from \"@babel/traverse\";\n\nconst TRACE_ID = \"__self\";\n\n/**\n * Finds the closest parent function that provides `this`. Specifically, this looks for\n * the first parent function that isn't an arrow function.\n *\n * Derived from `Scope#getFunctionParent`\n */\nfunction getThisFunctionParent(\n path: NodePath,\n): NodePath> | null {\n let scope = path.scope;\n do {\n const { path } = scope;\n if (path.isFunctionParent() && !path.isArrowFunctionExpression()) {\n return path;\n }\n } while ((scope = scope.parent));\n return null;\n}\n\n/**\n * Returns whether the class has specified a superclass.\n */\nfunction isDerivedClass(classPath: NodePath) {\n return classPath.node.superClass !== null;\n}\n\n/**\n * Returns whether `this` is allowed at given path.\n */\nfunction isThisAllowed(path: NodePath) {\n // This specifically skips arrow functions as they do not rewrite `this`.\n const parentMethodOrFunction = getThisFunctionParent(path);\n if (parentMethodOrFunction === null) {\n // We are not in a method or function. It is fine to use `this`.\n return true;\n }\n if (!parentMethodOrFunction.isMethod()) {\n // If the closest parent is a regular function, `this` will be rebound, therefore it is fine to use `this`.\n return true;\n }\n // Current node is within a method, so we need to check if the method is a constructor.\n if (parentMethodOrFunction.node.kind !== \"constructor\") {\n // We are not in a constructor, therefore it is always fine to use `this`.\n return true;\n }\n // Now we are in a constructor. If it is a derived class, we do not reference `this`.\n return !isDerivedClass(\n parentMethodOrFunction.parentPath.parentPath as NodePath,\n );\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const visitor: Visitor = {\n JSXOpeningElement(path) {\n if (!isThisAllowed(path)) {\n return;\n }\n const node = path.node;\n const id = t.jsxIdentifier(TRACE_ID);\n const trace = t.thisExpression();\n\n node.attributes.push(t.jsxAttribute(id, t.jsxExpressionContainer(trace)));\n },\n };\n\n return {\n name: \"transform-react-jsx-self\",\n visitor: {\n Program(path) {\n path.traverse(visitor);\n },\n },\n };\n});\n","/**\n * This adds {fileName, lineNumber, columnNumber} annotations to JSX tags.\n *\n * NOTE: lineNumber and columnNumber are both 1-based.\n *\n * == JSX Literals ==\n *\n * \n *\n * becomes:\n *\n * var __jsxFileName = 'this/file.js';\n * \n */\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t, template } from \"@babel/core\";\n\nconst TRACE_ID = \"__source\";\nconst FILE_NAME_VAR = \"_jsxFileName\";\n\nconst createNodeFromNullish = (\n val: T | null,\n fn: (val: T) => N,\n): N | t.NullLiteral => (val == null ? t.nullLiteral() : fn(val));\n\ntype State = {\n fileNameIdentifier: t.Identifier;\n};\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n function makeTrace(\n fileNameIdentifier: t.Identifier,\n { line, column }: { line: number; column: number },\n ) {\n const fileLineLiteral = createNodeFromNullish(line, t.numericLiteral);\n const fileColumnLiteral = createNodeFromNullish(column, c =>\n // c + 1 to make it 1-based instead of 0-based.\n t.numericLiteral(c + 1),\n );\n\n return template.expression.ast`{\n fileName: ${fileNameIdentifier},\n lineNumber: ${fileLineLiteral},\n columnNumber: ${fileColumnLiteral},\n }`;\n }\n\n const isSourceAttr = (attr: t.Node) =>\n t.isJSXAttribute(attr) && attr.name.name === TRACE_ID;\n\n return {\n name: \"transform-react-jsx-source\",\n visitor: {\n JSXOpeningElement(path, state) {\n const { node } = path;\n if (\n // the element was generated and doesn't have location information\n !node.loc ||\n // Already has __source\n path.node.attributes.some(isSourceAttr)\n ) {\n return;\n }\n\n if (!state.fileNameIdentifier) {\n const fileNameId = path.scope.generateUidIdentifier(FILE_NAME_VAR);\n state.fileNameIdentifier = fileNameId;\n\n path.scope.getProgramParent().push({\n id: fileNameId,\n init: t.stringLiteral(state.filename || \"\"),\n });\n }\n\n node.attributes.push(\n t.jsxAttribute(\n t.jsxIdentifier(TRACE_ID),\n t.jsxExpressionContainer(\n makeTrace(t.cloneNode(state.fileNameIdentifier), node.loc.start),\n ),\n ),\n );\n },\n },\n };\n});\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","\"use strict\";\n\nexports.__esModule = true;\nexports.getTypes = getTypes;\nexports.isReference = isReference;\nexports.replaceWithOrRemove = replaceWithOrRemove;\nexports.runtimeProperty = runtimeProperty;\nexports.wrapWithTypes = wrapWithTypes;\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar currentTypes = null;\nfunction wrapWithTypes(types, fn) {\n return function () {\n var oldTypes = currentTypes;\n currentTypes = types;\n try {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return fn.apply(this, args);\n } finally {\n currentTypes = oldTypes;\n }\n };\n}\nfunction getTypes() {\n return currentTypes;\n}\nfunction runtimeProperty(name) {\n var t = getTypes();\n return t.memberExpression(t.identifier(\"regeneratorRuntime\"), t.identifier(name), false);\n}\nfunction isReference(path) {\n return path.isReferenced() || path.parentPath.isAssignmentExpression({\n left: path.node\n });\n}\nfunction replaceWithOrRemove(path, replacement) {\n if (replacement) {\n path.replaceWith(replacement);\n } else {\n path.remove();\n }\n}","\"use strict\";\n\nvar util = _interopRequireWildcard(require(\"./util\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\n// The hoist function takes a FunctionExpression or FunctionDeclaration\n// and replaces any Declaration nodes in its body with assignments, then\n// returns a VariableDeclaration containing just the names of the removed\n// declarations.\nexports.hoist = function (funPath) {\n var t = util.getTypes();\n t.assertFunction(funPath.node);\n var vars = {};\n function varDeclToExpr(_ref, includeIdentifiers) {\n var vdec = _ref.node,\n scope = _ref.scope;\n t.assertVariableDeclaration(vdec);\n // TODO assert.equal(vdec.kind, \"var\");\n var exprs = [];\n vdec.declarations.forEach(function (dec) {\n // Note: We duplicate 'dec.id' here to ensure that the variable declaration IDs don't\n // have the same 'loc' value, since that can make sourcemaps and retainLines behave poorly.\n vars[dec.id.name] = t.identifier(dec.id.name);\n\n // Remove the binding, to avoid \"duplicate declaration\" errors when it will\n // be injected again.\n scope.removeBinding(dec.id.name);\n if (dec.init) {\n exprs.push(t.assignmentExpression(\"=\", dec.id, dec.init));\n } else if (includeIdentifiers) {\n exprs.push(dec.id);\n }\n });\n if (exprs.length === 0) return null;\n if (exprs.length === 1) return exprs[0];\n return t.sequenceExpression(exprs);\n }\n funPath.get(\"body\").traverse({\n VariableDeclaration: {\n exit: function exit(path) {\n var expr = varDeclToExpr(path, false);\n if (expr === null) {\n path.remove();\n } else {\n // We don't need to traverse this expression any further because\n // there can't be any new declarations inside an expression.\n util.replaceWithOrRemove(path, t.expressionStatement(expr));\n }\n\n // Since the original node has been either removed or replaced,\n // avoid traversing it any further.\n path.skip();\n }\n },\n ForStatement: function ForStatement(path) {\n var init = path.get(\"init\");\n if (init.isVariableDeclaration()) {\n util.replaceWithOrRemove(init, varDeclToExpr(init, false));\n }\n },\n ForXStatement: function ForXStatement(path) {\n var left = path.get(\"left\");\n if (left.isVariableDeclaration()) {\n util.replaceWithOrRemove(left, varDeclToExpr(left, true));\n }\n },\n FunctionDeclaration: function FunctionDeclaration(path) {\n var node = path.node;\n vars[node.id.name] = node.id;\n var assignment = t.expressionStatement(t.assignmentExpression(\"=\", t.clone(node.id), t.functionExpression(path.scope.generateUidIdentifierBasedOnNode(node), node.params, node.body, node.generator, node.expression)));\n if (path.parentPath.isBlockStatement()) {\n // Insert the assignment form before the first statement in the\n // enclosing block.\n path.parentPath.unshiftContainer(\"body\", assignment);\n\n // Remove the function declaration now that we've inserted the\n // equivalent assignment form at the beginning of the block.\n path.remove();\n } else {\n // If the parent node is not a block statement, then we can just\n // replace the declaration with the equivalent assignment form\n // without worrying about hoisting it.\n util.replaceWithOrRemove(path, assignment);\n }\n\n // Remove the binding, to avoid \"duplicate declaration\" errors when it will\n // be injected again.\n path.scope.removeBinding(node.id.name);\n\n // Don't hoist variables out of inner functions.\n path.skip();\n },\n FunctionExpression: function FunctionExpression(path) {\n // Don't descend into nested function expressions.\n path.skip();\n },\n ArrowFunctionExpression: function ArrowFunctionExpression(path) {\n // Don't descend into nested function expressions.\n path.skip();\n }\n });\n var paramNames = {};\n funPath.get(\"params\").forEach(function (paramPath) {\n var param = paramPath.node;\n if (t.isIdentifier(param)) {\n paramNames[param.name] = param;\n } else {\n // Variables declared by destructuring parameter patterns will be\n // harmlessly re-declared.\n }\n });\n var declarations = [];\n Object.keys(vars).forEach(function (name) {\n if (!hasOwn.call(paramNames, name)) {\n declarations.push(t.variableDeclarator(vars[name], null));\n }\n });\n if (declarations.length === 0) {\n return null; // Be sure to handle this case!\n }\n\n return t.variableDeclaration(\"var\", declarations);\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _assert = _interopRequireDefault(require(\"assert\"));\nvar _emit = require(\"./emit\");\nvar _util = require(\"util\");\nvar _util2 = require(\"./util\");\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction Entry() {\n _assert[\"default\"].ok(this instanceof Entry);\n}\nfunction FunctionEntry(returnLoc) {\n Entry.call(this);\n (0, _util2.getTypes)().assertLiteral(returnLoc);\n this.returnLoc = returnLoc;\n}\n(0, _util.inherits)(FunctionEntry, Entry);\nexports.FunctionEntry = FunctionEntry;\nfunction LoopEntry(breakLoc, continueLoc, label) {\n Entry.call(this);\n var t = (0, _util2.getTypes)();\n t.assertLiteral(breakLoc);\n t.assertLiteral(continueLoc);\n if (label) {\n t.assertIdentifier(label);\n } else {\n label = null;\n }\n this.breakLoc = breakLoc;\n this.continueLoc = continueLoc;\n this.label = label;\n}\n(0, _util.inherits)(LoopEntry, Entry);\nexports.LoopEntry = LoopEntry;\nfunction SwitchEntry(breakLoc) {\n Entry.call(this);\n (0, _util2.getTypes)().assertLiteral(breakLoc);\n this.breakLoc = breakLoc;\n}\n(0, _util.inherits)(SwitchEntry, Entry);\nexports.SwitchEntry = SwitchEntry;\nfunction TryEntry(firstLoc, catchEntry, finallyEntry) {\n Entry.call(this);\n var t = (0, _util2.getTypes)();\n t.assertLiteral(firstLoc);\n if (catchEntry) {\n _assert[\"default\"].ok(catchEntry instanceof CatchEntry);\n } else {\n catchEntry = null;\n }\n if (finallyEntry) {\n _assert[\"default\"].ok(finallyEntry instanceof FinallyEntry);\n } else {\n finallyEntry = null;\n }\n\n // Have to have one or the other (or both).\n _assert[\"default\"].ok(catchEntry || finallyEntry);\n this.firstLoc = firstLoc;\n this.catchEntry = catchEntry;\n this.finallyEntry = finallyEntry;\n}\n(0, _util.inherits)(TryEntry, Entry);\nexports.TryEntry = TryEntry;\nfunction CatchEntry(firstLoc, paramId) {\n Entry.call(this);\n var t = (0, _util2.getTypes)();\n t.assertLiteral(firstLoc);\n t.assertIdentifier(paramId);\n this.firstLoc = firstLoc;\n this.paramId = paramId;\n}\n(0, _util.inherits)(CatchEntry, Entry);\nexports.CatchEntry = CatchEntry;\nfunction FinallyEntry(firstLoc, afterLoc) {\n Entry.call(this);\n var t = (0, _util2.getTypes)();\n t.assertLiteral(firstLoc);\n t.assertLiteral(afterLoc);\n this.firstLoc = firstLoc;\n this.afterLoc = afterLoc;\n}\n(0, _util.inherits)(FinallyEntry, Entry);\nexports.FinallyEntry = FinallyEntry;\nfunction LabeledEntry(breakLoc, label) {\n Entry.call(this);\n var t = (0, _util2.getTypes)();\n t.assertLiteral(breakLoc);\n t.assertIdentifier(label);\n this.breakLoc = breakLoc;\n this.label = label;\n}\n(0, _util.inherits)(LabeledEntry, Entry);\nexports.LabeledEntry = LabeledEntry;\nfunction LeapManager(emitter) {\n _assert[\"default\"].ok(this instanceof LeapManager);\n _assert[\"default\"].ok(emitter instanceof _emit.Emitter);\n this.emitter = emitter;\n this.entryStack = [new FunctionEntry(emitter.finalLoc)];\n}\nvar LMp = LeapManager.prototype;\nexports.LeapManager = LeapManager;\nLMp.withEntry = function (entry, callback) {\n _assert[\"default\"].ok(entry instanceof Entry);\n this.entryStack.push(entry);\n try {\n callback.call(this.emitter);\n } finally {\n var popped = this.entryStack.pop();\n _assert[\"default\"].strictEqual(popped, entry);\n }\n};\nLMp._findLeapLocation = function (property, label) {\n for (var i = this.entryStack.length - 1; i >= 0; --i) {\n var entry = this.entryStack[i];\n var loc = entry[property];\n if (loc) {\n if (label) {\n if (entry.label && entry.label.name === label.name) {\n return loc;\n }\n } else if (entry instanceof LabeledEntry) {\n // Ignore LabeledEntry entries unless we are actually breaking to\n // a label.\n } else {\n return loc;\n }\n }\n }\n return null;\n};\nLMp.getBreakLoc = function (label) {\n return this._findLeapLocation(\"breakLoc\", label);\n};\nLMp.getContinueLoc = function (label) {\n return this._findLeapLocation(\"continueLoc\", label);\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _assert = _interopRequireDefault(require(\"assert\"));\nvar _util = require(\"./util.js\");\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar mMap = new WeakMap();\nfunction m(node) {\n if (!mMap.has(node)) {\n mMap.set(node, {});\n }\n return mMap.get(node);\n}\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction makePredicate(propertyName, knownTypes) {\n function onlyChildren(node) {\n var t = (0, _util.getTypes)();\n t.assertNode(node);\n\n // Assume no side effects until we find out otherwise.\n var result = false;\n function check(child) {\n if (result) {\n // Do nothing.\n } else if (Array.isArray(child)) {\n child.some(check);\n } else if (t.isNode(child)) {\n _assert[\"default\"].strictEqual(result, false);\n result = predicate(child);\n }\n return result;\n }\n var keys = t.VISITOR_KEYS[node.type];\n if (keys) {\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var child = node[key];\n check(child);\n }\n }\n return result;\n }\n function predicate(node) {\n (0, _util.getTypes)().assertNode(node);\n var meta = m(node);\n if (hasOwn.call(meta, propertyName)) return meta[propertyName];\n\n // Certain types are \"opaque,\" which means they have no side\n // effects or leaps and we don't care about their subexpressions.\n if (hasOwn.call(opaqueTypes, node.type)) return meta[propertyName] = false;\n if (hasOwn.call(knownTypes, node.type)) return meta[propertyName] = true;\n return meta[propertyName] = onlyChildren(node);\n }\n predicate.onlyChildren = onlyChildren;\n return predicate;\n}\nvar opaqueTypes = {\n FunctionExpression: true,\n ArrowFunctionExpression: true\n};\n\n// These types potentially have side effects regardless of what side\n// effects their subexpressions have.\nvar sideEffectTypes = {\n CallExpression: true,\n // Anything could happen!\n ForInStatement: true,\n // Modifies the key variable.\n UnaryExpression: true,\n // Think delete.\n BinaryExpression: true,\n // Might invoke .toString() or .valueOf().\n AssignmentExpression: true,\n // Side-effecting by definition.\n UpdateExpression: true,\n // Updates are essentially assignments.\n NewExpression: true // Similar to CallExpression.\n};\n\n// These types are the direct cause of all leaps in control flow.\nvar leapTypes = {\n YieldExpression: true,\n BreakStatement: true,\n ContinueStatement: true,\n ReturnStatement: true,\n ThrowStatement: true\n};\n\n// All leap types are also side effect types.\nfor (var type in leapTypes) {\n if (hasOwn.call(leapTypes, type)) {\n sideEffectTypes[type] = leapTypes[type];\n }\n}\nexports.hasSideEffects = makePredicate(\"hasSideEffects\", sideEffectTypes);\nexports.containsLeap = makePredicate(\"containsLeap\", leapTypes);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _assert = _interopRequireDefault(require(\"assert\"));\nvar leap = _interopRequireWildcard(require(\"./leap\"));\nvar meta = _interopRequireWildcard(require(\"./meta\"));\nvar util = _interopRequireWildcard(require(\"./util\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nfunction Emitter(contextId) {\n _assert[\"default\"].ok(this instanceof Emitter);\n util.getTypes().assertIdentifier(contextId);\n\n // Used to generate unique temporary names.\n this.nextTempId = 0;\n\n // In order to make sure the context object does not collide with\n // anything in the local scope, we might have to rename it, so we\n // refer to it symbolically instead of just assuming that it will be\n // called \"context\".\n this.contextId = contextId;\n\n // An append-only list of Statements that grows each time this.emit is\n // called.\n this.listing = [];\n\n // A sparse array whose keys correspond to locations in this.listing\n // that have been marked as branch/jump targets.\n this.marked = [true];\n this.insertedLocs = new Set();\n\n // The last location will be marked when this.getDispatchLoop is\n // called.\n this.finalLoc = this.loc();\n\n // A list of all leap.TryEntry statements emitted.\n this.tryEntries = [];\n\n // Each time we evaluate the body of a loop, we tell this.leapManager\n // to enter a nested loop context that determines the meaning of break\n // and continue statements therein.\n this.leapManager = new leap.LeapManager(this);\n}\nvar Ep = Emitter.prototype;\nexports.Emitter = Emitter;\n\n// Offsets into this.listing that could be used as targets for branches or\n// jumps are represented as numeric Literal nodes. This representation has\n// the amazingly convenient benefit of allowing the exact value of the\n// location to be determined at any time, even after generating code that\n// refers to the location.\n// We use 'Number.MAX_VALUE' to mark uninitialized location. We can safely do\n// so because no code can realistically have about 1.8e+308 locations before\n// hitting memory limit of the machine it's running on. For comparison, the\n// estimated number of atoms in the observable universe is around 1e+80.\nvar PENDING_LOCATION = Number.MAX_VALUE;\nEp.loc = function () {\n var l = util.getTypes().numericLiteral(PENDING_LOCATION);\n this.insertedLocs.add(l);\n return l;\n};\nEp.getInsertedLocs = function () {\n return this.insertedLocs;\n};\nEp.getContextId = function () {\n return util.getTypes().clone(this.contextId);\n};\n\n// Sets the exact value of the given location to the offset of the next\n// Statement emitted.\nEp.mark = function (loc) {\n util.getTypes().assertLiteral(loc);\n var index = this.listing.length;\n if (loc.value === PENDING_LOCATION) {\n loc.value = index;\n } else {\n // Locations can be marked redundantly, but their values cannot change\n // once set the first time.\n _assert[\"default\"].strictEqual(loc.value, index);\n }\n this.marked[index] = true;\n return loc;\n};\nEp.emit = function (node) {\n var t = util.getTypes();\n if (t.isExpression(node)) {\n node = t.expressionStatement(node);\n }\n t.assertStatement(node);\n this.listing.push(node);\n};\n\n// Shorthand for emitting assignment statements. This will come in handy\n// for assignments to temporary variables.\nEp.emitAssign = function (lhs, rhs) {\n this.emit(this.assign(lhs, rhs));\n return lhs;\n};\n\n// Shorthand for an assignment statement.\nEp.assign = function (lhs, rhs) {\n var t = util.getTypes();\n return t.expressionStatement(t.assignmentExpression(\"=\", t.cloneDeep(lhs), rhs));\n};\n\n// Convenience function for generating expressions like context.next,\n// context.sent, and context.rval.\nEp.contextProperty = function (name, computed) {\n var t = util.getTypes();\n return t.memberExpression(this.getContextId(), computed ? t.stringLiteral(name) : t.identifier(name), !!computed);\n};\n\n// Shorthand for setting context.rval and jumping to `context.stop()`.\nEp.stop = function (rval) {\n if (rval) {\n this.setReturnValue(rval);\n }\n this.jump(this.finalLoc);\n};\nEp.setReturnValue = function (valuePath) {\n util.getTypes().assertExpression(valuePath.value);\n this.emitAssign(this.contextProperty(\"rval\"), this.explodeExpression(valuePath));\n};\nEp.clearPendingException = function (tryLoc, assignee) {\n var t = util.getTypes();\n t.assertLiteral(tryLoc);\n var catchCall = t.callExpression(this.contextProperty(\"catch\", true), [t.clone(tryLoc)]);\n if (assignee) {\n this.emitAssign(assignee, catchCall);\n } else {\n this.emit(catchCall);\n }\n};\n\n// Emits code for an unconditional jump to the given location, even if the\n// exact value of the location is not yet known.\nEp.jump = function (toLoc) {\n this.emitAssign(this.contextProperty(\"next\"), toLoc);\n this.emit(util.getTypes().breakStatement());\n};\n\n// Conditional jump.\nEp.jumpIf = function (test, toLoc) {\n var t = util.getTypes();\n t.assertExpression(test);\n t.assertLiteral(toLoc);\n this.emit(t.ifStatement(test, t.blockStatement([this.assign(this.contextProperty(\"next\"), toLoc), t.breakStatement()])));\n};\n\n// Conditional jump, with the condition negated.\nEp.jumpIfNot = function (test, toLoc) {\n var t = util.getTypes();\n t.assertExpression(test);\n t.assertLiteral(toLoc);\n var negatedTest;\n if (t.isUnaryExpression(test) && test.operator === \"!\") {\n // Avoid double negation.\n negatedTest = test.argument;\n } else {\n negatedTest = t.unaryExpression(\"!\", test);\n }\n this.emit(t.ifStatement(negatedTest, t.blockStatement([this.assign(this.contextProperty(\"next\"), toLoc), t.breakStatement()])));\n};\n\n// Returns a unique MemberExpression that can be used to store and\n// retrieve temporary values. Since the object of the member expression is\n// the context object, which is presumed to coexist peacefully with all\n// other local variables, and since we just increment `nextTempId`\n// monotonically, uniqueness is assured.\nEp.makeTempVar = function () {\n return this.contextProperty(\"t\" + this.nextTempId++);\n};\nEp.getContextFunction = function (id) {\n var t = util.getTypes();\n return t.functionExpression(id || null /*Anonymous*/, [this.getContextId()], t.blockStatement([this.getDispatchLoop()]), false,\n // Not a generator anymore!\n false // Nor an expression.\n );\n};\n\n// Turns this.listing into a loop of the form\n//\n// while (1) switch (context.next) {\n// case 0:\n// ...\n// case n:\n// return context.stop();\n// }\n//\n// Each marked location in this.listing will correspond to one generated\n// case statement.\nEp.getDispatchLoop = function () {\n var self = this;\n var t = util.getTypes();\n var cases = [];\n var current;\n\n // If we encounter a break, continue, or return statement in a switch\n // case, we can skip the rest of the statements until the next case.\n var alreadyEnded = false;\n self.listing.forEach(function (stmt, i) {\n if (self.marked.hasOwnProperty(i)) {\n cases.push(t.switchCase(t.numericLiteral(i), current = []));\n alreadyEnded = false;\n }\n if (!alreadyEnded) {\n current.push(stmt);\n if (t.isCompletionStatement(stmt)) alreadyEnded = true;\n }\n });\n\n // Now that we know how many statements there will be in this.listing,\n // we can finally resolve this.finalLoc.value.\n this.finalLoc.value = this.listing.length;\n cases.push(t.switchCase(this.finalLoc, [\n // Intentionally fall through to the \"end\" case...\n ]),\n // So that the runtime can jump to the final location without having\n // to know its offset, we provide the \"end\" case as a synonym.\n t.switchCase(t.stringLiteral(\"end\"), [\n // This will check/clear both context.thrown and context.rval.\n t.returnStatement(t.callExpression(this.contextProperty(\"stop\"), []))]));\n return t.whileStatement(t.numericLiteral(1), t.switchStatement(t.assignmentExpression(\"=\", this.contextProperty(\"prev\"), this.contextProperty(\"next\")), cases));\n};\nEp.getTryLocsList = function () {\n if (this.tryEntries.length === 0) {\n // To avoid adding a needless [] to the majority of runtime.wrap\n // argument lists, force the caller to handle this case specially.\n return null;\n }\n var t = util.getTypes();\n var lastLocValue = 0;\n return t.arrayExpression(this.tryEntries.map(function (tryEntry) {\n var thisLocValue = tryEntry.firstLoc.value;\n _assert[\"default\"].ok(thisLocValue >= lastLocValue, \"try entries out of order\");\n lastLocValue = thisLocValue;\n var ce = tryEntry.catchEntry;\n var fe = tryEntry.finallyEntry;\n var locs = [tryEntry.firstLoc,\n // The null here makes a hole in the array.\n ce ? ce.firstLoc : null];\n if (fe) {\n locs[2] = fe.firstLoc;\n locs[3] = fe.afterLoc;\n }\n return t.arrayExpression(locs.map(function (loc) {\n return loc && t.clone(loc);\n }));\n }));\n};\n\n// All side effects must be realized in order.\n\n// If any subexpression harbors a leap, all subexpressions must be\n// neutered of side effects.\n\n// No destructive modification of AST nodes.\n\nEp.explode = function (path, ignoreResult) {\n var t = util.getTypes();\n var node = path.node;\n var self = this;\n t.assertNode(node);\n if (t.isDeclaration(node)) throw getDeclError(node);\n if (t.isStatement(node)) return self.explodeStatement(path);\n if (t.isExpression(node)) return self.explodeExpression(path, ignoreResult);\n switch (node.type) {\n case \"Program\":\n return path.get(\"body\").map(self.explodeStatement, self);\n case \"VariableDeclarator\":\n throw getDeclError(node);\n\n // These node types should be handled by their parent nodes\n // (ObjectExpression, SwitchStatement, and TryStatement, respectively).\n case \"Property\":\n case \"SwitchCase\":\n case \"CatchClause\":\n throw new Error(node.type + \" nodes should be handled by their parents\");\n default:\n throw new Error(\"unknown Node of type \" + JSON.stringify(node.type));\n }\n};\nfunction getDeclError(node) {\n return new Error(\"all declarations should have been transformed into \" + \"assignments before the Exploder began its work: \" + JSON.stringify(node));\n}\nEp.explodeStatement = function (path, labelId) {\n var t = util.getTypes();\n var stmt = path.node;\n var self = this;\n var before, after, head;\n t.assertStatement(stmt);\n if (labelId) {\n t.assertIdentifier(labelId);\n } else {\n labelId = null;\n }\n\n // Explode BlockStatement nodes even if they do not contain a yield,\n // because we don't want or need the curly braces.\n if (t.isBlockStatement(stmt)) {\n path.get(\"body\").forEach(function (path) {\n self.explodeStatement(path);\n });\n return;\n }\n if (!meta.containsLeap(stmt)) {\n // Technically we should be able to avoid emitting the statement\n // altogether if !meta.hasSideEffects(stmt), but that leads to\n // confusing generated code (for instance, `while (true) {}` just\n // disappears) and is probably a more appropriate job for a dedicated\n // dead code elimination pass.\n self.emit(stmt);\n return;\n }\n switch (stmt.type) {\n case \"ExpressionStatement\":\n self.explodeExpression(path.get(\"expression\"), true);\n break;\n case \"LabeledStatement\":\n after = this.loc();\n\n // Did you know you can break from any labeled block statement or\n // control structure? Well, you can! Note: when a labeled loop is\n // encountered, the leap.LabeledEntry created here will immediately\n // enclose a leap.LoopEntry on the leap manager's stack, and both\n // entries will have the same label. Though this works just fine, it\n // may seem a bit redundant. In theory, we could check here to\n // determine if stmt knows how to handle its own label; for example,\n // stmt happens to be a WhileStatement and so we know it's going to\n // establish its own LoopEntry when we explode it (below). Then this\n // LabeledEntry would be unnecessary. Alternatively, we might be\n // tempted not to pass stmt.label down into self.explodeStatement,\n // because we've handled the label here, but that's a mistake because\n // labeled loops may contain labeled continue statements, which is not\n // something we can handle in this generic case. All in all, I think a\n // little redundancy greatly simplifies the logic of this case, since\n // it's clear that we handle all possible LabeledStatements correctly\n // here, regardless of whether they interact with the leap manager\n // themselves. Also remember that labels and break/continue-to-label\n // statements are rare, and all of this logic happens at transform\n // time, so it has no additional runtime cost.\n self.leapManager.withEntry(new leap.LabeledEntry(after, stmt.label), function () {\n self.explodeStatement(path.get(\"body\"), stmt.label);\n });\n self.mark(after);\n break;\n case \"WhileStatement\":\n before = this.loc();\n after = this.loc();\n self.mark(before);\n self.jumpIfNot(self.explodeExpression(path.get(\"test\")), after);\n self.leapManager.withEntry(new leap.LoopEntry(after, before, labelId), function () {\n self.explodeStatement(path.get(\"body\"));\n });\n self.jump(before);\n self.mark(after);\n break;\n case \"DoWhileStatement\":\n var first = this.loc();\n var test = this.loc();\n after = this.loc();\n self.mark(first);\n self.leapManager.withEntry(new leap.LoopEntry(after, test, labelId), function () {\n self.explode(path.get(\"body\"));\n });\n self.mark(test);\n self.jumpIf(self.explodeExpression(path.get(\"test\")), first);\n self.mark(after);\n break;\n case \"ForStatement\":\n head = this.loc();\n var update = this.loc();\n after = this.loc();\n if (stmt.init) {\n // We pass true here to indicate that if stmt.init is an expression\n // then we do not care about its result.\n self.explode(path.get(\"init\"), true);\n }\n self.mark(head);\n if (stmt.test) {\n self.jumpIfNot(self.explodeExpression(path.get(\"test\")), after);\n } else {\n // No test means continue unconditionally.\n }\n self.leapManager.withEntry(new leap.LoopEntry(after, update, labelId), function () {\n self.explodeStatement(path.get(\"body\"));\n });\n self.mark(update);\n if (stmt.update) {\n // We pass true here to indicate that if stmt.update is an\n // expression then we do not care about its result.\n self.explode(path.get(\"update\"), true);\n }\n self.jump(head);\n self.mark(after);\n break;\n case \"TypeCastExpression\":\n return self.explodeExpression(path.get(\"expression\"));\n case \"ForInStatement\":\n head = this.loc();\n after = this.loc();\n var keyIterNextFn = self.makeTempVar();\n self.emitAssign(keyIterNextFn, t.callExpression(util.runtimeProperty(\"keys\"), [self.explodeExpression(path.get(\"right\"))]));\n self.mark(head);\n var keyInfoTmpVar = self.makeTempVar();\n self.jumpIf(t.memberExpression(t.assignmentExpression(\"=\", keyInfoTmpVar, t.callExpression(t.cloneDeep(keyIterNextFn), [])), t.identifier(\"done\"), false), after);\n self.emitAssign(stmt.left, t.memberExpression(t.cloneDeep(keyInfoTmpVar), t.identifier(\"value\"), false));\n self.leapManager.withEntry(new leap.LoopEntry(after, head, labelId), function () {\n self.explodeStatement(path.get(\"body\"));\n });\n self.jump(head);\n self.mark(after);\n break;\n case \"BreakStatement\":\n self.emitAbruptCompletion({\n type: \"break\",\n target: self.leapManager.getBreakLoc(stmt.label)\n });\n break;\n case \"ContinueStatement\":\n self.emitAbruptCompletion({\n type: \"continue\",\n target: self.leapManager.getContinueLoc(stmt.label)\n });\n break;\n case \"SwitchStatement\":\n // Always save the discriminant into a temporary variable in case the\n // test expressions overwrite values like context.sent.\n var disc = self.emitAssign(self.makeTempVar(), self.explodeExpression(path.get(\"discriminant\")));\n after = this.loc();\n var defaultLoc = this.loc();\n var condition = defaultLoc;\n var caseLocs = [];\n\n // If there are no cases, .cases might be undefined.\n var cases = stmt.cases || [];\n for (var i = cases.length - 1; i >= 0; --i) {\n var c = cases[i];\n t.assertSwitchCase(c);\n if (c.test) {\n condition = t.conditionalExpression(t.binaryExpression(\"===\", t.cloneDeep(disc), c.test), caseLocs[i] = this.loc(), condition);\n } else {\n caseLocs[i] = defaultLoc;\n }\n }\n var discriminant = path.get(\"discriminant\");\n util.replaceWithOrRemove(discriminant, condition);\n self.jump(self.explodeExpression(discriminant));\n self.leapManager.withEntry(new leap.SwitchEntry(after), function () {\n path.get(\"cases\").forEach(function (casePath) {\n var i = casePath.key;\n self.mark(caseLocs[i]);\n casePath.get(\"consequent\").forEach(function (path) {\n self.explodeStatement(path);\n });\n });\n });\n self.mark(after);\n if (defaultLoc.value === PENDING_LOCATION) {\n self.mark(defaultLoc);\n _assert[\"default\"].strictEqual(after.value, defaultLoc.value);\n }\n break;\n case \"IfStatement\":\n var elseLoc = stmt.alternate && this.loc();\n after = this.loc();\n self.jumpIfNot(self.explodeExpression(path.get(\"test\")), elseLoc || after);\n self.explodeStatement(path.get(\"consequent\"));\n if (elseLoc) {\n self.jump(after);\n self.mark(elseLoc);\n self.explodeStatement(path.get(\"alternate\"));\n }\n self.mark(after);\n break;\n case \"ReturnStatement\":\n self.emitAbruptCompletion({\n type: \"return\",\n value: self.explodeExpression(path.get(\"argument\"))\n });\n break;\n case \"WithStatement\":\n throw new Error(\"WithStatement not supported in generator functions.\");\n case \"TryStatement\":\n after = this.loc();\n var handler = stmt.handler;\n var catchLoc = handler && this.loc();\n var catchEntry = catchLoc && new leap.CatchEntry(catchLoc, handler.param);\n var finallyLoc = stmt.finalizer && this.loc();\n var finallyEntry = finallyLoc && new leap.FinallyEntry(finallyLoc, after);\n var tryEntry = new leap.TryEntry(self.getUnmarkedCurrentLoc(), catchEntry, finallyEntry);\n self.tryEntries.push(tryEntry);\n self.updateContextPrevLoc(tryEntry.firstLoc);\n self.leapManager.withEntry(tryEntry, function () {\n self.explodeStatement(path.get(\"block\"));\n if (catchLoc) {\n if (finallyLoc) {\n // If we have both a catch block and a finally block, then\n // because we emit the catch block first, we need to jump over\n // it to the finally block.\n self.jump(finallyLoc);\n } else {\n // If there is no finally block, then we need to jump over the\n // catch block to the fall-through location.\n self.jump(after);\n }\n self.updateContextPrevLoc(self.mark(catchLoc));\n var bodyPath = path.get(\"handler.body\");\n var safeParam = self.makeTempVar();\n self.clearPendingException(tryEntry.firstLoc, safeParam);\n bodyPath.traverse(catchParamVisitor, {\n getSafeParam: function getSafeParam() {\n return t.cloneDeep(safeParam);\n },\n catchParamName: handler.param.name\n });\n self.leapManager.withEntry(catchEntry, function () {\n self.explodeStatement(bodyPath);\n });\n }\n if (finallyLoc) {\n self.updateContextPrevLoc(self.mark(finallyLoc));\n self.leapManager.withEntry(finallyEntry, function () {\n self.explodeStatement(path.get(\"finalizer\"));\n });\n self.emit(t.returnStatement(t.callExpression(self.contextProperty(\"finish\"), [finallyEntry.firstLoc])));\n }\n });\n self.mark(after);\n break;\n case \"ThrowStatement\":\n self.emit(t.throwStatement(self.explodeExpression(path.get(\"argument\"))));\n break;\n case \"ClassDeclaration\":\n self.emit(self.explodeClass(path));\n break;\n default:\n throw new Error(\"unknown Statement of type \" + JSON.stringify(stmt.type));\n }\n};\nvar catchParamVisitor = {\n Identifier: function Identifier(path, state) {\n if (path.node.name === state.catchParamName && util.isReference(path)) {\n util.replaceWithOrRemove(path, state.getSafeParam());\n }\n },\n Scope: function Scope(path, state) {\n if (path.scope.hasOwnBinding(state.catchParamName)) {\n // Don't descend into nested scopes that shadow the catch\n // parameter with their own declarations.\n path.skip();\n }\n }\n};\nEp.emitAbruptCompletion = function (record) {\n if (!isValidCompletion(record)) {\n _assert[\"default\"].ok(false, \"invalid completion record: \" + JSON.stringify(record));\n }\n _assert[\"default\"].notStrictEqual(record.type, \"normal\", \"normal completions are not abrupt\");\n var t = util.getTypes();\n var abruptArgs = [t.stringLiteral(record.type)];\n if (record.type === \"break\" || record.type === \"continue\") {\n t.assertLiteral(record.target);\n abruptArgs[1] = this.insertedLocs.has(record.target) ? record.target : t.cloneDeep(record.target);\n } else if (record.type === \"return\" || record.type === \"throw\") {\n if (record.value) {\n t.assertExpression(record.value);\n abruptArgs[1] = this.insertedLocs.has(record.value) ? record.value : t.cloneDeep(record.value);\n }\n }\n this.emit(t.returnStatement(t.callExpression(this.contextProperty(\"abrupt\"), abruptArgs)));\n};\nfunction isValidCompletion(record) {\n var type = record.type;\n if (type === \"normal\") {\n return !hasOwn.call(record, \"target\");\n }\n if (type === \"break\" || type === \"continue\") {\n return !hasOwn.call(record, \"value\") && util.getTypes().isLiteral(record.target);\n }\n if (type === \"return\" || type === \"throw\") {\n return hasOwn.call(record, \"value\") && !hasOwn.call(record, \"target\");\n }\n return false;\n}\n\n// Not all offsets into emitter.listing are potential jump targets. For\n// example, execution typically falls into the beginning of a try block\n// without jumping directly there. This method returns the current offset\n// without marking it, so that a switch case will not necessarily be\n// generated for this offset (I say \"not necessarily\" because the same\n// location might end up being marked in the process of emitting other\n// statements). There's no logical harm in marking such locations as jump\n// targets, but minimizing the number of switch cases keeps the generated\n// code shorter.\nEp.getUnmarkedCurrentLoc = function () {\n return util.getTypes().numericLiteral(this.listing.length);\n};\n\n// The context.prev property takes the value of context.next whenever we\n// evaluate the switch statement discriminant, which is generally good\n// enough for tracking the last location we jumped to, but sometimes\n// context.prev needs to be more precise, such as when we fall\n// successfully out of a try block and into a finally block without\n// jumping. This method exists to update context.prev to the freshest\n// available location. If we were implementing a full interpreter, we\n// would know the location of the current instruction with complete\n// precision at all times, but we don't have that luxury here, as it would\n// be costly and verbose to set context.prev before every statement.\nEp.updateContextPrevLoc = function (loc) {\n var t = util.getTypes();\n if (loc) {\n t.assertLiteral(loc);\n if (loc.value === PENDING_LOCATION) {\n // If an uninitialized location literal was passed in, set its value\n // to the current this.listing.length.\n loc.value = this.listing.length;\n } else {\n // Otherwise assert that the location matches the current offset.\n _assert[\"default\"].strictEqual(loc.value, this.listing.length);\n }\n } else {\n loc = this.getUnmarkedCurrentLoc();\n }\n\n // Make sure context.prev is up to date in case we fell into this try\n // statement without jumping to it. TODO Consider avoiding this\n // assignment when we know control must have jumped here.\n this.emitAssign(this.contextProperty(\"prev\"), loc);\n};\n\n// In order to save the rest of explodeExpression from a combinatorial\n// trainwreck of special cases, explodeViaTempVar is responsible for\n// deciding when a subexpression needs to be \"exploded,\" which is my\n// very technical term for emitting the subexpression as an assignment\n// to a temporary variable and the substituting the temporary variable\n// for the original subexpression. Think of exploded view diagrams, not\n// Michael Bay movies. The point of exploding subexpressions is to\n// control the precise order in which the generated code realizes the\n// side effects of those subexpressions.\nEp.explodeViaTempVar = function (tempVar, childPath, hasLeapingChildren, ignoreChildResult) {\n _assert[\"default\"].ok(!ignoreChildResult || !tempVar, \"Ignoring the result of a child expression but forcing it to \" + \"be assigned to a temporary variable?\");\n var t = util.getTypes();\n var result = this.explodeExpression(childPath, ignoreChildResult);\n if (ignoreChildResult) {\n // Side effects already emitted above.\n } else if (tempVar || hasLeapingChildren && !t.isLiteral(result)) {\n // If tempVar was provided, then the result will always be assigned\n // to it, even if the result does not otherwise need to be assigned\n // to a temporary variable. When no tempVar is provided, we have\n // the flexibility to decide whether a temporary variable is really\n // necessary. Unfortunately, in general, a temporary variable is\n // required whenever any child contains a yield expression, since it\n // is difficult to prove (at all, let alone efficiently) whether\n // this result would evaluate to the same value before and after the\n // yield (see #206). One narrow case where we can prove it doesn't\n // matter (and thus we do not need a temporary variable) is when the\n // result in question is a Literal value.\n result = this.emitAssign(tempVar || this.makeTempVar(), result);\n }\n return result;\n};\nEp.explodeExpression = function (path, ignoreResult) {\n var t = util.getTypes();\n var expr = path.node;\n if (expr) {\n t.assertExpression(expr);\n } else {\n return expr;\n }\n var self = this;\n var result; // Used optionally by several cases below.\n var after;\n function finish(expr) {\n t.assertExpression(expr);\n if (ignoreResult) {\n self.emit(expr);\n }\n return expr;\n }\n\n // If the expression does not contain a leap, then we either emit the\n // expression as a standalone statement or return it whole.\n if (!meta.containsLeap(expr)) {\n return finish(expr);\n }\n\n // If any child contains a leap (such as a yield or labeled continue or\n // break statement), then any sibling subexpressions will almost\n // certainly have to be exploded in order to maintain the order of their\n // side effects relative to the leaping child(ren).\n var hasLeapingChildren = meta.containsLeap.onlyChildren(expr);\n\n // If ignoreResult is true, then we must take full responsibility for\n // emitting the expression with all its side effects, and we should not\n // return a result.\n\n switch (expr.type) {\n case \"MemberExpression\":\n return finish(t.memberExpression(self.explodeExpression(path.get(\"object\")), expr.computed ? self.explodeViaTempVar(null, path.get(\"property\"), hasLeapingChildren) : expr.property, expr.computed));\n case \"CallExpression\":\n var calleePath = path.get(\"callee\");\n var argsPath = path.get(\"arguments\");\n var newCallee;\n var newArgs;\n var hasLeapingArgs = argsPath.some(function (argPath) {\n return meta.containsLeap(argPath.node);\n });\n var injectFirstArg = null;\n if (t.isMemberExpression(calleePath.node)) {\n if (hasLeapingArgs) {\n // If the arguments of the CallExpression contained any yield\n // expressions, then we need to be sure to evaluate the callee\n // before evaluating the arguments, but if the callee was a member\n // expression, then we must be careful that the object of the\n // member expression still gets bound to `this` for the call.\n\n var newObject = self.explodeViaTempVar(\n // Assign the exploded callee.object expression to a temporary\n // variable so that we can use it twice without reevaluating it.\n self.makeTempVar(), calleePath.get(\"object\"), hasLeapingChildren);\n var newProperty = calleePath.node.computed ? self.explodeViaTempVar(null, calleePath.get(\"property\"), hasLeapingChildren) : calleePath.node.property;\n injectFirstArg = newObject;\n newCallee = t.memberExpression(t.memberExpression(t.cloneDeep(newObject), newProperty, calleePath.node.computed), t.identifier(\"call\"), false);\n } else {\n newCallee = self.explodeExpression(calleePath);\n }\n } else {\n newCallee = self.explodeViaTempVar(null, calleePath, hasLeapingChildren);\n if (t.isMemberExpression(newCallee)) {\n // If the callee was not previously a MemberExpression, then the\n // CallExpression was \"unqualified,\" meaning its `this` object\n // should be the global object. If the exploded expression has\n // become a MemberExpression (e.g. a context property, probably a\n // temporary variable), then we need to force it to be unqualified\n // by using the (0, object.property)(...) trick; otherwise, it\n // will receive the object of the MemberExpression as its `this`\n // object.\n newCallee = t.sequenceExpression([t.numericLiteral(0), t.cloneDeep(newCallee)]);\n }\n }\n if (hasLeapingArgs) {\n newArgs = argsPath.map(function (argPath) {\n return self.explodeViaTempVar(null, argPath, hasLeapingChildren);\n });\n if (injectFirstArg) newArgs.unshift(injectFirstArg);\n newArgs = newArgs.map(function (arg) {\n return t.cloneDeep(arg);\n });\n } else {\n newArgs = path.node.arguments;\n }\n return finish(t.callExpression(newCallee, newArgs));\n case \"NewExpression\":\n return finish(t.newExpression(self.explodeViaTempVar(null, path.get(\"callee\"), hasLeapingChildren), path.get(\"arguments\").map(function (argPath) {\n return self.explodeViaTempVar(null, argPath, hasLeapingChildren);\n })));\n case \"ObjectExpression\":\n return finish(t.objectExpression(path.get(\"properties\").map(function (propPath) {\n if (propPath.isObjectProperty()) {\n return t.objectProperty(propPath.node.key, self.explodeViaTempVar(null, propPath.get(\"value\"), hasLeapingChildren), propPath.node.computed);\n } else {\n return propPath.node;\n }\n })));\n case \"ArrayExpression\":\n return finish(t.arrayExpression(path.get(\"elements\").map(function (elemPath) {\n if (!elemPath.node) {\n return null;\n }\n if (elemPath.isSpreadElement()) {\n return t.spreadElement(self.explodeViaTempVar(null, elemPath.get(\"argument\"), hasLeapingChildren));\n } else {\n return self.explodeViaTempVar(null, elemPath, hasLeapingChildren);\n }\n })));\n case \"SequenceExpression\":\n var lastIndex = expr.expressions.length - 1;\n path.get(\"expressions\").forEach(function (exprPath) {\n if (exprPath.key === lastIndex) {\n result = self.explodeExpression(exprPath, ignoreResult);\n } else {\n self.explodeExpression(exprPath, true);\n }\n });\n return result;\n case \"LogicalExpression\":\n after = this.loc();\n if (!ignoreResult) {\n result = self.makeTempVar();\n }\n var left = self.explodeViaTempVar(result, path.get(\"left\"), hasLeapingChildren);\n if (expr.operator === \"&&\") {\n self.jumpIfNot(left, after);\n } else {\n _assert[\"default\"].strictEqual(expr.operator, \"||\");\n self.jumpIf(left, after);\n }\n self.explodeViaTempVar(result, path.get(\"right\"), hasLeapingChildren, ignoreResult);\n self.mark(after);\n return result;\n case \"ConditionalExpression\":\n var elseLoc = this.loc();\n after = this.loc();\n var test = self.explodeExpression(path.get(\"test\"));\n self.jumpIfNot(test, elseLoc);\n if (!ignoreResult) {\n result = self.makeTempVar();\n }\n self.explodeViaTempVar(result, path.get(\"consequent\"), hasLeapingChildren, ignoreResult);\n self.jump(after);\n self.mark(elseLoc);\n self.explodeViaTempVar(result, path.get(\"alternate\"), hasLeapingChildren, ignoreResult);\n self.mark(after);\n return result;\n case \"UnaryExpression\":\n return finish(t.unaryExpression(expr.operator,\n // Can't (and don't need to) break up the syntax of the argument.\n // Think about delete a[b].\n self.explodeExpression(path.get(\"argument\")), !!expr.prefix));\n case \"BinaryExpression\":\n return finish(t.binaryExpression(expr.operator, self.explodeViaTempVar(null, path.get(\"left\"), hasLeapingChildren), self.explodeViaTempVar(null, path.get(\"right\"), hasLeapingChildren)));\n case \"AssignmentExpression\":\n if (expr.operator === \"=\") {\n // If this is a simple assignment, the left hand side does not need\n // to be read before the right hand side is evaluated, so we can\n // avoid the more complicated logic below.\n return finish(t.assignmentExpression(expr.operator, self.explodeExpression(path.get(\"left\")), self.explodeExpression(path.get(\"right\"))));\n }\n var lhs = self.explodeExpression(path.get(\"left\"));\n var temp = self.emitAssign(self.makeTempVar(), lhs);\n\n // For example,\n //\n // x += yield y\n //\n // becomes\n //\n // context.t0 = x\n // x = context.t0 += yield y\n //\n // so that the left-hand side expression is read before the yield.\n // Fixes https://github.com/facebook/regenerator/issues/345.\n\n return finish(t.assignmentExpression(\"=\", t.cloneDeep(lhs), t.assignmentExpression(expr.operator, t.cloneDeep(temp), self.explodeExpression(path.get(\"right\")))));\n case \"UpdateExpression\":\n return finish(t.updateExpression(expr.operator, self.explodeExpression(path.get(\"argument\")), expr.prefix));\n case \"YieldExpression\":\n after = this.loc();\n var arg = expr.argument && self.explodeExpression(path.get(\"argument\"));\n if (arg && expr.delegate) {\n var _result = self.makeTempVar();\n var _ret = t.returnStatement(t.callExpression(self.contextProperty(\"delegateYield\"), [arg, t.stringLiteral(_result.property.name), after]));\n _ret.loc = expr.loc;\n self.emit(_ret);\n self.mark(after);\n return _result;\n }\n self.emitAssign(self.contextProperty(\"next\"), after);\n var ret = t.returnStatement(t.cloneDeep(arg) || null);\n // Preserve the `yield` location so that source mappings for the statements\n // link back to the yield properly.\n ret.loc = expr.loc;\n self.emit(ret);\n self.mark(after);\n return self.contextProperty(\"sent\");\n case \"ClassExpression\":\n return finish(self.explodeClass(path));\n default:\n throw new Error(\"unknown Expression of type \" + JSON.stringify(expr.type));\n }\n};\nEp.explodeClass = function (path) {\n var explodingChildren = [];\n if (path.node.superClass) {\n explodingChildren.push(path.get(\"superClass\"));\n }\n path.get(\"body.body\").forEach(function (member) {\n if (member.node.computed) {\n explodingChildren.push(member.get(\"key\"));\n }\n });\n var hasLeapingChildren = explodingChildren.some(function (child) {\n return meta.containsLeap(child);\n });\n for (var i = 0; i < explodingChildren.length; i++) {\n var child = explodingChildren[i];\n var isLast = i === explodingChildren.length - 1;\n if (isLast) {\n child.replaceWith(this.explodeExpression(child));\n } else {\n child.replaceWith(this.explodeViaTempVar(null, child, hasLeapingChildren));\n }\n }\n return path.node;\n};","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = replaceShorthandObjectMethod;\nvar util = _interopRequireWildcard(require(\"./util\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n// this function converts a shorthand object generator method into a normal\n// (non-shorthand) object property which is a generator function expression. for\n// example, this:\n//\n// var foo = {\n// *bar(baz) { return 5; }\n// }\n//\n// should be replaced with:\n//\n// var foo = {\n// bar: function*(baz) { return 5; }\n// }\n//\n// to do this, it clones the parameter array and the body of the object generator\n// method into a new FunctionExpression.\n//\n// this method can be passed any Function AST node path, and it will return\n// either:\n// a) the path that was passed in (iff the path did not need to be replaced) or\n// b) the path of the new FunctionExpression that was created as a replacement\n// (iff the path did need to be replaced)\n//\n// In either case, though, the caller can count on the fact that the return value\n// is a Function AST node path.\n//\n// If this function is called with an AST node path that is not a Function (or with an\n// argument that isn't an AST node path), it will throw an error.\nfunction replaceShorthandObjectMethod(path) {\n var t = util.getTypes();\n if (!path.node || !t.isFunction(path.node)) {\n throw new Error(\"replaceShorthandObjectMethod can only be called on Function AST node paths.\");\n }\n\n // this function only replaces shorthand object methods (called ObjectMethod\n // in Babel-speak).\n if (!t.isObjectMethod(path.node)) {\n return path;\n }\n\n // this function only replaces generators.\n if (!path.node.generator) {\n return path;\n }\n var parameters = path.node.params.map(function (param) {\n return t.cloneDeep(param);\n });\n var functionExpression = t.functionExpression(null,\n // id\n parameters,\n // params\n t.cloneDeep(path.node.body),\n // body\n path.node.generator, path.node.async);\n util.replaceWithOrRemove(path, t.objectProperty(t.cloneDeep(path.node.key),\n // key\n functionExpression,\n //value\n path.node.computed,\n // computed\n false // shorthand\n ));\n\n // path now refers to the ObjectProperty AST node path, but we want to return a\n // Function AST node path for the function expression we created. we know that\n // the FunctionExpression we just created is the value of the ObjectProperty,\n // so return the \"value\" path off of this path.\n return path.get(\"value\");\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nvar _assert = _interopRequireDefault(require(\"assert\"));\nvar _hoist = require(\"./hoist\");\nvar _emit = require(\"./emit\");\nvar _replaceShorthandObjectMethod = _interopRequireDefault(require(\"./replaceShorthandObjectMethod\"));\nvar util = _interopRequireWildcard(require(\"./util\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nexports.getVisitor = function (_ref) {\n var t = _ref.types;\n return {\n Method: function Method(path, state) {\n var node = path.node;\n if (!shouldRegenerate(node, state)) return;\n var container = t.functionExpression(null, [], t.cloneNode(node.body, false), node.generator, node.async);\n path.get(\"body\").set(\"body\", [t.returnStatement(t.callExpression(container, []))]);\n\n // Regardless of whether or not the wrapped function is a an async method\n // or generator the outer function should not be\n node.async = false;\n node.generator = false;\n\n // Unwrap the wrapper IIFE's environment so super and this and such still work.\n path.get(\"body.body.0.argument.callee\").unwrapFunctionEnvironment();\n },\n Function: {\n exit: util.wrapWithTypes(t, function (path, state) {\n var node = path.node;\n if (!shouldRegenerate(node, state)) return;\n\n // if this is an ObjectMethod, we need to convert it to an ObjectProperty\n path = (0, _replaceShorthandObjectMethod[\"default\"])(path);\n node = path.node;\n var contextId = path.scope.generateUidIdentifier(\"context\");\n var argsId = path.scope.generateUidIdentifier(\"args\");\n path.ensureBlock();\n var bodyBlockPath = path.get(\"body\");\n if (node.async) {\n bodyBlockPath.traverse(awaitVisitor);\n }\n bodyBlockPath.traverse(functionSentVisitor, {\n context: contextId\n });\n var outerBody = [];\n var innerBody = [];\n bodyBlockPath.get(\"body\").forEach(function (childPath) {\n var node = childPath.node;\n if (t.isExpressionStatement(node) && t.isStringLiteral(node.expression)) {\n // Babylon represents directives like \"use strict\" as elements\n // of a bodyBlockPath.node.directives array, but they could just\n // as easily be represented (by other parsers) as traditional\n // string-literal-valued expression statements, so we need to\n // handle that here. (#248)\n outerBody.push(node);\n } else if (node && node._blockHoist != null) {\n outerBody.push(node);\n } else {\n innerBody.push(node);\n }\n });\n if (outerBody.length > 0) {\n // Only replace the inner body if we actually hoisted any statements\n // to the outer body.\n bodyBlockPath.node.body = innerBody;\n }\n var outerFnExpr = getOuterFnExpr(path);\n // Note that getOuterFnExpr has the side-effect of ensuring that the\n // function has a name (so node.id will always be an Identifier), even\n // if a temporary name has to be synthesized.\n t.assertIdentifier(node.id);\n var innerFnId = t.identifier(node.id.name + \"$\");\n\n // Turn all declarations into vars, and replace the original\n // declarations with equivalent assignment expressions.\n var vars = (0, _hoist.hoist)(path);\n var context = {\n usesThis: false,\n usesArguments: false,\n getArgsId: function getArgsId() {\n return t.clone(argsId);\n }\n };\n path.traverse(argumentsThisVisitor, context);\n if (context.usesArguments) {\n vars = vars || t.variableDeclaration(\"var\", []);\n vars.declarations.push(t.variableDeclarator(t.clone(argsId), t.identifier(\"arguments\")));\n }\n var emitter = new _emit.Emitter(contextId);\n emitter.explode(path.get(\"body\"));\n if (vars && vars.declarations.length > 0) {\n outerBody.push(vars);\n }\n var wrapArgs = [emitter.getContextFunction(innerFnId)];\n var tryLocsList = emitter.getTryLocsList();\n if (node.generator) {\n wrapArgs.push(outerFnExpr);\n } else if (context.usesThis || tryLocsList || node.async) {\n // Async functions that are not generators don't care about the\n // outer function because they don't need it to be marked and don't\n // inherit from its .prototype.\n wrapArgs.push(t.nullLiteral());\n }\n if (context.usesThis) {\n wrapArgs.push(t.thisExpression());\n } else if (tryLocsList || node.async) {\n wrapArgs.push(t.nullLiteral());\n }\n if (tryLocsList) {\n wrapArgs.push(tryLocsList);\n } else if (node.async) {\n wrapArgs.push(t.nullLiteral());\n }\n if (node.async) {\n // Rename any locally declared \"Promise\" variable,\n // to use the global one.\n var currentScope = path.scope;\n do {\n if (currentScope.hasOwnBinding(\"Promise\")) currentScope.rename(\"Promise\");\n } while (currentScope = currentScope.parent);\n wrapArgs.push(t.identifier(\"Promise\"));\n }\n var wrapCall = t.callExpression(util.runtimeProperty(node.async ? \"async\" : \"wrap\"), wrapArgs);\n outerBody.push(t.returnStatement(wrapCall));\n node.body = t.blockStatement(outerBody);\n // We injected a few new variable declarations (for every hoisted var),\n // so we need to add them to the scope.\n path.get(\"body.body\").forEach(function (p) {\n return p.scope.registerDeclaration(p);\n });\n var oldDirectives = bodyBlockPath.node.directives;\n if (oldDirectives) {\n // Babylon represents directives like \"use strict\" as elements of\n // a bodyBlockPath.node.directives array. (#248)\n node.body.directives = oldDirectives;\n }\n var wasGeneratorFunction = node.generator;\n if (wasGeneratorFunction) {\n node.generator = false;\n }\n if (node.async) {\n node.async = false;\n }\n if (wasGeneratorFunction && t.isExpression(node)) {\n util.replaceWithOrRemove(path, t.callExpression(util.runtimeProperty(\"mark\"), [node]));\n path.addComment(\"leading\", \"#__PURE__\");\n }\n var insertedLocs = emitter.getInsertedLocs();\n path.traverse({\n NumericLiteral: function NumericLiteral(path) {\n if (!insertedLocs.has(path.node)) {\n return;\n }\n path.replaceWith(t.numericLiteral(path.node.value));\n }\n });\n\n // Generators are processed in 'exit' handlers so that regenerator only has to run on\n // an ES5 AST, but that means traversal will not pick up newly inserted references\n // to things like 'regeneratorRuntime'. To avoid this, we explicitly requeue.\n path.requeue();\n })\n }\n };\n};\n\n// Check if a node should be transformed by regenerator\nfunction shouldRegenerate(node, state) {\n if (node.generator) {\n if (node.async) {\n // Async generator\n return state.opts.asyncGenerators !== false;\n } else {\n // Plain generator\n return state.opts.generators !== false;\n }\n } else if (node.async) {\n // Async function\n return state.opts.async !== false;\n } else {\n // Not a generator or async function.\n return false;\n }\n}\n\n// Given a NodePath for a Function, return an Expression node that can be\n// used to refer reliably to the function object from inside the function.\n// This expression is essentially a replacement for arguments.callee, with\n// the key advantage that it works in strict mode.\nfunction getOuterFnExpr(funPath) {\n var t = util.getTypes();\n var node = funPath.node;\n t.assertFunction(node);\n if (!node.id) {\n // Default-exported function declarations, and function expressions may not\n // have a name to reference, so we explicitly add one.\n node.id = funPath.scope.parent.generateUidIdentifier(\"callee\");\n }\n if (node.generator &&\n // Non-generator functions don't need to be marked.\n t.isFunctionDeclaration(node)) {\n // Return the identifier returned by runtime.mark().\n return getMarkedFunctionId(funPath);\n }\n return t.clone(node.id);\n}\nvar markInfo = new WeakMap();\nfunction getMarkInfo(node) {\n if (!markInfo.has(node)) {\n markInfo.set(node, {});\n }\n return markInfo.get(node);\n}\nfunction getMarkedFunctionId(funPath) {\n var t = util.getTypes();\n var node = funPath.node;\n t.assertIdentifier(node.id);\n var blockPath = funPath.findParent(function (path) {\n return path.isProgram() || path.isBlockStatement();\n });\n if (!blockPath) {\n return node.id;\n }\n var block = blockPath.node;\n _assert[\"default\"].ok(Array.isArray(block.body));\n var info = getMarkInfo(block);\n if (!info.decl) {\n info.decl = t.variableDeclaration(\"var\", []);\n blockPath.unshiftContainer(\"body\", info.decl);\n info.declPath = blockPath.get(\"body.0\");\n }\n _assert[\"default\"].strictEqual(info.declPath.node, info.decl);\n\n // Get a new unique identifier for our marked variable.\n var markedId = blockPath.scope.generateUidIdentifier(\"marked\");\n var markCallExp = t.callExpression(util.runtimeProperty(\"mark\"), [t.clone(node.id)]);\n var index = info.decl.declarations.push(t.variableDeclarator(markedId, markCallExp)) - 1;\n var markCallExpPath = info.declPath.get(\"declarations.\" + index + \".init\");\n _assert[\"default\"].strictEqual(markCallExpPath.node, markCallExp);\n markCallExpPath.addComment(\"leading\", \"#__PURE__\");\n return t.clone(markedId);\n}\nvar argumentsThisVisitor = {\n \"FunctionExpression|FunctionDeclaration|Method\": function FunctionExpressionFunctionDeclarationMethod(path) {\n path.skip();\n },\n Identifier: function Identifier(path, state) {\n if (path.node.name === \"arguments\" && util.isReference(path)) {\n util.replaceWithOrRemove(path, state.getArgsId());\n state.usesArguments = true;\n }\n },\n ThisExpression: function ThisExpression(path, state) {\n state.usesThis = true;\n }\n};\nvar functionSentVisitor = {\n MetaProperty: function MetaProperty(path) {\n var node = path.node;\n if (node.meta.name === \"function\" && node.property.name === \"sent\") {\n var t = util.getTypes();\n util.replaceWithOrRemove(path, t.memberExpression(t.clone(this.context), t.identifier(\"_sent\")));\n }\n }\n};\nvar awaitVisitor = {\n Function: function Function(path) {\n path.skip(); // Don't descend into nested function scopes.\n },\n\n AwaitExpression: function AwaitExpression(path) {\n var t = util.getTypes();\n\n // Convert await expressions to yield expressions.\n var argument = path.node.argument;\n\n // Transforming `await x` to `yield regeneratorRuntime.awrap(x)`\n // causes the argument to be wrapped in such a way that the runtime\n // can distinguish between awaited and merely yielded values.\n util.replaceWithOrRemove(path, t.yieldExpression(t.callExpression(util.runtimeProperty(\"awrap\"), [argument]), false));\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports[\"default\"] = _default;\nvar _visit = require(\"./visit\");\n/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction _default(context) {\n var plugin = {\n visitor: (0, _visit.getVisitor)(context)\n };\n\n // Some presets manually call child presets, but fail to pass along the\n // context object. Out of an abundance of caution, we verify that it\n // exists first to avoid causing unnecessary breaking changes.\n var version = context && context.version;\n\n // The \"name\" property is not allowed in older versions of Babel (6.x)\n // and will cause the plugin validator to throw an exception.\n if (version && parseInt(version, 10) >= 7) {\n plugin.name = \"regenerator-transform\";\n }\n return plugin;\n}","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t } from \"@babel/core\";\nimport regeneratorTransform from \"regenerator-transform\";\n\nexport default declare(({ types: t, assertVersion }) => {\n assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-regenerator\",\n\n inherits: regeneratorTransform.default,\n\n visitor: {\n // We visit CallExpression so that we always transform\n // regeneratorRuntime.*() before babel-plugin-polyfill-regenerator.\n CallExpression(path) {\n if (!process.env.BABEL_8_BREAKING) {\n if (!this.availableHelper?.(\"regeneratorRuntime\")) {\n // When using an older @babel/helpers version, fallback\n // to the old behavior.\n // TODO: Remove this in Babel 8.\n return;\n }\n }\n\n const callee = path.get(\"callee\");\n if (!callee.isMemberExpression()) return;\n\n const obj = callee.get(\"object\");\n if (obj.isIdentifier({ name: \"regeneratorRuntime\" })) {\n const helper = this.addHelper(\"regeneratorRuntime\") as\n | t.Identifier\n | t.ArrowFunctionExpression;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (\n // TODO: Remove this in Babel 8, it's necessary to\n // avoid the IIFE when using older Babel versions.\n t.isArrowFunctionExpression(helper)\n ) {\n obj.replaceWith(helper.body);\n return;\n }\n }\n\n obj.replaceWith(t.callExpression(helper, []));\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-reserved-words\",\n\n visitor: {\n \"BindingIdentifier|ReferencedIdentifier\"(path: NodePath) {\n if (!t.isValidES3Identifier(path.node.name)) {\n path.scope.rename(path.node.name);\n }\n },\n },\n };\n});\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","import semver from \"semver\";\n\nexport function hasMinVersion(\n minVersion: string,\n runtimeVersion: string | void,\n) {\n // If the range is unavailable, we're running the script during Babel's\n // build process, and we want to assume that all versions are satisfied so\n // that the built output will include all definitions.\n if (!runtimeVersion) return true;\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with pre-release versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revisit the logic in\n // babel-core's availableHelper() API.\n if (semver.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;\n\n return (\n !semver.intersects(`<${minVersion}`, runtimeVersion) &&\n !semver.intersects(`>=8.0.0`, runtimeVersion)\n );\n}\n","export default function (\n moduleName: string,\n dirname: string,\n absoluteRuntime: string | boolean,\n) {\n if (absoluteRuntime === false) return moduleName;\n\n resolveFSPath();\n}\n\nexport function resolveFSPath() {\n throw new Error(\n \"The 'absoluteRuntime' option is not supported when using @babel/standalone.\",\n );\n}\n","// Todo (Babel 8): remove this file as Babel 8 drop support of core-js 2\nmodule.exports = require(\"./data/corejs2-built-ins.json\");\n","\"use strict\";\n\nexports.__esModule = true;\nexports.StaticProperties = exports.InstanceProperties = exports.CommonIterators = exports.BuiltIns = void 0;\nvar _corejs2BuiltIns = _interopRequireDefault(require(\"@babel/compat-data/corejs2-built-ins\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst define = (name, pure, global = [], meta) => {\n return {\n name,\n pure,\n global,\n meta\n };\n};\nconst pureAndGlobal = (pure, global, minRuntimeVersion = null) => define(global[0], pure, global, {\n minRuntimeVersion\n});\nconst globalOnly = global => define(global[0], null, global);\nconst pureOnly = (pure, name) => define(name, pure, []);\nconst ArrayNatureIterators = [\"es6.object.to-string\", \"es6.array.iterator\", \"web.dom.iterable\"];\nconst CommonIterators = [\"es6.string.iterator\", ...ArrayNatureIterators];\nexports.CommonIterators = CommonIterators;\nconst PromiseDependencies = [\"es6.object.to-string\", \"es6.promise\"];\nconst BuiltIns = {\n DataView: globalOnly([\"es6.typed.data-view\"]),\n Float32Array: globalOnly([\"es6.typed.float32-array\"]),\n Float64Array: globalOnly([\"es6.typed.float64-array\"]),\n Int8Array: globalOnly([\"es6.typed.int8-array\"]),\n Int16Array: globalOnly([\"es6.typed.int16-array\"]),\n Int32Array: globalOnly([\"es6.typed.int32-array\"]),\n Map: pureAndGlobal(\"map\", [\"es6.map\", ...CommonIterators]),\n Number: globalOnly([\"es6.number.constructor\"]),\n Promise: pureAndGlobal(\"promise\", PromiseDependencies),\n RegExp: globalOnly([\"es6.regexp.constructor\"]),\n Set: pureAndGlobal(\"set\", [\"es6.set\", ...CommonIterators]),\n Symbol: pureAndGlobal(\"symbol/index\", [\"es6.symbol\"]),\n Uint8Array: globalOnly([\"es6.typed.uint8-array\"]),\n Uint8ClampedArray: globalOnly([\"es6.typed.uint8-clamped-array\"]),\n Uint16Array: globalOnly([\"es6.typed.uint16-array\"]),\n Uint32Array: globalOnly([\"es6.typed.uint32-array\"]),\n WeakMap: pureAndGlobal(\"weak-map\", [\"es6.weak-map\", ...CommonIterators]),\n WeakSet: pureAndGlobal(\"weak-set\", [\"es6.weak-set\", ...CommonIterators]),\n setImmediate: pureOnly(\"set-immediate\", \"web.immediate\"),\n clearImmediate: pureOnly(\"clear-immediate\", \"web.immediate\"),\n parseFloat: pureOnly(\"parse-float\", \"es6.parse-float\"),\n parseInt: pureOnly(\"parse-int\", \"es6.parse-int\")\n};\nexports.BuiltIns = BuiltIns;\nconst InstanceProperties = {\n __defineGetter__: globalOnly([\"es7.object.define-getter\"]),\n __defineSetter__: globalOnly([\"es7.object.define-setter\"]),\n __lookupGetter__: globalOnly([\"es7.object.lookup-getter\"]),\n __lookupSetter__: globalOnly([\"es7.object.lookup-setter\"]),\n anchor: globalOnly([\"es6.string.anchor\"]),\n big: globalOnly([\"es6.string.big\"]),\n bind: globalOnly([\"es6.function.bind\"]),\n blink: globalOnly([\"es6.string.blink\"]),\n bold: globalOnly([\"es6.string.bold\"]),\n codePointAt: globalOnly([\"es6.string.code-point-at\"]),\n copyWithin: globalOnly([\"es6.array.copy-within\"]),\n endsWith: globalOnly([\"es6.string.ends-with\"]),\n entries: globalOnly(ArrayNatureIterators),\n every: globalOnly([\"es6.array.every\"]),\n fill: globalOnly([\"es6.array.fill\"]),\n filter: globalOnly([\"es6.array.filter\"]),\n finally: globalOnly([\"es7.promise.finally\", ...PromiseDependencies]),\n find: globalOnly([\"es6.array.find\"]),\n findIndex: globalOnly([\"es6.array.find-index\"]),\n fixed: globalOnly([\"es6.string.fixed\"]),\n flags: globalOnly([\"es6.regexp.flags\"]),\n flatMap: globalOnly([\"es7.array.flat-map\"]),\n fontcolor: globalOnly([\"es6.string.fontcolor\"]),\n fontsize: globalOnly([\"es6.string.fontsize\"]),\n forEach: globalOnly([\"es6.array.for-each\"]),\n includes: globalOnly([\"es6.string.includes\", \"es7.array.includes\"]),\n indexOf: globalOnly([\"es6.array.index-of\"]),\n italics: globalOnly([\"es6.string.italics\"]),\n keys: globalOnly(ArrayNatureIterators),\n lastIndexOf: globalOnly([\"es6.array.last-index-of\"]),\n link: globalOnly([\"es6.string.link\"]),\n map: globalOnly([\"es6.array.map\"]),\n match: globalOnly([\"es6.regexp.match\"]),\n name: globalOnly([\"es6.function.name\"]),\n padStart: globalOnly([\"es7.string.pad-start\"]),\n padEnd: globalOnly([\"es7.string.pad-end\"]),\n reduce: globalOnly([\"es6.array.reduce\"]),\n reduceRight: globalOnly([\"es6.array.reduce-right\"]),\n repeat: globalOnly([\"es6.string.repeat\"]),\n replace: globalOnly([\"es6.regexp.replace\"]),\n search: globalOnly([\"es6.regexp.search\"]),\n small: globalOnly([\"es6.string.small\"]),\n some: globalOnly([\"es6.array.some\"]),\n sort: globalOnly([\"es6.array.sort\"]),\n split: globalOnly([\"es6.regexp.split\"]),\n startsWith: globalOnly([\"es6.string.starts-with\"]),\n strike: globalOnly([\"es6.string.strike\"]),\n sub: globalOnly([\"es6.string.sub\"]),\n sup: globalOnly([\"es6.string.sup\"]),\n toISOString: globalOnly([\"es6.date.to-iso-string\"]),\n toJSON: globalOnly([\"es6.date.to-json\"]),\n toString: globalOnly([\"es6.object.to-string\", \"es6.date.to-string\", \"es6.regexp.to-string\"]),\n trim: globalOnly([\"es6.string.trim\"]),\n trimEnd: globalOnly([\"es7.string.trim-right\"]),\n trimLeft: globalOnly([\"es7.string.trim-left\"]),\n trimRight: globalOnly([\"es7.string.trim-right\"]),\n trimStart: globalOnly([\"es7.string.trim-left\"]),\n values: globalOnly(ArrayNatureIterators)\n};\n\n// This isn't present in older @babel/compat-data versions\nexports.InstanceProperties = InstanceProperties;\nif (\"es6.array.slice\" in _corejs2BuiltIns.default) {\n InstanceProperties.slice = globalOnly([\"es6.array.slice\"]);\n}\nconst StaticProperties = {\n Array: {\n from: pureAndGlobal(\"array/from\", [\"es6.symbol\", \"es6.array.from\", ...CommonIterators]),\n isArray: pureAndGlobal(\"array/is-array\", [\"es6.array.is-array\"]),\n of: pureAndGlobal(\"array/of\", [\"es6.array.of\"])\n },\n Date: {\n now: pureAndGlobal(\"date/now\", [\"es6.date.now\"])\n },\n JSON: {\n stringify: pureOnly(\"json/stringify\", \"es6.symbol\")\n },\n Math: {\n // 'Math' was not included in the 7.0.0\n // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616.\n acosh: pureAndGlobal(\"math/acosh\", [\"es6.math.acosh\"], \"7.0.1\"),\n asinh: pureAndGlobal(\"math/asinh\", [\"es6.math.asinh\"], \"7.0.1\"),\n atanh: pureAndGlobal(\"math/atanh\", [\"es6.math.atanh\"], \"7.0.1\"),\n cbrt: pureAndGlobal(\"math/cbrt\", [\"es6.math.cbrt\"], \"7.0.1\"),\n clz32: pureAndGlobal(\"math/clz32\", [\"es6.math.clz32\"], \"7.0.1\"),\n cosh: pureAndGlobal(\"math/cosh\", [\"es6.math.cosh\"], \"7.0.1\"),\n expm1: pureAndGlobal(\"math/expm1\", [\"es6.math.expm1\"], \"7.0.1\"),\n fround: pureAndGlobal(\"math/fround\", [\"es6.math.fround\"], \"7.0.1\"),\n hypot: pureAndGlobal(\"math/hypot\", [\"es6.math.hypot\"], \"7.0.1\"),\n imul: pureAndGlobal(\"math/imul\", [\"es6.math.imul\"], \"7.0.1\"),\n log1p: pureAndGlobal(\"math/log1p\", [\"es6.math.log1p\"], \"7.0.1\"),\n log10: pureAndGlobal(\"math/log10\", [\"es6.math.log10\"], \"7.0.1\"),\n log2: pureAndGlobal(\"math/log2\", [\"es6.math.log2\"], \"7.0.1\"),\n sign: pureAndGlobal(\"math/sign\", [\"es6.math.sign\"], \"7.0.1\"),\n sinh: pureAndGlobal(\"math/sinh\", [\"es6.math.sinh\"], \"7.0.1\"),\n tanh: pureAndGlobal(\"math/tanh\", [\"es6.math.tanh\"], \"7.0.1\"),\n trunc: pureAndGlobal(\"math/trunc\", [\"es6.math.trunc\"], \"7.0.1\")\n },\n Number: {\n EPSILON: pureAndGlobal(\"number/epsilon\", [\"es6.number.epsilon\"]),\n MIN_SAFE_INTEGER: pureAndGlobal(\"number/min-safe-integer\", [\"es6.number.min-safe-integer\"]),\n MAX_SAFE_INTEGER: pureAndGlobal(\"number/max-safe-integer\", [\"es6.number.max-safe-integer\"]),\n isFinite: pureAndGlobal(\"number/is-finite\", [\"es6.number.is-finite\"]),\n isInteger: pureAndGlobal(\"number/is-integer\", [\"es6.number.is-integer\"]),\n isSafeInteger: pureAndGlobal(\"number/is-safe-integer\", [\"es6.number.is-safe-integer\"]),\n isNaN: pureAndGlobal(\"number/is-nan\", [\"es6.number.is-nan\"]),\n parseFloat: pureAndGlobal(\"number/parse-float\", [\"es6.number.parse-float\"]),\n parseInt: pureAndGlobal(\"number/parse-int\", [\"es6.number.parse-int\"])\n },\n Object: {\n assign: pureAndGlobal(\"object/assign\", [\"es6.object.assign\"]),\n create: pureAndGlobal(\"object/create\", [\"es6.object.create\"]),\n defineProperties: pureAndGlobal(\"object/define-properties\", [\"es6.object.define-properties\"]),\n defineProperty: pureAndGlobal(\"object/define-property\", [\"es6.object.define-property\"]),\n entries: pureAndGlobal(\"object/entries\", [\"es7.object.entries\"]),\n freeze: pureAndGlobal(\"object/freeze\", [\"es6.object.freeze\"]),\n getOwnPropertyDescriptor: pureAndGlobal(\"object/get-own-property-descriptor\", [\"es6.object.get-own-property-descriptor\"]),\n getOwnPropertyDescriptors: pureAndGlobal(\"object/get-own-property-descriptors\", [\"es7.object.get-own-property-descriptors\"]),\n getOwnPropertyNames: pureAndGlobal(\"object/get-own-property-names\", [\"es6.object.get-own-property-names\"]),\n getOwnPropertySymbols: pureAndGlobal(\"object/get-own-property-symbols\", [\"es6.symbol\"]),\n getPrototypeOf: pureAndGlobal(\"object/get-prototype-of\", [\"es6.object.get-prototype-of\"]),\n is: pureAndGlobal(\"object/is\", [\"es6.object.is\"]),\n isExtensible: pureAndGlobal(\"object/is-extensible\", [\"es6.object.is-extensible\"]),\n isFrozen: pureAndGlobal(\"object/is-frozen\", [\"es6.object.is-frozen\"]),\n isSealed: pureAndGlobal(\"object/is-sealed\", [\"es6.object.is-sealed\"]),\n keys: pureAndGlobal(\"object/keys\", [\"es6.object.keys\"]),\n preventExtensions: pureAndGlobal(\"object/prevent-extensions\", [\"es6.object.prevent-extensions\"]),\n seal: pureAndGlobal(\"object/seal\", [\"es6.object.seal\"]),\n setPrototypeOf: pureAndGlobal(\"object/set-prototype-of\", [\"es6.object.set-prototype-of\"]),\n values: pureAndGlobal(\"object/values\", [\"es7.object.values\"])\n },\n Promise: {\n all: globalOnly(CommonIterators),\n race: globalOnly(CommonIterators)\n },\n Reflect: {\n apply: pureAndGlobal(\"reflect/apply\", [\"es6.reflect.apply\"]),\n construct: pureAndGlobal(\"reflect/construct\", [\"es6.reflect.construct\"]),\n defineProperty: pureAndGlobal(\"reflect/define-property\", [\"es6.reflect.define-property\"]),\n deleteProperty: pureAndGlobal(\"reflect/delete-property\", [\"es6.reflect.delete-property\"]),\n get: pureAndGlobal(\"reflect/get\", [\"es6.reflect.get\"]),\n getOwnPropertyDescriptor: pureAndGlobal(\"reflect/get-own-property-descriptor\", [\"es6.reflect.get-own-property-descriptor\"]),\n getPrototypeOf: pureAndGlobal(\"reflect/get-prototype-of\", [\"es6.reflect.get-prototype-of\"]),\n has: pureAndGlobal(\"reflect/has\", [\"es6.reflect.has\"]),\n isExtensible: pureAndGlobal(\"reflect/is-extensible\", [\"es6.reflect.is-extensible\"]),\n ownKeys: pureAndGlobal(\"reflect/own-keys\", [\"es6.reflect.own-keys\"]),\n preventExtensions: pureAndGlobal(\"reflect/prevent-extensions\", [\"es6.reflect.prevent-extensions\"]),\n set: pureAndGlobal(\"reflect/set\", [\"es6.reflect.set\"]),\n setPrototypeOf: pureAndGlobal(\"reflect/set-prototype-of\", [\"es6.reflect.set-prototype-of\"])\n },\n String: {\n at: pureOnly(\"string/at\", \"es7.string.at\"),\n fromCodePoint: pureAndGlobal(\"string/from-code-point\", [\"es6.string.from-code-point\"]),\n raw: pureAndGlobal(\"string/raw\", [\"es6.string.raw\"])\n },\n Symbol: {\n // FIXME: Pure disabled to work around zloirock/core-js#262.\n asyncIterator: globalOnly([\"es6.symbol\", \"es7.symbol.async-iterator\"]),\n for: pureOnly(\"symbol/for\", \"es6.symbol\"),\n hasInstance: pureOnly(\"symbol/has-instance\", \"es6.symbol\"),\n isConcatSpreadable: pureOnly(\"symbol/is-concat-spreadable\", \"es6.symbol\"),\n iterator: define(\"es6.symbol\", \"symbol/iterator\", CommonIterators),\n keyFor: pureOnly(\"symbol/key-for\", \"es6.symbol\"),\n match: pureAndGlobal(\"symbol/match\", [\"es6.regexp.match\"]),\n replace: pureOnly(\"symbol/replace\", \"es6.symbol\"),\n search: pureOnly(\"symbol/search\", \"es6.symbol\"),\n species: pureOnly(\"symbol/species\", \"es6.symbol\"),\n split: pureOnly(\"symbol/split\", \"es6.symbol\"),\n toPrimitive: pureOnly(\"symbol/to-primitive\", \"es6.symbol\"),\n toStringTag: pureOnly(\"symbol/to-string-tag\", \"es6.symbol\"),\n unscopables: pureOnly(\"symbol/unscopables\", \"es6.symbol\")\n }\n};\nexports.StaticProperties = StaticProperties;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = _default;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nconst webPolyfills = {\n \"web.timers\": {},\n \"web.immediate\": {},\n \"web.dom.iterable\": {}\n};\nconst purePolyfills = {\n \"es6.parse-float\": {},\n \"es6.parse-int\": {},\n \"es7.string.at\": {}\n};\nfunction _default(targets, method, polyfills) {\n const targetNames = Object.keys(targets);\n const isAnyTarget = !targetNames.length;\n const isWebTarget = targetNames.some(name => name !== \"node\");\n return _extends({}, polyfills, method === \"usage-pure\" ? purePolyfills : null, isAnyTarget || isWebTarget ? webPolyfills : null);\n}","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.hasMinVersion = hasMinVersion;\nvar _semver = _interopRequireDefault(require(\"semver\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction hasMinVersion(minVersion, runtimeVersion) {\n // If the range is unavailable, we're running the script during Babel's\n // build process, and we want to assume that all versions are satisfied so\n // that the built output will include all definitions.\n if (!runtimeVersion || !minVersion) return true;\n runtimeVersion = String(runtimeVersion);\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with preprelease versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revist the logic in\n // babel-core's availableHelper() API.\n if (_semver.default.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;\n return !_semver.default.intersects(`<${minVersion}`, runtimeVersion) && !_semver.default.intersects(`>=8.0.0`, runtimeVersion);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.createUtilsGetter = createUtilsGetter;\nexports.getImportSource = getImportSource;\nexports.getRequireSource = getRequireSource;\nexports.has = has;\nexports.intersection = intersection;\nexports.resolveKey = resolveKey;\nexports.resolveSource = resolveSource;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t,\n template: template\n} = _babel.default || _babel;\nfunction intersection(a, b) {\n const result = new Set();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\nfunction has(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction getType(target) {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\nfunction resolveId(path) {\n if (path.isIdentifier() && !path.scope.hasBinding(path.node.name, /* noGlobals */true)) {\n return path.node.name;\n }\n if (path.isPure()) {\n const {\n deopt\n } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\nfunction resolveKey(path, computed = false) {\n const {\n scope\n } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (isIdentifier && !(computed || path.parent.computed)) {\n return path.node.name;\n }\n if (computed && path.isMemberExpression() && path.get(\"object\").isIdentifier({\n name: \"Symbol\"\n }) && !scope.hasBinding(\"Symbol\", /* noGlobals */true)) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n if (isIdentifier ? scope.hasBinding(path.node.name, /* noGlobals */true) : path.isPure()) {\n const {\n value\n } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\nfunction resolveSource(obj) {\n if (obj.isMemberExpression() && obj.get(\"property\").isIdentifier({\n name: \"prototype\"\n })) {\n const id = resolveId(obj.get(\"object\"));\n if (id) {\n return {\n id,\n placement: \"prototype\"\n };\n }\n return {\n id: null,\n placement: null\n };\n }\n const id = resolveId(obj);\n if (id) {\n return {\n id,\n placement: \"static\"\n };\n }\n if (obj.isRegExpLiteral()) {\n return {\n id: \"RegExp\",\n placement: \"prototype\"\n };\n } else if (obj.isFunction()) {\n return {\n id: \"Function\",\n placement: \"prototype\"\n };\n } else if (obj.isPure()) {\n const {\n value\n } = obj.evaluate();\n if (value !== undefined) {\n return {\n id: getType(value),\n placement: \"prototype\"\n };\n }\n }\n return {\n id: null,\n placement: null\n };\n}\nfunction getImportSource({\n node\n}) {\n if (node.specifiers.length === 0) return node.source.value;\n}\nfunction getRequireSource({\n node\n}) {\n if (!t.isExpressionStatement(node)) return;\n const {\n expression\n } = node;\n if (t.isCallExpression(expression) && t.isIdentifier(expression.callee) && expression.callee.name === \"require\" && expression.arguments.length === 1 && t.isStringLiteral(expression.arguments[0])) {\n return expression.arguments[0].value;\n }\n}\nfunction hoist(node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\nfunction createUtilsGetter(cache) {\n return path => {\n const prog = path.findParent(p => p.isProgram());\n return {\n injectGlobalImport(url, moduleName) {\n cache.storeAnonymous(prog, url, moduleName, (isScript, source) => {\n return isScript ? template.statement.ast`require(${source})` : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name, moduleName) {\n return cache.storeNamed(prog, url, name, moduleName, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `) : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name\n };\n });\n },\n injectDefaultImport(url, hint = url, moduleName) {\n return cache.storeNamed(prog, url, \"default\", moduleName, (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`var ${id} = require(${source})`) : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name\n };\n });\n }\n };\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t\n} = _babel.default || _babel;\nclass ImportsCachedInjector {\n constructor(resolver, getPreferredIndex) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n this._getPreferredIndex = getPreferredIndex;\n }\n storeAnonymous(programPath, url, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure(this._anonymousImports, programPath, Set);\n if (imports.has(key)) return;\n const node = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)));\n imports.add(key);\n this._injectImport(programPath, node, moduleName);\n }\n storeNamed(programPath, url, name, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure(this._imports, programPath, Map);\n if (!imports.has(key)) {\n const {\n node,\n name: id\n } = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)), t.identifier(name));\n imports.set(key, id);\n this._injectImport(programPath, node, moduleName);\n }\n return t.identifier(imports.get(key));\n }\n _injectImport(programPath, node, moduleName) {\n var _this$_lastImports$ge;\n const newIndex = this._getPreferredIndex(moduleName);\n const lastImports = (_this$_lastImports$ge = this._lastImports.get(programPath)) != null ? _this$_lastImports$ge : [];\n const isPathStillValid = path => path.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n path.parent === programPath.node && path.container === programPath.node.body;\n let last;\n if (newIndex === Infinity) {\n // Fast path: we can always just insert at the end if newIndex is `Infinity`\n if (lastImports.length > 0) {\n last = lastImports[lastImports.length - 1].path;\n if (!isPathStillValid(last)) last = undefined;\n }\n } else {\n for (const [i, data] of lastImports.entries()) {\n const {\n path,\n index\n } = data;\n if (isPathStillValid(path)) {\n if (newIndex < index) {\n const [newPath] = path.insertBefore(node);\n lastImports.splice(i, 0, {\n path: newPath,\n index: newIndex\n });\n return;\n }\n last = path;\n }\n }\n }\n if (last) {\n const [newPath] = last.insertAfter(node);\n lastImports.push({\n path: newPath,\n index: newIndex\n });\n } else {\n const [newPath] = programPath.unshiftContainer(\"body\", node);\n this._lastImports.set(programPath, [{\n path: newPath,\n index: newIndex\n }]);\n }\n }\n _ensure(map, programPath, Collection) {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n _normalizeKey(programPath, url, name = \"\") {\n const {\n sourceType\n } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\nexports.default = ImportsCachedInjector;","\"use strict\";\n\nexports.__esModule = true;\nexports.presetEnvSilentDebugHeader = void 0;\nexports.stringifyTargets = stringifyTargets;\nexports.stringifyTargetsMultiline = stringifyTargetsMultiline;\nvar _helperCompilationTargets = require(\"@babel/helper-compilation-targets\");\nconst presetEnvSilentDebugHeader = \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\nexports.presetEnvSilentDebugHeader = presetEnvSilentDebugHeader;\nfunction stringifyTargetsMultiline(targets) {\n return JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2);\n}\nfunction stringifyTargets(targets) {\n return JSON.stringify(targets).replace(/,/g, \", \").replace(/^\\{\"/, '{ \"').replace(/\"\\}$/, '\" }');\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.applyMissingDependenciesDefaults = applyMissingDependenciesDefaults;\nexports.validateIncludeExclude = validateIncludeExclude;\nvar _utils = require(\"./utils\");\nfunction patternToRegExp(pattern) {\n if (pattern instanceof RegExp) return pattern;\n try {\n return new RegExp(`^${pattern}$`);\n } catch (_unused) {\n return null;\n }\n}\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return ` - The following \"${label}\" patterns didn't match any polyfill:\\n` + unused.map(original => ` ${String(original)}\\n`).join(\"\");\n}\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` + Array.from(duplicates, name => ` ${name}\\n`).join(\"\");\n}\nfunction validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n let matched = false;\n for (const polyfill of polyfills.keys()) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n const duplicates = (0, _utils.intersection)(include, exclude);\n if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) {\n throw new Error(`Error while validating the \"${provider}\" provider options:\\n` + buildUnusedError(\"include\", unusedInclude) + buildUnusedError(\"exclude\", unusedExclude) + buldDuplicatesError(duplicates));\n }\n return {\n include,\n exclude\n };\n}\nfunction applyMissingDependenciesDefaults(options, babelApi) {\n const {\n missingDependencies = {}\n } = options;\n if (missingDependencies === false) return false;\n const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name);\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false\n } = missingDependencies;\n return {\n log,\n inject,\n all\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _utils = require(\"../utils\");\nfunction isRemoved(path) {\n if (path.removed) return true;\n if (!path.parentPath) return false;\n if (path.listKey) {\n if (!path.parentPath.node[path.listKey].includes(path.node)) return true;\n } else {\n if (path.parentPath.node[path.key] !== path.node) return true;\n }\n return isRemoved(path.parentPath);\n}\nvar _default = callProvider => {\n function property(object, key, placement, path) {\n return callProvider({\n kind: \"property\",\n object,\n key,\n placement\n }, path);\n }\n function handleReferencedIdentifier(path) {\n const {\n node: {\n name\n },\n scope\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n callProvider({\n kind: \"global\",\n name\n }, path);\n }\n function analyzeMemberExpression(path) {\n const key = (0, _utils.resolveKey)(path.get(\"property\"), path.node.computed);\n return {\n key,\n handleAsMemberExpression: !!key && key !== \"prototype\"\n };\n }\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path) {\n const {\n parentPath\n } = path;\n if (parentPath.isMemberExpression({\n object: path.node\n }) && analyzeMemberExpression(parentPath).handleAsMemberExpression) {\n return;\n }\n handleReferencedIdentifier(path);\n },\n MemberExpression(path) {\n const {\n key,\n handleAsMemberExpression\n } = analyzeMemberExpression(path);\n if (!handleAsMemberExpression) return;\n const object = path.get(\"object\");\n let objectIsGlobalIdentifier = object.isIdentifier();\n if (objectIsGlobalIdentifier) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding) {\n if (binding.path.isImportNamespaceSpecifier()) return;\n objectIsGlobalIdentifier = false;\n }\n }\n const source = (0, _utils.resolveSource)(object);\n let skipObject = property(source.id, key, source.placement, path);\n skipObject || (skipObject = !objectIsGlobalIdentifier || path.shouldSkip || object.shouldSkip || isRemoved(object));\n if (!skipObject) handleReferencedIdentifier(object);\n },\n ObjectPattern(path) {\n const {\n parentPath,\n parent\n } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n let id = null;\n let placement = null;\n if (obj) ({\n id,\n placement\n } = (0, _utils.resolveSource)(obj));\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = (0, _utils.resolveKey)(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n BinaryExpression(path) {\n if (path.node.operator !== \"in\") return;\n const source = (0, _utils.resolveSource)(path.get(\"right\"));\n const key = (0, _utils.resolveKey)(path.get(\"left\"), true);\n if (!key) return;\n callProvider({\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement\n }, path);\n }\n };\n};\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _utils = require(\"../utils\");\nvar _default = callProvider => ({\n ImportDeclaration(path) {\n const source = (0, _utils.getImportSource)(path);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, path);\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n const source = (0, _utils.getRequireSource)(bodyPath);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, bodyPath);\n });\n }\n});\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.usage = exports.entry = void 0;\nvar _usage = _interopRequireDefault(require(\"./usage\"));\nexports.usage = _usage.default;\nvar _entry = _interopRequireDefault(require(\"./entry\"));\nexports.entry = _entry.default;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports.has = has;\nexports.laterLogMissing = laterLogMissing;\nexports.logMissing = logMissing;\nexports.resolve = resolve;\nfunction resolve(dirname, moduleName, absoluteImports) {\n if (absoluteImports === false) return moduleName;\n throw new Error(`\"absoluteImports\" is not supported in bundles prepared for the browser.`);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction has(basedir, name) {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction logMissing(missingDeps) {}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction laterLogMissing(missingDeps) {}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createMetaResolver;\nvar _utils = require(\"./utils\");\nconst PossibleGlobalObjects = new Set([\"global\", \"globalThis\", \"self\", \"window\"]);\nfunction createMetaResolver(polyfills) {\n const {\n static: staticP,\n instance: instanceP,\n global: globalP\n } = polyfills;\n return meta => {\n if (meta.kind === \"global\" && globalP && (0, _utils.has)(globalP, meta.name)) {\n return {\n kind: \"global\",\n desc: globalP[meta.name],\n name: meta.name\n };\n }\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const {\n placement,\n object,\n key\n } = meta;\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && (0, _utils.has)(globalP, key)) {\n return {\n kind: \"global\",\n desc: globalP[key],\n name: key\n };\n }\n if (staticP && (0, _utils.has)(staticP, object) && (0, _utils.has)(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`\n };\n }\n }\n if (instanceP && (0, _utils.has)(instanceP, key)) {\n return {\n kind: \"instance\",\n desc: instanceP[key],\n name: `${key}`\n };\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = definePolyfillProvider;\nvar _helperPluginUtils = require(\"@babel/helper-plugin-utils\");\nvar _helperCompilationTargets = _interopRequireWildcard(require(\"@babel/helper-compilation-targets\"));\nvar _utils = require(\"./utils\");\nvar _importsInjector = _interopRequireDefault(require(\"./imports-injector\"));\nvar _debugUtils = require(\"./debug-utils\");\nvar _normalizeOptions = require(\"./normalize-options\");\nvar v = _interopRequireWildcard(require(\"./visitors\"));\nvar deps = _interopRequireWildcard(require(\"./node/dependencies\"));\nvar _metaResolver = _interopRequireDefault(require(\"./meta-resolver\"));\nconst _excluded = [\"method\", \"targets\", \"ignoreBrowserslistConfig\", \"configPath\", \"debug\", \"shouldInjectPolyfill\", \"absoluteImports\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nconst getTargets = _helperCompilationTargets.default.default || _helperCompilationTargets.default;\nfunction resolveOptions(options, babelApi) {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports\n } = options,\n providerOptions = _objectWithoutPropertiesLoose(options, _excluded);\n if (isEmpty(options)) {\n throw new Error(`\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);\n }\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";else if (method === \"entry-global\") methodName = \"entryGlobal\";else if (method === \"usage-pure\") methodName = \"usagePure\";else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(`.method must be one of \"entry-global\", \"usage-global\"` + ` or \"usage-pure\" (received ${JSON.stringify(method)})`);\n }\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(`.include and .exclude are not supported when using the` + ` .shouldInjectPolyfill function.`);\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(`.shouldInjectPolyfill must be a function, or undefined` + ` (received ${JSON.stringify(shouldInjectPolyfill)})`);\n }\n if (absoluteImports != null && typeof absoluteImports !== \"boolean\" && typeof absoluteImports !== \"string\") {\n throw new Error(`.absoluteImports must be a boolean, a string, or undefined` + ` (received ${JSON.stringify(absoluteImports)})`);\n }\n let targets;\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption || configPath || ignoreBrowserslistConfig) {\n const targetsObj = typeof targetsOption === \"string\" || Array.isArray(targetsOption) ? {\n browsers: targetsOption\n } : targetsOption;\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath\n });\n } else {\n targets = babelApi.targets();\n }\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports != null ? absoluteImports : false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions\n };\n}\nfunction instantiateProvider(factory, options, missingDependencies, dirname, debugLog, babelApi) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports\n } = resolveOptions(options, babelApi);\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n const getUtils = (0, _utils.createUtilsGetter)(new _importsInjector.default(moduleName => deps.resolve(dirname, moduleName, absoluteImports), name => {\n var _polyfillsNames$get, _polyfillsNames;\n return (_polyfillsNames$get = (_polyfillsNames = polyfillsNames) == null ? void 0 : _polyfillsNames.get(name)) != null ? _polyfillsNames$get : Infinity;\n }));\n const depsCache = new Map();\n const api = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver: _metaResolver.default,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(`Internal error in the ${factory.name} provider: ` + `shouldInjectPolyfill() can't be called during initialization.`);\n }\n if (!polyfillsNames.has(name)) {\n console.warn(`Internal error in the ${providerName} provider: ` + `unknown polyfill \"${name}\".`);\n }\n if (filterPolyfills && !filterPolyfills(name)) return false;\n let shouldInject = (0, _helperCompilationTargets.isRequired)(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude\n });\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n return shouldInject;\n },\n debug(name) {\n var _debugLog, _debugLog$polyfillsSu;\n debugLog().found = true;\n if (!debug || !name) return;\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n (_debugLog$polyfillsSu = (_debugLog = debugLog()).polyfillsSupport) != null ? _debugLog$polyfillsSu : _debugLog.polyfillsSupport = polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n const found = missingDependencies.all ? false : mapGetOr(depsCache, `${name} :: ${dirname}`, () => deps.has(dirname, name));\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n }\n };\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(`The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`);\n }\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Map(provider.polyfills.map((name, index) => [name, index]));\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Map(Object.keys(provider.polyfills).map((name, index) => [name, index]));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Map();\n }\n ({\n include,\n exclude\n } = (0, _normalizeOptions.validateIncludeExclude)(providerName, polyfillsNames, providerOptions.include || [], providerOptions.exclude || []));\n let callProvider;\n if (methodName === \"usageGlobal\") {\n callProvider = (payload, path) => {\n var _ref;\n const utils = getUtils(path);\n return (_ref = provider[methodName](payload, utils, path)) != null ? _ref : false;\n };\n } else {\n callProvider = (payload, path) => {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n return false;\n };\n }\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n };\n}\nfunction definePolyfillProvider(factory) {\n return (0, _helperPluginUtils.declare)((babelApi, options, dirname) => {\n babelApi.assertVersion(\"^7.0.0 || ^8.0.0-alpha.0\");\n const {\n traverse\n } = babelApi;\n let debugLog;\n const missingDependencies = (0, _normalizeOptions.applyMissingDependenciesDefaults)(options, babelApi);\n const {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n } = instantiateProvider(factory, options, missingDependencies, dirname, () => debugLog, babelApi);\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n const visitor = provider.visitor ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor]) : createVisitor(callProvider);\n if (debug && debug !== _debugUtils.presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${(0, _debugUtils.stringifyTargetsMultiline)(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n const {\n runtimeName\n } = provider;\n return {\n name: \"inject-polyfills\",\n visitor,\n pre(file) {\n var _provider$pre;\n if (runtimeName) {\n if (file.get(\"runtimeHelpersModuleName\") && file.get(\"runtimeHelpersModuleName\") !== runtimeName) {\n console.warn(`Two different polyfill providers` + ` (${file.get(\"runtimeHelpersModuleProvider\")}` + ` and ${providerName}) are trying to define two` + ` conflicting @babel/runtime alternatives:` + ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` + ` The second one will be ignored.`);\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set()\n };\n (_provider$pre = provider.pre) == null ? void 0 : _provider$pre.apply(this, arguments);\n },\n post() {\n var _provider$post;\n (_provider$post = provider.post) == null ? void 0 : _provider$post.apply(this, arguments);\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n if (!debug) return;\n if (this.filename) console.log(`\\n[${this.filename}]`);\n if (debugLog.polyfills.size === 0) {\n console.log(method === \"entry-global\" ? debugLog.found ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.` : `The entry point for the ${providerName} polyfill has not been found.` : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`);\n return;\n }\n if (method === \"entry-global\") {\n console.log(`The ${providerName} polyfill entry has been replaced with ` + `the following polyfills:`);\n } else {\n console.log(`The ${providerName} polyfill added the following polyfills:`);\n }\n for (const name of debugLog.polyfills) {\n var _debugLog$polyfillsSu2;\n if ((_debugLog$polyfillsSu2 = debugLog.polyfillsSupport) != null && _debugLog$polyfillsSu2[name]) {\n const filteredTargets = (0, _helperCompilationTargets.getInclusionReasons)(name, targets, debugLog.polyfillsSupport);\n const formattedTargets = JSON.stringify(filteredTargets).replace(/,/g, \", \").replace(/^\\{\"/, '{ \"').replace(/\"\\}$/, '\" }');\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n }\n };\n });\n}\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _corejs2BuiltIns = _interopRequireDefault(require(\"@babel/compat-data/corejs2-built-ins\"));\nvar _builtInDefinitions = require(\"./built-in-definitions\");\nvar _addPlatformSpecificPolyfills = _interopRequireDefault(require(\"./add-platform-specific-polyfills\"));\nvar _helpers = require(\"./helpers\");\nvar _helperDefinePolyfillProvider = _interopRequireDefault(require(\"@babel/helper-define-polyfill-provider\"));\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst {\n types: t\n} = _babel.default || _babel;\nconst BABEL_RUNTIME = \"@babel/runtime-corejs2\";\nconst presetEnvCompat = \"#__secret_key__@babel/preset-env__compatibility\";\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nconst has = Function.call.bind(Object.hasOwnProperty);\nvar _default = (0, _helperDefinePolyfillProvider.default)(function (api, {\n [presetEnvCompat]: {\n entryInjectRegenerator = false,\n noRuntimeName = false\n } = {},\n [runtimeCompat]: {\n useBabelRuntime = false,\n runtimeVersion = \"\",\n ext = \".js\"\n } = {}\n}) {\n const resolve = api.createMetaResolver({\n global: _builtInDefinitions.BuiltIns,\n static: _builtInDefinitions.StaticProperties,\n instance: _builtInDefinitions.InstanceProperties\n });\n const {\n debug,\n shouldInjectPolyfill,\n method\n } = api;\n const polyfills = (0, _addPlatformSpecificPolyfills.default)(api.targets, method, _corejs2BuiltIns.default);\n const coreJSBase = useBabelRuntime ? `${BABEL_RUNTIME}/core-js` : method === \"usage-pure\" ? \"core-js/library/fn\" : \"core-js/modules\";\n function inject(name, utils) {\n if (typeof name === \"string\") {\n // Some polyfills aren't always available, for example\n // web.dom.iterable when targeting node\n if (has(polyfills, name) && shouldInjectPolyfill(name)) {\n debug(name);\n utils.injectGlobalImport(`${coreJSBase}/${name}.js`);\n }\n return;\n }\n name.forEach(name => inject(name, utils));\n }\n function maybeInjectPure(desc, hint, utils) {\n let {\n pure,\n meta,\n name\n } = desc;\n if (!pure || !shouldInjectPolyfill(name)) return;\n if (runtimeVersion && meta && meta.minRuntimeVersion && !(0, _helpers.hasMinVersion)(meta && meta.minRuntimeVersion, runtimeVersion)) {\n return;\n }\n\n // Unfortunately core-js and @babel/runtime-corejs2 don't have the same\n // directory structure, so we need to special case this.\n if (useBabelRuntime && pure === \"symbol/index\") pure = \"symbol\";\n return utils.injectDefaultImport(`${coreJSBase}/${pure}${ext}`, hint);\n }\n return {\n name: \"corejs2\",\n runtimeName: noRuntimeName ? null : BABEL_RUNTIME,\n polyfills,\n entryGlobal(meta, utils, path) {\n if (meta.kind === \"import\" && meta.source === \"core-js\") {\n debug(null);\n inject(Object.keys(polyfills), utils);\n if (entryInjectRegenerator) {\n utils.injectGlobalImport(\"regenerator-runtime/runtime.js\");\n }\n path.remove();\n }\n },\n usageGlobal(meta, utils) {\n const resolved = resolve(meta);\n if (!resolved) return;\n let deps = resolved.desc.global;\n if (resolved.kind !== \"global\" && \"object\" in meta && meta.object && meta.placement === \"prototype\") {\n const low = meta.object.toLowerCase();\n deps = deps.filter(m => m.includes(low));\n }\n inject(deps, utils);\n },\n usagePure(meta, utils, path) {\n if (meta.kind === \"in\") {\n if (meta.key === \"Symbol.iterator\") {\n path.replaceWith(t.callExpression(utils.injectDefaultImport(`${coreJSBase}/is-iterable${ext}`, \"isIterable\"), [path.node.right] // meta.kind === \"in\" narrows this\n ));\n }\n\n return;\n }\n if (path.parentPath.isUnaryExpression({\n operator: \"delete\"\n })) return;\n if (meta.kind === \"property\") {\n // We can't compile destructuring.\n if (!path.isMemberExpression()) return;\n if (!path.isReferenced()) return;\n if (meta.key === \"Symbol.iterator\" && shouldInjectPolyfill(\"es6.symbol\") && path.parentPath.isCallExpression({\n callee: path.node\n }) && path.parentPath.node.arguments.length === 0) {\n path.parentPath.replaceWith(t.callExpression(utils.injectDefaultImport(`${coreJSBase}/get-iterator${ext}`, \"getIterator\"), [path.node.object]));\n path.skip();\n return;\n }\n }\n const resolved = resolve(meta);\n if (!resolved) return;\n const id = maybeInjectPure(resolved.desc, resolved.name, utils);\n if (id) path.replaceWith(id);\n },\n visitor: method === \"usage-global\" && {\n // yield*\n YieldExpression(path) {\n if (path.node.delegate) {\n inject(\"web.dom.iterable\", api.getUtils(path));\n }\n },\n // for-of, [a, b] = c\n \"ForOfStatement|ArrayPattern\"(path) {\n _builtInDefinitions.CommonIterators.forEach(name => inject(name, api.getUtils(path)));\n }\n }\n };\n});\nexports.default = _default;","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? null\n : require(\"babel-plugin-polyfill-corejs2-BABEL_8_BREAKING-false\");\n","module.exports = require(\"core-js-compat/data\");\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n// This file is automatically generated by scripts/build-corejs3-shipped-proposals.mjs\nvar _default = new Set([\"esnext.suppressed-error.constructor\", \"esnext.array.from-async\", \"esnext.array.group\", \"esnext.array.group-to-map\", \"esnext.iterator.constructor\", \"esnext.iterator.drop\", \"esnext.iterator.every\", \"esnext.iterator.filter\", \"esnext.iterator.find\", \"esnext.iterator.flat-map\", \"esnext.iterator.for-each\", \"esnext.iterator.from\", \"esnext.iterator.map\", \"esnext.iterator.reduce\", \"esnext.iterator.some\", \"esnext.iterator.take\", \"esnext.iterator.to-array\", \"esnext.json.is-raw-json\", \"esnext.json.parse\", \"esnext.json.raw-json\", \"esnext.set.difference.v2\", \"esnext.set.intersection.v2\", \"esnext.set.is-disjoint-from.v2\", \"esnext.set.is-subset-of.v2\", \"esnext.set.is-superset-of.v2\", \"esnext.set.symmetric-difference.v2\", \"esnext.set.union.v2\", \"esnext.symbol.async-dispose\", \"esnext.symbol.dispose\", \"esnext.symbol.metadata\"]);\nexports.default = _default;","'use strict';\n// eslint-disable-next-line es/no-object-hasown -- safe\nconst has = Object.hasOwn || Function.call.bind({}.hasOwnProperty);\n\nfunction semver(input) {\n if (input instanceof semver) return input;\n // eslint-disable-next-line new-cap -- ok\n if (!(this instanceof semver)) return new semver(input);\n const match = /(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/.exec(input);\n if (!match) throw new TypeError(`Invalid version: ${ input }`);\n const [, $major, $minor, $patch] = match;\n this.major = +$major;\n this.minor = $minor ? +$minor : 0;\n this.patch = $patch ? +$patch : 0;\n}\n\nsemver.prototype.toString = function () {\n return `${ this.major }.${ this.minor }.${ this.patch }`;\n};\n\nfunction compare($a, operator, $b) {\n const a = semver($a);\n const b = semver($b);\n for (const component of ['major', 'minor', 'patch']) {\n if (a[component] < b[component]) return operator === '<' || operator === '<=' || operator === '!=';\n if (a[component] > b[component]) return operator === '>' || operator === '>=' || operator === '!=';\n } return operator === '==' || operator === '<=' || operator === '>=';\n}\n\nfunction filterOutStabilizedProposals(modules) {\n const modulesSet = new Set(modules);\n\n for (const $module of modulesSet) {\n if ($module.startsWith('esnext.') && modulesSet.has($module.replace(/^esnext\\./, 'es.'))) {\n modulesSet.delete($module);\n }\n }\n\n return [...modulesSet];\n}\n\nfunction intersection(list, order) {\n const set = list instanceof Set ? list : new Set(list);\n return order.filter(name => set.has(name));\n}\n\nfunction sortObjectByKey(object, fn) {\n return Object.keys(object).sort(fn).reduce((memo, key) => {\n memo[key] = object[key];\n return memo;\n }, {});\n}\n\nmodule.exports = {\n compare,\n filterOutStabilizedProposals,\n has,\n intersection,\n semver,\n sortObjectByKey,\n};\n","'use strict';\nconst { compare, intersection, semver } = require('./helpers');\nconst modulesByVersions = require('./modules-by-versions');\nconst modules = require('./modules');\n\nmodule.exports = function (raw) {\n const corejs = semver(raw);\n if (corejs.major !== 3) {\n throw new RangeError('This version of `core-js-compat` works only with `core-js@3`.');\n }\n const result = [];\n for (const version of Object.keys(modulesByVersions)) {\n if (compare(version, '<=', corejs)) {\n result.push(...modulesByVersions[version]);\n }\n }\n return intersection(result, modules);\n};\n","module.exports = require(\"core-js-compat/get-modules-list-for-target-version\");\n","\"use strict\";\n\nexports.__esModule = true;\nexports.StaticProperties = exports.PromiseDependenciesWithIterators = exports.PromiseDependencies = exports.InstanceProperties = exports.DecoratorMetadataDependencies = exports.CommonIterators = exports.BuiltIns = void 0;\nvar _data = _interopRequireDefault(require(\"../core-js-compat/data.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nconst polyfillsOrder = {};\nObject.keys(_data.default).forEach((name, index) => {\n polyfillsOrder[name] = index;\n});\nconst define = (pure, global, name = global[0], exclude) => {\n return {\n name,\n pure,\n global: global.sort((a, b) => polyfillsOrder[a] - polyfillsOrder[b]),\n exclude\n };\n};\nconst typed = (...modules) => define(null, [...modules, ...TypedArrayDependencies]);\nconst ArrayNatureIterators = [\"es.array.iterator\", \"web.dom-collections.iterator\"];\nconst CommonIterators = [\"es.string.iterator\", ...ArrayNatureIterators];\nexports.CommonIterators = CommonIterators;\nconst ArrayNatureIteratorsWithTag = [\"es.object.to-string\", ...ArrayNatureIterators];\nconst CommonIteratorsWithTag = [\"es.object.to-string\", ...CommonIterators];\nconst ErrorDependencies = [\"es.error.cause\", \"es.error.to-string\"];\nconst SuppressedErrorDependencies = [\"esnext.suppressed-error.constructor\", ...ErrorDependencies];\nconst TypedArrayDependencies = [\"es.typed-array.at\", \"es.typed-array.copy-within\", \"es.typed-array.every\", \"es.typed-array.fill\", \"es.typed-array.filter\", \"es.typed-array.find\", \"es.typed-array.find-index\", \"es.typed-array.find-last\", \"es.typed-array.find-last-index\", \"es.typed-array.for-each\", \"es.typed-array.includes\", \"es.typed-array.index-of\", \"es.typed-array.iterator\", \"es.typed-array.join\", \"es.typed-array.last-index-of\", \"es.typed-array.map\", \"es.typed-array.reduce\", \"es.typed-array.reduce-right\", \"es.typed-array.reverse\", \"es.typed-array.set\", \"es.typed-array.slice\", \"es.typed-array.some\", \"es.typed-array.sort\", \"es.typed-array.subarray\", \"es.typed-array.to-locale-string\", \"es.typed-array.to-reversed\", \"es.typed-array.to-sorted\", \"es.typed-array.to-string\", \"es.typed-array.with\", \"es.object.to-string\", \"es.array.iterator\", \"es.array-buffer.slice\", \"es.data-view\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"esnext.typed-array.filter-reject\", \"esnext.typed-array.group-by\", \"esnext.typed-array.to-spliced\", \"esnext.typed-array.unique-by\"];\nconst PromiseDependencies = [\"es.promise\", \"es.object.to-string\"];\nexports.PromiseDependencies = PromiseDependencies;\nconst PromiseDependenciesWithIterators = [...PromiseDependencies, ...CommonIterators];\nexports.PromiseDependenciesWithIterators = PromiseDependenciesWithIterators;\nconst SymbolDependencies = [\"es.symbol\", \"es.symbol.description\", \"es.object.to-string\"];\nconst MapDependencies = [\"es.map\", \"esnext.map.delete-all\", \"esnext.map.emplace\", \"esnext.map.every\", \"esnext.map.filter\", \"esnext.map.find\", \"esnext.map.find-key\", \"esnext.map.includes\", \"esnext.map.key-of\", \"esnext.map.map-keys\", \"esnext.map.map-values\", \"esnext.map.merge\", \"esnext.map.reduce\", \"esnext.map.some\", \"esnext.map.update\", ...CommonIteratorsWithTag];\nconst SetDependencies = [\"es.set\", \"esnext.set.add-all\", \"esnext.set.delete-all\", \"esnext.set.difference\", \"esnext.set.difference.v2\", \"esnext.set.every\", \"esnext.set.filter\", \"esnext.set.find\", \"esnext.set.intersection\", \"esnext.set.intersection.v2\", \"esnext.set.is-disjoint-from\", \"esnext.set.is-disjoint-from.v2\", \"esnext.set.is-subset-of\", \"esnext.set.is-subset-of.v2\", \"esnext.set.is-superset-of\", \"esnext.set.is-superset-of.v2\", \"esnext.set.join\", \"esnext.set.map\", \"esnext.set.reduce\", \"esnext.set.some\", \"esnext.set.symmetric-difference\", \"esnext.set.symmetric-difference.v2\", \"esnext.set.union\", \"esnext.set.union.v2\", ...CommonIteratorsWithTag];\nconst WeakMapDependencies = [\"es.weak-map\", \"esnext.weak-map.delete-all\", \"esnext.weak-map.emplace\", ...CommonIteratorsWithTag];\nconst WeakSetDependencies = [\"es.weak-set\", \"esnext.weak-set.add-all\", \"esnext.weak-set.delete-all\", ...CommonIteratorsWithTag];\nconst DOMExceptionDependencies = [\"web.dom-exception.constructor\", \"web.dom-exception.stack\", \"web.dom-exception.to-string-tag\", \"es.error.to-string\"];\nconst URLSearchParamsDependencies = [\"web.url-search-params\", \"web.url-search-params.delete\", \"web.url-search-params.has\", \"web.url-search-params.size\", ...CommonIteratorsWithTag];\nconst AsyncIteratorDependencies = [\"esnext.async-iterator.constructor\", ...PromiseDependencies];\nconst AsyncIteratorProblemMethods = [\"esnext.async-iterator.every\", \"esnext.async-iterator.filter\", \"esnext.async-iterator.find\", \"esnext.async-iterator.flat-map\", \"esnext.async-iterator.for-each\", \"esnext.async-iterator.map\", \"esnext.async-iterator.reduce\", \"esnext.async-iterator.some\"];\nconst IteratorDependencies = [\"esnext.iterator.constructor\", \"es.object.to-string\"];\nconst DecoratorMetadataDependencies = [\"esnext.symbol.metadata\", \"esnext.function.metadata\"];\nexports.DecoratorMetadataDependencies = DecoratorMetadataDependencies;\nconst TypedArrayStaticMethods = base => ({\n from: define(null, [\"es.typed-array.from\", base, ...TypedArrayDependencies]),\n fromAsync: define(null, [\"esnext.typed-array.from-async\", base, ...PromiseDependenciesWithIterators, ...TypedArrayDependencies]),\n of: define(null, [\"es.typed-array.of\", base, ...TypedArrayDependencies])\n});\nconst DataViewDependencies = [\"es.data-view\", \"es.array-buffer.constructor\", \"es.array-buffer.slice\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"es.object.to-string\"];\nconst BuiltIns = {\n AsyncDisposableStack: define(\"async-disposable-stack/index\", [\"esnext.async-disposable-stack.constructor\", \"es.object.to-string\", \"esnext.async-iterator.async-dispose\", \"esnext.iterator.dispose\", ...PromiseDependencies, ...SuppressedErrorDependencies]),\n AsyncIterator: define(\"async-iterator/index\", AsyncIteratorDependencies),\n AggregateError: define(\"aggregate-error\", [\"es.aggregate-error\", ...ErrorDependencies, ...CommonIteratorsWithTag, \"es.aggregate-error.cause\"]),\n ArrayBuffer: define(null, [\"es.array-buffer.constructor\", \"es.array-buffer.slice\", \"es.data-view\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"es.object.to-string\"]),\n DataView: define(null, DataViewDependencies),\n Date: define(null, [\"es.date.to-string\"]),\n DOMException: define(\"dom-exception/index\", DOMExceptionDependencies),\n DisposableStack: define(\"disposable-stack/index\", [\"esnext.disposable-stack.constructor\", \"es.object.to-string\", \"esnext.iterator.dispose\", ...SuppressedErrorDependencies]),\n Error: define(null, ErrorDependencies),\n EvalError: define(null, ErrorDependencies),\n Float32Array: typed(\"es.typed-array.float32-array\"),\n Float64Array: typed(\"es.typed-array.float64-array\"),\n Int8Array: typed(\"es.typed-array.int8-array\"),\n Int16Array: typed(\"es.typed-array.int16-array\"),\n Int32Array: typed(\"es.typed-array.int32-array\"),\n Iterator: define(\"iterator/index\", IteratorDependencies),\n Uint8Array: typed(\"es.typed-array.uint8-array\", \"esnext.uint8-array.to-base64\", \"esnext.uint8-array.to-hex\"),\n Uint8ClampedArray: typed(\"es.typed-array.uint8-clamped-array\"),\n Uint16Array: typed(\"es.typed-array.uint16-array\"),\n Uint32Array: typed(\"es.typed-array.uint32-array\"),\n Map: define(\"map/index\", MapDependencies),\n Number: define(null, [\"es.number.constructor\"]),\n Observable: define(\"observable/index\", [\"esnext.observable\", \"esnext.symbol.observable\", \"es.object.to-string\", ...CommonIteratorsWithTag]),\n Promise: define(\"promise/index\", PromiseDependencies),\n RangeError: define(null, ErrorDependencies),\n ReferenceError: define(null, ErrorDependencies),\n Reflect: define(null, [\"es.reflect.to-string-tag\", \"es.object.to-string\"]),\n RegExp: define(null, [\"es.regexp.constructor\", \"es.regexp.dot-all\", \"es.regexp.exec\", \"es.regexp.sticky\", \"es.regexp.to-string\"]),\n Set: define(\"set/index\", SetDependencies),\n SuppressedError: define(\"suppressed-error\", SuppressedErrorDependencies),\n Symbol: define(\"symbol/index\", SymbolDependencies),\n SyntaxError: define(null, ErrorDependencies),\n TypeError: define(null, ErrorDependencies),\n URIError: define(null, ErrorDependencies),\n URL: define(\"url/index\", [\"web.url\", \"web.url.to-json\", ...URLSearchParamsDependencies]),\n URLSearchParams: define(\"url-search-params/index\", URLSearchParamsDependencies),\n WeakMap: define(\"weak-map/index\", WeakMapDependencies),\n WeakSet: define(\"weak-set/index\", WeakSetDependencies),\n atob: define(\"atob\", [\"web.atob\", ...DOMExceptionDependencies]),\n btoa: define(\"btoa\", [\"web.btoa\", ...DOMExceptionDependencies]),\n clearImmediate: define(\"clear-immediate\", [\"web.immediate\"]),\n compositeKey: define(\"composite-key\", [\"esnext.composite-key\"]),\n compositeSymbol: define(\"composite-symbol\", [\"esnext.composite-symbol\"]),\n escape: define(\"escape\", [\"es.escape\"]),\n fetch: define(null, PromiseDependencies),\n globalThis: define(\"global-this\", [\"es.global-this\"]),\n parseFloat: define(\"parse-float\", [\"es.parse-float\"]),\n parseInt: define(\"parse-int\", [\"es.parse-int\"]),\n queueMicrotask: define(\"queue-microtask\", [\"web.queue-microtask\"]),\n self: define(\"self\", [\"web.self\"]),\n setImmediate: define(\"set-immediate\", [\"web.immediate\"]),\n setInterval: define(\"set-interval\", [\"web.timers\"]),\n setTimeout: define(\"set-timeout\", [\"web.timers\"]),\n structuredClone: define(\"structured-clone\", [\"web.structured-clone\", ...DOMExceptionDependencies, \"es.array.iterator\", \"es.object.keys\", \"es.object.to-string\", \"es.map\", \"es.set\"]),\n unescape: define(\"unescape\", [\"es.unescape\"])\n};\nexports.BuiltIns = BuiltIns;\nconst StaticProperties = {\n AsyncIterator: {\n from: define(\"async-iterator/from\", [\"esnext.async-iterator.from\", ...AsyncIteratorDependencies, ...AsyncIteratorProblemMethods, ...CommonIterators])\n },\n Array: {\n from: define(\"array/from\", [\"es.array.from\", \"es.string.iterator\"]),\n fromAsync: define(\"array/from-async\", [\"esnext.array.from-async\", ...PromiseDependenciesWithIterators]),\n isArray: define(\"array/is-array\", [\"es.array.is-array\"]),\n isTemplateObject: define(\"array/is-template-object\", [\"esnext.array.is-template-object\"]),\n of: define(\"array/of\", [\"es.array.of\"])\n },\n ArrayBuffer: {\n isView: define(null, [\"es.array-buffer.is-view\"])\n },\n BigInt: {\n range: define(\"bigint/range\", [\"esnext.bigint.range\", \"es.object.to-string\"])\n },\n Date: {\n now: define(\"date/now\", [\"es.date.now\"])\n },\n Function: {\n isCallable: define(\"function/is-callable\", [\"esnext.function.is-callable\"]),\n isConstructor: define(\"function/is-constructor\", [\"esnext.function.is-constructor\"])\n },\n Iterator: {\n from: define(\"iterator/from\", [\"esnext.iterator.from\", ...IteratorDependencies, ...CommonIterators]),\n range: define(\"iterator/range\", [\"esnext.iterator.range\", \"es.object.to-string\"])\n },\n JSON: {\n isRawJSON: define(\"json/is-raw-json\", [\"esnext.json.is-raw-json\"]),\n parse: define(\"json/parse\", [\"esnext.json.parse\", \"es.object.keys\"]),\n rawJSON: define(\"json/raw-json\", [\"esnext.json.raw-json\", \"es.object.create\", \"es.object.freeze\"]),\n stringify: define(\"json/stringify\", [\"es.json.stringify\", \"es.date.to-json\"], \"es.symbol\")\n },\n Math: {\n DEG_PER_RAD: define(\"math/deg-per-rad\", [\"esnext.math.deg-per-rad\"]),\n RAD_PER_DEG: define(\"math/rad-per-deg\", [\"esnext.math.rad-per-deg\"]),\n acosh: define(\"math/acosh\", [\"es.math.acosh\"]),\n asinh: define(\"math/asinh\", [\"es.math.asinh\"]),\n atanh: define(\"math/atanh\", [\"es.math.atanh\"]),\n cbrt: define(\"math/cbrt\", [\"es.math.cbrt\"]),\n clamp: define(\"math/clamp\", [\"esnext.math.clamp\"]),\n clz32: define(\"math/clz32\", [\"es.math.clz32\"]),\n cosh: define(\"math/cosh\", [\"es.math.cosh\"]),\n degrees: define(\"math/degrees\", [\"esnext.math.degrees\"]),\n expm1: define(\"math/expm1\", [\"es.math.expm1\"]),\n fround: define(\"math/fround\", [\"es.math.fround\"]),\n f16round: define(\"math/f16round\", [\"esnext.math.f16round\"]),\n fscale: define(\"math/fscale\", [\"esnext.math.fscale\"]),\n hypot: define(\"math/hypot\", [\"es.math.hypot\"]),\n iaddh: define(\"math/iaddh\", [\"esnext.math.iaddh\"]),\n imul: define(\"math/imul\", [\"es.math.imul\"]),\n imulh: define(\"math/imulh\", [\"esnext.math.imulh\"]),\n isubh: define(\"math/isubh\", [\"esnext.math.isubh\"]),\n log10: define(\"math/log10\", [\"es.math.log10\"]),\n log1p: define(\"math/log1p\", [\"es.math.log1p\"]),\n log2: define(\"math/log2\", [\"es.math.log2\"]),\n radians: define(\"math/radians\", [\"esnext.math.radians\"]),\n scale: define(\"math/scale\", [\"esnext.math.scale\"]),\n seededPRNG: define(\"math/seeded-prng\", [\"esnext.math.seeded-prng\"]),\n sign: define(\"math/sign\", [\"es.math.sign\"]),\n signbit: define(\"math/signbit\", [\"esnext.math.signbit\"]),\n sinh: define(\"math/sinh\", [\"es.math.sinh\"]),\n tanh: define(\"math/tanh\", [\"es.math.tanh\"]),\n trunc: define(\"math/trunc\", [\"es.math.trunc\"]),\n umulh: define(\"math/umulh\", [\"esnext.math.umulh\"])\n },\n Map: {\n from: define(null, [\"esnext.map.from\", ...MapDependencies]),\n groupBy: define(\"map/group-by\", [\"es.map.group-by\", ...MapDependencies]),\n keyBy: define(\"map/key-by\", [\"esnext.map.key-by\", ...MapDependencies]),\n of: define(null, [\"esnext.map.of\", ...MapDependencies])\n },\n Number: {\n EPSILON: define(\"number/epsilon\", [\"es.number.epsilon\"]),\n MAX_SAFE_INTEGER: define(\"number/max-safe-integer\", [\"es.number.max-safe-integer\"]),\n MIN_SAFE_INTEGER: define(\"number/min-safe-integer\", [\"es.number.min-safe-integer\"]),\n fromString: define(\"number/from-string\", [\"esnext.number.from-string\"]),\n isFinite: define(\"number/is-finite\", [\"es.number.is-finite\"]),\n isInteger: define(\"number/is-integer\", [\"es.number.is-integer\"]),\n isNaN: define(\"number/is-nan\", [\"es.number.is-nan\"]),\n isSafeInteger: define(\"number/is-safe-integer\", [\"es.number.is-safe-integer\"]),\n parseFloat: define(\"number/parse-float\", [\"es.number.parse-float\"]),\n parseInt: define(\"number/parse-int\", [\"es.number.parse-int\"]),\n range: define(\"number/range\", [\"esnext.number.range\", \"es.object.to-string\"])\n },\n Object: {\n assign: define(\"object/assign\", [\"es.object.assign\"]),\n create: define(\"object/create\", [\"es.object.create\"]),\n defineProperties: define(\"object/define-properties\", [\"es.object.define-properties\"]),\n defineProperty: define(\"object/define-property\", [\"es.object.define-property\"]),\n entries: define(\"object/entries\", [\"es.object.entries\"]),\n freeze: define(\"object/freeze\", [\"es.object.freeze\"]),\n fromEntries: define(\"object/from-entries\", [\"es.object.from-entries\", \"es.array.iterator\"]),\n getOwnPropertyDescriptor: define(\"object/get-own-property-descriptor\", [\"es.object.get-own-property-descriptor\"]),\n getOwnPropertyDescriptors: define(\"object/get-own-property-descriptors\", [\"es.object.get-own-property-descriptors\"]),\n getOwnPropertyNames: define(\"object/get-own-property-names\", [\"es.object.get-own-property-names\"]),\n getOwnPropertySymbols: define(\"object/get-own-property-symbols\", [\"es.symbol\"]),\n getPrototypeOf: define(\"object/get-prototype-of\", [\"es.object.get-prototype-of\"]),\n groupBy: define(\"object/group-by\", [\"es.object.group-by\", \"es.object.create\"]),\n hasOwn: define(\"object/has-own\", [\"es.object.has-own\"]),\n is: define(\"object/is\", [\"es.object.is\"]),\n isExtensible: define(\"object/is-extensible\", [\"es.object.is-extensible\"]),\n isFrozen: define(\"object/is-frozen\", [\"es.object.is-frozen\"]),\n isSealed: define(\"object/is-sealed\", [\"es.object.is-sealed\"]),\n keys: define(\"object/keys\", [\"es.object.keys\"]),\n preventExtensions: define(\"object/prevent-extensions\", [\"es.object.prevent-extensions\"]),\n seal: define(\"object/seal\", [\"es.object.seal\"]),\n setPrototypeOf: define(\"object/set-prototype-of\", [\"es.object.set-prototype-of\"]),\n values: define(\"object/values\", [\"es.object.values\"])\n },\n Promise: {\n all: define(null, PromiseDependenciesWithIterators),\n allSettled: define(\"promise/all-settled\", [\"es.promise.all-settled\", ...PromiseDependenciesWithIterators]),\n any: define(\"promise/any\", [\"es.promise.any\", \"es.aggregate-error\", ...PromiseDependenciesWithIterators]),\n race: define(null, PromiseDependenciesWithIterators),\n try: define(\"promise/try\", [\"esnext.promise.try\", ...PromiseDependencies]),\n withResolvers: define(\"promise/with-resolvers\", [\"es.promise.with-resolvers\", ...PromiseDependencies])\n },\n Reflect: {\n apply: define(\"reflect/apply\", [\"es.reflect.apply\"]),\n construct: define(\"reflect/construct\", [\"es.reflect.construct\"]),\n defineMetadata: define(\"reflect/define-metadata\", [\"esnext.reflect.define-metadata\"]),\n defineProperty: define(\"reflect/define-property\", [\"es.reflect.define-property\"]),\n deleteMetadata: define(\"reflect/delete-metadata\", [\"esnext.reflect.delete-metadata\"]),\n deleteProperty: define(\"reflect/delete-property\", [\"es.reflect.delete-property\"]),\n get: define(\"reflect/get\", [\"es.reflect.get\"]),\n getMetadata: define(\"reflect/get-metadata\", [\"esnext.reflect.get-metadata\"]),\n getMetadataKeys: define(\"reflect/get-metadata-keys\", [\"esnext.reflect.get-metadata-keys\"]),\n getOwnMetadata: define(\"reflect/get-own-metadata\", [\"esnext.reflect.get-own-metadata\"]),\n getOwnMetadataKeys: define(\"reflect/get-own-metadata-keys\", [\"esnext.reflect.get-own-metadata-keys\"]),\n getOwnPropertyDescriptor: define(\"reflect/get-own-property-descriptor\", [\"es.reflect.get-own-property-descriptor\"]),\n getPrototypeOf: define(\"reflect/get-prototype-of\", [\"es.reflect.get-prototype-of\"]),\n has: define(\"reflect/has\", [\"es.reflect.has\"]),\n hasMetadata: define(\"reflect/has-metadata\", [\"esnext.reflect.has-metadata\"]),\n hasOwnMetadata: define(\"reflect/has-own-metadata\", [\"esnext.reflect.has-own-metadata\"]),\n isExtensible: define(\"reflect/is-extensible\", [\"es.reflect.is-extensible\"]),\n metadata: define(\"reflect/metadata\", [\"esnext.reflect.metadata\"]),\n ownKeys: define(\"reflect/own-keys\", [\"es.reflect.own-keys\"]),\n preventExtensions: define(\"reflect/prevent-extensions\", [\"es.reflect.prevent-extensions\"]),\n set: define(\"reflect/set\", [\"es.reflect.set\"]),\n setPrototypeOf: define(\"reflect/set-prototype-of\", [\"es.reflect.set-prototype-of\"])\n },\n RegExp: {\n escape: define(\"regexp/escape\", [\"esnext.regexp.escape\"])\n },\n Set: {\n from: define(null, [\"esnext.set.from\", ...SetDependencies]),\n of: define(null, [\"esnext.set.of\", ...SetDependencies])\n },\n String: {\n cooked: define(\"string/cooked\", [\"esnext.string.cooked\"]),\n dedent: define(\"string/dedent\", [\"esnext.string.dedent\", \"es.string.from-code-point\", \"es.weak-map\"]),\n fromCodePoint: define(\"string/from-code-point\", [\"es.string.from-code-point\"]),\n raw: define(\"string/raw\", [\"es.string.raw\"])\n },\n Symbol: {\n asyncDispose: define(\"symbol/async-dispose\", [\"esnext.symbol.async-dispose\", \"esnext.async-iterator.async-dispose\"]),\n asyncIterator: define(\"symbol/async-iterator\", [\"es.symbol.async-iterator\"]),\n dispose: define(\"symbol/dispose\", [\"esnext.symbol.dispose\", \"esnext.iterator.dispose\"]),\n for: define(\"symbol/for\", [], \"es.symbol\"),\n hasInstance: define(\"symbol/has-instance\", [\"es.symbol.has-instance\", \"es.function.has-instance\"]),\n isConcatSpreadable: define(\"symbol/is-concat-spreadable\", [\"es.symbol.is-concat-spreadable\", \"es.array.concat\"]),\n isRegistered: define(\"symbol/is-registered\", [\"esnext.symbol.is-registered\", \"es.symbol\"]),\n isRegisteredSymbol: define(\"symbol/is-registered-symbol\", [\"esnext.symbol.is-registered-symbol\", \"es.symbol\"]),\n isWellKnown: define(\"symbol/is-well-known\", [\"esnext.symbol.is-well-known\", \"es.symbol\"]),\n isWellKnownSymbol: define(\"symbol/is-well-known-symbol\", [\"esnext.symbol.is-well-known-symbol\", \"es.symbol\"]),\n iterator: define(\"symbol/iterator\", [\"es.symbol.iterator\", ...CommonIteratorsWithTag]),\n keyFor: define(\"symbol/key-for\", [], \"es.symbol\"),\n match: define(\"symbol/match\", [\"es.symbol.match\", \"es.string.match\"]),\n matcher: define(\"symbol/matcher\", [\"esnext.symbol.matcher\"]),\n matchAll: define(\"symbol/match-all\", [\"es.symbol.match-all\", \"es.string.match-all\"]),\n metadata: define(\"symbol/metadata\", DecoratorMetadataDependencies),\n metadataKey: define(\"symbol/metadata-key\", [\"esnext.symbol.metadata-key\"]),\n observable: define(\"symbol/observable\", [\"esnext.symbol.observable\"]),\n patternMatch: define(\"symbol/pattern-match\", [\"esnext.symbol.pattern-match\"]),\n replace: define(\"symbol/replace\", [\"es.symbol.replace\", \"es.string.replace\"]),\n search: define(\"symbol/search\", [\"es.symbol.search\", \"es.string.search\"]),\n species: define(\"symbol/species\", [\"es.symbol.species\", \"es.array.species\"]),\n split: define(\"symbol/split\", [\"es.symbol.split\", \"es.string.split\"]),\n toPrimitive: define(\"symbol/to-primitive\", [\"es.symbol.to-primitive\", \"es.date.to-primitive\"]),\n toStringTag: define(\"symbol/to-string-tag\", [\"es.symbol.to-string-tag\", \"es.object.to-string\", \"es.math.to-string-tag\", \"es.json.to-string-tag\"]),\n unscopables: define(\"symbol/unscopables\", [\"es.symbol.unscopables\"])\n },\n URL: {\n canParse: define(\"url/can-parse\", [\"web.url.can-parse\", \"web.url\"])\n },\n WeakMap: {\n from: define(null, [\"esnext.weak-map.from\", ...WeakMapDependencies]),\n of: define(null, [\"esnext.weak-map.of\", ...WeakMapDependencies])\n },\n WeakSet: {\n from: define(null, [\"esnext.weak-set.from\", ...WeakSetDependencies]),\n of: define(null, [\"esnext.weak-set.of\", ...WeakSetDependencies])\n },\n Int8Array: TypedArrayStaticMethods(\"es.typed-array.int8-array\"),\n Uint8Array: _extends({\n fromBase64: define(null, [\"esnext.uint8-array.from-base64\", ...TypedArrayDependencies]),\n fromHex: define(null, [\"esnext.uint8-array.from-hex\", ...TypedArrayDependencies])\n }, TypedArrayStaticMethods(\"es.typed-array.uint8-array\")),\n Uint8ClampedArray: TypedArrayStaticMethods(\"es.typed-array.uint8-clamped-array\"),\n Int16Array: TypedArrayStaticMethods(\"es.typed-array.int16-array\"),\n Uint16Array: TypedArrayStaticMethods(\"es.typed-array.uint16-array\"),\n Int32Array: TypedArrayStaticMethods(\"es.typed-array.int32-array\"),\n Uint32Array: TypedArrayStaticMethods(\"es.typed-array.uint32-array\"),\n Float32Array: TypedArrayStaticMethods(\"es.typed-array.float32-array\"),\n Float64Array: TypedArrayStaticMethods(\"es.typed-array.float64-array\"),\n WebAssembly: {\n CompileError: define(null, ErrorDependencies),\n LinkError: define(null, ErrorDependencies),\n RuntimeError: define(null, ErrorDependencies)\n }\n};\nexports.StaticProperties = StaticProperties;\nconst InstanceProperties = {\n asIndexedPairs: define(\"instance/asIndexedPairs\", [\"esnext.async-iterator.as-indexed-pairs\", ...AsyncIteratorDependencies, \"esnext.iterator.as-indexed-pairs\", ...IteratorDependencies]),\n at: define(\"instance/at\", [\n // TODO: We should introduce overloaded instance methods definition\n // Before that is implemented, the `esnext.string.at` must be the first\n // In pure mode, the provider resolves the descriptor as a \"pure\" `esnext.string.at`\n // and treats the compat-data of `esnext.string.at` as the compat-data of\n // pure import `instance/at`. The first polyfill here should have the lowest corejs\n // supported versions.\n \"esnext.string.at\", \"es.string.at-alternative\", \"es.array.at\"]),\n anchor: define(null, [\"es.string.anchor\"]),\n big: define(null, [\"es.string.big\"]),\n bind: define(\"instance/bind\", [\"es.function.bind\"]),\n blink: define(null, [\"es.string.blink\"]),\n bold: define(null, [\"es.string.bold\"]),\n codePointAt: define(\"instance/code-point-at\", [\"es.string.code-point-at\"]),\n codePoints: define(\"instance/code-points\", [\"esnext.string.code-points\"]),\n concat: define(\"instance/concat\", [\"es.array.concat\"], undefined, [\"String\"]),\n copyWithin: define(\"instance/copy-within\", [\"es.array.copy-within\"]),\n demethodize: define(\"instance/demethodize\", [\"esnext.function.demethodize\"]),\n description: define(null, [\"es.symbol\", \"es.symbol.description\"]),\n dotAll: define(null, [\"es.regexp.dot-all\"]),\n drop: define(null, [\"esnext.async-iterator.drop\", ...AsyncIteratorDependencies, \"esnext.iterator.drop\", ...IteratorDependencies]),\n emplace: define(\"instance/emplace\", [\"esnext.map.emplace\", \"esnext.weak-map.emplace\"]),\n endsWith: define(\"instance/ends-with\", [\"es.string.ends-with\"]),\n entries: define(\"instance/entries\", ArrayNatureIteratorsWithTag),\n every: define(\"instance/every\", [\"es.array.every\", \"esnext.async-iterator.every\",\n // TODO: add async iterator dependencies when we support sub-dependencies\n // esnext.async-iterator.every depends on es.promise\n // but we don't want to pull es.promise when esnext.async-iterator is disabled\n //\n // ...AsyncIteratorDependencies\n \"esnext.iterator.every\", ...IteratorDependencies]),\n exec: define(null, [\"es.regexp.exec\"]),\n fill: define(\"instance/fill\", [\"es.array.fill\"]),\n filter: define(\"instance/filter\", [\"es.array.filter\", \"esnext.async-iterator.filter\", \"esnext.iterator.filter\", ...IteratorDependencies]),\n filterReject: define(\"instance/filterReject\", [\"esnext.array.filter-reject\"]),\n finally: define(null, [\"es.promise.finally\", ...PromiseDependencies]),\n find: define(\"instance/find\", [\"es.array.find\", \"esnext.async-iterator.find\", \"esnext.iterator.find\", ...IteratorDependencies]),\n findIndex: define(\"instance/find-index\", [\"es.array.find-index\"]),\n findLast: define(\"instance/find-last\", [\"es.array.find-last\"]),\n findLastIndex: define(\"instance/find-last-index\", [\"es.array.find-last-index\"]),\n fixed: define(null, [\"es.string.fixed\"]),\n flags: define(\"instance/flags\", [\"es.regexp.flags\"]),\n flatMap: define(\"instance/flat-map\", [\"es.array.flat-map\", \"es.array.unscopables.flat-map\", \"esnext.async-iterator.flat-map\", \"esnext.iterator.flat-map\", ...IteratorDependencies]),\n flat: define(\"instance/flat\", [\"es.array.flat\", \"es.array.unscopables.flat\"]),\n getFloat16: define(null, [\"esnext.data-view.get-float16\", ...DataViewDependencies]),\n getUint8Clamped: define(null, [\"esnext.data-view.get-uint8-clamped\", ...DataViewDependencies]),\n getYear: define(null, [\"es.date.get-year\"]),\n group: define(\"instance/group\", [\"esnext.array.group\"]),\n groupBy: define(\"instance/group-by\", [\"esnext.array.group-by\"]),\n groupByToMap: define(\"instance/group-by-to-map\", [\"esnext.array.group-by-to-map\", \"es.map\", \"es.object.to-string\"]),\n groupToMap: define(\"instance/group-to-map\", [\"esnext.array.group-to-map\", \"es.map\", \"es.object.to-string\"]),\n fontcolor: define(null, [\"es.string.fontcolor\"]),\n fontsize: define(null, [\"es.string.fontsize\"]),\n forEach: define(\"instance/for-each\", [\"es.array.for-each\", \"esnext.async-iterator.for-each\", \"esnext.iterator.for-each\", ...IteratorDependencies, \"web.dom-collections.for-each\"]),\n includes: define(\"instance/includes\", [\"es.array.includes\", \"es.string.includes\"]),\n indexed: define(null, [\"esnext.async-iterator.indexed\", ...AsyncIteratorDependencies, \"esnext.iterator.indexed\", ...IteratorDependencies]),\n indexOf: define(\"instance/index-of\", [\"es.array.index-of\"]),\n isWellFormed: define(\"instance/is-well-formed\", [\"es.string.is-well-formed\"]),\n italic: define(null, [\"es.string.italics\"]),\n join: define(null, [\"es.array.join\"]),\n keys: define(\"instance/keys\", ArrayNatureIteratorsWithTag),\n lastIndex: define(null, [\"esnext.array.last-index\"]),\n lastIndexOf: define(\"instance/last-index-of\", [\"es.array.last-index-of\"]),\n lastItem: define(null, [\"esnext.array.last-item\"]),\n link: define(null, [\"es.string.link\"]),\n map: define(\"instance/map\", [\"es.array.map\", \"esnext.async-iterator.map\", \"esnext.iterator.map\"]),\n match: define(null, [\"es.string.match\", \"es.regexp.exec\"]),\n matchAll: define(\"instance/match-all\", [\"es.string.match-all\", \"es.regexp.exec\"]),\n name: define(null, [\"es.function.name\"]),\n padEnd: define(\"instance/pad-end\", [\"es.string.pad-end\"]),\n padStart: define(\"instance/pad-start\", [\"es.string.pad-start\"]),\n push: define(\"instance/push\", [\"es.array.push\"]),\n reduce: define(\"instance/reduce\", [\"es.array.reduce\", \"esnext.async-iterator.reduce\", \"esnext.iterator.reduce\", ...IteratorDependencies]),\n reduceRight: define(\"instance/reduce-right\", [\"es.array.reduce-right\"]),\n repeat: define(\"instance/repeat\", [\"es.string.repeat\"]),\n replace: define(null, [\"es.string.replace\", \"es.regexp.exec\"]),\n replaceAll: define(\"instance/replace-all\", [\"es.string.replace-all\", \"es.string.replace\", \"es.regexp.exec\"]),\n reverse: define(\"instance/reverse\", [\"es.array.reverse\"]),\n search: define(null, [\"es.string.search\", \"es.regexp.exec\"]),\n setFloat16: define(null, [\"esnext.data-view.set-float16\", ...DataViewDependencies]),\n setUint8Clamped: define(null, [\"esnext.data-view.set-uint8-clamped\", ...DataViewDependencies]),\n setYear: define(null, [\"es.date.set-year\"]),\n slice: define(\"instance/slice\", [\"es.array.slice\"]),\n small: define(null, [\"es.string.small\"]),\n some: define(\"instance/some\", [\"es.array.some\", \"esnext.async-iterator.some\", \"esnext.iterator.some\", ...IteratorDependencies]),\n sort: define(\"instance/sort\", [\"es.array.sort\"]),\n splice: define(\"instance/splice\", [\"es.array.splice\"]),\n split: define(null, [\"es.string.split\", \"es.regexp.exec\"]),\n startsWith: define(\"instance/starts-with\", [\"es.string.starts-with\"]),\n sticky: define(null, [\"es.regexp.sticky\"]),\n strike: define(null, [\"es.string.strike\"]),\n sub: define(null, [\"es.string.sub\"]),\n substr: define(null, [\"es.string.substr\"]),\n sup: define(null, [\"es.string.sup\"]),\n take: define(null, [\"esnext.async-iterator.take\", ...AsyncIteratorDependencies, \"esnext.iterator.take\", ...IteratorDependencies]),\n test: define(null, [\"es.regexp.test\", \"es.regexp.exec\"]),\n toArray: define(null, [\"esnext.async-iterator.to-array\", ...AsyncIteratorDependencies, \"esnext.iterator.to-array\", ...IteratorDependencies]),\n toAsync: define(null, [\"esnext.iterator.to-async\", ...IteratorDependencies, ...AsyncIteratorDependencies, ...AsyncIteratorProblemMethods]),\n toExponential: define(null, [\"es.number.to-exponential\"]),\n toFixed: define(null, [\"es.number.to-fixed\"]),\n toGMTString: define(null, [\"es.date.to-gmt-string\"]),\n toISOString: define(null, [\"es.date.to-iso-string\"]),\n toJSON: define(null, [\"es.date.to-json\"]),\n toPrecision: define(null, [\"es.number.to-precision\"]),\n toReversed: define(\"instance/to-reversed\", [\"es.array.to-reversed\"]),\n toSorted: define(\"instance/to-sorted\", [\"es.array.to-sorted\", \"es.array.sort\"]),\n toSpliced: define(\"instance/to-spliced\", [\"es.array.to-spliced\"]),\n toString: define(null, [\"es.object.to-string\", \"es.error.to-string\", \"es.date.to-string\", \"es.regexp.to-string\"]),\n toWellFormed: define(\"instance/to-well-formed\", [\"es.string.to-well-formed\"]),\n trim: define(\"instance/trim\", [\"es.string.trim\"]),\n trimEnd: define(\"instance/trim-end\", [\"es.string.trim-end\"]),\n trimLeft: define(\"instance/trim-left\", [\"es.string.trim-start\"]),\n trimRight: define(\"instance/trim-right\", [\"es.string.trim-end\"]),\n trimStart: define(\"instance/trim-start\", [\"es.string.trim-start\"]),\n uniqueBy: define(\"instance/unique-by\", [\"esnext.array.unique-by\", \"es.map\"]),\n unshift: define(\"instance/unshift\", [\"es.array.unshift\"]),\n unThis: define(\"instance/un-this\", [\"esnext.function.un-this\"]),\n values: define(\"instance/values\", ArrayNatureIteratorsWithTag),\n with: define(\"instance/with\", [\"es.array.with\"]),\n __defineGetter__: define(null, [\"es.object.define-getter\"]),\n __defineSetter__: define(null, [\"es.object.define-setter\"]),\n __lookupGetter__: define(null, [\"es.object.lookup-getter\"]),\n __lookupSetter__: define(null, [\"es.object.lookup-setter\"]),\n [\"__proto__\"]: define(null, [\"es.object.proto\"])\n};\nexports.InstanceProperties = InstanceProperties;","\"use strict\";\n\nexports.__esModule = true;\nexports.stable = exports.proposals = void 0;\n// This file contains the list of paths supported by @babel/runtime-corejs3.\n// It must _not_ be edited, as all new features should go through direct\n// injection of core-js-pure imports.\n\nconst stable = new Set([\"array\", \"array/from\", \"array/is-array\", \"array/of\", \"clear-immediate\", \"date/now\", \"instance/bind\", \"instance/code-point-at\", \"instance/concat\", \"instance/copy-within\", \"instance/ends-with\", \"instance/entries\", \"instance/every\", \"instance/fill\", \"instance/filter\", \"instance/find\", \"instance/find-index\", \"instance/flags\", \"instance/flat\", \"instance/flat-map\", \"instance/for-each\", \"instance/includes\", \"instance/index-of\", \"instance/keys\", \"instance/last-index-of\", \"instance/map\", \"instance/pad-end\", \"instance/pad-start\", \"instance/reduce\", \"instance/reduce-right\", \"instance/repeat\", \"instance/reverse\", \"instance/slice\", \"instance/some\", \"instance/sort\", \"instance/splice\", \"instance/starts-with\", \"instance/trim\", \"instance/trim-end\", \"instance/trim-left\", \"instance/trim-right\", \"instance/trim-start\", \"instance/values\", \"json/stringify\", \"map\", \"math/acosh\", \"math/asinh\", \"math/atanh\", \"math/cbrt\", \"math/clz32\", \"math/cosh\", \"math/expm1\", \"math/fround\", \"math/hypot\", \"math/imul\", \"math/log10\", \"math/log1p\", \"math/log2\", \"math/sign\", \"math/sinh\", \"math/tanh\", \"math/trunc\", \"number/epsilon\", \"number/is-finite\", \"number/is-integer\", \"number/is-nan\", \"number/is-safe-integer\", \"number/max-safe-integer\", \"number/min-safe-integer\", \"number/parse-float\", \"number/parse-int\", \"object/assign\", \"object/create\", \"object/define-properties\", \"object/define-property\", \"object/entries\", \"object/freeze\", \"object/from-entries\", \"object/get-own-property-descriptor\", \"object/get-own-property-descriptors\", \"object/get-own-property-names\", \"object/get-own-property-symbols\", \"object/get-prototype-of\", \"object/is\", \"object/is-extensible\", \"object/is-frozen\", \"object/is-sealed\", \"object/keys\", \"object/prevent-extensions\", \"object/seal\", \"object/set-prototype-of\", \"object/values\", \"parse-float\", \"parse-int\", \"promise\", \"queue-microtask\", \"reflect/apply\", \"reflect/construct\", \"reflect/define-property\", \"reflect/delete-property\", \"reflect/get\", \"reflect/get-own-property-descriptor\", \"reflect/get-prototype-of\", \"reflect/has\", \"reflect/is-extensible\", \"reflect/own-keys\", \"reflect/prevent-extensions\", \"reflect/set\", \"reflect/set-prototype-of\", \"set\", \"set-immediate\", \"set-interval\", \"set-timeout\", \"string/from-code-point\", \"string/raw\", \"symbol\", \"symbol/async-iterator\", \"symbol/for\", \"symbol/has-instance\", \"symbol/is-concat-spreadable\", \"symbol/iterator\", \"symbol/key-for\", \"symbol/match\", \"symbol/replace\", \"symbol/search\", \"symbol/species\", \"symbol/split\", \"symbol/to-primitive\", \"symbol/to-string-tag\", \"symbol/unscopables\", \"url\", \"url-search-params\", \"weak-map\", \"weak-set\"]);\nexports.stable = stable;\nconst proposals = new Set([...stable, \"aggregate-error\", \"composite-key\", \"composite-symbol\", \"global-this\", \"instance/at\", \"instance/code-points\", \"instance/match-all\", \"instance/replace-all\", \"math/clamp\", \"math/degrees\", \"math/deg-per-rad\", \"math/fscale\", \"math/iaddh\", \"math/imulh\", \"math/isubh\", \"math/rad-per-deg\", \"math/radians\", \"math/scale\", \"math/seeded-prng\", \"math/signbit\", \"math/umulh\", \"number/from-string\", \"observable\", \"reflect/define-metadata\", \"reflect/delete-metadata\", \"reflect/get-metadata\", \"reflect/get-metadata-keys\", \"reflect/get-own-metadata\", \"reflect/get-own-metadata-keys\", \"reflect/has-metadata\", \"reflect/has-own-metadata\", \"reflect/metadata\", \"symbol/dispose\", \"symbol/observable\", \"symbol/pattern-match\"]);\nexports.proposals = proposals;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = canSkipPolyfill;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t\n} = _babel.default || _babel;\nfunction canSkipPolyfill(desc, path) {\n const {\n node,\n parent\n } = path;\n switch (desc.name) {\n case \"es.string.split\":\n {\n if (!t.isCallExpression(parent, {\n callee: node\n })) return false;\n if (parent.arguments.length < 1) return true;\n const splitter = parent.arguments[0];\n return t.isStringLiteral(splitter) || t.isTemplateLiteral(splitter);\n }\n }\n}","module.exports = require(\"core-js-compat/entries\");\n","\"use strict\";\n\nexports.__esModule = true;\nexports.BABEL_RUNTIME = void 0;\nexports.callMethod = callMethod;\nexports.coreJSModule = coreJSModule;\nexports.coreJSPureHelper = coreJSPureHelper;\nexports.isCoreJSSource = isCoreJSSource;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nvar _entries = _interopRequireDefault(require(\"../core-js-compat/entries.js\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t\n} = _babel.default || _babel;\nconst BABEL_RUNTIME = \"@babel/runtime-corejs3\";\nexports.BABEL_RUNTIME = BABEL_RUNTIME;\nfunction callMethod(path, id) {\n const {\n object\n } = path.node;\n let context1, context2;\n if (t.isIdentifier(object)) {\n context1 = object;\n context2 = t.cloneNode(object);\n } else {\n context1 = path.scope.generateDeclaredUidIdentifier(\"context\");\n context2 = t.assignmentExpression(\"=\", t.cloneNode(context1), object);\n }\n path.replaceWith(t.memberExpression(t.callExpression(id, [context2]), t.identifier(\"call\")));\n path.parentPath.unshiftContainer(\"arguments\", context1);\n}\nfunction isCoreJSSource(source) {\n if (typeof source === \"string\") {\n source = source.replace(/\\\\/g, \"/\").replace(/(\\/(index)?)?(\\.js)?$/i, \"\").toLowerCase();\n }\n return Object.prototype.hasOwnProperty.call(_entries.default, source) && _entries.default[source];\n}\nfunction coreJSModule(name) {\n return `core-js/modules/${name}.js`;\n}\nfunction coreJSPureHelper(name, useBabelRuntime, ext) {\n return useBabelRuntime ? `${BABEL_RUNTIME}/core-js/${name}${ext}` : `core-js-pure/features/${name}.js`;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _data = _interopRequireDefault(require(\"../core-js-compat/data.js\"));\nvar _shippedProposals = _interopRequireDefault(require(\"./shipped-proposals\"));\nvar _getModulesListForTargetVersion = _interopRequireDefault(require(\"../core-js-compat/get-modules-list-for-target-version.js\"));\nvar _builtInDefinitions = require(\"./built-in-definitions\");\nvar BabelRuntimePaths = _interopRequireWildcard(require(\"./babel-runtime-corejs3-paths\"));\nvar _usageFilters = _interopRequireDefault(require(\"./usage-filters\"));\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nvar _utils = require(\"./utils\");\nvar _helperDefinePolyfillProvider = _interopRequireDefault(require(\"@babel/helper-define-polyfill-provider\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nconst {\n types: t\n} = _babel.default || _babel;\nconst presetEnvCompat = \"#__secret_key__@babel/preset-env__compatibility\";\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nconst uniqueObjects = [\"array\", \"string\", \"iterator\", \"async-iterator\", \"dom-collections\"].map(v => new RegExp(`[a-z]*\\\\.${v}\\\\..*`));\nconst esnextFallback = (name, cb) => {\n if (cb(name)) return true;\n if (!name.startsWith(\"es.\")) return false;\n const fallback = `esnext.${name.slice(3)}`;\n if (!_data.default[fallback]) return false;\n return cb(fallback);\n};\nvar _default = (0, _helperDefinePolyfillProvider.default)(function ({\n getUtils,\n method,\n shouldInjectPolyfill,\n createMetaResolver,\n debug,\n babel\n}, {\n version = 3,\n proposals,\n shippedProposals,\n [presetEnvCompat]: {\n noRuntimeName = false\n } = {},\n [runtimeCompat]: {\n useBabelRuntime = false,\n ext = \".js\"\n } = {}\n}) {\n const isWebpack = babel.caller(caller => (caller == null ? void 0 : caller.name) === \"babel-loader\");\n const resolve = createMetaResolver({\n global: _builtInDefinitions.BuiltIns,\n static: _builtInDefinitions.StaticProperties,\n instance: _builtInDefinitions.InstanceProperties\n });\n const available = new Set((0, _getModulesListForTargetVersion.default)(version));\n function getCoreJSPureBase(useProposalBase) {\n return useBabelRuntime ? useProposalBase ? `${_utils.BABEL_RUNTIME}/core-js` : `${_utils.BABEL_RUNTIME}/core-js-stable` : useProposalBase ? \"core-js-pure/features\" : \"core-js-pure/stable\";\n }\n function maybeInjectGlobalImpl(name, utils) {\n if (shouldInjectPolyfill(name)) {\n debug(name);\n utils.injectGlobalImport((0, _utils.coreJSModule)(name), name);\n return true;\n }\n return false;\n }\n function maybeInjectGlobal(names, utils, fallback = true) {\n for (const name of names) {\n if (fallback) {\n esnextFallback(name, name => maybeInjectGlobalImpl(name, utils));\n } else {\n maybeInjectGlobalImpl(name, utils);\n }\n }\n }\n function maybeInjectPure(desc, hint, utils, object) {\n if (desc.pure && !(object && desc.exclude && desc.exclude.includes(object)) && esnextFallback(desc.name, shouldInjectPolyfill)) {\n const {\n name\n } = desc;\n let useProposalBase = false;\n if (proposals || shippedProposals && name.startsWith(\"esnext.\")) {\n useProposalBase = true;\n } else if (name.startsWith(\"es.\") && !available.has(name)) {\n useProposalBase = true;\n }\n if (useBabelRuntime && !(useProposalBase ? BabelRuntimePaths.proposals : BabelRuntimePaths.stable).has(desc.pure)) {\n return;\n }\n const coreJSPureBase = getCoreJSPureBase(useProposalBase);\n return utils.injectDefaultImport(`${coreJSPureBase}/${desc.pure}${ext}`, hint);\n }\n }\n function isFeatureStable(name) {\n if (name.startsWith(\"esnext.\")) {\n const esName = `es.${name.slice(7)}`;\n // If its imaginative esName is not in latest compat data, it means\n // the proposal is not stage 4\n return esName in _data.default;\n }\n return true;\n }\n return {\n name: \"corejs3\",\n runtimeName: noRuntimeName ? null : _utils.BABEL_RUNTIME,\n polyfills: _data.default,\n filterPolyfills(name) {\n if (!available.has(name)) return false;\n if (proposals || method === \"entry-global\") return true;\n if (shippedProposals && _shippedProposals.default.has(name)) {\n return true;\n }\n return isFeatureStable(name);\n },\n entryGlobal(meta, utils, path) {\n if (meta.kind !== \"import\") return;\n const modules = (0, _utils.isCoreJSSource)(meta.source);\n if (!modules) return;\n if (modules.length === 1 && meta.source === (0, _utils.coreJSModule)(modules[0]) && shouldInjectPolyfill(modules[0])) {\n // Avoid infinite loop: do not replace imports with a new copy of\n // themselves.\n debug(null);\n return;\n }\n const modulesSet = new Set(modules);\n const filteredModules = modules.filter(module => {\n if (!module.startsWith(\"esnext.\")) return true;\n const stable = module.replace(\"esnext.\", \"es.\");\n if (modulesSet.has(stable) && shouldInjectPolyfill(stable)) {\n return false;\n }\n return true;\n });\n maybeInjectGlobal(filteredModules, utils, false);\n path.remove();\n },\n usageGlobal(meta, utils, path) {\n const resolved = resolve(meta);\n if (!resolved) return;\n if ((0, _usageFilters.default)(resolved.desc, path)) return;\n let deps = resolved.desc.global;\n if (resolved.kind !== \"global\" && \"object\" in meta && meta.object && meta.placement === \"prototype\") {\n const low = meta.object.toLowerCase();\n deps = deps.filter(m => uniqueObjects.some(v => v.test(m)) ? m.includes(low) : true);\n }\n maybeInjectGlobal(deps, utils);\n return true;\n },\n usagePure(meta, utils, path) {\n if (meta.kind === \"in\") {\n if (meta.key === \"Symbol.iterator\") {\n path.replaceWith(t.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)(\"is-iterable\", useBabelRuntime, ext), \"isIterable\"), [path.node.right] // meta.kind === \"in\" narrows this\n ));\n }\n\n return;\n }\n if (path.parentPath.isUnaryExpression({\n operator: \"delete\"\n })) return;\n if (meta.kind === \"property\") {\n // We can't compile destructuring and updateExpression.\n if (!path.isMemberExpression()) return;\n if (!path.isReferenced()) return;\n if (path.parentPath.isUpdateExpression()) return;\n if (t.isSuper(path.node.object)) {\n return;\n }\n if (meta.key === \"Symbol.iterator\") {\n if (!shouldInjectPolyfill(\"es.symbol.iterator\")) return;\n const {\n parent,\n node\n } = path;\n if (t.isCallExpression(parent, {\n callee: node\n })) {\n if (parent.arguments.length === 0) {\n path.parentPath.replaceWith(t.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)(\"get-iterator\", useBabelRuntime, ext), \"getIterator\"), [node.object]));\n path.skip();\n } else {\n (0, _utils.callMethod)(path, utils.injectDefaultImport((0, _utils.coreJSPureHelper)(\"get-iterator-method\", useBabelRuntime, ext), \"getIteratorMethod\"));\n }\n } else {\n path.replaceWith(t.callExpression(utils.injectDefaultImport((0, _utils.coreJSPureHelper)(\"get-iterator-method\", useBabelRuntime, ext), \"getIteratorMethod\"), [path.node.object]));\n }\n return;\n }\n }\n let resolved = resolve(meta);\n if (!resolved) return;\n if ((0, _usageFilters.default)(resolved.desc, path)) return;\n if (useBabelRuntime && resolved.desc.pure && resolved.desc.pure.slice(-6) === \"/index\") {\n // Remove /index, since it doesn't exist in @babel/runtime-corejs3s\n resolved = _extends({}, resolved, {\n desc: _extends({}, resolved.desc, {\n pure: resolved.desc.pure.slice(0, -6)\n })\n });\n }\n if (resolved.kind === \"global\") {\n const id = maybeInjectPure(resolved.desc, resolved.name, utils);\n if (id) path.replaceWith(id);\n } else if (resolved.kind === \"static\") {\n const id = maybeInjectPure(resolved.desc, resolved.name, utils,\n // @ts-expect-error\n meta.object);\n if (id) path.replaceWith(id);\n } else if (resolved.kind === \"instance\") {\n const id = maybeInjectPure(resolved.desc, `${resolved.name}InstanceProperty`, utils,\n // @ts-expect-error\n meta.object);\n if (!id) return;\n const {\n node\n } = path;\n if (t.isCallExpression(path.parent, {\n callee: node\n })) {\n (0, _utils.callMethod)(path, id);\n } else {\n path.replaceWith(t.callExpression(id, [node.object]));\n }\n }\n },\n visitor: method === \"usage-global\" && {\n // import(\"foo\")\n CallExpression(path) {\n if (path.get(\"callee\").isImport()) {\n const utils = getUtils(path);\n if (isWebpack) {\n // Webpack uses Promise.all to handle dynamic import.\n maybeInjectGlobal(_builtInDefinitions.PromiseDependenciesWithIterators, utils);\n } else {\n maybeInjectGlobal(_builtInDefinitions.PromiseDependencies, utils);\n }\n }\n },\n // (async function () { }).finally(...)\n Function(path) {\n if (path.node.async) {\n maybeInjectGlobal(_builtInDefinitions.PromiseDependencies, getUtils(path));\n }\n },\n // for-of, [a, b] = c\n \"ForOfStatement|ArrayPattern\"(path) {\n maybeInjectGlobal(_builtInDefinitions.CommonIterators, getUtils(path));\n },\n // [...spread]\n SpreadElement(path) {\n if (!path.parentPath.isObjectExpression()) {\n maybeInjectGlobal(_builtInDefinitions.CommonIterators, getUtils(path));\n }\n },\n // yield*\n YieldExpression(path) {\n if (path.node.delegate) {\n maybeInjectGlobal(_builtInDefinitions.CommonIterators, getUtils(path));\n }\n },\n // Decorators metadata\n Class(path) {\n var _path$node$decorators;\n const hasDecorators = ((_path$node$decorators = path.node.decorators) == null ? void 0 : _path$node$decorators.length) || path.node.body.body.some(el => {\n var _decorators;\n return (_decorators = el.decorators) == null ? void 0 : _decorators.length;\n });\n if (hasDecorators) {\n maybeInjectGlobal(_builtInDefinitions.DecoratorMetadataDependencies, getUtils(path));\n }\n }\n }\n };\n});\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _helperDefinePolyfillProvider = _interopRequireDefault(require(\"@babel/helper-define-polyfill-provider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nvar _default = (0, _helperDefinePolyfillProvider.default)(({\n debug,\n targets,\n babel\n}, options) => {\n if (!shallowEqual(targets, babel.targets())) {\n throw new Error(\"This plugin does not use the targets option. Only preset-env's targets\" + \" or top-level targets need to be configured for this plugin to work.\" + \" See https://github.com/babel/babel-polyfills/issues/36 for more\" + \" details.\");\n }\n const {\n [runtimeCompat]: {\n moduleName = null,\n useBabelRuntime = false\n } = {}\n } = options;\n return {\n name: \"regenerator\",\n polyfills: [\"regenerator-runtime\"],\n usageGlobal(meta, utils) {\n if (isRegenerator(meta)) {\n debug(\"regenerator-runtime\");\n utils.injectGlobalImport(\"regenerator-runtime/runtime.js\");\n }\n },\n usagePure(meta, utils, path) {\n if (isRegenerator(meta)) {\n let pureName = \"regenerator-runtime\";\n if (useBabelRuntime) {\n var _ref;\n const runtimeName = (_ref = moduleName != null ? moduleName : path.hub.file.get(\"runtimeHelpersModuleName\")) != null ? _ref : \"@babel/runtime\";\n pureName = `${runtimeName}/regenerator`;\n }\n path.replaceWith(utils.injectDefaultImport(pureName, \"regenerator-runtime\"));\n }\n }\n };\n});\nexports.default = _default;\nconst isRegenerator = meta => meta.kind === \"global\" && meta.name === \"regeneratorRuntime\";\nfunction shallowEqual(obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n}","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? null\n : require(\"babel-plugin-polyfill-regenerator-BABEL_8_BREAKING-false\");\n","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nconst pluginCorejs2 = require(\"babel-plugin-polyfill-corejs2\").default;\nconst pluginCorejs3 = require(\"babel-plugin-polyfill-corejs3\").default;\nconst pluginRegenerator = require(\"babel-plugin-polyfill-regenerator\").default;\n\nconst pluginsCompat = \"#__secret_key__@babel/runtime__compatibility\";\n\nfunction createCorejs2Plugin(options) {\n return (api, _, filename) => pluginCorejs2(api, options, filename);\n}\n\nfunction createCorejs3Plugin(options) {\n return (api, _, filename) => pluginCorejs3(api, options, filename);\n}\n\nfunction createRegeneratorPlugin(options, useRuntimeRegenerator, corejsPlugin) {\n if (!useRuntimeRegenerator) return corejsPlugin ?? undefined;\n return (api, _, filename) => {\n return {\n ...pluginRegenerator(api, options, filename),\n inherits: corejsPlugin ?? undefined,\n };\n };\n}\n\nmodule.exports = function createBasePolyfillsPlugin(\n { corejs, regenerator = true, moduleName },\n runtimeVersion,\n absoluteImports,\n) {\n let proposals = false;\n let rawVersion;\n\n if (typeof corejs === \"object\" && corejs !== null) {\n rawVersion = corejs.version;\n proposals = Boolean(corejs.proposals);\n } else {\n rawVersion = corejs;\n }\n\n const corejsVersion = rawVersion ? Number(rawVersion) : false;\n\n if (![false, 2, 3].includes(corejsVersion)) {\n throw new Error(\n `The \\`core-js\\` version must be false, 2 or 3, but got ${JSON.stringify(\n rawVersion,\n )}.`,\n );\n }\n\n if (proposals && (!corejsVersion || corejsVersion < 3)) {\n throw new Error(\n \"The 'proposals' option is only supported when using 'corejs: 3'\",\n );\n }\n\n if (typeof regenerator !== \"boolean\") {\n throw new Error(\n \"The 'regenerator' option must be undefined, or a boolean.\",\n );\n }\n\n const polyfillOpts = {\n method: \"usage-pure\",\n absoluteImports,\n proposals,\n [pluginsCompat]: {\n useBabelRuntime: true,\n runtimeVersion,\n ext: \"\",\n moduleName,\n },\n };\n\n return createRegeneratorPlugin(\n polyfillOpts,\n regenerator,\n corejsVersion === 2\n ? createCorejs2Plugin(polyfillOpts)\n : corejsVersion === 3\n ? createCorejs3Plugin(polyfillOpts)\n : null,\n );\n};\n","Object.defineProperty(exports, \"createPolyfillPlugins\", {\n get: () => require(\"./polyfills.cjs\"),\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { addDefault, isModule } from \"@babel/helper-module-imports\";\nimport { types as t } from \"@babel/core\";\n\nimport { hasMinVersion } from \"./helpers.ts\";\nimport getRuntimePath, { resolveFSPath } from \"./get-runtime-path/index.ts\";\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./babel-7/index.cjs\";\n\nexport interface Options {\n absoluteRuntime?: boolean;\n corejs?: string | number | { version: string | number; proposals?: boolean };\n helpers?: boolean;\n version?: string;\n moduleName?: null | string;\n}\n\nexport default declare((api, options: Options, dirname) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n version: runtimeVersion = \"7.0.0-beta.0\",\n absoluteRuntime = false,\n moduleName = null,\n } = options;\n\n if (\n typeof absoluteRuntime !== \"boolean\" &&\n typeof absoluteRuntime !== \"string\"\n ) {\n throw new Error(\n \"The 'absoluteRuntime' option must be undefined, a boolean, or a string.\",\n );\n }\n\n if (typeof runtimeVersion !== \"string\") {\n throw new Error(`The 'version' option must be a version string.`);\n }\n\n if (moduleName !== null && typeof moduleName !== \"string\") {\n throw new Error(\"The 'moduleName' option must be null or a string.\");\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // In recent @babel/runtime versions, we can use require(\"helper\").default\n // instead of require(\"helper\") so that it has the same interface as the\n // ESM helper, and bundlers can better exchange one format for the other.\n const DUAL_MODE_RUNTIME = \"7.13.0\";\n // eslint-disable-next-line no-var\n var supportsCJSDefault = hasMinVersion(DUAL_MODE_RUNTIME, runtimeVersion);\n }\n\n if (Object.hasOwn(options, \"useBuiltIns\")) {\n // @ts-expect-error deprecated options\n if (options[\"useBuiltIns\"]) {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. The @babel/runtime \" +\n \"module now uses builtins by default.\",\n );\n } else {\n throw new Error(\n \"The 'useBuiltIns' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (Object.hasOwn(options, \"polyfill\")) {\n // @ts-expect-error deprecated options\n if (options[\"polyfill\"] === false) {\n throw new Error(\n \"The 'polyfill' option has been removed. The @babel/runtime \" +\n \"module now skips polyfilling by default.\",\n );\n } else {\n throw new Error(\n \"The 'polyfill' option has been removed. Use the 'corejs'\" +\n \"option to polyfill with `core-js` via @babel/runtime.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"regenerator\")) {\n throw new Error(\n \"The 'regenerator' option has been removed. The generators transform \" +\n \"no longers relies on a 'regeneratorRuntime' global. \" +\n \"If you still need to replace imports to the 'regeneratorRuntime' \" +\n \"global, you can use babel-plugin-polyfill-regenerator.\",\n );\n }\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"useESModules\")) {\n throw new Error(\n \"The 'useESModules' option has been removed. @babel/runtime now uses \" +\n \"package.json#exports to support both CommonJS and ESM helpers.\",\n );\n }\n } else {\n // @ts-expect-error(Babel 7 vs Babel 8)\n const { useESModules = false } = options;\n if (typeof useESModules !== \"boolean\" && useESModules !== \"auto\") {\n throw new Error(\n \"The 'useESModules' option must be undefined, or a boolean, or 'auto'.\",\n );\n }\n\n // eslint-disable-next-line no-var\n var esModules =\n useESModules === \"auto\"\n ? api.caller(\n // @ts-expect-error CallerMetadata does not define supportsStaticESM\n caller => !!caller?.supportsStaticESM,\n )\n : useESModules;\n }\n\n if (process.env.BABEL_8_BREAKING) {\n if (Object.hasOwn(options, \"helpers\")) {\n throw new Error(\n \"The 'helpers' option has been removed. \" +\n \"Remove the plugin from your config if \" +\n \"you want to disable helpers import injection.\",\n );\n }\n } else {\n // eslint-disable-next-line no-var\n var { helpers: useRuntimeHelpers = true } = options;\n\n if (typeof useRuntimeHelpers !== \"boolean\") {\n throw new Error(\"The 'helpers' option must be undefined, or a boolean.\");\n }\n }\n\n const HEADER_HELPERS = new Set([\n \"interopRequireWildcard\",\n \"interopRequireDefault\",\n ]);\n\n return {\n name: \"transform-runtime\",\n\n inherits: process.env.BABEL_8_BREAKING\n ? undefined\n : babel7.createPolyfillPlugins(options, runtimeVersion, absoluteRuntime),\n\n pre(file) {\n if (!process.env.BABEL_8_BREAKING && !useRuntimeHelpers) return;\n\n let modulePath: string;\n\n file.set(\"helperGenerator\", (name: string) => {\n modulePath ??= getRuntimePath(\n moduleName ??\n file.get(\"runtimeHelpersModuleName\") ??\n \"@babel/runtime\",\n dirname,\n absoluteRuntime,\n );\n\n // If the helper didn't exist yet at the version given, we bail\n // out and let Babel either insert it directly, or throw an error\n // so that plugins can handle that case properly.\n if (!process.env.BABEL_8_BREAKING) {\n if (!file.availableHelper?.(name, runtimeVersion)) {\n if (name === \"regeneratorRuntime\") {\n // For regeneratorRuntime, we can fallback to the old behavior of\n // relying on the regeneratorRuntime global. If the 'regenerator'\n // option is not disabled, babel-plugin-polyfill-regenerator will\n // then replace it with a @babel/helpers/regenerator import.\n //\n // We must wrap it in a function, because built-in Babel helpers\n // are functions.\n return t.arrowFunctionExpression(\n [],\n t.identifier(\"regeneratorRuntime\"),\n );\n }\n return;\n }\n } else {\n if (!file.availableHelper(name, runtimeVersion)) return;\n }\n\n // Explicitly set the CommonJS interop helpers to their reserve\n // blockHoist of 4 so they are guaranteed to exist\n // when other things used them to import.\n const blockHoist =\n HEADER_HELPERS.has(name) && !isModule(file.path) ? 4 : undefined;\n\n let helperPath = `${modulePath}/helpers/${\n !process.env.BABEL_8_BREAKING &&\n esModules &&\n file.path.node.sourceType === \"module\"\n ? \"esm/\" + name\n : name\n }`;\n if (absoluteRuntime) helperPath = resolveFSPath(helperPath);\n\n return addDefaultImport(helperPath, name, blockHoist, true);\n });\n\n const cache = new Map();\n\n function addDefaultImport(\n source: string,\n nameHint: string,\n blockHoist: number,\n isHelper = false,\n ) {\n // If something on the page adds a helper when the file is an ES6\n // file, we can't reused the cached helper name after things have been\n // transformed because it has almost certainly been renamed.\n const cacheKey = isModule(file.path);\n const key = `${source}:${nameHint}:${cacheKey || \"\"}`;\n\n let cached = cache.get(key);\n if (cached) {\n cached = t.cloneNode(cached);\n } else {\n cached = addDefault(file.path, source, {\n importedInterop: (\n process.env.BABEL_8_BREAKING\n ? isHelper\n : isHelper && supportsCJSDefault\n )\n ? \"compiled\"\n : \"uncompiled\",\n nameHint,\n blockHoist,\n });\n\n cache.set(key, cached);\n }\n return cached;\n }\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-shorthand-properties\",\n\n visitor: {\n ObjectMethod(path) {\n const { node } = path;\n if (node.kind === \"method\") {\n const func = t.functionExpression(\n null,\n node.params,\n node.body,\n node.generator,\n node.async,\n );\n func.returnType = node.returnType;\n\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, func, true));\n } else {\n path.replaceWith(t.objectProperty(node.key, func, node.computed));\n }\n }\n },\n\n ObjectProperty(path) {\n const { node } = path;\n if (node.shorthand) {\n const computedKey = t.toComputedKey(node);\n if (t.isStringLiteral(computedKey, { value: \"__proto__\" })) {\n path.replaceWith(t.objectProperty(computedKey, node.value, true));\n } else {\n node.shorthand = false;\n }\n }\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { File } from \"@babel/core\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath, Scope } from \"@babel/traverse\";\n\ntype ListElement = t.SpreadElement | t.Expression;\n\nexport interface Options {\n allowArrayLike?: boolean;\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const iterableIsArray = api.assumption(\"iterableIsArray\") ?? options.loose;\n const arrayLikeIsIterable =\n options.allowArrayLike ?? api.assumption(\"arrayLikeIsIterable\");\n\n function getSpreadLiteral(\n spread: t.SpreadElement,\n scope: Scope,\n ): t.Expression {\n if (\n iterableIsArray &&\n !t.isIdentifier(spread.argument, { name: \"arguments\" })\n ) {\n return spread.argument;\n } else {\n return scope.toArray(spread.argument, true, arrayLikeIsIterable);\n }\n }\n\n function hasHole(spread: t.ArrayExpression): boolean {\n return spread.elements.some(el => el === null);\n }\n\n function hasSpread(nodes: Array): boolean {\n for (let i = 0; i < nodes.length; i++) {\n if (t.isSpreadElement(nodes[i])) {\n return true;\n }\n }\n return false;\n }\n\n function push(_props: Array, nodes: Array) {\n if (!_props.length) return _props;\n nodes.push(t.arrayExpression(_props));\n return [];\n }\n\n function build(\n props: Array,\n scope: Scope,\n file: File,\n ): t.Expression[] {\n const nodes: Array = [];\n let _props: Array = [];\n\n for (const prop of props) {\n if (t.isSpreadElement(prop)) {\n _props = push(_props, nodes);\n let spreadLiteral = getSpreadLiteral(prop, scope);\n\n if (t.isArrayExpression(spreadLiteral) && hasHole(spreadLiteral)) {\n spreadLiteral = t.callExpression(\n file.addHelper(\n process.env.BABEL_8_BREAKING\n ? \"arrayLikeToArray\"\n : \"arrayWithoutHoles\",\n ),\n [spreadLiteral],\n );\n }\n\n nodes.push(spreadLiteral);\n } else {\n _props.push(prop);\n }\n }\n\n push(_props, nodes);\n\n return nodes;\n }\n\n return {\n name: \"transform-spread\",\n\n visitor: {\n ArrayExpression(path): void {\n const { node, scope } = path;\n const elements = node.elements;\n if (!hasSpread(elements)) return;\n\n const nodes = build(elements, scope, this.file);\n let first = nodes[0];\n\n // If there is only one element in the ArrayExpression and\n // the element was transformed (Array.prototype.slice.call or toConsumableArray)\n // we know that the transformed code already takes care of cloning the array.\n // So we can simply return that element.\n if (\n nodes.length === 1 &&\n first !== (elements[0] as t.SpreadElement).argument\n ) {\n path.replaceWith(first);\n return;\n }\n\n // If the first element is a ArrayExpression we can directly call\n // concat on it.\n // `[..].concat(..)`\n // If not then we have to use `[].concat(arr)` and not `arr.concat`\n // because `arr` could be extended/modified (e.g. Immutable) and we do not know exactly\n // what concat would produce.\n if (!t.isArrayExpression(first)) {\n first = t.arrayExpression([]);\n } else {\n nodes.shift();\n }\n\n path.replaceWith(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n },\n CallExpression(path): void {\n const { node, scope } = path;\n\n const args = node.arguments as Array;\n if (!hasSpread(args)) return;\n const calleePath = skipTransparentExprWrappers(\n path.get(\"callee\") as NodePath,\n );\n if (calleePath.isSuper()) {\n // NOTE: spread and classes have almost the same compat data, so this is very unlikely to happen in practice.\n throw path.buildCodeFrameError(\n \"It's not possible to compile spread arguments in `super()` without compiling classes.\\n\" +\n \"Please add '@babel/plugin-transform-classes' to your Babel configuration.\",\n );\n }\n let contextLiteral: t.Expression | t.Super = scope.buildUndefinedNode();\n node.arguments = [];\n\n let nodes: t.Expression[];\n if (\n args.length === 1 &&\n t.isIdentifier((args[0] as t.SpreadElement).argument, {\n name: \"arguments\",\n })\n ) {\n nodes = [(args[0] as t.SpreadElement).argument];\n } else {\n nodes = build(args, scope, this.file);\n }\n\n const first = nodes.shift();\n if (nodes.length) {\n node.arguments.push(\n t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n ),\n );\n } else {\n node.arguments.push(first);\n }\n\n const callee = calleePath.node as t.MemberExpression;\n\n if (t.isMemberExpression(callee)) {\n const temp = scope.maybeGenerateMemoised(callee.object);\n if (temp) {\n callee.object = t.assignmentExpression(\n \"=\",\n temp,\n // object must not be Super when `temp` is an identifier\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n callee.object as t.Expression,\n );\n contextLiteral = temp;\n } else {\n contextLiteral = t.cloneNode(callee.object);\n }\n }\n\n // We use the original callee here, to preserve any types/parentheses\n node.callee = t.memberExpression(\n node.callee as t.Expression,\n t.identifier(\"apply\"),\n );\n if (t.isSuper(contextLiteral)) {\n contextLiteral = t.thisExpression();\n }\n\n node.arguments.unshift(t.cloneNode(contextLiteral));\n },\n\n NewExpression(path): void {\n const { node, scope } = path;\n if (!hasSpread(node.arguments)) return;\n\n const nodes = build(\n node.arguments as Array,\n scope,\n this.file,\n );\n\n const first = nodes.shift();\n\n let args: t.Expression;\n if (nodes.length) {\n args = t.callExpression(\n t.memberExpression(first, t.identifier(\"concat\")),\n nodes,\n );\n } else {\n args = first;\n }\n\n path.replaceWith(\n t.callExpression(path.hub.addHelper(\"construct\"), [\n node.callee as t.Expression,\n args,\n ]),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-sticky-regex\",\n\n visitor: {\n RegExpLiteral(path) {\n const { node } = path;\n if (!node.flags.includes(\"y\")) return;\n\n path.replaceWith(\n t.newExpression(t.identifier(\"RegExp\"), [\n t.stringLiteral(node.pattern),\n t.stringLiteral(node.flags),\n ]),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-strict-mode\",\n\n visitor: {\n Program(path) {\n const { node } = path;\n\n for (const directive of node.directives) {\n if (directive.value.value === \"use strict\") return;\n }\n\n path.unshiftContainer(\n \"directives\",\n t.directive(t.directiveLiteral(\"use strict\")),\n );\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport interface Options {\n loose?: boolean;\n}\n\nexport default declare((api, options: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const ignoreToPrimitiveHint =\n api.assumption(\"ignoreToPrimitiveHint\") ?? options.loose;\n const mutableTemplateObject =\n api.assumption(\"mutableTemplateObject\") ?? options.loose;\n\n let helperName = \"taggedTemplateLiteral\";\n if (mutableTemplateObject) helperName += \"Loose\";\n\n /**\n * This function groups the objects into multiple calls to `.concat()` in\n * order to preserve execution order of the primitive conversion, e.g.\n *\n * \"\".concat(obj.foo, \"foo\", obj2.foo, \"foo2\")\n *\n * would evaluate both member expressions _first_ then, `concat` will\n * convert each one to a primitive, whereas\n *\n * \"\".concat(obj.foo, \"foo\").concat(obj2.foo, \"foo2\")\n *\n * would evaluate the member, then convert it to a primitive, then evaluate\n * the second member and convert that one, which reflects the spec behavior\n * of template literals.\n */\n function buildConcatCallExpressions(items: t.Expression[]): t.CallExpression {\n let avail = true;\n // @ts-expect-error items must not be empty\n return items.reduce(function (left, right) {\n let canBeInserted = t.isLiteral(right);\n\n if (!canBeInserted && avail) {\n canBeInserted = true;\n avail = false;\n }\n if (canBeInserted && t.isCallExpression(left)) {\n left.arguments.push(right);\n return left;\n }\n return t.callExpression(\n t.memberExpression(left, t.identifier(\"concat\")),\n [right],\n );\n });\n }\n\n return {\n name: \"transform-template-literals\",\n\n visitor: {\n TaggedTemplateExpression(path) {\n const { node } = path;\n const { quasi } = node;\n\n const strings = [];\n const raws = [];\n\n // Flag variable to check if contents of strings and raw are equal\n let isStringsRawEqual = true;\n\n for (const elem of quasi.quasis) {\n const { raw, cooked } = elem.value;\n const value =\n cooked == null\n ? path.scope.buildUndefinedNode()\n : t.stringLiteral(cooked);\n\n strings.push(value);\n raws.push(t.stringLiteral(raw));\n\n if (raw !== cooked) {\n // false even if one of raw and cooked are not equal\n isStringsRawEqual = false;\n }\n }\n\n const helperArgs = [t.arrayExpression(strings)];\n // only add raw arrayExpression if there is any difference between raws and strings\n if (!isStringsRawEqual) {\n helperArgs.push(t.arrayExpression(raws));\n }\n\n const tmp = path.scope.generateUidIdentifier(\"templateObject\");\n path.scope.getProgramParent().push({ id: t.cloneNode(tmp) });\n\n path.replaceWith(\n t.callExpression(node.tag, [\n template.expression.ast`\n ${t.cloneNode(tmp)} || (\n ${tmp} = ${this.addHelper(helperName)}(${helperArgs})\n )\n `,\n // @ts-expect-error Fixme: quasi.expressions may contain TSAnyKeyword\n ...quasi.expressions,\n ]),\n );\n },\n\n TemplateLiteral(path) {\n // Skip TemplateLiteral in TSLiteralType\n if (path.parent.type === \"TSLiteralType\") {\n return;\n }\n const nodes: t.Expression[] = [];\n const expressions = path.get(\"expressions\") as NodePath[];\n\n let index = 0;\n for (const elem of path.node.quasis) {\n if (elem.value.cooked) {\n nodes.push(t.stringLiteral(elem.value.cooked));\n }\n\n if (index < expressions.length) {\n const expr = expressions[index++];\n const node = expr.node;\n if (!t.isStringLiteral(node, { value: \"\" })) {\n nodes.push(node);\n }\n }\n }\n\n // since `+` is left-to-right associative\n // ensure the first node is a string if first/second isn't\n if (\n !t.isStringLiteral(nodes[0]) &&\n !(ignoreToPrimitiveHint && t.isStringLiteral(nodes[1]))\n ) {\n nodes.unshift(t.stringLiteral(\"\"));\n }\n let root = nodes[0];\n\n if (ignoreToPrimitiveHint) {\n for (let i = 1; i < nodes.length; i++) {\n root = t.binaryExpression(\"+\", root, nodes[i]);\n }\n } else if (nodes.length > 1) {\n root = buildConcatCallExpressions(nodes);\n }\n\n path.replaceWith(root);\n },\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-typeof-symbol\",\n\n visitor: {\n Scope({ scope }) {\n if (!scope.getBinding(\"Symbol\")) {\n return;\n }\n\n scope.rename(\"Symbol\");\n },\n\n UnaryExpression(path) {\n const { node, parent } = path;\n if (node.operator !== \"typeof\") return;\n\n if (\n path.parentPath.isBinaryExpression() &&\n t.EQUALITY_BINARY_OPERATORS.indexOf(\n (parent as t.BinaryExpression).operator,\n ) >= 0\n ) {\n // optimise `typeof foo === \"string\"` since we can determine that they'll never\n // need to handle symbols\n const opposite = path.getOpposite();\n if (\n opposite.isStringLiteral() &&\n opposite.node.value !== \"symbol\" &&\n opposite.node.value !== \"object\"\n ) {\n return;\n }\n }\n\n let isUnderHelper = path.findParent(path => {\n if (path.isFunction()) {\n return (\n path.get(\"body.directives.0\")?.node.value.value ===\n \"@babel/helpers - typeof\"\n );\n }\n });\n\n if (isUnderHelper) return;\n\n const helper = this.addHelper(\"typeof\");\n\n // TODO: This is needed for backward compatibility with\n // @babel/helpers <= 7.8.3.\n // Remove in Babel 8\n isUnderHelper = path.findParent(path => {\n return (\n (path.isVariableDeclarator() && path.node.id === helper) ||\n (path.isFunctionDeclaration() &&\n path.node.id &&\n path.node.id.name === helper.name)\n );\n });\n\n if (isUnderHelper) {\n return;\n }\n\n const call = t.callExpression(helper, [node.argument]);\n const arg = path.get(\"argument\");\n if (arg.isIdentifier() && !path.scope.hasBinding(arg.node.name, true)) {\n const unary = t.unaryExpression(\"typeof\", t.cloneNode(node.argument));\n path.replaceWith(\n t.conditionalExpression(\n t.binaryExpression(\"===\", unary, t.stringLiteral(\"undefined\")),\n t.stringLiteral(\"undefined\"),\n call,\n ),\n );\n } else {\n path.replaceWith(call);\n }\n },\n },\n };\n});\n","import { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport assert from \"assert\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\n\ntype t = typeof t;\n\nconst ENUMS = new WeakMap();\n\nconst buildEnumWrapper = template.expression(\n `\n (function (ID) {\n ASSIGNMENTS;\n return ID;\n })(INIT)\n `,\n);\n\nexport default function transpileEnum(\n path: NodePath,\n t: t,\n) {\n const { node, parentPath } = path;\n\n if (node.declare) {\n path.remove();\n return;\n }\n\n const name = node.id.name;\n const { fill, data, isPure } = enumFill(path, t, node.id);\n\n switch (parentPath.type) {\n case \"BlockStatement\":\n case \"ExportNamedDeclaration\":\n case \"Program\": {\n // todo: Consider exclude program with import/export\n // && !path.parent.body.some(n => t.isImportDeclaration(n) || t.isExportDeclaration(n));\n const isGlobal = t.isProgram(path.parent);\n const isSeen = seen(parentPath);\n\n let init: t.Expression = t.objectExpression([]);\n if (isSeen || isGlobal) {\n init = t.logicalExpression(\"||\", t.cloneNode(fill.ID), init);\n }\n const enumIIFE = buildEnumWrapper({ ...fill, INIT: init });\n if (isPure) annotateAsPure(enumIIFE);\n\n if (isSeen) {\n const toReplace = parentPath.isExportDeclaration() ? parentPath : path;\n toReplace.replaceWith(\n t.expressionStatement(\n t.assignmentExpression(\"=\", t.cloneNode(node.id), enumIIFE),\n ),\n );\n } else {\n path.scope.registerDeclaration(\n path.replaceWith(\n t.variableDeclaration(isGlobal ? \"var\" : \"let\", [\n t.variableDeclarator(node.id, enumIIFE),\n ]),\n )[0],\n );\n }\n ENUMS.set(path.scope.getBindingIdentifier(name), data);\n break;\n }\n\n default:\n throw new Error(`Unexpected enum parent '${path.parent.type}`);\n }\n\n function seen(parentPath: NodePath): boolean {\n if (parentPath.isExportDeclaration()) {\n return seen(parentPath.parentPath);\n }\n\n if (parentPath.getData(name)) {\n return true;\n } else {\n parentPath.setData(name, true);\n return false;\n }\n }\n}\n\nconst buildStringAssignment = template(`\n ENUM[\"NAME\"] = VALUE;\n`);\n\nconst buildNumericAssignment = template(`\n ENUM[ENUM[\"NAME\"] = VALUE] = \"NAME\";\n`);\n\nconst buildEnumMember = (isString: boolean, options: Record) =>\n (isString ? buildStringAssignment : buildNumericAssignment)(options);\n\n/**\n * Generates the statement that fills in the variable declared by the enum.\n * `(function (E) { ... assignments ... })(E || (E = {}));`\n */\nfunction enumFill(path: NodePath, t: t, id: t.Identifier) {\n const { enumValues: x, data, isPure } = translateEnumValues(path, t);\n const assignments = x.map(([memberName, memberValue]) =>\n buildEnumMember(t.isStringLiteral(memberValue), {\n ENUM: t.cloneNode(id),\n NAME: memberName,\n VALUE: memberValue,\n }),\n );\n\n return {\n fill: {\n ID: t.cloneNode(id),\n ASSIGNMENTS: assignments,\n },\n data,\n isPure,\n };\n}\n\n/**\n * Maps the name of an enum member to its value.\n * We keep track of the previous enum members so you can write code like:\n * enum E {\n * X = 1 << 0,\n * Y = 1 << 1,\n * Z = X | Y,\n * }\n */\ntype PreviousEnumMembers = Map;\n\ntype EnumSelfReferenceVisitorState = {\n seen: PreviousEnumMembers;\n path: NodePath;\n t: t;\n};\n\nfunction ReferencedIdentifier(\n expr: NodePath,\n state: EnumSelfReferenceVisitorState,\n) {\n const { seen, path, t } = state;\n const name = expr.node.name;\n if (seen.has(name) && !expr.scope.hasOwnBinding(name)) {\n expr.replaceWith(\n t.memberExpression(t.cloneNode(path.node.id), t.cloneNode(expr.node)),\n );\n expr.skip();\n }\n}\n\nconst enumSelfReferenceVisitor = {\n ReferencedIdentifier,\n};\n\nexport function translateEnumValues(path: NodePath, t: t) {\n const bindingIdentifier = path.scope.getBindingIdentifier(path.node.id.name);\n const seen: PreviousEnumMembers = ENUMS.get(bindingIdentifier) ?? new Map();\n\n // Start at -1 so the first enum member is its increment, 0.\n let constValue: number | string | undefined = -1;\n let lastName: string;\n let isPure = true;\n\n const enumValues: Array<[name: string, value: t.Expression]> = path\n .get(\"members\")\n .map(memberPath => {\n const member = memberPath.node;\n const name = t.isIdentifier(member.id) ? member.id.name : member.id.value;\n const initializerPath = memberPath.get(\"initializer\");\n const initializer = member.initializer;\n let value: t.Expression;\n if (initializer) {\n constValue = computeConstantValue(initializerPath, seen);\n if (constValue !== undefined) {\n seen.set(name, constValue);\n assert(\n typeof constValue === \"number\" || typeof constValue === \"string\",\n );\n // We do not use `t.valueToNode` because `Infinity`/`NaN` might refer\n // to a local variable. Even 1/0\n // Revisit once https://github.com/microsoft/TypeScript/issues/55091\n // is fixed. Note: we will have to distinguish between actual\n // infinities and reference to non-infinite variables names Infinity.\n if (constValue === Infinity || Number.isNaN(constValue)) {\n value = t.identifier(String(constValue));\n } else if (constValue === -Infinity) {\n value = t.unaryExpression(\"-\", t.identifier(\"Infinity\"));\n } else {\n value = t.valueToNode(constValue);\n }\n } else {\n isPure &&= initializerPath.isPure();\n\n if (initializerPath.isReferencedIdentifier()) {\n ReferencedIdentifier(initializerPath, {\n t,\n seen,\n path,\n });\n } else {\n initializerPath.traverse(enumSelfReferenceVisitor, {\n t,\n seen,\n path,\n });\n }\n\n value = initializerPath.node;\n seen.set(name, undefined);\n }\n } else if (typeof constValue === \"number\") {\n constValue += 1;\n value = t.numericLiteral(constValue);\n seen.set(name, constValue);\n } else if (typeof constValue === \"string\") {\n throw path.buildCodeFrameError(\"Enum member must have initializer.\");\n } else {\n // create dynamic initializer: 1 + ENUM[\"PREVIOUS\"]\n const lastRef = t.memberExpression(\n t.cloneNode(path.node.id),\n t.stringLiteral(lastName),\n true,\n );\n value = t.binaryExpression(\"+\", t.numericLiteral(1), lastRef);\n seen.set(name, undefined);\n }\n\n lastName = name;\n return [name, value];\n });\n\n return {\n isPure,\n data: seen,\n enumValues,\n };\n}\n\n// Based on the TypeScript repository's `computeConstantValue` in `checker.ts`.\nfunction computeConstantValue(\n path: NodePath,\n prevMembers?: PreviousEnumMembers,\n seen: Set = new Set(),\n): number | string | undefined {\n return evaluate(path);\n\n function evaluate(path: NodePath): number | string | undefined {\n const expr = path.node;\n switch (expr.type) {\n case \"MemberExpression\":\n return evaluateRef(path, prevMembers, seen);\n case \"StringLiteral\":\n return expr.value;\n case \"UnaryExpression\":\n return evalUnaryExpression(path as NodePath);\n case \"BinaryExpression\":\n return evalBinaryExpression(path as NodePath);\n case \"NumericLiteral\":\n return expr.value;\n case \"ParenthesizedExpression\":\n return evaluate(path.get(\"expression\"));\n case \"Identifier\":\n return evaluateRef(path, prevMembers, seen);\n case \"TemplateLiteral\": {\n if (expr.quasis.length === 1) {\n return expr.quasis[0].value.cooked;\n }\n\n const paths = (path as NodePath).get(\"expressions\");\n const quasis = expr.quasis;\n let str = \"\";\n\n for (let i = 0; i < quasis.length; i++) {\n str += quasis[i].value.cooked;\n\n if (i + 1 < quasis.length) {\n const value = evaluateRef(paths[i], prevMembers, seen);\n if (value === undefined) return undefined;\n str += value;\n }\n }\n return str;\n }\n default:\n return undefined;\n }\n }\n\n function evaluateRef(\n path: NodePath,\n prevMembers: PreviousEnumMembers,\n seen: Set,\n ): number | string | undefined {\n if (path.isMemberExpression()) {\n const expr = path.node;\n\n const obj = expr.object;\n const prop = expr.property;\n if (\n !t.isIdentifier(obj) ||\n (expr.computed ? !t.isStringLiteral(prop) : !t.isIdentifier(prop))\n ) {\n return;\n }\n const bindingIdentifier = path.scope.getBindingIdentifier(obj.name);\n const data = ENUMS.get(bindingIdentifier);\n if (!data) return;\n // @ts-expect-error checked above\n return data.get(prop.computed ? prop.value : prop.name);\n } else if (path.isIdentifier()) {\n const name = path.node.name;\n\n if ([\"Infinity\", \"NaN\"].includes(name)) {\n return Number(name);\n }\n\n let value = prevMembers?.get(name);\n if (value !== undefined) {\n return value;\n }\n\n if (seen.has(path.node)) return;\n seen.add(path.node);\n\n value = computeConstantValue(path.resolve(), prevMembers, seen);\n prevMembers?.set(name, value);\n return value;\n }\n }\n\n function evalUnaryExpression(\n path: NodePath,\n ): number | string | undefined {\n const value = evaluate(path.get(\"argument\"));\n if (value === undefined) {\n return undefined;\n }\n\n switch (path.node.operator) {\n case \"+\":\n return value;\n case \"-\":\n return -value;\n case \"~\":\n return ~value;\n default:\n return undefined;\n }\n }\n\n function evalBinaryExpression(\n path: NodePath,\n ): number | string | undefined {\n const left = evaluate(path.get(\"left\")) as any;\n if (left === undefined) {\n return undefined;\n }\n const right = evaluate(path.get(\"right\")) as any;\n if (right === undefined) {\n return undefined;\n }\n\n switch (path.node.operator) {\n case \"|\":\n return left | right;\n case \"&\":\n return left & right;\n case \">>\":\n return left >> right;\n case \">>>\":\n return left >>> right;\n case \"<<\":\n return left << right;\n case \"^\":\n return left ^ right;\n case \"*\":\n return left * right;\n case \"/\":\n return left / right;\n case \"+\":\n return left + right;\n case \"-\":\n return left - right;\n case \"%\":\n return left % right;\n case \"**\":\n return left ** right;\n default:\n return undefined;\n }\n }\n}\n","import type * as t from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport { translateEnumValues } from \"./enum.ts\";\n\nexport type NodePathConstEnum = NodePath;\nexport default function transpileConstEnum(\n path: NodePathConstEnum,\n t: typeof import(\"@babel/types\"),\n) {\n const { name } = path.node.id;\n\n const parentIsExport = path.parentPath.isExportNamedDeclaration();\n let isExported = parentIsExport;\n if (!isExported && t.isProgram(path.parent)) {\n isExported = path.parent.body.some(\n stmt =>\n t.isExportNamedDeclaration(stmt) &&\n stmt.exportKind !== \"type\" &&\n !stmt.source &&\n stmt.specifiers.some(\n spec =>\n t.isExportSpecifier(spec) &&\n spec.exportKind !== \"type\" &&\n spec.local.name === name,\n ),\n );\n }\n\n const { enumValues: entries } = translateEnumValues(path, t);\n\n if (isExported) {\n const obj = t.objectExpression(\n entries.map(([name, value]) =>\n t.objectProperty(\n t.isValidIdentifier(name)\n ? t.identifier(name)\n : t.stringLiteral(name),\n value,\n ),\n ),\n );\n\n if (path.scope.hasOwnBinding(name)) {\n (parentIsExport ? path.parentPath : path).replaceWith(\n t.expressionStatement(\n t.callExpression(\n t.memberExpression(t.identifier(\"Object\"), t.identifier(\"assign\")),\n [path.node.id, obj],\n ),\n ),\n );\n } else {\n path.replaceWith(\n t.variableDeclaration(process.env.BABEL_8_BREAKING ? \"const\" : \"var\", [\n t.variableDeclarator(path.node.id, obj),\n ]),\n );\n path.scope.registerDeclaration(path);\n }\n\n return;\n }\n\n const entriesMap = new Map(entries);\n\n // TODO: After fixing https://github.com/babel/babel/pull/11065, we can\n // use path.scope.getBinding(name).referencePaths rather than doing\n // a full traversal.\n path.scope.path.traverse({\n Scope(path) {\n if (path.scope.hasOwnBinding(name)) path.skip();\n },\n MemberExpression(path) {\n if (!t.isIdentifier(path.node.object, { name })) return;\n\n let key: string;\n if (path.node.computed) {\n if (t.isStringLiteral(path.node.property)) {\n key = path.node.property.value;\n } else {\n return;\n }\n } else if (t.isIdentifier(path.node.property)) {\n key = path.node.property.name;\n } else {\n return;\n }\n if (!entriesMap.has(key)) return;\n\n path.replaceWith(t.cloneNode(entriesMap.get(key)));\n },\n });\n\n path.remove();\n}\n","import type { NodePath, Scope } from \"@babel/traverse\";\n\nexport const GLOBAL_TYPES = new WeakMap>();\n\nexport function isGlobalType({ scope }: NodePath, name: string) {\n if (scope.hasBinding(name)) return false;\n if (GLOBAL_TYPES.get(scope).has(name)) return true;\n\n console.warn(\n `The exported identifier \"${name}\" is not declared in Babel's scope tracker\\n` +\n `as a JavaScript value binding, and \"@babel/plugin-transform-typescript\"\\n` +\n `never encountered it as a TypeScript type declaration.\\n` +\n `It will be treated as a JavaScript value.\\n\\n` +\n `This problem is likely caused by another plugin injecting\\n` +\n `\"${name}\" without registering it in the scope tracker. If you are the author\\n` +\n ` of that plugin, please use \"scope.registerDeclaration(declarationPath)\".`,\n );\n\n return false;\n}\n\nexport function registerGlobalType(programScope: Scope, name: string) {\n GLOBAL_TYPES.get(programScope).add(name);\n}\n","import { template, types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nimport { registerGlobalType } from \"./global-types.ts\";\n\nexport default function transpileNamespace(\n path: NodePath,\n allowNamespaces: boolean,\n) {\n if (path.node.declare || path.node.id.type === \"StringLiteral\") {\n path.remove();\n return;\n }\n\n if (!allowNamespaces) {\n throw path\n .get(\"id\")\n .buildCodeFrameError(\n \"Namespace not marked type-only declare.\" +\n \" Non-declarative namespaces are only supported experimentally in Babel.\" +\n \" To enable and review caveats see:\" +\n \" https://babeljs.io/docs/en/babel-plugin-transform-typescript\",\n );\n }\n\n const name = path.node.id.name;\n const value = handleNested(path, t.cloneNode(path.node, true));\n if (value === null) {\n // This means that `path` is a type-only namespace.\n // We call `registerGlobalType` here to allow it to be stripped.\n const program = path.findParent(p => p.isProgram());\n registerGlobalType(program.scope, name);\n\n path.remove();\n } else if (path.scope.hasOwnBinding(name)) {\n path.replaceWith(value);\n } else {\n path.scope.registerDeclaration(\n path.replaceWithMultiple([getDeclaration(name), value])[0],\n );\n }\n}\n\nfunction getDeclaration(name: string) {\n return t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.identifier(name)),\n ]);\n}\n\nfunction getMemberExpression(name: string, itemName: string) {\n return t.memberExpression(t.identifier(name), t.identifier(itemName));\n}\n\n/**\n * Convert export const foo = 1 to Namespace.foo = 1;\n *\n * @param {t.VariableDeclaration} node given variable declaration, e.g. `const foo = 1`\n * @param {string} name the generated unique namespace member name\n * @param {*} hub An instance implements HubInterface defined in `@babel/traverse` that can throw a code frame error\n */\nfunction handleVariableDeclaration(\n node: t.VariableDeclaration,\n name: string,\n hub: any,\n): t.Statement[] {\n if (node.kind !== \"const\") {\n throw hub.file.buildCodeFrameError(\n node,\n \"Namespaces exporting non-const are not supported by Babel.\" +\n \" Change to const or see:\" +\n \" https://babeljs.io/docs/en/babel-plugin-transform-typescript\",\n );\n }\n const { declarations } = node;\n if (\n declarations.every(\n (declarator): declarator is t.VariableDeclarator & { id: t.Identifier } =>\n t.isIdentifier(declarator.id),\n )\n ) {\n // `export const a = 1` transforms to `const a = N.a = 1`, the output\n // is smaller than `const a = 1; N.a = a`;\n for (const declarator of declarations) {\n declarator.init = t.assignmentExpression(\n \"=\",\n getMemberExpression(name, declarator.id.name),\n declarator.init,\n );\n }\n return [node];\n }\n // Now we have pattern in declarators\n // `export const [a] = 1` transforms to `const [a] = 1; N.a = a`\n const bindingIdentifiers = t.getBindingIdentifiers(node);\n const assignments = [];\n // getBindingIdentifiers returns an object without prototype.\n // eslint-disable-next-line guard-for-in\n for (const idName in bindingIdentifiers) {\n assignments.push(\n t.assignmentExpression(\n \"=\",\n getMemberExpression(name, idName),\n t.cloneNode(bindingIdentifiers[idName]),\n ),\n );\n }\n return [node, t.expressionStatement(t.sequenceExpression(assignments))];\n}\n\nfunction buildNestedAmbientModuleError(path: NodePath, node: t.Node) {\n return path.hub.buildError(\n node,\n \"Ambient modules cannot be nested in other modules or namespaces.\",\n Error,\n );\n}\n\nfunction handleNested(\n path: NodePath,\n node: t.TSModuleDeclaration,\n parentExport?: t.Expression,\n): t.Statement | null {\n const names = new Set();\n const realName = node.id;\n t.assertIdentifier(realName);\n\n const name = path.scope.generateUid(realName.name);\n\n const namespaceTopLevel: t.Statement[] = t.isTSModuleBlock(node.body)\n ? node.body.body\n : // We handle `namespace X.Y {}` as if it was\n // namespace X {\n // export namespace Y {}\n // }\n [t.exportNamedDeclaration(node.body)];\n\n let isEmpty = true;\n\n for (let i = 0; i < namespaceTopLevel.length; i++) {\n const subNode = namespaceTopLevel[i];\n\n // The first switch is mainly to detect name usage. Only export\n // declarations require further transformation.\n switch (subNode.type) {\n case \"TSModuleDeclaration\": {\n if (!t.isIdentifier(subNode.id)) {\n throw buildNestedAmbientModuleError(path, subNode);\n }\n\n const transformed = handleNested(path, subNode);\n if (transformed !== null) {\n isEmpty = false;\n const moduleName = subNode.id.name;\n if (names.has(moduleName)) {\n namespaceTopLevel[i] = transformed;\n } else {\n names.add(moduleName);\n namespaceTopLevel.splice(\n i++,\n 1,\n getDeclaration(moduleName),\n transformed,\n );\n }\n }\n continue;\n }\n case \"TSEnumDeclaration\":\n case \"FunctionDeclaration\":\n case \"ClassDeclaration\":\n isEmpty = false;\n names.add(subNode.id.name);\n continue;\n case \"VariableDeclaration\": {\n isEmpty = false;\n // getBindingIdentifiers returns an object without prototype.\n // eslint-disable-next-line guard-for-in\n for (const name in t.getBindingIdentifiers(subNode)) {\n names.add(name);\n }\n continue;\n }\n default:\n isEmpty &&= t.isTypeScript(subNode);\n // Neither named declaration nor export, continue to next item.\n continue;\n case \"ExportNamedDeclaration\":\n // Export declarations get parsed using the next switch.\n }\n\n if (\"declare\" in subNode.declaration && subNode.declaration.declare) {\n continue;\n }\n\n // Transform the export declarations that occur inside of a namespace.\n switch (subNode.declaration.type) {\n case \"TSEnumDeclaration\":\n case \"FunctionDeclaration\":\n case \"ClassDeclaration\": {\n isEmpty = false;\n const itemName = subNode.declaration.id.name;\n names.add(itemName);\n namespaceTopLevel.splice(\n i++,\n 1,\n subNode.declaration,\n t.expressionStatement(\n t.assignmentExpression(\n \"=\",\n getMemberExpression(name, itemName),\n t.identifier(itemName),\n ),\n ),\n );\n break;\n }\n case \"VariableDeclaration\": {\n isEmpty = false;\n const nodes = handleVariableDeclaration(\n subNode.declaration,\n name,\n path.hub,\n );\n namespaceTopLevel.splice(i, nodes.length, ...nodes);\n i += nodes.length - 1;\n break;\n }\n case \"TSModuleDeclaration\": {\n if (!t.isIdentifier(subNode.declaration.id)) {\n throw buildNestedAmbientModuleError(path, subNode.declaration);\n }\n\n const transformed = handleNested(\n path,\n subNode.declaration,\n t.identifier(name),\n );\n if (transformed !== null) {\n isEmpty = false;\n const moduleName = subNode.declaration.id.name;\n if (names.has(moduleName)) {\n namespaceTopLevel[i] = transformed;\n } else {\n names.add(moduleName);\n namespaceTopLevel.splice(\n i++,\n 1,\n getDeclaration(moduleName),\n transformed,\n );\n }\n } else {\n namespaceTopLevel.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n if (isEmpty) return null;\n\n // {}\n let fallthroughValue: t.Expression = t.objectExpression([]);\n\n if (parentExport) {\n const memberExpr = t.memberExpression(parentExport, realName);\n fallthroughValue = template.expression.ast`\n ${t.cloneNode(memberExpr)} ||\n (${t.cloneNode(memberExpr)} = ${fallthroughValue})\n `;\n }\n\n return template.statement.ast`\n (function (${t.identifier(name)}) {\n ${namespaceTopLevel}\n })(${realName} || (${t.cloneNode(realName)} = ${fallthroughValue}));\n `;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxTypeScript from \"@babel/plugin-syntax-typescript\";\nimport type { PluginPass, types as t } from \"@babel/core\";\nimport { injectInitialization } from \"@babel/helper-create-class-features-plugin\";\nimport type { Binding, NodePath } from \"@babel/traverse\";\nimport type { Options as SyntaxOptions } from \"@babel/plugin-syntax-typescript\";\n\nimport transpileConstEnum from \"./const-enum.ts\";\nimport type { NodePathConstEnum } from \"./const-enum.ts\";\nimport transpileEnum from \"./enum.ts\";\nimport {\n GLOBAL_TYPES,\n isGlobalType,\n registerGlobalType,\n} from \"./global-types.ts\";\nimport transpileNamespace from \"./namespace.ts\";\n\nfunction isInType(path: NodePath) {\n switch (path.parent.type) {\n case \"TSTypeReference\":\n case \"TSExpressionWithTypeArguments\":\n case \"TSTypeQuery\":\n return true;\n case \"TSQualifiedName\":\n return (\n // `import foo = ns.bar` is transformed to `var foo = ns.bar` and should not be removed\n path.parentPath.findParent(path => path.type !== \"TSQualifiedName\")\n .type !== \"TSImportEqualsDeclaration\"\n );\n case \"ExportSpecifier\":\n return (\n // export { type foo };\n path.parent.exportKind === \"type\" ||\n // export type { foo };\n // @ts-expect-error: DeclareExportDeclaration does not have `exportKind`\n (path.parentPath as NodePath).parent.exportKind ===\n \"type\"\n );\n default:\n return false;\n }\n}\n\n// Track programs which contain imports/exports of values, so that we can include\n// empty exports for programs that do not, but were parsed as modules. This allows\n// tools to infer unambiguously that results are ESM.\nconst NEEDS_EXPLICIT_ESM = new WeakMap();\nconst PARSED_PARAMS = new WeakSet();\n\n// A hack to avoid removing the impl Binding when we remove the declare NodePath\nfunction safeRemove(path: NodePath) {\n const ids = path.getBindingIdentifiers();\n for (const name of Object.keys(ids)) {\n const binding = path.scope.getBinding(name);\n if (binding && binding.identifier === ids[name]) {\n binding.scope.removeBinding(name);\n }\n }\n path.opts.noScope = true;\n path.remove();\n path.opts.noScope = false;\n}\n\nfunction assertCjsTransformEnabled(\n path: NodePath,\n pass: PluginPass,\n wrong: string,\n suggestion: string,\n extra: string = \"\",\n): void {\n if (pass.file.get(\"@babel/plugin-transform-modules-*\") !== \"commonjs\") {\n throw path.buildCodeFrameError(\n `\\`${wrong}\\` is only supported when compiling modules to CommonJS.\\n` +\n `Please consider using \\`${suggestion}\\`${extra}, or add ` +\n `@babel/plugin-transform-modules-commonjs to your Babel config.`,\n );\n }\n}\n\nexport interface Options extends SyntaxOptions {\n /** @default true */\n allowNamespaces?: boolean;\n /** @default \"React.createElement\" */\n jsxPragma?: string;\n /** @default \"React.Fragment\" */\n jsxPragmaFrag?: string;\n onlyRemoveTypeImports?: boolean;\n optimizeConstEnums?: boolean;\n allowDeclareFields?: boolean;\n}\n\ntype ExtraNodeProps = {\n declare?: unknown;\n accessibility?: unknown;\n abstract?: unknown;\n optional?: unknown;\n override?: unknown;\n};\n\nexport default declare((api, opts: Options) => {\n // `@babel/core` and `@babel/types` are bundled in some downstream libraries.\n // Ref: https://github.com/babel/babel/issues/15089\n const { types: t, template } = api;\n\n api.assertVersion(REQUIRED_VERSION(7));\n\n const JSX_PRAGMA_REGEX = /\\*?\\s*@jsx((?:Frag)?)\\s+([^\\s]+)/;\n\n const {\n allowNamespaces = true,\n jsxPragma = \"React.createElement\",\n jsxPragmaFrag = \"React.Fragment\",\n onlyRemoveTypeImports = false,\n optimizeConstEnums = false,\n } = opts;\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { allowDeclareFields = false } = opts;\n }\n\n const classMemberVisitors = {\n field(\n path: NodePath<\n (t.ClassPrivateProperty | t.ClassProperty | t.ClassAccessorProperty) &\n ExtraNodeProps\n >,\n ) {\n const { node } = path;\n\n if (!process.env.BABEL_8_BREAKING) {\n if (!allowDeclareFields && node.declare) {\n throw path.buildCodeFrameError(\n `The 'declare' modifier is only allowed when the 'allowDeclareFields' option of ` +\n `@babel/plugin-transform-typescript or @babel/preset-typescript is enabled.`,\n );\n }\n }\n if (node.declare) {\n if (node.value) {\n throw path.buildCodeFrameError(\n `Fields with the 'declare' modifier cannot be initialized here, but only in the constructor`,\n );\n }\n if (!node.decorators) {\n path.remove();\n }\n } else if (node.definite) {\n if (node.value) {\n throw path.buildCodeFrameError(\n `Definitely assigned fields cannot be initialized here, but only in the constructor`,\n );\n }\n if (!process.env.BABEL_8_BREAKING) {\n // keep the definitely assigned fields only when `allowDeclareFields` (equivalent of\n // Typescript's `useDefineForClassFields`) is true\n if (\n !allowDeclareFields &&\n !node.decorators &&\n !t.isClassPrivateProperty(node)\n ) {\n path.remove();\n }\n }\n } else if (node.abstract) {\n path.remove();\n } else if (!process.env.BABEL_8_BREAKING) {\n if (\n !allowDeclareFields &&\n !node.value &&\n !node.decorators &&\n !t.isClassPrivateProperty(node)\n ) {\n path.remove();\n }\n }\n\n if (node.accessibility) node.accessibility = null;\n if (node.abstract) node.abstract = null;\n if (node.readonly) node.readonly = null;\n if (node.optional) node.optional = null;\n if (node.typeAnnotation) node.typeAnnotation = null;\n if (node.definite) node.definite = null;\n if (node.declare) node.declare = null;\n if (node.override) node.override = null;\n },\n method({ node }: NodePath) {\n if (node.accessibility) node.accessibility = null;\n if (node.abstract) node.abstract = null;\n if (node.optional) node.optional = null;\n if (node.override) node.override = null;\n\n // Rest handled by Function visitor\n },\n constructor(path: NodePath, classPath: NodePath) {\n if (path.node.accessibility) path.node.accessibility = null;\n // Collects parameter properties so that we can add an assignment\n // for each of them in the constructor body\n //\n // We use a WeakSet to ensure an assignment for a parameter\n // property is only added once. This is necessary for cases like\n // using `transform-classes`, which causes this visitor to run\n // twice.\n const assigns: t.ExpressionStatement[] = [];\n const { scope } = path;\n for (const paramPath of path.get(\"params\")) {\n const param = paramPath.node;\n if (param.type === \"TSParameterProperty\") {\n const parameter = param.parameter;\n if (PARSED_PARAMS.has(parameter)) continue;\n PARSED_PARAMS.add(parameter);\n let id;\n if (t.isIdentifier(parameter)) {\n id = parameter;\n } else if (\n t.isAssignmentPattern(parameter) &&\n t.isIdentifier(parameter.left)\n ) {\n id = parameter.left;\n } else {\n throw paramPath.buildCodeFrameError(\n \"Parameter properties can not be destructuring patterns.\",\n );\n }\n assigns.push(\n template.statement.ast`\n this.${t.cloneNode(id)} = ${t.cloneNode(id)}\n ` as t.ExpressionStatement,\n );\n\n paramPath.replaceWith(paramPath.get(\"parameter\"));\n scope.registerBinding(\"param\", paramPath);\n }\n }\n injectInitialization(classPath, path, assigns);\n },\n };\n\n return {\n name: \"transform-typescript\",\n inherits: syntaxTypeScript,\n\n visitor: {\n //\"Pattern\" alias doesn't include Identifier or RestElement.\n Pattern: visitPattern,\n Identifier: visitPattern,\n RestElement: visitPattern,\n\n Program: {\n enter(path, state) {\n const { file } = state;\n let fileJsxPragma = null;\n let fileJsxPragmaFrag = null;\n const programScope = path.scope;\n\n if (!GLOBAL_TYPES.has(programScope)) {\n GLOBAL_TYPES.set(programScope, new Set());\n }\n\n if (file.ast.comments) {\n for (const comment of file.ast.comments) {\n const jsxMatches = JSX_PRAGMA_REGEX.exec(comment.value);\n if (jsxMatches) {\n if (jsxMatches[1]) {\n // isFragment\n fileJsxPragmaFrag = jsxMatches[2];\n } else {\n fileJsxPragma = jsxMatches[2];\n }\n }\n }\n }\n\n let pragmaImportName = fileJsxPragma || jsxPragma;\n if (pragmaImportName) {\n [pragmaImportName] = pragmaImportName.split(\".\");\n }\n\n let pragmaFragImportName = fileJsxPragmaFrag || jsxPragmaFrag;\n if (pragmaFragImportName) {\n [pragmaFragImportName] = pragmaFragImportName.split(\".\");\n }\n\n // remove type imports\n for (let stmt of path.get(\"body\") as Iterable<\n NodePath\n >) {\n if (stmt.isImportDeclaration()) {\n if (!NEEDS_EXPLICIT_ESM.has(state.file.ast.program)) {\n NEEDS_EXPLICIT_ESM.set(state.file.ast.program, true);\n }\n\n if (stmt.node.importKind === \"type\") {\n for (const specifier of stmt.node.specifiers) {\n registerGlobalType(programScope, specifier.local.name);\n }\n stmt.remove();\n continue;\n }\n\n const importsToRemove: Set> = new Set();\n const specifiersLength = stmt.node.specifiers.length;\n const isAllSpecifiersElided = () =>\n specifiersLength > 0 &&\n specifiersLength === importsToRemove.size;\n\n for (const specifier of stmt.node.specifiers) {\n if (\n specifier.type === \"ImportSpecifier\" &&\n specifier.importKind === \"type\"\n ) {\n registerGlobalType(programScope, specifier.local.name);\n const binding = stmt.scope.getBinding(specifier.local.name);\n if (binding) {\n importsToRemove.add(binding.path);\n }\n }\n }\n\n // If onlyRemoveTypeImports is `true`, only remove type-only imports\n // and exports introduced in TypeScript 3.8.\n if (onlyRemoveTypeImports) {\n NEEDS_EXPLICIT_ESM.set(path.node, false);\n } else {\n // Note: this will allow both `import { } from \"m\"` and `import \"m\";`.\n // In TypeScript, the former would be elided.\n if (stmt.node.specifiers.length === 0) {\n NEEDS_EXPLICIT_ESM.set(path.node, false);\n continue;\n }\n\n for (const specifier of stmt.node.specifiers) {\n const binding = stmt.scope.getBinding(specifier.local.name);\n\n // The binding may not exist if the import node was explicitly\n // injected by another plugin. Currently core does not do a good job\n // of keeping scope bindings synchronized with the AST. For now we\n // just bail if there is no binding, since chances are good that if\n // the import statement was injected then it wasn't a typescript type\n // import anyway.\n if (binding && !importsToRemove.has(binding.path)) {\n if (\n isImportTypeOnly({\n binding,\n programPath: path,\n pragmaImportName,\n pragmaFragImportName,\n })\n ) {\n importsToRemove.add(binding.path);\n } else {\n NEEDS_EXPLICIT_ESM.set(path.node, false);\n }\n }\n }\n }\n\n if (isAllSpecifiersElided() && !onlyRemoveTypeImports) {\n stmt.remove();\n } else {\n for (const importPath of importsToRemove) {\n importPath.remove();\n }\n }\n\n continue;\n }\n\n if (stmt.isExportDeclaration()) {\n stmt = stmt.get(\"declaration\");\n }\n\n if (stmt.isVariableDeclaration({ declare: true })) {\n for (const name of Object.keys(stmt.getBindingIdentifiers())) {\n registerGlobalType(programScope, name);\n }\n } else if (\n stmt.isTSTypeAliasDeclaration() ||\n (stmt.isTSDeclareFunction() && stmt.get(\"id\").isIdentifier()) ||\n stmt.isTSInterfaceDeclaration() ||\n stmt.isClassDeclaration({ declare: true }) ||\n stmt.isTSEnumDeclaration({ declare: true }) ||\n (stmt.isTSModuleDeclaration({ declare: true }) &&\n stmt.get(\"id\").isIdentifier())\n ) {\n registerGlobalType(\n programScope,\n (stmt.node.id as t.Identifier).name,\n );\n }\n }\n },\n exit(path) {\n if (\n path.node.sourceType === \"module\" &&\n NEEDS_EXPLICIT_ESM.get(path.node)\n ) {\n // If there are no remaining value exports, this file can no longer\n // be inferred to be ESM. Leave behind an empty export declaration\n // so it can be.\n path.pushContainer(\"body\", t.exportNamedDeclaration());\n }\n },\n },\n\n ExportNamedDeclaration(path, state) {\n if (!NEEDS_EXPLICIT_ESM.has(state.file.ast.program)) {\n NEEDS_EXPLICIT_ESM.set(state.file.ast.program, true);\n }\n\n if (path.node.exportKind === \"type\") {\n path.remove();\n return;\n }\n\n // remove export declaration that is filled with type-only specifiers\n // export { type A1, type A2 } from \"a\";\n if (\n path.node.source &&\n path.node.specifiers.length > 0 &&\n path.node.specifiers.every(\n specifier =>\n specifier.type === \"ExportSpecifier\" &&\n specifier.exportKind === \"type\",\n )\n ) {\n path.remove();\n return;\n }\n\n // remove export declaration if it's exporting only types\n // This logic is needed when exportKind is \"value\", because\n // currently the \"type\" keyword is optional.\n // TODO:\n // Also, currently @babel/parser sets exportKind to \"value\" for\n // export interface A {}\n // etc.\n if (\n !path.node.source &&\n path.node.specifiers.length > 0 &&\n path.node.specifiers.every(\n specifier =>\n t.isExportSpecifier(specifier) &&\n isGlobalType(path, specifier.local.name),\n )\n ) {\n path.remove();\n return;\n }\n\n // Convert `export namespace X {}` into `export let X; namespace X {}`,\n // so that when visiting TSModuleDeclaration we do not have to possibly\n // replace its parent path.\n if (t.isTSModuleDeclaration(path.node.declaration)) {\n const namespace = path.node.declaration;\n const { id } = namespace;\n if (t.isIdentifier(id)) {\n if (path.scope.hasOwnBinding(id.name)) {\n path.replaceWith(namespace);\n } else {\n const [newExport] = path.replaceWithMultiple([\n t.exportNamedDeclaration(\n t.variableDeclaration(\"let\", [\n t.variableDeclarator(t.cloneNode(id)),\n ]),\n ),\n namespace,\n ]);\n path.scope.registerDeclaration(newExport);\n }\n }\n }\n\n NEEDS_EXPLICIT_ESM.set(state.file.ast.program, false);\n },\n\n ExportAllDeclaration(path) {\n if (path.node.exportKind === \"type\") path.remove();\n },\n\n ExportSpecifier(path) {\n // remove type exports\n type Parent = t.ExportDeclaration & { source?: t.StringLiteral };\n const parent = path.parent as Parent;\n if (\n (!parent.source && isGlobalType(path, path.node.local.name)) ||\n path.node.exportKind === \"type\"\n ) {\n path.remove();\n }\n },\n\n ExportDefaultDeclaration(path, state) {\n if (!NEEDS_EXPLICIT_ESM.has(state.file.ast.program)) {\n NEEDS_EXPLICIT_ESM.set(state.file.ast.program, true);\n }\n\n // remove whole declaration if it's exporting a TS type\n if (\n t.isIdentifier(path.node.declaration) &&\n isGlobalType(path, path.node.declaration.name)\n ) {\n path.remove();\n\n return;\n }\n\n NEEDS_EXPLICIT_ESM.set(state.file.ast.program, false);\n },\n\n TSDeclareFunction(path) {\n safeRemove(path);\n },\n\n TSDeclareMethod(path) {\n safeRemove(path);\n },\n\n VariableDeclaration(path) {\n if (path.node.declare) {\n safeRemove(path);\n }\n },\n\n VariableDeclarator({ node }) {\n if (node.definite) node.definite = null;\n },\n\n TSIndexSignature(path) {\n path.remove();\n },\n\n ClassDeclaration(path) {\n const { node } = path;\n if (node.declare) {\n safeRemove(path);\n }\n },\n\n Class(path) {\n const { node }: { node: typeof path.node & ExtraNodeProps } = path;\n\n if (node.typeParameters) node.typeParameters = null;\n if (node.superTypeParameters) node.superTypeParameters = null;\n if (node.implements) node.implements = null;\n if (node.abstract) node.abstract = null;\n\n // Similar to the logic in `transform-flow-strip-types`, we need to\n // handle `TSParameterProperty` and `ClassProperty` here because the\n // class transform would transform the class, causing more specific\n // visitors to not run.\n path.get(\"body.body\").forEach(child => {\n if (child.isClassMethod() || child.isClassPrivateMethod()) {\n if (child.node.kind === \"constructor\") {\n classMemberVisitors.constructor(\n // @ts-expect-error A constructor must not be a private method\n child,\n path,\n );\n } else {\n classMemberVisitors.method(child);\n }\n } else if (\n child.isClassProperty() ||\n child.isClassPrivateProperty() ||\n child.isClassAccessorProperty()\n ) {\n classMemberVisitors.field(child);\n }\n });\n },\n\n Function(path) {\n const { node } = path;\n if (node.typeParameters) node.typeParameters = null;\n if (node.returnType) node.returnType = null;\n\n const params = node.params;\n if (params.length > 0 && t.isIdentifier(params[0], { name: \"this\" })) {\n params.shift();\n }\n },\n\n TSModuleDeclaration(path) {\n transpileNamespace(path, allowNamespaces);\n },\n\n TSInterfaceDeclaration(path) {\n path.remove();\n },\n\n TSTypeAliasDeclaration(path) {\n path.remove();\n },\n\n TSEnumDeclaration(path) {\n if (optimizeConstEnums && path.node.const) {\n transpileConstEnum(path as NodePathConstEnum, t);\n } else {\n transpileEnum(path, t);\n }\n },\n\n TSImportEqualsDeclaration(\n path: NodePath,\n pass,\n ) {\n const { id, moduleReference } = path.node;\n\n let init: t.Expression;\n let varKind: \"var\" | \"const\";\n if (t.isTSExternalModuleReference(moduleReference)) {\n // import alias = require('foo');\n assertCjsTransformEnabled(\n path,\n pass,\n `import ${id.name} = require(...);`,\n `import ${id.name} from '...';`,\n \" alongside Typescript's --allowSyntheticDefaultImports option\",\n );\n init = t.callExpression(t.identifier(\"require\"), [\n moduleReference.expression,\n ]);\n varKind = \"const\";\n } else {\n // import alias = Namespace;\n init = entityNameToExpr(moduleReference);\n varKind = \"var\";\n }\n\n path.replaceWith(\n t.variableDeclaration(varKind, [t.variableDeclarator(id, init)]),\n );\n path.scope.registerDeclaration(path);\n },\n\n TSExportAssignment(path, pass) {\n assertCjsTransformEnabled(\n path,\n pass,\n `export = ;`,\n `export default ;`,\n );\n path.replaceWith(\n template.statement.ast`module.exports = ${path.node.expression}`,\n );\n },\n\n TSTypeAssertion(path) {\n path.replaceWith(path.node.expression);\n },\n\n [`TSAsExpression${\n // Added in Babel 7.20.0\n t.tsSatisfiesExpression ? \"|TSSatisfiesExpression\" : \"\"\n }`](path: NodePath) {\n let { node }: { node: t.Expression } = path;\n do {\n node = node.expression;\n } while (t.isTSAsExpression(node) || t.isTSSatisfiesExpression?.(node));\n path.replaceWith(node);\n },\n\n [process.env.BABEL_8_BREAKING\n ? \"TSNonNullExpression|TSInstantiationExpression\"\n : /* This has been introduced in Babel 7.18.0\n We use api.types.* and not t.* for feature detection,\n because the Babel version that is running this plugin\n (where we check if the visitor is valid) might be different\n from the Babel version that we resolve with `import \"@babel/core\"`.\n This happens, for example, with Next.js that bundled `@babel/core`\n but allows loading unbundled plugin (which cannot obviously import\n the bundled `@babel/core` version).\n */\n api.types.tsInstantiationExpression\n ? \"TSNonNullExpression|TSInstantiationExpression\"\n : \"TSNonNullExpression\"](\n path: NodePath,\n ) {\n path.replaceWith(path.node.expression);\n },\n\n CallExpression(path) {\n path.node.typeParameters = null;\n },\n\n OptionalCallExpression(path) {\n path.node.typeParameters = null;\n },\n\n NewExpression(path) {\n path.node.typeParameters = null;\n },\n\n JSXOpeningElement(path) {\n path.node.typeParameters = null;\n },\n\n TaggedTemplateExpression(path) {\n path.node.typeParameters = null;\n },\n },\n };\n\n function entityNameToExpr(node: t.TSEntityName): t.Expression {\n if (t.isTSQualifiedName(node)) {\n return t.memberExpression(entityNameToExpr(node.left), node.right);\n }\n\n return node;\n }\n\n function visitPattern({\n node,\n }: NodePath) {\n if (node.typeAnnotation) node.typeAnnotation = null;\n if (t.isIdentifier(node) && node.optional) node.optional = null;\n // 'access' and 'readonly' are only for parameter properties, so constructor visitor will handle them.\n }\n\n function isImportTypeOnly({\n binding,\n programPath,\n pragmaImportName,\n pragmaFragImportName,\n }: {\n binding: Binding;\n programPath: NodePath;\n pragmaImportName: string;\n pragmaFragImportName: string;\n }) {\n for (const path of binding.referencePaths) {\n if (!isInType(path)) {\n return false;\n }\n }\n\n if (\n binding.identifier.name !== pragmaImportName &&\n binding.identifier.name !== pragmaFragImportName\n ) {\n return true;\n }\n\n // \"React\" or the JSX pragma is referenced as a value if there are any JSX elements/fragments in the code.\n let sourceFileHasJsx = false;\n programPath.traverse({\n \"JSXElement|JSXFragment\"(path) {\n sourceFileHasJsx = true;\n path.stop();\n },\n });\n return !sourceFileHasJsx;\n }\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const surrogate = /[\\ud800-\\udfff]/g;\n const unicodeEscape = /(\\\\+)u\\{([0-9a-fA-F]+)\\}/g;\n\n function escape(code: number) {\n if (process.env.BABEL_8_BREAKING) {\n return \"\\\\u\" + code.toString(16).padStart(4, \"0\");\n } else {\n let str = code.toString(16);\n while (str.length < 4) str = \"0\" + str;\n return \"\\\\u\" + str;\n }\n }\n\n function replacer(match: string, backslashes: string, code: string) {\n if (backslashes.length % 2 === 0) {\n return match;\n }\n\n const char = String.fromCodePoint(parseInt(code, 16));\n const escaped = backslashes.slice(0, -1) + escape(char.charCodeAt(0));\n\n return char.length === 1 ? escaped : escaped + escape(char.charCodeAt(1));\n }\n\n function replaceUnicodeEscapes(str: string) {\n return str.replace(unicodeEscape, replacer);\n }\n\n function getUnicodeEscape(str: string) {\n let match;\n while ((match = unicodeEscape.exec(str))) {\n if (match[1].length % 2 === 0) continue;\n unicodeEscape.lastIndex = 0;\n return match[0];\n }\n return null;\n }\n\n return {\n name: \"transform-unicode-escapes\",\n manipulateOptions({ generatorOpts }) {\n // Babel 8 will enable jsesc minimal mode by default, which outputs\n // unescaped unicode string\n if (!generatorOpts.jsescOption) {\n generatorOpts.jsescOption = {};\n }\n generatorOpts.jsescOption.minimal ??= false;\n },\n visitor: {\n Identifier(path) {\n const { node, key } = path;\n const { name } = node;\n const replaced = name.replace(surrogate, c => {\n return `_u${c.charCodeAt(0).toString(16)}`;\n });\n if (name === replaced) return;\n\n const str = t.inherits(t.stringLiteral(name), node);\n\n if (key === \"key\") {\n path.replaceWith(str);\n return;\n }\n\n const { parentPath, scope } = path;\n if (\n parentPath.isMemberExpression({ property: node }) ||\n parentPath.isOptionalMemberExpression({ property: node })\n ) {\n parentPath.node.computed = true;\n path.replaceWith(str);\n return;\n }\n\n const binding = scope.getBinding(name);\n if (binding) {\n scope.rename(name, scope.generateUid(replaced));\n return;\n }\n\n throw path.buildCodeFrameError(\n `Can't reference '${name}' as a bare identifier`,\n );\n },\n\n \"StringLiteral|DirectiveLiteral\"(\n path: NodePath,\n ) {\n const { node } = path;\n const { extra } = node;\n\n if (extra?.raw) extra.raw = replaceUnicodeEscapes(extra.raw as string);\n },\n\n TemplateElement(path) {\n const { node, parentPath } = path;\n const { value } = node;\n\n const firstEscape = getUnicodeEscape(value.raw);\n if (!firstEscape) return;\n\n const grandParent = parentPath.parentPath;\n if (grandParent.isTaggedTemplateExpression()) {\n throw path.buildCodeFrameError(\n `Can't replace Unicode escape '${firstEscape}' inside tagged template literals. You can enable '@babel/plugin-transform-template-literals' to compile them to classic strings.`,\n );\n }\n\n value.raw = replaceUnicodeEscapes(value.raw);\n },\n },\n };\n});\n","/* eslint-disable @babel/development/plugin-name */\nimport { createRegExpFeaturePlugin } from \"@babel/helper-create-regexp-features-plugin\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return createRegExpFeaturePlugin({\n name: \"transform-unicode-regex\",\n feature: \"unicodeFlag\",\n });\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport syntaxExplicitResourceManagement from \"@babel/plugin-syntax-explicit-resource-management\";\nimport { types as t, template, traverse, type PluginPass } from \"@babel/core\";\nimport type { NodePath, Visitor } from \"@babel/traverse\";\n\nconst enum USING_KIND {\n NORMAL,\n AWAIT,\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.22.0\"));\n\n const TOP_LEVEL_USING = new Map();\n\n function isUsingDeclaration(node: t.Node): node is t.VariableDeclaration {\n if (!t.isVariableDeclaration(node)) return false;\n return (\n node.kind === \"using\" ||\n node.kind === \"await using\" ||\n TOP_LEVEL_USING.has(node)\n );\n }\n\n const transformUsingDeclarationsVisitor: Visitor = {\n ForOfStatement(path: NodePath) {\n const { left } = path.node;\n if (!isUsingDeclaration(left)) return;\n\n const { id } = left.declarations[0];\n const tmpId = path.scope.generateUidIdentifierBasedOnNode(id);\n left.declarations[0].id = tmpId;\n left.kind = \"const\";\n\n path.ensureBlock();\n path.node.body.body.unshift(\n t.variableDeclaration(\"using\", [\n t.variableDeclarator(id, t.cloneNode(tmpId)),\n ]),\n );\n },\n \"BlockStatement|StaticBlock\"(\n path: NodePath,\n state,\n ) {\n if (state.availableHelper(\"usingCtx\")) {\n let ctx: t.Identifier | null = null;\n let needsAwait = false;\n\n for (const node of path.node.body) {\n if (!isUsingDeclaration(node)) continue;\n ctx ??= path.scope.generateUidIdentifier(\"usingCtx\");\n const isAwaitUsing =\n node.kind === \"await using\" ||\n TOP_LEVEL_USING.get(node) === USING_KIND.AWAIT;\n needsAwait ||= isAwaitUsing;\n\n if (!TOP_LEVEL_USING.delete(node)) {\n node.kind = \"const\";\n }\n for (const decl of node.declarations) {\n decl.init = t.callExpression(\n t.memberExpression(\n t.cloneNode(ctx),\n isAwaitUsing ? t.identifier(\"a\") : t.identifier(\"u\"),\n ),\n [decl.init],\n );\n }\n }\n if (!ctx) return;\n\n const disposeCall = t.callExpression(\n t.memberExpression(t.cloneNode(ctx), t.identifier(\"d\")),\n [],\n );\n\n const replacement = template.statement.ast`\n try {\n var ${t.cloneNode(ctx)} = ${state.addHelper(\"usingCtx\")}();\n ${path.node.body}\n } catch (_) {\n ${t.cloneNode(ctx)}.e = _;\n } finally {\n ${needsAwait ? t.awaitExpression(disposeCall) : disposeCall}\n }\n ` as t.TryStatement;\n\n t.inherits(replacement, path.node);\n\n const { parentPath } = path;\n if (\n parentPath.isFunction() ||\n parentPath.isTryStatement() ||\n parentPath.isCatchClause()\n ) {\n path.replaceWith(t.blockStatement([replacement]));\n } else if (path.isStaticBlock()) {\n path.node.body = [replacement];\n } else {\n path.replaceWith(replacement);\n }\n } else {\n let stackId: t.Identifier | null = null;\n let needsAwait = false;\n\n for (const node of path.node.body) {\n if (!isUsingDeclaration(node)) continue;\n stackId ??= path.scope.generateUidIdentifier(\"stack\");\n const isAwaitUsing =\n node.kind === \"await using\" ||\n TOP_LEVEL_USING.get(node) === USING_KIND.AWAIT;\n needsAwait ||= isAwaitUsing;\n\n if (!TOP_LEVEL_USING.delete(node)) {\n node.kind = \"const\";\n }\n node.declarations.forEach(decl => {\n const args = [t.cloneNode(stackId), decl.init];\n if (isAwaitUsing) args.push(t.booleanLiteral(true));\n decl.init = t.callExpression(state.addHelper(\"using\"), args);\n });\n }\n if (!stackId) return;\n\n const errorId = path.scope.generateUidIdentifier(\"error\");\n const hasErrorId = path.scope.generateUidIdentifier(\"hasError\");\n\n let disposeCall: t.Expression = t.callExpression(\n state.addHelper(\"dispose\"),\n [t.cloneNode(stackId), t.cloneNode(errorId), t.cloneNode(hasErrorId)],\n );\n if (needsAwait) disposeCall = t.awaitExpression(disposeCall);\n\n const replacement = template.statement.ast`\n try {\n var ${stackId} = [];\n ${path.node.body}\n } catch (_) {\n var ${errorId} = _;\n var ${hasErrorId} = true;\n } finally {\n ${disposeCall}\n }\n ` as t.TryStatement;\n\n t.inherits(replacement.block, path.node);\n\n const { parentPath } = path;\n if (\n parentPath.isFunction() ||\n parentPath.isTryStatement() ||\n parentPath.isCatchClause()\n ) {\n path.replaceWith(t.blockStatement([replacement]));\n } else if (path.isStaticBlock()) {\n path.node.body = [replacement];\n } else {\n path.replaceWith(replacement);\n }\n }\n },\n };\n\n const transformUsingDeclarationsVisitorSkipFn: Visitor =\n traverse.visitors.merge([\n transformUsingDeclarationsVisitor,\n {\n Function(path) {\n path.skip();\n },\n },\n ]);\n\n return {\n name: \"proposal-explicit-resource-management\",\n inherits: syntaxExplicitResourceManagement,\n\n visitor: traverse.visitors.merge([\n transformUsingDeclarationsVisitor,\n {\n // To transform top-level using declarations, we must wrap the\n // module body in a block after hoisting all the exports and imports.\n // This might cause some variables to be `undefined` rather than TDZ.\n Program(path) {\n TOP_LEVEL_USING.clear();\n\n if (path.node.sourceType !== \"module\") return;\n if (!path.node.body.some(isUsingDeclaration)) return;\n\n const innerBlockBody = [];\n for (const stmt of path.get(\"body\")) {\n if (stmt.isFunctionDeclaration() || stmt.isImportDeclaration()) {\n continue;\n }\n\n let node: t.Statement | t.Declaration = stmt.node;\n let shouldRemove = true;\n\n if (stmt.isExportDefaultDeclaration()) {\n let { declaration } = stmt.node;\n let varId;\n if (t.isClassDeclaration(declaration)) {\n varId = declaration.id;\n declaration.id = null;\n declaration = t.toExpression(declaration);\n } else if (!t.isExpression(declaration)) {\n continue;\n }\n\n varId ??= path.scope.generateUidIdentifier(\"_default\");\n innerBlockBody.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(varId, declaration),\n ]),\n );\n stmt.replaceWith(\n t.exportNamedDeclaration(null, [\n t.exportSpecifier(\n t.cloneNode(varId),\n t.identifier(\"default\"),\n ),\n ]),\n );\n continue;\n }\n\n if (stmt.isExportNamedDeclaration()) {\n node = stmt.node.declaration;\n if (!node || t.isFunction(node)) continue;\n\n stmt.replaceWith(\n t.exportNamedDeclaration(\n null,\n Object.keys(t.getOuterBindingIdentifiers(node, false)).map(\n id => t.exportSpecifier(t.identifier(id), t.identifier(id)),\n ),\n ),\n );\n shouldRemove = false;\n } else if (stmt.isExportDeclaration()) {\n continue;\n }\n\n if (t.isClassDeclaration(node)) {\n const { id } = node;\n node.id = null;\n innerBlockBody.push(\n t.variableDeclaration(\"var\", [\n t.variableDeclarator(id, t.toExpression(node)),\n ]),\n );\n } else if (t.isVariableDeclaration(node)) {\n if (node.kind === \"using\") {\n TOP_LEVEL_USING.set(stmt.node, USING_KIND.NORMAL);\n } else if (node.kind === \"await using\") {\n TOP_LEVEL_USING.set(stmt.node, USING_KIND.AWAIT);\n }\n node.kind = \"var\";\n innerBlockBody.push(node);\n } else {\n innerBlockBody.push(stmt.node);\n }\n\n if (shouldRemove) stmt.remove();\n }\n\n path.pushContainer(\"body\", t.blockStatement(innerBlockBody));\n },\n // We must transform `await using` in async functions before that\n // async-to-generator will transform `await` expressions into `yield`\n Function(path, state) {\n if (path.node.async) {\n path.traverse(transformUsingDeclarationsVisitorSkipFn, state);\n }\n },\n },\n ]),\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"syntax-import-defer\",\n\n manipulateOptions(_, parserOpts) {\n parserOpts.plugins.push(\"deferredImportEvaluation\");\n },\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t } from \"@babel/core\";\nimport type { Scope } from \"@babel/traverse\";\nimport { defineCommonJSHook } from \"@babel/plugin-transform-modules-commonjs\";\n\nimport syntaxImportDefer from \"@babel/plugin-syntax-import-defer\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.23.0\"));\n // We need the explicit type annotation otherwise when using t.assert* ts\n // reports that 'Assertions require every name in the call target to be\n // declared with an explicit type annotation'\n const t: typeof api.types = api.types;\n const { template } = api;\n\n function allReferencesAreProps(scope: Scope, node: t.ImportDeclaration) {\n const specifier = node.specifiers[0];\n t.assertImportNamespaceSpecifier(specifier);\n\n const binding = scope.getOwnBinding(specifier.local.name);\n return !!binding?.referencePaths.every(path =>\n path.parentPath.isMemberExpression({ object: path.node }),\n );\n }\n\n return {\n name: \"proposal-import-defer\",\n\n inherits: syntaxImportDefer,\n\n pre() {\n const { file } = this;\n\n defineCommonJSHook(file, {\n name: PACKAGE_JSON.name,\n version: PACKAGE_JSON.version,\n getWrapperPayload(source, metadata, importNodes) {\n let needsProxy = false;\n for (const node of importNodes) {\n if (!t.isImportDeclaration(node)) return null;\n if (node.phase !== \"defer\") return null;\n if (!allReferencesAreProps(file.scope, node)) needsProxy = true;\n }\n return needsProxy ? \"defer/proxy\" : \"defer/function\";\n },\n buildRequireWrapper(name, init, payload, referenced) {\n if (payload === \"defer/proxy\") {\n if (!referenced) return false;\n return template.statement.ast`\n var ${name} = ${file.addHelper(\"importDeferProxy\")}(\n () => ${init}\n )\n `;\n }\n if (payload === \"defer/function\") {\n if (!referenced) return false;\n return template.statement.ast`\n function ${name}(data) {\n ${name} = () => data;\n return data = ${init};\n }\n `;\n }\n },\n wrapReference(ref, payload) {\n if (payload === \"defer/function\") return t.callExpression(ref, []);\n },\n });\n },\n\n visitor: {\n Program(path) {\n if (this.file.get(\"@babel/plugin-transform-modules-*\") !== \"commonjs\") {\n throw new Error(\n `@babel/plugin-proposal-import-defer can only be used when` +\n ` transpiling modules to CommonJS.`,\n );\n }\n\n // Move all deferred imports to the end, so that in case of\n // import defer * as a from \"a\"\n // import \"b\"\n // import \"a\"\n // we have the correct evaluation order\n\n const eagerImports = new Set();\n\n for (const child of path.get(\"body\")) {\n if (\n (child.isImportDeclaration() && child.node.phase == null) ||\n (child.isExportNamedDeclaration() && child.node.source !== null) ||\n child.isExportAllDeclaration()\n ) {\n const specifier = child.node.source.value;\n if (!eagerImports.has(specifier)) {\n eagerImports.add(specifier);\n }\n }\n }\n\n const importsToPush = [];\n for (const child of path.get(\"body\")) {\n if (child.isImportDeclaration({ phase: \"defer\" })) {\n const specifier = child.node.source.value;\n if (!eagerImports.has(specifier)) continue;\n\n child.node.phase = null;\n importsToPush.push(child.node);\n child.remove();\n }\n }\n if (importsToPush.length) {\n path.pushContainer(\"body\", importsToPush);\n // Re-collect references to moved imports\n path.scope.crawl();\n }\n },\n },\n };\n});\n","import { isRequired, type Targets } from \"@babel/helper-compilation-targets\";\n\nfunction isEmpty(obj: object) {\n return Object.keys(obj).length === 0;\n}\n\nconst isRequiredOptions = {\n compatData: {\n // `import.meta.resolve` compat data.\n // Source: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/import.meta/resolve#browser_compatibility\n // Once Node.js implements `fetch` of local files, we can re-use the web implementation for it\n // similarly to how we do for Deno.\n webIMR: {\n chrome: \"105.0.0\",\n edge: \"105.0.0\",\n firefox: \"106.0.0\",\n opera: \"91.0.0\",\n safari: \"16.4.0\",\n opera_mobile: \"72.0.0\",\n ios: \"16.4.0\",\n samsung: \"20.0\",\n deno: \"1.24.0\",\n },\n nodeIMR: {\n node: \"20.6.0\",\n },\n // Node.js require(\"fs\").promises compat data.\n nodeFSP: {\n node: \"10.0.0\",\n },\n },\n};\n\ninterface Support {\n needsNodeSupport: boolean;\n needsWebSupport: boolean;\n nodeSupportsIMR: boolean;\n webSupportsIMR: boolean;\n nodeSupportsFsPromises: boolean;\n}\n\nconst SUPPORT_CACHE = new WeakMap();\nexport default function getSupport(targets: Targets): Support {\n if (SUPPORT_CACHE.has(targets)) return SUPPORT_CACHE.get(targets);\n\n const { node: nodeTarget, ...webTargets } = targets;\n const emptyNodeTarget = nodeTarget == null;\n const emptyWebTargets = isEmpty(webTargets);\n const needsNodeSupport = !emptyNodeTarget || emptyWebTargets;\n const needsWebSupport = !emptyWebTargets || emptyNodeTarget;\n\n const webSupportsIMR =\n !emptyWebTargets && !isRequired(\"webIMR\", webTargets, isRequiredOptions);\n const nodeSupportsIMR =\n !emptyNodeTarget &&\n !isRequired(\"nodeIMR\", { node: nodeTarget }, isRequiredOptions);\n const nodeSupportsFsPromises =\n !emptyNodeTarget &&\n !isRequired(\"nodeFSP\", { node: nodeTarget }, isRequiredOptions);\n\n const result = {\n needsNodeSupport,\n needsWebSupport,\n nodeSupportsIMR,\n webSupportsIMR,\n nodeSupportsFsPromises,\n };\n SUPPORT_CACHE.set(targets, result);\n return result;\n}\n","import { types as t, template } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type { Targets } from \"@babel/helper-compilation-targets\";\nimport { addNamed } from \"@babel/helper-module-imports\";\n\nimport getSupport from \"./platforms-support.ts\";\n\nfunction imp(path: NodePath, name: string, module: string) {\n return addNamed(path, name, module, { importedType: \"es6\" });\n}\n\nexport interface Pieces {\n webFetch: (fetch: t.Expression) => t.Expression;\n nodeFsSync: (read: t.Expression) => t.Expression;\n nodeFsAsync: () => t.Expression;\n}\n\nexport interface Builders {\n buildFetch: (specifier: t.Expression, path: NodePath) => t.Expression;\n buildFetchAsync: (specifier: t.Expression, path: NodePath) => t.Expression;\n needsAwait: boolean;\n}\n\nconst imr = (s: t.Expression) => template.expression.ast`\n import.meta.resolve(${s})\n`;\nconst imrWithFallback = (s: t.Expression) => template.expression.ast`\n import.meta.resolve?.(${s}) ?? new URL(${t.cloneNode(s)}, import.meta.url)\n`;\n\nexport function importToPlatformApi(\n targets: Targets,\n transformers: Pieces,\n toCommonJS: boolean,\n) {\n const {\n needsNodeSupport,\n needsWebSupport,\n nodeSupportsIMR,\n webSupportsIMR,\n nodeSupportsFsPromises,\n } = getSupport(targets);\n\n let buildFetchAsync: (\n specifier: t.Expression,\n path: NodePath,\n ) => t.Expression;\n let buildFetchSync: typeof buildFetchAsync;\n\n // \"p\" stands for pattern matching :)\n const p = ({\n web: w,\n node: n,\n nodeFSP: nF = nodeSupportsFsPromises,\n webIMR: wI = webSupportsIMR,\n nodeIMR: nI = nodeSupportsIMR,\n toCJS: c = toCommonJS,\n }: {\n web: boolean;\n node: boolean;\n nodeFSP?: boolean;\n webIMR?: boolean;\n nodeIMR?: boolean;\n toCJS?: boolean;\n preferSync?: boolean;\n }) => +w + (+n << 1) + (+wI << 2) + (+nI << 3) + (+c << 4) + (+nF << 5);\n\n const readFileP = (fs: t.Expression, arg: t.Expression) => {\n if (nodeSupportsFsPromises) {\n return template.expression.ast`${fs}.promises.readFile(${arg})`;\n }\n return template.expression.ast`\n new Promise(\n (a =>\n (r, j) => ${fs}.readFile(a, (e, d) => e ? j(e) : r(d))\n )(${arg})\n )`;\n };\n\n switch (\n p({\n web: needsWebSupport,\n node: needsNodeSupport,\n webIMR: webSupportsIMR,\n nodeIMR: nodeSupportsIMR,\n toCJS: toCommonJS,\n })\n ) {\n case p({ web: true, node: true }):\n buildFetchAsync = specifier => {\n const web = transformers.webFetch(\n t.callExpression(t.identifier(\"fetch\"), [\n (webSupportsIMR ? imr : imrWithFallback)(t.cloneNode(specifier)),\n ]),\n );\n const node = nodeSupportsIMR\n ? template.expression.ast`\n import(\"fs\").then(\n fs => ${readFileP(\n t.identifier(\"fs\"),\n template.expression.ast`new URL(${imr(specifier)})`,\n )}\n ).then(${transformers.nodeFsAsync()})\n `\n : template.expression.ast`\n Promise.all([import(\"fs\"), import(\"module\")])\n .then(([fs, module]) =>\n ${readFileP(\n t.identifier(\"fs\"),\n template.expression.ast`\n module.createRequire(import.meta.url).resolve(${specifier})\n `,\n )}\n )\n .then(${transformers.nodeFsAsync()})\n `;\n\n return template.expression.ast`\n typeof process === \"object\" && process.versions?.node\n ? ${node}\n : ${web}\n `;\n };\n break;\n case p({ web: true, node: false, webIMR: true }):\n buildFetchAsync = specifier =>\n transformers.webFetch(\n t.callExpression(t.identifier(\"fetch\"), [imr(specifier)]),\n );\n break;\n case p({ web: true, node: false, webIMR: false }):\n buildFetchAsync = specifier =>\n transformers.webFetch(\n t.callExpression(t.identifier(\"fetch\"), [imrWithFallback(specifier)]),\n );\n break;\n case p({ web: false, node: true, toCJS: true }):\n buildFetchSync = specifier =>\n transformers.nodeFsSync(template.expression.ast`\n require(\"fs\").readFileSync(require.resolve(${specifier}))\n `);\n buildFetchAsync = specifier => template.expression.ast`\n require(\"fs\").promises.readFile(require.resolve(${specifier}))\n .then(${transformers.nodeFsAsync()})\n `;\n break;\n case p({ web: false, node: true, toCJS: false, nodeIMR: true }):\n buildFetchSync = (specifier, path) =>\n transformers.nodeFsSync(template.expression.ast`\n ${imp(path, \"readFileSync\", \"fs\")}(\n new URL(${imr(specifier)})\n )\n `);\n buildFetchAsync = (specifier, path) =>\n template.expression.ast`\n ${imp(path, \"promises\", \"fs\")}\n .readFile(new URL(${imr(specifier)}))\n .then(${transformers.nodeFsAsync()})\n `;\n break;\n case p({ web: false, node: true, toCJS: false, nodeIMR: false }):\n buildFetchSync = (specifier, path) =>\n transformers.nodeFsSync(template.expression.ast`\n ${imp(path, \"readFileSync\", \"fs\")}(\n ${imp(path, \"createRequire\", \"module\")}(import.meta.url)\n .resolve(${specifier})\n )\n `);\n buildFetchAsync = (specifier, path) =>\n transformers.webFetch(template.expression.ast`\n ${imp(path, \"promises\", \"fs\")}\n .readFile(\n ${imp(path, \"createRequire\", \"module\")}(import.meta.url)\n .resolve(${specifier})\n )\n `);\n break;\n default:\n throw new Error(\"Internal Babel error: unreachable code.\");\n }\n\n buildFetchAsync ??= buildFetchSync;\n const buildFetchAsyncWrapped: typeof buildFetchAsync = (expression, path) => {\n if (t.isStringLiteral(expression)) {\n return template.expression.ast`\n Promise.resolve().then(() => ${buildFetchAsync(expression, path)})\n `;\n } else {\n return template.expression.ast`\n Promise.resolve(\\`\\${${expression}}\\`).then((s) => ${buildFetchAsync(\n t.identifier(\"s\"),\n path,\n )})\n `;\n }\n };\n\n return {\n buildFetch: buildFetchSync || buildFetchAsync,\n buildFetchAsync: buildFetchAsyncWrapped,\n needsAwait: !buildFetchSync,\n };\n}\n\nexport function buildParallelStaticImports(\n data: Array<{ id: t.Identifier; fetch: t.Expression }>,\n needsAwait: boolean,\n): t.VariableDeclaration | null {\n if (data.length === 0) return null;\n\n const declarators: t.VariableDeclarator[] = [];\n\n if (data.length === 1) {\n let rhs = data[0].fetch;\n if (needsAwait) rhs = t.awaitExpression(rhs);\n declarators.push(t.variableDeclarator(data[0].id, rhs));\n } else if (needsAwait) {\n const ids = data.map(({ id }) => id);\n const fetches = data.map(({ fetch }) => fetch);\n declarators.push(\n t.variableDeclarator(\n t.arrayPattern(ids),\n t.awaitExpression(\n template.expression.ast`\n Promise.all(${t.arrayExpression(fetches)})\n `,\n ),\n ),\n );\n } else {\n for (const { id, fetch } of data) {\n declarators.push(t.variableDeclarator(id, fetch));\n }\n }\n\n return t.variableDeclaration(\"const\", declarators);\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t, File } from \"@babel/core\";\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\";\nimport {\n importToPlatformApi,\n buildParallelStaticImports,\n type Pieces,\n type Builders,\n} from \"@babel/helper-import-to-platform-api\";\n\nexport default declare(api => {\n const { types: t, template } = api;\n api.assertVersion(REQUIRED_VERSION(\"^7.22.0\"));\n\n const targets = api.targets();\n\n let helperESM: Builders;\n let helperCJS: Builders;\n\n const transformers: Pieces = {\n webFetch: (fetch: t.Expression) =>\n template.expression.ast`${fetch}.then(r => r.json())`,\n nodeFsSync: (read: t.Expression) =>\n template.expression.ast`JSON.parse(${read})`,\n nodeFsAsync: () => template.expression.ast`JSON.parse`,\n };\n\n const getHelper = (file: File) => {\n const modules = file.get(\"@babel/plugin-transform-modules-*\");\n if (modules === \"commonjs\") {\n return (helperCJS ??= importToPlatformApi(targets, transformers, true));\n }\n if (modules == null) {\n return (helperESM ??= importToPlatformApi(targets, transformers, false));\n }\n throw new Error(\n `@babel/plugin-proposal-json-modules can only be used when not ` +\n `compiling modules, or when compiling them to CommonJS.`,\n );\n };\n\n function getAttributeKey({ key }: t.ImportAttribute): string {\n return t.isIdentifier(key) ? key.name : key.value;\n }\n\n function hasTypeJson(attributes: t.ImportAttribute[]) {\n return !!attributes?.some(\n attr => getAttributeKey(attr) === \"type\" && attr.value.value === \"json\",\n );\n }\n\n return {\n name: \"proposal-json-modules\",\n\n inherits: syntaxImportAttributes,\n\n visitor: {\n Program(path) {\n if (path.node.sourceType !== \"module\") return;\n\n const helper = getHelper(this.file);\n\n const data = [];\n for (const decl of path.get(\"body\")) {\n if (!decl.isImportDeclaration()) continue;\n const attributes = decl.node.attributes || decl.node.assertions;\n if (!hasTypeJson(attributes)) continue;\n\n if (decl.node.phase != null) {\n throw decl.buildCodeFrameError(\n \"JSON modules do not support phase modifiers.\",\n );\n }\n if (attributes.length > 1) {\n const paths = decl.node.attributes\n ? decl.get(\"attributes\")\n : decl.get(\"assertions\");\n const index = getAttributeKey(attributes[0]) === \"type\" ? 1 : 0;\n throw paths[index].buildCodeFrameError(\n \"Unknown attribute for JSON modules.\",\n );\n }\n\n let id: t.Identifier;\n let needsNS = false;\n for (const specifier of decl.get(\"specifiers\")) {\n if (specifier.isImportSpecifier()) {\n throw specifier.buildCodeFrameError(\n \"JSON modules do not support named imports.\",\n );\n }\n\n id = specifier.node.local;\n needsNS = specifier.isImportNamespaceSpecifier();\n }\n id ??= path.scope.generateUidIdentifier(\"_\");\n\n let fetch = helper.buildFetch(decl.node.source, path);\n\n if (needsNS) {\n if (helper.needsAwait) {\n fetch = template.expression.ast`\n ${fetch}.then(j => ({ default: j }))\n `;\n } else {\n fetch = template.expression.ast`{ default: ${fetch} }`;\n }\n }\n\n data.push({ id, fetch });\n decl.remove();\n }\n\n const decl = buildParallelStaticImports(data, helper.needsAwait);\n if (decl) path.unshiftContainer(\"body\", decl);\n },\n },\n };\n});\n","/*\n * This file is auto-generated! Do not modify it directly.\n * To re-generate run 'yarn gulp generate-standalone'\n */\nimport makeNoopPlugin from \"../make-noop-plugin.ts\";\nimport externalHelpers from \"@babel/plugin-external-helpers\";\nimport syntaxDecimal from \"@babel/plugin-syntax-decimal\";\nimport syntaxDecorators from \"@babel/plugin-syntax-decorators\";\nimport syntaxDestructuringPrivate from \"@babel/plugin-syntax-destructuring-private\";\nimport syntaxDoExpressions from \"@babel/plugin-syntax-do-expressions\";\nimport syntaxExplicitResourceManagement from \"@babel/plugin-syntax-explicit-resource-management\";\nimport syntaxExportDefaultFrom from \"@babel/plugin-syntax-export-default-from\";\nimport syntaxFlow from \"@babel/plugin-syntax-flow\";\nimport syntaxFunctionBind from \"@babel/plugin-syntax-function-bind\";\nimport syntaxFunctionSent from \"@babel/plugin-syntax-function-sent\";\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\";\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\";\nimport syntaxImportReflection from \"@babel/plugin-syntax-import-reflection\";\nimport syntaxJsx from \"@babel/plugin-syntax-jsx\";\nimport syntaxModuleBlocks from \"@babel/plugin-syntax-module-blocks\";\nimport syntaxOptionalChainingAssign from \"@babel/plugin-syntax-optional-chaining-assign\";\nimport syntaxPipelineOperator from \"@babel/plugin-syntax-pipeline-operator\";\nimport syntaxRecordAndTuple from \"@babel/plugin-syntax-record-and-tuple\";\nimport syntaxTypescript from \"@babel/plugin-syntax-typescript\";\nimport transformAsyncGeneratorFunctions from \"@babel/plugin-transform-async-generator-functions\";\nimport transformClassProperties from \"@babel/plugin-transform-class-properties\";\nimport transformClassStaticBlock from \"@babel/plugin-transform-class-static-block\";\nimport proposalDecorators from \"@babel/plugin-proposal-decorators\";\nimport proposalDestructuringPrivate from \"@babel/plugin-proposal-destructuring-private\";\nimport proposalDoExpressions from \"@babel/plugin-proposal-do-expressions\";\nimport proposalDuplicateNamedCapturingGroupsRegex from \"@babel/plugin-proposal-duplicate-named-capturing-groups-regex\";\nimport transformDynamicImport from \"@babel/plugin-transform-dynamic-import\";\nimport proposalExportDefaultFrom from \"@babel/plugin-proposal-export-default-from\";\nimport transformExportNamespaceFrom from \"@babel/plugin-transform-export-namespace-from\";\nimport proposalFunctionBind from \"@babel/plugin-proposal-function-bind\";\nimport proposalFunctionSent from \"@babel/plugin-proposal-function-sent\";\nimport transformJsonStrings from \"@babel/plugin-transform-json-strings\";\nimport transformLogicalAssignmentOperators from \"@babel/plugin-transform-logical-assignment-operators\";\nimport transformNullishCoalescingOperator from \"@babel/plugin-transform-nullish-coalescing-operator\";\nimport transformNumericSeparator from \"@babel/plugin-transform-numeric-separator\";\nimport transformObjectRestSpread from \"@babel/plugin-transform-object-rest-spread\";\nimport transformOptionalCatchBinding from \"@babel/plugin-transform-optional-catch-binding\";\nimport transformOptionalChaining from \"@babel/plugin-transform-optional-chaining\";\nimport proposalOptionalChainingAssign from \"@babel/plugin-proposal-optional-chaining-assign\";\nimport proposalPipelineOperator from \"@babel/plugin-proposal-pipeline-operator\";\nimport transformPrivateMethods from \"@babel/plugin-transform-private-methods\";\nimport transformPrivatePropertyInObject from \"@babel/plugin-transform-private-property-in-object\";\nimport proposalRecordAndTuple from \"@babel/plugin-proposal-record-and-tuple\";\nimport proposalRegexpModifiers from \"@babel/plugin-proposal-regexp-modifiers\";\nimport proposalThrowExpressions from \"@babel/plugin-proposal-throw-expressions\";\nimport transformUnicodePropertyRegex from \"@babel/plugin-transform-unicode-property-regex\";\nimport transformUnicodeSetsRegex from \"@babel/plugin-transform-unicode-sets-regex\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformExponentiationOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformFlowComments from \"@babel/plugin-transform-flow-comments\";\nimport transformFlowStripTypes from \"@babel/plugin-transform-flow-strip-types\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformInstanceof from \"@babel/plugin-transform-instanceof\";\nimport transformJscript from \"@babel/plugin-transform-jscript\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformObjectAssign from \"@babel/plugin-transform-object-assign\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformObjectSetPrototypeOfToAssign from \"@babel/plugin-transform-object-set-prototype-of-to-assign\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformPropertyMutators from \"@babel/plugin-transform-property-mutators\";\nimport transformProtoToAssign from \"@babel/plugin-transform-proto-to-assign\";\nimport transformReactConstantElements from \"@babel/plugin-transform-react-constant-elements\";\nimport transformReactDisplayName from \"@babel/plugin-transform-react-display-name\";\nimport transformReactInlineElements from \"@babel/plugin-transform-react-inline-elements\";\nimport transformReactJsx from \"@babel/plugin-transform-react-jsx\";\nimport transformReactJsxCompat from \"@babel/plugin-transform-react-jsx-compat\";\nimport transformReactJsxDevelopment from \"@babel/plugin-transform-react-jsx-development\";\nimport transformReactJsxSelf from \"@babel/plugin-transform-react-jsx-self\";\nimport transformReactJsxSource from \"@babel/plugin-transform-react-jsx-source\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformRuntime from \"@babel/plugin-transform-runtime\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformStrictMode from \"@babel/plugin-transform-strict-mode\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformTypescript from \"@babel/plugin-transform-typescript\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\nimport proposalExplicitResourceManagement from \"@babel/plugin-proposal-explicit-resource-management\";\nimport proposalImportDefer from \"@babel/plugin-proposal-import-defer\";\nimport proposalJsonModules from \"@babel/plugin-proposal-json-modules\";\nexport const syntaxAsyncGenerators = makeNoopPlugin(),\n syntaxClassProperties = makeNoopPlugin(),\n syntaxClassStaticBlock = makeNoopPlugin(),\n syntaxImportMeta = makeNoopPlugin(),\n syntaxObjectRestSpread = makeNoopPlugin(),\n syntaxOptionalCatchBinding = makeNoopPlugin(),\n syntaxTopLevelAwait = makeNoopPlugin();\nexport {\n externalHelpers,\n syntaxDecimal,\n syntaxDecorators,\n syntaxDestructuringPrivate,\n syntaxDoExpressions,\n syntaxExplicitResourceManagement,\n syntaxExportDefaultFrom,\n syntaxFlow,\n syntaxFunctionBind,\n syntaxFunctionSent,\n syntaxImportAssertions,\n syntaxImportAttributes,\n syntaxImportReflection,\n syntaxJsx,\n syntaxModuleBlocks,\n syntaxOptionalChainingAssign,\n syntaxPipelineOperator,\n syntaxRecordAndTuple,\n syntaxTypescript,\n transformAsyncGeneratorFunctions,\n transformClassProperties,\n transformClassStaticBlock,\n proposalDecorators,\n proposalDestructuringPrivate,\n proposalDoExpressions,\n proposalDuplicateNamedCapturingGroupsRegex,\n transformDynamicImport,\n proposalExportDefaultFrom,\n transformExportNamespaceFrom,\n proposalFunctionBind,\n proposalFunctionSent,\n transformJsonStrings,\n transformLogicalAssignmentOperators,\n transformNullishCoalescingOperator,\n transformNumericSeparator,\n transformObjectRestSpread,\n transformOptionalCatchBinding,\n transformOptionalChaining,\n proposalOptionalChainingAssign,\n proposalPipelineOperator,\n transformPrivateMethods,\n transformPrivatePropertyInObject,\n proposalRecordAndTuple,\n proposalRegexpModifiers,\n proposalThrowExpressions,\n transformUnicodePropertyRegex,\n transformUnicodeSetsRegex,\n transformAsyncToGenerator,\n transformArrowFunctions,\n transformBlockScopedFunctions,\n transformBlockScoping,\n transformClasses,\n transformComputedProperties,\n transformDestructuring,\n transformDotallRegex,\n transformDuplicateKeys,\n transformExponentiationOperator,\n transformFlowComments,\n transformFlowStripTypes,\n transformForOf,\n transformFunctionName,\n transformInstanceof,\n transformJscript,\n transformLiterals,\n transformMemberExpressionLiterals,\n transformModulesAmd,\n transformModulesCommonjs,\n transformModulesSystemjs,\n transformModulesUmd,\n transformNamedCapturingGroupsRegex,\n transformNewTarget,\n transformObjectAssign,\n transformObjectSuper,\n transformObjectSetPrototypeOfToAssign,\n transformParameters,\n transformPropertyLiterals,\n transformPropertyMutators,\n transformProtoToAssign,\n transformReactConstantElements,\n transformReactDisplayName,\n transformReactInlineElements,\n transformReactJsx,\n transformReactJsxCompat,\n transformReactJsxDevelopment,\n transformReactJsxSelf,\n transformReactJsxSource,\n transformRegenerator,\n transformReservedWords,\n transformRuntime,\n transformShorthandProperties,\n transformSpread,\n transformStickyRegex,\n transformStrictMode,\n transformTemplateLiterals,\n transformTypeofSymbol,\n transformTypescript,\n transformUnicodeEscapes,\n transformUnicodeRegex,\n proposalExplicitResourceManagement,\n proposalImportDefer,\n proposalJsonModules,\n};\nexport const all: { [k: string]: any } = {\n \"syntax-async-generators\": syntaxAsyncGenerators,\n \"syntax-class-properties\": syntaxClassProperties,\n \"syntax-class-static-block\": syntaxClassStaticBlock,\n \"syntax-import-meta\": syntaxImportMeta,\n \"syntax-object-rest-spread\": syntaxObjectRestSpread,\n \"syntax-optional-catch-binding\": syntaxOptionalCatchBinding,\n \"syntax-top-level-await\": syntaxTopLevelAwait,\n \"external-helpers\": externalHelpers,\n \"syntax-decimal\": syntaxDecimal,\n \"syntax-decorators\": syntaxDecorators,\n \"syntax-destructuring-private\": syntaxDestructuringPrivate,\n \"syntax-do-expressions\": syntaxDoExpressions,\n \"syntax-explicit-resource-management\": syntaxExplicitResourceManagement,\n \"syntax-export-default-from\": syntaxExportDefaultFrom,\n \"syntax-flow\": syntaxFlow,\n \"syntax-function-bind\": syntaxFunctionBind,\n \"syntax-function-sent\": syntaxFunctionSent,\n \"syntax-import-assertions\": syntaxImportAssertions,\n \"syntax-import-attributes\": syntaxImportAttributes,\n \"syntax-import-reflection\": syntaxImportReflection,\n \"syntax-jsx\": syntaxJsx,\n \"syntax-module-blocks\": syntaxModuleBlocks,\n \"syntax-optional-chaining-assign\": syntaxOptionalChainingAssign,\n \"syntax-pipeline-operator\": syntaxPipelineOperator,\n \"syntax-record-and-tuple\": syntaxRecordAndTuple,\n \"syntax-typescript\": syntaxTypescript,\n \"transform-async-generator-functions\": transformAsyncGeneratorFunctions,\n \"transform-class-properties\": transformClassProperties,\n \"transform-class-static-block\": transformClassStaticBlock,\n \"proposal-decorators\": proposalDecorators,\n \"proposal-destructuring-private\": proposalDestructuringPrivate,\n \"proposal-do-expressions\": proposalDoExpressions,\n \"proposal-duplicate-named-capturing-groups-regex\":\n proposalDuplicateNamedCapturingGroupsRegex,\n \"transform-dynamic-import\": transformDynamicImport,\n \"proposal-export-default-from\": proposalExportDefaultFrom,\n \"transform-export-namespace-from\": transformExportNamespaceFrom,\n \"proposal-function-bind\": proposalFunctionBind,\n \"proposal-function-sent\": proposalFunctionSent,\n \"transform-json-strings\": transformJsonStrings,\n \"transform-logical-assignment-operators\": transformLogicalAssignmentOperators,\n \"transform-nullish-coalescing-operator\": transformNullishCoalescingOperator,\n \"transform-numeric-separator\": transformNumericSeparator,\n \"transform-object-rest-spread\": transformObjectRestSpread,\n \"transform-optional-catch-binding\": transformOptionalCatchBinding,\n \"transform-optional-chaining\": transformOptionalChaining,\n \"proposal-optional-chaining-assign\": proposalOptionalChainingAssign,\n \"proposal-pipeline-operator\": proposalPipelineOperator,\n \"transform-private-methods\": transformPrivateMethods,\n \"transform-private-property-in-object\": transformPrivatePropertyInObject,\n \"proposal-record-and-tuple\": proposalRecordAndTuple,\n \"proposal-regexp-modifiers\": proposalRegexpModifiers,\n \"proposal-throw-expressions\": proposalThrowExpressions,\n \"transform-unicode-property-regex\": transformUnicodePropertyRegex,\n \"transform-unicode-sets-regex\": transformUnicodeSetsRegex,\n \"transform-async-to-generator\": transformAsyncToGenerator,\n \"transform-arrow-functions\": transformArrowFunctions,\n \"transform-block-scoped-functions\": transformBlockScopedFunctions,\n \"transform-block-scoping\": transformBlockScoping,\n \"transform-classes\": transformClasses,\n \"transform-computed-properties\": transformComputedProperties,\n \"transform-destructuring\": transformDestructuring,\n \"transform-dotall-regex\": transformDotallRegex,\n \"transform-duplicate-keys\": transformDuplicateKeys,\n \"transform-exponentiation-operator\": transformExponentiationOperator,\n \"transform-flow-comments\": transformFlowComments,\n \"transform-flow-strip-types\": transformFlowStripTypes,\n \"transform-for-of\": transformForOf,\n \"transform-function-name\": transformFunctionName,\n \"transform-instanceof\": transformInstanceof,\n \"transform-jscript\": transformJscript,\n \"transform-literals\": transformLiterals,\n \"transform-member-expression-literals\": transformMemberExpressionLiterals,\n \"transform-modules-amd\": transformModulesAmd,\n \"transform-modules-commonjs\": transformModulesCommonjs,\n \"transform-modules-systemjs\": transformModulesSystemjs,\n \"transform-modules-umd\": transformModulesUmd,\n \"transform-named-capturing-groups-regex\": transformNamedCapturingGroupsRegex,\n \"transform-new-target\": transformNewTarget,\n \"transform-object-assign\": transformObjectAssign,\n \"transform-object-super\": transformObjectSuper,\n \"transform-object-set-prototype-of-to-assign\":\n transformObjectSetPrototypeOfToAssign,\n \"transform-parameters\": transformParameters,\n \"transform-property-literals\": transformPropertyLiterals,\n \"transform-property-mutators\": transformPropertyMutators,\n \"transform-proto-to-assign\": transformProtoToAssign,\n \"transform-react-constant-elements\": transformReactConstantElements,\n \"transform-react-display-name\": transformReactDisplayName,\n \"transform-react-inline-elements\": transformReactInlineElements,\n \"transform-react-jsx\": transformReactJsx,\n \"transform-react-jsx-compat\": transformReactJsxCompat,\n \"transform-react-jsx-development\": transformReactJsxDevelopment,\n \"transform-react-jsx-self\": transformReactJsxSelf,\n \"transform-react-jsx-source\": transformReactJsxSource,\n \"transform-regenerator\": transformRegenerator,\n \"transform-reserved-words\": transformReservedWords,\n \"transform-runtime\": transformRuntime,\n \"transform-shorthand-properties\": transformShorthandProperties,\n \"transform-spread\": transformSpread,\n \"transform-sticky-regex\": transformStickyRegex,\n \"transform-strict-mode\": transformStrictMode,\n \"transform-template-literals\": transformTemplateLiterals,\n \"transform-typeof-symbol\": transformTypeofSymbol,\n \"transform-typescript\": transformTypescript,\n \"transform-unicode-escapes\": transformUnicodeEscapes,\n \"transform-unicode-regex\": transformUnicodeRegex,\n \"proposal-explicit-resource-management\": proposalExplicitResourceManagement,\n \"proposal-import-defer\": proposalImportDefer,\n \"proposal-json-modules\": proposalJsonModules,\n};\n","import * as babelPlugins from \"./generated/plugins.ts\";\n\nexport default (_: any, opts: any): any => {\n let loose = false;\n let modules = \"commonjs\";\n let spec = false;\n\n if (opts !== undefined) {\n if (opts.loose !== undefined) loose = opts.loose;\n if (opts.modules !== undefined) modules = opts.modules;\n if (opts.spec !== undefined) spec = opts.spec;\n }\n\n // be DRY\n const optsLoose = { loose };\n\n return {\n plugins: [\n [babelPlugins.transformTemplateLiterals, { loose, spec }],\n babelPlugins.transformLiterals,\n babelPlugins.transformFunctionName,\n [babelPlugins.transformArrowFunctions, { spec }],\n babelPlugins.transformBlockScopedFunctions,\n [babelPlugins.transformClasses, optsLoose],\n babelPlugins.transformObjectSuper,\n babelPlugins.transformShorthandProperties,\n babelPlugins.transformDuplicateKeys,\n [babelPlugins.transformComputedProperties, optsLoose],\n [babelPlugins.transformForOf, optsLoose],\n babelPlugins.transformStickyRegex,\n babelPlugins.transformUnicodeEscapes,\n babelPlugins.transformUnicodeRegex,\n [babelPlugins.transformSpread, optsLoose],\n [babelPlugins.transformParameters, optsLoose],\n [babelPlugins.transformDestructuring, optsLoose],\n babelPlugins.transformBlockScoping,\n babelPlugins.transformTypeofSymbol,\n babelPlugins.transformInstanceof,\n (modules === \"commonjs\" || modules === \"cjs\") && [\n babelPlugins.transformModulesCommonjs,\n optsLoose,\n ],\n modules === \"systemjs\" && [\n babelPlugins.transformModulesSystemjs,\n optsLoose,\n ],\n modules === \"amd\" && [babelPlugins.transformModulesAmd, optsLoose],\n modules === \"umd\" && [babelPlugins.transformModulesUmd, optsLoose],\n [\n babelPlugins.transformRegenerator,\n { async: false, asyncGenerators: false },\n ],\n ].filter(Boolean), // filter out falsy values\n };\n};\n","import * as babelPlugins from \"./generated/plugins.ts\";\n\nexport default (_: any, opts: any = {}) => {\n const {\n loose = false,\n decoratorsLegacy = false,\n decoratorsVersion = \"2018-09\",\n decoratorsBeforeExport,\n } = opts;\n\n const plugins = [\n [babelPlugins.syntaxImportAttributes, { deprecatedAssertSyntax: true }],\n babelPlugins.transformUnicodeSetsRegex,\n babelPlugins.proposalDuplicateNamedCapturingGroupsRegex,\n [\n babelPlugins.proposalDecorators,\n {\n version: decoratorsLegacy ? \"legacy\" : decoratorsVersion,\n decoratorsBeforeExport,\n },\n ],\n babelPlugins.proposalRegexpModifiers,\n babelPlugins.proposalExplicitResourceManagement,\n babelPlugins.proposalJsonModules,\n // These are Stage 4\n ...(process.env.BABEL_8_BREAKING\n ? []\n : [\n babelPlugins.transformExportNamespaceFrom,\n babelPlugins.transformLogicalAssignmentOperators,\n [babelPlugins.transformOptionalChaining, { loose }],\n [babelPlugins.transformNullishCoalescingOperator, { loose }],\n [babelPlugins.transformClassProperties, { loose }],\n babelPlugins.transformJsonStrings,\n babelPlugins.transformNumericSeparator,\n [babelPlugins.transformPrivateMethods, { loose }],\n babelPlugins.transformPrivatePropertyInObject,\n babelPlugins.transformClassStaticBlock,\n ]),\n ];\n\n return { plugins };\n};\n","import presetStage3 from \"./preset-stage-3.ts\";\nimport * as babelPlugins from \"./generated/plugins.ts\";\n\nexport default (_: any, opts: any = {}) => {\n const {\n pipelineProposal = \"minimal\",\n pipelineTopicToken = \"%\",\n recordAndTupleSyntax = \"hash\",\n } = opts;\n\n return {\n presets: [[presetStage3, opts]],\n plugins: [\n babelPlugins.proposalDestructuringPrivate,\n [\n babelPlugins.proposalPipelineOperator,\n { proposal: pipelineProposal, topicToken: pipelineTopicToken },\n ],\n babelPlugins.proposalFunctionSent,\n babelPlugins.proposalThrowExpressions,\n [\n babelPlugins.proposalRecordAndTuple,\n { syntaxType: recordAndTupleSyntax },\n ],\n babelPlugins.syntaxModuleBlocks,\n babelPlugins.syntaxImportReflection,\n ],\n };\n};\n","import presetStage2 from \"./preset-stage-2.ts\";\nimport * as babelPlugins from \"./generated/plugins.ts\";\n\nexport default (_: any, opts: any = {}) => {\n const {\n loose = false,\n useBuiltIns = false,\n decoratorsLegacy,\n decoratorsVersion,\n decoratorsBeforeExport,\n pipelineProposal,\n pipelineTopicToken,\n recordAndTupleSyntax,\n optionalChainingAssignVersion = \"2023-07\",\n } = opts;\n\n return {\n presets: [\n [\n presetStage2,\n {\n loose,\n useBuiltIns,\n decoratorsLegacy,\n decoratorsVersion,\n decoratorsBeforeExport,\n pipelineProposal,\n pipelineTopicToken,\n recordAndTupleSyntax,\n },\n ],\n ],\n plugins: [\n babelPlugins.syntaxDecimal,\n babelPlugins.proposalExportDefaultFrom,\n babelPlugins.proposalDoExpressions,\n [\n babelPlugins.proposalOptionalChainingAssign,\n { version: optionalChainingAssignVersion },\n ],\n ],\n };\n};\n","import presetStage1 from \"./preset-stage-1.ts\";\nimport { proposalFunctionBind } from \"./generated/plugins.ts\";\n\nexport default (_: any, opts: any = {}) => {\n const {\n loose = false,\n useBuiltIns = false,\n decoratorsLegacy,\n decoratorsVersion,\n decoratorsBeforeExport,\n pipelineProposal,\n pipelineTopicToken,\n } = opts;\n\n return {\n presets: [\n [\n presetStage1,\n {\n loose,\n useBuiltIns,\n decoratorsLegacy,\n decoratorsVersion,\n decoratorsBeforeExport,\n pipelineProposal,\n pipelineTopicToken,\n },\n ],\n ],\n plugins: [proposalFunctionBind],\n };\n};\n","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? require(\"semver-BABEL_8_BREAKING-true\")\n : require(\"semver-BABEL_8_BREAKING-false\");\n","import {\n getInclusionReasons,\n type Targets,\n type Target,\n} from \"@babel/helper-compilation-targets\";\nimport compatData from \"@babel/compat-data/plugins\";\n\n// Outputs a message that shows which target(s) caused an item to be included:\n// transform-foo { \"edge\":\"13\", \"firefox\":\"49\", \"ie\":\"10\" }\nexport const logPlugin = (\n item: string,\n targetVersions: Targets,\n list: { [key: string]: Targets },\n) => {\n const filteredList = getInclusionReasons(item, targetVersions, list);\n\n const support = list[item];\n\n if (!process.env.BABEL_8_BREAKING) {\n // It's needed to keep outputting proposal- in the debug log.\n if (item.startsWith(\"transform-\")) {\n const proposalName = `proposal-${item.slice(10)}`;\n if (\n proposalName === \"proposal-dynamic-import\" ||\n Object.hasOwn(compatData, proposalName)\n ) {\n item = proposalName;\n }\n }\n }\n\n if (!support) {\n console.log(` ${item}`);\n return;\n }\n\n let formattedTargets = `{`;\n let first = true;\n for (const target of Object.keys(filteredList) as Target[]) {\n if (!first) formattedTargets += `,`;\n first = false;\n formattedTargets += ` ${target}`;\n if (support[target]) formattedTargets += ` < ${support[target]}`;\n }\n formattedTargets += ` }`;\n\n console.log(` ${item} ${formattedTargets}`);\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Safari 10.3 had an issue where async arrow function expressions within any class method would throw.\n * After an initial fix, any references to the instance via `this` within those methods would also throw.\n * This is fixed by converting arrow functions in class methods into equivalent function expressions.\n * @see https://bugs.webkit.org/show_bug.cgi?id=166879\n *\n * @example\n * class X{ a(){ async () => {}; } } // throws\n * class X{ a(){ async function() {}; } } // works\n *\n * @example\n * class X{ a(){\n * async () => this.a; // throws\n * } }\n * class X{ a(){\n * var _this=this;\n * async function() { return _this.a }; // works\n * } }\n */\nconst OPTS = {\n allowInsertArrow: false,\n specCompliant: false\n};\n\nvar _default = ({\n types: t\n}) => ({\n name: \"transform-async-arrows-in-class\",\n visitor: {\n ArrowFunctionExpression(path) {\n if (path.node.async && path.findParent(t.isClassMethod)) {\n path.arrowFunctionToExpression(OPTS);\n }\n }\n\n }\n});\n\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Converts destructured parameters with default values to non-shorthand syntax.\n * This fixes the only arguments-related bug in ES Modules-supporting browsers (Edge 16 & 17).\n * Use this plugin instead of @babel/plugin-transform-parameters when targeting ES Modules.\n */\nvar _default = ({\n types: t\n}) => {\n const isArrowParent = p => p.parentKey === \"params\" && p.parentPath && t.isArrowFunctionExpression(p.parentPath);\n\n return {\n name: \"transform-edge-default-parameters\",\n visitor: {\n AssignmentPattern(path) {\n const arrowArgParent = path.find(isArrowParent);\n\n if (arrowArgParent && path.parent.shorthand) {\n // In Babel 7+, there is no way to force non-shorthand properties.\n path.parent.shorthand = false;\n (path.parent.extra || {}).shorthand = false; // So, to ensure non-shorthand, rename the local identifier so it no longer matches:\n\n path.scope.rename(path.parent.key.name);\n }\n }\n\n }\n };\n};\n\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Edge 16 & 17 do not infer function.name from variable assignment.\n * All other `function.name` behavior works fine, so we can skip most of @babel/transform-function-name.\n * @see https://kangax.github.io/compat-table/es6/#test-function_name_property_variables_(function)\n *\n * Note: contrary to various Github issues, Edge 16+ *does* correctly infer the name of Arrow Functions.\n * The variable declarator name inference issue only affects function expressions, so that's all we fix here.\n *\n * A Note on Minification: Terser undoes this transform *by default* unless `keep_fnames` is set to true.\n * There is by design - if Function.name is critical to your application, you must configure\n * your minifier to preserve function names.\n */\nvar _default = ({\n types: t\n}) => ({\n name: \"transform-edge-function-name\",\n visitor: {\n FunctionExpression: {\n exit(path) {\n if (!path.node.id && t.isIdentifier(path.parent.id)) {\n const id = t.cloneNode(path.parent.id);\n const binding = path.scope.getBinding(id.name); // if the binding gets reassigned anywhere, rename it\n\n if (binding == null ? void 0 : binding.constantViolations.length) {\n path.scope.rename(id.name);\n }\n\n path.node.id = id;\n }\n }\n\n }\n }\n});\n\nexports.default = _default;\nmodule.exports = exports.default;","import type { NodePath, Visitor } from \"@babel/traverse\";\nimport type { types as t } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\nimport environmentVisitor from \"@babel/helper-environment-visitor\";\n\nexport default declare(({ types: t, traverse, assertVersion }) => {\n assertVersion(REQUIRED_VERSION(7));\n\n const containsClassExpressionVisitor: Visitor<{ found: boolean }> = {\n ClassExpression(path, state) {\n state.found = true;\n path.stop();\n },\n Function(path) {\n path.skip();\n },\n };\n\n const containsYieldOrAwaitVisitor = traverse.visitors.merge([\n {\n YieldExpression(path, state) {\n state.yield = true;\n if (state.await) path.stop();\n },\n AwaitExpression(path, state) {\n state.await = true;\n if (state.yield) path.stop();\n },\n } satisfies Visitor<{ yield: boolean; await: boolean }>,\n environmentVisitor,\n ]);\n\n function containsClassExpression(path: NodePath) {\n if (t.isClassExpression(path.node)) return true;\n if (t.isFunction(path.node)) return false;\n const state = { found: false };\n path.traverse(containsClassExpressionVisitor, state);\n return state.found;\n }\n\n function wrap(path: NodePath) {\n const context = {\n yield: t.isYieldExpression(path.node),\n await: t.isAwaitExpression(path.node),\n };\n path.traverse(containsYieldOrAwaitVisitor, context);\n\n let replacement;\n\n if (context.yield) {\n const fn = t.functionExpression(\n null,\n [],\n t.blockStatement([t.returnStatement(path.node)]),\n /* generator */ true,\n /* async */ context.await,\n );\n\n replacement = t.yieldExpression(\n t.callExpression(t.memberExpression(fn, t.identifier(\"call\")), [\n t.thisExpression(),\n // NOTE: In some context arguments is invalid (it might not be defined\n // in the top-level scope, or it's a syntax error in static class blocks).\n // However, `yield` is also invalid in those contexts, so we can safely\n // inject a reference to arguments.\n t.identifier(\"arguments\"),\n ]),\n true,\n );\n } else {\n const fn = t.arrowFunctionExpression([], path.node, context.await);\n\n replacement = t.callExpression(fn, []);\n if (context.await) replacement = t.awaitExpression(replacement);\n }\n\n path.replaceWith(replacement);\n }\n\n return {\n name: \"bugfix-firefox-class-in-computed-class-key\",\n\n visitor: {\n Class(path) {\n const hasPrivateElement = path.node.body.body.some(node =>\n t.isPrivate(node),\n );\n if (!hasPrivateElement) return;\n\n for (const elem of path.get(\"body.body\")) {\n if (\n \"computed\" in elem.node &&\n elem.node.computed &&\n containsClassExpression(elem.get(\"key\"))\n ) {\n wrap(\n // @ts-expect-error .key also includes t.PrivateName\n elem.get(\"key\") satisfies NodePath,\n );\n }\n }\n },\n },\n };\n});\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Converts destructured parameters with default values to non-shorthand syntax.\n * This fixes the only Tagged Templates-related bug in ES Modules-supporting browsers (Safari 10 & 11).\n * Use this plugin instead of `@babel/plugin-transform-template-literals` when targeting ES Modules.\n *\n * @example\n * // Bug 1: Safari 10/11 doesn't reliably return the same Strings value.\n * // The value changes depending on invocation and function optimization state.\n * function f() { return Object`` }\n * f() === new f() // false, should be true.\n *\n * @example\n * // Bug 2: Safari 10/11 use the same cached strings value when the string parts are the same.\n * // This behavior comes from an earlier version of the spec, and can cause tricky bugs.\n * Object``===Object`` // true, should be false.\n *\n * Benchmarks: https://jsperf.com/compiled-tagged-template-performance\n */\nvar _default = ({\n types: t\n}) => ({\n name: \"transform-tagged-template-caching\",\n visitor: {\n TaggedTemplateExpression(path, state) {\n // tagged templates we've already dealt with\n let processed = state.get(\"processed\");\n\n if (!processed) {\n processed = new WeakSet();\n state.set(\"processed\", processed);\n }\n\n if (processed.has(path.node)) return path.skip(); // Grab the expressions from the original tag.\n // tag`a${'hello'}` // ['hello']\n\n const expressions = path.node.quasi.expressions; // Create an identity function helper:\n // identity = t => t\n\n let identity = state.get(\"identity\");\n\n if (!identity) {\n identity = path.scope.getProgramParent().generateDeclaredUidIdentifier(\"_\");\n state.set(\"identity\", identity);\n const binding = path.scope.getBinding(identity.name);\n binding.path.get(\"init\").replaceWith(t.arrowFunctionExpression( // re-use the helper identifier for compressability\n [t.identifier(\"t\")], t.identifier(\"t\")));\n } // Use the identity function helper to get a reference to the template's Strings.\n // We replace all expressions with `0` ensure Strings has the same shape.\n // identity`a${0}`\n\n\n const template = t.taggedTemplateExpression(t.cloneNode(identity), t.templateLiteral(path.node.quasi.quasis, expressions.map(() => t.numericLiteral(0))));\n processed.add(template); // Install an inline cache at the callsite using the global variable:\n // _t || (_t = identity`a${0}`)\n\n const ident = path.scope.getProgramParent().generateDeclaredUidIdentifier(\"t\");\n path.scope.getBinding(ident.name).path.parent.kind = \"let\";\n const inlineCache = t.logicalExpression(\"||\", ident, t.assignmentExpression(\"=\", t.cloneNode(ident), template)); // The original tag function becomes a plain function call.\n // The expressions omitted from the cached Strings tag are directly applied as arguments.\n // tag(_t || (_t = Object`a${0}`), 'hello')\n\n const node = t.callExpression(path.node.tag, [inlineCache, ...expressions]);\n path.replaceWith(node);\n }\n\n }\n});\n\nexports.default = _default;\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = _default;\n\n/**\n * Fixes block-shadowed let/const bindings in Safari 10/11.\n * https://kangax.github.io/compat-table/es6/#test-let_scope_shadow_resolution\n */\nfunction _default({\n types: t\n}) {\n return {\n name: \"transform-safari-block-shadowing\",\n visitor: {\n VariableDeclarator(path) {\n // the issue only affects let and const bindings:\n const kind = path.parent.kind;\n if (kind !== \"let\" && kind !== \"const\") return; // ignore non-block-scoped bindings:\n\n const block = path.scope.block;\n if (t.isFunction(block) || t.isProgram(block)) return;\n const bindings = t.getOuterBindingIdentifiers(path.node.id);\n\n for (const name of Object.keys(bindings)) {\n let scope = path.scope; // ignore parent bindings (note: impossible due to let/const?)\n\n if (!scope.hasOwnBinding(name)) continue; // check if shadowed within the nearest function/program boundary\n\n while (scope = scope.parent) {\n if (scope.hasOwnBinding(name)) {\n path.scope.rename(name);\n break;\n }\n\n if (t.isFunction(scope.block) || t.isProgram(scope.block)) {\n break;\n }\n }\n }\n }\n\n }\n };\n}\n\nmodule.exports = exports.default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\n/**\n * Safari ~11 has an issue where variable declarations in a For statement throw if they shadow parameters.\n * This is fixed by renaming any declarations in the left/init part of a For* statement so they don't shadow.\n * @see https://bugs.webkit.org/show_bug.cgi?id=171041\n *\n * @example\n * e => { for (let e of []) e } // throws\n * e => { for (let _e of []) _e } // works\n */\nfunction handle(declaration) {\n if (!declaration.isVariableDeclaration()) return;\n const fn = declaration.getFunctionParent();\n const {\n name\n } = declaration.node.declarations[0].id; // check if there is a shadowed binding coming from a parameter\n\n if (fn && fn.scope.hasOwnBinding(name) && fn.scope.getOwnBinding(name).kind === \"param\") {\n declaration.scope.rename(name);\n }\n}\n\nvar _default = () => ({\n name: \"transform-safari-for-shadowing\",\n visitor: {\n ForXStatement(path) {\n handle(path.get(\"left\"));\n },\n\n ForStatement(path) {\n handle(path.get(\"init\"));\n }\n\n }\n});\n\nexports.default = _default;\nmodule.exports = exports.default;","import type { FunctionExpression } from \"@babel/types\";\nimport type { NodePath } from \"@babel/traverse\";\n\n/**\n * Check whether a function expression can be affected by\n * https://bugs.webkit.org/show_bug.cgi?id=220517\n * @param path The function expression NodePath\n * @returns the name of function id if it should be transformed, otherwise returns false\n */\nexport function shouldTransform(\n path: NodePath,\n): string | false {\n const { node } = path;\n const functionId = node.id;\n if (!functionId) return false;\n\n const name = functionId.name;\n // On collision, `getOwnBinding` returns the param binding\n // with the id binding be registered as constant violation\n const paramNameBinding = path.scope.getOwnBinding(name);\n if (paramNameBinding === undefined) {\n // Case 1: the function id is injected by babel-helper-name-function, which\n // assigns `NOT_LOCAL_BINDING` to the `functionId` and thus not registering id\n // in scope tracking\n // Case 2: the function id is injected by a third party plugin which does not update the\n // scope info\n return false;\n }\n if (paramNameBinding.kind !== \"param\") {\n // the function id does not reproduce in params\n return false;\n }\n\n if (paramNameBinding.identifier === paramNameBinding.path.node) {\n // the param binding is a simple parameter\n // e.g. (function a(a) {})\n return false;\n }\n\n return name;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { shouldTransform } from \"./util.ts\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(\"^7.16.0\"));\n\n return {\n name: \"plugin-bugfix-safari-id-destructuring-collision-in-function-expression\",\n\n visitor: {\n FunctionExpression(path) {\n const name = shouldTransform(path);\n if (name) {\n // Now we have (function a([a]) {})\n const { scope } = path;\n // invariant: path.node.id is always an Identifier here\n const newParamName = scope.generateUid(name);\n scope.rename(name, newParamName);\n }\n },\n },\n };\n});\n","import { skipTransparentExprWrappers } from \"@babel/helper-skip-transparent-expression-wrappers\";\nimport type { NodePath } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\n// https://crbug.com/v8/11558\n\n// check if there is a spread element followed by another argument.\n// (...[], 0) or (...[], ...[])\n\nfunction matchAffectedArguments(argumentNodes: t.CallExpression[\"arguments\"]) {\n const spreadIndex = argumentNodes.findIndex(node => t.isSpreadElement(node));\n return spreadIndex >= 0 && spreadIndex !== argumentNodes.length - 1;\n}\n\n/**\n * Check whether the optional chain is affected by https://crbug.com/v8/11558.\n * This routine MUST not manipulate NodePath\n *\n * @export\n * @param {(NodePath)} path\n * @returns {boolean}\n */\nexport function shouldTransform(\n path: NodePath,\n): boolean {\n let optionalPath: NodePath = path;\n const chains: (t.OptionalCallExpression | t.OptionalMemberExpression)[] = [];\n for (;;) {\n if (optionalPath.isOptionalMemberExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"object\"));\n } else if (optionalPath.isOptionalCallExpression()) {\n chains.push(optionalPath.node);\n optionalPath = skipTransparentExprWrappers(optionalPath.get(\"callee\"));\n } else {\n break;\n }\n }\n for (let i = 0; i < chains.length; i++) {\n const node = chains[i];\n if (\n t.isOptionalCallExpression(node) &&\n matchAffectedArguments(node.arguments)\n ) {\n // f?.(...[], 0)\n if (node.optional) {\n return true;\n }\n // o?.m(...[], 0)\n // when node.optional is false, chains[i + 1] is always well defined\n const callee = chains[i + 1];\n if (t.isOptionalMemberExpression(callee, { optional: true })) {\n return true;\n }\n }\n }\n return false;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport { transform } from \"@babel/plugin-transform-optional-chaining\";\nimport { shouldTransform } from \"./util.ts\";\nimport type { NodePath } from \"@babel/traverse\";\nimport type * as t from \"@babel/types\";\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const noDocumentAll = api.assumption(\"noDocumentAll\") ?? false;\n const pureGetters = api.assumption(\"pureGetters\") ?? false;\n\n return {\n name: \"bugfix-v8-spread-parameters-in-optional-chaining\",\n\n visitor: {\n \"OptionalCallExpression|OptionalMemberExpression\"(\n path: NodePath,\n ) {\n if (shouldTransform(path)) {\n transform(path, { noDocumentAll, pureGetters });\n }\n },\n },\n };\n});\n","import type { NodePath, Visitor } from \"@babel/traverse\";\nimport { types as t } from \"@babel/core\";\nimport { requeueComputedKeyAndDecorators } from \"@babel/helper-environment-visitor\";\n\nfunction isNameOrLength(key: t.Node): boolean {\n if (t.isIdentifier(key)) {\n return key.name === \"name\" || key.name === \"length\";\n }\n if (t.isStringLiteral(key)) {\n return key.value === \"name\" || key.value === \"length\";\n }\n return false;\n}\n\nfunction isStaticFieldWithValue(\n node: t.Node,\n): node is t.ClassProperty | t.ClassPrivateProperty {\n return (\n (t.isClassProperty(node) || t.isClassPrivateProperty(node)) &&\n node.static &&\n !!node.value\n );\n}\n\nconst hasReferenceVisitor: Visitor<{ name: string; ref: () => void }> = {\n ReferencedIdentifier(path, state) {\n if (path.node.name === state.name) {\n state.ref();\n path.stop();\n }\n },\n Scope(path, { name }) {\n if (path.scope.hasOwnBinding(name)) {\n path.skip();\n }\n },\n};\n\nfunction isReferenceOrThis(node: t.Node, name?: string) {\n return t.isThisExpression(node) || (name && t.isIdentifier(node, { name }));\n}\n\nconst hasReferenceOrThisVisitor: Visitor<{ name?: string; ref: () => void }> = {\n \"ThisExpression|ReferencedIdentifier\"(path, state) {\n if (isReferenceOrThis(path.node, state.name)) {\n state.ref();\n path.stop();\n }\n },\n FunctionParent(path, state) {\n if (path.isArrowFunctionExpression()) return;\n if (state.name && !path.scope.hasOwnBinding(state.name)) {\n path.traverse(hasReferenceVisitor, state);\n }\n path.skip();\n if (path.isMethod()) {\n requeueComputedKeyAndDecorators(path);\n }\n },\n};\n\ntype ClassElementWithComputedKeySupport = Extract<\n t.ClassBody[\"body\"][number],\n { computed?: boolean }\n>;\n\n/**\n * This function returns an array containing the indexes of class elements\n * that might be affected by https://crbug.com/v8/12421 bug.\n *\n * This bug affects public static class fields that have the same name as an\n * existing non-writable property with the same name. This usually happens when\n * the static field is named 'length' or 'name', since it clashes with the\n * predefined fn.length and fn.name properties. We must also compile static\n * fields with computed key, because they might end up being named 'length' or\n * 'name'.\n *\n * However, this bug can potentially affect public static fields with any name.\n * Consider this example:\n *\n * class A {\n * static {\n * Object.defineProperty(A, \"readonly\", {\n * value: 1,\n * writable: false,\n * configurable: true\n * })\n * }\n *\n * static readonly = 2;\n * }\n *\n * When initializing the 'static readonly' field, the class already has a\n * non-writable property named 'readonly' and thus V8 9.7 incorrectly throws.\n *\n * To avoid unconditionally compiling every public static field, we track how\n * the class is referenced during definition & static evaluation: any side\n * effect after a reference to the class can potentially define a non-writable\n * conficting property, so subsequent public static fields must be compiled.\n * The class could be referenced using the class name in computed keys, which\n * run before static fields, or using either the class name or 'this' in static\n * fields (both public and private) and static blocks.\n *\n * We don't need to check if computed keys referencing the class have any side\n * effect, because during the computed keys evaluation the internal class\n * binding is in TDZ. However, the first side effect in a static field/block\n * could have access to a function defined in a computed key that modifies the\n * class.\n *\n * This logic is already quite complex, so we assume that static blocks always\n * have side effects and reference the class (the reason to use them is to\n * perform additional initialization logic on the class anyway), so that we do\n * not have to check their contents.\n */\nexport function getPotentiallyBuggyFieldsIndexes(path: NodePath) {\n const buggyPublicStaticFieldsIndexes: number[] = [];\n\n let classReferenced = false;\n const className = path.node.id?.name;\n\n const hasReferenceState = {\n name: className,\n ref: () => (classReferenced = true),\n };\n\n if (className) {\n for (const el of path.get(\"body.body\")) {\n if ((el.node as ClassElementWithComputedKeySupport).computed) {\n // Since .traverse skips the top-level node, it doesn't detect\n // a reference happening immediately:\n // class A { [A]() {} }\n // However, it's a TDZ error so it's ok not to consider this case.\n (el as NodePath)\n .get(\"key\")\n .traverse(hasReferenceVisitor, hasReferenceState);\n\n if (classReferenced) break;\n }\n }\n }\n\n let nextPotentiallyBuggy = false;\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n\n if (!nextPotentiallyBuggy) {\n if (t.isStaticBlock(node)) {\n classReferenced = true;\n nextPotentiallyBuggy = true;\n } else if (isStaticFieldWithValue(node)) {\n if (!classReferenced) {\n if (isReferenceOrThis(node.value, className)) {\n classReferenced = true;\n } else {\n (\n path.get(`body.body.${i}.value`) as NodePath\n ).traverse(hasReferenceOrThisVisitor, hasReferenceState);\n }\n }\n\n if (classReferenced) {\n nextPotentiallyBuggy = !path.scope.isPure(node.value);\n }\n }\n }\n\n if (\n t.isClassProperty(node, { static: true }) &&\n (nextPotentiallyBuggy || node.computed || isNameOrLength(node.key))\n ) {\n buggyPublicStaticFieldsIndexes.push(i);\n }\n }\n\n return buggyPublicStaticFieldsIndexes;\n}\n\nexport function getNameOrLengthStaticFieldsIndexes(path: NodePath) {\n const indexes: number[] = [];\n\n const { body } = path.node.body;\n for (let i = 0; i < body.length; i++) {\n const node = body[i];\n if (\n t.isClassProperty(node, { static: true, computed: false }) &&\n isNameOrLength(node.key)\n ) {\n indexes.push(i);\n }\n }\n\n return indexes;\n}\n\ntype Range = [start: number, end: number];\n\n/**\n * Converts a sorted list of numbers into a list of (inclusive-exclusive)\n * ranges representing the same numbers.\n *\n * @example toRanges([1, 3, 4, 5, 8, 9]) -> [[1, 2], [3, 6], [8, 10]]\n */\nexport function toRanges(nums: number[]): Range[] {\n const ranges: Range[] = [];\n\n if (nums.length === 0) return ranges;\n\n let start = nums[0];\n let end = start + 1;\n for (let i = 1; i < nums.length; i++) {\n if (nums[i] <= nums[i - 1]) {\n throw new Error(\"Internal Babel error: nums must be in ascending order\");\n }\n if (nums[i] === end) {\n end++;\n } else {\n ranges.push([start, end]);\n start = nums[i];\n end = start + 1;\n }\n }\n ranges.push([start, end]);\n\n return ranges;\n}\n","import type { NodePath, Scope } from \"@babel/traverse\";\nimport { types as t, type PluginPass, type File } from \"@babel/core\";\nimport { declare } from \"@babel/helper-plugin-utils\";\n\nimport {\n getPotentiallyBuggyFieldsIndexes,\n getNameOrLengthStaticFieldsIndexes,\n toRanges,\n} from \"./util.ts\";\n\nfunction buildFieldsReplacement(\n fields: t.ClassProperty[],\n scope: Scope,\n file: File,\n) {\n return t.staticBlock(\n fields.map(field => {\n const key =\n field.computed || !t.isIdentifier(field.key)\n ? field.key\n : t.stringLiteral(field.key.name);\n\n return t.expressionStatement(\n t.callExpression(file.addHelper(\"defineProperty\"), [\n t.thisExpression(),\n key,\n field.value || scope.buildUndefinedNode(),\n ]),\n );\n }),\n );\n}\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const setPublicClassFields = api.assumption(\"setPublicClassFields\");\n\n return {\n name: \"bugfix-v8-static-class-fields-redefine-readonly\",\n\n visitor: {\n Class(this: PluginPass, path: NodePath) {\n const ranges = toRanges(\n setPublicClassFields\n ? getNameOrLengthStaticFieldsIndexes(path)\n : getPotentiallyBuggyFieldsIndexes(path),\n );\n\n for (let i = ranges.length - 1; i >= 0; i--) {\n const [start, end] = ranges[i];\n\n const startPath = path.get(\"body.body\")[start];\n\n startPath.replaceWith(\n buildFieldsReplacement(\n path.node.body.body.slice(start, end) as t.ClassProperty[],\n path.scope,\n this.file,\n ),\n );\n\n for (let j = end - 1; j > start; j--) {\n path.get(\"body.body\")[j].remove();\n }\n }\n },\n },\n };\n});\n","/* eslint sort-keys: \"error\" */\n\nimport syntaxImportAssertions from \"@babel/plugin-syntax-import-assertions\";\nimport syntaxImportAttributes from \"@babel/plugin-syntax-import-attributes\";\n\nimport proposalAsyncGeneratorFunctions from \"@babel/plugin-transform-async-generator-functions\";\nimport proposalClassProperties from \"@babel/plugin-transform-class-properties\";\nimport proposalClassStaticBlock from \"@babel/plugin-transform-class-static-block\";\nimport proposalDynamicImport from \"@babel/plugin-transform-dynamic-import\";\nimport proposalExportNamespaceFrom from \"@babel/plugin-transform-export-namespace-from\";\nimport proposalJsonStrings from \"@babel/plugin-transform-json-strings\";\nimport proposalLogicalAssignmentOperators from \"@babel/plugin-transform-logical-assignment-operators\";\nimport proposalNullishCoalescingOperator from \"@babel/plugin-transform-nullish-coalescing-operator\";\nimport proposalNumericSeparator from \"@babel/plugin-transform-numeric-separator\";\nimport proposalObjectRestSpread from \"@babel/plugin-transform-object-rest-spread\";\nimport proposalOptionalCatchBinding from \"@babel/plugin-transform-optional-catch-binding\";\nimport proposalOptionalChaining from \"@babel/plugin-transform-optional-chaining\";\nimport proposalPrivateMethods from \"@babel/plugin-transform-private-methods\";\nimport proposalPrivatePropertyInObject from \"@babel/plugin-transform-private-property-in-object\";\nimport proposalUnicodePropertyRegex from \"@babel/plugin-transform-unicode-property-regex\";\nimport transformAsyncToGenerator from \"@babel/plugin-transform-async-to-generator\";\nimport transformArrowFunctions from \"@babel/plugin-transform-arrow-functions\";\nimport transformBlockScopedFunctions from \"@babel/plugin-transform-block-scoped-functions\";\nimport transformBlockScoping from \"@babel/plugin-transform-block-scoping\";\nimport transformClasses from \"@babel/plugin-transform-classes\";\nimport transformComputedProperties from \"@babel/plugin-transform-computed-properties\";\nimport transformDestructuring from \"@babel/plugin-transform-destructuring\";\nimport transformDotallRegex from \"@babel/plugin-transform-dotall-regex\";\nimport transformDuplicateKeys from \"@babel/plugin-transform-duplicate-keys\";\nimport transformExponentialOperator from \"@babel/plugin-transform-exponentiation-operator\";\nimport transformForOf from \"@babel/plugin-transform-for-of\";\nimport transformFunctionName from \"@babel/plugin-transform-function-name\";\nimport transformLiterals from \"@babel/plugin-transform-literals\";\nimport transformMemberExpressionLiterals from \"@babel/plugin-transform-member-expression-literals\";\nimport transformModulesAmd from \"@babel/plugin-transform-modules-amd\";\nimport transformModulesCommonjs from \"@babel/plugin-transform-modules-commonjs\";\nimport transformModulesSystemjs from \"@babel/plugin-transform-modules-systemjs\";\nimport transformModulesUmd from \"@babel/plugin-transform-modules-umd\";\nimport transformNamedCapturingGroupsRegex from \"@babel/plugin-transform-named-capturing-groups-regex\";\nimport transformNewTarget from \"@babel/plugin-transform-new-target\";\nimport transformObjectSuper from \"@babel/plugin-transform-object-super\";\nimport transformParameters from \"@babel/plugin-transform-parameters\";\nimport transformPropertyLiterals from \"@babel/plugin-transform-property-literals\";\nimport transformRegenerator from \"@babel/plugin-transform-regenerator\";\nimport transformReservedWords from \"@babel/plugin-transform-reserved-words\";\nimport transformShorthandProperties from \"@babel/plugin-transform-shorthand-properties\";\nimport transformSpread from \"@babel/plugin-transform-spread\";\nimport transformStickyRegex from \"@babel/plugin-transform-sticky-regex\";\nimport transformTemplateLiterals from \"@babel/plugin-transform-template-literals\";\nimport transformTypeofSymbol from \"@babel/plugin-transform-typeof-symbol\";\nimport transformUnicodeEscapes from \"@babel/plugin-transform-unicode-escapes\";\nimport transformUnicodeRegex from \"@babel/plugin-transform-unicode-regex\";\nimport transformUnicodeSetsRegex from \"@babel/plugin-transform-unicode-sets-regex\";\n\nimport bugfixAsyncArrowsInClass from \"@babel/preset-modules/lib/plugins/transform-async-arrows-in-class/index.js\";\nimport bugfixEdgeDefaultParameters from \"@babel/preset-modules/lib/plugins/transform-edge-default-parameters/index.js\";\nimport bugfixEdgeFunctionName from \"@babel/preset-modules/lib/plugins/transform-edge-function-name/index.js\";\nimport bugfixFirefoxClassInComputedKey from \"@babel/plugin-bugfix-firefox-class-in-computed-class-key\";\nimport bugfixTaggedTemplateCaching from \"@babel/preset-modules/lib/plugins/transform-tagged-template-caching/index.js\";\nimport bugfixSafariBlockShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-block-shadowing/index.js\";\nimport bugfixSafariForShadowing from \"@babel/preset-modules/lib/plugins/transform-safari-for-shadowing/index.js\";\nimport bugfixSafariIdDestructuringCollisionInFunctionExpression from \"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression\";\nimport bugfixV8SpreadParametersInOptionalChaining from \"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining\";\nimport bugfixV8StaticClassFieldsRedefineReadonly from \"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly\";\n\nexport { availablePlugins as default };\nconst availablePlugins = {\n \"bugfix/transform-async-arrows-in-class\": () => bugfixAsyncArrowsInClass,\n \"bugfix/transform-edge-default-parameters\": () => bugfixEdgeDefaultParameters,\n \"bugfix/transform-edge-function-name\": () => bugfixEdgeFunctionName,\n \"bugfix/transform-firefox-class-in-computed-class-key\": () =>\n bugfixFirefoxClassInComputedKey,\n \"bugfix/transform-safari-block-shadowing\": () => bugfixSafariBlockShadowing,\n \"bugfix/transform-safari-for-shadowing\": () => bugfixSafariForShadowing,\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n () => bugfixSafariIdDestructuringCollisionInFunctionExpression,\n \"bugfix/transform-tagged-template-caching\": () => bugfixTaggedTemplateCaching,\n \"bugfix/transform-v8-spread-parameters-in-optional-chaining\": () =>\n bugfixV8SpreadParametersInOptionalChaining,\n \"bugfix/transform-v8-static-class-fields-redefine-readonly\": () =>\n bugfixV8StaticClassFieldsRedefineReadonly,\n \"syntax-import-assertions\": () => syntaxImportAssertions,\n \"syntax-import-attributes\": () => syntaxImportAttributes,\n \"transform-arrow-functions\": () => transformArrowFunctions,\n \"transform-async-generator-functions\": () => proposalAsyncGeneratorFunctions,\n \"transform-async-to-generator\": () => transformAsyncToGenerator,\n \"transform-block-scoped-functions\": () => transformBlockScopedFunctions,\n \"transform-block-scoping\": () => transformBlockScoping,\n \"transform-class-properties\": () => proposalClassProperties,\n \"transform-class-static-block\": () => proposalClassStaticBlock,\n \"transform-classes\": () => transformClasses,\n \"transform-computed-properties\": () => transformComputedProperties,\n \"transform-destructuring\": () => transformDestructuring,\n \"transform-dotall-regex\": () => transformDotallRegex,\n \"transform-duplicate-keys\": () => transformDuplicateKeys,\n \"transform-dynamic-import\": () => proposalDynamicImport,\n \"transform-exponentiation-operator\": () => transformExponentialOperator,\n \"transform-export-namespace-from\": () => proposalExportNamespaceFrom,\n \"transform-for-of\": () => transformForOf,\n \"transform-function-name\": () => transformFunctionName,\n \"transform-json-strings\": () => proposalJsonStrings,\n \"transform-literals\": () => transformLiterals,\n \"transform-logical-assignment-operators\": () =>\n proposalLogicalAssignmentOperators,\n \"transform-member-expression-literals\": () =>\n transformMemberExpressionLiterals,\n \"transform-modules-amd\": () => transformModulesAmd,\n \"transform-modules-commonjs\": () => transformModulesCommonjs,\n \"transform-modules-systemjs\": () => transformModulesSystemjs,\n \"transform-modules-umd\": () => transformModulesUmd,\n \"transform-named-capturing-groups-regex\": () =>\n transformNamedCapturingGroupsRegex,\n \"transform-new-target\": () => transformNewTarget,\n \"transform-nullish-coalescing-operator\": () =>\n proposalNullishCoalescingOperator,\n \"transform-numeric-separator\": () => proposalNumericSeparator,\n \"transform-object-rest-spread\": () => proposalObjectRestSpread,\n \"transform-object-super\": () => transformObjectSuper,\n \"transform-optional-catch-binding\": () => proposalOptionalCatchBinding,\n \"transform-optional-chaining\": () => proposalOptionalChaining,\n \"transform-parameters\": () => transformParameters,\n \"transform-private-methods\": () => proposalPrivateMethods,\n \"transform-private-property-in-object\": () => proposalPrivatePropertyInObject,\n \"transform-property-literals\": () => transformPropertyLiterals,\n \"transform-regenerator\": () => transformRegenerator,\n \"transform-reserved-words\": () => transformReservedWords,\n \"transform-shorthand-properties\": () => transformShorthandProperties,\n \"transform-spread\": () => transformSpread,\n \"transform-sticky-regex\": () => transformStickyRegex,\n \"transform-template-literals\": () => transformTemplateLiterals,\n \"transform-typeof-symbol\": () => transformTypeofSymbol,\n \"transform-unicode-escapes\": () => transformUnicodeEscapes,\n \"transform-unicode-property-regex\": () => proposalUnicodePropertyRegex,\n \"transform-unicode-regex\": () => transformUnicodeRegex,\n \"transform-unicode-sets-regex\": () => transformUnicodeSetsRegex,\n};\n\nexport const minVersions = {};\n// TODO(Babel 8): Remove this\nexport let legacyBabel7SyntaxPlugins: Set;\n\nif (!process.env.BABEL_8_BREAKING) {\n /* eslint-disable no-restricted-globals */\n\n Object.assign(minVersions, {\n \"bugfix/transform-safari-id-destructuring-collision-in-function-expression\":\n \"7.16.0\",\n \"bugfix/transform-v8-static-class-fields-redefine-readonly\": \"7.12.0\",\n \"syntax-import-attributes\": \"7.22.0\",\n \"transform-class-static-block\": \"7.12.0\",\n \"transform-private-property-in-object\": \"7.10.0\",\n });\n\n // We cannot use the require call in ESM and when bundling.\n // Babel standalone uses a modern parser, so just include a noop plugin.\n // Use `bind` so that it's not detected as a duplicate plugin when using it.\n\n // This is a factory to create a function that returns a no-op plugn\n const e = () => () => () => ({});\n\n const legacyBabel7SyntaxPluginsLoaders = {\n \"syntax-async-generators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-async-generators\"),\n \"syntax-class-properties\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-properties\"),\n \"syntax-class-static-block\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-class-static-block\"),\n \"syntax-dynamic-import\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-dynamic-import\"),\n \"syntax-export-namespace-from\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-export-namespace-from\"),\n \"syntax-import-meta\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-import-meta\"),\n \"syntax-json-strings\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-json-strings\"),\n \"syntax-logical-assignment-operators\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-logical-assignment-operators\"),\n \"syntax-nullish-coalescing-operator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-nullish-coalescing-operator\"),\n \"syntax-numeric-separator\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-numeric-separator\"),\n \"syntax-object-rest-spread\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-object-rest-spread\"),\n \"syntax-optional-catch-binding\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-catch-binding\"),\n \"syntax-optional-chaining\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-optional-chaining\"),\n \"syntax-private-property-in-object\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-private-property-in-object\"),\n \"syntax-top-level-await\":\n USE_ESM || IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-top-level-await\"),\n };\n\n // This is a CJS plugin that depends on a package from the monorepo, so it\n // breaks using ESM. Given that ESM builds are new enough to have this\n // syntax enabled by default, we can safely skip enabling it.\n if (!USE_ESM) {\n // @ts-expect-error unknown key\n legacyBabel7SyntaxPluginsLoaders[\"unicode-sets-regex\"] = IS_STANDALONE\n ? e()\n : () => require(\"@babel/plugin-syntax-unicode-sets-regex\");\n }\n\n Object.assign(availablePlugins, legacyBabel7SyntaxPluginsLoaders);\n\n legacyBabel7SyntaxPlugins = new Set(\n Object.keys(legacyBabel7SyntaxPluginsLoaders),\n );\n}\n","import semver from \"semver\";\nimport { minVersions, legacyBabel7SyntaxPlugins } from \"./available-plugins.ts\";\n\nexport function addProposalSyntaxPlugins(\n items: Set,\n proposalSyntaxPlugins: readonly string[],\n) {\n proposalSyntaxPlugins.forEach(plugin => {\n items.add(plugin);\n });\n}\nexport function removeUnnecessaryItems(\n items: Set,\n overlapping: { [name: string]: string[] },\n) {\n items.forEach(item => {\n overlapping[item]?.forEach(name => items.delete(name));\n });\n}\nexport function removeUnsupportedItems(\n items: Set,\n babelVersion: string,\n) {\n items.forEach(item => {\n if (\n Object.hasOwn(minVersions, item) &&\n semver.lt(\n babelVersion,\n // @ts-expect-error we have checked minVersions[item] in has call\n minVersions[item],\n )\n ) {\n items.delete(item);\n } else if (\n !process.env.BABEL_8_BREAKING &&\n babelVersion[0] === \"8\" &&\n legacyBabel7SyntaxPlugins.has(item)\n ) {\n items.delete(item);\n }\n });\n}\n","type AvailablePlugins = typeof import(\"./available-plugins\").default;\n\nexport default {\n amd: \"transform-modules-amd\",\n commonjs: \"transform-modules-commonjs\",\n cjs: \"transform-modules-commonjs\",\n systemjs: \"transform-modules-systemjs\",\n umd: \"transform-modules-umd\",\n} as { [transform: string]: keyof AvailablePlugins };\n","module.exports = require(\"./data/plugin-bugfixes.json\");\n","module.exports = require(\"./data/overlapping-plugins.json\");\n","import originalPlugins from \"@babel/compat-data/plugins\";\nimport originalPluginsBugfixes from \"@babel/compat-data/plugin-bugfixes\";\nimport originalOverlappingPlugins from \"@babel/compat-data/overlapping-plugins\";\nimport availablePlugins from \"./available-plugins.ts\";\n\nconst keys: (o: O) => (keyof O)[] = Object.keys;\n\nexport const plugins = filterAvailable(originalPlugins);\nexport const pluginsBugfixes = filterAvailable(originalPluginsBugfixes);\nexport const overlappingPlugins = filterAvailable(originalOverlappingPlugins);\n\n// @ts-expect-error: we extend this here, since it's a syntax plugin and thus\n// doesn't make sense to store it in a compat-data package.\noverlappingPlugins[\"syntax-import-attributes\"] = [\"syntax-import-assertions\"];\n\nfunction filterAvailable(\n data: Data,\n): { [Name in keyof Data & keyof typeof availablePlugins]: Data[Name] } {\n const result = {} as any;\n for (const plugin of keys(data)) {\n if (Object.hasOwn(availablePlugins, plugin)) {\n result[plugin] = data[plugin];\n }\n }\n return result;\n}\n","export const TopLevelOptions = {\n bugfixes: \"bugfixes\",\n configPath: \"configPath\",\n corejs: \"corejs\",\n debug: \"debug\",\n exclude: \"exclude\",\n forceAllTransforms: \"forceAllTransforms\",\n ignoreBrowserslistConfig: \"ignoreBrowserslistConfig\",\n include: \"include\",\n modules: \"modules\",\n shippedProposals: \"shippedProposals\",\n targets: \"targets\",\n useBuiltIns: \"useBuiltIns\",\n browserslistEnv: \"browserslistEnv\",\n} as const;\n\nif (!process.env.BABEL_8_BREAKING) {\n Object.assign(TopLevelOptions, {\n loose: \"loose\",\n spec: \"spec\",\n });\n}\n\nexport const ModulesOption = {\n false: false,\n auto: \"auto\",\n amd: \"amd\",\n commonjs: \"commonjs\",\n cjs: \"cjs\",\n systemjs: \"systemjs\",\n umd: \"umd\",\n} as const;\n\nexport const UseBuiltInsOption = {\n false: false,\n entry: \"entry\",\n usage: \"usage\",\n} as const;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.StaticProperties = exports.InstanceProperties = exports.CommonIterators = exports.BuiltIns = void 0;\nvar _corejs2BuiltIns = _interopRequireDefault(require(\"@babel/compat-data/corejs2-built-ins\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst define = (name, pure, global = [], meta) => {\n return {\n name,\n pure,\n global,\n meta\n };\n};\nconst pureAndGlobal = (pure, global, minRuntimeVersion = null) => define(global[0], pure, global, {\n minRuntimeVersion\n});\nconst globalOnly = global => define(global[0], null, global);\nconst pureOnly = (pure, name) => define(name, pure, []);\nconst ArrayNatureIterators = [\"es6.object.to-string\", \"es6.array.iterator\", \"web.dom.iterable\"];\nconst CommonIterators = [\"es6.string.iterator\", ...ArrayNatureIterators];\nexports.CommonIterators = CommonIterators;\nconst PromiseDependencies = [\"es6.object.to-string\", \"es6.promise\"];\nconst BuiltIns = {\n DataView: globalOnly([\"es6.typed.data-view\"]),\n Float32Array: globalOnly([\"es6.typed.float32-array\"]),\n Float64Array: globalOnly([\"es6.typed.float64-array\"]),\n Int8Array: globalOnly([\"es6.typed.int8-array\"]),\n Int16Array: globalOnly([\"es6.typed.int16-array\"]),\n Int32Array: globalOnly([\"es6.typed.int32-array\"]),\n Map: pureAndGlobal(\"map\", [\"es6.map\", ...CommonIterators]),\n Number: globalOnly([\"es6.number.constructor\"]),\n Promise: pureAndGlobal(\"promise\", PromiseDependencies),\n RegExp: globalOnly([\"es6.regexp.constructor\"]),\n Set: pureAndGlobal(\"set\", [\"es6.set\", ...CommonIterators]),\n Symbol: pureAndGlobal(\"symbol/index\", [\"es6.symbol\"]),\n Uint8Array: globalOnly([\"es6.typed.uint8-array\"]),\n Uint8ClampedArray: globalOnly([\"es6.typed.uint8-clamped-array\"]),\n Uint16Array: globalOnly([\"es6.typed.uint16-array\"]),\n Uint32Array: globalOnly([\"es6.typed.uint32-array\"]),\n WeakMap: pureAndGlobal(\"weak-map\", [\"es6.weak-map\", ...CommonIterators]),\n WeakSet: pureAndGlobal(\"weak-set\", [\"es6.weak-set\", ...CommonIterators]),\n setImmediate: pureOnly(\"set-immediate\", \"web.immediate\"),\n clearImmediate: pureOnly(\"clear-immediate\", \"web.immediate\"),\n parseFloat: pureOnly(\"parse-float\", \"es6.parse-float\"),\n parseInt: pureOnly(\"parse-int\", \"es6.parse-int\")\n};\nexports.BuiltIns = BuiltIns;\nconst InstanceProperties = {\n __defineGetter__: globalOnly([\"es7.object.define-getter\"]),\n __defineSetter__: globalOnly([\"es7.object.define-setter\"]),\n __lookupGetter__: globalOnly([\"es7.object.lookup-getter\"]),\n __lookupSetter__: globalOnly([\"es7.object.lookup-setter\"]),\n anchor: globalOnly([\"es6.string.anchor\"]),\n big: globalOnly([\"es6.string.big\"]),\n bind: globalOnly([\"es6.function.bind\"]),\n blink: globalOnly([\"es6.string.blink\"]),\n bold: globalOnly([\"es6.string.bold\"]),\n codePointAt: globalOnly([\"es6.string.code-point-at\"]),\n copyWithin: globalOnly([\"es6.array.copy-within\"]),\n endsWith: globalOnly([\"es6.string.ends-with\"]),\n entries: globalOnly(ArrayNatureIterators),\n every: globalOnly([\"es6.array.every\"]),\n fill: globalOnly([\"es6.array.fill\"]),\n filter: globalOnly([\"es6.array.filter\"]),\n finally: globalOnly([\"es7.promise.finally\", ...PromiseDependencies]),\n find: globalOnly([\"es6.array.find\"]),\n findIndex: globalOnly([\"es6.array.find-index\"]),\n fixed: globalOnly([\"es6.string.fixed\"]),\n flags: globalOnly([\"es6.regexp.flags\"]),\n flatMap: globalOnly([\"es7.array.flat-map\"]),\n fontcolor: globalOnly([\"es6.string.fontcolor\"]),\n fontsize: globalOnly([\"es6.string.fontsize\"]),\n forEach: globalOnly([\"es6.array.for-each\"]),\n includes: globalOnly([\"es6.string.includes\", \"es7.array.includes\"]),\n indexOf: globalOnly([\"es6.array.index-of\"]),\n italics: globalOnly([\"es6.string.italics\"]),\n keys: globalOnly(ArrayNatureIterators),\n lastIndexOf: globalOnly([\"es6.array.last-index-of\"]),\n link: globalOnly([\"es6.string.link\"]),\n map: globalOnly([\"es6.array.map\"]),\n match: globalOnly([\"es6.regexp.match\"]),\n name: globalOnly([\"es6.function.name\"]),\n padStart: globalOnly([\"es7.string.pad-start\"]),\n padEnd: globalOnly([\"es7.string.pad-end\"]),\n reduce: globalOnly([\"es6.array.reduce\"]),\n reduceRight: globalOnly([\"es6.array.reduce-right\"]),\n repeat: globalOnly([\"es6.string.repeat\"]),\n replace: globalOnly([\"es6.regexp.replace\"]),\n search: globalOnly([\"es6.regexp.search\"]),\n small: globalOnly([\"es6.string.small\"]),\n some: globalOnly([\"es6.array.some\"]),\n sort: globalOnly([\"es6.array.sort\"]),\n split: globalOnly([\"es6.regexp.split\"]),\n startsWith: globalOnly([\"es6.string.starts-with\"]),\n strike: globalOnly([\"es6.string.strike\"]),\n sub: globalOnly([\"es6.string.sub\"]),\n sup: globalOnly([\"es6.string.sup\"]),\n toISOString: globalOnly([\"es6.date.to-iso-string\"]),\n toJSON: globalOnly([\"es6.date.to-json\"]),\n toString: globalOnly([\"es6.object.to-string\", \"es6.date.to-string\", \"es6.regexp.to-string\"]),\n trim: globalOnly([\"es6.string.trim\"]),\n trimEnd: globalOnly([\"es7.string.trim-right\"]),\n trimLeft: globalOnly([\"es7.string.trim-left\"]),\n trimRight: globalOnly([\"es7.string.trim-right\"]),\n trimStart: globalOnly([\"es7.string.trim-left\"]),\n values: globalOnly(ArrayNatureIterators)\n};\n\n// This isn't present in older @babel/compat-data versions\nexports.InstanceProperties = InstanceProperties;\nif (\"es6.array.slice\" in _corejs2BuiltIns.default) {\n InstanceProperties.slice = globalOnly([\"es6.array.slice\"]);\n}\nconst StaticProperties = {\n Array: {\n from: pureAndGlobal(\"array/from\", [\"es6.symbol\", \"es6.array.from\", ...CommonIterators]),\n isArray: pureAndGlobal(\"array/is-array\", [\"es6.array.is-array\"]),\n of: pureAndGlobal(\"array/of\", [\"es6.array.of\"])\n },\n Date: {\n now: pureAndGlobal(\"date/now\", [\"es6.date.now\"])\n },\n JSON: {\n stringify: pureOnly(\"json/stringify\", \"es6.symbol\")\n },\n Math: {\n // 'Math' was not included in the 7.0.0\n // release of '@babel/runtime'. See issue https://github.com/babel/babel/pull/8616.\n acosh: pureAndGlobal(\"math/acosh\", [\"es6.math.acosh\"], \"7.0.1\"),\n asinh: pureAndGlobal(\"math/asinh\", [\"es6.math.asinh\"], \"7.0.1\"),\n atanh: pureAndGlobal(\"math/atanh\", [\"es6.math.atanh\"], \"7.0.1\"),\n cbrt: pureAndGlobal(\"math/cbrt\", [\"es6.math.cbrt\"], \"7.0.1\"),\n clz32: pureAndGlobal(\"math/clz32\", [\"es6.math.clz32\"], \"7.0.1\"),\n cosh: pureAndGlobal(\"math/cosh\", [\"es6.math.cosh\"], \"7.0.1\"),\n expm1: pureAndGlobal(\"math/expm1\", [\"es6.math.expm1\"], \"7.0.1\"),\n fround: pureAndGlobal(\"math/fround\", [\"es6.math.fround\"], \"7.0.1\"),\n hypot: pureAndGlobal(\"math/hypot\", [\"es6.math.hypot\"], \"7.0.1\"),\n imul: pureAndGlobal(\"math/imul\", [\"es6.math.imul\"], \"7.0.1\"),\n log1p: pureAndGlobal(\"math/log1p\", [\"es6.math.log1p\"], \"7.0.1\"),\n log10: pureAndGlobal(\"math/log10\", [\"es6.math.log10\"], \"7.0.1\"),\n log2: pureAndGlobal(\"math/log2\", [\"es6.math.log2\"], \"7.0.1\"),\n sign: pureAndGlobal(\"math/sign\", [\"es6.math.sign\"], \"7.0.1\"),\n sinh: pureAndGlobal(\"math/sinh\", [\"es6.math.sinh\"], \"7.0.1\"),\n tanh: pureAndGlobal(\"math/tanh\", [\"es6.math.tanh\"], \"7.0.1\"),\n trunc: pureAndGlobal(\"math/trunc\", [\"es6.math.trunc\"], \"7.0.1\")\n },\n Number: {\n EPSILON: pureAndGlobal(\"number/epsilon\", [\"es6.number.epsilon\"]),\n MIN_SAFE_INTEGER: pureAndGlobal(\"number/min-safe-integer\", [\"es6.number.min-safe-integer\"]),\n MAX_SAFE_INTEGER: pureAndGlobal(\"number/max-safe-integer\", [\"es6.number.max-safe-integer\"]),\n isFinite: pureAndGlobal(\"number/is-finite\", [\"es6.number.is-finite\"]),\n isInteger: pureAndGlobal(\"number/is-integer\", [\"es6.number.is-integer\"]),\n isSafeInteger: pureAndGlobal(\"number/is-safe-integer\", [\"es6.number.is-safe-integer\"]),\n isNaN: pureAndGlobal(\"number/is-nan\", [\"es6.number.is-nan\"]),\n parseFloat: pureAndGlobal(\"number/parse-float\", [\"es6.number.parse-float\"]),\n parseInt: pureAndGlobal(\"number/parse-int\", [\"es6.number.parse-int\"])\n },\n Object: {\n assign: pureAndGlobal(\"object/assign\", [\"es6.object.assign\"]),\n create: pureAndGlobal(\"object/create\", [\"es6.object.create\"]),\n defineProperties: pureAndGlobal(\"object/define-properties\", [\"es6.object.define-properties\"]),\n defineProperty: pureAndGlobal(\"object/define-property\", [\"es6.object.define-property\"]),\n entries: pureAndGlobal(\"object/entries\", [\"es7.object.entries\"]),\n freeze: pureAndGlobal(\"object/freeze\", [\"es6.object.freeze\"]),\n getOwnPropertyDescriptor: pureAndGlobal(\"object/get-own-property-descriptor\", [\"es6.object.get-own-property-descriptor\"]),\n getOwnPropertyDescriptors: pureAndGlobal(\"object/get-own-property-descriptors\", [\"es7.object.get-own-property-descriptors\"]),\n getOwnPropertyNames: pureAndGlobal(\"object/get-own-property-names\", [\"es6.object.get-own-property-names\"]),\n getOwnPropertySymbols: pureAndGlobal(\"object/get-own-property-symbols\", [\"es6.symbol\"]),\n getPrototypeOf: pureAndGlobal(\"object/get-prototype-of\", [\"es6.object.get-prototype-of\"]),\n is: pureAndGlobal(\"object/is\", [\"es6.object.is\"]),\n isExtensible: pureAndGlobal(\"object/is-extensible\", [\"es6.object.is-extensible\"]),\n isFrozen: pureAndGlobal(\"object/is-frozen\", [\"es6.object.is-frozen\"]),\n isSealed: pureAndGlobal(\"object/is-sealed\", [\"es6.object.is-sealed\"]),\n keys: pureAndGlobal(\"object/keys\", [\"es6.object.keys\"]),\n preventExtensions: pureAndGlobal(\"object/prevent-extensions\", [\"es6.object.prevent-extensions\"]),\n seal: pureAndGlobal(\"object/seal\", [\"es6.object.seal\"]),\n setPrototypeOf: pureAndGlobal(\"object/set-prototype-of\", [\"es6.object.set-prototype-of\"]),\n values: pureAndGlobal(\"object/values\", [\"es7.object.values\"])\n },\n Promise: {\n all: globalOnly(CommonIterators),\n race: globalOnly(CommonIterators)\n },\n Reflect: {\n apply: pureAndGlobal(\"reflect/apply\", [\"es6.reflect.apply\"]),\n construct: pureAndGlobal(\"reflect/construct\", [\"es6.reflect.construct\"]),\n defineProperty: pureAndGlobal(\"reflect/define-property\", [\"es6.reflect.define-property\"]),\n deleteProperty: pureAndGlobal(\"reflect/delete-property\", [\"es6.reflect.delete-property\"]),\n get: pureAndGlobal(\"reflect/get\", [\"es6.reflect.get\"]),\n getOwnPropertyDescriptor: pureAndGlobal(\"reflect/get-own-property-descriptor\", [\"es6.reflect.get-own-property-descriptor\"]),\n getPrototypeOf: pureAndGlobal(\"reflect/get-prototype-of\", [\"es6.reflect.get-prototype-of\"]),\n has: pureAndGlobal(\"reflect/has\", [\"es6.reflect.has\"]),\n isExtensible: pureAndGlobal(\"reflect/is-extensible\", [\"es6.reflect.is-extensible\"]),\n ownKeys: pureAndGlobal(\"reflect/own-keys\", [\"es6.reflect.own-keys\"]),\n preventExtensions: pureAndGlobal(\"reflect/prevent-extensions\", [\"es6.reflect.prevent-extensions\"]),\n set: pureAndGlobal(\"reflect/set\", [\"es6.reflect.set\"]),\n setPrototypeOf: pureAndGlobal(\"reflect/set-prototype-of\", [\"es6.reflect.set-prototype-of\"])\n },\n String: {\n at: pureOnly(\"string/at\", \"es7.string.at\"),\n fromCodePoint: pureAndGlobal(\"string/from-code-point\", [\"es6.string.from-code-point\"]),\n raw: pureAndGlobal(\"string/raw\", [\"es6.string.raw\"])\n },\n Symbol: {\n // FIXME: Pure disabled to work around zloirock/core-js#262.\n asyncIterator: globalOnly([\"es6.symbol\", \"es7.symbol.async-iterator\"]),\n for: pureOnly(\"symbol/for\", \"es6.symbol\"),\n hasInstance: pureOnly(\"symbol/has-instance\", \"es6.symbol\"),\n isConcatSpreadable: pureOnly(\"symbol/is-concat-spreadable\", \"es6.symbol\"),\n iterator: define(\"es6.symbol\", \"symbol/iterator\", CommonIterators),\n keyFor: pureOnly(\"symbol/key-for\", \"es6.symbol\"),\n match: pureAndGlobal(\"symbol/match\", [\"es6.regexp.match\"]),\n replace: pureOnly(\"symbol/replace\", \"es6.symbol\"),\n search: pureOnly(\"symbol/search\", \"es6.symbol\"),\n species: pureOnly(\"symbol/species\", \"es6.symbol\"),\n split: pureOnly(\"symbol/split\", \"es6.symbol\"),\n toPrimitive: pureOnly(\"symbol/to-primitive\", \"es6.symbol\"),\n toStringTag: pureOnly(\"symbol/to-string-tag\", \"es6.symbol\"),\n unscopables: pureOnly(\"symbol/unscopables\", \"es6.symbol\")\n }\n};\nexports.StaticProperties = StaticProperties;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = _default;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nconst webPolyfills = {\n \"web.timers\": {},\n \"web.immediate\": {},\n \"web.dom.iterable\": {}\n};\nconst purePolyfills = {\n \"es6.parse-float\": {},\n \"es6.parse-int\": {},\n \"es7.string.at\": {}\n};\nfunction _default(targets, method, polyfills) {\n const targetNames = Object.keys(targets);\n const isAnyTarget = !targetNames.length;\n const isWebTarget = targetNames.some(name => name !== \"node\");\n return _extends({}, polyfills, method === \"usage-pure\" ? purePolyfills : null, isAnyTarget || isWebTarget ? webPolyfills : null);\n}","exports = module.exports = SemVer\n\nvar debug\n/* istanbul ignore next */\nif (typeof process === 'object' &&\n process.env &&\n process.env.NODE_DEBUG &&\n /\\bsemver\\b/i.test(process.env.NODE_DEBUG)) {\n debug = function () {\n var args = Array.prototype.slice.call(arguments, 0)\n args.unshift('SEMVER')\n console.log.apply(console, args)\n }\n} else {\n debug = function () {}\n}\n\n// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nexports.SEMVER_SPEC_VERSION = '2.0.0'\n\nvar MAX_LENGTH = 256\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n /* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nvar MAX_SAFE_COMPONENT_LENGTH = 16\n\nvar MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\n// The actual regexps go on exports.re\nvar re = exports.re = []\nvar safeRe = exports.safeRe = []\nvar src = exports.src = []\nvar t = exports.tokens = {}\nvar R = 0\n\nfunction tok (n) {\n t[n] = R++\n}\n\nvar LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nvar safeRegexReplacements = [\n ['\\\\s', 1],\n ['\\\\d', MAX_LENGTH],\n [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nfunction makeSafeRe (value) {\n for (var i = 0; i < safeRegexReplacements.length; i++) {\n var token = safeRegexReplacements[i][0]\n var max = safeRegexReplacements[i][1]\n value = value\n .split(token + '*').join(token + '{0,' + max + '}')\n .split(token + '+').join(token + '{1,' + max + '}')\n }\n return value\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ntok('NUMERICIDENTIFIER')\nsrc[t.NUMERICIDENTIFIER] = '0|[1-9]\\\\d*'\ntok('NUMERICIDENTIFIERLOOSE')\nsrc[t.NUMERICIDENTIFIERLOOSE] = '\\\\d+'\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ntok('NONNUMERICIDENTIFIER')\nsrc[t.NONNUMERICIDENTIFIER] = '\\\\d*[a-zA-Z-]' + LETTERDASHNUMBER + '*'\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ntok('MAINVERSION')\nsrc[t.MAINVERSION] = '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIER] + ')'\n\ntok('MAINVERSIONLOOSE')\nsrc[t.MAINVERSIONLOOSE] = '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')\\\\.' +\n '(' + src[t.NUMERICIDENTIFIERLOOSE] + ')'\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ntok('PRERELEASEIDENTIFIER')\nsrc[t.PRERELEASEIDENTIFIER] = '(?:' + src[t.NUMERICIDENTIFIER] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\ntok('PRERELEASEIDENTIFIERLOOSE')\nsrc[t.PRERELEASEIDENTIFIERLOOSE] = '(?:' + src[t.NUMERICIDENTIFIERLOOSE] +\n '|' + src[t.NONNUMERICIDENTIFIER] + ')'\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ntok('PRERELEASE')\nsrc[t.PRERELEASE] = '(?:-(' + src[t.PRERELEASEIDENTIFIER] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIER] + ')*))'\n\ntok('PRERELEASELOOSE')\nsrc[t.PRERELEASELOOSE] = '(?:-?(' + src[t.PRERELEASEIDENTIFIERLOOSE] +\n '(?:\\\\.' + src[t.PRERELEASEIDENTIFIERLOOSE] + ')*))'\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ntok('BUILDIDENTIFIER')\nsrc[t.BUILDIDENTIFIER] = LETTERDASHNUMBER + '+'\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ntok('BUILD')\nsrc[t.BUILD] = '(?:\\\\+(' + src[t.BUILDIDENTIFIER] +\n '(?:\\\\.' + src[t.BUILDIDENTIFIER] + ')*))'\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups. The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ntok('FULL')\ntok('FULLPLAIN')\nsrc[t.FULLPLAIN] = 'v?' + src[t.MAINVERSION] +\n src[t.PRERELEASE] + '?' +\n src[t.BUILD] + '?'\n\nsrc[t.FULL] = '^' + src[t.FULLPLAIN] + '$'\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ntok('LOOSEPLAIN')\nsrc[t.LOOSEPLAIN] = '[v=\\\\s]*' + src[t.MAINVERSIONLOOSE] +\n src[t.PRERELEASELOOSE] + '?' +\n src[t.BUILD] + '?'\n\ntok('LOOSE')\nsrc[t.LOOSE] = '^' + src[t.LOOSEPLAIN] + '$'\n\ntok('GTLT')\nsrc[t.GTLT] = '((?:<|>)?=?)'\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ntok('XRANGEIDENTIFIERLOOSE')\nsrc[t.XRANGEIDENTIFIERLOOSE] = src[t.NUMERICIDENTIFIERLOOSE] + '|x|X|\\\\*'\ntok('XRANGEIDENTIFIER')\nsrc[t.XRANGEIDENTIFIER] = src[t.NUMERICIDENTIFIER] + '|x|X|\\\\*'\n\ntok('XRANGEPLAIN')\nsrc[t.XRANGEPLAIN] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIER] + ')' +\n '(?:' + src[t.PRERELEASE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGEPLAINLOOSE')\nsrc[t.XRANGEPLAINLOOSE] = '[v=\\\\s]*(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:\\\\.(' + src[t.XRANGEIDENTIFIERLOOSE] + ')' +\n '(?:' + src[t.PRERELEASELOOSE] + ')?' +\n src[t.BUILD] + '?' +\n ')?)?'\n\ntok('XRANGE')\nsrc[t.XRANGE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAIN] + '$'\ntok('XRANGELOOSE')\nsrc[t.XRANGELOOSE] = '^' + src[t.GTLT] + '\\\\s*' + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ntok('COERCE')\nsrc[t.COERCE] = '(^|[^\\\\d])' +\n '(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '})' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:\\\\.(\\\\d{1,' + MAX_SAFE_COMPONENT_LENGTH + '}))?' +\n '(?:$|[^\\\\d])'\ntok('COERCERTL')\nre[t.COERCERTL] = new RegExp(src[t.COERCE], 'g')\nsafeRe[t.COERCERTL] = new RegExp(makeSafeRe(src[t.COERCE]), 'g')\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ntok('LONETILDE')\nsrc[t.LONETILDE] = '(?:~>?)'\n\ntok('TILDETRIM')\nsrc[t.TILDETRIM] = '(\\\\s*)' + src[t.LONETILDE] + '\\\\s+'\nre[t.TILDETRIM] = new RegExp(src[t.TILDETRIM], 'g')\nsafeRe[t.TILDETRIM] = new RegExp(makeSafeRe(src[t.TILDETRIM]), 'g')\nvar tildeTrimReplace = '$1~'\n\ntok('TILDE')\nsrc[t.TILDE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAIN] + '$'\ntok('TILDELOOSE')\nsrc[t.TILDELOOSE] = '^' + src[t.LONETILDE] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ntok('LONECARET')\nsrc[t.LONECARET] = '(?:\\\\^)'\n\ntok('CARETTRIM')\nsrc[t.CARETTRIM] = '(\\\\s*)' + src[t.LONECARET] + '\\\\s+'\nre[t.CARETTRIM] = new RegExp(src[t.CARETTRIM], 'g')\nsafeRe[t.CARETTRIM] = new RegExp(makeSafeRe(src[t.CARETTRIM]), 'g')\nvar caretTrimReplace = '$1^'\n\ntok('CARET')\nsrc[t.CARET] = '^' + src[t.LONECARET] + src[t.XRANGEPLAIN] + '$'\ntok('CARETLOOSE')\nsrc[t.CARETLOOSE] = '^' + src[t.LONECARET] + src[t.XRANGEPLAINLOOSE] + '$'\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ntok('COMPARATORLOOSE')\nsrc[t.COMPARATORLOOSE] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.LOOSEPLAIN] + ')$|^$'\ntok('COMPARATOR')\nsrc[t.COMPARATOR] = '^' + src[t.GTLT] + '\\\\s*(' + src[t.FULLPLAIN] + ')$|^$'\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ntok('COMPARATORTRIM')\nsrc[t.COMPARATORTRIM] = '(\\\\s*)' + src[t.GTLT] +\n '\\\\s*(' + src[t.LOOSEPLAIN] + '|' + src[t.XRANGEPLAIN] + ')'\n\n// this one has to use the /g flag\nre[t.COMPARATORTRIM] = new RegExp(src[t.COMPARATORTRIM], 'g')\nsafeRe[t.COMPARATORTRIM] = new RegExp(makeSafeRe(src[t.COMPARATORTRIM]), 'g')\nvar comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ntok('HYPHENRANGE')\nsrc[t.HYPHENRANGE] = '^\\\\s*(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAIN] + ')' +\n '\\\\s*$'\n\ntok('HYPHENRANGELOOSE')\nsrc[t.HYPHENRANGELOOSE] = '^\\\\s*(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s+-\\\\s+' +\n '(' + src[t.XRANGEPLAINLOOSE] + ')' +\n '\\\\s*$'\n\n// Star ranges basically just allow anything at all.\ntok('STAR')\nsrc[t.STAR] = '(<|>)?=?\\\\s*\\\\*'\n\n// Compile to actual regexp objects.\n// All are flag-free, unless they were created above with a flag.\nfor (var i = 0; i < R; i++) {\n debug(i, src[i])\n if (!re[i]) {\n re[i] = new RegExp(src[i])\n\n // Replace all greedy whitespace to prevent regex dos issues. These regex are\n // used internally via the safeRe object since all inputs in this library get\n // normalized first to trim and collapse all extra whitespace. The original\n // regexes are exported for userland consumption and lower level usage. A\n // future breaking change could export the safer regex only with a note that\n // all input should have extra whitespace removed.\n safeRe[i] = new RegExp(makeSafeRe(src[i]))\n }\n}\n\nexports.parse = parse\nfunction parse (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n if (version.length > MAX_LENGTH) {\n return null\n }\n\n var r = options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL]\n if (!r.test(version)) {\n return null\n }\n\n try {\n return new SemVer(version, options)\n } catch (er) {\n return null\n }\n}\n\nexports.valid = valid\nfunction valid (version, options) {\n var v = parse(version, options)\n return v ? v.version : null\n}\n\nexports.clean = clean\nfunction clean (version, options) {\n var s = parse(version.trim().replace(/^[=v]+/, ''), options)\n return s ? s.version : null\n}\n\nexports.SemVer = SemVer\n\nfunction SemVer (version, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n if (version instanceof SemVer) {\n if (version.loose === options.loose) {\n return version\n } else {\n version = version.version\n }\n } else if (typeof version !== 'string') {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n if (version.length > MAX_LENGTH) {\n throw new TypeError('version is longer than ' + MAX_LENGTH + ' characters')\n }\n\n if (!(this instanceof SemVer)) {\n return new SemVer(version, options)\n }\n\n debug('SemVer', version, options)\n this.options = options\n this.loose = !!options.loose\n\n var m = version.trim().match(options.loose ? safeRe[t.LOOSE] : safeRe[t.FULL])\n\n if (!m) {\n throw new TypeError('Invalid Version: ' + version)\n }\n\n this.raw = version\n\n // these are actually numbers\n this.major = +m[1]\n this.minor = +m[2]\n this.patch = +m[3]\n\n if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n throw new TypeError('Invalid major version')\n }\n\n if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n throw new TypeError('Invalid minor version')\n }\n\n if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n throw new TypeError('Invalid patch version')\n }\n\n // numberify any prerelease numeric ids\n if (!m[4]) {\n this.prerelease = []\n } else {\n this.prerelease = m[4].split('.').map(function (id) {\n if (/^[0-9]+$/.test(id)) {\n var num = +id\n if (num >= 0 && num < MAX_SAFE_INTEGER) {\n return num\n }\n }\n return id\n })\n }\n\n this.build = m[5] ? m[5].split('.') : []\n this.format()\n}\n\nSemVer.prototype.format = function () {\n this.version = this.major + '.' + this.minor + '.' + this.patch\n if (this.prerelease.length) {\n this.version += '-' + this.prerelease.join('.')\n }\n return this.version\n}\n\nSemVer.prototype.toString = function () {\n return this.version\n}\n\nSemVer.prototype.compare = function (other) {\n debug('SemVer.compare', this.version, this.options, other)\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return this.compareMain(other) || this.comparePre(other)\n}\n\nSemVer.prototype.compareMain = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n return compareIdentifiers(this.major, other.major) ||\n compareIdentifiers(this.minor, other.minor) ||\n compareIdentifiers(this.patch, other.patch)\n}\n\nSemVer.prototype.comparePre = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n // NOT having a prerelease is > having one\n if (this.prerelease.length && !other.prerelease.length) {\n return -1\n } else if (!this.prerelease.length && other.prerelease.length) {\n return 1\n } else if (!this.prerelease.length && !other.prerelease.length) {\n return 0\n }\n\n var i = 0\n do {\n var a = this.prerelease[i]\n var b = other.prerelease[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\nSemVer.prototype.compareBuild = function (other) {\n if (!(other instanceof SemVer)) {\n other = new SemVer(other, this.options)\n }\n\n var i = 0\n do {\n var a = this.build[i]\n var b = other.build[i]\n debug('prerelease compare', i, a, b)\n if (a === undefined && b === undefined) {\n return 0\n } else if (b === undefined) {\n return 1\n } else if (a === undefined) {\n return -1\n } else if (a === b) {\n continue\n } else {\n return compareIdentifiers(a, b)\n }\n } while (++i)\n}\n\n// preminor will bump the version up to the next minor release, and immediately\n// down to pre-release. premajor and prepatch work the same way.\nSemVer.prototype.inc = function (release, identifier) {\n switch (release) {\n case 'premajor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor = 0\n this.major++\n this.inc('pre', identifier)\n break\n case 'preminor':\n this.prerelease.length = 0\n this.patch = 0\n this.minor++\n this.inc('pre', identifier)\n break\n case 'prepatch':\n // If this is already a prerelease, it will bump to the next version\n // drop any prereleases that might already exist, since they are not\n // relevant at this point.\n this.prerelease.length = 0\n this.inc('patch', identifier)\n this.inc('pre', identifier)\n break\n // If the input is a non-prerelease version, this acts the same as\n // prepatch.\n case 'prerelease':\n if (this.prerelease.length === 0) {\n this.inc('patch', identifier)\n }\n this.inc('pre', identifier)\n break\n\n case 'major':\n // If this is a pre-major version, bump up to the same major version.\n // Otherwise increment major.\n // 1.0.0-5 bumps to 1.0.0\n // 1.1.0 bumps to 2.0.0\n if (this.minor !== 0 ||\n this.patch !== 0 ||\n this.prerelease.length === 0) {\n this.major++\n }\n this.minor = 0\n this.patch = 0\n this.prerelease = []\n break\n case 'minor':\n // If this is a pre-minor version, bump up to the same minor version.\n // Otherwise increment minor.\n // 1.2.0-5 bumps to 1.2.0\n // 1.2.1 bumps to 1.3.0\n if (this.patch !== 0 || this.prerelease.length === 0) {\n this.minor++\n }\n this.patch = 0\n this.prerelease = []\n break\n case 'patch':\n // If this is not a pre-release version, it will increment the patch.\n // If it is a pre-release it will bump up to the same patch version.\n // 1.2.0-5 patches to 1.2.0\n // 1.2.0 patches to 1.2.1\n if (this.prerelease.length === 0) {\n this.patch++\n }\n this.prerelease = []\n break\n // This probably shouldn't be used publicly.\n // 1.0.0 \"pre\" would become 1.0.0-0 which is the wrong direction.\n case 'pre':\n if (this.prerelease.length === 0) {\n this.prerelease = [0]\n } else {\n var i = this.prerelease.length\n while (--i >= 0) {\n if (typeof this.prerelease[i] === 'number') {\n this.prerelease[i]++\n i = -2\n }\n }\n if (i === -1) {\n // didn't increment anything\n this.prerelease.push(0)\n }\n }\n if (identifier) {\n // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n if (this.prerelease[0] === identifier) {\n if (isNaN(this.prerelease[1])) {\n this.prerelease = [identifier, 0]\n }\n } else {\n this.prerelease = [identifier, 0]\n }\n }\n break\n\n default:\n throw new Error('invalid increment argument: ' + release)\n }\n this.format()\n this.raw = this.version\n return this\n}\n\nexports.inc = inc\nfunction inc (version, release, loose, identifier) {\n if (typeof (loose) === 'string') {\n identifier = loose\n loose = undefined\n }\n\n try {\n return new SemVer(version, loose).inc(release, identifier).version\n } catch (er) {\n return null\n }\n}\n\nexports.diff = diff\nfunction diff (version1, version2) {\n if (eq(version1, version2)) {\n return null\n } else {\n var v1 = parse(version1)\n var v2 = parse(version2)\n var prefix = ''\n if (v1.prerelease.length || v2.prerelease.length) {\n prefix = 'pre'\n var defaultResult = 'prerelease'\n }\n for (var key in v1) {\n if (key === 'major' || key === 'minor' || key === 'patch') {\n if (v1[key] !== v2[key]) {\n return prefix + key\n }\n }\n }\n return defaultResult // may be undefined\n }\n}\n\nexports.compareIdentifiers = compareIdentifiers\n\nvar numeric = /^[0-9]+$/\nfunction compareIdentifiers (a, b) {\n var anum = numeric.test(a)\n var bnum = numeric.test(b)\n\n if (anum && bnum) {\n a = +a\n b = +b\n }\n\n return a === b ? 0\n : (anum && !bnum) ? -1\n : (bnum && !anum) ? 1\n : a < b ? -1\n : 1\n}\n\nexports.rcompareIdentifiers = rcompareIdentifiers\nfunction rcompareIdentifiers (a, b) {\n return compareIdentifiers(b, a)\n}\n\nexports.major = major\nfunction major (a, loose) {\n return new SemVer(a, loose).major\n}\n\nexports.minor = minor\nfunction minor (a, loose) {\n return new SemVer(a, loose).minor\n}\n\nexports.patch = patch\nfunction patch (a, loose) {\n return new SemVer(a, loose).patch\n}\n\nexports.compare = compare\nfunction compare (a, b, loose) {\n return new SemVer(a, loose).compare(new SemVer(b, loose))\n}\n\nexports.compareLoose = compareLoose\nfunction compareLoose (a, b) {\n return compare(a, b, true)\n}\n\nexports.compareBuild = compareBuild\nfunction compareBuild (a, b, loose) {\n var versionA = new SemVer(a, loose)\n var versionB = new SemVer(b, loose)\n return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\n\nexports.rcompare = rcompare\nfunction rcompare (a, b, loose) {\n return compare(b, a, loose)\n}\n\nexports.sort = sort\nfunction sort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(a, b, loose)\n })\n}\n\nexports.rsort = rsort\nfunction rsort (list, loose) {\n return list.sort(function (a, b) {\n return exports.compareBuild(b, a, loose)\n })\n}\n\nexports.gt = gt\nfunction gt (a, b, loose) {\n return compare(a, b, loose) > 0\n}\n\nexports.lt = lt\nfunction lt (a, b, loose) {\n return compare(a, b, loose) < 0\n}\n\nexports.eq = eq\nfunction eq (a, b, loose) {\n return compare(a, b, loose) === 0\n}\n\nexports.neq = neq\nfunction neq (a, b, loose) {\n return compare(a, b, loose) !== 0\n}\n\nexports.gte = gte\nfunction gte (a, b, loose) {\n return compare(a, b, loose) >= 0\n}\n\nexports.lte = lte\nfunction lte (a, b, loose) {\n return compare(a, b, loose) <= 0\n}\n\nexports.cmp = cmp\nfunction cmp (a, op, b, loose) {\n switch (op) {\n case '===':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a === b\n\n case '!==':\n if (typeof a === 'object')\n a = a.version\n if (typeof b === 'object')\n b = b.version\n return a !== b\n\n case '':\n case '=':\n case '==':\n return eq(a, b, loose)\n\n case '!=':\n return neq(a, b, loose)\n\n case '>':\n return gt(a, b, loose)\n\n case '>=':\n return gte(a, b, loose)\n\n case '<':\n return lt(a, b, loose)\n\n case '<=':\n return lte(a, b, loose)\n\n default:\n throw new TypeError('Invalid operator: ' + op)\n }\n}\n\nexports.Comparator = Comparator\nfunction Comparator (comp, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (comp instanceof Comparator) {\n if (comp.loose === !!options.loose) {\n return comp\n } else {\n comp = comp.value\n }\n }\n\n if (!(this instanceof Comparator)) {\n return new Comparator(comp, options)\n }\n\n comp = comp.trim().split(/\\s+/).join(' ')\n debug('comparator', comp, options)\n this.options = options\n this.loose = !!options.loose\n this.parse(comp)\n\n if (this.semver === ANY) {\n this.value = ''\n } else {\n this.value = this.operator + this.semver.version\n }\n\n debug('comp', this)\n}\n\nvar ANY = {}\nComparator.prototype.parse = function (comp) {\n var r = this.options.loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var m = comp.match(r)\n\n if (!m) {\n throw new TypeError('Invalid comparator: ' + comp)\n }\n\n this.operator = m[1] !== undefined ? m[1] : ''\n if (this.operator === '=') {\n this.operator = ''\n }\n\n // if it literally is just '>' or '' then allow anything.\n if (!m[2]) {\n this.semver = ANY\n } else {\n this.semver = new SemVer(m[2], this.options.loose)\n }\n}\n\nComparator.prototype.toString = function () {\n return this.value\n}\n\nComparator.prototype.test = function (version) {\n debug('Comparator.test', version, this.options.loose)\n\n if (this.semver === ANY || version === ANY) {\n return true\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n return cmp(version, this.operator, this.semver, this.options)\n}\n\nComparator.prototype.intersects = function (comp, options) {\n if (!(comp instanceof Comparator)) {\n throw new TypeError('a Comparator is required')\n }\n\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n var rangeTmp\n\n if (this.operator === '') {\n if (this.value === '') {\n return true\n }\n rangeTmp = new Range(comp.value, options)\n return satisfies(this.value, rangeTmp, options)\n } else if (comp.operator === '') {\n if (comp.value === '') {\n return true\n }\n rangeTmp = new Range(this.value, options)\n return satisfies(comp.semver, rangeTmp, options)\n }\n\n var sameDirectionIncreasing =\n (this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '>=' || comp.operator === '>')\n var sameDirectionDecreasing =\n (this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '<=' || comp.operator === '<')\n var sameSemVer = this.semver.version === comp.semver.version\n var differentDirectionsInclusive =\n (this.operator === '>=' || this.operator === '<=') &&\n (comp.operator === '>=' || comp.operator === '<=')\n var oppositeDirectionsLessThan =\n cmp(this.semver, '<', comp.semver, options) &&\n ((this.operator === '>=' || this.operator === '>') &&\n (comp.operator === '<=' || comp.operator === '<'))\n var oppositeDirectionsGreaterThan =\n cmp(this.semver, '>', comp.semver, options) &&\n ((this.operator === '<=' || this.operator === '<') &&\n (comp.operator === '>=' || comp.operator === '>'))\n\n return sameDirectionIncreasing || sameDirectionDecreasing ||\n (sameSemVer && differentDirectionsInclusive) ||\n oppositeDirectionsLessThan || oppositeDirectionsGreaterThan\n}\n\nexports.Range = Range\nfunction Range (range, options) {\n if (!options || typeof options !== 'object') {\n options = {\n loose: !!options,\n includePrerelease: false\n }\n }\n\n if (range instanceof Range) {\n if (range.loose === !!options.loose &&\n range.includePrerelease === !!options.includePrerelease) {\n return range\n } else {\n return new Range(range.raw, options)\n }\n }\n\n if (range instanceof Comparator) {\n return new Range(range.value, options)\n }\n\n if (!(this instanceof Range)) {\n return new Range(range, options)\n }\n\n this.options = options\n this.loose = !!options.loose\n this.includePrerelease = !!options.includePrerelease\n\n // First reduce all whitespace as much as possible so we do not have to rely\n // on potentially slow regexes like \\s*. This is then stored and used for\n // future error messages as well.\n this.raw = range\n .trim()\n .split(/\\s+/)\n .join(' ')\n\n // First, split based on boolean or ||\n this.set = this.raw.split('||').map(function (range) {\n return this.parseRange(range.trim())\n }, this).filter(function (c) {\n // throw out any that are not relevant for whatever reason\n return c.length\n })\n\n if (!this.set.length) {\n throw new TypeError('Invalid SemVer Range: ' + this.raw)\n }\n\n this.format()\n}\n\nRange.prototype.format = function () {\n this.range = this.set.map(function (comps) {\n return comps.join(' ').trim()\n }).join('||').trim()\n return this.range\n}\n\nRange.prototype.toString = function () {\n return this.range\n}\n\nRange.prototype.parseRange = function (range) {\n var loose = this.options.loose\n // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n var hr = loose ? safeRe[t.HYPHENRANGELOOSE] : safeRe[t.HYPHENRANGE]\n range = range.replace(hr, hyphenReplace)\n debug('hyphen replace', range)\n // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n range = range.replace(safeRe[t.COMPARATORTRIM], comparatorTrimReplace)\n debug('comparator trim', range, safeRe[t.COMPARATORTRIM])\n\n // `~ 1.2.3` => `~1.2.3`\n range = range.replace(safeRe[t.TILDETRIM], tildeTrimReplace)\n\n // `^ 1.2.3` => `^1.2.3`\n range = range.replace(safeRe[t.CARETTRIM], caretTrimReplace)\n\n // normalize spaces\n range = range.split(/\\s+/).join(' ')\n\n // At this point, the range is completely trimmed and\n // ready to be split into comparators.\n\n var compRe = loose ? safeRe[t.COMPARATORLOOSE] : safeRe[t.COMPARATOR]\n var set = range.split(' ').map(function (comp) {\n return parseComparator(comp, this.options)\n }, this).join(' ').split(/\\s+/)\n if (this.options.loose) {\n // in loose mode, throw out any that are not valid comparators\n set = set.filter(function (comp) {\n return !!comp.match(compRe)\n })\n }\n set = set.map(function (comp) {\n return new Comparator(comp, this.options)\n }, this)\n\n return set\n}\n\nRange.prototype.intersects = function (range, options) {\n if (!(range instanceof Range)) {\n throw new TypeError('a Range is required')\n }\n\n return this.set.some(function (thisComparators) {\n return (\n isSatisfiable(thisComparators, options) &&\n range.set.some(function (rangeComparators) {\n return (\n isSatisfiable(rangeComparators, options) &&\n thisComparators.every(function (thisComparator) {\n return rangeComparators.every(function (rangeComparator) {\n return thisComparator.intersects(rangeComparator, options)\n })\n })\n )\n })\n )\n })\n}\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nfunction isSatisfiable (comparators, options) {\n var result = true\n var remainingComparators = comparators.slice()\n var testComparator = remainingComparators.pop()\n\n while (result && remainingComparators.length) {\n result = remainingComparators.every(function (otherComparator) {\n return testComparator.intersects(otherComparator, options)\n })\n\n testComparator = remainingComparators.pop()\n }\n\n return result\n}\n\n// Mostly just for testing and legacy API reasons\nexports.toComparators = toComparators\nfunction toComparators (range, options) {\n return new Range(range, options).set.map(function (comp) {\n return comp.map(function (c) {\n return c.value\n }).join(' ').trim().split(' ')\n })\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nfunction parseComparator (comp, options) {\n debug('comp', comp, options)\n comp = replaceCarets(comp, options)\n debug('caret', comp)\n comp = replaceTildes(comp, options)\n debug('tildes', comp)\n comp = replaceXRanges(comp, options)\n debug('xrange', comp)\n comp = replaceStars(comp, options)\n debug('stars', comp)\n return comp\n}\n\nfunction isX (id) {\n return !id || id.toLowerCase() === 'x' || id === '*'\n}\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0\nfunction replaceTildes (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceTilde(comp, options)\n }).join(' ')\n}\n\nfunction replaceTilde (comp, options) {\n var r = options.loose ? safeRe[t.TILDELOOSE] : safeRe[t.TILDE]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('tilde', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n // ~1.2 == >=1.2.0 <1.3.0\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else if (pr) {\n debug('replaceTilde pr', pr)\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n } else {\n // ~1.2.3 == >=1.2.3 <1.3.0\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n\n debug('tilde return', ret)\n return ret\n })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0\n// ^1.2.3 --> >=1.2.3 <2.0.0\n// ^1.2.0 --> >=1.2.0 <2.0.0\nfunction replaceCarets (comp, options) {\n return comp.trim().split(/\\s+/).map(function (comp) {\n return replaceCaret(comp, options)\n }).join(' ')\n}\n\nfunction replaceCaret (comp, options) {\n debug('caret', comp, options)\n var r = options.loose ? safeRe[t.CARETLOOSE] : safeRe[t.CARET]\n return comp.replace(r, function (_, M, m, p, pr) {\n debug('caret', comp, _, M, m, p, pr)\n var ret\n\n if (isX(M)) {\n ret = ''\n } else if (isX(m)) {\n ret = '>=' + M + '.0.0 <' + (+M + 1) + '.0.0'\n } else if (isX(p)) {\n if (M === '0') {\n ret = '>=' + M + '.' + m + '.0 <' + M + '.' + (+m + 1) + '.0'\n } else {\n ret = '>=' + M + '.' + m + '.0 <' + (+M + 1) + '.0.0'\n }\n } else if (pr) {\n debug('replaceCaret pr', pr)\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p + '-' + pr +\n ' <' + (+M + 1) + '.0.0'\n }\n } else {\n debug('no pr')\n if (M === '0') {\n if (m === '0') {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + m + '.' + (+p + 1)\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + M + '.' + (+m + 1) + '.0'\n }\n } else {\n ret = '>=' + M + '.' + m + '.' + p +\n ' <' + (+M + 1) + '.0.0'\n }\n }\n\n debug('caret return', ret)\n return ret\n })\n}\n\nfunction replaceXRanges (comp, options) {\n debug('replaceXRanges', comp, options)\n return comp.split(/\\s+/).map(function (comp) {\n return replaceXRange(comp, options)\n }).join(' ')\n}\n\nfunction replaceXRange (comp, options) {\n comp = comp.trim()\n var r = options.loose ? safeRe[t.XRANGELOOSE] : safeRe[t.XRANGE]\n return comp.replace(r, function (ret, gtlt, M, m, p, pr) {\n debug('xRange', comp, ret, gtlt, M, m, p, pr)\n var xM = isX(M)\n var xm = xM || isX(m)\n var xp = xm || isX(p)\n var anyX = xp\n\n if (gtlt === '=' && anyX) {\n gtlt = ''\n }\n\n // if we're including prereleases in the match, then we need\n // to fix this to -0, the lowest possible prerelease value\n pr = options.includePrerelease ? '-0' : ''\n\n if (xM) {\n if (gtlt === '>' || gtlt === '<') {\n // nothing is allowed\n ret = '<0.0.0-0'\n } else {\n // nothing is forbidden\n ret = '*'\n }\n } else if (gtlt && anyX) {\n // we know patch is an x, because we have any x at all.\n // replace X with 0\n if (xm) {\n m = 0\n }\n p = 0\n\n if (gtlt === '>') {\n // >1 => >=2.0.0\n // >1.2 => >=1.3.0\n // >1.2.3 => >= 1.2.4\n gtlt = '>='\n if (xm) {\n M = +M + 1\n m = 0\n p = 0\n } else {\n m = +m + 1\n p = 0\n }\n } else if (gtlt === '<=') {\n // <=0.7.x is actually <0.8.0, since any 0.7.x should\n // pass. Similarly, <=7.x is actually <8.0.0, etc.\n gtlt = '<'\n if (xm) {\n M = +M + 1\n } else {\n m = +m + 1\n }\n }\n\n ret = gtlt + M + '.' + m + '.' + p + pr\n } else if (xm) {\n ret = '>=' + M + '.0.0' + pr + ' <' + (+M + 1) + '.0.0' + pr\n } else if (xp) {\n ret = '>=' + M + '.' + m + '.0' + pr +\n ' <' + M + '.' + (+m + 1) + '.0' + pr\n }\n\n debug('xRange return', ret)\n\n return ret\n })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nfunction replaceStars (comp, options) {\n debug('replaceStars', comp, options)\n // Looseness is ignored here. star is always as loose as it gets!\n return comp.trim().replace(safeRe[t.STAR], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0\nfunction hyphenReplace ($0,\n from, fM, fm, fp, fpr, fb,\n to, tM, tm, tp, tpr, tb) {\n if (isX(fM)) {\n from = ''\n } else if (isX(fm)) {\n from = '>=' + fM + '.0.0'\n } else if (isX(fp)) {\n from = '>=' + fM + '.' + fm + '.0'\n } else {\n from = '>=' + from\n }\n\n if (isX(tM)) {\n to = ''\n } else if (isX(tm)) {\n to = '<' + (+tM + 1) + '.0.0'\n } else if (isX(tp)) {\n to = '<' + tM + '.' + (+tm + 1) + '.0'\n } else if (tpr) {\n to = '<=' + tM + '.' + tm + '.' + tp + '-' + tpr\n } else {\n to = '<=' + to\n }\n\n return (from + ' ' + to).trim()\n}\n\n// if ANY of the sets match ALL of its comparators, then pass\nRange.prototype.test = function (version) {\n if (!version) {\n return false\n }\n\n if (typeof version === 'string') {\n try {\n version = new SemVer(version, this.options)\n } catch (er) {\n return false\n }\n }\n\n for (var i = 0; i < this.set.length; i++) {\n if (testSet(this.set[i], version, this.options)) {\n return true\n }\n }\n return false\n}\n\nfunction testSet (set, version, options) {\n for (var i = 0; i < set.length; i++) {\n if (!set[i].test(version)) {\n return false\n }\n }\n\n if (version.prerelease.length && !options.includePrerelease) {\n // Find the set of versions that are allowed to have prereleases\n // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n // That should allow `1.2.3-pr.2` to pass.\n // However, `1.2.4-alpha.notready` should NOT be allowed,\n // even though it's within the range set by the comparators.\n for (i = 0; i < set.length; i++) {\n debug(set[i].semver)\n if (set[i].semver === ANY) {\n continue\n }\n\n if (set[i].semver.prerelease.length > 0) {\n var allowed = set[i].semver\n if (allowed.major === version.major &&\n allowed.minor === version.minor &&\n allowed.patch === version.patch) {\n return true\n }\n }\n }\n\n // Version has a -pre, but it's not one of the ones we like.\n return false\n }\n\n return true\n}\n\nexports.satisfies = satisfies\nfunction satisfies (version, range, options) {\n try {\n range = new Range(range, options)\n } catch (er) {\n return false\n }\n return range.test(version)\n}\n\nexports.maxSatisfying = maxSatisfying\nfunction maxSatisfying (versions, range, options) {\n var max = null\n var maxSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!max || maxSV.compare(v) === -1) {\n // compare(max, v, true)\n max = v\n maxSV = new SemVer(max, options)\n }\n }\n })\n return max\n}\n\nexports.minSatisfying = minSatisfying\nfunction minSatisfying (versions, range, options) {\n var min = null\n var minSV = null\n try {\n var rangeObj = new Range(range, options)\n } catch (er) {\n return null\n }\n versions.forEach(function (v) {\n if (rangeObj.test(v)) {\n // satisfies(v, range, options)\n if (!min || minSV.compare(v) === 1) {\n // compare(min, v, true)\n min = v\n minSV = new SemVer(min, options)\n }\n }\n })\n return min\n}\n\nexports.minVersion = minVersion\nfunction minVersion (range, loose) {\n range = new Range(range, loose)\n\n var minver = new SemVer('0.0.0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = new SemVer('0.0.0-0')\n if (range.test(minver)) {\n return minver\n }\n\n minver = null\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n comparators.forEach(function (comparator) {\n // Clone to avoid manipulating the comparator's semver object.\n var compver = new SemVer(comparator.semver.version)\n switch (comparator.operator) {\n case '>':\n if (compver.prerelease.length === 0) {\n compver.patch++\n } else {\n compver.prerelease.push(0)\n }\n compver.raw = compver.format()\n /* fallthrough */\n case '':\n case '>=':\n if (!minver || gt(minver, compver)) {\n minver = compver\n }\n break\n case '<':\n case '<=':\n /* Ignore maximum versions */\n break\n /* istanbul ignore next */\n default:\n throw new Error('Unexpected operation: ' + comparator.operator)\n }\n })\n }\n\n if (minver && range.test(minver)) {\n return minver\n }\n\n return null\n}\n\nexports.validRange = validRange\nfunction validRange (range, options) {\n try {\n // Return '*' instead of '' so that truthiness works.\n // This will throw if it's invalid anyway\n return new Range(range, options).range || '*'\n } catch (er) {\n return null\n }\n}\n\n// Determine if version is less than all the versions possible in the range\nexports.ltr = ltr\nfunction ltr (version, range, options) {\n return outside(version, range, '<', options)\n}\n\n// Determine if version is greater than all the versions possible in the range.\nexports.gtr = gtr\nfunction gtr (version, range, options) {\n return outside(version, range, '>', options)\n}\n\nexports.outside = outside\nfunction outside (version, range, hilo, options) {\n version = new SemVer(version, options)\n range = new Range(range, options)\n\n var gtfn, ltefn, ltfn, comp, ecomp\n switch (hilo) {\n case '>':\n gtfn = gt\n ltefn = lte\n ltfn = lt\n comp = '>'\n ecomp = '>='\n break\n case '<':\n gtfn = lt\n ltefn = gte\n ltfn = gt\n comp = '<'\n ecomp = '<='\n break\n default:\n throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n }\n\n // If it satisifes the range it is not outside\n if (satisfies(version, range, options)) {\n return false\n }\n\n // From now on, variable terms are as if we're in \"gtr\" mode.\n // but note that everything is flipped for the \"ltr\" function.\n\n for (var i = 0; i < range.set.length; ++i) {\n var comparators = range.set[i]\n\n var high = null\n var low = null\n\n comparators.forEach(function (comparator) {\n if (comparator.semver === ANY) {\n comparator = new Comparator('>=0.0.0')\n }\n high = high || comparator\n low = low || comparator\n if (gtfn(comparator.semver, high.semver, options)) {\n high = comparator\n } else if (ltfn(comparator.semver, low.semver, options)) {\n low = comparator\n }\n })\n\n // If the edge version comparator has a operator then our version\n // isn't outside it\n if (high.operator === comp || high.operator === ecomp) {\n return false\n }\n\n // If the lowest version comparator has an operator and our version\n // is less than it then it isn't higher than the range\n if ((!low.operator || low.operator === comp) &&\n ltefn(version, low.semver)) {\n return false\n } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n return false\n }\n }\n return true\n}\n\nexports.prerelease = prerelease\nfunction prerelease (version, options) {\n var parsed = parse(version, options)\n return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\n\nexports.intersects = intersects\nfunction intersects (r1, r2, options) {\n r1 = new Range(r1, options)\n r2 = new Range(r2, options)\n return r1.intersects(r2)\n}\n\nexports.coerce = coerce\nfunction coerce (version, options) {\n if (version instanceof SemVer) {\n return version\n }\n\n if (typeof version === 'number') {\n version = String(version)\n }\n\n if (typeof version !== 'string') {\n return null\n }\n\n options = options || {}\n\n var match = null\n if (!options.rtl) {\n match = version.match(safeRe[t.COERCE])\n } else {\n // Find the right-most coercible string that does not share\n // a terminus with a more left-ward coercible string.\n // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n //\n // Walk through the string checking with a /g regexp\n // Manually set the index so as to pick up overlapping matches.\n // Stop when we get a match that ends at the string end, since no\n // coercible string can be more right-ward without the same terminus.\n var next\n while ((next = safeRe[t.COERCERTL].exec(version)) &&\n (!match || match.index + match[0].length !== version.length)\n ) {\n if (!match ||\n next.index + next[0].length !== match.index + match[0].length) {\n match = next\n }\n safeRe[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n }\n // leave it in a clean state\n safeRe[t.COERCERTL].lastIndex = -1\n }\n\n if (match === null) {\n return null\n }\n\n return parse(match[2] +\n '.' + (match[3] || '0') +\n '.' + (match[4] || '0'), options)\n}\n","\"use strict\";\n\nexports.__esModule = true;\nexports.hasMinVersion = hasMinVersion;\nvar _semver = _interopRequireDefault(require(\"semver\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction hasMinVersion(minVersion, runtimeVersion) {\n // If the range is unavailable, we're running the script during Babel's\n // build process, and we want to assume that all versions are satisfied so\n // that the built output will include all definitions.\n if (!runtimeVersion || !minVersion) return true;\n runtimeVersion = String(runtimeVersion);\n\n // semver.intersects() has some surprising behavior with comparing ranges\n // with preprelease versions. We add '^' to ensure that we are always\n // comparing ranges with ranges, which sidesteps this logic.\n // For example:\n //\n // semver.intersects(`<7.0.1`, \"7.0.0-beta.0\") // false - surprising\n // semver.intersects(`<7.0.1`, \"^7.0.0-beta.0\") // true - expected\n //\n // This is because the first falls back to\n //\n // semver.satisfies(\"7.0.0-beta.0\", `<7.0.1`) // false - surprising\n //\n // and this fails because a prerelease version can only satisfy a range\n // if it is a prerelease within the same major/minor/patch range.\n //\n // Note: If this is found to have issues, please also revist the logic in\n // babel-core's availableHelper() API.\n if (_semver.default.valid(runtimeVersion)) runtimeVersion = `^${runtimeVersion}`;\n return !_semver.default.intersects(`<${minVersion}`, runtimeVersion) && !_semver.default.intersects(`>=8.0.0`, runtimeVersion);\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.createUtilsGetter = createUtilsGetter;\nexports.getImportSource = getImportSource;\nexports.getRequireSource = getRequireSource;\nexports.has = has;\nexports.intersection = intersection;\nexports.resolveKey = resolveKey;\nexports.resolveSource = resolveSource;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t,\n template: template\n} = _babel.default || _babel;\nfunction intersection(a, b) {\n const result = new Set();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\nfunction has(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction getType(target) {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\nfunction resolveId(path) {\n if (path.isIdentifier() && !path.scope.hasBinding(path.node.name, /* noGlobals */true)) {\n return path.node.name;\n }\n if (path.isPure()) {\n const {\n deopt\n } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\nfunction resolveKey(path, computed = false) {\n const {\n scope\n } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (isIdentifier && !(computed || path.parent.computed)) {\n return path.node.name;\n }\n if (computed && path.isMemberExpression() && path.get(\"object\").isIdentifier({\n name: \"Symbol\"\n }) && !scope.hasBinding(\"Symbol\", /* noGlobals */true)) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n if (isIdentifier ? scope.hasBinding(path.node.name, /* noGlobals */true) : path.isPure()) {\n const {\n value\n } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\nfunction resolveSource(obj) {\n if (obj.isMemberExpression() && obj.get(\"property\").isIdentifier({\n name: \"prototype\"\n })) {\n const id = resolveId(obj.get(\"object\"));\n if (id) {\n return {\n id,\n placement: \"prototype\"\n };\n }\n return {\n id: null,\n placement: null\n };\n }\n const id = resolveId(obj);\n if (id) {\n return {\n id,\n placement: \"static\"\n };\n }\n if (obj.isRegExpLiteral()) {\n return {\n id: \"RegExp\",\n placement: \"prototype\"\n };\n } else if (obj.isFunction()) {\n return {\n id: \"Function\",\n placement: \"prototype\"\n };\n } else if (obj.isPure()) {\n const {\n value\n } = obj.evaluate();\n if (value !== undefined) {\n return {\n id: getType(value),\n placement: \"prototype\"\n };\n }\n }\n return {\n id: null,\n placement: null\n };\n}\nfunction getImportSource({\n node\n}) {\n if (node.specifiers.length === 0) return node.source.value;\n}\nfunction getRequireSource({\n node\n}) {\n if (!t.isExpressionStatement(node)) return;\n const {\n expression\n } = node;\n if (t.isCallExpression(expression) && t.isIdentifier(expression.callee) && expression.callee.name === \"require\" && expression.arguments.length === 1 && t.isStringLiteral(expression.arguments[0])) {\n return expression.arguments[0].value;\n }\n}\nfunction hoist(node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\nfunction createUtilsGetter(cache) {\n return path => {\n const prog = path.findParent(p => p.isProgram());\n return {\n injectGlobalImport(url, moduleName) {\n cache.storeAnonymous(prog, url, moduleName, (isScript, source) => {\n return isScript ? template.statement.ast`require(${source})` : t.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name, moduleName) {\n return cache.storeNamed(prog, url, name, moduleName, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `) : t.importDeclaration([t.importSpecifier(id, name)], source),\n name: id.name\n };\n });\n },\n injectDefaultImport(url, hint = url, moduleName) {\n return cache.storeNamed(prog, url, \"default\", moduleName, (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`var ${id} = require(${source})`) : t.importDeclaration([t.importDefaultSpecifier(id)], source),\n name: id.name\n };\n });\n }\n };\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nconst {\n types: t\n} = _babel.default || _babel;\nclass ImportsCachedInjector {\n constructor(resolver, getPreferredIndex) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n this._getPreferredIndex = getPreferredIndex;\n }\n storeAnonymous(programPath, url, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure(this._anonymousImports, programPath, Set);\n if (imports.has(key)) return;\n const node = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)));\n imports.add(key);\n this._injectImport(programPath, node, moduleName);\n }\n storeNamed(programPath, url, name, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure(this._imports, programPath, Map);\n if (!imports.has(key)) {\n const {\n node,\n name: id\n } = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)), t.identifier(name));\n imports.set(key, id);\n this._injectImport(programPath, node, moduleName);\n }\n return t.identifier(imports.get(key));\n }\n _injectImport(programPath, node, moduleName) {\n var _this$_lastImports$ge;\n const newIndex = this._getPreferredIndex(moduleName);\n const lastImports = (_this$_lastImports$ge = this._lastImports.get(programPath)) != null ? _this$_lastImports$ge : [];\n const isPathStillValid = path => path.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n path.parent === programPath.node && path.container === programPath.node.body;\n let last;\n if (newIndex === Infinity) {\n // Fast path: we can always just insert at the end if newIndex is `Infinity`\n if (lastImports.length > 0) {\n last = lastImports[lastImports.length - 1].path;\n if (!isPathStillValid(last)) last = undefined;\n }\n } else {\n for (const [i, data] of lastImports.entries()) {\n const {\n path,\n index\n } = data;\n if (isPathStillValid(path)) {\n if (newIndex < index) {\n const [newPath] = path.insertBefore(node);\n lastImports.splice(i, 0, {\n path: newPath,\n index: newIndex\n });\n return;\n }\n last = path;\n }\n }\n }\n if (last) {\n const [newPath] = last.insertAfter(node);\n lastImports.push({\n path: newPath,\n index: newIndex\n });\n } else {\n const [newPath] = programPath.unshiftContainer(\"body\", node);\n this._lastImports.set(programPath, [{\n path: newPath,\n index: newIndex\n }]);\n }\n }\n _ensure(map, programPath, Collection) {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n _normalizeKey(programPath, url, name = \"\") {\n const {\n sourceType\n } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\nexports.default = ImportsCachedInjector;","\"use strict\";\n\nexports.__esModule = true;\nexports.presetEnvSilentDebugHeader = void 0;\nexports.stringifyTargets = stringifyTargets;\nexports.stringifyTargetsMultiline = stringifyTargetsMultiline;\nvar _helperCompilationTargets = require(\"@babel/helper-compilation-targets\");\nconst presetEnvSilentDebugHeader = \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\nexports.presetEnvSilentDebugHeader = presetEnvSilentDebugHeader;\nfunction stringifyTargetsMultiline(targets) {\n return JSON.stringify((0, _helperCompilationTargets.prettifyTargets)(targets), null, 2);\n}\nfunction stringifyTargets(targets) {\n return JSON.stringify(targets).replace(/,/g, \", \").replace(/^\\{\"/, '{ \"').replace(/\"\\}$/, '\" }');\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.applyMissingDependenciesDefaults = applyMissingDependenciesDefaults;\nexports.validateIncludeExclude = validateIncludeExclude;\nvar _utils = require(\"./utils\");\nfunction patternToRegExp(pattern) {\n if (pattern instanceof RegExp) return pattern;\n try {\n return new RegExp(`^${pattern}$`);\n } catch (_unused) {\n return null;\n }\n}\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return ` - The following \"${label}\" patterns didn't match any polyfill:\\n` + unused.map(original => ` ${String(original)}\\n`).join(\"\");\n}\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` + Array.from(duplicates, name => ` ${name}\\n`).join(\"\");\n}\nfunction validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n let matched = false;\n for (const polyfill of polyfills.keys()) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n const duplicates = (0, _utils.intersection)(include, exclude);\n if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) {\n throw new Error(`Error while validating the \"${provider}\" provider options:\\n` + buildUnusedError(\"include\", unusedInclude) + buildUnusedError(\"exclude\", unusedExclude) + buldDuplicatesError(duplicates));\n }\n return {\n include,\n exclude\n };\n}\nfunction applyMissingDependenciesDefaults(options, babelApi) {\n const {\n missingDependencies = {}\n } = options;\n if (missingDependencies === false) return false;\n const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name);\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false\n } = missingDependencies;\n return {\n log,\n inject,\n all\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _utils = require(\"../utils\");\nfunction isRemoved(path) {\n if (path.removed) return true;\n if (!path.parentPath) return false;\n if (path.listKey) {\n if (!path.parentPath.node[path.listKey].includes(path.node)) return true;\n } else {\n if (path.parentPath.node[path.key] !== path.node) return true;\n }\n return isRemoved(path.parentPath);\n}\nvar _default = callProvider => {\n function property(object, key, placement, path) {\n return callProvider({\n kind: \"property\",\n object,\n key,\n placement\n }, path);\n }\n function handleReferencedIdentifier(path) {\n const {\n node: {\n name\n },\n scope\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n callProvider({\n kind: \"global\",\n name\n }, path);\n }\n function analyzeMemberExpression(path) {\n const key = (0, _utils.resolveKey)(path.get(\"property\"), path.node.computed);\n return {\n key,\n handleAsMemberExpression: !!key && key !== \"prototype\"\n };\n }\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path) {\n const {\n parentPath\n } = path;\n if (parentPath.isMemberExpression({\n object: path.node\n }) && analyzeMemberExpression(parentPath).handleAsMemberExpression) {\n return;\n }\n handleReferencedIdentifier(path);\n },\n MemberExpression(path) {\n const {\n key,\n handleAsMemberExpression\n } = analyzeMemberExpression(path);\n if (!handleAsMemberExpression) return;\n const object = path.get(\"object\");\n let objectIsGlobalIdentifier = object.isIdentifier();\n if (objectIsGlobalIdentifier) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding) {\n if (binding.path.isImportNamespaceSpecifier()) return;\n objectIsGlobalIdentifier = false;\n }\n }\n const source = (0, _utils.resolveSource)(object);\n let skipObject = property(source.id, key, source.placement, path);\n skipObject || (skipObject = !objectIsGlobalIdentifier || path.shouldSkip || object.shouldSkip || isRemoved(object));\n if (!skipObject) handleReferencedIdentifier(object);\n },\n ObjectPattern(path) {\n const {\n parentPath,\n parent\n } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n let id = null;\n let placement = null;\n if (obj) ({\n id,\n placement\n } = (0, _utils.resolveSource)(obj));\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = (0, _utils.resolveKey)(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n BinaryExpression(path) {\n if (path.node.operator !== \"in\") return;\n const source = (0, _utils.resolveSource)(path.get(\"right\"));\n const key = (0, _utils.resolveKey)(path.get(\"left\"), true);\n if (!key) return;\n callProvider({\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement\n }, path);\n }\n };\n};\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _utils = require(\"../utils\");\nvar _default = callProvider => ({\n ImportDeclaration(path) {\n const source = (0, _utils.getImportSource)(path);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, path);\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n const source = (0, _utils.getRequireSource)(bodyPath);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, bodyPath);\n });\n }\n});\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.usage = exports.entry = void 0;\nvar _usage = _interopRequireDefault(require(\"./usage\"));\nexports.usage = _usage.default;\nvar _entry = _interopRequireDefault(require(\"./entry\"));\nexports.entry = _entry.default;\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nexports.__esModule = true;\nexports.has = has;\nexports.laterLogMissing = laterLogMissing;\nexports.logMissing = logMissing;\nexports.resolve = resolve;\nfunction resolve(dirname, moduleName, absoluteImports) {\n if (absoluteImports === false) return moduleName;\n throw new Error(`\"absoluteImports\" is not supported in bundles prepared for the browser.`);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction has(basedir, name) {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction logMissing(missingDeps) {}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction laterLogMissing(missingDeps) {}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = createMetaResolver;\nvar _utils = require(\"./utils\");\nconst PossibleGlobalObjects = new Set([\"global\", \"globalThis\", \"self\", \"window\"]);\nfunction createMetaResolver(polyfills) {\n const {\n static: staticP,\n instance: instanceP,\n global: globalP\n } = polyfills;\n return meta => {\n if (meta.kind === \"global\" && globalP && (0, _utils.has)(globalP, meta.name)) {\n return {\n kind: \"global\",\n desc: globalP[meta.name],\n name: meta.name\n };\n }\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const {\n placement,\n object,\n key\n } = meta;\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && (0, _utils.has)(globalP, key)) {\n return {\n kind: \"global\",\n desc: globalP[key],\n name: key\n };\n }\n if (staticP && (0, _utils.has)(staticP, object) && (0, _utils.has)(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`\n };\n }\n }\n if (instanceP && (0, _utils.has)(instanceP, key)) {\n return {\n kind: \"instance\",\n desc: instanceP[key],\n name: `${key}`\n };\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = definePolyfillProvider;\nvar _helperPluginUtils = require(\"@babel/helper-plugin-utils\");\nvar _helperCompilationTargets = _interopRequireWildcard(require(\"@babel/helper-compilation-targets\"));\nvar _utils = require(\"./utils\");\nvar _importsInjector = _interopRequireDefault(require(\"./imports-injector\"));\nvar _debugUtils = require(\"./debug-utils\");\nvar _normalizeOptions = require(\"./normalize-options\");\nvar v = _interopRequireWildcard(require(\"./visitors\"));\nvar deps = _interopRequireWildcard(require(\"./node/dependencies\"));\nvar _metaResolver = _interopRequireDefault(require(\"./meta-resolver\"));\nconst _excluded = [\"method\", \"targets\", \"ignoreBrowserslistConfig\", \"configPath\", \"debug\", \"shouldInjectPolyfill\", \"absoluteImports\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nconst getTargets = _helperCompilationTargets.default.default || _helperCompilationTargets.default;\nfunction resolveOptions(options, babelApi) {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports\n } = options,\n providerOptions = _objectWithoutPropertiesLoose(options, _excluded);\n if (isEmpty(options)) {\n throw new Error(`\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);\n }\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";else if (method === \"entry-global\") methodName = \"entryGlobal\";else if (method === \"usage-pure\") methodName = \"usagePure\";else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(`.method must be one of \"entry-global\", \"usage-global\"` + ` or \"usage-pure\" (received ${JSON.stringify(method)})`);\n }\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(`.include and .exclude are not supported when using the` + ` .shouldInjectPolyfill function.`);\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(`.shouldInjectPolyfill must be a function, or undefined` + ` (received ${JSON.stringify(shouldInjectPolyfill)})`);\n }\n if (absoluteImports != null && typeof absoluteImports !== \"boolean\" && typeof absoluteImports !== \"string\") {\n throw new Error(`.absoluteImports must be a boolean, a string, or undefined` + ` (received ${JSON.stringify(absoluteImports)})`);\n }\n let targets;\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption || configPath || ignoreBrowserslistConfig) {\n const targetsObj = typeof targetsOption === \"string\" || Array.isArray(targetsOption) ? {\n browsers: targetsOption\n } : targetsOption;\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath\n });\n } else {\n targets = babelApi.targets();\n }\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports != null ? absoluteImports : false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions\n };\n}\nfunction instantiateProvider(factory, options, missingDependencies, dirname, debugLog, babelApi) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports\n } = resolveOptions(options, babelApi);\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n const getUtils = (0, _utils.createUtilsGetter)(new _importsInjector.default(moduleName => deps.resolve(dirname, moduleName, absoluteImports), name => {\n var _polyfillsNames$get, _polyfillsNames;\n return (_polyfillsNames$get = (_polyfillsNames = polyfillsNames) == null ? void 0 : _polyfillsNames.get(name)) != null ? _polyfillsNames$get : Infinity;\n }));\n const depsCache = new Map();\n const api = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver: _metaResolver.default,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(`Internal error in the ${factory.name} provider: ` + `shouldInjectPolyfill() can't be called during initialization.`);\n }\n if (!polyfillsNames.has(name)) {\n console.warn(`Internal error in the ${providerName} provider: ` + `unknown polyfill \"${name}\".`);\n }\n if (filterPolyfills && !filterPolyfills(name)) return false;\n let shouldInject = (0, _helperCompilationTargets.isRequired)(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude\n });\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n return shouldInject;\n },\n debug(name) {\n var _debugLog, _debugLog$polyfillsSu;\n debugLog().found = true;\n if (!debug || !name) return;\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n (_debugLog$polyfillsSu = (_debugLog = debugLog()).polyfillsSupport) != null ? _debugLog$polyfillsSu : _debugLog.polyfillsSupport = polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n const found = missingDependencies.all ? false : mapGetOr(depsCache, `${name} :: ${dirname}`, () => deps.has(dirname, name));\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n }\n };\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(`The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`);\n }\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Map(provider.polyfills.map((name, index) => [name, index]));\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Map(Object.keys(provider.polyfills).map((name, index) => [name, index]));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Map();\n }\n ({\n include,\n exclude\n } = (0, _normalizeOptions.validateIncludeExclude)(providerName, polyfillsNames, providerOptions.include || [], providerOptions.exclude || []));\n let callProvider;\n if (methodName === \"usageGlobal\") {\n callProvider = (payload, path) => {\n var _ref;\n const utils = getUtils(path);\n return (_ref = provider[methodName](payload, utils, path)) != null ? _ref : false;\n };\n } else {\n callProvider = (payload, path) => {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n return false;\n };\n }\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n };\n}\nfunction definePolyfillProvider(factory) {\n return (0, _helperPluginUtils.declare)((babelApi, options, dirname) => {\n babelApi.assertVersion(\"^7.0.0 || ^8.0.0-alpha.0\");\n const {\n traverse\n } = babelApi;\n let debugLog;\n const missingDependencies = (0, _normalizeOptions.applyMissingDependenciesDefaults)(options, babelApi);\n const {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n } = instantiateProvider(factory, options, missingDependencies, dirname, () => debugLog, babelApi);\n const createVisitor = method === \"entry-global\" ? v.entry : v.usage;\n const visitor = provider.visitor ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor]) : createVisitor(callProvider);\n if (debug && debug !== _debugUtils.presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${(0, _debugUtils.stringifyTargetsMultiline)(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n const {\n runtimeName\n } = provider;\n return {\n name: \"inject-polyfills\",\n visitor,\n pre(file) {\n var _provider$pre;\n if (runtimeName) {\n if (file.get(\"runtimeHelpersModuleName\") && file.get(\"runtimeHelpersModuleName\") !== runtimeName) {\n console.warn(`Two different polyfill providers` + ` (${file.get(\"runtimeHelpersModuleProvider\")}` + ` and ${providerName}) are trying to define two` + ` conflicting @babel/runtime alternatives:` + ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` + ` The second one will be ignored.`);\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set()\n };\n (_provider$pre = provider.pre) == null ? void 0 : _provider$pre.apply(this, arguments);\n },\n post() {\n var _provider$post;\n (_provider$post = provider.post) == null ? void 0 : _provider$post.apply(this, arguments);\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n deps.logMissing(debugLog.missingDeps);\n } else {\n deps.laterLogMissing(debugLog.missingDeps);\n }\n }\n if (!debug) return;\n if (this.filename) console.log(`\\n[${this.filename}]`);\n if (debugLog.polyfills.size === 0) {\n console.log(method === \"entry-global\" ? debugLog.found ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.` : `The entry point for the ${providerName} polyfill has not been found.` : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`);\n return;\n }\n if (method === \"entry-global\") {\n console.log(`The ${providerName} polyfill entry has been replaced with ` + `the following polyfills:`);\n } else {\n console.log(`The ${providerName} polyfill added the following polyfills:`);\n }\n for (const name of debugLog.polyfills) {\n var _debugLog$polyfillsSu2;\n if ((_debugLog$polyfillsSu2 = debugLog.polyfillsSupport) != null && _debugLog$polyfillsSu2[name]) {\n const filteredTargets = (0, _helperCompilationTargets.getInclusionReasons)(name, targets, debugLog.polyfillsSupport);\n const formattedTargets = JSON.stringify(filteredTargets).replace(/,/g, \", \").replace(/^\\{\"/, '{ \"').replace(/\"\\}$/, '\" }');\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n }\n };\n });\n}\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _corejs2BuiltIns = _interopRequireDefault(require(\"@babel/compat-data/corejs2-built-ins\"));\nvar _builtInDefinitions = require(\"./built-in-definitions\");\nvar _addPlatformSpecificPolyfills = _interopRequireDefault(require(\"./add-platform-specific-polyfills\"));\nvar _helpers = require(\"./helpers\");\nvar _helperDefinePolyfillProvider = _interopRequireDefault(require(\"@babel/helper-define-polyfill-provider\"));\nvar _babel = _interopRequireWildcard(require(\"@babel/core\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst {\n types: t\n} = _babel.default || _babel;\nconst BABEL_RUNTIME = \"@babel/runtime-corejs2\";\nconst presetEnvCompat = \"#__secret_key__@babel/preset-env__compatibility\";\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nconst has = Function.call.bind(Object.hasOwnProperty);\nvar _default = (0, _helperDefinePolyfillProvider.default)(function (api, {\n [presetEnvCompat]: {\n entryInjectRegenerator = false,\n noRuntimeName = false\n } = {},\n [runtimeCompat]: {\n useBabelRuntime = false,\n runtimeVersion = \"\",\n ext = \".js\"\n } = {}\n}) {\n const resolve = api.createMetaResolver({\n global: _builtInDefinitions.BuiltIns,\n static: _builtInDefinitions.StaticProperties,\n instance: _builtInDefinitions.InstanceProperties\n });\n const {\n debug,\n shouldInjectPolyfill,\n method\n } = api;\n const polyfills = (0, _addPlatformSpecificPolyfills.default)(api.targets, method, _corejs2BuiltIns.default);\n const coreJSBase = useBabelRuntime ? `${BABEL_RUNTIME}/core-js` : method === \"usage-pure\" ? \"core-js/library/fn\" : \"core-js/modules\";\n function inject(name, utils) {\n if (typeof name === \"string\") {\n // Some polyfills aren't always available, for example\n // web.dom.iterable when targeting node\n if (has(polyfills, name) && shouldInjectPolyfill(name)) {\n debug(name);\n utils.injectGlobalImport(`${coreJSBase}/${name}.js`);\n }\n return;\n }\n name.forEach(name => inject(name, utils));\n }\n function maybeInjectPure(desc, hint, utils) {\n let {\n pure,\n meta,\n name\n } = desc;\n if (!pure || !shouldInjectPolyfill(name)) return;\n if (runtimeVersion && meta && meta.minRuntimeVersion && !(0, _helpers.hasMinVersion)(meta && meta.minRuntimeVersion, runtimeVersion)) {\n return;\n }\n\n // Unfortunately core-js and @babel/runtime-corejs2 don't have the same\n // directory structure, so we need to special case this.\n if (useBabelRuntime && pure === \"symbol/index\") pure = \"symbol\";\n return utils.injectDefaultImport(`${coreJSBase}/${pure}${ext}`, hint);\n }\n return {\n name: \"corejs2\",\n runtimeName: noRuntimeName ? null : BABEL_RUNTIME,\n polyfills,\n entryGlobal(meta, utils, path) {\n if (meta.kind === \"import\" && meta.source === \"core-js\") {\n debug(null);\n inject(Object.keys(polyfills), utils);\n if (entryInjectRegenerator) {\n utils.injectGlobalImport(\"regenerator-runtime/runtime.js\");\n }\n path.remove();\n }\n },\n usageGlobal(meta, utils) {\n const resolved = resolve(meta);\n if (!resolved) return;\n let deps = resolved.desc.global;\n if (resolved.kind !== \"global\" && \"object\" in meta && meta.object && meta.placement === \"prototype\") {\n const low = meta.object.toLowerCase();\n deps = deps.filter(m => m.includes(low));\n }\n inject(deps, utils);\n },\n usagePure(meta, utils, path) {\n if (meta.kind === \"in\") {\n if (meta.key === \"Symbol.iterator\") {\n path.replaceWith(t.callExpression(utils.injectDefaultImport(`${coreJSBase}/is-iterable${ext}`, \"isIterable\"), [path.node.right] // meta.kind === \"in\" narrows this\n ));\n }\n\n return;\n }\n if (path.parentPath.isUnaryExpression({\n operator: \"delete\"\n })) return;\n if (meta.kind === \"property\") {\n // We can't compile destructuring.\n if (!path.isMemberExpression()) return;\n if (!path.isReferenced()) return;\n if (meta.key === \"Symbol.iterator\" && shouldInjectPolyfill(\"es6.symbol\") && path.parentPath.isCallExpression({\n callee: path.node\n }) && path.parentPath.node.arguments.length === 0) {\n path.parentPath.replaceWith(t.callExpression(utils.injectDefaultImport(`${coreJSBase}/get-iterator${ext}`, \"getIterator\"), [path.node.object]));\n path.skip();\n return;\n }\n }\n const resolved = resolve(meta);\n if (!resolved) return;\n const id = maybeInjectPure(resolved.desc, resolved.name, utils);\n if (id) path.replaceWith(id);\n },\n visitor: method === \"usage-global\" && {\n // yield*\n YieldExpression(path) {\n if (path.node.delegate) {\n inject(\"web.dom.iterable\", api.getUtils(path));\n }\n },\n // for-of, [a, b] = c\n \"ForOfStatement|ArrayPattern\"(path) {\n _builtInDefinitions.CommonIterators.forEach(name => inject(name, api.getUtils(path)));\n }\n }\n };\n});\nexports.default = _default;","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? null\n : require(\"babel-plugin-polyfill-corejs2-BABEL_8_BREAKING-false\");\n0 && (exports.default = 0);","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _helperDefinePolyfillProvider = _interopRequireDefault(require(\"@babel/helper-define-polyfill-provider\"));\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nvar _default = (0, _helperDefinePolyfillProvider.default)(({\n debug,\n targets,\n babel\n}, options) => {\n if (!shallowEqual(targets, babel.targets())) {\n throw new Error(\"This plugin does not use the targets option. Only preset-env's targets\" + \" or top-level targets need to be configured for this plugin to work.\" + \" See https://github.com/babel/babel-polyfills/issues/36 for more\" + \" details.\");\n }\n const {\n [runtimeCompat]: {\n moduleName = null,\n useBabelRuntime = false\n } = {}\n } = options;\n return {\n name: \"regenerator\",\n polyfills: [\"regenerator-runtime\"],\n usageGlobal(meta, utils) {\n if (isRegenerator(meta)) {\n debug(\"regenerator-runtime\");\n utils.injectGlobalImport(\"regenerator-runtime/runtime.js\");\n }\n },\n usagePure(meta, utils, path) {\n if (isRegenerator(meta)) {\n let pureName = \"regenerator-runtime\";\n if (useBabelRuntime) {\n var _ref;\n const runtimeName = (_ref = moduleName != null ? moduleName : path.hub.file.get(\"runtimeHelpersModuleName\")) != null ? _ref : \"@babel/runtime\";\n pureName = `${runtimeName}/regenerator`;\n }\n path.replaceWith(utils.injectDefaultImport(pureName, \"regenerator-runtime\"));\n }\n }\n };\n});\nexports.default = _default;\nconst isRegenerator = meta => meta.kind === \"global\" && meta.name === \"regeneratorRuntime\";\nfunction shallowEqual(obj1, obj2) {\n return JSON.stringify(obj1) === JSON.stringify(obj2);\n}","// env vars from the cli are always strings, so !!ENV_VAR returns true for \"false\"\nfunction bool(value) {\n if (value == null) return false;\n return value && value !== \"false\" && value !== \"0\";\n}\n\nmodule.exports = bool(process.env[\"BABEL_8_BREAKING\"])\n ? null\n : require(\"babel-plugin-polyfill-regenerator-BABEL_8_BREAKING-false\");\n0 && (exports.default = 0);","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nexports.getImportSource = function ({ node }) {\n if (node.specifiers.length === 0) return node.source.value;\n};\n\nexports.getRequireSource = function ({ node }) {\n if (node.type !== \"ExpressionStatement\") return;\n const { expression } = node;\n if (\n expression.type === \"CallExpression\" &&\n expression.callee.type === \"Identifier\" &&\n expression.callee.name === \"require\" &&\n expression.arguments.length === 1 &&\n expression.arguments[0].type === \"StringLiteral\"\n ) {\n return expression.arguments[0].value;\n }\n};\n\nexports.isPolyfillSource = function (source) {\n return source === \"@babel/polyfill\" || source === \"core-js\";\n};\n","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nconst {\n getImportSource,\n getRequireSource,\n isPolyfillSource,\n} = require(\"./utils.cjs\");\n\nconst BABEL_POLYFILL_DEPRECATION = `\n \\`@babel/polyfill\\` is deprecated. Please, use required parts of \\`core-js\\`\n and \\`regenerator-runtime/runtime\\` separately`;\n\nconst NO_DIRECT_POLYFILL_IMPORT = `\n When setting \\`useBuiltIns: 'usage'\\`, polyfills are automatically imported when needed.\n Please remove the direct import of \\`SPECIFIER\\` or use \\`useBuiltIns: 'entry'\\` instead.`;\n\nmodule.exports = function ({ template }, { regenerator, deprecated, usage }) {\n return {\n name: \"preset-env/replace-babel-polyfill\",\n visitor: {\n ImportDeclaration(path) {\n const src = getImportSource(path);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) path.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n path.replaceWithMultiple(template.ast`\n import \"core-js\";\n import \"regenerator-runtime/runtime.js\";\n `);\n } else {\n path.replaceWith(template.ast`\n import \"core-js\";\n `);\n }\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n const src = getRequireSource(bodyPath);\n if (usage && isPolyfillSource(src)) {\n console.warn(NO_DIRECT_POLYFILL_IMPORT.replace(\"SPECIFIER\", src));\n if (!deprecated) bodyPath.remove();\n } else if (src === \"@babel/polyfill\") {\n if (deprecated) {\n console.warn(BABEL_POLYFILL_DEPRECATION);\n } else if (regenerator) {\n bodyPath.replaceWithMultiple(template.ast`\n require(\"core-js\");\n require(\"regenerator-runtime/runtime.js\");\n `);\n } else {\n bodyPath.replaceWith(template.ast`\n require(\"core-js\");\n `);\n }\n }\n });\n },\n },\n };\n};\n","// TODO(Babel 8) Remove this file\nif (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"Internal Babel error: This file should only be loaded in Babel 7\",\n );\n}\n\nconst { getImportSource, getRequireSource } = require(\"./utils.cjs\");\n\nfunction isRegeneratorSource(source) {\n return (\n source === \"regenerator-runtime/runtime\" ||\n source === \"regenerator-runtime/runtime.js\"\n );\n}\n\nmodule.exports = function () {\n const visitor = {\n ImportDeclaration(path) {\n if (isRegeneratorSource(getImportSource(path))) {\n this.regeneratorImportExcluded = true;\n path.remove();\n }\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n if (isRegeneratorSource(getRequireSource(bodyPath))) {\n this.regeneratorImportExcluded = true;\n bodyPath.remove();\n }\n });\n },\n };\n\n return {\n name: \"preset-env/remove-regenerator\",\n visitor,\n pre() {\n this.regeneratorImportExcluded = false;\n },\n post() {\n if (this.opts.debug && this.regeneratorImportExcluded) {\n let filename = this.file.opts.filename;\n // normalize filename to generate consistent preset-env test fixtures\n if (process.env.BABEL_ENV === \"test\") {\n filename = filename.replace(/\\\\/g, \"/\");\n }\n console.log(\n `\\n[${filename}] Based on your targets, regenerator-runtime import excluded.`,\n );\n }\n },\n };\n};\n","// TODO(Babel 8): Remove this file\n\nif (!process.env.BABEL_8_BREAKING) {\n Object.defineProperties(exports, {\n pluginCoreJS2: {\n get: () => require(\"babel-plugin-polyfill-corejs2\").default,\n },\n pluginRegenerator: {\n get: () => require(\"babel-plugin-polyfill-regenerator\").default,\n },\n legacyBabelPolyfillPlugin: { get: () => require(\"./babel-polyfill.cjs\") },\n removeRegeneratorEntryPlugin: { get: () => require(\"./regenerator.cjs\") },\n corejs2Polyfills: {\n get: () => require(\"@babel/compat-data/corejs2-built-ins\"),\n },\n });\n}\n","import semver, { type SemVer } from \"semver\";\nimport corejs3Polyfills from \"core-js-compat/data.json\" with { type: \"json\" };\nimport { plugins as pluginsList } from \"./plugins-compat-data.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport {\n TopLevelOptions,\n ModulesOption,\n UseBuiltInsOption,\n} from \"./options.ts\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./polyfills/babel-7-plugins.cjs\";\n\nimport type {\n BuiltInsOption,\n CorejsOption,\n ModuleOption,\n Options,\n PluginListOption,\n} from \"./types.ts\";\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nconst allPluginsList = Object.keys(pluginsList);\n\n// NOTE: Since module plugins are handled separately compared to other plugins (via the \"modules\" option) it\n// should only be possible to exclude and not include module plugins, otherwise it's possible that preset-env\n// will add a module plugin twice.\nconst modulePlugins = [\n \"transform-dynamic-import\",\n ...Object.keys(moduleTransformations).map(m => moduleTransformations[m]),\n];\n\nconst getValidIncludesAndExcludes = (\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n const set = new Set(allPluginsList);\n if (type === \"exclude\") modulePlugins.map(set.add, set);\n if (corejs) {\n if (!process.env.BABEL_8_BREAKING && corejs === 2) {\n Object.keys(babel7.corejs2Polyfills).map(set.add, set);\n set.add(\"web.timers\").add(\"web.immediate\").add(\"web.dom.iterable\");\n } else {\n Object.keys(corejs3Polyfills).map(set.add, set);\n }\n }\n return Array.from(set);\n};\n\nfunction flatMap(array: Array, fn: (item: T) => Array): Array {\n return Array.prototype.concat.apply([], array.map(fn));\n}\n\nexport const normalizePluginName = (plugin: string) =>\n plugin.replace(/^(@babel\\/|babel-)(plugin-)?/, \"\");\n\nconst expandIncludesAndExcludes = (\n filterList: PluginListOption = [],\n type: \"include\" | \"exclude\",\n corejs: number | false,\n) => {\n if (filterList.length === 0) return [];\n\n const filterableItems = getValidIncludesAndExcludes(type, corejs);\n\n const invalidFilters: PluginListOption = [];\n const selectedPlugins = flatMap(filterList, filter => {\n let re: RegExp;\n if (typeof filter === \"string\") {\n try {\n re = new RegExp(`^${normalizePluginName(filter)}$`);\n } catch (e) {\n invalidFilters.push(filter);\n return [];\n }\n } else {\n re = filter;\n }\n const items = filterableItems.filter(item => {\n return process.env.BABEL_8_BREAKING\n ? re.test(item)\n : re.test(item) ||\n // For backwards compatibility, we also support matching against the\n // proposal- name.\n re.test(item.replace(/^transform-/, \"proposal-\"));\n });\n if (items.length === 0) invalidFilters.push(filter);\n return items;\n });\n\n v.invariant(\n invalidFilters.length === 0,\n `The plugins/built-ins '${invalidFilters.join(\n \", \",\n )}' passed to the '${type}' option are not\n valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`,\n );\n\n return selectedPlugins;\n};\n\nexport const checkDuplicateIncludeExcludes = (\n include: Array = [],\n exclude: Array = [],\n) => {\n const duplicates = include.filter(opt => exclude.indexOf(opt) >= 0);\n\n v.invariant(\n duplicates.length === 0,\n `The plugins/built-ins '${duplicates.join(\n \", \",\n )}' were found in both the \"include\" and\n \"exclude\" options.`,\n );\n};\n\nconst normalizeTargets = (\n targets: string | string[] | Options[\"targets\"],\n): Options[\"targets\"] => {\n // TODO: Allow to use only query or strings as a targets from next breaking change.\n if (typeof targets === \"string\" || Array.isArray(targets)) {\n return { browsers: targets };\n }\n return { ...targets };\n};\n\nexport const validateModulesOption = (\n modulesOpt: ModuleOption = ModulesOption.auto,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n ModulesOption[modulesOpt.toString()] || modulesOpt === ModulesOption.false,\n `The 'modules' option must be one of \\n` +\n ` - 'false' to indicate no module processing\\n` +\n ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` +\n ` - 'auto' (default) which will automatically select 'false' if the current\\n` +\n ` process is known to support ES module syntax, or \"commonjs\" otherwise\\n`,\n );\n\n return modulesOpt;\n};\n\nexport const validateUseBuiltInsOption = (\n builtInsOpt: BuiltInsOption = false,\n) => {\n v.invariant(\n // @ts-expect-error we have provided fallback for undefined keys\n UseBuiltInsOption[builtInsOpt.toString()] ||\n builtInsOpt === UseBuiltInsOption.false,\n `The 'useBuiltIns' option must be either\n 'false' (default) to indicate no polyfill,\n '\"entry\"' to indicate replacing the entry polyfill, or\n '\"usage\"' to import only used polyfills per file`,\n );\n\n return builtInsOpt;\n};\n\nexport type NormalizedCorejsOption = {\n proposals: boolean;\n version: SemVer | null | false;\n};\n\nexport function normalizeCoreJSOption(\n corejs: CorejsOption | undefined | null,\n useBuiltIns: BuiltInsOption,\n): NormalizedCorejsOption {\n let proposals = false;\n let rawVersion: false | string | number | undefined | null;\n\n if (useBuiltIns && corejs === undefined) {\n if (process.env.BABEL_8_BREAKING) {\n throw new Error(\n \"When using the `useBuiltIns` option you must specify\" +\n ' the code-js version you are using, such as `\"corejs\": \"3.32.0\"`.',\n );\n } else {\n rawVersion = 2;\n console.warn(\n \"\\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a \" +\n `core-js version. Currently, we assume version 2.x when no version ` +\n \"is passed. Since this default version will likely change in future \" +\n \"versions of Babel, we recommend explicitly setting the core-js version \" +\n \"you are using via the `corejs` option.\\n\" +\n \"\\nYou should also be sure that the version you pass to the `corejs` \" +\n \"option matches the version specified in your `package.json`'s \" +\n \"`dependencies` section. If it doesn't, you need to run one of the \" +\n \"following commands:\\n\\n\" +\n \" npm install --save core-js@2 npm install --save core-js@3\\n\" +\n \" yarn add core-js@2 yarn add core-js@3\\n\\n\" +\n \"More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\\n\" +\n \"More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs\",\n );\n }\n } else if (typeof corejs === \"object\" && corejs !== null) {\n rawVersion = corejs.version;\n proposals = Boolean(corejs.proposals);\n } else {\n rawVersion = corejs as false | string | number | undefined | null;\n }\n\n const version = rawVersion ? semver.coerce(String(rawVersion)) : false;\n\n if (version) {\n if (useBuiltIns) {\n if (process.env.BABEL_8_BREAKING) {\n if (version.major !== 3) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@3 is supported.\",\n );\n }\n\n if (\n typeof rawVersion !== \"string\" ||\n !String(rawVersion).includes(\".\")\n ) {\n throw new Error(\n 'Invalid Option: The version passed to `corejs` is invalid. Please use string and specify the minor version, such as `\"3.33\"`.',\n );\n }\n } else {\n if (version.major < 2 || version.major > 3) {\n throw new RangeError(\n \"Invalid Option: The version passed to `corejs` is invalid. Currently, \" +\n \"only core-js@2 and core-js@3 are supported.\",\n );\n }\n }\n } else {\n console.warn(\n \"\\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\\n\",\n );\n }\n }\n\n return { version, proposals };\n}\n\nexport default function normalizeOptions(opts: Options) {\n v.validateTopLevelOptions(opts, TopLevelOptions);\n\n const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);\n\n const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);\n\n const include = expandIncludesAndExcludes(\n opts.include,\n TopLevelOptions.include,\n !!corejs.version && corejs.version.major,\n );\n\n const exclude = expandIncludesAndExcludes(\n opts.exclude,\n TopLevelOptions.exclude,\n !!corejs.version && corejs.version.major,\n );\n\n checkDuplicateIncludeExcludes(include, exclude);\n\n if (!process.env.BABEL_8_BREAKING) {\n v.validateBooleanOption(\"loose\", opts.loose);\n v.validateBooleanOption(\"spec\", opts.spec);\n }\n\n return {\n bugfixes: v.validateBooleanOption(\n TopLevelOptions.bugfixes,\n opts.bugfixes,\n process.env.BABEL_8_BREAKING ? true : false,\n ),\n configPath: v.validateStringOption(\n TopLevelOptions.configPath,\n opts.configPath,\n process.cwd(),\n ),\n corejs,\n debug: v.validateBooleanOption(TopLevelOptions.debug, opts.debug, false),\n include,\n exclude,\n forceAllTransforms: v.validateBooleanOption(\n TopLevelOptions.forceAllTransforms,\n opts.forceAllTransforms,\n false,\n ),\n ignoreBrowserslistConfig: v.validateBooleanOption(\n TopLevelOptions.ignoreBrowserslistConfig,\n opts.ignoreBrowserslistConfig,\n false,\n ),\n modules: validateModulesOption(opts.modules),\n shippedProposals: v.validateBooleanOption(\n TopLevelOptions.shippedProposals,\n opts.shippedProposals,\n false,\n ),\n targets: normalizeTargets(opts.targets),\n useBuiltIns: useBuiltIns,\n browserslistEnv: v.validateStringOption(\n TopLevelOptions.browserslistEnv,\n opts.browserslistEnv,\n ),\n };\n}\n","// TODO(Babel 8): Remove this file\n/* eslint sort-keys: \"error\" */\n// These mappings represent the transform plugins that have been\n// shipped by browsers, and are enabled by the `shippedProposals` option.\n\nconst proposalPlugins = new Set();\n\n// proposal syntax plugins enabled by the `shippedProposals` option.\n// Unlike proposalPlugins above, they are independent of compiler targets.\nconst proposalSyntaxPlugins = [\n \"syntax-import-assertions\",\n \"syntax-import-attributes\",\n] as const;\n\n// use intermediary object to enforce alphabetical key order\nconst pluginSyntaxObject = process.env.BABEL_8_BREAKING\n ? {}\n : ({\n \"transform-async-generator-functions\": \"syntax-async-generators\",\n \"transform-class-properties\": \"syntax-class-properties\",\n \"transform-class-static-block\": \"syntax-class-static-block\",\n \"transform-export-namespace-from\": \"syntax-export-namespace-from\",\n \"transform-json-strings\": \"syntax-json-strings\",\n \"transform-nullish-coalescing-operator\":\n \"syntax-nullish-coalescing-operator\",\n \"transform-numeric-separator\": \"syntax-numeric-separator\",\n \"transform-object-rest-spread\": \"syntax-object-rest-spread\",\n \"transform-optional-catch-binding\": \"syntax-optional-catch-binding\",\n \"transform-optional-chaining\": \"syntax-optional-chaining\",\n // note: we don't have syntax-private-methods\n \"transform-private-methods\": \"syntax-class-properties\",\n \"transform-private-property-in-object\":\n \"syntax-private-property-in-object\",\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n \"transform-unicode-property-regex\": null as null,\n } as const);\n\ntype PluginSyntaxObjectKeys = keyof typeof pluginSyntaxObject;\n\nconst pluginSyntaxEntries = Object.keys(pluginSyntaxObject).map<\n [PluginSyntaxObjectKeys, string | null]\n>(function (key: PluginSyntaxObjectKeys) {\n return [key, pluginSyntaxObject[key]];\n});\n\nconst pluginSyntaxMap = new Map(pluginSyntaxEntries);\n\nexport { proposalPlugins, proposalSyntaxPlugins, pluginSyntaxMap };\n","module.exports = require(\"core-js-compat/data\");\n","module.exports = require(\"core-js-compat/get-modules-list-for-target-version\");\n","module.exports = require(\"core-js-compat/entries\");\n","import { declare } from '@babel/helper-plugin-utils';\nimport _getTargets, { prettifyTargets, getInclusionReasons, isRequired } from '@babel/helper-compilation-targets';\nimport * as _babel from '@babel/core';\n\nconst {\n types: t$1,\n template: template\n} = _babel.default || _babel;\nfunction intersection(a, b) {\n const result = new Set();\n a.forEach(v => b.has(v) && result.add(v));\n return result;\n}\nfunction has$1(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\nfunction getType(target) {\n return Object.prototype.toString.call(target).slice(8, -1);\n}\nfunction resolveId(path) {\n if (path.isIdentifier() && !path.scope.hasBinding(path.node.name, /* noGlobals */true)) {\n return path.node.name;\n }\n if (path.isPure()) {\n const {\n deopt\n } = path.evaluate();\n if (deopt && deopt.isIdentifier()) {\n return deopt.node.name;\n }\n }\n}\nfunction resolveKey(path, computed = false) {\n const {\n scope\n } = path;\n if (path.isStringLiteral()) return path.node.value;\n const isIdentifier = path.isIdentifier();\n if (isIdentifier && !(computed || path.parent.computed)) {\n return path.node.name;\n }\n if (computed && path.isMemberExpression() && path.get(\"object\").isIdentifier({\n name: \"Symbol\"\n }) && !scope.hasBinding(\"Symbol\", /* noGlobals */true)) {\n const sym = resolveKey(path.get(\"property\"), path.node.computed);\n if (sym) return \"Symbol.\" + sym;\n }\n if (isIdentifier ? scope.hasBinding(path.node.name, /* noGlobals */true) : path.isPure()) {\n const {\n value\n } = path.evaluate();\n if (typeof value === \"string\") return value;\n }\n}\nfunction resolveSource(obj) {\n if (obj.isMemberExpression() && obj.get(\"property\").isIdentifier({\n name: \"prototype\"\n })) {\n const id = resolveId(obj.get(\"object\"));\n if (id) {\n return {\n id,\n placement: \"prototype\"\n };\n }\n return {\n id: null,\n placement: null\n };\n }\n const id = resolveId(obj);\n if (id) {\n return {\n id,\n placement: \"static\"\n };\n }\n if (obj.isRegExpLiteral()) {\n return {\n id: \"RegExp\",\n placement: \"prototype\"\n };\n } else if (obj.isFunction()) {\n return {\n id: \"Function\",\n placement: \"prototype\"\n };\n } else if (obj.isPure()) {\n const {\n value\n } = obj.evaluate();\n if (value !== undefined) {\n return {\n id: getType(value),\n placement: \"prototype\"\n };\n }\n }\n return {\n id: null,\n placement: null\n };\n}\nfunction getImportSource({\n node\n}) {\n if (node.specifiers.length === 0) return node.source.value;\n}\nfunction getRequireSource({\n node\n}) {\n if (!t$1.isExpressionStatement(node)) return;\n const {\n expression\n } = node;\n if (t$1.isCallExpression(expression) && t$1.isIdentifier(expression.callee) && expression.callee.name === \"require\" && expression.arguments.length === 1 && t$1.isStringLiteral(expression.arguments[0])) {\n return expression.arguments[0].value;\n }\n}\nfunction hoist(node) {\n // @ts-expect-error\n node._blockHoist = 3;\n return node;\n}\nfunction createUtilsGetter(cache) {\n return path => {\n const prog = path.findParent(p => p.isProgram());\n return {\n injectGlobalImport(url, moduleName) {\n cache.storeAnonymous(prog, url, moduleName, (isScript, source) => {\n return isScript ? template.statement.ast`require(${source})` : t$1.importDeclaration([], source);\n });\n },\n injectNamedImport(url, name, hint = name, moduleName) {\n return cache.storeNamed(prog, url, name, moduleName, (isScript, source, name) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`\n var ${id} = require(${source}).${name}\n `) : t$1.importDeclaration([t$1.importSpecifier(id, name)], source),\n name: id.name\n };\n });\n },\n injectDefaultImport(url, hint = url, moduleName) {\n return cache.storeNamed(prog, url, \"default\", moduleName, (isScript, source) => {\n const id = prog.scope.generateUidIdentifier(hint);\n return {\n node: isScript ? hoist(template.statement.ast`var ${id} = require(${source})`) : t$1.importDeclaration([t$1.importDefaultSpecifier(id)], source),\n name: id.name\n };\n });\n }\n };\n };\n}\n\nconst {\n types: t\n} = _babel.default || _babel;\nclass ImportsCachedInjector {\n constructor(resolver, getPreferredIndex) {\n this._imports = new WeakMap();\n this._anonymousImports = new WeakMap();\n this._lastImports = new WeakMap();\n this._resolver = resolver;\n this._getPreferredIndex = getPreferredIndex;\n }\n storeAnonymous(programPath, url, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url);\n const imports = this._ensure(this._anonymousImports, programPath, Set);\n if (imports.has(key)) return;\n const node = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)));\n imports.add(key);\n this._injectImport(programPath, node, moduleName);\n }\n storeNamed(programPath, url, name, moduleName, getVal) {\n const key = this._normalizeKey(programPath, url, name);\n const imports = this._ensure(this._imports, programPath, Map);\n if (!imports.has(key)) {\n const {\n node,\n name: id\n } = getVal(programPath.node.sourceType === \"script\", t.stringLiteral(this._resolver(url)), t.identifier(name));\n imports.set(key, id);\n this._injectImport(programPath, node, moduleName);\n }\n return t.identifier(imports.get(key));\n }\n _injectImport(programPath, node, moduleName) {\n var _this$_lastImports$ge;\n const newIndex = this._getPreferredIndex(moduleName);\n const lastImports = (_this$_lastImports$ge = this._lastImports.get(programPath)) != null ? _this$_lastImports$ge : [];\n const isPathStillValid = path => path.node &&\n // Sometimes the AST is modified and the \"last import\"\n // we have has been replaced\n path.parent === programPath.node && path.container === programPath.node.body;\n let last;\n if (newIndex === Infinity) {\n // Fast path: we can always just insert at the end if newIndex is `Infinity`\n if (lastImports.length > 0) {\n last = lastImports[lastImports.length - 1].path;\n if (!isPathStillValid(last)) last = undefined;\n }\n } else {\n for (const [i, data] of lastImports.entries()) {\n const {\n path,\n index\n } = data;\n if (isPathStillValid(path)) {\n if (newIndex < index) {\n const [newPath] = path.insertBefore(node);\n lastImports.splice(i, 0, {\n path: newPath,\n index: newIndex\n });\n return;\n }\n last = path;\n }\n }\n }\n if (last) {\n const [newPath] = last.insertAfter(node);\n lastImports.push({\n path: newPath,\n index: newIndex\n });\n } else {\n const [newPath] = programPath.unshiftContainer(\"body\", node);\n this._lastImports.set(programPath, [{\n path: newPath,\n index: newIndex\n }]);\n }\n }\n _ensure(map, programPath, Collection) {\n let collection = map.get(programPath);\n if (!collection) {\n collection = new Collection();\n map.set(programPath, collection);\n }\n return collection;\n }\n _normalizeKey(programPath, url, name = \"\") {\n const {\n sourceType\n } = programPath.node;\n\n // If we rely on the imported binding (the \"name\" parameter), we also need to cache\n // based on the sourceType. This is because the module transforms change the names\n // of the import variables.\n return `${name && sourceType}::${url}::${name}`;\n }\n}\n\nconst presetEnvSilentDebugHeader = \"#__secret_key__@babel/preset-env__don't_log_debug_header_and_resolved_targets\";\nfunction stringifyTargetsMultiline(targets) {\n return JSON.stringify(prettifyTargets(targets), null, 2);\n}\n\nfunction patternToRegExp(pattern) {\n if (pattern instanceof RegExp) return pattern;\n try {\n return new RegExp(`^${pattern}$`);\n } catch {\n return null;\n }\n}\nfunction buildUnusedError(label, unused) {\n if (!unused.length) return \"\";\n return ` - The following \"${label}\" patterns didn't match any polyfill:\\n` + unused.map(original => ` ${String(original)}\\n`).join(\"\");\n}\nfunction buldDuplicatesError(duplicates) {\n if (!duplicates.size) return \"\";\n return ` - The following polyfills were matched both by \"include\" and \"exclude\" patterns:\\n` + Array.from(duplicates, name => ` ${name}\\n`).join(\"\");\n}\nfunction validateIncludeExclude(provider, polyfills, includePatterns, excludePatterns) {\n let current;\n const filter = pattern => {\n const regexp = patternToRegExp(pattern);\n if (!regexp) return false;\n let matched = false;\n for (const polyfill of polyfills.keys()) {\n if (regexp.test(polyfill)) {\n matched = true;\n current.add(polyfill);\n }\n }\n return !matched;\n };\n\n // prettier-ignore\n const include = current = new Set();\n const unusedInclude = Array.from(includePatterns).filter(filter);\n\n // prettier-ignore\n const exclude = current = new Set();\n const unusedExclude = Array.from(excludePatterns).filter(filter);\n const duplicates = intersection(include, exclude);\n if (duplicates.size > 0 || unusedInclude.length > 0 || unusedExclude.length > 0) {\n throw new Error(`Error while validating the \"${provider}\" provider options:\\n` + buildUnusedError(\"include\", unusedInclude) + buildUnusedError(\"exclude\", unusedExclude) + buldDuplicatesError(duplicates));\n }\n return {\n include,\n exclude\n };\n}\nfunction applyMissingDependenciesDefaults(options, babelApi) {\n const {\n missingDependencies = {}\n } = options;\n if (missingDependencies === false) return false;\n const caller = babelApi.caller(caller => caller == null ? void 0 : caller.name);\n const {\n log = \"deferred\",\n inject = caller === \"rollup-plugin-babel\" ? \"throw\" : \"import\",\n all = false\n } = missingDependencies;\n return {\n log,\n inject,\n all\n };\n}\n\nfunction isRemoved(path) {\n if (path.removed) return true;\n if (!path.parentPath) return false;\n if (path.listKey) {\n if (!path.parentPath.node[path.listKey].includes(path.node)) return true;\n } else {\n if (path.parentPath.node[path.key] !== path.node) return true;\n }\n return isRemoved(path.parentPath);\n}\nvar usage = (callProvider => {\n function property(object, key, placement, path) {\n return callProvider({\n kind: \"property\",\n object,\n key,\n placement\n }, path);\n }\n function handleReferencedIdentifier(path) {\n const {\n node: {\n name\n },\n scope\n } = path;\n if (scope.getBindingIdentifier(name)) return;\n callProvider({\n kind: \"global\",\n name\n }, path);\n }\n function analyzeMemberExpression(path) {\n const key = resolveKey(path.get(\"property\"), path.node.computed);\n return {\n key,\n handleAsMemberExpression: !!key && key !== \"prototype\"\n };\n }\n return {\n // Symbol(), new Promise\n ReferencedIdentifier(path) {\n const {\n parentPath\n } = path;\n if (parentPath.isMemberExpression({\n object: path.node\n }) && analyzeMemberExpression(parentPath).handleAsMemberExpression) {\n return;\n }\n handleReferencedIdentifier(path);\n },\n MemberExpression(path) {\n const {\n key,\n handleAsMemberExpression\n } = analyzeMemberExpression(path);\n if (!handleAsMemberExpression) return;\n const object = path.get(\"object\");\n let objectIsGlobalIdentifier = object.isIdentifier();\n if (objectIsGlobalIdentifier) {\n const binding = object.scope.getBinding(object.node.name);\n if (binding) {\n if (binding.path.isImportNamespaceSpecifier()) return;\n objectIsGlobalIdentifier = false;\n }\n }\n const source = resolveSource(object);\n let skipObject = property(source.id, key, source.placement, path);\n skipObject || (skipObject = !objectIsGlobalIdentifier || path.shouldSkip || object.shouldSkip || isRemoved(object));\n if (!skipObject) handleReferencedIdentifier(object);\n },\n ObjectPattern(path) {\n const {\n parentPath,\n parent\n } = path;\n let obj;\n\n // const { keys, values } = Object\n if (parentPath.isVariableDeclarator()) {\n obj = parentPath.get(\"init\");\n // ({ keys, values } = Object)\n } else if (parentPath.isAssignmentExpression()) {\n obj = parentPath.get(\"right\");\n // !function ({ keys, values }) {...} (Object)\n // resolution does not work after properties transform :-(\n } else if (parentPath.isFunction()) {\n const grand = parentPath.parentPath;\n if (grand.isCallExpression() || grand.isNewExpression()) {\n if (grand.node.callee === parent) {\n obj = grand.get(\"arguments\")[path.key];\n }\n }\n }\n let id = null;\n let placement = null;\n if (obj) ({\n id,\n placement\n } = resolveSource(obj));\n for (const prop of path.get(\"properties\")) {\n if (prop.isObjectProperty()) {\n const key = resolveKey(prop.get(\"key\"));\n if (key) property(id, key, placement, prop);\n }\n }\n },\n BinaryExpression(path) {\n if (path.node.operator !== \"in\") return;\n const source = resolveSource(path.get(\"right\"));\n const key = resolveKey(path.get(\"left\"), true);\n if (!key) return;\n callProvider({\n kind: \"in\",\n object: source.id,\n key,\n placement: source.placement\n }, path);\n }\n };\n});\n\nvar entry = (callProvider => ({\n ImportDeclaration(path) {\n const source = getImportSource(path);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, path);\n },\n Program(path) {\n path.get(\"body\").forEach(bodyPath => {\n const source = getRequireSource(bodyPath);\n if (!source) return;\n callProvider({\n kind: \"import\",\n source\n }, bodyPath);\n });\n }\n}));\n\nfunction resolve(dirname, moduleName, absoluteImports) {\n if (absoluteImports === false) return moduleName;\n throw new Error(`\"absoluteImports\" is not supported in bundles prepared for the browser.`);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction has(basedir, name) {\n return true;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction logMissing(missingDeps) {}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nfunction laterLogMissing(missingDeps) {}\n\nconst PossibleGlobalObjects = new Set([\"global\", \"globalThis\", \"self\", \"window\"]);\nfunction createMetaResolver(polyfills) {\n const {\n static: staticP,\n instance: instanceP,\n global: globalP\n } = polyfills;\n return meta => {\n if (meta.kind === \"global\" && globalP && has$1(globalP, meta.name)) {\n return {\n kind: \"global\",\n desc: globalP[meta.name],\n name: meta.name\n };\n }\n if (meta.kind === \"property\" || meta.kind === \"in\") {\n const {\n placement,\n object,\n key\n } = meta;\n if (object && placement === \"static\") {\n if (globalP && PossibleGlobalObjects.has(object) && has$1(globalP, key)) {\n return {\n kind: \"global\",\n desc: globalP[key],\n name: key\n };\n }\n if (staticP && has$1(staticP, object) && has$1(staticP[object], key)) {\n return {\n kind: \"static\",\n desc: staticP[object][key],\n name: `${object}$${key}`\n };\n }\n }\n if (instanceP && has$1(instanceP, key)) {\n return {\n kind: \"instance\",\n desc: instanceP[key],\n name: `${key}`\n };\n }\n }\n };\n}\n\nconst getTargets = _getTargets.default || _getTargets;\nfunction resolveOptions(options, babelApi) {\n const {\n method,\n targets: targetsOption,\n ignoreBrowserslistConfig,\n configPath,\n debug,\n shouldInjectPolyfill,\n absoluteImports,\n ...providerOptions\n } = options;\n if (isEmpty(options)) {\n throw new Error(`\\\nThis plugin requires options, for example:\n {\n \"plugins\": [\n [\"\", { method: \"usage-pure\" }]\n ]\n }\n\nSee more options at https://github.com/babel/babel-polyfills/blob/main/docs/usage.md`);\n }\n let methodName;\n if (method === \"usage-global\") methodName = \"usageGlobal\";else if (method === \"entry-global\") methodName = \"entryGlobal\";else if (method === \"usage-pure\") methodName = \"usagePure\";else if (typeof method !== \"string\") {\n throw new Error(\".method must be a string\");\n } else {\n throw new Error(`.method must be one of \"entry-global\", \"usage-global\"` + ` or \"usage-pure\" (received ${JSON.stringify(method)})`);\n }\n if (typeof shouldInjectPolyfill === \"function\") {\n if (options.include || options.exclude) {\n throw new Error(`.include and .exclude are not supported when using the` + ` .shouldInjectPolyfill function.`);\n }\n } else if (shouldInjectPolyfill != null) {\n throw new Error(`.shouldInjectPolyfill must be a function, or undefined` + ` (received ${JSON.stringify(shouldInjectPolyfill)})`);\n }\n if (absoluteImports != null && typeof absoluteImports !== \"boolean\" && typeof absoluteImports !== \"string\") {\n throw new Error(`.absoluteImports must be a boolean, a string, or undefined` + ` (received ${JSON.stringify(absoluteImports)})`);\n }\n let targets;\n if (\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n targetsOption || configPath || ignoreBrowserslistConfig) {\n const targetsObj = typeof targetsOption === \"string\" || Array.isArray(targetsOption) ? {\n browsers: targetsOption\n } : targetsOption;\n targets = getTargets(targetsObj, {\n ignoreBrowserslistConfig,\n configPath\n });\n } else {\n targets = babelApi.targets();\n }\n return {\n method,\n methodName,\n targets,\n absoluteImports: absoluteImports != null ? absoluteImports : false,\n shouldInjectPolyfill,\n debug: !!debug,\n providerOptions: providerOptions\n };\n}\nfunction instantiateProvider(factory, options, missingDependencies, dirname, debugLog, babelApi) {\n const {\n method,\n methodName,\n targets,\n debug,\n shouldInjectPolyfill,\n providerOptions,\n absoluteImports\n } = resolveOptions(options, babelApi);\n\n // eslint-disable-next-line prefer-const\n let include, exclude;\n let polyfillsSupport;\n let polyfillsNames;\n let filterPolyfills;\n const getUtils = createUtilsGetter(new ImportsCachedInjector(moduleName => resolve(dirname, moduleName, absoluteImports), name => {\n var _polyfillsNames$get, _polyfillsNames;\n return (_polyfillsNames$get = (_polyfillsNames = polyfillsNames) == null ? void 0 : _polyfillsNames.get(name)) != null ? _polyfillsNames$get : Infinity;\n }));\n const depsCache = new Map();\n const api = {\n babel: babelApi,\n getUtils,\n method: options.method,\n targets,\n createMetaResolver,\n shouldInjectPolyfill(name) {\n if (polyfillsNames === undefined) {\n throw new Error(`Internal error in the ${factory.name} provider: ` + `shouldInjectPolyfill() can't be called during initialization.`);\n }\n if (!polyfillsNames.has(name)) {\n console.warn(`Internal error in the ${providerName} provider: ` + `unknown polyfill \"${name}\".`);\n }\n if (filterPolyfills && !filterPolyfills(name)) return false;\n let shouldInject = isRequired(name, targets, {\n compatData: polyfillsSupport,\n includes: include,\n excludes: exclude\n });\n if (shouldInjectPolyfill) {\n shouldInject = shouldInjectPolyfill(name, shouldInject);\n if (typeof shouldInject !== \"boolean\") {\n throw new Error(`.shouldInjectPolyfill must return a boolean.`);\n }\n }\n return shouldInject;\n },\n debug(name) {\n var _debugLog, _debugLog$polyfillsSu;\n debugLog().found = true;\n if (!debug || !name) return;\n if (debugLog().polyfills.has(providerName)) return;\n debugLog().polyfills.add(name);\n (_debugLog$polyfillsSu = (_debugLog = debugLog()).polyfillsSupport) != null ? _debugLog$polyfillsSu : _debugLog.polyfillsSupport = polyfillsSupport;\n },\n assertDependency(name, version = \"*\") {\n if (missingDependencies === false) return;\n if (absoluteImports) {\n // If absoluteImports is not false, we will try resolving\n // the dependency and throw if it's not possible. We can\n // skip the check here.\n return;\n }\n const dep = version === \"*\" ? name : `${name}@^${version}`;\n const found = missingDependencies.all ? false : mapGetOr(depsCache, `${name} :: ${dirname}`, () => has());\n if (!found) {\n debugLog().missingDeps.add(dep);\n }\n }\n };\n const provider = factory(api, providerOptions, dirname);\n const providerName = provider.name || factory.name;\n if (typeof provider[methodName] !== \"function\") {\n throw new Error(`The \"${providerName}\" provider doesn't support the \"${method}\" polyfilling method.`);\n }\n if (Array.isArray(provider.polyfills)) {\n polyfillsNames = new Map(provider.polyfills.map((name, index) => [name, index]));\n filterPolyfills = provider.filterPolyfills;\n } else if (provider.polyfills) {\n polyfillsNames = new Map(Object.keys(provider.polyfills).map((name, index) => [name, index]));\n polyfillsSupport = provider.polyfills;\n filterPolyfills = provider.filterPolyfills;\n } else {\n polyfillsNames = new Map();\n }\n ({\n include,\n exclude\n } = validateIncludeExclude(providerName, polyfillsNames, providerOptions.include || [], providerOptions.exclude || []));\n let callProvider;\n if (methodName === \"usageGlobal\") {\n callProvider = (payload, path) => {\n var _ref;\n const utils = getUtils(path);\n return (_ref = provider[methodName](payload, utils, path)) != null ? _ref : false;\n };\n } else {\n callProvider = (payload, path) => {\n const utils = getUtils(path);\n provider[methodName](payload, utils, path);\n return false;\n };\n }\n return {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n };\n}\nfunction definePolyfillProvider(factory) {\n return declare((babelApi, options, dirname) => {\n babelApi.assertVersion(\"^7.0.0 || ^8.0.0-alpha.0\");\n const {\n traverse\n } = babelApi;\n let debugLog;\n const missingDependencies = applyMissingDependenciesDefaults(options, babelApi);\n const {\n debug,\n method,\n targets,\n provider,\n providerName,\n callProvider\n } = instantiateProvider(factory, options, missingDependencies, dirname, () => debugLog, babelApi);\n const createVisitor = method === \"entry-global\" ? entry : usage;\n const visitor = provider.visitor ? traverse.visitors.merge([createVisitor(callProvider), provider.visitor]) : createVisitor(callProvider);\n if (debug && debug !== presetEnvSilentDebugHeader) {\n console.log(`${providerName}: \\`DEBUG\\` option`);\n console.log(`\\nUsing targets: ${stringifyTargetsMultiline(targets)}`);\n console.log(`\\nUsing polyfills with \\`${method}\\` method:`);\n }\n const {\n runtimeName\n } = provider;\n return {\n name: \"inject-polyfills\",\n visitor,\n pre(file) {\n var _provider$pre;\n if (runtimeName) {\n if (file.get(\"runtimeHelpersModuleName\") && file.get(\"runtimeHelpersModuleName\") !== runtimeName) {\n console.warn(`Two different polyfill providers` + ` (${file.get(\"runtimeHelpersModuleProvider\")}` + ` and ${providerName}) are trying to define two` + ` conflicting @babel/runtime alternatives:` + ` ${file.get(\"runtimeHelpersModuleName\")} and ${runtimeName}.` + ` The second one will be ignored.`);\n } else {\n file.set(\"runtimeHelpersModuleName\", runtimeName);\n file.set(\"runtimeHelpersModuleProvider\", providerName);\n }\n }\n debugLog = {\n polyfills: new Set(),\n polyfillsSupport: undefined,\n found: false,\n providers: new Set(),\n missingDeps: new Set()\n };\n (_provider$pre = provider.pre) == null ? void 0 : _provider$pre.apply(this, arguments);\n },\n post() {\n var _provider$post;\n (_provider$post = provider.post) == null ? void 0 : _provider$post.apply(this, arguments);\n if (missingDependencies !== false) {\n if (missingDependencies.log === \"per-file\") {\n logMissing(debugLog.missingDeps);\n } else {\n laterLogMissing(debugLog.missingDeps);\n }\n }\n if (!debug) return;\n if (this.filename) console.log(`\\n[${this.filename}]`);\n if (debugLog.polyfills.size === 0) {\n console.log(method === \"entry-global\" ? debugLog.found ? `Based on your targets, the ${providerName} polyfill did not add any polyfill.` : `The entry point for the ${providerName} polyfill has not been found.` : `Based on your code and targets, the ${providerName} polyfill did not add any polyfill.`);\n return;\n }\n if (method === \"entry-global\") {\n console.log(`The ${providerName} polyfill entry has been replaced with ` + `the following polyfills:`);\n } else {\n console.log(`The ${providerName} polyfill added the following polyfills:`);\n }\n for (const name of debugLog.polyfills) {\n var _debugLog$polyfillsSu2;\n if ((_debugLog$polyfillsSu2 = debugLog.polyfillsSupport) != null && _debugLog$polyfillsSu2[name]) {\n const filteredTargets = getInclusionReasons(name, targets, debugLog.polyfillsSupport);\n const formattedTargets = JSON.stringify(filteredTargets).replace(/,/g, \", \").replace(/^\\{\"/, '{ \"').replace(/\"\\}$/, '\" }');\n console.log(` ${name} ${formattedTargets}`);\n } else {\n console.log(` ${name}`);\n }\n }\n }\n };\n });\n}\nfunction mapGetOr(map, key, getDefault) {\n let val = map.get(key);\n if (val === undefined) {\n val = getDefault();\n map.set(key, val);\n }\n return val;\n}\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\nexport default definePolyfillProvider;\n//# sourceMappingURL=index.browser.mjs.map\n","import corejs3Polyfills from '../core-js-compat/data.js';\nimport getModulesListForTargetVersion from '../core-js-compat/get-modules-list-for-target-version.js';\nimport * as _babel from '@babel/core';\nimport corejsEntries from '../core-js-compat/entries.js';\nimport defineProvider from '@babel/helper-define-polyfill-provider';\n\n// This file is automatically generated by scripts/build-corejs3-shipped-proposals.mjs\n\nvar corejs3ShippedProposalsList = new Set([\"esnext.suppressed-error.constructor\", \"esnext.array.from-async\", \"esnext.array.group\", \"esnext.array.group-to-map\", \"esnext.iterator.constructor\", \"esnext.iterator.drop\", \"esnext.iterator.every\", \"esnext.iterator.filter\", \"esnext.iterator.find\", \"esnext.iterator.flat-map\", \"esnext.iterator.for-each\", \"esnext.iterator.from\", \"esnext.iterator.map\", \"esnext.iterator.reduce\", \"esnext.iterator.some\", \"esnext.iterator.take\", \"esnext.iterator.to-array\", \"esnext.json.is-raw-json\", \"esnext.json.parse\", \"esnext.json.raw-json\", \"esnext.set.difference.v2\", \"esnext.set.intersection.v2\", \"esnext.set.is-disjoint-from.v2\", \"esnext.set.is-subset-of.v2\", \"esnext.set.is-superset-of.v2\", \"esnext.set.symmetric-difference.v2\", \"esnext.set.union.v2\", \"esnext.symbol.async-dispose\", \"esnext.symbol.dispose\", \"esnext.symbol.metadata\"]);\n\nconst polyfillsOrder = {};\nObject.keys(corejs3Polyfills).forEach((name, index) => {\n polyfillsOrder[name] = index;\n});\nconst define = (pure, global, name = global[0], exclude) => {\n return {\n name,\n pure,\n global: global.sort((a, b) => polyfillsOrder[a] - polyfillsOrder[b]),\n exclude\n };\n};\nconst typed = (...modules) => define(null, [...modules, ...TypedArrayDependencies]);\nconst ArrayNatureIterators = [\"es.array.iterator\", \"web.dom-collections.iterator\"];\nconst CommonIterators = [\"es.string.iterator\", ...ArrayNatureIterators];\nconst ArrayNatureIteratorsWithTag = [\"es.object.to-string\", ...ArrayNatureIterators];\nconst CommonIteratorsWithTag = [\"es.object.to-string\", ...CommonIterators];\nconst ErrorDependencies = [\"es.error.cause\", \"es.error.to-string\"];\nconst SuppressedErrorDependencies = [\"esnext.suppressed-error.constructor\", ...ErrorDependencies];\nconst TypedArrayDependencies = [\"es.typed-array.at\", \"es.typed-array.copy-within\", \"es.typed-array.every\", \"es.typed-array.fill\", \"es.typed-array.filter\", \"es.typed-array.find\", \"es.typed-array.find-index\", \"es.typed-array.find-last\", \"es.typed-array.find-last-index\", \"es.typed-array.for-each\", \"es.typed-array.includes\", \"es.typed-array.index-of\", \"es.typed-array.iterator\", \"es.typed-array.join\", \"es.typed-array.last-index-of\", \"es.typed-array.map\", \"es.typed-array.reduce\", \"es.typed-array.reduce-right\", \"es.typed-array.reverse\", \"es.typed-array.set\", \"es.typed-array.slice\", \"es.typed-array.some\", \"es.typed-array.sort\", \"es.typed-array.subarray\", \"es.typed-array.to-locale-string\", \"es.typed-array.to-reversed\", \"es.typed-array.to-sorted\", \"es.typed-array.to-string\", \"es.typed-array.with\", \"es.object.to-string\", \"es.array.iterator\", \"es.array-buffer.slice\", \"es.data-view\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"esnext.typed-array.filter-reject\", \"esnext.typed-array.group-by\", \"esnext.typed-array.to-spliced\", \"esnext.typed-array.unique-by\"];\nconst PromiseDependencies = [\"es.promise\", \"es.object.to-string\"];\nconst PromiseDependenciesWithIterators = [...PromiseDependencies, ...CommonIterators];\nconst SymbolDependencies = [\"es.symbol\", \"es.symbol.description\", \"es.object.to-string\"];\nconst MapDependencies = [\"es.map\", \"esnext.map.delete-all\", \"esnext.map.emplace\", \"esnext.map.every\", \"esnext.map.filter\", \"esnext.map.find\", \"esnext.map.find-key\", \"esnext.map.includes\", \"esnext.map.key-of\", \"esnext.map.map-keys\", \"esnext.map.map-values\", \"esnext.map.merge\", \"esnext.map.reduce\", \"esnext.map.some\", \"esnext.map.update\", ...CommonIteratorsWithTag];\nconst SetDependencies = [\"es.set\", \"esnext.set.add-all\", \"esnext.set.delete-all\", \"esnext.set.difference\", \"esnext.set.difference.v2\", \"esnext.set.every\", \"esnext.set.filter\", \"esnext.set.find\", \"esnext.set.intersection\", \"esnext.set.intersection.v2\", \"esnext.set.is-disjoint-from\", \"esnext.set.is-disjoint-from.v2\", \"esnext.set.is-subset-of\", \"esnext.set.is-subset-of.v2\", \"esnext.set.is-superset-of\", \"esnext.set.is-superset-of.v2\", \"esnext.set.join\", \"esnext.set.map\", \"esnext.set.reduce\", \"esnext.set.some\", \"esnext.set.symmetric-difference\", \"esnext.set.symmetric-difference.v2\", \"esnext.set.union\", \"esnext.set.union.v2\", ...CommonIteratorsWithTag];\nconst WeakMapDependencies = [\"es.weak-map\", \"esnext.weak-map.delete-all\", \"esnext.weak-map.emplace\", ...CommonIteratorsWithTag];\nconst WeakSetDependencies = [\"es.weak-set\", \"esnext.weak-set.add-all\", \"esnext.weak-set.delete-all\", ...CommonIteratorsWithTag];\nconst DOMExceptionDependencies = [\"web.dom-exception.constructor\", \"web.dom-exception.stack\", \"web.dom-exception.to-string-tag\", \"es.error.to-string\"];\nconst URLSearchParamsDependencies = [\"web.url-search-params\", \"web.url-search-params.delete\", \"web.url-search-params.has\", \"web.url-search-params.size\", ...CommonIteratorsWithTag];\nconst AsyncIteratorDependencies = [\"esnext.async-iterator.constructor\", ...PromiseDependencies];\nconst AsyncIteratorProblemMethods = [\"esnext.async-iterator.every\", \"esnext.async-iterator.filter\", \"esnext.async-iterator.find\", \"esnext.async-iterator.flat-map\", \"esnext.async-iterator.for-each\", \"esnext.async-iterator.map\", \"esnext.async-iterator.reduce\", \"esnext.async-iterator.some\"];\nconst IteratorDependencies = [\"esnext.iterator.constructor\", \"es.object.to-string\"];\nconst DecoratorMetadataDependencies = [\"esnext.symbol.metadata\", \"esnext.function.metadata\"];\nconst TypedArrayStaticMethods = base => ({\n from: define(null, [\"es.typed-array.from\", base, ...TypedArrayDependencies]),\n fromAsync: define(null, [\"esnext.typed-array.from-async\", base, ...PromiseDependenciesWithIterators, ...TypedArrayDependencies]),\n of: define(null, [\"es.typed-array.of\", base, ...TypedArrayDependencies])\n});\nconst DataViewDependencies = [\"es.data-view\", \"es.array-buffer.constructor\", \"es.array-buffer.slice\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"es.object.to-string\"];\nconst BuiltIns = {\n AsyncDisposableStack: define(\"async-disposable-stack/index\", [\"esnext.async-disposable-stack.constructor\", \"es.object.to-string\", \"esnext.async-iterator.async-dispose\", \"esnext.iterator.dispose\", ...PromiseDependencies, ...SuppressedErrorDependencies]),\n AsyncIterator: define(\"async-iterator/index\", AsyncIteratorDependencies),\n AggregateError: define(\"aggregate-error\", [\"es.aggregate-error\", ...ErrorDependencies, ...CommonIteratorsWithTag, \"es.aggregate-error.cause\"]),\n ArrayBuffer: define(null, [\"es.array-buffer.constructor\", \"es.array-buffer.slice\", \"es.data-view\", \"es.array-buffer.detached\", \"es.array-buffer.transfer\", \"es.array-buffer.transfer-to-fixed-length\", \"es.object.to-string\"]),\n DataView: define(null, DataViewDependencies),\n Date: define(null, [\"es.date.to-string\"]),\n DOMException: define(\"dom-exception/index\", DOMExceptionDependencies),\n DisposableStack: define(\"disposable-stack/index\", [\"esnext.disposable-stack.constructor\", \"es.object.to-string\", \"esnext.iterator.dispose\", ...SuppressedErrorDependencies]),\n Error: define(null, ErrorDependencies),\n EvalError: define(null, ErrorDependencies),\n Float32Array: typed(\"es.typed-array.float32-array\"),\n Float64Array: typed(\"es.typed-array.float64-array\"),\n Int8Array: typed(\"es.typed-array.int8-array\"),\n Int16Array: typed(\"es.typed-array.int16-array\"),\n Int32Array: typed(\"es.typed-array.int32-array\"),\n Iterator: define(\"iterator/index\", IteratorDependencies),\n Uint8Array: typed(\"es.typed-array.uint8-array\", \"esnext.uint8-array.to-base64\", \"esnext.uint8-array.to-hex\"),\n Uint8ClampedArray: typed(\"es.typed-array.uint8-clamped-array\"),\n Uint16Array: typed(\"es.typed-array.uint16-array\"),\n Uint32Array: typed(\"es.typed-array.uint32-array\"),\n Map: define(\"map/index\", MapDependencies),\n Number: define(null, [\"es.number.constructor\"]),\n Observable: define(\"observable/index\", [\"esnext.observable\", \"esnext.symbol.observable\", \"es.object.to-string\", ...CommonIteratorsWithTag]),\n Promise: define(\"promise/index\", PromiseDependencies),\n RangeError: define(null, ErrorDependencies),\n ReferenceError: define(null, ErrorDependencies),\n Reflect: define(null, [\"es.reflect.to-string-tag\", \"es.object.to-string\"]),\n RegExp: define(null, [\"es.regexp.constructor\", \"es.regexp.dot-all\", \"es.regexp.exec\", \"es.regexp.sticky\", \"es.regexp.to-string\"]),\n Set: define(\"set/index\", SetDependencies),\n SuppressedError: define(\"suppressed-error\", SuppressedErrorDependencies),\n Symbol: define(\"symbol/index\", SymbolDependencies),\n SyntaxError: define(null, ErrorDependencies),\n TypeError: define(null, ErrorDependencies),\n URIError: define(null, ErrorDependencies),\n URL: define(\"url/index\", [\"web.url\", \"web.url.to-json\", ...URLSearchParamsDependencies]),\n URLSearchParams: define(\"url-search-params/index\", URLSearchParamsDependencies),\n WeakMap: define(\"weak-map/index\", WeakMapDependencies),\n WeakSet: define(\"weak-set/index\", WeakSetDependencies),\n atob: define(\"atob\", [\"web.atob\", ...DOMExceptionDependencies]),\n btoa: define(\"btoa\", [\"web.btoa\", ...DOMExceptionDependencies]),\n clearImmediate: define(\"clear-immediate\", [\"web.immediate\"]),\n compositeKey: define(\"composite-key\", [\"esnext.composite-key\"]),\n compositeSymbol: define(\"composite-symbol\", [\"esnext.composite-symbol\"]),\n escape: define(\"escape\", [\"es.escape\"]),\n fetch: define(null, PromiseDependencies),\n globalThis: define(\"global-this\", [\"es.global-this\"]),\n parseFloat: define(\"parse-float\", [\"es.parse-float\"]),\n parseInt: define(\"parse-int\", [\"es.parse-int\"]),\n queueMicrotask: define(\"queue-microtask\", [\"web.queue-microtask\"]),\n self: define(\"self\", [\"web.self\"]),\n setImmediate: define(\"set-immediate\", [\"web.immediate\"]),\n setInterval: define(\"set-interval\", [\"web.timers\"]),\n setTimeout: define(\"set-timeout\", [\"web.timers\"]),\n structuredClone: define(\"structured-clone\", [\"web.structured-clone\", ...DOMExceptionDependencies, \"es.array.iterator\", \"es.object.keys\", \"es.object.to-string\", \"es.map\", \"es.set\"]),\n unescape: define(\"unescape\", [\"es.unescape\"])\n};\nconst StaticProperties = {\n AsyncIterator: {\n from: define(\"async-iterator/from\", [\"esnext.async-iterator.from\", ...AsyncIteratorDependencies, ...AsyncIteratorProblemMethods, ...CommonIterators])\n },\n Array: {\n from: define(\"array/from\", [\"es.array.from\", \"es.string.iterator\"]),\n fromAsync: define(\"array/from-async\", [\"esnext.array.from-async\", ...PromiseDependenciesWithIterators]),\n isArray: define(\"array/is-array\", [\"es.array.is-array\"]),\n isTemplateObject: define(\"array/is-template-object\", [\"esnext.array.is-template-object\"]),\n of: define(\"array/of\", [\"es.array.of\"])\n },\n ArrayBuffer: {\n isView: define(null, [\"es.array-buffer.is-view\"])\n },\n BigInt: {\n range: define(\"bigint/range\", [\"esnext.bigint.range\", \"es.object.to-string\"])\n },\n Date: {\n now: define(\"date/now\", [\"es.date.now\"])\n },\n Function: {\n isCallable: define(\"function/is-callable\", [\"esnext.function.is-callable\"]),\n isConstructor: define(\"function/is-constructor\", [\"esnext.function.is-constructor\"])\n },\n Iterator: {\n from: define(\"iterator/from\", [\"esnext.iterator.from\", ...IteratorDependencies, ...CommonIterators]),\n range: define(\"iterator/range\", [\"esnext.iterator.range\", \"es.object.to-string\"])\n },\n JSON: {\n isRawJSON: define(\"json/is-raw-json\", [\"esnext.json.is-raw-json\"]),\n parse: define(\"json/parse\", [\"esnext.json.parse\", \"es.object.keys\"]),\n rawJSON: define(\"json/raw-json\", [\"esnext.json.raw-json\", \"es.object.create\", \"es.object.freeze\"]),\n stringify: define(\"json/stringify\", [\"es.json.stringify\", \"es.date.to-json\"], \"es.symbol\")\n },\n Math: {\n DEG_PER_RAD: define(\"math/deg-per-rad\", [\"esnext.math.deg-per-rad\"]),\n RAD_PER_DEG: define(\"math/rad-per-deg\", [\"esnext.math.rad-per-deg\"]),\n acosh: define(\"math/acosh\", [\"es.math.acosh\"]),\n asinh: define(\"math/asinh\", [\"es.math.asinh\"]),\n atanh: define(\"math/atanh\", [\"es.math.atanh\"]),\n cbrt: define(\"math/cbrt\", [\"es.math.cbrt\"]),\n clamp: define(\"math/clamp\", [\"esnext.math.clamp\"]),\n clz32: define(\"math/clz32\", [\"es.math.clz32\"]),\n cosh: define(\"math/cosh\", [\"es.math.cosh\"]),\n degrees: define(\"math/degrees\", [\"esnext.math.degrees\"]),\n expm1: define(\"math/expm1\", [\"es.math.expm1\"]),\n fround: define(\"math/fround\", [\"es.math.fround\"]),\n f16round: define(\"math/f16round\", [\"esnext.math.f16round\"]),\n fscale: define(\"math/fscale\", [\"esnext.math.fscale\"]),\n hypot: define(\"math/hypot\", [\"es.math.hypot\"]),\n iaddh: define(\"math/iaddh\", [\"esnext.math.iaddh\"]),\n imul: define(\"math/imul\", [\"es.math.imul\"]),\n imulh: define(\"math/imulh\", [\"esnext.math.imulh\"]),\n isubh: define(\"math/isubh\", [\"esnext.math.isubh\"]),\n log10: define(\"math/log10\", [\"es.math.log10\"]),\n log1p: define(\"math/log1p\", [\"es.math.log1p\"]),\n log2: define(\"math/log2\", [\"es.math.log2\"]),\n radians: define(\"math/radians\", [\"esnext.math.radians\"]),\n scale: define(\"math/scale\", [\"esnext.math.scale\"]),\n seededPRNG: define(\"math/seeded-prng\", [\"esnext.math.seeded-prng\"]),\n sign: define(\"math/sign\", [\"es.math.sign\"]),\n signbit: define(\"math/signbit\", [\"esnext.math.signbit\"]),\n sinh: define(\"math/sinh\", [\"es.math.sinh\"]),\n tanh: define(\"math/tanh\", [\"es.math.tanh\"]),\n trunc: define(\"math/trunc\", [\"es.math.trunc\"]),\n umulh: define(\"math/umulh\", [\"esnext.math.umulh\"])\n },\n Map: {\n from: define(null, [\"esnext.map.from\", ...MapDependencies]),\n groupBy: define(\"map/group-by\", [\"es.map.group-by\", ...MapDependencies]),\n keyBy: define(\"map/key-by\", [\"esnext.map.key-by\", ...MapDependencies]),\n of: define(null, [\"esnext.map.of\", ...MapDependencies])\n },\n Number: {\n EPSILON: define(\"number/epsilon\", [\"es.number.epsilon\"]),\n MAX_SAFE_INTEGER: define(\"number/max-safe-integer\", [\"es.number.max-safe-integer\"]),\n MIN_SAFE_INTEGER: define(\"number/min-safe-integer\", [\"es.number.min-safe-integer\"]),\n fromString: define(\"number/from-string\", [\"esnext.number.from-string\"]),\n isFinite: define(\"number/is-finite\", [\"es.number.is-finite\"]),\n isInteger: define(\"number/is-integer\", [\"es.number.is-integer\"]),\n isNaN: define(\"number/is-nan\", [\"es.number.is-nan\"]),\n isSafeInteger: define(\"number/is-safe-integer\", [\"es.number.is-safe-integer\"]),\n parseFloat: define(\"number/parse-float\", [\"es.number.parse-float\"]),\n parseInt: define(\"number/parse-int\", [\"es.number.parse-int\"]),\n range: define(\"number/range\", [\"esnext.number.range\", \"es.object.to-string\"])\n },\n Object: {\n assign: define(\"object/assign\", [\"es.object.assign\"]),\n create: define(\"object/create\", [\"es.object.create\"]),\n defineProperties: define(\"object/define-properties\", [\"es.object.define-properties\"]),\n defineProperty: define(\"object/define-property\", [\"es.object.define-property\"]),\n entries: define(\"object/entries\", [\"es.object.entries\"]),\n freeze: define(\"object/freeze\", [\"es.object.freeze\"]),\n fromEntries: define(\"object/from-entries\", [\"es.object.from-entries\", \"es.array.iterator\"]),\n getOwnPropertyDescriptor: define(\"object/get-own-property-descriptor\", [\"es.object.get-own-property-descriptor\"]),\n getOwnPropertyDescriptors: define(\"object/get-own-property-descriptors\", [\"es.object.get-own-property-descriptors\"]),\n getOwnPropertyNames: define(\"object/get-own-property-names\", [\"es.object.get-own-property-names\"]),\n getOwnPropertySymbols: define(\"object/get-own-property-symbols\", [\"es.symbol\"]),\n getPrototypeOf: define(\"object/get-prototype-of\", [\"es.object.get-prototype-of\"]),\n groupBy: define(\"object/group-by\", [\"es.object.group-by\", \"es.object.create\"]),\n hasOwn: define(\"object/has-own\", [\"es.object.has-own\"]),\n is: define(\"object/is\", [\"es.object.is\"]),\n isExtensible: define(\"object/is-extensible\", [\"es.object.is-extensible\"]),\n isFrozen: define(\"object/is-frozen\", [\"es.object.is-frozen\"]),\n isSealed: define(\"object/is-sealed\", [\"es.object.is-sealed\"]),\n keys: define(\"object/keys\", [\"es.object.keys\"]),\n preventExtensions: define(\"object/prevent-extensions\", [\"es.object.prevent-extensions\"]),\n seal: define(\"object/seal\", [\"es.object.seal\"]),\n setPrototypeOf: define(\"object/set-prototype-of\", [\"es.object.set-prototype-of\"]),\n values: define(\"object/values\", [\"es.object.values\"])\n },\n Promise: {\n all: define(null, PromiseDependenciesWithIterators),\n allSettled: define(\"promise/all-settled\", [\"es.promise.all-settled\", ...PromiseDependenciesWithIterators]),\n any: define(\"promise/any\", [\"es.promise.any\", \"es.aggregate-error\", ...PromiseDependenciesWithIterators]),\n race: define(null, PromiseDependenciesWithIterators),\n try: define(\"promise/try\", [\"esnext.promise.try\", ...PromiseDependencies]),\n withResolvers: define(\"promise/with-resolvers\", [\"es.promise.with-resolvers\", ...PromiseDependencies])\n },\n Reflect: {\n apply: define(\"reflect/apply\", [\"es.reflect.apply\"]),\n construct: define(\"reflect/construct\", [\"es.reflect.construct\"]),\n defineMetadata: define(\"reflect/define-metadata\", [\"esnext.reflect.define-metadata\"]),\n defineProperty: define(\"reflect/define-property\", [\"es.reflect.define-property\"]),\n deleteMetadata: define(\"reflect/delete-metadata\", [\"esnext.reflect.delete-metadata\"]),\n deleteProperty: define(\"reflect/delete-property\", [\"es.reflect.delete-property\"]),\n get: define(\"reflect/get\", [\"es.reflect.get\"]),\n getMetadata: define(\"reflect/get-metadata\", [\"esnext.reflect.get-metadata\"]),\n getMetadataKeys: define(\"reflect/get-metadata-keys\", [\"esnext.reflect.get-metadata-keys\"]),\n getOwnMetadata: define(\"reflect/get-own-metadata\", [\"esnext.reflect.get-own-metadata\"]),\n getOwnMetadataKeys: define(\"reflect/get-own-metadata-keys\", [\"esnext.reflect.get-own-metadata-keys\"]),\n getOwnPropertyDescriptor: define(\"reflect/get-own-property-descriptor\", [\"es.reflect.get-own-property-descriptor\"]),\n getPrototypeOf: define(\"reflect/get-prototype-of\", [\"es.reflect.get-prototype-of\"]),\n has: define(\"reflect/has\", [\"es.reflect.has\"]),\n hasMetadata: define(\"reflect/has-metadata\", [\"esnext.reflect.has-metadata\"]),\n hasOwnMetadata: define(\"reflect/has-own-metadata\", [\"esnext.reflect.has-own-metadata\"]),\n isExtensible: define(\"reflect/is-extensible\", [\"es.reflect.is-extensible\"]),\n metadata: define(\"reflect/metadata\", [\"esnext.reflect.metadata\"]),\n ownKeys: define(\"reflect/own-keys\", [\"es.reflect.own-keys\"]),\n preventExtensions: define(\"reflect/prevent-extensions\", [\"es.reflect.prevent-extensions\"]),\n set: define(\"reflect/set\", [\"es.reflect.set\"]),\n setPrototypeOf: define(\"reflect/set-prototype-of\", [\"es.reflect.set-prototype-of\"])\n },\n RegExp: {\n escape: define(\"regexp/escape\", [\"esnext.regexp.escape\"])\n },\n Set: {\n from: define(null, [\"esnext.set.from\", ...SetDependencies]),\n of: define(null, [\"esnext.set.of\", ...SetDependencies])\n },\n String: {\n cooked: define(\"string/cooked\", [\"esnext.string.cooked\"]),\n dedent: define(\"string/dedent\", [\"esnext.string.dedent\", \"es.string.from-code-point\", \"es.weak-map\"]),\n fromCodePoint: define(\"string/from-code-point\", [\"es.string.from-code-point\"]),\n raw: define(\"string/raw\", [\"es.string.raw\"])\n },\n Symbol: {\n asyncDispose: define(\"symbol/async-dispose\", [\"esnext.symbol.async-dispose\", \"esnext.async-iterator.async-dispose\"]),\n asyncIterator: define(\"symbol/async-iterator\", [\"es.symbol.async-iterator\"]),\n dispose: define(\"symbol/dispose\", [\"esnext.symbol.dispose\", \"esnext.iterator.dispose\"]),\n for: define(\"symbol/for\", [], \"es.symbol\"),\n hasInstance: define(\"symbol/has-instance\", [\"es.symbol.has-instance\", \"es.function.has-instance\"]),\n isConcatSpreadable: define(\"symbol/is-concat-spreadable\", [\"es.symbol.is-concat-spreadable\", \"es.array.concat\"]),\n isRegistered: define(\"symbol/is-registered\", [\"esnext.symbol.is-registered\", \"es.symbol\"]),\n isRegisteredSymbol: define(\"symbol/is-registered-symbol\", [\"esnext.symbol.is-registered-symbol\", \"es.symbol\"]),\n isWellKnown: define(\"symbol/is-well-known\", [\"esnext.symbol.is-well-known\", \"es.symbol\"]),\n isWellKnownSymbol: define(\"symbol/is-well-known-symbol\", [\"esnext.symbol.is-well-known-symbol\", \"es.symbol\"]),\n iterator: define(\"symbol/iterator\", [\"es.symbol.iterator\", ...CommonIteratorsWithTag]),\n keyFor: define(\"symbol/key-for\", [], \"es.symbol\"),\n match: define(\"symbol/match\", [\"es.symbol.match\", \"es.string.match\"]),\n matcher: define(\"symbol/matcher\", [\"esnext.symbol.matcher\"]),\n matchAll: define(\"symbol/match-all\", [\"es.symbol.match-all\", \"es.string.match-all\"]),\n metadata: define(\"symbol/metadata\", DecoratorMetadataDependencies),\n metadataKey: define(\"symbol/metadata-key\", [\"esnext.symbol.metadata-key\"]),\n observable: define(\"symbol/observable\", [\"esnext.symbol.observable\"]),\n patternMatch: define(\"symbol/pattern-match\", [\"esnext.symbol.pattern-match\"]),\n replace: define(\"symbol/replace\", [\"es.symbol.replace\", \"es.string.replace\"]),\n search: define(\"symbol/search\", [\"es.symbol.search\", \"es.string.search\"]),\n species: define(\"symbol/species\", [\"es.symbol.species\", \"es.array.species\"]),\n split: define(\"symbol/split\", [\"es.symbol.split\", \"es.string.split\"]),\n toPrimitive: define(\"symbol/to-primitive\", [\"es.symbol.to-primitive\", \"es.date.to-primitive\"]),\n toStringTag: define(\"symbol/to-string-tag\", [\"es.symbol.to-string-tag\", \"es.object.to-string\", \"es.math.to-string-tag\", \"es.json.to-string-tag\"]),\n unscopables: define(\"symbol/unscopables\", [\"es.symbol.unscopables\"])\n },\n URL: {\n canParse: define(\"url/can-parse\", [\"web.url.can-parse\", \"web.url\"])\n },\n WeakMap: {\n from: define(null, [\"esnext.weak-map.from\", ...WeakMapDependencies]),\n of: define(null, [\"esnext.weak-map.of\", ...WeakMapDependencies])\n },\n WeakSet: {\n from: define(null, [\"esnext.weak-set.from\", ...WeakSetDependencies]),\n of: define(null, [\"esnext.weak-set.of\", ...WeakSetDependencies])\n },\n Int8Array: TypedArrayStaticMethods(\"es.typed-array.int8-array\"),\n Uint8Array: {\n fromBase64: define(null, [\"esnext.uint8-array.from-base64\", ...TypedArrayDependencies]),\n fromHex: define(null, [\"esnext.uint8-array.from-hex\", ...TypedArrayDependencies]),\n ...TypedArrayStaticMethods(\"es.typed-array.uint8-array\")\n },\n Uint8ClampedArray: TypedArrayStaticMethods(\"es.typed-array.uint8-clamped-array\"),\n Int16Array: TypedArrayStaticMethods(\"es.typed-array.int16-array\"),\n Uint16Array: TypedArrayStaticMethods(\"es.typed-array.uint16-array\"),\n Int32Array: TypedArrayStaticMethods(\"es.typed-array.int32-array\"),\n Uint32Array: TypedArrayStaticMethods(\"es.typed-array.uint32-array\"),\n Float32Array: TypedArrayStaticMethods(\"es.typed-array.float32-array\"),\n Float64Array: TypedArrayStaticMethods(\"es.typed-array.float64-array\"),\n WebAssembly: {\n CompileError: define(null, ErrorDependencies),\n LinkError: define(null, ErrorDependencies),\n RuntimeError: define(null, ErrorDependencies)\n }\n};\nconst InstanceProperties = {\n asIndexedPairs: define(\"instance/asIndexedPairs\", [\"esnext.async-iterator.as-indexed-pairs\", ...AsyncIteratorDependencies, \"esnext.iterator.as-indexed-pairs\", ...IteratorDependencies]),\n at: define(\"instance/at\", [\n // TODO: We should introduce overloaded instance methods definition\n // Before that is implemented, the `esnext.string.at` must be the first\n // In pure mode, the provider resolves the descriptor as a \"pure\" `esnext.string.at`\n // and treats the compat-data of `esnext.string.at` as the compat-data of\n // pure import `instance/at`. The first polyfill here should have the lowest corejs\n // supported versions.\n \"esnext.string.at\", \"es.string.at-alternative\", \"es.array.at\"]),\n anchor: define(null, [\"es.string.anchor\"]),\n big: define(null, [\"es.string.big\"]),\n bind: define(\"instance/bind\", [\"es.function.bind\"]),\n blink: define(null, [\"es.string.blink\"]),\n bold: define(null, [\"es.string.bold\"]),\n codePointAt: define(\"instance/code-point-at\", [\"es.string.code-point-at\"]),\n codePoints: define(\"instance/code-points\", [\"esnext.string.code-points\"]),\n concat: define(\"instance/concat\", [\"es.array.concat\"], undefined, [\"String\"]),\n copyWithin: define(\"instance/copy-within\", [\"es.array.copy-within\"]),\n demethodize: define(\"instance/demethodize\", [\"esnext.function.demethodize\"]),\n description: define(null, [\"es.symbol\", \"es.symbol.description\"]),\n dotAll: define(null, [\"es.regexp.dot-all\"]),\n drop: define(null, [\"esnext.async-iterator.drop\", ...AsyncIteratorDependencies, \"esnext.iterator.drop\", ...IteratorDependencies]),\n emplace: define(\"instance/emplace\", [\"esnext.map.emplace\", \"esnext.weak-map.emplace\"]),\n endsWith: define(\"instance/ends-with\", [\"es.string.ends-with\"]),\n entries: define(\"instance/entries\", ArrayNatureIteratorsWithTag),\n every: define(\"instance/every\", [\"es.array.every\", \"esnext.async-iterator.every\",\n // TODO: add async iterator dependencies when we support sub-dependencies\n // esnext.async-iterator.every depends on es.promise\n // but we don't want to pull es.promise when esnext.async-iterator is disabled\n //\n // ...AsyncIteratorDependencies\n \"esnext.iterator.every\", ...IteratorDependencies]),\n exec: define(null, [\"es.regexp.exec\"]),\n fill: define(\"instance/fill\", [\"es.array.fill\"]),\n filter: define(\"instance/filter\", [\"es.array.filter\", \"esnext.async-iterator.filter\", \"esnext.iterator.filter\", ...IteratorDependencies]),\n filterReject: define(\"instance/filterReject\", [\"esnext.array.filter-reject\"]),\n finally: define(null, [\"es.promise.finally\", ...PromiseDependencies]),\n find: define(\"instance/find\", [\"es.array.find\", \"esnext.async-iterator.find\", \"esnext.iterator.find\", ...IteratorDependencies]),\n findIndex: define(\"instance/find-index\", [\"es.array.find-index\"]),\n findLast: define(\"instance/find-last\", [\"es.array.find-last\"]),\n findLastIndex: define(\"instance/find-last-index\", [\"es.array.find-last-index\"]),\n fixed: define(null, [\"es.string.fixed\"]),\n flags: define(\"instance/flags\", [\"es.regexp.flags\"]),\n flatMap: define(\"instance/flat-map\", [\"es.array.flat-map\", \"es.array.unscopables.flat-map\", \"esnext.async-iterator.flat-map\", \"esnext.iterator.flat-map\", ...IteratorDependencies]),\n flat: define(\"instance/flat\", [\"es.array.flat\", \"es.array.unscopables.flat\"]),\n getFloat16: define(null, [\"esnext.data-view.get-float16\", ...DataViewDependencies]),\n getUint8Clamped: define(null, [\"esnext.data-view.get-uint8-clamped\", ...DataViewDependencies]),\n getYear: define(null, [\"es.date.get-year\"]),\n group: define(\"instance/group\", [\"esnext.array.group\"]),\n groupBy: define(\"instance/group-by\", [\"esnext.array.group-by\"]),\n groupByToMap: define(\"instance/group-by-to-map\", [\"esnext.array.group-by-to-map\", \"es.map\", \"es.object.to-string\"]),\n groupToMap: define(\"instance/group-to-map\", [\"esnext.array.group-to-map\", \"es.map\", \"es.object.to-string\"]),\n fontcolor: define(null, [\"es.string.fontcolor\"]),\n fontsize: define(null, [\"es.string.fontsize\"]),\n forEach: define(\"instance/for-each\", [\"es.array.for-each\", \"esnext.async-iterator.for-each\", \"esnext.iterator.for-each\", ...IteratorDependencies, \"web.dom-collections.for-each\"]),\n includes: define(\"instance/includes\", [\"es.array.includes\", \"es.string.includes\"]),\n indexed: define(null, [\"esnext.async-iterator.indexed\", ...AsyncIteratorDependencies, \"esnext.iterator.indexed\", ...IteratorDependencies]),\n indexOf: define(\"instance/index-of\", [\"es.array.index-of\"]),\n isWellFormed: define(\"instance/is-well-formed\", [\"es.string.is-well-formed\"]),\n italic: define(null, [\"es.string.italics\"]),\n join: define(null, [\"es.array.join\"]),\n keys: define(\"instance/keys\", ArrayNatureIteratorsWithTag),\n lastIndex: define(null, [\"esnext.array.last-index\"]),\n lastIndexOf: define(\"instance/last-index-of\", [\"es.array.last-index-of\"]),\n lastItem: define(null, [\"esnext.array.last-item\"]),\n link: define(null, [\"es.string.link\"]),\n map: define(\"instance/map\", [\"es.array.map\", \"esnext.async-iterator.map\", \"esnext.iterator.map\"]),\n match: define(null, [\"es.string.match\", \"es.regexp.exec\"]),\n matchAll: define(\"instance/match-all\", [\"es.string.match-all\", \"es.regexp.exec\"]),\n name: define(null, [\"es.function.name\"]),\n padEnd: define(\"instance/pad-end\", [\"es.string.pad-end\"]),\n padStart: define(\"instance/pad-start\", [\"es.string.pad-start\"]),\n push: define(\"instance/push\", [\"es.array.push\"]),\n reduce: define(\"instance/reduce\", [\"es.array.reduce\", \"esnext.async-iterator.reduce\", \"esnext.iterator.reduce\", ...IteratorDependencies]),\n reduceRight: define(\"instance/reduce-right\", [\"es.array.reduce-right\"]),\n repeat: define(\"instance/repeat\", [\"es.string.repeat\"]),\n replace: define(null, [\"es.string.replace\", \"es.regexp.exec\"]),\n replaceAll: define(\"instance/replace-all\", [\"es.string.replace-all\", \"es.string.replace\", \"es.regexp.exec\"]),\n reverse: define(\"instance/reverse\", [\"es.array.reverse\"]),\n search: define(null, [\"es.string.search\", \"es.regexp.exec\"]),\n setFloat16: define(null, [\"esnext.data-view.set-float16\", ...DataViewDependencies]),\n setUint8Clamped: define(null, [\"esnext.data-view.set-uint8-clamped\", ...DataViewDependencies]),\n setYear: define(null, [\"es.date.set-year\"]),\n slice: define(\"instance/slice\", [\"es.array.slice\"]),\n small: define(null, [\"es.string.small\"]),\n some: define(\"instance/some\", [\"es.array.some\", \"esnext.async-iterator.some\", \"esnext.iterator.some\", ...IteratorDependencies]),\n sort: define(\"instance/sort\", [\"es.array.sort\"]),\n splice: define(\"instance/splice\", [\"es.array.splice\"]),\n split: define(null, [\"es.string.split\", \"es.regexp.exec\"]),\n startsWith: define(\"instance/starts-with\", [\"es.string.starts-with\"]),\n sticky: define(null, [\"es.regexp.sticky\"]),\n strike: define(null, [\"es.string.strike\"]),\n sub: define(null, [\"es.string.sub\"]),\n substr: define(null, [\"es.string.substr\"]),\n sup: define(null, [\"es.string.sup\"]),\n take: define(null, [\"esnext.async-iterator.take\", ...AsyncIteratorDependencies, \"esnext.iterator.take\", ...IteratorDependencies]),\n test: define(null, [\"es.regexp.test\", \"es.regexp.exec\"]),\n toArray: define(null, [\"esnext.async-iterator.to-array\", ...AsyncIteratorDependencies, \"esnext.iterator.to-array\", ...IteratorDependencies]),\n toAsync: define(null, [\"esnext.iterator.to-async\", ...IteratorDependencies, ...AsyncIteratorDependencies, ...AsyncIteratorProblemMethods]),\n toExponential: define(null, [\"es.number.to-exponential\"]),\n toFixed: define(null, [\"es.number.to-fixed\"]),\n toGMTString: define(null, [\"es.date.to-gmt-string\"]),\n toISOString: define(null, [\"es.date.to-iso-string\"]),\n toJSON: define(null, [\"es.date.to-json\"]),\n toPrecision: define(null, [\"es.number.to-precision\"]),\n toReversed: define(\"instance/to-reversed\", [\"es.array.to-reversed\"]),\n toSorted: define(\"instance/to-sorted\", [\"es.array.to-sorted\", \"es.array.sort\"]),\n toSpliced: define(\"instance/to-spliced\", [\"es.array.to-spliced\"]),\n toString: define(null, [\"es.object.to-string\", \"es.error.to-string\", \"es.date.to-string\", \"es.regexp.to-string\"]),\n toWellFormed: define(\"instance/to-well-formed\", [\"es.string.to-well-formed\"]),\n trim: define(\"instance/trim\", [\"es.string.trim\"]),\n trimEnd: define(\"instance/trim-end\", [\"es.string.trim-end\"]),\n trimLeft: define(\"instance/trim-left\", [\"es.string.trim-start\"]),\n trimRight: define(\"instance/trim-right\", [\"es.string.trim-end\"]),\n trimStart: define(\"instance/trim-start\", [\"es.string.trim-start\"]),\n uniqueBy: define(\"instance/unique-by\", [\"esnext.array.unique-by\", \"es.map\"]),\n unshift: define(\"instance/unshift\", [\"es.array.unshift\"]),\n unThis: define(\"instance/un-this\", [\"esnext.function.un-this\"]),\n values: define(\"instance/values\", ArrayNatureIteratorsWithTag),\n with: define(\"instance/with\", [\"es.array.with\"]),\n __defineGetter__: define(null, [\"es.object.define-getter\"]),\n __defineSetter__: define(null, [\"es.object.define-setter\"]),\n __lookupGetter__: define(null, [\"es.object.lookup-getter\"]),\n __lookupSetter__: define(null, [\"es.object.lookup-setter\"]),\n [\"__proto__\"]: define(null, [\"es.object.proto\"])\n};\n\n// This file contains the list of paths supported by @babel/runtime-corejs3.\n// It must _not_ be edited, as all new features should go through direct\n// injection of core-js-pure imports.\n\nconst stable = new Set([\"array\", \"array/from\", \"array/is-array\", \"array/of\", \"clear-immediate\", \"date/now\", \"instance/bind\", \"instance/code-point-at\", \"instance/concat\", \"instance/copy-within\", \"instance/ends-with\", \"instance/entries\", \"instance/every\", \"instance/fill\", \"instance/filter\", \"instance/find\", \"instance/find-index\", \"instance/flags\", \"instance/flat\", \"instance/flat-map\", \"instance/for-each\", \"instance/includes\", \"instance/index-of\", \"instance/keys\", \"instance/last-index-of\", \"instance/map\", \"instance/pad-end\", \"instance/pad-start\", \"instance/reduce\", \"instance/reduce-right\", \"instance/repeat\", \"instance/reverse\", \"instance/slice\", \"instance/some\", \"instance/sort\", \"instance/splice\", \"instance/starts-with\", \"instance/trim\", \"instance/trim-end\", \"instance/trim-left\", \"instance/trim-right\", \"instance/trim-start\", \"instance/values\", \"json/stringify\", \"map\", \"math/acosh\", \"math/asinh\", \"math/atanh\", \"math/cbrt\", \"math/clz32\", \"math/cosh\", \"math/expm1\", \"math/fround\", \"math/hypot\", \"math/imul\", \"math/log10\", \"math/log1p\", \"math/log2\", \"math/sign\", \"math/sinh\", \"math/tanh\", \"math/trunc\", \"number/epsilon\", \"number/is-finite\", \"number/is-integer\", \"number/is-nan\", \"number/is-safe-integer\", \"number/max-safe-integer\", \"number/min-safe-integer\", \"number/parse-float\", \"number/parse-int\", \"object/assign\", \"object/create\", \"object/define-properties\", \"object/define-property\", \"object/entries\", \"object/freeze\", \"object/from-entries\", \"object/get-own-property-descriptor\", \"object/get-own-property-descriptors\", \"object/get-own-property-names\", \"object/get-own-property-symbols\", \"object/get-prototype-of\", \"object/is\", \"object/is-extensible\", \"object/is-frozen\", \"object/is-sealed\", \"object/keys\", \"object/prevent-extensions\", \"object/seal\", \"object/set-prototype-of\", \"object/values\", \"parse-float\", \"parse-int\", \"promise\", \"queue-microtask\", \"reflect/apply\", \"reflect/construct\", \"reflect/define-property\", \"reflect/delete-property\", \"reflect/get\", \"reflect/get-own-property-descriptor\", \"reflect/get-prototype-of\", \"reflect/has\", \"reflect/is-extensible\", \"reflect/own-keys\", \"reflect/prevent-extensions\", \"reflect/set\", \"reflect/set-prototype-of\", \"set\", \"set-immediate\", \"set-interval\", \"set-timeout\", \"string/from-code-point\", \"string/raw\", \"symbol\", \"symbol/async-iterator\", \"symbol/for\", \"symbol/has-instance\", \"symbol/is-concat-spreadable\", \"symbol/iterator\", \"symbol/key-for\", \"symbol/match\", \"symbol/replace\", \"symbol/search\", \"symbol/species\", \"symbol/split\", \"symbol/to-primitive\", \"symbol/to-string-tag\", \"symbol/unscopables\", \"url\", \"url-search-params\", \"weak-map\", \"weak-set\"]);\nconst proposals = new Set([...stable, \"aggregate-error\", \"composite-key\", \"composite-symbol\", \"global-this\", \"instance/at\", \"instance/code-points\", \"instance/match-all\", \"instance/replace-all\", \"math/clamp\", \"math/degrees\", \"math/deg-per-rad\", \"math/fscale\", \"math/iaddh\", \"math/imulh\", \"math/isubh\", \"math/rad-per-deg\", \"math/radians\", \"math/scale\", \"math/seeded-prng\", \"math/signbit\", \"math/umulh\", \"number/from-string\", \"observable\", \"reflect/define-metadata\", \"reflect/delete-metadata\", \"reflect/get-metadata\", \"reflect/get-metadata-keys\", \"reflect/get-own-metadata\", \"reflect/get-own-metadata-keys\", \"reflect/has-metadata\", \"reflect/has-own-metadata\", \"reflect/metadata\", \"symbol/dispose\", \"symbol/observable\", \"symbol/pattern-match\"]);\n\nconst {\n types: t$2\n} = _babel.default || _babel;\nfunction canSkipPolyfill(desc, path) {\n const {\n node,\n parent\n } = path;\n switch (desc.name) {\n case \"es.string.split\":\n {\n if (!t$2.isCallExpression(parent, {\n callee: node\n })) return false;\n if (parent.arguments.length < 1) return true;\n const splitter = parent.arguments[0];\n return t$2.isStringLiteral(splitter) || t$2.isTemplateLiteral(splitter);\n }\n }\n}\n\nconst {\n types: t$1\n} = _babel.default || _babel;\nconst BABEL_RUNTIME = \"@babel/runtime-corejs3\";\nfunction callMethod(path, id) {\n const {\n object\n } = path.node;\n let context1, context2;\n if (t$1.isIdentifier(object)) {\n context1 = object;\n context2 = t$1.cloneNode(object);\n } else {\n context1 = path.scope.generateDeclaredUidIdentifier(\"context\");\n context2 = t$1.assignmentExpression(\"=\", t$1.cloneNode(context1), object);\n }\n path.replaceWith(t$1.memberExpression(t$1.callExpression(id, [context2]), t$1.identifier(\"call\")));\n path.parentPath.unshiftContainer(\"arguments\", context1);\n}\nfunction isCoreJSSource(source) {\n if (typeof source === \"string\") {\n source = source.replace(/\\\\/g, \"/\").replace(/(\\/(index)?)?(\\.js)?$/i, \"\").toLowerCase();\n }\n return Object.prototype.hasOwnProperty.call(corejsEntries, source) && corejsEntries[source];\n}\nfunction coreJSModule(name) {\n return `core-js/modules/${name}.js`;\n}\nfunction coreJSPureHelper(name, useBabelRuntime, ext) {\n return useBabelRuntime ? `${BABEL_RUNTIME}/core-js/${name}${ext}` : `core-js-pure/features/${name}.js`;\n}\n\nconst {\n types: t\n} = _babel.default || _babel;\nconst presetEnvCompat = \"#__secret_key__@babel/preset-env__compatibility\";\nconst runtimeCompat = \"#__secret_key__@babel/runtime__compatibility\";\nconst uniqueObjects = [\"array\", \"string\", \"iterator\", \"async-iterator\", \"dom-collections\"].map(v => new RegExp(`[a-z]*\\\\.${v}\\\\..*`));\nconst esnextFallback = (name, cb) => {\n if (cb(name)) return true;\n if (!name.startsWith(\"es.\")) return false;\n const fallback = `esnext.${name.slice(3)}`;\n if (!corejs3Polyfills[fallback]) return false;\n return cb(fallback);\n};\nvar index = defineProvider(function ({\n getUtils,\n method,\n shouldInjectPolyfill,\n createMetaResolver,\n debug,\n babel\n}, {\n version = 3,\n proposals: proposals$1,\n shippedProposals,\n [presetEnvCompat]: {\n noRuntimeName = false\n } = {},\n [runtimeCompat]: {\n useBabelRuntime = false,\n ext = \".js\"\n } = {}\n}) {\n const isWebpack = babel.caller(caller => (caller == null ? void 0 : caller.name) === \"babel-loader\");\n const resolve = createMetaResolver({\n global: BuiltIns,\n static: StaticProperties,\n instance: InstanceProperties\n });\n const available = new Set(getModulesListForTargetVersion(version));\n function getCoreJSPureBase(useProposalBase) {\n return useBabelRuntime ? useProposalBase ? `${BABEL_RUNTIME}/core-js` : `${BABEL_RUNTIME}/core-js-stable` : useProposalBase ? \"core-js-pure/features\" : \"core-js-pure/stable\";\n }\n function maybeInjectGlobalImpl(name, utils) {\n if (shouldInjectPolyfill(name)) {\n debug(name);\n utils.injectGlobalImport(coreJSModule(name), name);\n return true;\n }\n return false;\n }\n function maybeInjectGlobal(names, utils, fallback = true) {\n for (const name of names) {\n if (fallback) {\n esnextFallback(name, name => maybeInjectGlobalImpl(name, utils));\n } else {\n maybeInjectGlobalImpl(name, utils);\n }\n }\n }\n function maybeInjectPure(desc, hint, utils, object) {\n if (desc.pure && !(object && desc.exclude && desc.exclude.includes(object)) && esnextFallback(desc.name, shouldInjectPolyfill)) {\n const {\n name\n } = desc;\n let useProposalBase = false;\n if (proposals$1 || shippedProposals && name.startsWith(\"esnext.\")) {\n useProposalBase = true;\n } else if (name.startsWith(\"es.\") && !available.has(name)) {\n useProposalBase = true;\n }\n if (useBabelRuntime && !(useProposalBase ? proposals : stable).has(desc.pure)) {\n return;\n }\n const coreJSPureBase = getCoreJSPureBase(useProposalBase);\n return utils.injectDefaultImport(`${coreJSPureBase}/${desc.pure}${ext}`, hint);\n }\n }\n function isFeatureStable(name) {\n if (name.startsWith(\"esnext.\")) {\n const esName = `es.${name.slice(7)}`;\n // If its imaginative esName is not in latest compat data, it means\n // the proposal is not stage 4\n return esName in corejs3Polyfills;\n }\n return true;\n }\n return {\n name: \"corejs3\",\n runtimeName: noRuntimeName ? null : BABEL_RUNTIME,\n polyfills: corejs3Polyfills,\n filterPolyfills(name) {\n if (!available.has(name)) return false;\n if (proposals$1 || method === \"entry-global\") return true;\n if (shippedProposals && corejs3ShippedProposalsList.has(name)) {\n return true;\n }\n return isFeatureStable(name);\n },\n entryGlobal(meta, utils, path) {\n if (meta.kind !== \"import\") return;\n const modules = isCoreJSSource(meta.source);\n if (!modules) return;\n if (modules.length === 1 && meta.source === coreJSModule(modules[0]) && shouldInjectPolyfill(modules[0])) {\n // Avoid infinite loop: do not replace imports with a new copy of\n // themselves.\n debug(null);\n return;\n }\n const modulesSet = new Set(modules);\n const filteredModules = modules.filter(module => {\n if (!module.startsWith(\"esnext.\")) return true;\n const stable = module.replace(\"esnext.\", \"es.\");\n if (modulesSet.has(stable) && shouldInjectPolyfill(stable)) {\n return false;\n }\n return true;\n });\n maybeInjectGlobal(filteredModules, utils, false);\n path.remove();\n },\n usageGlobal(meta, utils, path) {\n const resolved = resolve(meta);\n if (!resolved) return;\n if (canSkipPolyfill(resolved.desc, path)) return;\n let deps = resolved.desc.global;\n if (resolved.kind !== \"global\" && \"object\" in meta && meta.object && meta.placement === \"prototype\") {\n const low = meta.object.toLowerCase();\n deps = deps.filter(m => uniqueObjects.some(v => v.test(m)) ? m.includes(low) : true);\n }\n maybeInjectGlobal(deps, utils);\n return true;\n },\n usagePure(meta, utils, path) {\n if (meta.kind === \"in\") {\n if (meta.key === \"Symbol.iterator\") {\n path.replaceWith(t.callExpression(utils.injectDefaultImport(coreJSPureHelper(\"is-iterable\", useBabelRuntime, ext), \"isIterable\"), [path.node.right] // meta.kind === \"in\" narrows this\n ));\n }\n\n return;\n }\n if (path.parentPath.isUnaryExpression({\n operator: \"delete\"\n })) return;\n if (meta.kind === \"property\") {\n // We can't compile destructuring and updateExpression.\n if (!path.isMemberExpression()) return;\n if (!path.isReferenced()) return;\n if (path.parentPath.isUpdateExpression()) return;\n if (t.isSuper(path.node.object)) {\n return;\n }\n if (meta.key === \"Symbol.iterator\") {\n if (!shouldInjectPolyfill(\"es.symbol.iterator\")) return;\n const {\n parent,\n node\n } = path;\n if (t.isCallExpression(parent, {\n callee: node\n })) {\n if (parent.arguments.length === 0) {\n path.parentPath.replaceWith(t.callExpression(utils.injectDefaultImport(coreJSPureHelper(\"get-iterator\", useBabelRuntime, ext), \"getIterator\"), [node.object]));\n path.skip();\n } else {\n callMethod(path, utils.injectDefaultImport(coreJSPureHelper(\"get-iterator-method\", useBabelRuntime, ext), \"getIteratorMethod\"));\n }\n } else {\n path.replaceWith(t.callExpression(utils.injectDefaultImport(coreJSPureHelper(\"get-iterator-method\", useBabelRuntime, ext), \"getIteratorMethod\"), [path.node.object]));\n }\n return;\n }\n }\n let resolved = resolve(meta);\n if (!resolved) return;\n if (canSkipPolyfill(resolved.desc, path)) return;\n if (useBabelRuntime && resolved.desc.pure && resolved.desc.pure.slice(-6) === \"/index\") {\n // Remove /index, since it doesn't exist in @babel/runtime-corejs3s\n resolved = {\n ...resolved,\n desc: {\n ...resolved.desc,\n pure: resolved.desc.pure.slice(0, -6)\n }\n };\n }\n if (resolved.kind === \"global\") {\n const id = maybeInjectPure(resolved.desc, resolved.name, utils);\n if (id) path.replaceWith(id);\n } else if (resolved.kind === \"static\") {\n const id = maybeInjectPure(resolved.desc, resolved.name, utils,\n // @ts-expect-error\n meta.object);\n if (id) path.replaceWith(id);\n } else if (resolved.kind === \"instance\") {\n const id = maybeInjectPure(resolved.desc, `${resolved.name}InstanceProperty`, utils,\n // @ts-expect-error\n meta.object);\n if (!id) return;\n const {\n node\n } = path;\n if (t.isCallExpression(path.parent, {\n callee: node\n })) {\n callMethod(path, id);\n } else {\n path.replaceWith(t.callExpression(id, [node.object]));\n }\n }\n },\n visitor: method === \"usage-global\" && {\n // import(\"foo\")\n CallExpression(path) {\n if (path.get(\"callee\").isImport()) {\n const utils = getUtils(path);\n if (isWebpack) {\n // Webpack uses Promise.all to handle dynamic import.\n maybeInjectGlobal(PromiseDependenciesWithIterators, utils);\n } else {\n maybeInjectGlobal(PromiseDependencies, utils);\n }\n }\n },\n // (async function () { }).finally(...)\n Function(path) {\n if (path.node.async) {\n maybeInjectGlobal(PromiseDependencies, getUtils(path));\n }\n },\n // for-of, [a, b] = c\n \"ForOfStatement|ArrayPattern\"(path) {\n maybeInjectGlobal(CommonIterators, getUtils(path));\n },\n // [...spread]\n SpreadElement(path) {\n if (!path.parentPath.isObjectExpression()) {\n maybeInjectGlobal(CommonIterators, getUtils(path));\n }\n },\n // yield*\n YieldExpression(path) {\n if (path.node.delegate) {\n maybeInjectGlobal(CommonIterators, getUtils(path));\n }\n },\n // Decorators metadata\n Class(path) {\n var _path$node$decorators;\n const hasDecorators = ((_path$node$decorators = path.node.decorators) == null ? void 0 : _path$node$decorators.length) || path.node.body.body.some(el => {\n var _decorators;\n return (_decorators = el.decorators) == null ? void 0 : _decorators.length;\n });\n if (hasDecorators) {\n maybeInjectGlobal(DecoratorMetadataDependencies, getUtils(path));\n }\n }\n }\n };\n});\n\nexport default index;\n//# sourceMappingURL=index.mjs.map\n","import semver, { type SemVer } from \"semver\";\nimport { logPlugin } from \"./debug.ts\";\nimport {\n addProposalSyntaxPlugins,\n removeUnnecessaryItems,\n removeUnsupportedItems,\n} from \"./filter-items.ts\";\nimport moduleTransformations from \"./module-transformations.ts\";\nimport normalizeOptions from \"./normalize-options.ts\";\nimport {\n pluginSyntaxMap,\n proposalPlugins,\n proposalSyntaxPlugins,\n} from \"./shipped-proposals.ts\";\nimport {\n plugins as pluginsList,\n pluginsBugfixes as pluginsBugfixesList,\n overlappingPlugins,\n} from \"./plugins-compat-data.ts\";\n\nimport type { CallerMetadata } from \"@babel/core\";\n\nimport _pluginCoreJS3 from \"babel-plugin-polyfill-corejs3\";\n// TODO(Babel 8): Just use the default import\nconst pluginCoreJS3 = _pluginCoreJS3.default || _pluginCoreJS3;\n\n// TODO(Babel 8): Remove this\nimport babel7 from \"./polyfills/babel-7-plugins.cjs\";\n\nimport getTargets, {\n prettifyTargets,\n filterItems,\n isRequired,\n} from \"@babel/helper-compilation-targets\";\nimport type { Targets, InputTargets } from \"@babel/helper-compilation-targets\";\nimport availablePlugins from \"./available-plugins.ts\";\nimport { declarePreset } from \"@babel/helper-plugin-utils\";\n\nimport type { BuiltInsOption, ModuleOption, Options } from \"./types.ts\";\n\n// TODO: Remove in Babel 8\nexport function isPluginRequired(targets: Targets, support: Targets) {\n return isRequired(\"fake-name\", targets, {\n compatData: { \"fake-name\": support },\n });\n}\n\nfunction filterStageFromList(\n list: { [feature: string]: Targets },\n stageList: Set,\n) {\n return Object.keys(list).reduce((result, item) => {\n if (!stageList.has(item)) {\n // @ts-expect-error todo: refine result types\n result[item] = list[item];\n }\n\n return result;\n }, {});\n}\n\nconst pluginLists = {\n withProposals: {\n withoutBugfixes: pluginsList,\n withBugfixes: Object.assign({}, pluginsList, pluginsBugfixesList),\n },\n withoutProposals: {\n withoutBugfixes: filterStageFromList(pluginsList, proposalPlugins),\n withBugfixes: filterStageFromList(\n Object.assign({}, pluginsList, pluginsBugfixesList),\n proposalPlugins,\n ),\n },\n};\n\nfunction getPluginList(proposals: boolean, bugfixes: boolean) {\n if (proposals) {\n if (bugfixes) return pluginLists.withProposals.withBugfixes;\n else return pluginLists.withProposals.withoutBugfixes;\n } else {\n if (bugfixes) return pluginLists.withoutProposals.withBugfixes;\n else return pluginLists.withoutProposals.withoutBugfixes;\n }\n}\n\nconst getPlugin = (pluginName: string) => {\n const plugin =\n // @ts-expect-error plugin name is constructed from available plugin list\n availablePlugins[pluginName]();\n\n if (!plugin) {\n throw new Error(\n `Could not find plugin \"${pluginName}\". Ensure there is an entry in ./available-plugins.js for it.`,\n );\n }\n\n return plugin;\n};\n\nexport const transformIncludesAndExcludes = (opts: Array): any => {\n return opts.reduce(\n (result, opt) => {\n const target = opt.match(/^(es|es6|es7|esnext|web)\\./)\n ? \"builtIns\"\n : \"plugins\";\n result[target].add(opt);\n return result;\n },\n {\n all: opts,\n plugins: new Set(),\n builtIns: new Set(),\n },\n );\n};\n\nfunction getSpecialModulesPluginNames(\n modules: Exclude,\n shouldTransformDynamicImport: boolean,\n babelVersion: string,\n) {\n const modulesPluginNames = [];\n if (modules) {\n modulesPluginNames.push(moduleTransformations[modules]);\n }\n\n if (shouldTransformDynamicImport) {\n if (modules && modules !== \"umd\") {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n console.warn(\n \"Dynamic import can only be transformed when transforming ES\" +\n \" modules to AMD, CommonJS or SystemJS.\",\n );\n }\n }\n\n if (!process.env.BABEL_8_BREAKING && babelVersion[0] !== \"8\") {\n // Enable module-related syntax plugins for older Babel versions\n if (!shouldTransformDynamicImport) {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n modulesPluginNames.push(\"syntax-top-level-await\");\n modulesPluginNames.push(\"syntax-import-meta\");\n }\n\n return modulesPluginNames;\n}\n\nconst getCoreJSOptions = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n}: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set;\n exclude: Set;\n proposals: boolean;\n shippedProposals: boolean;\n debug: boolean;\n}) => ({\n method: `${useBuiltIns}-global`,\n version: corejs ? corejs.toString() : undefined,\n targets: polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n \"#__secret_key__@babel/preset-env__compatibility\": {\n noRuntimeName: true,\n },\n});\n\nif (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var getPolyfillPlugins = ({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n regenerator,\n debug,\n }: {\n useBuiltIns: BuiltInsOption;\n corejs: SemVer | null | false;\n polyfillTargets: Targets;\n include: Set;\n exclude: Set;\n proposals: boolean;\n shippedProposals: boolean;\n regenerator: boolean;\n debug: boolean;\n }) => {\n const polyfillPlugins = [];\n if (useBuiltIns === \"usage\" || useBuiltIns === \"entry\") {\n const pluginOptions = getCoreJSOptions({\n useBuiltIns,\n corejs,\n polyfillTargets,\n include,\n exclude,\n proposals,\n shippedProposals,\n debug,\n });\n\n if (corejs) {\n if (process.env.BABEL_8_BREAKING) {\n polyfillPlugins.push([pluginCoreJS3, pluginOptions]);\n } else {\n if (useBuiltIns === \"usage\") {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [babel7.pluginCoreJS2, pluginOptions],\n [babel7.legacyBabelPolyfillPlugin, { usage: true }],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [\n babel7.legacyBabelPolyfillPlugin,\n { usage: true, deprecated: true },\n ],\n );\n }\n if (regenerator) {\n polyfillPlugins.push([\n babel7.pluginRegenerator,\n { method: \"usage-global\", debug },\n ]);\n }\n } else {\n if (corejs.major === 2) {\n polyfillPlugins.push(\n [babel7.legacyBabelPolyfillPlugin, { regenerator }],\n [babel7.pluginCoreJS2, pluginOptions],\n );\n } else {\n polyfillPlugins.push(\n [pluginCoreJS3, pluginOptions],\n [babel7.legacyBabelPolyfillPlugin, { deprecated: true }],\n );\n if (!regenerator) {\n polyfillPlugins.push([\n babel7.removeRegeneratorEntryPlugin,\n pluginOptions,\n ]);\n }\n }\n }\n }\n }\n }\n return polyfillPlugins;\n };\n\n if (!USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getPolyfillPlugins = getPolyfillPlugins;\n }\n}\n\nfunction getLocalTargets(\n optionsTargets: Options[\"targets\"],\n ignoreBrowserslistConfig: boolean,\n configPath: string,\n browserslistEnv: string,\n) {\n if (optionsTargets?.esmodules && optionsTargets.browsers) {\n console.warn(`\n@babel/preset-env: esmodules and browsers targets have been specified together.\n\\`browsers\\` target, \\`${optionsTargets.browsers.toString()}\\` will be ignored.\n`);\n }\n\n return getTargets(optionsTargets as InputTargets, {\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n });\n}\n\nfunction supportsStaticESM(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to true\n // @ts-expect-error supportsStaticESM is not defined in CallerMetadata\n return !!caller?.supportsStaticESM;\n}\n\nfunction supportsDynamicImport(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to true\n // @ts-expect-error supportsDynamicImport is not defined in CallerMetadata\n return !!caller?.supportsDynamicImport;\n}\n\nfunction supportsExportNamespaceFrom(caller: CallerMetadata | undefined) {\n // TODO(Babel 8): Fallback to null\n // @ts-expect-error supportsExportNamespaceFrom is not defined in CallerMetadata\n return !!caller?.supportsExportNamespaceFrom;\n}\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const babelTargets = api.targets();\n\n if (process.env.BABEL_8_BREAKING && (\"loose\" in opts || \"spec\" in opts)) {\n throw new Error(\n \"@babel/preset-env: The 'loose' and 'spec' options have been removed, \" +\n \"and you should configure granular compiler assumptions instead. See \" +\n \"https://babeljs.io/assumptions for more information.\",\n );\n }\n\n const {\n bugfixes,\n configPath,\n debug,\n exclude: optionsExclude,\n forceAllTransforms,\n ignoreBrowserslistConfig,\n include: optionsInclude,\n modules: optionsModules,\n shippedProposals,\n targets: optionsTargets,\n useBuiltIns,\n corejs: { version: corejs, proposals },\n browserslistEnv,\n } = normalizeOptions(opts);\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var { loose, spec = false } = opts;\n }\n\n let targets = babelTargets;\n\n if (\n // @babel/core < 7.13.0 doesn't load targets (api.targets() always\n // returns {} thanks to @babel/helper-plugin-utils), so we always want\n // to fallback to the old targets behavior in this case.\n semver.lt(api.version, \"7.13.0\") ||\n // If any browserslist-related option is specified, fallback to the old\n // behavior of not using the targets specified in the top-level options.\n opts.targets ||\n opts.configPath ||\n opts.browserslistEnv ||\n opts.ignoreBrowserslistConfig\n ) {\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var hasUglifyTarget = false;\n\n if (optionsTargets?.uglify) {\n hasUglifyTarget = true;\n delete optionsTargets.uglify;\n\n console.warn(`\nThe uglify target has been deprecated. Set the top level\noption \\`forceAllTransforms: true\\` instead.\n`);\n }\n }\n\n targets = getLocalTargets(\n optionsTargets,\n ignoreBrowserslistConfig,\n configPath,\n browserslistEnv,\n );\n }\n\n const transformTargets = (\n process.env.BABEL_8_BREAKING\n ? forceAllTransforms\n : forceAllTransforms || hasUglifyTarget\n )\n ? ({} as Targets)\n : targets;\n\n const include = transformIncludesAndExcludes(optionsInclude);\n const exclude = transformIncludesAndExcludes(optionsExclude);\n\n const compatData = getPluginList(shippedProposals, bugfixes);\n const modules =\n optionsModules === \"auto\"\n ? api.caller(supportsStaticESM)\n ? false\n : \"commonjs\"\n : optionsModules;\n const shouldTransformDynamicImport =\n optionsModules === \"auto\" ? !api.caller(supportsDynamicImport) : !!modules;\n\n // If the caller does not support export-namespace-from, we forcefully add\n // the plugin to `includes`.\n // TODO(Babel 8): stop doing this, similarly to how we don't do this for any\n // other plugin. We can consider adding bundlers as targets in the future,\n // but we should not have a one-off special case for this plugin.\n if (\n !exclude.plugins.has(\"transform-export-namespace-from\") &&\n (optionsModules === \"auto\"\n ? !api.caller(supportsExportNamespaceFrom)\n : !!modules)\n ) {\n include.plugins.add(\"transform-export-namespace-from\");\n }\n\n const pluginNames = filterItems(\n compatData,\n include.plugins,\n exclude.plugins,\n transformTargets,\n getSpecialModulesPluginNames(\n modules,\n shouldTransformDynamicImport,\n api.version,\n ),\n process.env.BABEL_8_BREAKING || !loose\n ? undefined\n : [\"transform-typeof-symbol\"],\n pluginSyntaxMap,\n );\n if (shippedProposals) {\n addProposalSyntaxPlugins(pluginNames, proposalSyntaxPlugins);\n }\n removeUnsupportedItems(pluginNames, api.version);\n removeUnnecessaryItems(pluginNames, overlappingPlugins);\n\n const polyfillPlugins = process.env.BABEL_8_BREAKING\n ? useBuiltIns\n ? [\n [\n pluginCoreJS3,\n getCoreJSOptions({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n debug,\n }),\n ],\n ]\n : []\n : getPolyfillPlugins({\n useBuiltIns,\n corejs,\n polyfillTargets: targets,\n include: include.builtIns,\n exclude: exclude.builtIns,\n proposals,\n shippedProposals,\n regenerator: pluginNames.has(\"transform-regenerator\"),\n debug,\n });\n\n const pluginUseBuiltIns = useBuiltIns !== false;\n const plugins = Array.from(pluginNames)\n .map(pluginName => {\n if (\n !process.env.BABEL_8_BREAKING &&\n (pluginName === \"transform-class-properties\" ||\n pluginName === \"transform-private-methods\" ||\n pluginName === \"transform-private-property-in-object\")\n ) {\n return [\n getPlugin(pluginName),\n {\n loose: loose\n ? \"#__internal__@babel/preset-env__prefer-true-but-false-is-ok-if-it-prevents-an-error\"\n : \"#__internal__@babel/preset-env__prefer-false-but-true-is-ok-if-it-prevents-an-error\",\n },\n ];\n }\n if (pluginName === \"syntax-import-attributes\") {\n // For backward compatibility with the import-assertions plugin, we\n // allow the deprecated `assert` keyword.\n // TODO(Babel 8): Revisit this.\n return [getPlugin(pluginName), { deprecatedAssertSyntax: true }];\n }\n return [\n getPlugin(pluginName),\n process.env.BABEL_8_BREAKING\n ? { useBuiltIns: pluginUseBuiltIns }\n : { spec, loose, useBuiltIns: pluginUseBuiltIns },\n ];\n })\n .concat(polyfillPlugins);\n\n if (debug) {\n console.log(\"@babel/preset-env: `DEBUG` option\");\n console.log(\"\\nUsing targets:\");\n console.log(JSON.stringify(prettifyTargets(targets), null, 2));\n console.log(`\\nUsing modules transform: ${optionsModules.toString()}`);\n console.log(\"\\nUsing plugins:\");\n pluginNames.forEach(pluginName => {\n logPlugin(pluginName, targets, compatData);\n });\n\n if (!useBuiltIns) {\n console.log(\n \"\\nUsing polyfills: No polyfills were added, since the `useBuiltIns` option was not set.\",\n );\n }\n }\n\n return { plugins };\n});\n\nif (!process.env.BABEL_8_BREAKING && !USE_ESM) {\n // eslint-disable-next-line no-restricted-globals\n exports.getModulesPluginNames = ({\n modules,\n transformations,\n shouldTransformESM,\n shouldTransformDynamicImport,\n shouldTransformExportNamespaceFrom,\n }: {\n modules: ModuleOption;\n transformations: typeof import(\"./module-transformations\").default;\n shouldTransformESM: boolean;\n shouldTransformDynamicImport: boolean;\n shouldTransformExportNamespaceFrom: boolean;\n }) => {\n const modulesPluginNames = [];\n if (modules !== false && transformations[modules]) {\n if (shouldTransformESM) {\n modulesPluginNames.push(transformations[modules]);\n }\n\n if (shouldTransformDynamicImport) {\n if (shouldTransformESM && modules !== \"umd\") {\n modulesPluginNames.push(\"transform-dynamic-import\");\n } else {\n console.warn(\n \"Dynamic import can only be transformed when transforming ES\" +\n \" modules to AMD, CommonJS or SystemJS.\",\n );\n }\n }\n }\n\n if (shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"transform-export-namespace-from\");\n }\n if (!shouldTransformDynamicImport) {\n modulesPluginNames.push(\"syntax-dynamic-import\");\n }\n if (!shouldTransformExportNamespaceFrom) {\n modulesPluginNames.push(\"syntax-export-namespace-from\");\n }\n modulesPluginNames.push(\"syntax-top-level-await\");\n modulesPluginNames.push(\"syntax-import-meta\");\n\n return modulesPluginNames;\n };\n}\n","import { OptionValidator } from \"@babel/helper-validator-option\";\nconst v = new OptionValidator(\"@babel/preset-flow\");\n\nexport default function normalizeOptions(options: any = {}) {\n let { all, ignoreExtensions, experimental_useHermesParser } = options;\n const { allowDeclareFields } = options;\n\n if (process.env.BABEL_8_BREAKING) {\n v.invariant(\n !(\"allowDeclareFields\" in options),\n `Since Babel 8, \\`declare property: A\\` is always supported, and the \"allowDeclareFields\" option is no longer available. Please remove it from your config.`,\n );\n const TopLevelOptions = {\n all: \"all\",\n ignoreExtensions: \"ignoreExtensions\",\n experimental_useHermesParser: \"experimental_useHermesParser\",\n };\n v.validateTopLevelOptions(options, TopLevelOptions);\n all = v.validateBooleanOption(TopLevelOptions.all, all);\n ignoreExtensions = v.validateBooleanOption(\n TopLevelOptions.ignoreExtensions,\n ignoreExtensions,\n );\n experimental_useHermesParser = v.validateBooleanOption(\n TopLevelOptions.experimental_useHermesParser,\n experimental_useHermesParser,\n );\n return {\n all,\n ignoreExtensions,\n experimental_useHermesParser,\n };\n } else {\n return {\n all,\n allowDeclareFields,\n ignoreExtensions,\n experimental_useHermesParser,\n };\n }\n}\n","import { declarePreset } from \"@babel/helper-plugin-utils\";\nimport transformFlowStripTypes from \"@babel/plugin-transform-flow-strip-types\";\nimport normalizeOptions from \"./normalize-options.ts\";\n\nexport default declarePreset((api, opts) => {\n api.assertVersion(REQUIRED_VERSION(7));\n const {\n all,\n allowDeclareFields,\n ignoreExtensions = process.env.BABEL_8_BREAKING ? false : true,\n experimental_useHermesParser: useHermesParser = false,\n } = normalizeOptions(opts);\n\n const plugins: any[] = [\n [transformFlowStripTypes, { all, allowDeclareFields }],\n ];\n\n if (useHermesParser) {\n if (Number.parseInt(process.versions.node, 10) < 12) {\n throw new Error(\n \"The Hermes parser is only supported in Node 12 and later.\",\n );\n }\n if (IS_STANDALONE) {\n throw new Error(\n \"The Hermes parser is not supported in the @babel/standalone.\",\n );\n }\n plugins.unshift(\"babel-plugin-syntax-hermes-parser\");\n }\n\n if (ignoreExtensions) {\n return { plugins };\n }\n\n return {\n overrides: [\n {\n test: filename => filename == null || !/\\.tsx?$/.test(filename),\n plugins,\n },\n ],\n };\n});\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport annotateAsPure from \"@babel/helper-annotate-as-pure\";\nimport { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\n// Mapping of React top-level methods that are pure.\n// This plugin adds a /*#__PURE__#/ annotation to calls to these methods,\n// so that terser and other minifiers can safely remove them during dead\n// code elimination.\n// See https://reactjs.org/docs/react-api.html\nconst PURE_CALLS: [string, Set][] = [\n [\n \"react\",\n new Set([\n \"cloneElement\",\n \"createContext\",\n \"createElement\",\n \"createFactory\",\n \"createRef\",\n \"forwardRef\",\n \"isValidElement\",\n \"memo\",\n \"lazy\",\n ]),\n ],\n [\"react-dom\", new Set([\"createPortal\"])],\n];\n\nexport default declare(api => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n return {\n name: \"transform-react-pure-annotations\",\n visitor: {\n CallExpression(path) {\n if (isReactCall(path)) {\n annotateAsPure(path);\n }\n },\n },\n };\n});\n\nfunction isReactCall(path: NodePath) {\n // If the callee is not a member expression, then check if it matches\n // a named import, e.g. `import {forwardRef} from 'react'`.\n const calleePath = path.get(\"callee\");\n if (!calleePath.isMemberExpression()) {\n for (const [module, methods] of PURE_CALLS) {\n for (const method of methods) {\n if (calleePath.referencesImport(module, method)) {\n return true;\n }\n }\n }\n\n return false;\n }\n\n // Otherwise, check if the member expression's object matches\n // a default import (`import React from 'react'`) or namespace\n // import (`import * as React from 'react'), and check if the\n // property matches one of the pure methods.\n const object = calleePath.get(\"object\");\n const callee = calleePath.node;\n if (!callee.computed && t.isIdentifier(callee.property)) {\n const propertyName = callee.property.name;\n for (const [module, methods] of PURE_CALLS) {\n if (\n object.referencesImport(module, \"default\") ||\n object.referencesImport(module, \"*\")\n ) {\n return methods.has(propertyName);\n }\n }\n }\n\n return false;\n}\n","import {\n OptionValidator,\n findSuggestion,\n} from \"@babel/helper-validator-option\";\nconst v = new OptionValidator(\"@babel/preset-react\");\n\nexport default function normalizeOptions(options: any = {}) {\n if (process.env.BABEL_8_BREAKING) {\n if (\"useSpread\" in options) {\n throw new Error(\n '@babel/preset-react: Since Babel 8, an inline object with spread elements is always used, and the \"useSpread\" option is no longer available. Please remove it from your config.',\n );\n }\n\n if (\"useBuiltIns\" in options) {\n const useBuiltInsFormatted = JSON.stringify(options.useBuiltIns);\n throw new Error(\n `@babel/preset-react: Since \"useBuiltIns\" is removed in Babel 8, you can remove it from the config.\n- Babel 8 now transforms JSX spread to object spread. If you need to transpile object spread with\n\\`useBuiltIns: ${useBuiltInsFormatted}\\`, you can use the following config\n{\n \"plugins\": [\n [\"@babel/plugin-transform-object-rest-spread\", { \"loose\": true, \"useBuiltIns\": ${useBuiltInsFormatted} }]\n ],\n \"presets\": [\"@babel/preset-react\"]\n}`,\n );\n }\n\n const TopLevelOptions = {\n development: \"development\",\n importSource: \"importSource\",\n pragma: \"pragma\",\n pragmaFrag: \"pragmaFrag\",\n pure: \"pure\",\n runtime: \"runtime\",\n throwIfNamespace: \"throwIfNamespace\",\n };\n v.validateTopLevelOptions(options, TopLevelOptions);\n const development = v.validateBooleanOption(\n TopLevelOptions.development,\n options.development,\n false,\n );\n let importSource = v.validateStringOption(\n TopLevelOptions.importSource,\n options.importSource,\n );\n let pragma = v.validateStringOption(TopLevelOptions.pragma, options.pragma);\n let pragmaFrag = v.validateStringOption(\n TopLevelOptions.pragmaFrag,\n options.pragmaFrag,\n );\n const pure = v.validateBooleanOption(TopLevelOptions.pure, options.pure);\n const runtime = v.validateStringOption(\n TopLevelOptions.runtime,\n options.runtime,\n \"automatic\",\n );\n const throwIfNamespace = v.validateBooleanOption(\n TopLevelOptions.throwIfNamespace,\n options.throwIfNamespace,\n true,\n );\n\n const validRuntime = [\"classic\", \"automatic\"];\n\n if (runtime === \"classic\") {\n pragma = pragma || \"React.createElement\";\n pragmaFrag = pragmaFrag || \"React.Fragment\";\n } else if (runtime === \"automatic\") {\n importSource = importSource || \"react\";\n } else {\n throw new Error(\n `@babel/preset-react: 'runtime' must be one of ['automatic', 'classic'] but we have '${runtime}'\\n` +\n `- Did you mean '${findSuggestion(runtime, validRuntime)}'?`,\n );\n }\n\n return {\n development,\n importSource,\n pragma,\n pragmaFrag,\n pure,\n runtime,\n throwIfNamespace,\n };\n } else {\n let { pragma, pragmaFrag } = options;\n\n const {\n pure,\n throwIfNamespace = true,\n runtime = \"classic\",\n importSource,\n useBuiltIns,\n useSpread,\n } = options;\n\n if (runtime === \"classic\") {\n pragma = pragma || \"React.createElement\";\n pragmaFrag = pragmaFrag || \"React.Fragment\";\n }\n\n const development = !!options.development;\n\n return {\n development,\n importSource,\n pragma,\n pragmaFrag,\n pure,\n runtime,\n throwIfNamespace,\n useBuiltIns,\n useSpread,\n };\n }\n}\n","import { declarePreset } from \"@babel/helper-plugin-utils\";\nimport transformReactJSX from \"@babel/plugin-transform-react-jsx\";\nimport transformReactJSXDevelopment from \"@babel/plugin-transform-react-jsx-development\";\nimport transformReactDisplayName from \"@babel/plugin-transform-react-display-name\";\nimport transformReactPure from \"@babel/plugin-transform-react-pure-annotations\";\nimport normalizeOptions from \"./normalize-options.ts\";\n\nexport interface Options {\n development?: boolean;\n importSource?: string;\n pragma?: string;\n pragmaFrag?: string;\n pure?: string;\n runtime?: \"automatic\" | \"classic\";\n throwIfNamespace?: boolean;\n useBuiltIns?: boolean;\n useSpread?: boolean;\n}\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n development,\n importSource,\n pragma,\n pragmaFrag,\n pure,\n runtime,\n throwIfNamespace,\n } = normalizeOptions(opts);\n\n return {\n plugins: [\n [\n development ? transformReactJSXDevelopment : transformReactJSX,\n process.env.BABEL_8_BREAKING\n ? {\n importSource,\n pragma,\n pragmaFrag,\n runtime,\n throwIfNamespace,\n pure,\n }\n : {\n importSource,\n pragma,\n pragmaFrag,\n runtime,\n throwIfNamespace,\n pure,\n useBuiltIns: !!opts.useBuiltIns,\n useSpread: opts.useSpread,\n },\n ],\n transformReactDisplayName,\n pure !== false && transformReactPure,\n ].filter(Boolean),\n };\n});\n","import { OptionValidator } from \"@babel/helper-validator-option\";\nconst v = new OptionValidator(\"@babel/preset-typescript\");\n\nexport interface Options {\n ignoreExtensions?: boolean;\n allowDeclareFields?: boolean;\n allowNamespaces?: boolean;\n disallowAmbiguousJSXLike?: boolean;\n jsxPragma?: string;\n jsxPragmaFrag?: string;\n onlyRemoveTypeImports?: boolean;\n optimizeConstEnums?: boolean;\n rewriteImportExtensions?: boolean;\n\n // TODO: Remove in Babel 8\n allExtensions?: boolean;\n isTSX?: boolean;\n}\n\nexport default function normalizeOptions(options: Options = {}) {\n let { allowNamespaces = true, jsxPragma, onlyRemoveTypeImports } = options;\n\n const TopLevelOptions: {\n [Key in keyof Omit]-?: Key;\n } = {\n ignoreExtensions: \"ignoreExtensions\",\n allowNamespaces: \"allowNamespaces\",\n disallowAmbiguousJSXLike: \"disallowAmbiguousJSXLike\",\n jsxPragma: \"jsxPragma\",\n jsxPragmaFrag: \"jsxPragmaFrag\",\n onlyRemoveTypeImports: \"onlyRemoveTypeImports\",\n optimizeConstEnums: \"optimizeConstEnums\",\n rewriteImportExtensions: \"rewriteImportExtensions\",\n\n // TODO: Remove in Babel 8\n allExtensions: \"allExtensions\",\n isTSX: \"isTSX\",\n };\n\n if (process.env.BABEL_8_BREAKING) {\n v.invariant(\n !(\"allowDeclareFields\" in options),\n \"The .allowDeclareFields option has been removed and it's now always enabled. Please remove it from your config.\",\n );\n v.invariant(\n !(\"allExtensions\" in options) && !(\"isTSX\" in options),\n \"The .allExtensions and .isTSX options have been removed.\\n\" +\n \"If you want to disable JSX detection based on file extensions, \" +\n \"you can set the .ignoreExtensions option to true.\\n\" +\n \"If you want to force JSX parsing, you can enable the \" +\n \"@babel/plugin-syntax-jsx plugin.\",\n );\n\n v.validateTopLevelOptions(options, TopLevelOptions);\n allowNamespaces = v.validateBooleanOption(\n TopLevelOptions.allowNamespaces,\n options.allowNamespaces,\n true,\n );\n jsxPragma = v.validateStringOption(\n TopLevelOptions.jsxPragma,\n options.jsxPragma,\n \"React\",\n );\n onlyRemoveTypeImports = v.validateBooleanOption(\n TopLevelOptions.onlyRemoveTypeImports,\n options.onlyRemoveTypeImports,\n true,\n );\n }\n\n const jsxPragmaFrag = v.validateStringOption(\n TopLevelOptions.jsxPragmaFrag,\n options.jsxPragmaFrag,\n \"React.Fragment\",\n );\n\n if (!process.env.BABEL_8_BREAKING) {\n // eslint-disable-next-line no-var\n var allExtensions = v.validateBooleanOption(\n TopLevelOptions.allExtensions,\n options.allExtensions,\n false,\n );\n\n // eslint-disable-next-line no-var\n var isTSX = v.validateBooleanOption(\n TopLevelOptions.isTSX,\n options.isTSX,\n false,\n );\n if (isTSX) {\n v.invariant(allExtensions, \"isTSX:true requires allExtensions:true\");\n }\n }\n\n const ignoreExtensions = v.validateBooleanOption(\n TopLevelOptions.ignoreExtensions,\n options.ignoreExtensions,\n false,\n );\n\n const disallowAmbiguousJSXLike = v.validateBooleanOption(\n TopLevelOptions.disallowAmbiguousJSXLike,\n options.disallowAmbiguousJSXLike,\n false,\n );\n if (disallowAmbiguousJSXLike) {\n if (process.env.BABEL_8_BREAKING) {\n v.invariant(\n ignoreExtensions,\n \"disallowAmbiguousJSXLike:true requires ignoreExtensions:true\",\n );\n } else {\n v.invariant(\n allExtensions,\n \"disallowAmbiguousJSXLike:true requires allExtensions:true\",\n );\n }\n }\n\n const optimizeConstEnums = v.validateBooleanOption(\n TopLevelOptions.optimizeConstEnums,\n options.optimizeConstEnums,\n false,\n );\n\n const rewriteImportExtensions = v.validateBooleanOption(\n TopLevelOptions.rewriteImportExtensions,\n options.rewriteImportExtensions,\n false,\n );\n\n const normalized: Options = {\n ignoreExtensions,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n rewriteImportExtensions,\n };\n if (!process.env.BABEL_8_BREAKING) {\n normalized.allExtensions = allExtensions;\n normalized.isTSX = isTSX;\n }\n return normalized;\n}\n","import { declare } from \"@babel/helper-plugin-utils\";\nimport type { types as t } from \"@babel/core\";\nimport type { NodePath } from \"@babel/traverse\";\n\nexport default declare(function ({ types: t }) {\n return {\n name: \"preset-typescript/plugin-rewrite-ts-imports\",\n visitor: {\n \"ImportDeclaration|ExportAllDeclaration|ExportNamedDeclaration\"({\n node,\n }: NodePath<\n t.ImportDeclaration | t.ExportAllDeclaration | t.ExportNamedDeclaration\n >) {\n const { source } = node;\n const kind = t.isImportDeclaration(node)\n ? node.importKind\n : node.exportKind;\n if (kind === \"value\" && source && /[\\\\/]/.test(source.value)) {\n source.value = source.value\n .replace(/(\\.[mc]?)ts$/, \"$1js\")\n .replace(/\\.tsx$/, \".js\");\n }\n },\n },\n };\n});\n","/**\n * Copyright 2013-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of the React source tree.\n */\n\nconst scriptTypes = [\"text/jsx\", \"text/babel\"];\n\nimport type { transform } from \"./index.ts\";\nimport type { InputOptions } from \"@babel/core\";\n\nlet headEl: HTMLHeadElement;\nlet inlineScriptCount = 0;\n\ntype CompilationResult = {\n async: boolean;\n type: string;\n error: boolean;\n loaded: boolean;\n content: string | null;\n executed: boolean;\n // nonce is undefined in browsers that don't support the nonce global attribute\n nonce: string | undefined;\n // todo: refine plugins/presets\n plugins: InputOptions[\"plugins\"];\n presets: InputOptions[\"presets\"];\n url: string | null;\n};\n\n/**\n * Actually transform the code.\n */\nfunction transformCode(\n transformFn: typeof transform,\n script: CompilationResult,\n) {\n let source;\n if (script.url != null) {\n source = script.url;\n } else {\n source = \"Inline Babel script\";\n inlineScriptCount++;\n if (inlineScriptCount > 1) {\n source += \" (\" + inlineScriptCount + \")\";\n }\n }\n\n return transformFn(script.content, buildBabelOptions(script, source)).code;\n}\n\n/**\n * Builds the Babel options for transforming the specified script, using some\n * sensible default presets and plugins if none were explicitly provided.\n */\nfunction buildBabelOptions(script: CompilationResult, filename: string) {\n let presets = script.presets;\n if (!presets) {\n if (script.type === \"module\") {\n presets = [\n \"react\",\n [\n \"env\",\n {\n targets: {\n esmodules: true,\n },\n modules: false,\n },\n ],\n ];\n } else {\n presets = [\"react\", \"env\"];\n }\n }\n\n return {\n filename,\n presets,\n plugins: script.plugins || [\n \"transform-class-properties\",\n \"transform-object-rest-spread\",\n \"transform-flow-strip-types\",\n ],\n sourceMaps: \"inline\" as const,\n sourceFileName: filename,\n };\n}\n\n/**\n * Appends a script element at the end of the with the content of code,\n * after transforming it.\n */\nfunction run(transformFn: typeof transform, script: CompilationResult) {\n const scriptEl = document.createElement(\"script\");\n if (script.type) {\n scriptEl.setAttribute(\"type\", script.type);\n }\n if (script.nonce) {\n scriptEl.nonce = script.nonce;\n }\n scriptEl.text = transformCode(transformFn, script);\n headEl.appendChild(scriptEl);\n}\n\n/**\n * Load script from the provided url and pass the content to the callback.\n */\nfunction load(\n url: string,\n successCallback: (content: string) => void,\n errorCallback: () => void,\n) {\n const xhr = new XMLHttpRequest();\n\n // async, however scripts will be executed in the order they are in the\n // DOM to mirror normal script loading.\n xhr.open(\"GET\", url, true);\n if (\"overrideMimeType\" in xhr) {\n xhr.overrideMimeType(\"text/plain\");\n }\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 0 || xhr.status === 200) {\n successCallback(xhr.responseText);\n } else {\n errorCallback();\n throw new Error(\"Could not load \" + url);\n }\n }\n };\n xhr.send(null);\n}\n\n/**\n * Converts a comma-separated data attribute string into an array of values. If\n * the string is empty, returns an empty array. If the string is not defined,\n * returns null.\n */\nfunction getPluginsOrPresetsFromScript(\n script: HTMLScriptElement,\n attributeName: string,\n) {\n const rawValue = script.getAttribute(attributeName);\n if (rawValue === \"\") {\n // Empty string means to not load ANY presets or plugins\n return [];\n }\n if (!rawValue) {\n // Any other falsy value (null, undefined) means we're not overriding this\n // setting, and should use the default.\n return null;\n }\n return rawValue.split(\",\").map(item => item.trim());\n}\n\n/**\n * Loop over provided script tags and get the content, via innerHTML if an\n * inline script, or by using XHR. Transforms are applied if needed. The scripts\n * are executed in the order they are found on the page.\n */\nfunction loadScripts(\n transformFn: typeof transform,\n scripts: HTMLScriptElement[],\n) {\n const results: CompilationResult[] = [];\n const count = scripts.length;\n\n function check() {\n for (let i = 0; i < count; i++) {\n const result = results[i];\n\n if (result.loaded && !result.executed) {\n result.executed = true;\n run(transformFn, result);\n } else if (!result.loaded && !result.error && !result.async) {\n break;\n }\n }\n }\n\n for (let i = 0; i < count; i++) {\n const script = scripts[i];\n const result: CompilationResult = {\n // script.async is always true for non-JavaScript script tags\n async: script.hasAttribute(\"async\"),\n type: script.getAttribute(\"data-type\"),\n nonce: script.nonce,\n error: false,\n executed: false,\n plugins: getPluginsOrPresetsFromScript(script, \"data-plugins\"),\n presets: getPluginsOrPresetsFromScript(script, \"data-presets\"),\n loaded: false,\n url: null,\n content: null,\n };\n results.push(result);\n\n if (script.src) {\n result.url = script.src;\n\n load(\n script.src,\n content => {\n result.loaded = true;\n result.content = content;\n check();\n },\n () => {\n result.error = true;\n check();\n },\n );\n } else {\n result.url = script.getAttribute(\"data-module\") || null;\n result.loaded = true;\n result.content = script.innerHTML;\n }\n }\n\n check();\n}\n\n/**\n * Run script tags with type=\"text/jsx\".\n * @param {Array} scriptTags specify script tags to run, run all in the if not given\n */\nexport function runScripts(\n transformFn: typeof transform,\n scripts?: HTMLCollectionOf,\n) {\n headEl = document.getElementsByTagName(\"head\")[0];\n if (!scripts) {\n scripts = document.getElementsByTagName(\"script\");\n }\n\n // Array.prototype.slice cannot be used on NodeList on IE8\n const jsxScripts = [];\n for (let i = 0; i < scripts.length; i++) {\n const script = scripts.item(i);\n // Support the old type=\"text/jsx;harmony=true\"\n const type = script.type.split(\";\")[0];\n if (scriptTypes.indexOf(type) !== -1) {\n jsxScripts.push(script);\n }\n }\n\n if (jsxScripts.length === 0) {\n return;\n }\n\n console.warn(\n \"You are using the in-browser Babel transformer. Be sure to precompile \" +\n \"your scripts for production - https://babeljs.io/docs/setup/\",\n );\n\n loadScripts(transformFn, jsxScripts);\n}\n","import { declarePreset } from \"@babel/helper-plugin-utils\";\nimport transformTypeScript from \"@babel/plugin-transform-typescript\";\nimport syntaxJSX from \"@babel/plugin-syntax-jsx\";\nimport transformModulesCommonJS from \"@babel/plugin-transform-modules-commonjs\";\nimport normalizeOptions from \"./normalize-options.ts\";\nimport type { Options } from \"./normalize-options.ts\";\nimport pluginRewriteTSImports from \"./plugin-rewrite-ts-imports.ts\";\n\nexport default declarePreset((api, opts: Options) => {\n api.assertVersion(REQUIRED_VERSION(7));\n\n const {\n allExtensions,\n ignoreExtensions,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n isTSX,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n rewriteImportExtensions,\n } = normalizeOptions(opts);\n\n const pluginOptions = process.env.BABEL_8_BREAKING\n ? (disallowAmbiguousJSXLike: boolean) => ({\n allowNamespaces,\n disallowAmbiguousJSXLike,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n })\n : (disallowAmbiguousJSXLike: boolean) => ({\n allowDeclareFields: opts.allowDeclareFields,\n allowNamespaces,\n disallowAmbiguousJSXLike,\n jsxPragma,\n jsxPragmaFrag,\n onlyRemoveTypeImports,\n optimizeConstEnums,\n });\n\n const getPlugins = (isTSX: boolean, disallowAmbiguousJSXLike: boolean) => {\n if (process.env.BABEL_8_BREAKING) {\n const tsPlugin = [\n transformTypeScript,\n pluginOptions(disallowAmbiguousJSXLike),\n ];\n return isTSX ? [tsPlugin, syntaxJSX] : [tsPlugin];\n } else {\n return [\n [\n transformTypeScript,\n { isTSX, ...pluginOptions(disallowAmbiguousJSXLike) },\n ],\n ];\n }\n };\n\n const disableExtensionDetect = allExtensions || ignoreExtensions;\n\n return {\n plugins: rewriteImportExtensions ? [pluginRewriteTSImports] : [],\n overrides: disableExtensionDetect\n ? [{ plugins: getPlugins(isTSX, disallowAmbiguousJSXLike) }]\n : // Only set 'test' if explicitly requested, since it requires that\n // Babel is being called with a filename.\n [\n {\n test: !process.env.BABEL_8_BREAKING\n ? /\\.ts$/\n : filename => filename == null || filename.endsWith(\".ts\"),\n plugins: getPlugins(false, false),\n },\n {\n test: !process.env.BABEL_8_BREAKING\n ? /\\.mts$/\n : filename => filename?.endsWith(\".mts\"),\n sourceType: \"module\",\n plugins: getPlugins(false, true),\n },\n {\n test: !process.env.BABEL_8_BREAKING\n ? /\\.cts$/\n : filename => filename?.endsWith(\".cts\"),\n sourceType: \"unambiguous\",\n plugins: [\n [transformModulesCommonJS, { allowTopLevelThis: true }],\n [transformTypeScript, pluginOptions(true)],\n ],\n },\n {\n test: !process.env.BABEL_8_BREAKING\n ? /\\.tsx$/\n : filename => filename?.endsWith(\".tsx\"),\n // disallowAmbiguousJSXLike is a no-op when parsing TSX, since it's\n // always disallowed.\n plugins: getPlugins(true, false),\n },\n ],\n };\n});\n","// TODO(Babel 8): This won't be needed anymore\n\n// prettier-ignore\nmodule.exports = {\n __proto__: null,\n \"transform-class-static-block\": \"proposal-class-static-block\",\n \"transform-private-property-in-object\": \"proposal-private-property-in-object\",\n \"transform-class-properties\": \"proposal-class-properties\",\n \"transform-private-methods\": \"proposal-private-methods\",\n \"transform-numeric-separator\": \"proposal-numeric-separator\",\n \"transform-logical-assignment-operators\": \"proposal-logical-assignment-operators\",\n \"transform-nullish-coalescing-operator\": \"proposal-nullish-coalescing-operator\",\n \"transform-optional-chaining\": \"proposal-optional-chaining\",\n \"transform-json-strings\": \"proposal-json-strings\",\n \"transform-optional-catch-binding\": \"proposal-optional-catch-binding\",\n \"transform-async-generator-functions\": \"proposal-async-generator-functions\",\n \"transform-object-rest-spread\": \"proposal-object-rest-spread\",\n \"transform-unicode-property-regex\": \"proposal-unicode-property-regex\",\n \"transform-export-namespace-from\": \"proposal-export-namespace-from\",\n};\n","/**\n * Entry point for @babel/standalone. This wraps Babel's API in a version that's\n * friendlier for use in web browsers. It removes the automagical detection of\n * plugins, instead explicitly registering all the available plugins and\n * presets, and requiring custom ones to be registered through `registerPlugin`\n * and `registerPreset` respectively.\n */\n\n/* global VERSION */\n/// \n\nimport {\n transformFromAstSync as babelTransformFromAstSync,\n transformSync as babelTransformSync,\n buildExternalHelpers as babelBuildExternalHelpers,\n type PluginObject,\n type PresetObject,\n} from \"@babel/core\";\nimport { all } from \"./generated/plugins.ts\";\nimport preset2015 from \"./preset-es2015.ts\";\nimport presetStage0 from \"./preset-stage-0.ts\";\nimport presetStage1 from \"./preset-stage-1.ts\";\nimport presetStage2 from \"./preset-stage-2.ts\";\nimport presetStage3 from \"./preset-stage-3.ts\";\nimport presetEnv from \"@babel/preset-env\";\nimport presetFlow from \"@babel/preset-flow\";\nimport presetReact from \"@babel/preset-react\";\nimport presetTypescript from \"@babel/preset-typescript\";\nimport type { InputOptions } from \"@babel/core\";\n\nimport { runScripts } from \"./transformScriptTags.ts\";\n\nexport * as packages from \"./packages.ts\";\n\n// We import this file from another package using a relative path because it's\n// meant to just be build-time script; it's ok because @babel/standalone is\n// bundled anyway.\n// TODO: Remove this in Babel 8\n// @ts-expect-error TS complains about importing a JS file without type declarations\nimport legacyPluginAliases from \"../../babel-compat-data/scripts/data/legacy-plugin-aliases.js\";\n// eslint-disable-next-line guard-for-in\nfor (const name in legacyPluginAliases) {\n all[legacyPluginAliases[name]] = all[name];\n}\nall[\"proposal-unicode-sets-regex\"] = all[\"transform-unicode-sets-regex\"];\n\nexport const availablePlugins: typeof all = {};\n\n// All the plugins we should bundle\n// Want to get rid of this long list of allowed plugins?\n// Wait! Please read https://github.com/babel/babel/pull/6177 first.\nregisterPlugins(all);\n\n// All the presets we should bundle\n// Want to get rid of this list of allowed presets?\n// Wait! Please read https://github.com/babel/babel/pull/6177 first.\nexport const availablePresets = {\n env: presetEnv,\n es2015: preset2015,\n es2016: () => {\n return {\n plugins: [availablePlugins[\"transform-exponentiation-operator\"]],\n };\n },\n es2017: () => {\n return {\n plugins: [availablePlugins[\"transform-async-to-generator\"]],\n };\n },\n react: presetReact,\n \"stage-0\": presetStage0,\n \"stage-1\": presetStage1,\n \"stage-2\": presetStage2,\n \"stage-3\": presetStage3,\n \"es2015-loose\": {\n presets: [[preset2015, { loose: true }]],\n },\n // ES2015 preset with es2015-modules-commonjs removed\n \"es2015-no-commonjs\": {\n presets: [[preset2015, { modules: false }]],\n },\n typescript: presetTypescript,\n flow: presetFlow,\n};\n\nconst isArray =\n Array.isArray ||\n (arg => Object.prototype.toString.call(arg) === \"[object Array]\");\n\n/**\n * Loads the given name (or [name, options] pair) from the given table object\n * holding the available presets or plugins.\n *\n * Returns undefined if the preset or plugin is not available; passes through\n * name unmodified if it (or the first element of the pair) is not a string.\n */\nfunction loadBuiltin(builtinTable: Record, name: any) {\n if (isArray(name) && typeof name[0] === \"string\") {\n if (Object.hasOwn(builtinTable, name[0])) {\n return [builtinTable[name[0]]].concat(name.slice(1));\n }\n return;\n } else if (typeof name === \"string\") {\n return builtinTable[name];\n }\n // Could be an actual preset/plugin module\n return name;\n}\n\n/**\n * Parses plugin names and presets from the specified options.\n */\nfunction processOptions(options: InputOptions) {\n // Parse preset names\n const presets = (options.presets || []).map(presetName => {\n const preset = loadBuiltin(availablePresets, presetName);\n\n if (preset) {\n // workaround for babel issue\n // at some point, babel copies the preset, losing the non-enumerable\n // buildPreset key; convert it into an enumerable key.\n if (\n isArray(preset) &&\n typeof preset[0] === \"object\" &&\n Object.hasOwn(preset[0], \"buildPreset\")\n ) {\n preset[0] = { ...preset[0], buildPreset: preset[0].buildPreset };\n }\n } else {\n throw new Error(\n `Invalid preset specified in Babel options: \"${presetName}\"`,\n );\n }\n return preset;\n });\n\n // Parse plugin names\n const plugins = (options.plugins || []).map(pluginName => {\n const plugin = loadBuiltin(availablePlugins, pluginName);\n\n if (!plugin) {\n throw new Error(\n `Invalid plugin specified in Babel options: \"${pluginName}\"`,\n );\n }\n return plugin;\n });\n\n return {\n babelrc: false,\n ...options,\n presets,\n plugins,\n };\n}\n\nexport function transform(code: string, options: InputOptions) {\n return babelTransformSync(code, processOptions(options));\n}\n\nexport function transformFromAst(\n ast: Parameters[0],\n code: string,\n options: InputOptions,\n) {\n return babelTransformFromAstSync(ast, code, processOptions(options));\n}\n\nexport const buildExternalHelpers = babelBuildExternalHelpers;\n/**\n * Registers a named plugin for use with Babel.\n */\nexport function registerPlugin(name: string, plugin: () => PluginObject): void {\n if (Object.hasOwn(availablePlugins, name)) {\n console.warn(\n `A plugin named \"${name}\" is already registered, it will be overridden`,\n );\n }\n availablePlugins[name] = plugin;\n}\n/**\n * Registers multiple plugins for use with Babel. `newPlugins` should be an object where the key\n * is the name of the plugin, and the value is the plugin itself.\n */\nexport function registerPlugins(newPlugins: {\n [x: string]: () => PluginObject;\n}): void {\n Object.keys(newPlugins).forEach(name =>\n registerPlugin(name, newPlugins[name]),\n );\n}\n\n/**\n * Registers a named preset for use with Babel.\n */\nexport function registerPreset(name: string, preset: () => PresetObject): void {\n if (Object.hasOwn(availablePresets, name)) {\n if (name === \"env\") {\n console.warn(\n \"@babel/preset-env is now included in @babel/standalone, please remove @babel/preset-env-standalone\",\n );\n } else {\n console.warn(\n `A preset named \"${name}\" is already registered, it will be overridden`,\n );\n }\n }\n // @ts-expect-error mutating available presets\n availablePresets[name] = preset;\n}\n\n/**\n * Registers multiple presets for use with Babel. `newPresets` should be an object where the key\n * is the name of the preset, and the value is the preset itself.\n */\nexport function registerPresets(newPresets: {\n [x: string]: () => PresetObject;\n}): void {\n Object.keys(newPresets).forEach(name =>\n registerPreset(name, newPresets[name]),\n );\n}\n\n// @ts-expect-error VERSION is to be replaced by rollup\nexport const version: string = VERSION;\n\nfunction onDOMContentLoaded() {\n transformScriptTags();\n}\n\n// Listen for load event if we're in a browser and then kick off finding and\n// running of scripts with \"text/babel\" type.\nif (typeof window !== \"undefined\" && window?.addEventListener) {\n window.addEventListener(\"DOMContentLoaded\", onDOMContentLoaded, false);\n}\n\n/**\n * Transform